sibujs 3.3.0 → 3.3.2

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 (60) hide show
  1. package/dist/browser.cjs +230 -40
  2. package/dist/browser.js +5 -5
  3. package/dist/build.cjs +240 -108
  4. package/dist/build.js +13 -13
  5. package/dist/cdn.global.js +7 -7
  6. package/dist/{chunk-BEIKESVL.js → chunk-2ARSB7NG.js} +36 -13
  7. package/dist/{chunk-X3NHE2DK.js → chunk-4NJEAPLI.js} +83 -17
  8. package/dist/{chunk-JBXNCZSC.js → chunk-5VH3GIDX.js} +1 -1
  9. package/dist/{chunk-6G6UNHZI.js → chunk-62V653X2.js} +16 -21
  10. package/dist/{chunk-S4FHR5ZZ.js → chunk-655B7MMR.js} +3 -3
  11. package/dist/{chunk-24DBWDTK.js → chunk-6TCOWMGY.js} +1 -1
  12. package/dist/{chunk-USDR2GFV.js → chunk-A7CZH3GN.js} +3 -3
  13. package/dist/{chunk-SLCUP2EK.js → chunk-AEOLHSSQ.js} +3 -3
  14. package/dist/chunk-CCSJMTRN.js +15 -0
  15. package/dist/{chunk-R3QEDXFS.js → chunk-EX77FXTT.js} +1 -1
  16. package/dist/{chunk-ZUVLC7TM.js → chunk-FJIRS3FM.js} +1 -1
  17. package/dist/{chunk-4WXWJ4SW.js → chunk-FJO2ZL4Q.js} +4 -4
  18. package/dist/{chunk-CVMMULHO.js → chunk-G6N3LMO2.js} +4 -4
  19. package/dist/{chunk-XQ7XSGYP.js → chunk-IQJ36UTJ.js} +1 -1
  20. package/dist/{chunk-5K72I3UQ.js → chunk-JCQG2I2G.js} +21 -4
  21. package/dist/{chunk-7JHWAGRQ.js → chunk-N5TQVEKE.js} +2 -2
  22. package/dist/{chunk-IHBVTURX.js → chunk-P7C7SEJV.js} +4 -4
  23. package/dist/{chunk-M6WSIGYW.js → chunk-Q46YIQYW.js} +2 -2
  24. package/dist/{chunk-Q2ERM6NT.js → chunk-QCFBIVIQ.js} +1 -1
  25. package/dist/{chunk-F4UM7QBJ.js → chunk-RLTFJYDN.js} +2 -2
  26. package/dist/{chunk-GOJMFRBL.js → chunk-S3NFJO6L.js} +20 -14
  27. package/dist/{chunk-MWZFOIBG.js → chunk-YUBEOWII.js} +5 -5
  28. package/dist/{chunk-WVJJUFPC.js → chunk-YUR5SX7F.js} +2 -2
  29. package/dist/{chunk-NUWKIEHE.js → chunk-ZEUP4TUD.js} +2 -2
  30. package/dist/data.cjs +181 -37
  31. package/dist/data.js +7 -7
  32. package/dist/devtools.cjs +265 -45
  33. package/dist/devtools.js +5 -5
  34. package/dist/ecosystem.cjs +203 -59
  35. package/dist/ecosystem.js +8 -8
  36. package/dist/extras.cjs +216 -116
  37. package/dist/extras.js +22 -22
  38. package/dist/index.cjs +242 -108
  39. package/dist/index.d.cts +78 -14
  40. package/dist/index.d.ts +78 -14
  41. package/dist/index.js +17 -13
  42. package/dist/motion.cjs +329 -13
  43. package/dist/motion.js +3 -3
  44. package/dist/patterns.cjs +181 -37
  45. package/dist/patterns.js +6 -6
  46. package/dist/performance.cjs +278 -37
  47. package/dist/performance.js +6 -6
  48. package/dist/plugins.cjs +353 -153
  49. package/dist/plugins.js +95 -94
  50. package/dist/{ssr-6D67RAVB.js → ssr-2PPULEK2.js} +2 -2
  51. package/dist/ssr.cjs +203 -58
  52. package/dist/ssr.js +9 -9
  53. package/dist/testing.cjs +416 -19
  54. package/dist/testing.js +3 -3
  55. package/dist/ui.cjs +256 -65
  56. package/dist/ui.js +8 -8
  57. package/dist/widgets.cjs +166 -40
  58. package/dist/widgets.js +7 -7
  59. package/package.json +1 -1
  60. package/dist/chunk-YT6HQ6AM.js +0 -14
