@fictjs/runtime 0.5.2 → 0.7.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 (63) hide show
  1. package/dist/advanced.cjs +13 -9
  2. package/dist/advanced.cjs.map +1 -1
  3. package/dist/advanced.d.cts +4 -4
  4. package/dist/advanced.d.ts +4 -4
  5. package/dist/advanced.js +8 -4
  6. package/dist/advanced.js.map +1 -1
  7. package/dist/{chunk-D2IWOO4X.js → chunk-4LCHQ7U4.js} +250 -99
  8. package/dist/chunk-4LCHQ7U4.js.map +1 -0
  9. package/dist/{chunk-LRFMCJY3.js → chunk-7YQK3XKY.js} +120 -27
  10. package/dist/chunk-7YQK3XKY.js.map +1 -0
  11. package/dist/{chunk-QB2UD62G.cjs → chunk-CEV6TO5U.cjs} +8 -8
  12. package/dist/{chunk-QB2UD62G.cjs.map → chunk-CEV6TO5U.cjs.map} +1 -1
  13. package/dist/{chunk-ZR435MDC.cjs → chunk-FSCBL7RI.cjs} +120 -27
  14. package/dist/chunk-FSCBL7RI.cjs.map +1 -0
  15. package/dist/{chunk-KNGHYGK4.cjs → chunk-HHDHQGJY.cjs} +17 -17
  16. package/dist/{chunk-KNGHYGK4.cjs.map → chunk-HHDHQGJY.cjs.map} +1 -1
  17. package/dist/{chunk-Z6M3HKLG.cjs → chunk-PRF4QG73.cjs} +400 -249
  18. package/dist/chunk-PRF4QG73.cjs.map +1 -0
  19. package/dist/{chunk-4NUHM77Z.js → chunk-TLDT76RV.js} +3 -3
  20. package/dist/{chunk-SLFAEVKJ.js → chunk-WRU3IZOA.js} +3 -3
  21. package/dist/{context-CTBE00S_.d.cts → context-BFbHf9nC.d.cts} +1 -1
  22. package/dist/{context-lkLhbkFJ.d.ts → context-C4vBQbb4.d.ts} +1 -1
  23. package/dist/{effect-BpSNEJJz.d.cts → effect-DAzpH7Mm.d.cts} +33 -1
  24. package/dist/{effect-BpSNEJJz.d.ts → effect-DAzpH7Mm.d.ts} +33 -1
  25. package/dist/index.cjs +42 -42
  26. package/dist/index.d.cts +5 -5
  27. package/dist/index.d.ts +5 -5
  28. package/dist/index.dev.js +206 -46
  29. package/dist/index.dev.js.map +1 -1
  30. package/dist/index.js +3 -3
  31. package/dist/internal.cjs +55 -41
  32. package/dist/internal.cjs.map +1 -1
  33. package/dist/internal.d.cts +3 -3
  34. package/dist/internal.d.ts +3 -3
  35. package/dist/internal.js +17 -3
  36. package/dist/internal.js.map +1 -1
  37. package/dist/loader.cjs +9 -9
  38. package/dist/loader.js +1 -1
  39. package/dist/{props-XTHYD19o.d.cts → props-84UJeWO8.d.cts} +1 -1
  40. package/dist/{props-x-HbI-jX.d.ts → props-BRhFK50f.d.ts} +1 -1
  41. package/dist/{scope-CdbGmsFf.d.ts → scope-D3DpsfoG.d.ts} +1 -1
  42. package/dist/{scope-DfcP9I-A.d.cts → scope-DlCBL1Ft.d.cts} +1 -1
  43. package/package.json +1 -1
  44. package/src/advanced.ts +1 -1
  45. package/src/binding.ts +229 -101
  46. package/src/constants.ts +1 -1
  47. package/src/cycle-guard.ts +4 -3
  48. package/src/dom.ts +15 -4
  49. package/src/hooks.ts +1 -1
  50. package/src/internal.ts +7 -0
  51. package/src/lifecycle.ts +1 -1
  52. package/src/props.ts +60 -1
  53. package/src/signal.ts +60 -10
  54. package/src/store.ts +131 -18
  55. package/src/transition.ts +46 -9
  56. package/dist/chunk-D2IWOO4X.js.map +0 -1
  57. package/dist/chunk-LRFMCJY3.js.map +0 -1
  58. package/dist/chunk-Z6M3HKLG.cjs.map +0 -1
  59. package/dist/chunk-ZR435MDC.cjs.map +0 -1
  60. package/dist/jsx-dev-runtime.d.cts +0 -671
  61. package/dist/jsx-dev-runtime.d.ts +0 -671
  62. /package/dist/{chunk-4NUHM77Z.js.map → chunk-TLDT76RV.js.map} +0 -0
  63. /package/dist/{chunk-SLFAEVKJ.js.map → chunk-WRU3IZOA.js.map} +0 -0
