sibujs 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/browser.cjs +1 -1
  2. package/dist/browser.js +4 -4
  3. package/dist/build.cjs +30 -8
  4. package/dist/build.js +10 -10
  5. package/dist/cdn.dev.global.js +6 -6
  6. package/dist/cdn.global.js +6 -6
  7. package/dist/{chunk-HZEBO22J.js → chunk-2LSY4WDM.js} +38 -16
  8. package/dist/{chunk-2LOYNGBY.js → chunk-3E5YNK2F.js} +1 -1
  9. package/dist/{chunk-7VEC3UD2.js → chunk-7BJLKDBI.js} +1 -1
  10. package/dist/{chunk-XZ2N525U.js → chunk-7BPN4MXR.js} +4 -4
  11. package/dist/{chunk-NEYWS4EX.js → chunk-7GQIRV27.js} +3 -3
  12. package/dist/{chunk-HJEPKZ2O.js → chunk-7UBG6LDP.js} +1 -1
  13. package/dist/{chunk-P3DHXBR6.js → chunk-7UK6BSAT.js} +1 -1
  14. package/dist/{chunk-BNKV4REK.js → chunk-AAHT6AKT.js} +2 -2
  15. package/dist/{chunk-QCFLDD7C.js → chunk-G7GPNB6N.js} +4 -4
  16. package/dist/{chunk-SF3TB4K6.js → chunk-GZYQNIPS.js} +5 -5
  17. package/dist/{chunk-BMYYZWHX.js → chunk-IYHM4FWD.js} +1 -1
  18. package/dist/{chunk-FOWBJZDL.js → chunk-L4B3Y3OM.js} +1 -1
  19. package/dist/{chunk-HECVW343.js → chunk-MYA5HEK5.js} +1 -1
  20. package/dist/{chunk-GDUNQCCW.js → chunk-R4EF7V3K.js} +4 -4
  21. package/dist/{chunk-3VTSPNC5.js → chunk-RE6KLGMV.js} +1 -1
  22. package/dist/{chunk-7ALC7KGE.js → chunk-TSL64O5L.js} +1 -1
  23. package/dist/{chunk-KE4KWRDY.js → chunk-UD6YE2GW.js} +2 -2
  24. package/dist/{chunk-OUWAIXIK.js → chunk-USS5ENJ2.js} +3 -3
  25. package/dist/{chunk-6ZGI3RBE.js → chunk-XGCZ45NH.js} +2 -2
  26. package/dist/{chunk-QL4UREZO.js → chunk-ZVYNIUOG.js} +3 -3
  27. package/dist/data.cjs +1 -1
  28. package/dist/data.js +6 -6
  29. package/dist/devtools.cjs +1 -1
  30. package/dist/devtools.js +4 -4
  31. package/dist/ecosystem.cjs +1 -1
  32. package/dist/ecosystem.js +7 -7
  33. package/dist/extras.cjs +1 -1
  34. package/dist/extras.js +19 -19
  35. package/dist/index.cjs +30 -8
  36. package/dist/index.d.cts +36 -4
  37. package/dist/index.d.ts +36 -4
  38. package/dist/index.js +10 -10
  39. package/dist/motion.cjs +1 -1
  40. package/dist/motion.js +3 -3
  41. package/dist/patterns.cjs +1 -1
  42. package/dist/patterns.js +5 -5
  43. package/dist/performance.cjs +1 -1
  44. package/dist/performance.js +4 -4
  45. package/dist/plugins.cjs +4 -3
  46. package/dist/plugins.d.cts +10 -2
  47. package/dist/plugins.d.ts +10 -2
  48. package/dist/plugins.js +9 -8
  49. package/dist/ssr.cjs +1 -1
  50. package/dist/ssr.js +7 -7
  51. package/dist/testing.cjs +1 -1
  52. package/dist/testing.js +2 -2
  53. package/dist/ui.cjs +1 -1
  54. package/dist/ui.js +6 -6
  55. package/dist/widgets.cjs +1 -1
  56. package/dist/widgets.js +6 -6
  57. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1984,8 +1984,40 @@ type IslandStrategy = "load" | "idle" | "visible" | "interaction" | "media";
