@rasamjs/core 0.2.0 → 0.3.1

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 (178) hide show
  1. package/API.md +14 -4
  2. package/CHANGELOG.md +71 -0
  3. package/COMPONENTS.md +229 -0
  4. package/README.md +46 -6
  5. package/RELEASING.md +4 -2
  6. package/dist/advanced.d.ts +1 -1
  7. package/dist/advanced.d.ts.map +1 -1
  8. package/dist/catalog/fragment.d.ts +2 -2
  9. package/dist/catalog/fragment.d.ts.map +1 -1
  10. package/dist/catalog/fragment.js.map +1 -1
  11. package/dist/changes/derived.d.ts +10 -0
  12. package/dist/changes/derived.d.ts.map +1 -0
  13. package/dist/changes/derived.js +14 -0
  14. package/dist/changes/derived.js.map +1 -0
  15. package/dist/changes/restore.d.ts.map +1 -1
  16. package/dist/changes/restore.js +76 -28
  17. package/dist/changes/restore.js.map +1 -1
  18. package/dist/changes/service.d.ts +5 -0
  19. package/dist/changes/service.d.ts.map +1 -1
  20. package/dist/changes/service.js +18 -4
  21. package/dist/changes/service.js.map +1 -1
  22. package/dist/changes/state.d.ts.map +1 -1
  23. package/dist/changes/state.js +33 -27
  24. package/dist/changes/state.js.map +1 -1
  25. package/dist/changes.d.ts.map +1 -1
  26. package/dist/changes.js +20 -4
  27. package/dist/changes.js.map +1 -1
  28. package/dist/components/changes.d.ts +34 -0
  29. package/dist/components/changes.d.ts.map +1 -0
  30. package/dist/components/changes.js +119 -0
  31. package/dist/components/changes.js.map +1 -0
  32. package/dist/components/component.d.ts +62 -0
  33. package/dist/components/component.d.ts.map +1 -0
  34. package/dist/components/component.js +355 -0
  35. package/dist/components/component.js.map +1 -0
  36. package/dist/components/decorators.d.ts +7 -0
  37. package/dist/components/decorators.d.ts.map +1 -0
  38. package/dist/components/decorators.js +83 -0
  39. package/dist/components/decorators.js.map +1 -0
  40. package/dist/components/metadata.d.ts +10 -0
  41. package/dist/components/metadata.d.ts.map +1 -0
  42. package/dist/components/metadata.js +85 -0
  43. package/dist/components/metadata.js.map +1 -0
  44. package/dist/components/registry.d.ts +24 -0
  45. package/dist/components/registry.d.ts.map +1 -0
  46. package/dist/components/registry.js +78 -0
  47. package/dist/components/registry.js.map +1 -0
  48. package/dist/components/types.d.ts +54 -0
  49. package/dist/components/types.d.ts.map +1 -0
  50. package/dist/components/types.js +2 -0
  51. package/dist/components/types.js.map +1 -0
  52. package/dist/components/view.d.ts +9 -0
  53. package/dist/components/view.d.ts.map +1 -0
  54. package/dist/components/view.js +104 -0
  55. package/dist/components/view.js.map +1 -0
  56. package/dist/components.d.ts +6 -0
  57. package/dist/components.d.ts.map +1 -0
  58. package/dist/components.js +5 -0
  59. package/dist/components.js.map +1 -0
  60. package/dist/core/node.d.ts +7 -0
  61. package/dist/core/node.d.ts.map +1 -1
  62. package/dist/core/node.js +30 -0
  63. package/dist/core/node.js.map +1 -1
  64. package/dist/interchange/clone.d.ts.map +1 -1
  65. package/dist/interchange/clone.js +3 -2
  66. package/dist/interchange/clone.js.map +1 -1
  67. package/dist/interchange/reconstruct.d.ts.map +1 -1
  68. package/dist/interchange/reconstruct.js +16 -12
  69. package/dist/interchange/reconstruct.js.map +1 -1
  70. package/dist/interchange/references.d.ts.map +1 -1
  71. package/dist/interchange/references.js +10 -4
  72. package/dist/interchange/references.js.map +1 -1
  73. package/dist/mixins/parent-internals.d.ts +6 -0
  74. package/dist/mixins/parent-internals.d.ts.map +1 -1
  75. package/dist/mixins/parent-internals.js +34 -0
  76. package/dist/mixins/parent-internals.js.map +1 -1
  77. package/dist/mixins/parent.d.ts.map +1 -1
  78. package/dist/mixins/parent.js +6 -1
  79. package/dist/mixins/parent.js.map +1 -1
  80. package/dist/mixins/types.d.ts +2 -2
  81. package/dist/mixins/types.d.ts.map +1 -1
  82. package/dist/resources/references.d.ts +2 -0
  83. package/dist/resources/references.d.ts.map +1 -1
  84. package/dist/resources/references.js +3 -3
  85. package/dist/resources/references.js.map +1 -1
  86. package/dist/services/catalog.d.ts.map +1 -1
  87. package/dist/services/catalog.js +5 -3
  88. package/dist/services/catalog.js.map +1 -1
  89. package/dist/services/claims.d.ts +7 -0
  90. package/dist/services/claims.d.ts.map +1 -0
  91. package/dist/services/claims.js +11 -0
  92. package/dist/services/claims.js.map +1 -0
  93. package/dist/services/defs-manager.d.ts +2 -0
  94. package/dist/services/defs-manager.d.ts.map +1 -1
  95. package/dist/services/defs-manager.js +4 -0
  96. package/dist/services/defs-manager.js.map +1 -1
  97. package/dist/services/element-key.d.ts +4 -0
  98. package/dist/services/element-key.d.ts.map +1 -0
  99. package/dist/services/element-key.js +12 -0
  100. package/dist/services/element-key.js.map +1 -0
  101. package/dist/services/initialization.d.ts +7 -0
  102. package/dist/services/initialization.d.ts.map +1 -0
  103. package/dist/services/initialization.js +27 -0
  104. package/dist/services/initialization.js.map +1 -0
  105. package/dist/services/registry.d.ts +8 -0
  106. package/dist/services/registry.d.ts.map +1 -1
  107. package/dist/services/registry.js +47 -10
  108. package/dist/services/registry.js.map +1 -1
  109. package/dist/services/types.d.ts +17 -0
  110. package/dist/services/types.d.ts.map +1 -1
  111. package/dist/template/parts.d.ts +12 -6
  112. package/dist/template/parts.d.ts.map +1 -1
  113. package/dist/template/parts.js +36 -29
  114. package/dist/template/parts.js.map +1 -1
  115. package/dist/template/render.d.ts +6 -7
  116. package/dist/template/render.d.ts.map +1 -1
  117. package/dist/template/render.js +188 -44
  118. package/dist/template/render.js.map +1 -1
  119. package/dist/template/svg-tag.d.ts +5 -1
  120. package/dist/template/svg-tag.d.ts.map +1 -1
  121. package/dist/template/svg-tag.js.map +1 -1
  122. package/dist/text/internals.d.ts +1 -0
  123. package/dist/text/internals.d.ts.map +1 -1
  124. package/dist/types/common.d.ts +27 -0
  125. package/dist/types/common.d.ts.map +1 -1
  126. package/package.json +10 -1
  127. package/reports/adoption.json +20 -20
  128. package/reports/animation-benchmark.json +613 -613
  129. package/reports/benchmark.json +27 -27
  130. package/reports/change-groups-benchmark.json +471 -0
  131. package/reports/components-benchmark-before.json +10 -0
  132. package/reports/components-benchmark.json +10 -0
  133. package/reports/creation.json +26 -26
  134. package/reports/interchange-benchmark.json +85 -85
  135. package/reports/phase-3-core-after.json +40 -0
  136. package/reports/phase-3-core-before.json +40 -0
  137. package/reports/public-api-contract.json +335 -17
  138. package/reports/size-components.json +103 -0
  139. package/reports/size-parity.json +50 -34
  140. package/reports/size.json +7 -4
  141. package/reports/svgjs-comparison.json +3049 -3049
  142. package/reports/svgjs-comparison.md +15 -15
  143. package/reports/svgjs-parity-current.json +133 -46
  144. package/src/advanced.ts +1 -1
  145. package/src/catalog/fragment.ts +2 -2
  146. package/src/changes/derived.ts +19 -0
  147. package/src/changes/restore.ts +78 -36
  148. package/src/changes/service.ts +23 -8
  149. package/src/changes/state.ts +37 -28
  150. package/src/changes.ts +24 -5
  151. package/src/components/changes.ts +131 -0
  152. package/src/components/component.ts +401 -0
  153. package/src/components/decorators.ts +106 -0
  154. package/src/components/metadata.ts +111 -0
  155. package/src/components/registry.ts +79 -0
  156. package/src/components/types.ts +66 -0
  157. package/src/components/view.ts +123 -0
  158. package/src/components.ts +15 -0
  159. package/src/core/node.ts +32 -1
  160. package/src/interchange/clone.ts +3 -2
  161. package/src/interchange/reconstruct.ts +16 -12
  162. package/src/interchange/references.ts +12 -4
  163. package/src/mixins/parent-internals.ts +37 -0
  164. package/src/mixins/parent.ts +13 -4
  165. package/src/mixins/types.ts +2 -2
  166. package/src/resources/references.ts +5 -5
  167. package/src/services/catalog.ts +5 -3
  168. package/src/services/claims.ts +14 -0
  169. package/src/services/defs-manager.ts +5 -0
  170. package/src/services/element-key.ts +14 -0
  171. package/src/services/initialization.ts +25 -0
  172. package/src/services/registry.ts +49 -10
  173. package/src/services/types.ts +21 -0
  174. package/src/template/parts.ts +54 -39
  175. package/src/template/render.ts +211 -54
  176. package/src/template/svg-tag.ts +6 -1
  177. package/src/text/internals.ts +1 -0
  178. package/src/types/common.ts +29 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "fixture": "scripts/benchmark-interchange.mjs",
