sibujs 3.3.1 → 3.3.3

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 (78) hide show
  1. package/dist/browser.cjs +41 -18
  2. package/dist/browser.js +5 -5
  3. package/dist/build.cjs +57 -22
  4. package/dist/build.js +14 -14
  5. package/dist/cdn.global.js +7 -7
  6. package/dist/{chunk-MHBCEJQO.js → chunk-23VT3KZB.js} +2 -2
  7. package/dist/{chunk-WL7BIR6O.js → chunk-25LY5SRH.js} +31 -24
  8. package/dist/{chunk-37BUKSLH.js → chunk-5K6RVA2S.js} +1 -1
  9. package/dist/{chunk-AMIKDMLP.js → chunk-5Y34FWED.js} +17 -6
  10. package/dist/chunk-7ZHH77QA.js +9 -0
  11. package/dist/chunk-CCSJMTRN.js +15 -0
  12. package/dist/{chunk-R3QEDXFS.js → chunk-EX77FXTT.js} +1 -1
  13. package/dist/{chunk-WW6DAGGR.js → chunk-F3HO2MP7.js} +1 -1
  14. package/dist/{chunk-ZUVLC7TM.js → chunk-F7HW2NI5.js} +2 -4
  15. package/dist/{chunk-ULLTNDRA.js → chunk-IEYFHN5V.js} +72 -25
  16. package/dist/{chunk-Z37APKBV.js → chunk-IQN5W7GE.js} +73 -16
  17. package/dist/{chunk-WZG2SZOT.js → chunk-IWFE4AHO.js} +1 -1
  18. package/dist/{chunk-IKLYI3RF.js → chunk-MYXEBADX.js} +53 -23
  19. package/dist/{chunk-6LTFHJQG.js → chunk-QCQQ2N5H.js} +41 -20
  20. package/dist/{chunk-VOVVTOEA.js → chunk-QTOOBABV.js} +22 -5
  21. package/dist/{chunk-LU2MQXQQ.js → chunk-RZKGMHH4.js} +6 -6
  22. package/dist/{chunk-GOJMFRBL.js → chunk-S3NFJO6L.js} +20 -14
  23. package/dist/{chunk-NHKQKKZU.js → chunk-SBPUXWCE.js} +1 -1
  24. package/dist/{chunk-SLMFA3ZZ.js → chunk-TBDTU7UO.js} +2 -2
  25. package/dist/{chunk-4UUMSLSL.js → chunk-TVCCXPU2.js} +5 -5
  26. package/dist/{chunk-TEFZT5PJ.js → chunk-UOMYIAG6.js} +1 -1
  27. package/dist/{chunk-XH2RTYEQ.js → chunk-WFUUT6TG.js} +15 -8
  28. package/dist/{chunk-M5KBNOSJ.js → chunk-WTFMV2RU.js} +70 -59
  29. package/dist/{chunk-3JHCYHWN.js → chunk-WWV3SJ3L.js} +19 -13
  30. package/dist/{chunk-RYMOSG5B.js → chunk-Y35NQNLG.js} +90 -60
  31. package/dist/{chunk-F7FXQ3QS.js → chunk-ZXCZWMZT.js} +1 -1
  32. package/dist/data.cjs +36 -16
  33. package/dist/data.js +8 -7
  34. package/dist/devtools.cjs +91 -35
  35. package/dist/devtools.d.cts +12 -5
  36. package/dist/devtools.d.ts +12 -5
  37. package/dist/devtools.js +7 -6
  38. package/dist/ecosystem.cjs +31 -16
  39. package/dist/ecosystem.js +11 -10
  40. package/dist/extras.cjs +485 -280
  41. package/dist/extras.d.cts +1 -1
  42. package/dist/extras.d.ts +1 -1
  43. package/dist/extras.js +28 -24
  44. package/dist/index.cjs +59 -22
  45. package/dist/index.d.cts +24 -8
  46. package/dist/index.d.ts +24 -8
  47. package/dist/index.js +25 -21
  48. package/dist/motion.cjs +223 -204
  49. package/dist/motion.d.cts +8 -1
  50. package/dist/motion.d.ts +8 -1
  51. package/dist/motion.js +6 -3
  52. package/dist/patterns.cjs +33 -20
  53. package/dist/patterns.d.cts +4 -1
  54. package/dist/patterns.d.ts +4 -1
  55. package/dist/patterns.js +6 -6
  56. package/dist/performance.cjs +90 -70
  57. package/dist/performance.js +8 -7
  58. package/dist/plugins.cjs +207 -144
  59. package/dist/plugins.d.cts +2 -1
  60. package/dist/plugins.d.ts +2 -1
  61. package/dist/plugins.js +178 -124
  62. package/dist/{ssr-6D67RAVB.js → ssr-2PPULEK2.js} +2 -2
  63. package/dist/ssr.cjs +132 -105
  64. package/dist/ssr.d.cts +8 -1
  65. package/dist/ssr.d.ts +8 -1
  66. package/dist/ssr.js +11 -10
  67. package/dist/testing.cjs +38 -18
  68. package/dist/testing.js +19 -8
  69. package/dist/ui.cjs +337 -294
  70. package/dist/ui.d.cts +0 -20
  71. package/dist/ui.d.ts +0 -20
  72. package/dist/ui.js +30 -24
  73. package/dist/widgets.cjs +95 -27
  74. package/dist/widgets.d.cts +6 -1
  75. package/dist/widgets.d.ts +6 -1
  76. package/dist/widgets.js +8 -7
  77. package/package.json +1 -1
  78. package/dist/chunk-YT6HQ6AM.js +0 -14