1984
1984
  type IslandLoader = () => Promise<EnhanceSetup | {
1985
1985
  default: EnhanceSetup;
1986
1986
  }>;
1987
- /** Either an inline setup, or a {@link lazyIsland}-branded loader. */
1988
- type IslandRegistration = EnhanceSetup | IslandLoader;
1987
+ /**
1988
+ * A loader that has been through {@link lazyIsland}.
1989
+ *
1990
+ * Exported for callers that want to be explicit about having wrapped one. It is
1991
+ * NOT required by {@link IslandRegistration}, and that is deliberate.
1992
+ *
1993
+ * Requiring the brand would catch a forgotten `lazyIsland(...)` at compile time,
1994
+ * which is where a mistake is cheapest to find — but it also rejects code that
1995
+ * compiles today, and this package's contract is that the existing public API
1996
+ * keeps working, widening rather than replacing, with a codemod for anything
1997
+ * that cannot be widened. There is no codemod infrastructure here to ship one
1998
+ * through, so the narrowing is not taken: the mistake is caught at mount time
1999
+ * instead, by the thenable guard in `enhance()`, which throws immediately with
2000
+ * an actionable message and leaves the element unenhanced. Loud and instant at
2001
+ * runtime beats a type error that arrives with a breaking change attached.
2002
+ *
2003
+ * The brand is a phantom STRING-keyed property, never a `unique symbol`. A
2004
+ * `unique symbol` has nominal identity per declaration, so two copies of this
2005
+ * package's `.d.ts` in one dependency tree would produce two incompatible
2006
+ * types. That is not hypothetical: the registry is deliberately shared through
2007
+ * `Symbol.for` precisely because duplicate copies are expected. The property
2008
+ * exists only in the type — the runtime marker is the global symbol below.
2009
+ */
2010
+ type LazyIslandLoader = IslandLoader & {
2011
+ readonly __sibujsLazyIsland: true;
2012
+ };
2013
+ /**
2014
+ * Either an inline setup, or a loader.
2015
+ *
2016
+ * Unchanged from 4.2: an unbranded `IslandLoader` is still accepted, so no
2017
+ * previously-compiling code breaks. Wrapping with {@link lazyIsland} is what
2018
+ * makes it *work* — see {@link LazyIslandLoader} for why this is not narrowed.
2019
+ */
2020
+ type IslandRegistration = EnhanceSetup | IslandLoader | LazyIslandLoader;
1989
2021
  /**
1990
2022
  * Mark a loader as lazy island code — its module is fetched only when the island
1991
2023
  * activates, so a page ships ~0 JS for islands that never trigger.
@@ -1995,7 +2027,7 @@ type IslandRegistration = EnhanceSetup | IslandLoader;
1995
2027
  * registerIsland("chart", lazyIsland(() => import("./islands/chart.js")));
1996
2028
  * ```
1997
2029
  */
