ripple 0.3.7 → 0.3.9

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 (119) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +2 -2
  3. package/src/compiler/phases/1-parse/index.js +48 -349
  4. package/src/compiler/phases/2-analyze/index.js +343 -52
  5. package/src/compiler/phases/3-transform/client/index.js +28 -160
  6. package/src/compiler/phases/3-transform/segments.js +0 -7
  7. package/src/compiler/phases/3-transform/server/index.js +31 -154
  8. package/src/compiler/types/acorn.d.ts +1 -1
  9. package/src/compiler/types/estree.d.ts +1 -1
  10. package/src/compiler/types/import.d.ts +0 -2
  11. package/src/compiler/types/index.d.ts +5 -17
  12. package/src/compiler/types/parse.d.ts +1 -17
  13. package/src/compiler/utils.js +53 -20
  14. package/src/runtime/index-client.js +2 -13
  15. package/src/runtime/index-server.js +2 -2
  16. package/src/runtime/internal/client/bindings.js +3 -1
  17. package/src/runtime/internal/client/composite.js +3 -2
  18. package/src/runtime/internal/client/events.js +1 -1
  19. package/src/runtime/internal/client/head.js +3 -4
  20. package/src/runtime/internal/client/index.js +0 -1
  21. package/src/runtime/internal/client/runtime.js +0 -52
  22. package/src/runtime/internal/server/index.js +31 -55
  23. package/tests/client/array/array.copy-within.test.ripple +12 -12
  24. package/tests/client/array/array.derived.test.ripple +46 -46
  25. package/tests/client/array/array.iteration.test.ripple +10 -10
  26. package/tests/client/array/array.mutations.test.ripple +20 -20
  27. package/tests/client/array/array.to-methods.test.ripple +6 -6
  28. package/tests/client/async-suspend.test.ripple +5 -5
  29. package/tests/client/basic/basic.attributes.test.ripple +81 -81
  30. package/tests/client/basic/basic.collections.test.ripple +9 -9
  31. package/tests/client/basic/basic.components.test.ripple +28 -28
  32. package/tests/client/basic/basic.errors.test.ripple +46 -18
  33. package/tests/client/basic/basic.events.test.ripple +37 -37
  34. package/tests/client/basic/basic.get-set.test.ripple +6 -6
  35. package/tests/client/basic/basic.reactivity.test.ripple +58 -203
  36. package/tests/client/basic/basic.rendering.test.ripple +19 -19
  37. package/tests/client/basic/basic.utilities.test.ripple +3 -3
  38. package/tests/client/boundaries.test.ripple +12 -12
  39. package/tests/client/compiler/__snapshots__/compiler.assignments.test.ripple.snap +5 -5
  40. package/tests/client/compiler/compiler.assignments.test.ripple +19 -19
  41. package/tests/client/compiler/compiler.basic.test.ripple +46 -27
  42. package/tests/client/compiler/compiler.tracked-access.test.ripple +2 -2
  43. package/tests/client/composite/composite.dynamic-components.test.ripple +9 -9
  44. package/tests/client/composite/composite.props.test.ripple +14 -16
  45. package/tests/client/composite/composite.reactivity.test.ripple +69 -70
  46. package/tests/client/composite/composite.render.test.ripple +3 -3
  47. package/tests/client/computed-properties.test.ripple +4 -4
  48. package/tests/client/date.test.ripple +42 -42
  49. package/tests/client/dynamic-elements.test.ripple +44 -45
  50. package/tests/client/events.test.ripple +70 -70
  51. package/tests/client/for.test.ripple +25 -25
  52. package/tests/client/head.test.ripple +19 -19
  53. package/tests/client/html.test.ripple +3 -3
  54. package/tests/client/input-value.test.ripple +84 -84
  55. package/tests/client/lazy-destructuring.test.ripple +138 -26
  56. package/tests/client/map.test.ripple +16 -16
  57. package/tests/client/media-query.test.ripple +7 -7
  58. package/tests/client/portal.test.ripple +11 -11
  59. package/tests/client/ref.test.ripple +4 -4
  60. package/tests/client/return.test.ripple +52 -52
  61. package/tests/client/set.test.ripple +6 -6
  62. package/tests/client/svg.test.ripple +5 -5
  63. package/tests/client/switch.test.ripple +44 -44
  64. package/tests/client/try.test.ripple +5 -5
  65. package/tests/client/url/url.derived.test.ripple +6 -6
  66. package/tests/client/url-search-params/url-search-params.derived.test.ripple +8 -8
  67. package/tests/client/url-search-params/url-search-params.iteration.test.ripple +10 -10
  68. package/tests/client/url-search-params/url-search-params.mutation.test.ripple +10 -10
  69. package/tests/client/url-search-params/url-search-params.retrieval.test.ripple +18 -18
  70. package/tests/client/url-search-params/url-search-params.serialization.test.ripple +2 -2
  71. package/tests/hydration/compiled/client/events.js +25 -25
  72. package/tests/hydration/compiled/client/for.js +70 -66
  73. package/tests/hydration/compiled/client/head.js +25 -25
  74. package/tests/hydration/compiled/client/hmr.js +2 -2
  75. package/tests/hydration/compiled/client/html.js +3 -3
  76. package/tests/hydration/compiled/client/if-children.js +24 -24
  77. package/tests/hydration/compiled/client/if.js +18 -18
  78. package/tests/hydration/compiled/client/mixed-control-flow.js +9 -9
  79. package/tests/hydration/compiled/client/portal.js +3 -3
  80. package/tests/hydration/compiled/client/reactivity.js +16 -16
  81. package/tests/hydration/compiled/client/return.js +40 -40
  82. package/tests/hydration/compiled/client/switch.js +12 -12
  83. package/tests/hydration/compiled/server/events.js +19 -19
  84. package/tests/hydration/compiled/server/for.js +41 -41
  85. package/tests/hydration/compiled/server/head.js +26 -26
  86. package/tests/hydration/compiled/server/hmr.js +2 -2
  87. package/tests/hydration/compiled/server/html.js +2 -2
  88. package/tests/hydration/compiled/server/if-children.js +16 -16
  89. package/tests/hydration/compiled/server/if.js +11 -11
  90. package/tests/hydration/compiled/server/mixed-control-flow.js +6 -6
  91. package/tests/hydration/compiled/server/portal.js +2 -2
  92. package/tests/hydration/compiled/server/reactivity.js +16 -16
  93. package/tests/hydration/compiled/server/return.js +25 -25
  94. package/tests/hydration/compiled/server/switch.js +8 -8
  95. package/tests/hydration/components/events.ripple +25 -25
  96. package/tests/hydration/components/for.ripple +66 -66
  97. package/tests/hydration/components/head.ripple +16 -16
  98. package/tests/hydration/components/hmr.ripple +2 -2
  99. package/tests/hydration/components/html.ripple +3 -3
  100. package/tests/hydration/components/if-children.ripple +24 -24
  101. package/tests/hydration/components/if.ripple +18 -18
  102. package/tests/hydration/components/mixed-control-flow.ripple +9 -9
  103. package/tests/hydration/components/portal.ripple +3 -3
  104. package/tests/hydration/components/reactivity.ripple +16 -16
  105. package/tests/hydration/components/return.ripple +40 -40
  106. package/tests/hydration/components/switch.ripple +20 -20
  107. package/tests/server/await.test.ripple +3 -3
  108. package/tests/server/basic.attributes.test.ripple +34 -34
  109. package/tests/server/basic.components.test.ripple +10 -10
  110. package/tests/server/basic.test.ripple +38 -40
  111. package/tests/server/compiler.test.ripple +22 -0
  112. package/tests/server/composite.props.test.ripple +12 -14
  113. package/tests/server/dynamic-elements.test.ripple +15 -15
  114. package/tests/server/head.test.ripple +11 -11
  115. package/tests/server/lazy-destructuring.test.ripple +92 -13
  116. package/tsconfig.typecheck.json +4 -0
  117. package/types/index.d.ts +0 -19
  118. package/tests/client/__snapshots__/tracked-expression.test.ripple.snap +0 -34
  119. package/tests/client/tracked-expression.test.ripple +0 -26
