diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..9a89b8a3 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,4 @@ +{ + "mode": "pre", + "tag": "alpha" +} diff --git a/.changeset/solid-hotkeys-solid-2.md b/.changeset/solid-hotkeys-solid-2.md new file mode 100644 index 00000000..da3ec6a2 --- /dev/null +++ b/.changeset/solid-hotkeys-solid-2.md @@ -0,0 +1,12 @@ +--- +'@tanstack/solid-hotkeys': major +--- + +Support Solid 2. `@tanstack/solid-hotkeys` now requires `solid-js` 2 (`>=2.0.0-rc.20 <3.0.0`); stay on 1.x for Solid 1. + +- The primitives keep their API. Reactive options are tracked by split effects (compute reads the options, the effect applies them), `HotkeysProvider` publishes its store in `onSettled`, and provider props read once at creation are read untracked. +- `HotkeysProvider` renders the Solid 2 context without JSX, so the adapter depends on `solid-js` only. +- The internal store selector writes with `ownedWrite`, since store updates arrive from outside the owner. +- `createHotkeyRegistrations` returns a store reconciled by registration `id`, so `` rows keep their identity when registrations change. +- As with every Solid 2 signal, values read right after a write outside a reactive scope update after the next flush (`flush()` from `solid-js`, or the next microtask). +- `@tanstack/solid-hotkeys-devtools` stays on Solid 1 until TanStack Devtools has a Solid 2 entry. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 324ad6b4..2c50d09a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,7 +2,7 @@ name: Release on: push: - branches: [main, alpha, beta, rc] + branches: [main, alpha, beta, rc, '*-pre'] concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.ref }} diff --git a/.intent/review-state.json b/.intent/review-state.json index 12157570..fc1ca221 100644 --- a/.intent/review-state.json +++ b/.intent/review-state.json @@ -203,21 +203,23 @@ "evidence": ["packages/react-hotkeys/skills/react-hotkeys/SKILL.md"] }, "skill:packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": { - "fingerprint": "645b6917b6912a02771f785ad286243031c6e249452f34568be3af6eadb98566", + "fingerprint": "0a4b922f7913b6e976f4bd98719adc8e1f01850e290c4ac61223e5a2e7405607", "snapshot": { - "docs/framework/solid/guides/hotkeys-provider-and-scopes.md": "4c68bc0acc2a0dfafabf52cb36ac787dc7e197b69c2e9641c1c94ed8cc32f796", - "docs/framework/solid/quick-start.md": "74e8d20b975f1bab90f99e00226670a1fec555459650e498264415c03f79f0ef", - "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": "b44dd638d4b46fecd9883319ed623291ede33f2c2b5ffe41d7486ce19686e803", - "packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md": "d3dda6cd9aa0a8655aa43f017490797ad3d2de42206446b2403363873b84b133", - "packages/solid-hotkeys/src/HotkeysProvider.tsx": "72b57a5785a2e5215c33c7c2768fe2e18972e35987ae21e352a37539111f342a", + "docs/framework/solid/guides/hotkeys-provider-and-scopes.md": "073eb36a16f7e3f23baa36ed5121c9d90f5e20daf7e39a0b2e2799d3f60e8850", + "docs/framework/solid/quick-start.md": "b6f74d6397d52352ebe6a504803b8f922c528c5dd502070a11665eb9595c24ce", + "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": "df09c21c814bc6c07641ee7bac50b4ea38ea9a89b5644c7e1e04591e4d36ed1e", + "packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md": "9e0eb2bf7e9651ed7d1da3c40eb8bc1d1ebaa3a92e093ee670c8e2f7d33e0a9c", + "packages/solid-hotkeys/src/HotkeysProvider.tsx": "a35ba3ea2cccea09b96512ba38b1d3a3270479900e93a4647b04063cab2817c6", "packages/solid-hotkeys/src/appHotkeys.ts": "5d44d8ce952af7a3e522fd42511a963e9af75c4229a2449cde16a180c6f030f2", "packages/solid-hotkeys/src/createHotkey.ts": "3be9476087da2b53e809ad5ac59b2f791f38cc4d88e2b151258e668a9fc92294", - "packages/solid-hotkeys/src/createHotkeys.ts": "61fe0f81f807d94150d066b50309d286f10531002a13b92baed1c21946c41a6b" + "packages/solid-hotkeys/src/createHotkeys.ts": "f6f2acce5131601ed34195eb75c4ee51f4bd247558561fad83a6c28d2cbe37c3" }, - "head": "04c7445967e059f4bffa050b49c9f9d65260a959", - "outcome": "no-change", - "reason": "Element-target hotkeys in React, Svelte, Solid and Octane now run after the framework key handlers, through the adapter-only afterDelegatedHandlers option. No skill states the old order, so no skill change.", - "evidence": ["packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: docs/framework/solid/guides/hotkeys-provider-and-scopes.md, docs/framework/solid/quick-start.md, packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md, packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md, packages/solid-hotkeys/src/HotkeysProvider.tsx, packages/solid-hotkeys/src/createHotkeys.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "skill:packages/svelte-hotkeys/skills/svelte-hotkeys/SKILL.md": { "fingerprint": "b66ca4826ffde88dd1f33fd93407d74705e103f5c6e184b2fec3bc2266582144", @@ -258,7 +260,7 @@ "evidence": ["packages/vue-hotkeys/skills/vue-hotkeys/SKILL.md"] }, "planning:_artifacts": { - "fingerprint": "1fb046a200ae2254a480e3f355a470689a10e0a410a6acd80e40a5636ca05da9", + "fingerprint": "175b6569ecf79d8ef22b52ba34bb072a3fc4d83e89f5544d296b55f6f33282fa", "snapshot": { "_artifacts/domain_map.yaml": "2563ba9b2d472df81206a62b1add175bd3341b9bb99bd51869c305746f2a4a46", "_artifacts/skill_spec.md": "58e19f35836571a37984e4435168651a2936dffb48ffe01cc7fddcc0eafea916", @@ -282,8 +284,8 @@ "docs/framework/react/guides/hotkeys.md": "03b024ba6a23d6b87a7b99be8a30b54fd5d82ba27e075ba0c00f648c82759e5f", "docs/framework/react/guides/sequences.md": "5c892d5d2577bd63a12cd695bf6fc0f4a850400604c33b6c2f6c16fbd82754dc", "docs/framework/react/quick-start.md": "23a6c1a998120d968a87b37c4f340b71052fc94e97eb52decd16b91bd655a638", - "docs/framework/solid/guides/hotkeys-provider-and-scopes.md": "4c68bc0acc2a0dfafabf52cb36ac787dc7e197b69c2e9641c1c94ed8cc32f796", - "docs/framework/solid/quick-start.md": "74e8d20b975f1bab90f99e00226670a1fec555459650e498264415c03f79f0ef", + "docs/framework/solid/guides/hotkeys-provider-and-scopes.md": "073eb36a16f7e3f23baa36ed5121c9d90f5e20daf7e39a0b2e2799d3f60e8850", + "docs/framework/solid/quick-start.md": "b6f74d6397d52352ebe6a504803b8f922c528c5dd502070a11665eb9595c24ce", "docs/framework/svelte/guides/hotkeys-provider-and-scopes.md": "49c87f7d1e0fdcef47d08af80339b26c7e560ea2265e0a5c83983d8b157432fd", "docs/framework/svelte/quick-start.md": "6fdf6ea3a44b3cd7fbf115b6d464460302af1b58112ca0b5b00723b4f5faab45", "docs/framework/vue/guides/hotkeys-provider-and-scopes.md": "e59dc14fa822e884a4a7d775696157aaa0e5a5af47f331075333fd4b8d256180", @@ -367,12 +369,12 @@ "packages/react-hotkeys/tests/skills/shortcut-settings/shortcut-settings.test.tsx": "dccabaf1efac5b20ed5c13d159a07ae37b1079627469332995741c7a6ec37223", "packages/react-hotkeys/tests/skills/shortcut-settings/solution.tsx": "23a9dd46565c8617361bad3bcf24903c6d2d0c1db8c5e16b66ee5a7bc02fc62b", "packages/react-hotkeys/tests/skills/shortcut-settings/task.md": "1104e51ba1cb603b145b5eece30197d2e2936e21b1592ea75004244d49fcadd1", - "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": "b44dd638d4b46fecd9883319ed623291ede33f2c2b5ffe41d7486ce19686e803", - "packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md": "d3dda6cd9aa0a8655aa43f017490797ad3d2de42206446b2403363873b84b133", - "packages/solid-hotkeys/src/HotkeysProvider.tsx": "72b57a5785a2e5215c33c7c2768fe2e18972e35987ae21e352a37539111f342a", + "packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md": "df09c21c814bc6c07641ee7bac50b4ea38ea9a89b5644c7e1e04591e4d36ed1e", + "packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md": "9e0eb2bf7e9651ed7d1da3c40eb8bc1d1ebaa3a92e093ee670c8e2f7d33e0a9c", + "packages/solid-hotkeys/src/HotkeysProvider.tsx": "a35ba3ea2cccea09b96512ba38b1d3a3270479900e93a4647b04063cab2817c6", "packages/solid-hotkeys/src/appHotkeys.ts": "5d44d8ce952af7a3e522fd42511a963e9af75c4229a2449cde16a180c6f030f2", "packages/solid-hotkeys/src/createHotkey.ts": "3be9476087da2b53e809ad5ac59b2f791f38cc4d88e2b151258e668a9fc92294", - "packages/solid-hotkeys/src/createHotkeys.ts": "61fe0f81f807d94150d066b50309d286f10531002a13b92baed1c21946c41a6b", + "packages/solid-hotkeys/src/createHotkeys.ts": "f6f2acce5131601ed34195eb75c4ee51f4bd247558561fad83a6c28d2cbe37c3", "packages/svelte-hotkeys/skills/svelte-hotkeys/SKILL.md": "8dcc12e17d2389322ab8056f27faf03bb2f314c75b92ed851b0390024d4b8c9f", "packages/svelte-hotkeys/skills/svelte-hotkeys/references/app-hotkeys.md": "fa0dd67192d53cc1a6cacc87b68523a9a2c94ca0c27b90b10a46861643885a2e", "packages/svelte-hotkeys/src/HotkeysCtx.ts": "31852d1e1545c073eb06d6d99722e025b09130a11828ddc203ac02809477dd25", @@ -390,10 +392,12 @@ "packages/vue-hotkeys/src/useHotkeyRecorder.ts": "835f6af7892f5d8a35925821be8a61b923d022fa6f7966f50db58687afdff367", "packages/vue-hotkeys/src/useHotkeys.ts": "be50b9a76c2f8d47901eea4bf66f688559fb7337d1123a1128bc13ba89dd8aef" }, - "head": "f3c7a6e8da6f9112c7a92402aff0c3efeaa751a1", - "outcome": "no-change", - "reason": "No new skill, domain or task.", - "evidence": ["_artifacts/skill_spec.md"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: docs/framework/solid/guides/hotkeys-provider-and-scopes.md, docs/framework/solid/quick-start.md, packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md, packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md, packages/solid-hotkeys/src/HotkeysProvider.tsx, packages/solid-hotkeys/src/createHotkeys.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:.changeset/intent-skills.md": { "fingerprint": "a3f3a7466ee28fed505a518e9cd18cfda96a2282d207d73317b00d60b4430f62", @@ -743,14 +747,16 @@ "evidence": ["examples/react/kitchen-sink/src/shared.tsx"] }, "source:examples/solid/kitchen-sink/src/index.tsx": { - "fingerprint": "8e566d191f693b32251c02ac062f9ba50f005cf79d0f473a5527e3b729ebf095", + "fingerprint": "ca230fdf9652a2939d5f1fd84ddcb8d56224991245be567a58d4bee3fca6b490", "snapshot": { - "examples/solid/kitchen-sink/src/index.tsx": "f6603ae6ad6e5d00ed9c8290e860cc0dadecdea206d3fd0bce27d6946dbfe8ee" + "examples/solid/kitchen-sink/src/index.tsx": "215e91715f277dfaa1051a53e88439f31d896057871c324d66b0f081955e9ec7" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", - "outcome": "out-of-scope", - "reason": "Tests, examples, or generated reference docs for the hint behavior change; no guidance depends on them.", - "evidence": ["examples/solid/kitchen-sink/src/index.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/kitchen-sink/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:examples/svelte/kitchen-sink/src/Hint.svelte": { "fingerprint": "06624d7bb8cbbfd41fe9221276689a15873354441f4747b7cbc4fc8fc17cb15a", @@ -973,14 +979,16 @@ "evidence": ["packages/solid-hotkeys/src/createHotkeyHint.ts"] }, "source:packages/solid-hotkeys/tests/createHotkeyHint.test.tsx": { - "fingerprint": "a7510a58a1dc5db0a12df33541f32b5891353c27670915c10a64a5266976439e", + "fingerprint": "ca0acb520d84c02e5b355a1f8c4d46965925fe3620cb9f1741b9c76f82ccb935", "snapshot": { - "packages/solid-hotkeys/tests/createHotkeyHint.test.tsx": "bddd013b4c50d21644a23ece04d9d1827df9685d3b0ff1edb39d9f5044bf9506" + "packages/solid-hotkeys/tests/createHotkeyHint.test.tsx": "f30b9c89e714cb39a9c0355aaccebb54f5ecb27e0e2c4b43e5cb7d081ad921d9" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", - "outcome": "out-of-scope", - "reason": "Tests, examples, or generated reference docs for the hint behavior change; no guidance depends on them.", - "evidence": ["packages/solid-hotkeys/tests/createHotkeyHint.test.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/createHotkeyHint.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/svelte-hotkeys/src/getHotkeyHint.svelte.ts": { "fingerprint": "2984befcc87fa99c1cbf46d8a355adbfaf1490d21339e71a53a7e36723cc8bf4", @@ -1101,16 +1109,15 @@ ] }, "source:docs/framework/solid/guides/hotkeys.md": { - "fingerprint": "6c25b1324d2e7640afe7f73c96cbc3abc1578e444b28dc4ec0bf7fc2712b9686", + "fingerprint": "639b3246b8042fd221960e78eb22bb277381c95aeb3b5b8fb3bb46c5397d806e", "snapshot": { - "docs/framework/solid/guides/hotkeys.md": "1567cb148cde0095a59cf329c8182f0bd00f585e221af0b9f1419676cabe197e" + "docs/framework/solid/guides/hotkeys.md": "3dd84eea11f726b50c77cbf837ffa259d21ee617bef27ae31ae7514109918969" }, - "head": "b5e429ab26366a9ed188c9e7cd774fb93dbee1f1", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", "outcome": "updated", - "reason": "Documents ignoreDefaultPrevented, component libraries per framework, and keyup chord release; hotkeys-core SKILL.md has the Escape pitfall. Adapter skills defer to core for option behavior.", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "docs/framework/solid/guides/hotkeys.md", - "packages/hotkeys/skills/hotkeys-core/SKILL.md" + "Changed: docs/framework/solid/guides/hotkeys.md at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:docs/framework/svelte/guides/hotkeys.md": { @@ -2126,14 +2133,16 @@ "evidence": ["packages/solid-hotkeys/src/index.ts"] }, "source:packages/solid-hotkeys/tests/scopes.test.tsx": { - "fingerprint": "349e6fd64fc87f2b7bc4e6bd315fad57796ca348fea9e1747d2c908a7789ec07", + "fingerprint": "e80c13e4b2b7d68a5036f12a6002b964811eb2ad3630376132c5e21a761e3b3e", "snapshot": { - "packages/solid-hotkeys/tests/scopes.test.tsx": "0e240fdb595b9fb48e04ab6e8ff0623233f04ac4996cfbfd9283e1eea53d051b" + "packages/solid-hotkeys/tests/scopes.test.tsx": "75db4c36747bca51ce6a859b60ec5b10789921d7e5c53e88b7b5bb3c655beb25" }, - "head": "2a31087b3ede3d5bb6b720009643ee65acb422e2", - "outcome": "out-of-scope", - "reason": "Generated reference docs, tests, or devtools display; no skill guidance depends on them.", - "evidence": ["packages/solid-hotkeys/tests/scopes.test.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/scopes.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/svelte-hotkeys/src/getHotkeyScopesState.svelte.ts": { "fingerprint": "c39420db15f120d59ee9d87ac7b4291b1f23232fa0cb6fbf90940a5a283384b4", @@ -2523,16 +2532,15 @@ ] }, "source:docs/installation.md": { - "fingerprint": "c2cdb7d7baafc96be4a0b5ac7b66de30e46d42b47cd1ae17f0596f467cd084d5", + "fingerprint": "55b59e0301724cf85cedb768271d3ccc8192bc150b1739ecbe4d4f1a46d7c0a9", "snapshot": { - "docs/installation.md": "4d42c5fe9581aa4e456ed5d0aeff19835efa42b2368eb1d001f560566a955adc" + "docs/installation.md": "7fde0556a906ed6c0f89af45b49aca414e73f9897dc323eb85f4b6eb8c970d79" }, - "head": "a61d917542e56c07f1a3d2aa3f6eb951e5150818", - "outcome": "no-change", - "reason": "The Alpine line now says to install hotkeysPlugin before Alpine.start(). The alpine-hotkeys skill item covers that setup.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "docs/installation.md", - "packages/alpine-hotkeys/skills/alpine-hotkeys/SKILL.md" + "Changed: docs/installation.md at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:nx.json": { @@ -5587,15 +5595,15 @@ ] }, "source:packages/solid-hotkeys/src/_useSelector.ts": { - "fingerprint": "7c7938d512028001d845770579db80fac1db09ff07e1debffcd3741b2f4d6c38", + "fingerprint": "2398f0b3ea872abdf5e0280d1558c4fe2581b84c43e6b92bea0fbc85a246890d", "snapshot": { - "packages/solid-hotkeys/src/_useSelector.ts": "14e941f7e66026de12f84da2d1cccd07c8c0f8843b1807944e7e61a95469db48" + "packages/solid-hotkeys/src/_useSelector.ts": "9ee0f54c6c9c82609097fdbec2ca7cb05e2ea3182220cb1892032325e4c3f47b" }, - "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", - "outcome": "no-change", - "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "Reviewed the diff for this file against the skills that reference it." + "Changed: packages/solid-hotkeys/src/_useSelector.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:packages/solid-hotkeys/src/createHeldKeyCodes.ts": { @@ -5623,25 +5631,27 @@ ] }, "source:packages/solid-hotkeys/src/createHotkeyRecorder.ts": { - "fingerprint": "c283a2d40860d22cb37cfbb17e19cb7a638d4a16f91afaa3effa4d4e537aa24b", + "fingerprint": "da122e4ff619b88a78affa0883a9ee9780bb01a866c54ec46f4809caa957554e", "snapshot": { - "packages/solid-hotkeys/src/createHotkeyRecorder.ts": "241d2046744f1a19508ba47c425c0ff8615bc0f6b9c831c18ae8a8c031cff2c3" + "packages/solid-hotkeys/src/createHotkeyRecorder.ts": "f8d8a3d797546ce31770394f529106d8cfa64062d2a90428c1a2115abf7d1e4d" }, - "head": "5d9d8332ef4fa70cdcb00bb84f43b4a1ada9df02", - "outcome": "no-change", - "reason": "Reviewed with the mapped skills: option merging, nullish hotkeys, null targets, and customHotkeys updates need no guidance beyond the updated react, preact, and app-hotkeys skills.", - "evidence": ["packages/solid-hotkeys/src/createHotkeyRecorder.ts"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/src/createHotkeyRecorder.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/solid-hotkeys/src/createHotkeyRegistrations.ts": { - "fingerprint": "5d724e1b3a478eacdfcd1af8c0edacca727a4a1f1b6f382bbdb037706d76471a", + "fingerprint": "fd6d32413e6c17c16cbadb185cb0eaed27f34ae15f81e9a26833ed3548c17d00", "snapshot": { - "packages/solid-hotkeys/src/createHotkeyRegistrations.ts": "72252a0a441faf48ec11cd4a5c236db8ca5a89bc24f930d2bd6c18c58d61827d" + "packages/solid-hotkeys/src/createHotkeyRegistrations.ts": "354925da774af13c7f08884b09edc1d792fb10eaa2aa8d0c07b4b88de9340791" }, - "head": "8602ebef6af01c1b563ca61902df0abacdb45c87", - "outcome": "no-change", - "reason": "Source or generated docs changed without affecting skill guidance (store internals, provider loading, dev-only warnings, regenerated line numbers).", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "Reviewed the diff for this file against the skills that reference it." + "Changed: packages/solid-hotkeys/src/createHotkeyRegistrations.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:packages/solid-hotkeys/src/createKeyHold.ts": { @@ -5693,14 +5703,16 @@ ] }, "source:pnpm-workspace.yaml": { - "fingerprint": "82deb9e47dea10634af36a4ddaa5801bae8a61a5c5847dea308e2a2c4756cde4", + "fingerprint": "bee7674f8d6e8b7d008a6850b447bfec0d5f49c3e1b237a88a85cb1da48e26a9", "snapshot": { - "pnpm-workspace.yaml": "19f87851366291439baf06b5a7d5ee3c238cfe7968ef7ac28b9b68a7df6c4ba5" + "pnpm-workspace.yaml": "7200a557d56633a069912b479e9ce04c8daa5c441fe5f82775c1ce29bc8a052f" }, - "head": "c3fb4f36ab029d029dd39d0ee3796cb679ebb25c", - "outcome": "no-change", - "reason": "Workspace globs exclude example build output, and Analog gets an h3 package extension; no skill change.", - "evidence": ["pnpm-workspace.yaml"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: pnpm-workspace.yaml at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:docs/framework/ember/reference/classes/useHotkey.md": { "fingerprint": "016b5b9106a3df40894685f1248d72cde558ed82703e7cfc903d538d0bc4a5f4", @@ -6091,14 +6103,16 @@ "evidence": ["docs/framework/react/guides/held-key-state-helpers.md"] }, "source:docs/framework/solid/guides/formatting-display.md": { - "fingerprint": "7ebff4e6cbe6f2d264ae7eafd490b31865534bbb3d35c439f5b690c4992541ae", + "fingerprint": "d74f11ce4acee0cb435f8619fb3c26a5d86a1f8ae800440940b21439f8ea1656", "snapshot": { - "docs/framework/solid/guides/formatting-display.md": "6cdd21c468f45b64caf4c813d030149d80e6da95cefcee33de4834ecfaeb3758" + "docs/framework/solid/guides/formatting-display.md": "97d4eb4f3ee5368595c23ba69d5ffb49305699a7cadd09e27ca76ae527604f41" }, - "head": "b08446058f9beffdc098319de8fc6a538675e580", - "outcome": "no-change", - "reason": "Guide fixes from review: Outlet imports, null user agent in the Preact render, and a shared-cache note; covered by the core skill pitfall.", - "evidence": ["docs/framework/solid/guides/formatting-display.md"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: docs/framework/solid/guides/formatting-display.md at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:docs/framework/solid/guides/held-key-state-helpers.md": { "fingerprint": "c2a22771ade6594e827a104263fd2a73403de0f29acfc0872144a7b7442e11b7", @@ -6365,27 +6379,27 @@ ] }, "source:examples/solid/createHeldKeys/src/index.tsx": { - "fingerprint": "e90337f1d69e3c8dfea59cc00440ff8a6caa2724f4102e32ba26a9b92f51307a", + "fingerprint": "1e4d36dffc54c964ab1e225e3f6c9fed3e512eac97e05797fba344e76e95d2a4", "snapshot": { - "examples/solid/createHeldKeys/src/index.tsx": "9ae719031680d86133e621b59d2dff1eb23ba2d5fbd0179787e981f5263fbb97" + "examples/solid/createHeldKeys/src/index.tsx": "d295fb2bf130b4dc50772b2b234042bb25eabf4366a6f82e5ddc12b5a4d7957d" }, - "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.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "Reviewed the diff for this file; typed-behavior fingerprints are unchanged." + "Changed: examples/solid/createHeldKeys/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:examples/solid/createHotkeys/src/index.tsx": { - "fingerprint": "cb6b0c722aee34bed39fc9ea9c8bb63c4cd61ced3adedeb4ccf3dea05c2fa07a", + "fingerprint": "ff2f8419978fad2d1b1a09d0f42c9948f08a31c34b9ab9277b7c45396761c792", "snapshot": { - "examples/solid/createHotkeys/src/index.tsx": "78fd9be4f1b6f0807574aa414a5fbd66a632f94570a94f56a417984b66f49cea" + "examples/solid/createHotkeys/src/index.tsx": "2150d0909bb9b2c05ba459612b220145038eb2be36432e7ccddc4821a1b8cedb" }, - "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.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "Reviewed the diff for this file; typed-behavior fingerprints show no change for typed hotkeys." + "Changed: examples/solid/createHotkeys/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:examples/svelte/get-held-keys/src/App.svelte": { @@ -7063,24 +7077,28 @@ "evidence": ["packages/react-hotkeys/tests/unset-values.test.tsx"] }, "source:packages/solid-hotkeys/tests/appHotkeys.test.tsx": { - "fingerprint": "fbf1a3d2927e6e42d5fc34b9409216cfcb9a342db6725f9d86c7d675718f7c74", + "fingerprint": "876ef524dbdbf8651d77c561474d93c42eef8dd76431a95f721be847d207c2f0", "snapshot": { - "packages/solid-hotkeys/tests/appHotkeys.test.tsx": "f4af7332166b60f5b72537fed6cfea8b23ccfd6857077e8fc6e824206554030a" + "packages/solid-hotkeys/tests/appHotkeys.test.tsx": "47b204c10d92773309794cefc3c806fc43d32fac33899b84ffb6731490031833" }, - "head": "5d9d8332ef4fa70cdcb00bb84f43b4a1ada9df02", - "outcome": "out-of-scope", - "reason": "Test file; it adds no guidance for agents.", - "evidence": ["packages/solid-hotkeys/tests/appHotkeys.test.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/appHotkeys.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/solid-hotkeys/tests/unset-values.test.tsx": { - "fingerprint": "8e965c71da4b0be85301675cc24afe38a86ef8b78278aeb5f55722e02f094957", + "fingerprint": "c99a0aa6da825b724e7f6c7e09886fd5ebdd0b6e3f734e55814f2c2a4b5f3663", "snapshot": { - "packages/solid-hotkeys/tests/unset-values.test.tsx": "f366cc819550704723a8ad6e1425e7caf851eac3928f6da17adf5dd719efb809" + "packages/solid-hotkeys/tests/unset-values.test.tsx": "63b1e18a7e8c54f878c019393ebcea42cb46ae3428657f41f0e8ee46c194b94f" }, - "head": "5d9d8332ef4fa70cdcb00bb84f43b4a1ada9df02", - "outcome": "out-of-scope", - "reason": "Test file; it adds no guidance for agents.", - "evidence": ["packages/solid-hotkeys/tests/unset-values.test.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/unset-values.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/svelte-hotkeys/tests/CustomHotkeysPropHarness.svelte": { "fingerprint": "e248880e4d7e43203a13a8e1682f032f1471b08db2499f789966e5c32b647baa", @@ -7680,14 +7698,16 @@ "evidence": ["packages/hotkeys/skills/hotkeys-core/SKILL.md"] }, "source:packages/solid-hotkeys/tests/createHotkey.test.tsx": { - "fingerprint": "ce9d15da8699cb4bb859a423b75fe08bd5732c32bae721ab5ea59d7af76587ec", + "fingerprint": "320aaa2899b30def76091414ab4b73d5c417628b309e392cf7f751ae0ebd41d3", "snapshot": { - "packages/solid-hotkeys/tests/createHotkey.test.tsx": "7ca9a17fac06de564981466c84e1b1ba4c8604c8e5acaff710de17756c29625b" + "packages/solid-hotkeys/tests/createHotkey.test.tsx": "f079f3341c949682988fea766e983e9065ea9f2f740e746c4daa63c507a14bd6" }, - "head": "e56edd6b54a755f8bc9a34243d3a497c56560840", - "outcome": "no-change", - "reason": "Covered by the skill reviews for the affected adapters in this PR.", - "evidence": ["packages/hotkeys/skills/hotkeys-core/SKILL.md"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/createHotkey.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/vue-hotkeys/src/_useLive.ts": { "fingerprint": "90a824fed7a72e361fd984e1128b8ff0f70823dc6736a458335ffb5cfe5b4836", @@ -8050,34 +8070,40 @@ "evidence": ["packages/solid-hotkeys/src/createFormatForDisplay.ts"] }, "source:packages/solid-hotkeys/tests/platform.server.test.tsx": { - "fingerprint": "fa62af325a22e66e1d09ac75e22899d1748a56727b792eb9d3a3c60c5c817b03", + "fingerprint": "7b47f6c240d5ddaadd61ee045a62deaf7ffea4205e00d2a8297934960c31873a", "snapshot": { - "packages/solid-hotkeys/tests/platform.server.test.tsx": "4f629d5355a0e7c75ae2a5dd348d194f57444379b3986243cd21ed61593ab6a2" + "packages/solid-hotkeys/tests/platform.server.test.tsx": "0d36970e11c9724ede8541491be2e5132e5200bc327806acfca512f178b95515" }, - "head": "15620fed3d7188c0b6252773904721f0b3d1baa5", - "outcome": "no-change", - "reason": "Covered by the updated skill pitfalls (server-rendered labels) or generated reference/test changes.", - "evidence": ["packages/solid-hotkeys/tests/platform.server.test.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/platform.server.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/solid-hotkeys/tests/platform.test.tsx": { - "fingerprint": "46febbd950b2a385472cc6a41546157e2aac02c4c9bb3af67e7bd039f9a28204", + "fingerprint": "517b3ec03f61fee77d47c164b9636707f28d50ea08c6c7da49be4a1b8c27e0dd", "snapshot": { - "packages/solid-hotkeys/tests/platform.test.tsx": "9d105ebf21beb9420742e1326329ac0ff3536ed7796ffa16ab84da419e66cefd" + "packages/solid-hotkeys/tests/platform.test.tsx": "c56ea978821dce92c302a819cc9990839e8bdd00c92bf50c2ad86bd33e3b00b1" }, - "head": "15620fed3d7188c0b6252773904721f0b3d1baa5", - "outcome": "no-change", - "reason": "Covered by the updated skill pitfalls (server-rendered labels) or generated reference/test changes.", - "evidence": ["packages/solid-hotkeys/tests/platform.test.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/platform.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/solid-hotkeys/vitest.config.ts": { - "fingerprint": "42f277cfce8888815213042fe9bdd28bc44e8eb0826c2d12585f69f80fc76090", + "fingerprint": "8d425b8030bdcb5daed0469e27507b3c4fce5ea245813845361a196671dfb6d2", "snapshot": { - "packages/solid-hotkeys/vitest.config.ts": "14256b9e807fd33159836f9f27d857a6c43380f19e6333d502fca6af77aa3104" + "packages/solid-hotkeys/vitest.config.ts": "9e26c14ab109559c7d75a8616fe2a20fe700d700b3ad7e87e013496cd858b3b5" }, - "head": "15620fed3d7188c0b6252773904721f0b3d1baa5", - "outcome": "no-change", - "reason": "Covered by the updated skill pitfalls (server-rendered labels) or generated reference/test changes.", - "evidence": ["packages/solid-hotkeys/vitest.config.ts"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/vitest.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/svelte-hotkeys/src/getFormatForDisplay.ts": { "fingerprint": "5766329c479e6a0aaae5aa88206807ac34c3ddcad6a457cbb6bfe1e870e80221", @@ -8220,14 +8246,16 @@ "evidence": ["e2e/ssr/cheat-sheet.spec.ts"] }, "source:e2e/ssr/examples.ts": { - "fingerprint": "578e1ba40ae95fa5e574862fae5066f757549f7fbc7ed6aeabf8e6cfc8830324", + "fingerprint": "088cb38fc9e1eef6cf57b37ea1eaf497cbd30aeab1d8027248f65dd78e9e23c6", "snapshot": { - "e2e/ssr/examples.ts": "ff6e65160a780ef1f9aa3ebcc946903eb8052b684a8fb455d48c519f7a59c44f" + "e2e/ssr/examples.ts": "5d8b90511f18a070161500e954835e4acbf26ba2c1c562bbde4536f81156a4d6" }, - "head": "7bae18f9081c2c12bba08eaa5a6294054d4cad03", - "outcome": "no-change", - "reason": "Server-rendered cheat sheet examples, example links, removed vanilla example, SSR e2e suite, or detectPlatform(null); covered by existing skill text.", - "evidence": ["e2e/ssr/examples.ts"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/ssr/examples.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:examples/angular/injectFormatForDisplay-analog/index.html": { "fingerprint": "525b71e449c511e56c7e03b21729b3b91cf5f9e0cc15d9d516ac031dedc8eb31", @@ -9800,15 +9828,15 @@ ] }, "source:examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx": { - "fingerprint": "b9d6ac4ea7dd470adadd0b6b24ce576c59616a50443a46d6ba89c31257d55d43", + "fingerprint": "9a09b5dedc2f91d202583c4e7e2babdbc21b627aa0c8d7b3558a7288e2228915", "snapshot": { - "examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx": "a6dda85f3ea4149764746bdfb74795fb093f35ed109f51a2c815b1b39afdf911" + "examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx": "8f46916b9b802265a07877bb7c146c902f8f83580f99f41929d5372ca884d8dc" }, - "head": "7bae18f9081c2c12bba08eaa5a6294054d4cad03", - "outcome": "no-change", - "reason": "Server-rendered cheat sheet examples, example links, removed vanilla example, SSR e2e suite, or detectPlatform(null); covered by existing skill text.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx" + "Changed: examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:examples/solid/createFormatForDisplay-tanstack-start/src/commands.ts": { @@ -9860,15 +9888,15 @@ ] }, "source:examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx": { - "fingerprint": "490962780232dd21eef2e4d0887745bc06f0de90a56a272c69d71d94a87c3da2", + "fingerprint": "78c124aae2bb011534761a7cbaa6daa0253e26df5d88fe031ff05aeb3b000122", "snapshot": { - "examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx": "4ca879187eff014b4f848da82535535bcd1122870cc7501b11f6d9fe4eb86e55" + "examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx": "daeefad72f1f4fbb2490e27e0058636c1a3a0422be56e7f20c54d12eecccf9fc" }, - "head": "7bae18f9081c2c12bba08eaa5a6294054d4cad03", - "outcome": "no-change", - "reason": "Server-rendered cheat sheet examples, example links, removed vanilla example, SSR e2e suite, or detectPlatform(null); covered by existing skill text.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx" + "Changed: examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:examples/solid/createFormatForDisplay-tanstack-start/src/routes/index.tsx": { @@ -9896,27 +9924,27 @@ ] }, "source:examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json": { - "fingerprint": "5abe651252cd8ec4b275bc2e3303f689bc990c349fa03365fea9e678d16fc8df", + "fingerprint": "8c1a798ec92e262dc3a5ddf409b6a54e6b45e3e723a4cef0d921bdf667585e71", "snapshot": { - "examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json": "24b0e95df13d6b6a10a1344972ae740b9d473c29280856814f8c7190b8c94ff0" + "examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json": "664b3f5b29ccecb81703be69edc3a321d25f1673d8839aae7318a3fe961a4876" }, - "head": "7bae18f9081c2c12bba08eaa5a6294054d4cad03", - "outcome": "no-change", - "reason": "Server-rendered cheat sheet examples, example links, removed vanilla example, SSR e2e suite, or detectPlatform(null); covered by existing skill text.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json" + "Changed: examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts": { - "fingerprint": "6361b89486863b92a8e408fc4a9f490fe36792cce39496449dda42251de4a791", + "fingerprint": "2bbd13ab65b89f44be4a012a68a47a33d5f02030a57ed0a5b508a4dc74eaaf1f", "snapshot": { - "examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts": "ef7db523661d938695979d362f784f99d47119d12b4e50667df60201c75ffb67" + "examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts": "9b1aff937e9671f80d5bcc2aecfbe9b5f2f97c5b1fa78616d3af73aadca4da1f" }, - "head": "7bae18f9081c2c12bba08eaa5a6294054d4cad03", - "outcome": "no-change", - "reason": "Server-rendered cheat sheet examples, example links, removed vanilla example, SSR e2e suite, or detectPlatform(null); covered by existing skill text.", + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", "evidence": [ - "examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts" + "Changed: examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" ] }, "source:examples/svelte/getFormatForDisplay-astro/.gitignore": { @@ -10790,14 +10818,16 @@ "evidence": ["examples/react/scopes/src/index.tsx"] }, "source:examples/solid/scopes/src/index.tsx": { - "fingerprint": "1e7c47ecc24f8c545353d275e79270b0d048922c23945d1cf4e2b212bc5746b0", + "fingerprint": "68993f55f99e8e6b77d6d70dd4ade51d555fd2e2ea50cc173c98349bef35949e", "snapshot": { - "examples/solid/scopes/src/index.tsx": "41cb6ca875b98731324d5b730d8f954ec650f7888774eeb558a0f4e3b30988fa" + "examples/solid/scopes/src/index.tsx": "9035b51e4349cec34c11127f3751bffe4e577e99aac41e30827636509225bb42" }, - "head": "b7da4dd43790a2c4936382bea1fdf3940948ca4b", - "outcome": "no-change", - "reason": "Scopes examples now use HotkeysProvider directly instead of a local Scope wrapper; skills already show HotkeysProvider for scopes.", - "evidence": ["examples/solid/scopes/src/index.tsx"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/scopes/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:examples/svelte/scopes/src/App.svelte": { "fingerprint": "69da308f1fb1d291d5e00a66ba3a422c8efc4876953c6f06154e7c40e8390aef", @@ -11086,14 +11116,16 @@ "evidence": ["packages/hotkeys/skills/hotkeys-core/SKILL.md"] }, "source:packages/solid-hotkeys/tests/element-order.test.tsx": { - "fingerprint": "840e2a189e97f954606417594a0f101c375c8c9e9a17f92bf8ee5489ccc5b18c", + "fingerprint": "132193b7709e11c28d094b5f318d82dbc9f1b38bf7620644ed4f71a272d36e61", "snapshot": { - "packages/solid-hotkeys/tests/element-order.test.tsx": "13bf7d0ec0220c8ac7efbe0ae6b27f58d3060e863ae519708114eb6ecfc6cc11" + "packages/solid-hotkeys/tests/element-order.test.tsx": "af5dfcf5158ce1259b0f307f313ee07d6a161c3275a6ca6555cb1eb9f9b1e7e2" }, - "head": "ac43e8aa85754a38841423ea5129c99d60654078", - "outcome": "no-change", - "reason": "Review fixes: delegated listeners move after listeners added since, such as Solid delegating late, and cleanup uses the document a listener attached to. No skill change.", - "evidence": ["packages/hotkeys/skills/hotkeys-core/SKILL.md"] + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/element-order.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] }, "source:packages/svelte-hotkeys/tests/ElementOrder.svelte": { "fingerprint": "57bcae9cb9a07342825afc1c8ef3e91f8a04221f4c01da1438bf65e2d44a092f", @@ -11254,6 +11286,642 @@ "e2e/browser/native-overlays.spec.ts", "packages/hotkeys/skills/hotkeys-core/SKILL.md" ] + }, + "source:.github/workflows/autofix.yml": { + "fingerprint": "4a04ac4c45fff90086de5c70c0db4b666c376c0d20fe30a4ebd09330f4ffaff5", + "snapshot": { + ".github/workflows/autofix.yml": "49be3144eab79d146ac7a362198a036926398070ff5feccb336ff526f7b4fa42" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: .github/workflows/autofix.yml at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:.github/workflows/pr.yml": { + "fingerprint": "1078f4bda104c4021fa75547f4e4fc07c71ebe6dcafa5e1477036d4943b55a47", + "snapshot": { + ".github/workflows/pr.yml": "9f8277d2d3ebd11a1f4aa5d67b824052ee07b8264bc79e45bff3653ab634da1f" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: .github/workflows/pr.yml at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:.github/workflows/release.yml": { + "fingerprint": "dee72bbd696bd67efe1d0927fe6d0a8dc5663c695652189440fc93c7c5ad31cb", + "snapshot": { + ".github/workflows/release.yml": "30250d2a4cfe44a60540285eae2ddcfec77eb02238223e7f0dddf08a390942a1" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: .github/workflows/release.yml at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:CONTRIBUTING.md": { + "fingerprint": "2ec14db7b3383ae568c82bb5de87b28b2121a17689131630805c72a0692c0597", + "snapshot": { + "CONTRIBUTING.md": "fe5196988571f29b62e28e1532bfa10bcce905833de09ba139c7d5c1e985f2b5" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: CONTRIBUTING.md at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:docs/agent-skills.md": { + "fingerprint": "5ce61445c8c4093bc1f24e9d0eeb15e98604ff77c878cf8335f02f4cc393bb92", + "snapshot": { + "docs/agent-skills.md": "0003f11edaf2d404c227650f6b306f92cb1edd1af8c7a6e95688977310fa357b" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: docs/agent-skills.md at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/.gitignore": { + "fingerprint": "4a13c3ccc4b11d8b9ebcf939356fcf80de46625296dd7248d3469fab25d82172", + "snapshot": { + "e2e/.gitignore": "9960a45e45ba8d01fb66c5cbc5168104201938597a32858ccd05184035c5690c" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/.gitignore at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/browser/held-keys-and-recorder.spec.ts": { + "fingerprint": "3c54fc007f71e2122896526ceccb53a4241392e65e0b3803edbbbf373a435ce3", + "snapshot": { + "e2e/browser/held-keys-and-recorder.spec.ts": "8c18c26634ba75dbd2c3f3408b5b437682925d8bbc5f5ff6d2dbce79f58b281b" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/browser/held-keys-and-recorder.spec.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/browser/sequences-and-scopes.spec.ts": { + "fingerprint": "d522ece23bdf84dc0ab205af2c2a34fcfc30de011be389f0a7e87583cbf6bdbd", + "snapshot": { + "e2e/browser/sequences-and-scopes.spec.ts": "720a524243baea790ae10569abfae98170ab444d5a2b4fb825f0564916f3760d" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/browser/sequences-and-scopes.spec.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/docker/Dockerfile": { + "fingerprint": "d0ca5be6d2bf26c89f038ac1452f3df551544a5edfb993651b0636ca91e28616", + "snapshot": { + "e2e/docker/Dockerfile": "c212bcdc5a23ef320fedc7e2005d481d33cbdd35fc8f62cf3851d44c4384d839" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/docker/Dockerfile at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/docker/tanstack.xkb": { + "fingerprint": "a928aba54c2625b09ee984af1d11bc05899aee470c4432cfb10b1b9ef4c1ce05", + "snapshot": { + "e2e/docker/tanstack.xkb": "d9ce508b2e2ad5ddf0166d670002fe31e2653996305665fd1250007be77d4f22" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/docker/tanstack.xkb at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/eslint.config.js": { + "fingerprint": "529b45779e15af3810f660715fd5e39239c21cf227595448ad3380223d75f350", + "snapshot": { + "e2e/eslint.config.js": "48f8922b7281262d1332c2400d4520341f96a2caa3ed319bcd47e82e34aee685" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/eslint.config.js at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/layouts/alt-graph.spec.ts": { + "fingerprint": "0fbf017f3098191ccce5d6f4fb20d23a2a2dd7e7c7397a17d2f0f8b8196bc7e4", + "snapshot": { + "e2e/layouts/alt-graph.spec.ts": "526467490f182ab86c46fdfe681670cedec20ad7d3bf3a6292ffe6da88926880" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/layouts/alt-graph.spec.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/playwright.config.ts": { + "fingerprint": "fd983c303aa03661d468151d92b7c617529dcaa057ab927340ce6d5b3eee0618", + "snapshot": { + "e2e/playwright.config.ts": "f3b15b1f1bb829c5fd0ba4737798982004a46678c2f2bdd118b5c5cd30d9d5df" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/playwright.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/playwright.layouts.config.ts": { + "fingerprint": "155b912961a752d5c9c62f05e95323666e31608c710b6d6d7921f12cfb2e19c6", + "snapshot": { + "e2e/playwright.layouts.config.ts": "3db40105f2110db60c3660a01f50d9b8e2f890563262d4dd9bbde38d50e40b75" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/playwright.layouts.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/scripts/layouts-docker.ts": { + "fingerprint": "b96a5d5e62fd37c8f2692321dfc244a16a5395aca772d5edd8756b18fdc7f491", + "snapshot": { + "e2e/scripts/layouts-docker.ts": "d9483fed03eeeb29a767f5033a534d2c7dcebc31e7f6ef878c78d206f2acc963" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/scripts/layouts-docker.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/support/bundle.ts": { + "fingerprint": "b68421818234005d4cb26dec187235936d7ffe2c2eb58747ee54db144ba1d0c6", + "snapshot": { + "e2e/support/bundle.ts": "1024ba39fb4203af3273fd5b27b1f8085008f4a6a24c5ae692f5403d697797cd" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/support/bundle.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/support/fixtures.ts": { + "fingerprint": "41b5a85d6d81922bb489b87517bdb07d96b25ea4f907a95d3fa840e9e636b4bd", + "snapshot": { + "e2e/support/fixtures.ts": "935abcea023c9559dd21e9bd8abb550d61ef20599615f84f24d509fa60f58f14" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/support/fixtures.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/support/layout-cases.ts": { + "fingerprint": "a41eb9c90a7f12217ac0cb78b2070bc2af28b703b949096fd031e7fb40776a14", + "snapshot": { + "e2e/support/layout-cases.ts": "0e1f7370810c2fa2be8e1c6b5e262859afcb8d050539d561b7a4fca06c21867f" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/support/layout-cases.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/support/layout-fixtures.ts": { + "fingerprint": "40f791f66eedcc2f1de7d0282859e30bde806f68ac7caf720f7f807bb50f2e51", + "snapshot": { + "e2e/support/layout-fixtures.ts": "8b2c01bb10f7d99e8f6d57d0290add9be52dd14649873b147cc5f2c747a901ea" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/support/layout-fixtures.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/support/page.ts": { + "fingerprint": "a2a4e20c4546fafc7d6786fed1d92544f45217f5e98e7383fbfd7df87eae25fe", + "snapshot": { + "e2e/support/page.ts": "967db90bbdc2923e84135561bb82f1ca2fb27c09f991b23a78299430466db487" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/support/page.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:e2e/tsconfig.json": { + "fingerprint": "df743c23e250240369f6c416b23b40af80a3349e223eacbe4fcface26da33377", + "snapshot": { + "e2e/tsconfig.json": "bb58e7cf62e64d14bb6e2f17e8a41b43d7d9581a2ea67d3f89c637784b3db7ed" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: e2e/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHeldKeys/tsconfig.json": { + "fingerprint": "d142d05ba0ecbc30c9b1b92b0922123b678d295647ca4cc2f079401fe1738d9e", + "snapshot": { + "examples/solid/createHeldKeys/tsconfig.json": "716abc7c4743c77a4a880a9d4c839d8286c7fe0609491782c89ef0dfd9633a12" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHeldKeys/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHeldKeys/vite.config.ts": { + "fingerprint": "9216dd6adeefb8bfa0e087338e5522f302915694ad836b6bf3bfe016bf3f43af", + "snapshot": { + "examples/solid/createHeldKeys/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHeldKeys/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkey-sequences/src/index.tsx": { + "fingerprint": "cff401392959b9e76561d47b2bd25a8721d8ed3eaa721fe23b75ce01b2565e83", + "snapshot": { + "examples/solid/createHotkey-sequences/src/index.tsx": "abf638529310a28c0db5880aefac30e90c400e7584e48bff240676a3e77dd648" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkey-sequences/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkey-sequences/tsconfig.json": { + "fingerprint": "bf764b14d20d8242240657ef8537dbd98dca96cb95f65979b0f949a4b5707fa6", + "snapshot": { + "examples/solid/createHotkey-sequences/tsconfig.json": "716abc7c4743c77a4a880a9d4c839d8286c7fe0609491782c89ef0dfd9633a12" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkey-sequences/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkey-sequences/vite.config.ts": { + "fingerprint": "99480d6c861b584b28c1b71bbf48bdc2e64fc58d9118e47bfbe93ca087895df4", + "snapshot": { + "examples/solid/createHotkey-sequences/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkey-sequences/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkey/src/index.tsx": { + "fingerprint": "bd335c5a27a5f5b8d8f179c2b99d929c293aa05a0496752013f4da3ee7b48c3f", + "snapshot": { + "examples/solid/createHotkey/src/index.tsx": "21eef5a401ad11673d82592036ac268869ab7deb33745060d5b7d1d6e962b6e3" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkey/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkey/tsconfig.json": { + "fingerprint": "c3b97a1e79cf21a2a4a56a3daab2cb2171ed396c92cf0ece322cc1bfe79c9aa2", + "snapshot": { + "examples/solid/createHotkey/tsconfig.json": "9823a5038fde7f226e8c1336ece417ea7d8ba446f5dc9fc14cbbc99392f814e4" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkey/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkey/vite.config.ts": { + "fingerprint": "04964ce7d3fc433ef679e1cd509113abc0accf3e7c25005ef74d66a6febef262", + "snapshot": { + "examples/solid/createHotkey/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkey/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeyRecorder-sequences/src/index.tsx": { + "fingerprint": "c70bf35ca66fc2b1287d971066a76a3a5f564b4d417673659d398ec4ed3f262d", + "snapshot": { + "examples/solid/createHotkeyRecorder-sequences/src/index.tsx": "1530546f654d1300dd75b08b238ed12f55947ed614dd5b5f2e23e39853805b06" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeyRecorder-sequences/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeyRecorder-sequences/tsconfig.json": { + "fingerprint": "00060d7a0e4b457b1f5629e5aa1f41075519152507bb5f09e1084ab8a08656d8", + "snapshot": { + "examples/solid/createHotkeyRecorder-sequences/tsconfig.json": "716abc7c4743c77a4a880a9d4c839d8286c7fe0609491782c89ef0dfd9633a12" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeyRecorder-sequences/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeyRecorder-sequences/vite.config.ts": { + "fingerprint": "cec7dfa9217143f404c3744e43910b3394877b1f9e60f86e0f772276d2d341a1", + "snapshot": { + "examples/solid/createHotkeyRecorder-sequences/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeyRecorder-sequences/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeyRecorder/src/index.tsx": { + "fingerprint": "2d2fa92a8cacb4530d187dd1c6d2f535bd020cc81ebac7e5055cf4d6ab9db461", + "snapshot": { + "examples/solid/createHotkeyRecorder/src/index.tsx": "9cb9acbe6961ea261c915e2ba58169ec9cba334c99ce96abe6e906c9ca46c393" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeyRecorder/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeyRecorder/tsconfig.json": { + "fingerprint": "fa33e36f5c7e8dca8777831086798e0ce995619ac1abbe57b85394ce2f153991", + "snapshot": { + "examples/solid/createHotkeyRecorder/tsconfig.json": "716abc7c4743c77a4a880a9d4c839d8286c7fe0609491782c89ef0dfd9633a12" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeyRecorder/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeyRecorder/vite.config.ts": { + "fingerprint": "0b52b1a0743ca71ebe0f3373d0a5d2a7c789379253ab1bed36c4bc59f6dc4e33", + "snapshot": { + "examples/solid/createHotkeyRecorder/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeyRecorder/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeys-sequences/src/index.tsx": { + "fingerprint": "717d57a89c047e9bdb92ad25fddf5dfa7c1b9c8224dd31d20aa3b860992000e9", + "snapshot": { + "examples/solid/createHotkeys-sequences/src/index.tsx": "8366bc537aa37ccaae9cf19d39f016eea37c2692a2b6684292fb0e0d79b3df05" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeys-sequences/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeys-sequences/tsconfig.json": { + "fingerprint": "6c4c50ef624ff226038a74723db51fe18bcb2b55b087e5ea458ad6a6ac3805c1", + "snapshot": { + "examples/solid/createHotkeys-sequences/tsconfig.json": "716abc7c4743c77a4a880a9d4c839d8286c7fe0609491782c89ef0dfd9633a12" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeys-sequences/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeys-sequences/vite.config.ts": { + "fingerprint": "2afce15ad54040517ad0c87946a0076a496910e72724d21a6a06fef3a8232edf", + "snapshot": { + "examples/solid/createHotkeys-sequences/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeys-sequences/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeys/tsconfig.json": { + "fingerprint": "c22077faeda9d3d0ce759c8216cb08d5bffb3529dd2b76e6e1ef250255295fe4", + "snapshot": { + "examples/solid/createHotkeys/tsconfig.json": "9823a5038fde7f226e8c1336ece417ea7d8ba446f5dc9fc14cbbc99392f814e4" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeys/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createHotkeys/vite.config.ts": { + "fingerprint": "867d057c4afacd9d4ec983867a97fcca264f96e69658b899702874fecfaf3916", + "snapshot": { + "examples/solid/createHotkeys/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createHotkeys/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createKeyHold/src/index.tsx": { + "fingerprint": "16cf875f66520102e86b64779d4bcb881bb8e20c7ec9231b7327e06bdb65cc33", + "snapshot": { + "examples/solid/createKeyHold/src/index.tsx": "423a7a3538ecaa56acce65fbbb8d746acc4997ce1af925432c7e9d091807fe6d" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createKeyHold/src/index.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createKeyHold/tsconfig.json": { + "fingerprint": "68e2c89fa8424073756608da04bf8ed7c7a5a3f51e1845f155b46dd76312d50d", + "snapshot": { + "examples/solid/createKeyHold/tsconfig.json": "716abc7c4743c77a4a880a9d4c839d8286c7fe0609491782c89ef0dfd9633a12" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createKeyHold/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/createKeyHold/vite.config.ts": { + "fingerprint": "ad185d955a832852db29d3bf761123727b584d38d5ccb9d4c59c7d9d4057b6f5", + "snapshot": { + "examples/solid/createKeyHold/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/createKeyHold/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/kitchen-sink/tsconfig.json": { + "fingerprint": "c9d1ba76593359a7e042d87e96a003ff0377b9a3ad17bca4cefa3e518b48812e", + "snapshot": { + "examples/solid/kitchen-sink/tsconfig.json": "9823a5038fde7f226e8c1336ece417ea7d8ba446f5dc9fc14cbbc99392f814e4" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/kitchen-sink/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/kitchen-sink/vite.config.ts": { + "fingerprint": "6c2ba04c7e94d83e3a95b8d3169d284b502c41bbb8d79a4fd93b7fb6c3761643", + "snapshot": { + "examples/solid/kitchen-sink/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/kitchen-sink/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/scopes/tsconfig.json": { + "fingerprint": "02dcb3c7482d972465a037ce3f33df52cd4e85e081e7d2a240b346ae269f53ba", + "snapshot": { + "examples/solid/scopes/tsconfig.json": "9823a5038fde7f226e8c1336ece417ea7d8ba446f5dc9fc14cbbc99392f814e4" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/scopes/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:examples/solid/scopes/vite.config.ts": { + "fingerprint": "28635ea27836a92b8e0ba8101000ef0cf18dcc51493a5209ae1023311910e96f", + "snapshot": { + "examples/solid/scopes/vite.config.ts": "fb32fc53a0b16800b2358ca3c4def19e6db0126db3c3cd529f2d3274339b5344" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: examples/solid/scopes/vite.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:packages/hotkeys/tests/alt-graph.test.ts": { + "fingerprint": "53121226d0c6d8c210c664d70a8ce95946b451e38063e9c6ee2a8a5617b387f2", + "snapshot": { + "packages/hotkeys/tests/alt-graph.test.ts": "874c32b7e100967c9323e3ab2b7d34974f809e9f15a9500e5b00a1481a098b5d" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/hotkeys/tests/alt-graph.test.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx": { + "fingerprint": "c12821eb542cf1b937c062742a62698e8e34a8d1daf4a697ed14499813248956", + "snapshot": { + "packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx": "3d3ca076179875fa0ead1983199a2e16db4f5d50d7592a8aa6be74751951c9fc" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:packages/solid-hotkeys/tests/createHotkeys.test.tsx": { + "fingerprint": "0b81f197909c1e613109a2731dadca376e80198440377b7e7bae76550a035260", + "snapshot": { + "packages/solid-hotkeys/tests/createHotkeys.test.tsx": "9c65c48486000d23f6097ec3b1c99e1bcc599c693bdca4a04e2270e4408bdd61" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/createHotkeys.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:packages/solid-hotkeys/tests/reactive-options.test.tsx": { + "fingerprint": "45cde667714bebc7ce8c50a4d7ec66b7e968094340e6a54f5b11bd9767b5dd3f", + "snapshot": { + "packages/solid-hotkeys/tests/reactive-options.test.tsx": "f953d325260978e5c820c9e5197f486ac4f5a810c78d6c2e4a5efb14c4cbbdf6" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tests/reactive-options.test.tsx at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:packages/solid-hotkeys/tsconfig.json": { + "fingerprint": "0bcc451bd1673f6ca1113542d21dfb35c7efd444b640da9d370bf29bf0b0d0f8", + "snapshot": { + "packages/solid-hotkeys/tsconfig.json": "55228fbe756f6c8ef2ce2788396545125451ff7099b1511a2d6983a092af3509" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tsconfig.json at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] + }, + "source:packages/solid-hotkeys/tsdown.config.ts": { + "fingerprint": "08f03aafe9190b84f440c425f54a41511f5b66825cb0a0111f9e92ac5bb4adaa", + "snapshot": { + "packages/solid-hotkeys/tsdown.config.ts": "2417f6aebd51ac5cba86104520edf5950230cdfa546772b9ba87a4c8eaeb2c93" + }, + "head": "08802d6c214fdcf0a3c2303f1b730b945320d1a9", + "outcome": "updated", + "reason": "Solid 2 port: solid-hotkeys skill now uses Solid 2 APIs (tabindex, JSX from @solidjs/web) and gives removable elements their own component instead of registering in a ref callback; other changes are Solid 2 test, build, and example updates with no guidance impact", + "evidence": [ + "Changed: packages/solid-hotkeys/tsdown.config.ts at 08802d6c214fdcf0a3c2303f1b730b945320d1a9" + ] } } } diff --git a/docs/framework/solid/guides/formatting-display.md b/docs/framework/solid/guides/formatting-display.md index 7a6e07c1..a6574a4a 100644 --- a/docs/framework/solid/guides/formatting-display.md +++ b/docs/framework/solid/guides/formatting-display.md @@ -156,6 +156,9 @@ Pages rendered this way depend on the request's `User-Agent` header. If a CDN or ### SolidStart +> [!NOTE] +> SolidStart and Astro's Solid integration don't support Solid 2 yet. This section and its example use Solid 1 with `@tanstack/solid-hotkeys` 1.x. + `getRequestEvent()` from `solid-js/web` returns the current request on the server and `undefined` in the browser. Without a user agent, `detectPlatform` reads the browser's `navigator`, so the same code works on both sides: ```tsx @@ -210,6 +213,9 @@ The [TanStack Start example](../examples/createFormatForDisplay-tanstack-start) ### Astro +> [!NOTE] +> SolidStart and Astro's Solid integration don't support Solid 2 yet. This section and its example use Solid 1 with `@tanstack/solid-hotkeys` 1.x. + Each Solid island is its own Solid app, so render the provider inside the island and pass the platform from the page. The page must render on demand to have a request: add `export const prerender = false`, or use `output: 'server'`. ```astro @@ -246,13 +252,15 @@ The [Astro example](../examples/createFormatForDisplay-astro) shows this setup. To skip server rendering for a label instead, render it after hydration. In the browser, plain `formatForDisplay` detects the platform: ```tsx -import { Show, createSignal, onMount } from 'solid-js' +import { Show, createSignal, onSettled } from 'solid-js' import { formatForDisplay } from '@tanstack/solid-hotkeys' import type { JSX } from 'solid-js' function ClientOnly(props: { children: JSX.Element; fallback?: JSX.Element }) { const [mounted, setMounted] = createSignal(false) - onMount(() => setMounted(true)) + onSettled(() => { + setMounted(true) + }) return ( {props.children} @@ -265,7 +273,7 @@ function ClientOnly(props: { children: JSX.Element; fallback?: JSX.Element }) { ``` -`onMount` runs only in the browser, after hydration, so the server and the first render in the browser both show the fallback. Framework wrappers do the same: TanStack Router's `` from `@tanstack/solid-router`, SolidStart's `clientOnly()`, or `client:only="solid-js"` on an Astro island. A fallback with the label's width keeps the layout from shifting. +`onSettled` runs only in the browser, after hydration, so the server and the first render in the browser both show the fallback. Framework wrappers do the same: TanStack Router's `` from `@tanstack/solid-router`, SolidStart's `clientOnly()`, or `client:only="solid-js"` on an Astro island. A fallback with the label's width keeps the layout from shifting. Don't use `` or an `isServer` check for labels. `` keeps the server's label, and rendering different content on the server and in the browser breaks hydration. diff --git a/docs/framework/solid/guides/hotkeys-provider-and-scopes.md b/docs/framework/solid/guides/hotkeys-provider-and-scopes.md index 6e31af45..f1be4c6f 100644 --- a/docs/framework/solid/guides/hotkeys-provider-and-scopes.md +++ b/docs/framework/solid/guides/hotkeys-provider-and-scopes.md @@ -99,7 +99,7 @@ function Editor() { // Also has a target: works only while focus is inside the outline createHotkey('Delete', () => deleteHeading(), () => ({ target: outline() })) - return + return } ``` diff --git a/docs/framework/solid/guides/hotkeys.md b/docs/framework/solid/guides/hotkeys.md index 836a036f..a746a032 100644 --- a/docs/framework/solid/guides/hotkeys.md +++ b/docs/framework/solid/guides/hotkeys.md @@ -311,7 +311,7 @@ function Panel() { createHotkey('Escape', () => closePanel(), () => ({ target: panel() })) return ( -
+
Panel content
) @@ -321,34 +321,37 @@ function Panel() { A `null` target waits until the element is attached. > [!NOTE] -> An element receives key presses only while it, or something inside it, has focus. Give it a `tabIndex` if it isn't focusable already. +> An element receives key presses only while it, or something inside it, has focus. Give it a `tabindex` if it isn't focusable already. While focus is inside the element, its hotkeys run before hotkeys on `document`. With the default `stopPropagation: true`, a `document` hotkey for the same key doesn't run at all. A sequence with a target advances only on key presses inside the target. ### Elements that are removed -Solid doesn't call a `ref` with `null` when it removes an element, so a signal set by `ref` keeps the removed element, and the hotkey stays registered on it until the component unmounts. Keep the signal for an element the component always renders. - -For an element inside ``, ``, or another control flow that removes it, call `createHotkey` in the element's `ref` callback: +For an element inside ``, ``, or another control flow that removes it, put the element and its `createHotkey` call in their own component. A `ref` callback runs outside the component's owner, so don't call `createHotkey` there: ```tsx -import { Show } from 'solid-js' +import { Show, createSignal } from 'solid-js' + +function PanelBody() { + const [panel, setPanel] = createSignal(null) + createHotkey('Escape', () => closePanel(), () => ({ target: panel() })) + return ( +
+ Panel content +
+ ) +} function Panel(props: { open: boolean }) { return ( -
createHotkey('Escape', () => closePanel(), { target: el })} - tabIndex={0} - > - Panel content -
+
) } ``` -The `ref` callback runs inside the branch that renders the element. So the hotkey registers each time the element is created, and unregisters when Solid removes it. +The hotkey registers each time `` creates `PanelBody`, and unregisters when Solid removes it. ### A target is not a scope diff --git a/docs/framework/solid/quick-start.md b/docs/framework/solid/quick-start.md index 7d26eb4a..e9e3b6dc 100644 --- a/docs/framework/solid/quick-start.md +++ b/docs/framework/solid/quick-start.md @@ -140,29 +140,16 @@ function Panel() { createHotkey('Escape', () => closePanel(), () => ({ target: panel() })) return ( -
+
...
) } ``` -A `null` target waits until the element is attached. The hotkey fires while focus is on the element or inside it. If nothing there can take focus, give the element a `tabIndex`. +A `null` target waits until the element is attached. The hotkey fires while focus is on the element or inside it. If nothing there can take focus, give the element a `tabindex`. -Solid doesn't clear a ref when the element is removed, so the signal keeps a removed element. For an element inside `` or ``, register the hotkey in the element's `ref` callback instead: - -```tsx - -
createHotkey('Escape', () => closePanel(), { target: el })} - tabIndex={0} - > - ... -
-
-``` - -The callback runs each time the element is created, and the hotkey unregisters when the element is removed. +For an element inside `` or ``, put the element and its `createHotkey` call in their own component, like `Panel` above. The hotkey unregisters when Solid removes the component. ## Add providers and scopes (optional) diff --git a/docs/installation.md b/docs/installation.md index e950c291..3fbb6cfa 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -42,7 +42,7 @@ Start with the [Quick Start](./framework/preact/quick-start) guide and the Preac # Solid -Use Solid 1.7 or newer within version 1. The devtools panel needs Solid 1.9.15 or newer. +`@tanstack/solid-hotkeys` 2 and later work with Solid 2; for Solid 1 (1.7 or newer), install `@tanstack/solid-hotkeys@1`. The devtools panel still runs on Solid 1 (1.9.15 or newer) and isn't available for Solid 2 apps yet. Start with the [Quick Start](./framework/solid/quick-start) guide and the Solid-specific [guides](./framework/solid/guides/hotkeys). If you want the integrated devtools panel, also install: diff --git a/e2e/ssr/examples.ts b/e2e/ssr/examples.ts index b77aac1b..908bdcd4 100644 --- a/e2e/ssr/examples.ts +++ b/e2e/ssr/examples.ts @@ -64,17 +64,11 @@ export const examples: Array = [ command: 'pnpm preview --port 4312', static: true, }, - { - folder: 'solid/createFormatForDisplay-solid-start', - port: 4313, - command: 'pnpm start', - }, { folder: 'solid/createFormatForDisplay-tanstack-start', port: 4314, command: 'pnpm preview --port 4314 --strictPort', }, - { folder: 'solid/createFormatForDisplay-astro', port: 4315, command: astro }, { folder: 'svelte/getFormatForDisplay-sveltekit', port: 4316, diff --git a/examples/solid/createFormatForDisplay-tanstack-start/package.json b/examples/solid/createFormatForDisplay-tanstack-start/package.json index dd858f75..14811965 100644 --- a/examples/solid/createFormatForDisplay-tanstack-start/package.json +++ b/examples/solid/createFormatForDisplay-tanstack-start/package.json @@ -11,14 +11,15 @@ "test:types": "tsc" }, "dependencies": { + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-router": "^1.170.43", - "@tanstack/solid-start": "^1.169.4", - "solid-js": "^1.9.15" + "@tanstack/solid-router": "^2.0.0-rc.10", + "@tanstack/solid-start": "^2.0.0-rc.10", + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { + "@solidjs/vite-plugin": "^3.0.0-next.55", "typescript": "6.0.3", - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "vite": "^8.3.2" } } diff --git a/examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx b/examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx index dc817677..99d40aa6 100644 --- a/examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx +++ b/examples/solid/createFormatForDisplay-tanstack-start/src/CheatSheetPage.tsx @@ -1,4 +1,4 @@ -import { For, Show, createSignal, onMount } from 'solid-js' +import { For, Show, createSignal, onSettled } from 'solid-js' import { createFormatForDisplay, createHotkeys, @@ -54,7 +54,9 @@ function Header() { // Read only in the browser after hydration, so it can't cause a mismatch const [browserPlatform, setBrowserPlatform] = createSignal(null) - onMount(() => setBrowserPlatform(detectPlatform())) + onSettled(() => { + setBrowserPlatform(detectPlatform()) + }) return (
diff --git a/examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx b/examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx index 351f07ff..b677c5be 100644 --- a/examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx +++ b/examples/solid/createFormatForDisplay-tanstack-start/src/routes/__root.tsx @@ -7,10 +7,10 @@ import { } from '@tanstack/solid-router' import { createIsomorphicFn } from '@tanstack/solid-start' import { getRequestHeader } from '@tanstack/solid-start/server' -import { HydrationScript } from 'solid-js/web' +import { HydrationScript } from '@solidjs/web' import { HotkeysProvider, detectPlatform } from '@tanstack/solid-hotkeys' import stylesUrl from '../styles.css?url' -import type { JSX } from 'solid-js' +import type { JSX } from '@solidjs/web' // The request's User-Agent on the server, the browser's navigator in the browser const getPlatform = createIsomorphicFn() diff --git a/examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json b/examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json index 0e8ed41b..bb89b8c8 100644 --- a/examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json +++ b/examples/solid/createFormatForDisplay-tanstack-start/tsconfig.json @@ -9,7 +9,7 @@ "isolatedModules": true, "noEmit": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts b/examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts index 1493c652..d0e695f8 100644 --- a/examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts +++ b/examples/solid/createFormatForDisplay-tanstack-start/vite.config.ts @@ -1,6 +1,6 @@ import { tanstackStart } from '@tanstack/solid-start/plugin/vite' import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [tanstackStart(), solid({ ssr: true })], diff --git a/examples/solid/createHeldKeys/package.json b/examples/solid/createHeldKeys/package.json index 376fc94f..8b878e0d 100644 --- a/examples/solid/createHeldKeys/package.json +++ b/examples/solid/createHeldKeys/package.json @@ -8,13 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "@solidjs/vite-plugin": "^3.0.0-next.55", + "vite": "^8.3.2" } } diff --git a/examples/solid/createHeldKeys/src/index.tsx b/examples/solid/createHeldKeys/src/index.tsx index 43836609..d6510ab8 100644 --- a/examples/solid/createHeldKeys/src/index.tsx +++ b/examples/solid/createHeldKeys/src/index.tsx @@ -1,5 +1,5 @@ /* @refresh reload */ -import { render } from 'solid-js/web' +import { render } from '@solidjs/web' import { createEffect, createSignal } from 'solid-js' import { HotkeysProvider, @@ -7,8 +7,6 @@ import { createHeldKeys, formatForDisplay, } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' import './index.css' function App() { @@ -16,8 +14,7 @@ function App() { const heldCodes = createHeldKeyCodes() const [history, setHistory] = createSignal>([]) - createEffect(() => { - const keys = heldKeys() + createEffect(heldKeys, (keys) => { if (keys.length > 0) { const combo = keys .map((k) => formatForDisplay({ key: k }, { useSymbols: true })) @@ -120,8 +117,6 @@ function KeyDisplay() { - -
) } diff --git a/examples/solid/createHeldKeys/tsconfig.json b/examples/solid/createHeldKeys/tsconfig.json index d38d513e..4e4b6b44 100644 --- a/examples/solid/createHeldKeys/tsconfig.json +++ b/examples/solid/createHeldKeys/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "types": ["vite/client", "solid-js"] }, diff --git a/examples/solid/createHeldKeys/vite.config.ts b/examples/solid/createHeldKeys/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHeldKeys/vite.config.ts +++ b/examples/solid/createHeldKeys/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createHotkey-sequences/package.json b/examples/solid/createHotkey-sequences/package.json index 21175bd7..e15c8735 100644 --- a/examples/solid/createHotkey-sequences/package.json +++ b/examples/solid/createHotkey-sequences/package.json @@ -8,13 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "@solidjs/vite-plugin": "^3.0.0-next.55", + "vite": "^8.3.2" } } diff --git a/examples/solid/createHotkey-sequences/src/index.tsx b/examples/solid/createHotkey-sequences/src/index.tsx index 414bfd2a..829827b5 100644 --- a/examples/solid/createHotkey-sequences/src/index.tsx +++ b/examples/solid/createHotkey-sequences/src/index.tsx @@ -1,9 +1,7 @@ /* @refresh reload */ -import { render } from 'solid-js/web' -import { createSignal, Show } from 'solid-js' -import { createHotkey, HotkeysProvider } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' +import { render } from '@solidjs/web' +import { Show, createSignal } from 'solid-js' +import { HotkeysProvider, createHotkey } from '@tanstack/solid-hotkeys' import './index.css' function App() { @@ -243,8 +241,6 @@ function VimEditor() { Press Escape to clear history

- -
) } diff --git a/examples/solid/createHotkey-sequences/tsconfig.json b/examples/solid/createHotkey-sequences/tsconfig.json index d38d513e..4e4b6b44 100644 --- a/examples/solid/createHotkey-sequences/tsconfig.json +++ b/examples/solid/createHotkey-sequences/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "types": ["vite/client", "solid-js"] }, diff --git a/examples/solid/createHotkey-sequences/vite.config.ts b/examples/solid/createHotkey-sequences/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHotkey-sequences/vite.config.ts +++ b/examples/solid/createHotkey-sequences/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createHotkey/package.json b/examples/solid/createHotkey/package.json index b2dac049..7e1917eb 100644 --- a/examples/solid/createHotkey/package.json +++ b/examples/solid/createHotkey/package.json @@ -11,15 +11,14 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { + "@solidjs/vite-plugin": "^3.0.0-next.55", "@types/node": "^26.6.4", "typescript": "6.0.3", - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "vite": "^8.3.2" } } diff --git a/examples/solid/createHotkey/src/index.tsx b/examples/solid/createHotkey/src/index.tsx index cd9a7cff..90444584 100644 --- a/examples/solid/createHotkey/src/index.tsx +++ b/examples/solid/createHotkey/src/index.tsx @@ -1,13 +1,11 @@ /* @refresh reload */ import { Show, createEffect, createSignal } from 'solid-js' -import { render } from 'solid-js/web' +import { render } from '@solidjs/web' import { HotkeysProvider, createHotkey, formatForDisplay, } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' import type { Hotkey } from '@tanstack/solid-hotkeys' import './index.css' @@ -200,11 +198,10 @@ function App() { setFunctionKeyCount((c) => c + 1) }) - createEffect(() => { - if (modalOpen()) { - modalRef()?.focus() - } - }) + createEffect( + () => (modalOpen() ? modalRef() : null), + (modal) => modal?.focus(), + ) createHotkey( 'Mod+B', @@ -528,7 +525,7 @@ createHotkey('Mod+Space', () => toggle())`}

-
+

Sidebar (Scoped Area)

Click here to focus, then try:

@@ -557,7 +554,7 @@ createHotkey('Mod+Space', () => toggle())`} ) } diff --git a/examples/solid/createHotkey/tsconfig.json b/examples/solid/createHotkey/tsconfig.json index 95a64aac..92de4360 100644 --- a/examples/solid/createHotkey/tsconfig.json +++ b/examples/solid/createHotkey/tsconfig.json @@ -10,7 +10,7 @@ "isolatedModules": true, "noEmit": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/examples/solid/createHotkey/vite.config.ts b/examples/solid/createHotkey/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHotkey/vite.config.ts +++ b/examples/solid/createHotkey/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createHotkeyRecorder-sequences/package.json b/examples/solid/createHotkeyRecorder-sequences/package.json index d0d30729..84d2ab5a 100644 --- a/examples/solid/createHotkeyRecorder-sequences/package.json +++ b/examples/solid/createHotkeyRecorder-sequences/package.json @@ -8,13 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "@solidjs/vite-plugin": "^3.0.0-next.55", + "vite": "^8.3.2" } } diff --git a/examples/solid/createHotkeyRecorder-sequences/src/index.tsx b/examples/solid/createHotkeyRecorder-sequences/src/index.tsx index bec8e981..f4e5adbf 100644 --- a/examples/solid/createHotkeyRecorder-sequences/src/index.tsx +++ b/examples/solid/createHotkeyRecorder-sequences/src/index.tsx @@ -1,16 +1,14 @@ /* @refresh reload */ -import { render } from 'solid-js/web' -import { createSignal, Show, For } from 'solid-js' +import { render } from '@solidjs/web' +import { For, Show, createSignal } from 'solid-js' import { - formatForDisplay, + HotkeysProvider, createHeldKeys, + createHotkeyRecorder, createHotkeyRegistrations, createHotkeys, - createHotkeyRecorder, - HotkeysProvider, + formatForDisplay, } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' import type { Hotkey, HotkeySequence } from '@tanstack/solid-hotkeys' import './index.css' @@ -299,7 +297,6 @@ const registrations = createHotkeyRegistrations() // registrations()[0].triggerCount → 3`} -
) } @@ -361,7 +358,7 @@ function RegistrationsViewer() { - + No hotkeys registered diff --git a/examples/solid/createHotkeyRecorder-sequences/tsconfig.json b/examples/solid/createHotkeyRecorder-sequences/tsconfig.json index d38d513e..4e4b6b44 100644 --- a/examples/solid/createHotkeyRecorder-sequences/tsconfig.json +++ b/examples/solid/createHotkeyRecorder-sequences/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "types": ["vite/client", "solid-js"] }, diff --git a/examples/solid/createHotkeyRecorder-sequences/vite.config.ts b/examples/solid/createHotkeyRecorder-sequences/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHotkeyRecorder-sequences/vite.config.ts +++ b/examples/solid/createHotkeyRecorder-sequences/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createHotkeyRecorder/package.json b/examples/solid/createHotkeyRecorder/package.json index 2ecacb42..e4a37c9a 100644 --- a/examples/solid/createHotkeyRecorder/package.json +++ b/examples/solid/createHotkeyRecorder/package.json @@ -8,13 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "@solidjs/vite-plugin": "^3.0.0-next.55", + "vite": "^8.3.2" } } diff --git a/examples/solid/createHotkeyRecorder/src/index.tsx b/examples/solid/createHotkeyRecorder/src/index.tsx index 495d2835..71c671bf 100644 --- a/examples/solid/createHotkeyRecorder/src/index.tsx +++ b/examples/solid/createHotkeyRecorder/src/index.tsx @@ -1,16 +1,14 @@ /* @refresh reload */ -import { render } from 'solid-js/web' -import { createSignal, Show, For } from 'solid-js' +import { render } from '@solidjs/web' +import { For, Show, createSignal } from 'solid-js' import { - formatForDisplay, + HotkeysProvider, createHeldKeys, createHotkeyRecorder, - createHotkeys, createHotkeyRegistrations, - HotkeysProvider, + createHotkeys, + formatForDisplay, } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' import type { Hotkey } from '@tanstack/solid-hotkeys' import './index.css' @@ -115,7 +113,7 @@ function App() { s.id === id ? { ...s, - hotkey: '' as Hotkey | '', + hotkey: '', name: draftName(), description: draftDescription(), } @@ -273,7 +271,6 @@ const hotkeys = createHotkeyRegistrations() // hotkeys()[0].triggerCount → 3`} -
) } @@ -329,7 +326,7 @@ function RegistrationsViewer() { - + No hotkeys registered @@ -408,7 +405,7 @@ function ShortcutListItem(props: { )}
) : props.shortcut.hotkey ? ( - {formatForDisplay(props.shortcut.hotkey as Hotkey)} + {formatForDisplay(props.shortcut.hotkey)} ) : ( No shortcut )} diff --git a/examples/solid/createHotkeyRecorder/tsconfig.json b/examples/solid/createHotkeyRecorder/tsconfig.json index d38d513e..4e4b6b44 100644 --- a/examples/solid/createHotkeyRecorder/tsconfig.json +++ b/examples/solid/createHotkeyRecorder/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "types": ["vite/client", "solid-js"] }, diff --git a/examples/solid/createHotkeyRecorder/vite.config.ts b/examples/solid/createHotkeyRecorder/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHotkeyRecorder/vite.config.ts +++ b/examples/solid/createHotkeyRecorder/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createHotkeys-sequences/package.json b/examples/solid/createHotkeys-sequences/package.json index 3d8fc9da..296e3aee 100644 --- a/examples/solid/createHotkeys-sequences/package.json +++ b/examples/solid/createHotkeys-sequences/package.json @@ -8,13 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "@solidjs/vite-plugin": "^3.0.0-next.55", + "vite": "^8.3.2" } } diff --git a/examples/solid/createHotkeys-sequences/src/index.tsx b/examples/solid/createHotkeys-sequences/src/index.tsx index a09e619c..d94d707d 100644 --- a/examples/solid/createHotkeys-sequences/src/index.tsx +++ b/examples/solid/createHotkeys-sequences/src/index.tsx @@ -1,5 +1,5 @@ /* @refresh reload */ -import { render } from 'solid-js/web' +import { render } from '@solidjs/web' import { For, Show, createSignal } from 'solid-js' import { HotkeysProvider, @@ -8,8 +8,6 @@ import { createHotkeys, formatForDisplay, } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' import './index.css' function App() { @@ -335,8 +333,6 @@ function VimEditor() { Press Escape to clear history

- -
) } @@ -398,7 +394,7 @@ function RegistrationsViewer() {
- + No hotkeys registered diff --git a/examples/solid/createHotkeys-sequences/tsconfig.json b/examples/solid/createHotkeys-sequences/tsconfig.json index d38d513e..4e4b6b44 100644 --- a/examples/solid/createHotkeys-sequences/tsconfig.json +++ b/examples/solid/createHotkeys-sequences/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "types": ["vite/client", "solid-js"] }, diff --git a/examples/solid/createHotkeys-sequences/vite.config.ts b/examples/solid/createHotkeys-sequences/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHotkeys-sequences/vite.config.ts +++ b/examples/solid/createHotkeys-sequences/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createHotkeys/package.json b/examples/solid/createHotkeys/package.json index eb8c4f2d..c9ec0da9 100644 --- a/examples/solid/createHotkeys/package.json +++ b/examples/solid/createHotkeys/package.json @@ -11,15 +11,14 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { + "@solidjs/vite-plugin": "^3.0.0-next.55", "@types/node": "^26.6.4", "typescript": "6.0.3", - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "vite": "^8.3.2" } } diff --git a/examples/solid/createHotkeys/src/index.tsx b/examples/solid/createHotkeys/src/index.tsx index a22b75d9..390e59d9 100644 --- a/examples/solid/createHotkeys/src/index.tsx +++ b/examples/solid/createHotkeys/src/index.tsx @@ -1,18 +1,14 @@ import { For, Show, createSignal } from 'solid-js' -import { render } from 'solid-js/web' +import { render } from '@solidjs/web' import { HotkeysProvider, createHotkeyRegistrations, createHotkeys, formatForDisplay, } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' import type { CreateHotkeyDefinition, Hotkey } from '@tanstack/solid-hotkeys' import './index.css' -const plugins = [hotkeysDevtoolsPlugin()] - function BasicMultiHotkeys() { const [log, setLog] = createSignal>([]) const [saveCount, setSaveCount] = createSignal(0) @@ -378,7 +374,7 @@ function RegistrationsViewer() { - + No hotkeys registered @@ -407,7 +403,6 @@ function App() { - ) } diff --git a/examples/solid/createHotkeys/tsconfig.json b/examples/solid/createHotkeys/tsconfig.json index 95a64aac..92de4360 100644 --- a/examples/solid/createHotkeys/tsconfig.json +++ b/examples/solid/createHotkeys/tsconfig.json @@ -10,7 +10,7 @@ "isolatedModules": true, "noEmit": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/examples/solid/createHotkeys/vite.config.ts b/examples/solid/createHotkeys/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createHotkeys/vite.config.ts +++ b/examples/solid/createHotkeys/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/createKeyHold/package.json b/examples/solid/createKeyHold/package.json index 8f438152..d40265a8 100644 --- a/examples/solid/createKeyHold/package.json +++ b/examples/solid/createKeyHold/package.json @@ -8,13 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "@solidjs/vite-plugin": "^3.0.0-next.55", + "vite": "^8.3.2" } } diff --git a/examples/solid/createKeyHold/src/index.tsx b/examples/solid/createKeyHold/src/index.tsx index 5971b2bf..fb51da38 100644 --- a/examples/solid/createKeyHold/src/index.tsx +++ b/examples/solid/createKeyHold/src/index.tsx @@ -1,8 +1,6 @@ /* @refresh reload */ -import { render } from 'solid-js/web' -import { createKeyHold, HotkeysProvider } from '@tanstack/solid-hotkeys' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' -import { TanStackDevtools } from '@tanstack/solid-devtools' +import { render } from '@solidjs/web' +import { HotkeysProvider, createKeyHold } from '@tanstack/solid-hotkeys' import './index.css' function App() { @@ -96,8 +94,6 @@ function ShiftIndicator() { - - ) } diff --git a/examples/solid/createKeyHold/tsconfig.json b/examples/solid/createKeyHold/tsconfig.json index d38d513e..4e4b6b44 100644 --- a/examples/solid/createKeyHold/tsconfig.json +++ b/examples/solid/createKeyHold/tsconfig.json @@ -6,7 +6,7 @@ "skipLibCheck": true, "moduleResolution": "Bundler", "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "types": ["vite/client", "solid-js"] }, diff --git a/examples/solid/createKeyHold/vite.config.ts b/examples/solid/createKeyHold/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/createKeyHold/vite.config.ts +++ b/examples/solid/createKeyHold/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/examples/solid/kitchen-sink/package.json b/examples/solid/kitchen-sink/package.json index 2a56c94a..4d032430 100644 --- a/examples/solid/kitchen-sink/package.json +++ b/examples/solid/kitchen-sink/package.json @@ -11,15 +11,14 @@ "test:types": "tsc" }, "dependencies": { - "@tanstack/solid-devtools": "0.8.14", + "@solidjs/web": "^2.0.0-rc.20", "@tanstack/solid-hotkeys": "^0.21.0", - "@tanstack/solid-hotkeys-devtools": "^0.13.1", - "solid-js": "^1.9.15" + "solid-js": "^2.0.0-rc.20" }, "devDependencies": { + "@solidjs/vite-plugin": "^3.0.0-next.55", "@types/node": "^26.6.4", "typescript": "6.0.3", - "vite": "^8.3.2", - "vite-plugin-solid": "^2.11.14" + "vite": "^8.3.2" } } diff --git a/examples/solid/kitchen-sink/src/index.tsx b/examples/solid/kitchen-sink/src/index.tsx index 37f23d3c..1aa71bd5 100644 --- a/examples/solid/kitchen-sink/src/index.tsx +++ b/examples/solid/kitchen-sink/src/index.tsx @@ -2,13 +2,10 @@ import { Show, createContext, createSignal, - onCleanup, - onMount, + onSettled, useContext, } from 'solid-js' -import { Dynamic, render } from 'solid-js/web' -import { TanStackDevtools } from '@tanstack/solid-devtools' -import { hotkeysDevtoolsPlugin } from '@tanstack/solid-hotkeys-devtools' +import { Dynamic, render } from '@solidjs/web' import { HotkeysProvider, createHeldKeyCodes, @@ -28,7 +25,7 @@ import type { RegisterableHotkey, } from '@tanstack/solid-hotkeys' import './styles.css' -import type { JSX } from 'solid-js' +import type { JSX } from '@solidjs/web' const ActivityContext = createContext<(message: string) => void>(() => {}) const pages = [ @@ -50,10 +47,10 @@ function Hint(props: { hotkey: RegisterableHotkey }) { /** Global shortcuts remain registered while route components mount and unmount. */ function Layout() { const [path, setPath] = createSignal(location.hash.slice(1) || '/') - onMount(() => { + onSettled(() => { const update = () => setPath(location.hash.slice(1) || '/') window.addEventListener('hashchange', update) - onCleanup(() => window.removeEventListener('hashchange', update)) + return () => window.removeEventListener('hashchange', update) }) const [showShortcuts, setShowShortcuts] = createSignal(false) const [activity, setActivity] = createSignal>([]) @@ -87,7 +84,7 @@ function Layout() { }), ) return ( - +

TanStack Hotkeys kitchen sink

@@ -103,7 +100,7 @@ function Layout() {

@@ -57,7 +52,6 @@ function App() { - ) } @@ -400,16 +394,15 @@ function ActivityProvider(props: { children: JSX.Element }) { } const clear = () => setEntries([]) return ( - + {props.children} - +
) } +// A default-less context throws when its provider is missing. function useActivity() { - const activity = useContext(ActivityContext) - if (!activity) throw new Error('Missing ActivityProvider') - return activity + return useContext(ActivityContext) } function useLog() { diff --git a/examples/solid/scopes/tsconfig.json b/examples/solid/scopes/tsconfig.json index 95a64aac..92de4360 100644 --- a/examples/solid/scopes/tsconfig.json +++ b/examples/solid/scopes/tsconfig.json @@ -10,7 +10,7 @@ "isolatedModules": true, "noEmit": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, diff --git a/examples/solid/scopes/vite.config.ts b/examples/solid/scopes/vite.config.ts index 4095d9be..6a1fe32b 100644 --- a/examples/solid/scopes/vite.config.ts +++ b/examples/solid/scopes/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/package.json b/package.json index 382ea60c..9962a17f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "test:lib": "nx affected --targets=test:lib --exclude=examples/**", "test:lib:dev": "pnpm test:lib && nx watch --all -- pnpm test:lib", "test:pr": "pnpm run lint:all && nx affected --targets=test:sherif,test:knip,test:docs,test:lib,test:types,test:build,build", - "test:sherif": "sherif", + "test:sherif": "sherif -i solid-js", "test:skills": "intent maintainer check", "test:types": "nx affected --targets=test:types --exclude=examples/**", "watch": "pnpm run build:all && nx watch --all -- pnpm run build:all", diff --git a/packages/solid-hotkeys/package.json b/packages/solid-hotkeys/package.json index 73f4a6a4..e9d69f6f 100644 --- a/packages/solid-hotkeys/package.json +++ b/packages/solid-hotkeys/package.json @@ -52,12 +52,13 @@ "@tanstack/hotkeys": "workspace:*" }, "devDependencies": { - "@solidjs/testing-library": "^0.8.10", + "@solidjs/testing-library": "^1.0.0-rc.2", + "@solidjs/vite-plugin": "^3.0.0-next.55", + "@solidjs/web": "^2.0.0-rc.20", "@testing-library/jest-dom": "^7.0.1", - "solid-js": "^1.9.15", - "vite-plugin-solid": "^2.11.14" + "solid-js": "^2.0.0-rc.20" }, "peerDependencies": { - "solid-js": "^1.7.0" + "solid-js": ">=2.0.0-rc.20 <3.0.0" } } diff --git a/packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md b/packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md index a290d0d3..108691b5 100644 --- a/packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md +++ b/packages/solid-hotkeys/skills/solid-hotkeys/SKILL.md @@ -48,7 +48,7 @@ export function Editor() { () => ({ target: panel() }), ) - return
setIsDirty(true)} /> + return
setIsDirty(true)} /> } ``` @@ -81,7 +81,7 @@ The state these return is accessors, including the recorder's fields. No provide - **Pass options as an accessor.** `{ enabled: isDirty() }` is read once, during setup, so the hotkey never follows the signal. Use `() => ({ enabled: isDirty() })`. The hotkey and `createHotkeys`' definitions also accept accessors. - **Keep element targets in a signal.** A `let el` variable is still `undefined` when the options are read, and an undefined target means `document`. Use `ref={setEl}` and `() => ({ target: el() })`; a `null` target waits for the element. -- **Register hotkeys for removable elements in their `ref`.** Solid never calls a `ref` with `null`, so a signal keeps an element that `` or `` removed, and the hotkey stays registered on it. Use `ref={(el) => createHotkey('K', cb, { target: el })}`; the hotkey unregisters when the element is removed. +- **Give removable elements their own component.** For an element inside `` or ``, call `createHotkey` with a signal `target` in a component that renders the element, so the hotkey unregisters when Solid removes the component. Don't call `createHotkey` in a `ref` callback: Solid 2 runs it outside the component's owner, and it throws. - **The callback isn't tracked.** Read props inside it, as `() => props.onClose()`, rather than passing `props.onClose` itself. - **Register a dialog's hotkeys in a child of its provider.** A primitive uses the nearest `HotkeysProvider` above its component, so a dialog that renders `` and creates `Escape` itself puts it in the suspended outer scope. Give each open dialog its own scope name, such as `` `dialog-${createUniqueId()}` ``. - **Call the primitives directly.** A `createShortcut(keys: string)` wrapper has to cast strings to hotkeys, which turns off type checking and drops sequences, accessor options, and app hotkeys. diff --git a/packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md b/packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md index 73412d91..3b034088 100644 --- a/packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md +++ b/packages/solid-hotkeys/skills/solid-hotkeys/references/app-hotkeys.md @@ -19,7 +19,7 @@ declare module '@tanstack/solid-hotkeys' { ``` ```tsx no-check -import type { JSX } from 'solid-js' +import type { JSX } from '@solidjs/web' import { HotkeysProvider } from '@tanstack/solid-hotkeys' import type { CustomHotkeys } from '@tanstack/solid-hotkeys' import { appHotkeys } from './app-hotkeys' diff --git a/packages/solid-hotkeys/src/HotkeysProvider.tsx b/packages/solid-hotkeys/src/HotkeysProvider.tsx index 9cd6e63b..4bf2a2f6 100644 --- a/packages/solid-hotkeys/src/HotkeysProvider.tsx +++ b/packages/solid-hotkeys/src/HotkeysProvider.tsx @@ -1,9 +1,10 @@ import { + createComponent, createContext, createEffect, createMemo, - onCleanup, - onMount, + onSettled, + untrack, useContext, } from 'solid-js' import { publishAppHotkeysStore } from '@tanstack/hotkeys' @@ -13,7 +14,7 @@ import { getHotkeysProviderScopeKey, mergeHotkeysProviderDefaults, } from '@tanstack/hotkeys/adapter' -import type { JSX, ParentComponent } from 'solid-js' +import type { Element, ParentComponent } from 'solid-js' import type { AppHotkeys, AppHotkeysStore, @@ -57,7 +58,7 @@ interface HotkeysContextValue { const HotkeysContext = createContext(null) export interface HotkeysProviderProps extends HotkeysProviderScopeProps { - children: JSX.Element + children: Element /** * Every app hotkey, from `defineAppHotkeys`. Read when the provider is * created; listed by `createAppHotkeyList` whether or not they are registered. @@ -109,30 +110,35 @@ export const HotkeysProvider: ParentComponent = ( props, ) => { const parent = useContext(HotkeysContext) - const store = props.appHotkeys - ? createAppHotkeysStore(props.appHotkeys, { - customHotkeys: props.customHotkeys, - onCustomHotkeysChange: (custom) => - props.onCustomHotkeysChange?.(custom), - }) - : null + // Created once; the effects below apply later `appHotkeys` and + // `customHotkeys` values. + const store = untrack(() => + props.appHotkeys + ? createAppHotkeysStore(props.appHotkeys, { + customHotkeys: props.customHotkeys, + onCustomHotkeysChange: (custom) => + props.onCustomHotkeysChange?.(custom), + }) + : null, + ) // Keep declarations current (for example after hot module replacement). - createEffect(() => { - if (props.appHotkeys) store?.setAppHotkeys(props.appHotkeys) - }) + createEffect( + () => props.appHotkeys, + (appHotkeys) => { + if (appHotkeys) store?.setAppHotkeys(appHotkeys) + }, + ) // Apply saved custom hotkeys whose value changes, such as data that loads // after the first render. - createEffect(() => { - const customHotkeys = props.customHotkeys - store?.setOptions({ customHotkeys }) - }) + createEffect( + () => props.customHotkeys, + (customHotkeys) => store?.setOptions({ customHotkeys }), + ) // Publish the store so devtools can list declared hotkeys. - onMount(() => { - if (store) onCleanup(publishAppHotkeysStore(store)) - }) + onSettled(() => (store ? publishAppHotkeysStore(store) : undefined)) const active = () => (parent?.enabled ?? true) && props.enabled !== false const defaultOptions = createMemo(() => @@ -154,10 +160,9 @@ export const HotkeysProvider: ParentComponent = ( ) // Activate this provider's scope while mounted and enabled. - createEffect(() => { - const key = scopeKey() - if (key) onCleanup(activateHotkeysProviderScope(key)) - }) + createEffect(scopeKey, (key) => + key ? activateHotkeysProviderScope(key) : undefined, + ) const contextValue: HotkeysContextValue = { appHotkeysStore: store ?? parent?.appHotkeysStore ?? null, @@ -169,11 +174,14 @@ export const HotkeysProvider: ParentComponent = ( }, } - return ( - - {props.children} - - ) + // Built without JSX so the adapter only depends on `solid-js`, not on the + // `@solidjs/web` renderer that compiled JSX imports from. + return createComponent(HotkeysContext, { + value: contextValue, + get children() { + return props.children + }, + }) } export function useHotkeysContext() { diff --git a/packages/solid-hotkeys/src/_useSelector.ts b/packages/solid-hotkeys/src/_useSelector.ts index 8574a46e..7035566a 100644 --- a/packages/solid-hotkeys/src/_useSelector.ts +++ b/packages/solid-hotkeys/src/_useSelector.ts @@ -10,7 +10,13 @@ export function useSelector( store: Pick, 'get' | 'subscribe'>, selector: (state: TState) => TSelected, ): Accessor { - const [selected, setSelected] = createSignal(selector(store.get())) + const initial = selector(store.get()) + // The store writes from outside the owner, so the signal allows owned + // writes. A function value is wrapped so it is stored, not computed. + const [selected, setSelected] = createSignal( + (typeof initial === 'function' ? () => initial : initial) as never, + { ownedWrite: true }, + ) const { unsubscribe } = store.subscribe((state) => { setSelected(() => selector(state)) }) diff --git a/packages/solid-hotkeys/src/createHotkeyRecorder.ts b/packages/solid-hotkeys/src/createHotkeyRecorder.ts index c9c7653a..eed66bd2 100644 --- a/packages/solid-hotkeys/src/createHotkeyRecorder.ts +++ b/packages/solid-hotkeys/src/createHotkeyRecorder.ts @@ -1,4 +1,4 @@ -import { createEffect, onCleanup } from 'solid-js' +import { createEffect, onCleanup, untrack } from 'solid-js' import { HotkeyRecorder } from '@tanstack/hotkeys' import { withDefaults } from '@tanstack/hotkeys/adapter' import { useSelector } from './_useSelector' @@ -71,7 +71,7 @@ export function createHotkeyRecorder( ) as HotkeySequenceRecorderOptions // Create recorder once synchronously; overloads already checked the options. - const recorder = new HotkeyRecorder(resolve()) + const recorder = new HotkeyRecorder(untrack(resolve)) const isRecording = useSelector(recorder.store, (state) => state.isRecording) const steps = useSelector(recorder.store, (state) => state.steps) @@ -81,8 +81,8 @@ export function createHotkeyRecorder( ) // Sync options whenever reactive options change - createEffect(() => { - recorder.setOptions(resolve()) + createEffect(resolve, (resolved) => { + recorder.setOptions(resolved) }) onCleanup(() => { diff --git a/packages/solid-hotkeys/src/createHotkeyRegistrations.ts b/packages/solid-hotkeys/src/createHotkeyRegistrations.ts index 853ff386..7fc394ae 100644 --- a/packages/solid-hotkeys/src/createHotkeyRegistrations.ts +++ b/packages/solid-hotkeys/src/createHotkeyRegistrations.ts @@ -1,3 +1,4 @@ +import { createStore } from 'solid-js' import { getHotkeyManager, toHotkeyRegistrationView } from '@tanstack/hotkeys' import { useSelector } from './_useSelector' import type { HotkeyRegistrationView } from '@tanstack/hotkeys' @@ -19,7 +20,15 @@ import type { HotkeyRegistrationView } from '@tanstack/hotkeys' * ``` */ export function createHotkeyRegistrations(): () => Array { - return useSelector(getHotkeyManager().registrations, (state) => + const views = useSelector(getHotkeyManager().registrations, (state) => Array.from(state.values()).map(toHotkeyRegistrationView), ) + // Views are rebuilt on every change; reconciling them by id keeps each + // registration's identity, so `` rows update in place. + const [registrations] = createStore>( + () => views(), + [], + { key: 'id' }, + ) + return () => registrations } diff --git a/packages/solid-hotkeys/src/createHotkeys.ts b/packages/solid-hotkeys/src/createHotkeys.ts index 74783fed..1cf2d46a 100644 --- a/packages/solid-hotkeys/src/createHotkeys.ts +++ b/packages/solid-hotkeys/src/createHotkeys.ts @@ -1,5 +1,4 @@ -import { createEffect, onCleanup, untrack } from 'solid-js' -import { delegateEvents } from 'solid-js/web' +import { createEffect, onCleanup } from 'solid-js' import { createHotkeyBindings, prepareHotkeyDefinitions, @@ -26,8 +25,7 @@ export type CreateHotkeyDefinition = AdapterHotkeyDefinition * * Options merge in this order: provider defaults, app hotkey declaration, * commonOptions, per-hotkey options. Each option applies only to the kinds - * that support it. Unbound app hotkeys, empty sequences, and `undefined`, - * `null`, or `''` hotkeys register nothing. + * that support it. Unbound app hotkeys and empty sequences register nothing. * A `null` target skips registration until it is set. * * @example @@ -52,25 +50,25 @@ export function createHotkeys( // Clean up only when this owner disposes, not before every effect re-run. onCleanup(() => bindings.destroy()) - createEffect(() => { - // Track app hotkeys so registrations move with custom hotkeys. - appHotkeys.state() - const definitions = prepareHotkeyDefinitions( - typeof hotkeys === 'function' ? hotkeys() : hotkeys, - { - appHotkeysStore: appHotkeys.store, - defaults: defaultOptions().hotkey, - commonOptions: - typeof commonOptions === 'function' ? commonOptions() : commonOptions, - // A null target skips registration until the element exists. - resolveTarget: (target) => target, - }, - ) - // Solid's onKeyDown listener on the document must come before the - // hotkeys' listener there, even when the first module that uses - // onKeyDown loads later. This runs only in the browser. - delegateEvents(['keydown', 'keyup']) - // Untrack store writes so registrations do not re-trigger this effect. - untrack(() => bindings.update(definitions)) - }) + createEffect( + () => { + // Track app hotkeys so registrations move with custom hotkeys. + appHotkeys.state() + return prepareHotkeyDefinitions( + typeof hotkeys === 'function' ? hotkeys() : hotkeys, + { + appHotkeysStore: appHotkeys.store, + defaults: defaultOptions().hotkey, + commonOptions: + typeof commonOptions === 'function' + ? commonOptions() + : commonOptions, + // A null target skips registration until the element exists. + resolveTarget: (target) => target, + }, + ) + }, + // The effect half is untracked, so registration writes do not re-run it. + (definitions) => bindings.update(definitions), + ) } diff --git a/packages/solid-hotkeys/tests/appHotkeys.test.tsx b/packages/solid-hotkeys/tests/appHotkeys.test.tsx index 1cc6cde0..48e457c8 100644 --- a/packages/solid-hotkeys/tests/appHotkeys.test.tsx +++ b/packages/solid-hotkeys/tests/appHotkeys.test.tsx @@ -1,3 +1,4 @@ +import { flush } from 'solid-js' // @vitest-environment happy-dom import { afterEach, describe, expect, it, vi } from 'vitest' import { cleanup, render } from '@solidjs/testing-library' @@ -12,7 +13,7 @@ import { createHotkey } from '../src/createHotkey' import { createHotkeys } from '../src/createHotkeys' import { createHotkeyRecorder } from '../src/createHotkeyRecorder' import { createSignal } from 'solid-js' -import type { JSX } from 'solid-js' +import type { Element } from 'solid-js' import type { CustomHotkeys, Hotkey } from '@tanstack/hotkeys' const appHotkeys = defineAppHotkeys({ @@ -35,7 +36,7 @@ function registrations() { } function withProvider( - children: () => JSX.Element, + children: () => Element, props: { customHotkeys?: CustomHotkeys onCustomHotkeysChange?: (custom: CustomHotkeys) => void @@ -77,6 +78,7 @@ describe('app hotkeys', () => { custom.setCustomHotkey('doc.save', ['G', 'S']) custom.setCustomHotkey('palette.open', 'Mod+K') + flush() expect(registrations().map((r) => r.hotkey)).toEqual([['G', 'S'], 'Mod+K']) press('g') press('s') @@ -155,12 +157,15 @@ describe('HotkeysProvider customHotkeys prop', () => { )) setSaved({ 'doc.save': 'Mod+Shift+S' }) + + flush() expect(custom.customHotkeys()).toEqual({ 'doc.save': 'Mod+Shift+S' }) expect(onCustomHotkeysChange).not.toHaveBeenCalled() // The same value again keeps the user's change. custom.setCustomHotkey('palette.open', 'Mod+K') setSaved({ 'doc.save': 'Mod+Shift+S' }) + flush() expect(custom.customHotkeys()).toEqual({ 'doc.save': 'Mod+Shift+S', 'palette.open': 'Mod+K', @@ -168,6 +173,7 @@ describe('HotkeysProvider customHotkeys prop', () => { // Another user's data replaces it. setSaved({ 'nav.home': ['G', 'G'] }) + flush() expect(custom.customHotkeys()).toEqual({ 'nav.home': ['G', 'G'] }) }) }) @@ -186,8 +192,10 @@ describe('createHotkeyRecorder', () => { }) recorder.startRecording() press('g', { code: 'KeyG' }) + flush() expect(recorder.steps()).toEqual(['G']) press('h', { code: 'KeyH' }) + flush() expect(onRecord).toHaveBeenCalledExactlyOnceWith(['G', 'H']) expect(recorder.recordedHotkey()).toEqual(['G', 'H']) }) diff --git a/packages/solid-hotkeys/tests/createHotkey.test.tsx b/packages/solid-hotkeys/tests/createHotkey.test.tsx index 982601f4..2b1ececb 100644 --- a/packages/solid-hotkeys/tests/createHotkey.test.tsx +++ b/packages/solid-hotkeys/tests/createHotkey.test.tsx @@ -1,9 +1,10 @@ // @vitest-environment happy-dom -import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@solidjs/testing-library' import { HotkeyManager, getHotkeyManager } from '@tanstack/hotkeys' +import { Show, createSignal, flush } from 'solid-js' import { createHotkey } from '../src/createHotkey' -import { Show, createSignal, type Component } from 'solid-js' +import type { Component } from 'solid-js' describe('createHotkey', () => { beforeEach(() => { @@ -151,6 +152,7 @@ describe('createHotkey', () => { // Update state via button click (triggers re-run) getByRole('button').click() + flush() // Trigger hotkey again - count is now 5, callback uses count() for latest document.dispatchEvent( @@ -163,6 +165,7 @@ describe('createHotkey', () => { expect(capturedValues).toEqual([0, 5]) getByRole('button').click() + flush() document.dispatchEvent( new KeyboardEvent('keydown', { @@ -204,6 +207,7 @@ describe('createHotkey', () => { // Disable the hotkey getByRole('button').click() + flush() // Should not fire when disabled document.dispatchEvent( @@ -217,6 +221,7 @@ describe('createHotkey', () => { // Re-enable getByRole('button').click() + flush() document.dispatchEvent( new KeyboardEvent('keydown', { @@ -285,6 +290,7 @@ describe('createHotkey', () => { // Mount the target div getByTestId('mount-btn').click() + flush() // Now target is set. Dispatch on the target element for the hotkey to fire const targetEl = getByTestId('target') @@ -298,16 +304,18 @@ describe('createHotkey', () => { expect(callback).toHaveBeenCalled() }) - it('registers from a ref callback and cleans up when the element is removed', () => { + it('registers in a component inside and cleans up when it is removed', () => { const callback = vi.fn() const [open, setOpen] = createSignal(false) + const Panel: Component = () => { + const [panel, setPanel] = createSignal(null) + createHotkey('K', callback, () => ({ target: panel() })) + return
+ } const TestComponent: Component = () => ( -
createHotkey('K', callback, { target: el })} - /> + ) @@ -325,15 +333,20 @@ describe('createHotkey', () => { expect(registrations()).toBe(0) setOpen(true) + + flush() expect(registrations()).toBe(1) pressK() expect(callback).toHaveBeenCalledTimes(1) setOpen(false) + + flush() expect(registrations()).toBe(0) // A new node replaces the removed one. setOpen(true) + flush() expect(registrations()).toBe(1) pressK() expect(callback).toHaveBeenCalledTimes(2) diff --git a/packages/solid-hotkeys/tests/createHotkeyHint.test.tsx b/packages/solid-hotkeys/tests/createHotkeyHint.test.tsx index 2f60aef9..bb3caa55 100644 --- a/packages/solid-hotkeys/tests/createHotkeyHint.test.tsx +++ b/packages/solid-hotkeys/tests/createHotkeyHint.test.tsx @@ -1,5 +1,5 @@ // @vitest-environment happy-dom -import { createRoot, createSignal } from 'solid-js' +import { createRoot, createSignal, flush } from 'solid-js' import { afterEach, expect, it } from 'vitest' import { HotkeyManager, KeyStateTracker } from '@tanstack/hotkeys' import { createHotkeyHint } from '../src/createHotkeyHint' @@ -13,28 +13,37 @@ it('reacts to held modifiers and changing bindings', () => { const manager = HotkeyManager.getInstance() const handle = manager.register('Alt+[KeyS]', () => {}) manager.register('Control+[KeyS]', () => {}) - createRoot((dispose) => { - const [binding, setBinding] = createSignal('Alt+[KeyS]') - const hint = createHotkeyHint(binding) - expect(hint()).toBe(false) - document.dispatchEvent( - new KeyboardEvent('keydown', { key: 'Alt', code: 'AltLeft' }), - ) - expect(hint()).toBe(true) - setBinding('Control+[KeyS]') - expect(hint()).toBe(false) - setBinding('Alt+[KeyS]') - expect(hint()).toBe(true) - handle.setOptions({ enabled: false }) - expect(hint()).toBe(false) - handle.setOptions({ enabled: true }) - expect(hint()).toBe(true) - const release = manager.activateScope('dialog', { exclusive: true }) - expect(hint()).toBe(false) - release() - expect(hint()).toBe(true) - window.dispatchEvent(new Event('blur')) - expect(hint()).toBe(false) - dispose() - }) + const [binding, setBinding] = createSignal('Alt+[KeyS]') + const { hint, dispose } = createRoot((dispose) => ({ + hint: createHotkeyHint(binding), + dispose, + })) + expect(hint()).toBe(false) + document.dispatchEvent( + new KeyboardEvent('keydown', { key: 'Alt', code: 'AltLeft' }), + ) + flush() + expect(hint()).toBe(true) + setBinding('Control+[KeyS]') + flush() + expect(hint()).toBe(false) + setBinding('Alt+[KeyS]') + flush() + expect(hint()).toBe(true) + handle.setOptions({ enabled: false }) + flush() + expect(hint()).toBe(false) + handle.setOptions({ enabled: true }) + flush() + expect(hint()).toBe(true) + const release = manager.activateScope('dialog', { exclusive: true }) + flush() + expect(hint()).toBe(false) + release() + flush() + expect(hint()).toBe(true) + window.dispatchEvent(new Event('blur')) + flush() + expect(hint()).toBe(false) + dispose() }) diff --git a/packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx b/packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx index 5de6bd57..cd40f5fb 100644 --- a/packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx +++ b/packages/solid-hotkeys/tests/createHotkeys-sequences.test.tsx @@ -2,9 +2,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@solidjs/testing-library' import { HotkeyManager } from '@tanstack/hotkeys' -import { createSignal } from 'solid-js' -import type { Component } from 'solid-js' +import { createSignal, flush } from 'solid-js' import { createHotkeys } from '../src/createHotkeys' +import type { Component } from 'solid-js' import type { CreateHotkeyDefinition } from '../src/createHotkeys' function dispatchKey(key: string) { @@ -152,9 +152,11 @@ describe('createHotkeys', () => { expect(manager.getRegistrationCount()).toBe(1) setEnabled(false) + flush() expect([...manager.registrations.state.keys()][0]).toBe(idBefore) setEnabled(true) + flush() expect([...manager.registrations.state.keys()][0]).toBe(idBefore) }) @@ -180,6 +182,7 @@ describe('createHotkeys', () => { { hotkey: ['G', 'G'], callback: gg }, { hotkey: ['Y', 'Y'], callback: yy }, ]) + flush() dispatchKey('y') dispatchKey('y') diff --git a/packages/solid-hotkeys/tests/createHotkeys.test.tsx b/packages/solid-hotkeys/tests/createHotkeys.test.tsx index cd8bb0b3..d8fa98fc 100644 --- a/packages/solid-hotkeys/tests/createHotkeys.test.tsx +++ b/packages/solid-hotkeys/tests/createHotkeys.test.tsx @@ -1,12 +1,11 @@ // @vitest-environment happy-dom -import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { render } from '@solidjs/testing-library' import { HotkeyManager } from '@tanstack/hotkeys' -import { - createHotkeys, - type CreateHotkeyDefinition, -} from '../src/createHotkeys' -import { createSignal, type Component } from 'solid-js' +import { createSignal, flush } from 'solid-js' +import { createHotkeys } from '../src/createHotkeys' +import type { Component } from 'solid-js' +import type { CreateHotkeyDefinition } from '../src/createHotkeys' describe('createHotkeys', () => { beforeEach(() => { @@ -177,9 +176,11 @@ describe('createHotkeys', () => { expect(manager.getRegistrationCount()).toBe(1) setEnabled(false) + flush() expect([...manager.registrations.state.keys()][0]).toBe(idBefore) setEnabled(true) + flush() expect([...manager.registrations.state.keys()][0]).toBe(idBefore) }) @@ -217,6 +218,7 @@ describe('createHotkeys', () => { expect(manager.getRegistrationCount()).toBe(2) getByRole('button').click() + flush() expect(manager.getRegistrationCount()).toBe(2) diff --git a/packages/solid-hotkeys/tests/element-order.test.tsx b/packages/solid-hotkeys/tests/element-order.test.tsx index 5d29e64e..1da0bb95 100644 --- a/packages/solid-hotkeys/tests/element-order.test.tsx +++ b/packages/solid-hotkeys/tests/element-order.test.tsx @@ -1,20 +1,20 @@ // @vitest-environment happy-dom import { afterEach, expect, it } from 'vitest' import { render } from '@solidjs/testing-library' -import { clearDelegatedEvents, delegateEvents } from 'solid-js/web' +import { delegateEvents } from '@solidjs/web' import { createSignal } from 'solid-js' import { HotkeyManager, getHotkeyManager } from '@tanstack/hotkeys' import { createHotkey } from '../src/createHotkey' -// Solid runs onKeyDown from one listener on the document. A hotkey must run -// after it, even when the hotkey's listener was added first. +// Solid 2 runs onKeyDown from one listener on the render root, which a key +// event reaches before the document. A hotkey must run after it, even when +// the hotkey's listener was added first. const log: Array = [] afterEach(() => { HotkeyManager.resetInstance() document.body.replaceChildren() - delegateEvents(['keydown', 'keyup']) log.length = 0 }) @@ -32,7 +32,7 @@ function Panel(props: { childStops?: boolean }) { () => ({ target: panel() }), ) return ( -
log.push('panel')}> +
log.push('panel')}> { it('runs a document hotkey after onKeyDown handlers that load later', () => { // A route chunk that first uses onKeyDown loads after the hotkey registers. - clearDelegatedEvents() function Root() { createHotkey('J', () => log.push('hotkey')) return null @@ -87,7 +86,6 @@ it('runs a document hotkey after onKeyDown handlers that load later', () => { }) it('runs after onKeyDown handlers when the manager listened on the document first', () => { - clearDelegatedEvents() // A hotkey registered through core attaches the document listener first. getHotkeyManager().register('X', () => {}) const { getByTestId } = render(() => ) diff --git a/packages/solid-hotkeys/tests/platform.server.test.tsx b/packages/solid-hotkeys/tests/platform.server.test.tsx index 3aba5918..1f47c4f3 100644 --- a/packages/solid-hotkeys/tests/platform.server.test.tsx +++ b/packages/solid-hotkeys/tests/platform.server.test.tsx @@ -1,4 +1,4 @@ -import { renderToString } from 'solid-js/web' +import { renderToString } from '@solidjs/web' import { describe, expect, it } from 'vitest' import { HotkeysProvider } from '../src/HotkeysProvider' import { createFormatForDisplay } from '../src/createFormatForDisplay' diff --git a/packages/solid-hotkeys/tests/platform.test.tsx b/packages/solid-hotkeys/tests/platform.test.tsx index 8449a4ec..d7ae9d27 100644 --- a/packages/solid-hotkeys/tests/platform.test.tsx +++ b/packages/solid-hotkeys/tests/platform.test.tsx @@ -1,4 +1,4 @@ -import { createSignal } from 'solid-js' +import { createSignal, flush } from 'solid-js' import { render } from '@solidjs/testing-library' import { HotkeyManager } from '@tanstack/hotkeys' import { afterEach, describe, expect, it, vi } from 'vitest' @@ -6,7 +6,7 @@ import { HotkeysProvider } from '../src/HotkeysProvider' import { createFormatForDisplay } from '../src/createFormatForDisplay' import { createHotkey } from '../src/createHotkey' import { createHotkeyRecorder } from '../src/createHotkeyRecorder' -import type { JSX } from 'solid-js' +import type { Element } from 'solid-js' type Platform = 'mac' | 'windows' | 'linux' @@ -19,7 +19,7 @@ function press(init: KeyboardEventInit) { ) } -function renderIn(platform: Platform, child: () => JSX.Element) { +function renderIn(platform: Platform, child: () => Element) { return render(() => ( {child()} )) @@ -43,6 +43,7 @@ describe('provider platform', () => { )) expect(container.textContent).toBe('⌘ S') setPlatform('windows') + flush() expect(container.textContent).toBe('Ctrl+S') unmount() }) diff --git a/packages/solid-hotkeys/tests/reactive-options.test.tsx b/packages/solid-hotkeys/tests/reactive-options.test.tsx index 67918a8c..f6d276c8 100644 --- a/packages/solid-hotkeys/tests/reactive-options.test.tsx +++ b/packages/solid-hotkeys/tests/reactive-options.test.tsx @@ -1,11 +1,12 @@ -import { createHotkeys } from '../src/createHotkeys' import { afterEach, expect, it, vi } from 'vitest' import { cleanup, render } from '@solidjs/testing-library' -import { createSignal } from 'solid-js' +import { createSignal, flush } from 'solid-js' import { HotkeyManager } from '@tanstack/hotkeys' +import { createHotkeys } from '../src/createHotkeys' import { createHotkey } from '../src/createHotkey' import { createHotkeyRecorder } from '../src/createHotkeyRecorder' import { HotkeysProvider } from '../src/HotkeysProvider' + const press = () => document.dispatchEvent( new KeyboardEvent('keydown', { key: 'a', bubbles: true }), @@ -29,6 +30,7 @@ it('updates a direct enabled property getter without user setOptions', () => { press() expect(callback).toHaveBeenCalledTimes(1) setEnabled(false) + flush() press() expect(callback).toHaveBeenCalledTimes(1) }) @@ -47,6 +49,7 @@ it('updates provider defaults when its options object is replaced', () => { press() expect(callback).toHaveBeenCalledTimes(1) setEnabled(false) + flush() press() expect(callback).toHaveBeenCalledTimes(1) }) @@ -67,6 +70,7 @@ it('updates an active recorder callback property getter', () => { render(() => ) recorder.startRecording() setCurrent(true) + flush() recorder.cancelRecording() expect(second).toHaveBeenCalledOnce() expect(first).not.toHaveBeenCalled() @@ -116,13 +120,16 @@ it('refreshes all provider option groups without replacing registrations or acti expect(override).toHaveBeenCalledOnce() single.startRecording() setEnabled(false) + flush() single.cancelRecording() sequence.startRecording() setEnabled(true) + flush() sequence.cancelRecording() expect(first).toHaveBeenCalledOnce() expect(second).toHaveBeenCalledOnce() setEnabled(false) + flush() invoke() expect(run).toHaveBeenCalledTimes(4) expect(override).toHaveBeenCalledTimes(2) diff --git a/packages/solid-hotkeys/tests/scopes.test.tsx b/packages/solid-hotkeys/tests/scopes.test.tsx index a6129100..ee05075e 100644 --- a/packages/solid-hotkeys/tests/scopes.test.tsx +++ b/packages/solid-hotkeys/tests/scopes.test.tsx @@ -1,13 +1,13 @@ // @vitest-environment happy-dom import { afterEach, describe, expect, it, vi } from 'vitest' import { cleanup, render } from '@solidjs/testing-library' -import { createSignal } from 'solid-js' +import { createSignal, flush } from 'solid-js' import { HotkeyManager, defineAppHotkeys } from '@tanstack/hotkeys' import { HotkeysProvider } from '../src/HotkeysProvider' import { createAppHotkeyList } from '../src/appHotkeys' import { createHotkey } from '../src/createHotkey' import { createHotkeyScopesState } from '../src/createHotkeyScopesState' -import type { JSX } from 'solid-js' +import type { Element } from 'solid-js' const appHotkeys = defineAppHotkeys({ 'doc.save': { hotkey: 'Mod+S' }, @@ -21,7 +21,7 @@ function press(key: string) { document.dispatchEvent(new KeyboardEvent('keyup', { key, bubbles: true })) } -function Root(props: { children: JSX.Element }) { +function Root(props: { children: Element }) { return ( { expect(calls()).toEqual([1, 0, 1]) setOpen(true) + flush() press('e') press('k') expect(calls()).toEqual([1, 1, 1]) setOpen(false) + flush() press('e') expect(calls()).toEqual([2, 1, 1]) }) @@ -173,6 +175,7 @@ describe('HotkeysProvider scopes', () => { )) const activate = vi.spyOn(HotkeyManager.getInstance(), 'activateScope') setAllow(['global']) + flush() expect(activate).not.toHaveBeenCalled() press('e') @@ -196,6 +199,7 @@ describe('HotkeysProvider scopes', () => { )) press('e') setEnabled(false) + flush() press('e') expect(save).toHaveBeenCalledTimes(1) expect(HotkeyManager.getInstance().isScopeActive('editor')).toBe(false) @@ -222,6 +226,7 @@ describe('HotkeysProvider scopes', () => { )) expect(list().map((item) => item.status)).toEqual(['active', 'active']) setOpen(true) + flush() expect(list().map((item) => item.status)).toEqual([ 'suspended', 'suspended', @@ -242,6 +247,7 @@ describe('HotkeysProvider scopes', () => { const release = HotkeyManager.getInstance().activateScope('dialog', { exclusive: true, }) + flush() expect(state()).toMatchObject({ active: ['dialog'], exclusive: 'dialog', @@ -250,6 +256,7 @@ describe('HotkeysProvider scopes', () => { expect(container.textContent).toBe('dialog') release() + flush() expect(state()).toMatchObject({ exclusive: null, suspended: [] }) expect(container.textContent).toBe('none') }) diff --git a/packages/solid-hotkeys/tests/unset-values.test.tsx b/packages/solid-hotkeys/tests/unset-values.test.tsx index 92a07f78..91ba5b2e 100644 --- a/packages/solid-hotkeys/tests/unset-values.test.tsx +++ b/packages/solid-hotkeys/tests/unset-values.test.tsx @@ -1,7 +1,7 @@ // @vitest-environment happy-dom import { afterEach, beforeEach, expect, it, vi } from 'vitest' import { render } from '@solidjs/testing-library' -import { createSignal } from 'solid-js' +import { createSignal, flush } from 'solid-js' import { HotkeyManager, getHotkeyManager } from '@tanstack/hotkeys' import { createHotkey } from '../src/createHotkey' import { createHotkeyHint } from '../src/createHotkeyHint' @@ -30,12 +30,14 @@ it('a hotkey that becomes undefined or null unregisters, and a value registers a expect(registrationCount()).toBe(1) for (const unset of [undefined, null]) { setShortcut(unset) + flush() expect(registrationCount()).toBe(0) expect(hint()).toBe(false) press() expect(onRun).not.toHaveBeenCalled() } setShortcut('K') + flush() expect(registrationCount()).toBe(1) press() expect(onRun).toHaveBeenCalledOnce() diff --git a/packages/solid-hotkeys/tsconfig.json b/packages/solid-hotkeys/tsconfig.json index 6bb0fd91..ce3ebb08 100644 --- a/packages/solid-hotkeys/tsconfig.json +++ b/packages/solid-hotkeys/tsconfig.json @@ -2,7 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "jsx": "preserve", - "jsxImportSource": "solid-js" + "jsxImportSource": "@solidjs/web" }, "include": ["src", "vitest.config.ts", "tests"], "exclude": ["eslint.config.js"] diff --git a/packages/solid-hotkeys/tsdown.config.ts b/packages/solid-hotkeys/tsdown.config.ts index 08f5aca4..b3c9346a 100644 --- a/packages/solid-hotkeys/tsdown.config.ts +++ b/packages/solid-hotkeys/tsdown.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'tsdown' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' export default defineConfig({ plugins: [solid()], diff --git a/packages/solid-hotkeys/vitest.config.ts b/packages/solid-hotkeys/vitest.config.ts index 3a33dee5..d67b6fad 100644 --- a/packages/solid-hotkeys/vitest.config.ts +++ b/packages/solid-hotkeys/vitest.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config' -import solid from 'vite-plugin-solid' +import solid from '@solidjs/vite-plugin' import packageJson from './package.json' with { type: 'json' } export default defineConfig({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7804c9f..f6b464bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -239,7 +239,7 @@ importers: version: 0.3.4(typescript@6.0.3) '@testing-library/jest-dom': specifier: ^7.0.1 - version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) + version: 7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) '@types/node': specifier: ^26.6.4 version: 26.6.4 @@ -2819,7 +2819,7 @@ importers: version: 1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@tanstack/react-start': specifier: ^1.169.4 - version: 1.169.4(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) + version: 1.169.4(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) react: specifier: ^19.3.0 version: 19.3.0 @@ -3115,118 +3115,68 @@ importers: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - examples/solid/createFormatForDisplay-astro: - dependencies: - '@astrojs/node': - specifier: ^11.1.9 - version: 11.1.9(astro@7.4.4(@types/node@26.6.4)(db0@0.3.4)(esbuild@0.28.2)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(supports-color@8.1.1) - '@astrojs/solid-js': - specifier: ^7.1.2 - version: 7.1.2(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(solid-js@1.9.15)(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1) - '@tanstack/solid-hotkeys': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys - astro: - specifier: ^7.4.4 - version: 7.4.4(@types/node@26.6.4)(db0@0.3.4)(esbuild@0.28.2)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - solid-js: - specifier: ^1.9.15 - version: 1.9.15 - devDependencies: - '@astrojs/check': - specifier: ^0.9.12 - version: 0.9.12(@emnapi/runtime@1.11.3)(prettier@3.9.9)(typescript@6.0.3) - typescript: - specifier: 6.0.3 - version: 6.0.3 - - examples/solid/createFormatForDisplay-solid-start: - dependencies: - '@solidjs/router': - specifier: ^1.0.1 - version: 1.0.1(solid-js@1.9.15) - '@solidjs/start': - specifier: ^2.1.0 - version: 2.1.0(@solidjs/router@1.0.1(solid-js@1.9.15))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(crossws@0.4.17(srvx@1.0.8))(ocache@0.3.1)(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) - '@tanstack/solid-hotkeys': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys - solid-js: - specifier: ^1.9.15 - version: 1.9.15 - devDependencies: - nitro: - specifier: ^3.0.261029-rc - version: 3.0.261029-rc - typescript: - specifier: 6.0.3 - version: 6.0.3 - vite: - specifier: ^8.3.2 - version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - examples/solid/createFormatForDisplay-tanstack-start: dependencies: + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys '@tanstack/solid-router': - specifier: ^1.170.43 - version: 1.170.43(solid-js@1.9.15) + specifier: ^2.0.0-rc.10 + version: 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20) '@tanstack/solid-start': - specifier: ^1.169.4 - version: 1.169.4(e885dec8d474d195bbdad09222213563) + specifier: ^2.0.0-rc.10 + version: 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@tanstack/react-router@1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(crossws@0.4.17(srvx@1.0.8))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) typescript: specifier: 6.0.3 version: 6.0.3 vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) examples/solid/createHeldKeys: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) examples/solid/createHotkey: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) '@types/node': specifier: ^26.6.4 version: 26.6.4 @@ -3236,91 +3186,79 @@ importers: vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) examples/solid/createHotkey-sequences: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) examples/solid/createHotkeyRecorder: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) examples/solid/createHotkeyRecorder-sequences: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) examples/solid/createHotkeys: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) '@types/node': specifier: ^26.6.4 version: 26.6.4 @@ -3330,69 +3268,60 @@ importers: vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) examples/solid/createHotkeys-sequences: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) examples/solid/createKeyHold: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) examples/solid/kitchen-sink: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) '@types/node': specifier: ^26.6.4 version: 26.6.4 @@ -3402,25 +3331,22 @@ importers: vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) examples/solid/scopes: dependencies: - '@tanstack/solid-devtools': - specifier: 0.8.14 - version: 0.8.14(csstype@3.2.3)(solid-js@1.9.15) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@tanstack/solid-hotkeys': specifier: workspace:* version: link:../../../packages/solid-hotkeys - '@tanstack/solid-hotkeys-devtools': - specifier: workspace:* - version: link:../../../packages/solid-hotkeys-devtools solid-js: - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 devDependencies: + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) '@types/node': specifier: ^26.6.4 version: 26.6.4 @@ -3430,9 +3356,6 @@ importers: vite: specifier: ^8.3.2 version: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) examples/svelte/create-hotkey: dependencies: @@ -4330,7 +4253,7 @@ importers: devDependencies: vite-plugin-solid: specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) packages/lit-hotkeys: dependencies: @@ -4410,7 +4333,7 @@ importers: version: 0.11.2(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@testing-library/react': specifier: ^16.3.3 - version: 16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@types/react': specifier: ^19.3.0 version: 19.3.0 @@ -4477,17 +4400,20 @@ importers: version: link:../hotkeys devDependencies: '@solidjs/testing-library': - specifier: ^0.8.10 - version: 0.8.10(@solidjs/router@1.0.1(solid-js@1.9.15))(solid-js@1.9.15) + specifier: ^1.0.0-rc.2 + version: 1.0.0-rc.2(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20) + '@solidjs/vite-plugin': + specifier: ^3.0.0-next.55 + version: 3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + '@solidjs/web': + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20(solid-js@2.0.0-rc.20) '@testing-library/jest-dom': specifier: ^7.0.1 - version: 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) + version: 7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) solid-js: - specifier: ^1.9.15 - version: 1.9.15 - vite-plugin-solid: - specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + specifier: ^2.0.0-rc.20 + version: 2.0.0-rc.20 packages/solid-hotkeys-devtools: dependencies: @@ -4506,7 +4432,7 @@ importers: version: 1.9.15 vite-plugin-solid: specifier: ^2.11.14 - version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + version: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) packages/svelte-hotkeys: dependencies: @@ -5141,16 +5067,6 @@ packages: oxc-transform-react: optional: true - '@astrojs/solid-js@7.1.2': - resolution: {integrity: sha512-AXSXsB3t3EISa41A8QLsUhjqDtlKLXUHAirmCY1VKm1SIYJjj6gWvpAKjXhsxZSHxrxwmDH/7LR6+wM/5S7nkg==} - engines: {node: '>=22.23.4'} - peerDependencies: - solid-devtools: ^0.34.5 - solid-js: ^1.9.13 - peerDependenciesMeta: - solid-devtools: - optional: true - '@astrojs/svelte@9.1.2': resolution: {integrity: sha512-gLLGQL28CPRC/74REhEmqQNUdjagURcqkSLPgjEZceql7WxdAOXyCD9SFxsl75q4R4ePAWiK7SutfqldC+WNHw==} engines: {node: '>=22.23.4'} @@ -5173,6 +5089,10 @@ packages: '@astrojs/yaml2ts@0.2.4': resolution: {integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} @@ -8269,6 +8189,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nothing-but/utils@0.17.0': + resolution: {integrity: sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ==} + '@nullvoxpopuli/ember-build-tooling-utils@1.2.0': resolution: {integrity: sha512-eAaAjBWbX1IjPlH5VSwggSVAxjmu8YMVFA+SHJiR/D5HFd9dDBcBaPxvFWY3kPdRDONVwOjp6sx27FH39qJLUQ==} engines: {node: '>= 24'} @@ -8504,12 +8427,6 @@ packages: cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm-eabi@0.141.0': - resolution: {integrity: sha512-jk7086MFvR/T4DG9IY7MKBVt1PMxvSZoz/TvnifodvS0pjghVwJHRttnAExhlwdMOgHv1TmLdENnbNpYk2zjvA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [android] - '@oxc-parser/binding-android-arm-eabi@0.150.0': resolution: {integrity: sha512-oQef2Zu4Prz1KLKznz3HqZzU9uVoA5PMoDZuuLmqms7hKmKSAPzlaMnLllJq3t+rgKmfJJ2siPrpZfFrW06btw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8528,12 +8445,6 @@ packages: cpu: [arm64] os: [android] - '@oxc-parser/binding-android-arm64@0.141.0': - resolution: {integrity: sha512-a4XDQ27ZT7e7zwAlxJDTiCA7IBGWDuy2+MhFq85Of7XlBSmpkfcBFml11q0Zx6f7RMuI0B4xCtt2ytBS4yOptg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@oxc-parser/binding-android-arm64@0.150.0': resolution: {integrity: sha512-B6ofpoFiAUwIZ0MJ2IgHPvZK8FAtL4qzSZRwOkAKIfxEobE1mQC8nDdiFZj7pUaJiVUVCsfkMsBJKedzO8rZvA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8552,12 +8463,6 @@ packages: cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-arm64@0.141.0': - resolution: {integrity: sha512-m/kVk6rzYmBeHYnz+1Y5fod00AVTTxMbC71azFfm/zjx1j9XxwKtA0+VfkKuVMC8rbghb9TtfevnuWZa9OuPEg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@oxc-parser/binding-darwin-arm64@0.150.0': resolution: {integrity: sha512-J+9IHKzx/bSz1JetOfD4zKXSK9sOm4/a7+0qomJODcTL6JsRXGeV/ZdkAPSIDydfFmWzYCraMlQEosSZEyBYkQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8576,12 +8481,6 @@ packages: cpu: [x64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.141.0': - resolution: {integrity: sha512-o0X+6KZlfucWU/v5oKRQPwdFXsXAjW8jmpo/Gpw/qyKsbKtlfkHoeH9Bjp/m13TwjewvJnCkwF0DWzgpC4HjTQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@oxc-parser/binding-darwin-x64@0.150.0': resolution: {integrity: sha512-v6IPfcAcSYrBWXV5Tce1DmxDMXLhEYpIIWiRFPJopgCVscZdLaV4MRQOUxvL3usQlw+yrwYOjBFB9IwBx+jUiQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8600,12 +8499,6 @@ packages: cpu: [x64] os: [freebsd] - '@oxc-parser/binding-freebsd-x64@0.141.0': - resolution: {integrity: sha512-W5KbTnNkTMMMylqj6dYqnsXvkmESVPodPKYLJ5zdzIPdl9fUJtolkpUeSzYEbGGYB4a4A4avl3EePnZ/wLIdJg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@oxc-parser/binding-freebsd-x64@0.150.0': resolution: {integrity: sha512-AoR/4jD02HET0KO0yNT4nbTE+XJUxiO9jB1X/ycEjUE3WrIJ3IjV/Vf+gskhWLcqqeXfvNnkDtBR7epllAm88A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8624,12 +8517,6 @@ packages: cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-gnueabihf@0.141.0': - resolution: {integrity: sha512-g3dtbJa8zeOGK36Sr9cQavsdi5H/ie2hVjrSjIxsNAR1qZA40ZYVXnfdfoMAlq8CmB9qFL1yhsSCUHeNmdmt8w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@oxc-parser/binding-linux-arm-gnueabihf@0.150.0': resolution: {integrity: sha512-A/hycCFjLUrCmLoL5O/vBp40ohlaXO1Ta3v5hqYZxicYFs129wZmgZJggcW4mYGYbZebQLhup+N8JjeQl8qwyw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8648,12 +8535,6 @@ packages: cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.141.0': - resolution: {integrity: sha512-e6hwQqd+3lvP13G2jxvFpoA7dzHcFLN+Mq47JCVMtdNHbbyBRo756JCtbbJH6ca8inTfyqZoqBmS3vhQlzAK2w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.150.0': resolution: {integrity: sha512-pbqahg1Pkz7J4RKmXm30s/iQu99hv64ayXCu8P4p75HcEH5azOdR4eGqiB6lFGkFR3mMpzaYsSKLkS8oJbjmeQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8674,13 +8555,6 @@ packages: os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-gnu@0.141.0': - resolution: {integrity: sha512-vXz2BLAuypA+4MLyBg94pzEo6THVnzYnCtAjXoihIIQo0t2pnp/AmW+SH1EI+4VbuJnC//KplIJ5yyaCGua4jA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@oxc-parser/binding-linux-arm64-gnu@0.150.0': resolution: {integrity: sha512-HV11aRbBQGwqv8bEo+K/6qr88uB4fEe1mhXncMhlVCrj+WpBSraxrUzHaPVmeQRU6x6x8v/3DuCbbo93rpp+fw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8702,13 +8576,6 @@ packages: os: [linux] libc: [musl] - '@oxc-parser/binding-linux-arm64-musl@0.141.0': - resolution: {integrity: sha512-jMkS/EztNW34HKsXIaT/SoHcmtocq/vWhwFOVduF9kduuuRIVwfwQ6uxzIO+qPKSXdd2TXt54of0BJ2zFMXnmw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@oxc-parser/binding-linux-arm64-musl@0.150.0': resolution: {integrity: sha512-k6pVkJqALwtEuP4zukVhGRhdIy4+ofChUIUUsAHHyqDZlNsknmel3JjbggrJiWGaes6h/dIcWmEXsKW4SmK9oQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8730,13 +8597,6 @@ packages: os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-ppc64-gnu@0.141.0': - resolution: {integrity: sha512-vo+MR+n3zQJ6Mq92hiP084NZcgDv5iJlVR02gMf28neMvVT1tKVm7VeiW/DxhdqOi3QLeaXIk9cUcLL1qrkngw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@oxc-parser/binding-linux-ppc64-gnu@0.150.0': resolution: {integrity: sha512-tEFg39mw/rHO5n8GK2DR4ZMFfsPQZtnQIPbsIpjoQRomJc/2tRfsCSmCT6gNit+NZGoeJG5aH9ATDH5bf0WnoQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8758,13 +8618,6 @@ packages: os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.141.0': - resolution: {integrity: sha512-oh80w+7RuiO5gBp9Jnoa/H8Qlt3JsHL2MkW+0dwEdlDMdslVZX/YsekSK6EeyEenY66/mhCfypsNATQ7Ph3qlQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.150.0': resolution: {integrity: sha512-0JO7IFkoek6HqV589Menx3hJySNXi6quRhO4tq2P7kpEHKEXoDATnoPVUpn5B7gDH2KLkdo751N0uIrGJFCTCw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8786,13 +8639,6 @@ packages: os: [linux] libc: [musl] - '@oxc-parser/binding-linux-riscv64-musl@0.141.0': - resolution: {integrity: sha512-LOyEmFA8sCnYbEXP1+iQvCC/P1YXHMA/t6x1Ksp0Y9VwhLFsiBJFzV1zIxrOIE2LKaGGhDjQ29xq9cbq6omDXA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - libc: [musl] - '@oxc-parser/binding-linux-riscv64-musl@0.150.0': resolution: {integrity: sha512-7XPzREnyAS5wHU9aB+49Uaqgoo1gVCklHc3DRlc3fJy2tXD/eAJFN1QFz/crj+Ulup5P1+axNREF+/RGaB/IRA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8814,13 +8660,6 @@ packages: os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-s390x-gnu@0.141.0': - resolution: {integrity: sha512-3wnwk/l1CvszVE5TJR1wSl/zSEfydRqrNhn6s7Vr9IzSJpUQIroqVsIoPARHRFA+FQwkxAFDAHDAasa7v8OobQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@oxc-parser/binding-linux-s390x-gnu@0.150.0': resolution: {integrity: sha512-7n7ZxcbRWDFaTdyj8M8p0O9OfzoMKm8O6syBAIgcSutbOALq0Bb9G52Me+XH0anMLZV+NgXc726gqgG2q39vcQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8842,13 +8681,6 @@ packages: os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.141.0': - resolution: {integrity: sha512-qtyQVAAebFq57B2tifTlel3TgGqUtsYNI/e+p6aya9rN9lOZVTDvr215fGYSA9XWooxzMxDiVxkBLk2jQHbsOQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.150.0': resolution: {integrity: sha512-Vx0GSA9ZCRTUiczoEQnIIyXkMvtEY8uc6IiwLQtMe5ci2sXPqjrry0Ek5fsPP1k2kCzkML3ow9UOOEgnEDi7Bw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8870,13 +8702,6 @@ packages: os: [linux] libc: [musl] - '@oxc-parser/binding-linux-x64-musl@0.141.0': - resolution: {integrity: sha512-SkGV1nKw40roEc94pv5EaaeH2ay14G6+roe8Q0wIUC1LcEKxzKW921h7+ZuZX0D3q2Mb/7aSFmxEVqnko3lPRw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@oxc-parser/binding-linux-x64-musl@0.150.0': resolution: {integrity: sha512-ii4/9m3viDLssMnfXU7/Pni/3nYplApuGayceX4qsVGaqqQJCx3tHIH9M/HWIeSty5i8LjS21zPYT6lVIkwLxw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8896,12 +8721,6 @@ packages: cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-openharmony-arm64@0.141.0': - resolution: {integrity: sha512-cVgDM7n8QziQqOaP5hNgUYfMG7S/ZeuPxFWXnnHRv7rh025COk0rfQ6eEdKG3j/GaUuyvNZN4ifF1J8KmuXLLA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@oxc-parser/binding-openharmony-arm64@0.150.0': resolution: {integrity: sha512-ZtoxX5rez36ZWkwtiEhjkCPnlTPoQ2I7lIL0IYZ1yjxMYohbvoOjBmUIZzrf9W/HouONq0omIfTeCWEY+R380w==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8918,11 +8737,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-parser/binding-wasm32-wasi@0.141.0': - resolution: {integrity: sha512-HggH++Fkn3OilBn+bs3jpgIFQa34oMAyUUHy0vpGum+gt1Eb5nyLc8dNU/RAPSw6lsLrx7ncKtHSZE+3Sp0l2g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.121.0': resolution: {integrity: sha512-V0pxh4mql4XTt3aiEtRNUeBAUFOw5jzZNxPABLaOKAWrVzSr9+XUaB095lY7jqMf5t8vkfh8NManGB28zanYKw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8935,12 +8749,6 @@ packages: cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-arm64-msvc@0.141.0': - resolution: {integrity: sha512-KLSEH9GwgbrqbJOjtGHt9STw96s+78yDzp7IDN8Lno+7Ut9sNBfZ4jYZIz4mD50qmWUjoOI7i9I6UENbhNbMZQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@oxc-parser/binding-win32-arm64-msvc@0.150.0': resolution: {integrity: sha512-VqeRb5JX/bKYBrff7TUDvJyKY0914UzuCkuXIGxJS4FUmvMNfqkCbc7Sq90iMz9DlmAtlggwaBYQ9eg3h3ltiw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8959,12 +8767,6 @@ packages: cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.141.0': - resolution: {integrity: sha512-9UVWUOOCI/1YkiSSNjg2zyBJYM9E/t1A/8GNobd48JDn/fQ6mzxcVO3H08jb3rAaW/B1VBf8eCORTvSsO9T08g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ia32] - os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.150.0': resolution: {integrity: sha512-EPqJfeZ4Pgg2BJSsCV8GozxV0FDltRzpVtGVa1r2noJu1iu+opOw3gtBWXwIo9odCT/MdFfyHxdy0/CRqs3OqA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8983,12 +8785,6 @@ packages: cpu: [x64] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.141.0': - resolution: {integrity: sha512-HI/wsvbWT5RHHw5c37D0fEgeTd8/1Q4OJs5jUmEBc17VZFG6SsCIe4barq7NsAPPks/JW+3ayi3Rp+PQI5h4Kg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.150.0': resolution: {integrity: sha512-n5YMzbqwPQqozbkrexi0lNZrUz5cnPHalYpFWe6Dau7AmKIWNo+y24IwzDuZEQtEdUHuKhXmMMih/MPjOI+CMw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -9004,9 +8800,6 @@ packages: '@oxc-project/types@0.130.0': resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} - '@oxc-project/types@0.141.0': - resolution: {integrity: sha512-S4as7z0j0xQkXcJlyY5ehntwK8/wRkQb9Cyqw+J/N2rkWGQGK0SxD6X6DhQTc7qsxVTBxXbxZtBJh3mr3PtIzQ==} - '@oxc-project/types@0.149.0': resolution: {integrity: sha512-Efcc+iF0j3Bf67YjEqIqWXbX5XddXoK/Mw4K1/JuXwRCZ8N16VR7iT23nlCc9XrveFVh/E5Rqs2StT0V8v9LdA==} @@ -10704,16 +10497,46 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@solid-devtools/debugger@0.28.1': + resolution: {integrity: sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-devtools/logger@0.9.11': + resolution: {integrity: sha512-THbiY1iQlieL6vdgJc4FIsLe7V8a57hod/Thm8zdKrTkWL88UPZjkBBfM+mVNGusd4OCnAN20tIFBhNnuT1Dew==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-devtools/shared@0.20.0': + resolution: {integrity: sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-primitives/bounds@0.1.7': + resolution: {integrity: sha512-uWE47+MhAGYB3EadHVg79C/6CawVVL7MwTArricxX2GDDJX+7SBnD+WsnMbkLOi7UbCOA3EsepnBr3bix83LLA==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/event-listener@2.4.3': resolution: {integrity: sha512-h4VqkYFv6Gf+L7SQj+Y6puigL/5DIi7x5q07VZET7AWcS+9/G3WfIE9WheniHWJs51OEkRB43w6lDys5YeFceg==} peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/event-listener@2.4.6': + resolution: {integrity: sha512-5I0YJcTVYIWoMmgBSROBZGcz+ymhew/pGTg2dHW74BUjFKsV8Li4bOZYl0YAGP4mHw5o4UBd9/BEesqBci3wxw==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/keyboard@1.3.3': resolution: {integrity: sha512-9dQHTTgLBqyAI7aavtO+HnpTVJgWQA1ghBSrmLtMu1SMxLPDuLfuNr+Tk5udb4AL4Ojg7h9JrKOGEEDqsJXWJA==} peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/media@2.3.6': + resolution: {integrity: sha512-pk49gPOq/UMRUJ+pTSrOfBiR8xJjRYHXIf1iR/jSnyQ/KroU+ZXhkZzavC7hvfp2vJeOTW5k2/HN0r3Q1VJ7Pw==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/refs@1.1.4': resolution: {integrity: sha512-bLjwIs6ZPu8NQnuw04sU3Zc8qKSpbc0umUU/O4SHf6oWOdO4+dHY8vb1T7C4b/Tg103+9WGr6sEE0+NFlbaB/A==} peerDependencies: @@ -10724,16 +10547,41 @@ packages: peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/resize-observer@2.2.0': + resolution: {integrity: sha512-9Fuu/EWBeGj+atGHRJp70HKhdfalmpjwxY8a32NZixdLNmfCJ45AfhLQNr6uOzETbbiMx4iCKlTrJ8KZCHC2Ww==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/rootless@1.5.2': resolution: {integrity: sha512-9HULb0QAzL2r47CCad0M+NKFtQ+LrGGNHZfteX/ThdGvKIg2o2GYhBooZubTCd/RTu2l2+Nw4s+dEfiDGvdrrQ==} peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/rootless@1.5.4': + resolution: {integrity: sha512-TOIZa1VUfVJ+9nkCcRajw3U4t9vBOP1HxX1WHNTbXq32mXwlqTvUnC4CRIilohcryBkT9u2ZkhUDSHRTaGp55g==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/scheduled@1.5.3': + resolution: {integrity: sha512-oNwLE6E6lxJAWrc8QXuwM0k2oU1BnANnkChwMw82aK1j3+mWGJkG1IFe5gCwbV+afYmjI76t9JJV3md/8tLw+g==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/static-store@0.1.2': resolution: {integrity: sha512-ReK+5O38lJ7fT+L6mUFvUr6igFwHBESZF+2Ug842s7fvlVeBdIVEdTCErygff6w7uR6+jrr7J8jQo+cYrEq4Iw==} peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/static-store@0.1.4': + resolution: {integrity: sha512-LgtVaVBtB7EbmS4+M0b8xY5Iq6pUWXBsIC4VgtrFKDGDdyCaDt88sHk0fUlx1Enxm/XZnZyLXJABRoa39RjJqA==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/styles@0.1.4': + resolution: {integrity: sha512-siDvuK9mBpswjUdJCpr3ZUhBIHghNjHsBhZ9p3mIH1sDgwVr5gQGfFmESIvtb4Ka4Oq6B6hLOqi4QES/i8u4YA==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/utils@6.3.2': resolution: {integrity: sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ==} peerDependencies: @@ -10744,36 +10592,85 @@ packages: peerDependencies: solid-js: ^1.6.12 + '@solidjs/babel-plugin@2.0.0-rc.20': + resolution: {integrity: sha512-/5GHINAOaUK+99N7qxkOgcBU2Fn9WhNfaJDg+q/M2gF9fmFqnQOiV+J8gU9gsnEHfiqZvH2vQ4WHxA0kl2OC5g==} + peerDependencies: + '@babel/core': ^7.20.12 || ^8.0.0 + '@tsrx/core': 0.1.63 + peerDependenciesMeta: + '@tsrx/core': + optional: true + + '@solidjs/compiler-darwin-arm64@2.0.0-rc.20': + resolution: {integrity: sha512-3bpcQmjNkzO0sthOEypc1Rmq+tfW9zVjmSSJsoHTl3MUDnxi65L7mHsPfIdo4nQntHqAps4ZEUFy77GqqocHDA==} + cpu: [arm64] + os: [darwin] + + '@solidjs/compiler-darwin-x64@2.0.0-rc.20': + resolution: {integrity: sha512-I2RI6oJkVxMUDPM6faIpd+rWK1hkpw+KlSfE8ZZnDeX+FKa+VlSHCk4EA16jHSCeo1IKxmW3x9cCSlHqzEZKvQ==} + cpu: [x64] + os: [darwin] + + '@solidjs/compiler-linux-arm64-gnu@2.0.0-rc.20': + resolution: {integrity: sha512-41KS1kvbhzQwE3ZEIgpAghVO6LVDVS98URL3rXOARudwTpaflEehNlxSH0RGr6E0UbaeFVfadkFnBOcuSLrMJg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@solidjs/compiler-linux-x64-gnu@2.0.0-rc.20': + resolution: {integrity: sha512-YXb8f0HQqbW/YQvRhflSW1yd2sCdi22wIe7pRAdA6YuthnbJbOhxpUw4iBX/dis59aIE5uw8cg8fh8hH4iBpmg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@solidjs/compiler-wasm32-wasi@2.0.0-rc.20': + resolution: {integrity: sha512-V3ffCekMXznz3iMn08lrkipK9XzTbZumF5Wb3Xd1cMj+caCidz9AMAN0ZBx5XQ3dwyrZ3UfZM/gSkAOcq8LgHw==} + engines: {node: '>=14.0.0'} + + '@solidjs/compiler-win32-x64-msvc@2.0.0-rc.20': + resolution: {integrity: sha512-GBfYKI5WtIOk0SvYn70PeN6iDpqwJ8mQ9UdT/MxUnBE2UcIvyOv7+g+5mOBqfIHODWnsbLkzf9lk+JCw5gkogg==} + cpu: [x64] + os: [win32] + + '@solidjs/compiler@2.0.0-rc.20': + resolution: {integrity: sha512-veV/ZXim3UeX5Klelp3DiPwseR01/EX/K3i0iVdi+9EZfoRVVzoTIP7lTXP8hTng5/MsFaiZ4mqbDt/57IWHlg==} + '@solidjs/meta@0.29.4': resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==} peerDependencies: solid-js: '>=1.8.4' - '@solidjs/router@1.0.1': - resolution: {integrity: sha512-JxY0+Y8RMZZjk3pATfY5f9ANbFa26+aOf3X7KtpRC9yCuy7f2UWDL8ukx6pVot2OYOJyUfTH7LYG2bbMPZ3WDw==} + '@solidjs/signals@2.0.0-rc.20': + resolution: {integrity: sha512-BIL5dKm0dAtPGsCEuLSNw60spDbmYG5QFK+aHUxPIgPLweA8IeJKd62DiqqqU/jqX0x39ty31GoP1n+ZINkrcg==} + engines: {node: '>=22.12.0'} + + '@solidjs/testing-library@1.0.0-rc.2': + resolution: {integrity: sha512-QZqIVoyDAqaGgSsWQ3gnYGaG1peFkNF0/n5uM+393g5plZlcvgxmUgdjsQtwrRLVZCrh0K1lp7YHxsAlN5XPkA==} + engines: {node: '>= 14'} peerDependencies: - solid-js: ^1.8.6 + '@solidjs/web': '>=2.0.0-0' + solid-js: '>=2.0.0-0' - '@solidjs/start@2.1.0': - resolution: {integrity: sha512-WxYkBPmjnrP30ODWLui8QVPki80puvsKZ5jOmy0m/t7mZsmhY0IBHpra8n+UQoMFgvvJkaAJS+DJqPFzmoKf+Q==} - engines: {node: '>=24'} + '@solidjs/vite-plugin@3.0.0-next.55': + resolution: {integrity: sha512-jMR8P9O+0qYW05xpQgLYRsHjgdSHyZRCXqgHhT3QpO63eXWt3H4tIwONxmm/r47Sed9Prk8N7EnMX2byro+FTA==} + engines: {node: '>=22.12.0'} peerDependencies: - '@solidjs/router': '>=0.16.0 <2.0.0-0' - solid-js: ^1.9.15 - vite: ^8 || ^9 + '@solidjs/start-devtools': ^1.0.0-next.2 + '@solidjs/web': ^2.0.0-rc.19 + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.0.0 || ^7.0.0 + solid-js: ^2.0.0-rc.19 + vite: ^8.0.0 || ^9.0.0 peerDependenciesMeta: - '@solidjs/router': + '@solidjs/start-devtools': + optional: true + '@testing-library/jest-dom': optional: true - '@solidjs/testing-library@0.8.10': - resolution: {integrity: sha512-qdeuIerwyq7oQTIrrKvV0aL9aFeuwTd86VYD3afdq5HYEwoox1OBTJy4y8A3TFZr8oAR0nujYgCzY/8wgHGfeQ==} - engines: {node: '>= 14'} + '@solidjs/web@2.0.0-rc.20': + resolution: {integrity: sha512-ACGUZ1XBNxiHnWW274na+1JZfuIhiS/BN5XM72wVKNYSopR/NyjVPR4O/nvshtbYlEk1lKJ9d1uBaXDaz6ddYg==} + engines: {node: '>=22.12.0'} peerDependencies: - '@solidjs/router': '>=0.9.0' - solid-js: '>=1.0.0' - peerDependenciesMeta: - '@solidjs/router': - optional: true + solid-js: ^2.0.0-rc.20 '@speed-highlight/core@1.2.24': resolution: {integrity: sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==} @@ -10902,6 +10799,10 @@ packages: peerDependencies: eslint: ^9.0.0 || ^10.0.0 + '@tanstack/history@1.162.1': + resolution: {integrity: sha512-DR9t6lfLVdrjgCwpglrR9DR7Ok8/HlXjcOE+goWXF3zyuLUO/ug7vMbSFxTqrQTtbRghJfyhmIZ0S6LhPIy44w==} + engines: {node: '>=20.19'} + '@tanstack/history@1.162.5': resolution: {integrity: sha512-w1+YvwmTkwt5n8yUqEH3IWZ9DsmorCZW/EQ3KYHnqEgIkOZpH54NvW6/Epq3Dzb8H0ifIeYX8PExvrNLIH5FIA==} engines: {node: '>=20.19'} @@ -10987,14 +10888,43 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/router-core@1.171.22': + resolution: {integrity: sha512-sitsuRkz4qpTjIAV97S5zFCoeGv0OFd6+VWg3ZcIlQbi5R4NIXfz6ogg51n5w6rvTwSODz/lKWb5dl5tvh2bQw==} + engines: {node: '>=20.19'} + '@tanstack/router-core@1.171.39': resolution: {integrity: sha512-qUhoJ0meuSUqGYQbHbcJYdASr06YtK+bulbj6vtrhKYFkLgkSsZ6tXmMyym7sFxiSJSPYgasgozrL01LyyR/6A==} engines: {node: '>=20.19'} + '@tanstack/router-generator@1.167.28': + resolution: {integrity: sha512-AxvzdqQoBxrA8hoO1fHYg4cAUVug/xLqQhsGbNG1PelU3RbYRYEtDim7+HbYQCOqJaEuvV8tCvrTPTnT69iIwg==} + engines: {node: '>=20.19'} + '@tanstack/router-generator@1.167.46': resolution: {integrity: sha512-JSailAThcqPvqBzE3+MhNh6zQyZM2IdmIsHOxZgAc061Lh++SZqamNm/Whe7QNXWK5sLP4E0J1F8AI0hP8wTSw==} engines: {node: '>=20.19'} + '@tanstack/router-plugin@1.168.30': + resolution: {integrity: sha512-Z53FeZjSddyn3c+lmUGHOU3bhZPpaFabcynja8/s87CZeyMYS7oNgUMoaYZAhVLk9cAEC/z3fkqISXqktZadDA==} + engines: {node: '>=20.19'} + peerDependencies: + '@rsbuild/core': '>=1.0.2 || ^2.0.0' + '@tanstack/react-router': ^1.170.26 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' + vite-plugin-solid: ^2.11.10 || ^3.0.0-0 + webpack: '>=5.92.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + '@tanstack/react-router': + optional: true + vite: + optional: true + vite-plugin-solid: + optional: true + webpack: + optional: true + '@tanstack/router-plugin@1.168.48': resolution: {integrity: sha512-oLDEZO/vhvF5JLrQ6qMNYcCjMMhlHA0Byx6ZXl9AHJ6qVLRxUeCU41vlZQ4buisONY2p0Zl9O09/qwLiVrIBCQ==} engines: {node: '>=20.19'} @@ -11016,6 +10946,10 @@ packages: webpack: optional: true + '@tanstack/router-utils@1.162.2': + resolution: {integrity: sha512-hTWqJtqIFFdvuCl8WXNyrodp2L9zo2G37xKRrcVmVRWpAB2h+U1LuRAfS4tsFTiWOIoE/B+WDVFB8JpoEdw6jQ==} + engines: {node: '>=20.19'} + '@tanstack/router-utils@1.162.4': resolution: {integrity: sha512-3TSH3rwAQTqQOtTBF8IXMFXmGNJWnjwIm+l87uguyC/of0pSRKcU9GJrozaf0fY9it8dLQvUZJA2MOlfqbW1sA==} engines: {node: '>=20.19'} @@ -11026,37 +10960,45 @@ packages: peerDependencies: solid-js: ^1.9.13 - '@tanstack/solid-router@1.170.43': - resolution: {integrity: sha512-5z/V3i2x9PUxg770a9mH/o2C3fdWVB3YqyJ1r1a0O+pKf8Wevshrf8rb9sOfgNJr0nuP/WCxktZJYCq5lh1lGQ==} + '@tanstack/solid-router@2.0.0-rc.10': + resolution: {integrity: sha512-ffAeEsOpO4jL78iVGcgzphWkZ84XMithWAN/s9YePHarzEaqTLaP4QpVda8OP98GVtuG51WGD5/5Bn13ti2PTA==} engines: {node: '>=20.19'} peerDependencies: - solid-js: ^1.9.10 + '@solidjs/web': '>=2.0.0-rc.20 <3.0.0' + solid-js: '>=2.0.0-rc.20 <3.0.0' - '@tanstack/solid-start-client@1.168.42': - resolution: {integrity: sha512-64owXYM9vSF2Xayhs0ktsABRuyxJq2vzv+t/SpkbaYpjxli2FeEtJrvYDZd87lG7EikDWrFWKdk/T35pP/jIoA==} + '@tanstack/solid-start-client@2.0.0-rc.10': + resolution: {integrity: sha512-+VYtvvxw6sHRc/gO4txdBBbGn0iNTkefCzL/zpmfPwnbdhgT0GTgv5qmUb6l8M701J2QsKXa4aJsvZlZ6naMAw==} engines: {node: '>=22.12.0'} peerDependencies: - solid-js: '>=1.0.0' + '@solidjs/web': '>=2.0.0-rc.20 <3.0.0' + solid-js: '>=2.0.0-rc.20 <3.0.0' - '@tanstack/solid-start-server@1.167.50': - resolution: {integrity: sha512-qbwT9fpjeDCMossW2iflERVLyAZgkYUm9OE5l75JWc1Jeqw4mrjuT7qBVInR3T2klK6CdYT+Dro9aFmvZB4nZA==} + '@tanstack/solid-start-server@2.0.0-rc.10': + resolution: {integrity: sha512-b2IgfOyL6UKjJilAMyDbG6D/fgHWfF0l0wzrSW5FsParhvtMy8H64FdBykBkzJ/gIAfqcUVlVkgxClbg4to3Lg==} engines: {node: '>=22.12.0'} peerDependencies: - solid-js: ^1.0.0 + '@solidjs/web': '>=2.0.0-rc.20 <3.0.0' + solid-js: '>=2.0.0-rc.20 <3.0.0' - '@tanstack/solid-start@1.169.4': - resolution: {integrity: sha512-ytr6AZFz1Cae7v9GMu7v00tth3z6/tWoCaBwTU9zHXbUk5P5SupNrM27wrz40qQS86D5//uDENQybItlMbs4hg==} + '@tanstack/solid-start@2.0.0-rc.10': + resolution: {integrity: sha512-bOhxu2wa1XY2wng7CN64ru62UOS+9Tj4RefAg8pMfIB4pYaoEYXGQAgGWZV6e95GA66Lya7PToWI0Ho77PtIgA==} engines: {node: '>=22.12.0'} peerDependencies: '@rsbuild/core': ^2.0.0 - solid-js: '>=1.0.0' - vite: '>=8.0.0' + '@solidjs/web': '>=2.0.0-rc.20 <3.0.0' + solid-js: '>=2.0.0-rc.20 <3.0.0' + vite: '>=7.0.0' peerDependenciesMeta: '@rsbuild/core': optional: true vite: optional: true + '@tanstack/start-client-core@1.170.22': + resolution: {integrity: sha512-18gHvhrVLEmhO0qZVIJaR/y3Mb7tvC9UQnCEiooQG/aIpYg4/kqoQ06E7WUJ/0WFy4NZOkEjk8QkDQNkFED+1g==} + engines: {node: '>=22.12.0'} + '@tanstack/start-client-core@1.170.39': resolution: {integrity: sha512-G0VJbZFf9/dYomQjZkWapaTjkjEI4vbk1jnxhhVtQ3nTRb3sIRc196j+S+qZcySfEV5W9TJHu4KatjSzjZZQwQ==} engines: {node: '>=22.12.0'} @@ -11065,6 +11007,18 @@ packages: resolution: {integrity: sha512-QWfUZ3Yo923tdQn38LyKMU8rcTw69zc+T4dAvgTWV4O56SqFRsGfS0lSWIMhJRwXIx/bvdi7nTUBDdZtTHtpTQ==} engines: {node: '>=22.12.0'} + '@tanstack/start-plugin-core@1.171.34': + resolution: {integrity: sha512-MMp5Mlt8HAtstkVKwHW6dY5w58CP/Vtq+DhXdH4mIPuOeEhFtl/BYErJCzpnq80QqbEpRxCfMZPf9ng2PzApaA==} + engines: {node: '>=22.12.0'} + peerDependencies: + '@rsbuild/core': ^2.0.0 + vite: '>=7.0.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + vite: + optional: true + '@tanstack/start-plugin-core@1.171.55': resolution: {integrity: sha512-8FjTuuxIE8MNJoveXahZPBCfEpm8p9tMFyWTvbllfqlysdhry34rw/nCwULfcVwTG39ezXEu/RYE83NSV+miog==} engines: {node: '>=22.12.0'} @@ -11077,10 +11031,18 @@ packages: vite: optional: true + '@tanstack/start-server-core@1.169.26': + resolution: {integrity: sha512-57Pvc00i/Y6l8+kqlV/QElVUh5onFUPeMUBDDRNwelAA4eoOmRDmfEWfVfkJNYlcAF4kt/s0mgnD58DlCgC9JA==} + engines: {node: '>=22.12.0'} + '@tanstack/start-server-core@1.169.45': resolution: {integrity: sha512-fKySLUGIy7aVYR6ZRgjC19TQdsZ+q/54M9hVfHrJQQVpM/T5qq5djZ3gsqhugmrWP+gyd9qpa9D6cxRtR6CJvg==} engines: {node: '>=22.12.0'} + '@tanstack/start-storage-context@1.167.24': + resolution: {integrity: sha512-HPltgydit1LmLJFX3BhMcXMxkmUgtWJopPUx6Eg0YTC4tVwFvUhSWCrfgtTIiGWcHd1Ah+fi6fK9BAe8Y5KZtw==} + engines: {node: '>=22.12.0'} + '@tanstack/start-storage-context@1.167.41': resolution: {integrity: sha512-MY+Z4cZBPbH7hjORcROMX7K3kV1X25ArFKmRbks+EukPP9UVwCXbZFVzYkTt1u0AHthvQTcpa4J9B9i0o6fEnA==} engines: {node: '>=22.12.0'} @@ -11106,8 +11068,8 @@ packages: resolution: {integrity: sha512-9u41nAP8vLTkF6yO/AwFyzTljhOvQMOyuDXh2KqDKwMVG6OVtr+1YFA76I0fx8kyecrhzd1o7k8VQCzq6M8gqA==} engines: {node: '>=18'} - '@testing-library/dom@10.4.1': - resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + '@testing-library/dom@10.4.2': + resolution: {integrity: sha512-yzr2S9HyAIdhz2/6qHgbs665Q7PKVcDF05vsOlHPxG1mo36gKVesdYVeDLnXgfjJ03CrKRk08knc6+E/9m8v2Q==} engines: {node: '>=18'} '@testing-library/dom@8.20.1': @@ -11263,9 +11225,6 @@ packages: '@types/bonjour@3.5.13': resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - '@types/braces@3.0.5': - resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -11344,9 +11303,6 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/micromatch@4.0.10': - resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==} - '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -13627,6 +13583,10 @@ packages: di@0.0.1: resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} + engines: {node: '>=0.3.1'} + diff@9.0.0: resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} engines: {node: '>=0.3.1'} @@ -13879,10 +13839,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - env-runner@0.3.11: - resolution: {integrity: sha512-jKG29hxqGrL9ktunIwmt9aHbP3n995DGUY1KyXS7iGYFoD/yDdpc2CjJt6remFI3x2H1JOmBBMo0KXxjEQ2G6g==} - hasBin: true - environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} @@ -14277,6 +14233,9 @@ packages: picomatch: optional: true + fetchdts@0.1.7: + resolution: {integrity: sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA==} + fetchdts@0.2.0: resolution: {integrity: sha512-PJb4ZTGT2/wK78RmVrxZITStWabhZlKBsL52VOgq+c7clEkdHdEB+0rtzrXCbZJqeYJj+IwNWYqB5/G6vouA6A==} @@ -14570,18 +14529,15 @@ packages: h3@1.15.11: resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} - h3@2.0.8: - resolution: {integrity: sha512-ENuKlF9kC6E6PrvY1PUyE0qkrnnPTIt2/v48uyEEfTVfgoiqBCE0uwwf++2XrWwT1gxjQBDLQ8PAsmZVniKvTw==} - engines: {node: '>=20.19.0'} + h3@2.0.1-rc.20: + resolution: {integrity: sha512-28ljodXuUp0fZovdiSRq4G9OgrxCztrJe5VdYzXAB7ueRvI7pIUqLU14Xi3XqdYJ/khXjfpUOOD2EQa6CmBgsg==} + engines: {node: '>=20.11.1'} hasBin: true peerDependencies: - crossws: ^0.4.12 - ocache: '>=0.3.0' + crossws: ^0.4.1 peerDependenciesMeta: crossws: optional: true - ocache: - optional: true handlebars@4.7.9: resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} @@ -14683,9 +14639,6 @@ packages: html-link-extractor@1.0.5: resolution: {integrity: sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==} - html-to-image@1.11.13: - resolution: {integrity: sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg==} - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -16054,11 +16007,6 @@ packages: sass: optional: true - nitro@3.0.261029-rc: - resolution: {integrity: sha512-BQvzAV0HgcsJCkDqZAbGYlGNi9ALJznhsihugYAIi+8IcItz320FNaxbAJvn/pMNxGOYo2MGs10mTU9tcnB9jQ==} - engines: {node: '>=22.22.0'} - hasBin: true - nitropack@2.13.5: resolution: {integrity: sha512-Aq7c7Bd35CZloj1xZm4b4SonDzIDA5FUinMVQu61U6GHq2z8oZXbNiFCJYSPGvLUkkCXNx6Fzc/mS2kjJPgKyA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -16224,9 +16172,6 @@ packages: resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} engines: {node: '>=12.20.0'} - ocache@0.3.1: - resolution: {integrity: sha512-qeBrhQ0ly6tgXsakgNwLx6diRUppJZIcV5OjVGa5yp9HzztutkaGDDXJqVMo1fKWz5fNDtTp3iPU2fuhHf0+Lg==} - octane@0.12.1: resolution: {integrity: sha512-xMvWVhSo+G/sMafbv6dwNLiuj5jnHlcsCyhUX7Y21oSFu0CJ7N8XMAxWewZQPPzXbZEzyQwCyCtenbhn/UROYw==} engines: {node: '>=22.22.2'} @@ -16329,10 +16274,6 @@ packages: resolution: {integrity: sha512-X0PJ+NmOok8qP3vK9uaW431ngkdM9UPEK7KG466urtIL2+EYTEgbZK2yqe2MWKJKBjRlFweP/pJPx0x9muMEVw==} engines: {node: ^20.19.0 || >=22.12.0} - oxc-parser@0.141.0: - resolution: {integrity: sha512-uFkGGr1KMWd6aWv9UAqooYrN78trw8MWWmoPvgWokfBEUq1+eiIQ+qfj3wokhy0fxtZWZk+0dHoS7/yRTJtd6w==} - engines: {node: ^20.19.0 || >=22.12.0} - oxc-parser@0.150.0: resolution: {integrity: sha512-zwajKw1GUa57IOdafIS7/yOObGF2NihwIfZfs5yJTRprMSkiwhWOc/k+n8bwnUPbHr2/XsjfBO8KyTPaW3VpWg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -17201,13 +17142,12 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rou3@0.8.1: + resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} + rou3@0.9.2: resolution: {integrity: sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ==} - rou3@1.0.0: - resolution: {integrity: sha512-ySeaQkSrua+ut9g+65I7FHqOFBaY8tV0FmccXItoq0q21se32Q3u4YiW7/RqXSosWgYJaaKwRHXy3BST9PeCNQ==} - engines: {node: '>=20.19.0'} - route-recognizer@0.3.4: resolution: {integrity: sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==} @@ -17481,6 +17421,12 @@ packages: peerDependencies: seroval: ^1.0 + seroval-plugins@1.7.0: + resolution: {integrity: sha512-WM4rArfPtLZriTuxC5DBvNulEwAaRcjNe/dkMOEesOcuvXf5nEwKf5Bw3AT92WHohqcc45+57GdtsCuBTI0mjw==} + engines: {node: '>=20'} + peerDependencies: + seroval: ^1.0 + seroval-plugins@1.7.6: resolution: {integrity: sha512-/TPCAd6q5stAZnugD2fsvNKtM2UpgwrS8/fO1cXTgPC0EqCsGB+UfkEEsToFCfg35CDTMlWkppfr/zWnLJGpBA==} engines: {node: '>=20'} @@ -17495,6 +17441,10 @@ packages: resolution: {integrity: sha512-HlSgSAkTk4EqHcje1ptJjfZi1YDv5KbhVJ/d3P7T/nAXua2VmDu+AKDX5VTdFfZf48nDkWB2TKYt0DrCSa+3wg==} engines: {node: '>=10'} + seroval@1.7.0: + resolution: {integrity: sha512-FU+LUkmDzWNsJ6oubZFN3dGPKny53DRhPJG6nftEaXDL8MIn19+kEE1Gvc+63Go+qPOwVUlKIdKhsu2HN6tksw==} + engines: {node: '>=20'} + seroval@1.7.6: resolution: {integrity: sha512-oKNe6A8I3lSA5J0xg9xsrWCWDpET6CFhCMVuIsCmqrjNpBXzQXDAAQI5UfuC4Ner4DIR+VAtSw7TC0AmRMqFFQ==} engines: {node: '>=20'} @@ -17697,17 +17647,15 @@ packages: solid-js@1.9.15: resolution: {integrity: sha512-EeiY2xfpZJqPLjXspVEKjAII4yv8NyG//NxZ3IpOFHdUNnnTyL0uJOeS9LWGvA7cFCz5y94cjFwYlmw5Luncsg==} + solid-js@2.0.0-rc.20: + resolution: {integrity: sha512-FxaEI7LHupehFoR9j2CfJAGCoRgiKgeNlzii4szUS6lnD8RkpdtvX1k6WFG71vl5bskXRRsmEQVAXsbIemQOuw==} + engines: {node: '>=22.12.0'} + solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} peerDependencies: solid-js: ^1.3 - solid-use@0.9.1: - resolution: {integrity: sha512-UwvXDVPlrrbj/9ewG9ys5uL2IO4jSiwys2KPzK4zsnAcmEl7iDafZWW1Mo4BSEWOmQCGK6IvpmGHo1aou8iOFw==} - engines: {node: '>=10'} - peerDependencies: - solid-js: ^1.7 - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -17765,8 +17713,8 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - srvx@0.12.8: - resolution: {integrity: sha512-7k9HoDhluTlD7UJ+F+OopZoPZXB2J8f/5nW2VMLaB8KsSlZlRQxyyoX0hWEQCxB+F+3ZvB5QX3LqB6xSBRfxQQ==} + srvx@0.11.22: + resolution: {integrity: sha512-LqZxxBDMKuMAZzFzJnDCkFOrs9MZQZr0LvHiO/SuSZVdQaXD7xQ5UWTUxheJrQPve1qk9MG2B/yttUvJxw8egQ==} engines: {node: '>=20.16.0'} hasBin: true @@ -18012,12 +17960,6 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - terracotta@1.3.1: - resolution: {integrity: sha512-8HNvzQbgp2KiK8CiaQayhEQrjW97n9K1Exfj2+TMLVrHTmGXBJ61QypXlGa+xf5Gc7gzrAIysnmy/7qkUyN8Ow==} - engines: {node: '>=20'} - peerDependencies: - solid-js: ^1.8 - terser@5.46.0: resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} engines: {node: '>=10'} @@ -20926,28 +20868,6 @@ snapshots: - tsx - yaml - '@astrojs/solid-js@7.1.2(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(solid-js@1.9.15)(supports-color@8.1.1)(terser@5.51.2)(yaml@2.9.1)': - dependencies: - solid-js: 1.9.15 - vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) - vitefu: 1.1.3(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) - transitivePeerDependencies: - - '@testing-library/jest-dom' - - '@types/node' - - '@vitejs/devtools' - - esbuild - - jiti - - less - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - '@astrojs/svelte@9.1.2(@types/node@26.6.4)(astro@7.4.4(@types/node@26.6.4)(db0@0.3.4)(esbuild@0.28.2)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(svelte@5.57.1(@typescript-eslint/types@8.70.1))(terser@5.51.2)(typescript@6.0.3)(yaml@2.9.1)': dependencies: '@sveltejs/vite-plugin-svelte': 7.3.1(svelte@5.57.1(@typescript-eslint/types@8.70.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) @@ -21007,6 +20927,12 @@ snapshots: dependencies: yaml: 2.9.1 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -24371,6 +24297,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.3 + '@nothing-but/utils@0.17.0': {} + '@nullvoxpopuli/ember-build-tooling-utils@1.2.0(@types/babel__core@7.20.5)(rollup@4.57.1)(supports-color@8.1.1)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) @@ -24860,9 +24788,6 @@ snapshots: '@oxc-parser/binding-android-arm-eabi@0.130.0': optional: true - '@oxc-parser/binding-android-arm-eabi@0.141.0': - optional: true - '@oxc-parser/binding-android-arm-eabi@0.150.0': optional: true @@ -24872,9 +24797,6 @@ snapshots: '@oxc-parser/binding-android-arm64@0.130.0': optional: true - '@oxc-parser/binding-android-arm64@0.141.0': - optional: true - '@oxc-parser/binding-android-arm64@0.150.0': optional: true @@ -24884,9 +24806,6 @@ snapshots: '@oxc-parser/binding-darwin-arm64@0.130.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.141.0': - optional: true - '@oxc-parser/binding-darwin-arm64@0.150.0': optional: true @@ -24896,9 +24815,6 @@ snapshots: '@oxc-parser/binding-darwin-x64@0.130.0': optional: true - '@oxc-parser/binding-darwin-x64@0.141.0': - optional: true - '@oxc-parser/binding-darwin-x64@0.150.0': optional: true @@ -24908,9 +24824,6 @@ snapshots: '@oxc-parser/binding-freebsd-x64@0.130.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.141.0': - optional: true - '@oxc-parser/binding-freebsd-x64@0.150.0': optional: true @@ -24920,9 +24833,6 @@ snapshots: '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.141.0': - optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.150.0': optional: true @@ -24932,9 +24842,6 @@ snapshots: '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.141.0': - optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.150.0': optional: true @@ -24944,9 +24851,6 @@ snapshots: '@oxc-parser/binding-linux-arm64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.141.0': - optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.150.0': optional: true @@ -24956,9 +24860,6 @@ snapshots: '@oxc-parser/binding-linux-arm64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.141.0': - optional: true - '@oxc-parser/binding-linux-arm64-musl@0.150.0': optional: true @@ -24968,9 +24869,6 @@ snapshots: '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.141.0': - optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.150.0': optional: true @@ -24980,9 +24878,6 @@ snapshots: '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.141.0': - optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.150.0': optional: true @@ -24992,9 +24887,6 @@ snapshots: '@oxc-parser/binding-linux-riscv64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.141.0': - optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.150.0': optional: true @@ -25004,9 +24896,6 @@ snapshots: '@oxc-parser/binding-linux-s390x-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.141.0': - optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.150.0': optional: true @@ -25016,9 +24905,6 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.141.0': - optional: true - '@oxc-parser/binding-linux-x64-gnu@0.150.0': optional: true @@ -25028,9 +24914,6 @@ snapshots: '@oxc-parser/binding-linux-x64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.141.0': - optional: true - '@oxc-parser/binding-linux-x64-musl@0.150.0': optional: true @@ -25040,9 +24923,6 @@ snapshots: '@oxc-parser/binding-openharmony-arm64@0.130.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.141.0': - optional: true - '@oxc-parser/binding-openharmony-arm64@0.150.0': optional: true @@ -25061,22 +24941,12 @@ snapshots: '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-wasm32-wasi@0.141.0': - dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.121.0': optional: true '@oxc-parser/binding-win32-arm64-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.141.0': - optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.150.0': optional: true @@ -25086,9 +24956,6 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.141.0': - optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.150.0': optional: true @@ -25098,9 +24965,6 @@ snapshots: '@oxc-parser/binding-win32-x64-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.141.0': - optional: true - '@oxc-parser/binding-win32-x64-msvc@0.150.0': optional: true @@ -25111,8 +24975,6 @@ snapshots: '@oxc-project/types@0.130.0': {} - '@oxc-project/types@0.141.0': {} - '@oxc-project/types@0.149.0': {} '@oxc-project/types@0.150.0': {} @@ -26386,11 +26248,63 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@solid-devtools/debugger@0.28.1(solid-js@2.0.0-rc.20)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-devtools/shared': 0.20.0(solid-js@2.0.0-rc.20) + '@solid-primitives/bounds': 0.1.7(solid-js@2.0.0-rc.20) + '@solid-primitives/event-listener': 2.4.3(solid-js@2.0.0-rc.20) + '@solid-primitives/keyboard': 1.3.3(solid-js@2.0.0-rc.20) + '@solid-primitives/rootless': 1.5.2(solid-js@2.0.0-rc.20) + '@solid-primitives/scheduled': 1.5.3(solid-js@2.0.0-rc.20) + '@solid-primitives/static-store': 0.1.2(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-devtools/logger@0.9.11(solid-js@2.0.0-rc.20)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-devtools/debugger': 0.28.1(solid-js@2.0.0-rc.20) + '@solid-devtools/shared': 0.20.0(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-devtools/shared@0.20.0(solid-js@2.0.0-rc.20)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-primitives/event-listener': 2.4.3(solid-js@2.0.0-rc.20) + '@solid-primitives/media': 2.3.6(solid-js@2.0.0-rc.20) + '@solid-primitives/refs': 1.1.4(solid-js@2.0.0-rc.20) + '@solid-primitives/rootless': 1.5.2(solid-js@2.0.0-rc.20) + '@solid-primitives/scheduled': 1.5.3(solid-js@2.0.0-rc.20) + '@solid-primitives/static-store': 0.1.2(solid-js@2.0.0-rc.20) + '@solid-primitives/styles': 0.1.4(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-primitives/bounds@0.1.7(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/event-listener': 2.4.6(solid-js@2.0.0-rc.20) + '@solid-primitives/resize-observer': 2.2.0(solid-js@2.0.0-rc.20) + '@solid-primitives/static-store': 0.1.4(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + '@solid-primitives/event-listener@2.4.3(solid-js@1.9.15)': dependencies: '@solid-primitives/utils': 6.3.2(solid-js@1.9.15) solid-js: 1.9.15 + '@solid-primitives/event-listener@2.4.3(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/utils': 6.3.2(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-primitives/event-listener@2.4.6(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + '@solid-primitives/keyboard@1.3.3(solid-js@1.9.15)': dependencies: '@solid-primitives/event-listener': 2.4.3(solid-js@1.9.15) @@ -26398,10 +26312,25 @@ snapshots: '@solid-primitives/utils': 6.3.2(solid-js@1.9.15) solid-js: 1.9.15 - '@solid-primitives/refs@1.1.4(solid-js@1.9.15)': + '@solid-primitives/keyboard@1.3.3(solid-js@2.0.0-rc.20)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.15) - solid-js: 1.9.15 + '@solid-primitives/event-listener': 2.4.3(solid-js@2.0.0-rc.20) + '@solid-primitives/rootless': 1.5.2(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.3.2(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-primitives/media@2.3.6(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/event-listener': 2.4.6(solid-js@2.0.0-rc.20) + '@solid-primitives/rootless': 1.5.4(solid-js@2.0.0-rc.20) + '@solid-primitives/static-store': 0.1.4(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-primitives/refs@1.1.4(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 '@solid-primitives/resize-observer@2.1.3(solid-js@1.9.15)': dependencies: @@ -26411,74 +26340,161 @@ snapshots: '@solid-primitives/utils': 6.3.2(solid-js@1.9.15) solid-js: 1.9.15 + '@solid-primitives/resize-observer@2.2.0(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/event-listener': 2.4.6(solid-js@2.0.0-rc.20) + '@solid-primitives/rootless': 1.5.4(solid-js@2.0.0-rc.20) + '@solid-primitives/static-store': 0.1.4(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + '@solid-primitives/rootless@1.5.2(solid-js@1.9.15)': dependencies: '@solid-primitives/utils': 6.3.2(solid-js@1.9.15) solid-js: 1.9.15 + '@solid-primitives/rootless@1.5.2(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/utils': 6.3.2(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-primitives/rootless@1.5.4(solid-js@2.0.0-rc.20)': + dependencies: + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 + + '@solid-primitives/scheduled@1.5.3(solid-js@2.0.0-rc.20)': + dependencies: + solid-js: 2.0.0-rc.20 + '@solid-primitives/static-store@0.1.2(solid-js@1.9.15)': dependencies: '@solid-primitives/utils': 6.3.2(solid-js@1.9.15) solid-js: 1.9.15 - '@solid-primitives/utils@6.3.2(solid-js@1.9.15)': + '@solid-primitives/static-store@0.1.2(solid-js@2.0.0-rc.20)': dependencies: - solid-js: 1.9.15 + '@solid-primitives/utils': 6.3.2(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 - '@solid-primitives/utils@6.4.1(solid-js@1.9.15)': + '@solid-primitives/static-store@0.1.4(solid-js@2.0.0-rc.20)': dependencies: - solid-js: 1.9.15 + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 - '@solidjs/meta@0.29.4(solid-js@1.9.15)': + '@solid-primitives/styles@0.1.4(solid-js@2.0.0-rc.20)': dependencies: - solid-js: 1.9.15 + '@solid-primitives/rootless': 1.5.4(solid-js@2.0.0-rc.20) + '@solid-primitives/utils': 6.4.1(solid-js@2.0.0-rc.20) + solid-js: 2.0.0-rc.20 - '@solidjs/router@1.0.1(solid-js@1.9.15)': + '@solid-primitives/utils@6.3.2(solid-js@1.9.15)': dependencies: solid-js: 1.9.15 - '@solidjs/start@2.1.0(@solidjs/router@1.0.1(solid-js@1.9.15))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(crossws@0.4.17(srvx@1.0.8))(ocache@0.3.1)(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))': + '@solid-primitives/utils@6.3.2(solid-js@2.0.0-rc.20)': + dependencies: + solid-js: 2.0.0-rc.20 + + '@solid-primitives/utils@6.4.1(solid-js@2.0.0-rc.20)': + dependencies: + solid-js: 2.0.0-rc.20 + + '@solidjs/babel-plugin@2.0.0-rc.20(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/traverse': 7.29.8(supports-color@8.1.1) + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/types': 7.29.8 - '@jridgewell/trace-mapping': 0.3.31 - '@solidjs/meta': 0.29.4(solid-js@1.9.15) - '@types/babel__traverse': 7.28.0 - '@types/micromatch': 4.0.10 - cookie-es: 3.1.1 - defu: 6.1.7 - error-stack-parser-es: 2.0.1 - fast-glob: 3.3.3 - h3: 2.0.8(crossws@0.4.17(srvx@1.0.8))(ocache@0.3.1) - html-to-image: 1.11.13 - micromatch: 4.0.8 - oxc-parser: 0.141.0 - path-to-regexp: 8.4.2 - pathe: 2.0.3 - radix3: 1.1.2 - seroval: 1.7.6 - seroval-plugins: 1.7.6(seroval@1.7.6) - shiki: 4.5.0 - solid-js: 1.9.15 - srvx: 0.12.8 - terracotta: 1.3.1(solid-js@1.9.15) - vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) + html-entities: 2.3.3 + parse5: 7.3.0 + + '@solidjs/compiler-darwin-arm64@2.0.0-rc.20': + optional: true + + '@solidjs/compiler-darwin-x64@2.0.0-rc.20': + optional: true + + '@solidjs/compiler-linux-arm64-gnu@2.0.0-rc.20': + optional: true + + '@solidjs/compiler-linux-x64-gnu@2.0.0-rc.20': + optional: true + + '@solidjs/compiler-wasm32-wasi@2.0.0-rc.20': + dependencies: + '@emnapi/core': 1.11.3 + '@emnapi/runtime': 1.11.3 + '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3) + optional: true + + '@solidjs/compiler-win32-x64-msvc@2.0.0-rc.20': + optional: true + + '@solidjs/compiler@2.0.0-rc.20': + optionalDependencies: + '@solidjs/compiler-darwin-arm64': 2.0.0-rc.20 + '@solidjs/compiler-darwin-x64': 2.0.0-rc.20 + '@solidjs/compiler-linux-arm64-gnu': 2.0.0-rc.20 + '@solidjs/compiler-linux-x64-gnu': 2.0.0-rc.20 + '@solidjs/compiler-wasm32-wasi': 2.0.0-rc.20 + '@solidjs/compiler-win32-x64-msvc': 2.0.0-rc.20 + + '@solidjs/meta@0.29.4(solid-js@2.0.0-rc.20)': + dependencies: + solid-js: 2.0.0-rc.20 + + '@solidjs/signals@2.0.0-rc.20': {} + + '@solidjs/testing-library@1.0.0-rc.2(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20)': + dependencies: + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@testing-library/dom': 10.4.2 + solid-js: 2.0.0-rc.20 + + '@solidjs/vite-plugin@3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/core': 7.29.7(supports-color@8.1.1) + '@solidjs/babel-plugin': 2.0.0-rc.20(@babel/core@7.29.7(supports-color@8.1.1)) + '@solidjs/compiler': 2.0.0-rc.20 + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@types/babel__core': 7.20.5 + magic-string: 0.30.21 + merge-anything: 5.1.7 + solid-js: 2.0.0-rc.20 + vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vitefu: 1.1.3(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: - '@solidjs/router': 1.0.1(solid-js@1.9.15) + '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) transitivePeerDependencies: - - '@testing-library/jest-dom' - - crossws - - ocache + - '@tsrx/core' - supports-color - '@solidjs/testing-library@0.8.10(@solidjs/router@1.0.1(solid-js@1.9.15))(solid-js@1.9.15)': + '@solidjs/vite-plugin@3.0.0-next.55(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))': dependencies: - '@testing-library/dom': 10.4.1 - solid-js: 1.9.15 + '@ampproject/remapping': 2.3.0 + '@babel/core': 7.29.7(supports-color@8.1.1) + '@solidjs/babel-plugin': 2.0.0-rc.20(@babel/core@7.29.7(supports-color@8.1.1)) + '@solidjs/compiler': 2.0.0-rc.20 + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@types/babel__core': 7.20.5 + magic-string: 0.30.21 + merge-anything: 5.1.7 + solid-js: 2.0.0-rc.20 + vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) + vitefu: 1.1.3(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) optionalDependencies: - '@solidjs/router': 1.0.1(solid-js@1.9.15) + '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))) + transitivePeerDependencies: + - '@tsrx/core' + - supports-color + + '@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20)': + dependencies: + seroval: 1.7.0 + seroval-plugins: 1.7.0(seroval@1.7.0) + solid-js: 2.0.0-rc.20 '@speed-highlight/core@1.2.24': {} @@ -26679,6 +26695,8 @@ snapshots: - supports-color - typescript + '@tanstack/history@1.162.1': {} + '@tanstack/history@1.162.5': {} '@tanstack/intent@0.5.5': {} @@ -26723,14 +26741,14 @@ snapshots: react: 19.3.0 react-dom: 19.3.0(react@19.3.0) - '@tanstack/react-start-rsc@0.1.65(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': + '@tanstack/react-start-rsc@0.1.65(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': dependencies: '@tanstack/react-router': 1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@tanstack/router-core': 1.171.39 '@tanstack/router-utils': 1.162.4(supports-color@8.1.1) '@tanstack/start-client-core': 1.170.39 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-plugin-core': 1.171.55(95719ed61b25f9f5de92e38dae235673) + '@tanstack/start-plugin-core': 1.171.55(a5afe53cbce022c5462c370e8ec3594e) '@tanstack/start-storage-context': 1.167.41 pathe: 2.0.3 react: 19.3.0 @@ -26756,15 +26774,15 @@ snapshots: react: 19.3.0 react-dom: 19.3.0(react@19.3.0) - '@tanstack/react-start@1.169.4(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': + '@tanstack/react-start@1.169.4(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': dependencies: '@tanstack/react-router': 1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@tanstack/react-start-client': 1.168.44(react-dom@19.3.0(react@19.3.0))(react@19.3.0) - '@tanstack/react-start-rsc': 0.1.65(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) + '@tanstack/react-start-rsc': 0.1.65(esbuild@0.28.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) '@tanstack/react-start-server': 1.167.52(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@tanstack/router-utils': 1.162.4(supports-color@8.1.1) '@tanstack/start-client-core': 1.170.39 - '@tanstack/start-plugin-core': 1.171.55(95719ed61b25f9f5de92e38dae235673) + '@tanstack/start-plugin-core': 1.171.55(a5afe53cbce022c5462c370e8ec3594e) '@tanstack/start-server-core': 1.169.45 pathe: 2.0.3 react: 19.3.0 @@ -26791,6 +26809,13 @@ snapshots: react-dom: 19.3.0(react@19.3.0) use-sync-external-store: 1.6.0(react@19.3.0) + '@tanstack/router-core@1.171.22': + dependencies: + '@tanstack/history': 1.162.1 + cookie-es: 3.1.1 + seroval: 1.7.6 + seroval-plugins: 1.7.6(seroval@1.7.6) + '@tanstack/router-core@1.171.39': dependencies: '@tanstack/history': 1.162.5 @@ -26798,6 +26823,19 @@ snapshots: seroval: 1.7.6 seroval-plugins: 1.7.6(seroval@1.7.6) + '@tanstack/router-generator@1.167.28(supports-color@8.1.1)': + dependencies: + '@babel/types': 7.29.8 + '@tanstack/router-core': 1.171.22 + '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) + '@tanstack/virtual-file-routes': 1.162.0 + jiti: 2.7.0 + magic-string: 0.30.21 + prettier: 3.9.9 + zod: 4.6.7 + transitivePeerDependencies: + - supports-color + '@tanstack/router-generator@1.167.46(supports-color@8.1.1)': dependencies: '@babel/types': 7.29.8 @@ -26811,21 +26849,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.48(7e82d4982552a9ca6e2b248796e51e71)': + '@tanstack/router-plugin@1.168.30(@tanstack/react-router@1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/template': 7.29.7 '@babel/types': 7.29.8 - '@tanstack/router-core': 1.171.39 - '@tanstack/router-generator': 1.167.46(supports-color@8.1.1) - '@tanstack/router-utils': 1.162.4(supports-color@8.1.1) + '@tanstack/router-core': 1.171.22 + '@tanstack/router-generator': 1.167.28(supports-color@8.1.1) + '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) chokidar: 5.0.0 unplugin: 3.7.0(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) - zod: 4.6.5 + zod: 4.6.7 optionalDependencies: '@tanstack/react-router': 1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0) vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) webpack: 5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3) transitivePeerDependencies: - '@farmfe/core' @@ -26837,7 +26874,7 @@ snapshots: - supports-color - unloader - '@tanstack/router-plugin@1.168.48(95719ed61b25f9f5de92e38dae235673)': + '@tanstack/router-plugin@1.168.48(a5afe53cbce022c5462c370e8ec3594e)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/template': 7.29.7 @@ -26851,7 +26888,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0) vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) - vite-plugin-solid: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) + vite-plugin-solid: 2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) webpack: 5.111.0(cssnano@9.9.0(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3) transitivePeerDependencies: - '@farmfe/core' @@ -26863,6 +26900,19 @@ snapshots: - supports-color - unloader + '@tanstack/router-utils@1.162.2(supports-color@8.1.1)': + dependencies: + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.9 + '@babel/types': 7.29.8 + ansis: 4.4.0 + babel-dead-code-elimination: 1.0.12(supports-color@8.1.1) + diff: 8.0.4 + pathe: 2.0.3 + tinyglobby: 0.2.17 + transitivePeerDependencies: + - supports-color + '@tanstack/router-utils@1.162.4(supports-color@8.1.1)': dependencies: '@babel/generator': 7.29.8 @@ -26885,39 +26935,47 @@ snapshots: - csstype - utf-8-validate - '@tanstack/solid-router@1.170.43(solid-js@1.9.15)': + '@tanstack/solid-router@2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20)': dependencies: - '@solid-primitives/refs': 1.1.4(solid-js@1.9.15) - '@solidjs/meta': 0.29.4(solid-js@1.9.15) - '@tanstack/history': 1.162.5 - '@tanstack/router-core': 1.171.39 + '@solid-devtools/logger': 0.9.11(solid-js@2.0.0-rc.20) + '@solid-primitives/refs': 1.1.4(solid-js@2.0.0-rc.20) + '@solidjs/meta': 0.29.4(solid-js@2.0.0-rc.20) + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@tanstack/history': 1.162.1 + '@tanstack/router-core': 1.171.22 isbot: 5.2.2 - solid-js: 1.9.15 + solid-js: 2.0.0-rc.20 - '@tanstack/solid-start-client@1.168.42(solid-js@1.9.15)': + '@tanstack/solid-start-client@2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20)': dependencies: - '@tanstack/router-core': 1.171.39 - '@tanstack/solid-router': 1.170.43(solid-js@1.9.15) - '@tanstack/start-client-core': 1.170.39 - solid-js: 1.9.15 + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@tanstack/router-core': 1.171.22 + '@tanstack/solid-router': 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20) + '@tanstack/start-client-core': 1.170.22 + solid-js: 2.0.0-rc.20 - '@tanstack/solid-start-server@1.167.50(solid-js@1.9.15)': + '@tanstack/solid-start-server@2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(crossws@0.4.17(srvx@1.0.8))(solid-js@2.0.0-rc.20)': dependencies: - '@tanstack/router-core': 1.171.39 - '@tanstack/solid-router': 1.170.43(solid-js@1.9.15) - '@tanstack/start-server-core': 1.169.45 - solid-js: 1.9.15 + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@tanstack/router-core': 1.171.22 + '@tanstack/solid-router': 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20) + '@tanstack/start-server-core': 1.169.26(crossws@0.4.17(srvx@1.0.8)) + solid-js: 2.0.0-rc.20 + transitivePeerDependencies: + - crossws - '@tanstack/solid-start@1.169.4(e885dec8d474d195bbdad09222213563)': + '@tanstack/solid-start@2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(@tanstack/react-router@1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(crossws@0.4.17(srvx@1.0.8))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(solid-js@2.0.0-rc.20)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': dependencies: - '@tanstack/solid-router': 1.170.43(solid-js@1.9.15) - '@tanstack/solid-start-client': 1.168.42(solid-js@1.9.15) - '@tanstack/solid-start-server': 1.167.50(solid-js@1.9.15) - '@tanstack/start-client-core': 1.170.39 - '@tanstack/start-plugin-core': 1.171.55(7e82d4982552a9ca6e2b248796e51e71) - '@tanstack/start-server-core': 1.169.45 + '@solidjs/web': 2.0.0-rc.20(solid-js@2.0.0-rc.20) + '@tanstack/solid-router': 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20) + '@tanstack/solid-start-client': 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(solid-js@2.0.0-rc.20) + '@tanstack/solid-start-server': 2.0.0-rc.10(@solidjs/web@2.0.0-rc.20(solid-js@2.0.0-rc.20))(crossws@0.4.17(srvx@1.0.8))(solid-js@2.0.0-rc.20) + '@tanstack/start-client-core': 1.170.22 + '@tanstack/start-plugin-core': 1.171.34(@tanstack/react-router@1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(crossws@0.4.17(srvx@1.0.8))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) + '@tanstack/start-server-core': 1.169.26(crossws@0.4.17(srvx@1.0.8)) + '@tanstack/start-storage-context': 1.167.24 pathe: 2.0.3 - solid-js: 1.9.15 + solid-js: 2.0.0-rc.20 optionalDependencies: vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: @@ -26925,6 +26983,7 @@ snapshots: - '@rspack/core' - '@tanstack/react-router' - bun-types-no-globals + - crossws - esbuild - rolldown - rollup @@ -26933,6 +26992,13 @@ snapshots: - vite-plugin-solid - webpack + '@tanstack/start-client-core@1.170.22': + dependencies: + '@tanstack/router-core': 1.171.22 + '@tanstack/start-fn-stubs': 1.162.0 + '@tanstack/start-storage-context': 1.167.24 + seroval: 1.7.6 + '@tanstack/start-client-core@1.170.39': dependencies: '@tanstack/router-core': 1.171.39 @@ -26942,29 +27008,28 @@ snapshots: '@tanstack/start-fn-stubs@1.162.0': {} - '@tanstack/start-plugin-core@1.171.55(7e82d4982552a9ca6e2b248796e51e71)': + '@tanstack/start-plugin-core@1.171.34(@tanstack/react-router@1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(crossws@0.4.17(srvx@1.0.8))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))': dependencies: - '@babel/code-frame': 7.29.7 + '@babel/code-frame': 7.27.1 '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/types': 7.29.8 - '@jridgewell/remapping': 2.3.5 - '@tanstack/router-core': 1.171.39 - '@tanstack/router-generator': 1.167.46(supports-color@8.1.1) - '@tanstack/router-plugin': 1.168.48(7e82d4982552a9ca6e2b248796e51e71) - '@tanstack/router-utils': 1.162.4(supports-color@8.1.1) - '@tanstack/start-server-core': 1.169.45 + '@tanstack/router-core': 1.171.22 + '@tanstack/router-generator': 1.167.28(supports-color@8.1.1) + '@tanstack/router-plugin': 1.168.30(@tanstack/react-router@1.170.46(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(esbuild@0.28.2)(rolldown@1.2.9)(rollup@4.57.1)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3)) + '@tanstack/router-utils': 1.162.2(supports-color@8.1.1) + '@tanstack/start-server-core': 1.169.26(crossws@0.4.17(srvx@1.0.8)) exsolve: 1.2.0 lightningcss: 1.33.0 pathe: 2.0.3 picomatch: 4.0.7 - seroval: 1.6.8 + seroval: 1.7.6 source-map: 0.7.6 - srvx: 1.0.8 + srvx: 0.11.22 tinyglobby: 0.2.17 ufo: 1.6.4 vitefu: 1.1.3(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) xmlbuilder2: 4.0.3 - zod: 4.6.5 + zod: 4.6.7 optionalDependencies: vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) transitivePeerDependencies: @@ -26972,6 +27037,7 @@ snapshots: - '@rspack/core' - '@tanstack/react-router' - bun-types-no-globals + - crossws - esbuild - rolldown - rollup @@ -26980,7 +27046,7 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/start-plugin-core@1.171.55(95719ed61b25f9f5de92e38dae235673)': + '@tanstack/start-plugin-core@1.171.55(a5afe53cbce022c5462c370e8ec3594e)': dependencies: '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7(supports-color@8.1.1) @@ -26988,7 +27054,7 @@ snapshots: '@jridgewell/remapping': 2.3.5 '@tanstack/router-core': 1.171.39 '@tanstack/router-generator': 1.167.46(supports-color@8.1.1) - '@tanstack/router-plugin': 1.168.48(95719ed61b25f9f5de92e38dae235673) + '@tanstack/router-plugin': 1.168.48(a5afe53cbce022c5462c370e8ec3594e) '@tanstack/router-utils': 1.162.4(supports-color@8.1.1) '@tanstack/start-server-core': 1.169.45 exsolve: 1.2.0 @@ -27018,6 +27084,18 @@ snapshots: - vite-plugin-solid - webpack + '@tanstack/start-server-core@1.169.26(crossws@0.4.17(srvx@1.0.8))': + dependencies: + '@tanstack/history': 1.162.1 + '@tanstack/router-core': 1.171.22 + '@tanstack/start-client-core': 1.170.22 + '@tanstack/start-storage-context': 1.167.24 + fetchdts: 0.1.7 + h3-v2: h3@2.0.1-rc.20(crossws@0.4.17(srvx@1.0.8)) + seroval: 1.7.6 + transitivePeerDependencies: + - crossws + '@tanstack/start-server-core@1.169.45': dependencies: '@tanstack/history': 1.162.5 @@ -27028,6 +27106,10 @@ snapshots: fetchdts: 0.2.0 seroval: 1.6.8 + '@tanstack/start-storage-context@1.167.24': + dependencies: + '@tanstack/router-core': 1.171.22 + '@tanstack/start-storage-context@1.167.41': dependencies: '@tanstack/router-core': 1.171.39 @@ -27073,7 +27155,7 @@ snapshots: - solid-js - utf-8-validate - '@testing-library/dom@10.4.1': + '@testing-library/dom@10.4.2': dependencies: '@babel/code-frame': 7.29.7 '@babel/runtime': 7.29.7 @@ -27095,10 +27177,10 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)))': + '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)))': dependencies: '@adobe/css-tools': 4.4.4 - '@testing-library/dom': 10.4.1 + '@testing-library/dom': 10.4.2 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -27107,10 +27189,10 @@ snapshots: optionalDependencies: vitest: 5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@7.2.0))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)))': + '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)))': dependencies: '@adobe/css-tools': 4.4.4 - '@testing-library/dom': 10.4.1 + '@testing-library/dom': 10.4.2 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -27119,10 +27201,10 @@ snapshots: optionalDependencies: vitest: 5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))': + '@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)))': dependencies: '@adobe/css-tools': 4.4.4 - '@testing-library/dom': 10.4.1 + '@testing-library/dom': 10.4.2 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -27137,10 +27219,10 @@ snapshots: '@testing-library/dom': 8.20.1 preact: 11.0.1(preact-render-to-string@6.8.2) - '@testing-library/react@16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@testing-library/react@16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': dependencies: '@babel/runtime': 7.29.2 - '@testing-library/dom': 10.4.1 + '@testing-library/dom': 10.4.2 react: 19.3.0 react-dom: 19.3.0(react@19.3.0) optionalDependencies: @@ -27284,8 +27366,6 @@ snapshots: dependencies: '@types/node': 26.6.2 - '@types/braces@3.0.5': {} - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -27379,10 +27459,6 @@ snapshots: '@types/mdurl@2.0.0': {} - '@types/micromatch@4.0.10': - dependencies: - '@types/braces': 3.0.5 - '@types/mime@1.3.5': {} '@types/minimatch@3.0.5': {} @@ -30212,6 +30288,8 @@ snapshots: di@0.0.1: {} + diff@8.0.4: {} + diff@9.0.0: {} dns-packet@5.6.1: @@ -30521,11 +30599,6 @@ snapshots: env-paths@2.2.1: {} - env-runner@0.3.11: - dependencies: - crossws: 0.4.17(srvx@1.0.8) - srvx: 1.0.8 - environment@1.1.0: {} errlop@2.2.0: {} @@ -31277,6 +31350,8 @@ snapshots: optionalDependencies: picomatch: 4.0.7 + fetchdts@0.1.7: {} + fetchdts@0.2.0: {} figures@3.2.0: @@ -31618,13 +31693,12 @@ snapshots: ufo: 1.6.4 uncrypto: 0.1.3 - h3@2.0.8(crossws@0.4.17(srvx@1.0.8))(ocache@0.3.1): + h3@2.0.1-rc.20(crossws@0.4.17(srvx@1.0.8)): dependencies: - rou3: 1.0.0 - srvx: 1.0.8 + rou3: 0.8.1 + srvx: 0.11.22 optionalDependencies: crossws: 0.4.17(srvx@1.0.8) - ocache: 0.3.1 handlebars@4.7.9: dependencies: @@ -31746,8 +31820,6 @@ snapshots: dependencies: cheerio: 1.2.0 - html-to-image@1.11.13: {} - html-void-elements@3.0.0: {} htmlparser2@10.1.0: @@ -33322,15 +33394,6 @@ snapshots: - '@types/node' - babel-plugin-macros - nitro@3.0.261029-rc: - dependencies: - crossws: 0.4.17(srvx@1.0.8) - env-runner: 0.3.11 - h3: 2.0.8(crossws@0.4.17(srvx@1.0.8))(ocache@0.3.1) - ocache: 0.3.1 - rou3: 1.0.0 - srvx: 1.0.8 - nitropack@2.13.5(@parcel/watcher@2.6.0)(oxc-parser@0.121.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3))(rolldown@1.2.16)(srvx@1.0.8)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(svgo@4.1.0)(uglify-js@3.19.3)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 @@ -33956,8 +34019,6 @@ snapshots: obug@3.0.0: {} - ocache@0.3.1: {} - octane@0.12.1(@tsrx/oxc@0.20.0(svelte@5.57.1(@typescript-eslint/types@8.70.1)))(@typescript-eslint/types@8.70.1)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(typescript@6.0.3)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.0(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.101.0)(terser@5.49.0)(yaml@2.8.2)): dependencies: '@tsrx/core': 0.5.5(@typescript-eslint/types@8.70.1) @@ -34201,31 +34262,6 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc': 0.130.0 '@oxc-parser/binding-win32-x64-msvc': 0.130.0 - oxc-parser@0.141.0: - dependencies: - '@oxc-project/types': 0.141.0 - optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.141.0 - '@oxc-parser/binding-android-arm64': 0.141.0 - '@oxc-parser/binding-darwin-arm64': 0.141.0 - '@oxc-parser/binding-darwin-x64': 0.141.0 - '@oxc-parser/binding-freebsd-x64': 0.141.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.141.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.141.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.141.0 - '@oxc-parser/binding-linux-arm64-musl': 0.141.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.141.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.141.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.141.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.141.0 - '@oxc-parser/binding-linux-x64-gnu': 0.141.0 - '@oxc-parser/binding-linux-x64-musl': 0.141.0 - '@oxc-parser/binding-openharmony-arm64': 0.141.0 - '@oxc-parser/binding-wasm32-wasi': 0.141.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.141.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.141.0 - '@oxc-parser/binding-win32-x64-msvc': 0.141.0 - oxc-parser@0.150.0: dependencies: '@oxc-project/types': 0.150.0 @@ -35281,9 +35317,9 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.67.2 fsevents: 2.3.3 - rou3@0.9.2: {} + rou3@0.8.1: {} - rou3@1.0.0: {} + rou3@0.9.2: {} route-recognizer@0.3.4: {} @@ -35554,6 +35590,10 @@ snapshots: dependencies: seroval: 1.5.6 + seroval-plugins@1.7.0(seroval@1.7.0): + dependencies: + seroval: 1.7.0 + seroval-plugins@1.7.6(seroval@1.7.6): dependencies: seroval: 1.7.6 @@ -35562,6 +35602,8 @@ snapshots: seroval@1.6.8: {} + seroval@1.7.0: {} + seroval@1.7.6: {} serve-index@1.9.2(supports-color@8.1.1): @@ -35835,6 +35877,13 @@ snapshots: seroval: 1.5.6 seroval-plugins: 1.5.6(seroval@1.5.6) + solid-js@2.0.0-rc.20: + dependencies: + '@solidjs/signals': 2.0.0-rc.20 + csstype: 3.2.3 + seroval: 1.7.0 + seroval-plugins: 1.7.0(seroval@1.7.0) + solid-refresh@0.6.3(solid-js@1.9.15)(supports-color@8.1.1): dependencies: '@babel/generator': 7.29.8 @@ -35844,10 +35893,6 @@ snapshots: transitivePeerDependencies: - supports-color - solid-use@0.9.1(solid-js@1.9.15): - dependencies: - solid-js: 1.9.15 - source-map-js@1.2.1: {} source-map-js@1.2.2: {} @@ -35906,7 +35951,7 @@ snapshots: sprintf-js@1.1.3: {} - srvx@0.12.8: {} + srvx@0.11.22: {} srvx@1.0.5: {} @@ -36223,11 +36268,6 @@ snapshots: - bare-abort-controller - react-native-b4a - terracotta@1.3.1(solid-js@1.9.15): - dependencies: - solid-js: 1.9.15 - solid-use: 0.9.1(solid-js@1.9.15) - terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 @@ -37012,7 +37052,7 @@ snapshots: optionalDependencies: '@nuxt/kit': 4.6.3(@nuxt/schema@4.6.3)(confbox@0.3.2)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.150.0)(rolldown@1.2.16)(unplugin@3.7.0(esbuild@0.28.2)(rolldown@1.2.16)(rollup@4.67.2)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))) - vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@types/babel__core': 7.20.5 @@ -37023,11 +37063,11 @@ snapshots: vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vitefu: 1.1.3(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: - '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) + '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.0)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.104.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))) transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)): + vite-plugin-solid@2.11.14(@testing-library/jest-dom@7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))))(solid-js@1.9.15)(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@types/babel__core': 7.20.5 @@ -37038,9 +37078,10 @@ snapshots: vite: 8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1) vitefu: 1.1.3(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1)) optionalDependencies: - '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))) + '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.2)(vitest@5.0.3(@types/node@26.6.4)(happy-dom@20.14.5)(jsdom@25.0.1(supports-color@8.1.1))(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.6.1)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))) transitivePeerDependencies: - supports-color + optional: true vite-plugin-vue-devtools@8.2.1(@nuxt/kit@4.6.3(@nuxt/schema@4.6.3)(confbox@0.3.2)(dotenv@17.4.2)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.150.0)(rolldown@1.2.16)(unplugin@3.7.0(esbuild@0.28.2)(rolldown@1.2.16)(rollup@4.67.2)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(webpack@5.111.0(cssnano@9.9.0(postcss@8.5.32))(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.32)(sharp@0.35.5(@types/node@26.6.4))(svgo@4.1.0)(uglify-js@3.19.3))))(supports-color@8.1.1)(vite@8.3.5(@types/node@26.6.4)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.1(supports-color@8.1.1))(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(vue@3.5.44(typescript@6.0.3)): dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 30168c9e..854e390c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -33,6 +33,10 @@ packages: - '!examples/**/dist/**' - '!examples/**/.output/**' - 'packages/*' + # No Solid 2 release of Astro's Solid integration or SolidStart yet, so these + # stay on Solid 1 and the published @tanstack/solid-hotkeys 0.x. + - '!examples/solid/createFormatForDisplay-astro' + - '!examples/solid/createFormatForDisplay-solid-start' packageExtensions: # @analogjs/vite-plugin-nitro imports h3 v1 without declaring it, so it # resolves the hoisted h3 v2 and fails to load.