ripple 0.4.0 → 0.4.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 (40) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/package.json +3 -2
  3. package/src/constants.js +4 -0
  4. package/src/jsx-runtime.d.ts +12 -2
  5. package/src/runtime/internal/client/constants.js +6 -0
  6. package/src/runtime/internal/client/for.js +224 -50
  7. package/src/runtime/internal/client/hydration.js +0 -16
  8. package/src/runtime/internal/client/index.js +2 -2
  9. package/src/runtime/internal/client/operations.js +1 -2
  10. package/src/runtime/internal/client/render.js +42 -4
  11. package/src/runtime/internal/client/runtime.js +45 -2
  12. package/src/runtime/internal/server/index.js +11 -6
  13. package/tests/client/basic/basic.attributes.test.tsrx +37 -0
  14. package/tests/client/compiler/compiler.basic.test.tsrx +2 -2
  15. package/tests/client/for-item.test.tsrx +404 -0
  16. package/tests/hydration/compiled/client/basic.js +29 -55
  17. package/tests/hydration/compiled/client/events.js +80 -67
  18. package/tests/hydration/compiled/client/for.js +95 -80
  19. package/tests/hydration/compiled/client/fragment-cursor.js +412 -344
  20. package/tests/hydration/compiled/client/head.js +4 -7
  21. package/tests/hydration/compiled/client/html.js +40 -64
  22. package/tests/hydration/compiled/client/if-children.js +30 -34
  23. package/tests/hydration/compiled/client/if-fragment-controlflow.js +7 -7
  24. package/tests/hydration/compiled/client/if.js +4 -4
  25. package/tests/hydration/compiled/client/mixed-control-flow.js +20 -50
  26. package/tests/hydration/compiled/client/nested-control-flow.js +97 -185
  27. package/tests/hydration/compiled/client/portal.js +2 -2
  28. package/tests/hydration/compiled/client/reactivity.js +17 -31
  29. package/tests/hydration/compiled/client/streaming.js +4 -8
  30. package/tests/hydration/compiled/client/typed-text.js +4 -15
  31. package/tests/hydration/compiled/server/events.js +5 -53
  32. package/tests/hydration/compiled/server/for.js +1 -9
  33. package/tests/hydration/compiled/server/fragment-cursor.js +36 -324
  34. package/tests/server/basic.attributes.test.tsrx +28 -0
  35. package/tests/server/basic.test.tsrx +23 -0
  36. package/tests/utils/jsx-runtime-types.test.js +67 -2
  37. package/tests/utils/tracked-types.test.js +117 -0
  38. package/types/index.d.ts +7 -8
  39. package/tests/client/compiler/__snapshots__/compiler.assignments.test.rsrx.snap +0 -12
  40. package/tests/client/compiler/__snapshots__/compiler.typescript.test.rsrx.snap +0 -46
@@ -35,13 +35,14 @@ function StaticForLoop_render(__anchor, __block) {
35
35
 
36
36
  StaticForLoop[_$_.$r] = StaticForLoop_render;
37
37
 
38
- var root_3 = _$_.template(`<li> </li>`, 0);
38
+ var root_3 = _$_.template(`<li></li>`, 0);
39
39
 
40
40
  function render(__prev) {
41
41
  var __a = `${__prev._i.value}: ${__prev._item}`;
42
42
 
43
43
  if (__prev.a !== __a) {
44
- _$_.set_text(__prev._expression_1, __prev.a = __a);
44
+ _$_.set_text_content(__prev._li_1, __a, __prev.a);
45
+ __prev.a = __a;
45
46
  }
46
47
  }
47
48
 
@@ -58,14 +59,12 @@ function ForLoopWithIndex_render(__anchor, __block) {
58
59
  (__anchor, item, i) => {
59
60
  var li_1 = root_3();
60
61
 
61
- {
62
- var expression_1 = _$_.hydrating ? _$_.hydrate_text() : li_1.firstChild;
63
- }
64
-
65
- _$_.render(render, { a: ' ', _i: i, _item: item, _expression_1: expression_1 });
62
+ _$_.item({ a: '', _i: i, _item: item, _li_1: li_1 });
66
63
  _$_.append(__anchor, li_1);
67
64
  },
68
- 12
65
+ 12,
66
+ void 0,
67
+ render
69
68
  );
70
69
 
71
70
  _$_.hydrating && _$_.pop(ul_1);
@@ -105,7 +104,7 @@ function KeyedForLoop_render(__anchor, __block) {
105
104
  _$_.append(__anchor, li_2);
106
105
  },
107
106
  4,
108
- (pattern) => _$_.get(pattern).id
107
+ (pattern) => pattern.id
109
108
  );
