sinwan 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +34 -3
  2. package/dist/cjs/index.development.js +357 -221
  3. package/dist/cjs/index.development.js.map +12 -11
  4. package/dist/cjs/index.production.min.js +2 -2
  5. package/dist/cjs/index.production.min.js.map +12 -11
  6. package/dist/cjs/renderer/index.development.js +300 -116
  7. package/dist/cjs/renderer/index.development.js.map +11 -10
  8. package/dist/cjs/renderer/index.production.min.js +2 -2
  9. package/dist/cjs/renderer/index.production.min.js.map +11 -10
  10. package/dist/cjs/server/index.development.js +146 -68
  11. package/dist/cjs/server/index.development.js.map +8 -7
  12. package/dist/cjs/server/index.production.min.js +2 -2
  13. package/dist/cjs/server/index.production.min.js.map +8 -7
  14. package/dist/component/control-flow.d.ts +6 -1
  15. package/dist/component/control-flow.d.ts.map +1 -1
  16. package/dist/component/instance.d.ts.map +1 -1
  17. package/dist/esm/index.development.js +357 -221
  18. package/dist/esm/index.development.js.map +12 -11
  19. package/dist/esm/index.production.min.js +2 -2
  20. package/dist/esm/index.production.min.js.map +12 -11
  21. package/dist/esm/renderer/index.development.js +300 -116
  22. package/dist/esm/renderer/index.development.js.map +11 -10
  23. package/dist/esm/renderer/index.production.min.js +2 -2
  24. package/dist/esm/renderer/index.production.min.js.map +11 -10
  25. package/dist/esm/server/index.development.js +146 -68
  26. package/dist/esm/server/index.development.js.map +8 -7
  27. package/dist/esm/server/index.production.min.js +2 -2
  28. package/dist/esm/server/index.production.min.js.map +8 -7
  29. package/dist/reactivity/index.d.ts +2 -1
  30. package/dist/reactivity/index.d.ts.map +1 -1
  31. package/dist/reactivity/normalization.d.ts +19 -0
  32. package/dist/reactivity/normalization.d.ts.map +1 -0
  33. package/dist/renderer/attributes.d.ts.map +1 -1
  34. package/dist/renderer/events.d.ts.map +1 -1
  35. package/dist/renderer/render-children.d.ts.map +1 -1
  36. package/dist/renderer/render-control-flow.d.ts.map +1 -1
  37. package/dist/renderer/render-element.d.ts.map +1 -1
  38. package/dist/renderer/types.d.ts +2 -0
  39. package/dist/renderer/types.d.ts.map +1 -1
  40. package/dist/server/renderer.d.ts.map +1 -1
  41. package/dist/types.d.ts +2 -2
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +6 -3
@@ -11,5 +11,6 @@ export type { Computed } from "./computed.ts";
11
11
  export { effect } from "./effect.ts";
12
12
  export type { CleanupFn, EffectFn } from "./effect.ts";
13
13
  export { batch } from "./batch.ts";