package/dist/index.d.cts CHANGED
@@ -192,7 +192,7 @@ declare const area: (first?: TagProps | NodeChildren, second?: NodeChildren) =>
192
192
  declare const audio: TypedTagFunction<AudioProps, HTMLAudioElement>;
193
193
  declare const img: TypedTagFunction<ImgProps, HTMLImageElement>;
194
194
  declare const map: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
195
- declare const track: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
195
+ declare const track$1: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
196
196
  declare const video: TypedTagFunction<VideoProps, HTMLVideoElement>;
197
197
  declare const embed: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
198
198
  declare const iframe: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
@@ -525,29 +525,42 @@ declare function KeepAlive(activeKey: () => string, cases: Record<string, () =>
525
525
  * a cleanup function that runs when the element is disposed.
526
526
  */
527
527
  type ActionFn<T = void> = (element: HTMLElement, param: T) => (() => void) | undefined;
528
+ /**
529
+ * Register a reusable action under a name so it can be applied by string —
530
+ * `action(el, "name", param)` — or looked up via {@link getAction}.
531
+ *
532
+ * Re-registering the same name overwrites the previous action. The built-in
533
+ * actions (`clickOutside`, `longPress`, `copyOnClick`, `autoResize`,
534
+ * `trapFocus`) are auto-registered under their export names.
535
+ */
536
+ declare function registerAction<T>(name: string, fn: ActionFn<T>): void;
537
+ /** Look up a registered action by name, or `undefined` if none is registered. */
538
+ declare function getAction<T = unknown>(name: string): ActionFn<T> | undefined;
528
539
  /**
529
540
  * Attach a reusable action (element-level behavior) to an element.
530
541
  * The action's cleanup function (if returned) is automatically registered
531
542
  * via `registerDisposer`, so it runs when the element is disposed.
532
543
  *
533
- * Actions are composable multiple can be applied to the same element.
544
+ * The action may be passed directly, or by the name it was registered under
545
+ * (see {@link registerAction}). Actions are composable — multiple can be
546
+ * applied to the same element.
534
547
  *
535
548
  * @param element The target element
536
- * @param actionFn The action function
549
+ * @param action The action function, or the name of a registered action
537
550
  * @param param Optional parameter passed to the action
538
551
  *
539
552
  * @example
540
553
  * ```ts
541
554
  * div({
542
555
  * onElement: (el) => {
543
- * action(el, clickOutside, () => setOpen(false));
544
- * action(el, longPress, { duration: 500, callback: onLongPress });
556
+ * action(el, clickOutside, () => setOpen(false)); // by reference
557
+ * action(el, "longPress", { duration: 500, callback: onLongPress }); // by name
545
558
  * },
546
559
  * }, "Content");
547
560
  * ```
548
561
  */
549
- declare function action<T>(element: HTMLElement, actionFn: ActionFn<T>, param: T): void;
550
- declare function action(element: HTMLElement, actionFn: ActionFn<void>): void;
562
+ declare function action<T>(element: HTMLElement, action: ActionFn<T> | string, param: T): void;
563
+ declare function action(element: HTMLElement, action: ActionFn<void> | string): void;
551
564
  /**
552
565
  * Fires a callback when the user clicks outside the element.
553
566
  * Useful for closing dropdowns, modals, and popovers.
@@ -1300,16 +1313,24 @@ declare function withSSR<T>(fn: () => T): T;
1300
1313
  * }); // Only one notification pass, result === "done"
1301
1314
  * ```
1302
1315
  */
1303
- declare function batch<T>(fn: () => T): T;
1316
+ declare function batchImpl<T>(fn: () => T): T;
1304
1317
  /**
1305
1318
  * Queue a signal for deferred notification during a batch.
1306
1319
  * If not batching, returns false so the caller can notify immediately.
1307
1320
  */
1308
- declare function enqueueBatchedSignal(signal: ReactiveSignal): boolean;
1321
+ declare function enqueueBatchedSignalImpl(signal: ReactiveSignal): boolean;
1309
1322
  /**
1310
1323
  * Check if we're currently inside a batch.
1311
1324
  */
1312
- declare function isBatching(): boolean;
1325
+ declare function isBatchingImpl(): boolean;
1326
+ interface BatchApi {
1327
+ batch: typeof batchImpl;
1328
+ enqueueBatchedSignal: typeof enqueueBatchedSignalImpl;
1329
+ isBatching: typeof isBatchingImpl;
1330
+ }
1331
+ declare const batch: BatchApi["batch"];
1332
+ declare const enqueueBatchedSignal: BatchApi["enqueueBatchedSignal"];
1333
+ declare const isBatching: BatchApi["isBatching"];
1313
1334
 
1314
1335
  /**
1315
1336
  * Wait for the next microtask — after any currently-pending reactive updates
@@ -1385,9 +1406,52 @@ interface TransitionState {
1385
1406
  declare function transition(): TransitionState;
1386
1407
 
1387
1408
  type Subscriber = () => void;
1388
- declare function untracked<T>(fn: () => T): T;
1389
- declare function retrack(effectFn: () => void, subscriber: Subscriber): void;
1390
- declare function setMaxDrainIterations(n: number): number;
1409
+ declare function suspendTracking(): void;
1410
+ declare function resumeTracking(): void;
1411
+ /** Read the "tracking suspended" flag (used by derived's lazy path). */
1412
+ declare function isTrackingSuspended(): boolean;
1413
+ declare function untracked$1<T>(fn: () => T): T;
1414
+ declare function retrack$1(effectFn: () => void, subscriber: Subscriber): void;
1415
+ declare function track(effectFn: () => void, subscriber?: Subscriber): () => void;
1416
+ declare function reactiveBinding(commit: () => void): () => void;
1417
+ declare function recordDependency(signal: ReactiveSignal): void;
1418
+ declare function cleanup(subscriber: Subscriber): void;
1419
+ declare function setMaxSubscriberRepeats(n: number): number;
1420
+ declare function setMaxDrainIterations$1(n: number): number;
1421
+ declare function drainNotificationQueue(): void;
1422
+ declare function queueSignalNotification(signal: ReactiveSignal): void;
1423
+ declare function notifySubscribers(signal: ReactiveSignal): void;
1424
+ /** O(1) subscriber count for devtools / introspection. */
1425
+ declare function getSubscriberCount(signal: ReactiveSignal): number;
1426
+ /** Return the signals a subscriber currently depends on, in record order. */
1427
+ declare function getSubscriberDeps(subscriber: Subscriber): ReactiveSignal[];
1428
+ /** Iterate subscribers of a signal (devtools graph walk). */
1429
+ declare function forEachSubscriber(signal: ReactiveSignal, visit: (sub: Subscriber) => void): void;
1430
+
1431
+ interface ReactiveApi {
1432
+ suspendTracking: typeof suspendTracking;
1433
+ resumeTracking: typeof resumeTracking;
1434
+ isTrackingSuspended: typeof isTrackingSuspended;
1435
+ untracked: typeof untracked$1;
1436
+ retrack: typeof retrack$1;
1437
+ track: typeof track;
1438
+ reactiveBinding: typeof reactiveBinding;
1439
+ recordDependency: typeof recordDependency;
1440
+ cleanup: typeof cleanup;
1441
+ setMaxSubscriberRepeats: typeof setMaxSubscriberRepeats;
1442
+ setMaxDrainIterations: typeof setMaxDrainIterations$1;
1443
+ drainNotificationQueue: typeof drainNotificationQueue;
1444
+ queueSignalNotification: typeof queueSignalNotification;
1445
+ notifySubscribers: typeof notifySubscribers;
1446
+ getSubscriberCount: typeof getSubscriberCount;
1447
+ getSubscriberDeps: typeof getSubscriberDeps;
1448
+ forEachSubscriber: typeof forEachSubscriber;
1449
+ version: string;
1450
+ __dupWarned?: boolean;
1451
+ }
1452
+ declare const untracked: ReactiveApi["untracked"];
1453
+ declare const retrack: ReactiveApi["retrack"];
1454
+ declare const setMaxDrainIterations: ReactiveApi["setMaxDrainIterations"];
1391
1455
 
1392
1456
  /**
1393
1457
  * Bind a dynamic attribute where both name and value can change reactively.
@@ -1564,4 +1628,4 @@ interface LoadingProps {
1564
1628
  */
1565
1629
  declare function Loading(props?: LoadingProps): HTMLElement;
1566
1630
 
1567
- export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EffectBody, type EffectOptions, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, KeepAlive, type KeepAliveOptions, type LabelProps, Loading, type LoadingProps, type LongPressOptions, type MediaProps, NodeChild, NodeChildren, type OnCleanup, type OptionProps, Portal, type Ref, type SSRStore, type SelectProps, type SignalOptions, 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, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getRequestScopedCache, getSSRStore, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, menu, meta, meter, mount, 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, registerComponent, registerDisposer, resolveComponent, retrack, rp, rt, ruby, runInSSRContext, s, samp, script, section, select, setGlobalErrorHandler, setMaxDrainIterations, show, signal, 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, transition, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
1631
+ export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EffectBody, type EffectOptions, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, KeepAlive, type KeepAliveOptions, type LabelProps, Loading, type LoadingProps, type LongPressOptions, type MediaProps, NodeChild, NodeChildren, type OnCleanup, type OptionProps, Portal, type Ref, type SSRStore, type SelectProps, type SignalOptions, 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, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getAction, getRequestScopedCache, getSSRStore, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, menu, meta, meter, mount, 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, resolveComponent, retrack, rp, rt, ruby, runInSSRContext, s, samp, script, section, select, setGlobalErrorHandler, setMaxDrainIterations, show, signal, 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, untracked, use, var_, video, watch, when, withSSR, writable };
package/dist/index.d.ts CHANGED
@@ -192,7 +192,7 @@ declare const area: (first?: TagProps | NodeChildren, second?: NodeChildren) =>
192
192
  declare const audio: TypedTagFunction<AudioProps, HTMLAudioElement>;