110
109
 
111
110
  _$_.hydrating && _$_.pop(ul_2);
@@ -257,10 +256,12 @@ function ForLoopInteractive_render(__anchor, __block) {
257
256
  };
258
257
  }
259
258
 
260
- _$_.render(render_1, { a: _$_.UNINITIALIZED, _i: i, _div_1: div_1 });
259
+ _$_.item({ a: _$_.UNINITIALIZED, _i: i, _div_1: div_1 });
261
260
  _$_.append(__anchor, div_1);
262
261
  },
263
- 12
262
+ 12,
263
+ void 0,
264
+ render_1
264
265
  );
265
266
 
266
267
  _$_.hydrating && _$_.pop(div);
@@ -317,7 +318,7 @@ function NestedForLoop_render(__anchor, __block) {
317
318
  _$_.hydrating && _$_.pop(span_1);
318
319
  }
319
320
 
320
- _$_.render(render_2, {
321
+ _$_.item({
321
322
  a: _$_.UNINITIALIZED,
322
323
  _rowIndex: rowIndex,
323
324
  _colIndex: colIndex,
@@ -326,16 +327,20 @@ function NestedForLoop_render(__anchor, __block) {
326
327
 
327
328
  _$_.append(__anchor, span_1);
328
329
  },
329
- 12
330
+ 12,
331
+ void 0,
332
+ render_2
330
333
  );
331
334
 
332
335
  _$_.hydrating && _$_.pop(div_3);
333
- _$_.render(render_3, { a: _$_.UNINITIALIZED, _rowIndex: rowIndex, _div_3: div_3 });
336
+ _$_.item({ a: _$_.UNINITIALIZED, _rowIndex: rowIndex, _div_3: div_3 });
334
337
  }
335
338
 
336
339
  _$_.append(__anchor, div_3);
337
340
  },
338
- 12
341
+ 12,
342
+ void 0,
343
+ render_3
339
344
  );
340
345
 
341
346
  _$_.hydrating && _$_.pop(div_2);
@@ -346,7 +351,7 @@ function NestedForLoop_render(__anchor, __block) {
346
351
 
347
352
  NestedForLoop[_$_.$r] = NestedForLoop_render;
348
353
 
349
- var root_18 = _$_.template(`<span> </span>`, 0);
354
+ var root_18 = _$_.template(`<span></span>`, 0);
350
355
  var root_17 = _$_.template(`<div class="container"></div>`, 0);
351
356
 
352
357
  function EmptyForLoop_render(__anchor, __block) {
@@ -361,9 +366,7 @@ function EmptyForLoop_render(__anchor, __block) {
361
366
  var span_2 = root_18();
362
367
 
363
368
  {
364
- var expression_7 = _$_.hydrating ? _$_.hydrate_text() : span_2.firstChild;
365
-
366
- expression_7.nodeValue = item;
369
+ span_2.textContent = item;
367
370
  }
368
371
 
369
372
  _$_.append(__anchor, span_2);
@@ -426,11 +429,14 @@ function ForLoopComplexObjects_render(__anchor, __block) {
426
429
  }
427
430
  }
428
431
 
429
- _$_.render(render_4, { a: _$_.UNINITIALIZED, _pattern_1: pattern_1, _div_6: div_6 });
432
+ _$_.item({ a: _$_.UNINITIALIZED, _pattern_1: pattern_1, _div_6: div_6 });
430
433
  _$_.append(__anchor, div_6);
431
434
  },
432
435
  4,
433
- (pattern_1) => _$_.get(pattern_1).id
436
+ (pattern_1) => pattern_1.id,
437
+ void 0,
438
+ void 0,
439
+ render_4
434
440
  );
