fix(app): devtools, session load churn, and stream batch flicker

- Add solid-devtools Vite plugin with locator (jsx/component locations) and
  @solid-devtools/overlay, loaded before render in dev only.
- Treat baseline message fetch as complete for empty transcripts so
  ensureSessionLoaded does not refetch on every prefetch/subagent ensure.
- When streaming delivers the first rows while non-idle, sync the batched
  message list immediately so the blueprint empty state does not flash.

Made-with: Cursor
This commit is contained in:
Benjamin Shafii
2026-04-03 18:13:49 -07:00
parent 3f0fd61dcf
commit 548a03b616
7 changed files with 396 additions and 14 deletions

View File

@@ -35,13 +35,13 @@
"bump:set": "node scripts/bump-version.mjs --set"
},
"dependencies": {
"@openwork/ui": "workspace:*",
"@codemirror/commands": "^6.8.0",
"@codemirror/lang-markdown": "^6.3.3",
"@codemirror/language": "^6.11.0",
"@codemirror/state": "^6.5.2",
"@codemirror/view": "^6.38.0",
"@opencode-ai/sdk": "^1.1.31",
"@openwork/ui": "workspace:*",
"@radix-ui/colors": "^3.0.0",
"@solid-primitives/event-bus": "^1.1.2",
"@solid-primitives/storage": "^4.3.3",
@@ -61,7 +61,9 @@
"solid-js": "^1.9.0"
},
"devDependencies": {
"@solid-devtools/overlay": "^0.33.5",
"@tailwindcss/vite": "^4.1.18",
"solid-devtools": "^0.34.5",
"tailwindcss": "^4.1.18",
"typescript": "^5.6.3",
"vite": "^6.0.1",

View File

@@ -1075,7 +1075,8 @@ export function createSessionStore(options: {
async function ensureSessionLoaded(sessionID: string) {
const id = sessionID.trim();
if (!id) return;
if (sessionById(id) && (store.messages[id]?.length ?? 0) > 0) return;
if ((store.messages[id]?.length ?? 0) > 0) return;
if (sessionById(id) && messageLimitBySession()[id] !== undefined) return;
const existing = ensureInFlightBySession.get(id);
if (existing) return existing;

View File

@@ -668,6 +668,13 @@ export default function SessionView(props: SessionViewProps) {
return;
}
// MessageList only mounts when batchedRenderedMessages is non-empty, but the blueprint
// empty state hides as soon as props.messages has items. While non-idle, the debounced
// commit can lag one tick—skip that blank strip when we first get rows to render.
if (next.length > 0 && batchedRenderedMessages().length === 0) {
setBatchedRenderedMessages(next);
}
if (streamRenderBatchQueuedAt <= 0) {
streamRenderBatchQueuedAt = perfNow();
} else {

View File

@@ -72,6 +72,10 @@ function startDeepLinkBridge() {
startDeepLinkBridge();
if (import.meta.env.DEV) {
await import("./solid-devtools-dev");
}
const RouterComponent = isTauriRuntime() ? HashRouter : Router;
function shouldOpenInCurrentTab(url: string) {

View File

@@ -0,0 +1,4 @@
import "solid-devtools";
import { attachDevtoolsOverlay } from "@solid-devtools/overlay";
attachDevtoolsOverlay({ defaultOpen: false });

View File

@@ -1,6 +1,7 @@
import os from "node:os";
import { defineConfig } from "vite";
import tailwindcss from "@tailwindcss/vite";
import devtools from "solid-devtools/vite";
import solid from "vite-plugin-solid";
const portValue = Number.parseInt(process.env.PORT ?? "", 10);
@@ -24,7 +25,19 @@ if (shortHostname && shortHostname !== hostname) {
}
export default defineConfig({
plugins: [tailwindcss(), solid()],
plugins: [
tailwindcss(),
devtools({
autoname: true,
// jsxLocation is required for in-page locator: map DOM → Solid components (hold Option/Alt while hovering).
locator: {
targetIDE: "vscode",
jsxLocation: true,
componentLocation: true,
},
}),
solid(),
],
server: {
port: devPort,
strictPort: true,

373
pnpm-lock.yaml generated
View File

@@ -92,9 +92,15 @@ importers:
specifier: ^1.9.0
version: 1.9.9
devDependencies:
'@solid-devtools/overlay':
specifier: ^0.33.5
version: 0.33.5(solid-js@1.9.9)
'@tailwindcss/vite':
specifier: ^4.1.18
version: 4.1.18(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2))
solid-devtools:
specifier: ^0.34.5
version: 0.34.5(solid-js@1.9.9)(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2))
tailwindcss:
specifier: ^4.1.18
version: 4.1.18
@@ -2006,6 +2012,9 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
'@nothing-but/utils@0.17.0':
resolution: {integrity: sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ==}
'@opencode-ai/sdk@1.1.39':
resolution: {integrity: sha512-EUYBZAci0bzG9+a7JVINmqAqis71ipG2/D3juvmvvKFyu0YBIT/6b+g3+p82Eb5CU2dujxpPdJJCaexZ1389eQ==}
@@ -2652,11 +2661,121 @@ packages:
resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==}
engines: {node: '>=18.0.0'}
'@solid-devtools/debugger@0.28.1':
resolution: {integrity: sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg==}
peerDependencies:
solid-js: ^1.9.0
'@solid-devtools/frontend@0.15.4':
resolution: {integrity: sha512-VpOl4nS8ixqQx/bb0pB1SqHaXt1/8zUH16wfnBwNZDSd7Qc6tFcqqJLoiNambODfdYfeTOHeyf49mruDORSh8Q==}
peerDependencies:
solid-js: ^1.9.0
'@solid-devtools/overlay@0.33.5':
resolution: {integrity: sha512-toBBHuWItIDEo+nGIqgOaCU3RS1hjmntHvygk2eUHNh2Njmqdo/khiS9z3e+K7ABdR5MHDoatowf4zGE5uRZQw==}
peerDependencies:
solid-js: ^1.9.0
'@solid-devtools/shared@0.20.0':
resolution: {integrity: sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q==}
peerDependencies:
solid-js: ^1.9.0
'@solid-primitives/bounds@0.1.5':
resolution: {integrity: sha512-JFym8zijMfWp1FaAmJlH3xMfenCuhjaUsoBn3kt9FtoWwLj+yt+EGYt+p3SkOKwF7h4gaGtZ5PIdSbSNVWkRmg==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/context@0.3.2':
resolution: {integrity: sha512-6fvTtpK17PFHnUf/UOc1TzBjd+kLFjtA62aRFEm1kDP9ufTo7FYW2kUzQAWbfbRHi30yjBJtopbR8qd6nShwyg==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/cursor@0.1.3':
resolution: {integrity: sha512-5nj+qUiBLaFTsR5RTGO2EwR8IOr7fRW+ZWW5LEAKvSWFI8mKhwrGTzFFcNZwmoFh7zanm3IOG6UYS7abfqCEew==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/date@2.1.6':
resolution: {integrity: sha512-lKNdQHr4B6q1a1iw3F1o3Sx2eyj6TAZ2S8fp+LQ/Lt/tSg7QQiLCM9WO32X9AxEZ6ZWmGjlGnWDq1AVKfbsJPA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/event-bus@1.1.2':
resolution: {integrity: sha512-l+n10/51neGcMaP3ypYt21bXfoeWh8IaC8k7fYuY3ww2a8S1Zv2N2a7FF5Qn+waTu86l0V8/nRHjkyqVIZBYwA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/event-listener@2.4.5':
resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/jsx-tokenizer@1.1.3':
resolution: {integrity: sha512-Ma8g7SACdU3FMPkMGgNa4MosAkxL5WyThchMnABtw/oh1VJ+ADQ63BcFAjtdlPCSH2+84Iu00OWechJ1/2jIWg==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/keyboard@1.3.5':
resolution: {integrity: sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/keyed@1.5.3':
resolution: {integrity: sha512-zNadtyYBhJSOjXtogkGHmRxjGdz9KHc8sGGVAGlUABkE8BED2tbIZoxkwSqzOwde8OcUEH0bb5DLZUWIMvyBSA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/media@2.3.5':
resolution: {integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/memo@1.4.5':
resolution: {integrity: sha512-dMfFShNsyX5virETyDv/Uoy2HP+PL4k8cUTTLb2r4TfoqJb010KIaOuURqp/Qbdznp4ZkDuP57b28d45kaOueQ==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/mouse@2.1.6':
resolution: {integrity: sha512-wqnu9sOk8WGLmfGlWWNMLjxUbfG32++kDSh0lu7GHXF0peefpRAv2lznPqgqCSwbWGk/sGv1Y05dndiO1EpONA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/props@3.2.3':
resolution: {integrity: sha512-XzG6en9gSFwmvbKcATm2BxL63HegZ+BAG5fmHi8jyBppQHcaths7ffz+6vYvwYy3nlgLa20ufJLj7tst+PcHFA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/range@0.2.4':
resolution: {integrity: sha512-9CvfJIOVHdLbPBti3G0J29572JOPIyrGhEBPp3J7/T6eRqZqiXe2VqqKYLCUD6oPzn6sVzHUWCxg8IspobJQiw==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/refs@1.1.3':
resolution: {integrity: sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/resize-observer@2.1.5':
resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/rootless@1.5.3':
resolution: {integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/scheduled@1.5.3':
resolution: {integrity: sha512-oNwLE6E6lxJAWrc8QXuwM0k2oU1BnANnkChwMw82aK1j3+mWGJkG1IFe5gCwbV+afYmjI76t9JJV3md/8tLw+g==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/static-store@0.1.3':
resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/storage@4.3.3':
resolution: {integrity: sha512-ACbNwMZ1s8VAvld6EUXkDkX/US3IhtlPLxg6+B2s9MwNUugwdd51I98LPEaHrdLpqPmyzqgoJe0TxEFlf3Dqrw==}
peerDependencies:
@@ -2669,11 +2788,26 @@ packages:
solid-start:
optional: true
'@solid-primitives/styles@0.1.3':
resolution: {integrity: sha512-7YdA21prMeCX+oOF/1RAn02+cGz/pG4dyPWtHBC2H8aZvnC7IfThBt80mP+TioejrdfE7Lc54Uh18f7Pig+gRQ==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/timer@1.4.4':
resolution: {integrity: sha512-Ayjyb3+v1hyU92vuLUN0tVHq2mmTCPGxSDLGJMsDydRqx9ZfJIc9xj6cxK4XvdY3pif3ps2mIv52pjgToybEpQ==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/utils@6.3.2':
resolution: {integrity: sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/utils@6.4.0':
resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==}
peerDependencies:
solid-js: ^1.6.12
'@solidjs/router@0.15.4':
resolution: {integrity: sha512-WOpgg9a9T638cR+5FGbFi/IV4l2FpmBs1GpIMSPa0Ce9vyJN7Wts+X2PqMf9IYn0zUj2MlSJtm1gp7/HI/n5TQ==}
peerDependencies:
@@ -3265,6 +3399,10 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -4470,6 +4608,15 @@ packages:
resolution: {integrity: sha512-kWJDCr9EWtZ+/EYYM5MareWj2cRnZGF93YDNpH4jQiHB+hBIZnfPFSQiVMzZOdk+zXWqTZ/9fTeQNu2DqeiudA==}
engines: {node: '>=20.12.2'}
solid-devtools@0.34.5:
resolution: {integrity: sha512-KNVdS9MQzzeVS++Vmg4JeU0fM6ZMuBEmkBA7SmqPS2s5UHpRjv1PNH8gShmlN9L/tki6OUAzJP3H1aKq2AcOSg==}
peerDependencies:
solid-js: ^1.9.0
vite: ^2.2.3 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
peerDependenciesMeta:
vite:
optional: true
solid-js@1.9.10:
resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==}
@@ -5446,7 +5593,7 @@ snapshots:
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
'@babel/types': 7.28.6
'@babel/types': 7.29.0
'@babel/helper-compilation-targets@7.28.6':
dependencies:
@@ -5474,18 +5621,18 @@ snapshots:
'@babel/helper-member-expression-to-functions@7.28.5':
dependencies:
'@babel/traverse': 7.28.6
'@babel/types': 7.28.6
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.18.6':
dependencies:
'@babel/types': 7.28.6
'@babel/types': 7.29.0
'@babel/helper-module-imports@7.28.6':
dependencies:
'@babel/traverse': 7.28.6
'@babel/types': 7.28.6
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -5518,7 +5665,7 @@ snapshots:
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
'@babel/types': 7.28.6
'@babel/types': 7.29.0
'@babel/helper-plugin-utils@7.28.6': {}
@@ -5534,7 +5681,7 @@ snapshots:
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
'@babel/traverse': 7.28.6
'@babel/types': 7.28.6
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -5572,6 +5719,11 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.28.6
'@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)':
dependencies:
'@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.28.6
'@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -6513,6 +6665,8 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.20.1
'@nothing-but/utils@0.17.0': {}
'@opencode-ai/sdk@1.1.39': {}
'@opentelemetry/api-logs@0.207.0':
@@ -7315,20 +7469,202 @@ snapshots:
dependencies:
tslib: 2.8.1
'@solid-devtools/debugger@0.28.1(solid-js@1.9.9)':
dependencies:
'@nothing-but/utils': 0.17.0
'@solid-devtools/shared': 0.20.0(solid-js@1.9.9)
'@solid-primitives/bounds': 0.1.5(solid-js@1.9.9)
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/keyboard': 1.3.5(solid-js@1.9.9)
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/scheduled': 1.5.3(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-devtools/frontend@0.15.4(solid-js@1.9.9)':
dependencies:
'@nothing-but/utils': 0.17.0
'@solid-devtools/debugger': 0.28.1(solid-js@1.9.9)
'@solid-devtools/shared': 0.20.0(solid-js@1.9.9)
'@solid-primitives/context': 0.3.2(solid-js@1.9.9)
'@solid-primitives/cursor': 0.1.3(solid-js@1.9.9)
'@solid-primitives/date': 2.1.6(solid-js@1.9.9)
'@solid-primitives/event-bus': 1.1.2(solid-js@1.9.9)
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/jsx-tokenizer': 1.1.3(solid-js@1.9.9)
'@solid-primitives/keyboard': 1.3.5(solid-js@1.9.9)
'@solid-primitives/keyed': 1.5.3(solid-js@1.9.9)
'@solid-primitives/media': 2.3.5(solid-js@1.9.9)
'@solid-primitives/mouse': 2.1.6(solid-js@1.9.9)
'@solid-primitives/props': 3.2.3(solid-js@1.9.9)
'@solid-primitives/range': 0.2.4(solid-js@1.9.9)
'@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.9)
'@solid-primitives/scheduled': 1.5.3(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/styles': 0.1.3(solid-js@1.9.9)
'@solid-primitives/timer': 1.4.4(solid-js@1.9.9)
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
clsx: 2.1.1
solid-js: 1.9.9
'@solid-devtools/overlay@0.33.5(solid-js@1.9.9)':
dependencies:
'@nothing-but/utils': 0.17.0
'@solid-devtools/debugger': 0.28.1(solid-js@1.9.9)
'@solid-devtools/frontend': 0.15.4(solid-js@1.9.9)
'@solid-devtools/shared': 0.20.0(solid-js@1.9.9)
'@solid-primitives/cursor': 0.1.3(solid-js@1.9.9)
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/media': 2.3.5(solid-js@1.9.9)
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-devtools/shared@0.20.0(solid-js@1.9.9)':
dependencies:
'@nothing-but/utils': 0.17.0
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/media': 2.3.5(solid-js@1.9.9)
'@solid-primitives/refs': 1.1.3(solid-js@1.9.9)
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/scheduled': 1.5.3(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/styles': 0.1.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/bounds@0.1.5(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/context@0.3.2(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@solid-primitives/cursor@0.1.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/date@2.1.6(solid-js@1.9.9)':
dependencies:
'@solid-primitives/memo': 1.4.5(solid-js@1.9.9)
'@solid-primitives/timer': 1.4.4(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/event-bus@1.1.2(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/event-listener@2.4.5(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/jsx-tokenizer@1.1.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/keyboard@1.3.5(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/keyed@1.5.3(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@solid-primitives/media@2.3.5(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/memo@1.4.5(solid-js@1.9.9)':
dependencies:
'@solid-primitives/scheduled': 1.5.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/mouse@2.1.6(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/props@3.2.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/range@0.2.4(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/refs@1.1.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/resize-observer@2.1.5(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.9)
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/static-store': 0.1.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/rootless@1.5.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/scheduled@1.5.3(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@solid-primitives/static-store@0.1.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/storage@4.3.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/styles@0.1.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/rootless': 1.5.3(solid-js@1.9.9)
'@solid-primitives/utils': 6.4.0(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/timer@1.4.4(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@solid-primitives/utils@6.3.2(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@solid-primitives/utils@6.4.0(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
'@solidjs/router@0.15.4(patch_hash=1db11a7c28fe4da76187d42efaffc6b9a70ad370462fffb794ff90e67744d770)(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
@@ -7524,16 +7860,16 @@ snapshots:
'@types/babel__generator@7.27.0':
dependencies:
'@babel/types': 7.28.6
'@babel/types': 7.29.0
'@types/babel__template@7.4.4':
dependencies:
'@babel/parser': 7.28.6
'@babel/types': 7.28.6
'@babel/types': 7.29.0
'@types/babel__traverse@7.28.0':
dependencies:
'@babel/types': 7.28.6
'@babel/types': 7.29.0
'@types/estree@1.0.8': {}
@@ -7663,7 +7999,7 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-module-imports': 7.18.6
'@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.0)
'@babel/types': 7.28.6
'@babel/types': 7.29.0
html-entities: 2.3.3
parse5: 7.3.0
@@ -7672,7 +8008,7 @@ snapshots:
'@babel/core': 7.28.6
'@babel/helper-module-imports': 7.18.6
'@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.6)
'@babel/types': 7.28.6
'@babel/types': 7.29.0
html-entities: 2.3.3
parse5: 7.3.0
@@ -7860,6 +8196,8 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
clsx@2.1.1: {}
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -8980,6 +9318,19 @@ snapshots:
simple-xml-to-json@1.2.3: {}
solid-devtools@0.34.5(solid-js@1.9.9)(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
'@babel/types': 7.29.0
'@solid-devtools/debugger': 0.28.1(solid-js@1.9.9)
'@solid-devtools/shared': 0.20.0(solid-js@1.9.9)
solid-js: 1.9.9
optionalDependencies:
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
solid-js@1.9.10:
dependencies:
csstype: 3.2.3