14
- export { nextTick } from "./scheduler.ts";
14
+ export { nextTick, flushSync } from "./scheduler.ts";
15
+ export { isReactive, resolve } from "./normalization.ts";
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reactivity/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reactivity/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * SinwanJS Reactivity — Normalization
3
+ *
4
+ * Provides a unified way to handle different types of reactive inputs:
5
+ * Signals, Computed values, and Function getters.
6
+ */
7
+ import { type Signal } from "./signal.ts";
8
+ import { type Computed } from "./computed.ts";
9
+ /**
10
+ * Checks if a value is reactive (Signal, Computed, or Function getter).
11
+ */
12
+ export declare function isReactive(value: unknown): value is Signal<any> | Computed<any> | Function;
13
+ /**
14
+ * Resolves the current value of a potentially reactive input.
15
+ * If the input is a signal, computed, or function, it returns its current value.
16
+ * Otherwise, it returns the input as-is.
17
+ */
18
+ export declare function resolve<T>(value: T | Signal<T> | Computed<T> | (() => T)): T;
19
+ //# sourceMappingURL=normalization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../../src/reactivity/normalization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1D;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAM1F;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAQ5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/renderer/attributes.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,eAAO,MAAM,cAAc,aAAiG,CAAC;AAG7H,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK/C,CAAC;AAEF,UAAU,qBAAqB;IAC7B,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,SAAS,EAAE,CAyBb;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,qBAAqB,GAC5B,IAAI,CA2DN;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/renderer/attributes.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,eAAO,MAAM,cAAc,aAAiG,CAAC;AAG7H,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK/C,CAAC;AAEF,UAAU,qBAAqB;IAC7B,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,SAAS,EAAE,CA4Bb;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,qBAAqB,GAC5B,IAAI,CA2DN;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/renderer/events.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,SAAS,CAKX;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,SAAS,EAAE,CAcb"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/renderer/events.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,SAAS,CAKX;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,SAAS,EAAE,CAcb"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-children.d.ts","sourceRoot":"","sources":["../../src/renderer/render-children.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAY9C;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,IAAI,EACZ,MAAM,GAAE,IAAI,GAAG,IAAW,EAC1B,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,WAAW,CAuEb;AAsBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EAAE,EACtB,MAAM,EAAE,IAAI,EACZ,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,WAAW,EAAE,CAMf"}
1
+ {"version":3,"file":"render-children.d.ts","sourceRoot":"","sources":["../../src/renderer/render-children.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;AAYpE;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,IAAI,EACZ,MAAM,GAAE,IAAI,GAAG,IAAW,EAC1B,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,WAAW,CA4Db;AAsBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EAAE,EACtB,MAAM,EAAE,IAAI,EACZ,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,WAAW,EAAE,CAMf"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-control-flow.d.ts","sourceRoot":"","sources":["../../src/renderer/render-control-flow.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,YAAY,CAAC;AA0CnF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,WAAW,CAoCb"}
1
+ {"version":3,"file":"render-control-flow.d.ts","sourceRoot":"","sources":["../../src/renderer/render-control-flow.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAuC,MAAM,YAAY,CAAC;AAwCnF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,WAAW,CAoCb"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-element.d.ts","sourceRoot":"","sources":["../../src/renderer/render-element.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAC;AAsDhF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,IAAI,EACZ,MAAM,GAAE,IAAI,GAAG,IAAW,EAC1B,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,WAAW,CAkDb"}
1
+ {"version":3,"file":"render-element.d.ts","sourceRoot":"","sources":["../../src/renderer/render-element.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAC;AAsDhF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,IAAI,EACZ,MAAM,GAAE,IAAI,GAAG,IAAW,EAC1B,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,WAAW,CAmEb"}
@@ -59,6 +59,8 @@ export interface MountedPortal {
59
59
  anchor: Comment;
60
60
  children: MountedNode[];
61
61
  dispose: CleanupFn;
62
+ target?: Node;
63
+ targetAnchor?: Comment;
62
64
  }
63
65
  /** Union of all mounted node types. */
64
66
  export type MountedNode = MountedText | MountedReactiveText | MountedElement | MountedFragment | MountedReactiveBlock | MountedComponent | MountedPortal;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderer/types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,wDAAwD;IACxD,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,wCAAwC;IACxC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,wDAAwD;IACxD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oBAAoB;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACpC;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,CAAC;AAIlB,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,OAAO,IAAI,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderer/types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,wDAAwD;IACxD,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,wCAAwC;IACxC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,wDAAwD;IACxD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oBAAoB;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACpC;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,CAAC;AAIlB,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/server/renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EACV,WAAW,EACZ,MAAM,aAAa,CAAC;AAgCrB;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,EAChD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAClB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,EAC3C,IAAI,EAAE,MAAM,GACX,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAE3B;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,EACpD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCtE;AA0KD;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW,CAOlE"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/server/renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EACV,WAAW,EACZ,MAAM,aAAa,CAAC;AAoCrB;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,EAChD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAClB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,EAC3C,IAAI,EAAE,MAAM,GACX,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAE3B;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,EACpD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCtE;AA0KD;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW,CAOlE"}
package/dist/types.d.ts CHANGED
@@ -11,13 +11,13 @@ export type SinwanPrimitive = string | number | boolean | null | undefined;
11
11
  * A value that may be plain `T` or a reactive container (`Signal<T>` /
12
12
  * `Computed<T>`). Used by JSX attribute types so reactive props type-check.
13
13
  */
14
- export type Reactive<T> = T | Signal<T> | Computed<T>;
14
+ export type Reactive<T> = T | Signal<T> | Computed<T> | (() => T);
15
15
  export interface SinwanElement {
16
16
  tag: string | symbol | SinwanComponent<any>;
17
17
  props: Record<string, unknown>;
18
18
  children: SinwanNode[];
19
19
  }
20
- export type SinwanNode = SinwanPrimitive | SinwanElement | Promise<SinwanElement> | HtmlEscapedString | Signal<unknown> | Computed<unknown> | SinwanNode[];
20
+ export type SinwanNode = SinwanPrimitive | SinwanElement | Promise<SinwanElement> | HtmlEscapedString | Signal<unknown> | Computed<unknown> | (() => unknown) | SinwanNode[];
21
21
  export type SinwanSlots = Record<string, SinwanNode>;
22
22
  export interface SinwanComponent<P extends object = {}> {
23
23
  (props: P & {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAGtD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAID,MAAM,MAAM,UAAU,GAClB,eAAe,GACf,aAAa,GACb,OAAO,CAAC,aAAa,CAAC,GACtB,iBAAiB,GACjB,MAAM,CAAC,OAAO,CAAC,GACf,QAAQ,CAAC,OAAO,CAAC,GACjB,UAAU,EAAE,CAAC;AAGjB,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAGrD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;IACpD,CACE,KAAK,EAAE,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;KAAE,GACjD,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;IAC/C,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,IAAI,eAAe,CAC/D,CAAC,GAAG;IAAE,QAAQ,EAAE,UAAU,CAAA;CAAE,CAC7B,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAGlE,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAGtE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAGpE,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAGlE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAID,MAAM,MAAM,UAAU,GAClB,eAAe,GACf,aAAa,GACb,OAAO,CAAC,aAAa,CAAC,GACtB,iBAAiB,GACjB,MAAM,CAAC,OAAO,CAAC,GACf,QAAQ,CAAC,OAAO,CAAC,GACjB,CAAC,MAAM,OAAO,CAAC,GACf,UAAU,EAAE,CAAC;AAGjB,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAGrD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;IACpD,CACE,KAAK,EAAE,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;KAAE,GACjD,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;IAC/C,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,IAAI,eAAe,CAC/D,CAAC,GAAG;IAAE,QAAQ,EAAE,UAAU,CAAA;CAAE,CAC7B,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAGlE,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAGtE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAGpE,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinwan",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Sinwan — Reactive UI library with SSR, hydration, and fine-grained reactivity",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
@@ -89,9 +89,12 @@
89
89
  "build": "bun run build.ts",
90
90
  "build:types": "tsc -p tsconfig.build.json",
91
91
  "clean": "rm -rf dist",
92
- "prepublishOnly": "bun run build && bun run build:types && bun run test && bun run typecheck",
92
+ "prepublishOnly": "bun run typecheck && bun run build && bun run test",
93
93
  "test": "bun test",
94
- "typecheck": "tsc --noEmit"
94
+ "typecheck": "tsc --noEmit",
95
+ "lint": "eslint . --ext .ts,.tsx",
96
+ "app": "cd test-app && bun run dev",
97
+ "app:i": "cd test-app && bun i"
95
98
  },
96
99
  "keywords": [
97
100
  "sinwan",