solid-js 1.8.22 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/dev.cjs +7 -6
  2. package/dist/dev.js +567 -325
  3. package/dist/server.cjs +1 -1
  4. package/dist/server.js +169 -75
  5. package/dist/solid.cjs +7 -6
  6. package/dist/solid.js +494 -283
  7. package/h/dist/h.js +40 -9
  8. package/h/jsx-runtime/dist/jsx.js +1 -1
  9. package/h/jsx-runtime/types/index.d.ts +13 -10
  10. package/h/jsx-runtime/types/jsx.d.ts +22 -1
  11. package/h/types/hyperscript.d.ts +11 -11
  12. package/h/types/index.d.ts +1 -1
  13. package/html/dist/html.cjs +4 -2
  14. package/html/dist/html.js +222 -95
  15. package/html/types/index.d.ts +1 -1
  16. package/html/types/lit.d.ts +52 -33
  17. package/package.json +1 -5
  18. package/store/dist/dev.cjs +1 -1
  19. package/store/dist/dev.js +123 -43
  20. package/store/dist/server.cjs +4 -0
  21. package/store/dist/server.js +23 -8
  22. package/store/dist/store.cjs +1 -1
  23. package/store/dist/store.js +114 -40
  24. package/store/package.json +0 -4
  25. package/store/types/index.d.ts +21 -7
  26. package/store/types/modifiers.d.ts +6 -3
  27. package/store/types/mutable.d.ts +5 -2
  28. package/store/types/server.d.ts +26 -5
  29. package/store/types/store.d.ts +219 -62
  30. package/types/index.d.ts +75 -10
  31. package/types/jsx.d.ts +35 -8
  32. package/types/reactive/array.d.ts +12 -4
  33. package/types/reactive/observable.d.ts +25 -17
  34. package/types/reactive/scheduler.d.ts +9 -6
  35. package/types/reactive/signal.d.ts +236 -143
  36. package/types/render/Suspense.d.ts +5 -5
  37. package/types/render/component.d.ts +64 -33
  38. package/types/render/flow.d.ts +43 -31
  39. package/types/render/hydration.d.ts +15 -15
  40. package/types/server/index.d.ts +57 -2
  41. package/types/server/reactive.d.ts +73 -42
  42. package/types/server/rendering.d.ts +169 -98
  43. package/universal/dist/dev.js +28 -12
  44. package/universal/dist/universal.js +28 -12
  45. package/universal/types/index.d.ts +3 -1
  46. package/universal/types/universal.d.ts +0 -1
  47. package/web/dist/dev.cjs +57 -24
  48. package/web/dist/dev.js +679 -101
  49. package/web/dist/server.cjs +96 -15
  50. package/web/dist/server.js +676 -105
  51. package/web/dist/web.cjs +53 -23
  52. package/web/dist/web.js +664 -99
  53. package/web/package.json +0 -4
  54. package/web/storage/dist/storage.js +3 -3
  55. package/web/types/client.d.ts +5 -3
  56. package/web/types/core.d.ts +10 -1
  57. package/web/types/index.d.ts +27 -10
  58. package/web/types/server-mock.d.ts +47 -32
  59. package/web/types/server.d.ts +88 -0
@@ -26,64 +26,68 @@ import type { JSX } from "../jsx.js";
26
26
  import type { FlowComponent } from "../render/index.js";
27
27
  export declare const equalFn: <T>(a: T, b: T) => boolean;
28
28
  export declare const $PROXY: unique symbol;
29
+ export declare const SUPPORTS_PROXY: boolean;
29
30
  export declare const $TRACK: unique symbol;
30
31
  export declare const $DEVCOMP: unique symbol;
31
32
  export declare var Owner: Owner | null;
32
33
  export declare let Transition: TransitionState | null;
33
34
  /** Object storing callbacks for debugging during development */
34
35
  export declare const DevHooks: {
35
- afterUpdate: (() => void) | null;
36
- afterCreateOwner: ((owner: Owner) => void) | null;
37
- afterCreateSignal: ((signal: SignalState<any>) => void) | null;
36
+ afterUpdate: (() => void) | null;
37
+ afterCreateOwner: ((owner: Owner) => void) | null;
38
+ afterCreateSignal: ((signal: SignalState<any>) => void) | null;
38
39
  };
