From 9404090e2f71ec3d0e2622cbdde9c90bfdc9c444 Mon Sep 17 00:00:00 2001 From: Alex Lohr Date: Tue, 21 Apr 2026 09:59:43 +0200 Subject: [PATCH 01/31] upgrade: storage package upgrade for Solid 2.0 --- .changeset/eleven-buttons-jump.md | 5 ++ packages/storage/package.json | 6 +- packages/storage/src/cookies.ts | 2 +- packages/storage/src/persisted.ts | 100 +++++++++++------------- packages/storage/test/persisted.test.ts | 44 ++++++++--- pnpm-lock.yaml | 81 +++++++++++++++---- 6 files changed, 152 insertions(+), 86 deletions(-) create mode 100644 .changeset/eleven-buttons-jump.md diff --git a/.changeset/eleven-buttons-jump.md b/.changeset/eleven-buttons-jump.md new file mode 100644 index 000000000..d8b5cc1f9 --- /dev/null +++ b/.changeset/eleven-buttons-jump.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/storage": major +--- + +**`makePersisted`** - simplify setter, Solid 2.0 adaption, simpler types using function overloads diff --git a/packages/storage/package.json b/packages/storage/package.json index 9cced22db..1c3685519 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -81,7 +81,8 @@ }, "peerDependencies": { "@tauri-apps/plugin-store": "*", - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.7", + "solid-js": "^2.0.0-beta.7" }, "peerDependenciesMeta": { "solid-start": { @@ -92,6 +93,7 @@ } }, "devDependencies": { - "solid-js": "^1.9.7" + "solid-js": "2.0.0-beta.7", + "@solidjs/web": "2.0.0-beta.7" } } diff --git a/packages/storage/src/cookies.ts b/packages/storage/src/cookies.ts index 0f7bd951d..6d5ef863a 100644 --- a/packages/storage/src/cookies.ts +++ b/packages/storage/src/cookies.ts @@ -1,4 +1,4 @@ -import { getRequestEvent, isServer, type RequestEvent } from "solid-js/web"; +import { getRequestEvent, isServer, type RequestEvent } from "@solidjs/web"; import { type SyncStorageWithOptions } from "./index.js"; import { addWithOptionsMethod, addClearMethod } from "./tools.js"; diff --git a/packages/storage/src/persisted.ts b/packages/storage/src/persisted.ts index a8f26a1ba..f1851e271 100644 --- a/packages/storage/src/persisted.ts +++ b/packages/storage/src/persisted.ts @@ -1,8 +1,5 @@ -import type { Accessor, Setter, Signal } from "solid-js"; -import { createUniqueId, untrack } from "solid-js"; -import { isServer, isDev } from "solid-js/web"; -import type { SetStoreFunction, Store } from "solid-js/store"; -import { reconcile } from "solid-js/store"; +import type { Signal, StoreSetter, Store } from "solid-js"; +import { createUniqueId, latest, untrack, reconcile, DEV } from "solid-js"; export type SyncStorage = { getItem: (key: string) => string | null; @@ -70,17 +67,7 @@ export type PersistenceOptions | undefined> = { storageOptions?: O; }); -export type SignalInput = Signal | [Store, SetStoreFunction]; - -export type SignalType = - S extends Signal ? T : S extends [Store, SetStoreFunction] ? T : never; - -export type PersistedState = - S extends Signal - ? [get: Accessor, set: Setter, init: Promise | string | null] - : S extends [Store, SetStoreFunction] - ? [get: Store, set: SetStoreFunction, init: Promise | string | null] - : never; +export type PersistedState = S extends [any, any] ? [...S, Promise | string | null] : never; /** * Persists a signal, store or similar API @@ -98,22 +85,30 @@ export type PersistedState = * value of the signal or store unless overwritten. Overwriting a signal with `null` or `undefined` will remove the * item from the storage. * - * @param {Signal | [get: Store, set: SetStoreFunction]} signal - The signal or store to be persisted. + * @param {Signal | [get: Store, set: St]} signal - The signal or store to be persisted. * @param {PersistenceOptions} options - The options for persistence. * @returns {PersistedState} - The persisted signal or store. */ -export function makePersisted( - signal: S, - options?: PersistenceOptions, undefined>, -): PersistedState; -export function makePersisted>( - signal: S, - options: PersistenceOptions, O>, -): PersistedState; +export function makePersisted( + signal: Signal, + options?: PersistenceOptions, +): PersistedState>; +export function makePersisted( + signal: [Store, StoreSetter], + options?: PersistenceOptions, +): PersistedState<[Store, StoreSetter]>; +export function makePersisted< + T, + O extends Record, +>(signal: Signal, options: PersistenceOptions): PersistedState>; export function makePersisted< - S extends SignalInput, + T, + O extends Record, +>(signal: [Store, StoreSetter], options: PersistenceOptions): PersistedState<[Store, StoreSetter]>; +export function makePersisted< + T, O extends Record | undefined, - T = SignalType, + S extends Signal | [Store, StoreSetter], >( signal: S, options: PersistenceOptions = {} as PersistenceOptions, @@ -121,7 +116,7 @@ export function makePersisted< const storage = options.storage || (globalThis.localStorage as Storage | undefined); const name = options.name || `storage-${createUniqueId()}`; if (!storage) { - return [signal[0], signal[1], null] as PersistedState; + return [signal[0], signal[1], null] as unknown as PersistedState; } const storageOptions = (options as unknown as { storageOptions: O }).storageOptions; const serialize: (data: T) => string = options.serialize || JSON.stringify.bind(JSON); @@ -135,16 +130,16 @@ export function makePersisted< (signal[1] as any)(() => value); } catch (e) { // eslint-disable-next-line no-console - if (isDev) console.warn(e); + if (DEV) console.warn(e); } } : (data: string) => { try { const value = deserialize(data); - (signal[1] as any)(reconcile(value)); + (signal[1] as any)(reconcile(value, () => undefined)); } catch (e) { // eslint-disable-next-line no-console - if (isDev) console.warn(e); + if (DEV) console.warn(e); } }; let unchanged = true; @@ -158,7 +153,7 @@ export function makePersisted< options.sync[0]((data: PersistenceSyncData) => { if ( data.key !== name || - (!isServer && (data.url || globalThis.location.href) !== globalThis.location.href) || + (!globalThis.window && (data.url || globalThis.location.href) !== globalThis.location.href) || data.newValue === serialize(untrack(get)) ) { return; @@ -167,28 +162,25 @@ export function makePersisted< }); } + const getter = typeof signal[0] === "function" ? signal[0] as () => T : () => signal[0] as T; return [ - signal[0], - typeof signal[0] === "function" - ? (value?: T | ((prev: T) => T)) => { - const output = (signal[1] as Setter)(value as any); - const serialized: string | null | undefined = - value != null ? serialize(output) : (value as null | undefined); - options.sync?.[1](name, serialized); - if (serialized != null) storage.setItem(name, serialized, storageOptions); - else storage.removeItem(name, storageOptions); - unchanged = false; - return output; - } - : (...args: any[]) => { - (signal[1] as any)(...args); - const value = serialize(untrack(() => signal[0])); - options.sync?.[1](name, value); - storage.setItem(name, value, storageOptions); - unchanged = false; - }, + signal[0], + (value: any) => untrack(() => { + const output = signal[1](value); + const next = latest(getter); + if (value == null) { + storage.removeItem(name, storageOptions); + options.sync?.[1](name, null); + } else { + const serialized = serialize(next); + storage.setItem(name, serialized, storageOptions); + options.sync?.[1](name, serialized); + } + unchanged = false; + return output; + }), init, - ] as PersistedState; + ] as unknown as PersistedState; } /** @@ -222,7 +214,7 @@ export const messageSync = (channel: Window | BroadcastChannel = window): Persis /** * wsSync - syncronize persisted storage via web socket */ -export const wsSync = (ws: WebSocket, warnOnError: boolean = isDev): PersistenceSyncAPI => [ +export const wsSync = (ws: WebSocket, warnOnError: boolean = !!DEV): PersistenceSyncAPI => [ (subscriber: PersistenceSyncCallback) => ws.addEventListener("message", (ev: MessageEvent) => { try { @@ -241,7 +233,7 @@ export const wsSync = (ws: WebSocket, warnOnError: boolean = isDev): Persistence key, newValue, timeStamp: +new Date(), - ...(isServer ? {} : { url: location.href }), + ...(globalThis.window ? { url: location.href } : {}), }), ), ]; diff --git a/packages/storage/test/persisted.test.ts b/packages/storage/test/persisted.test.ts index 9cbab1eb0..85c2b9349 100644 --- a/packages/storage/test/persisted.test.ts +++ b/packages/storage/test/persisted.test.ts @@ -1,6 +1,5 @@ import { describe, expect, it } from "vitest"; -import { createSignal } from "solid-js"; -import { createStore } from "solid-js/store"; +import { action, createSignal, createStore, createOptimistic, latest, refresh, type Signal } from "solid-js"; import { makePersisted } from "../src/persisted.js"; import { type AsyncStorage } from "../src/index.js"; @@ -60,23 +59,44 @@ describe("makePersisted", () => { }); setSignal("persisted"); expect(mockStorage.getItem("test1")).toBe('"persisted"'); - expect(signal()).toBe("persisted"); + expect(latest(signal)).toBe("persisted"); }); + + // currently, optimistic is broken + it.skip("persists an optimistic signal", async () => { + const DataServer = { + data: "server", + get: () => Promise.resolve(DataServer.data), + set: (next: string) => new Promise((res) => setTimeout(() => res(DataServer.data = next), 50)), + }; + const [optimistic, updateOptimistic] = createOptimistic(() => DataServer.get(), "initial"); + const setOptimistic = action(function*(data) { + updateOptimistic(data); + yield DataServer.set(data); + }); + const [signal, setSignal] = makePersisted( + [optimistic, setOptimistic], + { storage: mockStorage, name: "test1" } + ); + await setSignal("persisted"); + expect(mockStorage.getItem("test1")).toBe('"persisted"'); + expect(latest(signal)).toBe("persisted") + }) it("reads the persisted value from a synchronous storage into the signal", () => { mockStorage.setItem("test2", '"persistence"'); const [signal] = makePersisted(createSignal(), { storage: mockStorage, name: "test2" }); - expect(signal()).toBe("persistence"); + expect(latest(signal)).toBe("persistence"); }); it("removes a nulled signal's storage item", () => { - const [signal, setSignal] = makePersisted(createSignal(), { + const [signal, setSignal] = makePersisted(createSignal(), { storage: mockStorage, name: "test3", }); setSignal("test"); expect(mockStorage.getItem("test3")).toBe('"test"'); - expect(signal()).toBe("test"); + expect(latest(signal)).toBe("test"); setSignal(undefined); expect(mockStorage.getItem("test3")).toBeNull(); }); @@ -86,7 +106,7 @@ describe("makePersisted", () => { storage: mockStorage, name: "test4", }); - setStore("test", "persisted"); + setStore((s) => { s.test = "persisted" }); expect(store.test).toBe("persisted"); expect(mockStorage.getItem("test4")).toBe(JSON.stringify({ test: "persisted" })); }); @@ -97,7 +117,7 @@ describe("makePersisted", () => { name: "test5", }); setSignal("async"); - expect(signal()).toBe("async"); + expect(latest(signal)).toBe("async"); expect(await mockAsyncStorage.getItem("test5")).toBe('"async"'); }); @@ -108,7 +128,7 @@ describe("makePersisted", () => { name: "test6", }); await Promise.resolve(); - expect(signal()).toBe("predefined"); + expect(latest(signal)).toBe("predefined"); setSignal("overwritten"); await Promise.resolve(); expect(await mockAsyncStorage.getItem("test6")).toBe('"overwritten"'); @@ -125,15 +145,15 @@ describe("makePersisted", () => { storage: slowMockAsyncStorage, name: "test7", }); - expect(signal()).toBe("init"); + expect(latest(signal)).toBe("init"); setSignal("overwritten"); resolve("persisted"); - expect(signal()).toBe("overwritten"); + expect(latest(signal)).toBe("overwritten"); }); it("exposes the initial value as third part of the return tuple", () => { const anotherMockAsyncStorage = { ...mockAsyncStorage }; - const promise = Promise.resolve("init"); + const promise = Promise.resolve('"init"'); anotherMockAsyncStorage.getItem = () => promise; const [_signal, _setSignal, init] = makePersisted(createSignal("default"), { storage: anotherMockAsyncStorage, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ecadfdb95..f1cb06743 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -897,9 +897,12 @@ importers: specifier: '*' version: 2.0.0 devDependencies: + '@solidjs/web': + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.7)(solid-js@2.0.0-beta.7) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 packages/stream: dependencies: @@ -1048,10 +1051,10 @@ importers: version: link:../packages/utils '@solidjs/meta': specifier: ^0.29.3 - version: 0.29.4(solid-js@1.9.7) + version: 0.29.4(solid-js@2.0.0-beta.7) '@solidjs/router': specifier: ^0.13.1 - version: 0.13.6(solid-js@1.9.7) + version: 0.13.6(solid-js@2.0.0-beta.7) clsx: specifier: ^2.0.0 version: 2.1.1 @@ -1078,13 +1081,13 @@ importers: version: 1.77.8 solid-dismiss: specifier: ^1.7.121 - version: 1.8.2(solid-js@1.9.7) + version: 1.8.2(solid-js@2.0.0-beta.7) solid-icons: specifier: ^1.1.0 - version: 1.1.0(solid-js@1.9.7) + version: 1.1.0(solid-js@2.0.0-beta.7) solid-tippy: specifier: ^0.2.1 - version: 0.2.1(solid-js@1.9.7)(tippy.js@6.3.7) + version: 0.2.1(solid-js@2.0.0-beta.7)(tippy.js@6.3.7) tippy.js: specifier: ^6.3.7 version: 6.3.7 @@ -2587,11 +2590,20 @@ packages: peerDependencies: solid-js: ^1.5.3 + '@solidjs/signals@2.0.0-beta.7': + resolution: {integrity: sha512-SgK6oQlQZofz82LiEJ2RzT3sbs1lWTqFEtLoWjLsUo/dk1v9EoIFpJJlmvgkXvNugASWG+l1yOHa1a8lPamxug==} + '@solidjs/start@1.1.4': resolution: {integrity: sha512-ma1TBYqoTju87tkqrHExMReM5Z/+DTXSmi30CCTavtwuR73Bsn4rVGqm528p4sL2koRMfAuBMkrhuttjzhL68g==} peerDependencies: vinxi: ^0.5.3 + '@solidjs/web@2.0.0-beta.7': + resolution: {integrity: sha512-m5VjmDBufrOX0ZKGbhvwkT0CPK0TbMxDbxVPDB1PH2evGbWXQZcUlrpFM1N8RBO5md3aR/T1PgMfnOjleJbrRg==} + peerDependencies: + '@solidjs/signals': ^2.0.0-beta.7 + solid-js: ^2.0.0-beta.7 + '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} @@ -5892,10 +5904,20 @@ packages: peerDependencies: seroval: ^1.0 + seroval-plugins@1.5.2: + resolution: {integrity: sha512-qpY0Cl+fKYFn4GOf3cMiq6l72CpuVaawb6ILjubOQ+diJ54LfOWaSSPsaswN8DRPIPW4Yq+tE1k5aKd7ILyaFg==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + seroval@1.3.2: resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} engines: {node: '>=10'} + seroval@1.5.2: + resolution: {integrity: sha512-xcRN39BdsnO9Tf+VzsE7b3JyTJASItIV1FVFewJKCFcW4s4haIKS3e6vj8PGB9qBwC7tnuOywQMdv5N4qkzi7Q==} + engines: {node: '>=10'} + serve-placeholder@2.0.2: resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} @@ -6001,6 +6023,9 @@ packages: solid-js@1.9.7: resolution: {integrity: sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==} + solid-js@2.0.0-beta.7: + resolution: {integrity: sha512-7JHs+BhLeZXoU+u9dG+eKnyxxfZyGpOuJEBbN/1XbHKO/WhxecdplOAurlg/YDllNWPhsbXqmLR1H2paqSu62g==} + solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} peerDependencies: @@ -8576,18 +8601,20 @@ snapshots: dependencies: solid-js: 1.9.7 - '@solidjs/meta@0.29.4(solid-js@1.9.7)': + '@solidjs/meta@0.29.4(solid-js@2.0.0-beta.7)': dependencies: - solid-js: 1.9.7 + solid-js: 2.0.0-beta.7 - '@solidjs/router@0.13.6(solid-js@1.9.7)': + '@solidjs/router@0.13.6(solid-js@2.0.0-beta.7)': dependencies: - solid-js: 1.9.7 + solid-js: 2.0.0-beta.7 '@solidjs/router@0.8.4(solid-js@1.9.7)': dependencies: solid-js: 1.9.7 + '@solidjs/signals@2.0.0-beta.7': {} + '@solidjs/start@1.1.4(solid-js@1.9.7)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@tanstack/server-functions-plugin': 1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) @@ -8611,6 +8638,13 @@ snapshots: - supports-color - vite + '@solidjs/web@2.0.0-beta.7(@solidjs/signals@2.0.0-beta.7)(solid-js@2.0.0-beta.7)': + dependencies: + '@solidjs/signals': 2.0.0-beta.7 + seroval: 1.3.2 + seroval-plugins: 1.3.2(seroval@1.3.2) + solid-js: 2.0.0-beta.7 + '@speed-highlight/core@1.2.7': {} '@supabase/auth-js@2.67.3': @@ -12441,8 +12475,14 @@ snapshots: dependencies: seroval: 1.3.2 + seroval-plugins@1.5.2(seroval@1.5.2): + dependencies: + seroval: 1.5.2 + seroval@1.3.2: {} + seroval@1.5.2: {} + serve-placeholder@2.0.2: dependencies: defu: 6.1.4 @@ -12557,13 +12597,13 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 - solid-dismiss@1.8.2(solid-js@1.9.7): + solid-dismiss@1.8.2(solid-js@2.0.0-beta.7): dependencies: - solid-js: 1.9.7 + solid-js: 2.0.0-beta.7 - solid-icons@1.1.0(solid-js@1.9.7): + solid-icons@1.1.0(solid-js@2.0.0-beta.7): dependencies: - solid-js: 1.9.7 + solid-js: 2.0.0-beta.7 solid-js@1.9.7: dependencies: @@ -12571,6 +12611,13 @@ snapshots: seroval: 1.3.2 seroval-plugins: 1.3.2(seroval@1.3.2) + solid-js@2.0.0-beta.7: + dependencies: + '@solidjs/signals': 2.0.0-beta.7 + csstype: 3.1.3 + seroval: 1.5.2 + seroval-plugins: 1.5.2(seroval@1.5.2) + solid-refresh@0.6.3(solid-js@1.9.7): dependencies: '@babel/generator': 7.27.5 @@ -12580,9 +12627,9 @@ snapshots: transitivePeerDependencies: - supports-color - solid-tippy@0.2.1(solid-js@1.9.7)(tippy.js@6.3.7): + solid-tippy@0.2.1(solid-js@2.0.0-beta.7)(tippy.js@6.3.7): dependencies: - solid-js: 1.9.7 + solid-js: 2.0.0-beta.7 tippy.js: 6.3.7 solid-transition-group@0.2.3(solid-js@1.9.7): From ef953e9cae219d6742da1f219e2a7a968decf297 Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Mon, 20 Apr 2026 21:32:52 -0400 Subject: [PATCH 02/31] Deep changes amongst a number of pritmivies --- .changeset/media-solid2-migration.md | 45 +++++++ packages/event-listener/package.json | 6 +- packages/event-listener/src/components.ts | 2 +- packages/event-listener/src/eventListener.ts | 35 ++++-- .../event-listener/src/eventListenerMap.ts | 2 +- .../event-listener/src/eventListenerStack.ts | 2 +- packages/media/README.md | 41 ++++--- packages/media/package.json | 8 +- packages/media/src/index.ts | 2 +- packages/media/test/index.test.ts | 16 +-- packages/rootless/package.json | 6 +- packages/rootless/src/index.ts | 11 +- packages/static-store/package.json | 6 +- packages/static-store/src/index.ts | 19 ++- packages/storage/package.json | 8 +- packages/storage/src/persisted.ts | 61 ++++++---- packages/storage/test/persisted.test.ts | 22 ++-- packages/utils/package.json | 6 +- packages/utils/src/index.ts | 23 ++-- pnpm-lock.yaml | 114 ++++++++++++------ 20 files changed, 280 insertions(+), 155 deletions(-) create mode 100644 .changeset/media-solid2-migration.md diff --git a/.changeset/media-solid2-migration.md b/.changeset/media-solid2-migration.md new file mode 100644 index 000000000..bec101809 --- /dev/null +++ b/.changeset/media-solid2-migration.md @@ -0,0 +1,45 @@ +--- +"@solid-primitives/media": major +"@solid-primitives/event-listener": major +"@solid-primitives/rootless": major +"@solid-primitives/static-store": major +"@solid-primitives/utils": major +--- + +Migrate to Solid.js v2.0 (beta.7) + +## Breaking Changes + +**Peer dependency**: `solid-js@^2.0.0-beta.7` and `@solidjs/web@^2.0.0-beta.7` are now required. + +### `@solid-primitives/media` + +- `isServer` now imported from `@solidjs/web` (not `solid-js/web`) +- Requires Solid.js v2 — `classList` is replaced by `class` with object/array forms in consuming code + +### `@solid-primitives/utils` + +- `isServer` import moved from `solid-js/web` to `@solidjs/web` +- `createHydratableSignal`: uses `onSettled` (was `onMount`) and `sharedConfig.hydrating` (was `sharedConfig.context`) for hydration detection +- `INTERNAL_OPTIONS`: `{ internal: true }` changed to `{ pureWrite: true }` to match Solid 2.0 `SignalOptions` +- `defaultEquals` now aliases `isEqual` (was `equalFn`) +- `defer`: `AccessorArray` type replaced with `Accessor[]` (type was removed in Solid 2.0) + +### `@solid-primitives/static-store` + +- `isServer` import moved from `solid-js/web` to `@solidjs/web` +- `createStaticStore`: uses `getObserver` (was `getListener`) and `{ pureWrite: true }` (was `{ internal: true }`) +- Removed explicit `batch()` calls — updates are automatically batched in Solid 2.0 +- `createHydratableStaticStore`: uses `onSettled` (was `onMount`) and `sharedConfig.hydrating` (was `sharedConfig.context`) + +### `@solid-primitives/rootless` + +- `isServer` import moved from `solid-js/web` to `@solidjs/web` +- `createHydratableSingletonRoot`: uses `sharedConfig.hydrating` (was `sharedConfig.context`) +- `createRootPool`: removed `batch()` calls — Solid 2.0 auto-batches on microtasks + +### `@solid-primitives/event-listener` + +- `isServer` import moved from `solid-js/web` to `@solidjs/web` across all source files +- `createEventListener` and `createRenderEffect` converted to split compute/apply effect pattern required by Solid 2.0 +- `eventListener` directive converted to split effect pattern; cleanup is returned from apply phase instead of using `onCleanup` diff --git a/packages/event-listener/package.json b/packages/event-listener/package.json index 516416b21..ef03fe1b3 100644 --- a/packages/event-listener/package.json +++ b/packages/event-listener/package.json @@ -57,10 +57,12 @@ "@solid-primitives/utils": "workspace:^" }, "peerDependencies": { - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.7", + "solid-js": "^2.0.0-beta.7" }, "typesVersions": {}, "devDependencies": { - "solid-js": "^1.9.7" + "@solidjs/web": "2.0.0-beta.7", + "solid-js": "2.0.0-beta.7" } } diff --git a/packages/event-listener/src/components.ts b/packages/event-listener/src/components.ts index 72c541fb2..69b18727c 100644 --- a/packages/event-listener/src/components.ts +++ b/packages/event-listener/src/components.ts @@ -1,4 +1,4 @@ -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; import { keys } from "@solid-primitives/utils"; import { type Component } from "solid-js"; import { makeEventListener } from "./eventListener.js"; diff --git a/packages/event-listener/src/eventListener.ts b/packages/event-listener/src/eventListener.ts index 5fa8674ea..7c19fc933 100644 --- a/packages/event-listener/src/eventListener.ts +++ b/packages/event-listener/src/eventListener.ts @@ -7,7 +7,7 @@ import { tryOnCleanup, } from "@solid-primitives/utils"; import { type Accessor, createEffect, createRenderEffect, createSignal } from "solid-js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; import type { EventListenerDirectiveProps, EventMapOf, @@ -110,17 +110,28 @@ export function createEventListener( ): void { if (isServer) return; - const attachListeners = () => { - asArray(access(targets)).forEach(el => { - if (el) asArray(access(type)).forEach(type => makeEventListener(el, type, handler, options)); - }); + type State = { els: EventTarget[]; types: string[] }; + + const compute = (): State => ({ + els: asArray(access(targets)).filter(Boolean) as EventTarget[], + types: asArray(access(type)) as string[], + }); + + const apply = ({ els, types }: State) => { + const cleanups: VoidFunction[] = []; + for (const el of els) + for (const t of types) { + el.addEventListener(t, handler, options); + cleanups.push(el.removeEventListener.bind(el, t, handler, options)); + } + return () => cleanups.forEach(c => c()); }; - // if the target is an accessor the listeners will be added on the first effect (onMount) - // so that when passed a jsx ref it will be availabe - if (typeof targets === "function") createEffect(attachListeners); + // if the target is an accessor the listeners will be added on the first effect (after mount) + // so that when passed a jsx ref it will be available + if (typeof targets === "function") createEffect(compute, apply); // if the target prop is NOT an accessor, the event listeners can be added right away - else createRenderEffect(attachListeners); + else createRenderEffect(compute, apply); } // Possible targets prop shapes: @@ -192,9 +203,9 @@ export function createEventSignal( * */ export const eventListener: Directive = (target, props) => { - createEffect(() => { - const [type, handler, options] = props(); - makeEventListener(target, type, handler, options); + createEffect(props, ([type, handler, options]) => { + target.addEventListener(type, handler, options); + return () => target.removeEventListener(type, handler, options); }); }; diff --git a/packages/event-listener/src/eventListenerMap.ts b/packages/event-listener/src/eventListenerMap.ts index 69450e8d8..a5e312de1 100644 --- a/packages/event-listener/src/eventListenerMap.ts +++ b/packages/event-listener/src/eventListenerMap.ts @@ -1,7 +1,7 @@ import { type AnyFunction, entries, type Many, type MaybeAccessor } from "@solid-primitives/utils"; import { createEventListener } from "./eventListener.js"; import type { EventMapOf, TargetWithEventMap, EventListenerOptions } from "./types.js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; export type EventHandlersMap = { [EventName in keyof EventMap]: (event: EventMap[EventName]) => void; diff --git a/packages/event-listener/src/eventListenerStack.ts b/packages/event-listener/src/eventListenerStack.ts index 140a51ca1..c1b29a411 100644 --- a/packages/event-listener/src/eventListenerStack.ts +++ b/packages/event-listener/src/eventListenerStack.ts @@ -2,7 +2,7 @@ import { createCallbackStack } from "@solid-primitives/utils"; import { onCleanup } from "solid-js"; import { makeEventListener } from "./eventListener.js"; import type { EventMapOf, TargetWithEventMap, EventListenerOptions } from "./types.js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; export type EventListenerStackOn> = { ( diff --git a/packages/media/README.md b/packages/media/README.md index 968ea767a..f6dfa8a96 100644 --- a/packages/media/README.md +++ b/packages/media/README.md @@ -23,6 +23,8 @@ npm install @solid-primitives/media yarn add @solid-primitives/media ``` +> **Requires Solid.js v2.0 (beta.7+)** + ## `makeMediaQueryListener` Attaches a MediaQuery listener to window, listeneing to changes to provided query @@ -77,20 +79,23 @@ const breakpoints = { const Example: Component = () => { const matches = createBreakpoints(breakpoints); - createEffect(() => { - console.log(matches.sm); // true when screen width >= 640px - console.log(matches.lg); // true when screen width >= 1024px - console.log(matches.xl); // true when screen width >= 1280px - }); + createEffect( + () => [matches.sm, matches.lg, matches.xl], + ([sm, lg, xl]) => { + console.log(sm); // true when screen width >= 640px + console.log(lg); // true when screen width >= 1024px + console.log(xl); // true when screen width >= 1280px + } + ); return (
Smallest
}> Extra Large @@ -169,9 +174,10 @@ Provides a signal indicating if the user has requested dark color theme. The set import { createPrefersDark } from "@solid-primitives/media"; const prefersDark = createPrefersDark(); -createEffect(() => { - prefersDark(); // => boolean -}); +createEffect( + prefersDark, + dark => console.log("prefers dark:", dark) +); ``` ### Server fallback @@ -192,9 +198,10 @@ This primitive provides a [singleton root](https://github.com/solidjs-community/ import { usePrefersDark } from "@solid-primitives/media"; const prefersDark = usePrefersDark(); -createEffect(() => { - prefersDark(); // => boolean -}); +createEffect( + prefersDark, + dark => console.log("prefers dark:", dark) +); ``` > Note: `usePrefersDark` will deopt to `createPrefersDark` if used during hydration. (see issue [#310](https://github.com/solidjs-community/solid-primitives/issues/310)) diff --git a/packages/media/package.json b/packages/media/package.json index a729055b8..79a3cd4d3 100644 --- a/packages/media/package.json +++ b/packages/media/package.json @@ -1,6 +1,6 @@ { "name": "@solid-primitives/media", - "version": "2.3.5", + "version": "3.0.0", "description": "Primitives for media query and device features", "author": "David Di Biase ", "contributors": [ @@ -68,10 +68,12 @@ "@solid-primitives/utils": "workspace:^" }, "peerDependencies": { - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.7", + "solid-js": "^2.0.0-beta.7" }, "typesVersions": {}, "devDependencies": { - "solid-js": "^1.9.7" + "@solidjs/web": "2.0.0-beta.7", + "solid-js": "2.0.0-beta.7" } } diff --git a/packages/media/src/index.ts b/packages/media/src/index.ts index 6234f607d..0923bcd0a 100644 --- a/packages/media/src/index.ts +++ b/packages/media/src/index.ts @@ -1,5 +1,5 @@ import { type Accessor } from "solid-js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; import { makeEventListener } from "@solid-primitives/event-listener"; import { entries, noop, createHydratableSignal } from "@solid-primitives/utils"; import { createHydratableStaticStore } from "@solid-primitives/static-store"; diff --git a/packages/media/test/index.test.ts b/packages/media/test/index.test.ts index 6d7411b69..7306a433a 100644 --- a/packages/media/test/index.test.ts +++ b/packages/media/test/index.test.ts @@ -1,5 +1,5 @@ import { describe, test, expect, vi, beforeEach, beforeAll, afterAll } from "vitest"; -import { createRoot, onMount } from "solid-js"; +import { createRoot } from "solid-js"; import { createBreakpoints, sortBreakpoints } from "../src/index.js"; describe("createBreakpoints", () => { @@ -217,11 +217,8 @@ describe("createBreakpoints", () => { createBreakpoints(breakpoints, { watchChange: false, }); - - onMount(() => { - expect(addListenerMock).not.toBeCalled(); - dispose(); - }); + expect(addListenerMock).not.toBeCalled(); + dispose(); }); expect(removeListenerMock).not.toBeCalled(); }); @@ -230,11 +227,8 @@ describe("createBreakpoints", () => { window.matchMedia = undefined as unknown as typeof window.matchMedia; createRoot(dispose => { createBreakpoints(breakpoints); - - onMount(() => { - expect(addListenerMock).not.toBeCalled(); - dispose(); - }); + expect(addListenerMock).not.toBeCalled(); + dispose(); }); expect(removeListenerMock).not.toBeCalled(); }); diff --git a/packages/rootless/package.json b/packages/rootless/package.json index 2cb9e390a..0bb4329e2 100644 --- a/packages/rootless/package.json +++ b/packages/rootless/package.json @@ -56,9 +56,11 @@ "@solid-primitives/utils": "workspace:^" }, "peerDependencies": { - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.7", + "solid-js": "^2.0.0-beta.7" }, "devDependencies": { - "solid-js": "^1.9.7" + "@solidjs/web": "2.0.0-beta.7", + "solid-js": "2.0.0-beta.7" } } diff --git a/packages/rootless/src/index.ts b/packages/rootless/src/index.ts index 29d2dd439..bb95bfcfe 100644 --- a/packages/rootless/src/index.ts +++ b/packages/rootless/src/index.ts @@ -8,10 +8,9 @@ import { type Accessor, createSignal, type Signal, - batch, type Setter, } from "solid-js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; import { type AnyFunction, asArray, @@ -161,7 +160,7 @@ export const createSharedRoot = createSingletonRoot; export function createHydratableSingletonRoot(factory: (dispose: VoidFunction) => T): () => T { const owner = getOwner(); const singleton = createSingletonRoot(factory, owner); - return () => (isServer || sharedConfig.context ? createRoot(factory, owner) : singleton()); + return () => (isServer || sharedConfig.hydrating ? createRoot(factory, owner) : singleton()); } /** @@ -310,10 +309,8 @@ export function createRootPool( if (length) { root = pool[--length]!; pool[length] = undefined!; - batch(() => { - root.set(() => arg); - root.setA(true); - }); + root.set(() => arg); + root.setA(true); } else root = createRoot(dispose => mapRoot(dispose, createSignal(arg)), owner); onCleanup(() => cleanupRoot(root)); diff --git a/packages/static-store/package.json b/packages/static-store/package.json index b348a17e2..181e2de4d 100644 --- a/packages/static-store/package.json +++ b/packages/static-store/package.json @@ -51,12 +51,14 @@ "test:ssr": "pnpm run vitest --mode ssr" }, "peerDependencies": { - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.7", + "solid-js": "^2.0.0-beta.7" }, "dependencies": { "@solid-primitives/utils": "workspace:^" }, "devDependencies": { - "solid-js": "^1.9.7" + "@solidjs/web": "2.0.0-beta.7", + "solid-js": "2.0.0-beta.7" } } diff --git a/packages/static-store/src/index.ts b/packages/static-store/src/index.ts index 4e49612bc..28cd6b67b 100644 --- a/packages/static-store/src/index.ts +++ b/packages/static-store/src/index.ts @@ -1,21 +1,20 @@ import { accessWith, isObject, type SetterParam } from "@solid-primitives/utils"; import { type Accessor, - batch, createMemo, createSignal, type EffectFunction, - getListener, + getObserver, getOwner, type MemoOptions, type NoInfer, - onMount, + onSettled, runWithOwner, sharedConfig, type Signal, untrack, } from "solid-js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; export type StaticStoreSetter = { (setter: (prev: T) => Partial): T; @@ -54,8 +53,8 @@ export function createStaticStore( const getValue = (key: keyof T): T[keyof T] => { let signal = cache[key]; if (!signal) { - if (!getListener()) return copy[key]; - cache[key] = signal = createSignal(copy[key], { internal: true }); + if (!getObserver()) return copy[key]; + cache[key] = signal = createSignal(copy[key], { pureWrite: true }); delete copy[key]; } return signal[0](); @@ -78,9 +77,7 @@ export function createStaticStore( const entries = untrack( () => Object.entries(accessWith(a, store) as Partial) as [any, any][], ); - batch(() => { - for (const [key, value] of entries) setValue(key, () => value); - }); + for (const [key, value] of entries) setValue(key, () => value); } else setValue(a, b); return store; }, @@ -104,9 +101,9 @@ export function createHydratableStaticStore( ): ReturnType> { if (isServer) return createStaticStore(serverValue); - if (sharedConfig.context) { + if (sharedConfig.hydrating) { const [state, setState] = createStaticStore(serverValue); - onMount(() => setState(update())); + onSettled(() => setState(update())); return [state, setState]; } diff --git a/packages/storage/package.json b/packages/storage/package.json index 1c3685519..a1bc296d1 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -81,8 +81,8 @@ }, "peerDependencies": { "@tauri-apps/plugin-store": "*", - "@solidjs/web": "^2.0.0-beta.7", - "solid-js": "^2.0.0-beta.7" + "@solidjs/web": "^2.0.0-beta.11", + "solid-js": "^2.0.0-beta.11" }, "peerDependenciesMeta": { "solid-start": { @@ -93,7 +93,7 @@ } }, "devDependencies": { - "solid-js": "2.0.0-beta.7", - "@solidjs/web": "2.0.0-beta.7" + "solid-js": "2.0.0-beta.11", + "@solidjs/web": "2.0.0-beta.11" } } diff --git a/packages/storage/src/persisted.ts b/packages/storage/src/persisted.ts index f1851e271..ebd27ee5a 100644 --- a/packages/storage/src/persisted.ts +++ b/packages/storage/src/persisted.ts @@ -1,5 +1,5 @@ import type { Signal, StoreSetter, Store } from "solid-js"; -import { createUniqueId, latest, untrack, reconcile, DEV } from "solid-js"; +import { action, createUniqueId, latest, untrack, reconcile, DEV } from "solid-js"; export type SyncStorage = { getItem: (key: string) => string | null; @@ -55,11 +55,16 @@ export type PersistenceSyncAPI = [ update: (key: string, value: string | null | undefined) => void, ]; -export type PersistenceOptions | undefined> = { +export type PersistenceOptions< + S extends Signal | [Store, StoreSetter], + O extends Record | undefined, + T = S extends Signal ? T : S extends [Store, StoreSetter] ? T : never +> = { name?: string; serialize?: (data: T) => string; deserialize?: (data: string) => T; sync?: PersistenceSyncAPI; + action?: (signal: S) => Parameters[0]; } & (undefined extends O ? { storage?: SyncStorage | AsyncStorage } : { @@ -79,6 +84,7 @@ export type PersistedState = S extends [any, any] ? [...S, Promise | * name: "solid-data", // optional * serialize: (value: string) => value, // optional * deserialize: (data: string) => data, // optional + * action: (setter: Setter) => Setter // optional, to be put inside action * }; * ``` * Can be used with `createSignal` or `createStore`. The initial value from the storage will overwrite the initial @@ -89,32 +95,38 @@ export type PersistedState = S extends [any, any] ? [...S, Promise | * @param {PersistenceOptions} options - The options for persistence. * @returns {PersistedState} - The persisted signal or store. */ -export function makePersisted( - signal: Signal, - options?: PersistenceOptions, -): PersistedState>; -export function makePersisted( - signal: [Store, StoreSetter], - options?: PersistenceOptions, -): PersistedState<[Store, StoreSetter]>; +export function makePersisted>( + signal: S, + options?: PersistenceOptions, +): PersistedState; +export function makePersisted, StoreSetter]>( + signal: S, + options?: PersistenceOptions, +): PersistedState; export function makePersisted< T, O extends Record, ->(signal: Signal, options: PersistenceOptions): PersistedState>; + S extends Signal +>(signal: S, options: PersistenceOptions): PersistedState; export function makePersisted< T, O extends Record, ->(signal: [Store, StoreSetter], options: PersistenceOptions): PersistedState<[Store, StoreSetter]>; + S extends [Store, StoreSetter] +>(signal: S, options: PersistenceOptions): PersistedState; export function makePersisted< T, O extends Record | undefined, S extends Signal | [Store, StoreSetter], >( signal: S, - options: PersistenceOptions = {} as PersistenceOptions, + options: PersistenceOptions = {} as PersistenceOptions, ): PersistedState { const storage = options.storage || (globalThis.localStorage as Storage | undefined); const name = options.name || `storage-${createUniqueId()}`; + const actionFn = options.action && options.action(signal); + if (actionFn) { + signal[1] = action(actionFn) as unknown as S[1]; + } if (!storage) { return [signal[0], signal[1], null] as unknown as PersistedState; } @@ -163,21 +175,24 @@ export function makePersisted< } const getter = typeof signal[0] === "function" ? signal[0] as () => T : () => signal[0] as T; + const persist = () => { + const next = latest(getter); + if (next == null) { + storage.removeItem(name, storageOptions); + options.sync?.[1](name, null); + } else { + const serialized = serialize(next); + storage.setItem(name, serialized, storageOptions); + options.sync?.[1](name, serialized); + } + }; return [ signal[0], (value: any) => untrack(() => { const output = signal[1](value); - const next = latest(getter); - if (value == null) { - storage.removeItem(name, storageOptions); - options.sync?.[1](name, null); - } else { - const serialized = serialize(next); - storage.setItem(name, serialized, storageOptions); - options.sync?.[1](name, serialized); - } + persist(); unchanged = false; - return output; + return output instanceof Promise ? output.then((result) => (persist(), result)) : output; }), init, ] as unknown as PersistedState; diff --git a/packages/storage/test/persisted.test.ts b/packages/storage/test/persisted.test.ts index 85c2b9349..5b45dab2d 100644 --- a/packages/storage/test/persisted.test.ts +++ b/packages/storage/test/persisted.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest"; -import { action, createSignal, createStore, createOptimistic, latest, refresh, type Signal } from "solid-js"; +import { createSignal, createStore, createOptimistic, flush, latest, refresh, type Signal } from "solid-js"; import { makePersisted } from "../src/persisted.js"; import { type AsyncStorage } from "../src/index.js"; @@ -63,22 +63,26 @@ describe("makePersisted", () => { }); // currently, optimistic is broken - it.skip("persists an optimistic signal", async () => { + it.only("persists an optimistic signal", async () => { const DataServer = { data: "server", get: () => Promise.resolve(DataServer.data), set: (next: string) => new Promise((res) => setTimeout(() => res(DataServer.data = next), 50)), }; - const [optimistic, updateOptimistic] = createOptimistic(() => DataServer.get(), "initial"); - const setOptimistic = action(function*(data) { - updateOptimistic(data); - yield DataServer.set(data); - }); const [signal, setSignal] = makePersisted( - [optimistic, setOptimistic], - { storage: mockStorage, name: "test1" } + createOptimistic(() => DataServer.get()), + { + storage: mockStorage, + name: "test1", + action: ([getter, setter]) => function*(next) { + setter(next); + yield DataServer.set(next); + refresh(getter); + } + } ); await setSignal("persisted"); + flush(); expect(mockStorage.getItem("test1")).toBe('"persisted"'); expect(latest(signal)).toBe("persisted") }) diff --git a/packages/utils/package.json b/packages/utils/package.json index d01e18508..4aeea1e36 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -61,9 +61,11 @@ "primitives" ], "peerDependencies": { - "solid-js": "^1.6.12" + "@solidjs/web": "^2.0.0-beta.7", + "solid-js": "^2.0.0-beta.7" }, "devDependencies": { - "solid-js": "^1.9.7" + "@solidjs/web": "2.0.0-beta.7", + "solid-js": "2.0.0-beta.7" } } diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 5ba5b7e24..143364460 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -4,16 +4,15 @@ import { createSignal, type Accessor, untrack, - type AccessorArray, type EffectFunction, type NoInfer, type SignalOptions, sharedConfig, - onMount, + onSettled, DEV, - equalFn, + isEqual, } from "solid-js"; -import { isServer } from "solid-js/web"; +import { isServer } from "@solidjs/web"; import type { AnyClass, MaybeAccessor, @@ -39,11 +38,11 @@ export const noop = (() => void 0) as Noop; export const trueFn: () => boolean = () => true; export const falseFn: () => boolean = () => false; -/** @deprecated use {@link equalFn} from "solid-js" */ -export const defaultEquals = equalFn; +/** @deprecated use {@link isEqual} from "solid-js" */ +export const defaultEquals = isEqual; export const EQUALS_FALSE_OPTIONS = { equals: false } as const satisfies SignalOptions; -export const INTERNAL_OPTIONS = { internal: true } as const satisfies SignalOptions; +export const INTERNAL_OPTIONS = { pureWrite: true } as const satisfies SignalOptions; /** * Check if the value is an instance of ___ @@ -153,17 +152,17 @@ export function accessWith( * @param initialValue */ export function defer( - deps: AccessorArray | Accessor, + deps: Accessor[] | Accessor, fn: (input: S, prevInput: S, prev: undefined | NoInfer) => Next, initialValue: Next, ): EffectFunction, NoInfer>; export function defer( - deps: AccessorArray | Accessor, + deps: Accessor[] | Accessor, fn: (input: S, prevInput: S, prev: undefined | NoInfer) => Next, initialValue?: undefined, ): EffectFunction>; export function defer( - deps: AccessorArray | Accessor, + deps: Accessor[] | Accessor, fn: (input: S, prevInput: S, prev: undefined | NoInfer) => Next, initialValue?: Next, ): EffectFunction> { @@ -256,9 +255,9 @@ export function createHydratableSignal( if (isServer) { return createSignal(serverValue, options); } - if (sharedConfig.context) { + if (sharedConfig.hydrating) { const [state, setState] = createSignal(serverValue, options); - onMount(() => setState(() => update())); + onSettled(() => setState(() => update())); return [state, setState]; } return createSignal(update(), options); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1cb06743..1ae64ab1a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -298,9 +298,12 @@ importers: specifier: workspace:^ version: link:../utils devDependencies: + '@solidjs/web': + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 packages/event-props: devDependencies: @@ -571,9 +574,12 @@ importers: specifier: workspace:^ version: link:../utils devDependencies: + '@solidjs/web': + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 packages/memo: dependencies: @@ -786,9 +792,12 @@ importers: specifier: workspace:^ version: link:../utils devDependencies: + '@solidjs/web': + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 packages/scheduled: devDependencies: @@ -884,9 +893,12 @@ importers: specifier: workspace:^ version: link:../utils devDependencies: + '@solidjs/web': + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 packages/storage: dependencies: @@ -898,11 +910,11 @@ importers: version: 2.0.0 devDependencies: '@solidjs/web': - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.7)(solid-js@2.0.0-beta.7) + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11(solid-js@2.0.0-beta.11) solid-js: - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 packages/stream: dependencies: @@ -973,9 +985,12 @@ importers: packages/utils: devDependencies: + '@solidjs/web': + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 packages/virtual: dependencies: @@ -1051,10 +1066,10 @@ importers: version: link:../packages/utils '@solidjs/meta': specifier: ^0.29.3 - version: 0.29.4(solid-js@2.0.0-beta.7) + version: 0.29.4(solid-js@2.0.0-beta.11) '@solidjs/router': specifier: ^0.13.1 - version: 0.13.6(solid-js@2.0.0-beta.7) + version: 0.13.6(solid-js@2.0.0-beta.11) clsx: specifier: ^2.0.0 version: 2.1.1 @@ -1081,13 +1096,13 @@ importers: version: 1.77.8 solid-dismiss: specifier: ^1.7.121 - version: 1.8.2(solid-js@2.0.0-beta.7) + version: 1.8.2(solid-js@2.0.0-beta.11) solid-icons: specifier: ^1.1.0 - version: 1.1.0(solid-js@2.0.0-beta.7) + version: 1.1.0(solid-js@2.0.0-beta.11) solid-tippy: specifier: ^0.2.1 - version: 0.2.1(solid-js@2.0.0-beta.7)(tippy.js@6.3.7) + version: 0.2.1(solid-js@2.0.0-beta.11)(tippy.js@6.3.7) tippy.js: specifier: ^6.3.7 version: 6.3.7 @@ -2045,6 +2060,7 @@ packages: '@graphql-tools/prisma-loader@8.0.4': resolution: {integrity: sha512-hqKPlw8bOu/GRqtYr0+dINAI13HinTVYBDqhwGAPIFmLr5s+qKskzgCiwbsckdrb5LWVFmVZc+UXn80OGiyBzg==} engines: {node: '>=16.0.0'} + deprecated: 'This package was intended to be used with an older versions of Prisma.\nThe newer versions of Prisma has a different approach to GraphQL integration.\nTherefore, this package is no longer needed and has been deprecated and removed.\nLearn more: https://www.prisma.io/graphql' peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2590,6 +2606,9 @@ packages: peerDependencies: solid-js: ^1.5.3 + '@solidjs/signals@2.0.0-beta.12': + resolution: {integrity: sha512-xR8782xHcpcPnhENignNQNydn2tfaU68VP2MndsFT7VPQLG1RF4kAaWhrVWjvuzqY0cxOYcFeOTA3gInYHL50A==} + '@solidjs/signals@2.0.0-beta.7': resolution: {integrity: sha512-SgK6oQlQZofz82LiEJ2RzT3sbs1lWTqFEtLoWjLsUo/dk1v9EoIFpJJlmvgkXvNugASWG+l1yOHa1a8lPamxug==} @@ -2598,6 +2617,11 @@ packages: peerDependencies: vinxi: ^0.5.3 + '@solidjs/web@2.0.0-beta.11': + resolution: {integrity: sha512-oYMlf46YLJ709vMj+zxJ5wrxCHLrdeT8obdl09Q58bij7UlMsEeZbjEYvEAh7GhR70EWncxvK1fqurQCVHlmUA==} + peerDependencies: + solid-js: ^2.0.0-beta.11 + '@solidjs/web@2.0.0-beta.7': resolution: {integrity: sha512-m5VjmDBufrOX0ZKGbhvwkT0CPK0TbMxDbxVPDB1PH2evGbWXQZcUlrpFM1N8RBO5md3aR/T1PgMfnOjleJbrRg==} peerDependencies: @@ -3525,6 +3549,7 @@ packages: dax-sh@0.43.2: resolution: {integrity: sha512-uULa1sSIHgXKGCqJ/pA0zsnzbHlVnuq7g8O2fkHokWFNwEGIhh5lAJlxZa1POG5En5ba7AU4KcBAvGQWMMf8rg==} + deprecated: This package has moved to simply be 'dax' instead of 'dax-sh' db0@0.3.2: resolution: {integrity: sha512-xzWNQ6jk/+NtdfLyXEipbX55dmDSeteLFt/ayF+wZUU5bzKgmrDOxmInUTbyVRp46YwnJdkDA1KhB7WIXFofJw==} @@ -4176,11 +4201,12 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -6023,6 +6049,9 @@ packages: solid-js@1.9.7: resolution: {integrity: sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==} + solid-js@2.0.0-beta.11: + resolution: {integrity: sha512-PdvH/1ViGvfiT61Q0huePc5AmpzM9Q9mcg3nW5G6zmfLw2WxaecQNkkAn/PCx5sIr6LF0iDvkYVEYDmZuEFjHg==} + solid-js@2.0.0-beta.7: resolution: {integrity: sha512-7JHs+BhLeZXoU+u9dG+eKnyxxfZyGpOuJEBbN/1XbHKO/WhxecdplOAurlg/YDllNWPhsbXqmLR1H2paqSu62g==} @@ -6220,6 +6249,7 @@ packages: tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -6735,6 +6765,7 @@ packages: whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} @@ -8601,18 +8632,20 @@ snapshots: dependencies: solid-js: 1.9.7 - '@solidjs/meta@0.29.4(solid-js@2.0.0-beta.7)': + '@solidjs/meta@0.29.4(solid-js@2.0.0-beta.11)': dependencies: - solid-js: 2.0.0-beta.7 + solid-js: 2.0.0-beta.11 - '@solidjs/router@0.13.6(solid-js@2.0.0-beta.7)': + '@solidjs/router@0.13.6(solid-js@2.0.0-beta.11)': dependencies: - solid-js: 2.0.0-beta.7 + solid-js: 2.0.0-beta.11 '@solidjs/router@0.8.4(solid-js@1.9.7)': dependencies: solid-js: 1.9.7 + '@solidjs/signals@2.0.0-beta.12': {} + '@solidjs/signals@2.0.0-beta.7': {} '@solidjs/start@1.1.4(solid-js@1.9.7)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': @@ -8638,11 +8671,17 @@ snapshots: - supports-color - vite - '@solidjs/web@2.0.0-beta.7(@solidjs/signals@2.0.0-beta.7)(solid-js@2.0.0-beta.7)': + '@solidjs/web@2.0.0-beta.11(solid-js@2.0.0-beta.11)': dependencies: - '@solidjs/signals': 2.0.0-beta.7 - seroval: 1.3.2 - seroval-plugins: 1.3.2(seroval@1.3.2) + seroval: 1.5.2 + seroval-plugins: 1.5.2(seroval@1.5.2) + solid-js: 2.0.0-beta.11 + + '@solidjs/web@2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7)': + dependencies: + '@solidjs/signals': 2.0.0-beta.12 + seroval: 1.5.2 + seroval-plugins: 1.5.2(seroval@1.5.2) solid-js: 2.0.0-beta.7 '@speed-highlight/core@1.2.7': {} @@ -12597,13 +12636,13 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 - solid-dismiss@1.8.2(solid-js@2.0.0-beta.7): + solid-dismiss@1.8.2(solid-js@2.0.0-beta.11): dependencies: - solid-js: 2.0.0-beta.7 + solid-js: 2.0.0-beta.11 - solid-icons@1.1.0(solid-js@2.0.0-beta.7): + solid-icons@1.1.0(solid-js@2.0.0-beta.11): dependencies: - solid-js: 2.0.0-beta.7 + solid-js: 2.0.0-beta.11 solid-js@1.9.7: dependencies: @@ -12611,6 +12650,13 @@ snapshots: seroval: 1.3.2 seroval-plugins: 1.3.2(seroval@1.3.2) + solid-js@2.0.0-beta.11: + dependencies: + '@solidjs/signals': 2.0.0-beta.12 + csstype: 3.1.3 + seroval: 1.5.2 + seroval-plugins: 1.5.2(seroval@1.5.2) + solid-js@2.0.0-beta.7: dependencies: '@solidjs/signals': 2.0.0-beta.7 @@ -12627,9 +12673,9 @@ snapshots: transitivePeerDependencies: - supports-color - solid-tippy@0.2.1(solid-js@2.0.0-beta.7)(tippy.js@6.3.7): + solid-tippy@0.2.1(solid-js@2.0.0-beta.11)(tippy.js@6.3.7): dependencies: - solid-js: 2.0.0-beta.7 + solid-js: 2.0.0-beta.11 tippy.js: 6.3.7 solid-transition-group@0.2.3(solid-js@1.9.7): From 4a2b0aec8887074acd3eae8363eab5a483df6766 Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Tue, 21 Apr 2026 10:40:55 -0400 Subject: [PATCH 03/31] Added additional adjustments and migrations for rootless, static-store and event-listener --- .../test/event-listener-map.test.ts | 8 +- .../test/event-listener.test.ts | 25 +- packages/rootless/src/index.ts | 17 +- packages/rootless/test/index.test.ts | 253 ++++++++++-------- packages/rootless/test/root-pool.test.ts | 29 +- packages/static-store/src/index.ts | 2 +- packages/static-store/test/index.test.ts | 59 ++-- packages/utils/src/index.ts | 2 +- 8 files changed, 229 insertions(+), 166 deletions(-) diff --git a/packages/event-listener/test/event-listener-map.test.ts b/packages/event-listener/test/event-listener-map.test.ts index e5d5ba7f6..bec42c979 100644 --- a/packages/event-listener/test/event-listener-map.test.ts +++ b/packages/event-listener/test/event-listener-map.test.ts @@ -1,6 +1,6 @@ import { dispatchFakeEvent, event_target } from "./setup.js"; import { describe, test, expect } from "vitest"; -import { createRoot, onMount } from "solid-js"; +import { createRoot, onSettled } from "solid-js"; import { createEventListenerMap } from "../src/index.js"; describe("createEventListenerMap", () => { @@ -34,7 +34,7 @@ describe("createEventListenerMap", () => { map_1: e => (captured1 = e), }); - onMount(() => { + onSettled(() => { dispatchFakeEvent("map_0", testEvent); dispatchFakeEvent("map_1", testEvent1); @@ -55,7 +55,7 @@ describe("createEventListenerMap", () => { map_1: e => (captured1 = e), }); - onMount(() => { + onSettled(() => { dispose(); dispatchFakeEvent("map_0", testEvent); @@ -74,7 +74,7 @@ describe("createEventListenerMap", () => { map_0: e => (captured = e), }); - onMount(() => { + onSettled(() => { dispatchFakeEvent("map_0", testEvent); expect(captured).toBe(testEvent); dispose(); diff --git a/packages/event-listener/test/event-listener.test.ts b/packages/event-listener/test/event-listener.test.ts index 53c9826ca..6e8fefe44 100644 --- a/packages/event-listener/test/event-listener.test.ts +++ b/packages/event-listener/test/event-listener.test.ts @@ -1,6 +1,6 @@ import { dispatchFakeEvent, event_target } from "./setup.js"; import { describe, test, expect } from "vitest"; -import { createRoot, createSignal, onMount } from "solid-js"; +import { createRoot, createSignal, flush, onSettled } from "solid-js"; import { createEventListener, createEventSignal, @@ -124,14 +124,17 @@ describe("createEventListener", () => { return dispose; }); + flush(); dispatchFakeEvent("test", testEvent); expect(captured_times).toBe(1); - setTarget([]); + setTarget([]); + flush(); dispatchFakeEvent("test", testEvent); expect(captured_times).toBe(1); - setTarget(event_target); + setTarget(event_target); + flush(); dispatchFakeEvent("test", testEvent); expect(captured_times).toBe(2); dispose(); @@ -177,7 +180,7 @@ describe("createEventListener", () => { count++; }); - onMount(() => { + onSettled(() => { dispatchFakeEvent("test3", testEvent); expect(count, "captured count on mount should be 1").toBe(1); @@ -197,7 +200,7 @@ describe("createEventSignal", () => { expect(lastEvent, "returned value is an accessor").toBeTypeOf("function"); expect(lastEvent(), "returned value is undefined").toBeTypeOf("undefined"); - onMount(() => { + onSettled(() => { dispatchFakeEvent("sig_test", testEvent); expect(lastEvent()).toBe(testEvent); dispose(); @@ -221,16 +224,16 @@ describe("eventListener directive", () => { dispatchFakeEvent("load", testEvent); expect(captured.length, "event are not listened before the first effect").toBe(0); - onMount(() => { - dispatchFakeEvent("load", testEvent); - expect(captured.length, "one event after mounted should be captured").toBe(1); - expect(captured[0], "event after mounted should be captured").toBe(testEvent); - }); - return dispose; }); + flush(); // run effect phase → adds event listener + dispatchFakeEvent("load", testEvent); + expect(captured.length, "one event after mounted should be captured").toBe(1); + expect(captured[0], "event after mounted should be captured").toBe(testEvent); + setProps(["load", e => captured2.push(e)]); + flush(); // re-run effect → removes old listener, adds new one dispatchFakeEvent("load", testEvent); expect(captured.length, "events should no longer be captured by the previous handler").toBe(1); diff --git a/packages/rootless/src/index.ts b/packages/rootless/src/index.ts index bb95bfcfe..af83bfc82 100644 --- a/packages/rootless/src/index.ts +++ b/packages/rootless/src/index.ts @@ -18,6 +18,7 @@ import { noop, createMicrotask, trueFn, + INTERNAL_OPTIONS, } from "@solid-primitives/utils"; /** @@ -134,7 +135,9 @@ export function createSingletonRoot( }); if (!disposeRoot) { - createRoot(dispose => (value = factory((disposeRoot = dispose))), detachedOwner); + runWithOwner(detachedOwner, () => + createRoot(dispose => (value = factory((disposeRoot = dispose)))), + ); } return value!; @@ -255,7 +258,7 @@ export function createRootPool( mapRoot: (dispose: VoidFunction, signal: Signal) => Root = factory.length > 1 ? (dispose, [args, set]) => { - const [active, setA] = createSignal(true); + const [active, setA] = createSignal(true, INTERNAL_OPTIONS); const root: Root = { dispose, set, @@ -291,9 +294,10 @@ export function createRootPool( disposeRoot = (root: Root) => { root.dispose(); root.dispose = noop; - if (root.active()) root.setA(false); + const idx = pool.indexOf(root); + if (idx === -1) root.setA(false); else { - pool[pool.indexOf(root)] = pool[--length]!; + pool[idx] = pool[--length]!; pool[length] = undefined!; } }; @@ -311,7 +315,10 @@ export function createRootPool( pool[length] = undefined!; root.set(() => arg); root.setA(true); - } else root = createRoot(dispose => mapRoot(dispose, createSignal(arg)), owner); + } else + root = runWithOwner(owner, () => + createRoot(dispose => mapRoot(dispose, createSignal(arg, INTERNAL_OPTIONS))), + ); onCleanup(() => cleanupRoot(root)); diff --git a/packages/rootless/test/index.test.ts b/packages/rootless/test/index.test.ts index 96c4d7680..602d103a2 100644 --- a/packages/rootless/test/index.test.ts +++ b/packages/rootless/test/index.test.ts @@ -1,10 +1,10 @@ import { describe, test, expect } from "vitest"; import { - createComputed, - createEffect, createMemo, createRoot, createSignal, + createTrackedEffect, + flush, getOwner, onCleanup, } from "solid-js"; @@ -16,33 +16,48 @@ import { } from "../src/index.js"; describe("createSubRoot", () => { - test("behaves like a root", () => - createSubRoot(dispose => { - const captured: any[] = []; - const [count, setCount] = createSignal(0); - createComputed(() => captured.push(count())); - setCount(1); - expect(captured, "before dispose()").toEqual([0, 1]); - dispose(); - setCount(2); - expect(captured, "after dispose()").toEqual([0, 1]); - })); + test("behaves like a root", () => { + const captured: any[] = []; + const [count, setCount] = createSignal(0); + const dispose = createSubRoot(dispose => { + createTrackedEffect(() => { captured.push(count()); }); + return dispose; + }); + flush(); + expect(captured).toEqual([0]); + setCount(1); + flush(); + expect(captured, "before dispose()").toEqual([0, 1]); + dispose(); + setCount(2); + flush(); + expect(captured, "after dispose()").toEqual([0, 1]); + }); - test("disposes with owner", () => - createRoot(dispose => { + test("disposes with owner", () => { + const captured: any[] = []; + const [count, setCount] = createSignal(0); + const dispose = createRoot(dispose => { createSubRoot(() => { - const captured: any[] = []; - const [count, setCount] = createSignal(0); - createComputed(() => captured.push(count())); - setCount(1); - expect(captured, "before dispose()").toEqual([0, 1]); - dispose(); - setCount(2); - expect(captured, "after dispose()").toEqual([0, 1]); + createTrackedEffect(() => { captured.push(count()); }); }); - })); + return dispose; + }); + flush(); + expect(captured).toEqual([0]); + setCount(1); + flush(); + expect(captured, "before dispose()").toEqual([0, 1]); + dispose(); + setCount(2); + flush(); + expect(captured, "after dispose()").toEqual([0, 1]); + }); test("many parent owners", () => { + const captured: any[] = []; + const [count, setCount] = createSignal(0); + const [o1, o2, dispose1, dispose2] = createRoot(dispose1 => { const o1 = getOwner(); const [o2, dispose2] = createRoot(dispose2 => { @@ -53,18 +68,20 @@ describe("createSubRoot", () => { createSubRoot( () => { - const captured: any[] = []; - const [count, setCount] = createSignal(0); - createComputed(() => captured.push(count())); - setCount(1); - expect(captured, "before dispose()").toEqual([0, 1]); - dispose1(); - setCount(2); - expect(captured, "after dispose()").toEqual([0, 1]); + createTrackedEffect(() => { captured.push(count()); }); }, o1, o2, ); + flush(); + expect(captured).toEqual([0]); + setCount(1); + flush(); + expect(captured, "before dispose()").toEqual([0, 1]); + dispose1(); + setCount(2); + flush(); + expect(captured, "after dispose()").toEqual([0, 1]); dispose2(); }); }); @@ -89,32 +106,44 @@ describe("createCallback", () => { }); describe("createDisposable", () => { - test("working with createComputed", () => { + test("working with createTrackedEffect", () => { const [count, setCount] = createSignal(0); const captured: any[] = []; - const dispose = createDisposable(() => createComputed(() => captured.push(count()))); + const dispose = createDisposable(() => + createTrackedEffect(() => { captured.push(count()); }), + ); + flush(); expect(captured).toEqual([0]); setCount(1); + flush(); expect(captured, "before dispose()").toEqual([0, 1]); dispose(); + setCount(2); + flush(); expect(captured, "after disposing").toEqual([0, 1]); }); - test("disposes together with owner", () => - createRoot(dispose => { - const [count, setCount] = createSignal(0); - const captured: any[] = []; - createDisposable(() => createComputed(() => captured.push(count()))); - expect(captured).toEqual([0]); - setCount(1); - expect(captured, "before dispose()").toEqual([0, 1]); - dispose(); - expect(captured, "after disposing").toEqual([0, 1]); - })); + test("disposes together with owner", () => { + const [count, setCount] = createSignal(0); + const captured: any[] = []; + const dispose = createRoot(dispose => { + createDisposable(() => createTrackedEffect(() => { captured.push(count()); })); + return dispose; + }); + flush(); + expect(captured).toEqual([0]); + setCount(1); + flush(); + expect(captured, "before dispose()").toEqual([0, 1]); + dispose(); + setCount(2); + flush(); + expect(captured, "after disposing").toEqual([0, 1]); + }); }); describe("createSharedRoot", () => { - test("single root", () => { + test("single root", async () => { const [count, setCount] = createSignal(0); let runs = 0; @@ -127,23 +156,33 @@ describe("createSharedRoot", () => { }); }); - createRoot(dispose => { - expect(useMemo()()).toBe(0); - expect(disposes).toBe(0); - expect(runs).toBe(1); - setCount(1); - expect(runs).toBe(2); - dispose(); - queueMicrotask(() => { - expect(disposes).toBe(1); - expect(runs).toBe(2); - setCount(2); - expect(runs).toBe(2); - }); + let dispose!: VoidFunction; + createRoot(d => { + const memo = useMemo(); + createTrackedEffect(() => void memo()); + dispose = d; }); + + flush(); + expect(disposes).toBe(0); + expect(runs).toBe(1); + + setCount(1); + flush(); + expect(runs).toBe(2); + + dispose(); + + await Promise.resolve(); + expect(disposes).toBe(1); + expect(runs).toBe(2); + + setCount(2); + flush(); + expect(runs).toBe(2); }); - test("multiple roots", () => { + test("multiple roots", async () => { const [count, setCount] = createSignal(0); let runs = 0; @@ -156,66 +195,70 @@ describe("createSharedRoot", () => { }); }); - const d1 = createRoot(dispose => { - expect(useMemo()()).toBe(0); - return dispose; + let d1!: VoidFunction; + createRoot(d => { + const memo = useMemo(); + createTrackedEffect(() => void memo()); + d1 = d; }); - const d2 = createRoot(dispose => { - createEffect(() => useMemo()()); - return dispose; + let d2!: VoidFunction; + createRoot(d => { + const memo = useMemo(); + createTrackedEffect(() => void memo()); + d2 = d; }); + flush(); expect(runs).toBe(1); + setCount(1); + flush(); expect(runs).toBe(2); d1(); - queueMicrotask(() => { - expect(runs).toBe(2); - expect(disposes).toBe(0); - setCount(2); - expect(runs).toBe(3); + await Promise.resolve(); + expect(runs).toBe(2); + expect(disposes).toBe(0); - setTimeout(() => { - d2(); - - setTimeout(() => { - expect(runs).toBe(3); - expect(disposes).toBe(1); - setCount(3); - expect(runs).toBe(3); - }); - }); - }); + setCount(2); + flush(); + expect(runs).toBe(3); + + d2(); + + await Promise.resolve(); + expect(runs).toBe(3); + expect(disposes).toBe(1); + + setCount(3); + flush(); + expect(runs).toBe(3); }); - test("multiple dependents disposing in one tick", () => - createRoot(dispose => { - let alive = false; - const track = createSingletonRoot(() => { - alive = true; - onCleanup(() => (alive = false)); - }); + test("multiple dependents disposing in one tick", async () => { + let alive = false; + const track = createSingletonRoot(() => { + alive = true; + onCleanup(() => (alive = false)); + }); - const d1 = createRoot(d1 => { - track(); - return d1; - }); + const d1 = createRoot(d1 => { + track(); + return d1; + }); - const d2 = createRoot(d2 => { - track(); - return d2; - }); + const d2 = createRoot(d2 => { + track(); + return d2; + }); - expect(alive).toBe(true); - d1(); - d2(); + expect(alive).toBe(true); + d1(); + d2(); - queueMicrotask(() => { - expect(alive).toBe(false); - dispose(); - }); - })); + await Promise.resolve(); + expect(alive).toBe(false); + }); }); diff --git a/packages/rootless/test/root-pool.test.ts b/packages/rootless/test/root-pool.test.ts index 4a8bba9f0..078822c7c 100644 --- a/packages/rootless/test/root-pool.test.ts +++ b/packages/rootless/test/root-pool.test.ts @@ -7,9 +7,9 @@ import { useContext, onCleanup, Accessor, - createEffect, - createComputed, + createTrackedEffect, createSignal, + flush, runWithOwner, } from "solid-js"; @@ -40,7 +40,7 @@ describe("createRootPool", () => { const root = createRoot(dispose => { let pool!: ReturnType; - Ctx.Provider({ + const ctxChildren = Ctx({ value: "root", get children() { pool = createRootPool(() => { @@ -49,7 +49,8 @@ describe("createRootPool", () => { }); return ""; }, - }); + }) as unknown as () => unknown; + ctxChildren(); // force lazy children evaluation to initialize pool inside context scope return { dispose, pool }; }); @@ -127,7 +128,7 @@ describe("createRootPool", () => { const pool = createRootPool((n: Accessor) => { roots++; - createComputed(() => { + createTrackedEffect(() => { capturedArgs.push(n()); }); onCleanup(() => { @@ -142,6 +143,7 @@ describe("createRootPool", () => { d(); }); + flush(); expect(capturedArgs).toEqual([0, 1, 2]); expect(roots).toBe(3); expect(cleanups).toEqual([]); @@ -150,6 +152,7 @@ describe("createRootPool", () => { pool(4); pool(5); + flush(); expect(capturedArgs).toEqual([0, 1, 2, 3, 4, 5]); expect(roots).toBe(3); expect(cleanups).toEqual([]); @@ -158,7 +161,7 @@ describe("createRootPool", () => { expect(capturedArgs).toEqual([0, 1, 2, 3, 4, 5]); expect(roots).toBe(3); - expect(cleanups).toEqual([5, 4, 3]); + expect(cleanups).toEqual([3, 4, 5]); }); }); @@ -175,9 +178,9 @@ describe("createRootPool", () => { d(); }); - expect(pool()).toBe(0); - expect(pool()).toBe(1); expect(pool()).toBe(2); + expect(pool()).toBe(1); + expect(pool()).toBe(0); dispose(); }); @@ -192,7 +195,7 @@ describe("createRootPool", () => { const pool = createRootPool((arg, active) => { const index = i++; - createEffect(() => { + createTrackedEffect(() => { if (active()) captured[index] = count(); }); }); @@ -210,36 +213,44 @@ describe("createRootPool", () => { }); }); + flush(); await Promise.resolve(); expect(captured).toEqual([1, 1]); setCount(2); + flush(); await Promise.resolve(); expect(captured).toEqual([2, 2]); disposeRoot(); setCount(3); + flush(); await Promise.resolve(); expect(captured).toEqual([3, 2]); setCount(4); + flush(); await Promise.resolve(); expect(captured).toEqual([4, 2]); runWithOwner(owner, pool); + flush(); await Promise.resolve(); expect(captured).toEqual([4, 4]); setCount(5); + flush(); await Promise.resolve(); expect(captured).toEqual([5, 5]); dispose(); + flush(); await Promise.resolve(); expect(captured).toEqual([5, 5]); setCount(6); + flush(); await Promise.resolve(); expect(captured).toEqual([5, 5]); }); diff --git a/packages/static-store/src/index.ts b/packages/static-store/src/index.ts index 28cd6b67b..4a1f2b651 100644 --- a/packages/static-store/src/index.ts +++ b/packages/static-store/src/index.ts @@ -153,7 +153,7 @@ export function createDerivedStaticStore( get() { let keyMemo = cache[key]; if (!keyMemo) { - if (!getListener()) return fnMemo()[key]; + if (!getObserver()) return fnMemo()[key]; runWithOwner(o, () => (cache[key] = keyMemo = createMemo(() => fnMemo()[key]))); } return keyMemo!(); diff --git a/packages/static-store/test/index.test.ts b/packages/static-store/test/index.test.ts index 886dcc856..f725da71b 100644 --- a/packages/static-store/test/index.test.ts +++ b/packages/static-store/test/index.test.ts @@ -1,4 +1,4 @@ -import { createEffect, createRoot, createSignal } from "solid-js"; +import { createRoot, createSignal, createTrackedEffect, flush } from "solid-js"; import { describe, expect, test } from "vitest"; import { createDerivedStaticStore, @@ -35,7 +35,7 @@ describe("createStaticStore", () => { setState("a", prev => prev + 1); expect(state.a).toBe(10); - createEffect(() => { + createTrackedEffect(() => { state.a; aUpdates++; }); @@ -43,13 +43,14 @@ describe("createStaticStore", () => { return { dispose, setState }; }); + flush(); expect(aUpdates).toBe(0); - setState({ - b: 3, - }); + setState({ b: 3 }); + flush(); expect(aUpdates).toBe(0); setState("a", 4); + flush(); expect(aUpdates).toBe(1); dispose(); @@ -69,45 +70,43 @@ describe("createHydratableStaticStore", () => { describe("createDerivedStaticStore", () => { test("individual keys only update when changed", () => { let aUpdates = -1; + const _shape = { a: 1, b: 2, c: 3, d: [0, 1, 2] }; + const [s, set] = createSignal(_shape); - const { dispose, set } = createRoot(dispose => { - const _shape = { a: 1, b: 2, c: 3, d: [0, 1, 2] }; - const [s, set] = createSignal(_shape); + const { dispose, state } = createRoot(dispose => { const state = createDerivedStaticStore(s); - expect(state).toEqual(_shape); - expect(_shape, "original input shouldn't be mutated").toEqual({ - a: 1, - b: 2, - c: 3, - d: [0, 1, 2], - }); - - set(p => ({ ...p, a: 9, d: [3, 2, 1] })); - - expect(state).toEqual({ a: 9, b: 2, c: 3, d: [3, 2, 1] }); - expect(_shape, "original input shouldn't be mutated").toEqual({ - a: 1, - b: 2, - c: 3, - d: [0, 1, 2], - }); - - createEffect(() => { + createTrackedEffect(() => { state.a; aUpdates++; }); - return { dispose, set }; + return { dispose, state }; }); + flush(); + expect(state).toEqual(_shape); expect(aUpdates).toBe(0); + set(p => ({ ...p, a: 9, d: [3, 2, 1] })); + flush(); + expect(state).toEqual({ a: 9, b: 2, c: 3, d: [3, 2, 1] }); + expect(_shape, "original input shouldn't be mutated").toEqual({ + a: 1, + b: 2, + c: 3, + d: [0, 1, 2], + }); + expect(aUpdates).toBe(1); + set(p => ({ ...p, b: 3 })); - expect(aUpdates).toBe(0); - set(p => ({ ...p, a: 4 })); + flush(); expect(aUpdates).toBe(1); + set(p => ({ ...p, a: 4 })); + flush(); + expect(aUpdates).toBe(2); + dispose(); }); }); diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 143364460..7c5e33cb1 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -42,7 +42,7 @@ export const falseFn: () => boolean = () => false; export const defaultEquals = isEqual; export const EQUALS_FALSE_OPTIONS = { equals: false } as const satisfies SignalOptions; -export const INTERNAL_OPTIONS = { pureWrite: true } as const satisfies SignalOptions; +export const INTERNAL_OPTIONS = { ownedWrite: true } as const satisfies SignalOptions; /** * Check if the value is an instance of ___ From 6a2a17ee5aac3c8b7fae58da774e2a5fddce4d79 Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Tue, 21 Apr 2026 10:42:51 -0400 Subject: [PATCH 04/31] Remove deprecated HTMLFrameSetElement type --- packages/event-listener/src/types.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/event-listener/src/types.ts b/packages/event-listener/src/types.ts index 6f1aa5082..38b4feaf5 100644 --- a/packages/event-listener/src/types.ts +++ b/packages/event-listener/src/types.ts @@ -7,7 +7,6 @@ export type TargetWithEventMap = | Document | XMLDocument | HTMLBodyElement - | HTMLFrameSetElement | HTMLMediaElement | HTMLVideoElement | HTMLElement @@ -64,9 +63,7 @@ export type EventMapOf = Target extends Window ? DocumentEventMap : Target extends HTMLBodyElement ? HTMLBodyElementEventMap - : Target extends HTMLFrameSetElement - ? HTMLFrameSetElementEventMap - : Target extends HTMLMediaElement + : Target extends HTMLMediaElement ? HTMLMediaElementEventMap : Target extends HTMLVideoElement ? HTMLVideoElementEventMap From 383da785d5a6c851eca7aade04d14890ee124746 Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Sat, 2 May 2026 15:03:13 -0400 Subject: [PATCH 05/31] Update to latest solid beta, ensure tests run and ran formatting --- package.json | 2 +- packages/audio/dev/index.tsx | 4 +- packages/event-listener/package.json | 8 +- packages/event-listener/src/types.ts | 192 ++++++++++---------- packages/geolocation/dev/client.tsx | 2 +- packages/media/README.md | 26 +-- packages/media/package.json | 8 +- packages/rootless/package.json | 8 +- packages/rootless/test/index.test.ts | 22 ++- packages/static-store/package.json | 8 +- packages/storage/tauri-storage/package.json | 6 +- packages/utils/package.json | 8 +- pnpm-lock.yaml | 108 ++++------- 13 files changed, 190 insertions(+), 212 deletions(-) diff --git a/package.json b/package.json index a2614f8c7..f30ee547a 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "rehype-highlight": "^7.0.2", "rehype-slug": "^6.0.0", "remark-gfm": "^4.0.1", - "solid-js": "^1.9.7", + "solid-js": "2.0.0-beta.11", "typescript": "^5.8.3", "vinxi": "^0.5.7", "vite": "^6.3.5", diff --git a/packages/audio/dev/index.tsx b/packages/audio/dev/index.tsx index b9dea4595..6df2ad096 100644 --- a/packages/audio/dev/index.tsx +++ b/packages/audio/dev/index.tsx @@ -76,7 +76,7 @@ const App: Component = () => {
-
(ref = el)} /> +
(ref = el)} />
{location()?.latitude}, {location()?.longitude}
diff --git a/packages/media/README.md b/packages/media/README.md index f6dfa8a96..4019b903a 100644 --- a/packages/media/README.md +++ b/packages/media/README.md @@ -82,19 +82,19 @@ const Example: Component = () => { createEffect( () => [matches.sm, matches.lg, matches.xl], ([sm, lg, xl]) => { - console.log(sm); // true when screen width >= 640px - console.log(lg); // true when screen width >= 1024px - console.log(xl); // true when screen width >= 1280px - } + console.log(sm); // true when screen width >= 640px + console.log(lg); // true when screen width >= 1024px + console.log(xl); // true when screen width >= 1280px + }, ); return (
Smallest
}> @@ -174,10 +174,7 @@ Provides a signal indicating if the user has requested dark color theme. The set import { createPrefersDark } from "@solid-primitives/media"; const prefersDark = createPrefersDark(); -createEffect( - prefersDark, - dark => console.log("prefers dark:", dark) -); +createEffect(prefersDark, dark => console.log("prefers dark:", dark)); ``` ### Server fallback @@ -198,10 +195,7 @@ This primitive provides a [singleton root](https://github.com/solidjs-community/ import { usePrefersDark } from "@solid-primitives/media"; const prefersDark = usePrefersDark(); -createEffect( - prefersDark, - dark => console.log("prefers dark:", dark) -); +createEffect(prefersDark, dark => console.log("prefers dark:", dark)); ``` > Note: `usePrefersDark` will deopt to `createPrefersDark` if used during hydration. (see issue [#310](https://github.com/solidjs-community/solid-primitives/issues/310)) diff --git a/packages/media/package.json b/packages/media/package.json index 79a3cd4d3..d18135efc 100644 --- a/packages/media/package.json +++ b/packages/media/package.json @@ -68,12 +68,12 @@ "@solid-primitives/utils": "workspace:^" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-beta.7", - "solid-js": "^2.0.0-beta.7" + "@solidjs/web": "^2.0.0-beta.11", + "solid-js": "^2.0.0-beta.11" }, "typesVersions": {}, "devDependencies": { - "@solidjs/web": "2.0.0-beta.7", - "solid-js": "2.0.0-beta.7" + "@solidjs/web": "2.0.0-beta.11", + "solid-js": "2.0.0-beta.11" } } diff --git a/packages/rootless/package.json b/packages/rootless/package.json index 0bb4329e2..07f1d27c7 100644 --- a/packages/rootless/package.json +++ b/packages/rootless/package.json @@ -56,11 +56,11 @@ "@solid-primitives/utils": "workspace:^" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-beta.7", - "solid-js": "^2.0.0-beta.7" + "@solidjs/web": "^2.0.0-beta.11", + "solid-js": "^2.0.0-beta.11" }, "devDependencies": { - "@solidjs/web": "2.0.0-beta.7", - "solid-js": "2.0.0-beta.7" + "@solidjs/web": "2.0.0-beta.11", + "solid-js": "2.0.0-beta.11" } } diff --git a/packages/rootless/test/index.test.ts b/packages/rootless/test/index.test.ts index 602d103a2..ad5bcfe68 100644 --- a/packages/rootless/test/index.test.ts +++ b/packages/rootless/test/index.test.ts @@ -20,7 +20,9 @@ describe("createSubRoot", () => { const captured: any[] = []; const [count, setCount] = createSignal(0); const dispose = createSubRoot(dispose => { - createTrackedEffect(() => { captured.push(count()); }); + createTrackedEffect(() => { + captured.push(count()); + }); return dispose; }); flush(); @@ -39,7 +41,9 @@ describe("createSubRoot", () => { const [count, setCount] = createSignal(0); const dispose = createRoot(dispose => { createSubRoot(() => { - createTrackedEffect(() => { captured.push(count()); }); + createTrackedEffect(() => { + captured.push(count()); + }); }); return dispose; }); @@ -68,7 +72,9 @@ describe("createSubRoot", () => { createSubRoot( () => { - createTrackedEffect(() => { captured.push(count()); }); + createTrackedEffect(() => { + captured.push(count()); + }); }, o1, o2, @@ -110,7 +116,9 @@ describe("createDisposable", () => { const [count, setCount] = createSignal(0); const captured: any[] = []; const dispose = createDisposable(() => - createTrackedEffect(() => { captured.push(count()); }), + createTrackedEffect(() => { + captured.push(count()); + }), ); flush(); expect(captured).toEqual([0]); @@ -127,7 +135,11 @@ describe("createDisposable", () => { const [count, setCount] = createSignal(0); const captured: any[] = []; const dispose = createRoot(dispose => { - createDisposable(() => createTrackedEffect(() => { captured.push(count()); })); + createDisposable(() => + createTrackedEffect(() => { + captured.push(count()); + }), + ); return dispose; }); flush(); diff --git a/packages/static-store/package.json b/packages/static-store/package.json index 181e2de4d..99b91e89a 100644 --- a/packages/static-store/package.json +++ b/packages/static-store/package.json @@ -51,14 +51,14 @@ "test:ssr": "pnpm run vitest --mode ssr" }, "peerDependencies": { - "@solidjs/web": "^2.0.0-beta.7", - "solid-js": "^2.0.0-beta.7" + "@solidjs/web": "^2.0.0-beta.11", + "solid-js": "^2.0.0-beta.11" }, "dependencies": { "@solid-primitives/utils": "workspace:^" }, "devDependencies": { - "@solidjs/web": "2.0.0-beta.7", - "solid-js": "2.0.0-beta.7" + "@solidjs/web": "2.0.0-beta.11", + "solid-js": "2.0.0-beta.11" } } diff --git a/packages/storage/tauri-storage/package.json b/packages/storage/tauri-storage/package.json index 770e52a6f..089805ac7 100644 --- a/packages/storage/tauri-storage/package.json +++ b/packages/storage/tauri-storage/package.json @@ -13,13 +13,13 @@ "license": "MIT", "dependencies": { "solid-js": "^1.7.8", - "@tauri-apps/api": ">=2.0.0-beta.0", - "@tauri-apps/plugin-store": ">=2.0.0-beta.0" + "@tauri-apps/api": ">=2.0.0", + "@tauri-apps/plugin-store": ">=2.0.0" }, "devDependencies": { "typescript": "^5.0.2", "vite": "^5.0.0", "vite-plugin-solid": "^2.8.0", - "@tauri-apps/cli": ">=2.0.0-beta.0" + "@tauri-apps/cli": ">=2.0.0" } } diff --git a/packages/utils/package.json b/packages/utils/package.json index 4aeea1e36..d1cca2667 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -61,11 +61,11 @@ "primitives" ], "peerDependencies": { - "@solidjs/web": "^2.0.0-beta.7", - "solid-js": "^2.0.0-beta.7" + "@solidjs/web": "^2.0.0-beta.11", + "solid-js": "^2.0.0-beta.11" }, "devDependencies": { - "@solidjs/web": "2.0.0-beta.7", - "solid-js": "2.0.0-beta.7" + "@solidjs/web": "2.0.0-beta.11", + "solid-js": "2.0.0-beta.11" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ae64ab1a..383f3222f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 1.0.1 '@solidjs/start': specifier: ^1.1.4 - version: 1.1.4(solid-js@1.9.7)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + version: 1.1.4(solid-js@2.0.0-beta.11)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) '@types/jsdom': specifier: ^21.1.7 version: 21.1.7 @@ -34,7 +34,7 @@ importers: version: 0.25.5 esbuild-plugin-solid: specifier: ^0.6.0 - version: 0.6.0(esbuild@0.25.5)(solid-js@1.9.7) + version: 0.6.0(esbuild@0.25.5)(solid-js@2.0.0-beta.11) eslint: specifier: ^9.28.0 version: 9.28.0(jiti@2.4.2) @@ -69,8 +69,8 @@ importers: specifier: ^4.0.1 version: 4.0.1 solid-js: - specifier: ^1.9.7 - version: 1.9.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 typescript: specifier: ^5.8.3 version: 5.8.3 @@ -82,7 +82,7 @@ importers: version: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + version: 2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) vitest: specifier: ^2.1.9 version: 2.1.9(@types/node@22.15.31)(jsdom@25.0.1)(sass@1.77.8)(terser@5.42.0) @@ -299,11 +299,11 @@ importers: version: link:../utils devDependencies: '@solidjs/web': - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11(solid-js@2.0.0-beta.11) solid-js: - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 packages/event-props: devDependencies: @@ -575,11 +575,11 @@ importers: version: link:../utils devDependencies: '@solidjs/web': - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11(solid-js@2.0.0-beta.11) solid-js: - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 packages/memo: dependencies: @@ -793,11 +793,11 @@ importers: version: link:../utils devDependencies: '@solidjs/web': - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11(solid-js@2.0.0-beta.11) solid-js: - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 packages/scheduled: devDependencies: @@ -894,11 +894,11 @@ importers: version: link:../utils devDependencies: '@solidjs/web': - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11(solid-js@2.0.0-beta.11) solid-js: - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 packages/storage: dependencies: @@ -986,11 +986,11 @@ importers: packages/utils: devDependencies: '@solidjs/web': - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7) + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11(solid-js@2.0.0-beta.11) solid-js: - specifier: 2.0.0-beta.7 - version: 2.0.0-beta.7 + specifier: 2.0.0-beta.11 + version: 2.0.0-beta.11 packages/virtual: dependencies: @@ -2609,9 +2609,6 @@ packages: '@solidjs/signals@2.0.0-beta.12': resolution: {integrity: sha512-xR8782xHcpcPnhENignNQNydn2tfaU68VP2MndsFT7VPQLG1RF4kAaWhrVWjvuzqY0cxOYcFeOTA3gInYHL50A==} - '@solidjs/signals@2.0.0-beta.7': - resolution: {integrity: sha512-SgK6oQlQZofz82LiEJ2RzT3sbs1lWTqFEtLoWjLsUo/dk1v9EoIFpJJlmvgkXvNugASWG+l1yOHa1a8lPamxug==} - '@solidjs/start@1.1.4': resolution: {integrity: sha512-ma1TBYqoTju87tkqrHExMReM5Z/+DTXSmi30CCTavtwuR73Bsn4rVGqm528p4sL2koRMfAuBMkrhuttjzhL68g==} peerDependencies: @@ -2622,12 +2619,6 @@ packages: peerDependencies: solid-js: ^2.0.0-beta.11 - '@solidjs/web@2.0.0-beta.7': - resolution: {integrity: sha512-m5VjmDBufrOX0ZKGbhvwkT0CPK0TbMxDbxVPDB1PH2evGbWXQZcUlrpFM1N8RBO5md3aR/T1PgMfnOjleJbrRg==} - peerDependencies: - '@solidjs/signals': ^2.0.0-beta.7 - solid-js: ^2.0.0-beta.7 - '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} @@ -6052,9 +6043,6 @@ packages: solid-js@2.0.0-beta.11: resolution: {integrity: sha512-PdvH/1ViGvfiT61Q0huePc5AmpzM9Q9mcg3nW5G6zmfLw2WxaecQNkkAn/PCx5sIr6LF0iDvkYVEYDmZuEFjHg==} - solid-js@2.0.0-beta.7: - resolution: {integrity: sha512-7JHs+BhLeZXoU+u9dG+eKnyxxfZyGpOuJEBbN/1XbHKO/WhxecdplOAurlg/YDllNWPhsbXqmLR1H2paqSu62g==} - solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} peerDependencies: @@ -8646,9 +8634,7 @@ snapshots: '@solidjs/signals@2.0.0-beta.12': {} - '@solidjs/signals@2.0.0-beta.7': {} - - '@solidjs/start@1.1.4(solid-js@1.9.7)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + '@solidjs/start@1.1.4(solid-js@2.0.0-beta.11)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@tanstack/server-functions-plugin': 1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) @@ -8661,10 +8647,10 @@ snapshots: seroval-plugins: 1.3.2(seroval@1.3.2) shiki: 1.29.2 source-map-js: 1.2.1 - terracotta: 1.0.6(solid-js@1.9.7) + terracotta: 1.0.6(solid-js@2.0.0-beta.11) tinyglobby: 0.2.14 vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) - vite-plugin-solid: 2.11.6(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + vite-plugin-solid: 2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - solid-js @@ -8677,13 +8663,6 @@ snapshots: seroval-plugins: 1.5.2(seroval@1.5.2) solid-js: 2.0.0-beta.11 - '@solidjs/web@2.0.0-beta.7(@solidjs/signals@2.0.0-beta.12)(solid-js@2.0.0-beta.7)': - dependencies: - '@solidjs/signals': 2.0.0-beta.12 - seroval: 1.5.2 - seroval-plugins: 1.5.2(seroval@1.5.2) - solid-js: 2.0.0-beta.7 - '@speed-highlight/core@1.2.7': {} '@supabase/auth-js@2.67.3': @@ -10048,13 +10027,13 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - esbuild-plugin-solid@0.6.0(esbuild@0.25.5)(solid-js@1.9.7): + esbuild-plugin-solid@0.6.0(esbuild@0.25.5)(solid-js@2.0.0-beta.11): dependencies: '@babel/core': 7.27.4 '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) babel-preset-solid: 1.9.6(@babel/core@7.27.4) esbuild: 0.25.5 - solid-js: 1.9.7 + solid-js: 2.0.0-beta.11 transitivePeerDependencies: - supports-color @@ -12657,19 +12636,12 @@ snapshots: seroval: 1.5.2 seroval-plugins: 1.5.2(seroval@1.5.2) - solid-js@2.0.0-beta.7: - dependencies: - '@solidjs/signals': 2.0.0-beta.7 - csstype: 3.1.3 - seroval: 1.5.2 - seroval-plugins: 1.5.2(seroval@1.5.2) - - solid-refresh@0.6.3(solid-js@1.9.7): + solid-refresh@0.6.3(solid-js@2.0.0-beta.11): dependencies: '@babel/generator': 7.27.5 '@babel/helper-module-imports': 7.27.1 '@babel/types': 7.27.6 - solid-js: 1.9.7 + solid-js: 2.0.0-beta.11 transitivePeerDependencies: - supports-color @@ -12684,9 +12656,9 @@ snapshots: '@solid-primitives/transition-group': 1.0.5(solid-js@1.9.7) solid-js: 1.9.7 - solid-use@0.9.1(solid-js@1.9.7): + solid-use@0.9.1(solid-js@2.0.0-beta.11): dependencies: - solid-js: 1.9.7 + solid-js: 2.0.0-beta.11 source-map-js@1.2.1: {} @@ -12907,10 +12879,10 @@ snapshots: term-size@2.2.1: {} - terracotta@1.0.6(solid-js@1.9.7): + terracotta@1.0.6(solid-js@2.0.0-beta.11): dependencies: - solid-js: 1.9.7 - solid-use: 0.9.1(solid-js@1.9.7) + solid-js: 2.0.0-beta.11 + solid-use: 0.9.1(solid-js@2.0.0-beta.11) terser@5.42.0: dependencies: @@ -13337,14 +13309,14 @@ snapshots: - supports-color - terser - vite-plugin-solid@2.11.6(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + vite-plugin-solid@2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): dependencies: '@babel/core': 7.27.4 '@types/babel__core': 7.20.5 babel-preset-solid: 1.9.6(@babel/core@7.27.4) merge-anything: 5.1.7 - solid-js: 1.9.7 - solid-refresh: 0.6.3(solid-js@1.9.7) + solid-js: 2.0.0-beta.11 + solid-refresh: 0.6.3(solid-js@2.0.0-beta.11) vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) transitivePeerDependencies: From 0ceb475ec9d78852c7eb0f1f6eabb1bdddea8604 Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Sun, 3 May 2026 14:37:24 -0400 Subject: [PATCH 06/31] Adds Solid 2.0 columns to README page --- README.md | 168 +++++++++++++++++++-------------------- scripts/update-readme.ts | 12 +-- 2 files changed, 91 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index a314bf4e7..22411b259 100644 --- a/README.md +++ b/README.md @@ -19,98 +19,98 @@ The goal of Solid Primitives is to wrap client and server side functionality to ## Primitives -|Name|Stage|Primitives|Size|NPM| -|----|----|----|----|----| +|Name|Stage|Primitives|Size|NPM|Solid 2| +|----|----|----|----|----|----| |

*Inputs*

| -|[active-element](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createActiveElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createactiveelement)
[createFocusSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createfocussignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/active-element?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/active-element)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/active-element?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/active-element)| -|[autofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[autofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#autofocus)
[createAutofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#createautofocus)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/autofocus?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/autofocus)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/autofocus?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/autofocus)| -|[input-mask](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createInputMask](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#createinputmask)
[createMaskPattern](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#createmaskpattern)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/input-mask?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/input-mask)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/input-mask?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/input-mask)| -|[keyboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[useKeyDownList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usekeydownlist)
[useCurrentlyHeldKey](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usecurrentlyheldkey)
[useKeyDownSequence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usekeydownsequence)
[createKeyHold](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#createkeyhold)
[createShortcut](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#createshortcut)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/keyboard?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/keyboard)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/keyboard?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/keyboard)| -|[mouse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMousePosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createmouseposition)
[createPositionToElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createpositiontoelement)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mouse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mouse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mouse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mouse)| -|[pointer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPointerListeners](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerlisteners)
[createPerPointerListeners](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createperpointerlisteners)
[createPointerPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerposition)
[createPointerList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerlist)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/pointer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/pointer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/pointer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/pointer)| -|[scroll](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#createscrollposition)
[useWindowScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#usewindowscrollposition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scroll?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scroll)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scroll?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scroll)| -|[selection](https://github.com/solidjs-community/solid-primitives/tree/main/packages/selection#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSelection](https://github.com/solidjs-community/solid-primitives/tree/main/packages/selection#createselection)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/selection?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/selection)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/selection?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/selection)| +|[active-element](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createActiveElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createactiveelement)
[createFocusSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createfocussignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/active-element?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/active-element)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/active-element?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/active-element)|✓| +|[autofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[autofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#autofocus)
[createAutofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#createautofocus)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/autofocus?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/autofocus)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/autofocus?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/autofocus)|| +|[input-mask](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createInputMask](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#createinputmask)
[createMaskPattern](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#createmaskpattern)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/input-mask?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/input-mask)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/input-mask?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/input-mask)|| +|[keyboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[useKeyDownList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usekeydownlist)
[useCurrentlyHeldKey](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usecurrentlyheldkey)
[useKeyDownSequence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usekeydownsequence)
[createKeyHold](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#createkeyhold)
[createShortcut](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#createshortcut)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/keyboard?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/keyboard)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/keyboard?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/keyboard)|| +|[mouse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMousePosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createmouseposition)
[createPositionToElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createpositiontoelement)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mouse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mouse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mouse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mouse)|✓| +|[pointer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPointerListeners](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerlisteners)
[createPerPointerListeners](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createperpointerlisteners)
[createPointerPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerposition)
[createPointerList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerlist)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/pointer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/pointer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/pointer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/pointer)|| +|[scroll](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#createscrollposition)
[useWindowScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#usewindowscrollposition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scroll?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scroll)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scroll?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scroll)|✓| +|[selection](https://github.com/solidjs-community/solid-primitives/tree/main/packages/selection#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSelection](https://github.com/solidjs-community/solid-primitives/tree/main/packages/selection#createselection)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/selection?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/selection)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/selection?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/selection)|| |

*Display & Media*

| -|[audio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeAudio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#makeaudio)
[makeAudioPlayer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#makeaudioplayer)
[createAudio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#createaudio)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/audio?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/audio)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/audio?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/audio)| -|[bounds](https://github.com/solidjs-community/solid-primitives/tree/main/packages/bounds#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createElementBounds](https://github.com/solidjs-community/solid-primitives/tree/main/packages/bounds#createelementbounds)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/bounds?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/bounds)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/bounds?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/bounds)| -|[devices](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDevices](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createdevices)
[createMicrophones](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createmicrophones)
[createSpeakers](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createspeakers)
[createCameras](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createcameras)
[createAccelerometer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createaccelerometer)
[createGyroscope](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#creategyroscope)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/devices?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/devices)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/devices?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/devices)| -|[filesystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createfilesystem)
[createSyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createsyncfilesystem)
[createAsyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createasyncfilesystem)
[makeNoFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenofilesystem)
[makeNoAsyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenoasyncfilesystem)
[makeVirtualFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makevirtualfilesystem)
[makeWebAccessFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makewebaccessfilesystem)
[makeNodeFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenodefilesystem)
[makeTauriFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#maketaurifilesystem)
[makeChokidarWatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makechokidarwatcher)
[rsync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#rsync)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/filesystem?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/filesystem)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/filesystem?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/filesystem)| -|[idle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/idle#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIdleTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/idle#createidletimer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/idle?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/idle)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/idle?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/idle)| -|[intersection-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIntersectionObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createintersectionobserver)
[createViewportObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createviewportobserver)
[createVisibilityObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createvisibilityobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/intersection-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/intersection-observer)| -|[media](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeMediaQueryListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#makemediaquerylistener)
[createMediaQuery](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#createmediaquery)
[createBreakpoints](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#createbreakpoints)
[usePrefersDark](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#useprefersdark)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/media?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/media)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/media?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/media)| -|[page-visibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPageVisibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#createpagevisibility)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/page-visibility)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/page-visibility)| -|[resize-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createResizeObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createresizeobserver)
[createWindowSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createwindowsize)
[createElementSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createelementsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resize-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resize-observer)| -|[styles](https://github.com/solidjs-community/solid-primitives/tree/main/packages/styles#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRemSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/styles#createremsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/styles?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/styles)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/styles?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/styles)| +|[audio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeAudio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#makeaudio)
[makeAudioPlayer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#makeaudioplayer)
[createAudio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#createaudio)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/audio?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/audio)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/audio?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/audio)|| +|[bounds](https://github.com/solidjs-community/solid-primitives/tree/main/packages/bounds#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createElementBounds](https://github.com/solidjs-community/solid-primitives/tree/main/packages/bounds#createelementbounds)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/bounds?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/bounds)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/bounds?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/bounds)|| +|[devices](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDevices](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createdevices)
[createMicrophones](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createmicrophones)
[createSpeakers](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createspeakers)
[createCameras](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createcameras)
[createAccelerometer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createaccelerometer)
[createGyroscope](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#creategyroscope)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/devices?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/devices)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/devices?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/devices)|| +|[filesystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createfilesystem)
[createSyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createsyncfilesystem)
[createAsyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createasyncfilesystem)
[makeNoFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenofilesystem)
[makeNoAsyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenoasyncfilesystem)
[makeVirtualFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makevirtualfilesystem)
[makeWebAccessFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makewebaccessfilesystem)
[makeNodeFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenodefilesystem)
[makeTauriFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#maketaurifilesystem)
[makeChokidarWatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makechokidarwatcher)
[rsync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#rsync)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/filesystem?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/filesystem)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/filesystem?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/filesystem)|| +|[idle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/idle#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIdleTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/idle#createidletimer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/idle?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/idle)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/idle?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/idle)|| +|[intersection-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIntersectionObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createintersectionobserver)
[createViewportObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createviewportobserver)
[createVisibilityObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createvisibilityobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/intersection-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/intersection-observer)|✓| +|[media](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeMediaQueryListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#makemediaquerylistener)
[createMediaQuery](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#createmediaquery)
[createBreakpoints](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#createbreakpoints)
[usePrefersDark](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#useprefersdark)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/media?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/media)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/media?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/media)|✓| +|[page-visibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPageVisibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#createpagevisibility)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/page-visibility)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/page-visibility)|✓| +|[resize-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createResizeObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createresizeobserver)
[createWindowSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createwindowsize)
[createElementSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createelementsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resize-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resize-observer)|✓| +|[styles](https://github.com/solidjs-community/solid-primitives/tree/main/packages/styles#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRemSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/styles#createremsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/styles?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/styles)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/styles?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/styles)|| |

*Browser APIs*

| -|[broadcast-channel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeBroadcastChannel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#makebroadcastchannel)
[createBroadcastChannel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#createbroadcastchannel)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/broadcast-channel?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/broadcast-channel)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/broadcast-channel?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/broadcast-channel)| -|[clipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[copyClipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#copyclipboard)
[writeClipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#writeclipboard)
[createClipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#createclipboard)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/clipboard?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/clipboard)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/clipboard?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/clipboard)| -|[event-listener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#createeventlistener)
[createEventSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#createeventsignal)
[createEventListenerMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#createeventlistenermap)
[WindowEventListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#windoweventlistener)
[DocumentEventListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#documenteventlistener)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-listener?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-listener)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-listener?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-listener)| -|[event-props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-props#createeventprops)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-props)| -|[fullscreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fullscreen#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFullscreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fullscreen#createfullscreen)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/fullscreen?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/fullscreen)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/fullscreen?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/fullscreen)| -|[geolocation](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGeolocation](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#creategeolocation)
[createGeolocationWatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#creategeolocationwatcher)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/geolocation?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/geolocation)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/geolocation?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/geolocation)| -|[mutation-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutation-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMutationObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutation-observer#createmutationobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mutation-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mutation-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mutation-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mutation-observer)| -|[permission](https://github.com/solidjs-community/solid-primitives/tree/main/packages/permission#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPermission](https://github.com/solidjs-community/solid-primitives/tree/main/packages/permission#createpermission)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/permission?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/permission)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/permission?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/permission)| -|[storage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makePersisted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makepersisted)
[cookieStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#cookiestorage)
[tauriStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#tauristorage)
[multiplexStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexstorage)
[storageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#storagesync)
[messageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#messagesync)
[wsSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#wssync)
[multiplexSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexsync)
[addClearMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addclearmethod)
[addWithOptionsMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addwithoptionsmethod)
[makeObjectStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makeobjectstorage)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/storage?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/storage)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/storage?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/storage)| -|[timer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#maketimer)
[createTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createtimer)
[createTimeoutLoop](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createtimeoutloop)
[createPolled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createpolled)
[createIntervalCounter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createintervalcounter)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/timer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/timer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/timer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/timer)| -|[upload](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFileUploader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#createfileuploader)
[createDropzone](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#createdropzone)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/upload?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/upload)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/upload?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/upload)| -|[workers](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createworker)
[createWorkerPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createworkerpool)
[createSignaledWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createsignaledworker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/workers?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/workers)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/workers?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/workers)| +|[broadcast-channel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeBroadcastChannel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#makebroadcastchannel)
[createBroadcastChannel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#createbroadcastchannel)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/broadcast-channel?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/broadcast-channel)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/broadcast-channel?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/broadcast-channel)|| +|[clipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[copyClipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#copyclipboard)
[writeClipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#writeclipboard)
[createClipboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/clipboard#createclipboard)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/clipboard?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/clipboard)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/clipboard?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/clipboard)|| +|[event-listener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#createeventlistener)
[createEventSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#createeventsignal)
[createEventListenerMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#createeventlistenermap)
[WindowEventListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#windoweventlistener)
[DocumentEventListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-listener#documenteventlistener)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-listener?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-listener)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-listener?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-listener)|✓| +|[event-props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-props#createeventprops)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-props)|| +|[fullscreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fullscreen#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFullscreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fullscreen#createfullscreen)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/fullscreen?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/fullscreen)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/fullscreen?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/fullscreen)|| +|[geolocation](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGeolocation](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#creategeolocation)
[createGeolocationWatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#creategeolocationwatcher)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/geolocation?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/geolocation)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/geolocation?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/geolocation)|| +|[mutation-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutation-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMutationObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutation-observer#createmutationobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mutation-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mutation-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mutation-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mutation-observer)|| +|[permission](https://github.com/solidjs-community/solid-primitives/tree/main/packages/permission#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPermission](https://github.com/solidjs-community/solid-primitives/tree/main/packages/permission#createpermission)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/permission?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/permission)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/permission?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/permission)|| +|[storage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makePersisted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makepersisted)
[cookieStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#cookiestorage)
[tauriStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#tauristorage)
[multiplexStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexstorage)
[storageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#storagesync)
[messageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#messagesync)
[wsSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#wssync)
[multiplexSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexsync)
[addClearMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addclearmethod)
[addWithOptionsMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addwithoptionsmethod)
[makeObjectStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makeobjectstorage)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/storage?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/storage)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/storage?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/storage)|✓| +|[timer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#maketimer)
[createTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createtimer)
[createTimeoutLoop](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createtimeoutloop)
[createPolled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createpolled)
[createIntervalCounter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createintervalcounter)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/timer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/timer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/timer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/timer)|| +|[upload](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFileUploader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#createfileuploader)
[createDropzone](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#createdropzone)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/upload?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/upload)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/upload?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/upload)|| +|[workers](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createworker)
[createWorkerPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createworkerpool)
[createSignaledWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createsignaledworker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/workers?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/workers)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/workers?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/workers)|| |

*Network*

| -|[connectivity](https://github.com/solidjs-community/solid-primitives/tree/main/packages/connectivity#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createConnectivitySignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/connectivity#createconnectivitysignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/connectivity?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/connectivity)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/connectivity?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/connectivity)| -|[cookies](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createServerCookie](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#createservercookie)
[createUserTheme](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#createusertheme)
[getCookiesString](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#getcookiesstring)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/cookies?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/cookies)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/cookies?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/cookies)| -|[fetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#createfetch)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/fetch?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/fetch)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/fetch?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/fetch)| -|[graphql](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGraphQLClient](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#creategraphqlclient)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/graphql?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/graphql)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/graphql?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/graphql)| -|[sse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeSSE](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#makesse)
[createSSE](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#createsse)
[makeSSEWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#makesseworker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/sse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/sse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/sse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/sse)| -|[stream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createstream)
[createAmplitudeStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createamplitudestream)
[createMediaPermissionRequest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createmediapermissionrequest)
[createAmplitudeFromStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createamplitudefromstream)
[createScreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createscreen)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/stream?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/stream)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/stream?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/stream)| -|[websocket](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makews)
[createWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createws)
[createWSState](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createwsstate)
[makeReconnectingWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makereconnectingws)
[createReconnectingWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createreconnectingws)
[makeHeartbeatWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makeheartbeatws)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/websocket?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/websocket)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/websocket?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/websocket)| +|[connectivity](https://github.com/solidjs-community/solid-primitives/tree/main/packages/connectivity#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createConnectivitySignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/connectivity#createconnectivitysignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/connectivity?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/connectivity)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/connectivity?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/connectivity)|| +|[cookies](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createServerCookie](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#createservercookie)
[createUserTheme](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#createusertheme)
[getCookiesString](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#getcookiesstring)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/cookies?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/cookies)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/cookies?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/cookies)|| +|[fetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#createfetch)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/fetch?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/fetch)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/fetch?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/fetch)|✓| +|[graphql](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGraphQLClient](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#creategraphqlclient)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/graphql?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/graphql)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/graphql?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/graphql)|✓| +|[sse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeSSE](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#makesse)
[createSSE](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#createsse)
[makeSSEWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#makesseworker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/sse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/sse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/sse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/sse)|| +|[stream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createstream)
[createAmplitudeStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createamplitudestream)
[createMediaPermissionRequest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createmediapermissionrequest)
[createAmplitudeFromStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createamplitudefromstream)
[createScreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createscreen)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/stream?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/stream)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/stream?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/stream)|| +|[websocket](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makews)
[createWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createws)
[createWSState](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createwsstate)
[makeReconnectingWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makereconnectingws)
[createReconnectingWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createreconnectingws)
[makeHeartbeatWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makeheartbeatws)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/websocket?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/websocket)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/websocket?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/websocket)|| |

*Control Flow*

| -|[context](https://github.com/solidjs-community/solid-primitives/tree/main/packages/context#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createContextProvider](https://github.com/solidjs-community/solid-primitives/tree/main/packages/context#createcontextprovider)
[MultiProvider](https://github.com/solidjs-community/solid-primitives/tree/main/packages/context#multiprovider)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/context?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/context)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/context?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/context)| -|[jsx-tokenizer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTokenizer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#createtokenizer)
[createToken](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#createtoken)
[resolveTokens](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#resolvetokens)
[isToken](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#istoken)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/jsx-tokenizer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/jsx-tokenizer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/jsx-tokenizer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/jsx-tokenizer)| -|[keyed](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[keyArray](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#keyarray)
[Key](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#key)
[Entries](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#entries)
[MapEntries](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#mapentries)
[SetValues](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#setvalues)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/keyed?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/keyed)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/keyed?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/keyed)| -|[list](https://github.com/solidjs-community/solid-primitives/tree/main/packages/list#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[listArray](https://github.com/solidjs-community/solid-primitives/tree/main/packages/list#listarray)
[List](https://github.com/solidjs-community/solid-primitives/tree/main/packages/list#list)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/list?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/list)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/list?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/list)| -|[match](https://github.com/solidjs-community/solid-primitives/tree/main/packages/match#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[MatchTag](https://github.com/solidjs-community/solid-primitives/tree/main/packages/match#matchtag)
[MatchValue](https://github.com/solidjs-community/solid-primitives/tree/main/packages/match#matchvalue)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/match?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/match)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/match?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/match)| -|[range](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[repeat](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#repeat)
[mapRange](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#maprange)
[indexRange](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#indexrange)
[Repeat](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#repeat)
[Range](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#range)
[IndexRange](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#indexrange)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/range?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/range)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/range?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/range)| -|[refs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[mergeRefs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#mergerefs)
[resolveElements](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#resolveelements)
[resolveFirst](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#resolvefirst)
[Ref](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#ref)
[Refs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#refs)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/refs?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/refs)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/refs?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/refs)| +|[context](https://github.com/solidjs-community/solid-primitives/tree/main/packages/context#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createContextProvider](https://github.com/solidjs-community/solid-primitives/tree/main/packages/context#createcontextprovider)
[MultiProvider](https://github.com/solidjs-community/solid-primitives/tree/main/packages/context#multiprovider)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/context?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/context)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/context?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/context)|| +|[jsx-tokenizer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTokenizer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#createtokenizer)
[createToken](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#createtoken)
[resolveTokens](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#resolvetokens)
[isToken](https://github.com/solidjs-community/solid-primitives/tree/main/packages/jsx-tokenizer#istoken)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/jsx-tokenizer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/jsx-tokenizer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/jsx-tokenizer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/jsx-tokenizer)|| +|[keyed](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[keyArray](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#keyarray)
[Key](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#key)
[Entries](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#entries)
[MapEntries](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#mapentries)
[SetValues](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#setvalues)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/keyed?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/keyed)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/keyed?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/keyed)|| +|[list](https://github.com/solidjs-community/solid-primitives/tree/main/packages/list#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[listArray](https://github.com/solidjs-community/solid-primitives/tree/main/packages/list#listarray)
[List](https://github.com/solidjs-community/solid-primitives/tree/main/packages/list#list)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/list?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/list)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/list?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/list)|| +|[match](https://github.com/solidjs-community/solid-primitives/tree/main/packages/match#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[MatchTag](https://github.com/solidjs-community/solid-primitives/tree/main/packages/match#matchtag)
[MatchValue](https://github.com/solidjs-community/solid-primitives/tree/main/packages/match#matchvalue)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/match?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/match)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/match?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/match)|| +|[range](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[repeat](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#repeat)
[mapRange](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#maprange)
[indexRange](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#indexrange)
[Repeat](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#repeat)
[Range](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#range)
[IndexRange](https://github.com/solidjs-community/solid-primitives/tree/main/packages/range#indexrange)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/range?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/range)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/range?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/range)|| +|[refs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[mergeRefs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#mergerefs)
[resolveElements](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#resolveelements)
[resolveFirst](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#resolvefirst)
[Ref](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#ref)
[Refs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#refs)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/refs?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/refs)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/refs?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/refs)|| |

*Utilities*

| -|[controlled-props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/controlled-props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createControlledProp](https://github.com/solidjs-community/solid-primitives/tree/main/packages/controlled-props#createcontrolledprop)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/controlled-props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/controlled-props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/controlled-props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/controlled-props)| -|[cursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createElementCursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#createelementcursor)
[createBodyCursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#createbodycursor)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/cursor?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/cursor)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/cursor?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/cursor)| -|[date](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdate)
[createDateNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdatenow)
[createTimeDifference](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifference)
[createTimeDifferenceFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifferencefromnow)
[createTimeAgo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimeago)
[createCountdown](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdown)
[createCountdownFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdownfromnow)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/date?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/date)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/date?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/date)| -|[event-bus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventBus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventbus)
[createEmitter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createemitter)
[createEventHub](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventhub)
[createEventStack](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventstack)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-bus?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-bus)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-bus?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-bus)| -|[event-dispatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-dispatcher#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventDispatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-dispatcher#createeventdispatcher)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-dispatcher?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-dispatcher)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-dispatcher?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-dispatcher)| -|[flux-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFluxStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createfluxstore)
[createFluxFactory](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createfluxfactory)
[createActions](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createactions)
[createAction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createaction)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/flux-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/flux-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/flux-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/flux-store)| -|[history](https://github.com/solidjs-community/solid-primitives/tree/main/packages/history#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createUndoHistory](https://github.com/solidjs-community/solid-primitives/tree/main/packages/history#createundohistory)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/history?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/history)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/history?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/history)| -|[i18n](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[flatten](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#flatten)
[resolveTemplate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#resolvetemplate)
[translator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#translator)
[scopedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#scopedtranslator)
[chainedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#chainedtranslator)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/i18n?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/i18n)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/i18n?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/i18n)| -|[platform](https://github.com/solidjs-community/solid-primitives/tree/main/packages/platform#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[List of variables](https://github.com/solidjs-community/solid-primitives/tree/main/packages/platform#list-of-variables)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/platform?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/platform)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/platform?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/platform)| -|[promise](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[promiseTimeout](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#promisetimeout)
[raceTimeout](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#racetimeout)
[until](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#until)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/promise?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/promise)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/promise?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/promise)| -|[props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[combineProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#combineprops)
[filterProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#filterprops)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/props)| -|[scheduled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[debounce](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#debounce)
[throttle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#throttle)
[scheduleIdle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#scheduleidle)
[leading](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#leading)
[createScheduled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#createscheduled)
[leadingAndTrailing](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#leadingandtrailing)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scheduled?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scheduled)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scheduled?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scheduled)| -|[script-loader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScriptLoader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#createscriptloader)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/script-loader?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/script-loader)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/script-loader?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/script-loader)| -|[share](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSocialShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createsocialshare)
[createWebShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createwebshare)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/share?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/share)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/share?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/share)| +|[controlled-props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/controlled-props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createControlledProp](https://github.com/solidjs-community/solid-primitives/tree/main/packages/controlled-props#createcontrolledprop)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/controlled-props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/controlled-props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/controlled-props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/controlled-props)|| +|[cursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createElementCursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#createelementcursor)
[createBodyCursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#createbodycursor)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/cursor?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/cursor)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/cursor?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/cursor)|| +|[date](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdate)
[createDateNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdatenow)
[createTimeDifference](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifference)
[createTimeDifferenceFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifferencefromnow)
[createTimeAgo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimeago)
[createCountdown](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdown)
[createCountdownFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdownfromnow)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/date?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/date)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/date?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/date)|✓| +|[event-bus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventBus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventbus)
[createEmitter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createemitter)
[createEventHub](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventhub)
[createEventStack](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventstack)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-bus?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-bus)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-bus?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-bus)|| +|[event-dispatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-dispatcher#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventDispatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-dispatcher#createeventdispatcher)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-dispatcher?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-dispatcher)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-dispatcher?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-dispatcher)|| +|[flux-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFluxStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createfluxstore)
[createFluxFactory](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createfluxfactory)
[createActions](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createactions)
[createAction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createaction)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/flux-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/flux-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/flux-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/flux-store)|| +|[history](https://github.com/solidjs-community/solid-primitives/tree/main/packages/history#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createUndoHistory](https://github.com/solidjs-community/solid-primitives/tree/main/packages/history#createundohistory)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/history?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/history)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/history?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/history)|| +|[i18n](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[flatten](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#flatten)
[resolveTemplate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#resolvetemplate)
[translator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#translator)
[scopedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#scopedtranslator)
[chainedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#chainedtranslator)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/i18n?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/i18n)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/i18n?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/i18n)|✓| +|[platform](https://github.com/solidjs-community/solid-primitives/tree/main/packages/platform#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[List of variables](https://github.com/solidjs-community/solid-primitives/tree/main/packages/platform#list-of-variables)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/platform?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/platform)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/platform?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/platform)|| +|[promise](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[promiseTimeout](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#promisetimeout)
[raceTimeout](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#racetimeout)
[until](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#until)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/promise?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/promise)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/promise?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/promise)|| +|[props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[combineProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#combineprops)
[filterProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#filterprops)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/props)|✓| +|[scheduled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[debounce](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#debounce)
[throttle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#throttle)
[scheduleIdle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#scheduleidle)
[leading](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#leading)
[createScheduled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#createscheduled)
[leadingAndTrailing](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#leadingandtrailing)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scheduled?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scheduled)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scheduled?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scheduled)|| +|[script-loader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScriptLoader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#createscriptloader)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/script-loader?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/script-loader)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/script-loader?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/script-loader)|✓| +|[share](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSocialShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createsocialshare)
[createWebShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createwebshare)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/share?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/share)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/share?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/share)|✓| |

*Reactivity*

| -|[db-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDbStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#createdbstore)
[supabaseAdapter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#supabaseadapter)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/db-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/db-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/db-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/db-store)| -|[deep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[trackDeep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackdeep)
[trackStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackstore)
[captureStoreUpdates](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#capturestoreupdates)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/deep?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/deep)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/deep?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/deep)| -|[destructure](https://github.com/solidjs-community/solid-primitives/tree/main/packages/destructure#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[destructure](https://github.com/solidjs-community/solid-primitives/tree/main/packages/destructure#destructure)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/destructure?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/destructure)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/destructure?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/destructure)| -|[immutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createImmutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#createimmutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/immutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/immutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/immutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/immutable)| -|[lifecycle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIsMounted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#createismounted)
[isHydrated](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#ishydrated)
[onElementConnect](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#onelementconnect)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/lifecycle?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/lifecycle)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/lifecycle?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/lifecycle)| -|[map](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[ReactiveMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#reactivemap)
[ReactiveWeakMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#reactiveweakmap)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/map?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/map)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/map?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/map)| -|[memo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createLatest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatest)
[createLatestMany](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatestmany)
[createWritableMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createwritablememo)
[createLazyMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlazymemo)
[createPureReaction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createpurereaction)
[createMemoCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#creatememocache)
[createReducer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createreducer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/memo?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/memo)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/memo?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/memo)| -|[mutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#createmutable)
[modifyMutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#modifymutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mutable)| -|[resource](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createAggregated](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createaggregated)
[createDeepSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createdeepsignal)
[makeAbortable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makeabortable)
[createAbortable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createabortable)
[makeCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makecache)
[makeRetrying](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makeretrying)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resource?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resource)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resource?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resource)| -|[rootless](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSubRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsubroot)
[createCallback](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createcallback)
[createDisposable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createdisposable)
[createSharedRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsharedroot)
[createRootPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createrootpool)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/rootless?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/rootless)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/rootless?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/rootless)| -|[set](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[ReactiveSet](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#reactiveset)
[ReactiveWeakSet](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#reactiveweakset)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/set?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/set)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/set?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/set)| -|[signal-builders](https://github.com/solidjs-community/solid-primitives/tree/main/packages/signal-builders#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[List of builders](https://github.com/solidjs-community/solid-primitives/tree/main/packages/signal-builders#list-of-builders)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/signal-builders?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/signal-builders)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/signal-builders?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/signal-builders)| -|[state-machine](https://github.com/solidjs-community/solid-primitives/tree/main/packages/state-machine#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMachine](https://github.com/solidjs-community/solid-primitives/tree/main/packages/state-machine#createmachine)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/state-machine?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/state-machine)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/state-machine?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/state-machine)| -|[static-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createstaticstore)
[createDerivedStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createderivedstaticstore)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/static-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/static-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/static-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/static-store)| -|[trigger](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTrigger](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#createtrigger)
[createTriggerCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#createtriggercache)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/trigger?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/trigger)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/trigger?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/trigger)| +|[db-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDbStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#createdbstore)
[supabaseAdapter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#supabaseadapter)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/db-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/db-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/db-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/db-store)|| +|[deep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[trackDeep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackdeep)
[trackStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackstore)
[captureStoreUpdates](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#capturestoreupdates)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/deep?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/deep)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/deep?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/deep)|| +|[destructure](https://github.com/solidjs-community/solid-primitives/tree/main/packages/destructure#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[destructure](https://github.com/solidjs-community/solid-primitives/tree/main/packages/destructure#destructure)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/destructure?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/destructure)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/destructure?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/destructure)|| +|[immutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createImmutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/immutable#createimmutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/immutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/immutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/immutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/immutable)|| +|[lifecycle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIsMounted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#createismounted)
[isHydrated](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#ishydrated)
[onElementConnect](https://github.com/solidjs-community/solid-primitives/tree/main/packages/lifecycle#onelementconnect)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/lifecycle?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/lifecycle)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/lifecycle?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/lifecycle)|| +|[map](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[ReactiveMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#reactivemap)
[ReactiveWeakMap](https://github.com/solidjs-community/solid-primitives/tree/main/packages/map#reactiveweakmap)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/map?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/map)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/map?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/map)|| +|[memo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createLatest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatest)
[createLatestMany](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatestmany)
[createWritableMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createwritablememo)
[createLazyMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlazymemo)
[createPureReaction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createpurereaction)
[createMemoCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#creatememocache)
[createReducer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createreducer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/memo?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/memo)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/memo?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/memo)|| +|[mutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#createmutable)
[modifyMutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#modifymutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mutable)|| +|[resource](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createAggregated](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createaggregated)
[createDeepSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createdeepsignal)
[makeAbortable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makeabortable)
[createAbortable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createabortable)
[makeCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makecache)
[makeRetrying](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makeretrying)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resource?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resource)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resource?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resource)|| +|[rootless](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSubRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsubroot)
[createCallback](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createcallback)
[createDisposable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createdisposable)
[createSharedRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsharedroot)
[createRootPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createrootpool)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/rootless?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/rootless)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/rootless?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/rootless)|| +|[set](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[ReactiveSet](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#reactiveset)
[ReactiveWeakSet](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#reactiveweakset)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/set?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/set)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/set?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/set)|| +|[signal-builders](https://github.com/solidjs-community/solid-primitives/tree/main/packages/signal-builders#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[List of builders](https://github.com/solidjs-community/solid-primitives/tree/main/packages/signal-builders#list-of-builders)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/signal-builders?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/signal-builders)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/signal-builders?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/signal-builders)|| +|[state-machine](https://github.com/solidjs-community/solid-primitives/tree/main/packages/state-machine#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMachine](https://github.com/solidjs-community/solid-primitives/tree/main/packages/state-machine#createmachine)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/state-machine?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/state-machine)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/state-machine?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/state-machine)|| +|[static-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createstaticstore)
[createDerivedStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createderivedstaticstore)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/static-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/static-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/static-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/static-store)|| +|[trigger](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTrigger](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#createtrigger)
[createTriggerCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#createtriggercache)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/trigger?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/trigger)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/trigger?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/trigger)|| |

*UI Patterns*

| -|[marker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/marker#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMarker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/marker#createmarker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/marker?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/marker)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/marker?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/marker)| -|[masonry](https://github.com/solidjs-community/solid-primitives/tree/main/packages/masonry#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMasonry](https://github.com/solidjs-community/solid-primitives/tree/main/packages/masonry#createmasonry)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/masonry?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/masonry)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/masonry?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/masonry)| -|[pagination](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPagination](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#createpagination)
[createSegment](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#createsegment)
[createInfiniteScroll](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#createinfinitescroll)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/pagination?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/pagination)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/pagination?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/pagination)| -|[virtual](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createVirutalList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#createvirutallist)
[VirtualList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#virtuallist)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/virtual?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/virtual)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/virtual?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/virtual)| +|[marker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/marker#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMarker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/marker#createmarker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/marker?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/marker)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/marker?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/marker)|| +|[masonry](https://github.com/solidjs-community/solid-primitives/tree/main/packages/masonry#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMasonry](https://github.com/solidjs-community/solid-primitives/tree/main/packages/masonry#createmasonry)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/masonry?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/masonry)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/masonry?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/masonry)|| +|[pagination](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPagination](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#createpagination)
[createSegment](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#createsegment)
[createInfiniteScroll](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pagination#createinfinitescroll)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/pagination?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/pagination)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/pagination?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/pagination)|| +|[virtual](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createVirutalList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#createvirutallist)
[VirtualList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#virtuallist)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/virtual?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/virtual)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/virtual?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/virtual)|| |

*Animation*

| -|[presence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/presence#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPresence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/presence#createpresence)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/presence?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/presence)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/presence?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/presence)| -|[raf](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRAF](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createraf)
[createMs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createms)
[targetFPS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#targetfps)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/raf?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/raf)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/raf?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/raf)| -|[spring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSpring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#createspring)
[createDerivedSpring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#createderivedspring)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/spring?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/spring)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/spring?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/spring)| -|[transition-group](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSwitchTransition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createswitchtransition)
[createListTransition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createlisttransition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/transition-group?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/transition-group)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/transition-group?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/transition-group)| -|[tween](https://github.com/solidjs-community/solid-primitives/tree/main/packages/tween#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTween](https://github.com/solidjs-community/solid-primitives/tree/main/packages/tween#createtween)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/tween?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/tween)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/tween?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/tween)| +|[presence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/presence#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPresence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/presence#createpresence)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/presence?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/presence)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/presence?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/presence)|| +|[raf](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRAF](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createraf)
[createMs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createms)
[targetFPS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#targetfps)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/raf?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/raf)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/raf?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/raf)|✓| +|[spring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSpring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#createspring)
[createDerivedSpring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#createderivedspring)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/spring?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/spring)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/spring?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/spring)|| +|[transition-group](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSwitchTransition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createswitchtransition)
[createListTransition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createlisttransition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/transition-group?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/transition-group)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/transition-group?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/transition-group)|| +|[tween](https://github.com/solidjs-community/solid-primitives/tree/main/packages/tween#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTween](https://github.com/solidjs-community/solid-primitives/tree/main/packages/tween#createtween)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/tween?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/tween)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/tween?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/tween)|| diff --git a/scripts/update-readme.ts b/scripts/update-readme.ts index fccc76e81..6f274b75a 100644 --- a/scripts/update-readme.ts +++ b/scripts/update-readme.ts @@ -7,9 +7,10 @@ import * as utils from "./utils/index.js"; type PackageData = { Name: string; Stage: string | number; + Primitives: string; Size: string; NPM: string; - Primitives: string; + "Solid 2": string; }; // eslint-disable-next-line no-console @@ -57,6 +58,7 @@ const rootDependencies: string[] = [ data.Primitives = module.primitive.list .map(prim => `[${prim}](${githubURL}${module.name}#${prim.replace(/ /g, "-").toLowerCase()})`) .join("
"); + data["Solid 2"] = parseInt(module.version.split(".")[0]!) >= 2 ? "✓" : ""; // Merge the package into the correct category const cat = categories[module.primitive.category]; categories[module.primitive.category] = cat ? [...cat, data] : [data]; @@ -71,11 +73,11 @@ const rootDependencies: string[] = [ // Some MD jousting to get the table to render nicely // with consistent columns md += `|

*${category}*

|\n`; - md += tablemark(items, ["Name", "Stage", "Primitives", "Size", "NPM"]) - .replace("|Name|Stage|Primitives|Size|NPM|\n", "") - .replace("|----|----|----|----|----|\n", ""); + md += tablemark(items, ["Name", "Stage", "Primitives", "Size", "NPM", "Solid 2"]) + .replace("|Name|Stage|Primitives|Size|NPM|Solid 2|\n", "") + .replace("|----|----|----|----|----|----|\n", ""); return md; - }, "|Name|Stage|Primitives|Size|NPM|\n|----|----|----|----|----|\n"); + }, "|Name|Stage|Primitives|Size|NPM|Solid 2|\n|----|----|----|----|----|----|\n"); readme = utils.insertTextBetweenComments(readme, table, "INSERT-PRIMITIVES-TABLE"); From 25d10f8842d8661e48be09e98503e76adb04170f Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Sun, 3 May 2026 14:39:23 -0400 Subject: [PATCH 07/31] Oops add different method for checking Solid 2 --- README.md | 34 +++++++++++++++---------------- scripts/update-readme.ts | 2 +- scripts/utils/get-modules-data.ts | 2 ++ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 22411b259..c087f615e 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,13 @@ The goal of Solid Primitives is to wrap client and server side functionality to |Name|Stage|Primitives|Size|NPM|Solid 2| |----|----|----|----|----|----| |

*Inputs*

| -|[active-element](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createActiveElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createactiveelement)
[createFocusSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createfocussignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/active-element?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/active-element)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/active-element?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/active-element)|✓| +|[active-element](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createActiveElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createactiveelement)
[createFocusSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/active-element#createfocussignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/active-element?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/active-element)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/active-element?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/active-element)|| |[autofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[autofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#autofocus)
[createAutofocus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/autofocus#createautofocus)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/autofocus?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/autofocus)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/autofocus?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/autofocus)|| |[input-mask](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createInputMask](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#createinputmask)
[createMaskPattern](https://github.com/solidjs-community/solid-primitives/tree/main/packages/input-mask#createmaskpattern)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/input-mask?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/input-mask)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/input-mask?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/input-mask)|| |[keyboard](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[useKeyDownList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usekeydownlist)
[useCurrentlyHeldKey](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usecurrentlyheldkey)
[useKeyDownSequence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#usekeydownsequence)
[createKeyHold](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#createkeyhold)
[createShortcut](https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#createshortcut)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/keyboard?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/keyboard)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/keyboard?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/keyboard)|| -|[mouse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMousePosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createmouseposition)
[createPositionToElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createpositiontoelement)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mouse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mouse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mouse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mouse)|✓| +|[mouse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMousePosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createmouseposition)
[createPositionToElement](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mouse#createpositiontoelement)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mouse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mouse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mouse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mouse)|| |[pointer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPointerListeners](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerlisteners)
[createPerPointerListeners](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createperpointerlisteners)
[createPointerPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerposition)
[createPointerList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/pointer#createpointerlist)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/pointer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/pointer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/pointer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/pointer)|| -|[scroll](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#createscrollposition)
[useWindowScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#usewindowscrollposition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scroll?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scroll)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scroll?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scroll)|✓| +|[scroll](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#createscrollposition)
[useWindowScrollPosition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scroll#usewindowscrollposition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scroll?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scroll)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scroll?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scroll)|| |[selection](https://github.com/solidjs-community/solid-primitives/tree/main/packages/selection#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSelection](https://github.com/solidjs-community/solid-primitives/tree/main/packages/selection#createselection)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/selection?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/selection)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/selection?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/selection)|| |

*Display & Media*

| |[audio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeAudio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#makeaudio)
[makeAudioPlayer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#makeaudioplayer)
[createAudio](https://github.com/solidjs-community/solid-primitives/tree/main/packages/audio#createaudio)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/audio?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/audio)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/audio?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/audio)|| @@ -36,10 +36,10 @@ The goal of Solid Primitives is to wrap client and server side functionality to |[devices](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDevices](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createdevices)
[createMicrophones](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createmicrophones)
[createSpeakers](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createspeakers)
[createCameras](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createcameras)
[createAccelerometer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#createaccelerometer)
[createGyroscope](https://github.com/solidjs-community/solid-primitives/tree/main/packages/devices#creategyroscope)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/devices?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/devices)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/devices?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/devices)|| |[filesystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createfilesystem)
[createSyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createsyncfilesystem)
[createAsyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#createasyncfilesystem)
[makeNoFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenofilesystem)
[makeNoAsyncFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenoasyncfilesystem)
[makeVirtualFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makevirtualfilesystem)
[makeWebAccessFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makewebaccessfilesystem)
[makeNodeFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makenodefilesystem)
[makeTauriFileSystem](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#maketaurifilesystem)
[makeChokidarWatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#makechokidarwatcher)
[rsync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/filesystem#rsync)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/filesystem?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/filesystem)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/filesystem?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/filesystem)|| |[idle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/idle#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIdleTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/idle#createidletimer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/idle?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/idle)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/idle?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/idle)|| -|[intersection-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIntersectionObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createintersectionobserver)
[createViewportObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createviewportobserver)
[createVisibilityObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createvisibilityobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/intersection-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/intersection-observer)|✓| +|[intersection-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createIntersectionObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createintersectionobserver)
[createViewportObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createviewportobserver)
[createVisibilityObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/intersection-observer#createvisibilityobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/intersection-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/intersection-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/intersection-observer)|| |[media](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeMediaQueryListener](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#makemediaquerylistener)
[createMediaQuery](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#createmediaquery)
[createBreakpoints](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#createbreakpoints)
[usePrefersDark](https://github.com/solidjs-community/solid-primitives/tree/main/packages/media#useprefersdark)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/media?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/media)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/media?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/media)|✓| -|[page-visibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPageVisibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#createpagevisibility)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/page-visibility)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/page-visibility)|✓| -|[resize-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createResizeObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createresizeobserver)
[createWindowSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createwindowsize)
[createElementSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createelementsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resize-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resize-observer)|✓| +|[page-visibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPageVisibility](https://github.com/solidjs-community/solid-primitives/tree/main/packages/page-visibility#createpagevisibility)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/page-visibility)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/page-visibility?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/page-visibility)|| +|[resize-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createResizeObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createresizeobserver)
[createWindowSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createwindowsize)
[createElementSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resize-observer#createelementsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resize-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resize-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resize-observer)|| |[styles](https://github.com/solidjs-community/solid-primitives/tree/main/packages/styles#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRemSize](https://github.com/solidjs-community/solid-primitives/tree/main/packages/styles#createremsize)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/styles?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/styles)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/styles?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/styles)|| |

*Browser APIs*

| |[broadcast-channel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeBroadcastChannel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#makebroadcastchannel)
[createBroadcastChannel](https://github.com/solidjs-community/solid-primitives/tree/main/packages/broadcast-channel#createbroadcastchannel)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/broadcast-channel?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/broadcast-channel)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/broadcast-channel?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/broadcast-channel)|| @@ -50,15 +50,15 @@ The goal of Solid Primitives is to wrap client and server side functionality to |[geolocation](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGeolocation](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#creategeolocation)
[createGeolocationWatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/geolocation#creategeolocationwatcher)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/geolocation?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/geolocation)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/geolocation?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/geolocation)|| |[mutation-observer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutation-observer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMutationObserver](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutation-observer#createmutationobserver)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mutation-observer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mutation-observer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mutation-observer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mutation-observer)|| |[permission](https://github.com/solidjs-community/solid-primitives/tree/main/packages/permission#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPermission](https://github.com/solidjs-community/solid-primitives/tree/main/packages/permission#createpermission)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/permission?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/permission)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/permission?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/permission)|| -|[storage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makePersisted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makepersisted)
[cookieStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#cookiestorage)
[tauriStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#tauristorage)
[multiplexStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexstorage)
[storageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#storagesync)
[messageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#messagesync)
[wsSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#wssync)
[multiplexSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexsync)
[addClearMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addclearmethod)
[addWithOptionsMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addwithoptionsmethod)
[makeObjectStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makeobjectstorage)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/storage?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/storage)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/storage?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/storage)|✓| +|[storage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makePersisted](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makepersisted)
[cookieStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#cookiestorage)
[tauriStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#tauristorage)
[multiplexStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexstorage)
[storageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#storagesync)
[messageSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#messagesync)
[wsSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#wssync)
[multiplexSync](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#multiplexsync)
[addClearMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addclearmethod)
[addWithOptionsMethod](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#addwithoptionsmethod)
[makeObjectStorage](https://github.com/solidjs-community/solid-primitives/tree/main/packages/storage#makeobjectstorage)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/storage?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/storage)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/storage?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/storage)|| |[timer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#maketimer)
[createTimer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createtimer)
[createTimeoutLoop](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createtimeoutloop)
[createPolled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createpolled)
[createIntervalCounter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/timer#createintervalcounter)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/timer?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/timer)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/timer?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/timer)|| |[upload](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFileUploader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#createfileuploader)
[createDropzone](https://github.com/solidjs-community/solid-primitives/tree/main/packages/upload#createdropzone)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/upload?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/upload)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/upload?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/upload)|| |[workers](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createworker)
[createWorkerPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createworkerpool)
[createSignaledWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/workers#createsignaledworker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/workers?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/workers)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/workers?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/workers)|| |

*Network*

| |[connectivity](https://github.com/solidjs-community/solid-primitives/tree/main/packages/connectivity#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createConnectivitySignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/connectivity#createconnectivitysignal)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/connectivity?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/connectivity)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/connectivity?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/connectivity)|| |[cookies](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createServerCookie](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#createservercookie)
[createUserTheme](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#createusertheme)
[getCookiesString](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cookies#getcookiesstring)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/cookies?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/cookies)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/cookies?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/cookies)|| -|[fetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#createfetch)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/fetch?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/fetch)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/fetch?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/fetch)|✓| -|[graphql](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGraphQLClient](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#creategraphqlclient)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/graphql?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/graphql)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/graphql?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/graphql)|✓| +|[fetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFetch](https://github.com/solidjs-community/solid-primitives/tree/main/packages/fetch#createfetch)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/fetch?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/fetch)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/fetch?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/fetch)|| +|[graphql](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createGraphQLClient](https://github.com/solidjs-community/solid-primitives/tree/main/packages/graphql#creategraphqlclient)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/graphql?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/graphql)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/graphql?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/graphql)|| |[sse](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeSSE](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#makesse)
[createSSE](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#createsse)
[makeSSEWorker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/sse#makesseworker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/sse?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/sse)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/sse?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/sse)|| |[stream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createstream)
[createAmplitudeStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createamplitudestream)
[createMediaPermissionRequest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createmediapermissionrequest)
[createAmplitudeFromStream](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createamplitudefromstream)
[createScreen](https://github.com/solidjs-community/solid-primitives/tree/main/packages/stream#createscreen)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/stream?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/stream)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/stream?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/stream)|| |[websocket](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[makeWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makews)
[createWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createws)
[createWSState](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createwsstate)
[makeReconnectingWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makereconnectingws)
[createReconnectingWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#createreconnectingws)
[makeHeartbeatWS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/websocket#makeheartbeatws)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/websocket?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/websocket)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/websocket?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/websocket)|| @@ -73,18 +73,18 @@ The goal of Solid Primitives is to wrap client and server side functionality to |

*Utilities*

| |[controlled-props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/controlled-props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createControlledProp](https://github.com/solidjs-community/solid-primitives/tree/main/packages/controlled-props#createcontrolledprop)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/controlled-props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/controlled-props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/controlled-props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/controlled-props)|| |[cursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createElementCursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#createelementcursor)
[createBodyCursor](https://github.com/solidjs-community/solid-primitives/tree/main/packages/cursor#createbodycursor)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/cursor?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/cursor)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/cursor?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/cursor)|| -|[date](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdate)
[createDateNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdatenow)
[createTimeDifference](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifference)
[createTimeDifferenceFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifferencefromnow)
[createTimeAgo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimeago)
[createCountdown](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdown)
[createCountdownFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdownfromnow)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/date?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/date)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/date?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/date)|✓| +|[date](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdate)
[createDateNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createdatenow)
[createTimeDifference](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifference)
[createTimeDifferenceFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimedifferencefromnow)
[createTimeAgo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createtimeago)
[createCountdown](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdown)
[createCountdownFromNow](https://github.com/solidjs-community/solid-primitives/tree/main/packages/date#createcountdownfromnow)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/date?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/date)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/date?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/date)|| |[event-bus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventBus](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventbus)
[createEmitter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createemitter)
[createEventHub](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventhub)
[createEventStack](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-bus#createeventstack)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-bus?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-bus)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-bus?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-bus)|| |[event-dispatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-dispatcher#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createEventDispatcher](https://github.com/solidjs-community/solid-primitives/tree/main/packages/event-dispatcher#createeventdispatcher)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/event-dispatcher?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/event-dispatcher)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/event-dispatcher?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/event-dispatcher)|| |[flux-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createFluxStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createfluxstore)
[createFluxFactory](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createfluxfactory)
[createActions](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createactions)
[createAction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/flux-store#createaction)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/flux-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/flux-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/flux-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/flux-store)|| |[history](https://github.com/solidjs-community/solid-primitives/tree/main/packages/history#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createUndoHistory](https://github.com/solidjs-community/solid-primitives/tree/main/packages/history#createundohistory)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/history?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/history)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/history?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/history)|| -|[i18n](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[flatten](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#flatten)
[resolveTemplate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#resolvetemplate)
[translator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#translator)
[scopedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#scopedtranslator)
[chainedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#chainedtranslator)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/i18n?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/i18n)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/i18n?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/i18n)|✓| +|[i18n](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[flatten](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#flatten)
[resolveTemplate](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#resolvetemplate)
[translator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#translator)
[scopedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#scopedtranslator)
[chainedTranslator](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n#chainedtranslator)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/i18n?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/i18n)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/i18n?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/i18n)|| |[platform](https://github.com/solidjs-community/solid-primitives/tree/main/packages/platform#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[List of variables](https://github.com/solidjs-community/solid-primitives/tree/main/packages/platform#list-of-variables)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/platform?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/platform)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/platform?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/platform)|| |[promise](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[promiseTimeout](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#promisetimeout)
[raceTimeout](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#racetimeout)
[until](https://github.com/solidjs-community/solid-primitives/tree/main/packages/promise#until)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/promise?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/promise)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/promise?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/promise)|| -|[props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[combineProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#combineprops)
[filterProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#filterprops)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/props)|✓| +|[props](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[combineProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#combineprops)
[filterProps](https://github.com/solidjs-community/solid-primitives/tree/main/packages/props#filterprops)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/props?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/props)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/props?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/props)|| |[scheduled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[debounce](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#debounce)
[throttle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#throttle)
[scheduleIdle](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#scheduleidle)
[leading](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#leading)
[createScheduled](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#createscheduled)
[leadingAndTrailing](https://github.com/solidjs-community/solid-primitives/tree/main/packages/scheduled#leadingandtrailing)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/scheduled?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/scheduled)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/scheduled?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/scheduled)|| -|[script-loader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScriptLoader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#createscriptloader)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/script-loader?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/script-loader)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/script-loader?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/script-loader)|✓| -|[share](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSocialShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createsocialshare)
[createWebShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createwebshare)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/share?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/share)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/share?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/share)|✓| +|[script-loader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createScriptLoader](https://github.com/solidjs-community/solid-primitives/tree/main/packages/script-loader#createscriptloader)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/script-loader?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/script-loader)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/script-loader?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/script-loader)|| +|[share](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSocialShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createsocialshare)
[createWebShare](https://github.com/solidjs-community/solid-primitives/tree/main/packages/share#createwebshare)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/share?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/share)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/share?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/share)|| |

*Reactivity*

| |[db-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createDbStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#createdbstore)
[supabaseAdapter](https://github.com/solidjs-community/solid-primitives/tree/main/packages/db-store#supabaseadapter)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/db-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/db-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/db-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/db-store)|| |[deep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[trackDeep](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackdeep)
[trackStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#trackstore)
[captureStoreUpdates](https://github.com/solidjs-community/solid-primitives/tree/main/packages/deep#capturestoreupdates)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/deep?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/deep)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/deep?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/deep)|| @@ -95,11 +95,11 @@ The goal of Solid Primitives is to wrap client and server side functionality to |[memo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createLatest](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatest)
[createLatestMany](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlatestmany)
[createWritableMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createwritablememo)
[createLazyMemo](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createlazymemo)
[createPureReaction](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createpurereaction)
[createMemoCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#creatememocache)
[createReducer](https://github.com/solidjs-community/solid-primitives/tree/main/packages/memo#createreducer)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/memo?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/memo)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/memo?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/memo)|| |[mutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#createmutable)
[modifyMutable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/mutable#modifymutable)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/mutable?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/mutable)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/mutable?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/mutable)|| |[resource](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createAggregated](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createaggregated)
[createDeepSignal](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createdeepsignal)
[makeAbortable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makeabortable)
[createAbortable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#createabortable)
[makeCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makecache)
[makeRetrying](https://github.com/solidjs-community/solid-primitives/tree/main/packages/resource#makeretrying)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/resource?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/resource)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/resource?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/resource)|| -|[rootless](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSubRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsubroot)
[createCallback](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createcallback)
[createDisposable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createdisposable)
[createSharedRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsharedroot)
[createRootPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createrootpool)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/rootless?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/rootless)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/rootless?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/rootless)|| +|[rootless](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSubRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsubroot)
[createCallback](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createcallback)
[createDisposable](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createdisposable)
[createSharedRoot](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createsharedroot)
[createRootPool](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createrootpool)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/rootless?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/rootless)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/rootless?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/rootless)|✓| |[set](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[ReactiveSet](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#reactiveset)
[ReactiveWeakSet](https://github.com/solidjs-community/solid-primitives/tree/main/packages/set#reactiveweakset)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/set?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/set)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/set?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/set)|| |[signal-builders](https://github.com/solidjs-community/solid-primitives/tree/main/packages/signal-builders#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[List of builders](https://github.com/solidjs-community/solid-primitives/tree/main/packages/signal-builders#list-of-builders)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/signal-builders?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/signal-builders)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/signal-builders?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/signal-builders)|| |[state-machine](https://github.com/solidjs-community/solid-primitives/tree/main/packages/state-machine#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMachine](https://github.com/solidjs-community/solid-primitives/tree/main/packages/state-machine#createmachine)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/state-machine?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/state-machine)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/state-machine?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/state-machine)|| -|[static-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createstaticstore)
[createDerivedStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createderivedstaticstore)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/static-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/static-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/static-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/static-store)|| +|[static-store](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createstaticstore)
[createDerivedStaticStore](https://github.com/solidjs-community/solid-primitives/tree/main/packages/static-store#createderivedstaticstore)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/static-store?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/static-store)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/static-store?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/static-store)|✓| |[trigger](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTrigger](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#createtrigger)
[createTriggerCache](https://github.com/solidjs-community/solid-primitives/tree/main/packages/trigger#createtriggercache)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/trigger?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/trigger)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/trigger?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/trigger)|| |

*UI Patterns*

| |[marker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/marker#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-1.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createMarker](https://github.com/solidjs-community/solid-primitives/tree/main/packages/marker#createmarker)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/marker?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/marker)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/marker?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/marker)|| @@ -108,7 +108,7 @@ The goal of Solid Primitives is to wrap client and server side functionality to |[virtual](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createVirutalList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#createvirutallist)
[VirtualList](https://github.com/solidjs-community/solid-primitives/tree/main/packages/virtual#virtuallist)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/virtual?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/virtual)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/virtual?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/virtual)|| |

*Animation*

| |[presence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/presence#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createPresence](https://github.com/solidjs-community/solid-primitives/tree/main/packages/presence#createpresence)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/presence?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/presence)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/presence?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/presence)|| -|[raf](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRAF](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createraf)
[createMs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createms)
[targetFPS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#targetfps)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/raf?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/raf)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/raf?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/raf)|✓| +|[raf](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createRAF](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createraf)
[createMs](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#createms)
[targetFPS](https://github.com/solidjs-community/solid-primitives/tree/main/packages/raf#targetfps)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/raf?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/raf)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/raf?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/raf)|| |[spring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-0.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSpring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#createspring)
[createDerivedSpring](https://github.com/solidjs-community/solid-primitives/tree/main/packages/spring#createderivedspring)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/spring?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/spring)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/spring?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/spring)|| |[transition-group](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-2.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createSwitchTransition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createswitchtransition)
[createListTransition](https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createlisttransition)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/transition-group?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/transition-group)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/transition-group?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/transition-group)|| |[tween](https://github.com/solidjs-community/solid-primitives/tree/main/packages/tween#readme)|[![STAGE](https://img.shields.io/endpoint?style=for-the-badge&label=&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolidjs-community%2Fsolid-primitives%2Fmain%2Fassets%2Fbadges%2Fstage-3.json)](https://github.com/solidjs-community/solid-primitives/blob/main/CONTRIBUTING.md#contribution-process)|[createTween](https://github.com/solidjs-community/solid-primitives/tree/main/packages/tween#createtween)|[![SIZE](https://img.shields.io/bundlephobia/minzip/@solid-primitives/tween?style=for-the-badge&label=)](https://bundlephobia.com/package/@solid-primitives/tween)|[![VERSION](https://img.shields.io/npm/v/@solid-primitives/tween?style=for-the-badge&label=)](https://www.npmjs.com/package/@solid-primitives/tween)|| diff --git a/scripts/update-readme.ts b/scripts/update-readme.ts index 6f274b75a..ee7a95c77 100644 --- a/scripts/update-readme.ts +++ b/scripts/update-readme.ts @@ -58,7 +58,7 @@ const rootDependencies: string[] = [ data.Primitives = module.primitive.list .map(prim => `[${prim}](${githubURL}${module.name}#${prim.replace(/ /g, "-").toLowerCase()})`) .join("
"); - data["Solid 2"] = parseInt(module.version.split(".")[0]!) >= 2 ? "✓" : ""; + data["Solid 2"] = /^[\^~]?2\./.test(module.solid_peer_version ?? "") ? "✓" : ""; // Merge the package into the correct category const cat = categories[module.primitive.category]; categories[module.primitive.category] = cat ? [...cat, data] : [data]; diff --git a/scripts/utils/get-modules-data.ts b/scripts/utils/get-modules-data.ts index d5d17d495..b761a51e4 100644 --- a/scripts/utils/get-modules-data.ts +++ b/scripts/utils/get-modules-data.ts @@ -28,6 +28,7 @@ export type ModuleData = { primitive: PrimitiveData | null; workspace_deps: string[]; peer_deps: string[]; + solid_peer_version: string | null; }; export async function getModuleData(name: string): Promise { @@ -60,6 +61,7 @@ export async function getModuleData(name: string): Promise { primitive: pkg.primitive ?? null, workspace_deps, peer_deps, + solid_peer_version: pkg.peerDependencies?.["solid-js"] ?? null, }; } From c85f0ac6a8b73177e1ba0310e9f6f4480db67914 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Sat, 11 Apr 2026 22:24:56 +0200 Subject: [PATCH 08/31] port to tanstack start v1 --- packages/match/dev/index.tsx | 2 +- packages/mouse/dev/components.tsx | 2 +- pnpm-lock.yaml | 1561 +++++++++++++++-- site/app.config.ts | 33 - site/package.json | 15 +- site/src/app.tsx | 93 - .../BundleSizeModal/BundleSizeModal.tsx | 2 +- site/src/components/Header/Header.tsx | 8 +- site/src/components/Header/NavMenu.tsx | 8 +- .../[...404].tsx => components/NotFound.tsx} | 10 +- .../components/Primitives/PrimitiveBtn.tsx | 9 +- .../components/Search/ClientSearchModal.tsx | 25 +- site/src/components/Search/Search.tsx | 12 +- site/src/components/table.tsx | 6 +- site/src/entry-client.tsx | 29 - site/src/entry-server.tsx | 6 - .../primitives/DocumentHydrationHelper.tsx | 70 - site/src/routeTree.gen.ts | 104 ++ site/src/router.tsx | 16 + site/src/routes/__root.tsx | 104 ++ site/src/routes/index.tsx | 25 +- .../-components}/heading.tsx | 0 .../-components}/package-installation.tsx | 0 .../primitive-name-tooltip-impl.tsx} | 0 .../-components}/primitive-name-tooltips.tsx | 4 +- .../{[name]/(package).tsx => $name/index.tsx} | 81 +- site/src/routes/playground/$name.tsx | 51 + .../{playground.scss => -playground.scss} | 0 site/src/routes/playground/[name].tsx | 38 - site/tsconfig.json | 4 +- site/vite.config.ts | 42 + 31 files changed, 1872 insertions(+), 488 deletions(-) delete mode 100644 site/app.config.ts delete mode 100644 site/src/app.tsx rename site/src/{routes/[...404].tsx => components/NotFound.tsx} (93%) delete mode 100644 site/src/entry-client.tsx delete mode 100644 site/src/entry-server.tsx delete mode 100644 site/src/primitives/DocumentHydrationHelper.tsx create mode 100644 site/src/routeTree.gen.ts create mode 100644 site/src/router.tsx create mode 100644 site/src/routes/__root.tsx rename site/src/routes/package/{[name]/components => $name/-components}/heading.tsx (100%) rename site/src/routes/package/{[name]/components => $name/-components}/package-installation.tsx (100%) rename site/src/routes/package/{[name]/components/primitive-name-tooltip.client.tsx => $name/-components/primitive-name-tooltip-impl.tsx} (100%) rename site/src/routes/package/{[name]/components => $name/-components}/primitive-name-tooltips.tsx (77%) rename site/src/routes/package/{[name]/(package).tsx => $name/index.tsx} (55%) create mode 100644 site/src/routes/playground/$name.tsx rename site/src/routes/playground/{playground.scss => -playground.scss} (100%) delete mode 100644 site/src/routes/playground/[name].tsx create mode 100644 site/vite.config.ts diff --git a/packages/match/dev/index.tsx b/packages/match/dev/index.tsx index cedd95784..5e23ff375 100644 --- a/packages/match/dev/index.tsx +++ b/packages/match/dev/index.tsx @@ -1,4 +1,4 @@ -import { Component, createSignal } from "solid-js"; +import { type Component, createSignal } from "solid-js"; import { MatchTag, MatchValue } from "../src/index.js"; type AnimalDog = { type: "dog"; breed: string }; diff --git a/packages/mouse/dev/components.tsx b/packages/mouse/dev/components.tsx index 7e8d32644..979fd4261 100644 --- a/packages/mouse/dev/components.tsx +++ b/packages/mouse/dev/components.tsx @@ -1,4 +1,4 @@ -import { access, MaybeAccessor } from "@solid-primitives/utils"; +import { access, type MaybeAccessor } from "@solid-primitives/utils"; import { type Component, For } from "solid-js"; export const DisplayRecord: Component<{ record: Record> }> = props => ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 383f3222f..68671dd97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 1.0.1 '@solidjs/start': specifier: ^1.1.4 - version: 1.1.4(solid-js@2.0.0-beta.11)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + version: 1.1.4(solid-js@2.0.0-beta.11)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) '@types/jsdom': specifier: ^21.1.7 version: 21.1.7 @@ -76,16 +76,16 @@ importers: version: 5.8.3 vinxi: specifier: ^0.5.7 - version: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + version: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + version: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + version: 2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) vitest: specifier: ^2.1.9 - version: 2.1.9(@types/node@22.15.31)(jsdom@25.0.1)(sass@1.77.8)(terser@5.42.0) + version: 2.1.9(@types/node@22.15.31)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0) packages/active-element: dependencies: @@ -1064,12 +1064,12 @@ importers: '@solid-primitives/utils': specifier: workspace:^ version: link:../packages/utils - '@solidjs/meta': - specifier: ^0.29.3 - version: 0.29.4(solid-js@2.0.0-beta.11) - '@solidjs/router': - specifier: ^0.13.1 - version: 0.13.6(solid-js@2.0.0-beta.11) + '@tanstack/solid-router': + specifier: ^1.168.16 + version: 1.168.16(solid-js@2.0.0-beta.11) + '@tanstack/solid-start': + specifier: ^1.167.28 + version: 1.167.28(solid-js@2.0.0-beta.11)(vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)))(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) clsx: specifier: ^2.0.0 version: 2.1.1 @@ -1134,6 +1134,12 @@ importers: tailwindcss-dir: specifier: ^4.0.0 version: 4.0.0 + vite: + specifier: ^8.0.8 + version: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vite-plugin-solid: + specifier: ^2.11.12 + version: 2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) packages: @@ -1166,18 +1172,34 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.27.5': resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.27.4': resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.27.5': resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -1186,12 +1208,20 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.27.1': resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.27.1': resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} @@ -1200,8 +1230,8 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.27.3': @@ -1210,6 +1240,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -1236,6 +1272,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -1244,11 +1284,20 @@ packages: resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.27.5': resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-proposal-class-properties@7.18.6': resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} @@ -1437,14 +1486,26 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.4': resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.27.6': resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + '@changesets/apply-release-plan@7.0.12': resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} @@ -1549,6 +1610,15 @@ packages: resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==} engines: {node: '>=18'} + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -2130,10 +2200,16 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -2151,6 +2227,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@kamilkisiela/fast-url-parser@1.1.4': resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} @@ -2165,6 +2244,12 @@ packages: engines: {node: '>=18'} hasBin: true + '@napi-rs/wasm-runtime@1.1.3': + resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@netlify/binary-info@1.0.0': resolution: {integrity: sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==} @@ -2217,6 +2302,28 @@ packages: resolution: {integrity: sha512-5N3COkt5CFHX/4OjUhmEAJWI9n+1sqNi+0hvEWsPV8Ti5xIWNX144iOXoDsWhZnUv2IuBj46zLFkbCu742HmZQ==} engines: {node: '>=20.6.0'} + '@nothing-but/utils@0.17.0': + resolution: {integrity: sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ==} + + '@oozcitak/dom@2.0.2': + resolution: {integrity: sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w==} + engines: {node: '>=20.0'} + + '@oozcitak/infra@2.0.2': + resolution: {integrity: sha512-2g+E7hoE2dgCz/APPOEK5s3rMhJvNxSMBrP+U+j1OWsIbtSpWxxlUjq1lU8RIsFJNYv7NMlnVsCuHcUzJW+8vA==} + engines: {node: '>=20.0'} + + '@oozcitak/url@3.0.0': + resolution: {integrity: sha512-ZKfET8Ak1wsLAiLWNfFkZc/BraDccuTJKR6svTYc7sVjbR+Iu0vtXdiDMY4o6jaFl5TW2TlS7jbLl4VovtAJWQ==} + engines: {node: '>=20.0'} + + '@oozcitak/util@10.0.0': + resolution: {integrity: sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==} + engines: {node: '>=20.0'} + + '@oxc-project/types@0.124.0': + resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -2354,6 +2461,101 @@ packages: '@repeaterjs/repeater@3.0.6': resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} + '@rolldown/binding-android-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-beta.40': + resolution: {integrity: sha512-s3GeJKSQOwBlzdUrj4ISjJj5SfSh+aqn0wjOar4Bx95iV1ETI7F6S/5hLcfAxZ9kXDcyrAkxPlqmd1ZITttf+w==} + + '@rolldown/pluginutils@1.0.0-rc.15': + resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -2559,6 +2761,26 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@solid-devtools/debugger@0.28.1': + resolution: {integrity: sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-devtools/logger@0.9.11': + resolution: {integrity: sha512-THbiY1iQlieL6vdgJc4FIsLe7V8a57hod/Thm8zdKrTkWL88UPZjkBBfM+mVNGusd4OCnAN20tIFBhNnuT1Dew==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-devtools/shared@0.20.0': + resolution: {integrity: sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-primitives/bounds@0.1.5': + resolution: {integrity: sha512-JFym8zijMfWp1FaAmJlH3xMfenCuhjaUsoBn3kt9FtoWwLj+yt+EGYt+p3SkOKwF7h4gaGtZ5PIdSbSNVWkRmg==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/composites@1.1.1': resolution: {integrity: sha512-eNi1jnUJehBjcVQvod8N1uz91Cn3KvJn/HJIPHUVpnpDj8dFhu5eHJtsiEdNBFJFOR/pPmf9RhJG0pKoTdPz6g==} peerDependencies: @@ -2570,11 +2792,56 @@ packages: peerDependencies: solid-js: '>=1.0.0' + '@solid-primitives/event-listener@2.4.5': + resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} + 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/media@2.3.5': + resolution: {integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/refs@1.0.8': resolution: {integrity: sha512-+jIsWG8/nYvhaCoG2Vg6CJOLgTmPKFbaCrNQKWfChalgUf9WrVxWw0CdJb3yX15n5lUcQ0jBo6qYtuVVmBLpBw==} 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/styles@0.1.3': + resolution: {integrity: sha512-7YdA21prMeCX+oOF/1RAn02+cGz/pG4dyPWtHBC2H8aZvnC7IfThBt80mP+TioejrdfE7Lc54Uh18f7Pig+gRQ==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/throttle@1.2.0': resolution: {integrity: sha512-qYKYEgGl/nSCF+wq7H6zFFi8s2e/woFZJkZbCbyUrtbEIvCze4xSZRr64Xi067GlBE+T/N4LZX/htJmLfwkAeg==} deprecated: throttle primitive moved to @solid-primitives/scheduled @@ -2591,16 +2858,16 @@ packages: 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/meta@0.29.4': resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==} peerDependencies: solid-js: '>=1.8.4' - '@solidjs/router@0.13.6': - resolution: {integrity: sha512-CdpFsBYoiJ/FQ4wZIamj3KEFRkmrYu5sVXM6PouNkmSENta1YJamsm9wa/VjaPmkw2RsnDnO0UvZ705v6EgOXQ==} - peerDependencies: - solid-js: ^1.8.6 - '@solidjs/router@0.8.4': resolution: {integrity: sha512-Gi/WVoVseGMKS1DBdT3pNAMgOzEOp6Q3dpgNd2mW9GUEnVocPmtyBjDvXwN6m7tjSGsqqfqJFXk7bm1hxabSRw==} peerDependencies: @@ -2660,14 +2927,109 @@ packages: peerDependencies: vite: '>=6.0.0' + '@tanstack/history@1.161.6': + resolution: {integrity: sha512-NaOGLRrddszbQj9upGat6HG/4TKvXLvu+osAIgfxPYA+eIvYKv8GKDJOrY2D3/U9MRnKfMWD7bU4jeD4xmqyIg==} + engines: {node: '>=20.19'} + + '@tanstack/router-core@1.168.13': + resolution: {integrity: sha512-RjFUQDLfa05WnPZLV+xENUni2CUF1ftz3cFLpm/AdrXdN6VFHp0mhu94zHVPgt0XJwXEEcIyNHjQn+9IcXk0JA==} + engines: {node: '>=20.19'} + hasBin: true + + '@tanstack/router-generator@1.166.28': + resolution: {integrity: sha512-GAwYBXhFAtLdmHs4p50WsVohjawOh96mIOimTfjSjnCOIfvdVqCk40U2TtEcQWA5M6htxbg/f6jt1hKh1oNaJQ==} + engines: {node: '>=20.19'} + + '@tanstack/router-plugin@1.167.16': + resolution: {integrity: sha512-797yYwcm9bqSTM5525On2tV6eWxsRoFhh41oIUGMV9YbXwP6xnMbIvsUsEZQY02H4eywZGUyjZUb+9spRoW2aw==} + engines: {node: '>=20.19'} + hasBin: true + peerDependencies: + '@rsbuild/core': '>=1.0.2' + '@tanstack/react-router': ^1.168.17 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' + vite-plugin-solid: ^2.11.10 + webpack: '>=5.92.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + '@tanstack/react-router': + optional: true + vite: + optional: true + vite-plugin-solid: + optional: true + webpack: + optional: true + '@tanstack/router-utils@1.121.0': resolution: {integrity: sha512-+gOHZdEVjOTTdk8Z7J/NVG0KdvzxFeUYjINYZEqQDRKoxEg8f+Npram0MXGy8N15OyZrsm+KHR1vMFZ2yEvZkw==} engines: {node: '>=12'} + '@tanstack/router-utils@1.161.6': + resolution: {integrity: sha512-nRcYw+w2OEgK6VfjirYvGyPLOK+tZQz1jkYcmH5AjMamQ9PycnlxZF2aEZtPpNoUsaceX2bHptn6Ub5hGXqNvw==} + engines: {node: '>=20.19'} + '@tanstack/server-functions-plugin@1.121.0': resolution: {integrity: sha512-gz3Mpn4t1cB3ZJLaeTJ6GS2wpAis24qJHvqyFQrTKjRiz8LOHqsGDOnT5vgA5Vdjlv3alZiyhPW7WFFctsI/VA==} engines: {node: '>=12'} + '@tanstack/solid-router@1.168.16': + resolution: {integrity: sha512-20t4WsmpwOpmhmmNlsNcz2h4qNGPLzjEVGBj1Cp51DniRJlvGii/eAW+dmSqL0b02w0o0rWEPeE9IDOE2volRA==} + engines: {node: '>=20.19'} + hasBin: true + peerDependencies: + solid-js: ^1.9.10 + + '@tanstack/solid-start-client@1.166.32': + resolution: {integrity: sha512-PJVLvquUPfmjgdqd9RbKCrCXdWvwyzNyPMMBAoEZToEqSmUeiImf3u55Eejh2BNtVASjxq5e9O814TEyTQAymQ==} + engines: {node: '>=22.12.0'} + peerDependencies: + solid-js: '>=1.0.0' + + '@tanstack/solid-start-server@1.166.33': + resolution: {integrity: sha512-P5b83TcBORvlrnI/ExfDotUOWb/fVlKDuhovY36VZZpWQzEVSjyqGRiWO4Qrdsr6Iy0nb4a8UwYMBd5h/VkqpA==} + engines: {node: '>=22.12.0'} + peerDependencies: + solid-js: ^1.0.0 + + '@tanstack/solid-start@1.167.28': + resolution: {integrity: sha512-GczQ5EDrN84W9aHuQ0BMQMJGXQZRz0isjxgDoZHB2VN+/p2ZK8kp2BGUooND76mV90mNi9WCL7LGvRbcfazocQ==} + engines: {node: '>=22.12.0'} + hasBin: true + peerDependencies: + solid-js: '>=1.0.0' + vite: '>=7.0.0' + + '@tanstack/start-client-core@1.167.15': + resolution: {integrity: sha512-WT4vy+aoc6kVKJeTt+uTwIiwCvhtQ0Nx2GavRyL4ks3l0YYnzv9qgGgNHPlvDY8crA1zO280v9SYEe/UjDuizQ==} + engines: {node: '>=22.12.0'} + hasBin: true + + '@tanstack/start-fn-stubs@1.161.6': + resolution: {integrity: sha512-Y6QSlGiLga8cHfvxGGaonXIlt2bIUTVdH6AMjmpMp7+ANNCp+N96GQbjjhLye3JkaxDfP68x5iZA8NK4imgRig==} + engines: {node: '>=22.12.0'} + + '@tanstack/start-plugin-core@1.167.27': + resolution: {integrity: sha512-N2RfF2ZxApU6PyZt7e9JGcf8xpZ4GCU8UlljsKMaFON0h3IhFo1WQGUiZ9aIaJ0NNNRVqjrYaq3DnLEQ5CxzlQ==} + engines: {node: '>=22.12.0'} + peerDependencies: + vite: '>=7.0.0' + + '@tanstack/start-server-core@1.167.17': + resolution: {integrity: sha512-dqlWH3zVf4l5Vnp4WtJ6ecnICkRdLtGt0RCeBhiEsHS+xOhEAntSjJiXpa925X4g1jrt3a+YjS58J/9W3SBhQA==} + engines: {node: '>=22.12.0'} + hasBin: true + + '@tanstack/start-storage-context@1.166.27': + resolution: {integrity: sha512-FdTxhS+XqSRrobZhFrfkvR90JqkLw9ohVxKrm5VL2CY9/LleALTsiCmByXAlp2HM5OmRBjYMojPAdtR2DMhH3Q==} + engines: {node: '>=22.12.0'} + + '@tanstack/virtual-file-routes@1.161.7': + resolution: {integrity: sha512-olW33+Cn+bsCsZKPwEGhlkqS6w3M2slFv11JIobdnCFKMLG97oAI2kWKdx5/zsywTL8flpnoIgaZZPlQTFYhdQ==} + engines: {node: '>=20.19'} + hasBin: true + '@tauri-apps/api@1.6.0': resolution: {integrity: sha512-rqI++FWClU5I2UBp4HXFvl+sBWkdigBkxnpJDQUWttNyG7IZP4FwQGhTNL5EOw0vI8i6eSAJ5frLqO7n7jbJdg==} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} @@ -2678,6 +3040,9 @@ packages: '@tauri-apps/plugin-store@2.0.0': resolution: {integrity: sha512-l4xsbxAXrKGdBdYNNswrLfcRv3v1kOatdycOcVPYW+jKwkznCr1HEOrPXkPhXsZLSLyYmNXpgfOmdSZNmcykDg==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -3111,6 +3476,9 @@ packages: babel-dead-code-elimination@1.0.10: resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} + babel-dead-code-elimination@1.0.12: + resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} + babel-plugin-jsx-dom-expressions@0.39.8: resolution: {integrity: sha512-/MVOIIjonylDXnrWmG23ZX82m9mtKATsVHB7zYlPfDR9Vdd/NBE48if+wv27bSkBtyO7EPMUlcUc4J63QwuACQ==} peerDependencies: @@ -3155,6 +3523,9 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boxen@8.0.1: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} @@ -3298,6 +3669,13 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.2.0: + resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} + engines: {node: '>=20.18.1'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3508,9 +3886,16 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-unit-converter@1.1.2: resolution: {integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==} + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -3727,6 +4112,19 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -3787,6 +4185,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -3802,6 +4203,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3963,6 +4368,9 @@ packages: exsolve@1.0.5: resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -4030,6 +4438,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -4268,6 +4685,16 @@ packages: h3@1.15.3: resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} + h3@2.0.1-rc.16: + resolution: {integrity: sha512-h+pjvyujdo9way8qj6FUbhaQcHlR8FEq65EhTX9ViT5pK8aLj68uFl4hBkF+hsTJAH+H1END2Yv6hTIsabGfag==} + engines: {node: '>=20.11.1'} + hasBin: true + peerDependencies: + crossws: ^0.4.1 + peerDependenciesMeta: + crossws: + optional: true + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -4340,6 +4767,9 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -4583,6 +5013,10 @@ packages: isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isbot@5.1.37: + resolution: {integrity: sha512-5bcicX81xf6NlTEV8rWdg7Pk01LFizDetuYGHx6d/f6y3lR2/oo8IfxjzJqn1UdDEyCcwT9e7NRloj8DwCYujQ==} + engines: {node: '>=18'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -4623,6 +5057,10 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + jsdom@25.0.1: resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} engines: {node: '>=18'} @@ -4705,6 +5143,76 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -5186,6 +5694,9 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} @@ -5347,6 +5858,12 @@ packages: resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} engines: {node: '>=18'} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -5436,6 +5953,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -5529,6 +6050,10 @@ packages: resolution: {integrity: sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.9: + resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} + engines: {node: ^10 || ^12 || >=14} + precinct@12.2.0: resolution: {integrity: sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w==} engines: {node: '>=18'} @@ -5830,6 +6355,11 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rolldown@1.0.0-rc.15: + resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup-plugin-visualizer@5.14.0: resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} engines: {node: '>=18'} @@ -5848,6 +6378,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rou3@0.8.1: + resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} + rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} @@ -6082,6 +6615,10 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -6106,6 +6643,11 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + srvx@0.11.15: + resolution: {integrity: sha512-iXsux0UcOjdvs0LCMa2Ws3WwcDUozA3JN3BquNXkaFPP7TpRqgunKdEgoZ/uwb1J6xaYHfxtz9Twlh6yzwM6Tg==} + engines: {node: '>=20.16.0'} + hasBin: true + stack-trace@0.0.10: resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} @@ -6283,6 +6825,10 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + tinypool@1.1.0: resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6423,6 +6969,10 @@ packages: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} + undici@7.24.7: + resolution: {integrity: sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==} + engines: {node: '>=20.18.1'} + unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} @@ -6612,6 +7162,16 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-plugin-solid@2.11.12: + resolution: {integrity: sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA==} + peerDependencies: + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@testing-library/jest-dom': + optional: true + vite-plugin-solid@2.11.6: resolution: {integrity: sha512-Sl5CTqJTGyEeOsmdH6BOgalIZlwH3t4/y0RQuFLMGnvWMBvxb4+lq7x3BSiAw6etf0QexfNJW7HSOO/Qf7pigg==} peerDependencies: @@ -6693,6 +7253,49 @@ packages: yaml: optional: true + vite@8.0.8: + resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@1.0.6: resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} peerDependencies: @@ -6701,6 +7304,14 @@ packages: vite: optional: true + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + vitest@2.1.9: resolution: {integrity: sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6839,6 +7450,10 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xmlbuilder2@4.0.3: + resolution: {integrity: sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==} + engines: {node: '>=20.0'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -6925,11 +7540,11 @@ snapshots: '@ardatan/relay-compiler@12.0.0(graphql@16.9.0)': dependencies: '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 + '@babel/generator': 7.29.1 '@babel/parser': 7.27.5 '@babel/runtime': 7.27.6 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 babel-preset-fbjs: 3.4.0(@babel/core@7.27.4) chalk: 4.1.2 fb-watchman: 2.0.2 @@ -6962,7 +7577,7 @@ snapshots: '@babel/code-frame@7.26.2': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -6972,8 +7587,16 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.27.5': {} + '@babel/compat-data@7.29.0': {} + '@babel/core@7.27.4': dependencies: '@ampproject/remapping': 2.3.0 @@ -6994,6 +7617,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.27.5': dependencies: '@babel/parser': 7.27.5 @@ -7002,9 +7645,17 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -7014,6 +7665,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.25.0 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 @@ -7022,41 +7681,52 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color + '@babel/helper-globals@7.28.0': {} + '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@babel/helper-plugin-utils@7.27.1': {} @@ -7065,14 +7735,14 @@ snapshots: '@babel/core': 7.27.4 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -7080,17 +7750,28 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 + + '@babel/helpers@7.29.2': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 '@babel/parser@7.27.5': dependencies: '@babel/types': 7.27.6 + '@babel/parser@7.29.2': + dependencies: + '@babel/types': 7.29.0 + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 @@ -7128,6 +7809,11 @@ snapshots: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 @@ -7138,6 +7824,11 @@ snapshots: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 @@ -7160,7 +7851,7 @@ snapshots: '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7169,7 +7860,7 @@ snapshots: dependencies: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/template': 7.28.6 '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.27.4)': dependencies: @@ -7195,7 +7886,7 @@ snapshots: '@babel/core': 7.27.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color @@ -7244,10 +7935,10 @@ snapshots: dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -7299,23 +7990,46 @@ snapshots: '@babel/parser': 7.27.5 '@babel/types': 7.27.6 + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + '@babel/traverse@7.27.4': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 + '@babel/generator': 7.29.1 '@babel/parser': 7.27.5 '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + '@babel/types@7.27.6': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@changesets/apply-release-plan@7.0.12': dependencies: '@changesets/config': 3.1.1 @@ -7502,6 +8216,22 @@ snapshots: gonzales-pe: 4.3.0 node-source-walk: 7.0.1 + '@emnapi/core@1.9.2': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.9.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -8160,20 +8890,30 @@ snapshots: dependencies: minipass: 7.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -8182,6 +8922,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@kamilkisiela/fast-url-parser@1.1.4': {} '@manypkg/find-root@1.1.0': @@ -8213,6 +8958,13 @@ snapshots: - encoding - supports-color + '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.1 + optional: true + '@netlify/binary-info@1.0.0': {} '@netlify/blobs@9.1.2': @@ -8263,7 +9015,7 @@ snapshots: '@netlify/zip-it-and-ship-it@12.1.4(rollup@4.43.0)': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.2 '@babel/types': 7.27.6 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 2.1.2 @@ -8315,6 +9067,27 @@ snapshots: '@nothing-but/node-resolve-ts@1.0.1': {} + '@nothing-but/utils@0.17.0': {} + + '@oozcitak/dom@2.0.2': + dependencies: + '@oozcitak/infra': 2.0.2 + '@oozcitak/url': 3.0.0 + '@oozcitak/util': 10.0.0 + + '@oozcitak/infra@2.0.2': + dependencies: + '@oozcitak/util': 10.0.0 + + '@oozcitak/url@3.0.0': + dependencies: + '@oozcitak/infra': 2.0.2 + '@oozcitak/util': 10.0.0 + + '@oozcitak/util@10.0.0': {} + + '@oxc-project/types@0.124.0': {} + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -8429,6 +9202,59 @@ snapshots: '@repeaterjs/repeater@3.0.6': {} + '@rolldown/binding-android-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + optional: true + + '@rolldown/pluginutils@1.0.0-beta.40': {} + + '@rolldown/pluginutils@1.0.0-rc.15': {} + '@rollup/plugin-alias@5.1.1(rollup@4.43.0)': optionalDependencies: rollup: 4.43.0 @@ -8589,9 +9415,51 @@ snapshots: '@sindresorhus/is@4.6.0': {} - '@sindresorhus/is@7.0.2': {} + '@sindresorhus/is@7.0.2': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@solid-devtools/debugger@0.28.1(solid-js@2.0.0-beta.11)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-devtools/shared': 0.20.0(solid-js@2.0.0-beta.11) + '@solid-primitives/bounds': 0.1.5(solid-js@2.0.0-beta.11) + '@solid-primitives/event-listener': 2.4.5(solid-js@2.0.0-beta.11) + '@solid-primitives/keyboard': 1.3.5(solid-js@2.0.0-beta.11) + '@solid-primitives/rootless': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/scheduled': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/static-store': 0.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-devtools/logger@0.9.11(solid-js@2.0.0-beta.11)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-devtools/debugger': 0.28.1(solid-js@2.0.0-beta.11) + '@solid-devtools/shared': 0.20.0(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-devtools/shared@0.20.0(solid-js@2.0.0-beta.11)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-primitives/event-listener': 2.4.5(solid-js@2.0.0-beta.11) + '@solid-primitives/media': 2.3.5(solid-js@2.0.0-beta.11) + '@solid-primitives/refs': 1.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/rootless': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/scheduled': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/static-store': 0.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/styles': 0.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 - '@sindresorhus/merge-streams@2.3.0': {} + '@solid-primitives/bounds@0.1.5(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@2.0.0-beta.11) + '@solid-primitives/resize-observer': 2.1.5(solid-js@2.0.0-beta.11) + '@solid-primitives/static-store': 0.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 '@solid-primitives/composites@1.1.1(solid-js@1.9.7)': dependencies: @@ -8603,11 +9471,69 @@ snapshots: dependencies: solid-js: 1.9.7 + '@solid-primitives/event-listener@2.4.5(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/keyboard@1.3.5(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@2.0.0-beta.11) + '@solid-primitives/rootless': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/media@2.3.5(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@2.0.0-beta.11) + '@solid-primitives/rootless': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/static-store': 0.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + '@solid-primitives/refs@1.0.8(solid-js@1.9.7)': dependencies: '@solid-primitives/utils': 6.2.3(solid-js@1.9.7) solid-js: 1.9.7 + '@solid-primitives/refs@1.0.8(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/refs@1.1.3(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/resize-observer@2.1.5(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@2.0.0-beta.11) + '@solid-primitives/rootless': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/static-store': 0.1.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/rootless@1.5.3(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/scheduled@1.5.3(solid-js@2.0.0-beta.11)': + dependencies: + solid-js: 2.0.0-beta.11 + + '@solid-primitives/static-store@0.1.3(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + + '@solid-primitives/styles@0.1.3(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-primitives/rootless': 1.5.3(solid-js@2.0.0-beta.11) + '@solid-primitives/utils': 6.4.0(solid-js@2.0.0-beta.11) + solid-js: 2.0.0-beta.11 + '@solid-primitives/throttle@1.2.0(solid-js@1.9.7)': dependencies: solid-js: 1.9.7 @@ -8620,11 +9546,15 @@ snapshots: dependencies: solid-js: 1.9.7 - '@solidjs/meta@0.29.4(solid-js@2.0.0-beta.11)': + '@solid-primitives/utils@6.2.3(solid-js@2.0.0-beta.11)': + dependencies: + solid-js: 2.0.0-beta.11 + + '@solid-primitives/utils@6.4.0(solid-js@2.0.0-beta.11)': dependencies: solid-js: 2.0.0-beta.11 - '@solidjs/router@0.13.6(solid-js@2.0.0-beta.11)': + '@solidjs/meta@0.29.4(solid-js@2.0.0-beta.11)': dependencies: solid-js: 2.0.0-beta.11 @@ -8634,11 +9564,11 @@ snapshots: '@solidjs/signals@2.0.0-beta.12': {} - '@solidjs/start@1.1.4(solid-js@2.0.0-beta.11)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + '@solidjs/start@1.1.4(solid-js@2.0.0-beta.11)(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: - '@tanstack/server-functions-plugin': 1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@tanstack/server-functions-plugin': 1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.13 @@ -8649,8 +9579,8 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.0.6(solid-js@2.0.0-beta.11) tinyglobby: 0.2.14 - vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) - vite-plugin-solid: 2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vite-plugin-solid: 2.11.12(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - solid-js @@ -8719,31 +9649,88 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.3.3 - '@tanstack/directive-functions-plugin@1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + '@tanstack/directive-functions-plugin@1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.4 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@tanstack/router-utils': 1.121.0 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + transitivePeerDependencies: + - supports-color + + '@tanstack/history@1.161.6': {} + + '@tanstack/router-core@1.168.13': + dependencies: + '@tanstack/history': 1.161.6 + cookie-es: 2.0.0 + seroval: 1.5.2 + seroval-plugins: 1.5.2(seroval@1.5.2) + + '@tanstack/router-generator@1.166.28': + dependencies: + '@tanstack/router-core': 1.168.13 + '@tanstack/router-utils': 1.161.6 + '@tanstack/virtual-file-routes': 1.161.7 + prettier: 3.5.3 + recast: 0.23.11 + source-map: 0.7.6 + tsx: 4.20.2 + zod: 3.25.63 + transitivePeerDependencies: + - supports-color + + '@tanstack/router-plugin@1.167.16(vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)))(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/template': 7.27.2 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@tanstack/router-core': 1.168.13 + '@tanstack/router-generator': 1.166.28 + '@tanstack/router-utils': 1.161.6 + '@tanstack/virtual-file-routes': 1.161.7 + chokidar: 3.6.0 + unplugin: 2.3.5 + zod: 3.25.63 + optionalDependencies: + vite: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vite-plugin-solid: 2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) transitivePeerDependencies: - supports-color '@tanstack/router-utils@1.121.0': dependencies: '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.2 '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) ansis: 4.1.0 diff: 8.0.2 transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + '@tanstack/router-utils@1.161.6': + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + ansis: 4.1.0 + babel-dead-code-elimination: 1.0.12 + diff: 8.0.2 + pathe: 2.0.3 + tinyglobby: 0.2.16 + transitivePeerDependencies: + - supports-color + + '@tanstack/server-functions-plugin@1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.4 @@ -8752,13 +9739,120 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.27.4 '@babel/types': 7.27.6 - '@tanstack/directive-functions-plugin': 1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@tanstack/directive-functions-plugin': 1.121.0(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite + '@tanstack/solid-router@1.168.16(solid-js@2.0.0-beta.11)': + dependencies: + '@solid-devtools/logger': 0.9.11(solid-js@2.0.0-beta.11) + '@solid-primitives/refs': 1.0.8(solid-js@2.0.0-beta.11) + '@solidjs/meta': 0.29.4(solid-js@2.0.0-beta.11) + '@tanstack/history': 1.161.6 + '@tanstack/router-core': 1.168.13 + isbot: 5.1.37 + solid-js: 2.0.0-beta.11 + + '@tanstack/solid-start-client@1.166.32(solid-js@2.0.0-beta.11)': + dependencies: + '@tanstack/router-core': 1.168.13 + '@tanstack/solid-router': 1.168.16(solid-js@2.0.0-beta.11) + '@tanstack/start-client-core': 1.167.15 + solid-js: 2.0.0-beta.11 + + '@tanstack/solid-start-server@1.166.33(solid-js@2.0.0-beta.11)': + dependencies: + '@solidjs/meta': 0.29.4(solid-js@2.0.0-beta.11) + '@tanstack/history': 1.161.6 + '@tanstack/router-core': 1.168.13 + '@tanstack/solid-router': 1.168.16(solid-js@2.0.0-beta.11) + '@tanstack/start-client-core': 1.167.15 + '@tanstack/start-server-core': 1.167.17 + solid-js: 2.0.0-beta.11 + transitivePeerDependencies: + - crossws + + '@tanstack/solid-start@1.167.28(solid-js@2.0.0-beta.11)(vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)))(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + dependencies: + '@tanstack/solid-router': 1.168.16(solid-js@2.0.0-beta.11) + '@tanstack/solid-start-client': 1.166.32(solid-js@2.0.0-beta.11) + '@tanstack/solid-start-server': 1.166.33(solid-js@2.0.0-beta.11) + '@tanstack/start-client-core': 1.167.15 + '@tanstack/start-plugin-core': 1.167.27(vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)))(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@tanstack/start-server-core': 1.167.17 + pathe: 2.0.3 + solid-js: 2.0.0-beta.11 + vite: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + transitivePeerDependencies: + - '@rsbuild/core' + - '@tanstack/react-router' + - crossws + - supports-color + - vite-plugin-solid + - webpack + + '@tanstack/start-client-core@1.167.15': + dependencies: + '@tanstack/router-core': 1.168.13 + '@tanstack/start-fn-stubs': 1.161.6 + '@tanstack/start-storage-context': 1.166.27 + seroval: 1.5.2 + + '@tanstack/start-fn-stubs@1.161.6': {} + + '@tanstack/start-plugin-core@1.167.27(vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)))(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.29.0 + '@babel/types': 7.29.0 + '@rolldown/pluginutils': 1.0.0-beta.40 + '@tanstack/router-core': 1.168.13 + '@tanstack/router-generator': 1.166.28 + '@tanstack/router-plugin': 1.167.16(vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)))(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@tanstack/router-utils': 1.161.6 + '@tanstack/start-client-core': 1.167.15 + '@tanstack/start-server-core': 1.167.17 + cheerio: 1.2.0 + exsolve: 1.0.8 + pathe: 2.0.3 + picomatch: 4.0.4 + seroval: 1.5.2 + source-map: 0.7.6 + srvx: 0.11.15 + tinyglobby: 0.2.16 + ufo: 1.6.1 + vite: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vitefu: 1.1.3(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + xmlbuilder2: 4.0.3 + zod: 3.25.63 + transitivePeerDependencies: + - '@rsbuild/core' + - '@tanstack/react-router' + - crossws + - supports-color + - vite-plugin-solid + - webpack + + '@tanstack/start-server-core@1.167.17': + dependencies: + '@tanstack/history': 1.161.6 + '@tanstack/router-core': 1.168.13 + '@tanstack/start-client-core': 1.167.15 + '@tanstack/start-storage-context': 1.166.27 + h3-v2: h3@2.0.1-rc.16 + seroval: 1.5.2 + transitivePeerDependencies: + - crossws + + '@tanstack/start-storage-context@1.166.27': + dependencies: + '@tanstack/router-core': 1.168.13 + + '@tanstack/virtual-file-routes@1.161.7': {} + '@tauri-apps/api@1.6.0': {} '@tauri-apps/api@2.0.1': {} @@ -8767,6 +9861,11 @@ snapshots: dependencies: '@tauri-apps/api': 2.0.1 + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.27.5 @@ -8777,16 +9876,16 @@ snapshots: '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 '@types/braces@3.0.5': {} @@ -9005,7 +10104,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: '@babel/parser': 7.27.5 acorn: 8.15.0 @@ -9016,18 +10115,18 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) - '@vinxi/server-components@0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': + '@vinxi/server-components@0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) acorn: 8.15.0 acorn-loose: 8.5.1 acorn-typescript: 1.4.13(acorn@8.15.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vinxi: 0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) '@vitest/expect@2.1.9': dependencies: @@ -9036,13 +10135,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(vite@5.4.4(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0))': + '@vitest/mocker@2.1.9(vite@5.4.4(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.4(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0) + vite: 5.4.4(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0) '@vitest/pretty-format@2.1.9': dependencies: @@ -9071,7 +10170,7 @@ snapshots: '@vue/compiler-core@3.5.16': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.2 '@vue/shared': 3.5.16 entities: 4.5.0 estree-walker: 2.0.2 @@ -9084,7 +10183,7 @@ snapshots: '@vue/compiler-sfc@3.5.16': dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.2 '@vue/compiler-core': 3.5.16 '@vue/compiler-dom': 3.5.16 '@vue/compiler-ssr': 3.5.16 @@ -9325,7 +10424,16 @@ snapshots: '@babel/core': 7.27.4 '@babel/parser': 7.27.5 '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + babel-dead-code-elimination@1.0.12: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -9334,7 +10442,7 @@ snapshots: '@babel/core': 7.27.4 '@babel/helper-module-imports': 7.18.6 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 html-entities: 2.3.3 parse5: 7.3.0 validate-html-nesting: 1.2.2 @@ -9404,6 +10512,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + boolbase@1.0.0: {} + boxen@8.0.1: dependencies: ansi-align: 3.0.1 @@ -9578,6 +10688,29 @@ snapshots: check-error@2.1.1: {} + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.2.2 + css-what: 6.2.2 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.2.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 10.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 7.24.7 + whatwg-mimetype: 4.0.0 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -9775,8 +10908,18 @@ snapshots: dependencies: uncrypto: 0.1.3 + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + css-unit-converter@1.1.2: {} + css-what@6.2.2: {} + cssesc@3.0.0: {} cssstyle@4.4.0: @@ -9940,6 +11083,24 @@ snapshots: dlv@1.1.3: {} + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-case@3.0.4: dependencies: no-case: 3.0.4 @@ -9985,6 +11146,11 @@ snapshots: encodeurl@2.0.0: {} + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -9998,6 +11164,8 @@ snapshots: entities@6.0.1: {} + entities@7.0.1: {} + env-paths@3.0.0: {} error-ex@1.3.2: @@ -10218,6 +11386,8 @@ snapshots: exsolve@1.0.5: {} + exsolve@1.0.8: {} + extend@3.0.2: {} extendable-error@0.1.7: {} @@ -10296,6 +11466,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + fecha@4.2.3: {} fetch-blob@3.2.0: @@ -10432,7 +11606,6 @@ snapshots: get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 - optional: true giget@2.0.0: dependencies: @@ -10559,6 +11732,11 @@ snapshots: ufo: 1.6.1 uncrypto: 0.1.3 + h3@2.0.1-rc.16: + dependencies: + rou3: 0.8.1 + srvx: 0.11.15 + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -10641,6 +11819,13 @@ snapshots: html-void-elements@3.0.0: {} + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -10862,6 +12047,8 @@ snapshots: isarray@1.0.0: {} + isbot@5.1.37: {} + isexe@2.0.0: {} isexe@3.1.1: {} @@ -10895,6 +12082,10 @@ snapshots: dependencies: argparse: 2.0.1 + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + jsdom@25.0.1: dependencies: cssstyle: 4.4.0 @@ -10981,6 +12172,55 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + lilconfig@2.1.0: {} lilconfig@3.1.2: {} @@ -11117,13 +12357,13 @@ snapshots: magicast@0.2.11: dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 recast: 0.23.11 magicast@0.3.5: dependencies: '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/types': 7.29.0 source-map-js: 1.2.1 map-cache@0.2.2: {} @@ -11691,7 +12931,7 @@ snapshots: node-source-walk@7.0.1: dependencies: - '@babel/parser': 7.27.5 + '@babel/parser': 7.29.2 nopt@8.1.0: dependencies: @@ -11717,6 +12957,10 @@ snapshots: dependencies: path-key: 4.0.0 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + nullthrows@1.1.1: {} num2fraction@1.2.2: {} @@ -11884,10 +13128,19 @@ snapshots: parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 index-to-position: 1.1.0 type-fest: 4.41.0 + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + parse5@7.3.0: dependencies: entities: 6.0.1 @@ -11951,6 +13204,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.4: {} + pify@2.3.0: {} pify@4.0.1: {} @@ -12054,6 +13309,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.9: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + precinct@12.2.0: dependencies: '@dependents/detective-less': 5.0.1 @@ -12346,8 +13607,7 @@ snapshots: resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: - optional: true + resolve-pkg-maps@1.0.0: {} resolve@1.22.10: dependencies: @@ -12370,6 +13630,27 @@ snapshots: rfdc@1.4.1: {} + rolldown@1.0.0-rc.15: + dependencies: + '@oxc-project/types': 0.124.0 + '@rolldown/pluginutils': 1.0.0-rc.15 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.15 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 + '@rolldown/binding-darwin-x64': 1.0.0-rc.15 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 + rollup-plugin-visualizer@5.14.0(rollup@4.43.0): dependencies: open: 8.4.2 @@ -12405,6 +13686,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.43.0 fsevents: 2.3.3 + rou3@0.8.1: {} + rrweb-cssom@0.7.1: {} rrweb-cssom@0.8.0: {} @@ -12638,9 +13921,9 @@ snapshots: solid-refresh@0.6.3(solid-js@2.0.0-beta.11): dependencies: - '@babel/generator': 7.27.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/types': 7.27.6 + '@babel/generator': 7.29.1 + '@babel/helper-module-imports': 7.28.6 + '@babel/types': 7.29.0 solid-js: 2.0.0-beta.11 transitivePeerDependencies: - supports-color @@ -12671,6 +13954,8 @@ snapshots: source-map@0.7.4: {} + source-map@0.7.6: {} + space-separated-tokens@2.0.2: {} spawndamnit@3.0.1: @@ -12698,6 +13983,8 @@ snapshots: sprintf-js@1.0.3: {} + srvx@0.11.15: {} + stack-trace@0.0.10: {} stackback@0.0.2: {} @@ -12918,6 +14205,11 @@ snapshots: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + tinypool@1.1.0: {} tinyrainbow@1.2.0: {} @@ -12990,7 +14282,6 @@ snapshots: get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 - optional: true type-check@0.4.0: dependencies: @@ -13030,6 +14321,8 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 + undici@7.24.7: {} + unenv@1.10.0: dependencies: consola: 3.4.2 @@ -13213,7 +14506,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0): + vinxi@0.5.7(@types/node@22.15.31)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0): dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) @@ -13247,7 +14540,7 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.16.0(db0@0.3.2)(ioredis@5.6.1) - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) zod: 3.25.63 transitivePeerDependencies: - '@azure/app-configuration' @@ -13291,13 +14584,13 @@ snapshots: - xml2js - yaml - vite-node@2.1.9(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0): + vite-node@2.1.9(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.4(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0) + vite: 5.4.4(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0) transitivePeerDependencies: - '@types/node' - less @@ -13309,7 +14602,33 @@ snapshots: - supports-color - terser - vite-plugin-solid@2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + dependencies: + '@babel/core': 7.27.4 + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.6(@babel/core@7.27.4) + merge-anything: 5.1.7 + solid-js: 2.0.0-beta.11 + solid-refresh: 0.6.3(solid-js@2.0.0-beta.11) + vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + transitivePeerDependencies: + - supports-color + + vite-plugin-solid@2.11.12(solid-js@2.0.0-beta.11)(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + dependencies: + '@babel/core': 7.27.4 + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.6(@babel/core@7.27.4) + merge-anything: 5.1.7 + solid-js: 2.0.0-beta.11 + solid-refresh: 0.6.3(solid-js@2.0.0-beta.11) + vite: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vitefu: 1.0.6(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + transitivePeerDependencies: + - supports-color + + vite-plugin-solid@2.11.6(solid-js@2.0.0-beta.11)(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): dependencies: '@babel/core': 7.27.4 '@types/babel__core': 7.20.5 @@ -13317,12 +14636,12 @@ snapshots: merge-anything: 5.1.7 solid-js: 2.0.0-beta.11 solid-refresh: 0.6.3(solid-js@2.0.0-beta.11) - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) + vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)) transitivePeerDependencies: - supports-color - vite@5.4.4(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0): + vite@5.4.4(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0): dependencies: esbuild: 0.21.5 postcss: 8.5.5 @@ -13330,10 +14649,11 @@ snapshots: optionalDependencies: '@types/node': 22.15.31 fsevents: 2.3.3 + lightningcss: 1.32.0 sass: 1.77.8 terser: 5.42.0 - vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0): + vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -13345,19 +14665,45 @@ snapshots: '@types/node': 22.15.31 fsevents: 2.3.3 jiti: 2.4.2 + lightningcss: 1.32.0 + sass: 1.77.8 + terser: 5.42.0 + tsx: 4.20.2 + yaml: 2.5.0 + + vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.9 + rolldown: 1.0.0-rc.15 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.0.1 + esbuild: 0.25.5 + fsevents: 2.3.3 + jiti: 2.4.2 sass: 1.77.8 terser: 5.42.0 tsx: 4.20.2 yaml: 2.5.0 - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + vitefu@1.0.6(vite@6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + optionalDependencies: + vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + + vitefu@1.0.6(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): optionalDependencies: - vite: 6.3.5(@types/node@22.15.31)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + vite: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) - vitest@2.1.9(@types/node@22.15.31)(jsdom@25.0.1)(sass@1.77.8)(terser@5.42.0): + vitefu@1.1.3(vite@8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0)): + optionalDependencies: + vite: 8.0.8(@types/node@24.0.1)(esbuild@0.25.5)(jiti@2.4.2)(sass@1.77.8)(terser@5.42.0)(tsx@4.20.2)(yaml@2.5.0) + + vitest@2.1.9(@types/node@22.15.31)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.4(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0)) + '@vitest/mocker': 2.1.9(vite@5.4.4(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -13373,8 +14719,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.0 tinyrainbow: 1.2.0 - vite: 5.4.4(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0) - vite-node: 2.1.9(@types/node@22.15.31)(sass@1.77.8)(terser@5.42.0) + vite: 5.4.4(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0) + vite-node: 2.1.9(@types/node@22.15.31)(lightningcss@1.32.0)(sass@1.77.8)(terser@5.42.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.15.31 @@ -13506,6 +14852,13 @@ snapshots: xml-name-validator@5.0.0: {} + xmlbuilder2@4.0.3: + dependencies: + '@oozcitak/dom': 2.0.2 + '@oozcitak/infra': 2.0.2 + '@oozcitak/util': 10.0.0 + js-yaml: 4.1.1 + xmlchars@2.2.0: {} xtend@4.0.2: {} diff --git a/site/app.config.ts b/site/app.config.ts deleted file mode 100644 index d176ab305..000000000 --- a/site/app.config.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { defineConfig } from "@solidjs/start/config"; - -const packages = await (async () => { - try { - // @ts-ignore - return (await import("./src/_generated/packages.json")).default; - } catch (e) { - throw new Error("No packages found. Did you run `pnpm generate`?"); - } -})(); - -export default defineConfig({ - vite: { - resolve: { - // use files in packages src dir - conditions: ["@solid-primitives/source"], - }, - build: { - sourcemap: true, - }, - }, - server: { - prerender: { - routes: [ - "/", - ...packages.flatMap(({ name }: { name: string }) => [ - `/package/${name}`, - `/playground/${name}`, - ]), - ], - }, - }, -}); diff --git a/site/package.json b/site/package.json index cf8cb6a26..0d04de26f 100644 --- a/site/package.json +++ b/site/package.json @@ -4,10 +4,9 @@ "type": "module", "scripts": { "generate": "node --import=@nothing-but/node-resolve-ts --experimental-transform-types ./scripts/generate.ts", - "dev": "vinxi dev", - "build": "vinxi build", - "start": "vinxi start", - "version": "vinxi version", + "dev": "vite dev", + "build": "vite build", + "start": "node .output/server/index.mjs", "deploy": "pnpm generate && pnpm build", "preview": "node .output/server/index.mjs" }, @@ -18,7 +17,9 @@ "autoprefixer": "^10.4.16", "postcss": "^8.4.32", "tailwindcss": "3.3.3", - "tailwindcss-dir": "^4.0.0" + "tailwindcss-dir": "^4.0.0", + "vite": "^8.0.8", + "vite-plugin-solid": "^2.11.12" }, "dependencies": { "@solid-primitives/clipboard": "workspace:^", @@ -37,8 +38,8 @@ "@solid-primitives/scroll": "workspace:^", "@solid-primitives/tween": "workspace:^", "@solid-primitives/utils": "workspace:^", - "@solidjs/meta": "^0.29.3", - "@solidjs/router": "^0.13.1", + "@tanstack/solid-router": "^1.168.16", + "@tanstack/solid-start": "^1.167.28", "clsx": "^2.0.0", "fuse.js": "^7.0.0", "rehype-sanitize": "^6.0.0", diff --git a/site/src/app.tsx b/site/src/app.tsx deleted file mode 100644 index af1d4d400..000000000 --- a/site/src/app.tsx +++ /dev/null @@ -1,93 +0,0 @@ -// @refresh reload -import { ErrorBoundary, type ParentProps, Suspense } from "solid-js"; - -import "./app.scss"; - -import Header from "./components/Header/Header.js"; -import SolidBlocksHeaderClusterDefs from "./components/Icons/SolidBlocksHeaderClusterDefs.js"; -import Footer from "./components/Footer/Footer.js"; -import { MetaProvider, Title } from "@solidjs/meta"; -import { Router } from "@solidjs/router"; -import { FileRoutes } from "@solidjs/start/router"; -import DocumentHydrationHelper from "./primitives/DocumentHydrationHelper.jsx"; - -const SITE_URL = import.meta.env.VITE_SITE_URL; - -export default function Root() { - return ( - ( - - {props.children} - - )} - > - - - ); -} - -function RootContent(props: ParentProps) { - return ( - - - Solid Primitives - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - {props.children} -
-
-
-
-
- - - ); -} diff --git a/site/src/components/BundleSizeModal/BundleSizeModal.tsx b/site/src/components/BundleSizeModal/BundleSizeModal.tsx index db456e463..1bd7a078b 100644 --- a/site/src/components/BundleSizeModal/BundleSizeModal.tsx +++ b/site/src/components/BundleSizeModal/BundleSizeModal.tsx @@ -2,7 +2,7 @@ import { createVisibilityObserver } from "@solid-primitives/intersection-observe import { isIOS, isSafari } from "@solid-primitives/platform"; import { createResizeObserver } from "@solid-primitives/resize-observer"; import { type Component, createSignal, For, onMount } from "solid-js"; -import { Bundlesize, BundlesizeItem } from "~/types.js"; +import type { Bundlesize, BundlesizeItem } from "~/types.js"; const SHARED_HEADERS = ["Minified", "Minified + GZipped"] as const; const PACKAGE_TH_HEADERS = ["Package", ...SHARED_HEADERS] as const; diff --git a/site/src/components/Header/Header.tsx b/site/src/components/Header/Header.tsx index f5c8d3ae3..e25a46a7f 100644 --- a/site/src/components/Header/Header.tsx +++ b/site/src/components/Header/Header.tsx @@ -20,7 +20,7 @@ import ThemeBtn from "./ThemeBtn.js"; import clsx from "clsx"; import { createTween } from "@solid-primitives/tween"; import SearchModal from "../Search/SearchModal.js"; -import { A, useLocation } from "@solidjs/router"; +import { Link, useLocation } from "@tanstack/solid-router"; export const [isScrollEnabled, setScrollEnabled] = createSignal(false); @@ -126,7 +126,7 @@ const Header: Component = () => { createEffect( defer( - createMemo(() => location.hash), + createMemo(() => location().hash), () => setIsNavOpen(false), ), ); @@ -161,7 +161,7 @@ const Header: Component = () => { classList={{ "opacity-100": isNavOpen() }} />
- + { src="/img/solid-primitives-stacked-dark-logo.svg" alt="" /> - +
); diff --git a/site/src/components/Primitives/PrimitiveBtn.tsx b/site/src/components/Primitives/PrimitiveBtn.tsx index c8a7af3fb..dffc52d40 100644 --- a/site/src/components/Primitives/PrimitiveBtn.tsx +++ b/site/src/components/Primitives/PrimitiveBtn.tsx @@ -1,14 +1,15 @@ import { type ParentComponent } from "solid-js"; -import { A } from "@solidjs/router"; +import { Link } from "@tanstack/solid-router"; const PrimitiveBtn: ParentComponent<{ href: string }> = props => { return ( - {props.children} - + ); }; diff --git a/site/src/components/Search/ClientSearchModal.tsx b/site/src/components/Search/ClientSearchModal.tsx index 8a73b8f30..f776e03d2 100644 --- a/site/src/components/Search/ClientSearchModal.tsx +++ b/site/src/components/Search/ClientSearchModal.tsx @@ -8,7 +8,7 @@ import { createShortcut } from "~/primitives/createShortcut.js"; import { doesPathnameMatchBase, scrollIntoView } from "~/utils.js"; import * as Header from "../Header/Header.js"; import Search from "./Search.js"; -import { useLocation } from "@solidjs/router"; +import { useLocation } from "@tanstack/solid-router"; const ClientSearchModal: Component<{ menuButton: HTMLElement; @@ -47,22 +47,23 @@ const ClientSearchModal: Component<{ rootApp.style.right = ""; if ( - !doesPathnameMatchBase(location.pathname) && - !location.hash && - prevPathname !== location.pathname + !doesPathnameMatchBase(location().pathname) && + !location().hash && + prevPathname !== location().pathname ) { - prevPathname = location.pathname; + prevPathname = location().pathname; prevScrollY = 1; } window.scrollTo({ top: prevScrollY }); }; const scrollToLink = () => { - if (!location.hash) return; - if (location.hash === prevHash) return; - prevHash = location.hash; + const hash = location().hash; + if (!hash) return; + if (hash === prevHash) return; + prevHash = hash; - scrollIntoView(`[href="${location.hash}"]`, { behavior: "auto", offset: 70 }); + scrollIntoView(`[href="#${hash}"]`, { behavior: "auto", offset: 70 }); }; const onClickClose = () => { @@ -84,15 +85,15 @@ const ClientSearchModal: Component<{ () => props.open, open => { if (!open) return; - prevPathname = location.pathname; - prevHash = location.hash; + prevPathname = location().pathname; + prevHash = location().hash; }, ), ); createEffect( defer( - () => location.pathname, + () => location().pathname, (currentPathname, prevPathname) => { if (prevPathname === currentPathname) return; props.setOpen(false); diff --git a/site/src/components/Search/Search.tsx b/site/src/components/Search/Search.tsx index caa43f57a..1ef25d58b 100644 --- a/site/src/components/Search/Search.tsx +++ b/site/src/components/Search/Search.tsx @@ -7,7 +7,7 @@ import { type Component, createMemo, createResource, createSignal, For, Show } f import { fetchPackageList } from "~/api.js"; import { type PackageListItem } from "~/types.js"; import { focusInputAndKeepVirtualKeyboardOpen } from "~/utils.js"; -import { A } from "@solidjs/router"; +import { Link } from "@tanstack/solid-router"; let inputEl: HTMLInputElement | undefined; @@ -156,7 +156,9 @@ const Search: Component<{ class="text-lg font-semibold text-[#49494B] dark:text-[#bec5cf]" data-ignore-mark-title > - {highlight(match.name)} + + {highlight(match.name)} +

{highlight(match.description)}

@@ -166,12 +168,12 @@ const Search: Component<{ {(primitive, idx) => (
  • - {highlight(primitive)} - +
  • )} diff --git a/site/src/components/table.tsx b/site/src/components/table.tsx index d081a1fa7..e0ba60583 100644 --- a/site/src/components/table.tsx +++ b/site/src/components/table.tsx @@ -5,7 +5,7 @@ import { createEffect, createSignal, onMount, type ParentComponent } from "solid import { pageWidthClass } from "~/constants.js"; import { doesPathnameMatchBase, reflow } from "~/utils.js"; import * as Header from "./Header/Header.js"; -import { useLocation } from "@solidjs/router"; +import { useLocation } from "@tanstack/solid-router"; export const TR: ParentComponent = props => { return ( @@ -402,10 +402,10 @@ export const Table: ParentComponent = props => { createEffect( defer( - () => location.hash, + () => location().hash, (currentHash, prevHash) => { if (prevHash === currentHash) return; - if (!doesPathnameMatchBase(location.pathname)) return; + if (!doesPathnameMatchBase(location().pathname)) return; const run = () => { const tableElBCR = tableEl.getBoundingClientRect(); diff --git a/site/src/entry-client.tsx b/site/src/entry-client.tsx deleted file mode 100644 index 0155fda87..000000000 --- a/site/src/entry-client.tsx +++ /dev/null @@ -1,29 +0,0 @@ -// @refresh reload -import { debounce } from "@solid-primitives/scheduled"; -import { mount, StartClient } from "@solidjs/start/client"; - -// import "solid-devtools"; - -// Primitives/Table.tsx produces a lot of hydration warnings in development mode. -if (import.meta.env.MODE === "development") { - const keys: string[] = []; - // eslint-disable-next-line no-console - const cw = console.warn; - // eslint-disable-next-line no-console - console.warn = (...args) => { - if (args[0] === "Unable to find DOM nodes for hydration key:") { - keys.push(args[1]); - logStoredWarnings(); - } else cw(...args); - }; - const logStoredWarnings = debounce(() => { - // eslint-disable-next-line no-console - console.groupCollapsed(`There were ${keys.length} hydration warnings.`); - keys.forEach(key => cw("Unable to find DOM nodes for hydration key:", key)); - // eslint-disable-next-line no-console - console.groupEnd(); - keys.length = 0; - }, 1000); -} - -mount(() => , document); diff --git a/site/src/entry-server.tsx b/site/src/entry-server.tsx deleted file mode 100644 index 9ed70b56e..000000000 --- a/site/src/entry-server.tsx +++ /dev/null @@ -1,6 +0,0 @@ -// @refresh reload -import { createHandler, StartServer } from "@solidjs/start/server"; - -export default createHandler(() => props.children} />, { - mode: "async", -}); diff --git a/site/src/primitives/DocumentHydrationHelper.tsx b/site/src/primitives/DocumentHydrationHelper.tsx deleted file mode 100644 index dd62b47ad..000000000 --- a/site/src/primitives/DocumentHydrationHelper.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { getRequestEvent, HydrationScript, NoHydration } from "solid-js/web"; -import type { Asset, PageEvent } from "@solidjs/start/server"; -import type { JSX } from "solid-js"; - -const assetMap = { - style: (props: { attrs: JSX.StyleHTMLAttributes; children?: JSX.Element }) => ( - - ), - link: (props: { attrs: JSX.LinkHTMLAttributes }) => , - script: (props: { - attrs: JSX.ScriptHTMLAttributes; - key: string | undefined; - }) => { - return props.attrs.src ? ( - - ) : null; - }, -}; - -export function renderAsset(asset: Asset) { - let { tag, attrs: { key, ...attrs } = { key: undefined }, children } = asset as any; - return (assetMap as any)[tag]({ attrs, key, children }); -} - -export default function () { - const context = getRequestEvent() as PageEvent; - // @ts-ignore - const nonce = context?.nonce; - return ( - <> - - - {context.assets.map((m: any) => renderAsset(m))} - {nonce ? ( - <> -