1998
- declare function lazyIsland(loader: IslandLoader): IslandLoader;
2030
+ declare function lazyIsland(loader: IslandLoader): LazyIslandLoader;
1999
2031
  /**
2000
2032
  * Register an island by name. The setup is applied via `enhance()` when a
2001
2033
  * matching `[data-sibu-island="name"]` element activates.
@@ -2274,4 +2306,4 @@ declare const untracked: ReactiveApi["untracked"];
2274
2306
  declare const retrack: ReactiveApi["retrack"];
2275
2307
  declare const setMaxDrainIterations: ReactiveApi["setMaxDrainIterations"];
2276
2308
 
2277
- export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedContext, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EachBindings, type EachEventBindings, type EffectBody, type EffectOptions, type EnhanceContext, type EnhanceSetup, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type ExternalSource, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, type IslandLoader, type IslandRegistration, type IslandStrategy, KeepAlive, type KeepAliveOptions, type LabelProps, 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 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, enhance, enhanceAll, enqueueBatchedSignal, external, 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, 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, unregisterDisposer, unregisterIsland, untracked, use, var_, video, watch, when, withSSR, writable };
2309
+ export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedContext, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EachBindings, type EachEventBindings, type EffectBody, type EffectOptions, type EnhanceContext, type EnhanceSetup, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type ExternalSource, 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 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, enhance, enhanceAll, enqueueBatchedSignal, external, 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, 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, unregisterDisposer, unregisterIsland, untracked, use, var_, video, watch, when, withSSR, writable };
package/dist/index.d.ts CHANGED
@@ -1984,8 +1984,40 @@ type IslandStrategy = "load" | "idle" | "visible" | "interaction" | "media";
1984
1984
  type IslandLoader = () => Promise<EnhanceSetup | {
1985
1985
  default: EnhanceSetup;
1986
1986
  }>;
1987
- /** Either an inline setup, or a {@link lazyIsland}-branded loader. */
1988
- type IslandRegistration = EnhanceSetup | IslandLoader;
1987
+ /**
1988
+ * A loader that has been through {@link lazyIsland}.
1989
+ *
1990
+ * Exported for callers that want to be explicit about having wrapped one. It is
1991
+ * NOT required by {@link IslandRegistration}, and that is deliberate.
1992
+ *
1993
+ * Requiring the brand would catch a forgotten `lazyIsland(...)` at compile time,
1994
+ * which is where a mistake is cheapest to find — but it also rejects code that
1995
+ * compiles today, and this package's contract is that the existing public API
1996
+ * keeps working, widening rather than replacing, with a codemod for anything
1997
+ * that cannot be widened. There is no codemod infrastructure here to ship one
1998
+ * through, so the narrowing is not taken: the mistake is caught at mount time
1999
+ * instead, by the thenable guard in `enhance()`, which throws immediately with
2000
+ * an actionable message and leaves the element unenhanced. Loud and instant at
2001
+ * runtime beats a type error that arrives with a breaking change attached.
2002
+ *
2003
+ * The brand is a phantom STRING-keyed property, never a `unique symbol`. A
2004
+ * `unique symbol` has nominal identity per declaration, so two copies of this
2005
+ * package's `.d.ts` in one dependency tree would produce two incompatible
2006
+ * types. That is not hypothetical: the registry is deliberately shared through
2007
+ * `Symbol.for` precisely because duplicate copies are expected. The property
2008
+ * exists only in the type — the runtime marker is the global symbol below.
2009
+ */
2010
+ type LazyIslandLoader = IslandLoader & {
2011
+ readonly __sibujsLazyIsland: true;
2012
+ };
2013
+ /**
2014
+ * Either an inline setup, or a loader.
2015
+ *
2016
+ * Unchanged from 4.2: an unbranded `IslandLoader` is still accepted, so no
2017
+ * previously-compiling code breaks. Wrapping with {@link lazyIsland} is what
2018
+ * makes it *work* — see {@link LazyIslandLoader} for why this is not narrowed.
2019
+ */
2020
+ type IslandRegistration = EnhanceSetup | IslandLoader | LazyIslandLoader;
1989
2021
  /**
1990
2022
  * Mark a loader as lazy island code — its module is fetched only when the island
1991
2023
  * activates, so a page ships ~0 JS for islands that never trigger.
@@ -1995,7 +2027,7 @@ type IslandRegistration = EnhanceSetup | IslandLoader;
1995
2027
  * registerIsland("chart", lazyIsland(() => import("./islands/chart.js")));
1996
2028
  * ```
1997
2029
  */