39
40
  export type ComputationState = 0 | 1 | 2;
40
41
  export interface SourceMapValue {
41
- value: unknown;
42
- name?: string;
43
- graph?: Owner;
42
+ value: unknown;
43
+ name?: string;
44
+ graph?: Owner;
44
45
  }
45
46
  export interface SignalState<T> extends SourceMapValue {
46
- value: T;
47
- observers: Computation<any>[] | null;
48
- observerSlots: number[] | null;
49
- tValue?: T;
50
- comparator?: (prev: T, next: T) => boolean;
47
+ value: T;
48
+ observers: Computation<any>[] | null;
49
+ observerSlots: number[] | null;
50
+ tValue?: T;
51
+ comparator?: (prev: T, next: T) => boolean;
51
52
  }
52
53
  export interface Owner {
53
- owned: Computation<any>[] | null;
54
- cleanups: (() => void)[] | null;
55
- owner: Owner | null;
56
- context: any | null;
57
- sourceMap?: SourceMapValue[];
58
- name?: string;
54
+ owned: Computation<any>[] | null;
55
+ cleanups: (() => void)[] | null;
56
+ owner: Owner | null;
57
+ context: any | null;
58
+ sourceMap?: SourceMapValue[];
59
+ name?: string;
59
60
  }
60
61
  export interface Computation<Init, Next extends Init = Init> extends Owner {
61
- fn: EffectFunction<Init, Next>;
62
- state: ComputationState;
63
- tState?: ComputationState;
64
- sources: SignalState<Next>[] | null;
65
- sourceSlots: number[] | null;
66
- value?: Init;
67
- updatedAt: number | null;
68
- pure: boolean;
69
- user?: boolean;
70
- suspense?: SuspenseContextType;
62
+ fn: EffectFunction<Init, Next>;
63
+ state: ComputationState;
64
+ tState?: ComputationState;
65
+ sources: SignalState<Next>[] | null;
66
+ sourceSlots: number[] | null;
67
+ value?: Init;
68
+ updatedAt: number | null;
69
+ pure: boolean;
70
+ user?: boolean;
71
+ suspense?: SuspenseContextType;
71
72
  }
72
73
  export interface TransitionState {
73
- sources: Set<SignalState<any>>;
74
- effects: Computation<any>[];
75
- promises: Set<Promise<any>>;
76
- disposed: Set<Computation<any>>;
77
- queue: Set<Computation<any>>;
78
- scheduler?: (fn: () => void) => unknown;
79
- running: boolean;
80
- done?: Promise<void>;
81
- resolve?: () => void;
74
+ sources: Set<SignalState<any>>;
75
+ effects: Computation<any>[];
76
+ promises: Set<Promise<any>>;
77
+ disposed: Set<Computation<any>>;
78
+ queue: Set<Computation<any>>;
79
+ scheduler?: (fn: () => void) => unknown;
80
+ running: boolean;
81
+ done?: Promise<void>;
82
+ resolve?: () => void;
82
83
  }
83
- type ExternalSourceFactory = <Prev, Next extends Prev = Prev>(fn: EffectFunction<Prev, Next>, trigger: () => void) => ExternalSource;
84
+ type ExternalSourceFactory = <Prev, Next extends Prev = Prev>(
85
+ fn: EffectFunction<Prev, Next>,
86
+ trigger: () => void
87
+ ) => ExternalSource;
84
88
  export interface ExternalSource {
85
- track: EffectFunction<any, any>;
86
- dispose: () => void;
89
+ track: EffectFunction<any, any>;
90
+ dispose: () => void;
87
91
  }
88
92
  export type RootFunction<T> = (dispose: () => void) => T;