193
193
  declare const img: TypedTagFunction<ImgProps, HTMLImageElement>;
194
194
  declare const map: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
195
- declare const track: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
195
+ declare const track$1: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
196
196
  declare const video: TypedTagFunction<VideoProps, HTMLVideoElement>;
197
197
  declare const embed: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
198
198
  declare const iframe: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
@@ -525,29 +525,42 @@ declare function KeepAlive(activeKey: () => string, cases: Record<string, () =>
525
525
  * a cleanup function that runs when the element is disposed.
526
526
  */
527
527
  type ActionFn<T = void> = (element: HTMLElement, param: T) => (() => void) | undefined;
528
+ /**
529
+ * Register a reusable action under a name so it can be applied by string —
530
+ * `action(el, "name", param)` — or looked up via {@link getAction}.
531
+ *
532
+ * Re-registering the same name overwrites the previous action. The built-in
533
+ * actions (`clickOutside`, `longPress`, `copyOnClick`, `autoResize`,
534
+ * `trapFocus`) are auto-registered under their export names.
535
+ */
536
+ declare function registerAction<T>(name: string, fn: ActionFn<T>): void;
537
+ /** Look up a registered action by name, or `undefined` if none is registered. */
538
+ declare function getAction<T = unknown>(name: string): ActionFn<T> | undefined;
528
539
  /**
529
540
  * Attach a reusable action (element-level behavior) to an element.
530
541
  * The action's cleanup function (if returned) is automatically registered
531
542
  * via `registerDisposer`, so it runs when the element is disposed.
532
543
  *
533
- * Actions are composable multiple can be applied to the same element.
544
+ * The action may be passed directly, or by the name it was registered under
545
+ * (see {@link registerAction}). Actions are composable — multiple can be
546
+ * applied to the same element.
534
547
  *
535
548
  * @param element The target element
536
- * @param actionFn The action function
549
+ * @param action The action function, or the name of a registered action
537
550
  * @param param Optional parameter passed to the action
538
551
  *
539
552
  * @example
540
553
  * ```ts
541
554
  * div({
542
555
  * onElement: (el) => {
543
- * action(el, clickOutside, () => setOpen(false));
544
- * action(el, longPress, { duration: 500, callback: onLongPress });
556
+ * action(el, clickOutside, () => setOpen(false)); // by reference
557
+ * action(el, "longPress", { duration: 500, callback: onLongPress }); // by name
545
558
  * },
546
559
  * }, "Content");
547
560
  * ```
548
561
  */
549
- declare function action<T>(element: HTMLElement, actionFn: ActionFn<T>, param: T): void;
550
- declare function action(element: HTMLElement, actionFn: ActionFn<void>): void;
562
+ declare function action<T>(element: HTMLElement, action: ActionFn<T> | string, param: T): void;
563
+ declare function action(element: HTMLElement, action: ActionFn<void> | string): void;
551
564
  /**
552
565
  * Fires a callback when the user clicks outside the element.
553
566
  * Useful for closing dropdowns, modals, and popovers.
@@ -1300,16 +1313,24 @@ declare function withSSR<T>(fn: () => T): T;
1300
1313
  * }); // Only one notification pass, result === "done"
1301
1314
  * ```
1302
1315
  */
1303
- declare function batch<T>(fn: () => T): T;
1316
+ declare function batchImpl<T>(fn: () => T): T;
1304
1317
  /**
1305
1318
  * Queue a signal for deferred notification during a batch.
1306
1319
  * If not batching, returns false so the caller can notify immediately.
1307
1320
  */
1308
- declare function enqueueBatchedSignal(signal: ReactiveSignal): boolean;
1321
+ declare function enqueueBatchedSignalImpl(signal: ReactiveSignal): boolean;
1309
1322
  /**
1310
1323
  * Check if we're currently inside a batch.
1311
1324
  */
1312
- declare function isBatching(): boolean;
1325
+ declare function isBatchingImpl(): boolean;
1326
+ interface BatchApi {
1327
+ batch: typeof batchImpl;
1328
+ enqueueBatchedSignal: typeof enqueueBatchedSignalImpl;
1329
+ isBatching: typeof isBatchingImpl;
1330
+ }
1331
+ declare const batch: BatchApi["batch"];
1332
+ declare const enqueueBatchedSignal: BatchApi["enqueueBatchedSignal"];
1333
+ declare const isBatching: BatchApi["isBatching"];
1313
1334
 
1314
1335
  /**
1315
1336
  * Wait for the next microtask — after any currently-pending reactive updates
@@ -1385,9 +1406,52 @@ interface TransitionState {
1385
1406
  declare function transition(): TransitionState;
1386
1407
 
1387
1408
  type Subscriber = () => void;
1388
- declare function untracked<T>(fn: () => T): T;
1389
- declare function retrack(effectFn: () => void, subscriber: Subscriber): void;
1390
- declare function setMaxDrainIterations(n: number): number;
1409
+ declare function suspendTracking(): void;
1410
+ declare function resumeTracking(): void;
1411
+ /** Read the "tracking suspended" flag (used by derived's lazy path). */
1412
+ declare function isTrackingSuspended(): boolean;
1413
+ declare function untracked$1<T>(fn: () => T): T;
1414
+ declare function retrack$1(effectFn: () => void, subscriber: Subscriber): void;
1415
+ declare function track(effectFn: () => void, subscriber?: Subscriber): () => void;
1416
+ declare function reactiveBinding(commit: () => void): () => void;
1417
+ declare function recordDependency(signal: ReactiveSignal): void;
1418
+ declare function cleanup(subscriber: Subscriber): void;
1419
+ declare function setMaxSubscriberRepeats(n: number): number;
1420
+ declare function setMaxDrainIterations$1(n: number): number;
1421
+ declare function drainNotificationQueue(): void;
1422
+ declare function queueSignalNotification(signal: ReactiveSignal): void;
1423
+ declare function notifySubscribers(signal: ReactiveSignal): void;
1424
+ /** O(1) subscriber count for devtools / introspection. */
1425
+ declare function getSubscriberCount(signal: ReactiveSignal): number;
1426
+ /** Return the signals a subscriber currently depends on, in record order. */
1427
+ declare function getSubscriberDeps(subscriber: Subscriber): ReactiveSignal[];
1428
+ /** Iterate subscribers of a signal (devtools graph walk). */
1429
+ declare function forEachSubscriber(signal: ReactiveSignal, visit: (sub: Subscriber) => void): void;
1430
+
1431
+ interface ReactiveApi {
1432
+ suspendTracking: typeof suspendTracking;
1433
+ resumeTracking: typeof resumeTracking;
1434
+ isTrackingSuspended: typeof isTrackingSuspended;
1435
+ untracked: typeof untracked$1;
1436
+ retrack: typeof retrack$1;
1437
+ track: typeof track;
1438
+ reactiveBinding: typeof reactiveBinding;
1439
+ recordDependency: typeof recordDependency;
1440
+ cleanup: typeof cleanup;
1441
+ setMaxSubscriberRepeats: typeof setMaxSubscriberRepeats;
1442
+ setMaxDrainIterations: typeof setMaxDrainIterations$1;
1443
+ drainNotificationQueue: typeof drainNotificationQueue;
1444
+ queueSignalNotification: typeof queueSignalNotification;
1445
+ notifySubscribers: typeof notifySubscribers;
1446
+ getSubscriberCount: typeof getSubscriberCount;
1447
+ getSubscriberDeps: typeof getSubscriberDeps;
1448
+ forEachSubscriber: typeof forEachSubscriber;
1449
+ version: string;
1450
+ __dupWarned?: boolean;
1451
+ }
1452
+ declare const untracked: ReactiveApi["untracked"];
1453
+ declare const retrack: ReactiveApi["retrack"];
1454
+ declare const setMaxDrainIterations: ReactiveApi["setMaxDrainIterations"];
1391
1455
 
1392
1456
  /**
1393
1457
  * Bind a dynamic attribute where both name and value can change reactively.
@@ -1564,4 +1628,4 @@ interface LoadingProps {
1564
1628
  */
1565
1629
  declare function Loading(props?: LoadingProps): HTMLElement;
1566
1630
 
1567
- export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EffectBody, type EffectOptions, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, KeepAlive, type KeepAliveOptions, type LabelProps, Loading, type LoadingProps, type LongPressOptions, type MediaProps, NodeChild, NodeChildren, type OnCleanup, type OptionProps, Portal, type Ref, type SSRStore, type SelectProps, type SignalOptions, 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, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getRequestScopedCache, getSSRStore, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, menu, meta, meter, mount, 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, registerComponent, registerDisposer, resolveComponent, retrack, rp, rt, ruby, runInSSRContext, s, samp, script, section, select, setGlobalErrorHandler, setMaxDrainIterations, show, signal, 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, transition, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
1631
+ export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EffectBody, type EffectOptions, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, KeepAlive, type KeepAliveOptions, type LabelProps, Loading, type LoadingProps, type LongPressOptions, type MediaProps, NodeChild, NodeChildren, type OnCleanup, type OptionProps, Portal, type Ref, type SSRStore, type SelectProps, type SignalOptions, 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, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getAction, getRequestScopedCache, getSSRStore, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, menu, meta, meter, mount, 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, resolveComponent, retrack, rp, rt, ruby, runInSSRContext, s, samp, script, section, select, setGlobalErrorHandler, setMaxDrainIterations, show, signal, 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, untracked, use, var_, video, watch, when, withSSR, writable };
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ import {
19
19
  deepSignal,
20
20
  defer,
21
21
  each,
22
+ getAction,
22
23
  getSlot,
23
24
  html,
24
25
  lazy,
@@ -31,6 +32,7 @@ import {
31
32
  onUnmount,
32
33
  reactiveArray,
33
34
  ref,
35
+ registerAction,
34
36
  registerComponent,
35
37
  resolveComponent,
36
38
  setGlobalErrorHandler,
@@ -44,11 +46,11 @@ import {
44
46
  unregisterComponent,
45
47
  when,
46
48
  writable
47
- } from "./chunk-BEIKESVL.js";
49
+ } from "./chunk-2ARSB7NG.js";
48
50
  import {
49
51
  __resetIdCounter,
50
52
  createId
51
- } from "./chunk-YT6HQ6AM.js";
53
+ } from "./chunk-CCSJMTRN.js";
52
54
  import {
53
55
  a,
54
56
  abbr,
@@ -186,26 +188,26 @@ import {
186
188
  use,
187
189
  var_,
188
190
  video
189
- } from "./chunk-24DBWDTK.js";
191
+ } from "./chunk-6TCOWMGY.js";
190
192
  import {
191
193
  watch
192
- } from "./chunk-F4UM7QBJ.js";
194
+ } from "./chunk-RLTFJYDN.js";
193
195
  import {
194
196
  trustHTML
195
- } from "./chunk-R3QEDXFS.js";
197
+ } from "./chunk-EX77FXTT.js";
196
198
  import {
197
199
  context
198
- } from "./chunk-JBXNCZSC.js";
200
+ } from "./chunk-5VH3GIDX.js";
199
201
  import {
200
202
  SVG_NS,
201
203
  tagFactory
202
- } from "./chunk-NUWKIEHE.js";
204
+ } from "./chunk-ZEUP4TUD.js";
203
205
  import {
204
206
  bindDynamic
205
- } from "./chunk-Q2ERM6NT.js";
207
+ } from "./chunk-QCFBIVIQ.js";
206
208
  import {
207
209
  derived
208
- } from "./chunk-CVMMULHO.js";
210
+ } from "./chunk-G6N3LMO2.js";
209
211
  import {
210
212
  checkLeaks,
211
213
  dispose,
@@ -215,7 +217,7 @@ import "./chunk-L3GAGWCC.js";
215
217
  import {
216
218
  effect,
217
219
  on
218
- } from "./chunk-7JHWAGRQ.js";
220
+ } from "./chunk-N5TQVEKE.js";
219
221
  import {
220
222
  disableSSR,
221
223
  enableSSR,
@@ -224,18 +226,18 @@ import {
224
226
  isSSR,
225
227
  runInSSRContext,
226
228
  withSSR
227
- } from "./chunk-GOJMFRBL.js";
229
+ } from "./chunk-S3NFJO6L.js";
228
230
  import {
229
231
  batch,
230
232
  enqueueBatchedSignal,
231
233
  isBatching,
232
234
  signal
233
- } from "./chunk-5K72I3UQ.js";
235
+ } from "./chunk-JCQG2I2G.js";
234
236
  import {
235
237
  retrack,
236
238
  setMaxDrainIterations,
237
239
  untracked
238
- } from "./chunk-X3NHE2DK.js";
240
+ } from "./chunk-4NJEAPLI.js";
239
241
  import "./chunk-COY6PUD2.js";
240
242
  export {
241
243
  DynamicComponent,
@@ -317,6 +319,7 @@ export {
317
319
  footer,
318
320
  form,
319
321
  g,
322
+ getAction,
320
323
  getRequestScopedCache,
321
324
  getSSRStore,
322
325
  getSlot,
@@ -385,6 +388,7 @@ export {
385
388
  reactiveArray,
386
389
  rect,
387
390
  ref,
391
+ registerAction,
388
392
  registerComponent,
389
393
  registerDisposer,
390
394
  resolveComponent,