1998
- declare function lazyIsland(loader: IslandLoader): IslandLoader;
2030
+ declare function lazyIsland(loader: IslandLoader): LazyIslandLoader;
1999
2031
  /**
2000
2032
  * Register an island by name. The setup is applied via `enhance()` when a
2001
2033
  * matching `[data-sibu-island="name"]` element activates.
@@ -2274,4 +2306,4 @@ declare const untracked: ReactiveApi["untracked"];
2274
2306
  declare const retrack: ReactiveApi["retrack"];
2275
2307
  declare const setMaxDrainIterations: ReactiveApi["setMaxDrainIterations"];
2276
2308
 
2277
- export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedContext, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EachBindings, type EachEventBindings, type EffectBody, type EffectOptions, type EnhanceContext, type EnhanceSetup, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type ExternalSource, type FormProps, Fragment, type ImgProps, type InputProps, type InputType, type IslandLoader, type IslandRegistration, type IslandStrategy, KeepAlive, type KeepAliveOptions, type LabelProps, 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 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, enhance, enhanceAll, enqueueBatchedSignal, external, 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, 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, unregisterDisposer, unregisterIsland, untracked, use, var_, video, watch, when, withSSR, writable };
2309
+ export { type Accessor, type ActionFn, type AnchorProps, type ArrayActions, type AsyncDerivedContext, type AsyncDerivedState, type AudioProps, type ButtonProps, type Context, DynamicComponent, type EachBindings, type EachEventBindings, type EffectBody, type EffectOptions, type EnhanceContext, type EnhanceSetup, ErrorBoundary, type ErrorBoundaryOptions, type ErrorBoundaryProps, ErrorDisplay, type ErrorDisplayProps, type ErrorSeverity, type ExternalSource, 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 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, enhance, enhanceAll, enqueueBatchedSignal, external, 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, 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, unregisterDisposer, unregisterIsland, untracked, use, var_, video, watch, when, withSSR, writable };
package/dist/index.js CHANGED
@@ -52,7 +52,7 @@ import {
52
52
  unregisterIsland,
53
53
  when,
54
54
  writable
55
- } from "./chunk-HZEBO22J.js";
55
+ } from "./chunk-2LSY4WDM.js";
56
56
  import {
57
57
  a,
58
58
  abbr,
@@ -190,36 +190,36 @@ import {
190
190
  use,
191
191
  var_,
192
192
  video
193
- } from "./chunk-P3DHXBR6.js";
193
+ } from "./chunk-7UK6BSAT.js";
194
194
  import {
195
195
  trustHTML
196
196
  } from "./chunk-NIOYEGBQ.js";
197
197
  import {
198
198
  watch
199
- } from "./chunk-BMYYZWHX.js";
199
+ } from "./chunk-IYHM4FWD.js";
200
200
  import {
201
201
  __resetIdCounter,
202
202
  createId
203
203
  } from "./chunk-CCSJMTRN.js";
204
204
  import {
205
205
  context
206
- } from "./chunk-FOWBJZDL.js";
206
+ } from "./chunk-L4B3Y3OM.js";
207
207
  import {
208
208
  SVG_NS,
209
209
  tagFactory
210
- } from "./chunk-6ZGI3RBE.js";
210
+ } from "./chunk-XGCZ45NH.js";
211
211
  import {
212
212
  bindDynamic
213
- } from "./chunk-HJEPKZ2O.js";
213
+ } from "./chunk-7UBG6LDP.js";
214
214
  import {
215
215
  derived
216
- } from "./chunk-2LOYNGBY.js";
216
+ } from "./chunk-3E5YNK2F.js";
217
217
  import "./chunk-IXKSNWV5.js";
218
218
  import "./chunk-7ZHH77QA.js";
219
219
  import {
220
220
  effect,
221
221
  on
222
- } from "./chunk-7VEC3UD2.js";
222
+ } from "./chunk-7BJLKDBI.js";
223
223
  import {
224
224
  disableSSR,
225
225
  enableSSR,
@@ -244,12 +244,12 @@ import {
244
244
  external,
245
245
  isBatching,
246
246
  signal
247
- } from "./chunk-HECVW343.js";
247
+ } from "./chunk-MYA5HEK5.js";
248
248
  import {
249
249
  retrack,
250
250
  setMaxDrainIterations,
251
251
  untracked
252
- } from "./chunk-7ALC7KGE.js";
252
+ } from "./chunk-TSL64O5L.js";
253
253
  import {
254
254
  getRuntimeErrorHandler,
255
255
  reportError,
package/dist/motion.cjs CHANGED
@@ -700,7 +700,7 @@ function forEachSubscriber(signal2, visit) {
700
700
  }
701
701
 
702
702
  // src/reactivity/track.ts
703
- var _runtimeVersion = true ? "4.2.0" : "dev";
703
+ var _runtimeVersion = true ? "4.3.0" : "dev";
704
704
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
705
705
  function resolveReactiveApi() {
706
706
  const g = globalThis;
package/dist/motion.js CHANGED
@@ -20,10 +20,10 @@ import {
20
20
  stagger,
21
21
  transition,
22
22
  viewTransition
23
- } from "./chunk-3VTSPNC5.js";
23
+ } from "./chunk-RE6KLGMV.js";
24
24
  import "./chunk-QKRPLZ2V.js";
25
- import "./chunk-HECVW343.js";
26
- import "./chunk-7ALC7KGE.js";
25
+ import "./chunk-MYA5HEK5.js";
26
+ import "./chunk-TSL64O5L.js";
27
27
  import "./chunk-2WLZ6757.js";
28
28
  export {
29
29
  TransitionGroup,
package/dist/patterns.cjs CHANGED
@@ -603,7 +603,7 @@ function forEachSubscriber(signal2, visit) {
603
603
  }
604
604
 
605
605
  // src/reactivity/track.ts
606
- var _runtimeVersion = true ? "4.2.0" : "dev";
606
+ var _runtimeVersion = true ? "4.3.0" : "dev";
607
607
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
608
608
  function resolveReactiveApi() {
609
609
  const g = globalThis;
package/dist/patterns.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  optimisticList,
6
6
  persisted,
7
7
  timeline
8
- } from "./chunk-OUWAIXIK.js";
8
+ } from "./chunk-USS5ENJ2.js";
9
9
  import {
10
10
  RenderProp,
11
11
  assertType,
@@ -23,11 +23,11 @@ import {
23
23
  withWrapper
24
24
  } from "./chunk-VJE6DDYM.js";
25
25
  import "./chunk-H3SRKIYX.js";
26
- import "./chunk-2LOYNGBY.js";
27
- import "./chunk-7VEC3UD2.js";
26
+ import "./chunk-3E5YNK2F.js";
27
+ import "./chunk-7BJLKDBI.js";
28
28
  import "./chunk-5DXA2J44.js";
29
- import "./chunk-HECVW343.js";
30
- import "./chunk-7ALC7KGE.js";
29
+ import "./chunk-MYA5HEK5.js";
30
+ import "./chunk-TSL64O5L.js";
31
31
  import "./chunk-2WLZ6757.js";
32
32
  export {
33
33
  RenderProp,
@@ -790,7 +790,7 @@ function forEachSubscriber(signal2, visit) {
790
790
  }
791
791
 
792
792
  // src/reactivity/track.ts
793
- var _runtimeVersion = true ? "4.2.0" : "dev";
793
+ var _runtimeVersion = true ? "4.3.0" : "dev";
794
794
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
795
795
  function resolveReactiveApi() {
796
796
  const g = globalThis;
@@ -33,17 +33,17 @@ import {
33
33
  transitionState,
34
34
  uniqueId,
35
35
  yieldToMain
36
- } from "./chunk-BNKV4REK.js";
36
+ } from "./chunk-AAHT6AKT.js";
37
37
  import {
38
38
  trustHTML
39
39
  } from "./chunk-NIOYEGBQ.js";
40
40
  import "./chunk-IXKSNWV5.js";
41
41
  import "./chunk-7ZHH77QA.js";
42
- import "./chunk-7VEC3UD2.js";
42
+ import "./chunk-7BJLKDBI.js";
43
43
  import "./chunk-5DXA2J44.js";
44
44
  import "./chunk-QKRPLZ2V.js";
45
- import "./chunk-HECVW343.js";
46
- import "./chunk-7ALC7KGE.js";
45
+ import "./chunk-MYA5HEK5.js";
46
+ import "./chunk-TSL64O5L.js";
47
47
  import "./chunk-2WLZ6757.js";
48
48
  export {
49
49
  DOMPool,
package/dist/plugins.cjs CHANGED
@@ -1887,7 +1887,7 @@ function forEachSubscriber(signal2, visit) {
1887
1887
  }
1888
1888
 
1889
1889
  // src/reactivity/track.ts
1890
- var _runtimeVersion = true ? "4.2.0" : "dev";
1890
+ var _runtimeVersion = true ? "4.3.0" : "dev";
1891
1891
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
1892
1892
  function resolveReactiveApi() {
1893
1893
  const g2 = globalThis;
@@ -4435,7 +4435,7 @@ function Suspense(props) {
4435
4435
  console.error("[Suspense] Fallback error:", error);
4436
4436
  return;
4437
4437
  }
4438
- if (!(fallback instanceof HTMLElement)) return;
4438
+ if (!fallback || fallback.nodeType !== 1) return;
4439
4439
  const parent = commitTarget(myGeneration);
4440
4440
  if (!parent) {
4441
4441
  release(fallback);
@@ -4451,7 +4451,8 @@ function Suspense(props) {
4451
4451
  try {
4452
4452
  const result = props.nodes();
4453
4453
  let element;
4454
- if (result instanceof Promise) {
4454
+ const isNode = typeof result?.nodeType === "number";
4455
+ if (!isNode && result != null && typeof result.then === "function") {
4455
4456
  showFallback(myGeneration);
4456
4457
  element = await result;
4457
4458
  } else {
@@ -552,8 +552,16 @@ declare function RouterLink(props: {
552
552
  * because ownership is the correct primitive to express that with.
553
553
  */