89
93
  /**
@@ -98,14 +102,16 @@ export type RootFunction<T> = (dispose: () => void) => T;
98
102
  export declare function createRoot<T>(fn: RootFunction<T>, detachedOwner?: typeof Owner): T;
99
103
  export type Accessor<T> = () => T;
100
104
  export type Setter<in out T> = {
101
- <U extends T>(...args: undefined extends T ? [] : [value: (prev: T) => U]): undefined extends T ? undefined : U;
102
- <U extends T>(value: (prev: T) => U): U;
103
- <U extends T>(value: Exclude<U, Function>): U;
104
- <U extends T>(value: Exclude<U, Function> | ((prev: T) => U)): U;
105
+ <U extends T>(value: Exclude<U, Function> | ((prev: T) => U)): U;
106
+ <U extends T>(...args: undefined extends T ? [] : [value: (prev: T) => U]): undefined extends T
107
+ ? undefined
108
+ : U;
109
+ <U extends T>(value: Exclude<U, Function>): U;
110
+ <U extends T>(value: (prev: T) => U): U;
105
111
  };
106
112
  export type Signal<T> = [get: Accessor<T>, set: Setter<T>];
107
113
  export interface SignalOptions<T> extends MemoOptions<T> {
108
- internal?: boolean;
114
+ internal?: boolean;
109
115
  }
110
116
  /**
111
117
  * Creates a simple reactive state with a getter and setter
@@ -133,11 +139,10 @@ export interface SignalOptions<T> extends MemoOptions<T> {
133
139
  export declare function createSignal<T>(): Signal<T | undefined>;
134
140
  export declare function createSignal<T>(value: T, options?: SignalOptions<T>): Signal<T>;
135
141
  export interface BaseOptions {
136
- name?: string;
142
+ name?: string;
137
143
  }
138
144
  export type NoInfer<T extends any> = [T][T extends any ? 0 : never];
139
- export interface EffectOptions extends BaseOptions {
140
- }
145
+ export interface EffectOptions extends BaseOptions {}
141
146
  export type EffectFunction<Prev, Next extends Prev = Prev> = (v: Prev) => Next;
142
147
  /**
143
148
  * Creates a reactive computation that runs immediately before render, mainly used to write to other reactive primitives
@@ -154,8 +159,14 @@ export type EffectFunction<Prev, Next extends Prev = Prev> = (v: Prev) => Next;
154
159
  *
155
160
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-computed
156
161
  */
157
- export declare function createComputed<Next>(fn: EffectFunction<undefined | NoInfer<Next>, Next>): void;
158
- export declare function createComputed<Next, Init = Next>(fn: EffectFunction<Init | Next, Next>, value: Init, options?: EffectOptions): void;
162
+ export declare function createComputed<Next>(
163
+ fn: EffectFunction<undefined | NoInfer<Next>, Next>
164
+ ): void;
165
+ export declare function createComputed<Next, Init = Next>(
166
+ fn: EffectFunction<Init | Next, Next>,
167
+ value: Init,
168
+ options?: EffectOptions
169
+ ): void;
159
170
  /**
160
171
  * Creates a reactive computation that runs during the render phase as DOM elements are created and updated but not necessarily connected
161
172
  * ```typescript
@@ -171,8 +182,14 @@ export declare function createComputed<Next, Init = Next>(fn: EffectFunction<Ini
171
182
  *
172
183
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-render-effect
173
184
  */
174
- export declare function createRenderEffect<Next>(fn: EffectFunction<undefined | NoInfer<Next>, Next>): void;
175
- export declare function createRenderEffect<Next, Init = Next>(fn: EffectFunction<Init | Next, Next>, value: Init, options?: EffectOptions): void;
185
+ export declare function createRenderEffect<Next>(
186
+ fn: EffectFunction<undefined | NoInfer<Next>, Next>
187
+ ): void;
188
+ export declare function createRenderEffect<Next, Init = Next>(
189
+ fn: EffectFunction<Init | Next, Next>,
190
+ value: Init,
191
+ options?: EffectOptions
192
+ ): void;
176
193
  /**
177
194
  * Creates a reactive computation that runs after the render phase
178
195
  * ```typescript
@@ -188,10 +205,16 @@ export declare function createRenderEffect<Next, Init = Next>(fn: EffectFunction
188
205
  *
189
206
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-effect
190
207
  */
