diff --git a/.changeset/case-sensitive-key-names.md b/.changeset/case-sensitive-key-names.md new file mode 100644 index 00000000..d11f72c4 --- /dev/null +++ b/.changeset/case-sensitive-key-names.md @@ -0,0 +1,23 @@ +--- +'@tanstack/hotkeys': minor +'@tanstack/react-hotkeys': minor +'@tanstack/preact-hotkeys': minor +'@tanstack/solid-hotkeys': minor +'@tanstack/vue-hotkeys': minor +'@tanstack/svelte-hotkeys': minor +'@tanstack/angular-hotkeys': minor +'@tanstack/lit-hotkeys': minor +'@tanstack/alpine-hotkeys': minor +'@tanstack/octane-hotkeys': minor +'@tanstack/ember-hotkeys': minor +'@tanstack/hotkeys-devtools': minor +--- + +Key names are case-sensitive, and key aliases are no longer resolved, which removes the key-name lookup tables from every bundle. Typed hotkeys, recording, matching, and display behave as before. + +- Spellings that the hotkey types don't allow, such as `escape`, `Esc`, `f1`, `Plus`, or `pgdn`, now stay as written and don't match. Use the canonical names: `Escape`, `F1`, `+`, `PageDown`. Letters still match in any case, and modifier aliases such as `Ctrl`, `Cmd`, and `Option` still work. +- `validateHotkey` and `checkHotkey` warn about keys that aren't written like a known key, such as `escape`, instead of checking a list of key names. In development, registering such a hotkey logs a warning that it may never fire. +- `formatForDisplay` accepts hotkeys only, including single keys and modifiers on their own such as `'Shift'`, instead of any string. Pass a key from a `KeyboardEvent`, such as a held key from `useHeldKeys`, as `{ key }`. +- `HotkeyManager.triggerRegistration` moves into the devtools package, which was its only user. +- The recorder rejects whitespace characters, such as the non-breaking space from Option+Space on macOS, with the message "Whitespace keys cannot be recorded". +- Saved custom hotkeys and display labels ignore names inherited from `Object.prototype`, such as `toString`. Previously, saved custom hotkeys could keep those ids, and `formatForDisplay` could show function source text for them. diff --git a/.changeset/dev-only-warnings.md b/.changeset/dev-only-warnings.md new file mode 100644 index 00000000..3a4114ea --- /dev/null +++ b/.changeset/dev-only-warnings.md @@ -0,0 +1,5 @@ +--- +'@tanstack/hotkeys': minor +--- + +Console warnings and errors are logged only in development. Production builds, where `process.env.NODE_ENV` is `'production'`, skip them and drop the warning code. `checkHotkey` still returns whether a hotkey is valid. diff --git a/.changeset/devtools-host-peers.md b/.changeset/devtools-host-peers.md new file mode 100644 index 00000000..3c3994c6 --- /dev/null +++ b/.changeset/devtools-host-peers.md @@ -0,0 +1,13 @@ +--- +'@tanstack/hotkeys-devtools': minor +'@tanstack/react-hotkeys-devtools': minor +'@tanstack/preact-hotkeys-devtools': minor +'@tanstack/solid-hotkeys-devtools': minor +'@tanstack/vue-hotkeys-devtools': minor +'@tanstack/svelte-hotkeys-devtools': minor +'@tanstack/angular-hotkeys-devtools': minor +--- + +Each devtools adapter now lists its TanStack Devtools host as an optional peer dependency at the current release, such as `@tanstack/react-devtools` 0.10.14. Older hosts pass the plugin a theme string instead of props, so the panel ignored the theme, and TypeScript rejects the React plugin since `@tanstack/react-hotkeys-devtools` 0.12.0. Package managers now warn about an old host at install time. + +Update `@tanstack/devtools-utils` and `@tanstack/devtools-ui` to 0.7.2. The Preact panel now unmounts its core on Preact 11 (TanStack/devtools#551). diff --git a/.changeset/drop-tanstack-store.md b/.changeset/drop-tanstack-store.md new file mode 100644 index 00000000..2313c01a --- /dev/null +++ b/.changeset/drop-tanstack-store.md @@ -0,0 +1,17 @@ +--- +'@tanstack/hotkeys': minor +'@tanstack/react-hotkeys': minor +'@tanstack/preact-hotkeys': minor +'@tanstack/solid-hotkeys': minor +'@tanstack/vue-hotkeys': minor +'@tanstack/angular-hotkeys': minor +'@tanstack/octane-hotkeys': minor +'@tanstack/alpine-hotkeys': minor +'@tanstack/ember-hotkeys': minor +'@tanstack/svelte-hotkeys': minor +'@tanstack/lit-hotkeys': minor +--- + +TanStack Hotkeys no longer depends on `@tanstack/store` or the framework store adapters. Its stores, such as `manager.registrations` and `recorder.store`, keep the same `state`, `get`, `setState`, and `subscribe` API and still work with TanStack Store's framework adapters. Bundles shrink by about 1.3 kB (brotli) in core and about 2.4 kB in the React adapter. + +The stores are no longer `Store` instances from `@tanstack/store`, so `instanceof Store` checks and other TanStack Store features, such as `actions`, no longer apply to them. diff --git a/.changeset/lazy-app-hotkeys-store.md b/.changeset/lazy-app-hotkeys-store.md new file mode 100644 index 00000000..7aa91c8e --- /dev/null +++ b/.changeset/lazy-app-hotkeys-store.md @@ -0,0 +1,12 @@ +--- +'@tanstack/hotkeys': minor +'@tanstack/react-hotkeys': minor +'@tanstack/preact-hotkeys': minor +'@tanstack/solid-hotkeys': minor +'@tanstack/vue-hotkeys': minor +'@tanstack/svelte-hotkeys': minor +'@tanstack/angular-hotkeys': minor +'@tanstack/octane-hotkeys': minor +--- + +Providers no longer bundle app hotkey support unless the app uses `defineAppHotkeys`. A React app with `HotkeysProvider` and no app hotkeys is about 1 kB smaller (brotli). diff --git a/.intent/review-state.json b/.intent/review-state.json index 05cc77dd..d73f9f32 100644 --- a/.intent/review-state.json +++ b/.intent/review-state.json @@ -3,9 +3,9 @@ "baseline": "ad56a4b0dbf3c34d8552eca2cc88c5c7000d520a", "items": { "skill:packages/alpine-hotkeys/skills/alpine-hotkeys/SKILL.md": { - "fingerprint": "f7e6791bcab14d204081461064163520817356a360f08e158b6d860dd513918d", + "fingerprint": "b1984de4daf5d5eeb0481098503979ceffea7134aefe556f2a09f84c7fc54221", "snapshot": { - "docs/framework/alpine/guides/app-hotkeys.md": "536c327d4d9f80219a0dcdd04bb36b684c35567ad76f86327287ae6a21f03199", + "docs/framework/alpine/guides/app-hotkeys.md": "8cb047cb3397588fdbde4684302a74f4c95dd4b37924f6ee761cb19becfeb22b", "docs/framework/alpine/quick-start.md": "de471401f70d66c2a81182f917f6eef02d808bdda1a2bc6268a6aa1e5365000c", "packages/alpine-hotkeys/skills/alpine-hotkeys/SKILL.md": "8c0a3ab25f684d8445925d43dbadabb4e491b12001d78811cbf0d3f41db044c8", "packages/alpine-hotkeys/skills/alpine-hotkeys/references/app-hotkeys.md": "fdc12aafd6098bde8b4e7f5d8a8afb12227ac99cd753e06fc27401d5d8c8fead", @@ -13,42 +13,39 @@ "packages/alpine-hotkeys/src/createHotkey.ts": "3ee3029171f53f3693980bc975252b3decea27c1920ccc0ec1dd8fe2b3810c9b", "packages/alpine-hotkeys/src/createHotkeysScope.ts": "8fb6d17e8fe155327fdac17f9d057d6538c84474c1c464ee25409c23d52e7a85", "packages/alpine-hotkeys/src/hotkeysPlugin.ts": "35ffb8b772a178690d956f3b3a165b577c40d1723e186f5ffdef4a985f7be90b", - "packages/alpine-hotkeys/src/scope.ts": "33b2731c6f3754315a6b31fa8dff27805605835c3ae34aa62f92f6fd44d898a6" + "packages/alpine-hotkeys/src/scope.ts": "6de5d72206289c2ad4b3719cd69474450770cb006abf951f1419ed70a58bdb7c" }, - "head": "a61d917542e56c07f1a3d2aa3f6eb951e5150818", - "outcome": "updated", - "reason": "The setup now installs Alpine.plugin(hotkeysPlugin) before Alpine.start(). The adapter no longer imports alpinejs; it uses the plugin's Alpine instance, falls back to window.Alpine, and throws when neither exists. The skill's sample, setup line and API row say so.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/alpine-hotkeys/src/scope.ts", - "packages/alpine-hotkeys/src/hotkeysPlugin.ts", - "packages/alpine-hotkeys/tests/alpine-instance.test.ts" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/angular-hotkeys/skills/angular-hotkeys/SKILL.md": { - "fingerprint": "5f623f1741f51b1b805be93d1389186807b85a0921504d420b521111ad9264cc", + "fingerprint": "55edd8becf8aaad206a4ec817ce4770bd7ffd19addcb4a0f7837a6ca94dc138c", "snapshot": { "docs/framework/angular/guides/provide-hotkeys-and-scopes.md": "003fba191e3d13d4466754644c4d2174a550f48d437028bc163ba6acca6546ad", "docs/framework/angular/quick-start.md": "d1cc5f91cd50b579c8a4bd9811e76862308855ce602556e4fa36561bc7d62822", "packages/angular-hotkeys/skills/angular-hotkeys/SKILL.md": "2b0e9e34fb1338d2db1657beffd8664906ef200388854cfc2895cf9f428e00d9", "packages/angular-hotkeys/skills/angular-hotkeys/references/app-hotkeys.md": "5fe1b12a519e8ca5087d78d47050f7a2ec0c70bb9b7d6ebcbb050ee099e3effe", - "packages/angular-hotkeys/src/hotkeys-provider.ts": "1e549ef79db70b5818326068c78ada5d410fdc680a4cb7ca12bdfd9d0de5d0dc", + "packages/angular-hotkeys/src/hotkeys-provider.ts": "778e52fcefb623255a58aac9ea9cc6267e1c9f127ef5bdfeb3594c1db16594de", "packages/angular-hotkeys/src/injectAppHotkeys.ts": "3161186944b142feab034a1899b76b178700f4ef371bfffbb694b9ed5a191d32", "packages/angular-hotkeys/src/injectHotkey.ts": "b3651b50beb5b94cdadaf3339be17984e79277222918550f53448fca511e0af6", - "packages/angular-hotkeys/src/injectHotkeyRecorder.ts": "46db59ccc34f8158c98328ae152f47cdd182cdeef951bf9dc5c44fa12de1b305", + "packages/angular-hotkeys/src/injectHotkeyRecorder.ts": "f99727fccffca18b9c959611c29826e4ae4fa4767de53621cb8fca8e95646c48", "packages/angular-hotkeys/src/injectHotkeys.ts": "cecc7d127934caaab72a694fe527ef7a7b31e660f98cc077dabacd5506e11619" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", - "outcome": "updated", - "reason": "Hint rows now say an element-targeted hotkey needs focus inside its element; registration status described as enabled and in an active scope.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/hotkeys/src/hotkey-manager.ts", - "packages/angular-hotkeys/skills/angular-hotkeys/SKILL.md" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/ember-hotkeys/skills/ember-hotkeys/SKILL.md": { - "fingerprint": "37777ecd64b32ae83c76d5fb46f339cd6f361b94fb488b4c343316032278c066", + "fingerprint": "f53853d4111f1697228094d3bf6533d90a623767274465b2121799aa8c4f5229", "snapshot": { - "docs/framework/ember/guides/app-hotkeys.md": "5162292b3d62257c757ea0146fb5b1cc8c85b130081472b3675be077e8c898de", + "docs/framework/ember/guides/app-hotkeys.md": "55e039d2123ed08ce41eae438293816885d705d79620df68f4aef339f632e2c2", "docs/framework/ember/quick-start.md": "cabdc0cbd2b9ac6d4d7f9f2c8b8d3fc6ef2ac8c23df4cd8ebc9745c99023f8c8", "packages/ember-hotkeys/skills/ember-hotkeys/SKILL.md": "ba4e5144d1b1e5435ffda905009c40b343b8cd829a93ec9553afc576d2388acc", "packages/ember-hotkeys/skills/ember-hotkeys/references/app-hotkeys.md": "b6200c97df720970117aefe3d2003817fdf7aa4d869437341e75245dcd0c9602", @@ -59,27 +56,24 @@ "packages/ember-hotkeys/src/useHotkey.ts": "66b7b39970c5e61233f352baf14c41d9ac29cc3832e251470930e6507b454f63", "packages/ember-hotkeys/src/useHotkeys.ts": "963345b3720ddefec8677b9b9d9dfa2b6346e22b32f9f2034d406b43e5c5ccf8" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", - "outcome": "updated", - "reason": "The version line now matches the new ember-source peer (>=6.8.3 <6.9.0 || >=6.10.1). Classic builds of 6.8.0 to 6.8.2, 6.9.0 and 6.10.0 don't define @ember/reactive/collections, which src/utils.ts imports.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/ember-hotkeys/package.json", - "packages/ember-hotkeys/src/utils.ts", - "Classic ember-cli apps with ember-auto-import 2.13.1 and the packed addon: 6.8.3, 6.12.1 (use-ember-modules on and off) and 7.3.1 build and fire K in Chromium; 6.8.0 fails with \"Could not find module @ember/reactive/collections\"", - "pnpm test:lib for @tanstack/ember-hotkeys passes (Embroider/Vite suite)" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/hotkeys/skills/app-hotkeys/SKILL.md": { - "fingerprint": "e4a4a258ea0983afe25de1f963ce8cb2f2d2723c9d9edf05c3d230e0b0cf45ae", + "fingerprint": "a618f4422dd2ea09019e0452686c22a424b07b37063b3e80da88411e4dcc88fa", "snapshot": { - "docs/framework/react/guides/app-hotkeys.md": "703f9dcea282a1b5cd7cabcd304a233cfda8d79206d3d66d3b024142e5175d24", + "docs/framework/react/guides/app-hotkeys.md": "f518acca820445dfefde7a8db57f492022def97b96041f1d16573a2851ffa03e", "docs/framework/react/guides/cheat-sheet-ui-helpers.md": "a3f793e81c6a6e1e6aaf3d63c6b79114ea7d6f461123d371c0b4f0a23ffd88bc", "docs/framework/react/guides/custom-hotkey-recording.md": "ea9b70d7bbeb5846b0284e843960bf667b2ae6ffbe85742fb5ba332de170ca29", "packages/hotkeys/skills/app-hotkeys/SKILL.md": "1717fce82ea43b4947da276026504eb8832dc3094cc41cc7572701a7f27b5e58", "packages/hotkeys/skills/app-hotkeys/references/recording.md": "70dfa06d396a49e4a6033ec4f571ccdb9a74a439e989803c6120f219f720b8ad", - "packages/hotkeys/src/app-hotkeys.ts": "5bee8b0042a7385c8963aabf9b0ca7b6aad5ef8aab41b2759961a7ac6cf6849c", + "packages/hotkeys/src/app-hotkeys.ts": "cd3e57af64f6292d40c36a44af5c5bb361af4739f2fb90a28a62613385131aa5", "packages/hotkeys/src/conflicts.ts": "750fe91126e87f062500d11d9bf19116d77c8509fdaa7644c847d49f1cbf40a3", - "packages/hotkeys/src/hotkey-recorder.ts": "972b374bc2e18a06c09da8595ea29dfa13d62a28c2e503174eb18a02fcc40daf", + "packages/hotkeys/src/hotkey-recorder.ts": "7d479391753ffa97e69a7d7cb994cb7053a7ffb3e0aed6dfbfb2dbbdf51a3d24", "packages/react-hotkeys/tests/skills/shortcut-settings/fixture.tsx": "ecc6155241ebccca4ef4cd76e8925b3abeec73e9d88e6906bdf70e4c604788aa", "packages/react-hotkeys/tests/skills/shortcut-settings/grade.tsx": "270c7b8ff9d30f09a458bc8907efa47813e1e192903cc0ca3a70f6820e39fc90", "packages/react-hotkeys/tests/skills/shortcut-settings/mistakes/full-list-storage.tsx": "62d4f4bd79de46fc4900d4f8202c7b16c672060ab66aaead9e7fcd8ea1958c59", @@ -89,22 +83,24 @@ "packages/react-hotkeys/tests/skills/shortcut-settings/solution.tsx": "23a9dd46565c8617361bad3bcf24903c6d2d0c1db8c5e16b66ee5a7bc02fc62b", "packages/react-hotkeys/tests/skills/shortcut-settings/task.md": "1104e51ba1cb603b145b5eece30197d2e2936e21b1592ea75004244d49fcadd1" }, - "head": "614339f8f59a0776451f4ccc64cb5cadc20fd145", + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", "outcome": "no-change", - "reason": "Recorder start without a document and Svelte recorder teardown timing are internal; the skill describes neither.", - "evidence": ["packages/hotkeys/src/hotkey-recorder.ts"] + "reason": "App hotkey guidance is unchanged: saved custom hotkeys are still validated and unknown ids are still dropped with a warning; own-property checks only harden that path.", + "evidence": [ + "Reviewed app-hotkeys.ts and hotkey-recorder.ts diffs against app-hotkeys/SKILL.md." + ] }, "skill:packages/hotkeys/skills/hotkeys-core/SKILL.md": { - "fingerprint": "727730dbceed898070ebb1f363736f1aa96059d5ed7aaaf086ae866ee7146f9f", + "fingerprint": "7b4b57c4cc049e54a9bd6f69a30ceb58fbbc1820a41b3aa4977d5c9b8aef7eac", "snapshot": { "docs/framework/react/guides/hotkeys-provider-and-scopes.md": "1d39ab010d5bd99955b761dc7298987b332e15846546990dcf2a1ecfb5068469", - "docs/framework/react/guides/hotkeys.md": "4d12140117ce4ceb3fb9bc17867efe30ae7085609714800e962c927ce07f019f", + "docs/framework/react/guides/hotkeys.md": "1591b315e7f0581265287b04210978fd4b0b85487070e744f7f52e1648e01ebf", "docs/framework/react/guides/sequences.md": "e66231380dab6222508a1305d83586459b59953c2ecc47b9549e3cb29ffcd355", - "docs/guides/sensible-defaults.md": "2f03b09f3d0f8af626d1ce52772148662ae0a4a2f03b1b428fb227cd7580e8bf", - "packages/hotkeys/skills/hotkeys-core/SKILL.md": "507ec6b32b7b1836276ee6527acdb3240f998d72dfb90f07c9e9820e688e8714", + "docs/guides/sensible-defaults.md": "f104881097a435a8f4874f969cef3d59e2ef17ec97f5a8c121ba303d036539b7", + "packages/hotkeys/skills/hotkeys-core/SKILL.md": "a45229edb827101dd019587c5e20965954a508eb5ba57ef6680e53d084585df8", "packages/hotkeys/skills/hotkeys-core/references/scopes.md": "1ae616ff7ce92d9679bbd0752ada572c2060c33ea7e7e638bfcc9d5425ac6bfa", "packages/hotkeys/skills/hotkeys-core/references/testing.md": "90e6512868c194f6c906711cd16882c204600a3118b08b7a101ff6b409012538", - "packages/hotkeys/src/hotkey-manager.ts": "2507330b7cdcd986ae624d5ad9526516d48d9bc34228d7de9efd7f4bc2440229", + "packages/hotkeys/src/hotkey-manager.ts": "0c92ebd5c921d1d86c1f6187d29e0f3fcda025d2f68b3d5ec9d3c199e10a3810", "packages/hotkeys/src/match.ts": "3a50921a68f79183b4ffac98e07e7fdf043711bc071f419c9cdc03422d25f268", "packages/react-hotkeys/tests/skills/editor-shortcuts/editor-shortcuts.test.tsx": "25c572e968a78fd8df61f0bc98ba8adb41ecf0874437725e5ba28dd171e44fe1", "packages/react-hotkeys/tests/skills/editor-shortcuts/fixture.tsx": "613a833bb6412b600925deb4009d16cfbfe7afa9a5dc0b82d1a39b8da8c0230b", @@ -116,18 +112,17 @@ "packages/react-hotkeys/tests/skills/editor-shortcuts/solution.tsx": "ec81379bf0e3a9950222cf8525f82f8abefeb6b46339550fd3a8622e61bf4f0d", "packages/react-hotkeys/tests/skills/editor-shortcuts/task.md": "451dc7569f71956e5ce5e691ecc18ce14d4240b7edaa20cad58075747416c33d" }, - "head": "210b3fb5577b3e7381a7c74d70e87cf395ae6682", - "outcome": "no-change", - "reason": "The skill says letters follow the typed character and recommends physical bindings for positions. Both still hold; this change narrows when non-letter keys fall back to their US position, which the skill doesn't describe.", + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "updated", + "reason": "formatKeyForDisplay was removed; the skill now points to formatForDisplay({ key }) for held keys. triggerRegistration moved to devtools and was never named in the skill.", "evidence": [ - "packages/hotkeys/src/_match.ts", - "docs/guides/sensible-defaults.md" + "Updated the labels row of the instead-of table in hotkeys-core/SKILL.md." ] }, "skill:packages/lit-hotkeys/skills/lit-hotkeys/SKILL.md": { - "fingerprint": "2d195e1f1122c0623295b93f5a97f79c968fcf744362c5e93747fa5e2982b321", + "fingerprint": "9f21474a4d068137bee212649f88d511a688b678065f144deee21c5d6f687ef8", "snapshot": { - "docs/framework/lit/guides/app-hotkeys.md": "0a2b2dafa00bb21f575d4ac752f0b54803a69fff12a4391cf3a86e59f6471e1f", + "docs/framework/lit/guides/app-hotkeys.md": "ab56f3c56e60dc8c12253eb9c48156438dd802e6514eaf2c07c4efa821e153e8", "docs/framework/lit/quick-start.md": "cb51d2c81a8d9288d435af6e54366188c4175b9f18a434fbb85643eb13856ae4", "packages/lit-hotkeys/skills/lit-hotkeys/SKILL.md": "ecd0100b52a00fc90ce71f244093da667d0c5ff78ecaf632d9db26f1c66c8e40", "packages/lit-hotkeys/skills/lit-hotkeys/references/app-hotkeys.md": "659ca9bebf4200bb693c693addb17bd5a943904e482514f2014f5ca426629e96", @@ -136,63 +131,60 @@ "packages/lit-hotkeys/src/controllers/hotkey.ts": "3b66db188eb2839ddeab56561bd9ebefdd1ea785490b5c150a81c5b3e96c7b21", "packages/lit-hotkeys/src/decorators/hotkey.ts": "2730f3178f6e5f6695fa0c2f8d25d7040c2ff841d3de486acffef86cfc76395f" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", - "outcome": "updated", - "reason": "KeyHoldController now accepts a getter key; the API table says to pass one for a key that changes.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/lit-hotkeys/skills/lit-hotkeys/SKILL.md:77", - "packages/lit-hotkeys/src/controllers/key-hold.ts" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/octane-hotkeys/skills/octane-hotkeys/SKILL.md": { - "fingerprint": "55fef972ae50ce2281d49d86e438163721f03630d5abdffcc8d339a18e445e48", + "fingerprint": "6cbabd9749a35db5ac7850d4942e5bf7fd031547b610e34a676b803101988d12", "snapshot": { "docs/framework/octane/guides/hotkeys-provider-and-scopes.md": "dc7777e8f789243ba9ebe3eadbd38d29de73e4f21326ef73ee6fe2fc3bd124a4", "docs/framework/octane/quick-start.md": "2ddb77d76eefae05feb5183206687bf4fd4ac3b18e43cc5e51a934b361702ea1", "packages/octane-hotkeys/skills/octane-hotkeys/SKILL.md": "2d8f1849449ed280c1d899737fa388e3f40528b04954d96fe33be1a11b422d44", "packages/octane-hotkeys/skills/octane-hotkeys/references/app-hotkeys.md": "d3fece68756bcaa2cf9d99454b655bf8dd0c0b1e8a8340c5b2cceae37390d523", - "packages/octane-hotkeys/src/HotkeysProvider.ts": "1a14911ef8b89e4cd1a680ca406c4f2fede02e97df85f378bf18200f79d6ec33", + "packages/octane-hotkeys/src/HotkeysProvider.ts": "095d2d94acc5ee9872bc8619b40602644f2da45cc3340aad6928d6b0f2c0c15f", "packages/octane-hotkeys/src/useAppHotkeys.ts": "4884113fa09d9869baf8af1f3bb07ba72558308a03136b3c1b59feb49ce2efbb", "packages/octane-hotkeys/src/useHotkey.ts": "9bdb7abb153435073d490d99e704e2e6ef5000f425308f640e3a4ef68317657e", "packages/octane-hotkeys/src/useHotkeys.ts": "f864ed03975e9930638cfe9025639619ebdb2c975a55e6950199cba86cb70476" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", - "outcome": "updated", - "reason": "Hint rows now say an element-targeted hotkey needs focus inside its element; registration status described as enabled and in an active scope.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/hotkeys/src/hotkey-manager.ts", - "packages/octane-hotkeys/skills/octane-hotkeys/SKILL.md" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/preact-hotkeys/skills/preact-hotkeys/SKILL.md": { - "fingerprint": "8bce0b7e47e8f642d0227363e184a401c78fc344beca15d037557642583b7cc8", + "fingerprint": "fb9f90f149cdc12c2a72c64b86017bfd85c420d5d640a0b1e73f42f48100a91b", "snapshot": { "docs/framework/preact/guides/hotkeys-provider-and-scopes.md": "a62b9cc8ee9e760ade6513e4c4db26c2dc690effa81d4917e68008b2cdfc8de0", "docs/framework/preact/quick-start.md": "ee1204420dd5acb198b2a15d239a062fee761fa0c6288913776c5e7e72b6bcb1", "packages/preact-hotkeys/skills/preact-hotkeys/SKILL.md": "d92ebbb92614e1c5f8b32c29bd651f64a71071e18e28fe2ff817d64fe57ee203", "packages/preact-hotkeys/skills/preact-hotkeys/references/app-hotkeys.md": "4388ff0528e9ea44f819896f2687ab962735479cdafaddd1e349dd1bf6dc5479", - "packages/preact-hotkeys/src/HotkeysProvider.tsx": "046840019caa15b1a0b8a3dad37585f9e92c9a1324a855e5b5921da074033978", + "packages/preact-hotkeys/src/HotkeysProvider.tsx": "8f4ca366a917f830f421dd126ae5437dfec17a2008a4670f5adf4d0bfa7453f7", "packages/preact-hotkeys/src/useAppHotkeys.ts": "023eff9348a9209a2e3e99a2b9847da3be72206f98150b478dae81a215059577", "packages/preact-hotkeys/src/useHotkey.ts": "3a557416b1d8699c018aea0e1787c1b9cbfc161bdba0ecdcce3fb2a5de44f5b9", "packages/preact-hotkeys/src/useHotkeys.ts": "23ccd2ee8566bc62a8bca00c8a1c40fc4d37c8363b891667ae391f3e44bfa97b", "packages/preact-hotkeys/src/utils.ts": "930ee95e471c879bfcc32886c31128d702d92719b23c4bd8c06aa21e324502e9" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", - "outcome": "updated", - "reason": "Hint rows now say an element-targeted hotkey needs focus inside its element; registration status described as enabled and in an active scope.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/hotkeys/src/hotkey-manager.ts", - "packages/preact-hotkeys/skills/preact-hotkeys/SKILL.md" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/react-hotkeys/skills/react-hotkeys/SKILL.md": { - "fingerprint": "f5a95f6bbeac7e398901b72d4fb3bca1889f65bbb9bd63741e78053e5ad24706", + "fingerprint": "0ec3b4b0a715056a491068c4d5945c7b0f450f11bbb9e704710b768274a4b9fb", "snapshot": { "docs/framework/react/guides/hotkeys-provider-and-scopes.md": "1d39ab010d5bd99955b761dc7298987b332e15846546990dcf2a1ecfb5068469", "docs/framework/react/quick-start.md": "d587fccff19a0cf3c131f832a8eb423d5d4892e78e521aa856fd23485015afe7", "packages/react-hotkeys/skills/react-hotkeys/SKILL.md": "cfdd50d7cfdca297ce856fbf4c3510ca7d25759eecf7da285b9a7c5f4e7ed0dd", "packages/react-hotkeys/skills/react-hotkeys/references/app-hotkeys.md": "e45854b2346700249569ce418b0bb5593cd00a018336a60c9ed5cedeb8d49b3e", - "packages/react-hotkeys/src/HotkeysProvider.tsx": "4e5604bfc2907232bdab60c6ed24a28f4b363dfac1c19883a0c65db6b5ac5bf1", + "packages/react-hotkeys/src/HotkeysProvider.tsx": "21e03be367d39ac92fcb6de10ffea4daad66584d4a7aba6b8c4faa3933874efd", "packages/react-hotkeys/src/useAppHotkeys.ts": "eec5d9a2e281ab8892c56b9482cd930a06deb176581bba9cb409faa35b1bee91", "packages/react-hotkeys/src/useHotkey.ts": "01c7e0b8de39f75028a6eec04abf5eb2cf6fb410177a24603e719eb90c030661", "packages/react-hotkeys/src/useHotkeys.ts": "18fc224f0ec5efee2553fde4840dda78ec0ec7e5dcb2f812279bafcc2384184e", @@ -215,100 +207,97 @@ "packages/react-hotkeys/tests/skills/shortcut-settings/solution.tsx": "23a9dd46565c8617361bad3bcf24903c6d2d0c1db8c5e16b66ee5a7bc02fc62b", "packages/react-hotkeys/tests/skills/shortcut-settings/task.md": "1104e51ba1cb603b145b5eece30197d2e2936e21b1592ea75004244d49fcadd1" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", - "outcome": "updated", - "reason": "HotkeysProvider and the hooks now ship with 'use client', so a server layout can render HotkeysProvider without a wrapper. Hooks still run only in client components, which the skill keeps.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "scripts/verify-package.ts", - "Next.js 16.4.3 build with a server layout rendering HotkeysProvider and HotkeysDevtoolsPanel passes, and K fires in next start and next dev; published 0.17.0 fails with \"createContext is not a function\"", - "pnpm test:lib for @tanstack/react-hotkeys passes, including the skill task checks" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": { - "fingerprint": "88cfb62da79d753f62eebbc66b5c386aaec4b4b7513776811da0fcda1d4202e5", + "fingerprint": "e1bd2285581f4baf2b97b031e0b59a4c5d9a5a7efbc0e11b3ece81df73d2d7db", "snapshot": { "docs/framework/solid/guides/hotkeys-provider-and-scopes.md": "4c68bc0acc2a0dfafabf52cb36ac787dc7e197b69c2e9641c1c94ed8cc32f796", "docs/framework/solid/quick-start.md": "292bf5cc6300e899c6f382e263665a488899fa816bb13ad4994420e390bb2420", "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": "993952b562135b26ef21c97fb5caa2886f405370b93de22db30f689ebb4199d7", "packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md": "d3dda6cd9aa0a8655aa43f017490797ad3d2de42206446b2403363873b84b133", - "packages/solid-hotkeys/src/HotkeysProvider.tsx": "3e6ffd504bfb44458c880cba41ac5fc146ba1de88b10854119f32a71134f2953", + "packages/solid-hotkeys/src/HotkeysProvider.tsx": "407d6522c55e22adb76b77adeea75ae05c1faa0008233280a49ce40fac0dbca8", "packages/solid-hotkeys/src/appHotkeys.ts": "5d44d8ce952af7a3e522fd42511a963e9af75c4229a2449cde16a180c6f030f2", "packages/solid-hotkeys/src/createHotkey.ts": "afef9eab39dee5a7500fe2f630132ea7f72e3df49fa1abacb9b035c58c5bb971", "packages/solid-hotkeys/src/createHotkeys.ts": "a84dbede2c8bdda995d73a02353619a721282e1a92a44127108da54d1d0b821a" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", - "outcome": "updated", - "reason": "Hint rows now say an element-targeted hotkey needs focus inside its element; registration status described as enabled and in an active scope.", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/hotkeys/src/hotkey-manager.ts", - "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "skill:packages/svelte-hotkeys/skills/svelte-hotkeys/SKILL.md": { - "fingerprint": "aaa74fe01f59f06b3a7eab35118eea3d617ff1e626139d07249ed8027641e64d", + "fingerprint": "3adb1b93b28217e91bfd446af439e2ecfd8132527ca2f8c29380c3e2c4d4ab79", "snapshot": { "docs/framework/svelte/guides/hotkeys-provider-and-scopes.md": "49c87f7d1e0fdcef47d08af80339b26c7e560ea2265e0a5c83983d8b157432fd", "docs/framework/svelte/quick-start.md": "dac9d02db91eaf3aed4eba39d6fb31a4a460bb3f84ba85c0576d3573b5ecf3d1", "packages/svelte-hotkeys/skills/svelte-hotkeys/SKILL.md": "d99ef59e6a695be73d48b954a337d5c91f471268bad8da590a7b4d72f1a8a1c4", "packages/svelte-hotkeys/skills/svelte-hotkeys/references/app-hotkeys.md": "fa0dd67192d53cc1a6cacc87b68523a9a2c94ca0c27b90b10a46861643885a2e", - "packages/svelte-hotkeys/src/HotkeysCtx.ts": "117d9625215435b7a3eb6c5a9f23792a02548059ba114b5737a6b9fb610b276c", + "packages/svelte-hotkeys/src/HotkeysCtx.ts": "cb6ec20db21783583aa330bb2f41130f415a2185af8fbe84f9b2332a73f8ab1d", "packages/svelte-hotkeys/src/HotkeysProvider.svelte": "eb7fb67907a153aae3f0ce61e951e8ea5df46468ae06eb55ad696500839124a3", "packages/svelte-hotkeys/src/createHotkey.svelte.ts": "27959499674a4dbfeb048073807baf540586d0f0a63a0dbdde0246c7aa939706", "packages/svelte-hotkeys/src/createHotkeyRecorder.svelte.ts": "c18505d6f49d5c2300ab38f3de14f9d007d5c3857b503168d0bad6ae85479ffe", "packages/svelte-hotkeys/src/createHotkeys.svelte.ts": "39f0c7ff089f96d616583e011172ff9500211de9a97367b7148b3e8ab3be35a3", "packages/svelte-hotkeys/src/getAppHotkeys.svelte.ts": "a6a995eea5b1334baef1909da68dea08f8df4e29819bada3549c9a0be86e6dcb" }, - "head": "614339f8f59a0776451f4ccc64cb5cadc20fd145", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Recorder start without a document and Svelte recorder teardown timing are internal; the skill describes neither.", - "evidence": ["packages/svelte-hotkeys/src/createHotkeyRecorder.svelte.ts"] + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", + "evidence": [ + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." + ] }, "skill:packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md": { - "fingerprint": "1b9ebaa1dcfb7b147bbed4cf7ac118c3d9eecb27b8c278bb42e2909a55d9c9f2", + "fingerprint": "f8f022b5b50955435a3b1696d9e6968bd4bf982c33ab7bb124ee78cdc83aaed1", "snapshot": { "docs/framework/vue/guides/hotkeys-provider-and-scopes.md": "405eb90a8209f439db06d2e3d861acaa324b6598488c1705575ad56dccbb6ad3", "docs/framework/vue/quick-start.md": "80bedac58ab9aee3b4bc5f59582b5b836c37fe14f08ab670eababf88a45e76c2", "packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md": "565e5d5f33ed757855f0a3bcc78d65a191e52c1e3f33f9bf3dc534a4c0e70d3f", "packages/vue-hotkeys/skills/vue-hotkeys/references/app-hotkeys.md": "326ee1fe20c1d75a4ad720f69a3a4df9b9e3a057826115e955deb0ed25d88f9a", "packages/vue-hotkeys/src/HotkeysProvider.tsx": "ad40dec6e2889ca62f3fda57fcbf67e940f4dab5a26cdc69ff99777d2d2e56af", - "packages/vue-hotkeys/src/HotkeysProviderContext.ts": "9ba86a812416beebe46c86d9e0ffff996e36b7fcb074f6d92ce771c326f1f2c9", + "packages/vue-hotkeys/src/HotkeysProviderContext.ts": "14a7d15fa69fc059eccb5fa5e663e533d3437d7d11d89d452ffffd1a570774ea", "packages/vue-hotkeys/src/useAppHotkeys.ts": "924ed5dedd6451332545026bd94441eb7f72cfb4f3c2c07880f34ee652574967", "packages/vue-hotkeys/src/useHotkey.ts": "a1c8ed560f921e3af2adf0f8e54e9df8e6516516c6697f19a52bf629ec62e106", "packages/vue-hotkeys/src/useHotkeyRecorder.ts": "7505949604490126567f9b61bb4d5c7d5ad05c2004e67a33dba979651014176c", "packages/vue-hotkeys/src/useHotkeys.ts": "f971e9938eca3188b3af0fcc96d095330f9f6abfd70cb848d2de5c80f8d09639" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "The skill still holds: its default advice is to call composables synchronously in setup, and it makes no SSR, effectScope, or useKeyHold-key claims that this fix changes.", + "reason": "Skill guidance is unaffected: stores keep the same state/get/setState/subscribe API, providers behave the same, and warnings still appear in development.", "evidence": [ - "packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md:76", - "packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md:70" + "grep of skills for store, subscribe, warning, and checkHotkey wording; the two warning mentions remain accurate." ] }, "planning:_artifacts": { - "fingerprint": "0be894085ff8415c5482951d2b5f5709fa0a721b76248abd70fd5e7e4550deec", + "fingerprint": "175e59d24dd00cf68a89d8893c18c368a5a9e8f95f2b0efab5aeca1b72dabebd", "snapshot": { "_artifacts/domain_map.yaml": "2563ba9b2d472df81206a62b1add175bd3341b9bb99bd51869c305746f2a4a46", "_artifacts/skill_spec.md": "58e19f35836571a37984e4435168651a2936dffb48ffe01cc7fddcc0eafea916", "_artifacts/skill_tree.yaml": "c7e0b30458bd11e3a52e728163838166def6ee64419f1b632f1ea36a37e573af", - "docs/framework/alpine/guides/app-hotkeys.md": "536c327d4d9f80219a0dcdd04bb36b684c35567ad76f86327287ae6a21f03199", + "docs/framework/alpine/guides/app-hotkeys.md": "8cb047cb3397588fdbde4684302a74f4c95dd4b37924f6ee761cb19becfeb22b", "docs/framework/alpine/quick-start.md": "de471401f70d66c2a81182f917f6eef02d808bdda1a2bc6268a6aa1e5365000c", "docs/framework/angular/guides/provide-hotkeys-and-scopes.md": "003fba191e3d13d4466754644c4d2174a550f48d437028bc163ba6acca6546ad", "docs/framework/angular/quick-start.md": "d1cc5f91cd50b579c8a4bd9811e76862308855ce602556e4fa36561bc7d62822", - "docs/framework/ember/guides/app-hotkeys.md": "5162292b3d62257c757ea0146fb5b1cc8c85b130081472b3675be077e8c898de", + "docs/framework/ember/guides/app-hotkeys.md": "55e039d2123ed08ce41eae438293816885d705d79620df68f4aef339f632e2c2", "docs/framework/ember/quick-start.md": "cabdc0cbd2b9ac6d4d7f9f2c8b8d3fc6ef2ac8c23df4cd8ebc9745c99023f8c8", - "docs/framework/lit/guides/app-hotkeys.md": "0a2b2dafa00bb21f575d4ac752f0b54803a69fff12a4391cf3a86e59f6471e1f", + "docs/framework/lit/guides/app-hotkeys.md": "ab56f3c56e60dc8c12253eb9c48156438dd802e6514eaf2c07c4efa821e153e8", "docs/framework/lit/quick-start.md": "cb51d2c81a8d9288d435af6e54366188c4175b9f18a434fbb85643eb13856ae4", "docs/framework/octane/guides/hotkeys-provider-and-scopes.md": "dc7777e8f789243ba9ebe3eadbd38d29de73e4f21326ef73ee6fe2fc3bd124a4", "docs/framework/octane/quick-start.md": "2ddb77d76eefae05feb5183206687bf4fd4ac3b18e43cc5e51a934b361702ea1", "docs/framework/preact/guides/hotkeys-provider-and-scopes.md": "a62b9cc8ee9e760ade6513e4c4db26c2dc690effa81d4917e68008b2cdfc8de0", "docs/framework/preact/quick-start.md": "ee1204420dd5acb198b2a15d239a062fee761fa0c6288913776c5e7e72b6bcb1", - "docs/framework/react/guides/app-hotkeys.md": "703f9dcea282a1b5cd7cabcd304a233cfda8d79206d3d66d3b024142e5175d24", + "docs/framework/react/guides/app-hotkeys.md": "f518acca820445dfefde7a8db57f492022def97b96041f1d16573a2851ffa03e", "docs/framework/react/guides/cheat-sheet-ui-helpers.md": "a3f793e81c6a6e1e6aaf3d63c6b79114ea7d6f461123d371c0b4f0a23ffd88bc", "docs/framework/react/guides/custom-hotkey-recording.md": "ea9b70d7bbeb5846b0284e843960bf667b2ae6ffbe85742fb5ba332de170ca29", "docs/framework/react/guides/hotkeys-provider-and-scopes.md": "1d39ab010d5bd99955b761dc7298987b332e15846546990dcf2a1ecfb5068469", - "docs/framework/react/guides/hotkeys.md": "4d12140117ce4ceb3fb9bc17867efe30ae7085609714800e962c927ce07f019f", + "docs/framework/react/guides/hotkeys.md": "1591b315e7f0581265287b04210978fd4b0b85487070e744f7f52e1648e01ebf", "docs/framework/react/guides/sequences.md": "e66231380dab6222508a1305d83586459b59953c2ecc47b9549e3cb29ffcd355", "docs/framework/react/quick-start.md": "d587fccff19a0cf3c131f832a8eb423d5d4892e78e521aa856fd23485015afe7", "docs/framework/solid/guides/hotkeys-provider-and-scopes.md": "4c68bc0acc2a0dfafabf52cb36ac787dc7e197b69c2e9641c1c94ed8cc32f796", @@ -317,20 +306,20 @@ "docs/framework/svelte/quick-start.md": "dac9d02db91eaf3aed4eba39d6fb31a4a460bb3f84ba85c0576d3573b5ecf3d1", "docs/framework/vue/guides/hotkeys-provider-and-scopes.md": "405eb90a8209f439db06d2e3d861acaa324b6598488c1705575ad56dccbb6ad3", "docs/framework/vue/quick-start.md": "80bedac58ab9aee3b4bc5f59582b5b836c37fe14f08ab670eababf88a45e76c2", - "docs/guides/sensible-defaults.md": "2f03b09f3d0f8af626d1ce52772148662ae0a4a2f03b1b428fb227cd7580e8bf", + "docs/guides/sensible-defaults.md": "f104881097a435a8f4874f969cef3d59e2ef17ec97f5a8c121ba303d036539b7", "packages/alpine-hotkeys/skills/alpine-hotkeys/SKILL.md": "8c0a3ab25f684d8445925d43dbadabb4e491b12001d78811cbf0d3f41db044c8", "packages/alpine-hotkeys/skills/alpine-hotkeys/references/app-hotkeys.md": "fdc12aafd6098bde8b4e7f5d8a8afb12227ac99cd753e06fc27401d5d8c8fead", "packages/alpine-hotkeys/src/createAppHotkeys.ts": "f712ddb3354230197eb54d6f270d00a41c2b889e60690e70853569fe1a5207ea", "packages/alpine-hotkeys/src/createHotkey.ts": "3ee3029171f53f3693980bc975252b3decea27c1920ccc0ec1dd8fe2b3810c9b", "packages/alpine-hotkeys/src/createHotkeysScope.ts": "8fb6d17e8fe155327fdac17f9d057d6538c84474c1c464ee25409c23d52e7a85", "packages/alpine-hotkeys/src/hotkeysPlugin.ts": "35ffb8b772a178690d956f3b3a165b577c40d1723e186f5ffdef4a985f7be90b", - "packages/alpine-hotkeys/src/scope.ts": "33b2731c6f3754315a6b31fa8dff27805605835c3ae34aa62f92f6fd44d898a6", + "packages/alpine-hotkeys/src/scope.ts": "6de5d72206289c2ad4b3719cd69474450770cb006abf951f1419ed70a58bdb7c", "packages/angular-hotkeys/skills/angular-hotkeys/SKILL.md": "2b0e9e34fb1338d2db1657beffd8664906ef200388854cfc2895cf9f428e00d9", "packages/angular-hotkeys/skills/angular-hotkeys/references/app-hotkeys.md": "5fe1b12a519e8ca5087d78d47050f7a2ec0c70bb9b7d6ebcbb050ee099e3effe", - "packages/angular-hotkeys/src/hotkeys-provider.ts": "1e549ef79db70b5818326068c78ada5d410fdc680a4cb7ca12bdfd9d0de5d0dc", + "packages/angular-hotkeys/src/hotkeys-provider.ts": "778e52fcefb623255a58aac9ea9cc6267e1c9f127ef5bdfeb3594c1db16594de", "packages/angular-hotkeys/src/injectAppHotkeys.ts": "3161186944b142feab034a1899b76b178700f4ef371bfffbb694b9ed5a191d32", "packages/angular-hotkeys/src/injectHotkey.ts": "b3651b50beb5b94cdadaf3339be17984e79277222918550f53448fca511e0af6", - "packages/angular-hotkeys/src/injectHotkeyRecorder.ts": "46db59ccc34f8158c98328ae152f47cdd182cdeef951bf9dc5c44fa12de1b305", + "packages/angular-hotkeys/src/injectHotkeyRecorder.ts": "f99727fccffca18b9c959611c29826e4ae4fa4767de53621cb8fca8e95646c48", "packages/angular-hotkeys/src/injectHotkeys.ts": "cecc7d127934caaab72a694fe527ef7a7b31e660f98cc077dabacd5506e11619", "packages/ember-hotkeys/skills/ember-hotkeys/SKILL.md": "ba4e5144d1b1e5435ffda905009c40b343b8cd829a93ec9553afc576d2388acc", "packages/ember-hotkeys/skills/ember-hotkeys/references/app-hotkeys.md": "b6200c97df720970117aefe3d2003817fdf7aa4d869437341e75245dcd0c9602", @@ -342,13 +331,13 @@ "packages/ember-hotkeys/src/useHotkeys.ts": "963345b3720ddefec8677b9b9d9dfa2b6346e22b32f9f2034d406b43e5c5ccf8", "packages/hotkeys/skills/app-hotkeys/SKILL.md": "1717fce82ea43b4947da276026504eb8832dc3094cc41cc7572701a7f27b5e58", "packages/hotkeys/skills/app-hotkeys/references/recording.md": "70dfa06d396a49e4a6033ec4f571ccdb9a74a439e989803c6120f219f720b8ad", - "packages/hotkeys/skills/hotkeys-core/SKILL.md": "507ec6b32b7b1836276ee6527acdb3240f998d72dfb90f07c9e9820e688e8714", + "packages/hotkeys/skills/hotkeys-core/SKILL.md": "a45229edb827101dd019587c5e20965954a508eb5ba57ef6680e53d084585df8", "packages/hotkeys/skills/hotkeys-core/references/scopes.md": "1ae616ff7ce92d9679bbd0752ada572c2060c33ea7e7e638bfcc9d5425ac6bfa", "packages/hotkeys/skills/hotkeys-core/references/testing.md": "90e6512868c194f6c906711cd16882c204600a3118b08b7a101ff6b409012538", - "packages/hotkeys/src/app-hotkeys.ts": "5bee8b0042a7385c8963aabf9b0ca7b6aad5ef8aab41b2759961a7ac6cf6849c", + "packages/hotkeys/src/app-hotkeys.ts": "cd3e57af64f6292d40c36a44af5c5bb361af4739f2fb90a28a62613385131aa5", "packages/hotkeys/src/conflicts.ts": "750fe91126e87f062500d11d9bf19116d77c8509fdaa7644c847d49f1cbf40a3", - "packages/hotkeys/src/hotkey-manager.ts": "2507330b7cdcd986ae624d5ad9526516d48d9bc34228d7de9efd7f4bc2440229", - "packages/hotkeys/src/hotkey-recorder.ts": "972b374bc2e18a06c09da8595ea29dfa13d62a28c2e503174eb18a02fcc40daf", + "packages/hotkeys/src/hotkey-manager.ts": "0c92ebd5c921d1d86c1f6187d29e0f3fcda025d2f68b3d5ec9d3c199e10a3810", + "packages/hotkeys/src/hotkey-recorder.ts": "7d479391753ffa97e69a7d7cb994cb7053a7ffb3e0aed6dfbfb2dbbdf51a3d24", "packages/hotkeys/src/match.ts": "3a50921a68f79183b4ffac98e07e7fdf043711bc071f419c9cdc03422d25f268", "packages/lit-hotkeys/skills/lit-hotkeys/SKILL.md": "ecd0100b52a00fc90ce71f244093da667d0c5ff78ecaf632d9db26f1c66c8e40", "packages/lit-hotkeys/skills/lit-hotkeys/references/app-hotkeys.md": "659ca9bebf4200bb693c693addb17bd5a943904e482514f2014f5ca426629e96", @@ -358,20 +347,20 @@ "packages/lit-hotkeys/src/decorators/hotkey.ts": "2730f3178f6e5f6695fa0c2f8d25d7040c2ff841d3de486acffef86cfc76395f", "packages/octane-hotkeys/skills/octane-hotkeys/SKILL.md": "2d8f1849449ed280c1d899737fa388e3f40528b04954d96fe33be1a11b422d44", "packages/octane-hotkeys/skills/octane-hotkeys/references/app-hotkeys.md": "d3fece68756bcaa2cf9d99454b655bf8dd0c0b1e8a8340c5b2cceae37390d523", - "packages/octane-hotkeys/src/HotkeysProvider.ts": "1a14911ef8b89e4cd1a680ca406c4f2fede02e97df85f378bf18200f79d6ec33", + "packages/octane-hotkeys/src/HotkeysProvider.ts": "095d2d94acc5ee9872bc8619b40602644f2da45cc3340aad6928d6b0f2c0c15f", "packages/octane-hotkeys/src/useAppHotkeys.ts": "4884113fa09d9869baf8af1f3bb07ba72558308a03136b3c1b59feb49ce2efbb", "packages/octane-hotkeys/src/useHotkey.ts": "9bdb7abb153435073d490d99e704e2e6ef5000f425308f640e3a4ef68317657e", "packages/octane-hotkeys/src/useHotkeys.ts": "f864ed03975e9930638cfe9025639619ebdb2c975a55e6950199cba86cb70476", "packages/preact-hotkeys/skills/preact-hotkeys/SKILL.md": "d92ebbb92614e1c5f8b32c29bd651f64a71071e18e28fe2ff817d64fe57ee203", "packages/preact-hotkeys/skills/preact-hotkeys/references/app-hotkeys.md": "4388ff0528e9ea44f819896f2687ab962735479cdafaddd1e349dd1bf6dc5479", - "packages/preact-hotkeys/src/HotkeysProvider.tsx": "046840019caa15b1a0b8a3dad37585f9e92c9a1324a855e5b5921da074033978", + "packages/preact-hotkeys/src/HotkeysProvider.tsx": "8f4ca366a917f830f421dd126ae5437dfec17a2008a4670f5adf4d0bfa7453f7", "packages/preact-hotkeys/src/useAppHotkeys.ts": "023eff9348a9209a2e3e99a2b9847da3be72206f98150b478dae81a215059577", "packages/preact-hotkeys/src/useHotkey.ts": "3a557416b1d8699c018aea0e1787c1b9cbfc161bdba0ecdcce3fb2a5de44f5b9", "packages/preact-hotkeys/src/useHotkeys.ts": "23ccd2ee8566bc62a8bca00c8a1c40fc4d37c8363b891667ae391f3e44bfa97b", "packages/preact-hotkeys/src/utils.ts": "930ee95e471c879bfcc32886c31128d702d92719b23c4bd8c06aa21e324502e9", "packages/react-hotkeys/skills/react-hotkeys/SKILL.md": "cfdd50d7cfdca297ce856fbf4c3510ca7d25759eecf7da285b9a7c5f4e7ed0dd", "packages/react-hotkeys/skills/react-hotkeys/references/app-hotkeys.md": "e45854b2346700249569ce418b0bb5593cd00a018336a60c9ed5cedeb8d49b3e", - "packages/react-hotkeys/src/HotkeysProvider.tsx": "4e5604bfc2907232bdab60c6ed24a28f4b363dfac1c19883a0c65db6b5ac5bf1", + "packages/react-hotkeys/src/HotkeysProvider.tsx": "21e03be367d39ac92fcb6de10ffea4daad66584d4a7aba6b8c4faa3933874efd", "packages/react-hotkeys/src/useAppHotkeys.ts": "eec5d9a2e281ab8892c56b9482cd930a06deb176581bba9cb409faa35b1bee91", "packages/react-hotkeys/src/useHotkey.ts": "01c7e0b8de39f75028a6eec04abf5eb2cf6fb410177a24603e719eb90c030661", "packages/react-hotkeys/src/useHotkeys.ts": "18fc224f0ec5efee2553fde4840dda78ec0ec7e5dcb2f812279bafcc2384184e", @@ -395,13 +384,13 @@ "packages/react-hotkeys/tests/skills/shortcut-settings/task.md": "1104e51ba1cb603b145b5eece30197d2e2936e21b1592ea75004244d49fcadd1", "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": "993952b562135b26ef21c97fb5caa2886f405370b93de22db30f689ebb4199d7", "packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md": "d3dda6cd9aa0a8655aa43f017490797ad3d2de42206446b2403363873b84b133", - "packages/solid-hotkeys/src/HotkeysProvider.tsx": "3e6ffd504bfb44458c880cba41ac5fc146ba1de88b10854119f32a71134f2953", + "packages/solid-hotkeys/src/HotkeysProvider.tsx": "407d6522c55e22adb76b77adeea75ae05c1faa0008233280a49ce40fac0dbca8", "packages/solid-hotkeys/src/appHotkeys.ts": "5d44d8ce952af7a3e522fd42511a963e9af75c4229a2449cde16a180c6f030f2", "packages/solid-hotkeys/src/createHotkey.ts": "afef9eab39dee5a7500fe2f630132ea7f72e3df49fa1abacb9b035c58c5bb971", "packages/solid-hotkeys/src/createHotkeys.ts": "a84dbede2c8bdda995d73a02353619a721282e1a92a44127108da54d1d0b821a", "packages/svelte-hotkeys/skills/svelte-hotkeys/SKILL.md": "d99ef59e6a695be73d48b954a337d5c91f471268bad8da590a7b4d72f1a8a1c4", "packages/svelte-hotkeys/skills/svelte-hotkeys/references/app-hotkeys.md": "fa0dd67192d53cc1a6cacc87b68523a9a2c94ca0c27b90b10a46861643885a2e", - "packages/svelte-hotkeys/src/HotkeysCtx.ts": "117d9625215435b7a3eb6c5a9f23792a02548059ba114b5737a6b9fb610b276c", + "packages/svelte-hotkeys/src/HotkeysCtx.ts": "cb6ec20db21783583aa330bb2f41130f415a2185af8fbe84f9b2332a73f8ab1d", "packages/svelte-hotkeys/src/HotkeysProvider.svelte": "eb7fb67907a153aae3f0ce61e951e8ea5df46468ae06eb55ad696500839124a3", "packages/svelte-hotkeys/src/createHotkey.svelte.ts": "27959499674a4dbfeb048073807baf540586d0f0a63a0dbdde0246c7aa939706", "packages/svelte-hotkeys/src/createHotkeyRecorder.svelte.ts": "c18505d6f49d5c2300ab38f3de14f9d007d5c3857b503168d0bad6ae85479ffe", @@ -410,16 +399,18 @@ "packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md": "565e5d5f33ed757855f0a3bcc78d65a191e52c1e3f33f9bf3dc534a4c0e70d3f", "packages/vue-hotkeys/skills/vue-hotkeys/references/app-hotkeys.md": "326ee1fe20c1d75a4ad720f69a3a4df9b9e3a057826115e955deb0ed25d88f9a", "packages/vue-hotkeys/src/HotkeysProvider.tsx": "ad40dec6e2889ca62f3fda57fcbf67e940f4dab5a26cdc69ff99777d2d2e56af", - "packages/vue-hotkeys/src/HotkeysProviderContext.ts": "9ba86a812416beebe46c86d9e0ffff996e36b7fcb074f6d92ce771c326f1f2c9", + "packages/vue-hotkeys/src/HotkeysProviderContext.ts": "14a7d15fa69fc059eccb5fa5e663e533d3437d7d11d89d452ffffd1a570774ea", "packages/vue-hotkeys/src/useAppHotkeys.ts": "924ed5dedd6451332545026bd94441eb7f72cfb4f3c2c07880f34ee652574967", "packages/vue-hotkeys/src/useHotkey.ts": "a1c8ed560f921e3af2adf0f8e54e9df8e6516516c6697f19a52bf629ec62e106", "packages/vue-hotkeys/src/useHotkeyRecorder.ts": "7505949604490126567f9b61bb4d5c7d5ad05c2004e67a33dba979651014176c", "packages/vue-hotkeys/src/useHotkeys.ts": "f971e9938eca3188b3af0fcc96d095330f9f6abfd70cb848d2de5c80f8d09639" }, - "head": "210b3fb5577b3e7381a7c74d70e87cf395ae6682", + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", "outcome": "no-change", - "reason": "Guide rewording of the fallback rule; no planned skill covers it.", - "evidence": ["docs/guides/sensible-defaults.md"] + "reason": "Skill coverage is unchanged; no new public API.", + "evidence": [ + "formatKeyForDisplay removed; triggerRegistration moved to devtools." + ] }, "source:.changeset/intent-skills.md": { "fingerprint": "a3f3a7466ee28fed505a518e9cd18cfda96a2282d207d73317b00d60b4430f62", @@ -657,24 +648,28 @@ "evidence": ["docs/framework/vue/reference/functions/useHotkeyHint.md"] }, "source:docs/reference/classes/HotkeyManager.md": { - "fingerprint": "2e001a0c8ee96cfa4fd8fbaf62b3ff703401ab7925f881785eec132fa89e0363", + "fingerprint": "44437db901303773f0574349e2d674c0ade6a4b2de6728adfd47202b51e87186", "snapshot": { - "docs/reference/classes/HotkeyManager.md": "af4aa6c79aa6891e36ed1158672a00a6681859b363554436aed724cd1d2c8a6e" + "docs/reference/classes/HotkeyManager.md": "cf4c9adde15060363c12db2d9096319a5312c0bd3d425207876086beeb08b4eb" }, - "head": "1bce8190963414ca101441f91f103ee97eccd7f0", - "outcome": "out-of-scope", - "reason": "Test or generated reference file; no skill covers it.", - "evidence": ["docs/reference/classes/HotkeyManager.md"] + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] }, "source:docs/reference/functions/getHotkeyManager.md": { - "fingerprint": "3fb605a9f34e5ffb27f7a6ec534b3ce8d15bfb4a9351c8b9cc1af387fc9770a9", + "fingerprint": "b126cc7077f710c0227f97e7a2f27b5730b9044af4e24203db9f502a29ecd3dd", "snapshot": { - "docs/reference/functions/getHotkeyManager.md": "6b6eb89ac5be86657a764ae482ed819617031f88765928050ecbadba0be750a6" + "docs/reference/functions/getHotkeyManager.md": "e871efd6695983ab23285354e34b31cd782ca5db2e2fc77d44d022c721d79118" }, - "head": "1bce8190963414ca101441f91f103ee97eccd7f0", - "outcome": "out-of-scope", - "reason": "Test or generated reference file; no skill covers it.", - "evidence": ["docs/reference/functions/getHotkeyManager.md"] + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] }, "source:examples/alpine/kitchen-sink/index.html": { "fingerprint": "cafd21ca3305c89ad47e5c4eee4ce63feed831a2b3524c5b3cd756fee53a2592", @@ -847,14 +842,16 @@ "evidence": ["packages/alpine-hotkeys/tests/alpine-hotkeys.test.ts"] }, "source:packages/angular-hotkeys/src/injectHotkeyHint.ts": { - "fingerprint": "c63e2a9c79c4d18416e114a81e266db55e4c1757e1646dc561bf6a8cfbb27fc5", + "fingerprint": "66e66545af303788d81817e14877771d2ff310e41b9089f0fb7b053ad629c367", "snapshot": { - "packages/angular-hotkeys/src/injectHotkeyHint.ts": "f165695038618a9fe06df78768e5e9ebfc4cf08c6fd05232423e802f06d8b968" + "packages/angular-hotkeys/src/injectHotkeyHint.ts": "29b4c118bbeb85cadfbefb402d34c2ac741b0371e64ad950e21f901aeb069058" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["packages/angular-hotkeys/src/injectHotkeyHint.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/angular-hotkeys/tests/injectHotkeyHint.test.ts": { "fingerprint": "7c23d3e44ca48c830f5e5298173e523ba8fc3a6864d359e34bb2be484fcc4fcb", @@ -917,14 +914,16 @@ "evidence": ["packages/lit-hotkeys/tests/hotkey-hint.spec.ts"] }, "source:packages/octane-hotkeys/src/useHotkeyHint.ts": { - "fingerprint": "10736a6674ada040f25a5c71fe0525b6d7baa9b74d0f4b2b23e8741af5883231", + "fingerprint": "a79eb2cad5c035ff2eabcae4d0c5e94ea90463b5c9d4170c7ceb63ec657b60a3", "snapshot": { - "packages/octane-hotkeys/src/useHotkeyHint.ts": "f3e5f5d85948f5fe3ff222c5f1483e493e85353499a97afab4aa8105d1181b5e" + "packages/octane-hotkeys/src/useHotkeyHint.ts": "fcfdbbc70d06541993688eb0d5da8be6dfb38a1a3475e78867439034fe59c61e" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["packages/octane-hotkeys/src/useHotkeyHint.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/octane-hotkeys/tests/octane-hotkeys.test.ts": { "fingerprint": "e7005d45a48c6e00b3333e498abaeca3b2ad7a121e5c4c55b037935c8e1c32aa", @@ -937,14 +936,16 @@ "evidence": ["packages/octane-hotkeys/tests/octane-hotkeys.test.ts"] }, "source:packages/preact-hotkeys/src/useHotkeyHint.ts": { - "fingerprint": "78eaa2b08c86d7da8deac7074d59122a6b9fddc0a9c01eac85b781fdc58fd41a", + "fingerprint": "74dc4822d56d8a9c7b66929946951dfb3887be85163c56d6d58fa9f2f7aaa6bd", "snapshot": { - "packages/preact-hotkeys/src/useHotkeyHint.ts": "fe0e029ef9667423aac24329a8e3c08474a46d14aaf9181a4d72755fd827bb6b" + "packages/preact-hotkeys/src/useHotkeyHint.ts": "2b9436eeb3776d604f4b02cff7bbe204aaeb44cb4268fb6e5d5b028fd8c76a23" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["packages/preact-hotkeys/src/useHotkeyHint.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/preact-hotkeys/tests/appHotkeys.test.tsx": { "fingerprint": "3b8ab01302de82b3cbdcf6d5e2a3758bac18d6ffb6466f95d5a93c5d5756c8e9", @@ -967,16 +968,15 @@ "evidence": ["packages/preact-hotkeys/tests/useHotkeyHint.test.tsx"] }, "source:packages/react-hotkeys/src/useHotkeyHint.ts": { - "fingerprint": "9ab705624e848526f4e4a1bf2b66c4326eb3bbe252c8e598dc031a188bca2c0f", + "fingerprint": "b898f1df1bc56a6779ba346c52a96e1ce4d1cb2d629a98c7d0bc33d12e402ef7", "snapshot": { - "packages/react-hotkeys/src/useHotkeyHint.ts": "39c39deb13b62e0b7bdf065d4c5b19419b7b682185de796479e5bfac9888a916" + "packages/react-hotkeys/src/useHotkeyHint.ts": "64d9768a0bc689d817dca5e688781852317ca7ed873beebdb6e99ac65cd895c0" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useHotkeyHint.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/tests/appHotkeys.test.tsx": { @@ -1000,14 +1000,16 @@ "evidence": ["packages/react-hotkeys/tests/useHotkeyHint.test.tsx"] }, "source:packages/solid-hotkeys/src/createHotkeyHint.ts": { - "fingerprint": "4180b0d6c324483d380e9168c4fb1a11eee3bb130df87e372b14b7fabc8e40b3", + "fingerprint": "b8313f0e6b3a109bc2aa2645629ec609371a609a2ed63c6fa8dc7d1796d8ac20", "snapshot": { - "packages/solid-hotkeys/src/createHotkeyHint.ts": "715dea3b85dcbc7a448d978b2b316452d4f50b28f13b87a354d1ab2cbb1fd317" + "packages/solid-hotkeys/src/createHotkeyHint.ts": "55de191118e6e3ea5ff113355e9010d8b125931eb47bbab7386be0a97b8e5c2a" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["packages/solid-hotkeys/src/createHotkeyHint.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/solid-hotkeys/tests/createHotkeyHint.test.tsx": { "fingerprint": "a7510a58a1dc5db0a12df33541f32b5891353c27670915c10a64a5266976439e", @@ -1060,260 +1062,280 @@ "evidence": ["packages/vue-hotkeys/tests/hints.test.ts"] }, "source:docs/framework/alpine/guides/hotkeys.md": { - "fingerprint": "28c1203dfc3cb40a9579e7c007cad2c7e91b5eb2b35651235beae2563a9e0bad", + "fingerprint": "ef17a8f64cf479ebeede5983150f8d382b2d1810e6e3bfbfe4d193608f0a3855", "snapshot": { - "docs/framework/alpine/guides/hotkeys.md": "e54c37d6d9f84176a7ed23ad2a32803b8d7c6922f8451ea766a9611577629d15" + "docs/framework/alpine/guides/hotkeys.md": "481770a893c9c1980a94fea576e04bdcced61f201fe75dc1b29014ae73da7efd" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/alpine/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/angular/guides/hotkeys.md": { - "fingerprint": "fa62a083ed097057d3126036cb6194ed42664e658bda4611ac4c0cf78d8fecbe", + "fingerprint": "a1dc97c8ec631f00d37828439df0eab53c0419b09eb69a5e7681e11c221ed8ea", "snapshot": { - "docs/framework/angular/guides/hotkeys.md": "c765b7188e90fd7199340ef8aba84f2e11f591e107e3b6d6b141395c78967279" + "docs/framework/angular/guides/hotkeys.md": "588d6076fce9e1d3d636ec6e54067fc06592ad01d3def0225feb1d6e6c557b14" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/angular/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/ember/guides/hotkeys.md": { - "fingerprint": "4cfa31d30f2644f90bce593835cdcb7058319530eda8ddd571707db8576a8506", + "fingerprint": "14091d72346b3fd4f99e1b8e0fc4619b828aaea7469e86d8492e0848662501f9", "snapshot": { - "docs/framework/ember/guides/hotkeys.md": "c37363e1e3c217ed3f9c20e4570be40799a9ccc4fdeafe1ec1426993147dee99" + "docs/framework/ember/guides/hotkeys.md": "c7532e8bdb779ec6a537731c8dc9a8e76e6d7f737406b3ed2d51ae149d240e7d" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/ember/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/lit/guides/hotkeys.md": { - "fingerprint": "d27f953fa42f5de387055a179563d9bc6bbf7baf49efaddfb7d9d575ae8ca19b", + "fingerprint": "f3df1393f9c0ca49101f06c5c2ff65453b98a25e0597f23d58a849174e70a526", "snapshot": { - "docs/framework/lit/guides/hotkeys.md": "ecd5098e45f237cc6d43d67f0f01fe89bb27d91f1d68078fe8f05801d57caa09" + "docs/framework/lit/guides/hotkeys.md": "28cf2dd54ac8e7abb3f80b732609277778dd230c126ffdc3fcc9bb2b096ee7d6" }, - "head": "86436b7b0a142b1d8e62fd4ae77f3c7c4ef118fa", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Review fixes: preventDefault 'always' now defers to live hotkeys on any listener, Lit controllers render on reconnect, Lit guide points to shared options. Skill guidance unchanged.", - "evidence": ["docs/framework/lit/guides/hotkeys.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/octane/guides/hotkeys.md": { - "fingerprint": "c12021a09315d56b928f3f3755815e4448fc1b0147ea002de28872ce83dc4774", + "fingerprint": "005a08d2afe5774dce17b2aadcd29371fc63df226e2f54ae857d791cb11f88fa", "snapshot": { - "docs/framework/octane/guides/hotkeys.md": "3e8dcec3bda196a78b5560aaab6c43ec2328420eb58509e2a4561f55df84c790" + "docs/framework/octane/guides/hotkeys.md": "2f9b3e68a23266ab4af154df647b77e846c6acc8503173e4e6236867705882c4" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/octane/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/preact/guides/hotkeys.md": { - "fingerprint": "b22a52c066b3f83ae09ce11963ce2d988f673d40a4a303df520061f316995605", + "fingerprint": "769ba1a2775521384e0f8a9ddea8416547579bc1f3ba2d6c7ed5b1044a470eb1", "snapshot": { - "docs/framework/preact/guides/hotkeys.md": "39d690e8d4c0f5eb702bdf5bb625c79a91416a74f41afbcb5759d42e5b4452d7" + "docs/framework/preact/guides/hotkeys.md": "f22bd498c78d7cb7b96989e08e1e30da92c63589174d8c05e409554751c06349" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/preact/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/solid/guides/hotkeys.md": { - "fingerprint": "c17e1a4bdda646e06dd33412060aa14b7eebb0e813ed8f4281b803bee2f92197", + "fingerprint": "5c20b523d4cd954cd0af8eff70f359e17a7b6e5e2c366af225d6e32931482229", "snapshot": { - "docs/framework/solid/guides/hotkeys.md": "affc859e4f778f1541188df06874dfd62cfa6e313e5f68c35bb758773fe764c9" + "docs/framework/solid/guides/hotkeys.md": "ac9c66a9a4ee97882be9ab797be928a285b11209aecf710fdbfecb31791f3d46" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/solid/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/svelte/guides/hotkeys.md": { - "fingerprint": "a5dbd3cf955f8432cef58fcb370d2cf482d8a6d8b600d7f588d5141f292d311b", + "fingerprint": "75c0b6b5a4c0a7d2fc5b1f9bdff01b9de45950c8935180e27e453234ad5af1f7", "snapshot": { - "docs/framework/svelte/guides/hotkeys.md": "e33cf7db6371114f9fbc123a7090d18be5f9caee73dc6c6690d1b4dd175052f5" + "docs/framework/svelte/guides/hotkeys.md": "9b789aad081fe3db7840b6b7d279a264cef76ecc47056fa7f111bd508300b017" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/svelte/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/vue/guides/hotkeys.md": { - "fingerprint": "b27201d8bdf6e77fd17158ba4086f883c2d232ba9e337ef1f40ed03c65cf5f27", + "fingerprint": "8740403849ee938a2d27631f4aafbecd116eb083253dc0b421f1b93ec31a9903", "snapshot": { - "docs/framework/vue/guides/hotkeys.md": "23c75e9fdf8c7eacf7bec9cdc5b2840502165a1126e2cc7b25b61b31d621e81c" + "docs/framework/vue/guides/hotkeys.md": "fe8bc1a955f7ea8c67afc1f3c0289723fd203f544bf0df76b9745b76c8542e1a" }, - "head": "9a3ab5127e79e94524708fab8af13ed0fe7715f7", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Docs explain when to leave preventDefault 'always' off; the hotkeys-core skill carries the same guidance.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/vue/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/reference/functions/toHotkeyRegistrationView.md": { - "fingerprint": "b1777214cb3ca4775f61844c5c7a4815135b7746b8290a2189c78a098ca09aa3", + "fingerprint": "28159911c67ff028336c014d350cf7638916ece724967828c029b38fb0f59fa5", "snapshot": { - "docs/reference/functions/toHotkeyRegistrationView.md": "d29b6e8185cbd97fcb4cef301f6d6ba7c1f34fc0e8fd43e8990df556b14c156e" + "docs/reference/functions/toHotkeyRegistrationView.md": "2922b400584602de1ac8abe067bbce451e945811999a12e00454f75b9e03371e" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/functions/toHotkeyRegistrationView.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/ActivateHotkeyScopeOptions.md": { - "fingerprint": "3f310d8d4c5509367c2fa989c92965cdac48a9429a0761e35b7f1e238cba9e49", + "fingerprint": "7ee44a619d444b1ebd93501a1df54695023e0cf2cd7a444cb0655bcff8f1f05b", "snapshot": { - "docs/reference/interfaces/ActivateHotkeyScopeOptions.md": "5f53baec9e5f3373e4b1292daea198ad91cdc5c85849a2a983016c1068fb6e6d" + "docs/reference/interfaces/ActivateHotkeyScopeOptions.md": "840ff3531009f6c88d03d67e54a44196593ee873ebfaa5bc927f31931e214602" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/ActivateHotkeyScopeOptions.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeyChordOptions.md": { - "fingerprint": "404bc38543e861ec69922d37c22812def0ec459710625c6b99334a6f57192bb2", + "fingerprint": "707df0ba0f2eccb49f398223b47b22358f975e110947246f37f273217d0a1179", "snapshot": { - "docs/reference/interfaces/HotkeyChordOptions.md": "d6eada3aa2355bd56bfb4edf3e149069591df3e99f3e261421403bbaa6afc996" + "docs/reference/interfaces/HotkeyChordOptions.md": "0c6e3d07495cfa2bcdb1ce38c25d55405006bdf68e53ba697f60f3e0293cb0e8" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeyChordOptions.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeyChordRegistration.md": { - "fingerprint": "f514cd197b6e420ea05d5ae89b9254e0b62b8e2142f85c6acfba4ca56afb1430", + "fingerprint": "5b27b5b9ab8d5628bbad9e2313ac592739d7a203d41995f93e0e2203962da14f", "snapshot": { - "docs/reference/interfaces/HotkeyChordRegistration.md": "900bb35bac81b47304267dc37b3a560ec6d36913b886adca6cf4457a628c2cc3" + "docs/reference/interfaces/HotkeyChordRegistration.md": "661e8077633aee1451eb13705d9de8ee92f780a57115b681467c444aca08c388" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeyChordRegistration.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeyChordRegistrationView.md": { - "fingerprint": "f49134dcdefb2603dca78b1f4939ccc390b19ad74bd19f7b11d1f183fb3e7bb0", + "fingerprint": "86193dc061ade744540c9e9b284cc51b35b4e23b69423540fb14ce336092340a", "snapshot": { - "docs/reference/interfaces/HotkeyChordRegistrationView.md": "880f468ad4f3df515305ac851a3d3b758201469daa7da23a0c09cf96a6d85ef3" + "docs/reference/interfaces/HotkeyChordRegistrationView.md": "a2d3bee2ceec1b377bfce399f44dada5a3e51890fea45d54759bac5d5d702181" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeyChordRegistrationView.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeyOptions.md": { - "fingerprint": "4133fc170ca919556ddec281e2c2e16518b0d1ba9654a9d6ad268ae5c3866a97", + "fingerprint": "42063ca7090de2fd0a7afa372179cbc644b11192df67a58ea29283061e33036c", "snapshot": { - "docs/reference/interfaces/HotkeyOptions.md": "0aa93e7d3507e2e7a27b689278e6d574cb919ba05911b6e5a7974c5939161a5b" + "docs/reference/interfaces/HotkeyOptions.md": "3b72082523f5207a74957138613b97f32f72cba8f60be4b128c95f88830e086d" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeyOptions.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeyRegistrationHandle.md": { - "fingerprint": "301c7aced22fe44316ad6640048aef49a1e02a431c2d9754d0a53fb849fc78b4", + "fingerprint": "8558daca0d173c533f1e4c3f871e0effed853b801e53d7ac04ce40b0b0571d7c", "snapshot": { - "docs/reference/interfaces/HotkeyRegistrationHandle.md": "d3821b7c90ae6438f3c926d7e6bce1cef6b33933d5f09d81ed0c394e6cc6102d" + "docs/reference/interfaces/HotkeyRegistrationHandle.md": "5bfee5ccfbaa20d9a7fc64eb366ec9f076070fad9a02a2d5ffdc3d78427916d7" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeyRegistrationHandle.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeyScopesState.md": { - "fingerprint": "7a007ba238c2b279533546c575f2ea5751ec5f01e3f8b56f756f0bb8c4589645", + "fingerprint": "db47d0cb9da66bbfe97e776c02a07643540efb3d973066ffeed89dc6c6843a73", "snapshot": { - "docs/reference/interfaces/HotkeyScopesState.md": "501c21ebe6438ab83231c52d03834e6e114e7f5647cca258c297a74ecd1f7228" + "docs/reference/interfaces/HotkeyScopesState.md": "3700c5eb35ec3a475d917109f98fba3278f8482951c7ce376c9ba6f12fe03dd3" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeyScopesState.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeySequenceOptions.md": { - "fingerprint": "9ce40ae235071ab7685e0dcaf07bd1789692fd4bb3950c8187741c8bb6c5b473", + "fingerprint": "caf26f9288a03794305756214af7ca1c7d5b77d5d59f4594613dc20e6aaef6e0", "snapshot": { - "docs/reference/interfaces/HotkeySequenceOptions.md": "d028d435b3cd9c027c5d023b5b39b397affda59d91954b5ea19a5f69f7816248" + "docs/reference/interfaces/HotkeySequenceOptions.md": "45d0e2b877ee47e2222f5bb7919e2c4c200f1cf19caaa20c5f90fb04c12574ea" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeySequenceOptions.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeySequenceRegistration.md": { - "fingerprint": "149fb9cfb777b3141cb9b4abb8a1c97846eed6182d246cca745335bced6f447c", + "fingerprint": "eafb28175850a3613eabd124296d9e757ea3690bdecd9b51e86a9e42a50d80ea", "snapshot": { - "docs/reference/interfaces/HotkeySequenceRegistration.md": "c44ab6bd9ceeff3a3d687d679aa0a723d16b7b1b879298ce8ea71f94b66de06d" + "docs/reference/interfaces/HotkeySequenceRegistration.md": "bf7c719a1ea5fb80d25255709d98c3ffb64f2a8f60d37111ebef7dcdf84bede7" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/interfaces/HotkeySequenceRegistration.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/HotkeySequenceRegistrationView.md": { - "fingerprint": "37443384691d186bfdb48967f42cbd620b98aeb92ab259a763ed1298b2841e41", + "fingerprint": "4b03349fbe17952bb1d4300c027e03e8a0bcc8e9810dcf378b58b44d0d8d45ef", "snapshot": { - "docs/reference/interfaces/HotkeySequenceRegistrationView.md": "ad0e1f057443f1a46ad3a7e34f2460d331915a92f806b0757668a3e2cc405485" + "docs/reference/interfaces/HotkeySequenceRegistrationView.md": "3c20ef9bd2476e2d377a8a791c7d081b335c52f58b33eaef3b0c89a014637e20" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", "evidence": [ - "docs/reference/interfaces/HotkeySequenceRegistrationView.md" + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." ] }, "source:docs/reference/type-aliases/HotkeyOptionsFor.md": { - "fingerprint": "7fdc4618f808980418e1b2b34df6210cdb64523ba3dfbae3bd4530013189c1c7", + "fingerprint": "705b12b0d3e06e8441f165ec7fa5abdd5305319dc21917f6ba91307250b7a6cb", "snapshot": { - "docs/reference/type-aliases/HotkeyOptionsFor.md": "ee43c56352a9ee3df76dc28bd5a13a10596dca25199f1f6cc4cfaf1f3d369c2c" + "docs/reference/type-aliases/HotkeyOptionsFor.md": "34f536e251bc394e7e0655a512acc46c4a6d90ba4c4dcfaf6084b89c9fd98082" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/type-aliases/HotkeyOptionsFor.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/type-aliases/HotkeyRegistration.md": { - "fingerprint": "316b2a22813a196d0950b8d20d23e945fc45bab8c350bd1972e285f5f722a990", + "fingerprint": "80bbf754db51d8f2605d49b6262714258b55b9b1453154ff8aeab538ff21cb52", "snapshot": { - "docs/reference/type-aliases/HotkeyRegistration.md": "cb575b12d108217046edada2f8a292eacc86d70de5417be426ae28394dc3e672" + "docs/reference/type-aliases/HotkeyRegistration.md": "9a075a1d9ff08cced641ad6f77b239a15df321a442714b6db2cfc0bf2f7c0b46" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/type-aliases/HotkeyRegistration.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/type-aliases/HotkeyRegistrationView.md": { - "fingerprint": "f240d5e45cce1bf5073844dae3750bdfcd046952f1accb8a3125a6559fe7d3fc", + "fingerprint": "88b1b7ccb3b94844307dddf6285f5e5c3271b1aa947dec725b362db4ccb3488e", "snapshot": { - "docs/reference/type-aliases/HotkeyRegistrationView.md": "ebe8cca61a81c7a057e4d578b5992aa21b99e0c54aa43a65f6573c0459422f3d" + "docs/reference/type-aliases/HotkeyRegistrationView.md": "e8a57ccf13dd7b7b599044e394b39307508522639470ea430091606230c97c11" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/type-aliases/HotkeyRegistrationView.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:packages/hotkeys-devtools/src/components/DetailsPanel.tsx": { "fingerprint": "fb0b371c456dfbf2d58b49b9c23b0c0f74f0a02c9c719548e74b39aee6008878", @@ -1346,14 +1368,16 @@ "evidence": ["docs/framework/alpine/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/alpine/guides/hotkey-manager.md": { - "fingerprint": "2289743f7b6a03d44b39ae1bb0655fdb7a8a086f4add54c70c83d73bd11f996f", + "fingerprint": "8e47813dae8f176c8ea8f3fa12156a4b5381f0758b44cf2352ec90f45901d130", "snapshot": { - "docs/framework/alpine/guides/hotkey-manager.md": "9ad2df39b1d48b81d6a79872bd4e9d9a1c366fd1af302cfb0b4a4728517bbfbb" + "docs/framework/alpine/guides/hotkey-manager.md": "7beea0e93895cd5450bc00bad49bf0c882134444cf80b2360d9e3ae3bc4452bd" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/alpine/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/alpine/reference/functions/createHotkeysScope.md": { "fingerprint": "9c472815dbccfc365b2d7ee345d365ccca2b55efb08c22ff6d1834763488978a", @@ -1546,14 +1570,16 @@ "evidence": ["docs/framework/angular/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/angular/guides/hotkey-manager.md": { - "fingerprint": "9f08cec192a35daa525dca5ad78146eda35f46888cf60700f024fb5e43540dc2", + "fingerprint": "0da5e46f3861a920bbbf5d78e2eb88cdcc1e9786dc4bdf1704b97074fd5ea68c", "snapshot": { - "docs/framework/angular/guides/hotkey-manager.md": "dbc66b9e82178da48cc858a2144d0fb308af91aa7e7a8e4263e3202094e4d423" + "docs/framework/angular/guides/hotkey-manager.md": "7c7462b5cbb760d9d98794ed86384ba1792a38b4448718cc7b9b6882ff1a7441" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/angular/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/angular/reference/functions/injectHotkeyScopesState.md": { "fingerprint": "ca36d5e277c6b434ea18879bd7056fa3988c98d0a51114a39243c1182b382a22", @@ -1588,14 +1614,16 @@ "evidence": ["docs/framework/ember/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/ember/guides/hotkey-manager.md": { - "fingerprint": "b9173cf919cd70e374ec01081cad63a15fb0e5fa6fa05ed24c892a38e2e732c3", + "fingerprint": "19834fe5a8babbbf06f8f6962f1b23759b9d53df184a2c7ff76dafff4f2ebf84", "snapshot": { - "docs/framework/ember/guides/hotkey-manager.md": "1aa3163570a39e139783a2117406c3504a560a7e7b9a23dc5db0d070752a5a00" + "docs/framework/ember/guides/hotkey-manager.md": "838211b9863f114bfce732e10dde37dde223027ef3cbe027ff86c93703f0c2c0" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/ember/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/ember/reference/functions/useHotkeyScopesState.md": { "fingerprint": "79d2f28cd0b88d6ead0618b55d68539914520c4eb77a4cffaad35be253ed044a", @@ -1630,14 +1658,16 @@ "evidence": ["docs/framework/lit/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/lit/guides/hotkey-manager.md": { - "fingerprint": "99499462bb0e5b6cf15bda5aaf1a4b54546ea589695c57d45393c74dc706fbf9", + "fingerprint": "efcc0d317c2bc7727f01ecf01f93efc884fcf876209b9cf99bd80251a52d8cd6", "snapshot": { - "docs/framework/lit/guides/hotkey-manager.md": "c431356fa7394c8a1e11e2a9b1a9d151dc314ca29c45f4659553eb9b8bd22706" + "docs/framework/lit/guides/hotkey-manager.md": "0e23e424a157f916729a234e926c36c7b3ee81e830c42ed2de953c0251b8cd39" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/lit/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/lit/reference/classes/HotkeyScopesStateController.md": { "fingerprint": "bf1b8690f71152cced76505dcf7a1ad0254f6a724ccaaa60df17889e126fc88c", @@ -1672,14 +1702,16 @@ "evidence": ["docs/framework/octane/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/octane/guides/hotkey-manager.md": { - "fingerprint": "94674f1e0431ffd29358cb97962261a509c90b8900b4703617f474b445b1d1b4", + "fingerprint": "40eb3ca63282228f5c237872ebd855d71d398521ac9fe85251d37e1deef34660", "snapshot": { - "docs/framework/octane/guides/hotkey-manager.md": "903c655aab6eb2491818baa0cb9049f0470f283dc9e2a00a8c96bf39a050a43c" + "docs/framework/octane/guides/hotkey-manager.md": "63ff36ab1571443043d9fa74c51f1aa7f7539bbb0d681c218b7728fd11d0cd84" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/octane/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/octane/reference/functions/useHotkeyScopesState.md": { "fingerprint": "4a14760123f3c3f1e0ca372c47cd3d827c4213f5bffb3007127c9a481ccb3791", @@ -1714,14 +1746,16 @@ "evidence": ["docs/framework/preact/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/preact/guides/hotkey-manager.md": { - "fingerprint": "e255f62e61934af90f0bc283fba463482a318a93ca2e2d59ef17b6ea2ce189c3", + "fingerprint": "2b81c55424c6385cd4d144229d73e222db9176ba1aa4fa57317a5c735fa90598", "snapshot": { - "docs/framework/preact/guides/hotkey-manager.md": "fa7ba6ba37b71f51e9006e12f88f88a05a7b57d07678c4c7acb1289ef413821e" + "docs/framework/preact/guides/hotkey-manager.md": "3d3fb259dfc9ceee845dbdc457f638ce3fca37a37e7ec98daac86ef0b48b1618" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/preact/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/preact/reference/functions/useHotkeyScopesState.md": { "fingerprint": "28196fb3f7bb16be174302d7853db12c6de1e42a52d76e5686f2e14610477ab0", @@ -1746,14 +1780,16 @@ "evidence": ["docs/framework/preact/reference/index.md"] }, "source:docs/framework/react/guides/hotkey-manager.md": { - "fingerprint": "6a1045908327336ec3811135514232d958045d9461da5f147a581c1b936aad39", + "fingerprint": "abbda667f8d00ae19442ad2a23bcca1729e3c9c20ae98e77d14ed9ded6c72021", "snapshot": { - "docs/framework/react/guides/hotkey-manager.md": "7d629b5a1faccd284ae73c94a10b3af7ce3e820bf3f342104071de5f53ed2f47" + "docs/framework/react/guides/hotkey-manager.md": "5ca5c38d8892c74eb481700a7de0582ac8e54468032fe2fbfab6aaa47e397e3e" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/react/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/react/reference/functions/useHotkeyScopesState.md": { "fingerprint": "f795347c3e2cad0712d265ce1daa905f87e385a9cc7d5ca973db04ac70a1bf06", @@ -1790,14 +1826,16 @@ "evidence": ["docs/framework/solid/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/solid/guides/hotkey-manager.md": { - "fingerprint": "72dd217693b83e4c84309832f636d4b61e20cd2fc1cd84ba23de0a6eed1b11b4", + "fingerprint": "916dbdfb657cd51f03b82c688d319745f11ecc80085dd4acab9fd243cb6fee66", "snapshot": { - "docs/framework/solid/guides/hotkey-manager.md": "6415486a361eb162b31ac2189b2f7eb7a6599f762b6f316d407f6b2578ef49f9" + "docs/framework/solid/guides/hotkey-manager.md": "2442f64799d99b3db17db8f9423ad76dbe9aa43dd0ba85e901917cfdae1fa1f3" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/solid/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/solid/reference/functions/createHotkeyScopesState.md": { "fingerprint": "817c0dede67662b70532bf49a4bfbca2b680c7467105b8e3d98658521f355118", @@ -1832,14 +1870,16 @@ "evidence": ["docs/framework/svelte/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/svelte/guides/hotkey-manager.md": { - "fingerprint": "d3fbee8d2e490ba13dff0cdc937eb6b70d2910eaa6d25e30f6adaa3891719b54", + "fingerprint": "75583cde2e0c1cd98ba7956880f64606d03e9f7771e26cf0ebfaccb561035dbb", "snapshot": { - "docs/framework/svelte/guides/hotkey-manager.md": "3dd0bb48a109f9331216a3d1b49153f742399232028e8538c9688600ddf08716" + "docs/framework/svelte/guides/hotkey-manager.md": "9dd3892a62946477bf635c13ff08e299d6f9587da4c3325c141f4c2ec99bd3b5" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/svelte/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/svelte/reference/functions/getHotkeyScopesState.md": { "fingerprint": "6f7fb2ffb8495191c339e07506d0c40b6c5e78661433efd1f27d013e947c06ce", @@ -1886,14 +1926,16 @@ "evidence": ["docs/framework/vue/guides/cheat-sheet-ui-helpers.md"] }, "source:docs/framework/vue/guides/hotkey-manager.md": { - "fingerprint": "c31fb5090b61ecee9870a51b318132054461fd064ecbc02a2977ced099817fdf", + "fingerprint": "ff26601e808f0f7ed40783c1e8246ae49095777e7a7c688b7422d02a6791b638", "snapshot": { - "docs/framework/vue/guides/hotkey-manager.md": "a8f7fa12b22cc78dfab4b91ee4cb86232e2d654ee8e3c68fe15a10a179082095" + "docs/framework/vue/guides/hotkey-manager.md": "f330feeabd21f3079356b8c8000d2c2c0310caf5358650ab16674e105beae11d" }, - "head": "913a63d40d46cd3bd189a485da167ce064edcba0", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Hint focus behavior and status wording are reflected in the skills updated in this review.", - "evidence": ["docs/framework/vue/guides/hotkey-manager.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/vue/reference/functions/useHotkeyScopesState.md": { "fingerprint": "6e6f9ea9454f9dd6126a1d2990adb783cf20d3d7af77e67ae381b59e2954f3f6", @@ -1918,24 +1960,28 @@ "evidence": ["docs/framework/vue/reference/index.md"] }, "source:docs/reference/index.md": { - "fingerprint": "9a611b77990be4bef9ad2c13616c8ad15c2a18dd6d5f01f95eec2eacb75a241a", + "fingerprint": "e75d562209c8f2a3e3535e6aa8673c0e9081c70fbcc35be2c5d82299b9adf01d", "snapshot": { - "docs/reference/index.md": "3745141ef0859fff0b5156b1bc83e2a98b55e3d8fc37d1b1d59b916d81a9d974" + "docs/reference/index.md": "9666883a4c4d8fd64e44bf6486759102ae0f2a4a4965fd568ceca7696971de08" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", - "outcome": "out-of-scope", - "reason": "Generated reference docs, tests, or devtools display; no skill guidance depends on them.", - "evidence": ["docs/reference/index.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/type-aliases/HotkeyRegistrationStatus.md": { - "fingerprint": "38543fbbd925807dc94cef9dd358790607fff0d24bc40fb209c63e92bfd602a1", + "fingerprint": "ab117849be7b4071d31987d0a4b1c386e9e42c4c8e7ff9eac94e14d9e2f36362", "snapshot": { - "docs/reference/type-aliases/HotkeyRegistrationStatus.md": "71783284309b35853ca3345b7c04a7f167bf06e4f934f17192cb31d36e236698" + "docs/reference/type-aliases/HotkeyRegistrationStatus.md": "b4ce364cd118f2070ac6ed4a004d85d26445bac68658a836c18f6dbd58547f45" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/type-aliases/HotkeyRegistrationStatus.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:packages/alpine-hotkeys/src/createHotkeyScopesState.ts": { "fingerprint": "efa0da765d7c23fe56e690ebc774b7ea456a343c908ad8239732d0741f3b64a1", @@ -1968,14 +2014,16 @@ "evidence": ["packages/angular-hotkeys/src/index.ts"] }, "source:packages/angular-hotkeys/src/injectHotkeyScopesState.ts": { - "fingerprint": "db48312044f4065c2b8477ee4a12dec339d74797007a55eca0b40c0e8773fa3f", + "fingerprint": "2009f544f132a27bec4c25cdc3e1ee089dabceede5b90e0939499591d2603a4a", "snapshot": { - "packages/angular-hotkeys/src/injectHotkeyScopesState.ts": "c71f8e7cf5aa4ac558c5fc0771f986a5a19482bc8b8017aeeb5623bcb2905113" + "packages/angular-hotkeys/src/injectHotkeyScopesState.ts": "c9e109c9ff2ac8f53d62ec78f64d07e1faddef486dcaf2944f8d613113fc0fee" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Source or guide change is reflected in the skills updated in this review (status, scope state API, preventDefault 'always', hints).", - "evidence": ["packages/angular-hotkeys/src/injectHotkeyScopesState.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/angular-hotkeys/tests/scopes.test.ts": { "fingerprint": "569b22d14258cab83b2bcc790380cb5035a4b14cab279369e5e8fe70d993f5df", @@ -2040,14 +2088,16 @@ "evidence": ["packages/octane-hotkeys/src/index.ts"] }, "source:packages/octane-hotkeys/src/useHotkeyScopesState.ts": { - "fingerprint": "965a15848bd594cb7b26dd89fe64a66ea7f841ffb49ac698aa53f220b7f2b622", + "fingerprint": "3b29279a2a81b4c22b625c71cbfa488641d4c28ef5f6b1b90513ac7927e03c9d", "snapshot": { - "packages/octane-hotkeys/src/useHotkeyScopesState.ts": "c60d696f940672b5910c8eca30d4ee4987caf60d913e6e5502d057b6e47fea5e" + "packages/octane-hotkeys/src/useHotkeyScopesState.ts": "ce6c4137b8cb3ab31483a7576f75eac14ad27a62cb84ce04ae8ed9bfa9ab6dee" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Source or guide change is reflected in the skills updated in this review (status, scope state API, preventDefault 'always', hints).", - "evidence": ["packages/octane-hotkeys/src/useHotkeyScopesState.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/octane-hotkeys/tests/fixture.tsrx": { "fingerprint": "96287e6de94be6045c8466e7c90a546ad9b2f0349dadab82e6c09a1a5aef279e", @@ -2070,14 +2120,16 @@ "evidence": ["packages/preact-hotkeys/src/index.ts"] }, "source:packages/preact-hotkeys/src/useHotkeyScopesState.ts": { - "fingerprint": "218efac55f273a37386a498a5948bda2950f32a674b920f10843d4322763aa22", + "fingerprint": "c26dfeef79e6e32ecaa6930a7aae937a3c08ff3e785d5f68b884c88f5fd01bed", "snapshot": { - "packages/preact-hotkeys/src/useHotkeyScopesState.ts": "ec49319f970c07a3bff81e8efe93077491c81fd7fc3f8187cac93e52eed3ce43" + "packages/preact-hotkeys/src/useHotkeyScopesState.ts": "468be2b00c7bda6fbec4554a5196e661cb21d749f1acf3dbe21fc5beea868d03" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Source or guide change is reflected in the skills updated in this review (status, scope state API, preventDefault 'always', hints).", - "evidence": ["packages/preact-hotkeys/src/useHotkeyScopesState.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/preact-hotkeys/tests/scopes.test.tsx": { "fingerprint": "071401c4fa14c4189e44a00271778bde83372dc5715d37e3ad32435050b24e66", @@ -2100,16 +2152,15 @@ "evidence": ["packages/react-hotkeys/src/index.ts"] }, "source:packages/react-hotkeys/src/useHotkeyScopesState.ts": { - "fingerprint": "96a95553282dbc739bfd645dcb8c7e4b9b59b5da3cc34984c3f7f2d5dc6945d1", + "fingerprint": "e47bdb434c94ff29f3d91239601aa2830a94defedc5d215210fee4a3712969c2", "snapshot": { - "packages/react-hotkeys/src/useHotkeyScopesState.ts": "e23ce667a134f728ebbf65f8eadd418bf0863238cad17bdd5785c91d74988c28" + "packages/react-hotkeys/src/useHotkeyScopesState.ts": "52ea4bfeec3cfc35949401e8488a81d73c58a1d02d07c62b38936f0139e5a12c" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useHotkeyScopesState.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/tests/useHotkeyRegistrations.test.tsx": { @@ -2125,14 +2176,16 @@ ] }, "source:packages/solid-hotkeys/src/createHotkeyScopesState.ts": { - "fingerprint": "62857fa44b5f9cb5492d9c2e411d993c6bbd0733904aac8d565e076668c0d9eb", + "fingerprint": "caedf114312d8008656209a25647bc6895e6f50e050788dfc655859160dc436f", "snapshot": { - "packages/solid-hotkeys/src/createHotkeyScopesState.ts": "58fd882b14ba9edda5594591f79d263cb180e01b7370414d7be31a79d7368e30" + "packages/solid-hotkeys/src/createHotkeyScopesState.ts": "03b70bcef91b2e3dc57ce0730f8fec33ed526a10f0e024d7217927151133c26a" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Source or guide change is reflected in the skills updated in this review (status, scope state API, preventDefault 'always', hints).", - "evidence": ["packages/solid-hotkeys/src/createHotkeyScopesState.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/solid-hotkeys/src/index.ts": { "fingerprint": "66731a814a1bb922ec9fbb3bff9f1bbf5593f95dfc0cda4b56f554459103397c", @@ -2225,256 +2278,304 @@ "evidence": ["packages/vue-hotkeys/tests/scopes.test.ts"] }, "source:docs/reference/classes/AppHotkeysStore.md": { - "fingerprint": "f828df2b43041e6744a776337690c0d02b13c98860f9b75de251e8aa013992bb", + "fingerprint": "ccea5537859b08a3f7b064e5ef53d5fbb805d5a077c359ff3b0afa2090bdcdcc", "snapshot": { - "docs/reference/classes/AppHotkeysStore.md": "50a300610a77af4bbc0b172d7cb9c368371a4142a420a64f644bbe1ddc75c76c" + "docs/reference/classes/AppHotkeysStore.md": "abf0cfe6eb682074f251ed1342ecd47258918d07217f6d82e0b3973483a67e15" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/classes/AppHotkeysStore.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/functions/defineAppHotkeys.md": { - "fingerprint": "647b508a92a14adcbbc42bc0ef0fa23bd4a233df3d3e08b3ad4c23f2b8b4c923", + "fingerprint": "7cafe37ec35264985919095e4f8bd58e595aa897a5ce5dc7304160af6f69cf5a", "snapshot": { - "docs/reference/functions/defineAppHotkeys.md": "d04bbc7d0b8e0e1211f2044eac2468374d78a98d00462d33cbf4d8f8db0ceab8" + "docs/reference/functions/defineAppHotkeys.md": "c4684ebf5d3e0c36184a5395c2966694a4c19ecdc2c236810081011bcf1ac332" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/functions/defineAppHotkeys.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/functions/getAppHotkeyRegistrationOptions.md": { - "fingerprint": "92cf5d12da45097cdc4e49ed62acaac928222a0380d4d728310e89c7f85cc0e0", + "fingerprint": "f3cf6c4fef2c7d60e8d394867879fdf76a2ae83d7fc1f1b07e80308529faa3db", "snapshot": { - "docs/reference/functions/getAppHotkeyRegistrationOptions.md": "0c617bcad6b46ba6559d016ffe67b420670d16f1de4e6fdd98491d358a6eadf5" + "docs/reference/functions/getAppHotkeyRegistrationOptions.md": "c0786010cce0c8405130b878d3560fd752b2b3bd6d28d8d49dfda2375b594baa" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", "evidence": [ - "docs/reference/functions/getAppHotkeyRegistrationOptions.md" + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." ] }, "source:docs/reference/functions/isAppHotkey.md": { - "fingerprint": "f914ae6939c6808d6cb9ae5deeb1782a01c628575c29d343e788374782384994", + "fingerprint": "d1e160a69104fab899ed8676a3301d393ca2c83615c8a51278ad603e1524ff7d", "snapshot": { - "docs/reference/functions/isAppHotkey.md": "98f12cb86a90ab8d18ce90fb073032429ce5447be63dbb4639a17c98f4262bad" + "docs/reference/functions/isAppHotkey.md": "2a8db584214a19f5b1c0b756945f5ee4f19c8a081bec24fa2e5decd6ab73c824" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/functions/isAppHotkey.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/functions/isCustomHotkey.md": { - "fingerprint": "3a08e4334d39705fe2b57bde8ac566a523af316e5d2f859c8ae84a86031e8b20", + "fingerprint": "836f00adb4f67c28ebbb24dc3d16e7fd96b1012775e166a60a290ba2095d5160", "snapshot": { - "docs/reference/functions/isCustomHotkey.md": "67ec57dabbed31013974a41acf7b34327cf76cb9dc4546262e8160c888e7322a" + "docs/reference/functions/isCustomHotkey.md": "385b44a202f18d7eb1efab54f9626741b7e6670f4eb2abb3ec1a9f000e15a828" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/functions/isCustomHotkey.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/functions/provideAppHotkeys.md": { - "fingerprint": "9305d4b0fc61dfe04dd381dc43efe41f98bbab9f32dd93154875f133a2ced819", + "fingerprint": "b8bbd14050f9cca7ba2997f2cd05dda5626815d79c4ba89a59ed529173f4c746", "snapshot": { - "docs/reference/functions/provideAppHotkeys.md": "da10c53c571e942f6be828a38bc27d8a03778c3d6b156f089a7422753afcc87a" + "docs/reference/functions/provideAppHotkeys.md": "e797ca94aa7d2f61b93792071c7761038e3fef65673cce6166c7ddf4df7411ab" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/functions/provideAppHotkeys.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/functions/publishAppHotkeysStore.md": { - "fingerprint": "d3a6340168e76506212447895bc32658149f65f5479a4ebfeb28f4f9cfb05ead", + "fingerprint": "41656bf7ffa223bc4f87be4c3945b4476bf1155bde81fc3e5ffcb5210427d9fc", "snapshot": { - "docs/reference/functions/publishAppHotkeysStore.md": "efcee078292e87d9602ecfa0c75e5a056a281b984d6454b141d3e8e2a0c77168" + "docs/reference/functions/publishAppHotkeysStore.md": "d5d5f31e15fc7c6cee7c5169598eb6c4238e6cb4822a0f82f556856a0bbb348a" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/functions/publishAppHotkeysStore.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/functions/resolveAppHotkey.md": { - "fingerprint": "38f7fe091d9e550b2d793437aefc6541acd5bec211b81a9873261a5a07891f63", + "fingerprint": "602f591e77db229c3ff2214348878a0edc5363004dd1fb84fc40698e7493ad08", "snapshot": { - "docs/reference/functions/resolveAppHotkey.md": "e53c24e19564a87633ca3b052187338938ab267284dd7f3818ed246c374de859" + "docs/reference/functions/resolveAppHotkey.md": "f2037c3950f80ae4b978b3d38151e2f2ac4e11be3077878284e44df9b7441ccd" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/functions/resolveAppHotkey.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/AppHotkey.md": { - "fingerprint": "2cb6bee7af7e2870e2287f3ac815f56e8df371ee646f9a8f43e190b645acd411", + "fingerprint": "541468ec91a6dfc4561497f1dde0ce8b2e53ca26d33406250aff8ccbe35cc896", "snapshot": { - "docs/reference/interfaces/AppHotkey.md": "a095532ac3088bbf5ca788bdf923168ae6940cfd5afd854f7380b3c4be11f5bc" + "docs/reference/interfaces/AppHotkey.md": "2f3a80a9780a636ff77a3a9f135c719127938c4660a4d416de9b656351b02a7c" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/interfaces/AppHotkey.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/interfaces/AppHotkeyInput.md": { - "fingerprint": "c17190e4db0b14d36cc770cb9efd0cae23232c95654e2669b3deaf8de5bb2c44", + "fingerprint": "2d45aa9584c924e09d34180641055c9d844f34b297c1a53e4b53459ee57ea21a", "snapshot": { - "docs/reference/interfaces/AppHotkeyInput.md": "1f68576d57cf3698eebdcbe939c8b3b232d7cfe044e7ae3b31a1f9189b358d61" + "docs/reference/interfaces/AppHotkeyInput.md": "e19e34cab9949d4b12c734db624cbc2dbb97ba528129f9b6e5eb1e1a83e46401" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/interfaces/AppHotkeyInput.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/interfaces/AppHotkeyListItem.md": { - "fingerprint": "c38d3268d7ff0b329ad412c3abe8daf510018f4ea07f00ec42b3710a2d099a15", + "fingerprint": "8848632a4acd6264dd0508b1334d229cee18de72542d92bbd5adf4a0380e96d5", "snapshot": { - "docs/reference/interfaces/AppHotkeyListItem.md": "582e9005cde22ad69d70c50b630b0a720a6ed45ae708dc3da1740f0f3e0d6219" + "docs/reference/interfaces/AppHotkeyListItem.md": "42c691551e0d2c9939fe236cc39a8a83f731ce9ec26ede140ee568b03c420d31" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/interfaces/AppHotkeyListItem.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/AppHotkeysState.md": { - "fingerprint": "a7419b4f629147566d48a1659fe45ab34079b0c31d5ebeaa7a1d01b0d3cadd87", + "fingerprint": "9f188d1d31930fdd7e6054bcb7caee1754291677d482e99e85878518712800ab", "snapshot": { - "docs/reference/interfaces/AppHotkeysState.md": "b07c0f7d396a38576ba9c5380f828745afe830d52fb1352be9abdf0f0e8cfb5f" + "docs/reference/interfaces/AppHotkeysState.md": "16992d37d2f592a8e569086985586eac28d4fdad562766c0b9b7ab32363c0a6e" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/interfaces/AppHotkeysState.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/AppHotkeysStoreOptions.md": { - "fingerprint": "ba071dd4450f86b0ca98300282816ddb0e015cc34a0b1d4d0c176393b70914dc", + "fingerprint": "05969f7092b3ff99da4f5ece78fd40a8c2d31bf7c9251288e6df6bf8dd8f480b", "snapshot": { - "docs/reference/interfaces/AppHotkeysStoreOptions.md": "5c29ca5acee65ef3627f96d10d63cef85d1d709fcc37b7cdd581a64d6e13b9ab" + "docs/reference/interfaces/AppHotkeysStoreOptions.md": "cbc33ba9f3a8c5858c85324a8d42984a99c6471364292cdfece4610b65ac5e35" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/interfaces/AppHotkeysStoreOptions.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/interfaces/Register.md": { - "fingerprint": "5a3817406a9df58f34a9f45636660dd7fd707927437dae0872cc361d2fb82af1", + "fingerprint": "b69e224808ed6e6e32cb5ac234c97b25e69dd0a39f1b8cb40d7d329e21ab05bc", "snapshot": { - "docs/reference/interfaces/Register.md": "7b07e9f1bc862741ebedcb80829c2342180070ceace17379dac73885b5ae1cdb" + "docs/reference/interfaces/Register.md": "8a4220206a574d4702b295eef07e83a1307892d67002e0f6bc844242a9b2f672" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/interfaces/Register.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/AppHotkeyChordOptions.md": { - "fingerprint": "d36d30b1e7b9fd262191729948838ac0c1727cfe40c7bca34f38376830be0431", + "fingerprint": "9790a9c4a7882e05b1d2206a2d8960f2e6cc330459535c1c93978467444380a3", "snapshot": { - "docs/reference/type-aliases/AppHotkeyChordOptions.md": "8e653952e92c0332a174f743e7afb3eab2bc9548c69446a96e42f9960743d58c" + "docs/reference/type-aliases/AppHotkeyChordOptions.md": "093a1f113045abd091cb483af3a983e937150332d853798b1adf1063ea9825b6" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeyChordOptions.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/AppHotkeyDefaultKind.md": { - "fingerprint": "e3c9ec648e05e0c68b421d58d88b9fe03fcc83240ba36b38ac9419d32788f244", + "fingerprint": "6dcb968e489bd6813f9298ac826d833dd0d27f6a7e38c9be9d236d793d5d832e", "snapshot": { - "docs/reference/type-aliases/AppHotkeyDefaultKind.md": "3a6b97eca5267aa32468ab7f74dbf6bee43b831f163d0645bd8efff3a1965986" + "docs/reference/type-aliases/AppHotkeyDefaultKind.md": "4d708c43da4596863a0dd5f0e095b73d5102eaf30760902368fec8afdda07fd4" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeyDefaultKind.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/AppHotkeyId.md": { - "fingerprint": "13cd19340afc6c30726eaaaea2fd01c3dbeb686b77dc6b603d6e9ead6d7b941c", + "fingerprint": "cd2a38b376f915188beca896ffc82b6d912252c263f61703ba1df5fde7ca1a6c", "snapshot": { - "docs/reference/type-aliases/AppHotkeyId.md": "573d414ccb09488974db4f4e5073c97815e1d11091f5e396244a71db2106d728" + "docs/reference/type-aliases/AppHotkeyId.md": "a9d89c20c522a1c9dd6d66f49a5992f43226e70d4885f6f4c7581b79ff15211c" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeyId.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/AppHotkeyOptions.md": { - "fingerprint": "9c72544939003f08d6f4464108d117d108cb903c7c307d5fabbdc904811b4a04", + "fingerprint": "af52cf9a660167e536a5ec5b75a4189e6d800be06ef20bb06331a0bb9762401b", "snapshot": { - "docs/reference/type-aliases/AppHotkeyOptions.md": "dd13bc7632e78bf3c807fe6ee7d780f89ad773a03158eb743ca5f8f790b4adf2" + "docs/reference/type-aliases/AppHotkeyOptions.md": "76ed2eb2ca9588798b9af5250880d05802112afc036124f10c162212435e1009" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeyOptions.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/AppHotkeySequenceOptions.md": { - "fingerprint": "bda2571a41bde9a3330ba9eb5d8be15854be1dc55cf451fcb74d8ac022502b8a", + "fingerprint": "c8fe375c863ed9aa173db29a06d1efa8aecea72e01ac82ad26dff05fb21214f4", "snapshot": { - "docs/reference/type-aliases/AppHotkeySequenceOptions.md": "127bf99307fe9194d5ab3bb30105e70bee774998f106b9212a22e194c99fb5b6" + "docs/reference/type-aliases/AppHotkeySequenceOptions.md": "fb4169483cfd42280ab7d8cc640304ca29d8f8f192237d7f98ed9cf75abba855" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeySequenceOptions.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/AppHotkeyStatus.md": { - "fingerprint": "3f3c262b4152ded4a199e4c78a8701dbcda0a8ad3f65d66985540e21d6a0d5e6", + "fingerprint": "af65e20da1147dffe91578e86a23586d5babc5b4c1fb8277fc5dd03ef0b87ca6", "snapshot": { - "docs/reference/type-aliases/AppHotkeyStatus.md": "6b07bdb5226d3fc10790ba14bff85858b3dd8ae0e0d0428082b42dbed4ed7024" + "docs/reference/type-aliases/AppHotkeyStatus.md": "77d2de024b58f0b2c61cad3071747f31e7166cb1f3c908ee2f31f06c4431c71c" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeyStatus.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/reference/type-aliases/AppHotkeys.md": { - "fingerprint": "bdbcad81cc03052c676df899d9140bfbc89f804c62644ac630f1926dc2de10f2", + "fingerprint": "366eae177f13398f18ba2a3b5f665645270b35ede934a2e33fef3425994e9086", "snapshot": { - "docs/reference/type-aliases/AppHotkeys.md": "3ceec2f33ce55d06ec3b7385b9723106397898f82d266925d1ddfa142829a024" + "docs/reference/type-aliases/AppHotkeys.md": "ee5b5c1b1888fdf73facb1888733257dab696c56c63807b90148e9edbae0dd59" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/AppHotkeys.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/CustomHotkeys.md": { - "fingerprint": "bf1d46020fa0a30aab23a64c44417bc6e922c30f8a4482e3281d916c7df71d35", + "fingerprint": "9883a4f1dd1bb1bec03ed01d75ea4833ea311bcd96ae7aac7a20f1862df255bc", "snapshot": { - "docs/reference/type-aliases/CustomHotkeys.md": "44ec5b2926da7da2a41b11bb616cdb1c8b9b7a0bb978cf9f68d17683991da7e5" + "docs/reference/type-aliases/CustomHotkeys.md": "9b46cc00ee5804d088c056ec2a092824538ae449994ed16dee0cfa2071cab3a6" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/CustomHotkeys.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/DefinedAppHotkeys.md": { - "fingerprint": "8a4ab3c3b32a49845cf5018d40564992086f569f697efec5c5e99f97c29e77fa", + "fingerprint": "e24f75725dc8ab1fcf6198786d52291f672dfe07ea87d2f5165760765c52e0a1", "snapshot": { - "docs/reference/type-aliases/DefinedAppHotkeys.md": "be0abe9a9a87b9c1c0cc9a4576dd439d1ecc35046cd20b7cece20d2547a4dd2c" + "docs/reference/type-aliases/DefinedAppHotkeys.md": "e9325ca4489870a1d37201d51eda7f74054dc77b2fe1ad0a9897176dbeb7f8be" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/DefinedAppHotkeys.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/RegisteredAppHotkeys.md": { - "fingerprint": "ba29005e68c10ac1603365d12f96f48ae71186024d88c06c159432b035544f64", + "fingerprint": "0ff819099d9fd39f31e3c6c016d225878a1efb591497fa46c88132abe427f378", "snapshot": { - "docs/reference/type-aliases/RegisteredAppHotkeys.md": "1ed7d6a26ac53dbb104ade03d24267749f8365e6ad765de73053aca6f11c7139" + "docs/reference/type-aliases/RegisteredAppHotkeys.md": "ffb7e1b74742a3085d867c902a3c2fcf05567c71da022464760dcd596be73728" }, - "head": "5b07f208a45afb5b396c628025c52294de62d313", - "outcome": "out-of-scope", - "reason": "Regenerated reference docs; only \"Defined in\" source line links changed.", - "evidence": ["docs/reference/type-aliases/RegisteredAppHotkeys.md"] + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/reference/type-aliases/Target.md": { - "fingerprint": "976d4e23e8e78ae594748914939a8235ce56a6c218bed648d31028ae3dc09fac", + "fingerprint": "f6627d19939fcd76343abff5b9a400654c5251e3a0416ab193cd3763d34e1d64", "snapshot": { - "docs/reference/type-aliases/Target.md": "9776565467dd5900e7254fe1638c5ab8eaf3538457f750d24ff3edcc995295eb" + "docs/reference/type-aliases/Target.md": "7ef0c12402023fb70770610eb61bef667c9ba77b06e7c99701ed02ec47513c77" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/reference/type-aliases/Target.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:packages/hotkeys/src/_event-target.ts": { "fingerprint": "7d5f65094e1a9f7ad01dfda093fefede76e97bd680952f7088b5c69cbdfee529", @@ -2487,27 +2588,27 @@ "evidence": ["packages/hotkeys/src/_event-target.ts"] }, "source:docs/config.json": { - "fingerprint": "0cb4a1bd42647637f05ce7b7ff6121bdd4a0e8a013d45d787bc1c4a07dfebb95", + "fingerprint": "bbe02c079b1c1c417c9845cfd903dcbc6de47d13b3777f6ec26c6a85197b6799", "snapshot": { - "docs/config.json": "36232fa7bc9c068ef992988036485655fb9587f7dee6029abe19f19f81a94021" + "docs/config.json": "883ddba51303b84d8ec6110eed42649237b7d7fc71ee3ebe342a342795f4b9af" }, - "head": "391443cd0c92b1040b7a9f3270c97c48850f4f36", - "outcome": "out-of-scope", - "reason": "Tests, sidebar config, or regenerated reference docs.", - "evidence": ["docs/config.json"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:docs/devtools.md": { - "fingerprint": "0531feaff7a5b318e796b8b9a5ea2ebbbc167b535d7affd20222afcb1cc9f3ee", + "fingerprint": "0d96d99c22bf4ab92be7d2a0db8af69c80cd3d1c7212491ecc532d1749e7553c", "snapshot": { - "docs/devtools.md": "d8c866a6b4c09cdce0ad469f21085f4b4f7795825bc0e33dbcd1cc0d02ad30c3" + "docs/devtools.md": "e9970ffe470f99a5e8b80966adc1bcf540534fa8551609753ceff2241b43146c" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds the Solid devtools floor (1.9.15) and raises the Svelte devtools floor to 5.40. No skill states devtools install requirements.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/devtools.md", - "packages/solid-hotkeys-devtools/package.json", - "packages/svelte-hotkeys-devtools/package.json" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/installation.md": { @@ -2596,81 +2697,75 @@ ] }, "source:packages/react-hotkeys/src/_appHotkeysStore.ts": { - "fingerprint": "bf7cb0cf9fe862d679b29cd7773a125cb72f72fd529f3a35f5088b9366520b84", + "fingerprint": "96ceedb614a3a17c946e048d97d7723a0c40b4cf0b322b365b221e64f9fb4173", "snapshot": { - "packages/react-hotkeys/src/_appHotkeysStore.ts": "8559856f8904f3ec51376df60636653be14839f94a95c604b3b3a5d4f05df708" + "packages/react-hotkeys/src/_appHotkeysStore.ts": "9b2f66665b69e10aacc2fb952c7ec5e7865aae0e43fb7b8710229cdf2830e1d4" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/_appHotkeysStore.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/src/useHeldKeyCodes.ts": { - "fingerprint": "afb6972f4a525a47711c2315cae72a2b60d64ab58eb365afbab738c1ef50668d", + "fingerprint": "e619d1934bfe526f13a18e9b119a5a0c34abb52452e54294f3021b9fafe12e90", "snapshot": { - "packages/react-hotkeys/src/useHeldKeyCodes.ts": "4835312e094dc6adc4e54da169e08eba450a207edf3c4dcca0b0e1064137cddd" + "packages/react-hotkeys/src/useHeldKeyCodes.ts": "ae8e595d8d793c5190c142a804f44f6bf34ae9f0d14285e0e0c83da316b6605b" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useHeldKeyCodes.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/src/useHeldKeys.ts": { - "fingerprint": "6a68e250329bf139f18a6d74cb50f73de9d43077f4fd7c775edfc39cf0df9620", + "fingerprint": "eb9a01dc148638b095cac7815b2cb94524cc1057e021e914849f2f73fe7640c6", "snapshot": { - "packages/react-hotkeys/src/useHeldKeys.ts": "898b8675cfb0ea207ce9a00e6150ea964cf473da21465284a4af9405f0e24eed" + "packages/react-hotkeys/src/useHeldKeys.ts": "736fe35775973c533bd7832035c0b2bd42c7ff16e61cece02494079eaef7b584" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useHeldKeys.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/src/useHotkeyRecorder.ts": { - "fingerprint": "0e3b0909feec1eeaf7f88ccf6a1a40aeffe38857916c50cdadee199d07b704e9", + "fingerprint": "b45c6c0576b10e19971016f09e92deab96c2db219585004d3bc741c8fa09c235", "snapshot": { - "packages/react-hotkeys/src/useHotkeyRecorder.ts": "ae2a2022eb2fe71258d24b87c6e50bf9e185a9731f46de3d123777f12bcc2e84" + "packages/react-hotkeys/src/useHotkeyRecorder.ts": "80891873916d494472d6f55773718ed588c755bd7bbd17435fcc6f6c0cf6f1c4" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useHotkeyRecorder.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/src/useHotkeyRegistrations.ts": { - "fingerprint": "b51b2325aaf3a0874335cb595e01ce42c0bdc8304170c5e58f0fcea3fb2a599f", + "fingerprint": "c3de9a5a3ffa9436da9f59dbce7f697b7cbb7ada4b36b9a5dd8adc3b38cbc4bd", "snapshot": { - "packages/react-hotkeys/src/useHotkeyRegistrations.ts": "c9d391b896137215cdd38a912ec996bc44b93fb18c9aee7a71e1f12a55609d37" + "packages/react-hotkeys/src/useHotkeyRegistrations.ts": "cc541201bbad4519f5095f01252326c81ad9a17415e7aa8f0a3fde8485ec344f" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useHotkeyRegistrations.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/src/useKeyHold.ts": { - "fingerprint": "fcd57f054ff1cdc491f205ea13669fd4b5a9c63dc2e3e707a80e1939400baafd", + "fingerprint": "4c970fb9c6a105c017b45649a05a7c57675553931f34f7df08980d5972e7769f", "snapshot": { - "packages/react-hotkeys/src/useKeyHold.ts": "83f6c85e9d4d1e3f6c44d7276fa2acb67ac2247d99d8655fcf2b57d29087de74" + "packages/react-hotkeys/src/useKeyHold.ts": "e76910741ccf99ff32883c4a9ec6ea7ca4c7107c77a76f81d3572e59efd47479" }, - "head": "41f06c51a38fac64409a3d4932cc8958f558ae57", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adds a 'use client' directive only. Hook behavior and signatures are unchanged; the React Server Components guidance is reviewed under the react-hotkeys skill item.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "packages/react-hotkeys/src/useKeyHold.ts", - "pnpm test:lib for @tanstack/react-hotkeys passes" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:packages/react-hotkeys/tsdown.config.ts": { @@ -2687,17 +2782,15 @@ ] }, "source:docs/framework/react/reference/functions/HotkeysProvider.md": { - "fingerprint": "f9779831e2d3ff91313cc82ed109a6de56433cbab505d85c5a3db7005ed0edd9", + "fingerprint": "9f39368913cf9e2704c60197971bea70be475df4d16ea6a279a5e407dd89f50e", "snapshot": { - "docs/framework/react/reference/functions/HotkeysProvider.md": "e56cad1df37f41ff16daaa38b58c44f950763c2b7ae07c5f0d8c061595ca203b" + "docs/framework/react/reference/functions/HotkeysProvider.md": "28eb7d1d7aad325f95323d628a7d1a2bc5ea7ff5e765e0cd3ede8ef9fcf08c2b" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/functions/HotkeysProvider.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/functions/useAppHotkeyList.md": { @@ -2743,17 +2836,15 @@ ] }, "source:docs/framework/react/reference/functions/useDefaultHotkeysOptions.md": { - "fingerprint": "cf662117c0382dd6622ef91d29bb6f0e6941c17a6307818ca6ad2544e758fb0e", + "fingerprint": "010367d4b1d69de5053fc08d7f0b2d94b6c2bf22c9663f814a96cc317492e097", "snapshot": { - "docs/framework/react/reference/functions/useDefaultHotkeysOptions.md": "471679488bc62613e860e92c3c18d137b76000bdd2d5fc6606f195a812faf6a8" + "docs/framework/react/reference/functions/useDefaultHotkeysOptions.md": "f64a18d15e6c3dc7222801174dd0a36c9d150238c95c41e3c91c014cb3bc6e69" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/functions/useDefaultHotkeysOptions.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/functions/useHeldKeyCodes.md": { @@ -2771,17 +2862,15 @@ ] }, "source:docs/framework/react/reference/functions/useHeldKeys.md": { - "fingerprint": "882f3beb513659020c7e339f75a0e49fe66e6fc89c560652cccc3d8af4214d3f", + "fingerprint": "b1c7f14829d6a53d7cadf97814c1d14d83d366cb62d2bfeb6eadbfc4889c670b", "snapshot": { - "docs/framework/react/reference/functions/useHeldKeys.md": "154e049ee019e16e142f386882f1af3e3230c59f8753b7d0192a005c905dcd48" + "docs/framework/react/reference/functions/useHeldKeys.md": "83d687a5b5873c89d511acd926608ac097776b69148df7ac7b6aac7af416bac6" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/functions/useHeldKeys.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/functions/useHotkey.md": { @@ -2841,59 +2930,51 @@ ] }, "source:docs/framework/react/reference/functions/useHotkeysContext.md": { - "fingerprint": "4a200c839c1591d455a603a88d93a1efbf81416c431a0e3dcc3fada8b9b7fa1b", + "fingerprint": "82f420ee6ad32c8f1b3c0520326c861c28a547fe37cec414272baf3b89bdf27e", "snapshot": { - "docs/framework/react/reference/functions/useHotkeysContext.md": "48f14c130836777288225c59e855383ff57f5183d5369ff6628c2db96fdb7231" + "docs/framework/react/reference/functions/useHotkeysContext.md": "0771390d60e1ae1b85c7bd881cf02d8039453deaca2b46f0d623a8b64c4fa5b7" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/functions/useHotkeysContext.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/functions/useKeyHold.md": { - "fingerprint": "39fecf77ed41c287816748aed3e8d2d89148b84db4d100afdb1c9c505cec7692", + "fingerprint": "31c22b95b6a0305aae52af98ce14bcf5803047d98836d0fa8726f0e69a6ab1b6", "snapshot": { - "docs/framework/react/reference/functions/useKeyHold.md": "ed7b142b99e40888991365318ff8f7344be13cbc33871e5ec140d0c9b59f08fb" + "docs/framework/react/reference/functions/useKeyHold.md": "0cbfff46f9c116956e7563abc58b5596b995e2dc9381afabf4794abbd594d7c8" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/functions/useKeyHold.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/interfaces/HotkeysProviderOptions.md": { - "fingerprint": "47af71a7b465b68573fede0691da030a1c5525cb89ef4e7fc6563f1cdac13796", + "fingerprint": "46555c042c42723320dcd2d48b160cff406d49834c2acd139a96515a62a650b9", "snapshot": { - "docs/framework/react/reference/interfaces/HotkeysProviderOptions.md": "7b80ab601c57ccca327d795c8ceb2ce15f4bd9532d68d82bc7183fbcc8884337" + "docs/framework/react/reference/interfaces/HotkeysProviderOptions.md": "fd4d2b2976c6b19360f1f240cbe3ec17bd11541d0f59befc1b4ede3e114026d8" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/interfaces/HotkeysProviderOptions.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/interfaces/HotkeysProviderProps.md": { - "fingerprint": "361a4bded298f7e741ebbc0c6358b3f33c873f28b9f4723e99da3786408404fb", + "fingerprint": "9af45f0ed744f2f31f4944adb6a097a4c199e05dcd86d8b8b877ea6acf60a2f3", "snapshot": { - "docs/framework/react/reference/interfaces/HotkeysProviderProps.md": "6c321229daeb70695c9e64f2f1bb78fd8b59b29f43f9524c9773fe503bdcd166" + "docs/framework/react/reference/interfaces/HotkeysProviderProps.md": "3e0b1ca9134ec44c79aaac9c3edc2c9e6ac218e3e47e38f2a2eef91108595b7f" }, - "head": "6a7576fb36738c24623d5cbfb260941447d42b76", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Generated TypeDoc reference. The 'use client' lines shift each 'Defined in' source line by two, and HotkeysProvider now shows its ReactElement return type. No skill guidance depends on either.", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", "evidence": [ - "docs/framework/react/reference/interfaces/HotkeysProviderProps.md", - "packages/react-hotkeys/src/HotkeysProvider.tsx", - "commit 6a7576fb (ci: apply automated fixes)" + "Reviewed the diff for this file against the skills that reference it." ] }, "source:docs/framework/react/reference/interfaces/ReactHotkeyRecorder.md": { @@ -3047,14 +3128,16 @@ "evidence": ["docs/framework/alpine/reference/functions/hotkeysPlugin.md"] }, "source:examples/alpine/createHeldKeys/src/main.ts": { - "fingerprint": "a970a6bbb2942767514753a2f50fc3a59a72b13f770f2620cee0a650a77e4bdc", + "fingerprint": "e43774ad3e3e651bc783aba1f736ced9e471818c4db22c072ecba4427ff9bb95", "snapshot": { - "examples/alpine/createHeldKeys/src/main.ts": "75f29fc337259be17e2792324969fd6b20755f0b2b65f42a5b3bcad7fd37d0bb" + "examples/alpine/createHeldKeys/src/main.ts": "6cd328ce842c378338686290843715b7419cb3270ff985b22607af602bcaf104" }, - "head": "a61d917542e56c07f1a3d2aa3f6eb951e5150818", - "outcome": "out-of-scope", - "reason": "Examples install hotkeysPlugin before Alpine.start(), as the adapter now requires. No guidance depends on the examples.", - "evidence": ["examples/alpine/createHeldKeys/src/main.ts"] + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] }, "source:examples/alpine/createHotkey-sequences/src/main.ts": { "fingerprint": "291e42f3732289a5500e8aa933111c7695b9ae07f751cf70f2598a3ad7159ea0", @@ -3615,34 +3698,40 @@ ] }, "source:docs/framework/vue/reference/functions/provideHotkeysContext.md": { - "fingerprint": "7929f4b57aba947f8621dd4e9087f700e9914cd15405c72ecad641097f2a85ba", + "fingerprint": "af69bca95abab03d59b4a85165889459210826fa4a5af276c409d9cbf19fd491", "snapshot": { - "docs/framework/vue/reference/functions/provideHotkeysContext.md": "e39c1e14d026ec534b83cceade4ba75459cceac7d19cff18e97f84664a8cd98b" + "docs/framework/vue/reference/functions/provideHotkeysContext.md": "ec84c24e5fda606b6b55ec418ed14a0412087cc059598ba3c543a77a2a73d935" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md": { - "fingerprint": "c49cfad8432316f818047bbc0172264efee068839323239d2bf947e8b0eec9bc", + "fingerprint": "487e2fd102ae620dfe9b0cc9eea81fdd754c83060bde95fa696351f7f8e482a5", "snapshot": { - "docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md": "f3cf5a5ae1ce7b31735877b9c3936db0e4e22a5e4e3e5080d45f5301d5d33003" + "docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md": "feecb005de1e8d975b0d15341ca9eebfc5fd655e5de1d0efc7eda8a821a7acbc" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/vue/reference/functions/useHotkeysContext.md": { - "fingerprint": "8d432590045f8bfdd42af1f6ceb02388224ce8a3955d5e2e5e80460cd5332b5c", + "fingerprint": "a94be94d09f51472a2a963edacb640a021c6fa53874641774dd17e3d80e2d18f", "snapshot": { - "docs/framework/vue/reference/functions/useHotkeysContext.md": "829e95e3587b7e34f621bf4383bdfdef00c5bd34a8ff8455f37a07553eb78633" + "docs/framework/vue/reference/functions/useHotkeysContext.md": "a95951c713454d8f4426a0114ea896b053d8d920e23711816315dd20eedf1740" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/vue/reference/functions/useKeyHold.md": { "fingerprint": "425755acd37a2f4eb11b04d32931bd3f91e6790a8bc0d25b9341a8887cce795a", @@ -3655,24 +3744,28 @@ "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] }, "source:docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md": { - "fingerprint": "9129b0d3cd16d42fb48c5ad1fe75c71437f60aae062a4bcbaa53ece42e88f43c", + "fingerprint": "dac5045711e404d340c9f309f36a487286e18f7cf27e46c0907ab83aa1c606fa", "snapshot": { - "docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md": "2cc2895ecc8c3c27eb94bfb1e46675e914ca3af3eeb9eddd52436f4a32b9a4f4" + "docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md": "1475b3b5c5aba316ff639d28d1cb383ea58b06c0422aaa63c1688edebdb008a3" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md": { - "fingerprint": "499a2e7a3c3a12f7c5730b321805f1536fbc42d1d5ac0b633719aa7b7f8e052d", + "fingerprint": "413bb261e92203e82db48cd02969b6d941bfd776bb8174cd4659d5ebcd6ed49e", "snapshot": { - "docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md": "eff035f9353af214afad107e2ccbc8958fb3970a18d82074fb092c43be2bd731" + "docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md": "80be0b6aceb1769a30dfb586fad77a426f09090dfbd8cdf6132ce2e253891f95" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/vue-hotkeys/src/defaultOptions.ts": { "fingerprint": "477e881409348b752198622ab3621266551ae94b24789456265a38c0d6f53894", @@ -3695,14 +3788,16 @@ "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] }, "source:packages/vue-hotkeys/src/useHeldKeys.ts": { - "fingerprint": "4752e01419fff0b7bc9104b932a3cc05eb480d88e2c68bdc978a5893bb85cd36", + "fingerprint": "ef43d521c32c5c15115b0fc664b25f15afb4eda7e41cb0c934f570a5d769bcc8", "snapshot": { - "packages/vue-hotkeys/src/useHeldKeys.ts": "8b6e2a5c7b86b9216a0d32dc1ab0805a9f3f86e6c168291439af738a448f0012" + "packages/vue-hotkeys/src/useHeldKeys.ts": "e26d7899ff65a8921bbd73d454c21582d9045bf78d9f0f07b1cad3942bb20083" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/vue-hotkeys/src/useHotkeyRegistrations.ts": { "fingerprint": "1776e8bf3bdea89fe268f32fbfc63da939ebdd4405c336e9f2e38dc0723fe698", @@ -3725,14 +3820,16 @@ "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] }, "source:packages/vue-hotkeys/src/useStoreSelector.ts": { - "fingerprint": "cef8ba521fe700838481c4564b5982e14ccef8bdcdec14fe45618881a05156e5", + "fingerprint": "108b2921bbcec1f25b1f2aa04c516668dd6c54664ec50e92b2d0e127f45a09cf", "snapshot": { - "packages/vue-hotkeys/src/useStoreSelector.ts": "3a23556a929d22173334fe6a4c7b423a548d46c1d9b47474ec0b5c95a3df680c" + "packages/vue-hotkeys/src/useStoreSelector.ts": "46a514bf6aca10f29fa006b896f5d41a361e1ef7a4a3d62f58fe67ad0ffc0692" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/vue-hotkeys/tests/effect-scope.test.ts": { "fingerprint": "14c39b3a71a9f6ab432e538ff8c8e644491bfc886eb27201143baad17ee4356d", @@ -3745,14 +3842,16 @@ "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] }, "source:packages/vue-hotkeys/tests/ssr.test.ts": { - "fingerprint": "fa12ebcd4c4fe0438422fba73377225c7cb2f8ed16cd5c571bbd0c806b99dbbc", + "fingerprint": "8e6081dea08718c6a331eae9b8935cd5013ac962c52b23d4f809afa185dca919", "snapshot": { - "packages/vue-hotkeys/tests/ssr.test.ts": "ad3b0a909c4a0e05521eb707adcca2d5f945745044ecad436c89b8a34d890a56" + "packages/vue-hotkeys/tests/ssr.test.ts": "db41a920094cf337ab71dabe6f4ae2d00260c6adc1f956d66c7d8ef1df549df2" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Internal Vue adapter fix (SSR subscriptions, useKeyHold reactive keys, inject guard), its tests, or regenerated reference docs; no public API change and no skill guidance affected.", - "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/vue-hotkeys/tests/useKeyHold.test.ts": { "fingerprint": "4e13ed9489f0dade5272bb41c7d89b47f485d989fa420f8277610b80613a226a", @@ -3765,14 +3864,16 @@ "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] }, "source:docs/framework/lit/guides/held-key-state-helpers.md": { - "fingerprint": "4518330655b30ff3798a0e110b1b04c6ab7874be6562dcfc3398ac81de69d127", + "fingerprint": "2b4dd8b60e3a8fe1b65ddc953232a795d684b5340cd4c053b497e08a21dc038b", "snapshot": { - "docs/framework/lit/guides/held-key-state-helpers.md": "bc20ab354e2919d5bba8485bc359c5e50146ac3e9cfb6270fb6a727213edd41f" + "docs/framework/lit/guides/held-key-state-helpers.md": "c5d21bc202b34ca0e357f318a894b00999a5efc118b42ed3a4f9845f0229e171" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", "outcome": "no-change", - "reason": "Adapter bug fix (SSR subscriptions, reactive key-hold keys, cleanup outside components), its tests, user docs, or regenerated reference docs; covered by the skill review.", - "evidence": ["docs/framework/lit/guides/held-key-state-helpers.md"] + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] }, "source:docs/framework/lit/reference/classes/AppHotkeysController.md": { "fingerprint": "c73bd934701be78e27215ad3bd133aac42547532e553bc64655c17561053a7a6", @@ -4057,14 +4158,16 @@ "evidence": ["packages/lit-hotkeys/tests/key-hold.test.ts"] }, "source:packages/lit-hotkeys/tests/ssr.test.ts": { - "fingerprint": "407d437523e3c47faadf435cacc353fd1924d4885c5a44d92efce02c4a1eaf65", + "fingerprint": "6ad95b3cc5dbc0b9deb548beec6eeb668199ec9b7bad2a369c48594a7cfab322", "snapshot": { - "packages/lit-hotkeys/tests/ssr.test.ts": "de952a00817f189790a4b0563b4d9286137a380011c2e1fb4a0b392ecef98b84" + "packages/lit-hotkeys/tests/ssr.test.ts": "aaf888305a2833f92642bd447c4aa7e8465f87b95a174abe36b5ef3b4739f1cf" }, - "head": "5053876bbd97d6b056cef9eddddcc4e28c249aba", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "no-change", - "reason": "Adapter bug fix (SSR subscriptions, reactive key-hold keys, cleanup outside components), its tests, user docs, or regenerated reference docs; covered by the skill review.", - "evidence": ["packages/lit-hotkeys/tests/ssr.test.ts"] + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] }, "source:packages/svelte-hotkeys/tests/effect-root-harness.svelte.ts": { "fingerprint": "e64b3f0c53a1531b1dce79f34f3b8fbe12824dbb547ec38f512d3cab914e86d9", @@ -4089,14 +4192,16 @@ "evidence": ["packages/svelte-hotkeys/tests/effect-root.test.ts"] }, "source:docs/reference/classes/HotkeyRecorder.md": { - "fingerprint": "172fbfaafd03f66c42218b83c279a889e2f01ac8ae23063d8174fe46087c9d9f", + "fingerprint": "b5d797690264252f9877f556645dae43691a59406723dd8a38a46310f6efc1be", "snapshot": { - "docs/reference/classes/HotkeyRecorder.md": "35665f0a06f15c9e7ff06350efac8422a4601501ddf5e3ce0e56888d171471a8" + "docs/reference/classes/HotkeyRecorder.md": "55d6b9d2e5fb8cfa0ae739cf5b6982123153d97f1ce507dd8e21821411ff9ef9" }, - "head": "614339f8f59a0776451f4ccc64cb5cadc20fd145", - "outcome": "out-of-scope", - "reason": "Test or generated reference file; no skill covers it.", - "evidence": ["docs/reference/classes/HotkeyRecorder.md"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:packages/hotkeys/tests/hotkey-recorder-ssr.test.ts": { "fingerprint": "cc1320213a1d9a3add1904eb163614e252ef51fb7f982c3da8c124715c238e8f", @@ -4181,24 +4286,2558 @@ "evidence": ["packages/hotkeys/src/_match.ts"] }, "source:packages/hotkeys/tests/match.test.ts": { - "fingerprint": "772ef55007f01169680bcf72ecca934e93c38d7d142bfa323eda2e1d259e9b3e", + "fingerprint": "cb19ebad70781e3da9bd0750608bee772e75efb24ee8e8d3b331e49db0ae4f80", "snapshot": { - "packages/hotkeys/tests/match.test.ts": "a433f330161f4f6c7e0e73221cd7cffb548ff248882acb1460cd21624ca23b12" + "packages/hotkeys/tests/match.test.ts": "050203d0606119ba5bc737cc30146e230711dd96507d1e77437d587471986ccd" }, - "head": "210b3fb5577b3e7381a7c74d70e87cf395ae6682", - "outcome": "out-of-scope", - "reason": "Matcher source and tests; the guidance impact is reviewed on the hotkeys-core skill item.", - "evidence": ["packages/hotkeys/tests/match.test.ts"] + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] }, "source:packages/hotkeys/tests/sequence-regressions.test.ts": { - "fingerprint": "0df4f71842f1e3aa3bb0e7521a1f5e04d30b1c9a9ff270b7914fdf09b773e32a", + "fingerprint": "9f235b4f747d09b413f754ab5a6b1397f72accb5cb138ab7be3bd34798239073", + "snapshot": { + "packages/hotkeys/tests/sequence-regressions.test.ts": "aa7d6e70b184ebcc8c12081f7494fce31cd303c3c953ccc0c5f4cea577599929" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:.gitignore": { + "fingerprint": "a84d15c818af0081559065548b39cfc324106ad5c821ac4408caa442f419fc0d", "snapshot": { - "packages/hotkeys/tests/sequence-regressions.test.ts": "80db8a2da40225783f823edfba6b5beb97b3bdbd1e754b7952e9eb34957f48c6" + ".gitignore": "9bb08f48d6ff76283b48a0df3ef663250f937ef5497c16ceefd59a35c38a8842" }, - "head": "2f73a120955c389d30d110aaf63307c077d92323", + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", "outcome": "out-of-scope", - "reason": "Test fixtures only; the guidance impact is reviewed on the hotkeys-core skill item.", - "evidence": ["packages/hotkeys/tests/sequence-regressions.test.ts"] + "reason": "Local ignore rules for untracked notes; not part of this change.", + "evidence": ["Not committed with this PR."] + }, + "source:docs/framework/angular/guides/app-hotkeys.md": { + "fingerprint": "8758f2f044dc5002deb84064c8a978fa10c688c22ab2d1c5da81d2e0604cf411", + "snapshot": { + "docs/framework/angular/guides/app-hotkeys.md": "71fb0c6bdf82260911e2f4296a0ebd102abba9f7f5965630347fc74888362642" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/functions/injectDefaultHotkeysOptions.md": { + "fingerprint": "6fdb57f2f315963be1db747aa4c9e19d153fe205cfb73015d95115bc232791c1", + "snapshot": { + "docs/framework/angular/reference/functions/injectDefaultHotkeysOptions.md": "ed698c5ed271c557b9fef75a485981aa4e9f514120219388702226848453a505" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/functions/injectHotkeysContext.md": { + "fingerprint": "f87d0b4f4e2d229be6e83f4124610597e4f6cb2fa41fdb62cf386cf8e06fba9f", + "snapshot": { + "docs/framework/angular/reference/functions/injectHotkeysContext.md": "6e86468575797834267b61aefef2f9e91e6f6a76a3f6858a19960d985b5ee332" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/functions/provideHotkeys.md": { + "fingerprint": "8d7a9f0961fa1dee557058e56c0bfc22647b91e64e50e3eddf3d80b752ff2ec5", + "snapshot": { + "docs/framework/angular/reference/functions/provideHotkeys.md": "c0f0412226aa7d1ca7f02514186f486e6b2d2e7e47f1d7bb8484abd59f88d817" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/interfaces/HotkeysContextValue.md": { + "fingerprint": "34e2e0d70deadf15a93848a21728a2314d37d1f682eec36596c0a89e32754f2d", + "snapshot": { + "docs/framework/angular/reference/interfaces/HotkeysContextValue.md": "1e72c6934804953933fbab191509fc559caa06fbba1561563c7caae21e0a5c75" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/interfaces/HotkeysProviderOptions.md": { + "fingerprint": "04ecd7c686ccfd664e0ecf357be11674b5aecf02927c60476cd08fe9a4ced68e", + "snapshot": { + "docs/framework/angular/reference/interfaces/HotkeysProviderOptions.md": "8e4662d6da2ea88b5b62a478e1b807233e2b52ee270317326312a58119236515" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/interfaces/ProvideHotkeysOptions.md": { + "fingerprint": "cf5ce93e72b13809b3dc30886dc90fa06ba4f70e879c884d312b8f5eb72990c1", + "snapshot": { + "docs/framework/angular/reference/interfaces/ProvideHotkeysOptions.md": "f42bc7094c166add53a26c155f073af1a8f953e438d3e7cb1f098880521a3699" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/type-aliases/MaybeGetter.md": { + "fingerprint": "67ff23cf90f303ab525ec67119c71575520f703b00d76e4bf18d48a6b5a64646", + "snapshot": { + "docs/framework/angular/reference/type-aliases/MaybeGetter.md": "c1e1b71382192567a5fef85d4ac6721957c88c9a6f7fbd15509cf4167a7458de" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/angular/reference/variables/HOTKEYS_INJECTION_TOKEN.md": { + "fingerprint": "1abd03d54304eb8d65923e5c4336f11a866fab12b8d8826ec6c773d5335c07e5", + "snapshot": { + "docs/framework/angular/reference/variables/HOTKEYS_INJECTION_TOKEN.md": "6825ced6a32df27ad80af9d145f9bd095c4656b28ff7718047bb98f7208aa2cf" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/guides/app-hotkeys.md": { + "fingerprint": "d882fce17ffe9695f154585d1215117f496516b413a945e346f9f2e2d4e7227d", + "snapshot": { + "docs/framework/octane/guides/app-hotkeys.md": "5f966932314b7bd4a54997c96afc239e37e95d2a22453831f3993458e8cfc27c" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/reference/functions/HotkeysProvider.md": { + "fingerprint": "bac53f1080bb5f9f3117fede5f64900dc39d1a62eccf27e8475dbe5ec97eb589", + "snapshot": { + "docs/framework/octane/reference/functions/HotkeysProvider.md": "8302544d156b2d7f5dce44fa78349ca93e821006a8b774b3d2f48586515f13ce" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/reference/functions/useDefaultHotkeysOptions.md": { + "fingerprint": "5ea6f6588c44bda79795085069a1be8a3131660e78319c410f2d9180bd6d37f7", + "snapshot": { + "docs/framework/octane/reference/functions/useDefaultHotkeysOptions.md": "6243a886e6bd51ff0d6e4b0841f150b0502d66f7fdf9f97a6d8732094ffdbbd0" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/reference/functions/useHotkeysContext.md": { + "fingerprint": "2107e2006db53c46276d49714a989ff72a7a04839a97cfc48d1da5f12cdadd95", + "snapshot": { + "docs/framework/octane/reference/functions/useHotkeysContext.md": "541fdceab030cd8aeeb866f9da80b7e0230132b0838025b482709c9b414ec683" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/reference/interfaces/DefaultHotkeysOptions.md": { + "fingerprint": "23c01439aa33a3eb846ab3562b3e395f837403517b3cb40285837f8bb5687f56", + "snapshot": { + "docs/framework/octane/reference/interfaces/DefaultHotkeysOptions.md": "a360223c4209da3c40ad44d6ea1d099afcfcd49bb55225b32574752f364ec868" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/reference/interfaces/HotkeysProviderProps.md": { + "fingerprint": "8a1d5a808d113062afef4479aed2cda0579c73d38ec201ba4b83d560f7a80058", + "snapshot": { + "docs/framework/octane/reference/interfaces/HotkeysProviderProps.md": "ce68ee5ac230c4a4114742ebf92246926515f506ed22294a4dc22319f1cdb2eb" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/octane/reference/type-aliases/HotkeysProviderOptions.md": { + "fingerprint": "5acecc35ff1ffa792194a99490c41b7e63cd176472e6b00d952c1a9f07f341cb", + "snapshot": { + "docs/framework/octane/reference/type-aliases/HotkeysProviderOptions.md": "29c6b77f6dd3d0c70958e8e656ae7455e82c3bf420c5bd82396063ce725fbf97" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/guides/app-hotkeys.md": { + "fingerprint": "0ae86d35947c0ffa2a05d4e63c989d99344be47c8145659b848aeb1dcd353b6e", + "snapshot": { + "docs/framework/preact/guides/app-hotkeys.md": "a1db3b79fc1dc4a954bebde2d1edfe57b2a5b1fdf39d7686f86340ad98ae047a" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/functions/HotkeysProvider.md": { + "fingerprint": "50bc640108fff35d2ae9c42324e716e930c4f2880e577eb16f842d27b72ade24", + "snapshot": { + "docs/framework/preact/reference/functions/HotkeysProvider.md": "c4a9e6e51146f5061c7a727a762a20a65a544551c0397960b425b5a59a260c3d" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/functions/useDefaultHotkeysOptions.md": { + "fingerprint": "2308d91861730dcaace01921275337121e794866b6df58919e870430f1d8384e", + "snapshot": { + "docs/framework/preact/reference/functions/useDefaultHotkeysOptions.md": "f7481be2761d99a6bf56922e63ce967aaf7784d5fc3bf9e4718764df56c79459" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/functions/useHeldKeys.md": { + "fingerprint": "5280eebb6cd8969e0857db882538954c4fbe3219155ca82437ae5454a94d3efd", + "snapshot": { + "docs/framework/preact/reference/functions/useHeldKeys.md": "576d2874f3c32c7fee11b8b64d5a7a9348079fd987ea7feaf386c554364d543e" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/functions/useHotkeysContext.md": { + "fingerprint": "c8e4fb59d0c7f6dbbf9c62dd965f3eb169a1a33961d26645009c259696745395", + "snapshot": { + "docs/framework/preact/reference/functions/useHotkeysContext.md": "ce3a5de44b56a64ce734f9ad9c10ad8f452512df3ac8a2bfd47a45d2599d63c6" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/functions/useKeyHold.md": { + "fingerprint": "b81f4edcd16fa0df8e66a65d94f4ed8c1489f650ffc366ee20fe27f14dad2cd7", + "snapshot": { + "docs/framework/preact/reference/functions/useKeyHold.md": "50f4e7748f49f68709e879e4c9075c77fe4ea712b72078892a6a17fbf2fdbb66" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/interfaces/HotkeysProviderOptions.md": { + "fingerprint": "696134f727acee0f23b8442c82566ab16afbd9fad3db71bdfc19a6157a52d0ad", + "snapshot": { + "docs/framework/preact/reference/interfaces/HotkeysProviderOptions.md": "d0803fdc868173fe964cc379f9033fc09c697df9b873e117ae3df2b646536ab0" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/preact/reference/interfaces/HotkeysProviderProps.md": { + "fingerprint": "5161edc34c8f93bf6a0ae35214d282b845c49f3d4a62cba6a922be7c6833ab35", + "snapshot": { + "docs/framework/preact/reference/interfaces/HotkeysProviderProps.md": "cc157435db069893c8b71a790a2be5fb8deef8224da14a8fbe4a383611d7e527" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/guides/app-hotkeys.md": { + "fingerprint": "4a4690cba68173b0ea9073f7bbb7d7aeedbbcd3f66f2c6975bcc8fe3c0e350ce", + "snapshot": { + "docs/framework/solid/guides/app-hotkeys.md": "45532d07d81dea93c89940c4c188d304a3519c44ad78e3ce478645ec74314ac1" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/functions/createHeldKeyCodes.md": { + "fingerprint": "15adb4ed78b165f85cbac5cf49382f04489b8590650b8d98b06b51c273089cca", + "snapshot": { + "docs/framework/solid/reference/functions/createHeldKeyCodes.md": "10e405f011591c988c43e22518d61c2e39caa82f87e685843bf62ec8f5c70507" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/functions/createHeldKeys.md": { + "fingerprint": "2febcb456b057131acb5de3964be4016f9515af0fe538e6d75738306e2312758", + "snapshot": { + "docs/framework/solid/reference/functions/createHeldKeys.md": "7f273edcf28ef426d409e721d63630663a78bb5b703620160163c8a98bb081c9" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/functions/createKeyHold.md": { + "fingerprint": "8dcb42b2da744010e36c881171c2229f3886e0c197af4d3b255384ce8e914c9e", + "snapshot": { + "docs/framework/solid/reference/functions/createKeyHold.md": "d3a05c04d824cdfb48d8fa4e51a880b1ece3a9d8d0d5bfb326e9f50fcdf669cb" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/functions/useDefaultHotkeysOptions.md": { + "fingerprint": "e8b22d636313892c3b64241eae7180d5fe42440facc608cbb7bb3fdacd56090e", + "snapshot": { + "docs/framework/solid/reference/functions/useDefaultHotkeysOptions.md": "79863cd20b3c267c6367cb17c661563a7c8245150f417eae114e6d3f833b5ef6" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/functions/useHotkeysContext.md": { + "fingerprint": "87078d465e6555e1af7f7b072e48489cf4c7007c30e64ac9eac0a606eec654c0", + "snapshot": { + "docs/framework/solid/reference/functions/useHotkeysContext.md": "f30bcbe50f67e073407c0b642691fa6eb3e9eb03e441281741b44e36e12425d1" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/interfaces/HotkeysProviderOptions.md": { + "fingerprint": "5f37b923cb406a9cf00206ea8b16eccc96c137ce99a98ee15d75f8261da40365", + "snapshot": { + "docs/framework/solid/reference/interfaces/HotkeysProviderOptions.md": "fa1e4344d2d0c426c301e0aac8c540e356c1b077225131f180876ba8b605ea22" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/interfaces/HotkeysProviderProps.md": { + "fingerprint": "dcfc2bd3eac78dbe176cc0f3e919e640a6ddfcd130c7d23ce502dd49ba35815c", + "snapshot": { + "docs/framework/solid/reference/interfaces/HotkeysProviderProps.md": "174af2176df292780e571b8543231f690276bea35dee9d9e4cf474ac85763638" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/solid/reference/variables/HotkeysProvider.md": { + "fingerprint": "58f328d0ddc418968747e1f3099e4c270b5ed9ab9ece55db9ca073c41d9484ae", + "snapshot": { + "docs/framework/solid/reference/variables/HotkeysProvider.md": "9baa867b4027da78d752086e4955438beab08627f2dbdf67d606473a3ace19f5" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/guides/app-hotkeys.md": { + "fingerprint": "1379b46f2bb3b94bab35fe57b2e7a6c233610284936f1f24ba9ff472ee2cb65b", + "snapshot": { + "docs/framework/svelte/guides/app-hotkeys.md": "1bb42bcd88e305eef4b51273099af74b35469117d6d4025ac35b754398541797" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/functions/getDefaultHotkeysOptions.md": { + "fingerprint": "c99e171da8f691804864733f255c4908e14532b22683dd1c9eae18007de6654e", + "snapshot": { + "docs/framework/svelte/reference/functions/getDefaultHotkeysOptions.md": "e87fe38e5b3df29e1615f3da19c62caf02d1717a755799726fc245692db44cee" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/functions/getHotkeysContext.md": { + "fingerprint": "e8501c569414e699a249105fb5a2b4c2cd6c255c6c2172f9e08f60ef6fdaf2cb", + "snapshot": { + "docs/framework/svelte/reference/functions/getHotkeysContext.md": "e01221dbf6f6bf2cd5596cc414b1bdf63f58a84a25136aa37d3e271c9ccdbf92" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/functions/setHotkeysContext.md": { + "fingerprint": "25baf898b2c3f94b78546bb99f26a189a3ea3683aa5d393b83480d0ceb04da87", + "snapshot": { + "docs/framework/svelte/reference/functions/setHotkeysContext.md": "cfd0cc4b1312e942ac2b605d905e8040bbde0a3f2b16b8033cd391eae3030d17" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/interfaces/HotkeysContextOptions.md": { + "fingerprint": "f733eaeb41bbf2245afd5459984a53b19102c0fc1c218fd45ceaf38f9dc8da84", + "snapshot": { + "docs/framework/svelte/reference/interfaces/HotkeysContextOptions.md": "a7dfca92aaa5af4ea78b3884313663b6036ba19f148abe7cdc44c02627e8a2d6" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/interfaces/HotkeysProviderOptions.md": { + "fingerprint": "2275ea7152103768cf74d680fcbdb68c61419770440ca7379ba4f0688615cf33", + "snapshot": { + "docs/framework/svelte/reference/interfaces/HotkeysProviderOptions.md": "0e72b5874035b34239b8f732da3e8ddb280b1e64e83154236a4188834d57402b" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/interfaces/HotkeysProviderProps.md": { + "fingerprint": "70d65ed46b002de0223e803ffcbb3ae3661e988277c612262b9bebd0cc3dccf7", + "snapshot": { + "docs/framework/svelte/reference/interfaces/HotkeysProviderProps.md": "10d7e8fb378df4938d9e8830d126eeb004f7709acb2d6dc332184b1b8edec80c" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/svelte/reference/variables/DEFAULT_OPTIONS.md": { + "fingerprint": "df2f8776036b1ddd073b6171f227297b5e9edd18e4824b9d05cd227aa6f748fe", + "snapshot": { + "docs/framework/svelte/reference/variables/DEFAULT_OPTIONS.md": "adb9d6c97894f6703a594bd08df7a83dbc485b7aa63e34c4563502b005fe7fa0" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/vue/guides/app-hotkeys.md": { + "fingerprint": "0b504a1a2fce12b434f8edd27d4937f27de46116a199d0d505f7ba40b63d9bc0", + "snapshot": { + "docs/framework/vue/guides/app-hotkeys.md": "1750af37319dc1dd0f4c8d2bc7ce07a7a59cba6d1db6470a33441bf2be1f3893" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/vue/reference/functions/useHeldKeys.md": { + "fingerprint": "37f6fd6d5776bfca03aaf7a23869d06709a72f92cd51306ec116019a8bf1262a", + "snapshot": { + "docs/framework/vue/reference/functions/useHeldKeys.md": "7d304c07a844b3b04d3614f96839c3fe37e089d7915b8a3f292f19e153473430" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/activateHotkeysProviderScope.md": { + "fingerprint": "0d3fd93fc0003d10c0b7a6874ab783a4d2c6f15ebb03073166c4135ea18286e1", + "snapshot": { + "docs/reference/adapter/functions/activateHotkeysProviderScope.md": "315222298c5bf437b27a37f543413dc0cab1108805de1a1bc93ab6e1706f64b1" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/createAppHotkeysStore.md": { + "fingerprint": "1f94a59a3af07b31422a5c114eb21c28baebd531227a217477f70858bdf7796f", + "snapshot": { + "docs/reference/adapter/functions/createAppHotkeysStore.md": "c2a8f52ff91941dac2f0a9e6cff1920f095bcd480e9d9a89cc69ba81ae109dec" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/createHotkeyBindings.md": { + "fingerprint": "07164c19f1f085933befd592e8d468b757304a89fcc68926f699c3f88ac3cf1e", + "snapshot": { + "docs/reference/adapter/functions/createHotkeyBindings.md": "4b20caabf0da148bb62ce2a37d780a432858fe64327bc26784343448ba4f3fff" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/createStore.md": { + "fingerprint": "e0c7f0a8e4dde18b56f3a33b0bd14a16bfb4350a77783907b318ea5f613a2e5f", + "snapshot": { + "docs/reference/adapter/functions/createStore.md": "374975d4f0093cd0befdf96b58dcc7d4db69ceaf7dbf164adc5c50d9c968b1d4" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Key tables are built more compactly with identical exported values and types; skills describe key names, not how the tables are built.", + "evidence": [ + "key-tables.test.ts pins every exported table and checks normalizeKeyName and unknown-key warnings against the previous implementation; regenerated docs differ only in line numbers and one comment." + ] + }, + "source:docs/reference/adapter/functions/getHotkeysProviderScopeKey.md": { + "fingerprint": "00288c8dd3f420b4b39af38e5eca338635b4d1f0cb377800accbba86409e9095", + "snapshot": { + "docs/reference/adapter/functions/getHotkeysProviderScopeKey.md": "4daed3603c3301adf40313df7a2c479f16ca738b02e781922f23e6d6c6956090" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/mergeHotkeysProviderDefaults.md": { + "fingerprint": "9a79cc7c82e7f387c35dc5af7083c01667f3b76d8dbc3d2d5d5536842f620e64", + "snapshot": { + "docs/reference/adapter/functions/mergeHotkeysProviderDefaults.md": "1f324c106f1bf503053cd28939b6adff4e3396bfae7bd9d3169786171372fd24" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/prepareHotkeyDefinitions.md": { + "fingerprint": "ca03a32d26947eb8f1b56b4d2f8a22fc04d6c0fc572736e1ef5290a3ae87d126", + "snapshot": { + "docs/reference/adapter/functions/prepareHotkeyDefinitions.md": "8afc75d82f03130a4d646754e1c50be1a5b9f19271c45b919f74e9f3012aa26e" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/functions/subscribePublishedAppHotkeys.md": { + "fingerprint": "72a79142c248419282a2b37a2999a43286ba6dc129eba2def3f8b0ce2b55989d", + "snapshot": { + "docs/reference/adapter/functions/subscribePublishedAppHotkeys.md": "f2064768839eef2d5a2578e77480197aab8f1c3ab216dd1549566588d79bfd16" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/index.md": { + "fingerprint": "3fd227ae81550c61861b0cfe3a591a5b7b77868db748b27c7cef7c9301c4119e", + "snapshot": { + "docs/reference/adapter/index.md": "3553823c2c4f8d851396ec073a8d0be4e0b9cff5e1aa89a0f4508d5e0e5ceb59" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/interfaces/HotkeysProviderScopeProps.md": { + "fingerprint": "0e57844985abcebd3ca7a2a9f0ae3a55b2bf8b9767b65903ee0577ee1aeef52c", + "snapshot": { + "docs/reference/adapter/interfaces/HotkeysProviderScopeProps.md": "72fca28a23e28dac4aa2f11a33318e9eec5bd6d7ffc1611e433cf90015c8bc0f" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/interfaces/PrepareHotkeyDefinitionsOptions.md": { + "fingerprint": "aacb9d7ccf983391fc3bcf3af348e4dec151de585ebdb8584673bdb1246bd288", + "snapshot": { + "docs/reference/adapter/interfaces/PrepareHotkeyDefinitionsOptions.md": "3c8c99cbfdc77ff45d80690e397be037073a2c05f26dfe880008911f565be5ef" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterAppHotkeyOptions.md": { + "fingerprint": "8fd776739f09b1b12e4017eb94dd17df4a0ca8672d3563f920a685e6d0f580eb", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterAppHotkeyOptions.md": "5b07832ec9a5d7668658cfc97c40305d9acaa2b3bbca3579106de9a8bfdb8913" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterChordOptions.md": { + "fingerprint": "b301390c6c10500f3a30e1e8b2e4d5cb575ac49dfa0e5abd911f5bc43006065c", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterChordOptions.md": "1136c179bfea472f86c6c3ec50fbc47de5b44b441baec256c56e8d5ecbefdf53" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterCommonOptions.md": { + "fingerprint": "c3ea1484f4eb8c5014348df65ce972ea1c4caed5cd6ed0cf9fd8814da028937c", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterCommonOptions.md": "df71254e31fff1467d7a63577431b3d3a770e8ae72919151a2dc4a291ec8c034" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterHotkeyDefinition.md": { + "fingerprint": "11e0eb7252448e1a1ea27784f4bc81ef3f936c28608f3ded376fab4c25bb1465", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterHotkeyDefinition.md": "2ae608e18b896fe1feee1f51388e0c71f3a2bbdf8969cf0f5ad8e2960a2b1bee" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterHotkeyOptions.md": { + "fingerprint": "3666a01e5c229f2f6d147f9bd10716680ebcaa80e17cee48db4c0ad6cdd74e47", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterHotkeyOptions.md": "56ca45d4e7b2c0bd91f56c710211f52b48597b84fc7b894251c4a1cfa81da07b" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterOptionsFor.md": { + "fingerprint": "a7232591cdb7f326e5613a3d8c59d1564bd9b0bd7a90190e7bd0895c22850543", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterOptionsFor.md": "740102443ef7f8d1e92c0cdf288115aa57976e244667a43cff8989b9a925698d" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/AdapterSequenceOptions.md": { + "fingerprint": "f3b36e55fbb558ba3abf7b1e0b78d3c885c4bcc0304f414d0f73b34f18e2d3cc", + "snapshot": { + "docs/reference/adapter/type-aliases/AdapterSequenceOptions.md": "87a9265899a87ccdbb8bc639fc2a13fa2d9887b0b0e104307d26428592cfdfe7" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/HotkeyBindingsCommonOptions.md": { + "fingerprint": "0411ca91e1b946962f1028a5bccce2be7e6d636d0a9e8e107f7ec8a0058bc8c9", + "snapshot": { + "docs/reference/adapter/type-aliases/HotkeyBindingsCommonOptions.md": "c9890e5a40eece9ebf1bedefcfac6a90e0fa9cde0894aef0f513c7a4add7cfb4" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/HotkeyDefinition.md": { + "fingerprint": "4b74e79eeb6a96109ae2084efc6749365ef6102b8f1dad4131d06490fb0e2444", + "snapshot": { + "docs/reference/adapter/type-aliases/HotkeyDefinition.md": "b46dd3ef5b8f6ab01a822e010476f6cff8ecc71e4afe67062266000d7a0b5573" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/adapter/type-aliases/Store.md": { + "fingerprint": "3cd577f1021a9e1df706137e46a9df81e70b04cb1823e5dddadb7ebd53d1c551", + "snapshot": { + "docs/reference/adapter/type-aliases/Store.md": "05fdd489e7506f0c4ef5d4cd0ce0bf528471b5003a7a9298ec236f3378da4819" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Key tables are built more compactly with identical exported values and types; skills describe key names, not how the tables are built.", + "evidence": [ + "key-tables.test.ts pins every exported table and checks normalizeKeyName and unknown-key warnings against the previous implementation; regenerated docs differ only in line numbers and one comment." + ] + }, + "source:docs/reference/adapter/type-aliases/WithTarget.md": { + "fingerprint": "00863421df1801a744c268cd2f96642b53544fd314f27113872016395fc69b7f", + "snapshot": { + "docs/reference/adapter/type-aliases/WithTarget.md": "913934c57233ac809819208e5fc11530cc849af3509ba75cf7f1b024efc53d24" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/classes/KeyStateTracker.md": { + "fingerprint": "7f64a816f9e7bcd3faede7d09c4c330f86789fd9398ddf60e99129f19d356c53", + "snapshot": { + "docs/reference/classes/KeyStateTracker.md": "5af083dadab704c06b293645002fdb020578d1b43ec77ac268516d54ad2da097" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/functions/checkHotkey.md": { + "fingerprint": "3c6e95ce89a73171d88060c9a53a04d9036c58190b57c1b40eaf9060d8e806ad", + "snapshot": { + "docs/reference/functions/checkHotkey.md": "ff9207a9408df5d27821813e8d7fdeb97115a2e2305bfb25dad3c488714a3885" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/functions/getKeyStateTracker.md": { + "fingerprint": "05b94923732791a68986c899c0f650deb594a2197539a7dd11a09fcf866383eb", + "snapshot": { + "docs/reference/functions/getKeyStateTracker.md": "353e8f2ca95f613016e84fa55b709f770c7f1765f2ceb35fb5a5777bf087bef1" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/HotkeyChordRecorderOptions.md": { + "fingerprint": "f857e35be3bc01829812e5d01855e87ec79638b605e5fb1a6813c7cf0766b78e", + "snapshot": { + "docs/reference/interfaces/HotkeyChordRecorderOptions.md": "4fcef678768bc631bac4a8df6fe534e8665e3131a3ab33ac3535fb10baa10b41" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/HotkeyChordRecorderValidationContext.md": { + "fingerprint": "5cd15fcc9b41bb4ceb0c45ea1b8e640cd2455d0880ecef67df270a25db82bfba", + "snapshot": { + "docs/reference/interfaces/HotkeyChordRecorderValidationContext.md": "15c6eae9f189c7719e86f666dca95bc6bd669aa5a8e81fbaa2ff6ad590e2d8b5" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/HotkeyRecorderState.md": { + "fingerprint": "f4a7e50363a290e36c388bd6dddcde0b664a4c0f82316b1bbc997143a15214b5", + "snapshot": { + "docs/reference/interfaces/HotkeyRecorderState.md": "66c09ec0edac6d9ceb2172ca9fa5a4c1c9fe25c20b48ba4b522538e595deefb6" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/HotkeySequenceRecorderOptions.md": { + "fingerprint": "12a841cd4c4e4c57a7b6d5a15a6c050a7e6b44990ee1ca5f9dbd10d622df41b8", + "snapshot": { + "docs/reference/interfaces/HotkeySequenceRecorderOptions.md": "647d6d0a916bf58eeb39c3264d7c46e147c9904505ccd58984acf96b6630c3de" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/HotkeySequenceRecorderValidationContext.md": { + "fingerprint": "bce9dbd6ce0f4bd19e026c74af24baa2e50cdf1b6aeab252e720c65ea3ca8636", + "snapshot": { + "docs/reference/interfaces/HotkeySequenceRecorderValidationContext.md": "b73b173d786870fc7325a4e0bad58743693478374a61e561f894e3626d95c05e" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/KeyStateTrackerState.md": { + "fingerprint": "e36465fff171ece514274b617e28a194753adc9e8e4ea5837c72ed802e278f73", + "snapshot": { + "docs/reference/interfaces/KeyStateTrackerState.md": "b1538f8abd83b229f68593de8282a7011b1ee5cbb2572bd8d909cd742b283708" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/RecorderOptions.md": { + "fingerprint": "82f7cf52e9f7ddd07c73df7f45ccd3a22106bfdb0ff74bef076877b17e472f18", + "snapshot": { + "docs/reference/interfaces/RecorderOptions.md": "9956f498043e11a5e97ff23f127f388f07203ced03a9afce6dad7667933abcd3" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/RecorderRejection.md": { + "fingerprint": "81358dab6c959188cc88c6dc0f991cdc8dc7b8ac27f522e63f2fffbd3712527a", + "snapshot": { + "docs/reference/interfaces/RecorderRejection.md": "53da33ab3a3d9b250446fa7cf88a8a72f4a96a6c185ec22dea8300064aad9004" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/interfaces/ValidationResult.md": { + "fingerprint": "0fe460871bc4ca99f97bdf75464646c4bfc32fa0d2e9e2334b28baede4766f26", + "snapshot": { + "docs/reference/interfaces/ValidationResult.md": "4bd5b2b28acc86d1be97916b20165efc9de89de2066c1f34210a92fc7d98d02f" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/type-aliases/HotkeyRecorderCommitKeys.md": { + "fingerprint": "62acfa97ecfd9bf2d24d1051292cdacb29a9fbdca91faccd6eb38714af6cd80a", + "snapshot": { + "docs/reference/type-aliases/HotkeyRecorderCommitKeys.md": "67640df0e5f1920c4afdba568256326099e5ab7ef7a9e1dc74659576996cbb21" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/type-aliases/HotkeyRecorderOptions.md": { + "fingerprint": "9e19d6eaa693538edf66e61e0a255ed9c9b647f9185eab6e9b89185216d4c2ff", + "snapshot": { + "docs/reference/type-aliases/HotkeyRecorderOptions.md": "a7a3e9fb0772c62cff3470825b1229ca7572389bf5367ccb60d5c8e34f4a29e4" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/type-aliases/HotkeyRecorderValidationContext.md": { + "fingerprint": "21955db51b961fb1f62dd1bb4e3d0357dbe62df223849eacd5aa4ece6158aa89", + "snapshot": { + "docs/reference/type-aliases/HotkeyRecorderValidationContext.md": "1ea931c341531ee1ff10cbece08990a2e1318f28b361a9d0d287a97bde0e308d" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/reference/type-aliases/RecorderKeyMode.md": { + "fingerprint": "ff703a3e17ced4d1b023666aaa5af5448168b51466d3e589ae36615693e9b8f9", + "snapshot": { + "docs/reference/type-aliases/RecorderKeyMode.md": "181b067e18ee38e6416da787a905aa85b43ba5b7a23e81cf1e37224bf69bd52b" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/alpine-hotkeys/tsconfig.docs.json": { + "fingerprint": "2ae425b102b1ea8fdb67e00ada8c04eb02af8ce1b351a1efa37d6b54c1b580ac", + "snapshot": { + "packages/alpine-hotkeys/tsconfig.docs.json": "099bc5b766fea22efd9d255cfe58890e4a66eb843ef9a944f73f0104129acd56" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/angular-hotkeys/src/_injectSelector.ts": { + "fingerprint": "4fdd25ca5c4ab7b4490f91c8cf863d3698d8829ad9f9611e9f55e54d1da14ac3", + "snapshot": { + "packages/angular-hotkeys/src/_injectSelector.ts": "f97d109c019432da734ad43f34638e7801f0f598ed6a6341360c6b7badbde8fe" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/angular-hotkeys/src/injectHeldKeyCodes.ts": { + "fingerprint": "091bf33f40f8f7496624eedb0a88702206efb3c20bf77c2cfb451f80413556bd", + "snapshot": { + "packages/angular-hotkeys/src/injectHeldKeyCodes.ts": "5c178e1cfa34b42e6d950884540df2f51d15f073aed2e887d989907067bc1fe1" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/angular-hotkeys/src/injectHeldKeys.ts": { + "fingerprint": "d402bac992ac02d35845067ce71d7d61611a80d79c66abd01e240f544a75b097", + "snapshot": { + "packages/angular-hotkeys/src/injectHeldKeys.ts": "d592acdf18f2226cc34c19d96e0b64562349c4f3a822212e1361915dd3bc0ba3" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/angular-hotkeys/src/injectHotkeyRegistrations.ts": { + "fingerprint": "30b2ff92e401613695abb962f2802d098d25f866a46af2d99918d80df943b45c", + "snapshot": { + "packages/angular-hotkeys/src/injectHotkeyRegistrations.ts": "b50e6b9c7add932aa9fccde9ab23692282935e33fc10a605f4f4b5fbbdd56e64" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/angular-hotkeys/src/injectKeyHold.ts": { + "fingerprint": "f309140c7df50151711a0d912588d2b2d1b3cbe53c84e27f7ddd94bea2ede4e3", + "snapshot": { + "packages/angular-hotkeys/src/injectKeyHold.ts": "8db380ab5ab50a10038c4b9cd29ddf2b6863b10429bc5e3432b086b3eb524ced" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/angular-hotkeys/tsconfig.docs.json": { + "fingerprint": "d6f11749eb8188613c65bf0a4682d0cc01b6f735438c47f381466aae5a0cbbec", + "snapshot": { + "packages/angular-hotkeys/tsconfig.docs.json": "e657a1aea5c1bbc15961ad7d541e89e84fa129896c8f095dea28e4a8eada0b80" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/ember-hotkeys/src/utils.ts": { + "fingerprint": "7f0a0f8a42103b963b34a439ad59363ed288144154d66cd105b414b28907152b", + "snapshot": { + "packages/ember-hotkeys/src/utils.ts": "72da4ad9049d97d71cee8f10523e1c650083c4050449035778fd81e232c613fc" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/ember-hotkeys/tsconfig.docs.json": { + "fingerprint": "5a0b923213eb2824c82df256d6984612e872d6f45f1df1166b5f9035067a6e5f", + "snapshot": { + "packages/ember-hotkeys/tsconfig.docs.json": "1477087a64a47e7b9936ae297723e2ca10775cf9585d5bbef38ace8b0d26735c" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys-devtools/tests/live-updates.test.tsx": { + "fingerprint": "691c7c96e882e2f4f8f6ade200cb54f6ac34432663dc3dcbbc6cd239c86ea331", + "snapshot": { + "packages/hotkeys-devtools/tests/live-updates.test.tsx": "cfd08ed565d33d3f3224b3f6687628511c2cb90f35b3f781ff0a32b734445e6c" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/src/_app-hotkeys-factory.ts": { + "fingerprint": "3824f39665044a8d906dd5a3cd85024e85e25b51b6ae7b1ce0cec6ddd1b6ab84", + "snapshot": { + "packages/hotkeys/src/_app-hotkeys-factory.ts": "eff25996d6b4a2deda804e8ddd63e3ffa370b467eb582891825a58a2fffca09f" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/src/_registration.ts": { + "fingerprint": "bebdce150cbf73a121dcdec066d7273ca2504c558ab88245b92b1255d555b968", + "snapshot": { + "packages/hotkeys/src/_registration.ts": "57dc3e7c7ee33eae118f68fea126060739ec5bf31ce797de78f9c15acbf6a24f" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/src/_store.ts": { + "fingerprint": "01d160bae20ef0906e8cc1d503ff6ea509c970130a580d2bbb3e54201f5523af", + "snapshot": { + "packages/hotkeys/src/_store.ts": "060b780f8adde646b49ad8befc603777712996b080fc78e695dabed789d51d8b" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/src/adapter.ts": { + "fingerprint": "6e109ea86f32f7db7a4729b637e486ea9dde4dccd2852cd41529c5c96da7073c", + "snapshot": { + "packages/hotkeys/src/adapter.ts": "15d567ef0b60166b603fbb8360617e08057d5cb35055ab1a6f9f93f034a61e08" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/src/key-state-tracker.ts": { + "fingerprint": "6eb2c803a0aca6278da52fdec8898e99f659ce443cf1bedb072462dc0ce86c6f", + "snapshot": { + "packages/hotkeys/src/key-state-tracker.ts": "f14df791614081a15078c5732a3226e0d492903e1d683ad09c3efa89da0f8b2b" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/src/validate.ts": { + "fingerprint": "0a16fac9834f08dd26568013132ac573af7fb2a0110cbd2e51dfcfd3e61c7882", + "snapshot": { + "packages/hotkeys/src/validate.ts": "35272df45145910ef744b1d99620608bfde9d4b25ccb1928ace1b057506865e0" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/adapter.test.ts": { + "fingerprint": "49fc3ca851c4e5c5e0fd973e368f1311aaa1826c32f6042734c344d29f9fb1fa", + "snapshot": { + "packages/hotkeys/tests/adapter.test.ts": "6e33e8d27a513dc219f23f3917ca8ecb994ee096ebe1ccbaacb4692a0fc9b882" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/tests/production-logs.test.ts": { + "fingerprint": "5b0bc4d295d32a7eeb1e08145be2091656364a3934101d2783d95b22eac05cb3", + "snapshot": { + "packages/hotkeys/tests/production-logs.test.ts": "c602325fd78192fed9ed82e5b9050cb9b412c3e794f68ea64b1c0a5fa3c4531c" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/store.test.ts": { + "fingerprint": "7e3b0ed74178ccbe4fc414dfdeb4f1022404bd9bfa9303fcaa6749e75b5c93a2", + "snapshot": { + "packages/hotkeys/tests/store.test.ts": "937a0d549b52c25fb3f7381331117022b61dfa39595d750b503f1b22e0c0b21a" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/tsconfig.json": { + "fingerprint": "a5fefd02cd3b020bcb266683b823e298d16f1eb9905cefe7c29ef10e41a7490a", + "snapshot": { + "packages/hotkeys/tsconfig.json": "8e9865f026bf53b5a4de1a19a565b17320ed18d60e9444a7398c8f3bc3434bed" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/hotkeys/tsdown.config.ts": { + "fingerprint": "f44e2c78e8dcd19c051f698159b1f0b620ce457c4ccd6253538e4f0ee65123c7", + "snapshot": { + "packages/hotkeys/tsdown.config.ts": "beed69b180f14a5b991afa362245d344ce6ad87c105fe8fcd5175fe3d8ab9533" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/lit-hotkeys/tsconfig.docs.json": { + "fingerprint": "0fb4d01a815a4ca74c8ed0bb33cc3d74efcc1e4114eb2207dfea9333b55d5dc8", + "snapshot": { + "packages/lit-hotkeys/tsconfig.docs.json": "e657a1aea5c1bbc15961ad7d541e89e84fa129896c8f095dea28e4a8eada0b80" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/src/internal.ts": { + "fingerprint": "2c783def10aa6b1ae36867b612428be16c2f69a8d7e8c4ef58bbf2cb5201b83d", + "snapshot": { + "packages/octane-hotkeys/src/internal.ts": "b5bbbe3e09ccdb1ec7bee6e3f832825faa7da0da055362ce9f66de88375adcf9" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/src/useHeldKeyCodes.ts": { + "fingerprint": "3cfd063bea0fbce496c8c62f8e63895da6d128eb0a96ae712a1510fe405f6892", + "snapshot": { + "packages/octane-hotkeys/src/useHeldKeyCodes.ts": "070622569191d6aeb813c900450d72783a4c1efee0108b5850f96e4d8a6b66b1" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/src/useHeldKeys.ts": { + "fingerprint": "1be6f1ff51a86273ea3758dd2a5d5b3bd20d38a0b42099e9dc13d789bad79378", + "snapshot": { + "packages/octane-hotkeys/src/useHeldKeys.ts": "8d74f93d6b3ee6881da04129fbd1fb4c1c0cd3ebb4631bfb6b1f4150978b4a69" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/src/useHotkeyRecorder.ts": { + "fingerprint": "acb356c89a8594d52a61b2d75e153d7783c0c4ee26f2af8d3a6169cef34e4db8", + "snapshot": { + "packages/octane-hotkeys/src/useHotkeyRecorder.ts": "7986096ffec9c7a3dd5bd96221431cb23fac711d904643cfe25bfde8d2bd9aa5" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/src/useHotkeyRegistrations.ts": { + "fingerprint": "9bd1a0cc0e51bd74eaf95309cdd96d83618ef4cfc9d8c2838625c36369210f42", + "snapshot": { + "packages/octane-hotkeys/src/useHotkeyRegistrations.ts": "b0a46b265ec8d5f05c1f2fd019dc4695f98a68eb8dbc3edeea3d45da2eb794de" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/src/useKeyHold.ts": { + "fingerprint": "380fd3dc18467de8ec7b9536e3264570c1e3a9ebb2f0f08a602a1ff2cace63bd", + "snapshot": { + "packages/octane-hotkeys/src/useKeyHold.ts": "bdbe902ce9bf7ba9440cbcb361a2348fb5d48fc65d6edee8578b6ee4b6c252f4" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/octane-hotkeys/tsconfig.docs.json": { + "fingerprint": "5703a976611b704a2a403139138537ea171f70b0e01cd2023143590257b375d6", + "snapshot": { + "packages/octane-hotkeys/tsconfig.docs.json": "099bc5b766fea22efd9d255cfe58890e4a66eb843ef9a944f73f0104129acd56" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys-devtools/tests/panel.test.ts": { + "fingerprint": "8a77d89c4b82ffbfc68ba58987a6e93cb76c5efa8781dfed541519945396365d", + "snapshot": { + "packages/preact-hotkeys-devtools/tests/panel.test.ts": "20ee3b5b4fe6ebfcbe2ba362502cf7482c43991f511c8cd59da61f512d1fda99" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/_appHotkeysStore.ts": { + "fingerprint": "e591598be162cd332cf9e56334dba2aba31f494f0f904c7abb5d3f95586f2391", + "snapshot": { + "packages/preact-hotkeys/src/_appHotkeysStore.ts": "9a63d1bf857a05280b213c8e18f56ccd2d7379a12a14c2f4682ddb5b3aad9bb4" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/_useSelector.ts": { + "fingerprint": "39e22e89e018bac14bee0bb610565bf4ef843bfcbc24d0057c0a1b72e63e2c04", + "snapshot": { + "packages/preact-hotkeys/src/_useSelector.ts": "79b12c07089dbf5623f8b11459cc5996808213576633da7c9fecbe71becffb7b" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/useHeldKeyCodes.ts": { + "fingerprint": "2ecc0582e8189ccadf6cae525273b439638db3b38f5dd9490a905e1fdc485302", + "snapshot": { + "packages/preact-hotkeys/src/useHeldKeyCodes.ts": "35a0000c1bc064cfaa36367b01636292e6aa774a3cfbc4da3b2f88fbf07ae966" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/useHeldKeys.ts": { + "fingerprint": "aaed56bdced4fcd44738899deea7e7fd3a54bbc3b83a3ae5a85eb28e884bacba", + "snapshot": { + "packages/preact-hotkeys/src/useHeldKeys.ts": "8586c375e5f1f665be98e798cc57623a777daa12530006976bf06a7fc24691d2" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/useHotkeyRecorder.ts": { + "fingerprint": "00f8f85f115f3e901b9cd316991a153dd893de62f679e2b789e80b087ada6a54", + "snapshot": { + "packages/preact-hotkeys/src/useHotkeyRecorder.ts": "9e935d70abac9fc74d7b819d333c8873141cfe8ec1d34455fa97ad726485b1fd" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/useHotkeyRegistrations.ts": { + "fingerprint": "588c8464718b346a562ba341be21e676d2a7c41a48f3755b2599d8808ca967aa", + "snapshot": { + "packages/preact-hotkeys/src/useHotkeyRegistrations.ts": "765b197a19b9b06e7d828d07d5c34101075de9c4ae60c3bf4246b88c76104a20" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/src/useKeyHold.ts": { + "fingerprint": "3cc0de3bb22a3238fe53233d5293401fd7d9bdd48fa6acec91eb70fc76a4edca", + "snapshot": { + "packages/preact-hotkeys/src/useKeyHold.ts": "74c85ee75fa8cd5a97f69b32b718c13be82c725d839e041bc7a83c8df5b061c3" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/preact-hotkeys/tsconfig.docs.json": { + "fingerprint": "2d2332e8442407ddf2491fc195fb2177a6d793fec6463c7a6da427730b301d79", + "snapshot": { + "packages/preact-hotkeys/tsconfig.docs.json": "e657a1aea5c1bbc15961ad7d541e89e84fa129896c8f095dea28e4a8eada0b80" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/react-hotkeys/src/_useSelector.ts": { + "fingerprint": "5c531454ca7f431871f8b4d5ecf8a4aa0276f13367fdc1ee0cab6aeac7e1dc0d", + "snapshot": { + "packages/react-hotkeys/src/_useSelector.ts": "d9f24b010f122ec0f07f61af59a952293da0fbf548a8af144cfb5c6763bcad8e" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/react-hotkeys/tests/stores.test.tsx": { + "fingerprint": "377c018e549d66e6e5e1f99d23240a933b6897798b9af03db54417e31ab92654", + "snapshot": { + "packages/react-hotkeys/tests/stores.test.tsx": "563e8b8e891dded6aae2f9e13441e639ff15e13e2633e1d81502a631b43d7520" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/react-hotkeys/tsconfig.docs.json": { + "fingerprint": "922995747d343f51b38cc6383f70112977213e9f3f11b868a5dc647572985a9c", + "snapshot": { + "packages/react-hotkeys/tsconfig.docs.json": "e657a1aea5c1bbc15961ad7d541e89e84fa129896c8f095dea28e4a8eada0b80" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/_useSelector.ts": { + "fingerprint": "7c7938d512028001d845770579db80fac1db09ff07e1debffcd3741b2f4d6c38", + "snapshot": { + "packages/solid-hotkeys/src/_useSelector.ts": "14e941f7e66026de12f84da2d1cccd07c8c0f8843b1807944e7e61a95469db48" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/createHeldKeyCodes.ts": { + "fingerprint": "405d3ac12b34c7a7f475084a3f11d626a175a2bc7a3d8f139aa1042ebe68733e", + "snapshot": { + "packages/solid-hotkeys/src/createHeldKeyCodes.ts": "1670ee20989ea1f7656a1ed0aebb71daeee263a6262a9fadc522a7d30ff46a76" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/createHeldKeys.ts": { + "fingerprint": "ac4a2da9ad57bc03fb69ecbfdc950443dc0a3ae6bb54187124b06e5a9354eeec", + "snapshot": { + "packages/solid-hotkeys/src/createHeldKeys.ts": "9dd8b818ee9d77be060808f364163528db1efb6cfbbaef5d16ace698e1bb5610" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/createHotkeyRecorder.ts": { + "fingerprint": "e251359e0f4aa00d3b74f7d8a90d9fbb839ad8aa430e8ae09c7b833dc62b5bae", + "snapshot": { + "packages/solid-hotkeys/src/createHotkeyRecorder.ts": "dd7fe19da34b9043133488659af21e34f47f2d1da279e43183678da168c445b8" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/createHotkeyRegistrations.ts": { + "fingerprint": "5d724e1b3a478eacdfcd1af8c0edacca727a4a1f1b6f382bbdb037706d76471a", + "snapshot": { + "packages/solid-hotkeys/src/createHotkeyRegistrations.ts": "72252a0a441faf48ec11cd4a5c236db8ca5a89bc24f930d2bd6c18c58d61827d" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/createKeyHold.ts": { + "fingerprint": "42b8c2dfbe26fed33e41e1acf3e46283edf73498138e318797b6c774b910c7eb", + "snapshot": { + "packages/solid-hotkeys/src/createKeyHold.ts": "1647094b9e629385da814049c13653e4196ec9154ff5062be4ce99142726733e" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/src/defaultOptions.ts": { + "fingerprint": "8408dba320a78de7c7c889350d375ebcbc06b39913306cebda95eb9a5005c960", + "snapshot": { + "packages/solid-hotkeys/src/defaultOptions.ts": "fecd710fd82ff67adbb621e2e2af4986ec925d0a670fd6cfa8268624008c214e" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/solid-hotkeys/tsconfig.docs.json": { + "fingerprint": "92525303d95711da8e46d2d6a866170f7ec6bb2b3834743a145565cc56d8bd6f", + "snapshot": { + "packages/solid-hotkeys/tsconfig.docs.json": "e657a1aea5c1bbc15961ad7d541e89e84fa129896c8f095dea28e4a8eada0b80" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:packages/svelte-hotkeys/tsconfig.docs.json": { + "fingerprint": "c038d9ee2353d1266d8323d2ef818ff2a6f69ced3b05f7a2a3993db647e58dfa", + "snapshot": { + "packages/svelte-hotkeys/tsconfig.docs.json": "e657a1aea5c1bbc15961ad7d541e89e84fa129896c8f095dea28e4a8eada0b80" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:pnpm-workspace.yaml": { + "fingerprint": "b03b00098fff50b9a1b88bacff5ae26b767ee0b2f554eacc4f850843192265e3", + "snapshot": { + "pnpm-workspace.yaml": "ea0035cd4b8aa643cde5f61c46a6b2b5df260c665872578fb6740df44ac58570" + }, + "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", + "outcome": "no-change", + "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "evidence": [ + "Reviewed the diff for this file against the skills that reference it." + ] + }, + "source:docs/framework/ember/reference/classes/useHotkey.md": { + "fingerprint": "a87d96a5ffeb7fb947a9cad8820ed65ba73052550e4d7ab720738290f30e7e92", + "snapshot": { + "docs/framework/ember/reference/classes/useHotkey.md": "d0d97cbe9dae2a6d763e7d539442587b9ab1ee7dc9b4a7574b7901289d626c90" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Key tables are built more compactly with identical exported values and types; skills describe key names, not how the tables are built.", + "evidence": [ + "key-tables.test.ts pins every exported table and checks normalizeKeyName and unknown-key warnings against the previous implementation; regenerated docs differ only in line numbers and one comment." + ] + }, + "source:docs/framework/ember/reference/classes/useHotkeys.md": { + "fingerprint": "942a5fd69c87dc90a903ad7591af335944521efedf6f4c3fd81f84fd4a59ee38", + "snapshot": { + "docs/framework/ember/reference/classes/useHotkeys.md": "886c88ed940ff8a4b10d7d5c97298b822479ecf6adf3a8f111a31baf21b3a36a" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Key tables are built more compactly with identical exported values and types; skills describe key names, not how the tables are built.", + "evidence": [ + "key-tables.test.ts pins every exported table and checks normalizeKeyName and unknown-key warnings against the previous implementation; regenerated docs differ only in line numbers and one comment." + ] + }, + "source:docs/reference/functions/assertValidHotkey.md": { + "fingerprint": "5ada8f7a49dc6def64f255c1f103b8ef5fa183f9947ad6d521494e9eed8f8a67", + "snapshot": { + "docs/reference/functions/assertValidHotkey.md": "dbbb437814b6344c4d9b276273eefdf23ce788da707bfcf161ab6849e37c23e9" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/functions/isSingleLetterKey.md": { + "fingerprint": "5049fa2606149865534a0fc8b33b7524be2808bcbcf7016b320ef33a4b3916e2", + "snapshot": { + "docs/reference/functions/isSingleLetterKey.md": "8133be8f0922c98a0205a76963466861e2a91ac39430cf8aff8b6b2d71c9d726" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/functions/normalizeKeyName.md": { + "fingerprint": "ce8c700e2c8685bcac5c3441fe5aed82315ed9f5cb9cc3fdd9ba7798bec3e11f", + "snapshot": { + "docs/reference/functions/normalizeKeyName.md": "d00f5f3f8d6e07656681f745c76d8f13cf78f89fab0f611e24dfc058a481fdae" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/functions/validateHotkey.md": { + "fingerprint": "57c383d22517b7aa32c4f2712a0984eac48130a8e74775d8ddfd8cabe8629fd0", + "snapshot": { + "docs/reference/functions/validateHotkey.md": "1e003da6d95b13d9f5eab93a16c5c47102d692f39b69c068a2d8470da8483b7c" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Key tables are built more compactly with identical exported values and types; skills describe key names, not how the tables are built.", + "evidence": [ + "key-tables.test.ts pins every exported table and checks normalizeKeyName and unknown-key warnings against the previous implementation; regenerated docs differ only in line numbers and one comment." + ] + }, + "source:docs/reference/type-aliases/ValidatableHotkey.md": { + "fingerprint": "deb197e41daa8eed9b28709cc1b83202ee50fc919cac7f63afba09958243fa01", + "snapshot": { + "docs/reference/type-aliases/ValidatableHotkey.md": "b9e6bf04acaeb532666202ddf5b7c4ceb51f00470043a4f7e9b3d5daf191ae38" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Key tables are built more compactly with identical exported values and types; skills describe key names, not how the tables are built.", + "evidence": [ + "key-tables.test.ts pins every exported table and checks normalizeKeyName and unknown-key warnings against the previous implementation; regenerated docs differ only in line numbers and one comment." + ] + }, + "source:docs/reference/variables/ALL_KEYS.md": { + "fingerprint": "bf6258c090d2f8ce713e8ddb9cd0f5e8a531352a5f7b0e9d2b036fce4fb8d9d2", + "snapshot": { + "docs/reference/variables/ALL_KEYS.md": "3e17dc808561a702ee8f2b219796f1ba990cdf2db7e911d12020d5d5bea897d3" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/EDITING_KEYS.md": { + "fingerprint": "64e8363a29a9ddc9ea2230e611adc8f1e7d505f3f50f6052b3b6dc0ba5cf5319", + "snapshot": { + "docs/reference/variables/EDITING_KEYS.md": "a3986f8144cd05e439cfca0d429d0541a00f2d18a82b12fb69974d9c69b70374" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/FUNCTION_KEYS.md": { + "fingerprint": "01491775b2667cb731476b88b8859e1c36cc14fabfde68ad242f073cf087aca0", + "snapshot": { + "docs/reference/variables/FUNCTION_KEYS.md": "0b1819b11fdefc9af2c4d0cb40b1caeecc7064b5b2d867e24626e3f0280e8cf6" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/LETTER_KEYS.md": { + "fingerprint": "8bb8930a4e6fa47af7bfec63e4d65f383556adcc8e649b8237f5859c54201864", + "snapshot": { + "docs/reference/variables/LETTER_KEYS.md": "86bce94ce153921ad832e31b331d6eeaa9ee88bf5ef165acf7a075cd33e61cd9" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/MODIFIER_ALIASES.md": { + "fingerprint": "08efd3d3dff330b692df59eae9162d39d3d6f8de5e220f7640a0a5576ad8440f", + "snapshot": { + "docs/reference/variables/MODIFIER_ALIASES.md": "336a3c15609a12de7fd1cdc0fc7b8ba5c31c7a44c365a5b3b981fbbbdaf3afbc" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/MODIFIER_KEYS.md": { + "fingerprint": "f41d61ac558c2e12531b9495cd45ca899196a3b93bf716f5efb974447d9795dd", + "snapshot": { + "docs/reference/variables/MODIFIER_KEYS.md": "0f50474b3fee90ac432c8db280dcfefee3062fa2ff30ee8acab29f1a682eb348" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/MODIFIER_ORDER.md": { + "fingerprint": "26c4ee5e64f5fbea2901bb194da4969ee4374d1a2b3a3615e4e342792b42b3fe", + "snapshot": { + "docs/reference/variables/MODIFIER_ORDER.md": "9af07023c4e74b62cc32c03946be11258d44d8dd9bc24e2ae4cbe1ae827d42d5" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/NAVIGATION_KEYS.md": { + "fingerprint": "9e7d59bcbc07c66d78ff97f721f0d6aaf00dd54bb5ad9227b6d838e75a2252a1", + "snapshot": { + "docs/reference/variables/NAVIGATION_KEYS.md": "0bdaefd637d3dd06428fc96148e2a388b952db2d17abfe22cb389f23a583b811" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/NUMBER_KEYS.md": { + "fingerprint": "91c8bde9634f6f567d8e20f3850979d67f58a4fafa7b63bf1d2931befe81f075", + "snapshot": { + "docs/reference/variables/NUMBER_KEYS.md": "317dbf8511e4b7f9c91af38bba27ea854e23eff6d7b1eb92ada8e0cb60d2ad37" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/PUNCTUATION_CODE_MAP.md": { + "fingerprint": "9baa635e82f25c930eebf0b06e2f0eb143ea88fca586441e357ceaaea98f8f45", + "snapshot": { + "docs/reference/variables/PUNCTUATION_CODE_MAP.md": "e2d8b22ccf972ec369b622b5c60d90e82dc65dd20088b629fc46086391af0436" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/variables/PUNCTUATION_KEYS.md": { + "fingerprint": "8fc6aa53fef19bee8e488a872c8442b847b7c879b37d29e9c8ed8b5160278079", + "snapshot": { + "docs/reference/variables/PUNCTUATION_KEYS.md": "2508006f6a884972a2c8af56d8b0aa909a889521cd212c5a220acfba6bb742cd" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/src/_named-keys.ts": { + "fingerprint": "b7b4da97ff25896c3c61e8e2110c60fbe193978155b36a7765769e3287fd226d", + "snapshot": { + "packages/hotkeys/src/_named-keys.ts": "1d3c8524b3a5bed2e58ffce4029d166f57b646fbf004ea0d3e11b6785f9a0656" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/src/constants.ts": { + "fingerprint": "d0dd243fe5d95b222dcda9e1bb77a96b8525f7b6be45559a8d167aaac4c0446a", + "snapshot": { + "packages/hotkeys/src/constants.ts": "3c0606eba9381d47bad82d9afde2fedc0846aeae1708f284ebb21f94a81525a3" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/key-tables.test.ts": { + "fingerprint": "f475cdf547dee756021e59a0d8c44faa4895d3e4cbbe826f1d76e07f170c60bf", + "snapshot": { + "packages/hotkeys/tests/key-tables.test.ts": "b3367c4736a811c60c6e5a28ba5a936d82f686840c10bdf80895b8af1cbd2957" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/framework/alpine/guides/formatting-display.md": { + "fingerprint": "76ec9b1812db34e27db7e5e1bd880ce5b828ee593c16fff26641f02a39c8c6f3", + "snapshot": { + "docs/framework/alpine/guides/formatting-display.md": "92e9b3a67a3565932475f4fd5353f5e84a5f62cbfcfa8905f01d1441e85b9fb0" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/alpine/guides/held-key-state-helpers.md": { + "fingerprint": "0aee95b76dab73f7f6c603d362bcb263e6d2710140fba02e09c51366cfbefdd1", + "snapshot": { + "docs/framework/alpine/guides/held-key-state-helpers.md": "9f7e2edf58eb6992f21e9d460f618957fe008fb7eb1d98e293c76ac5fadd35d3" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/angular/guides/formatting-display.md": { + "fingerprint": "496882107815cf33d4b8cb1edf583f4cb6e0cab23b674c14787a1d0a527a975f", + "snapshot": { + "docs/framework/angular/guides/formatting-display.md": "77c3834243dd7ba609c9093f4c8617403bf1c018b43011291eee6449f7830e74" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/angular/guides/held-key-state-helpers.md": { + "fingerprint": "1e4d1fb31501da964c5f40fc725058754af0c22802f08eaf9eb7abbd052a8a99", + "snapshot": { + "docs/framework/angular/guides/held-key-state-helpers.md": "1fb609defaf57da29b82bf8f66b6196c3bad4a522dd6755ccc27893bc6a8719f" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/ember/guides/formatting-display.md": { + "fingerprint": "419ecda0560a40dab1a6110af97310781df9c0c912e88b7adc6d193873883c10", + "snapshot": { + "docs/framework/ember/guides/formatting-display.md": "cf657d7e6dbafc95c77696bd11b0016bd506e41f0f6415a6d2b3926c3cd5b07a" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/ember/guides/held-key-state-helpers.md": { + "fingerprint": "1361fccbe4aeb7c4980a7423dbd08c9110f1ddf6503af0094fd40fecd7293daf", + "snapshot": { + "docs/framework/ember/guides/held-key-state-helpers.md": "17cf9d6e6075661c70f3fe7969064f868e5ca56113145d2fa2db629bae2b1f35" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/lit/guides/formatting-display.md": { + "fingerprint": "2aea89071bf54313a9a06a46d1519623e6f5de38a8444ad70cd4096a7483153c", + "snapshot": { + "docs/framework/lit/guides/formatting-display.md": "ecf535e5efd628e789467e382eed4f1e433359df627fc92a21d69d21148597c5" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/octane/guides/formatting-display.md": { + "fingerprint": "47602fee03ad399d0806468b71746fb7e664e10fff01fc70fbbcaa9cdfedf053", + "snapshot": { + "docs/framework/octane/guides/formatting-display.md": "15583d0c6b9eaff614bc387f0a6784f31b0b53f2b29f0a1146a79c50ebfe3c12" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/octane/guides/held-key-state-helpers.md": { + "fingerprint": "588b2feb0d439ff8a3222761b7a763804c1e75fd532c548e4329dcd0550b65f0", + "snapshot": { + "docs/framework/octane/guides/held-key-state-helpers.md": "4f95c063a8bca02be0d40f97ac4814b4c643ba19f9589451aafe2b435329b444" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/preact/guides/formatting-display.md": { + "fingerprint": "82f2646251e251fb22633ca89ee0f23952063750c789c82331bd89a3562f9c0d", + "snapshot": { + "docs/framework/preact/guides/formatting-display.md": "8acd100bcef97bdb0c03c64d81120e80b54848d5e03fff60fc6d42303524470f" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/preact/guides/held-key-state-helpers.md": { + "fingerprint": "67250b4a593c01f60b2db7e287d39218fbccbe6210015fc6a2898a16364cc20e", + "snapshot": { + "docs/framework/preact/guides/held-key-state-helpers.md": "3e5a072950b5026f5e062cb57e054a1fa96d24408920dbc4a69d3a153d7d7a53" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/react/guides/formatting-display.md": { + "fingerprint": "f94b4e9a4f8928ed8e9f3747d14ed8fdb524eb935a1fcae1d88bb9ea388c030c", + "snapshot": { + "docs/framework/react/guides/formatting-display.md": "98b9ce66ab35a00408065fe05cb1016ed91ca84590d4bad976ef8ed09e07c92a" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/react/guides/held-key-state-helpers.md": { + "fingerprint": "29cd216644ff0c39c4ac7b9bf73db415e9a19a8fff64685c2fce19e57fb77967", + "snapshot": { + "docs/framework/react/guides/held-key-state-helpers.md": "0cb060c804c7d7ba06d3ba24210587b6d3c18db11d29f34ecc221b4e9ec5eb86" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/solid/guides/formatting-display.md": { + "fingerprint": "7089f0baa63a1ba1e86d6b4d866fa6c40d1b64f4ff0a8a8ef5d3ae1d09a6eee9", + "snapshot": { + "docs/framework/solid/guides/formatting-display.md": "59969100540e43d27df2f98d6836adc6858b5a7509c1317044a6d4c70cc8b00a" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/solid/guides/held-key-state-helpers.md": { + "fingerprint": "c2a22771ade6594e827a104263fd2a73403de0f29acfc0872144a7b7442e11b7", + "snapshot": { + "docs/framework/solid/guides/held-key-state-helpers.md": "b0581adf0c7a57bd0bf137fcc7ba3c31be95a07247585213d4ac05e0d40da4bf" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/svelte/guides/formatting-display.md": { + "fingerprint": "fc45f40a4d3b1ccf2437737a2c177d5a6e03f0d7e53314037baf4388cb2400cb", + "snapshot": { + "docs/framework/svelte/guides/formatting-display.md": "caf99aab30ec3318e08842282105b11789b882dad0d643860c200308f98f3c22" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/svelte/guides/held-key-state-helpers.md": { + "fingerprint": "feefedfc816e009daa8cd8b0eff6cd9a2294e9c0d58314f5893a290b33a52a6f", + "snapshot": { + "docs/framework/svelte/guides/held-key-state-helpers.md": "4c0f79c78f9c8b181e1c6cdad9cd61004c46210488d759d48eb20c7a1bca0bcb" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/vue/guides/formatting-display.md": { + "fingerprint": "688e650b3b60ef87a100fe5eef907e8cd3df6a92da4dd39b907cf8137b322b03", + "snapshot": { + "docs/framework/vue/guides/formatting-display.md": "59f8f6198bac417ffc2d33bef465acf809547ea2f76d926bfe786ac23e2834f2" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/framework/vue/guides/held-key-state-helpers.md": { + "fingerprint": "3f5b55abad3370c1ffc5b77c15485b3436052dac6b3b7323e78a5fa1849c4186", + "snapshot": { + "docs/framework/vue/guides/held-key-state-helpers.md": "e7132d83eabff5c8d14edc74ea78d1a7350bc696deded2fb46df68b277cdea7f" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/reference/functions/formatForDisplay.md": { + "fingerprint": "46dae4fd839c20197c6d3be8aea53d289011d019337a05750996fd09ca7a281c", + "snapshot": { + "docs/reference/functions/formatForDisplay.md": "8a77748756b0062b144a2af8cd39ee78576a9cba3cd9412b1139b601a07e7679" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/reference/functions/formatKeyForDisplay.md": { + "fingerprint": "22f378a7170ecee1ae241e883a41bd6dc41fde438827d1d40be8a4d140488a45", + "snapshot": { + "docs/reference/functions/formatKeyForDisplay.md": "0f94b6d8a2f54d50d21f76a3f14e2a9d39a6f619ca104e25e485e49f79312f4f" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:docs/reference/interfaces/FormatDisplayOptions.md": { + "fingerprint": "f58149d0966555e5a7b3a76ac2419be532d3557135bc9ed6fe9bca97be5354c9", + "snapshot": { + "docs/reference/interfaces/FormatDisplayOptions.md": "07317e4d761610813421b736aa42141a2723c3f8aefd6909b062fff552f16000" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/reference/type-aliases/DisplayHotkey.md": { + "fingerprint": "279cf04e3cc02320b0fccd91bf15802761bd65c4b271dadec07626f5aa54b7e6", + "snapshot": { + "docs/reference/type-aliases/DisplayHotkey.md": "35bf73106dc0c581876f6e7d1fe0c804182862908fa0948febe05e814b1043d4" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:docs/reference/type-aliases/DisplayHotkeyChord.md": { + "fingerprint": "2d3ce4935afcc89569e338da4fd2b3462a6d8a158dd9da9cbdb497b958362681", + "snapshot": { + "docs/reference/type-aliases/DisplayHotkeyChord.md": "23e89b5fb5993d1968699cab7d0658849b897901b4dd2dfda97b777854a56698" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/alpine/createHeldKeys/index.html": { + "fingerprint": "4a65deb60dfbc956d3eb7e6b565966dc57429a110551577e775d06f7160ead3b", + "snapshot": { + "examples/alpine/createHeldKeys/index.html": "3c33b9dc6615001749b66ae41dd46a5c1fe502eb252eb23c38c9115096ebaaca" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/angular/injectHeldKeys/src/app/app.component.html": { + "fingerprint": "115bdbc1b9d90a700143f20913001bf5dcc4791f7416d6dad5c62a6c0d3d37b8", + "snapshot": { + "examples/angular/injectHeldKeys/src/app/app.component.html": "83d2a4541ae1cb0f83e1e4d6fde7cc27c695863fb69c6f68e718d0220f8feec8" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/angular/injectHeldKeys/src/app/app.component.ts": { + "fingerprint": "e445840f8032248e7b40da9d25488e16c2bba4ae4c37391977c998bb23df3ec4", + "snapshot": { + "examples/angular/injectHeldKeys/src/app/app.component.ts": "99ddfa452198586c58cb653488672210831a5abaa191e1c69a4ceefcfff9b668" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/angular/injectHotkeyRecorder-sequences/src/app/shortcut-list-item.component.html": { + "fingerprint": "9bb5772669dfbd5754be1339b7575f26491b095d90e0b3a9327f0af2eeee4c64", + "snapshot": { + "examples/angular/injectHotkeyRecorder-sequences/src/app/shortcut-list-item.component.html": "8574081d167ebe1d2bce2f71b5b730c1b082e2853352b4e294f33c105eb59267" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/angular/injectHotkeyRecorder-sequences/src/app/shortcut-list-item.component.ts": { + "fingerprint": "4eb9f2f87c68b31b9d19598bc2854377fb6b53a4bf9540528a72a76deeb9a775", + "snapshot": { + "examples/angular/injectHotkeyRecorder-sequences/src/app/shortcut-list-item.component.ts": "8d4eb897a2672d230bbffd59e1ba622007d996cddf88d3fa813c166942eaa708" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:examples/angular/injectHotkeyRecorder/src/app/shortcut-list-item.component.html": { + "fingerprint": "11f60628b65d5ce56d00a6ad7ea49defe982351529d2378d5d238ce8ca93b456", + "snapshot": { + "examples/angular/injectHotkeyRecorder/src/app/shortcut-list-item.component.html": "16922c8754c9fddf38809c22944aa5e586897f4af3be25ec6ba901c64a5fd3e5" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/angular/injectHotkeyRecorder/src/app/shortcut-list-item.component.ts": { + "fingerprint": "0682f2bb982e5fce0931e0a3a41be046c1a40e537fa16c3786a72e13024c5e75", + "snapshot": { + "examples/angular/injectHotkeyRecorder/src/app/shortcut-list-item.component.ts": "b32aa1b977137b9fc751fe6a8571c726118a4685d0882c5f4af97c9b9a616ad5" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:examples/angular/injectHotkeys/src/app/app.component.ts": { + "fingerprint": "c71b34b23b8f0df9b242ed689cd050f6467b7c83f48bc97df2bdcdec7a336cc4", + "snapshot": { + "examples/angular/injectHotkeys/src/app/app.component.ts": "5f51475129329fc00fd296bb30307bb93ef08962e08790555f49cb1efb05fced" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:examples/ember/useHeldKeys/app/templates/application.gts": { + "fingerprint": "10262344dc3ed97b34ac6e4468ea142343ce34252fa19fc775117cd02319e499", + "snapshot": { + "examples/ember/useHeldKeys/app/templates/application.gts": "391e7a140f3a9886fde71e961823cdc0d06226cc269c934ddb832cdd6c26b0da" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/lit/held-keys/src/app.ts": { + "fingerprint": "7a907edf878c7e081ca64dba37aeda9a1e356bdc4133356be351280c1f94190b", + "snapshot": { + "examples/lit/held-keys/src/app.ts": "012113583ddf271399406c58d51ebf6111b69118f9bfb4b6cef348c5ce781ee3" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/octane/useHeldKeys/src/main.tsrx": { + "fingerprint": "c4cba52572c661525e473dd268bbef6964a38169ef1af85dd5bca0ad226afce1", + "snapshot": { + "examples/octane/useHeldKeys/src/main.tsrx": "e1615e5beb77c8da0b68af6a45f81d682574016839be6cdd32fb866fc9ae5618" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/preact/useHeldKeys/src/index.tsx": { + "fingerprint": "13fa1e020e89da8737b81bf23920b4072e8cc4ef546b0f60511380139f1afd3b", + "snapshot": { + "examples/preact/useHeldKeys/src/index.tsx": "b763d58114f5d443dc2e59467cef1e55b7b178c1ac59a3da68e6a716f42821c8" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/react/useHeldKeys/src/index.tsx": { + "fingerprint": "c9389674412572887263b3ebd21d91f2ce6b3def40de6013320a4785eb88bf50", + "snapshot": { + "examples/react/useHeldKeys/src/index.tsx": "7aeccb4ed92f4c53436168437d39b2d185674d8d38e4f3430a7d5a0fb743f3df" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/solid/createHeldKeys/src/index.tsx": { + "fingerprint": "e90337f1d69e3c8dfea59cc00440ff8a6caa2724f4102e32ba26a9b92f51307a", + "snapshot": { + "examples/solid/createHeldKeys/src/index.tsx": "9ae719031680d86133e621b59d2dff1eb23ba2d5fbd0179787e981f5263fbb97" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/solid/createHotkeys/src/index.tsx": { + "fingerprint": "cb6b0c722aee34bed39fc9ea9c8bb63c4cd61ced3adedeb4ccf3dea05c2fa07a", + "snapshot": { + "examples/solid/createHotkeys/src/index.tsx": "78fd9be4f1b6f0807574aa414a5fbd66a632f94570a94f56a417984b66f49cea" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:examples/svelte/get-held-keys/src/App.svelte": { + "fingerprint": "b2dd55a35bbbc3da565c533795f531d939e34ca3b76e4bf7b58ae4d0ee72036a", + "snapshot": { + "examples/svelte/get-held-keys/src/App.svelte": "a63a60dd498c5c3f52c5938a4f8ea6dbf20aa38bd3835140b0d8b87d6fe41477" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:examples/vanilla/formatForDisplay/src/main.ts": { + "fingerprint": "56eb3702d1a512c982b8a1905f45c631c1f65a7af50fb6187fcd35b41d3381f2", + "snapshot": { + "examples/vanilla/formatForDisplay/src/main.ts": "7e785d7ae756627cf413db38cb3be5746cc5852015fc6fc78edc7d5b0fd829ed" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:examples/vue/useHeldKeys/src/App.vue": { + "fingerprint": "c9a80091ff42a5bb44da3b7b9f338f643e7cfed4f84ee8e26decd76842586ed1", + "snapshot": { + "examples/vue/useHeldKeys/src/App.vue": "ef5f48a1f7481e23a6ee9d2e5b56f6bb0c62ee9c356218cf84dde034e42be98f" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys-devtools/src/components/HeldKeysTopbar.tsx": { + "fingerprint": "0edc96b6ce89edfbc32e0e233a536e68401b51940bc10e344de189c42944aa1d", + "snapshot": { + "packages/hotkeys-devtools/src/components/HeldKeysTopbar.tsx": "0257d51e230355c192ea2eea0fa3568c61b8bc5d965553eed7530eca216c9d4c" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys/src/_keyboard-event.ts": { + "fingerprint": "c69ca358e87eef6fd7968475411fd88eb7ed182daac2e5f2ae58415dd3d63f61", + "snapshot": { + "packages/hotkeys/src/_keyboard-event.ts": "8412a21edf9396cbd71fc2b422293da86e59c00db23e822b811774080646d7f7" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/src/format.ts": { + "fingerprint": "66dc037b4e4e2eaae1e0de1e3bd31aeca0b23cc04ec487f85d43992952bda2c8", + "snapshot": { + "packages/hotkeys/src/format.ts": "131dd7394fcd202374f43534e5a726be3de06cf853de1a0c2077a24f112f02d9" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys/tests/format.test.ts": { + "fingerprint": "67429fcce20e209da5bf432f9a0df83ba660673566b2d610e34766dd80eb18f7", + "snapshot": { + "packages/hotkeys/tests/format.test.ts": "092aa7f6d7df8c63fdc44f8e924a7af913e8d6e410b9c68296399d86fb8d4e00" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys/tests/key-coverage.test.ts": { + "fingerprint": "3e987fb968e7d13e432e8b1b4f813630569da504f168763906d05d877c4e4d7f", + "snapshot": { + "packages/hotkeys/tests/key-coverage.test.ts": "3a9c74e69c7f974a29c5d2823bb269e168b82ef7b12a1910c87670a33197cd12" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/parse.test.ts": { + "fingerprint": "4dabf58fa9a6c54120699227495764acb8e909a892f566f1dea0b77ad3bfa714", + "snapshot": { + "packages/hotkeys/tests/parse.test.ts": "82cf384f5db3715452d4da221866268533dd1fa66266e91da4d50aa96e431177" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/typed-behavior.test.ts": { + "fingerprint": "e90bff2bcb654154e602d8b8f531323b10563b5e5ba7b3f70ffdbe9e0b2c0c07", + "snapshot": { + "packages/hotkeys/tests/typed-behavior.test.ts": "f4a47b42f7984b2ad63a5cc362e005f2578f44ace6c7cd24d95f0d3998ebc3ae" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys/tests/unified-hotkeys.test.ts": { + "fingerprint": "eb7ca333403ae706648f51156536a2f263674d0f23bf2648be98e6dc6f05539d", + "snapshot": { + "packages/hotkeys/tests/unified-hotkeys.test.ts": "5cbf94a85a08eff0d82bc531d2ddeab6bf68c1fd70a7160b16e28a4d9c3eb634" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/untrusted-input.test.ts": { + "fingerprint": "f7c756ac90b6f9d5552ec23cd606d6c8c335579bbb45ff751212e4ee8463c096", + "snapshot": { + "packages/hotkeys/tests/untrusted-input.test.ts": "726ba4a69f7e7bb1826744fddf18eac73e0a7d5f667d1c43f5d0cc428172dcfa" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys/tests/validate.test.ts": { + "fingerprint": "59ef4f65e32b0cd8af5d0f2b70549b6e9479ec908bcbd151bd92a1f7beeda909", + "snapshot": { + "packages/hotkeys/tests/validate.test.ts": "e93c6c7cd256bff61f7fa63138066f303c9d6839797ecb2f695bc16cd712a775" + }, + "head": "0a0a2ca93d6e4cc471a8994b6b8ec7354cddd12a", + "outcome": "no-change", + "reason": "Source, tests, examples, or regenerated docs for the case-sensitive key names and formatKeyForDisplay change; skill guidance is updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + ] + }, + "source:packages/hotkeys-devtools/src/_trigger.ts": { + "fingerprint": "27abd1cfd95577248a0fc894902d7d9fc68e4205375fc2feed08036afe944ba4", + "snapshot": { + "packages/hotkeys-devtools/src/_trigger.ts": "539f92509941f0659904734c231979c89c6edb6667bfe9a3f778e7a1d79349d1" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys-devtools/src/components/ActionButtons.tsx": { + "fingerprint": "d9bba92b73800b20f146ae81e518b0143323692c9c25a4689e235b6c13604316", + "snapshot": { + "packages/hotkeys-devtools/src/components/ActionButtons.tsx": "e9c08636c830ed50952f6bd99bdc1b5b84046ee685fec68fca140ea69c569354" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys-devtools/tests/trigger.test.ts": { + "fingerprint": "997ceb4b558e32437b0b41e5da51f4e99ec49971143412b7af8cd077b9253b73", + "snapshot": { + "packages/hotkeys-devtools/tests/trigger.test.ts": "4ee68cc3a6298dcfea3190ced926aae266295719c7d389ebf4b8f8f913dd07b8" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys/tests/parsed-identity.test.ts": { + "fingerprint": "d7ca311e2e582dbe207c3f4c2437ff5758f0c1a86d105619d0dd8c541ca5fecb", + "snapshot": { + "packages/hotkeys/tests/parsed-identity.test.ts": "db08e0fbaab7e8b0590a42872637178b460a6294ca9f6fc96fca022da6701211" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] + }, + "source:packages/hotkeys/tests/sequence-manager.test.ts": { + "fingerprint": "c646bbd6360ad4494b266c2adb05067b04e5da809486993e5711261f5c1442ea", + "snapshot": { + "packages/hotkeys/tests/sequence-manager.test.ts": "e61f353f49554fe732382a0d64af28b6de6c636fec25bb888f88d9f0fd9130bd" + }, + "head": "b65962dbc503a7b79601bea91062bfb1a6e7680a", + "outcome": "no-change", + "reason": "Removes formatKeyForDisplay in favor of typed formatForDisplay input (modifiers and { key }), and moves the devtools-only triggerRegistration into the devtools package; skill guidance updated in hotkeys-core.", + "evidence": [ + "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + ] } } } diff --git a/docs/devtools.md b/docs/devtools.md index 88f31d50..fb6758bc 100644 --- a/docs/devtools.md +++ b/docs/devtools.md @@ -24,6 +24,8 @@ The Hotkeys devtools panel lets you: Install the TanStack Devtools host package and the Hotkeys devtools adapter for your framework. +The adapters need a current TanStack Devtools host, such as `@tanstack/react-devtools` 0.10.14 or newer. Older hosts pass the plugin a theme string instead of props, so the panel ignores the theme and TypeScript rejects the plugin. Both libraries are in beta, so upgrade them together. + # React diff --git a/docs/framework/alpine/guides/app-hotkeys.md b/docs/framework/alpine/guides/app-hotkeys.md index de673d00..f9442df5 100644 --- a/docs/framework/alpine/guides/app-hotkeys.md +++ b/docs/framework/alpine/guides/app-hotkeys.md @@ -117,7 +117,7 @@ provideAppHotkeys(appHotkeys, { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- `provideAppHotkeys` reads `customHotkeys` once, and the shared store owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- `provideAppHotkeys` reads `customHotkeys` once, and the shared store owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/alpine/guides/formatting-display.md b/docs/framework/alpine/guides/formatting-display.md index 8d5bddc9..ef9ff8c3 100644 --- a/docs/framework/alpine/guides/formatting-display.md +++ b/docs/framework/alpine/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/alpine/guides/held-key-state-helpers.md b/docs/framework/alpine/guides/held-key-state-helpers.md index c75ebd28..ea3163e8 100644 --- a/docs/framework/alpine/guides/held-key-state-helpers.md +++ b/docs/framework/alpine/guides/held-key-state-helpers.md @@ -33,6 +33,8 @@ Alpine.data('keyDisplay', () => { }) ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ```html
``` diff --git a/docs/framework/alpine/guides/hotkey-manager.md b/docs/framework/alpine/guides/hotkey-manager.md index c9229e16..ff1e4352 100644 --- a/docs/framework/alpine/guides/hotkey-manager.md +++ b/docs/framework/alpine/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/alpine/guides/hotkeys.md b/docs/framework/alpine/guides/hotkeys.md index d3a3ad78..2109fd99 100644 --- a/docs/framework/alpine/guides/hotkeys.md +++ b/docs/framework/alpine/guides/hotkeys.md @@ -351,9 +351,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/angular/guides/app-hotkeys.md b/docs/framework/angular/guides/app-hotkeys.md index 37c861ce..f6e4757c 100644 --- a/docs/framework/angular/guides/app-hotkeys.md +++ b/docs/framework/angular/guides/app-hotkeys.md @@ -119,7 +119,7 @@ bootstrapApplication(AppComponent, { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- `provideHotkeys` reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- `provideHotkeys` reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/angular/guides/formatting-display.md b/docs/framework/angular/guides/formatting-display.md index 3e9573c2..b26c53f4 100644 --- a/docs/framework/angular/guides/formatting-display.md +++ b/docs/framework/angular/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/angular/guides/held-key-state-helpers.md b/docs/framework/angular/guides/held-key-state-helpers.md index 2a3f356a..3b5f79af 100644 --- a/docs/framework/angular/guides/held-key-state-helpers.md +++ b/docs/framework/angular/guides/held-key-state-helpers.md @@ -31,6 +31,8 @@ export class KeyDisplayComponent { } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `injectKeyHold` returns whether one key is held. It updates only when that key is pressed or released, and accepts a getter for a key that changes: diff --git a/docs/framework/angular/guides/hotkey-manager.md b/docs/framework/angular/guides/hotkey-manager.md index 65c93dc2..a8e24cdd 100644 --- a/docs/framework/angular/guides/hotkey-manager.md +++ b/docs/framework/angular/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/angular/guides/hotkeys.md b/docs/framework/angular/guides/hotkeys.md index dc77400a..4c54b5fa 100644 --- a/docs/framework/angular/guides/hotkeys.md +++ b/docs/framework/angular/guides/hotkeys.md @@ -384,9 +384,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/angular/reference/functions/injectDefaultHotkeysOptions.md b/docs/framework/angular/reference/functions/injectDefaultHotkeysOptions.md index e7f20223..645c0f14 100644 --- a/docs/framework/angular/reference/functions/injectDefaultHotkeysOptions.md +++ b/docs/framework/angular/reference/functions/injectDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: injectDefaultHotkeysOptions function injectDefaultHotkeysOptions(): HotkeysProviderOptions; ``` -Defined in: [hotkeys-provider.ts:242](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L242) +Defined in: [hotkeys-provider.ts:244](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L244) ## Returns diff --git a/docs/framework/angular/reference/functions/injectHotkeysContext.md b/docs/framework/angular/reference/functions/injectHotkeysContext.md index 2773bd1c..1d2e3b88 100644 --- a/docs/framework/angular/reference/functions/injectHotkeysContext.md +++ b/docs/framework/angular/reference/functions/injectHotkeysContext.md @@ -7,7 +7,7 @@ title: injectHotkeysContext function injectHotkeysContext(): HotkeysContextValue; ``` -Defined in: [hotkeys-provider.ts:238](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L238) +Defined in: [hotkeys-provider.ts:240](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L240) ## Returns diff --git a/docs/framework/angular/reference/functions/provideHotkeys.md b/docs/framework/angular/reference/functions/provideHotkeys.md index fd06f4ea..a90b380a 100644 --- a/docs/framework/angular/reference/functions/provideHotkeys.md +++ b/docs/framework/angular/reference/functions/provideHotkeys.md @@ -7,7 +7,7 @@ title: provideHotkeys function provideHotkeys(options?): Provider; ``` -Defined in: [hotkeys-provider.ts:231](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L231) +Defined in: [hotkeys-provider.ts:233](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L233) Provides default options, app hotkeys, and the user's custom hotkeys to an injector, such as the application or a component. diff --git a/docs/framework/angular/reference/interfaces/HotkeysContextValue.md b/docs/framework/angular/reference/interfaces/HotkeysContextValue.md index f421952c..b9024109 100644 --- a/docs/framework/angular/reference/interfaces/HotkeysContextValue.md +++ b/docs/framework/angular/reference/interfaces/HotkeysContextValue.md @@ -3,7 +3,7 @@ id: HotkeysContextValue title: HotkeysContextValue --- -Defined in: [hotkeys-provider.ts:72](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L72) +Defined in: [hotkeys-provider.ts:74](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L74) ## Properties @@ -15,7 +15,7 @@ readonly appHotkeysState: Signal< | null>; ``` -Defined in: [hotkeys-provider.ts:79](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L79) +Defined in: [hotkeys-provider.ts:81](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L81) Tracks app hotkeys and custom hotkeys so signals and effects re-run. @@ -29,7 +29,7 @@ readonly appHotkeysStore: | null; ``` -Defined in: [hotkeys-provider.ts:77](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L77) +Defined in: [hotkeys-provider.ts:79](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L79) *** @@ -39,7 +39,7 @@ Defined in: [hotkeys-provider.ts:77](https://github.com/TanStack/hotkeys/blob/ma readonly defaultOptions: HotkeysProviderOptions; ``` -Defined in: [hotkeys-provider.ts:74](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L74) +Defined in: [hotkeys-provider.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L76) Merged with every ancestor provider's defaults, including `hotkey.scope`. @@ -51,6 +51,6 @@ Merged with every ancestor provider's defaults, including `hotkey.scope`. readonly enabled: Signal; ``` -Defined in: [hotkeys-provider.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L76) +Defined in: [hotkeys-provider.ts:78](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L78) Whether this provider and every ancestor are enabled. diff --git a/docs/framework/angular/reference/interfaces/HotkeysProviderOptions.md b/docs/framework/angular/reference/interfaces/HotkeysProviderOptions.md index 3bd6f993..2ff7da26 100644 --- a/docs/framework/angular/reference/interfaces/HotkeysProviderOptions.md +++ b/docs/framework/angular/reference/interfaces/HotkeysProviderOptions.md @@ -3,7 +3,7 @@ id: HotkeysProviderOptions title: HotkeysProviderOptions --- -Defined in: [hotkeys-provider.ts:28](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L28) +Defined in: [hotkeys-provider.ts:30](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L30) ## Properties @@ -13,7 +13,7 @@ Defined in: [hotkeys-provider.ts:28](https://github.com/TanStack/hotkeys/blob/ma optional hotkey?: InjectHotkeyCommonOptions; ``` -Defined in: [hotkeys-provider.ts:33](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L33) +Defined in: [hotkeys-provider.ts:35](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L35) Defaults for every hotkey registered by `injectHotkey` and `injectHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `injectHotkey` and `injectHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [hotkeys-provider.ts:35](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L35) +Defined in: [hotkeys-provider.ts:37](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L37) Defaults for every `injectHotkeyRecorder`. diff --git a/docs/framework/angular/reference/interfaces/ProvideHotkeysOptions.md b/docs/framework/angular/reference/interfaces/ProvideHotkeysOptions.md index 27e83bc3..b0777cd2 100644 --- a/docs/framework/angular/reference/interfaces/ProvideHotkeysOptions.md +++ b/docs/framework/angular/reference/interfaces/ProvideHotkeysOptions.md @@ -3,7 +3,7 @@ id: ProvideHotkeysOptions title: ProvideHotkeysOptions --- -Defined in: [hotkeys-provider.ts:44](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L44) +Defined in: [hotkeys-provider.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L46) Options for `provideHotkeys`. @@ -15,7 +15,7 @@ Options for `provideHotkeys`. optional appHotkeys?: Readonly>>; ``` -Defined in: [hotkeys-provider.ts:62](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L62) +Defined in: [hotkeys-provider.ts:64](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L64) Every app hotkey, from `defineAppHotkeys`. Listed by `injectAppHotkeyList` whether or not they are registered. @@ -30,7 +30,7 @@ optional customHotkeys?: | null; ``` -Defined in: [hotkeys-provider.ts:67](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L67) +Defined in: [hotkeys-provider.ts:69](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L69) Starting custom hotkeys, such as saved data. Read once; the provider owns the state afterwards. Invalid entries are ignored with a warning. @@ -43,7 +43,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: HotkeysProviderOptions; ``` -Defined in: [hotkeys-provider.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L46) +Defined in: [hotkeys-provider.ts:48](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L48) Merged with the parent provider's defaults. @@ -55,7 +55,7 @@ Merged with the parent provider's defaults. optional enabled?: MaybeGetter; ``` -Defined in: [hotkeys-provider.ts:57](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L57) +Defined in: [hotkeys-provider.ts:59](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L59) See `HotkeysProviderScopeProps['enabled']`. @@ -71,7 +71,7 @@ optional exclusive?: MaybeGetter< | undefined>; ``` -Defined in: [hotkeys-provider.ts:55](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L55) +Defined in: [hotkeys-provider.ts:57](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L57) See `HotkeysProviderScopeProps['exclusive']`. @@ -83,7 +83,7 @@ See `HotkeysProviderScopeProps['exclusive']`. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [hotkeys-provider.ts:69](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L69) +Defined in: [hotkeys-provider.ts:71](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L71) Called with the custom hotkeys after every change, ready to save. @@ -105,7 +105,7 @@ Called with the custom hotkeys after every change, ready to save. optional scope?: MaybeGetter; ``` -Defined in: [hotkeys-provider.ts:53](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L53) +Defined in: [hotkeys-provider.ts:55](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L55) See `HotkeysProviderScopeProps['scope']`. Getters, here and for `exclusive` and `enabled`, run in the provider's injection context, so diff --git a/docs/framework/angular/reference/type-aliases/MaybeGetter.md b/docs/framework/angular/reference/type-aliases/MaybeGetter.md index a2483846..4ebb1d64 100644 --- a/docs/framework/angular/reference/type-aliases/MaybeGetter.md +++ b/docs/framework/angular/reference/type-aliases/MaybeGetter.md @@ -7,7 +7,7 @@ title: MaybeGetter type MaybeGetter = T | (() => T); ``` -Defined in: [hotkeys-provider.ts:99](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L99) +Defined in: [hotkeys-provider.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L101) A value, or a signal or getter that returns it. diff --git a/docs/framework/angular/reference/variables/HOTKEYS_INJECTION_TOKEN.md b/docs/framework/angular/reference/variables/HOTKEYS_INJECTION_TOKEN.md index b594587a..919eb42f 100644 --- a/docs/framework/angular/reference/variables/HOTKEYS_INJECTION_TOKEN.md +++ b/docs/framework/angular/reference/variables/HOTKEYS_INJECTION_TOKEN.md @@ -7,4 +7,4 @@ title: HOTKEYS_INJECTION_TOKEN const HOTKEYS_INJECTION_TOKEN: InjectionToken; ``` -Defined in: [hotkeys-provider.ts:90](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L90) +Defined in: [hotkeys-provider.ts:92](https://github.com/TanStack/hotkeys/blob/main/packages/angular-hotkeys/src/hotkeys-provider.ts#L92) diff --git a/docs/framework/ember/guides/app-hotkeys.md b/docs/framework/ember/guides/app-hotkeys.md index 00f44678..1d93810b 100644 --- a/docs/framework/ember/guides/app-hotkeys.md +++ b/docs/framework/ember/guides/app-hotkeys.md @@ -120,7 +120,7 @@ provideAppHotkeys(appHotkeys, { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- `provideAppHotkeys` reads `customHotkeys` once, and the shared store owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- `provideAppHotkeys` reads `customHotkeys` once, and the shared store owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/ember/guides/formatting-display.md b/docs/framework/ember/guides/formatting-display.md index 4b7b7551..de647e6b 100644 --- a/docs/framework/ember/guides/formatting-display.md +++ b/docs/framework/ember/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/ember/guides/held-key-state-helpers.md b/docs/framework/ember/guides/held-key-state-helpers.md index 5489305e..25e3702d 100644 --- a/docs/framework/ember/guides/held-key-state-helpers.md +++ b/docs/framework/ember/guides/held-key-state-helpers.md @@ -32,6 +32,8 @@ export default class KeyDisplay extends Component { } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `useKeyHold` tracks whether one key is held. It updates only when that key is pressed or released, and accepts a getter for a key that changes: diff --git a/docs/framework/ember/guides/hotkey-manager.md b/docs/framework/ember/guides/hotkey-manager.md index f4a70f4e..1cc898e5 100644 --- a/docs/framework/ember/guides/hotkey-manager.md +++ b/docs/framework/ember/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/ember/guides/hotkeys.md b/docs/framework/ember/guides/hotkeys.md index bbd6f424..31ea4554 100644 --- a/docs/framework/ember/guides/hotkeys.md +++ b/docs/framework/ember/guides/hotkeys.md @@ -362,9 +362,9 @@ Use an element target for hotkeys that belong to a focusable element, such as a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/lit/guides/app-hotkeys.md b/docs/framework/lit/guides/app-hotkeys.md index f2a0d1fc..042900d3 100644 --- a/docs/framework/lit/guides/app-hotkeys.md +++ b/docs/framework/lit/guides/app-hotkeys.md @@ -111,7 +111,7 @@ provideAppHotkeys(appHotkeys, { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- `provideAppHotkeys` reads `customHotkeys` once, and the shared store owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- `provideAppHotkeys` reads `customHotkeys` once, and the shared store owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/lit/guides/formatting-display.md b/docs/framework/lit/guides/formatting-display.md index c5c4991f..2835e57e 100644 --- a/docs/framework/lit/guides/formatting-display.md +++ b/docs/framework/lit/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/lit/guides/held-key-state-helpers.md b/docs/framework/lit/guides/held-key-state-helpers.md index ec21a7c1..73effeee 100644 --- a/docs/framework/lit/guides/held-key-state-helpers.md +++ b/docs/framework/lit/guides/held-key-state-helpers.md @@ -30,6 +30,8 @@ class KeyDisplay extends LitElement { } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `KeyHoldController` tracks whether one key is held. It updates the element only when that key is pressed or released: diff --git a/docs/framework/lit/guides/hotkey-manager.md b/docs/framework/lit/guides/hotkey-manager.md index b86afdc8..10d90d7c 100644 --- a/docs/framework/lit/guides/hotkey-manager.md +++ b/docs/framework/lit/guides/hotkey-manager.md @@ -62,7 +62,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/lit/guides/hotkeys.md b/docs/framework/lit/guides/hotkeys.md index c06e8c7c..098932a3 100644 --- a/docs/framework/lit/guides/hotkeys.md +++ b/docs/framework/lit/guides/hotkeys.md @@ -343,9 +343,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/octane/guides/app-hotkeys.md b/docs/framework/octane/guides/app-hotkeys.md index 4d1fa727..5a8d0184 100644 --- a/docs/framework/octane/guides/app-hotkeys.md +++ b/docs/framework/octane/guides/app-hotkeys.md @@ -119,7 +119,7 @@ function Root() @{ ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/octane/guides/formatting-display.md b/docs/framework/octane/guides/formatting-display.md index 54f494b9..3c67647b 100644 --- a/docs/framework/octane/guides/formatting-display.md +++ b/docs/framework/octane/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/octane/guides/held-key-state-helpers.md b/docs/framework/octane/guides/held-key-state-helpers.md index 902a3daf..9d67a77c 100644 --- a/docs/framework/octane/guides/held-key-state-helpers.md +++ b/docs/framework/octane/guides/held-key-state-helpers.md @@ -22,6 +22,8 @@ function KeyDisplay() @{ } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `useKeyHold` returns whether one key is held. The component updates only when that key is pressed or released: diff --git a/docs/framework/octane/guides/hotkey-manager.md b/docs/framework/octane/guides/hotkey-manager.md index 71e26459..e20236ae 100644 --- a/docs/framework/octane/guides/hotkey-manager.md +++ b/docs/framework/octane/guides/hotkey-manager.md @@ -62,7 +62,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/octane/guides/hotkeys.md b/docs/framework/octane/guides/hotkeys.md index 268cfbd4..ab18f9e7 100644 --- a/docs/framework/octane/guides/hotkeys.md +++ b/docs/framework/octane/guides/hotkeys.md @@ -317,9 +317,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/octane/reference/functions/HotkeysProvider.md b/docs/framework/octane/reference/functions/HotkeysProvider.md index a8a02eea..5d98f9e3 100644 --- a/docs/framework/octane/reference/functions/HotkeysProvider.md +++ b/docs/framework/octane/reference/functions/HotkeysProvider.md @@ -15,7 +15,7 @@ function HotkeysProvider(__namedParameters): ElementDescriptor<{ }>; ``` -Defined in: [HotkeysProvider.ts:86](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L86) +Defined in: [HotkeysProvider.ts:88](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L88) Sets defaults, app hotkeys, and custom hotkeys for descendant components. diff --git a/docs/framework/octane/reference/functions/useDefaultHotkeysOptions.md b/docs/framework/octane/reference/functions/useDefaultHotkeysOptions.md index ffb87f7a..fc255b86 100644 --- a/docs/framework/octane/reference/functions/useDefaultHotkeysOptions.md +++ b/docs/framework/octane/reference/functions/useDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: useDefaultHotkeysOptions function useDefaultHotkeysOptions(): DefaultHotkeysOptions; ``` -Defined in: [HotkeysProvider.ts:75](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L75) +Defined in: [HotkeysProvider.ts:77](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L77) Reads the nearest provider's defaults, or an empty object. diff --git a/docs/framework/octane/reference/functions/useHotkeysContext.md b/docs/framework/octane/reference/functions/useHotkeysContext.md index 92ba9170..9dfe61fb 100644 --- a/docs/framework/octane/reference/functions/useHotkeysContext.md +++ b/docs/framework/octane/reference/functions/useHotkeysContext.md @@ -7,7 +7,7 @@ title: useHotkeysContext function useHotkeysContext(): HotkeysContextValue | null; ``` -Defined in: [HotkeysProvider.ts:70](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L70) +Defined in: [HotkeysProvider.ts:72](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L72) Reads the nearest provider, or null outside a provider. diff --git a/docs/framework/octane/reference/interfaces/DefaultHotkeysOptions.md b/docs/framework/octane/reference/interfaces/DefaultHotkeysOptions.md index 13af4f50..6990a365 100644 --- a/docs/framework/octane/reference/interfaces/DefaultHotkeysOptions.md +++ b/docs/framework/octane/reference/interfaces/DefaultHotkeysOptions.md @@ -3,7 +3,7 @@ id: DefaultHotkeysOptions title: DefaultHotkeysOptions --- -Defined in: [HotkeysProvider.ts:24](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L24) +Defined in: [HotkeysProvider.ts:26](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L26) ## Properties @@ -13,7 +13,7 @@ Defined in: [HotkeysProvider.ts:24](https://github.com/TanStack/hotkeys/blob/mai optional hotkey?: UseHotkeyCommonOptions; ``` -Defined in: [HotkeysProvider.ts:29](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L29) +Defined in: [HotkeysProvider.ts:31](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L31) Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [HotkeysProvider.ts:31](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L31) +Defined in: [HotkeysProvider.ts:33](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L33) Defaults for every `useHotkeyRecorder`. diff --git a/docs/framework/octane/reference/interfaces/HotkeysProviderProps.md b/docs/framework/octane/reference/interfaces/HotkeysProviderProps.md index 1174a210..179ecbf3 100644 --- a/docs/framework/octane/reference/interfaces/HotkeysProviderProps.md +++ b/docs/framework/octane/reference/interfaces/HotkeysProviderProps.md @@ -3,7 +3,7 @@ id: HotkeysProviderProps title: HotkeysProviderProps --- -Defined in: [HotkeysProvider.ts:51](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L51) +Defined in: [HotkeysProvider.ts:53](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L53) ## Extends @@ -17,7 +17,7 @@ Defined in: [HotkeysProvider.ts:51](https://github.com/TanStack/hotkeys/blob/mai optional appHotkeys?: Readonly>>; ``` -Defined in: [HotkeysProvider.ts:59](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L59) +Defined in: [HotkeysProvider.ts:61](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L61) Every app hotkey, from `defineAppHotkeys`. Read when the provider first renders; listed by `useAppHotkeyList` whether or not they are registered. @@ -30,7 +30,7 @@ renders; listed by `useAppHotkeyList` whether or not they are registered. optional children?: unknown; ``` -Defined in: [HotkeysProvider.ts:52](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L52) +Defined in: [HotkeysProvider.ts:54](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L54) *** @@ -42,7 +42,7 @@ optional customHotkeys?: | null; ``` -Defined in: [HotkeysProvider.ts:64](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L64) +Defined in: [HotkeysProvider.ts:66](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L66) Starting custom hotkeys, such as saved data. Read once; the provider owns the state afterwards. Invalid entries are ignored with a warning. @@ -55,7 +55,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: DefaultHotkeysOptions; ``` -Defined in: [HotkeysProvider.ts:54](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L54) +Defined in: [HotkeysProvider.ts:56](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L56) Merged with the parent provider's defaults. @@ -67,7 +67,7 @@ Merged with the parent provider's defaults. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [HotkeysProvider.ts:66](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L66) +Defined in: [HotkeysProvider.ts:68](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L68) Called with the custom hotkeys after every change, ready to save. diff --git a/docs/framework/octane/reference/type-aliases/HotkeysProviderOptions.md b/docs/framework/octane/reference/type-aliases/HotkeysProviderOptions.md index 4104ed28..7a37ae73 100644 --- a/docs/framework/octane/reference/type-aliases/HotkeysProviderOptions.md +++ b/docs/framework/octane/reference/type-aliases/HotkeysProviderOptions.md @@ -7,4 +7,4 @@ title: HotkeysProviderOptions type HotkeysProviderOptions = DefaultHotkeysOptions; ``` -Defined in: [HotkeysProvider.ts:49](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L49) +Defined in: [HotkeysProvider.ts:51](https://github.com/TanStack/hotkeys/blob/main/packages/octane-hotkeys/src/HotkeysProvider.ts#L51) diff --git a/docs/framework/preact/guides/app-hotkeys.md b/docs/framework/preact/guides/app-hotkeys.md index 8ec79a77..89760cf8 100644 --- a/docs/framework/preact/guides/app-hotkeys.md +++ b/docs/framework/preact/guides/app-hotkeys.md @@ -122,7 +122,7 @@ function Root() { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/preact/guides/formatting-display.md b/docs/framework/preact/guides/formatting-display.md index 4a29d052..3ed1b087 100644 --- a/docs/framework/preact/guides/formatting-display.md +++ b/docs/framework/preact/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/preact/guides/held-key-state-helpers.md b/docs/framework/preact/guides/held-key-state-helpers.md index db1c7026..cc9d609a 100644 --- a/docs/framework/preact/guides/held-key-state-helpers.md +++ b/docs/framework/preact/guides/held-key-state-helpers.md @@ -26,6 +26,8 @@ function KeyDisplay() { } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `useKeyHold` returns whether one key is held. The component re-renders only when that key is pressed or released: diff --git a/docs/framework/preact/guides/hotkey-manager.md b/docs/framework/preact/guides/hotkey-manager.md index 5dfa7d42..c5849387 100644 --- a/docs/framework/preact/guides/hotkey-manager.md +++ b/docs/framework/preact/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/preact/guides/hotkeys.md b/docs/framework/preact/guides/hotkeys.md index 28ba581d..5bce9f36 100644 --- a/docs/framework/preact/guides/hotkeys.md +++ b/docs/framework/preact/guides/hotkeys.md @@ -313,9 +313,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/preact/reference/functions/HotkeysProvider.md b/docs/framework/preact/reference/functions/HotkeysProvider.md index 11948129..e86f3f83 100644 --- a/docs/framework/preact/reference/functions/HotkeysProvider.md +++ b/docs/framework/preact/reference/functions/HotkeysProvider.md @@ -7,7 +7,7 @@ title: HotkeysProvider function HotkeysProvider(__namedParameters): Element; ``` -Defined in: [HotkeysProvider.tsx:102](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L102) +Defined in: [HotkeysProvider.tsx:104](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L104) Provides default options, app hotkeys, and the user's custom hotkeys. diff --git a/docs/framework/preact/reference/functions/useDefaultHotkeysOptions.md b/docs/framework/preact/reference/functions/useDefaultHotkeysOptions.md index feca2c69..7a616a77 100644 --- a/docs/framework/preact/reference/functions/useDefaultHotkeysOptions.md +++ b/docs/framework/preact/reference/functions/useDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: useDefaultHotkeysOptions function useDefaultHotkeysOptions(): HotkeysProviderOptions; ``` -Defined in: [HotkeysProvider.tsx:174](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L174) +Defined in: [HotkeysProvider.tsx:176](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L176) ## Returns diff --git a/docs/framework/preact/reference/functions/useHeldKeys.md b/docs/framework/preact/reference/functions/useHeldKeys.md index 04a8cef0..b3f4ca23 100644 --- a/docs/framework/preact/reference/functions/useHeldKeys.md +++ b/docs/framework/preact/reference/functions/useHeldKeys.md @@ -7,12 +7,11 @@ title: useHeldKeys function useHeldKeys(): string[]; ``` -Defined in: [useHeldKeys.ts:26](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/useHeldKeys.ts#L26) +Defined in: [useHeldKeys.ts:25](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/useHeldKeys.ts#L25) Preact hook that returns an array of currently held keyboard keys. -This hook uses `useSelector` from `@tanstack/preact-store` to subscribe -to the global KeyStateTracker and updates whenever keys are pressed +This hook subscribes to the global KeyStateTracker and updates whenever keys are pressed or released. ## Returns diff --git a/docs/framework/preact/reference/functions/useHotkeysContext.md b/docs/framework/preact/reference/functions/useHotkeysContext.md index 6409bcb7..d0a364fe 100644 --- a/docs/framework/preact/reference/functions/useHotkeysContext.md +++ b/docs/framework/preact/reference/functions/useHotkeysContext.md @@ -7,7 +7,7 @@ title: useHotkeysContext function useHotkeysContext(): HotkeysContextValue | null; ``` -Defined in: [HotkeysProvider.tsx:170](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L170) +Defined in: [HotkeysProvider.tsx:172](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L172) ## Returns diff --git a/docs/framework/preact/reference/functions/useKeyHold.md b/docs/framework/preact/reference/functions/useKeyHold.md index 0c14980d..120ef460 100644 --- a/docs/framework/preact/reference/functions/useKeyHold.md +++ b/docs/framework/preact/reference/functions/useKeyHold.md @@ -7,12 +7,11 @@ title: useKeyHold function useKeyHold(key): boolean; ``` -Defined in: [useKeyHold.ts:45](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/useKeyHold.ts#L45) +Defined in: [useKeyHold.ts:44](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/useKeyHold.ts#L44) Preact hook that returns whether a specific key is currently being held. -This hook uses `useSelector` from `@tanstack/preact-store` to subscribe -to the global KeyStateTracker and uses a selector to determine if +This hook subscribes to the global KeyStateTracker and uses a selector to determine if the specified key is held. ## Parameters diff --git a/docs/framework/preact/reference/interfaces/HotkeysProviderOptions.md b/docs/framework/preact/reference/interfaces/HotkeysProviderOptions.md index 44d639de..70256ea4 100644 --- a/docs/framework/preact/reference/interfaces/HotkeysProviderOptions.md +++ b/docs/framework/preact/reference/interfaces/HotkeysProviderOptions.md @@ -3,7 +3,7 @@ id: HotkeysProviderOptions title: HotkeysProviderOptions --- -Defined in: [HotkeysProvider.tsx:19](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L19) +Defined in: [HotkeysProvider.tsx:21](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L21) ## Properties @@ -13,7 +13,7 @@ Defined in: [HotkeysProvider.tsx:19](https://github.com/TanStack/hotkeys/blob/ma optional hotkey?: UseHotkeyCommonOptions; ``` -Defined in: [HotkeysProvider.tsx:24](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L24) +Defined in: [HotkeysProvider.tsx:26](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L26) Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [HotkeysProvider.tsx:26](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L26) +Defined in: [HotkeysProvider.tsx:28](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L28) Defaults for every `useHotkeyRecorder`. diff --git a/docs/framework/preact/reference/interfaces/HotkeysProviderProps.md b/docs/framework/preact/reference/interfaces/HotkeysProviderProps.md index 44fd9260..54f78aa6 100644 --- a/docs/framework/preact/reference/interfaces/HotkeysProviderProps.md +++ b/docs/framework/preact/reference/interfaces/HotkeysProviderProps.md @@ -3,7 +3,7 @@ id: HotkeysProviderProps title: HotkeysProviderProps --- -Defined in: [HotkeysProvider.tsx:44](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L44) +Defined in: [HotkeysProvider.tsx:46](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L46) ## Extends @@ -23,7 +23,7 @@ Defined in: [HotkeysProvider.tsx:44](https://github.com/TanStack/hotkeys/blob/ma optional appHotkeys?: T; ``` -Defined in: [HotkeysProvider.tsx:52](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L52) +Defined in: [HotkeysProvider.tsx:54](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L54) Every app hotkey, from `defineAppHotkeys`. Listed by `useAppHotkeyList` whether or not their components have mounted. @@ -36,7 +36,7 @@ whether or not their components have mounted. children: ComponentChildren; ``` -Defined in: [HotkeysProvider.tsx:47](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L47) +Defined in: [HotkeysProvider.tsx:49](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L49) *** @@ -46,7 +46,7 @@ Defined in: [HotkeysProvider.tsx:47](https://github.com/TanStack/hotkeys/blob/ma optional customHotkeys?: CustomHotkeys | null; ``` -Defined in: [HotkeysProvider.tsx:57](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L57) +Defined in: [HotkeysProvider.tsx:59](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L59) Starting custom hotkeys, such as saved data. Read once; the provider owns the state afterwards. Invalid entries are ignored with a warning. @@ -59,7 +59,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: HotkeysProviderOptions; ``` -Defined in: [HotkeysProvider.tsx:61](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L61) +Defined in: [HotkeysProvider.tsx:63](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L63) Merged with the parent provider's defaults. @@ -71,7 +71,7 @@ Merged with the parent provider's defaults. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [HotkeysProvider.tsx:59](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L59) +Defined in: [HotkeysProvider.tsx:61](https://github.com/TanStack/hotkeys/blob/main/packages/preact-hotkeys/src/HotkeysProvider.tsx#L61) Called with the custom hotkeys after every change, ready to save. diff --git a/docs/framework/react/guides/app-hotkeys.md b/docs/framework/react/guides/app-hotkeys.md index 22a10bb1..cb10355f 100644 --- a/docs/framework/react/guides/app-hotkeys.md +++ b/docs/framework/react/guides/app-hotkeys.md @@ -122,7 +122,7 @@ function Root() { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/react/guides/formatting-display.md b/docs/framework/react/guides/formatting-display.md index c53bc985..a50533cb 100644 --- a/docs/framework/react/guides/formatting-display.md +++ b/docs/framework/react/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/react/guides/held-key-state-helpers.md b/docs/framework/react/guides/held-key-state-helpers.md index a97d5100..2234a86e 100644 --- a/docs/framework/react/guides/held-key-state-helpers.md +++ b/docs/framework/react/guides/held-key-state-helpers.md @@ -26,6 +26,8 @@ function KeyDisplay() { } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `useKeyHold` returns whether one key is held. The component re-renders only when that key is pressed or released: diff --git a/docs/framework/react/guides/hotkey-manager.md b/docs/framework/react/guides/hotkey-manager.md index 819f8842..694cc621 100644 --- a/docs/framework/react/guides/hotkey-manager.md +++ b/docs/framework/react/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/react/guides/hotkeys.md b/docs/framework/react/guides/hotkeys.md index 791c6787..38b85eff 100644 --- a/docs/framework/react/guides/hotkeys.md +++ b/docs/framework/react/guides/hotkeys.md @@ -309,9 +309,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/react/reference/functions/HotkeysProvider.md b/docs/framework/react/reference/functions/HotkeysProvider.md index 7bc86b51..f087872e 100644 --- a/docs/framework/react/reference/functions/HotkeysProvider.md +++ b/docs/framework/react/reference/functions/HotkeysProvider.md @@ -7,7 +7,7 @@ title: HotkeysProvider function HotkeysProvider(__namedParameters): ReactElement; ``` -Defined in: [HotkeysProvider.tsx:109](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L109) +Defined in: [HotkeysProvider.tsx:111](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L111) Provides default options, app hotkeys, and the user's custom hotkeys. diff --git a/docs/framework/react/reference/functions/useDefaultHotkeysOptions.md b/docs/framework/react/reference/functions/useDefaultHotkeysOptions.md index b8fe3140..2eb933f4 100644 --- a/docs/framework/react/reference/functions/useDefaultHotkeysOptions.md +++ b/docs/framework/react/reference/functions/useDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: useDefaultHotkeysOptions function useDefaultHotkeysOptions(): HotkeysProviderOptions; ``` -Defined in: [HotkeysProvider.tsx:184](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L184) +Defined in: [HotkeysProvider.tsx:186](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L186) ## Returns diff --git a/docs/framework/react/reference/functions/useHeldKeys.md b/docs/framework/react/reference/functions/useHeldKeys.md index dbe23bf4..5510a136 100644 --- a/docs/framework/react/reference/functions/useHeldKeys.md +++ b/docs/framework/react/reference/functions/useHeldKeys.md @@ -7,12 +7,11 @@ title: useHeldKeys function useHeldKeys(): string[]; ``` -Defined in: [useHeldKeys.ts:28](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/useHeldKeys.ts#L28) +Defined in: [useHeldKeys.ts:27](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/useHeldKeys.ts#L27) React hook that returns an array of currently held keyboard keys. -This hook uses `useSelector` from `@tanstack/react-store` to subscribe -to the global KeyStateTracker and updates whenever keys are pressed +This hook subscribes to the global KeyStateTracker and updates whenever keys are pressed or released. ## Returns diff --git a/docs/framework/react/reference/functions/useHotkeysContext.md b/docs/framework/react/reference/functions/useHotkeysContext.md index 35056054..5fce7aae 100644 --- a/docs/framework/react/reference/functions/useHotkeysContext.md +++ b/docs/framework/react/reference/functions/useHotkeysContext.md @@ -7,7 +7,7 @@ title: useHotkeysContext function useHotkeysContext(): HotkeysContextValue | null; ``` -Defined in: [HotkeysProvider.tsx:179](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L179) +Defined in: [HotkeysProvider.tsx:181](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L181) ## Returns diff --git a/docs/framework/react/reference/functions/useKeyHold.md b/docs/framework/react/reference/functions/useKeyHold.md index e0b42ab3..14605197 100644 --- a/docs/framework/react/reference/functions/useKeyHold.md +++ b/docs/framework/react/reference/functions/useKeyHold.md @@ -7,12 +7,11 @@ title: useKeyHold function useKeyHold(key): boolean; ``` -Defined in: [useKeyHold.ts:47](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/useKeyHold.ts#L47) +Defined in: [useKeyHold.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/useKeyHold.ts#L46) React hook that returns whether a specific key is currently being held. -This hook uses `useSelector` from `@tanstack/react-store` to subscribe -to the global KeyStateTracker and uses a selector to determine if +This hook subscribes to the global KeyStateTracker and uses a selector to determine if the specified key is held. ## Parameters diff --git a/docs/framework/react/reference/interfaces/HotkeysProviderOptions.md b/docs/framework/react/reference/interfaces/HotkeysProviderOptions.md index 5a486b3f..6fa86938 100644 --- a/docs/framework/react/reference/interfaces/HotkeysProviderOptions.md +++ b/docs/framework/react/reference/interfaces/HotkeysProviderOptions.md @@ -3,7 +3,7 @@ id: HotkeysProviderOptions title: HotkeysProviderOptions --- -Defined in: [HotkeysProvider.tsx:26](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L26) +Defined in: [HotkeysProvider.tsx:28](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L28) ## Properties @@ -13,7 +13,7 @@ Defined in: [HotkeysProvider.tsx:26](https://github.com/TanStack/hotkeys/blob/ma optional hotkey?: UseHotkeyCommonOptions; ``` -Defined in: [HotkeysProvider.tsx:31](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L31) +Defined in: [HotkeysProvider.tsx:33](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L33) Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [HotkeysProvider.tsx:33](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L33) +Defined in: [HotkeysProvider.tsx:35](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L35) Defaults for every `useHotkeyRecorder`. diff --git a/docs/framework/react/reference/interfaces/HotkeysProviderProps.md b/docs/framework/react/reference/interfaces/HotkeysProviderProps.md index 18306b0d..2d8ce232 100644 --- a/docs/framework/react/reference/interfaces/HotkeysProviderProps.md +++ b/docs/framework/react/reference/interfaces/HotkeysProviderProps.md @@ -3,7 +3,7 @@ id: HotkeysProviderProps title: HotkeysProviderProps --- -Defined in: [HotkeysProvider.tsx:51](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L51) +Defined in: [HotkeysProvider.tsx:53](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L53) ## Extends @@ -23,7 +23,7 @@ Defined in: [HotkeysProvider.tsx:51](https://github.com/TanStack/hotkeys/blob/ma optional appHotkeys?: T; ``` -Defined in: [HotkeysProvider.tsx:59](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L59) +Defined in: [HotkeysProvider.tsx:61](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L61) Every app hotkey, from `defineAppHotkeys`. Listed by `useAppHotkeyList` whether or not their components have mounted. @@ -36,7 +36,7 @@ whether or not their components have mounted. children: ReactNode; ``` -Defined in: [HotkeysProvider.tsx:54](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L54) +Defined in: [HotkeysProvider.tsx:56](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L56) *** @@ -46,7 +46,7 @@ Defined in: [HotkeysProvider.tsx:54](https://github.com/TanStack/hotkeys/blob/ma optional customHotkeys?: CustomHotkeys | null; ``` -Defined in: [HotkeysProvider.tsx:64](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L64) +Defined in: [HotkeysProvider.tsx:66](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L66) Starting custom hotkeys, such as saved data. Read once; the provider owns the state afterwards. Invalid entries are ignored with a warning. @@ -59,7 +59,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: HotkeysProviderOptions; ``` -Defined in: [HotkeysProvider.tsx:68](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L68) +Defined in: [HotkeysProvider.tsx:70](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L70) Merged with the parent provider's defaults. @@ -71,7 +71,7 @@ Merged with the parent provider's defaults. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [HotkeysProvider.tsx:66](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L66) +Defined in: [HotkeysProvider.tsx:68](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/src/HotkeysProvider.tsx#L68) Called with the custom hotkeys after every change, ready to save. diff --git a/docs/framework/solid/guides/app-hotkeys.md b/docs/framework/solid/guides/app-hotkeys.md index bbc40196..1d46f538 100644 --- a/docs/framework/solid/guides/app-hotkeys.md +++ b/docs/framework/solid/guides/app-hotkeys.md @@ -126,7 +126,7 @@ function Root() { ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/solid/guides/formatting-display.md b/docs/framework/solid/guides/formatting-display.md index d51d27ea..9f8b6d65 100644 --- a/docs/framework/solid/guides/formatting-display.md +++ b/docs/framework/solid/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/solid/guides/held-key-state-helpers.md b/docs/framework/solid/guides/held-key-state-helpers.md index 5fc75e2e..a80c0658 100644 --- a/docs/framework/solid/guides/held-key-state-helpers.md +++ b/docs/framework/solid/guides/held-key-state-helpers.md @@ -28,6 +28,8 @@ function KeyDisplay() { } ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `createKeyHold` returns whether one key is held. It updates only when that key is pressed or released, and accepts an accessor for a key that changes: diff --git a/docs/framework/solid/guides/hotkey-manager.md b/docs/framework/solid/guides/hotkey-manager.md index 9ae85e06..be182c4b 100644 --- a/docs/framework/solid/guides/hotkey-manager.md +++ b/docs/framework/solid/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/solid/guides/hotkeys.md b/docs/framework/solid/guides/hotkeys.md index adebe00d..fcb00df4 100644 --- a/docs/framework/solid/guides/hotkeys.md +++ b/docs/framework/solid/guides/hotkeys.md @@ -329,9 +329,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/solid/reference/functions/createHeldKeyCodes.md b/docs/framework/solid/reference/functions/createHeldKeyCodes.md index e4bf3bb0..3b0c85ec 100644 --- a/docs/framework/solid/reference/functions/createHeldKeyCodes.md +++ b/docs/framework/solid/reference/functions/createHeldKeyCodes.md @@ -7,15 +7,14 @@ title: createHeldKeyCodes function createHeldKeyCodes(): () => Record; ``` -Defined in: [createHeldKeyCodes.ts:35](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/createHeldKeyCodes.ts#L35) +Defined in: [createHeldKeyCodes.ts:34](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/createHeldKeyCodes.ts#L34) SolidJS primitive that returns a signal of a map from currently held key names to their physical `event.code` values. This is useful for debugging which physical key was pressed (e.g. distinguishing left vs right Shift via "ShiftLeft" / "ShiftRight"). -This primitive uses `useSelector` from `@tanstack/solid-store` to subscribe -to the global KeyStateTracker. +This primitive subscribes to the global KeyStateTracker. ## Returns diff --git a/docs/framework/solid/reference/functions/createHeldKeys.md b/docs/framework/solid/reference/functions/createHeldKeys.md index 5645686f..49ec5bde 100644 --- a/docs/framework/solid/reference/functions/createHeldKeys.md +++ b/docs/framework/solid/reference/functions/createHeldKeys.md @@ -7,12 +7,11 @@ title: createHeldKeys function createHeldKeys(): () => string[]; ``` -Defined in: [createHeldKeys.ts:26](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/createHeldKeys.ts#L26) +Defined in: [createHeldKeys.ts:25](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/createHeldKeys.ts#L25) SolidJS primitive that returns a signal of currently held keyboard keys. -This primitive uses `useSelector` from `@tanstack/solid-store` to subscribe -to the global KeyStateTracker and updates whenever keys are pressed +This primitive subscribes to the global KeyStateTracker and updates whenever keys are pressed or released. ## Returns diff --git a/docs/framework/solid/reference/functions/createKeyHold.md b/docs/framework/solid/reference/functions/createKeyHold.md index ac42f849..61185f50 100644 --- a/docs/framework/solid/reference/functions/createKeyHold.md +++ b/docs/framework/solid/reference/functions/createKeyHold.md @@ -7,12 +7,11 @@ title: createKeyHold function createKeyHold(key): () => boolean; ``` -Defined in: [createKeyHold.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/createKeyHold.ts#L46) +Defined in: [createKeyHold.ts:45](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/createKeyHold.ts#L45) SolidJS primitive that returns whether a specific key is currently being held. -This primitive uses `useSelector` from `@tanstack/solid-store` to subscribe -to the global KeyStateTracker and uses a selector to determine if the +This primitive subscribes to the global KeyStateTracker and uses a selector to determine if the specified key is held. ## Parameters diff --git a/docs/framework/solid/reference/functions/useDefaultHotkeysOptions.md b/docs/framework/solid/reference/functions/useDefaultHotkeysOptions.md index 0fe2a790..544490d4 100644 --- a/docs/framework/solid/reference/functions/useDefaultHotkeysOptions.md +++ b/docs/framework/solid/reference/functions/useDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: useDefaultHotkeysOptions function useDefaultHotkeysOptions(): HotkeysProviderOptions; ``` -Defined in: [HotkeysProvider.tsx:165](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L165) +Defined in: [HotkeysProvider.tsx:167](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L167) ## Returns diff --git a/docs/framework/solid/reference/functions/useHotkeysContext.md b/docs/framework/solid/reference/functions/useHotkeysContext.md index 2ed26979..e1dc40f0 100644 --- a/docs/framework/solid/reference/functions/useHotkeysContext.md +++ b/docs/framework/solid/reference/functions/useHotkeysContext.md @@ -7,7 +7,7 @@ title: useHotkeysContext function useHotkeysContext(): HotkeysContextValue | null; ``` -Defined in: [HotkeysProvider.tsx:161](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L161) +Defined in: [HotkeysProvider.tsx:163](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L163) ## Returns diff --git a/docs/framework/solid/reference/interfaces/HotkeysProviderOptions.md b/docs/framework/solid/reference/interfaces/HotkeysProviderOptions.md index bb8f62eb..e8c17567 100644 --- a/docs/framework/solid/reference/interfaces/HotkeysProviderOptions.md +++ b/docs/framework/solid/reference/interfaces/HotkeysProviderOptions.md @@ -3,7 +3,7 @@ id: HotkeysProviderOptions title: HotkeysProviderOptions --- -Defined in: [HotkeysProvider.tsx:25](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L25) +Defined in: [HotkeysProvider.tsx:27](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L27) ## Properties @@ -13,7 +13,7 @@ Defined in: [HotkeysProvider.tsx:25](https://github.com/TanStack/hotkeys/blob/ma optional hotkey?: CreateHotkeyCommonOptions; ``` -Defined in: [HotkeysProvider.tsx:30](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L30) +Defined in: [HotkeysProvider.tsx:32](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L32) Defaults for every hotkey registered by `createHotkey` and `createHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `createHotkey` and `createHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [HotkeysProvider.tsx:32](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L32) +Defined in: [HotkeysProvider.tsx:34](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L34) Defaults for every `createHotkeyRecorder`. diff --git a/docs/framework/solid/reference/interfaces/HotkeysProviderProps.md b/docs/framework/solid/reference/interfaces/HotkeysProviderProps.md index c7ec548b..37a334df 100644 --- a/docs/framework/solid/reference/interfaces/HotkeysProviderProps.md +++ b/docs/framework/solid/reference/interfaces/HotkeysProviderProps.md @@ -3,7 +3,7 @@ id: HotkeysProviderProps title: HotkeysProviderProps --- -Defined in: [HotkeysProvider.tsx:50](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L50) +Defined in: [HotkeysProvider.tsx:52](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L52) ## Extends @@ -17,7 +17,7 @@ Defined in: [HotkeysProvider.tsx:50](https://github.com/TanStack/hotkeys/blob/ma optional appHotkeys?: Readonly>>; ``` -Defined in: [HotkeysProvider.tsx:56](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L56) +Defined in: [HotkeysProvider.tsx:58](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L58) Every app hotkey, from `defineAppHotkeys`. Read when the provider is created; listed by `createAppHotkeyList` whether or not they are registered. @@ -30,7 +30,7 @@ created; listed by `createAppHotkeyList` whether or not they are registered. children: Element; ``` -Defined in: [HotkeysProvider.tsx:51](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L51) +Defined in: [HotkeysProvider.tsx:53](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L53) *** @@ -42,7 +42,7 @@ optional customHotkeys?: | null; ``` -Defined in: [HotkeysProvider.tsx:61](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L61) +Defined in: [HotkeysProvider.tsx:63](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L63) Starting custom hotkeys, such as saved data. Read once; the provider owns the state afterwards. Invalid entries are ignored with a warning. @@ -55,7 +55,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: HotkeysProviderOptions; ``` -Defined in: [HotkeysProvider.tsx:65](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L65) +Defined in: [HotkeysProvider.tsx:67](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L67) Merged with the parent provider's defaults. @@ -67,7 +67,7 @@ Merged with the parent provider's defaults. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [HotkeysProvider.tsx:63](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L63) +Defined in: [HotkeysProvider.tsx:65](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L65) Called with the custom hotkeys after every change, ready to save. diff --git a/docs/framework/solid/reference/variables/HotkeysProvider.md b/docs/framework/solid/reference/variables/HotkeysProvider.md index 41551648..37ec5e4d 100644 --- a/docs/framework/solid/reference/variables/HotkeysProvider.md +++ b/docs/framework/solid/reference/variables/HotkeysProvider.md @@ -7,7 +7,7 @@ title: HotkeysProvider const HotkeysProvider: ParentComponent; ``` -Defined in: [HotkeysProvider.tsx:97](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L97) +Defined in: [HotkeysProvider.tsx:99](https://github.com/TanStack/hotkeys/blob/main/packages/solid-hotkeys/src/HotkeysProvider.tsx#L99) Provides default options, app hotkeys, and the user's custom hotkeys. diff --git a/docs/framework/svelte/guides/app-hotkeys.md b/docs/framework/svelte/guides/app-hotkeys.md index 83941280..da4c9e87 100644 --- a/docs/framework/svelte/guides/app-hotkeys.md +++ b/docs/framework/svelte/guides/app-hotkeys.md @@ -120,7 +120,7 @@ TanStack Hotkeys does not store anything. Pass the user's saved custom hotkeys t ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - `onCustomHotkeysChange` receives the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. `setHotkeysContext` accepts the same `appHotkeys`, `customHotkeys`, and `onCustomHotkeysChange` options. diff --git a/docs/framework/svelte/guides/formatting-display.md b/docs/framework/svelte/guides/formatting-display.md index 0bad3023..d097ab13 100644 --- a/docs/framework/svelte/guides/formatting-display.md +++ b/docs/framework/svelte/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/svelte/guides/held-key-state-helpers.md b/docs/framework/svelte/guides/held-key-state-helpers.md index bfc80b7a..f6f27c00 100644 --- a/docs/framework/svelte/guides/held-key-state-helpers.md +++ b/docs/framework/svelte/guides/held-key-state-helpers.md @@ -26,6 +26,8 @@ Each function returns an object with a reactive getter. Read the getter where yo ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `getIsKeyHeld(key).held` tells you whether one key is held. It updates only when that key is pressed or released: diff --git a/docs/framework/svelte/guides/hotkey-manager.md b/docs/framework/svelte/guides/hotkey-manager.md index febdeb5e..3ab9375a 100644 --- a/docs/framework/svelte/guides/hotkey-manager.md +++ b/docs/framework/svelte/guides/hotkey-manager.md @@ -64,7 +64,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/svelte/guides/hotkeys.md b/docs/framework/svelte/guides/hotkeys.md index 5b1db0f2..83fb70c5 100644 --- a/docs/framework/svelte/guides/hotkeys.md +++ b/docs/framework/svelte/guides/hotkeys.md @@ -326,9 +326,9 @@ Use an element target for hotkeys that belong to a focusable element, such as a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/svelte/reference/functions/getDefaultHotkeysOptions.md b/docs/framework/svelte/reference/functions/getDefaultHotkeysOptions.md index 9c3d7e34..ab05b44b 100644 --- a/docs/framework/svelte/reference/functions/getDefaultHotkeysOptions.md +++ b/docs/framework/svelte/reference/functions/getDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: getDefaultHotkeysOptions function getDefaultHotkeysOptions(): HotkeysProviderOptions; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:146](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L146) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:148](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L148) ## Returns diff --git a/docs/framework/svelte/reference/functions/getHotkeysContext.md b/docs/framework/svelte/reference/functions/getHotkeysContext.md index fc8f0696..48b66c52 100644 --- a/docs/framework/svelte/reference/functions/getHotkeysContext.md +++ b/docs/framework/svelte/reference/functions/getHotkeysContext.md @@ -7,7 +7,7 @@ title: getHotkeysContext function getHotkeysContext(): HotkeysContextValue | null; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:138](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L138) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:140](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L140) ## Returns diff --git a/docs/framework/svelte/reference/functions/setHotkeysContext.md b/docs/framework/svelte/reference/functions/setHotkeysContext.md index 397380ce..55b44a4b 100644 --- a/docs/framework/svelte/reference/functions/setHotkeysContext.md +++ b/docs/framework/svelte/reference/functions/setHotkeysContext.md @@ -7,7 +7,7 @@ title: setHotkeysContext function setHotkeysContext(options?): HotkeysContextValue; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:89](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L89) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:91](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L91) Sets the hotkeys context for descendants. `HotkeysProvider` calls this; call it directly in a component's script instead of rendering the provider. diff --git a/docs/framework/svelte/reference/interfaces/HotkeysContextOptions.md b/docs/framework/svelte/reference/interfaces/HotkeysContextOptions.md index 7d933191..7147b6c9 100644 --- a/docs/framework/svelte/reference/interfaces/HotkeysContextOptions.md +++ b/docs/framework/svelte/reference/interfaces/HotkeysContextOptions.md @@ -3,7 +3,7 @@ id: HotkeysContextOptions title: HotkeysContextOptions --- -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:34](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L34) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:36](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L36) Options for `setHotkeysContext` and props for `HotkeysProvider`. @@ -23,7 +23,7 @@ Options for `setHotkeysContext` and props for `HotkeysProvider`. optional appHotkeys?: Readonly>>; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:41](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L41) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:43](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L43) Every app hotkey, from `defineAppHotkeys`. Read when the context is set; listed by `getAppHotkeyList` whether or not they are registered. @@ -38,7 +38,7 @@ optional customHotkeys?: | null; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L46) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:48](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L48) Starting custom hotkeys, such as saved data. Read once; the context owns the state afterwards. Invalid entries are ignored with a warning. @@ -51,7 +51,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: HotkeysProviderOptions; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:36](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L36) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:38](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L38) Merged with the parent context's defaults. @@ -63,7 +63,7 @@ Merged with the parent context's defaults. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:48](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L48) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:50](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L50) Called with the custom hotkeys after every change, ready to save. diff --git a/docs/framework/svelte/reference/interfaces/HotkeysProviderOptions.md b/docs/framework/svelte/reference/interfaces/HotkeysProviderOptions.md index 6331d2bd..ccfffa3c 100644 --- a/docs/framework/svelte/reference/interfaces/HotkeysProviderOptions.md +++ b/docs/framework/svelte/reference/interfaces/HotkeysProviderOptions.md @@ -3,7 +3,7 @@ id: HotkeysProviderOptions title: HotkeysProviderOptions --- -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:18](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L18) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:20](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L20) ## Properties @@ -13,7 +13,7 @@ Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:18](https://github.com/Ta optional hotkey?: CreateHotkeyCommonOptions; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:23](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L23) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:25](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L25) Defaults for every hotkey registered by `createHotkey` and `createHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `createHotkey` and `createHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:25](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L25) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:27](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L27) Defaults for every `createHotkeyRecorder`. diff --git a/docs/framework/svelte/reference/interfaces/HotkeysProviderProps.md b/docs/framework/svelte/reference/interfaces/HotkeysProviderProps.md index 00cf868e..4a53d59e 100644 --- a/docs/framework/svelte/reference/interfaces/HotkeysProviderProps.md +++ b/docs/framework/svelte/reference/interfaces/HotkeysProviderProps.md @@ -3,7 +3,7 @@ id: HotkeysProviderProps title: HotkeysProviderProps --- -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:51](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L51) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:53](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L53) Options for `setHotkeysContext` and props for `HotkeysProvider`. @@ -19,7 +19,7 @@ Options for `setHotkeysContext` and props for `HotkeysProvider`. optional appHotkeys?: Readonly>>; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:41](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L41) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:43](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L43) Every app hotkey, from `defineAppHotkeys`. Read when the context is set; listed by `getAppHotkeyList` whether or not they are registered. @@ -36,7 +36,7 @@ listed by `getAppHotkeyList` whether or not they are registered. children: Snippet; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:52](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L52) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:54](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L54) *** @@ -48,7 +48,7 @@ optional customHotkeys?: | null; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L46) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:48](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L48) Starting custom hotkeys, such as saved data. Read once; the context owns the state afterwards. Invalid entries are ignored with a warning. @@ -65,7 +65,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: HotkeysProviderOptions; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:36](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L36) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:38](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L38) Merged with the parent context's defaults. @@ -81,7 +81,7 @@ Merged with the parent context's defaults. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:48](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L48) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:50](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L50) Called with the custom hotkeys after every change, ready to save. diff --git a/docs/framework/svelte/reference/variables/DEFAULT_OPTIONS.md b/docs/framework/svelte/reference/variables/DEFAULT_OPTIONS.md index 6adcd27f..7bd7a774 100644 --- a/docs/framework/svelte/reference/variables/DEFAULT_OPTIONS.md +++ b/docs/framework/svelte/reference/variables/DEFAULT_OPTIONS.md @@ -7,4 +7,4 @@ title: DEFAULT_OPTIONS const DEFAULT_OPTIONS: HotkeysProviderOptions = {}; ``` -Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:55](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L55) +Defined in: [packages/svelte-hotkeys/src/HotkeysCtx.ts:57](https://github.com/TanStack/hotkeys/blob/main/packages/svelte-hotkeys/src/HotkeysCtx.ts#L57) diff --git a/docs/framework/vue/guides/app-hotkeys.md b/docs/framework/vue/guides/app-hotkeys.md index 98650f2d..a4dbdd26 100644 --- a/docs/framework/vue/guides/app-hotkeys.md +++ b/docs/framework/vue/guides/app-hotkeys.md @@ -124,7 +124,7 @@ const save = (custom: CustomHotkeys) => ``` - `customHotkeys` holds only the hotkeys that differ from the declared defaults, keyed by id. `null` means the user unbound that hotkey. Saving differences means users who never changed a hotkey get new defaults when you change them. -- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning. +- The provider reads `customHotkeys` once and owns the state afterwards. Saved data can outlive the code that wrote it, so unknown ids and invalid hotkeys are ignored with a warning in development. - The provider emits `customHotkeysChange` with the complete custom hotkeys after every change, ready to save. Storage can be anything: local storage, a server, or a user profile. With `provideHotkeysContext`, pass `customHotkeys` and `onCustomHotkeysChange` in its options instead. The [hotkey recorder](./custom-hotkey-recording) records `Mod` rather than platform-specific modifiers, so a hotkey saved on one platform works on others. diff --git a/docs/framework/vue/guides/formatting-display.md b/docs/framework/vue/guides/formatting-display.md index e76429ca..128bc96f 100644 --- a/docs/framework/vue/guides/formatting-display.md +++ b/docs/framework/vue/guides/formatting-display.md @@ -21,6 +21,8 @@ The same label can stand for different hotkeys. `Mod+S` follows the character S, Omit `platform` to use detection. On macOS, the label joins modifier symbols with spaces. Windows and Linux use names joined with `+`. macOS orders modifiers as Control, Option, Shift, Command, so `Mod+Shift+S` displays as `⇧ ⌘ S`, while the hotkey itself stays `Mod+Shift+S`. +`formatForDisplay` accepts hotkeys only, including single keys such as `'Escape'` and modifiers on their own such as `'Shift'`. A key from a `KeyboardEvent`, such as a held key, can be outside the key types: pass it as `{ key }`. + ## Render individual keycaps Set `parts: true` to get one label per key instead of a joined string: diff --git a/docs/framework/vue/guides/held-key-state-helpers.md b/docs/framework/vue/guides/held-key-state-helpers.md index 66b2dadc..9c4ca24c 100644 --- a/docs/framework/vue/guides/held-key-state-helpers.md +++ b/docs/framework/vue/guides/held-key-state-helpers.md @@ -28,6 +28,8 @@ const heldKeys = useHeldKeys() ``` +To label each held key the way hotkeys are labeled, pass it to `formatForDisplay` as `{ key }`: `Shift` becomes `⇧` on macOS and `Escape` becomes `Esc`. Held keys come from the browser and can be outside the key types, which the `{ key }` form accepts. + ## Check whether a key is held `useKeyHold` returns whether one key is held. It updates only when that key is pressed or released, and accepts a ref or getter for a key that changes: diff --git a/docs/framework/vue/guides/hotkey-manager.md b/docs/framework/vue/guides/hotkey-manager.md index 3e9929e5..2bf8bd38 100644 --- a/docs/framework/vue/guides/hotkey-manager.md +++ b/docs/framework/vue/guides/hotkey-manager.md @@ -63,7 +63,7 @@ manager.isRegistered('Escape', panelElement) // Whether one matches on that targ `isRegistered` compares hotkeys the way [duplicate detection](./hotkeys#handle-duplicate-hotkeys) does, so `Meta+S` matches a `Mod+S` registration on macOS. -`manager.registrations` is a [TanStack Store](https://tanstack.com/store) that holds every registration in a `Map`, keyed by id. Subscribe to it to run code when registrations change: +`manager.registrations` is a store that holds every registration in a `Map`, keyed by id. It reads and subscribes like a [TanStack Store](https://tanstack.com/store), so it also works with TanStack Store's framework adapters. Subscribe to it to run code when registrations change: ```ts const subscription = manager.registrations.subscribe((registrations) => { diff --git a/docs/framework/vue/guides/hotkeys.md b/docs/framework/vue/guides/hotkeys.md index adbb56a1..13a4d17e 100644 --- a/docs/framework/vue/guides/hotkeys.md +++ b/docs/framework/vue/guides/hotkeys.md @@ -343,9 +343,9 @@ Use a target for hotkeys that belong to a focusable element, such as a list or a ## Handle duplicate hotkeys -When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning, and both callbacks run. Set `conflictBehavior` to change that: +When you register a hotkey that is already registered on the same target and in the same scope, TanStack Hotkeys logs a warning in development, and both callbacks run. Set `conflictBehavior` to change that: -- `'warn'` (default) logs a warning and keeps both registrations. +- `'warn'` (default) logs a warning in development and keeps both registrations. - `'error'` throws an error. - `'replace'` unregisters the existing registration. - `'allow'` keeps both without a warning. diff --git a/docs/framework/vue/reference/functions/provideHotkeysContext.md b/docs/framework/vue/reference/functions/provideHotkeysContext.md index 31d8babd..c3f4b699 100644 --- a/docs/framework/vue/reference/functions/provideHotkeysContext.md +++ b/docs/framework/vue/reference/functions/provideHotkeysContext.md @@ -7,7 +7,7 @@ title: provideHotkeysContext function provideHotkeysContext(options?): void; ``` -Defined in: [HotkeysProviderContext.ts:99](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L99) +Defined in: [HotkeysProviderContext.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L101) Provides default options, app hotkeys, and the user's custom hotkeys to descendants. `HotkeysProvider` calls this; call it directly in a component's diff --git a/docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md b/docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md index f7d73750..3dc2f1a3 100644 --- a/docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md +++ b/docs/framework/vue/reference/functions/useDefaultHotkeysOptions.md @@ -7,7 +7,7 @@ title: useDefaultHotkeysOptions function useDefaultHotkeysOptions(): HotkeysProviderOptions; ``` -Defined in: [HotkeysProviderContext.ts:181](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L181) +Defined in: [HotkeysProviderContext.ts:183](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L183) ## Returns diff --git a/docs/framework/vue/reference/functions/useHeldKeys.md b/docs/framework/vue/reference/functions/useHeldKeys.md index c5d0e79e..83ab26f0 100644 --- a/docs/framework/vue/reference/functions/useHeldKeys.md +++ b/docs/framework/vue/reference/functions/useHeldKeys.md @@ -7,12 +7,11 @@ title: useHeldKeys function useHeldKeys(): Ref; ``` -Defined in: [useHeldKeys.ts:29](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/useHeldKeys.ts#L29) +Defined in: [useHeldKeys.ts:28](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/useHeldKeys.ts#L28) Vue composable that returns a reactive ref of currently held keyboard keys. -This composable uses `useSelector` from `@tanstack/vue-store` to subscribe -to the global KeyStateTracker and updates whenever keys are pressed +This composable subscribes to the global KeyStateTracker and updates whenever keys are pressed or released. ## Returns diff --git a/docs/framework/vue/reference/functions/useHotkeysContext.md b/docs/framework/vue/reference/functions/useHotkeysContext.md index b2a66ee3..89269afe 100644 --- a/docs/framework/vue/reference/functions/useHotkeysContext.md +++ b/docs/framework/vue/reference/functions/useHotkeysContext.md @@ -7,7 +7,7 @@ title: useHotkeysContext function useHotkeysContext(): HotkeysContextValue | null; ``` -Defined in: [HotkeysProviderContext.ts:177](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L177) +Defined in: [HotkeysProviderContext.ts:179](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L179) The nearest context, or `null`. Outside a component, such as in a bare `effectScope`, there is no context to read, so this skips `inject` and its diff --git a/docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md b/docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md index f94ccf20..1234933c 100644 --- a/docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md +++ b/docs/framework/vue/reference/interfaces/HotkeysProviderOptions.md @@ -3,7 +3,7 @@ id: HotkeysProviderOptions title: HotkeysProviderOptions --- -Defined in: [HotkeysProviderContext.ts:27](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L27) +Defined in: [HotkeysProviderContext.ts:29](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L29) ## Properties @@ -13,7 +13,7 @@ Defined in: [HotkeysProviderContext.ts:27](https://github.com/TanStack/hotkeys/b optional hotkey?: UseHotkeyCommonOptions; ``` -Defined in: [HotkeysProviderContext.ts:32](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L32) +Defined in: [HotkeysProviderContext.ts:34](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L34) Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. `requireReset` applies to chords and `timeout` applies to sequences. @@ -26,6 +26,6 @@ Defaults for every hotkey registered by `useHotkey` and `useHotkeys`. optional hotkeyRecorder?: Partial>; ``` -Defined in: [HotkeysProviderContext.ts:34](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L34) +Defined in: [HotkeysProviderContext.ts:36](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L36) Defaults for every `useHotkeyRecorder`. diff --git a/docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md b/docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md index 42a6e08c..fca694ee 100644 --- a/docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md +++ b/docs/framework/vue/reference/interfaces/ProvideHotkeysContextOptions.md @@ -3,7 +3,7 @@ id: ProvideHotkeysContextOptions title: ProvideHotkeysContextOptions --- -Defined in: [HotkeysProviderContext.ts:56](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L56) +Defined in: [HotkeysProviderContext.ts:58](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L58) Options for `provideHotkeysContext`. @@ -17,7 +17,7 @@ optional appHotkeys?: MaybeRefOrGetter< | undefined>; ``` -Defined in: [HotkeysProviderContext.ts:69](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L69) +Defined in: [HotkeysProviderContext.ts:71](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L71) Every app hotkey, from `defineAppHotkeys`. Read when the context is provided; later changes update the declarations. @@ -32,7 +32,7 @@ optional customHotkeys?: | null; ``` -Defined in: [HotkeysProviderContext.ts:74](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L74) +Defined in: [HotkeysProviderContext.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L76) Starting custom hotkeys, such as saved data. Read once; the context owns the state afterwards. Invalid entries are ignored with a warning. @@ -45,7 +45,7 @@ the state afterwards. Invalid entries are ignored with a warning. optional defaultOptions?: MaybeRefOrGetter; ``` -Defined in: [HotkeysProviderContext.ts:58](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L58) +Defined in: [HotkeysProviderContext.ts:60](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L60) Merged with the parent context's defaults. @@ -57,7 +57,7 @@ Merged with the parent context's defaults. optional enabled?: MaybeRefOrGetter; ``` -Defined in: [HotkeysProviderContext.ts:64](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L64) +Defined in: [HotkeysProviderContext.ts:66](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L66) See `HotkeysProviderScopeProps['enabled']`. @@ -73,7 +73,7 @@ optional exclusive?: MaybeRefOrGetter< | undefined>; ``` -Defined in: [HotkeysProviderContext.ts:62](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L62) +Defined in: [HotkeysProviderContext.ts:64](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L64) See `HotkeysProviderScopeProps['exclusive']`. @@ -85,7 +85,7 @@ See `HotkeysProviderScopeProps['exclusive']`. optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [HotkeysProviderContext.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L76) +Defined in: [HotkeysProviderContext.ts:78](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L78) Called with the custom hotkeys after every change, ready to save. @@ -107,6 +107,6 @@ Called with the custom hotkeys after every change, ready to save. optional scope?: MaybeRefOrGetter; ``` -Defined in: [HotkeysProviderContext.ts:60](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L60) +Defined in: [HotkeysProviderContext.ts:62](https://github.com/TanStack/hotkeys/blob/main/packages/vue-hotkeys/src/HotkeysProviderContext.ts#L62) See `HotkeysProviderScopeProps['scope']`. diff --git a/docs/guides/sensible-defaults.md b/docs/guides/sensible-defaults.md index 1fcc42ad..bb2f2325 100644 --- a/docs/guides/sensible-defaults.md +++ b/docs/guides/sensible-defaults.md @@ -22,7 +22,7 @@ This guide describes each default, why it was chosen, and how to change it. | Where listeners attach | `document` | `target` | | When hotkeys run | After the keyboard handlers of widgets inside the target (bubble phase) | `capture` | | Time between sequence steps | 1 second | `timeout` | -| Duplicate registrations | Allowed, with a console warning | `conflictBehavior` | +| Duplicate registrations | Allowed, with a console warning in development | `conflictBehavior` | | Recording | Records key positions; Escape cancels | `recordBy`, recorder options | | Display | Symbols on macOS (`⇧ ⌘ S`), text elsewhere (`Ctrl+Shift+S`) | `formatForDisplay` options | @@ -224,10 +224,12 @@ Sequences are forgiving in a few other ways: ## Duplicate registrations warn -Registering a hotkey that is already registered on the same target logs a console warning, and both callbacks run. A warning surfaces accidental duplicates during development without breaking an app that intentionally shares a shortcut. Duplicates are compared in canonical form, so `Mod+S` and `Meta+S` are duplicates on macOS. +Registering a hotkey that is already registered on the same target logs a console warning in development, and both callbacks run. A warning surfaces accidental duplicates during development without breaking an app that intentionally shares a shortcut. Duplicates are compared in canonical form, so `Mod+S` and `Meta+S` are duplicates on macOS. Set `conflictBehavior` to `'replace'` to replace the existing registration, `'error'` to throw, or `'allow'` to silence the warning. +TanStack Hotkeys logs warnings only in development. Production builds, where bundlers set `process.env.NODE_ENV` to `'production'`, skip them and drop the warning code. + ## Recording captures what the user pressed The hotkey recorder records physical key positions by default (`recordBy: 'code'`). A modifier can change which character a key types (Option+S types `ß`, and Shift+1 types `!`), but its position does not change. Recording the position saves the key the user pressed, regardless of what it typed. Set `recordBy: 'key'` to record characters instead. diff --git a/docs/reference/adapter/functions/activateHotkeysProviderScope.md b/docs/reference/adapter/functions/activateHotkeysProviderScope.md index e0101da0..825ba922 100644 --- a/docs/reference/adapter/functions/activateHotkeysProviderScope.md +++ b/docs/reference/adapter/functions/activateHotkeysProviderScope.md @@ -7,7 +7,7 @@ title: activateHotkeysProviderScope function activateHotkeysProviderScope(key): () => void; ``` -Defined in: [adapter.ts:389](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L389) +Defined in: [adapter.ts:393](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L393) Activates the scope described by a key from `getHotkeysProviderScopeKey`. Returns a function that releases the activation. diff --git a/docs/reference/adapter/functions/createAppHotkeysStore.md b/docs/reference/adapter/functions/createAppHotkeysStore.md new file mode 100644 index 00000000..03e82355 --- /dev/null +++ b/docs/reference/adapter/functions/createAppHotkeysStore.md @@ -0,0 +1,32 @@ +--- +id: createAppHotkeysStore +title: createAppHotkeysStore +--- + +```ts +function createAppHotkeysStore(appHotkeys, options): AppHotkeysStore; +``` + +Defined in: [\_app-hotkeys-factory.ts:21](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/_app-hotkeys-factory.ts#L21) + +Creates the store for app hotkeys from `defineAppHotkeys`. + +## Type Parameters + +### T + +`T` *extends* `Readonly`\<`Record`\<`string`, `AppHotkey`\<`string`, `HotkeyChord` \| `HotkeySequence` \| `null`\>\>\> + +## Parameters + +### appHotkeys + +`T` + +### options + +`AppHotkeysStoreOptions`\<`T`\> + +## Returns + +`AppHotkeysStore`\<`T`\> diff --git a/docs/reference/adapter/functions/createHotkeyBindings.md b/docs/reference/adapter/functions/createHotkeyBindings.md index 61752586..2c714f03 100644 --- a/docs/reference/adapter/functions/createHotkeyBindings.md +++ b/docs/reference/adapter/functions/createHotkeyBindings.md @@ -7,7 +7,7 @@ title: createHotkeyBindings function createHotkeyBindings(): object; ``` -Defined in: [adapter.ts:51](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L51) +Defined in: [adapter.ts:55](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L55) Reconciles adapter registrations while retaining handles for option updates. diff --git a/docs/reference/adapter/functions/createStore.md b/docs/reference/adapter/functions/createStore.md new file mode 100644 index 00000000..e643360c --- /dev/null +++ b/docs/reference/adapter/functions/createStore.md @@ -0,0 +1,29 @@ +--- +id: createStore +title: createStore +--- + +```ts +function createStore(initialState): Store; +``` + +Defined in: [\_store.ts:33](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/_store.ts#L33) + +Creates a store. Listeners run synchronously after each change, and an +update to an equal value (by `Object.is`) notifies no one. + +## Type Parameters + +### T + +`T` + +## Parameters + +### initialState + +`T` + +## Returns + +[`Store`](../type-aliases/Store.md)\<`T`\> diff --git a/docs/reference/adapter/functions/getHotkeysProviderScopeKey.md b/docs/reference/adapter/functions/getHotkeysProviderScopeKey.md index 29081b9c..59d6103e 100644 --- a/docs/reference/adapter/functions/getHotkeysProviderScopeKey.md +++ b/docs/reference/adapter/functions/getHotkeysProviderScopeKey.md @@ -7,7 +7,7 @@ title: getHotkeysProviderScopeKey function getHotkeysProviderScopeKey(options): string | null; ``` -Defined in: [adapter.ts:368](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L368) +Defined in: [adapter.ts:372](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L372) A key for a provider's scope activation, or `null` when the scope should not be active. Equal keys mean the same activation, so adapters reactivate only diff --git a/docs/reference/adapter/functions/mergeHotkeysProviderDefaults.md b/docs/reference/adapter/functions/mergeHotkeysProviderDefaults.md index 468cb9bb..353c9936 100644 --- a/docs/reference/adapter/functions/mergeHotkeysProviderDefaults.md +++ b/docs/reference/adapter/functions/mergeHotkeysProviderDefaults.md @@ -10,7 +10,7 @@ function mergeHotkeysProviderDefaults( scope): T; ``` -Defined in: [adapter.ts:354](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L354) +Defined in: [adapter.ts:358](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L358) Merges a provider's default options over its parent's. A provider with a `scope` sets `hotkey.scope`, so hotkeys registered inside it use that scope. diff --git a/docs/reference/adapter/functions/prepareHotkeyDefinitions.md b/docs/reference/adapter/functions/prepareHotkeyDefinitions.md index b1913cc9..260eab94 100644 --- a/docs/reference/adapter/functions/prepareHotkeyDefinitions.md +++ b/docs/reference/adapter/functions/prepareHotkeyDefinitions.md @@ -7,7 +7,7 @@ title: prepareHotkeyDefinitions function prepareHotkeyDefinitions(definitions, options?): HotkeyDefinition[]; ``` -Defined in: [adapter.ts:271](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L271) +Defined in: [adapter.ts:275](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L275) Converts adapter definitions into `createHotkeyBindings` definitions. Options merge in this order: defaults, app hotkey declaration, common diff --git a/docs/reference/adapter/functions/subscribePublishedAppHotkeys.md b/docs/reference/adapter/functions/subscribePublishedAppHotkeys.md index ed6a3669..8fe814db 100644 --- a/docs/reference/adapter/functions/subscribePublishedAppHotkeys.md +++ b/docs/reference/adapter/functions/subscribePublishedAppHotkeys.md @@ -7,7 +7,7 @@ title: subscribePublishedAppHotkeys function subscribePublishedAppHotkeys(onChange): () => void; ``` -Defined in: [adapter.ts:310](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L310) +Defined in: [adapter.ts:314](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L314) Calls `onChange` when the store published with `publishAppHotkeysStore` or `provideAppHotkeys` changes, or when its app hotkeys or custom hotkeys diff --git a/docs/reference/adapter/index.md b/docs/reference/adapter/index.md index 4fcfac09..1e1d3eb7 100644 --- a/docs/reference/adapter/index.md +++ b/docs/reference/adapter/index.md @@ -19,12 +19,15 @@ title: "@tanstack/hotkeys" - [AdapterSequenceOptions](type-aliases/AdapterSequenceOptions.md) - [HotkeyBindingsCommonOptions](type-aliases/HotkeyBindingsCommonOptions.md) - [HotkeyDefinition](type-aliases/HotkeyDefinition.md) +- [Store](type-aliases/Store.md) - [WithTarget](type-aliases/WithTarget.md) ## Functions - [activateHotkeysProviderScope](functions/activateHotkeysProviderScope.md) +- [createAppHotkeysStore](functions/createAppHotkeysStore.md) - [createHotkeyBindings](functions/createHotkeyBindings.md) +- [createStore](functions/createStore.md) - [getHotkeysProviderScopeKey](functions/getHotkeysProviderScopeKey.md) - [mergeHotkeysProviderDefaults](functions/mergeHotkeysProviderDefaults.md) - [prepareHotkeyDefinitions](functions/prepareHotkeyDefinitions.md) diff --git a/docs/reference/adapter/interfaces/HotkeysProviderScopeProps.md b/docs/reference/adapter/interfaces/HotkeysProviderScopeProps.md index a8260bfd..66189c97 100644 --- a/docs/reference/adapter/interfaces/HotkeysProviderScopeProps.md +++ b/docs/reference/adapter/interfaces/HotkeysProviderScopeProps.md @@ -3,7 +3,7 @@ id: HotkeysProviderScopeProps title: HotkeysProviderScopeProps --- -Defined in: [adapter.ts:329](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L329) +Defined in: [adapter.ts:333](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L333) Scope props shared by framework providers. @@ -15,7 +15,7 @@ Scope props shared by framework providers. optional enabled?: boolean; ``` -Defined in: [adapter.ts:347](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L347) +Defined in: [adapter.ts:351](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L351) Set false to deactivate this provider's scope, and the scopes of providers nested in it, without unmounting. Defaults to true. @@ -32,7 +32,7 @@ optional exclusive?: }; ``` -Defined in: [adapter.ts:342](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L342) +Defined in: [adapter.ts:346](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L346) While mounted and enabled, suspend hotkeys in every other scope, including `'global'`, except scopes of nested providers. Pass @@ -47,7 +47,7 @@ with `scope`, for dialogs and other overlays. optional scope?: string; ``` -Defined in: [adapter.ts:335](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L335) +Defined in: [adapter.ts:339](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L339) Scope for hotkeys registered inside this provider, active while it is mounted and enabled. Defaults to the parent provider's scope, or diff --git a/docs/reference/adapter/interfaces/PrepareHotkeyDefinitionsOptions.md b/docs/reference/adapter/interfaces/PrepareHotkeyDefinitionsOptions.md index 47490175..4e4bfb86 100644 --- a/docs/reference/adapter/interfaces/PrepareHotkeyDefinitionsOptions.md +++ b/docs/reference/adapter/interfaces/PrepareHotkeyDefinitionsOptions.md @@ -3,7 +3,7 @@ id: PrepareHotkeyDefinitionsOptions title: PrepareHotkeyDefinitionsOptions --- -Defined in: [adapter.ts:249](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L249) +Defined in: [adapter.ts:253](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L253) Context for `prepareHotkeyDefinitions`. @@ -23,7 +23,7 @@ optional appHotkeysStore?: | null; ``` -Defined in: [adapter.ts:251](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L251) +Defined in: [adapter.ts:255](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L255) The provider's app hotkeys store, so app hotkeys use custom hotkeys. @@ -35,7 +35,7 @@ The provider's app hotkeys store, so app hotkeys use custom hotkeys. optional commonOptions?: AdapterCommonOptions; ``` -Defined in: [adapter.ts:255](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L255) +Defined in: [adapter.ts:259](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L259) Options for every definition, applied after app hotkey declarations. @@ -47,7 +47,7 @@ Options for every definition, applied after app hotkey declarations. optional defaults?: AdapterCommonOptions; ``` -Defined in: [adapter.ts:253](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L253) +Defined in: [adapter.ts:257](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L257) Provider defaults, applied first. @@ -59,7 +59,7 @@ Provider defaults, applied first. optional resolveTarget?: (target) => Target | null | undefined; ``` -Defined in: [adapter.ts:261](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L261) +Defined in: [adapter.ts:265](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L265) Resolves a framework target, such as a ref. Return `undefined` for the document or `null` to skip registration until the target exists. diff --git a/docs/reference/adapter/type-aliases/AdapterAppHotkeyOptions.md b/docs/reference/adapter/type-aliases/AdapterAppHotkeyOptions.md index a5ed4005..0841b37f 100644 --- a/docs/reference/adapter/type-aliases/AdapterAppHotkeyOptions.md +++ b/docs/reference/adapter/type-aliases/AdapterAppHotkeyOptions.md @@ -7,7 +7,7 @@ title: AdapterAppHotkeyOptions type AdapterAppHotkeyOptions = Omit<[T["defaultHotkey"]] extends [HotkeySequence] ? AdapterSequenceOptions : [T["defaultHotkey"]] extends [HotkeyChord] ? AdapterChordOptions : AdapterCommonOptions, "meta">; ``` -Defined in: [adapter.ts:200](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L200) +Defined in: [adapter.ts:204](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L204) Call-site options for an app hotkey. `meta` comes from the declaration. Kind-specific options follow the declared default: `requireReset` for a diff --git a/docs/reference/adapter/type-aliases/AdapterChordOptions.md b/docs/reference/adapter/type-aliases/AdapterChordOptions.md index 4f79fd3b..1dfc575e 100644 --- a/docs/reference/adapter/type-aliases/AdapterChordOptions.md +++ b/docs/reference/adapter/type-aliases/AdapterChordOptions.md @@ -7,7 +7,7 @@ title: AdapterChordOptions type AdapterChordOptions = WithTarget; ``` -Defined in: [adapter.ts:167](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L167) +Defined in: [adapter.ts:171](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L171) Options for a chord such as `'Mod+S'`, with a framework target. diff --git a/docs/reference/adapter/type-aliases/AdapterCommonOptions.md b/docs/reference/adapter/type-aliases/AdapterCommonOptions.md index c5c649ca..f8d2a679 100644 --- a/docs/reference/adapter/type-aliases/AdapterCommonOptions.md +++ b/docs/reference/adapter/type-aliases/AdapterCommonOptions.md @@ -7,7 +7,7 @@ title: AdapterCommonOptions type AdapterCommonOptions = AdapterChordOptions & AdapterSequenceOptions; ``` -Defined in: [adapter.ts:179](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L179) +Defined in: [adapter.ts:183](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L183) Options applied to every hotkey, such as defaults. Each applies to the kinds that support it. diff --git a/docs/reference/adapter/type-aliases/AdapterHotkeyDefinition.md b/docs/reference/adapter/type-aliases/AdapterHotkeyDefinition.md index 3dc9135e..c4bc0082 100644 --- a/docs/reference/adapter/type-aliases/AdapterHotkeyDefinition.md +++ b/docs/reference/adapter/type-aliases/AdapterHotkeyDefinition.md @@ -27,7 +27,7 @@ type AdapterHotkeyDefinition = }; ``` -Defined in: [adapter.ts:214](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L214) +Defined in: [adapter.ts:218](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L218) One hotkey and its callback for adapter APIs such as `useHotkeys`. Chords accept `requireReset`; sequences accept `timeout`; hotkeys of unknown kind diff --git a/docs/reference/adapter/type-aliases/AdapterHotkeyOptions.md b/docs/reference/adapter/type-aliases/AdapterHotkeyOptions.md index 47c1b872..d13ce788 100644 --- a/docs/reference/adapter/type-aliases/AdapterHotkeyOptions.md +++ b/docs/reference/adapter/type-aliases/AdapterHotkeyOptions.md @@ -7,7 +7,7 @@ title: AdapterHotkeyOptions type AdapterHotkeyOptions = WithTarget; ``` -Defined in: [adapter.ts:164](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L164) +Defined in: [adapter.ts:168](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L168) Options shared by chords and sequences, with a framework target. diff --git a/docs/reference/adapter/type-aliases/AdapterOptionsFor.md b/docs/reference/adapter/type-aliases/AdapterOptionsFor.md index 7252cc56..55a0371c 100644 --- a/docs/reference/adapter/type-aliases/AdapterOptionsFor.md +++ b/docs/reference/adapter/type-aliases/AdapterOptionsFor.md @@ -7,7 +7,7 @@ title: AdapterOptionsFor type AdapterOptionsFor = [T] extends [never] ? AdapterCommonOptions : T extends readonly [unknown] ? AdapterChordOptions : T extends ReadonlyArray ? AdapterSequenceOptions : AdapterChordOptions; ``` -Defined in: [adapter.ts:183](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L183) +Defined in: [adapter.ts:187](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L187) Chord options for chords, sequence options for sequences. diff --git a/docs/reference/adapter/type-aliases/AdapterSequenceOptions.md b/docs/reference/adapter/type-aliases/AdapterSequenceOptions.md index 1ecfa40a..bd15b73c 100644 --- a/docs/reference/adapter/type-aliases/AdapterSequenceOptions.md +++ b/docs/reference/adapter/type-aliases/AdapterSequenceOptions.md @@ -7,7 +7,7 @@ title: AdapterSequenceOptions type AdapterSequenceOptions = WithTarget; ``` -Defined in: [adapter.ts:173](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L173) +Defined in: [adapter.ts:177](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L177) Options for a sequence such as `['G', 'G']`, with a framework target. diff --git a/docs/reference/adapter/type-aliases/HotkeyBindingsCommonOptions.md b/docs/reference/adapter/type-aliases/HotkeyBindingsCommonOptions.md index 60a22561..a71859c6 100644 --- a/docs/reference/adapter/type-aliases/HotkeyBindingsCommonOptions.md +++ b/docs/reference/adapter/type-aliases/HotkeyBindingsCommonOptions.md @@ -7,6 +7,6 @@ title: HotkeyBindingsCommonOptions type HotkeyBindingsCommonOptions = HotkeyChordOptions & HotkeySequenceOptions; ``` -Defined in: [adapter.ts:45](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L45) +Defined in: [adapter.ts:49](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L49) Options shared by every definition. Each option applies only to the kinds that support it. diff --git a/docs/reference/adapter/type-aliases/HotkeyDefinition.md b/docs/reference/adapter/type-aliases/HotkeyDefinition.md index 934768b8..35178f70 100644 --- a/docs/reference/adapter/type-aliases/HotkeyDefinition.md +++ b/docs/reference/adapter/type-aliases/HotkeyDefinition.md @@ -17,7 +17,7 @@ type HotkeyDefinition = }; ``` -Defined in: [adapter.ts:32](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L32) +Defined in: [adapter.ts:36](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L36) A hotkey and its callback, with optional per-binding options. Chords accept `requireReset`; sequences accept `timeout`. diff --git a/docs/reference/adapter/type-aliases/Store.md b/docs/reference/adapter/type-aliases/Store.md new file mode 100644 index 00000000..f7d2ef13 --- /dev/null +++ b/docs/reference/adapter/type-aliases/Store.md @@ -0,0 +1,20 @@ +--- +id: Store +title: Store +--- + +```ts +type Store = Pick, "state" | "get" | "setState" | "subscribe">; +``` + +Defined in: [\_store.ts:8](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/_store.ts#L8) + +The part of TanStack Store's `Store` that TanStack Hotkeys uses. Its stores +work with TanStack Store's framework adapters, such as `useSelector` from +`@tanstack/react-store`. + +## Type Parameters + +### T + +`T` diff --git a/docs/reference/adapter/type-aliases/WithTarget.md b/docs/reference/adapter/type-aliases/WithTarget.md index 0dea4a68..419aa913 100644 --- a/docs/reference/adapter/type-aliases/WithTarget.md +++ b/docs/reference/adapter/type-aliases/WithTarget.md @@ -7,7 +7,7 @@ title: WithTarget type WithTarget = Omit & object; ``` -Defined in: [adapter.ts:155](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L155) +Defined in: [adapter.ts:159](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/adapter.ts#L159) Options with a framework-specific target, such as a ref. diff --git a/docs/reference/classes/AppHotkeysStore.md b/docs/reference/classes/AppHotkeysStore.md index 775d5cd6..2603aecd 100644 --- a/docs/reference/classes/AppHotkeysStore.md +++ b/docs/reference/classes/AppHotkeysStore.md @@ -3,7 +3,7 @@ id: AppHotkeysStore title: AppHotkeysStore --- -Defined in: [app-hotkeys.ts:353](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L353) +Defined in: [app-hotkeys.ts:363](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L363) Holds declared app hotkeys and the user's custom hotkeys. Framework providers create one and expose it through hooks; devtools read it from @@ -34,7 +34,7 @@ store.setCustomHotkey('doc.save', 'Mod+Shift+S') new AppHotkeysStore(appHotkeys, options?): AppHotkeysStore; ``` -Defined in: [app-hotkeys.ts:358](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L358) +Defined in: [app-hotkeys.ts:368](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L368) #### Parameters @@ -58,7 +58,7 @@ Defined in: [app-hotkeys.ts:358](https://github.com/TanStack/hotkeys/blob/main/p readonly store: Store>; ``` -Defined in: [app-hotkeys.ts:354](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L354) +Defined in: [app-hotkeys.ts:364](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L364) ## Accessors @@ -70,7 +70,7 @@ Defined in: [app-hotkeys.ts:354](https://github.com/TanStack/hotkeys/blob/main/p get appHotkeys(): T; ``` -Defined in: [app-hotkeys.ts:376](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L376) +Defined in: [app-hotkeys.ts:386](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L386) Effective app hotkeys. @@ -88,7 +88,7 @@ Effective app hotkeys. get customHotkeys(): CustomHotkeys; ``` -Defined in: [app-hotkeys.ts:381](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L381) +Defined in: [app-hotkeys.ts:391](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L391) The user's hotkeys that differ from the defaults. @@ -107,7 +107,7 @@ findConflicts(id, hotkey): AppHotkey[]; ``` -Defined in: [app-hotkeys.ts:417](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L417) +Defined in: [app-hotkeys.ts:428](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L428) Other app hotkeys that would collide if `id` used `hotkey`. App hotkeys collide when their scopes match or either is `'global'`, and their @@ -143,7 +143,7 @@ get(id): | undefined; ``` -Defined in: [app-hotkeys.ts:408](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L408) +Defined in: [app-hotkeys.ts:418](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L418) Effective app hotkey for an id, or `undefined` when it is not declared. @@ -169,7 +169,7 @@ Effective app hotkey for an id, or `undefined` when it is not declared. getList(registrations): AppHotkeyListItem[]; ``` -Defined in: [app-hotkeys.ts:484](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L484) +Defined in: [app-hotkeys.ts:499](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L499) Joins app hotkeys with live registrations, in declaration order. Adapters call this with the manager's registration views. @@ -192,7 +192,7 @@ Adapters call this with the manager's registration views. resetCustomHotkey(id): void; ``` -Defined in: [app-hotkeys.ts:461](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L461) +Defined in: [app-hotkeys.ts:476](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L476) Restores the default hotkey for an app hotkey. @@ -214,7 +214,7 @@ keyof `T` & `string` resetCustomHotkeys(): void; ``` -Defined in: [app-hotkeys.ts:468](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L468) +Defined in: [app-hotkeys.ts:483](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L483) Restores every default hotkey. @@ -230,7 +230,7 @@ Restores every default hotkey. setAppHotkeys(appHotkeys): void; ``` -Defined in: [app-hotkeys.ts:394](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L394) +Defined in: [app-hotkeys.ts:404](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L404) Replaces the declarations, for example after hot module replacement. Custom hotkeys for ids that still exist are kept. @@ -256,7 +256,7 @@ setCustomHotkey(id, hotkey): AppHotkey[]; ``` -Defined in: [app-hotkeys.ts:436](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L436) +Defined in: [app-hotkeys.ts:447](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L447) Sets the user's hotkey for an app hotkey. `null` unbinds it. A hotkey equal to the default removes the customization. @@ -288,7 +288,7 @@ Conflicting app hotkeys. When any exist, nothing changes. setOptions(options): void; ``` -Defined in: [app-hotkeys.ts:386](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L386) +Defined in: [app-hotkeys.ts:396](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L396) Updates callbacks and other options without resetting custom hotkeys. diff --git a/docs/reference/classes/HotkeyManager.md b/docs/reference/classes/HotkeyManager.md index 07984383..8cb76fed 100644 --- a/docs/reference/classes/HotkeyManager.md +++ b/docs/reference/classes/HotkeyManager.md @@ -3,7 +3,7 @@ id: HotkeyManager title: HotkeyManager --- -Defined in: [hotkey-manager.ts:449](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L449) +Defined in: [hotkey-manager.ts:454](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L454) Singleton manager for hotkey registrations, including sequences. @@ -36,15 +36,10 @@ top.unregister() ### appHotkeys ```ts -readonly appHotkeys: Store< - | AppHotkeysStore>>> -| null>; +readonly appHotkeys: Store; ``` -Defined in: [hotkey-manager.ts:476](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L476) +Defined in: [hotkey-manager.ts:481](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L481) The app hotkeys store published by a framework provider, so tools such as devtools can list declared hotkeys that are not registered. @@ -57,7 +52,7 @@ devtools can list declared hotkeys that are not registered. readonly registrations: Store>; ``` -Defined in: [hotkey-manager.ts:469](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L469) +Defined in: [hotkey-manager.ts:474](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L474) The TanStack Store containing all hotkey registrations, chords and sequences. Use this to subscribe to registration changes or access current registrations. @@ -86,7 +81,7 @@ for (const [id, reg] of manager.registrations.state) { readonly scopes: Store; ``` -Defined in: [hotkey-manager.ts:479](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L479) +Defined in: [hotkey-manager.ts:484](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L484) Active scopes. Subscribe to show which hotkeys are suspended. @@ -98,7 +93,7 @@ Active scopes. Subscribe to show which hotkeys are suspended. activateScope(scope, options?): () => void; ``` -Defined in: [hotkey-manager.ts:541](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L541) +Defined in: [hotkey-manager.ts:546](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L546) Activates a scope until the returned function is called. Activations are counted, so a scope stays active until every activation is released. @@ -142,7 +137,7 @@ manager.activateScope('dialog', { exclusive: { allow: ['global'] } }) destroy(): void; ``` -Defined in: [hotkey-manager.ts:1518](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1518) +Defined in: [hotkey-manager.ts:1500](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1500) Destroys the manager and removes all listeners. @@ -158,7 +153,7 @@ Destroys the manager and removes all listeners. getRegistrationCount(): number; ``` -Defined in: [hotkey-manager.ts:1454](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1454) +Defined in: [hotkey-manager.ts:1436](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1436) Gets the number of registered hotkeys, chords and sequences. @@ -174,7 +169,7 @@ Gets the number of registered hotkeys, chords and sequences. hasActiveRegistration(hotkey): boolean; ``` -Defined in: [hotkey-manager.ts:1491](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1491) +Defined in: [hotkey-manager.ts:1473](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1473) Checks whether a hotkey can fire now: at least one registration is enabled, in an active scope, and listening where key presses go. A @@ -205,7 +200,7 @@ True if a registration that can fire exists isRegistered(hotkey, target?): boolean; ``` -Defined in: [hotkey-manager.ts:1465](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1465) +Defined in: [hotkey-manager.ts:1447](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1447) Checks if a specific hotkey is registered. @@ -237,7 +232,7 @@ True if a matching registration exists isScopeActive(scope?): boolean; ``` -Defined in: [hotkey-manager.ts:576](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L576) +Defined in: [hotkey-manager.ts:582](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L582) Whether hotkeys in a scope can fire: the scope is `'global'` or activated, and either no scope is exclusive or this scope is the @@ -264,7 +259,7 @@ register( options?): HotkeyRegistrationHandle>; ``` -Defined in: [hotkey-manager.ts:751](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L751) +Defined in: [hotkey-manager.ts:757](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L757) Registers a hotkey handler and returns a handle for updating the registration. @@ -330,7 +325,7 @@ handle.unregister() resetSequenceProgress(): void; ``` -Defined in: [hotkey-manager.ts:1401](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1401) +Defined in: [hotkey-manager.ts:1421](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1421) Resets the progress of every in-progress sequence. @@ -340,41 +335,13 @@ Resets the progress of every in-progress sequence. *** -### triggerRegistration() - -```ts -triggerRegistration(id): boolean; -``` - -Defined in: [hotkey-manager.ts:1421](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1421) - -Triggers a registration's callback programmatically from devtools. -Creates a synthetic KeyboardEvent from the chord (or a sequence's last step) -and invokes the callback. - -#### Parameters - -##### id - -`string` - -The registration ID to trigger - -#### Returns - -`boolean` - -True if the registration was found and triggered - -*** - ### getInstance() ```ts static getInstance(): HotkeyManager; ``` -Defined in: [hotkey-manager.ts:509](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L509) +Defined in: [hotkey-manager.ts:514](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L514) Gets the singleton instance of HotkeyManager. @@ -390,7 +357,7 @@ Gets the singleton instance of HotkeyManager. static resetInstance(): void; ``` -Defined in: [hotkey-manager.ts:516](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L516) +Defined in: [hotkey-manager.ts:521](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L521) Resets the singleton instance. Useful for testing. diff --git a/docs/reference/classes/HotkeyRecorder.md b/docs/reference/classes/HotkeyRecorder.md index 41b7efd1..6ce392f2 100644 --- a/docs/reference/classes/HotkeyRecorder.md +++ b/docs/reference/classes/HotkeyRecorder.md @@ -47,7 +47,7 @@ recorder.destroy() new HotkeyRecorder(options): HotkeyRecorder; ``` -Defined in: [hotkey-recorder.ts:217](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L217) +Defined in: [hotkey-recorder.ts:216](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L216) #### Parameters @@ -66,7 +66,7 @@ Defined in: [hotkey-recorder.ts:217](https://github.com/TanStack/hotkeys/blob/ma new HotkeyRecorder(options): HotkeyRecorder; ``` -Defined in: [hotkey-recorder.ts:220](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L220) +Defined in: [hotkey-recorder.ts:219](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L219) #### Parameters @@ -153,7 +153,7 @@ all event listeners are properly removed. setOptions(options): void; ``` -Defined in: [hotkey-recorder.ts:233](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L233) +Defined in: [hotkey-recorder.ts:232](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L232) Updates the recorder options, including callbacks. This allows framework adapters to sync callback changes without recreating the recorder. @@ -176,7 +176,7 @@ This allows framework adapters to sync callback changes without recreating the r start(): void; ``` -Defined in: [hotkey-recorder.ts:267](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L267) +Defined in: [hotkey-recorder.ts:266](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-recorder.ts#L266) Start recording a new hotkey. diff --git a/docs/reference/classes/KeyStateTracker.md b/docs/reference/classes/KeyStateTracker.md index 597778da..6a013f50 100644 --- a/docs/reference/classes/KeyStateTracker.md +++ b/docs/reference/classes/KeyStateTracker.md @@ -3,7 +3,7 @@ id: KeyStateTracker title: KeyStateTracker --- -Defined in: [key-state-tracker.ts:63](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L63) +Defined in: [key-state-tracker.ts:64](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L64) Singleton tracker for currently held keyboard keys. @@ -47,7 +47,7 @@ unsubscribe() readonly store: Store; ``` -Defined in: [key-state-tracker.ts:70](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L70) +Defined in: [key-state-tracker.ts:71](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L71) The TanStack Store instance containing the tracker state. Use this to subscribe to state changes or access current state. @@ -60,7 +60,7 @@ Use this to subscribe to state changes or access current state. areAllKeysHeld(keys): boolean; ``` -Defined in: [key-state-tracker.ts:268](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L268) +Defined in: [key-state-tracker.ts:269](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L269) Checks if all of the given keys are currently held. @@ -86,7 +86,7 @@ True if all of the keys are currently held destroy(): void; ``` -Defined in: [key-state-tracker.ts:275](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L275) +Defined in: [key-state-tracker.ts:276](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L276) Destroys the tracker and removes all listeners. @@ -102,7 +102,7 @@ Destroys the tracker and removes all listeners. getHeldKeys(): string[]; ``` -Defined in: [key-state-tracker.ts:235](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L235) +Defined in: [key-state-tracker.ts:236](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L236) Gets an array of currently held key names. @@ -120,7 +120,7 @@ Array of key names currently being pressed isAnyKeyHeld(keys): boolean; ``` -Defined in: [key-state-tracker.ts:258](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L258) +Defined in: [key-state-tracker.ts:259](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L259) Checks if any of the given keys are currently held. @@ -146,7 +146,7 @@ True if any of the keys are currently held isKeyHeld(key): boolean; ``` -Defined in: [key-state-tracker.ts:245](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L245) +Defined in: [key-state-tracker.ts:246](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L246) Checks if a specific key is currently being held. @@ -172,7 +172,7 @@ True if the key is currently held static getInstance(): KeyStateTracker; ``` -Defined in: [key-state-tracker.ts:85](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L85) +Defined in: [key-state-tracker.ts:86](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L86) Gets the singleton instance of KeyStateTracker. @@ -188,7 +188,7 @@ Gets the singleton instance of KeyStateTracker. static resetInstance(): void; ``` -Defined in: [key-state-tracker.ts:95](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L95) +Defined in: [key-state-tracker.ts:96](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L96) Resets the singleton instance. Useful for testing. diff --git a/docs/reference/functions/assertValidHotkey.md b/docs/reference/functions/assertValidHotkey.md index 2ba5ac89..6cb45e5b 100644 --- a/docs/reference/functions/assertValidHotkey.md +++ b/docs/reference/functions/assertValidHotkey.md @@ -7,7 +7,7 @@ title: assertValidHotkey function assertValidHotkey(hotkey): void; ``` -Defined in: [validate.ts:141](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L141) +Defined in: [validate.ts:132](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L132) Validates a hotkey and throws an error if invalid. Useful for development-time validation. diff --git a/docs/reference/functions/checkHotkey.md b/docs/reference/functions/checkHotkey.md index e5a12c81..2cd5aab8 100644 --- a/docs/reference/functions/checkHotkey.md +++ b/docs/reference/functions/checkHotkey.md @@ -7,10 +7,10 @@ title: checkHotkey function checkHotkey(hotkey): boolean; ``` -Defined in: [validate.ts:164](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L164) +Defined in: [validate.ts:155](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L155) -Validates a hotkey and logs warnings to the console. -Useful for development-time feedback. +Validates a hotkey and logs errors and warnings to the console. +Useful for development-time feedback. Logs nothing in production builds. ## Parameters diff --git a/docs/reference/functions/defineAppHotkeys.md b/docs/reference/functions/defineAppHotkeys.md index 8de5d302..2b046856 100644 --- a/docs/reference/functions/defineAppHotkeys.md +++ b/docs/reference/functions/defineAppHotkeys.md @@ -7,7 +7,7 @@ title: defineAppHotkeys function defineAppHotkeys(definitions): DefinedAppHotkeys; ``` -Defined in: [app-hotkeys.ts:179](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L179) +Defined in: [app-hotkeys.ts:181](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L181) Declares every app hotkey up front, without registering any, so cheat sheets and settings screens can list hotkeys whose components have not diff --git a/docs/reference/functions/formatForDisplay.md b/docs/reference/functions/formatForDisplay.md index 13d7edab..5ea1c427 100644 --- a/docs/reference/functions/formatForDisplay.md +++ b/docs/reference/functions/formatForDisplay.md @@ -9,7 +9,7 @@ title: formatForDisplay function formatForDisplay(hotkey, options): string[][]; ``` -Defined in: [format.ts:109](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L109) +Defined in: [format.ts:121](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L121) Formats a hotkey for display in a user interface. @@ -24,13 +24,16 @@ or change matching. Supply a resolved `layoutMap` for layout-aware labels; Sequence steps are formatted individually and joined with `sequenceSeparator` (a space by default). +A key reported by a `KeyboardEvent`, such as a held key from +`KeyStateTracker`, can be outside the key types: pass it as `{ key }`. + ### Parameters #### hotkey readonly [`DisplayHotkeyChord`](../type-aliases/DisplayHotkeyChord.md)[] -A logical or physical string, raw object, ParsedHotkeyChord, or sequence +A logical or physical hotkey string, raw object, ParsedHotkeyChord, or sequence #### options @@ -56,6 +59,12 @@ formatForDisplay('Mod+Shift+S', { platform: 'windows' }) formatForDisplay('Escape') // Returns: 'Esc' (on all platforms) +formatForDisplay('Shift', { platform: 'mac' }) +// Returns: '⇧' + +formatForDisplay({ key: heldKey }) +// A key from a KeyboardEvent, such as a held key + formatForDisplay(['G', 'H']) // Returns: 'G H' ``` @@ -66,7 +75,7 @@ formatForDisplay(['G', 'H']) function formatForDisplay(hotkey, options): string[]; ``` -Defined in: [format.ts:113](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L113) +Defined in: [format.ts:125](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L125) Formats a hotkey for display in a user interface. @@ -81,13 +90,16 @@ or change matching. Supply a resolved `layoutMap` for layout-aware labels; Sequence steps are formatted individually and joined with `sequenceSeparator` (a space by default). +A key reported by a `KeyboardEvent`, such as a held key from +`KeyStateTracker`, can be outside the key types: pass it as `{ key }`. + ### Parameters #### hotkey [`DisplayHotkeyChord`](../type-aliases/DisplayHotkeyChord.md) -A logical or physical string, raw object, ParsedHotkeyChord, or sequence +A logical or physical hotkey string, raw object, ParsedHotkeyChord, or sequence #### options @@ -113,6 +125,12 @@ formatForDisplay('Mod+Shift+S', { platform: 'windows' }) formatForDisplay('Escape') // Returns: 'Esc' (on all platforms) +formatForDisplay('Shift', { platform: 'mac' }) +// Returns: '⇧' + +formatForDisplay({ key: heldKey }) +// A key from a KeyboardEvent, such as a held key + formatForDisplay(['G', 'H']) // Returns: 'G H' ``` @@ -123,7 +141,7 @@ formatForDisplay(['G', 'H']) function formatForDisplay(hotkey, options?): string; ``` -Defined in: [format.ts:117](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L117) +Defined in: [format.ts:129](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L129) Formats a hotkey for display in a user interface. @@ -138,13 +156,16 @@ or change matching. Supply a resolved `layoutMap` for layout-aware labels; Sequence steps are formatted individually and joined with `sequenceSeparator` (a space by default). +A key reported by a `KeyboardEvent`, such as a held key from +`KeyStateTracker`, can be outside the key types: pass it as `{ key }`. + ### Parameters #### hotkey [`DisplayHotkey`](../type-aliases/DisplayHotkey.md) -A logical or physical string, raw object, ParsedHotkeyChord, or sequence +A logical or physical hotkey string, raw object, ParsedHotkeyChord, or sequence #### options? @@ -170,6 +191,12 @@ formatForDisplay('Mod+Shift+S', { platform: 'windows' }) formatForDisplay('Escape') // Returns: 'Esc' (on all platforms) +formatForDisplay('Shift', { platform: 'mac' }) +// Returns: '⇧' + +formatForDisplay({ key: heldKey }) +// A key from a KeyboardEvent, such as a held key + formatForDisplay(['G', 'H']) // Returns: 'G H' ``` @@ -180,7 +207,7 @@ formatForDisplay(['G', 'H']) function formatForDisplay(hotkey, options): string | string[] | string[][]; ``` -Defined in: [format.ts:121](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L121) +Defined in: [format.ts:133](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L133) Formats a hotkey for display in a user interface. @@ -195,13 +222,16 @@ or change matching. Supply a resolved `layoutMap` for layout-aware labels; Sequence steps are formatted individually and joined with `sequenceSeparator` (a space by default). +A key reported by a `KeyboardEvent`, such as a held key from +`KeyStateTracker`, can be outside the key types: pass it as `{ key }`. + ### Parameters #### hotkey [`DisplayHotkey`](../type-aliases/DisplayHotkey.md) -A logical or physical string, raw object, ParsedHotkeyChord, or sequence +A logical or physical hotkey string, raw object, ParsedHotkeyChord, or sequence #### options @@ -227,6 +257,12 @@ formatForDisplay('Mod+Shift+S', { platform: 'windows' }) formatForDisplay('Escape') // Returns: 'Esc' (on all platforms) +formatForDisplay('Shift', { platform: 'mac' }) +// Returns: '⇧' + +formatForDisplay({ key: heldKey }) +// A key from a KeyboardEvent, such as a held key + formatForDisplay(['G', 'H']) // Returns: 'G H' ``` diff --git a/docs/reference/functions/getAppHotkeyRegistrationOptions.md b/docs/reference/functions/getAppHotkeyRegistrationOptions.md index 9d222709..600c46d8 100644 --- a/docs/reference/functions/getAppHotkeyRegistrationOptions.md +++ b/docs/reference/functions/getAppHotkeyRegistrationOptions.md @@ -7,7 +7,7 @@ title: getAppHotkeyRegistrationOptions function getAppHotkeyRegistrationOptions(appHotkey): AppHotkeyChordOptions & AppHotkeySequenceOptions & object; ``` -Defined in: [app-hotkeys.ts:536](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L536) +Defined in: [app-hotkeys.ts:551](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L551) Options that adapters pass to the manager when registering an app hotkey: declared options, scope, meta, and the app hotkey id. The manager drops options diff --git a/docs/reference/functions/getHotkeyManager.md b/docs/reference/functions/getHotkeyManager.md index c8a96ff1..a1ef9fdc 100644 --- a/docs/reference/functions/getHotkeyManager.md +++ b/docs/reference/functions/getHotkeyManager.md @@ -7,7 +7,7 @@ title: getHotkeyManager function getHotkeyManager(): HotkeyManager; ``` -Defined in: [hotkey-manager.ts:1531](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1531) +Defined in: [hotkey-manager.ts:1513](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L1513) Gets the singleton HotkeyManager instance. Convenience function for accessing the manager. diff --git a/docs/reference/functions/getKeyStateTracker.md b/docs/reference/functions/getKeyStateTracker.md index 9aeb5b87..c6dea0f4 100644 --- a/docs/reference/functions/getKeyStateTracker.md +++ b/docs/reference/functions/getKeyStateTracker.md @@ -7,7 +7,7 @@ title: getKeyStateTracker function getKeyStateTracker(): KeyStateTracker; ``` -Defined in: [key-state-tracker.ts:286](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L286) +Defined in: [key-state-tracker.ts:287](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L287) Gets the singleton KeyStateTracker instance. Convenience function for accessing the tracker. diff --git a/docs/reference/functions/isAppHotkey.md b/docs/reference/functions/isAppHotkey.md index e00538a8..9e42cd1f 100644 --- a/docs/reference/functions/isAppHotkey.md +++ b/docs/reference/functions/isAppHotkey.md @@ -7,7 +7,7 @@ title: isAppHotkey function isAppHotkey(value): value is AppHotkey; ``` -Defined in: [app-hotkeys.ts:199](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L199) +Defined in: [app-hotkeys.ts:204](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L204) Whether a value is an app hotkey created by `defineAppHotkeys`. diff --git a/docs/reference/functions/isCustomHotkey.md b/docs/reference/functions/isCustomHotkey.md index 03c894f3..d945b801 100644 --- a/docs/reference/functions/isCustomHotkey.md +++ b/docs/reference/functions/isCustomHotkey.md @@ -7,7 +7,7 @@ title: isCustomHotkey function isCustomHotkey(appHotkey, platform?): boolean; ``` -Defined in: [app-hotkeys.ts:217](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L217) +Defined in: [app-hotkeys.ts:222](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L222) Whether an app hotkey's effective hotkey differs from its default. diff --git a/docs/reference/functions/isSingleLetterKey.md b/docs/reference/functions/isSingleLetterKey.md index 2870cfa2..8b99077b 100644 --- a/docs/reference/functions/isSingleLetterKey.md +++ b/docs/reference/functions/isSingleLetterKey.md @@ -7,7 +7,7 @@ title: isSingleLetterKey function isSingleLetterKey(key): boolean; ``` -Defined in: [constants.ts:339](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L339) +Defined in: [constants.ts:229](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L229) Whether a key is a single Unicode letter, such as `'a'` or `'é'`. diff --git a/docs/reference/functions/normalizeKeyName.md b/docs/reference/functions/normalizeKeyName.md index 24f03120..e51563a2 100644 --- a/docs/reference/functions/normalizeKeyName.md +++ b/docs/reference/functions/normalizeKeyName.md @@ -7,9 +7,11 @@ title: normalizeKeyName function normalizeKeyName(key): string; ``` -Defined in: [constants.ts:357](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L357) +Defined in: [constants.ts:248](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L248) -Normalizes a key name to its canonical form. +Normalizes a key name from a `KeyboardEvent` or a hotkey: single letters +become uppercase, and the space character becomes `Space`. Other names are +returned as written, because key names are case-sensitive. ## Parameters @@ -17,7 +19,7 @@ Normalizes a key name to its canonical form. `string` -The key name to normalize (can be an alias, lowercase, etc.) +The key name to normalize ## Returns @@ -28,8 +30,7 @@ The canonical key name ## Example ```ts -normalizeKeyName('esc') // 'Escape' normalizeKeyName('a') // 'A' -normalizeKeyName('f1') // 'F1' +normalizeKeyName(' ') // 'Space' normalizeKeyName('ArrowUp') // 'ArrowUp' (already canonical) ``` diff --git a/docs/reference/functions/provideAppHotkeys.md b/docs/reference/functions/provideAppHotkeys.md index 8639819c..4d94ff4a 100644 --- a/docs/reference/functions/provideAppHotkeys.md +++ b/docs/reference/functions/provideAppHotkeys.md @@ -7,7 +7,7 @@ title: provideAppHotkeys function provideAppHotkeys(appHotkeys, options?): object; ``` -Defined in: [app-hotkeys.ts:583](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L583) +Defined in: [app-hotkeys.ts:598](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L598) Creates an app hotkeys store and publishes it on the HotkeyManager, for adapters without a provider component (such as Lit and Alpine). Hotkey diff --git a/docs/reference/functions/publishAppHotkeysStore.md b/docs/reference/functions/publishAppHotkeysStore.md index 8d0e565e..50a4b5ec 100644 --- a/docs/reference/functions/publishAppHotkeysStore.md +++ b/docs/reference/functions/publishAppHotkeysStore.md @@ -7,7 +7,7 @@ title: publishAppHotkeysStore function publishAppHotkeysStore(store): () => void; ``` -Defined in: [app-hotkeys.ts:557](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L557) +Defined in: [app-hotkeys.ts:572](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L572) Publishes a provider's store on the HotkeyManager so devtools can list declared hotkeys. Returns a cleanup function that unpublishes it if it is diff --git a/docs/reference/functions/resolveAppHotkey.md b/docs/reference/functions/resolveAppHotkey.md index 33152a44..8fc74ad0 100644 --- a/docs/reference/functions/resolveAppHotkey.md +++ b/docs/reference/functions/resolveAppHotkey.md @@ -7,7 +7,7 @@ title: resolveAppHotkey function resolveAppHotkey(appHotkey, store): AppHotkey; ``` -Defined in: [app-hotkeys.ts:524](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L524) +Defined in: [app-hotkeys.ts:539](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L539) Returns the provider's version of an app hotkey, so custom hotkeys apply even when a component imports the declaration directly. Falls back to the diff --git a/docs/reference/functions/toHotkeyRegistrationView.md b/docs/reference/functions/toHotkeyRegistrationView.md index 5a9e33fa..86880ed2 100644 --- a/docs/reference/functions/toHotkeyRegistrationView.md +++ b/docs/reference/functions/toHotkeyRegistrationView.md @@ -7,7 +7,7 @@ title: toHotkeyRegistrationView function toHotkeyRegistrationView(reg): HotkeyRegistrationView; ``` -Defined in: [hotkey-manager.ts:240](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L240) +Defined in: [hotkey-manager.ts:245](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L245) Creates a public view from an internal registration, stripping the callback. diff --git a/docs/reference/interfaces/ActivateHotkeyScopeOptions.md b/docs/reference/interfaces/ActivateHotkeyScopeOptions.md index 818d5145..e46a613d 100644 --- a/docs/reference/interfaces/ActivateHotkeyScopeOptions.md +++ b/docs/reference/interfaces/ActivateHotkeyScopeOptions.md @@ -3,7 +3,7 @@ id: ActivateHotkeyScopeOptions title: ActivateHotkeyScopeOptions --- -Defined in: [hotkey-manager.ts:399](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L399) +Defined in: [hotkey-manager.ts:404](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L404) Options for `HotkeyManager.activateScope`. @@ -19,7 +19,7 @@ optional exclusive?: }; ``` -Defined in: [hotkey-manager.ts:406](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L406) +Defined in: [hotkey-manager.ts:411](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L411) Suspend every other scope, including `'global'`, until this activation is released. Scopes nested in this one stay active. Pass `{ allow }` to keep @@ -34,7 +34,7 @@ still has to be activated, except `'global'`. optional parent?: string; ``` -Defined in: [hotkey-manager.ts:412](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L412) +Defined in: [hotkey-manager.ts:417](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L417) The scope this one is nested in. A nested scope takes precedence over its ancestors even when it was activated first, as nested providers are when diff --git a/docs/reference/interfaces/AppHotkey.md b/docs/reference/interfaces/AppHotkey.md index 9f1e1499..ca14ac18 100644 --- a/docs/reference/interfaces/AppHotkey.md +++ b/docs/reference/interfaces/AppHotkey.md @@ -3,7 +3,7 @@ id: AppHotkey title: AppHotkey --- -Defined in: [app-hotkeys.ts:73](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L73) +Defined in: [app-hotkeys.ts:75](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L75) A declared app hotkey. It never holds a callback: register it with `useHotkey(appHotkey, callback)` or the equivalent adapter API. @@ -35,7 +35,7 @@ A declared app hotkey. It never holds a callback: register it with readonly ~appHotkey: true; ``` -Defined in: [app-hotkeys.ts:79](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L79) +Defined in: [app-hotkeys.ts:81](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L81) Brand that distinguishes app hotkeys from raw hotkey objects. @@ -47,7 +47,7 @@ Brand that distinguishes app hotkeys from raw hotkey objects. readonly defaultHotkey: TDefault; ``` -Defined in: [app-hotkeys.ts:85](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L85) +Defined in: [app-hotkeys.ts:87](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L87) Hotkey declared in `defineAppHotkeys`. @@ -59,7 +59,7 @@ Hotkey declared in `defineAppHotkeys`. readonly hotkey: Hotkey | null; ``` -Defined in: [app-hotkeys.ts:83](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L83) +Defined in: [app-hotkeys.ts:85](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L85) Effective hotkey: the user's custom hotkey, or the default. `null` means unbound. @@ -71,7 +71,7 @@ Effective hotkey: the user's custom hotkey, or the default. `null` means unbound readonly id: TId; ``` -Defined in: [app-hotkeys.ts:81](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L81) +Defined in: [app-hotkeys.ts:83](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L83) Stable id. Saved custom hotkeys are keyed by this value. @@ -83,7 +83,7 @@ Stable id. Saved custom hotkeys are keyed by this value. readonly optional meta?: HotkeyMeta; ``` -Defined in: [app-hotkeys.ts:86](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L86) +Defined in: [app-hotkeys.ts:88](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L88) *** @@ -93,7 +93,7 @@ Defined in: [app-hotkeys.ts:86](https://github.com/TanStack/hotkeys/blob/main/pa readonly optional options?: AppHotkeyOptions; ``` -Defined in: [app-hotkeys.ts:88](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L88) +Defined in: [app-hotkeys.ts:90](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L90) *** @@ -103,4 +103,4 @@ Defined in: [app-hotkeys.ts:88](https://github.com/TanStack/hotkeys/blob/main/pa readonly optional scope?: string; ``` -Defined in: [app-hotkeys.ts:87](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L87) +Defined in: [app-hotkeys.ts:89](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L89) diff --git a/docs/reference/interfaces/AppHotkeyInput.md b/docs/reference/interfaces/AppHotkeyInput.md index 2edcc967..deaa08cc 100644 --- a/docs/reference/interfaces/AppHotkeyInput.md +++ b/docs/reference/interfaces/AppHotkeyInput.md @@ -3,7 +3,7 @@ id: AppHotkeyInput title: AppHotkeyInput --- -Defined in: [app-hotkeys.ts:47](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L47) +Defined in: [app-hotkeys.ts:49](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L49) One declaration passed to `defineAppHotkeys`. @@ -15,7 +15,7 @@ One declaration passed to `defineAppHotkeys`. hotkey: Hotkey | null; ``` -Defined in: [app-hotkeys.ts:49](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L49) +Defined in: [app-hotkeys.ts:51](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L51) Default hotkey: a chord, a sequence, or `null` for an action without a default. @@ -27,7 +27,7 @@ Default hotkey: a chord, a sequence, or `null` for an action without a default. optional meta?: HotkeyMeta; ``` -Defined in: [app-hotkeys.ts:51](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L51) +Defined in: [app-hotkeys.ts:53](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L53) Display metadata for cheat sheets and settings screens. @@ -39,7 +39,7 @@ Display metadata for cheat sheets and settings screens. optional options?: AppHotkeyOptions; ``` -Defined in: [app-hotkeys.ts:63](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L63) +Defined in: [app-hotkeys.ts:65](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L65) Options that describe the hotkey itself. Chord defaults accept `requireReset`; sequence defaults accept `timeout`. @@ -52,7 +52,7 @@ Options that describe the hotkey itself. Chord defaults accept optional scope?: string; ``` -Defined in: [app-hotkeys.ts:58](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L58) +Defined in: [app-hotkeys.ts:60](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L60) Scope this hotkey fires in, such as `'editor'`. Overrides the scope of the provider it registers under. App hotkeys in different scopes may share a diff --git a/docs/reference/interfaces/AppHotkeyListItem.md b/docs/reference/interfaces/AppHotkeyListItem.md index 7ab01861..19be88fa 100644 --- a/docs/reference/interfaces/AppHotkeyListItem.md +++ b/docs/reference/interfaces/AppHotkeyListItem.md @@ -3,7 +3,7 @@ id: AppHotkeyListItem title: AppHotkeyListItem --- -Defined in: [app-hotkeys.ts:311](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L311) +Defined in: [app-hotkeys.ts:321](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L321) One row of an app hotkey cheat sheet. @@ -21,7 +21,7 @@ One row of an app hotkey cheat sheet. appHotkey: T; ``` -Defined in: [app-hotkeys.ts:312](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L312) +Defined in: [app-hotkeys.ts:322](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L322) *** @@ -31,7 +31,7 @@ Defined in: [app-hotkeys.ts:312](https://github.com/TanStack/hotkeys/blob/main/p isCustom: boolean; ``` -Defined in: [app-hotkeys.ts:315](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L315) +Defined in: [app-hotkeys.ts:325](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L325) Whether the effective hotkey differs from the declared default. @@ -43,7 +43,7 @@ Whether the effective hotkey differs from the declared default. registrations: HotkeyRegistrationView[]; ``` -Defined in: [app-hotkeys.ts:317](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L317) +Defined in: [app-hotkeys.ts:327](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L327) Live registrations of this app hotkey (for example, one per list row). @@ -55,4 +55,4 @@ Live registrations of this app hotkey (for example, one per list row). status: AppHotkeyStatus; ``` -Defined in: [app-hotkeys.ts:313](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L313) +Defined in: [app-hotkeys.ts:323](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L323) diff --git a/docs/reference/interfaces/AppHotkeysState.md b/docs/reference/interfaces/AppHotkeysState.md index a25c2ae4..6a34b255 100644 --- a/docs/reference/interfaces/AppHotkeysState.md +++ b/docs/reference/interfaces/AppHotkeysState.md @@ -3,7 +3,7 @@ id: AppHotkeysState title: AppHotkeysState --- -Defined in: [app-hotkeys.ts:321](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L321) +Defined in: [app-hotkeys.ts:331](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L331) State of an `AppHotkeysStore`. @@ -21,7 +21,7 @@ State of an `AppHotkeysStore`. appHotkeys: T; ``` -Defined in: [app-hotkeys.ts:323](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L323) +Defined in: [app-hotkeys.ts:333](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L333) Effective app hotkeys: declarations with custom hotkeys applied. @@ -33,6 +33,6 @@ Effective app hotkeys: declarations with custom hotkeys applied. customHotkeys: CustomHotkeys; ``` -Defined in: [app-hotkeys.ts:325](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L325) +Defined in: [app-hotkeys.ts:335](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L335) The user's hotkeys that differ from the defaults. diff --git a/docs/reference/interfaces/AppHotkeysStoreOptions.md b/docs/reference/interfaces/AppHotkeysStoreOptions.md index 19e13cb3..8c23bc53 100644 --- a/docs/reference/interfaces/AppHotkeysStoreOptions.md +++ b/docs/reference/interfaces/AppHotkeysStoreOptions.md @@ -3,7 +3,7 @@ id: AppHotkeysStoreOptions title: AppHotkeysStoreOptions --- -Defined in: [app-hotkeys.ts:329](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L329) +Defined in: [app-hotkeys.ts:339](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L339) Options for `AppHotkeysStore`. @@ -21,7 +21,7 @@ Options for `AppHotkeysStore`. optional customHotkeys?: CustomHotkeys | null; ``` -Defined in: [app-hotkeys.ts:331](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L331) +Defined in: [app-hotkeys.ts:341](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L341) Starting custom hotkeys, such as saved data. Invalid entries are ignored with a warning. @@ -33,7 +33,7 @@ Starting custom hotkeys, such as saved data. Invalid entries are ignored with a optional onCustomHotkeysChange?: (customHotkeys) => void; ``` -Defined in: [app-hotkeys.ts:333](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L333) +Defined in: [app-hotkeys.ts:343](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L343) Called with the custom hotkeys after every change, ready to save. @@ -55,6 +55,6 @@ Called with the custom hotkeys after every change, ready to save. optional platform?: Platform; ``` -Defined in: [app-hotkeys.ts:335](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L335) +Defined in: [app-hotkeys.ts:345](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L345) Platform used to compare hotkeys. Defaults to detection. diff --git a/docs/reference/interfaces/FormatDisplayOptions.md b/docs/reference/interfaces/FormatDisplayOptions.md index 0b60ac38..a0edbbc7 100644 --- a/docs/reference/interfaces/FormatDisplayOptions.md +++ b/docs/reference/interfaces/FormatDisplayOptions.md @@ -3,7 +3,7 @@ id: FormatDisplayOptions title: FormatDisplayOptions --- -Defined in: [format.ts:218](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L218) +Defined in: [format.ts:247](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L247) Options for formatting hotkeys for display. @@ -15,7 +15,7 @@ Options for formatting hotkeys for display. optional keyLabels?: Readonly>; ``` -Defined in: [format.ts:233](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L233) +Defined in: [format.ts:262](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L262) Final display overrides for logical keys or physical codes; take precedence over layoutMap. Never changes matching. @@ -27,7 +27,7 @@ Final display overrides for logical keys or physical codes; take precedence over optional layoutMap?: object; ``` -Defined in: [format.ts:231](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L231) +Defined in: [format.ts:260](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L260) An already-resolved code-to-key map, such as KeyboardLayoutMap or Map. Used only for physical bindings. Mapped keys receive normal display formatting; @@ -58,7 +58,7 @@ get: (code) => string | undefined; optional parts?: boolean; ``` -Defined in: [format.ts:224](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L224) +Defined in: [format.ts:253](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L253) Return individual key labels instead of a joined string. Default: false. @@ -70,7 +70,7 @@ Return individual key labels instead of a joined string. Default: false. optional platform?: "mac" | "windows" | "linux"; ``` -Defined in: [format.ts:220](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L220) +Defined in: [format.ts:249](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L249) The target platform. Defaults to auto-detection. @@ -82,7 +82,7 @@ The target platform. Defaults to auto-detection. optional separatorToken?: string | null; ``` -Defined in: [format.ts:235](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L235) +Defined in: [format.ts:264](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L264) Override the separator between display tokens. Defaults to platform-specific formatting when null/undefined. @@ -94,7 +94,7 @@ Override the separator between display tokens. Defaults to platform-specific for optional sequenceSeparator?: string; ``` -Defined in: [format.ts:237](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L237) +Defined in: [format.ts:266](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L266) Separator between sequence steps. Default: a space. @@ -111,6 +111,6 @@ optional useSymbols?: }; ``` -Defined in: [format.ts:222](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L222) +Defined in: [format.ts:251](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L251) Whether to use symbols for the display. Defaults to true. diff --git a/docs/reference/interfaces/HotkeyChordOptions.md b/docs/reference/interfaces/HotkeyChordOptions.md index 9f629d72..b19d4307 100644 --- a/docs/reference/interfaces/HotkeyChordOptions.md +++ b/docs/reference/interfaces/HotkeyChordOptions.md @@ -3,7 +3,7 @@ id: HotkeyChordOptions title: HotkeyChordOptions --- -Defined in: [hotkey-manager.ts:121](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L121) +Defined in: [hotkey-manager.ts:126](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L126) Options for a single chord such as `'Mod+S'`. @@ -19,7 +19,7 @@ Options for a single chord such as `'Mod+S'`. optional appHotkeyId?: string; ``` -Defined in: [hotkey-manager.ts:117](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L117) +Defined in: [hotkey-manager.ts:122](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L122) Id of the app hotkey this registration implements. Adapters set this when registering an app hotkey from `defineAppHotkeys`. @@ -35,7 +35,7 @@ Id of the app hotkey this registration implements. Adapters set this when regist optional capture?: boolean; ``` -Defined in: [hotkey-manager.ts:63](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L63) +Defined in: [hotkey-manager.ts:68](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L68) Listen during capture, before descendant listeners. Defaults to `false` (bubble). With `stopPropagation: true`, a match on an ancestor prevents the event from @@ -55,7 +55,7 @@ Changing this option preserves held-key reset state and sequence progress. optional conflictBehavior?: ConflictBehavior; ``` -Defined in: [hotkey-manager.ts:65](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L65) +Defined in: [hotkey-manager.ts:70](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L70) Behavior when this hotkey conflicts with an existing registration on the same target. Defaults to 'warn' @@ -71,7 +71,7 @@ Behavior when this hotkey conflicts with an existing registration on the same ta optional enabled?: boolean; ``` -Defined in: [hotkey-manager.ts:71](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L71) +Defined in: [hotkey-manager.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L76) Soft-disable: when `false`, the callback does not run but the registration stays in `HotkeyManager` (and in devtools). Toggling this should update the @@ -89,7 +89,7 @@ existing handle via `setOptions` rather than unregistering. Defaults to `true`. optional eventType?: "keydown" | "keyup"; ``` -Defined in: [hotkey-manager.ts:73](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L73) +Defined in: [hotkey-manager.ts:78](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L78) The event type to listen for. Defaults to 'keydown' @@ -105,7 +105,7 @@ The event type to listen for. Defaults to 'keydown' optional ignoreInputs?: boolean | "auto"; ``` -Defined in: [hotkey-manager.ts:84](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L84) +Defined in: [hotkey-manager.ts:89](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L89) Skip keys that a focused control inside the target uses itself: typing in text inputs, textarea, select, and contenteditable; Enter/Space on buttons @@ -128,7 +128,7 @@ even in these controls. optional meta?: HotkeyMeta; ``` -Defined in: [hotkey-manager.ts:105](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L105) +Defined in: [hotkey-manager.ts:110](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L110) Optional metadata (name, description, custom fields via declaration merging) @@ -144,7 +144,7 @@ Optional metadata (name, description, custom fields via declaration merging) optional platform?: "mac" | "windows" | "linux"; ``` -Defined in: [hotkey-manager.ts:86](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L86) +Defined in: [hotkey-manager.ts:91](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L91) The target platform for resolving 'Mod' @@ -160,7 +160,7 @@ The target platform for resolving 'Mod' optional preventDefault?: boolean | "always"; ``` -Defined in: [hotkey-manager.ts:96](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L96) +Defined in: [hotkey-manager.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L101) Prevent the default browser action when the hotkey matches. For a sequence, every step that advances it does. Defaults to true. @@ -182,7 +182,7 @@ treat `'always'` as `true`. optional requireReset?: boolean; ``` -Defined in: [hotkey-manager.ts:123](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L123) +Defined in: [hotkey-manager.ts:128](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L128) If true, only trigger once until all keys are released. Default: false @@ -194,7 +194,7 @@ If true, only trigger once until all keys are released. Default: false optional scope?: string; ``` -Defined in: [hotkey-manager.ts:115](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L115) +Defined in: [hotkey-manager.ts:120](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L120) Scope this hotkey belongs to. Defaults to `'global'`, which is always active. Other scopes are active while activated with @@ -216,7 +216,7 @@ activated scope handles it. optional stopPropagation?: boolean; ``` -Defined in: [hotkey-manager.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L101) +Defined in: [hotkey-manager.ts:106](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L106) Stop event propagation when the hotkey matches. For a sequence, only the last step does, so earlier steps reach other listeners. Defaults to true @@ -233,7 +233,7 @@ last step does, so earlier steps reach other listeners. Defaults to true optional target?: Target | null; ``` -Defined in: [hotkey-manager.ts:103](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L103) +Defined in: [hotkey-manager.ts:108](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L108) The DOM element to attach the event listener to. Defaults to document. diff --git a/docs/reference/interfaces/HotkeyChordRegistration.md b/docs/reference/interfaces/HotkeyChordRegistration.md index 4f8176d0..7ac0bb26 100644 --- a/docs/reference/interfaces/HotkeyChordRegistration.md +++ b/docs/reference/interfaces/HotkeyChordRegistration.md @@ -3,7 +3,7 @@ id: HotkeyChordRegistration title: HotkeyChordRegistration --- -Defined in: [hotkey-manager.ts:160](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L160) +Defined in: [hotkey-manager.ts:165](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L165) A registered chord in the HotkeyManager. @@ -19,7 +19,7 @@ A registered chord in the HotkeyManager. optional activeMatch?: object; ``` -Defined in: [hotkey-manager.ts:165](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L165) +Defined in: [hotkey-manager.ts:170](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L170) The concrete key/code that activated a requireReset registration. @@ -43,7 +43,7 @@ key: string; callback: HotkeyCallback; ``` -Defined in: [hotkey-manager.ts:148](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L148) +Defined in: [hotkey-manager.ts:153](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L153) The callback to invoke @@ -61,7 +61,7 @@ RegistrationBase.callback hasFired: boolean; ``` -Defined in: [hotkey-manager.ts:156](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L156) +Defined in: [hotkey-manager.ts:161](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L161) Whether this registration has fired (and, for requireReset chords, needs a reset) @@ -79,7 +79,7 @@ RegistrationBase.hasFired hotkey: HotkeyChord; ``` -Defined in: [hotkey-manager.ts:162](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L162) +Defined in: [hotkey-manager.ts:167](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L167) *** @@ -89,7 +89,7 @@ Defined in: [hotkey-manager.ts:162](https://github.com/TanStack/hotkeys/blob/mai id: string; ``` -Defined in: [hotkey-manager.ts:146](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L146) +Defined in: [hotkey-manager.ts:151](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L151) Unique identifier for this registration @@ -107,7 +107,7 @@ RegistrationBase.id kind: "chord"; ``` -Defined in: [hotkey-manager.ts:161](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L161) +Defined in: [hotkey-manager.ts:166](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L166) *** @@ -117,7 +117,7 @@ Defined in: [hotkey-manager.ts:161](https://github.com/TanStack/hotkeys/blob/mai options: HotkeyChordOptions; ``` -Defined in: [hotkey-manager.ts:150](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L150) +Defined in: [hotkey-manager.ts:155](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L155) Resolved options for this registration @@ -135,7 +135,7 @@ RegistrationBase.options parsedChord: ParsedHotkeyChord; ``` -Defined in: [hotkey-manager.ts:163](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L163) +Defined in: [hotkey-manager.ts:168](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L168) *** @@ -145,7 +145,7 @@ Defined in: [hotkey-manager.ts:163](https://github.com/TanStack/hotkeys/blob/mai target: Target; ``` -Defined in: [hotkey-manager.ts:152](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L152) +Defined in: [hotkey-manager.ts:157](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L157) The resolved target element for this registration @@ -163,7 +163,7 @@ RegistrationBase.target triggerCount: number; ``` -Defined in: [hotkey-manager.ts:154](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L154) +Defined in: [hotkey-manager.ts:159](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L159) How many times this registration's callback has been triggered diff --git a/docs/reference/interfaces/HotkeyChordRegistrationView.md b/docs/reference/interfaces/HotkeyChordRegistrationView.md index 6c89ef5b..945b7725 100644 --- a/docs/reference/interfaces/HotkeyChordRegistrationView.md +++ b/docs/reference/interfaces/HotkeyChordRegistrationView.md @@ -3,7 +3,7 @@ id: HotkeyChordRegistrationView title: HotkeyChordRegistrationView --- -Defined in: [hotkey-manager.ts:202](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L202) +Defined in: [hotkey-manager.ts:207](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L207) Public view of a chord registration, without its callback. @@ -19,7 +19,7 @@ Public view of a chord registration, without its callback. hasFired: boolean; ``` -Defined in: [hotkey-manager.ts:198](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L198) +Defined in: [hotkey-manager.ts:203](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L203) #### Inherited from @@ -35,7 +35,7 @@ RegistrationViewBase.hasFired hotkey: HotkeyChord; ``` -Defined in: [hotkey-manager.ts:204](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L204) +Defined in: [hotkey-manager.ts:209](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L209) *** @@ -45,7 +45,7 @@ Defined in: [hotkey-manager.ts:204](https://github.com/TanStack/hotkeys/blob/mai id: string; ``` -Defined in: [hotkey-manager.ts:193](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L193) +Defined in: [hotkey-manager.ts:198](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L198) #### Inherited from @@ -61,7 +61,7 @@ RegistrationViewBase.id kind: "chord"; ``` -Defined in: [hotkey-manager.ts:203](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L203) +Defined in: [hotkey-manager.ts:208](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L208) *** @@ -71,7 +71,7 @@ Defined in: [hotkey-manager.ts:203](https://github.com/TanStack/hotkeys/blob/mai options: HotkeyChordOptions; ``` -Defined in: [hotkey-manager.ts:206](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L206) +Defined in: [hotkey-manager.ts:211](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L211) *** @@ -81,7 +81,7 @@ Defined in: [hotkey-manager.ts:206](https://github.com/TanStack/hotkeys/blob/mai parsedChord: ParsedHotkeyChord; ``` -Defined in: [hotkey-manager.ts:205](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L205) +Defined in: [hotkey-manager.ts:210](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L210) *** @@ -91,7 +91,7 @@ Defined in: [hotkey-manager.ts:205](https://github.com/TanStack/hotkeys/blob/mai status: HotkeyRegistrationStatus; ``` -Defined in: [hotkey-manager.ts:195](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L195) +Defined in: [hotkey-manager.ts:200](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L200) Whether the registration is enabled and in an active scope. @@ -109,7 +109,7 @@ RegistrationViewBase.status target: Target; ``` -Defined in: [hotkey-manager.ts:196](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L196) +Defined in: [hotkey-manager.ts:201](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L201) #### Inherited from @@ -125,7 +125,7 @@ RegistrationViewBase.target triggerCount: number; ``` -Defined in: [hotkey-manager.ts:197](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L197) +Defined in: [hotkey-manager.ts:202](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L202) #### Inherited from diff --git a/docs/reference/interfaces/HotkeyOptions.md b/docs/reference/interfaces/HotkeyOptions.md index a5be48b9..8d0c3cee 100644 --- a/docs/reference/interfaces/HotkeyOptions.md +++ b/docs/reference/interfaces/HotkeyOptions.md @@ -3,7 +3,7 @@ id: HotkeyOptions title: HotkeyOptions --- -Defined in: [hotkey-manager.ts:55](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L55) +Defined in: [hotkey-manager.ts:60](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L60) Options shared by chords and sequences. @@ -20,7 +20,7 @@ Options shared by chords and sequences. optional appHotkeyId?: string; ``` -Defined in: [hotkey-manager.ts:117](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L117) +Defined in: [hotkey-manager.ts:122](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L122) Id of the app hotkey this registration implements. Adapters set this when registering an app hotkey from `defineAppHotkeys`. @@ -32,7 +32,7 @@ Id of the app hotkey this registration implements. Adapters set this when regist optional capture?: boolean; ``` -Defined in: [hotkey-manager.ts:63](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L63) +Defined in: [hotkey-manager.ts:68](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L68) Listen during capture, before descendant listeners. Defaults to `false` (bubble). With `stopPropagation: true`, a match on an ancestor prevents the event from @@ -48,7 +48,7 @@ Changing this option preserves held-key reset state and sequence progress. optional conflictBehavior?: ConflictBehavior; ``` -Defined in: [hotkey-manager.ts:65](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L65) +Defined in: [hotkey-manager.ts:70](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L70) Behavior when this hotkey conflicts with an existing registration on the same target. Defaults to 'warn' @@ -60,7 +60,7 @@ Behavior when this hotkey conflicts with an existing registration on the same ta optional enabled?: boolean; ``` -Defined in: [hotkey-manager.ts:71](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L71) +Defined in: [hotkey-manager.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L76) Soft-disable: when `false`, the callback does not run but the registration stays in `HotkeyManager` (and in devtools). Toggling this should update the @@ -74,7 +74,7 @@ existing handle via `setOptions` rather than unregistering. Defaults to `true`. optional eventType?: "keydown" | "keyup"; ``` -Defined in: [hotkey-manager.ts:73](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L73) +Defined in: [hotkey-manager.ts:78](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L78) The event type to listen for. Defaults to 'keydown' @@ -86,7 +86,7 @@ The event type to listen for. Defaults to 'keydown' optional ignoreInputs?: boolean | "auto"; ``` -Defined in: [hotkey-manager.ts:84](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L84) +Defined in: [hotkey-manager.ts:89](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L89) Skip keys that a focused control inside the target uses itself: typing in text inputs, textarea, select, and contenteditable; Enter/Space on buttons @@ -105,7 +105,7 @@ even in these controls. optional meta?: HotkeyMeta; ``` -Defined in: [hotkey-manager.ts:105](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L105) +Defined in: [hotkey-manager.ts:110](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L110) Optional metadata (name, description, custom fields via declaration merging) @@ -117,7 +117,7 @@ Optional metadata (name, description, custom fields via declaration merging) optional platform?: "mac" | "windows" | "linux"; ``` -Defined in: [hotkey-manager.ts:86](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L86) +Defined in: [hotkey-manager.ts:91](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L91) The target platform for resolving 'Mod' @@ -129,7 +129,7 @@ The target platform for resolving 'Mod' optional preventDefault?: boolean | "always"; ``` -Defined in: [hotkey-manager.ts:96](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L96) +Defined in: [hotkey-manager.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L101) Prevent the default browser action when the hotkey matches. For a sequence, every step that advances it does. Defaults to true. @@ -147,7 +147,7 @@ treat `'always'` as `true`. optional scope?: string; ``` -Defined in: [hotkey-manager.ts:115](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L115) +Defined in: [hotkey-manager.ts:120](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L120) Scope this hotkey belongs to. Defaults to `'global'`, which is always active. Other scopes are active while activated with @@ -165,7 +165,7 @@ activated scope handles it. optional stopPropagation?: boolean; ``` -Defined in: [hotkey-manager.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L101) +Defined in: [hotkey-manager.ts:106](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L106) Stop event propagation when the hotkey matches. For a sequence, only the last step does, so earlier steps reach other listeners. Defaults to true @@ -178,6 +178,6 @@ last step does, so earlier steps reach other listeners. Defaults to true optional target?: Target | null; ``` -Defined in: [hotkey-manager.ts:103](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L103) +Defined in: [hotkey-manager.ts:108](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L108) The DOM element to attach the event listener to. Defaults to document. diff --git a/docs/reference/interfaces/HotkeyRegistrationHandle.md b/docs/reference/interfaces/HotkeyRegistrationHandle.md index 5511e9ac..4c9499fc 100644 --- a/docs/reference/interfaces/HotkeyRegistrationHandle.md +++ b/docs/reference/interfaces/HotkeyRegistrationHandle.md @@ -3,7 +3,7 @@ id: HotkeyRegistrationHandle title: HotkeyRegistrationHandle --- -Defined in: [hotkey-manager.ts:290](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L290) +Defined in: [hotkey-manager.ts:295](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L295) A handle returned from HotkeyManager.register() that allows updating the callback and options without re-registering the hotkey. @@ -39,7 +39,7 @@ handle.unregister() callback: HotkeyCallback; ``` -Defined in: [hotkey-manager.ts:297](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L297) +Defined in: [hotkey-manager.ts:302](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L302) The callback function. Can be set directly to update without re-registering. This avoids stale closures when the callback references React state. @@ -52,7 +52,7 @@ This avoids stale closures when the callback references React state. readonly id: string; ``` -Defined in: [hotkey-manager.ts:299](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L299) +Defined in: [hotkey-manager.ts:304](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L304) Unique identifier for this registration @@ -64,7 +64,7 @@ Unique identifier for this registration readonly isActive: boolean; ``` -Defined in: [hotkey-manager.ts:301](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L301) +Defined in: [hotkey-manager.ts:306](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L306) Check if this registration is still active (not unregistered) @@ -76,7 +76,7 @@ Check if this registration is still active (not unregistered) setOptions: (options) => void; ``` -Defined in: [hotkey-manager.ts:309](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L309) +Defined in: [hotkey-manager.ts:314](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L314) Update options (merged with existing options). Useful for updating `enabled`, `preventDefault`, etc. without re-registering. @@ -102,7 +102,7 @@ cannot process it again in another phase. unregister: () => void; ``` -Defined in: [hotkey-manager.ts:311](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L311) +Defined in: [hotkey-manager.ts:316](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L316) Unregister this hotkey diff --git a/docs/reference/interfaces/HotkeyScopesState.md b/docs/reference/interfaces/HotkeyScopesState.md index 08b7e3e6..1c5a83fe 100644 --- a/docs/reference/interfaces/HotkeyScopesState.md +++ b/docs/reference/interfaces/HotkeyScopesState.md @@ -3,7 +3,7 @@ id: HotkeyScopesState title: HotkeyScopesState --- -Defined in: [hotkey-manager.ts:378](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L378) +Defined in: [hotkey-manager.ts:383](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L383) Active hotkey scopes, published on `HotkeyManager.scopes`. @@ -15,7 +15,7 @@ Active hotkey scopes, published on `HotkeyManager.scopes`. active: readonly string[]; ``` -Defined in: [hotkey-manager.ts:383](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L383) +Defined in: [hotkey-manager.ts:388](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L388) Activated scopes, lowest precedence first. `'global'` is always active and not listed. @@ -28,7 +28,7 @@ and not listed. allowed: readonly string[]; ``` -Defined in: [hotkey-manager.ts:390](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L390) +Defined in: [hotkey-manager.ts:395](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L395) Scopes the exclusive scope allows that are active, possibly including `'global'`. Empty when no scope is exclusive. @@ -41,7 +41,7 @@ Scopes the exclusive scope allows that are active, possibly including exclusive: string | null; ``` -Defined in: [hotkey-manager.ts:385](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L385) +Defined in: [hotkey-manager.ts:390](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L390) The exclusive scope that owns the keyboard, or `null` when none is active. @@ -53,7 +53,7 @@ The exclusive scope that owns the keyboard, or `null` when none is active. suspended: readonly string[]; ``` -Defined in: [hotkey-manager.ts:395](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L395) +Defined in: [hotkey-manager.ts:400](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L400) Scopes that are active but cannot fire because another scope is exclusive, possibly including `'global'`. diff --git a/docs/reference/interfaces/HotkeySequenceOptions.md b/docs/reference/interfaces/HotkeySequenceOptions.md index 1b923c77..05e77929 100644 --- a/docs/reference/interfaces/HotkeySequenceOptions.md +++ b/docs/reference/interfaces/HotkeySequenceOptions.md @@ -3,7 +3,7 @@ id: HotkeySequenceOptions title: HotkeySequenceOptions --- -Defined in: [hotkey-manager.ts:127](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L127) +Defined in: [hotkey-manager.ts:132](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L132) Options for a sequence such as `['G', 'G']`. @@ -19,7 +19,7 @@ Options for a sequence such as `['G', 'G']`. optional appHotkeyId?: string; ``` -Defined in: [hotkey-manager.ts:117](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L117) +Defined in: [hotkey-manager.ts:122](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L122) Id of the app hotkey this registration implements. Adapters set this when registering an app hotkey from `defineAppHotkeys`. @@ -35,7 +35,7 @@ Id of the app hotkey this registration implements. Adapters set this when regist optional capture?: boolean; ``` -Defined in: [hotkey-manager.ts:63](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L63) +Defined in: [hotkey-manager.ts:68](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L68) Listen during capture, before descendant listeners. Defaults to `false` (bubble). With `stopPropagation: true`, a match on an ancestor prevents the event from @@ -55,7 +55,7 @@ Changing this option preserves held-key reset state and sequence progress. optional conflictBehavior?: ConflictBehavior; ``` -Defined in: [hotkey-manager.ts:65](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L65) +Defined in: [hotkey-manager.ts:70](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L70) Behavior when this hotkey conflicts with an existing registration on the same target. Defaults to 'warn' @@ -71,7 +71,7 @@ Behavior when this hotkey conflicts with an existing registration on the same ta optional enabled?: boolean; ``` -Defined in: [hotkey-manager.ts:71](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L71) +Defined in: [hotkey-manager.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L76) Soft-disable: when `false`, the callback does not run but the registration stays in `HotkeyManager` (and in devtools). Toggling this should update the @@ -89,7 +89,7 @@ existing handle via `setOptions` rather than unregistering. Defaults to `true`. optional eventType?: "keydown" | "keyup"; ``` -Defined in: [hotkey-manager.ts:73](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L73) +Defined in: [hotkey-manager.ts:78](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L78) The event type to listen for. Defaults to 'keydown' @@ -105,7 +105,7 @@ The event type to listen for. Defaults to 'keydown' optional ignoreInputs?: boolean | "auto"; ``` -Defined in: [hotkey-manager.ts:84](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L84) +Defined in: [hotkey-manager.ts:89](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L89) Skip keys that a focused control inside the target uses itself: typing in text inputs, textarea, select, and contenteditable; Enter/Space on buttons @@ -128,7 +128,7 @@ even in these controls. optional meta?: HotkeyMeta; ``` -Defined in: [hotkey-manager.ts:105](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L105) +Defined in: [hotkey-manager.ts:110](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L110) Optional metadata (name, description, custom fields via declaration merging) @@ -144,7 +144,7 @@ Optional metadata (name, description, custom fields via declaration merging) optional platform?: "mac" | "windows" | "linux"; ``` -Defined in: [hotkey-manager.ts:86](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L86) +Defined in: [hotkey-manager.ts:91](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L91) The target platform for resolving 'Mod' @@ -160,7 +160,7 @@ The target platform for resolving 'Mod' optional preventDefault?: boolean | "always"; ``` -Defined in: [hotkey-manager.ts:96](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L96) +Defined in: [hotkey-manager.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L101) Prevent the default browser action when the hotkey matches. For a sequence, every step that advances it does. Defaults to true. @@ -182,7 +182,7 @@ treat `'always'` as `true`. optional scope?: string; ``` -Defined in: [hotkey-manager.ts:115](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L115) +Defined in: [hotkey-manager.ts:120](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L120) Scope this hotkey belongs to. Defaults to `'global'`, which is always active. Other scopes are active while activated with @@ -204,7 +204,7 @@ activated scope handles it. optional stopPropagation?: boolean; ``` -Defined in: [hotkey-manager.ts:101](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L101) +Defined in: [hotkey-manager.ts:106](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L106) Stop event propagation when the hotkey matches. For a sequence, only the last step does, so earlier steps reach other listeners. Defaults to true @@ -221,7 +221,7 @@ last step does, so earlier steps reach other listeners. Defaults to true optional target?: Target | null; ``` -Defined in: [hotkey-manager.ts:103](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L103) +Defined in: [hotkey-manager.ts:108](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L108) The DOM element to attach the event listener to. Defaults to document. @@ -237,6 +237,6 @@ The DOM element to attach the event listener to. Defaults to document. optional timeout?: number; ``` -Defined in: [hotkey-manager.ts:129](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L129) +Defined in: [hotkey-manager.ts:134](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L134) Maximum time between steps in milliseconds. Default: 1000 diff --git a/docs/reference/interfaces/HotkeySequenceRegistration.md b/docs/reference/interfaces/HotkeySequenceRegistration.md index 313b1785..db0acb2e 100644 --- a/docs/reference/interfaces/HotkeySequenceRegistration.md +++ b/docs/reference/interfaces/HotkeySequenceRegistration.md @@ -3,7 +3,7 @@ id: HotkeySequenceRegistration title: HotkeySequenceRegistration --- -Defined in: [hotkey-manager.ts:169](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L169) +Defined in: [hotkey-manager.ts:174](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L174) A registered sequence in the HotkeyManager. @@ -19,7 +19,7 @@ A registered sequence in the HotkeyManager. callback: HotkeyCallback; ``` -Defined in: [hotkey-manager.ts:148](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L148) +Defined in: [hotkey-manager.ts:153](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L153) The callback to invoke @@ -37,7 +37,7 @@ RegistrationBase.callback currentIndex: number; ``` -Defined in: [hotkey-manager.ts:174](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L174) +Defined in: [hotkey-manager.ts:179](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L179) Steps matched in the current attempt @@ -49,7 +49,7 @@ Steps matched in the current attempt hasFired: boolean; ``` -Defined in: [hotkey-manager.ts:156](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L156) +Defined in: [hotkey-manager.ts:161](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L161) Whether this registration has fired (and, for requireReset chords, needs a reset) @@ -67,7 +67,7 @@ RegistrationBase.hasFired hotkey: HotkeySequence; ``` -Defined in: [hotkey-manager.ts:171](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L171) +Defined in: [hotkey-manager.ts:176](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L176) *** @@ -77,7 +77,7 @@ Defined in: [hotkey-manager.ts:171](https://github.com/TanStack/hotkeys/blob/mai id: string; ``` -Defined in: [hotkey-manager.ts:146](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L146) +Defined in: [hotkey-manager.ts:151](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L151) Unique identifier for this registration @@ -95,7 +95,7 @@ RegistrationBase.id kind: "sequence"; ``` -Defined in: [hotkey-manager.ts:170](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L170) +Defined in: [hotkey-manager.ts:175](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L175) *** @@ -105,7 +105,7 @@ Defined in: [hotkey-manager.ts:170](https://github.com/TanStack/hotkeys/blob/mai lastKeyTime: number; ``` -Defined in: [hotkey-manager.ts:176](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L176) +Defined in: [hotkey-manager.ts:181](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L181) `Date.now()` when the last step in the current attempt matched @@ -117,7 +117,7 @@ Defined in: [hotkey-manager.ts:176](https://github.com/TanStack/hotkeys/blob/mai options: HotkeySequenceOptions; ``` -Defined in: [hotkey-manager.ts:150](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L150) +Defined in: [hotkey-manager.ts:155](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L155) Resolved options for this registration @@ -135,7 +135,7 @@ RegistrationBase.options parsedSequence: ParsedHotkeyChord[]; ``` -Defined in: [hotkey-manager.ts:172](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L172) +Defined in: [hotkey-manager.ts:177](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L177) *** @@ -145,7 +145,7 @@ Defined in: [hotkey-manager.ts:172](https://github.com/TanStack/hotkeys/blob/mai target: Target; ``` -Defined in: [hotkey-manager.ts:152](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L152) +Defined in: [hotkey-manager.ts:157](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L157) The resolved target element for this registration @@ -163,7 +163,7 @@ RegistrationBase.target triggerCount: number; ``` -Defined in: [hotkey-manager.ts:154](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L154) +Defined in: [hotkey-manager.ts:159](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L159) How many times this registration's callback has been triggered diff --git a/docs/reference/interfaces/HotkeySequenceRegistrationView.md b/docs/reference/interfaces/HotkeySequenceRegistrationView.md index 6403eca9..96c7df99 100644 --- a/docs/reference/interfaces/HotkeySequenceRegistrationView.md +++ b/docs/reference/interfaces/HotkeySequenceRegistrationView.md @@ -3,7 +3,7 @@ id: HotkeySequenceRegistrationView title: HotkeySequenceRegistrationView --- -Defined in: [hotkey-manager.ts:210](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L210) +Defined in: [hotkey-manager.ts:215](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L215) Public view of a sequence registration, without its callback. @@ -19,7 +19,7 @@ Public view of a sequence registration, without its callback. hasFired: boolean; ``` -Defined in: [hotkey-manager.ts:198](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L198) +Defined in: [hotkey-manager.ts:203](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L203) #### Inherited from @@ -35,7 +35,7 @@ RegistrationViewBase.hasFired hotkey: HotkeySequence; ``` -Defined in: [hotkey-manager.ts:212](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L212) +Defined in: [hotkey-manager.ts:217](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L217) *** @@ -45,7 +45,7 @@ Defined in: [hotkey-manager.ts:212](https://github.com/TanStack/hotkeys/blob/mai id: string; ``` -Defined in: [hotkey-manager.ts:193](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L193) +Defined in: [hotkey-manager.ts:198](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L198) #### Inherited from @@ -61,7 +61,7 @@ RegistrationViewBase.id kind: "sequence"; ``` -Defined in: [hotkey-manager.ts:211](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L211) +Defined in: [hotkey-manager.ts:216](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L216) *** @@ -71,7 +71,7 @@ Defined in: [hotkey-manager.ts:211](https://github.com/TanStack/hotkeys/blob/mai matchedStepCount: number; ``` -Defined in: [hotkey-manager.ts:216](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L216) +Defined in: [hotkey-manager.ts:221](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L221) Steps matched in the current attempt (0 when idle or just completed). @@ -83,7 +83,7 @@ Steps matched in the current attempt (0 when idle or just completed). options: HotkeySequenceOptions; ``` -Defined in: [hotkey-manager.ts:214](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L214) +Defined in: [hotkey-manager.ts:219](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L219) *** @@ -93,7 +93,7 @@ Defined in: [hotkey-manager.ts:214](https://github.com/TanStack/hotkeys/blob/mai parsedSequence: ParsedHotkeyChord[]; ``` -Defined in: [hotkey-manager.ts:213](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L213) +Defined in: [hotkey-manager.ts:218](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L218) *** @@ -103,7 +103,7 @@ Defined in: [hotkey-manager.ts:213](https://github.com/TanStack/hotkeys/blob/mai partialMatchLastKeyTime: number; ``` -Defined in: [hotkey-manager.ts:218](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L218) +Defined in: [hotkey-manager.ts:223](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L223) `Date.now()` when the last step in the current attempt matched; 0 if none. @@ -115,7 +115,7 @@ Defined in: [hotkey-manager.ts:218](https://github.com/TanStack/hotkeys/blob/mai status: HotkeyRegistrationStatus; ``` -Defined in: [hotkey-manager.ts:195](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L195) +Defined in: [hotkey-manager.ts:200](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L200) Whether the registration is enabled and in an active scope. @@ -133,7 +133,7 @@ RegistrationViewBase.status target: Target; ``` -Defined in: [hotkey-manager.ts:196](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L196) +Defined in: [hotkey-manager.ts:201](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L201) #### Inherited from @@ -149,7 +149,7 @@ RegistrationViewBase.target triggerCount: number; ``` -Defined in: [hotkey-manager.ts:197](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L197) +Defined in: [hotkey-manager.ts:202](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L202) #### Inherited from diff --git a/docs/reference/interfaces/KeyStateTrackerState.md b/docs/reference/interfaces/KeyStateTrackerState.md index e0c4cbc7..8528dab4 100644 --- a/docs/reference/interfaces/KeyStateTrackerState.md +++ b/docs/reference/interfaces/KeyStateTrackerState.md @@ -3,7 +3,7 @@ id: KeyStateTrackerState title: KeyStateTrackerState --- -Defined in: [key-state-tracker.ts:7](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L7) +Defined in: [key-state-tracker.ts:8](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L8) State interface for the KeyStateTracker. @@ -15,7 +15,7 @@ State interface for the KeyStateTracker. heldCodes: Record; ``` -Defined in: [key-state-tracker.ts:16](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L16) +Defined in: [key-state-tracker.ts:17](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L17) Map from normalized key name to the physical `event.code` (e.g. "KeyA", "ShiftLeft"). Useful for debugging which physical key was pressed. @@ -28,6 +28,6 @@ Useful for debugging which physical key was pressed. heldKeys: string[]; ``` -Defined in: [key-state-tracker.ts:11](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L11) +Defined in: [key-state-tracker.ts:12](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/key-state-tracker.ts#L12) Array of currently held key names (normalized, e.g. "Control", "A"). diff --git a/docs/reference/interfaces/Register.md b/docs/reference/interfaces/Register.md index 83260bca..707d64b4 100644 --- a/docs/reference/interfaces/Register.md +++ b/docs/reference/interfaces/Register.md @@ -3,7 +3,7 @@ id: Register title: Register --- -Defined in: [app-hotkeys.ts:145](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L145) +Defined in: [app-hotkeys.ts:147](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L147) Register your app hotkeys to type `useAppHotkeys()` and `CustomHotkeys`. diff --git a/docs/reference/interfaces/ValidationResult.md b/docs/reference/interfaces/ValidationResult.md index 680fd4e4..cc106c8a 100644 --- a/docs/reference/interfaces/ValidationResult.md +++ b/docs/reference/interfaces/ValidationResult.md @@ -3,7 +3,7 @@ id: ValidationResult title: ValidationResult --- -Defined in: [validate.ts:187](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L187) +Defined in: [validate.ts:180](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L180) Result of validating a hotkey string. @@ -15,7 +15,7 @@ Result of validating a hotkey string. errors: string[]; ``` -Defined in: [validate.ts:193](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L193) +Defined in: [validate.ts:186](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L186) Error messages about invalid syntax @@ -27,7 +27,7 @@ Error messages about invalid syntax valid: boolean; ``` -Defined in: [validate.ts:189](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L189) +Defined in: [validate.ts:182](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L182) Whether the hotkey is valid (can still have warnings) @@ -39,6 +39,6 @@ Whether the hotkey is valid (can still have warnings) warnings: string[]; ``` -Defined in: [validate.ts:191](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L191) +Defined in: [validate.ts:184](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/validate.ts#L184) Warning messages about potential issues diff --git a/docs/reference/type-aliases/AppHotkeyChordOptions.md b/docs/reference/type-aliases/AppHotkeyChordOptions.md index 9ee2fe1a..2df72aaf 100644 --- a/docs/reference/type-aliases/AppHotkeyChordOptions.md +++ b/docs/reference/type-aliases/AppHotkeyChordOptions.md @@ -7,6 +7,6 @@ title: AppHotkeyChordOptions type AppHotkeyChordOptions = Pick; ``` -Defined in: [app-hotkeys.ts:32](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L32) +Defined in: [app-hotkeys.ts:34](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L34) Declared options for an app hotkey whose default is a chord. diff --git a/docs/reference/type-aliases/AppHotkeyDefaultKind.md b/docs/reference/type-aliases/AppHotkeyDefaultKind.md index a87777b9..7e5c734f 100644 --- a/docs/reference/type-aliases/AppHotkeyDefaultKind.md +++ b/docs/reference/type-aliases/AppHotkeyDefaultKind.md @@ -7,7 +7,7 @@ title: AppHotkeyDefaultKind type AppHotkeyDefaultKind = THotkey extends null ? null : THotkey extends readonly [unknown] ? HotkeyChord : THotkey extends ReadonlyArray ? HotkeySequence : HotkeyChord; ``` -Defined in: [app-hotkeys.ts:117](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L117) +Defined in: [app-hotkeys.ts:119](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L119) The kind of a declared default hotkey; a one-step sequence is a chord. diff --git a/docs/reference/type-aliases/AppHotkeyId.md b/docs/reference/type-aliases/AppHotkeyId.md index f698ef23..71155ba7 100644 --- a/docs/reference/type-aliases/AppHotkeyId.md +++ b/docs/reference/type-aliases/AppHotkeyId.md @@ -7,6 +7,6 @@ title: AppHotkeyId type AppHotkeyId = keyof RegisteredAppHotkeys & string; ``` -Defined in: [app-hotkeys.ts:155](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L155) +Defined in: [app-hotkeys.ts:157](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L157) Ids of the registered app hotkeys. diff --git a/docs/reference/type-aliases/AppHotkeyOptions.md b/docs/reference/type-aliases/AppHotkeyOptions.md index 0ef9bdfc..d9c9d68a 100644 --- a/docs/reference/type-aliases/AppHotkeyOptions.md +++ b/docs/reference/type-aliases/AppHotkeyOptions.md @@ -7,6 +7,6 @@ title: AppHotkeyOptions type AppHotkeyOptions = AppHotkeyChordOptions & AppHotkeySequenceOptions; ``` -Defined in: [app-hotkeys.ts:44](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L44) +Defined in: [app-hotkeys.ts:46](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L46) Every declared option. Kind-specific options apply only while the effective hotkey has that kind. diff --git a/docs/reference/type-aliases/AppHotkeySequenceOptions.md b/docs/reference/type-aliases/AppHotkeySequenceOptions.md index 6ac4c6ae..a1faca1e 100644 --- a/docs/reference/type-aliases/AppHotkeySequenceOptions.md +++ b/docs/reference/type-aliases/AppHotkeySequenceOptions.md @@ -7,6 +7,6 @@ title: AppHotkeySequenceOptions type AppHotkeySequenceOptions = Pick; ``` -Defined in: [app-hotkeys.ts:38](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L38) +Defined in: [app-hotkeys.ts:40](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L40) Declared options for an app hotkey whose default is a sequence. diff --git a/docs/reference/type-aliases/AppHotkeyStatus.md b/docs/reference/type-aliases/AppHotkeyStatus.md index 60922fc4..19b8a8cd 100644 --- a/docs/reference/type-aliases/AppHotkeyStatus.md +++ b/docs/reference/type-aliases/AppHotkeyStatus.md @@ -7,7 +7,7 @@ title: AppHotkeyStatus type AppHotkeyStatus = "active" | "suspended" | "disabled" | "inactive" | "unbound"; ``` -Defined in: [app-hotkeys.ts:307](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L307) +Defined in: [app-hotkeys.ts:317](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L317) Status of an app hotkey in the running app. - `'active'`: at least one enabled registration diff --git a/docs/reference/type-aliases/AppHotkeys.md b/docs/reference/type-aliases/AppHotkeys.md index 5e362973..bea79a2b 100644 --- a/docs/reference/type-aliases/AppHotkeys.md +++ b/docs/reference/type-aliases/AppHotkeys.md @@ -7,6 +7,6 @@ title: AppHotkeys type AppHotkeys = Readonly>; ``` -Defined in: [app-hotkeys.ts:92](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L92) +Defined in: [app-hotkeys.ts:94](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L94) A map of app hotkeys keyed by id. diff --git a/docs/reference/type-aliases/CustomHotkeys.md b/docs/reference/type-aliases/CustomHotkeys.md index 8921a401..221885ad 100644 --- a/docs/reference/type-aliases/CustomHotkeys.md +++ b/docs/reference/type-aliases/CustomHotkeys.md @@ -7,7 +7,7 @@ title: CustomHotkeys type CustomHotkeys = { -readonly [K in keyof T]?: Hotkey | null }; ``` -Defined in: [app-hotkeys.ts:161](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L161) +Defined in: [app-hotkeys.ts:163](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L163) The user's hotkeys that differ from the declared defaults, keyed by app hotkey id. This is the shape to save. `null` means the user unbound it. diff --git a/docs/reference/type-aliases/DefinedAppHotkeys.md b/docs/reference/type-aliases/DefinedAppHotkeys.md index a3cc4182..6a836886 100644 --- a/docs/reference/type-aliases/DefinedAppHotkeys.md +++ b/docs/reference/type-aliases/DefinedAppHotkeys.md @@ -7,7 +7,7 @@ title: DefinedAppHotkeys type DefinedAppHotkeys = { readonly [K in keyof T & string]: AppHotkey> }; ``` -Defined in: [app-hotkeys.ts:126](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L126) +Defined in: [app-hotkeys.ts:128](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L128) The app hotkeys returned by `defineAppHotkeys` for a declaration object. diff --git a/docs/reference/type-aliases/DisplayHotkey.md b/docs/reference/type-aliases/DisplayHotkey.md index 0be651d1..4ae99a5b 100644 --- a/docs/reference/type-aliases/DisplayHotkey.md +++ b/docs/reference/type-aliases/DisplayHotkey.md @@ -9,6 +9,6 @@ type DisplayHotkey = | ReadonlyArray; ``` -Defined in: [format.ts:73](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L73) +Defined in: [format.ts:76](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L76) A hotkey to display: a chord or a sequence of chords. diff --git a/docs/reference/type-aliases/DisplayHotkeyChord.md b/docs/reference/type-aliases/DisplayHotkeyChord.md index ec85cc64..1a897c3a 100644 --- a/docs/reference/type-aliases/DisplayHotkeyChord.md +++ b/docs/reference/type-aliases/DisplayHotkeyChord.md @@ -7,9 +7,10 @@ title: DisplayHotkeyChord type DisplayHotkeyChord = | RegisterableHotkeyChord | ParsedHotkeyChord - | string & object; + | CanonicalModifier; ``` -Defined in: [format.ts:69](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L69) +Defined in: [format.ts:72](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/format.ts#L72) -A single chord to display: a string, raw object, or parsed hotkey. +A single chord to display: a hotkey string, which includes single keys, a +modifier on its own, a raw object such as `{ key }`, or a parsed hotkey. diff --git a/docs/reference/type-aliases/HotkeyOptionsFor.md b/docs/reference/type-aliases/HotkeyOptionsFor.md index 0e587dee..424aeab7 100644 --- a/docs/reference/type-aliases/HotkeyOptionsFor.md +++ b/docs/reference/type-aliases/HotkeyOptionsFor.md @@ -7,7 +7,7 @@ title: HotkeyOptionsFor type HotkeyOptionsFor = [T] extends [never] ? HotkeyChordOptions & HotkeySequenceOptions : T extends readonly [RegisterableHotkeyChord] ? HotkeyChordOptions : T extends RegisterableHotkeySequence ? HotkeySequenceOptions : HotkeyChordOptions; ``` -Defined in: [hotkey-manager.ts:136](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L136) +Defined in: [hotkey-manager.ts:141](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L141) The options type for a hotkey: chord options for chords (including one-step tuples), sequence options for sequences. diff --git a/docs/reference/type-aliases/HotkeyRegistration.md b/docs/reference/type-aliases/HotkeyRegistration.md index 4951c66d..c27cf4bb 100644 --- a/docs/reference/type-aliases/HotkeyRegistration.md +++ b/docs/reference/type-aliases/HotkeyRegistration.md @@ -9,6 +9,6 @@ type HotkeyRegistration = | HotkeySequenceRegistration; ``` -Defined in: [hotkey-manager.ts:180](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L180) +Defined in: [hotkey-manager.ts:185](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L185) A registered hotkey in the HotkeyManager. diff --git a/docs/reference/type-aliases/HotkeyRegistrationStatus.md b/docs/reference/type-aliases/HotkeyRegistrationStatus.md index a4d31f01..deaf41cd 100644 --- a/docs/reference/type-aliases/HotkeyRegistrationStatus.md +++ b/docs/reference/type-aliases/HotkeyRegistrationStatus.md @@ -7,7 +7,7 @@ title: HotkeyRegistrationStatus type HotkeyRegistrationStatus = "active" | "suspended" | "disabled"; ``` -Defined in: [hotkey-manager.ts:190](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L190) +Defined in: [hotkey-manager.ts:195](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L195) Whether a registration is on. Focus isn't checked: a registration on an element also needs focus inside that element to fire. diff --git a/docs/reference/type-aliases/HotkeyRegistrationView.md b/docs/reference/type-aliases/HotkeyRegistrationView.md index eb02ed8c..3a2b481b 100644 --- a/docs/reference/type-aliases/HotkeyRegistrationView.md +++ b/docs/reference/type-aliases/HotkeyRegistrationView.md @@ -9,7 +9,7 @@ type HotkeyRegistrationView = | HotkeySequenceRegistrationView; ``` -Defined in: [hotkey-manager.ts:225](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L225) +Defined in: [hotkey-manager.ts:230](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L230) Public view of a hotkey registration for display and introspection. Narrow with `kind` to read chord- or sequence-specific fields. diff --git a/docs/reference/type-aliases/RegisteredAppHotkeys.md b/docs/reference/type-aliases/RegisteredAppHotkeys.md index db1791c8..818e358c 100644 --- a/docs/reference/type-aliases/RegisteredAppHotkeys.md +++ b/docs/reference/type-aliases/RegisteredAppHotkeys.md @@ -7,6 +7,6 @@ title: RegisteredAppHotkeys type RegisteredAppHotkeys = Register extends object ? T : AppHotkeys; ``` -Defined in: [app-hotkeys.ts:148](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L148) +Defined in: [app-hotkeys.ts:150](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/app-hotkeys.ts#L150) The app hotkeys type from `Register`, or a generic map when none is registered. diff --git a/docs/reference/type-aliases/Target.md b/docs/reference/type-aliases/Target.md index e181934f..c36a7f8b 100644 --- a/docs/reference/type-aliases/Target.md +++ b/docs/reference/type-aliases/Target.md @@ -7,6 +7,6 @@ title: Target type Target = HTMLElement | Document | Window; ``` -Defined in: [hotkey-manager.ts:50](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L50) +Defined in: [hotkey-manager.ts:55](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/hotkey-manager.ts#L55) An element, document, or window that hotkeys can listen on. diff --git a/docs/reference/variables/ALL_KEYS.md b/docs/reference/variables/ALL_KEYS.md index f3e58888..a233a64c 100644 --- a/docs/reference/variables/ALL_KEYS.md +++ b/docs/reference/variables/ALL_KEYS.md @@ -68,13 +68,13 @@ const ALL_KEYS: Set< | PunctuationKey>; ``` -Defined in: [constants.ts:305](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L305) +Defined in: [constants.ts:217](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L217) Set of all valid non-modifier keys. -This is the union of all key type sets (letters, numbers, function keys, navigation, -editing, and punctuation). Used primarily for validation to check if a key string -is recognized and will have type-safe autocomplete support. +This is the union of all key type sets (letters, numbers, function keys, +navigation, editing, punctuation, and other named keys): every key with +type-safe autocomplete support. ## See diff --git a/docs/reference/variables/EDITING_KEYS.md b/docs/reference/variables/EDITING_KEYS.md index 3a7dba69..1b32c902 100644 --- a/docs/reference/variables/EDITING_KEYS.md +++ b/docs/reference/variables/EDITING_KEYS.md @@ -7,7 +7,7 @@ title: EDITING_KEYS const EDITING_KEYS: Set; ``` -Defined in: [constants.ts:212](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L212) +Defined in: [constants.ts:153](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L153) Set of all valid editing and special keys. diff --git a/docs/reference/variables/FUNCTION_KEYS.md b/docs/reference/variables/FUNCTION_KEYS.md index c3fd2d02..69b44079 100644 --- a/docs/reference/variables/FUNCTION_KEYS.md +++ b/docs/reference/variables/FUNCTION_KEYS.md @@ -7,7 +7,7 @@ title: FUNCTION_KEYS const FUNCTION_KEYS: Set; ``` -Defined in: [constants.ts:160](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L160) +Defined in: [constants.ts:131](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L131) Set of all valid function keys (F1-F24). diff --git a/docs/reference/variables/LETTER_KEYS.md b/docs/reference/variables/LETTER_KEYS.md index 55671687..be756269 100644 --- a/docs/reference/variables/LETTER_KEYS.md +++ b/docs/reference/variables/LETTER_KEYS.md @@ -7,7 +7,7 @@ title: LETTER_KEYS const LETTER_KEYS: Set; ``` -Defined in: [constants.ts:105](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L105) +Defined in: [constants.ts:110](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L110) Set of all valid letter keys (A-Z). diff --git a/docs/reference/variables/MODIFIER_ALIASES.md b/docs/reference/variables/MODIFIER_ALIASES.md index 58f2054d..67f026aa 100644 --- a/docs/reference/variables/MODIFIER_ALIASES.md +++ b/docs/reference/variables/MODIFIER_ALIASES.md @@ -7,7 +7,7 @@ title: MODIFIER_ALIASES const MODIFIER_ALIASES: Record; ``` -Defined in: [constants.ts:61](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L61) +Defined in: [constants.ts:66](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L66) Maps modifier key aliases to their canonical form or platform-adaptive 'Mod'. diff --git a/docs/reference/variables/MODIFIER_KEYS.md b/docs/reference/variables/MODIFIER_KEYS.md index d508067a..d2eee197 100644 --- a/docs/reference/variables/MODIFIER_KEYS.md +++ b/docs/reference/variables/MODIFIER_KEYS.md @@ -7,7 +7,7 @@ title: MODIFIER_KEYS const MODIFIER_KEYS: Set; ``` -Defined in: [constants.ts:40](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L40) +Defined in: [constants.ts:45](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L45) Set of canonical modifier key names for fast lookup. diff --git a/docs/reference/variables/MODIFIER_ORDER.md b/docs/reference/variables/MODIFIER_ORDER.md index b00ad966..1abfc71a 100644 --- a/docs/reference/variables/MODIFIER_ORDER.md +++ b/docs/reference/variables/MODIFIER_ORDER.md @@ -7,7 +7,7 @@ title: MODIFIER_ORDER const MODIFIER_ORDER: CanonicalModifier[]; ``` -Defined in: [constants.ts:26](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L26) +Defined in: [constants.ts:31](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L31) Canonical order for modifiers in normalized hotkey strings. diff --git a/docs/reference/variables/NAVIGATION_KEYS.md b/docs/reference/variables/NAVIGATION_KEYS.md index 28c5f9e5..1ee4fd9c 100644 --- a/docs/reference/variables/NAVIGATION_KEYS.md +++ b/docs/reference/variables/NAVIGATION_KEYS.md @@ -7,7 +7,7 @@ title: NAVIGATION_KEYS const NAVIGATION_KEYS: Set; ``` -Defined in: [constants.ts:194](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L194) +Defined in: [constants.ts:142](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L142) Set of all valid navigation keys for cursor movement and document navigation. diff --git a/docs/reference/variables/NUMBER_KEYS.md b/docs/reference/variables/NUMBER_KEYS.md index ef3a1dff..da453592 100644 --- a/docs/reference/variables/NUMBER_KEYS.md +++ b/docs/reference/variables/NUMBER_KEYS.md @@ -7,7 +7,7 @@ title: NUMBER_KEYS const NUMBER_KEYS: Set; ``` -Defined in: [constants.ts:141](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L141) +Defined in: [constants.ts:121](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L121) Set of all valid number keys (0-9). diff --git a/docs/reference/variables/PUNCTUATION_CODE_MAP.md b/docs/reference/variables/PUNCTUATION_CODE_MAP.md index 2ac364c3..e532ec3c 100644 --- a/docs/reference/variables/PUNCTUATION_CODE_MAP.md +++ b/docs/reference/variables/PUNCTUATION_CODE_MAP.md @@ -7,7 +7,7 @@ title: PUNCTUATION_CODE_MAP const PUNCTUATION_CODE_MAP: Record; ``` -Defined in: [constants.ts:277](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L277) +Defined in: [constants.ts:182](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L182) Maps `KeyboardEvent.code` values for punctuation keys to their canonical characters. diff --git a/docs/reference/variables/PUNCTUATION_KEYS.md b/docs/reference/variables/PUNCTUATION_KEYS.md index d47cf1ca..a33f3b9d 100644 --- a/docs/reference/variables/PUNCTUATION_KEYS.md +++ b/docs/reference/variables/PUNCTUATION_KEYS.md @@ -7,7 +7,7 @@ title: PUNCTUATION_KEYS const PUNCTUATION_KEYS: Set; ``` -Defined in: [constants.ts:233](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L233) +Defined in: [constants.ts:169](https://github.com/TanStack/hotkeys/blob/main/packages/hotkeys/src/constants.ts#L169) Set of all valid punctuation keys commonly used in keyboard shortcuts. diff --git a/examples/alpine/createHeldKeys/index.html b/examples/alpine/createHeldKeys/index.html index eb618368..7aacb1ee 100644 --- a/examples/alpine/createHeldKeys/index.html +++ b/examples/alpine/createHeldKeys/index.html @@ -30,7 +30,7 @@

Currently Held Keys