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