554
554
  declare function Suspense(props: {
555
- fallback?: () => HTMLElement | HTMLElement;
556
- nodes: () => HTMLElement | Promise<HTMLElement>;
555
+ /** Shown while `nodes` is pending. An element, or a function returning one. */
556
+ fallback?: (() => HTMLElement) | HTMLElement;
557
+ /**
558
+ * The content. May be an element, or any thenable resolving to one —
559
+ * `PromiseLike`, not `Promise`, because a promise from another realm or a
560
+ * custom thenable is awaited just the same. The previous type admitted only
561
+ * `Promise`, so the very values the runtime was fixed to handle still had to
562
+ * be cast at the call site.
563
+ */
564
+ nodes: () => HTMLElement | PromiseLike<HTMLElement>;
557
565
  }): Node;
558
566
  /**
559
567
  * Creates a lazy-loaded component.
package/dist/plugins.d.ts CHANGED
@@ -552,8 +552,16 @@ declare function RouterLink(props: {
552
552
  * because ownership is the correct primitive to express that with.
553
553
  */
554
554
  declare function Suspense(props: {
555
- fallback?: () => HTMLElement | HTMLElement;
556
- nodes: () => HTMLElement | Promise<HTMLElement>;
555
+ /** Shown while `nodes` is pending. An element, or a function returning one. */
556
+ fallback?: (() => HTMLElement) | HTMLElement;
557
+ /**
558
+ * The content. May be an element, or any thenable resolving to one —
559
+ * `PromiseLike`, not `Promise`, because a promise from another realm or a
560
+ * custom thenable is awaited just the same. The previous type admitted only
561
+ * `Promise`, so the very values the runtime was fixed to handle still had to
562
+ * be cast at the call site.
563
+ */
564
+ nodes: () => HTMLElement | PromiseLike<HTMLElement>;
557
565
  }): Node;