435
441
 
436
442
  _$_.hydrating && _$_.pop(div_5);
@@ -492,11 +498,14 @@ function KeyedForLoopReorder_render(__anchor, __block) {
492
498
  _$_.hydrating && _$_.pop(li_5);
493
499
  }
494
500
 
495
- _$_.render(render_5, { a: _$_.UNINITIALIZED, _pattern_2: pattern_2, _li_5: li_5 });
501
+ _$_.item({ a: _$_.UNINITIALIZED, _pattern_2: pattern_2, _li_5: li_5 });
496
502
  _$_.append(__anchor, li_5);
497
503
  },
498
504
  4,
499
- (pattern_2) => _$_.get(pattern_2).id
505
+ (pattern_2) => pattern_2.id,
506
+ void 0,
507
+ void 0,
508
+ render_5
500
509
  );
501
510
 
502
511
  _$_.hydrating && _$_.pop(ul_5);
@@ -552,11 +561,14 @@ function KeyedForLoopUpdate_render(__anchor, __block) {
552
561
  _$_.hydrating && _$_.pop(li_6);
553
562
  }
554
563
 
555
- _$_.render(render_6, { a: _$_.UNINITIALIZED, _pattern_3: pattern_3, _li_6: li_6 });
564
+ _$_.item({ a: _$_.UNINITIALIZED, _pattern_3: pattern_3, _li_6: li_6 });
556
565
  _$_.append(__anchor, li_6);
557
566
  },
558
567
  4,
559
- (pattern_3) => _$_.get(pattern_3).id
568
+ (pattern_3) => pattern_3.id,
569
+ void 0,
570
+ void 0,
571
+ render_6
560
572
  );
561
573
 
562
574
  _$_.hydrating && _$_.pop(ul_6);
@@ -690,7 +702,7 @@ function ForLoopInsideIf_render(__anchor, __block) {
690
702
 
691
703
  ForLoopInsideIf[_$_.$r] = ForLoopInsideIf_render;
692
704
 
693
- var root_36 = _$_.template(`<li> </li>`, 0);
705
+ var root_36 = _$_.template(`<li></li>`, 0);
694
706
  var root_35 = _$_.template(`<button class="populate">Populate</button><ul class="list"></ul>`, 1, 2);
695
707
  var root_34 = _$_.template(`<!>`, 1, 1);
696
708
 
@@ -717,10 +729,7 @@ function ForLoopEmptyToPopulated_render(__anchor, __block) {
717
729
  var li_9 = root_36();
718
730
 
719
731
  {
720
- var expression_14 = _$_.hydrating ? _$_.hydrate_child() : li_9.firstChild;
721
-
722
- _$_.expression(expression_14, () => item);
723
- _$_.hydrating && _$_.pop(li_9);
732
+ li_9.textContent = item;
724
733
  }
725
734
 
726
735
  _$_.append(__anchor, li_9);
@@ -852,7 +861,7 @@ function NestedForLoopReactive_render(__anchor, __block) {
852
861
  _$_.hydrating && _$_.pop(span_5);
853
862
  }
854
863
 
855
- _$_.render(render_7, {
864
+ _$_.item({
856
865
  a: _$_.UNINITIALIZED,
857
866
  _rowIndex: rowIndex,
858
867
  _colIndex: colIndex,
@@ -861,16 +870,20 @@ function NestedForLoopReactive_render(__anchor, __block) {
861
870
 
862
871
  _$_.append(__anchor, span_5);
863
872
  },
864
- 12
873
+ 12,
874
+ void 0,
875
+ render_7
865
876
  );
866
877
 
867
878
  _$_.hydrating && _$_.pop(div_9);
868
- _$_.render(render_8, { a: _$_.UNINITIALIZED, _rowIndex: rowIndex, _div_9: div_9 });
879
+ _$_.item({ a: _$_.UNINITIALIZED, _rowIndex: rowIndex, _div_9: div_9 });
869
880
  }
870
881
 
871
882
  _$_.append(__anchor, div_9);
872
883
  },
873
- 12
884
+ 12,
885
+ void 0,
886
+ render_8
874
887
  );
875
888
 
876
889
  _$_.hydrating && _$_.pop(div_8);
@@ -893,7 +906,7 @@ function render_9(__prev) {
893
906
  }
894
907
  }
895
908
 
896
- var root_44 = _$_.template(`<div><h2 class="dept-name"> </h2><!></div>`, 0);
909
+ var root_44 = _$_.template(`<div><h2 class="dept-name"> </h2></div>`, 0);
897
910
 
898
911
  function render_10(__prev) {
899
912
  var __a = `dept-${_$_.get(__prev._pattern_4).id}`;
@@ -942,7 +955,7 @@ function ForLoopDeeplyNested_render(__anchor, __block) {
942
955
  _$_.hydrating && _$_.pop(h2);
943
956
  }
944
957
 
945
- var node_9 = _$_.hydrating ? _$_.hydrate_sibling() : h2.nextSibling;
958
+ var node_9 = _$_.hydrating ? _$_.hydrate_sibling() : _$_.append_into(div_11);
946
959
 
947
960
  _$_.for_keyed(
948
961
  node_9,
@@ -985,21 +998,27 @@ function ForLoopDeeplyNested_render(__anchor, __block) {
985
998
  }
986
999
  }
987
1000
 
988
- _$_.render(render_9, { a: _$_.UNINITIALIZED, _pattern_5: pattern_5, _div_12: div_12 });
1001
+ _$_.item({ a: _$_.UNINITIALIZED, _pattern_5: pattern_5, _div_12: div_12 });
989
1002
  _$_.append(__anchor, div_12);
990
1003
  },
991
1004
  0,
992
- (pattern_5) => _$_.get(pattern_5).id
1005
+ (pattern_5) => pattern_5.id,
1006
+ void 0,
1007
+ void 0,
1008
+ render_9
993
1009
  );