191
- export declare function createEffect<Next>(fn: EffectFunction<undefined | NoInfer<Next>, Next>): void;
192
- export declare function createEffect<Next, Init = Next>(fn: EffectFunction<Init | Next, Next>, value: Init, options?: EffectOptions & {
208
+ export declare function createEffect<Next>(
209
+ fn: EffectFunction<undefined | NoInfer<Next>, Next>
210
+ ): void;
211
+ export declare function createEffect<Next, Init = Next>(
212
+ fn: EffectFunction<Init | Next, Next>,
213
+ value: Init,
214
+ options?: EffectOptions & {
193
215
  render?: boolean;
194
- }): void;
216
+ }
217
+ ): void;
195
218
  /**
196
219
  * Creates a reactive computation that runs after the render phase with flexible tracking
197
220
  * ```typescript
@@ -205,13 +228,16 @@ export declare function createEffect<Next, Init = Next>(fn: EffectFunction<Init
205
228
  *
206
229
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-reaction
207
230
  */
208
- export declare function createReaction(onInvalidate: () => void, options?: EffectOptions): (tracking: () => void) => void;
231
+ export declare function createReaction(
232
+ onInvalidate: () => void,
233
+ options?: EffectOptions
234
+ ): (tracking: () => void) => void;
209
235
  export interface Memo<Prev, Next = Prev> extends SignalState<Next>, Computation<Next> {
210
- value: Next;
211
- tOwned?: Computation<Prev | Next, Next>[];
236
+ value: Next;
237
+ tOwned?: Computation<Prev | Next, Next>[];
212
238
  }
213
239
  export interface MemoOptions<T> extends EffectOptions {
214
- equals?: false | ((prev: T, next: T) => boolean);
240
+ equals?: false | ((prev: T, next: T) => boolean);
215
241
  }
216
242
  /**
217
243
  * Creates a readonly derived reactive memoized signal
@@ -228,72 +254,84 @@ export interface MemoOptions<T> extends EffectOptions {
228
254
  *
229
255
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-memo
230
256
  */
231
- export declare function createMemo<Next extends Prev, Prev = Next>(fn: EffectFunction<undefined | NoInfer<Prev>, Next>): Accessor<Next>;
232
- export declare function createMemo<Next extends Prev, Init = Next, Prev = Next>(fn: EffectFunction<Init | Prev, Next>, value: Init, options?: MemoOptions<Next>): Accessor<Next>;
257
+ export declare function createMemo<Next extends Prev, Prev = Next>(
258
+ fn: EffectFunction<undefined | NoInfer<Prev>, Next>
259
+ ): Accessor<Next>;
260
+ export declare function createMemo<Next extends Prev, Init = Next, Prev = Next>(
261
+ fn: EffectFunction<Init | Prev, Next>,
262
+ value: Init,
263
+ options?: MemoOptions<Next>
264
+ ): Accessor<Next>;
233
265
  interface Unresolved {
234
- state: "unresolved";
235
- loading: false;
236
- error: undefined;
237
- latest: undefined;
238
- (): undefined;
266
+ state: "unresolved";
267
+ loading: false;
268
+ error: undefined;
269
+ latest: undefined;
270
+ (): undefined;
239
271
  }
240
272
  interface Pending {
241
- state: "pending";
242
- loading: true;
243
- error: undefined;
244
- latest: undefined;
245
- (): undefined;
273
+ state: "pending";
274
+ loading: true;
275
+ error: undefined;
276
+ latest: undefined;
277
+ (): undefined;
246
278
  }
247
279
  interface Ready<T> {
248
- state: "ready";
249
- loading: false;
250
- error: undefined;
251
- latest: T;
252
- (): T;
280
+ state: "ready";
281
+ loading: false;
282
+ error: undefined;
283
+ latest: T;
284
+ (): T;
253
285
  }
254
286
  interface Refreshing<T> {
255
- state: "refreshing";
256
- loading: true;
257
- error: undefined;
258
- latest: T;
259
- (): T;
287
+ state: "refreshing";
288
+ loading: true;
289
+ error: undefined;
290
+ latest: T;
291
+ (): T;
260
292
  }