package/dist/advanced.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkKNGHYGK4cjs = require('./chunk-KNGHYGK4.cjs');
5
+ var _chunkHHDHQGJYcjs = require('./chunk-HHDHQGJY.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkQB2UD62Gcjs = require('./chunk-QB2UD62G.cjs');
9
+ var _chunkCEV6TO5Ucjs = require('./chunk-CEV6TO5U.cjs');
10
10
 
11
11
 
12
12
 
@@ -16,9 +16,9 @@ var _chunkQB2UD62Gcjs = require('./chunk-QB2UD62G.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkZ6M3HKLGcjs = require('./chunk-Z6M3HKLG.cjs');
20
19
 
21
20
 
21
+ var _chunkPRF4QG73cjs = require('./chunk-PRF4QG73.cjs');
22
22
 
23
23
 
24
24
 
@@ -26,13 +26,15 @@ var _chunkZ6M3HKLGcjs = require('./chunk-Z6M3HKLG.cjs');
26
26
 
27
27
 
28
28
 
29
- var _chunkZR435MDCcjs = require('./chunk-ZR435MDC.cjs');
29
+
30
+
31
+ var _chunkFSCBL7RIcjs = require('./chunk-FSCBL7RI.cjs');
30
32
 
31
33
  // src/versioned-signal.ts
32
34
  function createVersionedSignal(initialValue, options) {
33
35
  const equals = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _ => _.equals]), () => ( Object.is));
34
- const value = _chunkZR435MDCcjs.signal.call(void 0, initialValue);
35
- const version = _chunkZR435MDCcjs.signal.call(void 0, 0);
36
+ const value = _chunkFSCBL7RIcjs.signal.call(void 0, initialValue);
37
+ const version = _chunkFSCBL7RIcjs.signal.call(void 0, 0);
36
38
  const bumpVersion = () => {
37
39
  const next = version() + 1;
38
40
  version(next);
@@ -53,8 +55,8 @@ function createVersionedSignal(initialValue, options) {
53
55
  force: () => {
54
56
  bumpVersion();
55
57
  },
56
- peekVersion: () => _chunkZR435MDCcjs.untrack.call(void 0, () => version()),
57
- peekValue: () => _chunkZR435MDCcjs.untrack.call(void 0, () => value())
58
+ peekVersion: () => _chunkFSCBL7RIcjs.untrack.call(void 0, () => version()),
59
+ peekValue: () => _chunkFSCBL7RIcjs.untrack.call(void 0, () => value())
58
60
  };
59
61
  }
60
62
 
