@qwik.dev/core 2.0.0-beta.35 → 2.0.0-beta.37

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.
@@ -397,7 +397,7 @@ export declare type AsyncFn<T> = (ctx: AsyncCtx) => ValueOrPromise<T>;
397
397
 
398
398
  /** Retains job metadata and also serves as the argument for the compute function */
399
399
  declare class AsyncJob<T> implements AsyncCtx<T> {
400
- readonly $signal$: AsyncSignalImpl<T>;
400
+ readonly $signal$: _AsyncSignalImpl<T>;
401
401
  /** First holds the compute promise and then the cleanup promise */
402
402
  $promise$: Promise<void> | null | void;
403
403
  $cleanupRequested$: boolean;
@@ -407,7 +407,7 @@ declare class AsyncJob<T> implements AsyncCtx<T> {
407
407
  $abortController$: AbortController | undefined;
408
408
  info: unknown;
409
409
  $infoVersion$: number | undefined;
410
- constructor($signal$: AsyncSignalImpl<T>, info: unknown, $infoVersion$: number | undefined);
410
+ constructor($signal$: _AsyncSignalImpl<T>, info: unknown, $infoVersion$: number | undefined);
411
411
  get track(): AsyncCtx<T>['track'];
412
412
  get abortSignal(): AbortSignal;
413
413
  /** Backward compatible cache method for resource */
@@ -515,7 +515,7 @@ declare const enum AsyncSignalFlags {
515
515
  *
516
516
  * @internal
517
517
  */
518
- declare class AsyncSignalImpl<T> extends ComputedSignalImpl<T, AsyncQRL<T>> implements BackRef, AsyncSignal<T> {
518
+ export declare class _AsyncSignalImpl<T> extends ComputedSignalImpl<T, AsyncQRL<T>> implements BackRef, AsyncSignal<T> {
519
519
  $untrackedLoading$: boolean;
520
520
  $untrackedError$: Error | undefined;
521
521
  $current$: AsyncJob<T> | null;
@@ -529,7 +529,7 @@ declare class AsyncSignalImpl<T> extends ComputedSignalImpl<T, AsyncQRL<T>> impl
529
529
  $computationTimeoutId$: ReturnType<typeof setTimeout> | undefined;
530
530
  $info$: unknown | undefined;
531
531
  $infoVersion$: number | undefined;
532
- [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | undefined;
532
+ [_EFFECT_BACK_REF]: Map<_EffectProperty | string, EffectSubscription> | undefined;
533
533
  constructor(container: _Container | null, fn: AsyncQRL<T>, flags?: SignalFlags | SerializationSignalFlags, options?: AsyncSignalOptions<T>);
534
534
  get untrackedValue(): T;
535
535
  set untrackedValue(value: T);
@@ -716,13 +716,14 @@ declare const enum ChoreBits {
716
716
  TASKS = 1,
717
717
  NODE_DIFF = 2,
718
718
  COMPONENT = 4,
719
- NODE_PROPS = 8,
720
- COMPUTE = 16,
721
- CHILDREN = 32,
722
- CLEANUP = 64,
723
- RECONCILE = 128,
724
- ERROR_WRAP = 256,
725
- DIRTY_MASK = 511
719
+ INLINE_COMPONENT = 8,
720
+ NODE_PROPS = 16,
721
+ COMPUTE = 32,
722
+ CHILDREN = 64,
723
+ CLEANUP = 128,
724
+ RECONCILE = 256,
725
+ ERROR_WRAP = 512,
726
+ DIRTY_MASK = 1023
726
727
  }
727
728
 
728
729
  /**
@@ -745,8 +746,10 @@ export declare interface ClientContainer extends _Container {
745
746
  $locale$: string;
746
747
  qManifestHash: string;
747
748
  rootVNode: _ElementVNode;
748
- $forwardRefs$: Array<number> | null;
749
+ $forwardRefs$: Array<number | string> | null;
750
+ vNodeLocate(id: string | Element): _VNode;
749
751
  parseQRL<T = unknown>(qrl: string): QRL<T>;
752
+ $getForwardRef$(id: number): number | string | undefined;
750
753
  $setRawState$(id: number, vParent: _ElementVNode | _VirtualVNode): void;
751
754
  }
752
755
 
@@ -875,7 +878,7 @@ declare class ComputedSignalImpl<T, S extends _QRLInternal = ComputeQRL<T>> exte
875
878
  */
876
879
  $computeQrl$: S;
877
880
  $flags$: SignalFlags | SerializationSignalFlags;
878
- [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | undefined;
881
+ [_EFFECT_BACK_REF]: Map<_EffectProperty | string, EffectSubscription> | undefined;
879
882
  constructor(container: _Container | null, fn: S, flags?: SignalFlags | SerializationSignalFlags);
880
883
  invalidate(): void;
881
884
  get untrackedValue(): T;
@@ -897,12 +900,14 @@ export declare const _CONST_PROPS: unique symbol;
897
900
  * - `VNode` and `ISsrNode`: Either a component or `<Signal>`
898
901
  * - `Signal2`: A derived signal which contains a computation function.
899
902
  */
900
- declare type Consumer = Task | _VNode | SignalImpl | ISsrNode;
903
+ declare type Consumer = _Task | _VNode | SignalImpl | ISsrNode;
901
904
 
902
905
  /** @internal */
903
906
  export declare interface _Container {
904
907
  readonly $version$: string;
905
908
  readonly $storeProxyMap$: ObjToProxyMap;
909
+ $rootContainer$: _Container | null;
910
+ $isOutOfOrderSegment$: boolean;
906
911
  readonly $locale$: string;
907
912
  readonly $getObjectById$: (id: number | string) => any;
908
913
  readonly $serverData$: Record<string, any>;
@@ -913,13 +918,13 @@ export declare interface _Container {
913
918
  $resolveRenderPromise$: (() => void) | null;
914
919
  $pendingCount$: number;
915
920
  $checkPendingCount$(): void;
916
- handleError(err: any, $host$: HostElement | null): void;
917
- getParentHost(host: HostElement): HostElement | null;
918
- setContext<T>(host: HostElement, context: ContextId<T>, value: T): void;
919
- resolveContext<T>(host: HostElement, contextId: ContextId<T>): T | undefined;
920
- setHostProp<T>(host: HostElement, name: string, value: T): void;
921
- getHostProp<T>(host: HostElement, name: string): T | null;
922
- $appendStyle$(content: string, styleId: string, host: HostElement, scoped: boolean): void;
921
+ handleError(err: any, $host$: _HostElement | null): void;
922
+ getParentHost(host: _HostElement): _HostElement | null;
923
+ setContext<T>(host: _HostElement, context: ContextId<T>, value: T): void;
924
+ resolveContext<T>(host: _HostElement, contextId: ContextId<T>): T | undefined;
925
+ setHostProp<T>(host: _HostElement, name: string, value: T): void;
926
+ getHostProp<T>(host: _HostElement, name: string): T | null;
927
+ $appendStyle$(content: string, styleId: string, host: _HostElement, scoped: boolean): void;
923
928
  /**
924
929
  * When component is about to be executed, it may add/remove children. This can cause problems
925
930
  * with the projection because deleting content will prevent the projection references from
@@ -928,7 +933,7 @@ export declare interface _Container {
928
933
  *
929
934
  * @param renderHost - Host element to ensure projection is resolved.
930
935
  */
931
- ensureProjectionResolved(host: HostElement): void;
936
+ ensureProjectionResolved(host: _HostElement): void;
932
937
  serializationCtxFactory(NodeConstructor: {
933
938
  new (...rest: any[]): {
934
939
  __brand__: 'SsrNode';
@@ -957,6 +962,8 @@ export declare interface _ContainerElement extends HTMLElement {
957
962
  qVNodeRefs?: Map<number, Element | _ElementVNode>;
958
963
  /** String from `<script type="qwik/vnode">` tag. */
959
964
  qVnodeData?: string;
965
+ /** Segment-local strings from `<script type="qwik/vnode" q:r="...">` tags. */
966
+ qSegmentVnodeData?: Map<string, string>;
960
967
  }
961
968
 
962
969
  /**
@@ -1094,7 +1101,7 @@ export declare interface CorrectedToggleEvent extends Event {
1094
1101
  export declare const createAsync$: <T>(qrl: (arg: AsyncCtx<T>) => Promise<T>, options?: AsyncSignalOptions<T>) => AsyncSignal<T>;
1095
1102
 
1096
1103
  /** @internal */
1097
- export declare const createAsyncQrl: <T>(qrl: QRL<AsyncFn<T>>, options?: AsyncSignalOptions<T>) => AsyncSignalImpl<T>;
1104
+ export declare const createAsyncQrl: <T>(qrl: QRL<AsyncFn<T>>, options?: AsyncSignalOptions<T>) => _AsyncSignalImpl<T>;
1098
1105
 
1099
1106
  /**
1100
1107
  * Create a computed signal which is calculated from the given QRL. A computed signal is a signal
@@ -1209,6 +1216,9 @@ export declare const createSignal: {
1209
1216
  <T>(value: T): Signal<T>;
1210
1217
  };
1211
1218
 
1219
+ /** @internal */
1220
+ export declare function _createStore<T extends object>(container: _Container | null | undefined, obj: T, flags: _StoreFlags): T;
1221
+
1212
1222
  /** @public */
1213
1223
  export declare interface CSSProperties extends CSS_2.Properties<string | number>, CSS_2.PropertiesHyphen<string | number> {
1214
1224
  /**
@@ -1221,6 +1231,9 @@ export declare interface CSSProperties extends CSS_2.Properties<string | number>
1221
1231
  [v: `--${string}`]: string | number | undefined;
1222
1232
  }
1223
1233
 
1234
+ /** @internal */
1235
+ export declare const _delay: (timeout: number) => Promise<unknown>;
1236
+
1224
1237
  declare class DeleteOperation {
1225
1238
  target: Element | Text;
1226
1239
  constructor(target: Element | Text);
@@ -1229,7 +1242,7 @@ declare class DeleteOperation {
1229
1242
  declare interface DescriptorBase<T = unknown, B = unknown> extends BackRef {
1230
1243
  $flags$: number;
1231
1244
  $index$: number;
1232
- $el$: HostElement;
1245
+ $el$: _HostElement;
1233
1246
  $qrl$: _QRLInternal<T>;
1234
1247
  $state$: B | undefined;
1235
1248
  $destroy$: (() => void) | null;
@@ -1245,11 +1258,12 @@ export declare function _deserialize<T>(rawStateData: string): T;
1245
1258
 
1246
1259
  declare interface DeserializeContainer {
1247
1260
  $getObjectById$: (id: number | string) => unknown;
1261
+ $getForwardRef$: (id: number) => number | string | undefined;
1248
1262
  element: HTMLElement | null;
1249
1263
  getSyncFn: (id: number) => (...args: unknown[]) => unknown;
1250
1264
  $state$?: unknown[];
1251
1265
  $storeProxyMap$: ObjToProxyMap;
1252
- $forwardRefs$: Array<number> | null;
1266
+ $forwardRefs$: Array<number | string> | null;
1253
1267
  }
1254
1268
 
1255
1269
  /** @public */
@@ -1279,14 +1293,17 @@ declare class DomContainer extends _SharedContainer implements ClientContainer {
1279
1293
  $storeProxyMap$: ObjToProxyMap;
1280
1294
  $qFuncs$: Array<(...args: unknown[]) => unknown>;
1281
1295
  $instanceHash$: string;
1282
- $forwardRefs$: Array<number> | null;
1296
+ $forwardRefs$: Array<number | string> | null;
1283
1297
  vNodeLocate: (id: string | Element) => _VNode;
1284
1298
  private $rawStateData$;
1285
1299
  private $stateData$;
1300
+ private $rootForwardRefs$;
1286
1301
  private $styleIds$;
1287
1302
  constructor(element: _ContainerElement);
1288
1303
  /** Tear down this container so stale references fail gracefully. */
1289
1304
  $destroy$(): void;
1305
+ private $processRootStateScript$;
1306
+ private $stateScriptSelector$;
1290
1307
  /**
1291
1308
  * The first time we render we need to hoist the styles. (Meaning we need to move all styles from
1292
1309
  * component inline to <head>)
@@ -1302,10 +1319,11 @@ declare class DomContainer extends _SharedContainer implements ClientContainer {
1302
1319
  setContext<T>(host: _VNode, context: ContextId<T>, value: T): void;
1303
1320
  resolveContext<T>(host: _VNode, contextId: ContextId<T>): T | undefined;
1304
1321
  getParentHost(host: _VNode): _VNode | null;
1305
- setHostProp<T>(host: HostElement, name: string, value: T): void;
1306
- getHostProp<T>(host: HostElement, name: string): T | null;
1322
+ setHostProp<T>(host: _HostElement, name: string, value: T): void;
1323
+ getHostProp<T>(host: _HostElement, name: string): T | null;
1307
1324
  ensureProjectionResolved(vNode: _VirtualVNode): void;
1308
1325
  $getObjectById$: (id: number | string) => unknown;
1326
+ $getForwardRef$(id: number): number | string | undefined;
1309
1327
  getSyncFn(id: number): (...args: unknown[]) => unknown;
1310
1328
  $appendStyle$(content: string, styleId: string, host: _VirtualVNode, scoped: boolean): void;
1311
1329
  /** Set the server data for the Qwik Router. */
@@ -1315,7 +1333,7 @@ export { DomContainer }
1315
1333
  export { DomContainer as _DomContainer }
1316
1334
 
1317
1335
  declare type DomRef = {
1318
- $ssrNode$: SsrNode;
1336
+ $ssrNode$: ISsrNode;
1319
1337
  };
1320
1338
 
1321
1339
  /** @internal */
@@ -1343,7 +1361,8 @@ export declare const _EFFECT_BACK_REF: unique symbol;
1343
1361
 
1344
1362
  declare type EffectBackRef = SignalImpl | StoreTarget | PropsProxy;
1345
1363
 
1346
- declare const enum EffectProperty {
1364
+ /** @internal */
1365
+ export declare const enum _EffectProperty {
1347
1366
  COMPONENT = ":",
1348
1367
  VNODE = "."
1349
1368
  }
@@ -1386,12 +1405,15 @@ declare const enum EffectProperty {
1386
1405
  */
1387
1406
  declare class EffectSubscription {
1388
1407
  consumer: Consumer;
1389
- property: EffectProperty | string;
1408
+ property: _EffectProperty | string;
1390
1409
  backRef: Set<EffectBackRef> | null;
1391
1410
  data: _SubscriptionData | null;
1392
- constructor(consumer: Consumer, property: EffectProperty | string, backRef?: Set<EffectBackRef> | null, data?: _SubscriptionData | null);
1411
+ constructor(consumer: Consumer, property: _EffectProperty | string, backRef?: Set<EffectBackRef> | null, data?: _SubscriptionData | null);
1393
1412
  }
1394
1413
 
1414
+ /** @internal */
1415
+ export declare const _ELEMENT_SEQ = "q:seq";
1416
+
1395
1417
  /** @internal */
1396
1418
  export declare class _ElementVNode extends _VirtualVNode {
1397
1419
  node: Element;
@@ -1497,7 +1519,7 @@ export declare const _getContextContainer: () => _Container | undefined;
1497
1519
  export declare const _getContextEvent: () => unknown;
1498
1520
 
1499
1521
  /** @internal */
1500
- export declare const _getContextHostElement: () => HostElement | undefined;
1522
+ export declare const _getContextHostElement: () => _HostElement | undefined;
1501
1523
 
1502
1524
  /** @public */
1503
1525
  declare function getDomContainer(element: Element): ClientContainer;
@@ -1531,6 +1553,9 @@ export declare const getPlatform: () => CorePlatform;
1531
1553
  /** @internal */
1532
1554
  export declare function _getQContainerElement(element: Element): Element | null;
1533
1555
 
1556
+ /** @internal */
1557
+ export declare function _getSubscriber(effect: Consumer, prop: _EffectProperty | string, data?: _SubscriptionData): EffectSubscription;
1558
+
1534
1559
  /** Used by the optimizer for spread props operations @internal */
1535
1560
  export declare const _getVarProps: (props: PropsProxy | Record<string, unknown> | null | undefined) => Props | null;
1536
1561
 
@@ -1564,7 +1589,8 @@ export declare const _hmr: (this: string | undefined, event: CustomEvent<{
1564
1589
  t: number;
1565
1590
  }>, element: Element) => void;
1566
1591
 
1567
- declare type HostElement = _VNode | ISsrNode;
1592
+ /** @internal */
1593
+ export declare type _HostElement = _VNode | ISsrNode;
1568
1594
 
1569
1595
  /** @public */
1570
1596
  declare type HTMLAttributeAnchorTarget = '_self' | '_blank' | '_parent' | '_top' | (string & {});
@@ -1675,6 +1701,16 @@ export declare const _IMMUTABLE: unique symbol;
1675
1701
  */
1676
1702
  export declare const implicit$FirstArg: <FIRST, REST extends any[], RET>(fn: (qrl: QRL<FIRST>, ...rest: REST) => RET) => ((qrl: FIRST, ...rest: REST) => RET);
1677
1703
 
1704
+ /**
1705
+ * Inject a pre-loaded value into an AsyncSignal while preserving track() subscriptions. Calls
1706
+ * `invalidate({ __v })` so the compute function reads the value from `info`, then triggers an
1707
+ * immediate synchronous compute via the private $computeIfNeeded$() method (which is mangled in
1708
+ * core builds, so callers from other packages must go through this helper).
1709
+ *
1710
+ * @internal
1711
+ */
1712
+ export declare const _injectAsyncSignalValue: (signal: AsyncSignal<unknown>, value: unknown) => void;
1713
+
1678
1714
  /**
1679
1715
  * Create an inlined QRL. This is mostly useful on the server side for serialization.
1680
1716
  *
@@ -1696,6 +1732,16 @@ declare class InsertOrMoveOperation {
1696
1732
  constructor(target: Element | Text, parent: Element, beforeTarget: Element | Text | null);
1697
1733
  }
1698
1734
 
1735
+ /** @internal */
1736
+ declare type InternalServerComponent<PROPS = unknown> = FunctionComponent<PROPS> & {
1737
+ [InternalServerComponentSymbol]: InternalServerComponentHandler;
1738
+ };
1739
+
1740
+ /** @internal */
1741
+ declare type InternalServerComponentHandler = (ssr: SSRContainer, jsx: JSXNodeInternal, options: SSRRenderJSXOptions, enqueue: (value: StackValue) => void) => ValueOrPromise<void>;
1742
+
1743
+ declare const InternalServerComponentSymbol: unique symbol;
1744
+
1699
1745
  /**
1700
1746
  * These are the HTML tags with handlers allowing plain callbacks, to be used for the JSX interface
1701
1747
  *
@@ -1719,10 +1765,17 @@ declare type IntrinsicSVGElements = {
1719
1765
  [K in keyof Omit<SVGElementTagNameMap, keyof HTMLElementTagNameMap>]: LenientSVGProps<SVGElementTagNameMap[K]>;
1720
1766
  };
1721
1767
 
1768
+ /**
1769
+ * Call a function with the given InvokeContext and given arguments.
1770
+ *
1771
+ * @internal
1772
+ */
1773
+ export declare function _invoke<FN extends (...args: any[]) => any>(this: unknown, context: InvokeContext | undefined, fn: FN, ...args: Parameters<FN>): ReturnType<FN>;
1774
+
1722
1775
  /** The shared state during an invoke() call */
1723
1776
  declare interface InvokeContext {
1724
1777
  /** The Virtual parent component for the current component code */
1725
- $hostElement$: HostElement | undefined;
1778
+ $hostElement$: _HostElement | undefined;
1726
1779
  /** The event we're currently handling */
1727
1780
  $event$: PossibleEvents | undefined;
1728
1781
  $effectSubscriber$: EffectSubscription | undefined;
@@ -1770,8 +1823,10 @@ declare interface ISsrNode {
1770
1823
  flags: SsrNodeFlags;
1771
1824
  dirty: ChoreBits;
1772
1825
  parentComponent: ISsrNode | null;
1826
+ children: ISsrNode[] | null;
1773
1827
  vnodeData: VNodeData;
1774
1828
  currentFile: string | null;
1829
+ readonly [_EFFECT_BACK_REF]: Map<_EffectProperty | string, EffectSubscription> | null;
1775
1830
  setProp(name: string, value: any): void;
1776
1831
  getProp(name: string): any;
1777
1832
  removeProp(name: string): void;
@@ -1786,7 +1841,7 @@ export declare const _isStore: (value: object) => boolean;
1786
1841
  export declare function _isStringifiable(value: unknown): value is _Stringifiable;
1787
1842
 
1788
1843
  /** @internal */
1789
- export declare const _isTask: (value: any) => value is Task;
1844
+ export declare const _isTask: (value: any) => value is _Task;
1790
1845
 
1791
1846
  /** @internal */
1792
1847
  declare interface IStreamHandler {
@@ -2063,6 +2118,9 @@ export declare const _mapArray_get: <T>(array: (T | null)[], key: string, start:
2063
2118
  /** @internal */
2064
2119
  export declare const _mapArray_set: <T>(array: (T | null)[], key: string, value: T | null, start: number, allowNullValue?: boolean) => void;
2065
2120
 
2121
+ declare class MaybeAsyncSignal {
2122
+ }
2123
+
2066
2124
  declare type MediaSpecialAttrs = {
2067
2125
  crossOrigin?: HTMLCrossOriginAttribute;
2068
2126
  };
@@ -2103,6 +2161,9 @@ export declare type NativeUIEvent = UIEvent;
2103
2161
  /** @public @deprecated Use `WheelEvent` and use the second argument to the handler function for the current event target */
2104
2162
  export declare type NativeWheelEvent = WheelEvent;
2105
2163
 
2164
+ /** @internal */
2165
+ export declare function _newInvokeContext(locale?: string, hostElement?: _HostElement, event?: Exclude<PossibleEvents, typeof RenderEvent>): InvokeContext;
2166
+
2106
2167
  declare interface NodePropData {
2107
2168
  $scopedStyleIdPrefix$: string | null;
2108
2169
  $isConst$: boolean;
@@ -2179,6 +2240,26 @@ export declare interface OnVisibleTaskOptions {
2179
2240
  strategy?: VisibleTaskStrategy;
2180
2241
  }
2181
2242
 
2243
+ /** @internal */
2244
+ declare type OutOfOrderRevealBoundary = {
2245
+ attrs: string;
2246
+ showFallback: boolean;
2247
+ resolve: () => void;
2248
+ };
2249
+
2250
+ /** @internal */
2251
+ declare class OutOfOrderRevealCoordinator<ITEM extends RevealItemLike = RevealItemLike> {
2252
+ private id;
2253
+ private collapsed;
2254
+ private count;
2255
+ private pendingItems;
2256
+ private orderCode;
2257
+ constructor(id: number, order: RevealOrder, collapsed: boolean);
2258
+ register(registration: RevealRegistrationLike<ITEM>): OutOfOrderRevealBoundary;
2259
+ canReveal(registration: RevealRegistrationLike<ITEM>): boolean;
2260
+ script(): string;
2261
+ }
2262
+
2182
2263
  /** @internal */
2183
2264
  declare const _OWNER: unique symbol;
2184
2265
 
@@ -2275,7 +2356,7 @@ export declare const PrefetchServiceWorker: (opts: {
2275
2356
  * @returns The preprocessed state data
2276
2357
  * @internal
2277
2358
  */
2278
- export declare function _preprocessState(data: unknown[], container: DeserializeContainer): void;
2359
+ export declare function _preprocessState(data: unknown[], container: DeserializeContainer, segmentId?: string, startIndex?: number): void;
2279
2360
 
2280
2361
  declare type Prettify<T> = {} & {
2281
2362
  [K in keyof T]: T[K];
@@ -2352,6 +2433,12 @@ export declare type PublicProps<PROPS> = (PROPS extends Record<any, any> ? Omit<
2352
2433
  /** @internal */
2353
2434
  export declare interface _QDocument extends Document {
2354
2435
  qVNodeData: WeakMap<Element, string>;
2436
+ /** True once the root document VNode data has been fully processed. */
2437
+ qVNodeDataProcessed?: boolean;
2438
+ /** Processes one vnode patch script. */
2439
+ qProcessVNodeDataPatch?: (script: Element | null) => void;
2440
+ /** Processes an out-of-order Suspense segment after its resolved HTML is swapped in. */
2441
+ qProcessOOOS?: (boundaryId: number, content: Element | null) => void;
2355
2442
  }
2356
2443
 
2357
2444
  /**
@@ -2781,7 +2868,7 @@ export declare interface ReadonlySignal<T = unknown> {
2781
2868
  }
2782
2869
 
2783
2870
  /** @internal */
2784
- export declare const _reC: (props: RevealProps) => JSXNodeInternal<FunctionComponent< {
2871
+ export declare const _reC: (props: RevealProps) => JSXNodeInternal<InternalServerComponent<SSRRevealSlotProps>> | JSXNodeInternal<FunctionComponent< {
2785
2872
  name?: string;
2786
2873
  children?: JSXChildren;
2787
2874
  }>>;
@@ -2978,9 +3065,25 @@ export declare const _restProps: (props: PropsProxy, omit?: string[], target?: P
2978
3065
  /** @internal */
2979
3066
  export declare const _reT: ({ cleanup }: TaskCtx) => void;
2980
3067
 
3068
+ /**
3069
+ * Retries a function that throws a promise. If you pass `onError`, you're responsible for handling
3070
+ * errors.
3071
+ *
3072
+ * @internal
3073
+ */
3074
+ export declare function _retryOnPromise<T>(fn: () => ValueOrPromise<T>, onError?: (e: any) => ValueOrPromise<T>): ValueOrPromise<T>;
3075
+
2981
3076
  /** @public @experimental */
2982
3077
  export declare const Reveal: typeof _reC;
2983
3078
 
3079
+ declare interface RevealItemLike {
3080
+ boundary: {
3081
+ pending: {
3082
+ untrackedValue: number;
3083
+ };
3084
+ };
3085
+ }
3086
+
2984
3087
  /** @public @experimental */
2985
3088
  export declare type RevealOrder = 'parallel' | 'sequential' | 'reverse' | 'together';
2986
3089
 
@@ -2990,6 +3093,14 @@ export declare type RevealProps = {
2990
3093
  collapsed?: boolean;
2991
3094
  };
2992
3095
 
3096
+ declare interface RevealRegistrationLike<ITEM extends RevealItemLike = RevealItemLike> {
3097
+ reveal: {
3098
+ order: RevealOrder;
3099
+ items: ITEM[];
3100
+ };
3101
+ item: ITEM;
3102
+ }
3103
+
2993
3104
  /**
2994
3105
  * The resource function wrapper
2995
3106
  *
@@ -3012,8 +3123,15 @@ declare type SeenRef = {
3012
3123
  $parent$?: SeenRef | null;
3013
3124
  };
3014
3125
 
3126
+ declare interface SegmentRenderContext {
3127
+ container: SSRSegmentContainer;
3128
+ writer: SSRInternalStreamWriter;
3129
+ htmlChunks: SSRSegmentWriteChunk[];
3130
+ }
3131
+
3015
3132
  declare interface SerializationContext {
3016
3133
  $serialize$: () => ValueOrPromise<void>;
3134
+ $serializePatch$: (rootStart: number, rootIds: number[], extraRootId?: number | string | number[], streamedRootLimit?: number) => ValueOrPromise<void>;
3017
3135
  $symbolToChunkResolver$: SymbolToChunkResolver;
3018
3136
  /**
3019
3137
  * Map from object to parent and index reference.
@@ -3036,14 +3154,26 @@ declare interface SerializationContext {
3036
3154
  * Returns the index of the root object.
3037
3155
  */
3038
3156
  $addRoot$: AddRootFn;
3157
+ $addDuplicateRoot$: (obj: unknown) => SeenRef;
3158
+ $commitRoot$: (root: unknown, obj: unknown) => number;
3039
3159
  /** Mark an object as seen during serialization. This is used to handle backreferences and cycles */
3040
3160
  $markSeen$: (obj: unknown, parent: SeenRef | undefined, index: number) => SeenRef;
3041
3161
  $roots$: unknown[];
3042
- $promoteToRoot$: (ref: SeenRef, index?: number) => void;
3162
+ $rootObjs$: unknown[];
3163
+ $onAddRoot$?: (id: number, root: unknown, obj: unknown) => void;
3164
+ $forwardRefOffset$: number;
3165
+ $serializedRootCount$: number;
3166
+ $serializedForwardRefCount$: number;
3167
+ $rootStateRootCount$: number;
3168
+ $hasRootStateForwardRefs$: boolean;
3169
+ $promoteToRoot$: (ref: SeenRef, obj: unknown, index?: number) => void;
3043
3170
  $addSyncFn$($funcStr$: string | null, argsCount: number, fn: Function): number;
3044
- $isSsrNode$: (obj: unknown) => obj is SsrNode;
3171
+ $setSyncFnOffset$(offset: number, existingFns?: string[]): void;
3172
+ $isSsrNode$: (obj: unknown) => obj is ISsrNode;
3045
3173
  $isDomRef$: (obj: unknown) => obj is DomRef;
3046
- $writer$: StreamWriter;
3174
+ $markSsrNodeForSerialization$: (node: ISsrNode, flags: number) => void;
3175
+ $writer$: SSRInternalStreamWriter;
3176
+ $setWriter$(writer: SSRInternalStreamWriter): void;
3047
3177
  $syncFns$: string[];
3048
3178
  $eventQrls$: Set<QRL>;
3049
3179
  $eventNames$: Set<string>;
@@ -3178,7 +3308,7 @@ declare class SetAttributeOperation {
3178
3308
  }
3179
3309
 
3180
3310
  /** @internal */
3181
- export declare function _setEvent(serializationCtx: SerializationContext, key: string, rawValue: unknown, hasMovedCaptures: boolean): string | null;
3311
+ export declare function _setEvent(serializationCtx: SerializationContext, key: string, rawValue: unknown, hasMovedCaptures: boolean): string | SSRWriteChunk[] | null;
3182
3312
 
3183
3313
  /**
3184
3314
  * Sets the `CorePlatform`.
@@ -3212,6 +3342,8 @@ declare class SetTextOperation {
3212
3342
  export declare abstract class _SharedContainer implements _Container {
3213
3343
  readonly $version$: string;
3214
3344
  readonly $storeProxyMap$: ObjToProxyMap;
3345
+ $rootContainer$: _Container | null;
3346
+ $isOutOfOrderSegment$: boolean;
3215
3347
  readonly $locale$: string;
3216
3348
  readonly $getObjectById$: (id: number | string) => any;
3217
3349
  $serverData$: Record<string, any>;
@@ -3222,7 +3354,7 @@ export declare abstract class _SharedContainer implements _Container {
3222
3354
  $resolveRenderPromise$: (() => void) | null;
3223
3355
  $pendingCount$: number;
3224
3356
  constructor(serverData: Record<string, any>, locale: string);
3225
- trackSignalValue<T>(signal: Signal, subscriber: HostElement, property: string, data: _SubscriptionData): T;
3357
+ trackSignalValue<T>(signal: Signal, subscriber: _HostElement, property: string, data: _SubscriptionData): T;
3226
3358
  serializationCtxFactory(NodeConstructor: {
3227
3359
  new (...rest: any[]): {
3228
3360
  __brand__: 'SsrNode';
@@ -3233,14 +3365,14 @@ export declare abstract class _SharedContainer implements _Container {
3233
3365
  };
3234
3366
  } | null, symbolToChunkResolver: SymbolToChunkResolver, writer?: StreamWriter): SerializationContext;
3235
3367
  $checkPendingCount$(): void;
3236
- abstract ensureProjectionResolved(host: HostElement): void;
3237
- abstract handleError(err: any, $host$: HostElement | null): void;
3238
- abstract getParentHost(host: HostElement): HostElement | null;
3239
- abstract setContext<T>(host: HostElement, context: ContextId<T>, value: T): void;
3240
- abstract resolveContext<T>(host: HostElement, contextId: ContextId<T>): T | undefined;
3241
- abstract setHostProp<T>(host: HostElement, name: string, value: T): void;
3242
- abstract getHostProp<T>(host: HostElement, name: string): T | null;
3243
- abstract $appendStyle$(content: string, styleId: string, host: HostElement, scoped: boolean): void;
3368
+ abstract ensureProjectionResolved(host: _HostElement): void;
3369
+ abstract handleError(err: any, $host$: _HostElement | null): void;
3370
+ abstract getParentHost(host: _HostElement): _HostElement | null;
3371
+ abstract setContext<T>(host: _HostElement, context: ContextId<T>, value: T): void;
3372
+ abstract resolveContext<T>(host: _HostElement, contextId: ContextId<T>): T | undefined;
3373
+ abstract setHostProp<T>(host: _HostElement, name: string, value: T): void;
3374
+ abstract getHostProp<T>(host: _HostElement, name: string): T | null;
3375
+ abstract $appendStyle$(content: string, styleId: string, host: _HostElement, scoped: boolean): void;
3244
3376
  }
3245
3377
 
3246
3378
  /**
@@ -3569,14 +3701,21 @@ declare interface SSRContainer extends _Container {
3569
3701
  readonly tag: string;
3570
3702
  readonly isHtml: boolean;
3571
3703
  readonly size: number;
3572
- readonly writer: StreamWriter;
3704
+ readonly writer: SSRInternalStreamWriter;
3573
3705
  readonly streamHandler: IStreamHandler;
3574
3706
  readonly serializationCtx: SerializationContext;
3575
3707
  readonly symbolToChunkResolver: SymbolToChunkResolver;
3576
3708
  readonly resolvedManifest: ResolvedManifest;
3709
+ readonly outOfOrderStreaming: boolean;
3577
3710
  additionalHeadNodes: Array<JSXNodeInternal>;
3578
3711
  additionalBodyNodes: Array<JSXNodeInternal>;
3579
3712
  $noScriptHere$: number;
3713
+ /**
3714
+ * Lets the container place a root-level `useOn` placeholder `<script>` itself when injecting it
3715
+ * inline would put it at an illegal position. Returns `true` if the container took the node, in
3716
+ * which case the caller must not inject it into the component's JSX.
3717
+ */
3718
+ $deferRootPlaceholder$(scriptNode: JSXNodeInternal<string>): boolean;
3580
3719
  write(text: string): void;
3581
3720
  openContainer(): void;
3582
3721
  closeContainer(): ValueOrPromise<void>;
@@ -3593,18 +3732,24 @@ declare interface SSRContainer extends _Container {
3593
3732
  textNode(text: string): void;
3594
3733
  htmlNode(rawHtml: string): void;
3595
3734
  commentNode(text: string): void;
3596
- addRoot(obj: any): number | undefined;
3735
+ addRoot(obj: any): number | string | undefined;
3597
3736
  getOrCreateLastNode(): ISsrNode;
3598
3737
  addUnclaimedProjection(frame: ISsrComponentFrame, name: string, children: JSXChildren): void;
3599
3738
  isStatic(): boolean;
3600
3739
  render(jsx: JSXOutput): Promise<void>;
3601
- renderJSX(jsx: JSXOutput, options: {
3602
- currentStyleScoped: string | null;
3603
- parentComponentFrame: ISsrComponentFrame | null;
3604
- }): Promise<void>;
3740
+ renderJSX(jsx: JSXOutput, options: SSRRenderJSXOptions): Promise<void>;
3741
+ $runQueuedRender$<T>(render: () => ValueOrPromise<T>): ValueOrPromise<T>;
3742
+ nextOutOfOrderId(): number;
3743
+ emitOutOfOrderSegmentScripts(scripts: string): void;
3744
+ segment(segmentId: string, jsx: JSXOutput, options: SSRRenderJSXOptions): Promise<SSROutOfOrderSegment>;
3745
+ queueOutOfOrderSegment(segment: Promise<void>): void;
3746
+ emitOutOfOrderExecutorIfNeeded(): void;
3747
+ emitInlineScript(script: string): void;
3748
+ writeScript(attrs: Props, body?: string): void;
3605
3749
  emitPreloaderPre(): void;
3606
3750
  emitQwikLoaderAtTopIfNeeded(): void;
3607
3751
  emitPatchDataIfNeeded(): void;
3752
+ emitBackpatchDataAndExecutorIfNeeded(): void;
3608
3753
  addBackpatchEntry(ssrNodeId: string, attrName: string, serializedValue: string | boolean | null): void;
3609
3754
  }
3610
3755
 
@@ -3613,23 +3758,56 @@ export declare type SSRHintProps = {
3613
3758
  dynamic?: boolean;
3614
3759
  };
3615
3760
 
3616
- /** A selection of attributes of the real thing */
3617
- declare type SsrNode = {
3618
- id: string;
3619
- children: ISsrNode[] | null;
3620
- vnodeData: VNodeData;
3621
- [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | null;
3622
- };
3761
+ /** @internal */
3762
+ declare interface SSRInternalStreamWriter extends StreamWriter {
3763
+ writeRootRef(id: number): ValueOrPromise<void>;
3764
+ writeRootRefPath(path: number[]): ValueOrPromise<void>;
3765
+ toString(remap?: number[]): string;
3766
+ }
3623
3767
 
3624
3768
  declare const enum SsrNodeFlags {
3625
3769
  Updatable = 1
3626
3770
  }
3627
3771
 
3772
+ declare type SSROutOfOrderSegment = SegmentRenderContext;
3773
+
3628
3774
  /** @public */
3629
3775
  export declare const SSRRaw: FunctionComponent<{
3630
3776
  data: string;
3631
3777
  }>;
3632
3778
 
3779
+ declare interface SSRRenderJSXOptions {
3780
+ currentStyleScoped: string | null;
3781
+ parentComponentFrame: ISsrComponentFrame | null;
3782
+ }
3783
+
3784
+ declare type SSRRevealSlotProps = {
3785
+ coordinator: OutOfOrderRevealCoordinator;
3786
+ };
3787
+
3788
+ /** @internal */
3789
+ declare interface SSRRootRefPathChunk {
3790
+ readonly path: number[];
3791
+ }
3792
+
3793
+ declare interface SSRSegmentContainer extends SSRContainer {
3794
+ $rootContainer$: SSRContainer;
3795
+ $recordExternalRootEffect$(producer: unknown, effect: EffectSubscription, prop: string | symbol | null, sourceEffects?: Map<string | symbol, Set<EffectSubscription>>): void;
3796
+ $finalizeOutOfOrderSegment$(segmentId: string, segment: SSROutOfOrderSegment): Promise<{
3797
+ html: string;
3798
+ scripts: string;
3799
+ }>;
3800
+ }
3801
+
3802
+ /** @internal */
3803
+ declare type SSRSegmentWriteChunk = string | {
3804
+ readonly type: 'root-ref';
3805
+ readonly localId: number;
3806
+ } | {
3807
+ readonly type: 'root-ref-path';
3808
+ readonly localPath: number[];
3809
+ };
3810
+
3633
3811
  /** @public */
3634
3812
  export declare const SSRStream: FunctionComponent<SSRStreamProps>;
3635
3813
 
@@ -3651,10 +3829,24 @@ export declare interface SSRStreamWriter {
3651
3829
  write(chunk: JSXOutput): void;
3652
3830
  }
3653
3831
 
3832
+ /** @internal */
3833
+ declare type SSRWriteChunk = string | number | SSRRootRefPathChunk;
3834
+
3835
+ declare type StackFn = () => ValueOrPromise<void>;
3836
+
3837
+ declare type StackValue = ValueOrPromise<JSXOutput | StackFn | Promise<JSXOutput> | typeof Promise | AsyncGenerator | typeof MaybeAsyncSignal>;
3838
+
3654
3839
  declare type StopPropagation = {
3655
3840
  [K in keyof HTMLElementEventMap as `stoppropagation:${K}`]?: boolean;
3656
3841
  };
3657
3842
 
3843
+ /** @internal */
3844
+ export declare const enum _StoreFlags {
3845
+ NONE = 0,
3846
+ RECURSIVE = 1,
3847
+ IMMUTABLE = 2
3848
+ }
3849
+
3658
3850
  declare type StoreTarget = Record<string | symbol, any>;
3659
3851
 
3660
3852
  /** @internal */
@@ -3674,10 +3866,14 @@ export declare class _SubscriptionData {
3674
3866
  }
3675
3867
 
3676
3868
  /** @internal */
3677
- export declare const _suC: (props: SuspenseProps) => JSXNodeInternal<FunctionComponent< {
3678
- children?: any;
3679
- key?: string | number | null;
3680
- }>>;
3869
+ export declare class _SubscriptionPatch {
3870
+ rootId: number;
3871
+ subscriptions: Set<EffectSubscription> | Map<string | symbol, Set<EffectSubscription>>;
3872
+ constructor(rootId?: number, subscriptions?: Set<EffectSubscription> | Map<string | symbol, Set<EffectSubscription>>);
3873
+ }
3874
+
3875
+ /** @internal */
3876
+ export declare const _suC: (props: SuspenseProps) => JSXNodeInternal<string>[];
3681
3877
 
3682
3878
  /** @public @experimental */
3683
3879
  export declare const Suspense: typeof _suC;
@@ -3999,16 +4195,17 @@ declare type TableCellSpecialAttrs = {
3999
4195
  valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined;
4000
4196
  };
4001
4197
 
4002
- declare class Task<T = unknown, B = T> extends BackRef implements DescriptorBase<unknown, Signal<B>> {
4198
+ /** @internal */
4199
+ export declare class _Task<T = unknown, B = T> extends BackRef implements DescriptorBase<unknown, Signal<B>> {
4003
4200
  $flags$: number;
4004
4201
  $index$: number;
4005
- $el$: HostElement;
4202
+ $el$: _HostElement;
4006
4203
  $qrl$: _QRLInternal<T>;
4007
4204
  $state$: Signal<B> | undefined;
4008
4205
  $destroy$: (() => void) | null;
4009
4206
  $destroyPromise$: Promise<void> | undefined;
4010
4207
  $taskPromise$: Promise<void> | null;
4011
- constructor($flags$: number, $index$: number, $el$: HostElement, $qrl$: _QRLInternal<T>, $state$: Signal<B> | undefined, $destroy$: (() => void) | null);
4208
+ constructor($flags$: number, $index$: number, $el$: _HostElement, $qrl$: _QRLInternal<T>, $state$: Signal<B> | undefined, $destroy$: (() => void) | null);
4012
4209
  }
4013
4210
 
4014
4211
  /**
@@ -4842,7 +5039,7 @@ export declare const _VAR_PROPS: unique symbol;
4842
5039
  export declare const _verifySerializable: <T>(value: T, preMessage?: string) => T;
4843
5040
 
4844
5041
  /**
4845
- * 2.0.0-beta.35-dev+4603135
5042
+ * 2.0.0-beta.37-dev+82dc74d
4846
5043
  *
4847
5044
  * @public
4848
5045
  */
@@ -5013,10 +5210,7 @@ declare type VNodeOperation = DeleteOperation | RemoveAllChildrenOperation | Set
5013
5210
  export declare const _waitUntilRendered: (container: _Container) => Promise<void>;
5014
5211
 
5015
5212
  /** @internal */
5016
- export declare function _walkJSX(ssr: SSRContainer, value: JSXOutput, options: {
5017
- currentStyleScoped: string | null;
5018
- parentComponentFrame: ISsrComponentFrame | null;
5019
- }): Promise<void>;
5213
+ export declare function _walkJSX(ssr: SSRContainer, value: JSXOutput, options: SSRRenderJSXOptions): Promise<void>;
5020
5214
 
5021
5215
  /**
5022
5216
  * Override the `getLocale` with `lang` within the `fn` execution.
@@ -5036,8 +5230,8 @@ declare class WrappedSignalImpl<T> extends SignalImpl<T> {
5036
5230
  $func$: (...args: any[]) => T;
5037
5231
  $funcStr$: string | null;
5038
5232
  $flags$: AllSignalFlags;
5039
- $hostElement$: HostElement | undefined;
5040
- [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | undefined;
5233
+ $hostElement$: _HostElement | undefined;
5234
+ [_EFFECT_BACK_REF]: Map<_EffectProperty | string, EffectSubscription> | undefined;
5041
5235
  constructor(container: _Container | null, fn: (...args: any[]) => T, args: any[], fnStr: string | null, flags?: SignalFlags);
5042
5236
  invalidate(): void;
5043
5237
  get untrackedValue(): T;