package/dist/extras.d.cts CHANGED
@@ -2,7 +2,7 @@ export { InfiniteQueryOptions, InfiniteQueryResult, LoaderRoute, MutationOptions
2
2
  export { AnimationFrameOptions, BoundsRect, GamepadSnapshot, ImageLoaderState, KeyboardOptions, MouseOptions, MutationObserverOptions, SpeakOptions, SwipeDirection, SwipeOptions, TextSelectionState, UrlStateOptions, animationFrame, battery, bounds, broadcast, clipboard, colorScheme, draggable, dropZone, favicon, formatCurrency, formatNumber, fullscreen, gamepad, geo, idle, imageLoader, keyboard, media, mouse, mutationObserver, network, online, permissions, pointerLock, resize, scroll, speech, svgFavicon, swipe, textSelection, title, urlState, vibrate, visibility, wakeLock, windowSize } from './browser.cjs';
3
3
  export { GlobalStore, MachineConfig, MachineReturn, Middleware, PersistOptions, Selector, TimeTravelReturn, globalStore, machine, optimistic, optimisticList, persisted, timeline } from './patterns.cjs';
4
4
  export { C as ComponentProps, P as PropDef, a as PropSchema, R as RenderProp, V as Validator, b as assertType, c as compose, d as createGuard, e as createSlots, f as defineComponent, g as defineSlottedComponent, h as defineStrictComponent, v as validateProps, i as validators, w as withBoundary, j as withDefaults, k as withProps, l as withWrapper } from './contracts-ey_Qh8ef.cjs';
5
- export { AnimationPreset, PresetOptions, SlideDirection, SpringOptions, TransitionGroup, TransitionGroupOptions, TransitionOptions, animate, bounceIn, bounceOut, fadeIn, fadeOut, flipIn, pulse, reducedMotion, scaleDown, scaleUp, sequence, shake, slideIn, slideOut, spring, springSignal, stagger, transition, viewTransition } from './motion.cjs';
5
+ export { AnimationPreset, PresetOptions, SlideDirection, SpringOptions, TransitionGroup, TransitionGroupOptions, TransitionOptions, animate, bounceIn, bounceOut, fadeIn, fadeOut, flipIn, prefersReducedMotion, pulse, reducedMotion, scaleDown, scaleUp, sequence, shake, slideIn, slideOut, spring, springSignal, stagger, transition, viewTransition } from './motion.cjs';
6
6
  export { B as BoundFieldProps, C as CustomElementOptions, F as FieldConfig, a as FocusTrap, b as FormConfig, c as FormField, d as FormReturn, I as IntersectionResult, M as MaskOptions, T as Toast, e as ToastInstance, V as ValidatorFn, f as VirtualList, g as VirtualListProps, _ as __resetDialogStack, h as announce, i as aria, j as bindAttrs, k as bindBoolAttr, l as bindData, m as bindField, n as creditCardMask, o as custom, p as dateMask, q as defineElement, r as dialog, s as email, t as eventBus, u as focus, v as form, w as hotkey, x as infiniteScroll, y as inputMask, z as intersection, A as lazyLoad, D as matchesPattern, E as max, G as maxLength, H as min, J as minLength, K as pagination, L as phoneMask, N as removeScopedStyle, O as required, P as scopedStyle, Q as ssnMask, R as svgElement, S as timeMask, U as toast, W as withScopedStyle, X as zipMask } from './customElement-CPfIrbvg.cjs';
7
7
  export { ChunkConfig, DOMPool, Features, NormalizeResult, NormalizedEntities, NormalizedSchema, NormalizedState, NormalizedStoreActions, Priority, PriorityLevel, block, cloneTemplate, conditional, createChunkRegistry, deferredValue, denormalize, devOnly, flushScheduler, getDOMPool, hoistable, lazyChunk, noSideEffect, normalize, normalizedStore, pendingTasks, precompile, prefetch, preloadImage, preloadModule, preloadModules, preloadResource, processInChunks, pure, resetIdCounter, scheduleUpdate, setIdPrefix, startTransition, staticTemplate, transitionState, uniqueId, yieldToMain } from './performance.cjs';
8
8
  export { ActionFn, ActionResult, Head, ISROptions, LoadRemoteModuleOptions, LoadWasmOptions, MicroApp, MicroAppConfig, MiddlewareFn, SSGOptions, SSGResult, ScrollRestorationOptions, ServiceWorkerState, SharedScope, UseWorkerFnReturn, UseWorkerReturn, WasmConfig, WasmModuleState, WorkerPool, clearWasmCache, composeMiddleware, createAction, createISR, createMicroApp, createMiddlewareChain, createSharedScope, createWasmBridge, createWorkerPool, defineRemoteComponent, generateStaticSite, isWasmCached, loadRemoteModule, loadWasmModule, preloadWasm, scrollRestoration, serviceWorker, setCanonical, setStructuredData, wasm, worker, workerFn } from './ssr.cjs';
package/dist/extras.d.ts CHANGED
@@ -2,7 +2,7 @@ export { InfiniteQueryOptions, InfiniteQueryResult, LoaderRoute, MutationOptions
2
2
  export { AnimationFrameOptions, BoundsRect, GamepadSnapshot, ImageLoaderState, KeyboardOptions, MouseOptions, MutationObserverOptions, SpeakOptions, SwipeDirection, SwipeOptions, TextSelectionState, UrlStateOptions, animationFrame, battery, bounds, broadcast, clipboard, colorScheme, draggable, dropZone, favicon, formatCurrency, formatNumber, fullscreen, gamepad, geo, idle, imageLoader, keyboard, media, mouse, mutationObserver, network, online, permissions, pointerLock, resize, scroll, speech, svgFavicon, swipe, textSelection, title, urlState, vibrate, visibility, wakeLock, windowSize } from './browser.js';
3
3
  export { GlobalStore, MachineConfig, MachineReturn, Middleware, PersistOptions, Selector, TimeTravelReturn, globalStore, machine, optimistic, optimisticList, persisted, timeline } from './patterns.js';
4
4
  export { C as ComponentProps, P as PropDef, a as PropSchema, R as RenderProp, V as Validator, b as assertType, c as compose, d as createGuard, e as createSlots, f as defineComponent, g as defineSlottedComponent, h as defineStrictComponent, v as validateProps, i as validators, w as withBoundary, j as withDefaults, k as withProps, l as withWrapper } from './contracts-ey_Qh8ef.js';
5
- export { AnimationPreset, PresetOptions, SlideDirection, SpringOptions, TransitionGroup, TransitionGroupOptions, TransitionOptions, animate, bounceIn, bounceOut, fadeIn, fadeOut, flipIn, pulse, reducedMotion, scaleDown, scaleUp, sequence, shake, slideIn, slideOut, spring, springSignal, stagger, transition, viewTransition } from './motion.js';
5
+ export { AnimationPreset, PresetOptions, SlideDirection, SpringOptions, TransitionGroup, TransitionGroupOptions, TransitionOptions, animate, bounceIn, bounceOut, fadeIn, fadeOut, flipIn, prefersReducedMotion, pulse, reducedMotion, scaleDown, scaleUp, sequence, shake, slideIn, slideOut, spring, springSignal, stagger, transition, viewTransition } from './motion.js';
6
6
  export { B as BoundFieldProps, C as CustomElementOptions, F as FieldConfig, a as FocusTrap, b as FormConfig, c as FormField, d as FormReturn, I as IntersectionResult, M as MaskOptions, T as Toast, e as ToastInstance, V as ValidatorFn, f as VirtualList, g as VirtualListProps, _ as __resetDialogStack, h as announce, i as aria, j as bindAttrs, k as bindBoolAttr, l as bindData, m as bindField, n as creditCardMask, o as custom, p as dateMask, q as defineElement, r as dialog, s as email, t as eventBus, u as focus, v as form, w as hotkey, x as infiniteScroll, y as inputMask, z as intersection, A as lazyLoad, D as matchesPattern, E as max, G as maxLength, H as min, J as minLength, K as pagination, L as phoneMask, N as removeScopedStyle, O as required, P as scopedStyle, Q as ssnMask, R as svgElement, S as timeMask, U as toast, W as withScopedStyle, X as zipMask } from './customElement-CPfIrbvg.js';
7
7
  export { ChunkConfig, DOMPool, Features, NormalizeResult, NormalizedEntities, NormalizedSchema, NormalizedState, NormalizedStoreActions, Priority, PriorityLevel, block, cloneTemplate, conditional, createChunkRegistry, deferredValue, denormalize, devOnly, flushScheduler, getDOMPool, hoistable, lazyChunk, noSideEffect, normalize, normalizedStore, pendingTasks, precompile, prefetch, preloadImage, preloadModule, preloadModules, preloadResource, processInChunks, pure, resetIdCounter, scheduleUpdate, setIdPrefix, startTransition, staticTemplate, transitionState, uniqueId, yieldToMain } from './performance.js';
8
8
  export { ActionFn, ActionResult, Head, ISROptions, LoadRemoteModuleOptions, LoadWasmOptions, MicroApp, MicroAppConfig, MiddlewareFn, SSGOptions, SSGResult, ScrollRestorationOptions, ServiceWorkerState, SharedScope, UseWorkerFnReturn, UseWorkerReturn, WasmConfig, WasmModuleState, WorkerPool, clearWasmCache, composeMiddleware, createAction, createISR, createMicroApp, createMiddlewareChain, createSharedScope, createWasmBridge, createWorkerPool, defineRemoteComponent, generateStaticSite, isWasmCached, loadRemoteModule, loadWasmModule, preloadWasm, scrollRestoration, serviceWorker, setCanonical, setStructuredData, wasm, worker, workerFn } from './ssr.js';
package/dist/extras.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  optimisticList,
6
6
  persisted,
7
7
  timeline
8
- } from "./chunk-XH2RTYEQ.js";
8
+ } from "./chunk-WFUUT6TG.js";
9
9
  import {
10
10
  DOMPool,
11
11
  Features,
@@ -41,7 +41,7 @@ import {
41
41
  transitionState,
42
42
  uniqueId,
43
43
  yieldToMain
44
- } from "./chunk-M5KBNOSJ.js";
44
+ } from "./chunk-WTFMV2RU.js";
45
45
  import {
46
46
  VERSION,
47
47
  bundlerMetadata,
@@ -62,7 +62,7 @@ import {
62
62
  preloadCritical,
63
63
  prerenderRoutes,
64
64
  satisfies
65
- } from "./chunk-ZUVLC7TM.js";
65
+ } from "./chunk-F7HW2NI5.js";
66
66
  import {
67
67
  Head,
68
68
  clearWasmCache,
@@ -87,7 +87,7 @@ import {
87
87
  wasm,
88
88
  worker,
89
89
  workerFn
90
- } from "./chunk-6LTFHJQG.js";
90
+ } from "./chunk-QCQQ2N5H.js";
91
91
  import {
92
92
  FocusTrap,
93
93
  VirtualList,
@@ -128,7 +128,7 @@ import {
128
128
  toast,
129
129
  withScopedStyle,
130
130
  zipMask
131
- } from "./chunk-RYMOSG5B.js";
131
+ } from "./chunk-Y35NQNLG.js";
132
132
  import {
133
133
  RenderProp,
134
134
  assertType,
@@ -155,7 +155,7 @@ import {
155
155
  select,
156
156
  tabs,
157
157
  tooltip
158
- } from "./chunk-Z37APKBV.js";
158
+ } from "./chunk-IQN5W7GE.js";
159
159
  import {
160
160
  animationFrame,
161
161
  battery,
@@ -193,7 +193,7 @@ import {
193
193
  visibility,
194
194
  wakeLock,
195
195
  windowSize
196
- } from "./chunk-VOVVTOEA.js";
196
+ } from "./chunk-QTOOBABV.js";
197
197
  import "./chunk-H3SRKIYX.js";