261
293
  interface Errored {
262
- state: "errored";
263
- loading: false;
264
- error: any;
265
- latest: never;
266
- (): never;
294
+ state: "errored";
295
+ loading: false;
296
+ error: any;
297
+ latest: never;
298
+ (): never;
267
299
  }
268
300
  export type Resource<T> = Unresolved | Pending | Ready<T> | Refreshing<T> | Errored;
269
301
  export type InitializedResource<T> = Ready<T> | Refreshing<T> | Errored;
270
302
  export type ResourceActions<T, R = unknown> = {
271
- mutate: Setter<T>;
272
- refetch: (info?: R) => T | Promise<T> | undefined | null;
303
+ mutate: Setter<T>;
304
+ refetch: (info?: R) => T | Promise<T> | undefined | null;
273
305
  };
274
306
  export type ResourceSource<S> = S | false | null | undefined | (() => S | false | null | undefined);
275
- export type ResourceFetcher<S, T, R = unknown> = (k: S, info: ResourceFetcherInfo<T, R>) => T | Promise<T>;
307
+ export type ResourceFetcher<S, T, R = unknown> = (
308
+ k: S,
309
+ info: ResourceFetcherInfo<T, R>
310
+ ) => T | Promise<T>;
276
311
  export type ResourceFetcherInfo<T, R = unknown> = {
277
- value: T | undefined;
278
- refetching: R | boolean;
312
+ value: T | undefined;
313
+ refetching: R | boolean;
279
314
  };
280
315
  export type ResourceOptions<T, S = unknown> = {
281
- initialValue?: T;
282
- name?: string;
283
- deferStream?: boolean;
284
- ssrLoadFrom?: "initial" | "server";
285
- storage?: (init: T | undefined) => [Accessor<T | undefined>, Setter<T | undefined>];
286
- onHydrated?: (k: S | undefined, info: {
287
- value: T | undefined;
288
- }) => void;
316
+ initialValue?: T;
317
+ name?: string;
318
+ deferStream?: boolean;
319
+ ssrLoadFrom?: "initial" | "server";
320
+ storage?: (init: T | undefined) => [Accessor<T | undefined>, Setter<T | undefined>];
321
+ onHydrated?: (
322
+ k: S | undefined,
323
+ info: {
324
+ value: T | undefined;
325
+ }
326
+ ) => void;
289
327
  };
290
328
  export type InitializedResourceOptions<T, S = unknown> = ResourceOptions<T, S> & {
291
- initialValue: T;
329
+ initialValue: T;
292
330
  };
293
331
  export type ResourceReturn<T, R = unknown> = [Resource<T>, ResourceActions<T | undefined, R>];
294
332
  export type InitializedResourceReturn<T, R = unknown> = [
295
- InitializedResource<T>,
296
- ResourceActions<T, R>
333
+ InitializedResource<T>,
334
+ ResourceActions<T, R>
297
335
  ];
298
336
  /**
299
337
  * Creates a resource that wraps a repeated promise in a reactive pattern:
@@ -323,14 +361,28 @@ export type InitializedResourceReturn<T, R = unknown> = [
323
361
  *
324
362
  * @description https://docs.solidjs.com/reference/basic-reactivity/create-resource
325
363
  */