3
- "date": "2026-11-06T20:46:45.233Z",
3
+ "date": "2026-11-09T00:19:03.540Z",
4
4
  "node": "v24.21.0",
5
5
  "os": "win32 10.0.26200",
6
6
  "cpu": "Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz",
@@ -13,134 +13,134 @@
13
13
  {
14
14
  "count": 250,
15
15
  "clone": {
16
- "medianMs": 14.36850000000004,
17
- "p95Ms": 25.575800000000072,
16
+ "medianMs": 13.801600000000008,
17
+ "p95Ms": 26.596499999999992,
18
18
  "samples": [
19
- 17.1789,
20
- 14.36850000000004,
21
- 12.423800000000028,
22
- 23.65319999999997,
23
- 12.553499999999985,
24
- 11.732599999999934,
25
- 25.575800000000072
19
+ 16.804300000000012,
20
+ 14.826599999999985,
21
+ 12.900499999999965,
22
+ 26.596499999999992,
23
+ 13.801600000000008,
24
+ 12.117400000000089,
25
+ 11.866700000000037
26
26
  ]
27
27
  },
28
28
  "export": {
29
- "medianMs": 6.32000000000005,
30
- "p95Ms": 58.25649999999996,
29
+ "medianMs": 6.6515000000000555,
30
+ "p95Ms": 39.918499999999995,
31
31
  "samples": [
32
- 20.354299999999967,
33
- 58.25649999999996,
34
- 5.651700000000005,
35
- 6.599199999999996,
36
- 6.32000000000005,
37
- 5.825900000000047,
38
- 5.610500000000002
32
+ 21.331099999999992,
33
+ 39.918499999999995,
34
+ 6.246700000000033,
35
+ 6.6515000000000555,
36
+ 9.967499999999973,
37
+ 6.115700000000061,
38
+ 6.126800000000003
39
39
  ]
40
40
  },
41
41
  "import": {
42
- "medianMs": 22.17560000000003,
43
- "p95Ms": 40.97770000000003,
42
+ "medianMs": 22.910300000000007,
43
+ "p95Ms": 44.42280000000005,
44
44
  "samples": [
45
- 24.787900000000036,
46
- 22.17560000000003,
47
- 20.307199999999966,
48
- 40.97770000000003,
49
- 34.016200000000026,
50
- 21.543699999999944,
51
- 19.876000000000204
45
+ 26.073800000000006,
46
+ 22.910300000000007,
47
+ 21.05529999999999,
48
+ 44.42280000000005,
49
+ 37.23599999999999,
50
+ 21.78139999999985,
51
+ 20.30469999999991
52
52
  ]
53
53
  }
54
54
  },
