sibujs 4.4.0 → 4.6.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.
- package/README.md +11 -0
- package/dist/browser.cjs +339 -130
- package/dist/browser.d.cts +61 -16
- package/dist/browser.d.ts +61 -16
- package/dist/browser.js +8 -6
- package/dist/build.cjs +273 -82
- package/dist/build.js +15 -16
- package/dist/cdn.dev.global.js +12 -12
- package/dist/cdn.full.dev.global.js +11 -11
- package/dist/cdn.full.global.js +10 -10
- package/dist/cdn.global.js +12 -12
- package/dist/{chunk-IXKSNWV5.js → chunk-2INLLLMZ.js} +1 -1
- package/dist/chunk-3ISI6ACU.js +44 -0
- package/dist/{chunk-VCTAEPSB.js → chunk-47M47FOM.js} +11 -3
- package/dist/chunk-5HZXGZ6T.js +24 -0
- package/dist/{chunk-KKLW7YWL.js → chunk-5MT6SJ3P.js} +275 -144
- package/dist/{chunk-3BTTCZ5J.js → chunk-5Q4R7HCL.js} +42 -4
- package/dist/{chunk-ADM46X22.js → chunk-7GQCWFOE.js} +157 -61
- package/dist/{chunk-4Z3SPQ67.js → chunk-7NCARGJW.js} +16 -8
- package/dist/{chunk-5DXA2J44.js → chunk-7XHATCIH.js} +5 -2
- package/dist/{chunk-LQFGQNMV.js → chunk-AIF3Z2T7.js} +302 -39
- package/dist/{chunk-UCALUKB5.js → chunk-BAAG6ZTI.js} +98 -29
- package/dist/{chunk-NVNJH22U.js → chunk-D33YTSX5.js} +2 -2
- package/dist/{chunk-M2F7TZHH.js → chunk-DKGBBKOF.js} +136 -80
- package/dist/{chunk-NIOYEGBQ.js → chunk-HURREPU2.js} +27 -13
- package/dist/{chunk-HFCOH2GN.js → chunk-HYXDKS4N.js} +153 -110
- package/dist/chunk-J6FW5TV6.js +233 -0
- package/dist/{chunk-36S2YPP4.js → chunk-JSXPZCET.js} +1 -1
- package/dist/chunk-NYNYSPK7.js +318 -0
- package/dist/{chunk-HQSEH5F6.js → chunk-ORMZXBKQ.js} +108 -45
- package/dist/{chunk-LYVUX7NT.js → chunk-OXUY2A6L.js} +287 -130
- package/dist/{chunk-6GSIXTWX.js → chunk-PK6FK2G2.js} +187 -66
- package/dist/{chunk-W2EQ7X2L.js → chunk-QE4TTDU3.js} +47 -9
- package/dist/{chunk-XLO7SLIX.js → chunk-SXXVZMKZ.js} +262 -70
- package/dist/{chunk-R25EFXXC.js → chunk-TUCPL2HB.js} +3 -3
- package/dist/{chunk-RR7M3FHM.js → chunk-UZQ6ALFS.js} +3 -3
- package/dist/{chunk-PNIRUQ4C.js → chunk-VVWPJ543.js} +6 -8
- package/dist/{chunk-7GIHSAWB.js → chunk-XC4MEKGA.js} +3 -3
- package/dist/{chunk-SKPTERHP.js → chunk-XRRZKZYX.js} +55 -31
- package/dist/{contracts-DBdg9J_a.d.cts → contracts-DRIuclVT.d.cts} +10 -2
- package/dist/{contracts-DBdg9J_a.d.ts → contracts-DRIuclVT.d.ts} +10 -2
- package/dist/{customElement-CNZxEB9G.d.ts → customElement-MmInOW1U.d.cts} +59 -10
- package/dist/{customElement-CNZxEB9G.d.cts → customElement-MmInOW1U.d.ts} +59 -10
- package/dist/data.cjs +293 -125
- package/dist/data.d.cts +47 -9
- package/dist/data.d.ts +47 -9
- package/dist/data.js +12 -9
- package/dist/devtools.cjs +121 -58
- package/dist/devtools.js +7 -8
- package/dist/dispose-GEIG2KOF.js +28 -0
- package/dist/ecosystem.cjs +391 -112
- package/dist/ecosystem.d.cts +31 -7
- package/dist/ecosystem.d.ts +31 -7
- package/dist/ecosystem.js +12 -12
- package/dist/extras.cjs +2250 -879
- package/dist/extras.d.cts +10 -9
- package/dist/extras.d.ts +10 -9
- package/dist/extras.js +39 -28
- package/dist/index.cjs +273 -82
- package/dist/index.d.cts +44 -154
- package/dist/index.d.ts +44 -154
- package/dist/index.js +24 -27
- package/dist/motion.cjs +137 -42
- package/dist/motion.js +5 -5
- package/dist/patterns.cjs +397 -48
- package/dist/patterns.d.cts +32 -9
- package/dist/patterns.d.ts +32 -9
- package/dist/patterns.js +8 -8
- package/dist/performance.cjs +338 -217
- package/dist/performance.d.cts +2 -2
- package/dist/performance.d.ts +2 -2
- package/dist/performance.js +8 -9
- package/dist/plugin-DVgSnTfK.d.cts +112 -0
- package/dist/plugin-DVgSnTfK.d.ts +112 -0
- package/dist/plugins.cjs +587 -203
- package/dist/plugins.d.cts +3 -3
- package/dist/plugins.d.ts +3 -3
- package/dist/plugins.js +35 -23
- package/dist/signal-EotCj4hS.d.cts +110 -0
- package/dist/signal-EotCj4hS.d.ts +110 -0
- package/dist/{ssr-BiPRdZ6n.d.cts → ssr-Bli9XRW5.d.cts} +5 -0
- package/dist/{ssr-BiPRdZ6n.d.ts → ssr-Bli9XRW5.d.ts} +5 -0
- package/dist/{ssr-Y7XOEPEN.js → ssr-XOTUASDO.js} +4 -5
- package/dist/ssr.cjs +214 -73
- package/dist/ssr.d.cts +9 -3
- package/dist/ssr.d.ts +9 -3
- package/dist/ssr.js +11 -12
- package/dist/{startup-BMpaiMhP.d.ts → startup-BLfSeL15.d.cts} +73 -22
- package/dist/{startup-BMpaiMhP.d.cts → startup-BLfSeL15.d.ts} +73 -22
- package/dist/tagFactory-DFstCLQV.d.cts +117 -0
- package/dist/tagFactory-DkaNVUNV.d.ts +117 -0
- package/dist/testing.cjs +2481 -2153
- package/dist/testing.d.cts +56 -5
- package/dist/testing.d.ts +56 -5
- package/dist/testing.js +580 -307
- package/dist/ui.cjs +798 -328
- package/dist/ui.d.cts +40 -7
- package/dist/ui.d.ts +40 -7
- package/dist/ui.js +151 -56
- package/dist/widgets.cjs +319 -285
- package/dist/widgets.js +9 -10
- package/package.json +2 -2
- package/dist/chunk-2WLZ6757.js +0 -149
- package/dist/chunk-7NBDXVHS.js +0 -60
- package/dist/chunk-CCSJMTRN.js +0 -15
- package/dist/chunk-QKRPLZ2V.js +0 -108
- package/dist/chunk-WWV3SJ3L.js +0 -131
- package/dist/dispose-46BOMMQJ.js +0 -19
- package/dist/plugin-D30wlGW5.d.cts +0 -71
- package/dist/plugin-D30wlGW5.d.ts +0 -71
- package/dist/tagFactory-Bzupt4Pj.d.cts +0 -55
- package/dist/tagFactory-Bzupt4Pj.d.ts +0 -55
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { N as NodeChild, a as NodeChildren, T as TagProps } from './tagFactory-
|
|
2
|
-
export {
|
|
3
|
-
|
|
1
|
+
import { N as NodeChild, a as NodeChildren, T as TagProps, D as DerivedAccessor } from './tagFactory-DFstCLQV.cjs';
|
|
2
|
+
export { b as Dispose, S as SVG_NS, d as derived, t as tagFactory } from './tagFactory-DFstCLQV.cjs';
|
|
3
|
+
import { A as Accessor } from './signal-EotCj4hS.cjs';
|
|
4
|
+
export { D as DisposableAccessor, E as ExternalSource, S as SignalOptions, e as external, s as signal } from './signal-EotCj4hS.cjs';
|
|
5
|
+
export { T as TrustedHTML, t as trustHTML } from './ssr-Bli9XRW5.cjs';
|
|
4
6
|
import { R as ReactiveSignal } from './signal-BnWpq6WB.cjs';
|
|
5
7
|
|
|
6
8
|
interface ErrorBoundaryOptions {
|
|
@@ -416,6 +418,11 @@ declare function context<T>(defaultValue: T): Context<T>;
|
|
|
416
418
|
*
|
|
417
419
|
* Each call returns a fresh incrementing id. Optionally accepts a prefix.
|
|
418
420
|
*
|
|
421
|
+
* Inside an SSR request (`runInSSRContext`) the counter belongs to that request,
|
|
422
|
+
* so every request's ids start from 1 — independent of earlier or concurrent
|
|
423
|
+
* requests, and identical to a fresh client's sequence for hydration. Outside a
|
|
424
|
+
* request the shared client counter is used.
|
|
425
|
+
*
|
|
419
426
|
* IDs are plain strings (not reactive) — call once per component instance
|
|
420
427
|
* and reuse the returned value for both sides of the association.
|
|
421
428
|
*
|
|
@@ -558,7 +565,7 @@ declare function registerDisposer(node: Node, teardown: () => void): void;
|
|
|
558
565
|
* The teardown is assumed to have already run (or to be deliberately abandoned);
|
|
559
566
|
* this only releases the reference.
|
|
560
567
|
*/
|
|
561
|
-
declare function unregisterDisposer(node: Node, teardown: () => void):
|
|
568
|
+
declare function unregisterDisposer(node: Node, teardown: () => void): boolean;
|
|
562
569
|
/**
|
|
563
570
|
* Run all registered teardowns for a node and its descendants,
|
|
564
571
|
* cleaning up reactive subscriptions to prevent memory leaks.
|
|
@@ -667,12 +674,22 @@ declare function DynamicComponent(is: () => string | Component$1): HTMLElement;
|
|
|
667
674
|
* assigns that row a new item or position.
|
|
668
675
|
*
|
|
669
676
|
* Identity is not value freshness: a row keeps its DOM node when its key is
|
|
670
|
-
* unchanged, and
|
|
671
|
-
* replaced
|
|
672
|
-
*
|
|
673
|
-
*
|
|
674
|
-
*
|
|
675
|
-
*
|
|
677
|
+
* unchanged, and its bindings still update when the item behind that key is
|
|
678
|
+
* replaced — provided they read the getter rather than a value captured when
|
|
679
|
+
* `render` ran.
|
|
680
|
+
*
|
|
681
|
+
* `render` runs untracked, whether the row appears in the first pass or in a
|
|
682
|
+
* later update: a signal read directly in its body — `item()` and `index()`
|
|
683
|
+
* included — is a one-time read that never subscribes anything and goes stale
|
|
684
|
+
* when the key later receives a replacement item or moves. Pass the getters
|
|
685
|
+
* down (`Row({ item, index })`) or read them inside bindings
|
|
686
|
+
* (`() => item().name`) and effects created by the row.
|
|
687
|
+
*
|
|
688
|
+
* A binding that reads `item()` subscribes to the ROW's cell, not to the
|
|
689
|
+
* whole-array signal. `render` never re-runs for an existing key; only the
|
|
690
|
+
* bindings and effects that read that row's `item()` / `index()` re-run, and
|
|
691
|
+
* only when its own item or position actually changes — mutating an unrelated
|
|
692
|
+
* row does not disturb it.
|
|
676
693
|
*
|
|
677
694
|
* @param getArray A reactive getter returning an array.
|
|
678
695
|
* @param render A function that receives reactive item and index getters and returns a NodeChild.
|
|
@@ -1196,109 +1213,11 @@ type Slots = Record<string, SlotFn>;
|
|
|
1196
1213
|
* @param slots The slot map, which may be undefined.
|
|
1197
1214
|
* @param name Slot name; defaults to `"default"`.
|
|
1198
1215
|
* @returns The slot factory, or `undefined` when the slot was not provided.
|
|
1216
|
+
* Only an OWN function-valued entry counts: an inherited member such as
|
|
1217
|
+
* `toString` or `constructor` is not a slot, so fallback content renders.
|
|
1199
1218
|
*/
|
|
1200
1219
|
declare function getSlot(slots: Slots | undefined, name?: string): SlotFn | undefined;
|
|
1201
1220
|
|
|
1202
|
-
declare const __accessor: unique symbol;
|
|
1203
|
-
/**
|
|
1204
|
-
* A reactive signal getter returned by signal(), derived(), and similar primitives.
|
|
1205
|
-
*
|
|
1206
|
-
* Pass an Accessor directly into reactive prop positions — never call it there:
|
|
1207
|
-
* ```ts
|
|
1208
|
-
* const [count, setCount] = signal(0);
|
|
1209
|
-
*
|
|
1210
|
-
* div(count) // ✓ reactive — Accessor passed directly
|
|
1211
|
-
* div(() => count()) // ✓ reactive — explicit arrow wrapper
|
|
1212
|
-
* div(count()) // ✗ static — evaluated once, not reactive
|
|
1213
|
-
* ```
|
|
1214
|
-
*/
|
|
1215
|
-
type Accessor<T> = (() => T) & {
|
|
1216
|
-
readonly [__accessor]?: never;
|
|
1217
|
-
};
|
|
1218
|
-
type SetState<T> = (next: T | ((prev: T) => T)) => void;
|
|
1219
|
-
type StateTuple<T> = [Accessor<T>, SetState<T>];
|
|
1220
|
-
/** Options for signal */
|
|
1221
|
-
interface SignalOptions<T = unknown> {
|
|
1222
|
-
/** Debug name for devtools inspection. Only used in development. */
|
|
1223
|
-
name?: string;
|
|
1224
|
-
/** Custom equality function. Defaults to Object.is(). */
|
|
1225
|
-
equals?: (prev: T, next: T) => boolean;
|
|
1226
|
-
}
|
|
1227
|
-
/**
|
|
1228
|
-
* signal creates a reactive signal that holds a value of type T.
|
|
1229
|
-
* Returns a tuple: [getter, setter].
|
|
1230
|
-
*
|
|
1231
|
-
* @param initial Initial value
|
|
1232
|
-
* @param options Optional config: `{ name: "count" }` for devtools labeling
|
|
1233
|
-
* @returns A `[getter, setter]` tuple. Calling the getter inside a reactive
|
|
1234
|
-
* context subscribes to the signal; the setter accepts a value or an updater.
|
|
1235
|
-
*/
|
|
1236
|
-
declare function signal<T>(initial: T, options?: SignalOptions<T>): StateTuple<T>;
|
|
1237
|
-
/**
|
|
1238
|
-
* A valueless reactive token standing in for state SibuJS does not own.
|
|
1239
|
-
*
|
|
1240
|
-
* See {@link external}.
|
|
1241
|
-
*/
|
|
1242
|
-
interface ExternalSource {
|
|
1243
|
-
/**
|
|
1244
|
-
* Declare, from inside a reactive computation, that it reads the external
|
|
1245
|
-
* state this source represents. Call it in the same places you would read a
|
|
1246
|
-
* signal — the top of a binding getter, a `derived()` body, an `effect()`.
|
|
1247
|
-
*
|
|
1248
|
-
* Outside a tracking context it is a no-op, exactly like reading a signal.
|
|
1249
|
-
*/
|
|
1250
|
-
track(): void;
|
|
1251
|
-
/**
|
|
1252
|
-
* Declare that the external state changed. Every consumer that called
|
|
1253
|
-
* {@link ExternalSource.track} is invalidated.
|
|
1254
|
-
*
|
|
1255
|
-
* Participates in `batch()` like any signal write: inside a batch, consumers
|
|
1256
|
-
* are notified once when the outermost batch flushes.
|
|
1257
|
-
*/
|
|
1258
|
-
invalidate(): void;
|
|
1259
|
-
}
|
|
1260
|
-
/**
|
|
1261
|
-
* Create a reactive source for state that lives outside SibuJS — a domain
|
|
1262
|
-
* engine, a media element, a canvas scene, an editor document, a cache a
|
|
1263
|
-
* socket writes into.
|
|
1264
|
-
*
|
|
1265
|
-
* The pattern is two lines: `track()` where you read, `invalidate()` after you
|
|
1266
|
-
* mutate.
|
|
1267
|
-
*
|
|
1268
|
-
* ```ts
|
|
1269
|
-
* import { Chess } from "chess.js";
|
|
1270
|
-
* import { external } from "sibujs";
|
|
1271
|
-
*
|
|
1272
|
-
* const game = new Chess(); // owns the rules and the mutable state
|
|
1273
|
-
* const moved = external(); // owns "something changed"
|
|
1274
|
-
*
|
|
1275
|
-
* ctx.text("@status", () => {
|
|
1276
|
-
* moved.track(); // this binding reads the engine
|
|
1277
|
-
* return game.isCheckmate() ? "Checkmate" : `${game.turn()} to move`;
|
|
1278
|
-
* });
|
|
1279
|
-
*
|
|
1280
|
-
* game.move({ from: "e2", to: "e4" });
|
|
1281
|
-
* moved.invalidate(); // every consumer above re-reads
|
|
1282
|
-
* ```
|
|
1283
|
-
*
|
|
1284
|
-
* **One source is one invalidation domain.** Every consumer of a source
|
|
1285
|
-
* re-runs on every `invalidate()`, so the granularity of your updates is
|
|
1286
|
-
* exactly the granularity of your sources: one for a whole engine is the
|
|
1287
|
-
* cheapest to write, several (`board`, `clock`, `history`) let an update touch
|
|
1288
|
-
* only what it affects. See `docs/architecture/external-state.md` for the
|
|
1289
|
-
* trade-offs and when subdividing is worth it.
|
|
1290
|
-
*
|
|
1291
|
-
* Ownership, disposal and error routing are the consumer's, not the source's:
|
|
1292
|
-
* a disposed binding or effect is never invalidated, and a consumer that
|
|
1293
|
-
* throws is reported through the normal runtime error pipeline with its own
|
|
1294
|
-
* phase and node.
|
|
1295
|
-
*
|
|
1296
|
-
* @param options `name` labels the source in devtools (development only).
|
|
1297
|
-
*/
|
|
1298
|
-
declare function external(options?: {
|
|
1299
|
-
name?: string;
|
|
1300
|
-
}): ExternalSource;
|
|
1301
|
-
|
|
1302
1221
|
/**
|
|
1303
1222
|
* Reactive array hook. Provides common array operations that
|
|
1304
1223
|
* automatically trigger reactive updates.
|
|
@@ -1498,45 +1417,6 @@ declare function deepEqual(a: unknown, b: unknown, seen?: Map<object, Set<object
|
|
|
1498
1417
|
*/
|
|
1499
1418
|
declare function deepSignal<T>(initial: T): [Accessor<T>, (next: T | ((prev: T) => T)) => void];
|
|
1500
1419
|
|
|
1501
|
-
/**
|
|
1502
|
-
* derived creates a derived reactive signal whose value updates when dependencies change.
|
|
1503
|
-
*
|
|
1504
|
-
* Uses lazy pull-based evaluation with a single dirty flag:
|
|
1505
|
-
* - When a dependency changes, the computed is marked dirty (no re-evaluation).
|
|
1506
|
-
* - Dirtiness propagates downstream via propagateDirty.
|
|
1507
|
-
* - The getter only re-evaluates when actually read (pull-based).
|
|
1508
|
-
* - On re-evaluation, dependencies are re-tracked via retrack() so that
|
|
1509
|
-
* derived-of-derived chains propagate correctly without paying the full
|
|
1510
|
-
* Set-delete + re-add cost of track()'s cleanup phase.
|
|
1511
|
-
*
|
|
1512
|
-
* STABILIZATION — why a dirty flag is enough:
|
|
1513
|
-
*
|
|
1514
|
-
* A dirty computed does NOT imply a changed value. Downstream effects are
|
|
1515
|
-
* enqueued by `propagateDirty` at write time, before this computed has had a
|
|
1516
|
-
* chance to recompute and compare. Rather than adding a three-color
|
|
1517
|
-
* (CLEAN/CHECK/DIRTY) propagation pass — which an earlier revision measured as
|
|
1518
|
-
* a regression on every benchmark, because the extra state has nothing to skip
|
|
1519
|
-
* when values genuinely change — the engine settles the question lazily at
|
|
1520
|
-
* DRAIN time: `cs._validate` recomputes a dirty computed and `cs.__v` is bumped
|
|
1521
|
-
* ONLY when the new value differs under this computed's comparator. The
|
|
1522
|
-
* scheduler compares that version against what each subscriber last observed
|
|
1523
|
-
* and suppresses the run when nothing changed (see `depsChanged` in
|
|
1524
|
-
* ../../reactivity/track-core.ts).
|
|
1525
|
-
*
|
|
1526
|
-
* That keeps the cheap boolean dirty flag AND makes `equals` actually stop
|
|
1527
|
-
* propagation, with recomputation still fully lazy: `_validate` only ever runs
|
|
1528
|
-
* when an effect is genuinely about to observe the value.
|
|
1529
|
-
*
|
|
1530
|
-
* @returns An accessor for the computed value. It recomputes lazily on read
|
|
1531
|
-
* after any dependency changes.
|
|
1532
|
-
*/
|
|
1533
|
-
declare function derived<T>(getter: () => T, options?: {
|
|
1534
|
-
name?: string;
|
|
1535
|
-
/** Custom equality — when the recomputed value equals the previous,
|
|
1536
|
-
* downstream subscribers are not notified. Defaults to `Object.is`. */
|
|
1537
|
-
equals?: (a: T, b: T) => boolean;
|
|
1538
|
-
}): Accessor<T>;
|
|
1539
|
-
|
|
1540
1420
|
/** Options for effect */
|
|
1541
1421
|
interface EffectOptions {
|
|
1542
1422
|
/** Error handler for exceptions thrown during effect execution. */
|
|
@@ -1668,7 +1548,9 @@ declare function watch<T>(getter: () => T, callback: (value: T, prev: T | undefi
|
|
|
1668
1548
|
* dependency-tracked). The setter typically updates upstream signals,
|
|
1669
1549
|
* and the derived value recomputes on the next read.
|
|
1670
1550
|
*
|
|
1671
|
-
* Returns a `[getter, setter]` tuple, matching the `signal()` API.
|
|
1551
|
+
* Returns a `[getter, setter]` tuple, matching the `signal()` API. The getter
|
|
1552
|
+
* is the underlying `derived()` accessor, so `getter.dispose()` releases its
|
|
1553
|
+
* upstream subscriptions when the writable is discarded before its sources.
|
|
1672
1554
|
*
|
|
1673
1555
|
* @param get Computed getter — reads reactive dependencies
|
|
1674
1556
|
* @param set Setter — called with the new value, typically updates upstream signals
|
|
@@ -1695,11 +1577,11 @@ declare function watch<T>(getter: () => T, callback: (value: T, prev: T | undefi
|
|
|
1695
1577
|
* fullName(); // "Jane Smith"
|
|
1696
1578
|
* ```
|
|
1697
1579
|
*
|
|
1698
|
-
* @returns A
|
|
1580
|
+
* @returns A `[getter, setter]` tuple; the getter carries `dispose()`.
|
|
1699
1581
|
*/
|
|
1700
1582
|
declare function writable<T>(get: () => T, set: (value: T) => void, options?: {
|
|
1701
1583
|
name?: string;
|
|
1702
|
-
}): [
|
|
1584
|
+
}): [DerivedAccessor<T>, (value: T) => void];
|
|
1703
1585
|
|
|
1704
1586
|
/**
|
|
1705
1587
|
* SSR context for SibuJS.
|
|
@@ -1724,6 +1606,13 @@ declare function writable<T>(get: () => T, set: (value: T) => void, options?: {
|
|
|
1724
1606
|
interface SSRStore {
|
|
1725
1607
|
ssr: boolean;
|
|
1726
1608
|
suspenseIdCounter: number;
|
|
1609
|
+
/**
|
|
1610
|
+
* `createId()` counter for this request. Request-scoped for the same reason
|
|
1611
|
+
* as `suspenseIdCounter`: a server render's ids must not depend on earlier or
|
|
1612
|
+
* concurrent requests, and must match a fresh client's sequence. Optional so
|
|
1613
|
+
* stores created elsewhere start it lazily at 0.
|
|
1614
|
+
*/
|
|
1615
|
+
idCounter?: number;
|
|
1727
1616
|
/**
|
|
1728
1617
|
* Per-request data caches (e.g. the query cache). Lazily created and keyed
|
|
1729
1618
|
* by subsystem so request-scoped data never bleeds between concurrent
|
|
@@ -2172,7 +2061,8 @@ interface TransitionState {
|
|
|
2172
2061
|
* and avoids the complexity of an interruptible reconciler.
|
|
2173
2062
|
*
|
|
2174
2063
|
* Async callbacks are supported: `pending()` stays `true` until the
|
|
2175
|
-
* returned promise resolves OR rejects.
|
|
2064
|
+
* returned promise resolves OR rejects. With overlapping `start()` calls it
|
|
2065
|
+
* stays `true` until every one of them has settled.
|
|
2176
2066
|
*
|
|
2177
2067
|
* @example
|
|
2178
2068
|
* ```ts
|
|
@@ -2306,4 +2196,4 @@ declare const untracked: ReactiveApi["untracked"];
|
|
|
2306
2196
|
declare const retrack: ReactiveApi["retrack"];
|
|
2307
2197
|
declare const setMaxDrainIterations: ReactiveApi["setMaxDrainIterations"];
|
|
2308
2198
|
|
|
2309
|
-
export {
|
|
2199
|
+
export { Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedContext, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DerivedAccessor, DynamicComponent, type EachBindings, type EachEventBindings, type EffectBody, type EffectOptions, type EnhanceContext, type EnhanceSetup, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, type IslandLoader, type IslandRegistration, type IslandStrategy, KeepAlive, type KeepAliveOptions, type LabelProps, type LazyIslandLoader, Loading, type LoadingProps, type LongPressOptions, MAX_DRAIN_TEARDOWNS, type MediaProps, type MountIslandsOptions, NodeChild, NodeChildren, type OnCleanup, type OptionProps, Portal, type Ref, type RuntimeErrorContext, type RuntimeErrorHandler, type RuntimeErrorPhase, type SSRStore, type SelectProps, type SlotFn, type Slots, type StoreActions, Suspense, type SuspenseProps, TagProps, type TextareaProps, type TypedTagFunction, type VideoProps, __resetIdCounter, a, abbr, action, address, area, array, article, aside, asyncDerived, audio, autoResize, b, base, batch, bdi, bdo, bindDynamic, blockquote, body, br, button, canvas, caption, catchError, catchErrorAsync, center, checkLeaks, circle, cite, clickOutside, clipPath, code, col, colgroup, context, copyOnClick, createId, customElement, data, datalist, dd, deepEqual, deepSignal, defer, defs, del, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enhance, enhanceAll, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getAction, getRequestScopedCache, getRuntimeErrorHandler, getSSRStore, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, lazyIsland, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, menu, meta, meter, mount, mountIslands, nav, nextTick, noscript, object, ol, on, onCleanup, onMount, onUnmount, optgroup, option, output, p, param, path, pattern, picture, polygon, polyline, portal, pre, progress, q, radialGradient, reactiveArray, rect, ref, registerAction, registerComponent, registerDisposer, registerIsland, replaceChildrenSafely, reportDrainRunaway, reportError, resolveComponent, retrack, rp, rt, ruby, runInSSRContext, s, samp, script, section, select, setGlobalErrorHandler, setMaxDrainIterations, setRuntimeErrorHandler, show, slot, small, source, span, stop, store, strict, strictEffect, strong, style, sub, summary, sup, svg, symbol, table, takePendingError, tbody, td, template, text, textarea, tfoot, th, thead, time, title, tr, track$1 as track, transition, trapFocus, tspan, u, ul, unregisterComponent, unregisterDisposer, unregisterIsland, untracked, use, var_, video, watch, when, withSSR, writable };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { N as NodeChild, a as NodeChildren, T as TagProps } from './tagFactory-
|
|
2
|
-
export {
|
|
3
|
-
|
|
1
|
+
import { N as NodeChild, a as NodeChildren, T as TagProps, D as DerivedAccessor } from './tagFactory-DkaNVUNV.js';
|
|
2
|
+
export { b as Dispose, S as SVG_NS, d as derived, t as tagFactory } from './tagFactory-DkaNVUNV.js';
|
|
3
|
+
import { A as Accessor } from './signal-EotCj4hS.js';
|
|
4
|
+
export { D as DisposableAccessor, E as ExternalSource, S as SignalOptions, e as external, s as signal } from './signal-EotCj4hS.js';
|
|
5
|
+
export { T as TrustedHTML, t as trustHTML } from './ssr-Bli9XRW5.js';
|
|
4
6
|
import { R as ReactiveSignal } from './signal-BnWpq6WB.js';
|
|
5
7
|
|
|
6
8
|
interface ErrorBoundaryOptions {
|
|
@@ -416,6 +418,11 @@ declare function context<T>(defaultValue: T): Context<T>;
|
|
|
416
418
|
*
|
|
417
419
|
* Each call returns a fresh incrementing id. Optionally accepts a prefix.
|
|
418
420
|
*
|
|
421
|
+
* Inside an SSR request (`runInSSRContext`) the counter belongs to that request,
|
|
422
|
+
* so every request's ids start from 1 — independent of earlier or concurrent
|
|
423
|
+
* requests, and identical to a fresh client's sequence for hydration. Outside a
|
|
424
|
+
* request the shared client counter is used.
|
|
425
|
+
*
|
|
419
426
|
* IDs are plain strings (not reactive) — call once per component instance
|
|
420
427
|
* and reuse the returned value for both sides of the association.
|
|
421
428
|
*
|
|
@@ -558,7 +565,7 @@ declare function registerDisposer(node: Node, teardown: () => void): void;
|
|
|
558
565
|
* The teardown is assumed to have already run (or to be deliberately abandoned);
|
|
559
566
|
* this only releases the reference.
|
|
560
567
|
*/
|
|
561
|
-
declare function unregisterDisposer(node: Node, teardown: () => void):
|
|
568
|
+
declare function unregisterDisposer(node: Node, teardown: () => void): boolean;
|
|
562
569
|
/**
|
|
563
570
|
* Run all registered teardowns for a node and its descendants,
|
|
564
571
|
* cleaning up reactive subscriptions to prevent memory leaks.
|
|
@@ -667,12 +674,22 @@ declare function DynamicComponent(is: () => string | Component$1): HTMLElement;
|
|
|
667
674
|
* assigns that row a new item or position.
|
|
668
675
|
*
|
|
669
676
|
* Identity is not value freshness: a row keeps its DOM node when its key is
|
|
670
|
-
* unchanged, and
|
|
671
|
-
* replaced
|
|
672
|
-
*
|
|
673
|
-
*
|
|
674
|
-
*
|
|
675
|
-
*
|
|
677
|
+
* unchanged, and its bindings still update when the item behind that key is
|
|
678
|
+
* replaced — provided they read the getter rather than a value captured when
|
|
679
|
+
* `render` ran.
|
|
680
|
+
*
|
|
681
|
+
* `render` runs untracked, whether the row appears in the first pass or in a
|
|
682
|
+
* later update: a signal read directly in its body — `item()` and `index()`
|
|
683
|
+
* included — is a one-time read that never subscribes anything and goes stale
|
|
684
|
+
* when the key later receives a replacement item or moves. Pass the getters
|
|
685
|
+
* down (`Row({ item, index })`) or read them inside bindings
|
|
686
|
+
* (`() => item().name`) and effects created by the row.
|
|
687
|
+
*
|
|
688
|
+
* A binding that reads `item()` subscribes to the ROW's cell, not to the
|
|
689
|
+
* whole-array signal. `render` never re-runs for an existing key; only the
|
|
690
|
+
* bindings and effects that read that row's `item()` / `index()` re-run, and
|
|
691
|
+
* only when its own item or position actually changes — mutating an unrelated
|
|
692
|
+
* row does not disturb it.
|
|
676
693
|
*
|
|
677
694
|
* @param getArray A reactive getter returning an array.
|
|
678
695
|
* @param render A function that receives reactive item and index getters and returns a NodeChild.
|
|
@@ -1196,109 +1213,11 @@ type Slots = Record<string, SlotFn>;
|
|
|
1196
1213
|
* @param slots The slot map, which may be undefined.
|
|
1197
1214
|
* @param name Slot name; defaults to `"default"`.
|
|
1198
1215
|
* @returns The slot factory, or `undefined` when the slot was not provided.
|
|
1216
|
+
* Only an OWN function-valued entry counts: an inherited member such as
|
|
1217
|
+
* `toString` or `constructor` is not a slot, so fallback content renders.
|
|
1199
1218
|
*/
|
|
1200
1219
|
declare function getSlot(slots: Slots | undefined, name?: string): SlotFn | undefined;
|
|
1201
1220
|
|
|
1202
|
-
declare const __accessor: unique symbol;
|
|
1203
|
-
/**
|
|
1204
|
-
* A reactive signal getter returned by signal(), derived(), and similar primitives.
|
|
1205
|
-
*
|
|
1206
|
-
* Pass an Accessor directly into reactive prop positions — never call it there:
|
|
1207
|
-
* ```ts
|
|
1208
|
-
* const [count, setCount] = signal(0);
|
|
1209
|
-
*
|
|
1210
|
-
* div(count) // ✓ reactive — Accessor passed directly
|
|
1211
|
-
* div(() => count()) // ✓ reactive — explicit arrow wrapper
|
|
1212
|
-
* div(count()) // ✗ static — evaluated once, not reactive
|
|
1213
|
-
* ```
|
|
1214
|
-
*/
|
|
1215
|
-
type Accessor<T> = (() => T) & {
|
|
1216
|
-
readonly [__accessor]?: never;
|
|
1217
|
-
};
|
|
1218
|
-
type SetState<T> = (next: T | ((prev: T) => T)) => void;
|
|
1219
|
-
type StateTuple<T> = [Accessor<T>, SetState<T>];
|
|
1220
|
-
/** Options for signal */
|
|
1221
|
-
interface SignalOptions<T = unknown> {
|
|
1222
|
-
/** Debug name for devtools inspection. Only used in development. */
|
|
1223
|
-
name?: string;
|
|
1224
|
-
/** Custom equality function. Defaults to Object.is(). */
|
|
1225
|
-
equals?: (prev: T, next: T) => boolean;
|
|
1226
|
-
}
|
|
1227
|
-
/**
|
|
1228
|
-
* signal creates a reactive signal that holds a value of type T.
|
|
1229
|
-
* Returns a tuple: [getter, setter].
|
|
1230
|
-
*
|
|
1231
|
-
* @param initial Initial value
|
|
1232
|
-
* @param options Optional config: `{ name: "count" }` for devtools labeling
|
|
1233
|
-
* @returns A `[getter, setter]` tuple. Calling the getter inside a reactive
|
|
1234
|
-
* context subscribes to the signal; the setter accepts a value or an updater.
|
|
1235
|
-
*/
|
|
1236
|
-
declare function signal<T>(initial: T, options?: SignalOptions<T>): StateTuple<T>;
|
|
1237
|
-
/**
|
|
1238
|
-
* A valueless reactive token standing in for state SibuJS does not own.
|
|
1239
|
-
*
|
|
1240
|
-
* See {@link external}.
|
|
1241
|
-
*/
|
|
1242
|
-
interface ExternalSource {
|
|
1243
|
-
/**
|
|
1244
|
-
* Declare, from inside a reactive computation, that it reads the external
|
|
1245
|
-
* state this source represents. Call it in the same places you would read a
|
|
1246
|
-
* signal — the top of a binding getter, a `derived()` body, an `effect()`.
|
|
1247
|
-
*
|
|
1248
|
-
* Outside a tracking context it is a no-op, exactly like reading a signal.
|
|
1249
|
-
*/
|
|
1250
|
-
track(): void;
|
|
1251
|
-
/**
|
|
1252
|
-
* Declare that the external state changed. Every consumer that called
|
|
1253
|
-
* {@link ExternalSource.track} is invalidated.
|
|
1254
|
-
*
|
|
1255
|
-
* Participates in `batch()` like any signal write: inside a batch, consumers
|
|
1256
|
-
* are notified once when the outermost batch flushes.
|
|
1257
|
-
*/
|
|
1258
|
-
invalidate(): void;
|
|
1259
|
-
}
|
|
1260
|
-
/**
|
|
1261
|
-
* Create a reactive source for state that lives outside SibuJS — a domain
|
|
1262
|
-
* engine, a media element, a canvas scene, an editor document, a cache a
|
|
1263
|
-
* socket writes into.
|
|
1264
|
-
*
|
|
1265
|
-
* The pattern is two lines: `track()` where you read, `invalidate()` after you
|
|
1266
|
-
* mutate.
|
|
1267
|
-
*
|
|
1268
|
-
* ```ts
|
|
1269
|
-
* import { Chess } from "chess.js";
|
|
1270
|
-
* import { external } from "sibujs";
|
|
1271
|
-
*
|
|
1272
|
-
* const game = new Chess(); // owns the rules and the mutable state
|
|
1273
|
-
* const moved = external(); // owns "something changed"
|
|
1274
|
-
*
|
|
1275
|
-
* ctx.text("@status", () => {
|
|
1276
|
-
* moved.track(); // this binding reads the engine
|
|
1277
|
-
* return game.isCheckmate() ? "Checkmate" : `${game.turn()} to move`;
|
|
1278
|
-
* });
|
|
1279
|
-
*
|
|
1280
|
-
* game.move({ from: "e2", to: "e4" });
|
|
1281
|
-
* moved.invalidate(); // every consumer above re-reads
|
|
1282
|
-
* ```
|
|
1283
|
-
*
|
|
1284
|
-
* **One source is one invalidation domain.** Every consumer of a source
|
|
1285
|
-
* re-runs on every `invalidate()`, so the granularity of your updates is
|
|
1286
|
-
* exactly the granularity of your sources: one for a whole engine is the
|
|
1287
|
-
* cheapest to write, several (`board`, `clock`, `history`) let an update touch
|
|
1288
|
-
* only what it affects. See `docs/architecture/external-state.md` for the
|
|
1289
|
-
* trade-offs and when subdividing is worth it.
|
|
1290
|
-
*
|
|
1291
|
-
* Ownership, disposal and error routing are the consumer's, not the source's:
|
|
1292
|
-
* a disposed binding or effect is never invalidated, and a consumer that
|
|
1293
|
-
* throws is reported through the normal runtime error pipeline with its own
|
|
1294
|
-
* phase and node.
|
|
1295
|
-
*
|
|
1296
|
-
* @param options `name` labels the source in devtools (development only).
|
|
1297
|
-
*/
|
|
1298
|
-
declare function external(options?: {
|
|
1299
|
-
name?: string;
|
|
1300
|
-
}): ExternalSource;
|
|
1301
|
-
|
|
1302
1221
|
/**
|
|
1303
1222
|
* Reactive array hook. Provides common array operations that
|
|
1304
1223
|
* automatically trigger reactive updates.
|
|
@@ -1498,45 +1417,6 @@ declare function deepEqual(a: unknown, b: unknown, seen?: Map<object, Set<object
|
|
|
1498
1417
|
*/
|
|
1499
1418
|
declare function deepSignal<T>(initial: T): [Accessor<T>, (next: T | ((prev: T) => T)) => void];
|
|
1500
1419
|
|
|
1501
|
-
/**
|
|
1502
|
-
* derived creates a derived reactive signal whose value updates when dependencies change.
|
|
1503
|
-
*
|
|
1504
|
-
* Uses lazy pull-based evaluation with a single dirty flag:
|
|
1505
|
-
* - When a dependency changes, the computed is marked dirty (no re-evaluation).
|
|
1506
|
-
* - Dirtiness propagates downstream via propagateDirty.
|
|
1507
|
-
* - The getter only re-evaluates when actually read (pull-based).
|
|
1508
|
-
* - On re-evaluation, dependencies are re-tracked via retrack() so that
|
|
1509
|
-
* derived-of-derived chains propagate correctly without paying the full
|
|
1510
|
-
* Set-delete + re-add cost of track()'s cleanup phase.
|
|
1511
|
-
*
|
|
1512
|
-
* STABILIZATION — why a dirty flag is enough:
|
|
1513
|
-
*
|
|
1514
|
-
* A dirty computed does NOT imply a changed value. Downstream effects are
|
|
1515
|
-
* enqueued by `propagateDirty` at write time, before this computed has had a
|
|
1516
|
-
* chance to recompute and compare. Rather than adding a three-color
|
|
1517
|
-
* (CLEAN/CHECK/DIRTY) propagation pass — which an earlier revision measured as
|
|
1518
|
-
* a regression on every benchmark, because the extra state has nothing to skip
|
|
1519
|
-
* when values genuinely change — the engine settles the question lazily at
|
|
1520
|
-
* DRAIN time: `cs._validate` recomputes a dirty computed and `cs.__v` is bumped
|
|
1521
|
-
* ONLY when the new value differs under this computed's comparator. The
|
|
1522
|
-
* scheduler compares that version against what each subscriber last observed
|
|
1523
|
-
* and suppresses the run when nothing changed (see `depsChanged` in
|
|
1524
|
-
* ../../reactivity/track-core.ts).
|
|
1525
|
-
*
|
|
1526
|
-
* That keeps the cheap boolean dirty flag AND makes `equals` actually stop
|
|
1527
|
-
* propagation, with recomputation still fully lazy: `_validate` only ever runs
|
|
1528
|
-
* when an effect is genuinely about to observe the value.
|
|
1529
|
-
*
|
|
1530
|
-
* @returns An accessor for the computed value. It recomputes lazily on read
|
|
1531
|
-
* after any dependency changes.
|
|
1532
|
-
*/
|
|
1533
|
-
declare function derived<T>(getter: () => T, options?: {
|
|
1534
|
-
name?: string;
|
|
1535
|
-
/** Custom equality — when the recomputed value equals the previous,
|
|
1536
|
-
* downstream subscribers are not notified. Defaults to `Object.is`. */
|
|
1537
|
-
equals?: (a: T, b: T) => boolean;
|
|
1538
|
-
}): Accessor<T>;
|
|
1539
|
-
|
|
1540
1420
|
/** Options for effect */
|
|
1541
1421
|
interface EffectOptions {
|
|
1542
1422
|
/** Error handler for exceptions thrown during effect execution. */
|
|
@@ -1668,7 +1548,9 @@ declare function watch<T>(getter: () => T, callback: (value: T, prev: T | undefi
|
|
|
1668
1548
|
* dependency-tracked). The setter typically updates upstream signals,
|
|
1669
1549
|
* and the derived value recomputes on the next read.
|
|
1670
1550
|
*
|
|
1671
|
-
* Returns a `[getter, setter]` tuple, matching the `signal()` API.
|
|
1551
|
+
* Returns a `[getter, setter]` tuple, matching the `signal()` API. The getter
|
|
1552
|
+
* is the underlying `derived()` accessor, so `getter.dispose()` releases its
|
|
1553
|
+
* upstream subscriptions when the writable is discarded before its sources.
|
|
1672
1554
|
*
|
|
1673
1555
|
* @param get Computed getter — reads reactive dependencies
|
|
1674
1556
|
* @param set Setter — called with the new value, typically updates upstream signals
|
|
@@ -1695,11 +1577,11 @@ declare function watch<T>(getter: () => T, callback: (value: T, prev: T | undefi
|
|
|
1695
1577
|
* fullName(); // "Jane Smith"
|
|
1696
1578
|
* ```
|
|
1697
1579
|
*
|
|
1698
|
-
* @returns A
|
|
1580
|
+
* @returns A `[getter, setter]` tuple; the getter carries `dispose()`.
|
|
1699
1581
|
*/
|
|
1700
1582
|
declare function writable<T>(get: () => T, set: (value: T) => void, options?: {
|
|
1701
1583
|
name?: string;
|
|
1702
|
-
}): [
|
|
1584
|
+
}): [DerivedAccessor<T>, (value: T) => void];
|
|
1703
1585
|
|
|
1704
1586
|
/**
|
|
1705
1587
|
* SSR context for SibuJS.
|
|
@@ -1724,6 +1606,13 @@ declare function writable<T>(get: () => T, set: (value: T) => void, options?: {
|
|
|
1724
1606
|
interface SSRStore {
|
|
1725
1607
|
ssr: boolean;
|
|
1726
1608
|
suspenseIdCounter: number;
|
|
1609
|
+
/**
|
|
1610
|
+
* `createId()` counter for this request. Request-scoped for the same reason
|
|
1611
|
+
* as `suspenseIdCounter`: a server render's ids must not depend on earlier or
|
|
1612
|
+
* concurrent requests, and must match a fresh client's sequence. Optional so
|
|
1613
|
+
* stores created elsewhere start it lazily at 0.
|
|
1614
|
+
*/
|
|
1615
|
+
idCounter?: number;
|
|
1727
1616
|
/**
|
|
1728
1617
|
* Per-request data caches (e.g. the query cache). Lazily created and keyed
|
|
1729
1618
|
* by subsystem so request-scoped data never bleeds between concurrent
|
|
@@ -2172,7 +2061,8 @@ interface TransitionState {
|
|
|
2172
2061
|
* and avoids the complexity of an interruptible reconciler.
|
|
2173
2062
|
*
|
|
2174
2063
|
* Async callbacks are supported: `pending()` stays `true` until the
|
|
2175
|
-
* returned promise resolves OR rejects.
|
|
2064
|
+
* returned promise resolves OR rejects. With overlapping `start()` calls it
|
|
2065
|
+
* stays `true` until every one of them has settled.
|
|
2176
2066
|
*
|
|
2177
2067
|
* @example
|
|
2178
2068
|
* ```ts
|
|
@@ -2306,4 +2196,4 @@ declare const untracked: ReactiveApi["untracked"];
|
|
|
2306
2196
|
declare const retrack: ReactiveApi["retrack"];
|
|
2307
2197
|
declare const setMaxDrainIterations: ReactiveApi["setMaxDrainIterations"];
|
|
2308
2198
|
|
|
2309
|
-
export {
|
|
2199
|
+
export { Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedContext, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DerivedAccessor, DynamicComponent, type EachBindings, type EachEventBindings, type EffectBody, type EffectOptions, type EnhanceContext, type EnhanceSetup, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, type IslandLoader, type IslandRegistration, type IslandStrategy, KeepAlive, type KeepAliveOptions, type LabelProps, type LazyIslandLoader, Loading, type LoadingProps, type LongPressOptions, MAX_DRAIN_TEARDOWNS, type MediaProps, type MountIslandsOptions, NodeChild, NodeChildren, type OnCleanup, type OptionProps, Portal, type Ref, type RuntimeErrorContext, type RuntimeErrorHandler, type RuntimeErrorPhase, type SSRStore, type SelectProps, type SlotFn, type Slots, type StoreActions, Suspense, type SuspenseProps, TagProps, type TextareaProps, type TypedTagFunction, type VideoProps, __resetIdCounter, a, abbr, action, address, area, array, article, aside, asyncDerived, audio, autoResize, b, base, batch, bdi, bdo, bindDynamic, blockquote, body, br, button, canvas, caption, catchError, catchErrorAsync, center, checkLeaks, circle, cite, clickOutside, clipPath, code, col, colgroup, context, copyOnClick, createId, customElement, data, datalist, dd, deepEqual, deepSignal, defer, defs, del, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enhance, enhanceAll, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getAction, getRequestScopedCache, getRuntimeErrorHandler, getSSRStore, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, lazyIsland, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, menu, meta, meter, mount, mountIslands, nav, nextTick, noscript, object, ol, on, onCleanup, onMount, onUnmount, optgroup, option, output, p, param, path, pattern, picture, polygon, polyline, portal, pre, progress, q, radialGradient, reactiveArray, rect, ref, registerAction, registerComponent, registerDisposer, registerIsland, replaceChildrenSafely, reportDrainRunaway, reportError, resolveComponent, retrack, rp, rt, ruby, runInSSRContext, s, samp, script, section, select, setGlobalErrorHandler, setMaxDrainIterations, setRuntimeErrorHandler, show, slot, small, source, span, stop, store, strict, strictEffect, strong, style, sub, summary, sup, svg, symbol, table, takePendingError, tbody, td, template, text, textarea, tfoot, th, thead, time, title, tr, track$1 as track, transition, trapFocus, tspan, u, ul, unregisterComponent, unregisterDisposer, unregisterIsland, untracked, use, var_, video, watch, when, withSSR, writable };
|