198
198
  import {
199
199
  __resetQueryCache,
@@ -217,7 +217,7 @@ import {
217
217
  syncAdapter,
218
218
  throttle,
219
219
  withRetry
220
- } from "./chunk-AMIKDMLP.js";
220
+ } from "./chunk-5Y34FWED.js";
221
221
  import {
222
222
  SibuError,
223
223
  checkLeaks,
@@ -255,7 +255,7 @@ import {
255
255
  trackCleanup,
256
256
  walkDependencyGraph,
257
257
  withErrorTracking
258
- } from "./chunk-ULLTNDRA.js";
258
+ } from "./chunk-IEYFHN5V.js";
259
259
  import {
260
260
  antdAdapter,
261
261
  chakraAdapter,
@@ -265,7 +265,7 @@ import {
265
265
  mobXAdapter,
266
266
  reduxAdapter,
267
267
  zustandAdapter
268
- } from "./chunk-4UUMSLSL.js";
268
+ } from "./chunk-TVCCXPU2.js";
269
269
  import {
270
270
  createPlugin,
271
271
  createPluginRegistry,
@@ -276,9 +276,11 @@ import {
276
276
  triggerPluginError,
277
277
  triggerPluginMount,
278
278
  triggerPluginUnmount
279
- } from "./chunk-3JHCYHWN.js";
280
- import "./chunk-37BUKSLH.js";
281
- import "./chunk-SLMFA3ZZ.js";
279
+ } from "./chunk-WWV3SJ3L.js";
280
+ import "./chunk-7ZHH77QA.js";
281
+ import "./chunk-5K6RVA2S.js";
282
+ import "./chunk-TBDTU7UO.js";
283
+ import "./chunk-CCSJMTRN.js";
282
284
  import {
283
285
  collectStream,
284
286
  deserializeState,
@@ -298,15 +300,14 @@ import {
298
300
  ssrSuspense,
299
301
  suspenseSwapScript,
300
302
  trustHTML
301
- } from "./chunk-R3QEDXFS.js";
302
- import "./chunk-F7FXQ3QS.js";
303
- import "./chunk-LU2MQXQQ.js";
304
- import "./chunk-NHKQKKZU.js";
305
- import "./chunk-WW6DAGGR.js";
306
- import "./chunk-5VGSK6D2.js";
303
+ } from "./chunk-EX77FXTT.js";
304
+ import "./chunk-ZXCZWMZT.js";
305
+ import "./chunk-RZKGMHH4.js";
306
+ import "./chunk-SBPUXWCE.js";
307
+ import "./chunk-F3HO2MP7.js";
307
308
  import "./chunk-L3GAGWCC.js";