326
- export declare function createResource<T, R = unknown>(fetcher: ResourceFetcher<true, T, R>, options: InitializedResourceOptions<NoInfer<T>, true>): InitializedResourceReturn<T, R>;
327
- export declare function createResource<T, R = unknown>(fetcher: ResourceFetcher<true, T, R>, options?: ResourceOptions<NoInfer<T>, true>): ResourceReturn<T, R>;
328
- export declare function createResource<T, S, R = unknown>(source: ResourceSource<S>, fetcher: ResourceFetcher<S, T, R>, options: InitializedResourceOptions<NoInfer<T>, S>): InitializedResourceReturn<T, R>;
329
- export declare function createResource<T, S, R = unknown>(source: ResourceSource<S>, fetcher: ResourceFetcher<S, T, R>, options?: ResourceOptions<NoInfer<T>, S>): ResourceReturn<T, R>;
364
+ export declare function createResource<T, R = unknown>(
365
+ fetcher: ResourceFetcher<true, T, R>,
366
+ options: InitializedResourceOptions<NoInfer<T>, true>
367
+ ): InitializedResourceReturn<T, R>;
368
+ export declare function createResource<T, R = unknown>(
369
+ fetcher: ResourceFetcher<true, T, R>,
370
+ options?: ResourceOptions<NoInfer<T>, true>
371
+ ): ResourceReturn<T, R>;
372
+ export declare function createResource<T, S, R = unknown>(
373
+ source: ResourceSource<S>,
374
+ fetcher: ResourceFetcher<S, T, R>,
375
+ options: InitializedResourceOptions<NoInfer<T>, S>
376
+ ): InitializedResourceReturn<T, R>;
377
+ export declare function createResource<T, S, R = unknown>(
378
+ source: ResourceSource<S>,
379
+ fetcher: ResourceFetcher<S, T, R>,
380
+ options?: ResourceOptions<NoInfer<T>, S>
381
+ ): ResourceReturn<T, R>;
330
382
  export interface DeferredOptions<T> {
331
- equals?: false | ((prev: T, next: T) => boolean);
332
- name?: string;
333
- timeoutMs?: number;
383
+ equals?: false | ((prev: T, next: T) => boolean);
384
+ name?: string;
385
+ timeoutMs?: number;
334
386
  }
335
387
  /**
336
388
  * Creates a reactive computation that only runs and notifies the reactive context when the browser is idle
@@ -345,7 +397,10 @@ export interface DeferredOptions<T> {
345
397
  *
346
398
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-deferred
347
399
  */
348
- export declare function createDeferred<T>(source: Accessor<T>, options?: DeferredOptions<T>): Accessor<T>;
400
+ export declare function createDeferred<T>(
401
+ source: Accessor<T>,
402
+ options?: DeferredOptions<T>
403
+ ): Accessor<T>;
349
404
  export type EqualityCheckerFunction<T, U> = (a: U, b: T) => boolean;
350
405
  /**
351
406
  * Creates a conditional signal that only notifies subscribers when entering or exiting their key matching the value
@@ -371,7 +426,11 @@ export type EqualityCheckerFunction<T, U> = (a: U, b: T) => boolean;
371
426
  *
372
427
  * @description https://docs.solidjs.com/reference/secondary-primitives/create-selector
373
428
  */
374
- export declare function createSelector<T, U = T>(source: Accessor<T>, fn?: EqualityCheckerFunction<T, U>, options?: BaseOptions): (key: U) => boolean;
429
+ export declare function createSelector<T, U = T>(
430
+ source: Accessor<T>,
431
+ fn?: EqualityCheckerFunction<T, U>,
432
+ options?: BaseOptions
433
+ ): (key: U) => boolean;
375
434
  /**
376
435
  * Holds changes inside the block before the reactive context is updated
377
436
  * @param fn wraps the reactive updates that should be batched
@@ -389,15 +448,28 @@ export declare function batch<T>(fn: Accessor<T>): T;
389
448
  */
390
449
  export declare function untrack<T>(fn: Accessor<T>): T;
391
450
  /** @deprecated */
392
- export type ReturnTypes<T> = T extends readonly Accessor<unknown>[] ? {
393
- [K in keyof T]: T[K] extends Accessor<infer I> ? I : never;
394
- } : T extends Accessor<infer I> ? I : never;
395
- export type AccessorArray<T> = [...Extract<{
396
- [K in keyof T]: Accessor<T[K]>;
397
- }, readonly unknown[]>];
398
- export type OnEffectFunction<S, Prev, Next extends Prev = Prev> = (input: S, prevInput: S | undefined, prev: Prev) => Next;
451
+ export type ReturnTypes<T> = T extends readonly Accessor<unknown>[]
452
+ ? {
453
+ [K in keyof T]: T[K] extends Accessor<infer I> ? I : never;
454
+ }
455
+ : T extends Accessor<infer I>
456
+ ? I
457
+ : never;
458
+ export type AccessorArray<T> = [
459
+ ...Extract<
460
+ {
461
+ [K in keyof T]: Accessor<T[K]>;
462
+ },
463
+ readonly unknown[]
464
+ >
465
+ ];
466
+ export type OnEffectFunction<S, Prev, Next extends Prev = Prev> = (
467
+ input: S,
468
+ prevInput: S | undefined,
469
+ prev: Prev
470
+ ) => Next;
399
471
  export interface OnOptions {
400
- defer?: boolean;
472
+ defer?: boolean;
401
473
  }