55
55
  {
56
56
  "count": 500,
57
57
  "clone": {
58
- "medianMs": 36.39790000000016,
59
- "p95Ms": 67.91699999999992,
58
+ "medianMs": 38.22199999999998,
59
+ "p95Ms": 46.85059999999976,
60
60
  "samples": [
61
- 36.39790000000016,
62
- 21.91450000000009,
63
- 67.91699999999992,
64
- 37.66339999999991,
65
- 36.05690000000004,
66
- 21.885700000000043,
67
- 38.212999999999965
61
+ 38.22199999999998,
62
+ 24.006599999999935,
63
+ 39.43209999999999,
64
+ 27.8587,
65
+ 26.175700000000006,
66
+ 40.165700000000015,
67
+ 46.85059999999976
68
68
  ]
69
69
  },
70
70
  "export": {
71
- "medianMs": 12.001600000000053,
72
- "p95Ms": 26.850000000000136,
71
+ "medianMs": 11.796800000000076,
72
+ "p95Ms": 26.000299999999925,
73
73
  "samples": [
74
- 11.47589999999991,
75
- 25.010999999999967,
76
- 12.001600000000053,
77
- 11.017700000000104,
78
- 10.565200000000004,
79
- 26.850000000000136,
80
- 26.13059999999996
74
+ 11.73109999999997,
75
+ 26.000299999999925,
76
+ 20.644300000000158,
77
+ 11.796800000000076,
78
+ 11.430200000000013,
79
+ 10.826800000000276,
80
+ 14.467699999999695
81
81
  ]
82
82
  },
83
83
  "import": {
84
- "medianMs": 40.34269999999992,
85
- "p95Ms": 58.42690000000016,
84
+ "medianMs": 55.515499999999975,
85
+ "p95Ms": 86.88159999999993,
86
86
  "samples": [
87
- 53.97910000000002,
88
- 37.91249999999991,
89
- 40.34269999999992,
90
- 58.42690000000016,
91
- 53.251900000000205,
92
- 37.406600000000026,
93
- 37.35789999999997
87
+ 56.710199999999986,
88
+ 39.712299999999914,
89
+ 86.88159999999993,
90
+ 55.61920000000009,
91
+ 55.102800000000116,
92
+ 55.515499999999975,
93
+ 55.20650000000023
94
94
  ]
95
95
  }
96
96
  },