308
- import "./chunk-MHBCEJQO.js";
309
- import "./chunk-GOJMFRBL.js";
309
+ import "./chunk-23VT3KZB.js";
310
+ import "./chunk-S3NFJO6L.js";
310
311
  import {
311
312
  TransitionGroup,
312
313
  animate,
@@ -315,6 +316,7 @@ import {
315
316
  fadeIn,
316
317
  fadeOut,
317
318
  flipIn,
319
+ prefersReducedMotion,
318
320
  pulse,
319
321
  reducedMotion,
320
322
  scaleDown,
@@ -328,9 +330,10 @@ import {
328
330
  stagger,
329
331
  transition,
330
332
  viewTransition
331
- } from "./chunk-WL7BIR6O.js";
332
- import "./chunk-WZG2SZOT.js";
333
- import "./chunk-TEFZT5PJ.js";
333
+ } from "./chunk-25LY5SRH.js";
334
+ import "./chunk-5VGSK6D2.js";
335
+ import "./chunk-IWFE4AHO.js";
336
+ import "./chunk-UOMYIAG6.js";
334
337
  import "./chunk-COY6PUD2.js";
335
338
  export {
336
339
  DOMPool,
@@ -522,6 +525,7 @@ export {
522
525
  pointerLock,
523
526
  popover,
524
527
  precompile,
528
+ prefersReducedMotion,
525
529
  prefetch,
526
530
  preloadCritical,
527
531
  preloadImage,
package/dist/index.cjs CHANGED
@@ -99,6 +99,7 @@ __export(index_exports, {
99
99
  footer: () => footer,
100
100
  form: () => form,
101
101
  g: () => g,
102
+ getAction: () => getAction,
102
103
  getRequestScopedCache: () => getRequestScopedCache,
103
104
  getSSRStore: () => getSSRStore,
104
105
  getSlot: () => getSlot,
@@ -167,6 +168,7 @@ __export(index_exports, {
167
168
  reactiveArray: () => reactiveArray,
168
169
  rect: () => rect,
169
170
  ref: () => ref,
171
+ registerAction: () => registerAction,
170
172
  registerComponent: () => registerComponent,
171
173
  registerDisposer: () => registerDisposer,
172
174
  resolveComponent: () => resolveComponent,
@@ -755,7 +757,7 @@ function forEachSubscriber(signal2, visit) {
755
757
 
756
758
  // src/reactivity/track.ts
757
759
  var _isDev3 = isDev();
758
- var _runtimeVersion = typeof __SIBU_VERSION__ !== "undefined" ? __SIBU_VERSION__ : "dev";
760
+ var _runtimeVersion = true ? "3.3.3" : "dev";
759
761
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
760
762
  function resolveReactiveApi() {
761
763
  const g2 = globalThis;
@@ -2329,7 +2331,21 @@ function KeepAlive(activeKey, cases, options) {
2329
2331
  }
2330
2332
 
2331
2333
  // src/core/rendering/action.ts
2332
- function action(element, actionFn, param2) {
2334
+ var ACTIONS_KEY = /* @__PURE__ */ Symbol.for("sibujs.actions.v1");
2335
+ var _actions = globalThis[ACTIONS_KEY] ?? (globalThis[ACTIONS_KEY] = /* @__PURE__ */ new Map());
2336
+ function registerAction(name, fn) {
2337
+ _actions.set(name, fn);
2338
+ }
2339
+ function getAction(name) {
2340
+ return _actions.get(name);
2341
+ }
2342
+ function action(element, action2, param2) {
2343
+ const actionFn = typeof action2 === "string" ? getAction(action2) : action2;
2344
+ if (!actionFn) {
2345
+ throw new Error(
2346
+ `[SibuJS] No action registered under the name "${action2}". Register it with registerAction() before applying it by name.`
2347
+ );
2348
+ }
2333
2349
  const cleanup3 = actionFn(element, param2);
2334
2350
  if (typeof cleanup3 === "function") {
2335
2351
  registerDisposer(element, cleanup3);
@@ -2406,6 +2422,11 @@ var trapFocus = (element) => {
2406
2422
  element.addEventListener("keydown", handler);
2407
2423
  return () => element.removeEventListener("keydown", handler);
2408
2424
  };
2425
+ registerAction("clickOutside", clickOutside);
2426
+ registerAction("longPress", longPress);
2427
+ registerAction("copyOnClick", copyOnClick);
2428
+ registerAction("autoResize", autoResize);
2429
+ registerAction("trapFocus", trapFocus);
2409
2430
 
2410
2431
  // src/core/rendering/catch.ts
2411
2432
  var globalErrorHandler = null;
@@ -2454,13 +2475,14 @@ function setGlobalErrorHandler(handler) {
2454
2475
  }
2455
2476
 
2456
2477
  // src/core/rendering/createId.ts
2457
- var idCounter = 0;
2478
+ var COUNTER_KEY = /* @__PURE__ */ Symbol.for("sibujs.createId.v1");
2479
+ var _counter = globalThis[COUNTER_KEY] ?? (globalThis[COUNTER_KEY] = { n: 0 });
2458
2480
  function createId(prefix = "sibu") {
2459
- idCounter++;
2460
- return `${prefix}-${idCounter}`;
2481
+ _counter.n++;
2482
+ return `${prefix}-${_counter.n}`;
2461
2483
  }
2462
2484
  function __resetIdCounter() {
2463
- idCounter = 0;
2485
+ _counter.n = 0;
2464
2486
  }
2465
2487
 
2466
2488
  // src/reactivity/batch.ts
@@ -2584,23 +2606,29 @@ function signal(initial, options) {
2584
2606
  }
2585
2607
 
2586
2608
  // src/core/ssr-context.ts
2587
- var als = null;
2588
- try {
2589
- if (typeof process !== "undefined" && process.versions && process.versions.node) {
2590
- let mod = null;
2591
- const getBuiltin = process.getBuiltinModule;
2592
- if (typeof getBuiltin === "function") {
2593
- mod = getBuiltin("node:async_hooks");
2594
- } else {
2595
- const req = Function("return typeof require==='function'?require:null")();
2596
- if (req) mod = req("node:async_hooks");
2609
+ var SSR_KEY = /* @__PURE__ */ Symbol.for("sibujs.ssr.v1");
2610
+ function detectSSRShared() {
2611
+ let detected = null;
2612
+ try {
2613
+ if (typeof process !== "undefined" && process.versions && process.versions.node) {
2614
+ let mod = null;
2615
+ const getBuiltin = process.getBuiltinModule;
2616
+ if (typeof getBuiltin === "function") {
2617
+ mod = getBuiltin("node:async_hooks");
2618
+ } else {
2619
+ const req = Function("return typeof require==='function'?require:null")();
2620
+ if (req) mod = req("node:async_hooks");
2621
+ }
2622
+ if (mod) detected = new mod.AsyncLocalStorage();
2597
2623
  }
2598
- if (mod) als = new mod.AsyncLocalStorage();
2624
+ } catch {
2625
+ detected = null;
2599
2626
  }
2600
- } catch {
2601
- als = null;
2627
+ return { als: detected, fallbackStore: { ssr: false, suspenseIdCounter: 0 } };
2602
2628
  }
2603
- var fallbackStore = { ssr: false, suspenseIdCounter: 0 };
2629
+ var _shared = globalThis[SSR_KEY] ?? (globalThis[SSR_KEY] = detectSSRShared());
2630
+ var als = _shared.als;
2631
+ var fallbackStore = _shared.fallbackStore;
2604
2632
  function getSSRStore() {
2605
2633
  if (als) {
2606
2634
  const s2 = als.getStore();
@@ -3824,7 +3852,6 @@ function trustHTML(html3) {
3824
3852
  var DEFAULT_MAX_SSR_BYTES = 1024 * 1024;
3825
3853
 
3826
3854
  // src/components/ErrorDisplay.ts
3827
- var _isDev12 = isDev();
3828
3855
  var STYLES = `
3829
3856
  .sibu-error-display {
3830
3857
  border: 1px solid var(--sibu-err-border, #e5484d);
@@ -4135,7 +4162,7 @@ function ErrorDisplay(props) {
4135
4162
  injectStyles();
4136
4163
  const severity = props.severity ?? "error";
4137
4164
  const normalized = normalizeError(props.error);
4138
- const showDetails = props.alwaysShowDetails ?? _isDev12;
4165
+ const showDetails = props.alwaysShowDetails ?? isDev();
4139
4166
  const headline = props.title ?? normalized.message;
4140
4167
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19);
4141
4168
  const [copyLabel, setCopyLabel] = signal("Copy");
@@ -4622,6 +4649,11 @@ function Loading(props = {}) {
4622
4649
  if (variant === "dots") {
4623
4650
  return div({
4624
4651
  class: `sibu-loading${sizeClass}`,
4652
+ role: "status",
4653
+ "aria-live": "polite",
4654
+ // When there's no visible text, give the live region an accessible name
4655
+ // so it isn't announced as an empty status.
4656
+ "aria-label": text2 ? void 0 : "Loading",
4625
4657
  nodes: [
4626
4658
  div({
4627
4659
  class: "sibu-loading-dots",
@@ -4637,6 +4669,9 @@ function Loading(props = {}) {
4637
4669
  }
4638
4670
  return div({
4639
4671
  class: `sibu-loading${sizeClass}`,
4672
+ role: "status",
4673
+ "aria-live": "polite",
4674
+ "aria-label": text2 ? void 0 : "Loading",
4640
4675
  nodes: [
4641
4676
  div({ class: "sibu-loading-spinner" }),
4642
4677
  text2 ? span({ class: "sibu-loading-text", nodes: text2 }) : null
@@ -4724,6 +4759,7 @@ function Loading(props = {}) {
4724
4759
  footer,
4725
4760
  form,
4726
4761
  g,
4762
+ getAction,
4727
4763
  getRequestScopedCache,
4728
4764
  getSSRStore,
4729
4765
  getSlot,
@@ -4792,6 +4828,7 @@ function Loading(props = {}) {
4792
4828
  reactiveArray,
4793
4829
  rect,
4794
4830
  ref,
4831
+ registerAction,
4795
4832
  registerComponent,
4796
4833
  registerDisposer,
4797
4834
  resolveComponent,
package/dist/index.d.cts CHANGED
@@ -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.
@@ -1534,7 +1547,10 @@ type ErrorBoundaryProps = ErrorBoundaryOptions;
1534
1547
  *
1535
1548
  * Features:
1536
1549
  * - Catches sync errors thrown by children
1537
- * - Catches async errors (Promise rejections) from children
1550
+ * - Catches the rejection of a Promise *returned* by children (async components)
1551
+ * — it does NOT observe fire-and-forget async errors (rejections from timers,
1552
+ * event handlers, or detached/unawaited promises), which surface as global
1553
+ * `unhandledrejection` events instead.
1538
1554
  * - Supports nested ErrorBoundaries (inner catches first, outer catches propagation)
1539
1555
  * - Retry functionality to clear error and re-render children
1540
1556
  * - Memoized fallback to avoid re-creating fallback UI on every render
@@ -1615,4 +1631,4 @@ interface LoadingProps {
1615
1631
  */
1616
1632
  declare function Loading(props?: LoadingProps): HTMLElement;
1617
1633
 
1618
- 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$1 as track, transition, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
1634
+ 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
@@ -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.
@@ -1534,7 +1547,10 @@ type ErrorBoundaryProps = ErrorBoundaryOptions;
1534
1547
  *
1535
1548
  * Features:
1536
1549
  * - Catches sync errors thrown by children
1537
- * - Catches async errors (Promise rejections) from children
1550
+ * - Catches the rejection of a Promise *returned* by children (async components)
1551
+ * — it does NOT observe fire-and-forget async errors (rejections from timers,
1552
+ * event handlers, or detached/unawaited promises), which surface as global
1553
+ * `unhandledrejection` events instead.
1538
1554
  * - Supports nested ErrorBoundaries (inner catches first, outer catches propagation)
1539
1555
  * - Retry functionality to clear error and re-render children
1540
1556
  * - Memoized fallback to avoid re-creating fallback UI on every render
@@ -1615,4 +1631,4 @@ interface LoadingProps {
1615
1631
  */
1616
1632
  declare function Loading(props?: LoadingProps): HTMLElement;
1617
1633
 
1618
- 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$1 as track, transition, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
1634
+ 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,7 @@ import {
44
46
  unregisterComponent,
45
47
  when,
46
48
  writable
47
- } from "./chunk-IKLYI3RF.js";
48
- import {
49
- __resetIdCounter,
50
- createId
51
- } from "./chunk-YT6HQ6AM.js";
49
+ } from "./chunk-MYXEBADX.js";
52
50
  import {
53
51
  a,
54
52
  abbr,
@@ -186,36 +184,35 @@ import {
186
184
  use,
187
185
  var_,
188
186
  video
189
- } from "./chunk-37BUKSLH.js";
187
+ } from "./chunk-5K6RVA2S.js";
190
188
  import {
191
189
  watch
192
- } from "./chunk-SLMFA3ZZ.js";
190
+ } from "./chunk-TBDTU7UO.js";
191
+ import {
192
+ __resetIdCounter,
193
+ createId
194
+ } from "./chunk-CCSJMTRN.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-F7FXQ3QS.js";
200
+ } from "./chunk-ZXCZWMZT.js";
199
201
  import {
200
202
  SVG_NS,
201
203
  tagFactory
202
- } from "./chunk-LU2MQXQQ.js";
204
+ } from "./chunk-RZKGMHH4.js";
203
205
  import {
204
206
  bindDynamic
205
- } from "./chunk-NHKQKKZU.js";
207
+ } from "./chunk-SBPUXWCE.js";
206
208
  import {
207
209
  derived
208
- } from "./chunk-WW6DAGGR.js";
209
- import {
210
- checkLeaks,
211
- dispose,
212
- registerDisposer
213
- } from "./chunk-5VGSK6D2.js";
210
+ } from "./chunk-F3HO2MP7.js";
214
211
  import "./chunk-L3GAGWCC.js";
215
212
  import {
216
213
  effect,
217
214
  on
218
- } from "./chunk-MHBCEJQO.js";
215
+ } from "./chunk-23VT3KZB.js";
219
216
  import {
220
217
  disableSSR,
221
218
  enableSSR,
@@ -224,18 +221,23 @@ import {
224
221
  isSSR,
225
222
  runInSSRContext,
226
223
  withSSR
227
- } from "./chunk-GOJMFRBL.js";
224
+ } from "./chunk-S3NFJO6L.js";
225
+ import {
226
+ checkLeaks,
227
+ dispose,
228
+ registerDisposer
229
+ } from "./chunk-5VGSK6D2.js";
228
230
  import {
229
231
  batch,
230
232
  enqueueBatchedSignal,
231
233
  isBatching,
232
234
  signal
233
- } from "./chunk-WZG2SZOT.js";
235
+ } from "./chunk-IWFE4AHO.js";
234
236
  import {
235
237
  retrack,
236
238
  setMaxDrainIterations,
237
239
  untracked
238
- } from "./chunk-TEFZT5PJ.js";
240
+ } from "./chunk-UOMYIAG6.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,