558
566
  /**
559
567
  * Creates a lazy-loaded component.
package/dist/plugins.js CHANGED
@@ -35,7 +35,7 @@ import {
35
35
  } from "./chunk-WWV3SJ3L.js";
36
36
  import {
37
37
  span
38
- } from "./chunk-P3DHXBR6.js";
38
+ } from "./chunk-7UK6BSAT.js";
39
39
  import {
40
40
  escapeScriptJson,
41
41
  renderToString,
@@ -43,8 +43,8 @@ import {
43
43
  } from "./chunk-NIOYEGBQ.js";
44
44
  import {
45
45
  resolveClassValue
46
- } from "./chunk-6ZGI3RBE.js";
47
- import "./chunk-HJEPKZ2O.js";
46
+ } from "./chunk-XGCZ45NH.js";
47
+ import "./chunk-7UBG6LDP.js";
48
48
  import {
49
49
  isUrlAttribute,
50
50
  sanitizeStyleAttribute,
@@ -56,7 +56,7 @@ import {
56
56
  } from "./chunk-7ZHH77QA.js";
57
57
  import {
58
58
  effect
59
- } from "./chunk-7VEC3UD2.js";
59
+ } from "./chunk-7BJLKDBI.js";
60
60
  import {
61
61
  getRequestStore
62
62
  } from "./chunk-5DXA2J44.js";
@@ -66,10 +66,10 @@ import {
66
66
  } from "./chunk-QKRPLZ2V.js";
67
67
  import {
68
68
  signal
69
- } from "./chunk-HECVW343.js";
69
+ } from "./chunk-MYA5HEK5.js";
70
70
  import {
71
71
  track
72
- } from "./chunk-7ALC7KGE.js";
72
+ } from "./chunk-TSL64O5L.js";
73
73
  import {
74
74
  devWarn,
75
75
  isDev
@@ -1706,7 +1706,7 @@ function Suspense(props) {
1706
1706
  console.error("[Suspense] Fallback error:", error);
1707
1707
  return;
1708
1708
  }
1709
- if (!(fallback instanceof HTMLElement)) return;
1709
+ if (!fallback || fallback.nodeType !== 1) return;
1710
1710
  const parent = commitTarget(myGeneration);
1711
1711
  if (!parent) {
1712
1712
  release(fallback);
@@ -1722,7 +1722,8 @@ function Suspense(props) {
1722
1722
  try {
1723
1723
  const result = props.nodes();
1724
1724
  let element;
1725
- if (result instanceof Promise) {
1725
+ const isNode = typeof result?.nodeType === "number";
1726
+ if (!isNode && result != null && typeof result.then === "function") {
1726
1727
  showFallback(myGeneration);
1727
1728
  element = await result;
1728
1729
  } else {
package/dist/ssr.cjs CHANGED
@@ -1641,7 +1641,7 @@ function forEachSubscriber(signal2, visit) {
1641
1641
  }
1642
1642
 
1643
1643
  // src/reactivity/track.ts
1644
- var _runtimeVersion = true ? "4.2.0" : "dev";
1644
+ var _runtimeVersion = true ? "4.3.0" : "dev";
1645
1645
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
1646
1646
  function resolveReactiveApi() {
1647
1647
  const g2 = globalThis;
package/dist/ssr.js CHANGED
@@ -23,9 +23,9 @@ import {
23
23
  wasm,
24
24
  worker,
25
25
  workerFn
26
- } from "./chunk-NEYWS4EX.js";
26
+ } from "./chunk-7GQIRV27.js";
27
27
  import "./chunk-52XFPGSN.js";
28
- import "./chunk-P3DHXBR6.js";
28
+ import "./chunk-7UK6BSAT.js";
29
29
  import {
30
30
  collectStream,
31
31
  deserializeState,
@@ -46,15 +46,15 @@ import {
46
46
  suspenseSwapScript,
47
47
  trustHTML
48
48
  } from "./chunk-NIOYEGBQ.js";
49
- import "./chunk-6ZGI3RBE.js";
50
- import "./chunk-HJEPKZ2O.js";
49
+ import "./chunk-XGCZ45NH.js";
50
+ import "./chunk-7UBG6LDP.js";
51
51
  import "./chunk-IXKSNWV5.js";
52
52
  import "./chunk-7ZHH77QA.js";
53
- import "./chunk-7VEC3UD2.js";
53
+ import "./chunk-7BJLKDBI.js";
54
54
  import "./chunk-5DXA2J44.js";
55
55
  import "./chunk-QKRPLZ2V.js";
56
- import "./chunk-HECVW343.js";
57
- import "./chunk-7ALC7KGE.js";
56
+ import "./chunk-MYA5HEK5.js";
57
+ import "./chunk-TSL64O5L.js";
58
58
  import "./chunk-2WLZ6757.js";
59
59
  export {
60
60
  Head,
package/dist/testing.cjs CHANGED
@@ -2130,7 +2130,7 @@ function forEachSubscriber(signal, visit) {
2130
2130
  }
2131
2131
 
2132
2132
  // src/reactivity/track.ts
2133
- var _runtimeVersion = true ? "4.2.0" : "dev";
2133
+ var _runtimeVersion = true ? "4.3.0" : "dev";
2134
2134
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
2135
2135
  function resolveReactiveApi() {
2136
2136
  const g = globalThis;
package/dist/testing.js CHANGED
@@ -3,12 +3,12 @@ import {
3
3
  } from "./chunk-7ZHH77QA.js";
4
4
  import {
5
5
  effect
6
- } from "./chunk-7VEC3UD2.js";
6
+ } from "./chunk-7BJLKDBI.js";
7
7
  import "./chunk-5DXA2J44.js";
8
8
  import {
9
9
  replaceChildrenSafely
10
10
  } from "./chunk-QKRPLZ2V.js";
11
- import "./chunk-7ALC7KGE.js";
11
+ import "./chunk-TSL64O5L.js";
12
12
  import "./chunk-2WLZ6757.js";
13
13
 
14
14
  // src/testing/a11y.ts
package/dist/ui.cjs CHANGED
@@ -726,7 +726,7 @@ function forEachSubscriber(signal2, visit) {
726
726
  }
727
727
 
728
728
  // src/reactivity/track.ts
729
- var _runtimeVersion = true ? "4.2.0" : "dev";
729
+ var _runtimeVersion = true ? "4.3.0" : "dev";
730
730
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
731
731
  function resolveReactiveApi() {
732
732
  const g = globalThis;
package/dist/ui.js CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  toast,
39
39
  withScopedStyle,
40
40
  zipMask
41
- } from "./chunk-SF3TB4K6.js";
41
+ } from "./chunk-GZYQNIPS.js";
42
42
  import {
43
43
  RenderProp,
44
44
  assertType,
@@ -58,23 +58,23 @@ import {
58
58
  import {
59
59
  createId
60
60
  } from "./chunk-CCSJMTRN.js";
61
- import "./chunk-HJEPKZ2O.js";
62
- import "./chunk-2LOYNGBY.js";
61
+ import "./chunk-7UBG6LDP.js";
62
+ import "./chunk-3E5YNK2F.js";
63
63
  import "./chunk-IXKSNWV5.js";
64
64
  import {
65
65
  globalSingleton
66
66
  } from "./chunk-7ZHH77QA.js";
67
67
  import {
68
68
  effect
69
- } from "./chunk-7VEC3UD2.js";
69
+ } from "./chunk-7BJLKDBI.js";
70
70
  import "./chunk-5DXA2J44.js";
71
71
  import {
72
72
  registerDisposer
73
73
  } from "./chunk-QKRPLZ2V.js";
74
74
  import {
75
75
  signal
76
- } from "./chunk-HECVW343.js";
77
- import "./chunk-7ALC7KGE.js";
76
+ } from "./chunk-MYA5HEK5.js";
77
+ import "./chunk-TSL64O5L.js";
78
78
  import "./chunk-2WLZ6757.js";
79
79
 
80
80
  // src/ui/formAction.ts
package/dist/widgets.cjs CHANGED
@@ -600,7 +600,7 @@ function forEachSubscriber(signal2, visit) {
600
600
  }
601
601
 
602
602
  // src/reactivity/track.ts
603
- var _runtimeVersion = true ? "4.2.0" : "dev";
603
+ var _runtimeVersion = true ? "4.3.0" : "dev";
604
604
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
605
605
  function resolveReactiveApi() {
606
606
  const g = globalThis;
package/dist/widgets.js CHANGED
@@ -8,15 +8,15 @@ import {
8
8
  select,
9
9
  tabs,
10
10
  tooltip
11
- } from "./chunk-QCFLDD7C.js";
12
- import "./chunk-BMYYZWHX.js";
11
+ } from "./chunk-G7GPNB6N.js";
12
+ import "./chunk-IYHM4FWD.js";
13
13
  import "./chunk-CCSJMTRN.js";
14
- import "./chunk-2LOYNGBY.js";
14
+ import "./chunk-3E5YNK2F.js";
15
15
  import "./chunk-IXKSNWV5.js";
16
- import "./chunk-7VEC3UD2.js";
16
+ import "./chunk-7BJLKDBI.js";
17
17
  import "./chunk-5DXA2J44.js";
18
- import "./chunk-HECVW343.js";
19
- import "./chunk-7ALC7KGE.js";
18
+ import "./chunk-MYA5HEK5.js";
19
+ import "./chunk-TSL64O5L.js";
20
20
  import "./chunk-2WLZ6757.js";
21
21
  export {
22
22
  accordion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sibujs",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "A lightweight, function-based frontend framework that combines the best of React, Svelte, and Vue — with zero VDOM and maximum simplicity. Designed for developers who want fine-grained reactivity and full control without compilation or magic.",
5
5
  "keywords": [
6
6
  "frontend",