@@ -109,7 +109,7 @@ describe('use value()', () => {
109
109
  const text = track('');
110
110
 
111
111
  effect(() => {
112
- logs.push('text changed', @text);
112
+ logs.push('text changed', text.value);
113
113
  });
114
114
 
115
115
  <input type="text" {ref bindValue(text)} />
@@ -155,7 +155,7 @@ describe('use value()', () => {
155
155
  const text = track('foo');
156
156
 
157
157
  effect(() => {
158
- logs.push('text changed', @text);
158
+ logs.push('text changed', text.value);
159
159
  });
160
160
 
161
161
  <input type="text" {ref bindValue(text)} />
@@ -201,7 +201,7 @@ describe('use value()', () => {
201
201
 
202
202
  <div>
203
203
  <input type="text" {ref bindValue(text)} />
204
- <button onClick={() => (@text = 'updated')}>{'Update'}</button>
204
+ <button onClick={() => (text.value = 'updated')}>{'Update'}</button>
205
205
  </div>
206
206
  }
207
207
  render(App);
@@ -248,7 +248,7 @@ describe('use value()', () => {
248
248
  const value = track(false);
249
249
 
250
250
  effect(() => {
251
- logs.push('checked changed', @value);
251
+ logs.push('checked changed', value.value);
252
252
  });
253
253
 
254
254
  <input type="checkbox" {ref bindChecked(value)} />
@@ -294,7 +294,7 @@ describe('use value()', () => {
294
294
 
295
295
  <div>
296
296
  <input type="checkbox" {ref bindChecked(value)} />
297
- <button onClick={() => (@value = true)}>{'Check'}</button>
297
+ <button onClick={() => (value.value = true)}>{'Check'}</button>
298
298
  </div>
299
299
  }
300
300
  render(App);
@@ -344,7 +344,7 @@ describe('use value()', () => {
344
344
  const value = track(false);
345
345
 
346
346
  effect(() => {
347
- logs.push('indeterminate changed', @value);
347
+ logs.push('indeterminate changed', value.value);
348
348
  });
349
349
 
350
350
  <input type="checkbox" {ref bindIndeterminate(value)} />
@@ -398,7 +398,7 @@ describe('use value()', () => {
398
398
 
399
399
  <div>
400
400
  <input type="checkbox" {ref bindIndeterminate(value)} />
401
- <button onClick={() => (@value = true)}>{'Set Indeterminate'}</button>
401
+ <button onClick={() => (value.value = true)}>{'Set Indeterminate'}</button>
402
402
  </div>
403
403
  }
404
404
  render(App);
@@ -451,7 +451,7 @@ describe('use value()', () => {
451
451
  const select = track('2');
452
452
 
453
453
  effect(() => {
454
- logs.push('select changed', @select);
454
+ logs.push('select changed', select.value);
455
455
  });
456
456
 
457
457
  <select {ref bindValue(select)}>
@@ -511,7 +511,7 @@ describe('use value()', () => {
511
511
  <option value="2">{'Two'}</option>
512
512
  <option value="3">{'Three'}</option>
513
513
  </select>
514
- <button onClick={() => (@select = '3')}>{'Update'}</button>
514
+ <button onClick={() => (select.value = '3')}>{'Update'}</button>
515
515
  </div>
516
516
  }
517
517
 
@@ -564,7 +564,7 @@ describe('use value()', () => {
564
564
  const selected = track(['b']);
565
565
 
566
566
  effect(() => {
567
- logs.push('selected changed', JSON.stringify(@selected));
567
+ logs.push('selected changed', JSON.stringify(selected.value));
568
568
  });
569
569
 
570
570
  <div>
@@ -672,7 +672,7 @@ describe('use value()', () => {
672
672
  const selected = track('b');
673
673
 
674
674
  effect(() => {
675
- logs.push('selected changed', @selected);
675
+ logs.push('selected changed', selected.value);
676
676
  });
677
677
 
678
678
  <div>
@@ -782,7 +782,7 @@ describe('use value()', () => {
782
782
  <input type="checkbox" value="a" {ref bindGroup(selected)} />
783
783
  <input type="checkbox" value="b" {ref bindGroup(selected)} />
784
784
  <input type="checkbox" value="c" {ref bindGroup(selected)} />
785
- <button onClick={() => (@selected = ['b', 'c'])}>{'Update'}</button>
785
+ <button onClick={() => (selected.value = ['b', 'c'])}>{'Update'}</button>
786
786
  </div>
787
787
  }
788
788
 
@@ -854,7 +854,7 @@ describe('use value()', () => {
854
854
  <input type="radio" name="test" value="a" {ref bindGroup(selected)} />
855
855
  <input type="radio" name="test" value="b" {ref bindGroup(selected)} />
856
856
  <input type="radio" name="test" value="c" {ref bindGroup(selected)} />
857
- <button onClick={() => (@selected = 'c')}>{'Update'}</button>
857
+ <button onClick={() => (selected.value = 'c')}>{'Update'}</button>
858
858
  </div>
859
859
  }
860
860
 
@@ -1027,7 +1027,7 @@ describe('use value()', () => {
1027
1027
 
1028
1028
  <div>
1029
1029
  <input type="number" {ref bindValue(value)} />
1030
- <button onClick={() => (@value = 99)}>{'Update'}</button>
1030
+ <button onClick={() => (value.value = 99)}>{'Update'}</button>
1031
1031
  </div>
1032
1032
  }
1033
1033
 
@@ -1123,7 +1123,7 @@ describe('use value()', () => {
1123
1123
 
1124
1124
  <div>
1125
1125
  <input type="range" min="0" max="100" {ref bindValue(value)} />
1126
- <button onClick={() => (@value = 80)}>{'Update'}</button>
1126
+ <button onClick={() => (value.value = 80)}>{'Update'}</button>
1127
1127
  </div>
1128
1128
  }
1129
1129
 
@@ -1259,7 +1259,7 @@ describe('use value()', () => {
1259
1259
 
1260
1260
  <div>
1261
1261
  <input type="date" {ref bindValue(value)} />
1262
- <button onClick={() => (@value = '2025-12-31')}>{'Update'}</button>
1262
+ <button onClick={() => (value.value = '2025-12-31')}>{'Update'}</button>
1263
1263
  </div>
1264
1264
  }
1265
1265
 
@@ -1339,7 +1339,7 @@ describe('use value()', () => {
1339
1339
  component App() {
1340
1340
  const selected = track(['2', '3']);
1341
1341
 
1342
- <select multiple {ref bindValue(() => @selected, (v) => (@selected = v))}>
1342
+ <select multiple {ref bindValue(() => selected.value, (v) => (selected.value = v))}>
1343
1343
  <option value="1">{'One'}</option>
1344
1344
  <option value="2">{'Two'}</option>
1345
1345
  <option value="3">{'Three'}</option>
@@ -1380,7 +1380,7 @@ describe('use value()', () => {
1380
1380
  <option value="3">{'Three'}</option>
1381
1381
  <option value="4">{'Four'}</option>
1382
1382
  </select>
1383
- <button onClick={() => (@selected = ['2', '4'])}>{'Update'}</button>
1383
+ <button onClick={() => (selected.value = ['2', '4'])}>{'Update'}</button>
1384
1384
  </div>
1385
1385
  }
1386
1386
 
@@ -1412,13 +1412,13 @@ describe('use value()', () => {
1412
1412
  const selected = track(['1']);
1413
1413
 
1414
1414
  <div>
1415
- <select multiple {ref bindValue(() => @selected, (v) => (@selected = v))}>
1415
+ <select multiple {ref bindValue(() => selected.value, (v) => (selected.value = v))}>
1416
1416
  <option value="1">{'One'}</option>
1417
1417
  <option value="2">{'Two'}</option>
1418
1418
  <option value="3">{'Three'}</option>
1419
1419
  <option value="4">{'Four'}</option>
1420
1420
  </select>
1421
- <button onClick={() => (@selected = ['2', '4'])}>{'Update'}</button>
1421
+ <button onClick={() => (selected.value = ['2', '4'])}>{'Update'}</button>
1422
1422
  </div>
1423
1423
  }
1424
1424
 
@@ -1468,7 +1468,7 @@ describe('use value()', () => {
1468
1468
  component App() {
1469
1469
  const selected = track();
1470
1470
 
1471
- <select {ref bindValue(() => @selected, (v) => (@selected = v))}>
1471
+ <select {ref bindValue(() => selected.value, (v) => (selected.value = v))}>
1472
1472
  <option value="1">{'One'}</option>
1473
1473
  <option value="2">{'Two'}</option>
1474
1474
  </select>
@@ -1505,7 +1505,7 @@ describe('use value()', () => {
1505
1505
  component App() {
1506
1506
  const selected = track();
1507
1507
 
1508
- <select {ref bindValue(() => @selected, (v) => (@selected = v))}>
1508
+ <select {ref bindValue(() => selected.value, (v) => (selected.value = v))}>
1509
1509
  <option value="1" disabled>{'One'}</option>
1510
1510
  <option value="2">{'Two'}</option>
1511
1511
  </select>
@@ -1545,7 +1545,7 @@ describe('use value()', () => {
1545
1545
  component App() {
1546
1546
  const selected = track(2);
1547
1547
 
1548
- <select {ref bindValue(() => @selected, (v) => (@selected = v))}>
1548
+ <select {ref bindValue(() => selected.value, (v) => (selected.value = v))}>
1549
1549
  <option value={1}>{'One'}</option>
1550
1550
  <option value={2}>{'Two'}</option>
1551
1551
  <option value={3}>{'Three'}</option>
@@ -1570,7 +1570,7 @@ describe('use value()', () => {
1570
1570
  const selected = track(2);
1571
1571
 
1572
1572
  effect(() => {
1573
- logs.push(@selected);
1573
+ logs.push(selected.value);
1574
1574
  });
1575
1575
 
1576
1576
  <select {ref bindValue(selected)}>
@@ -1676,7 +1676,7 @@ describe('use value()', () => {
1676
1676
  );
1677
1677
 
1678
1678
  <input type="text" {ref bindValue(value)} />
1679
- <div>{@value}</div>
1679
+ <div>{value.value}</div>
1680
1680
  }
1681
1681
 
1682
1682
  render(App);
@@ -1712,7 +1712,7 @@ describe('use value()', () => {
1712
1712
  );
1713
1713
 
1714
1714
  <input type="text" {ref bindValue(value)} />
1715
- <div>{@value}</div>
1715
+ <div>{value.value}</div>
1716
1716
  }
1717
1717
 
1718
1718
  render(App);
@@ -1748,7 +1748,7 @@ describe('use value()', () => {
1748
1748
  );
1749
1749
 
1750
1750
  <input type="text" {ref bindValue(value)} />
1751
- <div>{@value}</div>
1751
+ <div>{value.value}</div>
1752
1752
  }
1753
1753
 
1754
1754
  render(App);
@@ -1786,16 +1786,16 @@ describe('use value()', () => {
1786
1786
  );
1787
1787
 
1788
1788
  effect(() => {
1789
- @value;
1789
+ value.value;
1790
1790
 
1791
1791
  untrack(() => {
1792
- if (@value.includes('a')) {
1793
- @value = @value.replace(/a/g, '');
1792
+ if (value.value.includes('a')) {
1793
+ value.value = value.value.replace(/a/g, '');
1794
1794
  }
1795
1795
  });
1796
1796
  });
1797
1797
  <input type="text" {ref bindValue(value)} />
1798
- <div>{@value}</div>
1798
+ <div>{value.value}</div>
1799
1799
  }
1800
1800
 
1801
1801
  render(App);
@@ -1821,13 +1821,13 @@ describe('use value()', () => {
1821
1821
  let value = track('');
1822
1822
  const value_accessors: [GetFunction<string>, SetFunction<string>] = [
1823
1823
  () => {
1824
- return @value;
1824
+ return value.value;
1825
1825
  },
1826
1826
  (v: string) => {
1827
1827
  if (v.includes('c')) {
1828
1828
  v = v.replace(/c/g, '');
1829
1829
  }
1830
- @value = v;
1830
+ value.value = v;
1831
1831
  },
1832
1832
  ];
1833
1833
 
@@ -1853,13 +1853,13 @@ describe('use value()', () => {
1853
1853
  let value = track('');
1854
1854
  const value_accessors: [GetFunction<string>, SetFunction<string>] = [
1855
1855
  () => {
1856
- if (@value.includes('c')) {
1857
- return @value.replace(/c/g, '');
1856
+ if (value.value.includes('c')) {
1857
+ return value.value.replace(/c/g, '');
1858
1858
  }
1859
- return @value;
1859
+ return value.value;
1860
1860
  },
1861
1861
  (v: string) => {
1862
- @value = v;
1862
+ value.value = v;
1863
1863
  },
1864
1864
  ];
1865
1865
 
@@ -1887,13 +1887,13 @@ describe('use value()', () => {
1887
1887
  let value = track('');
1888
1888
  const value_accessors: [GetFunction<string>, SetFunction<string>] = [
1889
1889
  () => {
1890
- return @value.replace(/[c,b]+/g, '');
1890
+ return value.value.replace(/[c,b]+/g, '');
1891
1891
  },
1892
1892
  (v: string) => {
1893
1893
  if (v.includes('c')) {
1894
1894
  v = v.replace(/c/g, '');
1895
1895
  }
1896
- @value = v;
1896
+ value.value = v;
1897
1897
  },
1898
1898
  ];
1899
1899
 
@@ -1922,22 +1922,22 @@ describe('use value()', () => {
1922
1922
  let value = track('');
1923
1923
  const value_accessors: [GetFunction<string>, SetFunction<string>] = [
1924
1924
  () => {
1925
- return @value;
1925
+ return value.value;
1926
1926
  },
1927
1927
  (v: string) => {
1928
1928
  if (v.includes('c')) {
1929
1929
  v = v.replace(/c/g, '');
1930
1930
  }
1931
- @value = v;
1931
+ value.value = v;
1932
1932
  },
1933
1933
  ];
1934
1934
 
1935
1935
  effect(() => {
1936
- @value;
1936
+ value.value;
1937
1937
 
1938
1938
  untrack(() => {
1939
- if (@value.includes('a')) {
1940
- @value = @value.replace(/a/g, '');
1939
+ if (value.value.includes('a')) {
1940
+ value.value = value.value.replace(/a/g, '');
1941
1941
  }
1942
1942
  });
1943
1943
  });
@@ -1966,7 +1966,7 @@ describe('use value()', () => {
1966
1966
  let value = track('');
1967
1967
  const value_accessors: [GetFunction<string>, SetFunction<string>] = [
1968
1968
  () => {
1969
- return @value;
1969
+ return value.value;
1970
1970
  },
1971
1971
  (v: string) => {
1972
1972
  // no update
@@ -1974,7 +1974,7 @@ describe('use value()', () => {
1974
1974
  ];
1975
1975
 
1976
1976
  <input type="text" {ref bindValue(...value_accessors)} />
1977
- <div>{@value}</div>
1977
+ <div>{value.value}</div>
1978
1978
  }
1979
1979
 
1980
1980
  render(App);
@@ -2009,7 +2009,7 @@ describe('use value()', () => {
2009
2009
  );
2010
2010
 
2011
2011
  <input type="text" {ref bindValue(value)} />
2012
- <div>{@value}</div>
2012
+ <div>{value.value}</div>
2013
2013
  }
2014
2014
 
2015
2015
  render(App);
@@ -2038,7 +2038,7 @@ describe('bindClientWidth and bindClientHeight', () => {
2038
2038
  const width = track(0);
2039
2039
 
2040
2040
  effect(() => {
2041
- logs.push(@width);
2041
+ logs.push(width.value);
2042
2042
  });
2043
2043
 
2044
2044
  <div {ref bindClientWidth(width)} />
@@ -2100,7 +2100,7 @@ describe('bindClientWidth and bindClientHeight', () => {
2100
2100
  const height = track(0);
2101
2101
 
2102
2102
  effect(() => {
2103
- logs.push(@height);
2103
+ logs.push(height.value);
2104
2104
  });
2105
2105
 
2106
2106
  <div {ref bindClientHeight(height)} />
@@ -2163,7 +2163,7 @@ describe('bindOffsetWidth and bindOffsetHeight', () => {
2163
2163
  const width = track(0);
2164
2164
 
2165
2165
  effect(() => {
2166
- logs.push(@width);
2166
+ logs.push(width.value);
2167
2167
  });
2168
2168
 
2169
2169
  <div {ref bindOffsetWidth(width)} />
@@ -2225,7 +2225,7 @@ describe('bindOffsetWidth and bindOffsetHeight', () => {
2225
2225
  const height = track(0);
2226
2226
 
2227
2227
  effect(() => {
2228
- logs.push(@height);
2228
+ logs.push(height.value);
2229
2229
  });
2230
2230
 
2231
2231
  <div {ref bindOffsetHeight(height)} />
@@ -2288,7 +2288,7 @@ describe('bindContentRect', () => {
2288
2288
  const rect = track(null);
2289
2289
 
2290
2290
  effect(() => {
2291
- if (@rect) logs.push(@rect);
2291
+ if (rect.value) logs.push(rect.value);
2292
2292
  });
2293
2293
 
2294
2294
  <div {ref bindContentRect(rect)} />
@@ -2356,7 +2356,7 @@ describe('bindContentBoxSize', () => {
2356
2356
  const boxSize = track(null);
2357
2357
 
2358
2358
  effect(() => {
2359
- if (@boxSize) logs.push(@boxSize);
2359
+ if (boxSize.value) logs.push(boxSize.value);
2360
2360
  });
2361
2361
 
2362
2362
  <div {ref bindContentBoxSize(boxSize)} />
@@ -2425,7 +2425,7 @@ describe('bindBorderBoxSize', () => {
2425
2425
  const boxSize = track(null);
2426
2426
 
2427
2427
  effect(() => {
2428
- if (@boxSize) logs.push(@boxSize);
2428
+ if (boxSize.value) logs.push(boxSize.value);
2429
2429
  });
2430
2430
 
2431
2431
  <div {ref bindBorderBoxSize(boxSize)} />
@@ -2494,7 +2494,7 @@ describe('bindDevicePixelContentBoxSize', () => {
2494
2494
  const boxSize = track(null);
2495
2495
 
2496
2496
  effect(() => {
2497
- if (@boxSize) logs.push(@boxSize);
2497
+ if (boxSize.value) logs.push(boxSize.value);
2498
2498
  });
2499
2499
 
2500
2500
  <div {ref bindDevicePixelContentBoxSize(boxSize)} />
@@ -2563,7 +2563,7 @@ describe('bindInnerHTML', () => {
2563
2563
  const html = track('<strong>Hello</strong>');
2564
2564
 
2565
2565
  effect(() => {
2566
- logs.push(@html);
2566
+ logs.push(html.value);
2567
2567
  });
2568
2568
 
2569
2569
  <div contenteditable="true" {ref bindInnerHTML(html)} />
@@ -2617,7 +2617,7 @@ describe('bindInnerHTML', () => {
2617
2617
 
2618
2618
  <div>
2619
2619
  <div contenteditable="true" {ref bindInnerHTML(html)} />
2620
- <button onClick={() => (@html = '<p>Updated</p>')}>{'Update'}</button>
2620
+ <button onClick={() => (html.value = '<p>Updated</p>')}>{'Update'}</button>
2621
2621
  </div>
2622
2622
  }
2623
2623
 
@@ -2704,7 +2704,7 @@ describe('bindInnerText', () => {
2704
2704
  const text = track('Hello World');
2705
2705
 
2706
2706
  effect(() => {
2707
- logs.push(@text);
2707
+ logs.push(text.value);
2708
2708
  });
2709
2709
 
2710
2710
  <div contenteditable="true" {ref bindInnerText(text)} />
@@ -2757,7 +2757,7 @@ describe('bindInnerText', () => {
2757
2757
 
2758
2758
  <div>
2759
2759
  <div contenteditable="true" {ref bindInnerText(text)} />
2760
- <button onClick={() => (@text = 'After')}>{'Update'}</button>
2760
+ <button onClick={() => (text.value = 'After')}>{'Update'}</button>
2761
2761
  </div>
2762
2762
  }
2763
2763
 
@@ -2811,7 +2811,7 @@ describe('bindTextContent', () => {
2811
2811
  const text = track('Sample text');
2812
2812
 
2813
2813
  effect(() => {
2814
- logs.push(@text);
2814
+ logs.push(text.value);
2815
2815
  });
2816
2816
 
2817
2817
  <div contenteditable="true" {ref bindTextContent(text)} />
@@ -2865,7 +2865,7 @@ describe('bindTextContent', () => {
2865
2865
 
2866
2866
  <div>
2867
2867
  <div contenteditable="true" {ref bindTextContent(text)} />
2868
- <button onClick={() => (@text = 'End')}>{'Update'}</button>
2868
+ <button onClick={() => (text.value = 'End')}>{'Update'}</button>
2869
2869
  </div>
2870
2870
  }
2871
2871
 
@@ -2955,7 +2955,7 @@ describe('bindNode', () => {
2955
2955
  const nodeRef = track(null);
2956
2956
 
2957
2957
  effect(() => {
2958
- capturedNode = @nodeRef;
2958
+ capturedNode = nodeRef.value;
2959
2959
  });
2960
2960
 
2961
2961
  <div {ref bindNode(nodeRef)} />
@@ -2998,8 +2998,8 @@ describe('bindNode', () => {
2998
2998
  <input type="text" {ref bindNode(inputRef)} />
2999
2999
  <button
3000
3000
  onClick={() => {
3001
- if (@inputRef) {
3002
- @inputRef.value = 'Set by ref';
3001
+ if (inputRef.value) {
3002
+ inputRef.value.value = 'Set by ref';
3003
3003
  }
3004
3004
  }}
3005
3005
  >
@@ -3068,8 +3068,8 @@ describe('bindFiles', () => {
3068
3068
  const files = track(null);
3069
3069
 
3070
3070
  effect(() => {
3071
- @files;
3072
- if (@files) logs.push(@files);
3071
+ files.value;
3072
+ if (files.value) logs.push(files.value);
3073
3073
  });
3074
3074
 
3075
3075
  <input type="file" multiple {ref bindFiles(files)} />
@@ -3154,7 +3154,7 @@ describe('bindFiles', () => {
3154
3154
  const files = track<FileList | null>(null);
3155
3155
 
3156
3156
  effect(() => {
3157
- capturedFiles = @files;
3157
+ capturedFiles = files.value;
3158
3158
  });
3159
3159
 
3160
3160
  <input type="file" {ref bindFiles(files)} />
@@ -3228,16 +3228,16 @@ describe('bindFiles', () => {
3228
3228
  const input = track<HTMLInputElement | null>(null);
3229
3229
 
3230
3230
  effect(() => {
3231
- capturedFiles = @files;
3231
+ capturedFiles = files.value;
3232
3232
  });
3233
3233
 
3234
3234
  <div>
3235
3235
  <input type="file" {ref bindFiles<FileList>(files)} {ref bindNode(input)} />
3236
3236
  <button
3237
3237
  onClick={() => {
3238
- if (@input) {
3239
- @input.files = new DataTransfer().files;
3240
- @input.dispatchEvent(new Event('change', { bubbles: true }));
3238
+ if (input.value) {
3239
+ input.value.files = new DataTransfer().files;
3240
+ input.value.dispatchEvent(new Event('change', { bubbles: true }));
3241
3241
  }
3242
3242
  }}
3243
3243
  >
@@ -3292,9 +3292,9 @@ describe('bindFiles', () => {
3292
3292
  />
3293
3293
  <button
3294
3294
  onClick={() => {
3295
- if (@input) {
3296
- @input.files = new DataTransfer().files;
3297
- @input.dispatchEvent(new Event('change', { bubbles: true }));
3295
+ if (input.value) {
3296
+ input.value.files = new DataTransfer().files;
3297
+ input.value.dispatchEvent(new Event('change', { bubbles: true }));
3298
3298
  }
3299
3299
  }}
3300
3300
  >
@@ -3337,9 +3337,9 @@ describe('bindFiles', () => {
3337
3337
  const files = track<FileList | null>(null);
3338
3338
 
3339
3339
  effect(() => {
3340
- @files;
3341
- if (@files) {
3342
- fileCounts.push(@files.length);
3340
+ files.value;
3341
+ if (files.value) {
3342
+ fileCounts.push(files.value.length);
3343
3343
  }
3344
3344
  });
3345
3345
 
@@ -3438,9 +3438,9 @@ describe('bindFiles', () => {
3438
3438
  const files = track<FileList | null>(null);
3439
3439
 
3440
3440
  effect(() => {
3441
- @files;
3442
- if (@files && @files.length > 0) {
3443
- capturedFile = @files[0];
3441
+ files.value;
3442
+ if (files.value && files.value.length > 0) {
3443
+ capturedFile = files.value[0];
3444
3444
  }
3445
3445
  });
3446
3446
 
@@ -3514,7 +3514,7 @@ describe('bindFiles', () => {
3514
3514
  const files = track(null);
3515
3515
 
3516
3516
  effect(() => {
3517
- logs.push(@files);
3517
+ logs.push(files.value);
3518
3518
  });
3519
3519
 
3520
3520
  <input type="file" {ref bindFiles(files)} />
@@ -3769,7 +3769,7 @@ describe('error handling', () => {
3769
3769
  expect(() => {
3770
3770
  component App() {
3771
3771
  const value = track('');
3772
- <input type="text" {ref bindValue(() => @value)} />
3772
+ <input type="text" {ref bindValue(() => value.value)} />
3773
3773
  }
3774
3774
  render(App);
3775
3775
  }).toThrow(
@@ -3782,7 +3782,7 @@ describe('error handling', () => {
3782
3782
  component App() {
3783
3783
  const value = track('');
3784
3784
  // @ts-expect-error invalid argument
3785
- <input type="text" {ref bindValue(() => @value, 5)} />
3785
+ <input type="text" {ref bindValue(() => value.value, 5)} />
3786
3786
  }
3787
3787
  render(App);
3788
3788
  }).toThrow(
@@ -3818,7 +3818,7 @@ describe('error handling', () => {
3818
3818
  component App() {
3819
3819
  const value = track('2');
3820
3820
 
3821
- <select multiple {ref bindValue(() => @value, (v) => (@value = v))}>
3821
+ <select multiple {ref bindValue(() => value.value, (v) => (value.value = v))}>
3822
3822
  <option value="1">{'One'}</option>
3823
3823
  <option value="2">{'Two'}</option>
3824
3824
  </select>