@@ -79,5 +81,7 @@ function createVersionedSignal(initialValue, options) {
79
81
 
80
82
 
81
83
 
82
- exports.createAttributeBinding = _chunkZ6M3HKLGcjs.createAttributeBinding; exports.createChildBinding = _chunkZ6M3HKLGcjs.createChildBinding; exports.createClassBinding = _chunkZ6M3HKLGcjs.createClassBinding; exports.createContext = _chunkKNGHYGK4cjs.createContext; exports.createRenderEffect = _chunkZR435MDCcjs.createRenderEffect; exports.createScope = _chunkQB2UD62Gcjs.createScope; exports.createSelector = _chunkZR435MDCcjs.createSelector; exports.createShow = _chunkZ6M3HKLGcjs.createShow; exports.createSignal = _chunkZR435MDCcjs.signal; exports.createStyleBinding = _chunkZ6M3HKLGcjs.createStyleBinding; exports.createTextBinding = _chunkZ6M3HKLGcjs.createTextBinding; exports.createVersionedSignal = createVersionedSignal; exports.effectScope = _chunkZR435MDCcjs.effectScope; exports.getDevtoolsHook = _chunkZR435MDCcjs.getDevtoolsHook; exports.hasContext = _chunkKNGHYGK4cjs.hasContext; exports.isReactive = _chunkZ6M3HKLGcjs.isReactive; exports.registerErrorHandler = _chunkZR435MDCcjs.registerErrorHandler; exports.runInScope = _chunkQB2UD62Gcjs.runInScope; exports.setCycleProtectionOptions = _chunkZR435MDCcjs.setCycleProtectionOptions; exports.unwrap = _chunkZ6M3HKLGcjs.unwrap; exports.useContext = _chunkKNGHYGK4cjs.useContext;
84
+
85
+
86
+ exports.createAttributeBinding = _chunkPRF4QG73cjs.createAttributeBinding; exports.createChildBinding = _chunkPRF4QG73cjs.createChildBinding; exports.createClassBinding = _chunkPRF4QG73cjs.createClassBinding; exports.createContext = _chunkHHDHQGJYcjs.createContext; exports.createRenderEffect = _chunkFSCBL7RIcjs.createRenderEffect; exports.createScope = _chunkCEV6TO5Ucjs.createScope; exports.createSelector = _chunkFSCBL7RIcjs.createSelector; exports.createShow = _chunkPRF4QG73cjs.createShow; exports.createSignal = _chunkFSCBL7RIcjs.signal; exports.createStyleBinding = _chunkPRF4QG73cjs.createStyleBinding; exports.createTextBinding = _chunkPRF4QG73cjs.createTextBinding; exports.createVersionedSignal = createVersionedSignal; exports.effectScope = _chunkFSCBL7RIcjs.effectScope; exports.getDevtoolsHook = _chunkFSCBL7RIcjs.getDevtoolsHook; exports.hasContext = _chunkHHDHQGJYcjs.hasContext; exports.isReactive = _chunkPRF4QG73cjs.isReactive; exports.nonReactive = _chunkPRF4QG73cjs.nonReactive; exports.reactive = _chunkPRF4QG73cjs.reactive; exports.registerErrorHandler = _chunkFSCBL7RIcjs.registerErrorHandler; exports.runInScope = _chunkCEV6TO5Ucjs.runInScope; exports.setCycleProtectionOptions = _chunkFSCBL7RIcjs.setCycleProtectionOptions; exports.unwrap = _chunkPRF4QG73cjs.unwrap; exports.useContext = _chunkHHDHQGJYcjs.useContext;
83
87
  //# sourceMappingURL=advanced.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/fict/fict/packages/runtime/dist/advanced.cjs","../src/versioned-signal.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACNO,SAAS,qBAAA,CACd,YAAA,EACA,OAAA,EACoB;AACpB,EAAA,MAAM,OAAA,mCAAS,OAAA,2BAAS,QAAA,UAAU,MAAA,CAAO,IAAA;AACzC,EAAA,MAAM,MAAA,EAAQ,sCAAA,YAAyB,CAAA;AACvC,EAAA,MAAM,QAAA,EAAU,sCAAA,CAAc,CAAA;AAE9B,EAAA,MAAM,YAAA,EAAc,CAAA,EAAA,GAAM;AACxB,IAAA,MAAM,KAAA,EAAO,OAAA,CAAQ,EAAA,EAAI,CAAA;AACzB,IAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,EACd,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,CAAA,EAAA,GAAM;AAEV,MAAA,OAAA,CAAQ,CAAA;AACR,MAAA,OAAO,KAAA,CAAM,CAAA;AAAA,IACf,CAAA;AAAA,IACA,KAAA,EAAO,CAAC,IAAA,EAAA,GAAY;AAClB,MAAA,MAAM,KAAA,EAAO,KAAA,CAAM,CAAA;AACnB,MAAA,GAAA,CAAI,CAAC,MAAA,CAAO,IAAA,EAAM,IAAI,CAAA,EAAG;AACvB,QAAA,KAAA,CAAM,IAAI,CAAA;AACV,QAAA,MAAA;AAAA,MACF;AACA,MAAA,WAAA,CAAY,CAAA;AAAA,IACd,CAAA;AAAA,IACA,KAAA,EAAO,CAAA,EAAA,GAAM;AACX,MAAA,WAAA,CAAY,CAAA;AAAA,IACd,CAAA;AAAA,IACA,WAAA,EAAa,CAAA,EAAA,GAAM,uCAAA,CAAQ,EAAA,GAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC1C,SAAA,EAAW,CAAA,EAAA,GAAM,uCAAA,CAAQ,EAAA,GAAM,KAAA,CAAM,CAAC;AAAA,EACxC,CAAA;AACF;ADEA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4tCAAC","file":"/home/runner/work/fict/fict/packages/runtime/dist/advanced.cjs","sourcesContent":[null,"import { createSignal, untrack } from './signal'\n\nexport interface VersionedSignalOptions<T> {\n equals?: (prev: T, next: T) => boolean\n}\n\nexport interface VersionedSignal<T> {\n /** Reactive read that tracks both the value and version counter */\n read: () => T\n /** Write a new value, forcing a version bump when value is equal */\n write: (next: T) => void\n /** Force a version bump without changing the value */\n force: () => void\n /** Read the current version without creating a dependency */\n peekVersion: () => number\n /** Read the current value without tracking */\n peekValue: () => T\n}\n\n/**\n * Create a signal wrapper that forces subscribers to update when the same reference is written.\n *\n * Useful for compiler-generated keyed list items where updates may reuse the same object reference.\n */\nexport function createVersionedSignal<T>(\n initialValue: T,\n options?: VersionedSignalOptions<T>,\n): VersionedSignal<T> {\n const equals = options?.equals ?? Object.is\n const value = createSignal(initialValue)\n const version = createSignal(0)\n\n const bumpVersion = () => {\n const next = version() + 1\n version(next)\n }\n\n return {\n read: () => {\n // Track both version and value to ensure equal writes notify subscribers\n version()\n return value()\n },\n write: (next: T) => {\n const prev = value()\n if (!equals(prev, next)) {\n value(next)\n return\n }\n bumpVersion()\n },\n force: () => {\n bumpVersion()\n },\n peekVersion: () => untrack(() => version()),\n peekValue: () => untrack(() => value()),\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/fict/fict/packages/runtime/dist/advanced.cjs","../src/versioned-signal.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACRO,SAAS,qBAAA,CACd,YAAA,EACA,OAAA,EACoB;AACpB,EAAA,MAAM,OAAA,mCAAS,OAAA,2BAAS,QAAA,UAAU,MAAA,CAAO,IAAA;AACzC,EAAA,MAAM,MAAA,EAAQ,sCAAA,YAAyB,CAAA;AACvC,EAAA,MAAM,QAAA,EAAU,sCAAA,CAAc,CAAA;AAE9B,EAAA,MAAM,YAAA,EAAc,CAAA,EAAA,GAAM;AACxB,IAAA,MAAM,KAAA,EAAO,OAAA,CAAQ,EAAA,EAAI,CAAA;AACzB,IAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,EACd,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,CAAA,EAAA,GAAM;AAEV,MAAA,OAAA,CAAQ,CAAA;AACR,MAAA,OAAO,KAAA,CAAM,CAAA;AAAA,IACf,CAAA;AAAA,IACA,KAAA,EAAO,CAAC,IAAA,EAAA,GAAY;AAClB,MAAA,MAAM,KAAA,EAAO,KAAA,CAAM,CAAA;AACnB,MAAA,GAAA,CAAI,CAAC,MAAA,CAAO,IAAA,EAAM,IAAI,CAAA,EAAG;AACvB,QAAA,KAAA,CAAM,IAAI,CAAA;AACV,QAAA,MAAA;AAAA,MACF;AACA,MAAA,WAAA,CAAY,CAAA;AAAA,IACd,CAAA;AAAA,IACA,KAAA,EAAO,CAAA,EAAA,GAAM;AACX,MAAA,WAAA,CAAY,CAAA;AAAA,IACd,CAAA;AAAA,IACA,WAAA,EAAa,CAAA,EAAA,GAAM,uCAAA,CAAQ,EAAA,GAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC1C,SAAA,EAAW,CAAA,EAAA,GAAM,uCAAA,CAAQ,EAAA,GAAM,KAAA,CAAM,CAAC;AAAA,EACxC,CAAA;AACF;ADIA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,g0CAAC","file":"/home/runner/work/fict/fict/packages/runtime/dist/advanced.cjs","sourcesContent":[null,"import { createSignal, untrack } from './signal'\n\nexport interface VersionedSignalOptions<T> {\n equals?: (prev: T, next: T) => boolean\n}\n\nexport interface VersionedSignal<T> {\n /** Reactive read that tracks both the value and version counter */\n read: () => T\n /** Write a new value, forcing a version bump when value is equal */\n write: (next: T) => void\n /** Force a version bump without changing the value */\n force: () => void\n /** Read the current version without creating a dependency */\n peekVersion: () => number\n /** Read the current value without tracking */\n peekValue: () => T\n}\n\n/**\n * Create a signal wrapper that forces subscribers to update when the same reference is written.\n *\n * Useful for compiler-generated keyed list items where updates may reuse the same object reference.\n */\nexport function createVersionedSignal<T>(\n initialValue: T,\n options?: VersionedSignalOptions<T>,\n): VersionedSignal<T> {\n const equals = options?.equals ?? Object.is\n const value = createSignal(initialValue)\n const version = createSignal(0)\n\n const bumpVersion = () => {\n const next = version() + 1\n version(next)\n }\n\n return {\n read: () => {\n // Track both version and value to ensure equal writes notify subscribers\n version()\n return value()\n },\n write: (next: T) => {\n const prev = value()\n if (!equals(prev, next)) {\n value(next)\n return\n }\n bumpVersion()\n },\n force: () => {\n bumpVersion()\n },\n peekVersion: () => untrack(() => version()),\n peekValue: () => untrack(() => value()),\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- export { R as ReactiveScope, c as createScope, r as runInScope } from './scope-DfcP9I-A.cjs';
1
+ export { R as ReactiveScope, c as createScope, r as runInScope } from './scope-DlCBL1Ft.cjs';
2
2
  export { S as Signal, c as createSelector, s as createSignal, e as effectScope } from './signal-C4ISF17w.cjs';
3
- export { b as createAttributeBinding, a as createChildBinding, e as createClassBinding, g as createRenderEffect, f as createShow, d as createStyleBinding, c as createTextBinding, i as isReactive, r as registerErrorHandler, u as unwrap } from './effect-BpSNEJJz.cjs';
4
- export { C as Context, F as FictDevtoolsHook, P as ProviderProps, c as createContext, g as getDevtoolsHook, h as hasContext, u as useContext } from './context-CTBE00S_.cjs';
3
+ export { b as createAttributeBinding, a as createChildBinding, e as createClassBinding, h as createRenderEffect, f as createShow, d as createStyleBinding, c as createTextBinding, i as isReactive, n as nonReactive, r as reactive, g as registerErrorHandler, u as unwrap } from './effect-DAzpH7Mm.cjs';
4
+ export { C as Context, F as FictDevtoolsHook, P as ProviderProps, c as createContext, g as getDevtoolsHook, h as hasContext, u as useContext } from './context-BFbHf9nC.cjs';
5
5
 
6
6
  interface VersionedSignalOptions<T> {
7
7
  equals?: (prev: T, next: T) => boolean;
@@ -26,7 +26,7 @@ interface VersionedSignal<T> {
26
26
  declare function createVersionedSignal<T>(initialValue: T, options?: VersionedSignalOptions<T>): VersionedSignal<T>;
27
27
 
28
28
  interface CycleProtectionOptions {
29
- /** Enable cycle protection guards (defaults to dev-only) */
29
+ /** Enable cycle protection guards (enabled by default in all modes) */
30
30
  enabled?: boolean;
31
31
  maxFlushCyclesPerMicrotask?: number;
32
32
  maxEffectRunsPerFlush?: number;
@@ -1,7 +1,7 @@
1
- export { R as ReactiveScope, c as createScope, r as runInScope } from './scope-CdbGmsFf.js';
1
+ export { R as ReactiveScope, c as createScope, r as runInScope } from './scope-D3DpsfoG.js';
2
2
  export { S as Signal, c as createSelector, s as createSignal, e as effectScope } from './signal-C4ISF17w.js';
3
- export { b as createAttributeBinding, a as createChildBinding, e as createClassBinding, g as createRenderEffect, f as createShow, d as createStyleBinding, c as createTextBinding, i as isReactive, r as registerErrorHandler, u as unwrap } from './effect-BpSNEJJz.js';
4
- export { C as Context, F as FictDevtoolsHook, P as ProviderProps, c as createContext, g as getDevtoolsHook, h as hasContext, u as useContext } from './context-lkLhbkFJ.js';
3
+ export { b as createAttributeBinding, a as createChildBinding, e as createClassBinding, h as createRenderEffect, f as createShow, d as createStyleBinding, c as createTextBinding, i as isReactive, n as nonReactive, r as reactive, g as registerErrorHandler, u as unwrap } from './effect-DAzpH7Mm.js';
4
+ export { C as Context, F as FictDevtoolsHook, P as ProviderProps, c as createContext, g as getDevtoolsHook, h as hasContext, u as useContext } from './context-C4vBQbb4.js';
5
5
 
6
6
  interface VersionedSignalOptions<T> {
7
7
  equals?: (prev: T, next: T) => boolean;
@@ -26,7 +26,7 @@ interface VersionedSignal<T> {
26
26
  declare function createVersionedSignal<T>(initialValue: T, options?: VersionedSignalOptions<T>): VersionedSignal<T>;
27
27
 
28
28
  interface CycleProtectionOptions {
29
- /** Enable cycle protection guards (defaults to dev-only) */
29
+ /** Enable cycle protection guards (enabled by default in all modes) */
30
30
  enabled?: boolean;
31
31
  maxFlushCyclesPerMicrotask?: number;
32
32
  maxEffectRunsPerFlush?: number;
package/dist/advanced.js CHANGED
@@ -2,11 +2,11 @@ import {
2
2
  createContext,
3
3
  hasContext,
4
4
  useContext
5
- } from "./chunk-SLFAEVKJ.js";
5
+ } from "./chunk-WRU3IZOA.js";
6
6
  import {
7
7
  createScope,
8
8
  runInScope
9
- } from "./chunk-4NUHM77Z.js";
9
+ } from "./chunk-TLDT76RV.js";
10
10
  import {
11
11
  createAttributeBinding,
12
12
  createChildBinding,
@@ -15,8 +15,10 @@ import {
15
15
  createStyleBinding,
16
16
  createTextBinding,
17
17
  isReactive,
18
+ nonReactive,
19
+ reactive,
18
20
  unwrap
19
- } from "./chunk-D2IWOO4X.js";
21
+ } from "./chunk-4LCHQ7U4.js";
20
22
  import {
21
23
  createRenderEffect,
22
24
  createSelector,
@@ -26,7 +28,7 @@ import {
26
28
  setCycleProtectionOptions,
27
29
  signal,
28
30
  untrack
29
- } from "./chunk-LRFMCJY3.js";
31
+ } from "./chunk-7YQK3XKY.js";
30
32
 
31
33
  // src/versioned-signal.ts
32
34
  function createVersionedSignal(initialValue, options) {
@@ -74,6 +76,8 @@ export {
74
76
  getDevtoolsHook,
75
77
  hasContext,
76
78
  isReactive,
79
+ nonReactive,
80
+ reactive,
77
81
  registerErrorHandler,
78
82
  runInScope,
79
83
  setCycleProtectionOptions,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/versioned-signal.ts"],"sourcesContent":["import { createSignal, untrack } from './signal'\n\nexport interface VersionedSignalOptions<T> {\n equals?: (prev: T, next: T) => boolean\n}\n\nexport interface VersionedSignal<T> {\n /** Reactive read that tracks both the value and version counter */\n read: () => T\n /** Write a new value, forcing a version bump when value is equal */\n write: (next: T) => void\n /** Force a version bump without changing the value */\n force: () => void\n /** Read the current version without creating a dependency */\n peekVersion: () => number\n /** Read the current value without tracking */\n peekValue: () => T\n}\n\n/**\n * Create a signal wrapper that forces subscribers to update when the same reference is written.\n *\n * Useful for compiler-generated keyed list items where updates may reuse the same object reference.\n */\nexport function createVersionedSignal<T>(\n initialValue: T,\n options?: VersionedSignalOptions<T>,\n): VersionedSignal<T> {\n const equals = options?.equals ?? Object.is\n const value = createSignal(initialValue)\n const version = createSignal(0)\n\n const bumpVersion = () => {\n const next = version() + 1\n version(next)\n }\n\n return {\n read: () => {\n // Track both version and value to ensure equal writes notify subscribers\n version()\n return value()\n },\n write: (next: T) => {\n const prev = value()\n if (!equals(prev, next)) {\n value(next)\n return\n }\n bumpVersion()\n },\n force: () => {\n bumpVersion()\n },\n peekVersion: () => untrack(() => version()),\n peekValue: () => untrack(() => value()),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBO,SAAS,sBACd,cACA,SACoB;AACpB,QAAM,SAAS,SAAS,UAAU,OAAO;AACzC,QAAM,QAAQ,OAAa,YAAY;AACvC,QAAM,UAAU,OAAa,CAAC;AAE9B,QAAM,cAAc,MAAM;AACxB,UAAM,OAAO,QAAQ,IAAI;AACzB,YAAQ,IAAI;AAAA,EACd;AAEA,SAAO;AAAA,IACL,MAAM,MAAM;AAEV,cAAQ;AACR,aAAO,MAAM;AAAA,IACf;AAAA,IACA,OAAO,CAAC,SAAY;AAClB,YAAM,OAAO,MAAM;AACnB,UAAI,CAAC,OAAO,MAAM,IAAI,GAAG;AACvB,cAAM,IAAI;AACV;AAAA,MACF;AACA,kBAAY;AAAA,IACd;AAAA,IACA,OAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,IACA,aAAa,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAAA,IAC1C,WAAW,MAAM,QAAQ,MAAM,MAAM,CAAC;AAAA,EACxC;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/versioned-signal.ts"],"sourcesContent":["import { createSignal, untrack } from './signal'\n\nexport interface VersionedSignalOptions<T> {\n equals?: (prev: T, next: T) => boolean\n}\n\nexport interface VersionedSignal<T> {\n /** Reactive read that tracks both the value and version counter */\n read: () => T\n /** Write a new value, forcing a version bump when value is equal */\n write: (next: T) => void\n /** Force a version bump without changing the value */\n force: () => void\n /** Read the current version without creating a dependency */\n peekVersion: () => number\n /** Read the current value without tracking */\n peekValue: () => T\n}\n\n/**\n * Create a signal wrapper that forces subscribers to update when the same reference is written.\n *\n * Useful for compiler-generated keyed list items where updates may reuse the same object reference.\n */\nexport function createVersionedSignal<T>(\n initialValue: T,\n options?: VersionedSignalOptions<T>,\n): VersionedSignal<T> {\n const equals = options?.equals ?? Object.is\n const value = createSignal(initialValue)\n const version = createSignal(0)\n\n const bumpVersion = () => {\n const next = version() + 1\n version(next)\n }\n\n return {\n read: () => {\n // Track both version and value to ensure equal writes notify subscribers\n version()\n return value()\n },\n write: (next: T) => {\n const prev = value()\n if (!equals(prev, next)) {\n value(next)\n return\n }\n bumpVersion()\n },\n force: () => {\n bumpVersion()\n },\n peekVersion: () => untrack(() => version()),\n peekValue: () => untrack(() => value()),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBO,SAAS,sBACd,cACA,SACoB;AACpB,QAAM,SAAS,SAAS,UAAU,OAAO;AACzC,QAAM,QAAQ,OAAa,YAAY;AACvC,QAAM,UAAU,OAAa,CAAC;AAE9B,QAAM,cAAc,MAAM;AACxB,UAAM,OAAO,QAAQ,IAAI;AACzB,YAAQ,IAAI;AAAA,EACd;AAEA,SAAO;AAAA,IACL,MAAM,MAAM;AAEV,cAAQ;AACR,aAAO,MAAM;AAAA,IACf;AAAA,IACA,OAAO,CAAC,SAAY;AAClB,YAAM,OAAO,MAAM;AACnB,UAAI,CAAC,OAAO,MAAM,IAAI,GAAG;AACvB,cAAM,IAAI;AACV;AAAA,MACF;AACA,kBAAY;AAAA,IACd;AAAA,IACA,OAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,IACA,aAAa,MAAM,QAAQ,MAAM,QAAQ,CAAC;AAAA,IAC1C,WAAW,MAAM,QAAQ,MAAM,MAAM,CAAC;AAAA,EACxC;AACF;","names":[]}