402
474
  /**
403
475
  * Makes dependencies of a computation explicit
@@ -423,14 +495,24 @@ export interface OnOptions {
423
495
  * });
424
496
  * ```
425
497
  *
426
- * @description https://docs.solidjs.com/reference/jsx-attributes/on_
498
+ * @description https://docs.solidjs.com/reference/reactive-utilities/on
427
499
  */
428
- export declare function on<S, Next extends Prev, Prev = Next>(deps: AccessorArray<S> | Accessor<S>, fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>, options?: OnOptions & {
500
+ export declare function on<S, Next extends Prev, Prev = Next>(
501
+ deps: AccessorArray<S> | Accessor<S>,
502
+ fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>,
503
+ options?: OnOptions & {
429
504
  defer?: false;
430
- }): EffectFunction<undefined | NoInfer<Next>, NoInfer<Next>>;
431
- export declare function on<S, Next extends Prev, Prev = Next>(deps: AccessorArray<S> | Accessor<S>, fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>, options: OnOptions | {
432
- defer: true;
433
- }): EffectFunction<undefined | NoInfer<Next>>;
505
+ }
506
+ ): EffectFunction<undefined | NoInfer<Next>, NoInfer<Next>>;
507
+ export declare function on<S, Next extends Prev, Prev = Next>(
508
+ deps: AccessorArray<S> | Accessor<S>,
509
+ fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>,
510
+ options:
511
+ | OnOptions
512
+ | {
513
+ defer: true;
514
+ }
515
+ ): EffectFunction<undefined | NoInfer<Next>>;
434
516
  /**
435
517
  * Runs an effect only after initial render on mount
436
518
  * @param fn an effect that should run only once on mount
@@ -476,6 +558,7 @@ export type Transition = [Accessor<boolean>, (fn: () => void) => Promise<void>];
476
558
  * () => boolean,
477
559
  * (fn: () => void, cb?: () => void) => void
478
560
  * ];
561
+ * ```
479
562
  * @returns a tuple; first value is an accessor if the transition is pending and a callback to start the transition
480
563
  *
481
564
  * @description https://docs.solidjs.com/reference/reactive-utilities/use-transition
@@ -483,19 +566,19 @@ export type Transition = [Accessor<boolean>, (fn: () => void) => Promise<void>];
483
566
  export declare function useTransition(): Transition;
484
567
  export declare function resumeEffects(e: Computation<any>[]): void;
485
568
  export interface DevComponent<T> extends Memo<unknown> {
486
- props: T;
487
- name: string;
488
- component: (props: T) => unknown;
569
+ props: T;
570
+ name: string;
571
+ component: (props: T) => unknown;
489
572
  }
490
573
  export declare function devComponent<P, V>(Comp: (props: P) => V, props: P): V;
491
574
  export declare function registerGraph(value: SourceMapValue): void;
492
575
  export type ContextProviderComponent<T> = FlowComponent<{
493
- value: T;
576
+ value: T;
494
577
  }>;
495
578
  export interface Context<T> {
496
- id: symbol;
497
- Provider: ContextProviderComponent<T>;
498
- defaultValue: T;
579
+ id: symbol;
580
+ Provider: ContextProviderComponent<T>;
581
+ defaultValue: T;
499
582
  }
500
583
  /**
501
584
  * Creates a Context to handle a state scoped for the children of a component
@@ -516,7 +599,10 @@ export interface Context<T> {
516
599
  *
517
600
  * @description https://docs.solidjs.com/reference/component-apis/create-context
518
601
  */
