ripple 0.3.126 → 0.3.128

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 (41) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/package.json +2 -2
  3. package/src/jsx-runtime.d.ts +1128 -967
  4. package/src/runtime/internal/client/blocks.js +20 -24
  5. package/src/runtime/internal/client/constants.js +5 -5
  6. package/src/runtime/internal/client/expression.js +142 -101
  7. package/src/runtime/internal/client/for.js +217 -145
  8. package/src/runtime/internal/client/index.js +5 -1
  9. package/src/runtime/internal/client/operations.js +24 -10
  10. package/src/runtime/internal/client/render.js +22 -3
  11. package/src/runtime/internal/client/runtime.js +246 -182
  12. package/src/runtime/internal/client/selector.js +74 -0
  13. package/src/runtime/internal/client/types.d.ts +11 -0
  14. package/src/runtime/internal/server/index.js +2 -0
  15. package/tests/client/basic/basic.reactivity.test.tsrx +33 -0
  16. package/tests/client/for-selector.test.tsrx +221 -0
  17. package/tests/hydration/compiled/client/basic.js +44 -44
  18. package/tests/hydration/compiled/client/composite.js +3 -3
  19. package/tests/hydration/compiled/client/events.js +56 -29
  20. package/tests/hydration/compiled/client/for.js +76 -70
  21. package/tests/hydration/compiled/client/head.js +11 -8
  22. package/tests/hydration/compiled/client/hmr.js +4 -4
  23. package/tests/hydration/compiled/client/html-in-template.js +3 -3
  24. package/tests/hydration/compiled/client/html.js +141 -141
  25. package/tests/hydration/compiled/client/if-children.js +29 -29
  26. package/tests/hydration/compiled/client/if-fragment-controlflow.js +16 -16
  27. package/tests/hydration/compiled/client/if.js +10 -10
  28. package/tests/hydration/compiled/client/mixed-control-flow.js +26 -22
  29. package/tests/hydration/compiled/client/nested-control-flow.js +114 -92
  30. package/tests/hydration/compiled/client/portal.js +8 -8
  31. package/tests/hydration/compiled/client/reactivity.js +38 -15
  32. package/tests/hydration/compiled/client/streaming.js +16 -16
  33. package/tests/hydration/compiled/client/switch.js +4 -4
  34. package/tests/hydration/compiled/client/track-async-serialization.js +18 -18
  35. package/tests/hydration/compiled/client/try.js +8 -8
  36. package/tests/hydration/compiled/server/events.js +5 -53
  37. package/tests/hydration/compiled/server/for.js +2 -18
  38. package/tests/hydration/compiled/server/head.js +1 -9
  39. package/tests/hydration/compiled/server/html.js +1 -9
  40. package/tests/hydration/compiled/server/reactivity.js +2 -34
  41. package/tests/utils/jsx-runtime-types.test.js +106 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # ripple
2
2
 
3
+ ## 0.3.128
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1450](https://github.com/Ripple-TS/ripple/pull/1450)
8
+ [`26be014`](https://github.com/Ripple-TS/ripple/commit/26be014dfd06da9eae7e2d9e0fbd332ddf1bc9ca)
9
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Faster updates and list
10
+ rendering in the client runtime. Tracked values now keep a subscriber list, so a
11
+ write schedules exactly the blocks that read it and the flush no longer scans
12
+ the owner's subtree; scheduled blocks run in creation order from a queue. Text
13
+ expressions, keyed list items, and class updates allocate less per row, and
14
+ `set_class` skips DOM writes when the class is unchanged. Adds the `selector` /
15
+ `selector_match` internals the compiler uses to share one subscription across
16
+ `outer === item` comparisons in `@for` templates. Keyed list reconciliation
17
+ matches moved end items before falling back to the map and LIS, so reversals,
18
+ rotations, and swaps complete with plain moves. An empty dynamic `class` no
19
+ longer writes a `class=""` attribute; the server omits it as well. Exposes
20
+ `hydrating`, `hydrate_child`, and `hydrate_sibling` from the internal client
21
+ entry for the compiler's inline traversal. When most surviving items of a keyed
22
+ list would have to move, the list is re-laid in order before a fixed node, which
23
+ is cheaper than moving each item into place.
24
+
25
+ - Updated dependencies
26
+ [[`26be014`](https://github.com/Ripple-TS/ripple/commit/26be014dfd06da9eae7e2d9e0fbd332ddf1bc9ca)]:
27
+ - @tsrx/ripple@0.1.65
28
+
29
+ ## 0.3.127
30
+
31
+ ### Patch Changes
32
+
33
+ - [#1447](https://github.com/Ripple-TS/ripple/pull/1447)
34
+ [`d824f7b`](https://github.com/Ripple-TS/ripple/commit/d824f7b790991f89b0935e05ceb78e2214ab3394)
35
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Align JSX component types
36
+ with the public `Component` type so component props and functions returning
37
+ renderable primitives or arrays are accepted as JSX tags.
38
+
39
+ - [#1448](https://github.com/Ripple-TS/ripple/pull/1448)
40
+ [`6c47f52`](https://github.com/Ripple-TS/ripple/commit/6c47f527a790e1b86ed7ff770e9c19f213d4881a)
41
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Qualify JSX element types
42
+ with the Ripple namespace and use DetailedHTMLProps for HTML tag hovers while
43
+ preserving Ripple's attribute, event, and ref types.
44
+
45
+ - Updated dependencies
46
+ [[`ac4361e`](https://github.com/Ripple-TS/ripple/commit/ac4361e2dd1e93c29f44196cfe3b703124083fd0)]:
47
+ - @tsrx/ripple@0.1.64
48
+
3
49
  ## 0.3.126
4
50
 
5
51
  ### Patch Changes
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ripple is an elegant TypeScript UI framework",
4
4
  "license": "MIT",
5
5
  "author": "Dominic Gannaway",
6
- "version": "0.3.126",
6
+ "version": "0.3.128",
7
7
  "type": "module",
8
8
  "module": "src/runtime/index-client.js",
9
9
  "main": "src/runtime/index-client.js",
@@ -74,7 +74,7 @@
74
74
  "devalue": "^5.8.1",
75
75
  "esm-env": "^1.2.2",
76
76
  "@tsrx/core": "^0.1.67",
77
- "@tsrx/ripple": "0.1.63"
77
+ "@tsrx/ripple": "0.1.65"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@types/estree": "^1.0.8",