97
97
  {
98
98
  "count": 1000,
99
99
  "clone": {
100
- "medianMs": 60.02669999999989,
101
- "p95Ms": 103.83410000000003,
100
+ "medianMs": 64.6826000000001,
101
+ "p95Ms": 119.50990000000002,
102
102
  "samples": [
103
- 61.13799999999992,
104
- 60.02669999999989,
105
- 103.83410000000003,
106
- 59.36310000000003,
107
- 44.89000000000033,
108
- 60.998499999999694,
109
- 57.07690000000002
103
+ 62.30619999999999,
104
+ 74.79019999999991,
105
+ 63.97600000000011,
106
+ 119.50990000000002,
107
+ 70.01380000000017,
108
+ 47.566100000000006,
109
+ 64.6826000000001
110
110
  ]
111
111
  },
112
112
  "export": {
113
- "medianMs": 33.539800000000014,
114
- "p95Ms": 36.14080000000013,
113
+ "medianMs": 32.56039999999939,
114
+ "p95Ms": 41.743900000000394,
115
115
  "samples": [
116
- 34.11229999999978,
117
- 21.14890000000014,
118
- 22.764500000000226,
119
- 36.14080000000013,
120
- 32.53719999999976,
121
- 34.116799999999785,
122
- 33.539800000000014
116
+ 22.147399999999834,
117
+ 36.7786000000001,
118
+ 22.361899999999878,
119
+ 24.33829999999989,
120
+ 35.57529999999997,
121
+ 32.56039999999939,
122
+ 41.743900000000394
123
123
  ]
124
124
  },
125
125
  "import": {
126
- "medianMs": 108.88810000000012,
127
- "p95Ms": 136.57619999999997,
126
+ "medianMs": 122.93449999999984,
127
+ "p95Ms": 144.63730000000032,
128
128
  "samples": [
129
- 108.88810000000012,
130
- 136.57619999999997,
131
- 123.6588999999999,
132
- 117.4067,
133
- 104.08899999999994,
134
- 88.07529999999997,
135
- 100.63900000000012
129
+ 144.63730000000032,
130
+ 122.93449999999984,
131
+ 136.31550000000016,
132
+ 123.61909999999989,
133
+ 116.08020000000033,
134
+ 107.46960000000036,
135
+ 105.79030000000057
136
136
  ]
137
137
  }
138
138
  }
139
139
  ],
140
140
  "growth": {
141
- "clone": 4.1776594634095225,
142
- "export": 5.306930379746795,
143
- "import": 4.910266238568515
141
+ "clone": 4.686601553443083,
142
+ "export": 4.895196572201627,
143
+ "import": 5.365905291506432
144
144
  },
