From 08802d6c214fdcf0a3c2303f1b730b945320d1a9 Mon Sep 17 00:00:00 2001
From: Ryan Carniato
Date: Thu, 29 Oct 2026 19:16:01 +0000
Subject: [PATCH] feat(solid-hotkeys): support Solid 2
Port @tanstack/solid-hotkeys and the Solid examples to solid-js 2.0
(rc.19+): reactive options are tracked by split effects, HotkeysProvider
publishes its store in onSettled and reads its create-time props
untracked, renders the Solid 2 context without JSX, and
createHotkeyRegistrations reconciles its views by id. The internal store
selector writes with ownedWrite, since store updates arrive from outside
the owner. Tests flush after writes. The examples drop the devtools
panel, which stays on Solid 1 for now.
Enters changesets pre mode (rc) and lets the release workflow run on
*-pre branches.
Co-Authored-By: Claude Opus 5.5
Claude-Session: https://claude.ai/code/session_0117BoWMMJ6aTSA3MvtgJWG2
---
.changeset/pre.json | 4 +
.changeset/solid-hotkeys-solid-2.md | 12 +
.github/workflows/release.yml | 2 +-
.../guides/hotkeys-provider-and-scopes.md | 2 +-
docs/framework/solid/guides/hotkeys.md | 4 +-
docs/framework/solid/quick-start.md | 4 +-
docs/installation.md | 2 +-
examples/solid/createHeldKeys/package.json | 9 +-
examples/solid/createHeldKeys/src/index.tsx | 9 +-
examples/solid/createHeldKeys/tsconfig.json | 2 +-
examples/solid/createHeldKeys/vite.config.ts | 2 +-
.../solid/createHotkey-sequences/package.json | 9 +-
.../createHotkey-sequences/src/index.tsx | 10 +-
.../createHotkey-sequences/tsconfig.json | 2 +-
.../createHotkey-sequences/vite.config.ts | 2 +-
examples/solid/createHotkey/package.json | 9 +-
examples/solid/createHotkey/src/index.tsx | 19 +-
examples/solid/createHotkey/tsconfig.json | 2 +-
examples/solid/createHotkey/vite.config.ts | 2 +-
.../package.json | 9 +-
.../src/index.tsx | 15 +-
.../tsconfig.json | 2 +-
.../vite.config.ts | 2 +-
.../solid/createHotkeyRecorder/package.json | 9 +-
.../solid/createHotkeyRecorder/src/index.tsx | 19 +-
.../solid/createHotkeyRecorder/tsconfig.json | 2 +-
.../solid/createHotkeyRecorder/vite.config.ts | 2 +-
.../createHotkeys-sequences/package.json | 9 +-
.../createHotkeys-sequences/src/index.tsx | 8 +-
.../createHotkeys-sequences/tsconfig.json | 2 +-
.../createHotkeys-sequences/vite.config.ts | 2 +-
examples/solid/createHotkeys/package.json | 9 +-
examples/solid/createHotkeys/src/index.tsx | 9 +-
examples/solid/createHotkeys/tsconfig.json | 2 +-
examples/solid/createHotkeys/vite.config.ts | 2 +-
examples/solid/createKeyHold/package.json | 9 +-
examples/solid/createKeyHold/src/index.tsx | 8 +-
examples/solid/createKeyHold/tsconfig.json | 2 +-
examples/solid/createKeyHold/vite.config.ts | 2 +-
examples/solid/kitchen-sink/package.json | 9 +-
examples/solid/kitchen-sink/src/index.tsx | 22 +-
examples/solid/kitchen-sink/tsconfig.json | 2 +-
examples/solid/kitchen-sink/vite.config.ts | 2 +-
examples/solid/scopes/package.json | 9 +-
examples/solid/scopes/src/index.tsx | 27 +-
examples/solid/scopes/tsconfig.json | 2 +-
examples/solid/scopes/vite.config.ts | 2 +-
package.json | 2 +-
packages/solid-hotkeys/package.json | 9 +-
.../solid-hotkeys/src/HotkeysProvider.tsx | 59 ++-
packages/solid-hotkeys/src/_useSelector.ts | 8 +-
.../solid-hotkeys/src/createHotkeyRecorder.ts | 8 +-
.../src/createHotkeyRegistrations.ts | 11 +-
packages/solid-hotkeys/src/createHotkeys.ts | 40 +-
.../solid-hotkeys/tests/appHotkeys.test.tsx | 8 +-
.../solid-hotkeys/tests/createHotkey.test.tsx | 10 +-
.../tests/createHotkeyHint.test.tsx | 59 ++-
.../tests/createHotkeys-sequences.test.tsx | 7 +-
.../tests/createHotkeys.test.tsx | 14 +-
.../tests/reactive-options.test.tsx | 11 +-
packages/solid-hotkeys/tests/scopes.test.tsx | 13 +-
packages/solid-hotkeys/tsconfig.json | 2 +-
packages/solid-hotkeys/tsdown.config.ts | 2 +-
packages/solid-hotkeys/vitest.config.ts | 2 +-
pnpm-lock.yaml | 483 ++++++++++++------
65 files changed, 624 insertions(+), 430 deletions(-)
create mode 100644 .changeset/pre.json
create mode 100644 .changeset/solid-hotkeys-solid-2.md
diff --git a/.changeset/pre.json b/.changeset/pre.json
new file mode 100644
index 00000000..d1deaa4c
--- /dev/null
+++ b/.changeset/pre.json
@@ -0,0 +1,4 @@
+{
+ "mode": "pre",
+ "tag": "rc"
+}
diff --git a/.changeset/solid-hotkeys-solid-2.md b/.changeset/solid-hotkeys-solid-2.md
new file mode 100644
index 00000000..c1396e2f
--- /dev/null
+++ b/.changeset/solid-hotkeys-solid-2.md
@@ -0,0 +1,12 @@
+---
+'@tanstack/solid-hotkeys': minor
+---
+
+Support Solid 2. `@tanstack/solid-hotkeys` now requires `solid-js` 2 (`>=2.0.0-rc.19 <3.0.0`); stay on 0.18.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/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 fcb00df4..c0e8b28f 100644
--- a/docs/framework/solid/guides/hotkeys.md
+++ b/docs/framework/solid/guides/hotkeys.md
@@ -304,7 +304,7 @@ function Panel() {
createHotkey('Escape', () => closePanel(), () => ({ target: panel() }))
return (
-
+
Panel content
)
@@ -314,7 +314,7 @@ 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.
diff --git a/docs/framework/solid/quick-start.md b/docs/framework/solid/quick-start.md
index a1e7f3f7..6a3e9a8d 100644
--- a/docs/framework/solid/quick-start.md
+++ b/docs/framework/solid/quick-start.md
@@ -138,14 +138,14 @@ function Panel() {
createHotkey('Escape', () => closePanel(), () => ({ target: panel() }))
return (
-
+
...
)
}
```
-A `null` target waits until the element is attached. The element must be focusable to receive key presses, so give it a `tabIndex` if it isn't a control.
+A `null` target waits until the element is attached. The element must be focusable to receive key presses, so give it a `tabindex` if it isn't a control.
## Add providers and scopes (optional)
diff --git a/docs/installation.md b/docs/installation.md
index e950c291..9a906384 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` 0.19 and later work with Solid 2; for Solid 1 (1.7 or newer), install `@tanstack/solid-hotkeys@0.18`. 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/examples/solid/createHeldKeys/package.json b/examples/solid/createHeldKeys/package.json
index 333edf71..d344254e 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
- "vite": "^8.3.2",
- "vite-plugin-solid": "^2.11.14"
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
+ "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 1a82f574..e7076bf4 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
- "vite": "^8.3.2",
- "vite-plugin-solid": "^2.11.14"
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
+ "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 c4e50b5b..e970ba9a 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
"@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())`}
e.stopPropagation()}
>
Modal Dialog (Scoped)
@@ -650,8 +647,6 @@ createHotkey(
)`}
-
-
)
}
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 02b34925..e08c7db0 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
- "vite": "^8.3.2",
- "vite-plugin-solid": "^2.11.14"
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
+ "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 68b3d818..308b5237 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
- "vite": "^8.3.2",
- "vite-plugin-solid": "^2.11.14"
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
+ "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 f2fb365c..bf21ab17 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
- "vite": "^8.3.2",
- "vite-plugin-solid": "^2.11.14"
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
+ "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 d49a52d0..b3791cec 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
"@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 5d64cc34..952d2fac 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
- "vite": "^8.3.2",
- "vite-plugin-solid": "^2.11.14"
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
+ "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 60a96894..63138834 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.19",
"@tanstack/solid-hotkeys": "^0.18.0",
- "@tanstack/solid-hotkeys-devtools": "^0.12.0",
- "solid-js": "^1.9.15"
+ "solid-js": "^2.0.0-rc.19"
},
"devDependencies": {
+ "@solidjs/vite-plugin": "^3.0.0-next.52",
"@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() {
setShowShortcuts((value) => !value)}
- aria-expanded={showShortcuts()}
+ aria-expanded={showShortcuts() ? 'true' : 'false'}
>
{showShortcuts() ? 'Hide' : 'Show'} shortcuts{' '}
@@ -187,8 +184,7 @@ function Layout() {
))}
-
-
+
)
}
/** Single shortcuts share handlers with buttons and respect enabled/input policies. */
@@ -362,7 +358,7 @@ function Editor() {
{count()}. Release {formatForDisplay('Alt+[KeyU]')} to log a
keyup event.
-
+
Propagation
Each nested HotkeysProvider with a{' '}
scope is a scope. Its hotkeys fire while it is
- mounted and enabled. Open the hotkeys devtools to see which
- scopes are active, suspended, or allowed.
+ mounted and enabled.
@@ -56,7 +51,6 @@ function App() {
-
>
)
}
@@ -76,10 +70,10 @@ interface ScopeProps {
/** A `HotkeysProvider` with a box around its children, labeled with its props. */
function Scope(props: ScopeProps) {
- const [local, others] = splitProps(props, ['children'])
+ const others = omit(props, 'children')
return (
- {local.children}
+ {props.children}
)
}
@@ -397,16 +391,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 abfe0fd0..567849cb 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,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 5fdd70fd..7f8c5c1e 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.52",
+ "@solidjs/web": "^2.0.0-rc.19",
"@testing-library/jest-dom": "^7.0.1",
- "solid-js": "^1.9.15",
- "vite-plugin-solid": "^2.11.14"
+ "solid-js": "^2.0.0-rc.19"
},
"peerDependencies": {
- "solid-js": "^1.7.0"
+ "solid-js": ">=2.0.0-rc.19 <3.0.0"
}
}
diff --git a/packages/solid-hotkeys/src/HotkeysProvider.tsx b/packages/solid-hotkeys/src/HotkeysProvider.tsx
index 29f0fee0..0f240b5b 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,
@@ -50,7 +51,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.
@@ -100,23 +101,27 @@ 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
+ // `appHotkeys` and `customHotkeys` are read once, when the provider is created.
+ 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)
+ },
+ )
// 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(() =>
@@ -138,10 +143,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,
@@ -153,11 +157,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 cf003903..814439fd 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 { useSelector } from './_useSelector'
import { useDefaultHotkeysOptionsSource } from './defaultOptions'
@@ -70,7 +70,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)
@@ -80,8 +80,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 83dcf5ca..098dff92 100644
--- a/packages/solid-hotkeys/src/createHotkeys.ts
+++ b/packages/solid-hotkeys/src/createHotkeys.ts
@@ -1,4 +1,4 @@
-import { createEffect, onCleanup, untrack } from 'solid-js'
+import { createEffect, onCleanup } from 'solid-js'
import {
createHotkeyBindings,
prepareHotkeyDefinitions,
@@ -50,21 +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,
- },
- )
- // 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 22b542ea..93191694 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'
@@ -11,7 +12,7 @@ import {
import { createHotkey } from '../src/createHotkey'
import { createHotkeys } from '../src/createHotkeys'
import { createHotkeyRecorder } from '../src/createHotkeyRecorder'
-import type { JSX } from 'solid-js'
+import type { Element } from 'solid-js'
import type { CustomHotkeys, Hotkey } from '@tanstack/hotkeys'
const appHotkeys = defineAppHotkeys({
@@ -34,7 +35,7 @@ function registrations() {
}
function withProvider(
- children: () => JSX.Element,
+ children: () => Element,
props: {
customHotkeys?: CustomHotkeys
onCustomHotkeysChange?: (custom: CustomHotkeys) => void
@@ -76,6 +77,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')
@@ -144,8 +146,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 56a4a1cd..05f01941 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 } from '@tanstack/hotkeys'
+import { createSignal, flush } from 'solid-js'
import { createHotkey } from '../src/createHotkey'
-import { 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')
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/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/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 14c1a3ec..f55cc2ad 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 77cef3ea..2be63f12 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -237,7 +237,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.2(@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.2(@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
@@ -2766,41 +2766,38 @@ importers:
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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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
@@ -2810,91 +2807,79 @@ importers:
vite:
specifier: ^8.3.2
version: 8.3.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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
@@ -2904,69 +2889,60 @@ importers:
vite:
specifier: ^8.3.2
version: 8.3.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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
@@ -2976,25 +2952,22 @@ importers:
vite:
specifier: ^8.3.2
version: 8.3.2(@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.2(@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.2(@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.19
+ 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.19
+ version: 2.0.0-rc.20
devDependencies:
+ '@solidjs/vite-plugin':
+ specifier: ^3.0.0-next.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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
@@ -3004,9 +2977,6 @@ importers:
vite:
specifier: ^8.3.2
version: 8.3.2(@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.2(@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.2(@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:
@@ -3740,7 +3710,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.2(@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.2(@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.2(@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.2(@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:
@@ -3820,7 +3790,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.2.3(@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.2.3(@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
@@ -3884,17 +3854,20 @@ importers:
version: link:../hotkeys
devDependencies:
'@solidjs/testing-library':
- specifier: ^0.8.10
- version: 0.8.10(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.52
+ version: 3.0.0-next.52(@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.2(@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.2(@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.19
+ 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.2(@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.2(@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.2(@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.2(@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.19
+ version: 2.0.0-rc.20
packages/solid-hotkeys-devtools:
dependencies:
@@ -3913,7 +3886,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.2(@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.2(@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.2(@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.2(@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:
@@ -5568,6 +5541,9 @@ packages:
'@emnapi/core@1.11.2':
resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==}
+ '@emnapi/core@1.11.3':
+ resolution: {integrity: sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==}
+
'@emnapi/core@1.4.5':
resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
@@ -5577,6 +5553,9 @@ packages:
'@emnapi/runtime@1.11.2':
resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==}
+ '@emnapi/runtime@1.11.3':
+ resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
+
'@emnapi/runtime@1.4.5':
resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
@@ -5589,6 +5568,9 @@ packages:
'@emnapi/wasi-threads@1.2.2':
resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
+ '@emnapi/wasi-threads@1.2.3':
+ resolution: {integrity: sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==}
+
'@esbuild/aix-ppc64@0.27.3':
resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==}
engines: {node: '>=18'}
@@ -8418,16 +8400,81 @@ packages:
peerDependencies:
solid-js: ^1.6.12
- '@solidjs/testing-library@0.8.10':
- resolution: {integrity: sha512-qdeuIerwyq7oQTIrrKvV0aL9aFeuwTd86VYD3afdq5HYEwoox1OBTJy4y8A3TFZr8oAR0nujYgCzY/8wgHGfeQ==}
+ '@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/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:
- '@solidjs/router': '>=0.9.0'
- solid-js: '>=1.0.0'
+ '@solidjs/web': '>=2.0.0-0'
+ solid-js: '>=2.0.0-0'
+
+ '@solidjs/vite-plugin@3.0.0-next.52':
+ resolution: {integrity: sha512-Dn4xLGdZxYOFOQpY/wISboBR6sYrfuN2Nxq+h56a6bspCqMq7hhpWYhQwwwo8RvsiVD2/T9o1U76pz/KJ1Wkgw==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ '@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/web@2.0.0-rc.20':
+ resolution: {integrity: sha512-ACGUZ1XBNxiHnWW274na+1JZfuIhiS/BN5XM72wVKNYSopR/NyjVPR4O/nvshtbYlEk1lKJ9d1uBaXDaz6ddYg==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ solid-js: ^2.0.0-rc.20
+
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
@@ -8592,8 +8639,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':
@@ -13579,6 +13626,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@1.5.6:
resolution: {integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==}
engines: {node: '>=10'}
@@ -13587,6 +13640,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'}
+
serve-index@1.9.2:
resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==}
engines: {node: '>= 0.8.0'}
@@ -13739,6 +13796,10 @@ 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:
@@ -17367,6 +17428,12 @@ snapshots:
'@emnapi/wasi-threads': 1.2.2
tslib: 2.8.1
+ '@emnapi/core@1.11.3':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.3
+ tslib: 2.8.1
+ optional: true
+
'@emnapi/core@1.4.5':
dependencies:
'@emnapi/wasi-threads': 1.0.4
@@ -17381,6 +17448,11 @@ snapshots:
dependencies:
tslib: 2.8.1
+ '@emnapi/runtime@1.11.3':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@emnapi/runtime@1.4.5':
dependencies:
tslib: 2.8.1
@@ -17398,6 +17470,11 @@ snapshots:
dependencies:
tslib: 2.8.1
+ '@emnapi/wasi-threads@1.2.3':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@esbuild/aix-ppc64@0.27.3':
optional: true
@@ -18410,6 +18487,13 @@ snapshots:
'@tybys/wasm-util': 0.10.4
optional: true
+ '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)':
+ dependencies:
+ '@emnapi/core': 1.11.3
+ '@emnapi/runtime': 1.11.3
+ '@tybys/wasm-util': 0.10.4
+ optional: true
+
'@neodrag/core@3.0.0-next.11': {}
'@neodrag/solid@3.0.0-next.11(@neodrag/core@3.0.0-next.11)(solid-js@1.9.15)':
@@ -19551,10 +19635,95 @@ snapshots:
dependencies:
solid-js: 1.9.15
- '@solidjs/testing-library@0.8.10(solid-js@1.9.15)':
+ '@solidjs/babel-plugin@2.0.0-rc.20(@babel/core@7.29.7(supports-color@8.1.1))':
dependencies:
- '@testing-library/dom': 10.4.1
- solid-js: 1.9.15
+ '@babel/core': 7.29.7(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
+ 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.4(@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/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.52(@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.2(@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.2(@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
+ merge-anything: 5.1.7
+ solid-js: 2.0.0-rc.20
+ vite: 8.3.2(@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.2(vite@8.3.2(@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.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.2(@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:
+ - '@tsrx/core'
+ - supports-color
+
+ '@solidjs/vite-plugin@3.0.0-next.52(@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.2(@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.2(@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:
+ '@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
+ merge-anything: 5.1.7
+ solid-js: 2.0.0-rc.20
+ vite: 8.3.2(@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.2(vite@8.3.2(@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.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.2(@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
'@standard-schema/spec@1.1.0': {}
@@ -19827,7 +19996,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
@@ -19849,10 +20018,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.2(@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.2(@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
@@ -19861,10 +20030,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.2(@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.2(@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.2(@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
@@ -19873,10 +20042,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.2(@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.2(@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.2(@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
@@ -19891,10 +20060,10 @@ snapshots:
'@testing-library/dom': 8.20.1
preact: 11.0.1
- '@testing-library/react@16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@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.2.3(@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:
@@ -25849,10 +26018,16 @@ snapshots:
dependencies:
seroval: 1.6.8
+ seroval-plugins@1.7.0(seroval@1.7.0):
+ dependencies:
+ seroval: 1.7.0
+
seroval@1.5.6: {}
seroval@1.6.8: {}
+ seroval@1.7.0: {}
+
serve-index@1.9.2(supports-color@8.1.1):
dependencies:
accepts: 1.3.8
@@ -26037,6 +26212,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.1
@@ -26681,7 +26863,7 @@ snapshots:
verkit@0.4.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.2(@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.2(@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.2(@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.2(@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.0(supports-color@8.1.1)
'@types/babel__core': 7.20.5
@@ -26692,22 +26874,7 @@ snapshots:
vite: 8.3.2(@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.2(vite@8.3.2(@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.2(@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.2(@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.2(@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.0(supports-color@8.1.1)
- '@types/babel__core': 7.20.5
- babel-preset-solid: 1.9.10(@babel/core@7.29.0(supports-color@8.1.1))(solid-js@1.9.15)
- merge-anything: 5.1.7
- solid-js: 1.9.15
- solid-refresh: 0.6.3(solid-js@1.9.15)(supports-color@8.1.1)
- vite: 8.3.2(@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.2(vite@8.3.2(@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.2(@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.2(@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