519
- export declare function createContext<T>(defaultValue?: undefined, options?: EffectOptions): Context<T | undefined>;
602
+ export declare function createContext<T>(
603
+ defaultValue?: undefined,
604
+ options?: EffectOptions
605
+ ): Context<T | undefined>;
520
606
  export declare function createContext<T>(defaultValue: T, options?: EffectOptions): Context<T>;
521
607
  /**
522
608
  * Uses a context to receive a scoped state from a parent's Context.Provider
@@ -530,7 +616,7 @@ export declare function useContext<T>(context: Context<T>): T;
530
616
  export type ResolvedJSXElement = Exclude<JSX.Element, JSX.ArrayElement>;
531
617
  export type ResolvedChildren = ResolvedJSXElement | ResolvedJSXElement[];
532
618
  export type ChildrenReturn = Accessor<ResolvedChildren> & {
533
- toArray: () => ResolvedJSXElement[];
619
+ toArray: () => ResolvedJSXElement[];
534
620
  };
535
621
  /**
536
622
  * Resolves child elements to help interact with children
@@ -542,22 +628,29 @@ export type ChildrenReturn = Accessor<ResolvedChildren> & {
542
628
  */
543
629
  export declare function children(fn: Accessor<JSX.Element>): ChildrenReturn;
544
630
  export type SuspenseContextType = {
545
- increment?: () => void;
546
- decrement?: () => void;
547
- inFallback?: () => boolean;
548
- effects?: Computation<any>[];
549
- resolved?: boolean;
631
+ increment?: () => void;
632
+ decrement?: () => void;
633
+ inFallback?: () => boolean;
634
+ effects?: Computation<any>[];
635
+ resolved?: boolean;
550
636
  };
551
637
  type SuspenseContext = Context<SuspenseContextType | undefined> & {
552
- active?(): boolean;
553
- increment?(): void;
554
- decrement?(): void;
638
+ active?(): boolean;
639
+ increment?(): void;
640
+ decrement?(): void;
555
641
  };
556
642
  declare let SuspenseContext: SuspenseContext;
557
643
  export declare function getSuspenseContext(): SuspenseContext;
558
- export declare function enableExternalSource(factory: ExternalSourceFactory, untrack?: <V>(fn: () => V) => V): void;
644
+ export declare function enableExternalSource(
645
+ factory: ExternalSourceFactory,
646
+ untrack?: <V>(fn: () => V) => V
647
+ ): void;
559
648
  export declare function readSignal(this: SignalState<any> | Memo<any>): any;
560
- export declare function writeSignal(node: SignalState<any> | Memo<any>, value: any, isComp?: boolean): any;
649
+ export declare function writeSignal(
650
+ node: SignalState<any> | Memo<any>,
651
+ value: any,
652
+ isComp?: boolean
653
+ ): any;
561
654
  /**
562
655
  * @deprecated since version 1.7.0 and will be removed in next major - use catchError instead
563
656
  * onError - run an effect whenever an error is thrown within the context of the child scopes
@@ -5,9 +5,9 @@ import type { JSX } from "../jsx.js";
5
5
  * @description https://docs.solidjs.com/reference/components/suspense-list
6
6
  */
7
7
  export declare function SuspenseList(props: {
8
- children: JSX.Element;
9
- revealOrder: "forwards" | "backwards" | "together";
10
- tail?: "collapsed" | "hidden";
8
+ children: JSX.Element;
9
+ revealOrder: "forwards" | "backwards" | "together";
10
+ tail?: "collapsed" | "hidden";
11
11
  }): JSX.Element;
12
12
  /**
13
13
  * Tracks all resources inside a component and renders a fallback until they are all resolved
@@ -21,6 +21,6 @@ export declare function SuspenseList(props: {
21
21
  * @description https://docs.solidjs.com/reference/components/suspense
22
22
  */
23
23
  export declare function Suspense(props: {
24
- fallback?: JSX.Element;
25
- children: JSX.Element;
24
+ fallback?: JSX.Element;
25
+ children: JSX.Element;
26
26
  }): JSX.Element;