145
145
  "maxGrowth": 8
146
146
  }
@@ -0,0 +1,40 @@
1
+ {
2
+ "fixture": "scripts/benchmark.mjs",
3
+ "date": "2026-11-08T18:52:46.753Z",
4
+ "browser": "Chromium 156.0.8078.4",
5
+ "node": "v24.21.0",
6
+ "os": "win32 10.0.26200",
7
+ "cpu": "Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz",
8
+ "logicalCpus": 8,
9
+ "count": 1000,
10
+ "warmup": 20,
11
+ "iterations": 100,
12
+ "medianMs": 0.3999999761581421,
13
+ "p95Ms": 0.6000000238418579,
14
+ "targetMedianMs": 16,
15
+ "includes": "logical mutations and synchronous DOM commit; excludes paint",
16
+ "timings": [
17
+ 0.19999992847442627, 0.2999999523162842, 0.2999999523162842, 0.2999999523162842,
18
+ 0.2999999523162842, 0.2999999523162842, 0.2999999523162842, 0.2999999523162842,
19
+ 0.2999999523162842, 0.2999999523162842, 0.2999999523162842, 0.30000007152557373,
20
+ 0.30000007152557373, 0.30000007152557373, 0.30000007152557373, 0.30000007152557373,
21
+ 0.30000007152557373, 0.30000007152557373, 0.30000007152557373, 0.30000007152557373,
22
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
23
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
24
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
25
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
26
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
27
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
28
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
29
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
30
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
31
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
32
+ 0.3999999761581421, 0.40000009536743164, 0.40000009536743164, 0.40000009536743164,
33
+ 0.40000009536743164, 0.40000009536743164, 0.40000009536743164, 0.40000009536743164,
34
+ 0.40000009536743164, 0.40000009536743164, 0.40000009536743164, 0.40000009536743164,
35
+ 0.40000009536743164, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
36
+ 0.5999999046325684, 0.5999999046325684, 0.6000000238418579, 0.6000000238418579,
37
+ 0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6999999284744263,
38
+ 0.6999999284744263, 0.7999999523162842, 0.9000000953674316, 1
39
+ ]
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "fixture": "scripts/benchmark.mjs",
3
+ "date": "2026-11-08T18:12:16.837Z",
4
+ "browser": "Chromium 156.0.8078.4",
5
+ "node": "v24.21.0",
6
+ "os": "win32 10.0.26200",
7
+ "cpu": "Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz",
8
+ "logicalCpus": 8,
9
+ "count": 1000,
10
+ "warmup": 20,
11
+ "iterations": 100,
12
+ "medianMs": 0.5,
13
+ "p95Ms": 1,
14
+ "targetMedianMs": 16,
15
+ "includes": "logical mutations and synchronous DOM commit; excludes paint",
16
+ "timings": [
17
+ 0.2999999523162842, 0.2999999523162842, 0.2999999523162842, 0.2999999523162842,
18
+ 0.2999999523162842, 0.2999999523162842, 0.30000007152557373, 0.30000007152557373,
19
+ 0.30000007152557373, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
20
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
21
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
22
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
23
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
24
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
25
+ 0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
26
+ 0.3999999761581421, 0.40000009536743164, 0.40000009536743164, 0.40000009536743164,
27
+ 0.40000009536743164, 0.40000009536743164, 0.40000009536743164, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
28
+ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5999999046325684, 0.5999999046325684,
29
+ 0.5999999046325684, 0.5999999046325684, 0.6000000238418579, 0.6000000238418579,
30
+ 0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
31
+ 0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
32
+ 0.6999999284744263, 0.6999999284744263, 0.6999999284744263, 0.6999999284744263,
33
+ 0.7000000476837158, 0.7000000476837158, 0.7000000476837158, 0.7000000476837158,
34
+ 0.7000000476837158, 0.7000000476837158, 0.7000000476837158, 0.7000000476837158,
35
+ 0.7999999523162842, 0.7999999523162842, 0.7999999523162842, 0.8000000715255737,
36
+ 0.8000000715255737, 0.8000000715255737, 0.8000000715255737, 0.8000000715255737,
37
+ 0.8999999761581421, 0.8999999761581421, 1, 1, 1, 1, 1.100000023841858, 1.2999999523162842,
38
+ 1.2999999523162842
39
+ ]
40
+ }