994
1010
 
995
1011
  _$_.hydrating && _$_.pop(div_11);
996
1012
  }
997
1013
 
998
- _$_.render(render_10, { a: _$_.UNINITIALIZED, _pattern_4: pattern_4, _div_11: div_11 });
1014
+ _$_.item({ a: _$_.UNINITIALIZED, _pattern_4: pattern_4, _div_11: div_11 });
999
1015
  _$_.append(__anchor, div_11);
1000
1016
  },
1001
1017
  4,
1002
- (pattern_4) => _$_.get(pattern_4).id
1018
+ (pattern_4) => pattern_4.id,
1019
+ void 0,
1020
+ void 0,
1021
+ render_10
1003
1022
  );
1004
1023
 
1005
1024
  _$_.hydrating && _$_.pop(div_10);
@@ -1010,13 +1029,14 @@ function ForLoopDeeplyNested_render(__anchor, __block) {
1010
1029
 
1011
1030
  ForLoopDeeplyNested[_$_.$r] = ForLoopDeeplyNested_render;
1012
1031
 
1013
- var root_49 = _$_.template(`<li> </li>`, 0);
1032
+ var root_49 = _$_.template(`<li></li>`, 0);
1014
1033
 
1015
1034
  function render_11(__prev) {
1016
1035
  var __a = `[${__prev._i.value}] ${__prev._item}`;
1017
1036
 
1018
1037
  if (__prev.a !== __a) {
1019
- _$_.set_text(__prev._expression_20, __prev.a = __a);
1038
+ _$_.set_text_content(__prev._li_12, __a, __prev.a);
1039
+ __prev.a = __a;
1020
1040
  }
1021
1041
 
1022
1042
  var __b = `item-${__prev._i.value}`;
@@ -1051,22 +1071,19 @@ function ForLoopIndexUpdate_render(__anchor, __block) {
1051
1071
  (__anchor, item, i) => {
1052
1072
  var li_12 = root_49();
1053
1073
 
1054
- {
1055
- var expression_20 = _$_.hydrating ? _$_.hydrate_text() : li_12.firstChild;
1056
- }
1057
-
1058
- _$_.render(render_11, {
1059
- a: ' ',
1074
+ _$_.item({
1075
+ a: '',
1060
1076
  b: _$_.UNINITIALIZED,
1061
1077
  _i: i,
1062
1078
  _item: item,
1063
- _expression_20: expression_20,
1064
1079
  _li_12: li_12
1065
1080
  });
1066
1081
 
1067
1082
  _$_.append(__anchor, li_12);
1068
1083
  },
1069
- 12
1084
+ 12,
1085
+ void 0,
1086
+ render_11
1070
1087
  );
1071
1088
 
1072
1089
  _$_.hydrating && _$_.pop(ul_12);
@@ -1080,14 +1097,15 @@ function ForLoopIndexUpdate_render(__anchor, __block) {
1080
1097
 
1081
1098
  ForLoopIndexUpdate[_$_.$r] = ForLoopIndexUpdate_render;
1082
1099
 
1083
- var root_52 = _$_.template(`<li> </li>`, 0);
1100
+ var root_52 = _$_.template(`<li></li>`, 0);
1084
1101
 
1085
1102
  function render_12(__prev) {
1086
1103
  var __pattern_6 = _$_.get(__prev._pattern_6);
1087
1104
  var __a = `[${__prev._i.value}] ${__pattern_6.id}: ${__pattern_6.value}`;
1088
1105
 
1089
1106
  if (__prev.a !== __a) {
1090
- _$_.set_text(__prev._expression_21, __prev.a = __a);
1107
+ _$_.set_text_content(__prev._li_13, __a, __prev.a);
1108
+ __prev.a = __a;
1091
1109
  }
1092
1110
 
1093
1111
  var __b = __prev._i.value;
@@ -1137,24 +1155,22 @@ function KeyedForLoopWithIndex_render(__anchor, __block) {
1137
1155
  (__anchor, pattern_6, i) => {
1138
1156
  var li_13 = root_52();
1139
1157
 
1140
- {
1141
- var expression_21 = _$_.hydrating ? _$_.hydrate_text() : li_13.firstChild;
1142
- }
1143
-
1144
- _$_.render(render_12, {
1145
- a: ' ',
1158
+ _$_.item({
1159
+ a: '',
1146
1160
  b: void 0,
1147
1161
  c: _$_.UNINITIALIZED,
1148
1162
  _pattern_6: pattern_6,
1149
1163
  _i: i,
1150
- _expression_21: expression_21,
1151
1164
  _li_13: li_13
1152
1165
  });
1153
1166
 
1154
1167
  _$_.append(__anchor, li_13);
1155
1168
  },
1156
1169
  12,
1157
- (pattern_6, i) => _$_.get(pattern_6).id
1170
+ (pattern_6, i) => pattern_6.id,
1171
+ void 0,
1172
+ void 0,
1173
+ render_12
1158
1174
  );
1159
1175
 
1160
1176
  _$_.hydrating && _$_.pop(ul_13);
@@ -1241,7 +1257,7 @@ function ForLoopItemState_render(__anchor, __block) {
1241
1257
  _$_.render_component(TodoItem, __anchor, { id: _$_.get(pattern_7).id, text: _$_.get(pattern_7).text });
1242
1258
  },
1243
1259
  4,
1244
- (pattern_7) => _$_.get(pattern_7).id
1260
+ (pattern_7) => pattern_7.id
1245
1261
  );
1246
1262
 
1247
1263
  _$_.hydrating && _$_.pop(div_15);
@@ -1252,7 +1268,7 @@ function ForLoopItemState_render(__anchor, __block) {
1252
1268
 
1253
1269
  ForLoopItemState[_$_.$r] = ForLoopItemState_render;
1254
1270
 
1255
- var root_57 = _$_.template(`<div><input type="checkbox" class="checkbox"><span> </span></div>`, 0);
1271
+ var root_57 = _$_.template(`<div><input type="checkbox" class="checkbox"><span></span></div>`, 0);
1256
1272
 
1257
1273
  function render_13(__prev) {
1258
1274
  var __a = __prev._done.value;
@@ -1264,7 +1280,8 @@ function render_13(__prev) {
1264
1280
  var __b = __prev._props.text;
1265
1281
 
1266
1282
  if (__prev.b !== __b) {
1267
- _$_.set_text(__prev._expression_23, __prev.b = __b);
1283
+ _$_.set_text_content(__prev._span_6, __b, __prev.b);
1284
+ __prev.b = __b;
1268
1285
  }
1269
1286
 
1270
1287
  var __c = __prev._done.value ? 'completed' : 'pending';
@@ -1292,21 +1309,16 @@ function TodoItem_render(__anchor, __block, props) {
1292
1309
  };
1293
1310
 
1294
1311
  var span_6 = _$_.hydrating ? _$_.hydrate_sibling() : input.nextSibling;
1295
-
1296
- {
1297
- var expression_23 = _$_.hydrating ? _$_.hydrate_text() : span_6.firstChild;
1298
- }
1299
1312
  }
1300
1313
 
1301
1314
  _$_.render(render_13, {
1302
1315
  a: void 0,
1303
- b: ' ',
1316
+ b: '',
1304
1317
  c: _$_.UNINITIALIZED,
1305
1318
  d: _$_.UNINITIALIZED,
1306
1319
  _done: done,
1307
1320
  _input: input,
1308
1321
  _props: props,
1309
- _expression_23: expression_23,
1310
1322
  _span_6: span_6,
1311
1323
  _div_16: div_16
1312
1324
  });
@@ -1536,10 +1548,12 @@ function ForLoopLargeList_render(__anchor, __block) {
1536
1548
  _$_.hydrating && _$_.pop(li_18);
1537
1549
  }
1538
1550
 
1539
- _$_.render(render_14, { a: _$_.UNINITIALIZED, _i: i, _li_18: li_18 });
1551
+ _$_.item({ a: _$_.UNINITIALIZED, _i: i, _li_18: li_18 });
1540
1552
  _$_.append(__anchor, li_18);
1541
1553
  },
1542
- 12
1554
+ 12,
1555
+ void 0,
1556
+ render_14
1543
1557
  );
1544
1558
 
1545
1559
  _$_.hydrating && _$_.pop(ul_18);
@@ -1706,13 +1720,14 @@ function KeyedForLoopAppendAndRotate_render(__anchor, __block) {
1706
1720
 
1707
1721
  KeyedForLoopAppendAndRotate[_$_.$r] = KeyedForLoopAppendAndRotate_render;
1708
1722
 
1709
- var root_79 = _$_.template(`<span class="item"> </span>`, 0);
1723
+ var root_79 = _$_.template(`<span class="item"></span>`, 0);
1710
1724
 
1711
1725
  function render_15(__prev) {
1712
- var __a = _$_.get(__prev._pattern_9);
1726
+ var __a = __prev.$item;
1713
1727
 
1714
1728
  if (__prev.a !== __a) {
1715
- _$_.set_text(__prev._expression_32, __prev.a = __a);
1729
+ _$_.set_text_content(__prev._span_8, __a, __prev.a);
1730
+ __prev.a = __a;
1716
1731
  }
1717
1732
  }
1718
1733
 
@@ -1723,14 +1738,14 @@ function RootKeyedList_render(__anchor, __block, props) {
1723
1738
  (__anchor, pattern_9) => {
1724
1739
  var span_8 = root_79();
1725
1740
 
1726
- {
1727
- var expression_32 = _$_.hydrating ? _$_.hydrate_text() : span_8.firstChild;
1728
- }
1729
-
1730
- _$_.render(render_15, { a: ' ', _pattern_9: pattern_9, _expression_32: expression_32 });
1741
+ _$_.item({ a: '', $item: pattern_9, _span_8: span_8 });
1731
1742
  _$_.append(__anchor, span_8);
1732
1743
  },
1733
- 16
1744
+ 144,
1745
+ void 0,
1746
+ void 0,
1747
+ void 0,
1748
+ render_15
1734
1749
  );
1735
1750
  }
1736
1751