@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.
- package/API.md +14 -4
- package/CHANGELOG.md +71 -0
- package/COMPONENTS.md +229 -0
- package/README.md +46 -6
- package/RELEASING.md +4 -2
- package/dist/advanced.d.ts +1 -1
- package/dist/advanced.d.ts.map +1 -1
- package/dist/catalog/fragment.d.ts +2 -2
- package/dist/catalog/fragment.d.ts.map +1 -1
- package/dist/catalog/fragment.js.map +1 -1
- package/dist/changes/derived.d.ts +10 -0
- package/dist/changes/derived.d.ts.map +1 -0
- package/dist/changes/derived.js +14 -0
- package/dist/changes/derived.js.map +1 -0
- package/dist/changes/restore.d.ts.map +1 -1
- package/dist/changes/restore.js +76 -28
- package/dist/changes/restore.js.map +1 -1
- package/dist/changes/service.d.ts +5 -0
- package/dist/changes/service.d.ts.map +1 -1
- package/dist/changes/service.js +18 -4
- package/dist/changes/service.js.map +1 -1
- package/dist/changes/state.d.ts.map +1 -1
- package/dist/changes/state.js +33 -27
- package/dist/changes/state.js.map +1 -1
- package/dist/changes.d.ts.map +1 -1
- package/dist/changes.js +20 -4
- package/dist/changes.js.map +1 -1
- package/dist/components/changes.d.ts +34 -0
- package/dist/components/changes.d.ts.map +1 -0
- package/dist/components/changes.js +119 -0
- package/dist/components/changes.js.map +1 -0
- package/dist/components/component.d.ts +62 -0
- package/dist/components/component.d.ts.map +1 -0
- package/dist/components/component.js +355 -0
- package/dist/components/component.js.map +1 -0
- package/dist/components/decorators.d.ts +7 -0
- package/dist/components/decorators.d.ts.map +1 -0
- package/dist/components/decorators.js +83 -0
- package/dist/components/decorators.js.map +1 -0
- package/dist/components/metadata.d.ts +10 -0
- package/dist/components/metadata.d.ts.map +1 -0
- package/dist/components/metadata.js +85 -0
- package/dist/components/metadata.js.map +1 -0
- package/dist/components/registry.d.ts +24 -0
- package/dist/components/registry.d.ts.map +1 -0
- package/dist/components/registry.js +78 -0
- package/dist/components/registry.js.map +1 -0
- package/dist/components/types.d.ts +54 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/types.js +2 -0
- package/dist/components/types.js.map +1 -0
- package/dist/components/view.d.ts +9 -0
- package/dist/components/view.d.ts.map +1 -0
- package/dist/components/view.js +104 -0
- package/dist/components/view.js.map +1 -0
- package/dist/components.d.ts +6 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +5 -0
- package/dist/components.js.map +1 -0
- package/dist/core/node.d.ts +7 -0
- package/dist/core/node.d.ts.map +1 -1
- package/dist/core/node.js +30 -0
- package/dist/core/node.js.map +1 -1
- package/dist/interchange/clone.d.ts.map +1 -1
- package/dist/interchange/clone.js +3 -2
- package/dist/interchange/clone.js.map +1 -1
- package/dist/interchange/reconstruct.d.ts.map +1 -1
- package/dist/interchange/reconstruct.js +16 -12
- package/dist/interchange/reconstruct.js.map +1 -1
- package/dist/interchange/references.d.ts.map +1 -1
- package/dist/interchange/references.js +10 -4
- package/dist/interchange/references.js.map +1 -1
- package/dist/mixins/parent-internals.d.ts +6 -0
- package/dist/mixins/parent-internals.d.ts.map +1 -1
- package/dist/mixins/parent-internals.js +34 -0
- package/dist/mixins/parent-internals.js.map +1 -1
- package/dist/mixins/parent.d.ts.map +1 -1
- package/dist/mixins/parent.js +6 -1
- package/dist/mixins/parent.js.map +1 -1
- package/dist/mixins/types.d.ts +2 -2
- package/dist/mixins/types.d.ts.map +1 -1
- package/dist/resources/references.d.ts +2 -0
- package/dist/resources/references.d.ts.map +1 -1
- package/dist/resources/references.js +3 -3
- package/dist/resources/references.js.map +1 -1
- package/dist/services/catalog.d.ts.map +1 -1
- package/dist/services/catalog.js +5 -3
- package/dist/services/catalog.js.map +1 -1
- package/dist/services/claims.d.ts +7 -0
- package/dist/services/claims.d.ts.map +1 -0
- package/dist/services/claims.js +11 -0
- package/dist/services/claims.js.map +1 -0
- package/dist/services/defs-manager.d.ts +2 -0
- package/dist/services/defs-manager.d.ts.map +1 -1
- package/dist/services/defs-manager.js +4 -0
- package/dist/services/defs-manager.js.map +1 -1
- package/dist/services/element-key.d.ts +4 -0
- package/dist/services/element-key.d.ts.map +1 -0
- package/dist/services/element-key.js +12 -0
- package/dist/services/element-key.js.map +1 -0
- package/dist/services/initialization.d.ts +7 -0
- package/dist/services/initialization.d.ts.map +1 -0
- package/dist/services/initialization.js +27 -0
- package/dist/services/initialization.js.map +1 -0
- package/dist/services/registry.d.ts +8 -0
- package/dist/services/registry.d.ts.map +1 -1
- package/dist/services/registry.js +47 -10
- package/dist/services/registry.js.map +1 -1
- package/dist/services/types.d.ts +17 -0
- package/dist/services/types.d.ts.map +1 -1
- package/dist/template/parts.d.ts +12 -6
- package/dist/template/parts.d.ts.map +1 -1
- package/dist/template/parts.js +36 -29
- package/dist/template/parts.js.map +1 -1
- package/dist/template/render.d.ts +6 -7
- package/dist/template/render.d.ts.map +1 -1
- package/dist/template/render.js +188 -44
- package/dist/template/render.js.map +1 -1
- package/dist/template/svg-tag.d.ts +5 -1
- package/dist/template/svg-tag.d.ts.map +1 -1
- package/dist/template/svg-tag.js.map +1 -1
- package/dist/text/internals.d.ts +1 -0
- package/dist/text/internals.d.ts.map +1 -1
- package/dist/types/common.d.ts +27 -0
- package/dist/types/common.d.ts.map +1 -1
- package/package.json +10 -1
- package/reports/adoption.json +20 -20
- package/reports/animation-benchmark.json +613 -613
- package/reports/benchmark.json +27 -27
- package/reports/change-groups-benchmark.json +471 -0
- package/reports/components-benchmark-before.json +10 -0
- package/reports/components-benchmark.json +10 -0
- package/reports/creation.json +26 -26
- package/reports/interchange-benchmark.json +85 -85
- package/reports/phase-3-core-after.json +40 -0
- package/reports/phase-3-core-before.json +40 -0
- package/reports/public-api-contract.json +335 -17
- package/reports/size-components.json +103 -0
- package/reports/size-parity.json +50 -34
- package/reports/size.json +7 -4
- package/reports/svgjs-comparison.json +3049 -3049
- package/reports/svgjs-comparison.md +15 -15
- package/reports/svgjs-parity-current.json +133 -46
- package/src/advanced.ts +1 -1
- package/src/catalog/fragment.ts +2 -2
- package/src/changes/derived.ts +19 -0
- package/src/changes/restore.ts +78 -36
- package/src/changes/service.ts +23 -8
- package/src/changes/state.ts +37 -28
- package/src/changes.ts +24 -5
- package/src/components/changes.ts +131 -0
- package/src/components/component.ts +401 -0
- package/src/components/decorators.ts +106 -0
- package/src/components/metadata.ts +111 -0
- package/src/components/registry.ts +79 -0
- package/src/components/types.ts +66 -0
- package/src/components/view.ts +123 -0
- package/src/components.ts +15 -0
- package/src/core/node.ts +32 -1
- package/src/interchange/clone.ts +3 -2
- package/src/interchange/reconstruct.ts +16 -12
- package/src/interchange/references.ts +12 -4
- package/src/mixins/parent-internals.ts +37 -0
- package/src/mixins/parent.ts +13 -4
- package/src/mixins/types.ts +2 -2
- package/src/resources/references.ts +5 -5
- package/src/services/catalog.ts +5 -3
- package/src/services/claims.ts +14 -0
- package/src/services/defs-manager.ts +5 -0
- package/src/services/element-key.ts +14 -0
- package/src/services/initialization.ts +25 -0
- package/src/services/registry.ts +49 -10
- package/src/services/types.ts +21 -0
- package/src/template/parts.ts +54 -39
- package/src/template/render.ts +211 -54
- package/src/template/svg-tag.ts +6 -1
- package/src/text/internals.ts +1 -0
- package/src/types/common.ts +29 -0
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
# Rasam vs SVG.js
|
|
2
2
|
|
|
3
|
-
SVG.js 3.2.8; Rasam 0.
|
|
3
|
+
SVG.js 3.2.8; Rasam 0.3.1 workspace. CPU: Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz.
|
|
4
4
|
|
|
5
5
|
All timings below are medians in milliseconds. Ratios above 1 mean Rasam took longer.
|
|
6
6
|
|
|
7
7
|
| Browser | Workload | Nodes | Samples | Rasam | SVG.js | Rasam / SVG.js |
|
|
8
8
|
| --- | --- | ---: | ---: | ---: | ---: | ---: |
|
|
9
|
-
| chromium 156.0.8078.4 | creation | 2000 | 15 | 9.
|
|
10
|
-
| chromium 156.0.8078.4 | creation | 8000 | 15 |
|
|
11
|
-
| chromium 156.0.8078.4 | fill | 1000 | 100 | 0.
|
|
12
|
-
| chromium 156.0.8078.4 | repeated-fill | 1000 | 100 | 0.
|
|
13
|
-
| chromium 156.0.8078.4 | pointer-one | 8000 | 40 | 3.
|
|
14
|
-
| chromium 156.0.8078.4 | pointer-all | 8000 | 40 | 3.
|
|
15
|
-
| firefox 157.0 | creation | 2000 | 15 |
|
|
16
|
-
| firefox 157.0 | creation | 8000 | 15 |
|
|
17
|
-
| firefox 157.0 | fill | 1000 | 100 | 1.
|
|
18
|
-
| firefox 157.0 | repeated-fill | 1000 | 100 | 1.60 | 4.
|
|
19
|
-
| firefox 157.0 | pointer-one | 8000 | 40 | 4.
|
|
20
|
-
| firefox 157.0 | pointer-all | 8000 | 40 | 4.
|
|
9
|
+
| chromium 156.0.8078.4 | creation | 2000 | 15 | 9.50 | 10.90 | 0.87 |
|
|
10
|
+
| chromium 156.0.8078.4 | creation | 8000 | 15 | 37.80 | 40.00 | 0.95 |
|
|
11
|
+
| chromium 156.0.8078.4 | fill | 1000 | 100 | 0.49 | 1.31 | 0.37 |
|
|
12
|
+
| chromium 156.0.8078.4 | repeated-fill | 1000 | 100 | 0.70 | 3.56 | 0.20 |
|
|
13
|
+
| chromium 156.0.8078.4 | pointer-one | 8000 | 40 | 3.87 | 3.68 | 1.05 |
|
|
14
|
+
| chromium 156.0.8078.4 | pointer-all | 8000 | 40 | 3.83 | 3.66 | 1.05 |
|
|
15
|
+
| firefox 157.0 | creation | 2000 | 15 | 23.00 | 21.00 | 1.10 |
|
|
16
|
+
| firefox 157.0 | creation | 8000 | 15 | 91.00 | 82.00 | 1.11 |
|
|
17
|
+
| firefox 157.0 | fill | 1000 | 100 | 1.30 | 1.50 | 0.87 |
|
|
18
|
+
| firefox 157.0 | repeated-fill | 1000 | 100 | 1.60 | 4.50 | 0.36 |
|
|
19
|
+
| firefox 157.0 | pointer-one | 8000 | 40 | 4.20 | 3.40 | 1.24 |
|
|
20
|
+
| firefox 157.0 | pointer-all | 8000 | 40 | 4.00 | 3.40 | 1.18 |
|
|
21
21
|
| webkit 27.2 | creation | 2000 | 15 | 14.00 | 18.00 | 0.78 |
|
|
22
|
-
| webkit 27.2 | creation | 8000 | 15 |
|
|
23
|
-
| webkit 27.2 | fill | 1000 | 100 | 0.
|
|
22
|
+
| webkit 27.2 | creation | 8000 | 15 | 58.00 | 73.00 | 0.79 |
|
|
23
|
+
| webkit 27.2 | fill | 1000 | 100 | 0.70 | 1.60 | 0.44 |
|
|
24
24
|
| webkit 27.2 | repeated-fill | 1000 | 100 | 0.90 | 4.90 | 0.18 |
|
|
25
25
|
| webkit 27.2 | pointer-one | 8000 | 40 | 4.20 | 3.40 | 1.24 |
|
|
26
26
|
| webkit 27.2 | pointer-all | 8000 | 40 | 4.20 | 3.40 | 1.24 |
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-11-
|
|
3
|
-
"revision": "
|
|
2
|
+
"generatedAt": "2026-11-09T00:19:11.349Z",
|
|
3
|
+
"revision": "124aaed60d894f51033904e9959bbf4286d0f3e9",
|
|
4
4
|
"dirtyTree": [
|
|
5
|
-
"M packages/
|
|
5
|
+
"M packages/editor/reports/release-readiness.json",
|
|
6
|
+
" M packages/history/reports/history-performance.json",
|
|
7
|
+
" M packages/history/reports/release-readiness.json",
|
|
8
|
+
" M packages/rasam/reports/adoption.json",
|
|
9
|
+
" M packages/rasam/reports/animation-benchmark.json",
|
|
10
|
+
" M packages/rasam/reports/benchmark.json",
|
|
6
11
|
" M packages/rasam/reports/creation.json",
|
|
7
|
-
" M packages/rasam/reports/interchange-benchmark.json"
|
|
12
|
+
" M packages/rasam/reports/interchange-benchmark.json",
|
|
13
|
+
" M packages/rasam/reports/release-readiness.json",
|
|
14
|
+
" M packages/rasam/reports/svgjs-comparison.json",
|
|
15
|
+
" M packages/rasam/reports/svgjs-comparison.md",
|
|
16
|
+
" M packages/rasam/reports/svgjs-parity-current.json",
|
|
17
|
+
" M packages/selection/reports/marquee-benchmark.json",
|
|
18
|
+
" M packages/selection/reports/release-readiness.json",
|
|
19
|
+
" M packages/tools/reports/drag-benchmark.json",
|
|
20
|
+
" M packages/tools/reports/release-readiness.json"
|
|
8
21
|
],
|
|
9
22
|
"sourceFiles": [
|
|
10
23
|
{
|
|
@@ -17,7 +30,7 @@
|
|
|
17
30
|
},
|
|
18
31
|
{
|
|
19
32
|
"path": "src/advanced.ts",
|
|
20
|
-
"sha256": "
|
|
33
|
+
"sha256": "876db673243af9895b06bf801b6f993a974173c36312959ca4cfbe53bd6d2955"
|
|
21
34
|
},
|
|
22
35
|
{
|
|
23
36
|
"path": "src/animation.ts",
|
|
@@ -61,7 +74,7 @@
|
|
|
61
74
|
},
|
|
62
75
|
{
|
|
63
76
|
"path": "src/catalog/fragment.ts",
|
|
64
|
-
"sha256": "
|
|
77
|
+
"sha256": "637ecc9d275a80456e64544b0e140559def48ed007e40549d19ff922564c8705"
|
|
65
78
|
},
|
|
66
79
|
{
|
|
67
80
|
"path": "src/catalog/namespaces.ts",
|
|
@@ -77,7 +90,11 @@
|
|
|
77
90
|
},
|
|
78
91
|
{
|
|
79
92
|
"path": "src/changes.ts",
|
|
80
|
-
"sha256": "
|
|
93
|
+
"sha256": "5195b06c773565fb7fcc79b14249eaef931e0fa79d0f7631f5ad1bec50a7f6af"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"path": "src/changes/derived.ts",
|
|
97
|
+
"sha256": "95aa53801a72a0cc869cd706760c85b73295339b13e71b1e956bd4f9b3708332"
|
|
81
98
|
},
|
|
82
99
|
{
|
|
83
100
|
"path": "src/changes/mutation.ts",
|
|
@@ -85,20 +102,52 @@
|
|
|
85
102
|
},
|
|
86
103
|
{
|
|
87
104
|
"path": "src/changes/restore.ts",
|
|
88
|
-
"sha256": "
|
|
105
|
+
"sha256": "f2f3f749888b62b44a0667a7141b72786d488622740882841a6f5f08be8e3a9a"
|
|
89
106
|
},
|
|
90
107
|
{
|
|
91
108
|
"path": "src/changes/service.ts",
|
|
92
|
-
"sha256": "
|
|
109
|
+
"sha256": "0384e84ab0fcaef38f67bd2167c498e1188fc639ef23f94aeed45e3895c606a5"
|
|
93
110
|
},
|
|
94
111
|
{
|
|
95
112
|
"path": "src/changes/state.ts",
|
|
96
|
-
"sha256": "
|
|
113
|
+
"sha256": "889ace35fb6ca0ddb11960c43e24b64bfb96697165b8d9ea5006aae99b0ec18a"
|
|
97
114
|
},
|
|
98
115
|
{
|
|
99
116
|
"path": "src/changes/types.ts",
|
|
100
117
|
"sha256": "1158dc5615c62c5647cfbf3609ea7df1466819fa200b368e48a70259a30eec33"
|
|
101
118
|
},
|
|
119
|
+
{
|
|
120
|
+
"path": "src/components.ts",
|
|
121
|
+
"sha256": "b1aeab2e742cfd83e3423ee4ba344a03e93cf3b90fa49a0ee3b1ba6a669b6c6f"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"path": "src/components/changes.ts",
|
|
125
|
+
"sha256": "8a519d45736851efb55af63885a67763b289d429d47eae73deab2379a214a6c2"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"path": "src/components/component.ts",
|
|
129
|
+
"sha256": "ad6bb7e84448ec513b5762f7630fa1385954c38032f1c1f48933406600aeb992"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"path": "src/components/decorators.ts",
|
|
133
|
+
"sha256": "5a94b137073c4f41b7bdea53871b9b8270aa731bfe49963b3209717b35673937"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"path": "src/components/metadata.ts",
|
|
137
|
+
"sha256": "695399455449d223bb6c83b1707868bc85042ed5acd93bfc6d9d9d77e052a92a"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"path": "src/components/registry.ts",
|
|
141
|
+
"sha256": "fff5b210a8b0d56c4a7759d8c39f9cecb60830cb93d32dee41fb2b9484ebbba3"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"path": "src/components/types.ts",
|
|
145
|
+
"sha256": "0d99c682e52d374f7ff85b4f98696edc24ed18a6867f614feb5bdb1b0a9236d5"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"path": "src/components/view.ts",
|
|
149
|
+
"sha256": "9fea613d700a78e5f87a177bab41036a841448b5cc3f81055c8debbd67a82fd6"
|
|
150
|
+
},
|
|
102
151
|
{
|
|
103
152
|
"path": "src/core/attribute-validation.ts",
|
|
104
153
|
"sha256": "9edfa9c74a71c98af542aa3f8f219773c221a8c125c8bcfbdc25383f6be17d96"
|
|
@@ -117,7 +166,7 @@
|
|
|
117
166
|
},
|
|
118
167
|
{
|
|
119
168
|
"path": "src/core/node.ts",
|
|
120
|
-
"sha256": "
|
|
169
|
+
"sha256": "7af76b8d575591c86b40eedc4c861af96ec6c46d9ac6bf44b8da1e1362f55d46"
|
|
121
170
|
},
|
|
122
171
|
{
|
|
123
172
|
"path": "src/core/shape.ts",
|
|
@@ -365,7 +414,7 @@
|
|
|
365
414
|
},
|
|
366
415
|
{
|
|
367
416
|
"path": "src/interchange/clone.ts",
|
|
368
|
-
"sha256": "
|
|
417
|
+
"sha256": "32a6f14d6e9a7f8326ffc67f607c7da76a8fae888fd961ab9f933336458168f1"
|
|
369
418
|
},
|
|
370
419
|
{
|
|
371
420
|
"path": "src/interchange/dom.ts",
|
|
@@ -381,11 +430,11 @@
|
|
|
381
430
|
},
|
|
382
431
|
{
|
|
383
432
|
"path": "src/interchange/reconstruct.ts",
|
|
384
|
-
"sha256": "
|
|
433
|
+
"sha256": "f7f4bddba6ed478d2e6dfb4680048081e6fe2a2076d5246458ed078b3161a2d0"
|
|
385
434
|
},
|
|
386
435
|
{
|
|
387
436
|
"path": "src/interchange/references.ts",
|
|
388
|
-
"sha256": "
|
|
437
|
+
"sha256": "f0f67b66b889b66e8fd047684f63a174aa9e7203448d6626fdfeb67c360ff7da"
|
|
389
438
|
},
|
|
390
439
|
{
|
|
391
440
|
"path": "src/interchange/snapshot.ts",
|
|
@@ -449,11 +498,11 @@
|
|
|
449
498
|
},
|
|
450
499
|
{
|
|
451
500
|
"path": "src/mixins/parent-internals.ts",
|
|
452
|
-
"sha256": "
|
|
501
|
+
"sha256": "48491d5b332801cfbd833be2c497f543dfd49a9be25fd6deef7118dd8407eff1"
|
|
453
502
|
},
|
|
454
503
|
{
|
|
455
504
|
"path": "src/mixins/parent.ts",
|
|
456
|
-
"sha256": "
|
|
505
|
+
"sha256": "40d5cc4bc2e114c71b46c4b010f3a8dd973ee26e54b5e80d57ead78498ecceba"
|
|
457
506
|
},
|
|
458
507
|
{
|
|
459
508
|
"path": "src/mixins/placement.ts",
|
|
@@ -489,7 +538,7 @@
|
|
|
489
538
|
},
|
|
490
539
|
{
|
|
491
540
|
"path": "src/mixins/types.ts",
|
|
492
|
-
"sha256": "
|
|
541
|
+
"sha256": "43c0faf91768a5eb829044ad9fd947ec1332f074bd2d077e4c8c038a1084028f"
|
|
493
542
|
},
|
|
494
543
|
{
|
|
495
544
|
"path": "src/path/path-array.ts",
|
|
@@ -541,7 +590,7 @@
|
|
|
541
590
|
},
|
|
542
591
|
{
|
|
543
592
|
"path": "src/resources/references.ts",
|
|
544
|
-
"sha256": "
|
|
593
|
+
"sha256": "33180ab6f3a76be873c9dfb96cd72ae0f4ff3eb3b58ec34337c0114d5aa5b398"
|
|
545
594
|
},
|
|
546
595
|
{
|
|
547
596
|
"path": "src/resources/validation.ts",
|
|
@@ -553,7 +602,11 @@
|
|
|
553
602
|
},
|
|
554
603
|
{
|
|
555
604
|
"path": "src/services/catalog.ts",
|
|
556
|
-
"sha256": "
|
|
605
|
+
"sha256": "bd11868233bb9604062311cff9bfbacf2cf93e054dd979b5c0853e3b439ad7b2"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"path": "src/services/claims.ts",
|
|
609
|
+
"sha256": "b8db85df1c0f0806d30b6caccf20f1a94d14c2975a01b11e2ef5fa411080c817"
|
|
557
610
|
},
|
|
558
611
|
{
|
|
559
612
|
"path": "src/services/context.ts",
|
|
@@ -561,7 +614,15 @@
|
|
|
561
614
|
},
|
|
562
615
|
{
|
|
563
616
|
"path": "src/services/defs-manager.ts",
|
|
564
|
-
"sha256": "
|
|
617
|
+
"sha256": "627a17f2591a790180ec5e071d339d1dc81aaff5b01f5ef60378988e3b5d28d5"
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"path": "src/services/element-key.ts",
|
|
621
|
+
"sha256": "d12670cf6a6cd51998be574e17a5d6f34283a8a83eb376adf5ac6632d4650521"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"path": "src/services/initialization.ts",
|
|
625
|
+
"sha256": "dcd88bf5d2e881860c3d54be79af7258b37373100c5e97a6333f579a56bb6481"
|
|
565
626
|
},
|
|
566
627
|
{
|
|
567
628
|
"path": "src/services/mount.ts",
|
|
@@ -573,7 +634,7 @@
|
|
|
573
634
|
},
|
|
574
635
|
{
|
|
575
636
|
"path": "src/services/registry.ts",
|
|
576
|
-
"sha256": "
|
|
637
|
+
"sha256": "a6ad5e6fcc646b10349c29ed0163863b958892e2a008c033eec18fd658a53f1a"
|
|
577
638
|
},
|
|
578
639
|
{
|
|
579
640
|
"path": "src/services/scheduler.ts",
|
|
@@ -581,7 +642,7 @@
|
|
|
581
642
|
},
|
|
582
643
|
{
|
|
583
644
|
"path": "src/services/types.ts",
|
|
584
|
-
"sha256": "
|
|
645
|
+
"sha256": "965180eb8fbd1cf1a8a6958a74734f1cee28159c794e03ffbee9da3009f6ae53"
|
|
585
646
|
},
|
|
586
647
|
{
|
|
587
648
|
"path": "src/services/viewport.ts",
|
|
@@ -593,15 +654,15 @@
|
|
|
593
654
|
},
|
|
594
655
|
{
|
|
595
656
|
"path": "src/template/parts.ts",
|
|
596
|
-
"sha256": "
|
|
657
|
+
"sha256": "1ccd47288ac361ab07125a9e711bb8d399a067f1d8d7f07cb98c8feba560b8af"
|
|
597
658
|
},
|
|
598
659
|
{
|
|
599
660
|
"path": "src/template/render.ts",
|
|
600
|
-
"sha256": "
|
|
661
|
+
"sha256": "c8171b3ff00013d4fefd02a4cc29a9c4cb5bada096c5513871dd611fb1d79e41"
|
|
601
662
|
},
|
|
602
663
|
{
|
|
603
664
|
"path": "src/template/svg-tag.ts",
|
|
604
|
-
"sha256": "
|
|
665
|
+
"sha256": "caa9b0c305d64f11c7046d3a70a17450df0e152e84792ab046d28e17d36f7e55"
|
|
605
666
|
},
|
|
606
667
|
{
|
|
607
668
|
"path": "src/text.ts",
|
|
@@ -613,7 +674,7 @@
|
|
|
613
674
|
},
|
|
614
675
|
{
|
|
615
676
|
"path": "src/text/internals.ts",
|
|
616
|
-
"sha256": "
|
|
677
|
+
"sha256": "0db863e05948307ac1cffba308c3c4992c3fc8e171058ff89b622946b943a87a"
|
|
617
678
|
},
|
|
618
679
|
{
|
|
619
680
|
"path": "src/text/measure.ts",
|
|
@@ -661,7 +722,7 @@
|
|
|
661
722
|
},
|
|
662
723
|
{
|
|
663
724
|
"path": "src/types/common.ts",
|
|
664
|
-
"sha256": "
|
|
725
|
+
"sha256": "0d6a832507a1bb7614c54896fa1437fed796533345d5648f245924e3be133bde"
|
|
665
726
|
},
|
|
666
727
|
{
|
|
667
728
|
"path": "src/types/elements.ts",
|
|
@@ -677,7 +738,7 @@
|
|
|
677
738
|
},
|
|
678
739
|
{
|
|
679
740
|
"path": "../../bun.lock",
|
|
680
|
-
"sha256": "
|
|
741
|
+
"sha256": "b3789d00332812b09c75e008611f9bd5c7721c296c8a883a3c7a71cde94d3193"
|
|
681
742
|
}
|
|
682
743
|
],
|
|
683
744
|
"svgjs": "3.2.8",
|
|
@@ -927,6 +988,7 @@
|
|
|
927
988
|
"setValidatedAttributeValue",
|
|
928
989
|
"toggleClass",
|
|
929
990
|
"validateAttribute",
|
|
991
|
+
"withOwnChildren",
|
|
930
992
|
"writeAttribute",
|
|
931
993
|
"writeAttributes"
|
|
932
994
|
],
|
|
@@ -1086,6 +1148,7 @@
|
|
|
1086
1148
|
"setValidatedAttributeValue",
|
|
1087
1149
|
"toggleClass",
|
|
1088
1150
|
"validateAttribute",
|
|
1151
|
+
"withOwnChildren",
|
|
1089
1152
|
"writeAttribute",
|
|
1090
1153
|
"writeAttributes"
|
|
1091
1154
|
],
|
|
@@ -1240,6 +1303,7 @@
|
|
|
1240
1303
|
"setValidatedAttributeValue",
|
|
1241
1304
|
"toggleClass",
|
|
1242
1305
|
"validateAttribute",
|
|
1306
|
+
"withOwnChildren",
|
|
1243
1307
|
"writeAttribute",
|
|
1244
1308
|
"writeAttributes"
|
|
1245
1309
|
],
|
|
@@ -1253,6 +1317,7 @@
|
|
|
1253
1317
|
"assertCanDestroy",
|
|
1254
1318
|
"bind",
|
|
1255
1319
|
"clear",
|
|
1320
|
+
"consumersOf",
|
|
1256
1321
|
"ensureId",
|
|
1257
1322
|
"geometryConsumers",
|
|
1258
1323
|
"getDefs",
|
|
@@ -1418,6 +1483,7 @@
|
|
|
1418
1483
|
"setValidatedAttributeValue",
|
|
1419
1484
|
"toggleClass",
|
|
1420
1485
|
"validateAttribute",
|
|
1486
|
+
"withOwnChildren",
|
|
1421
1487
|
"writeAttribute",
|
|
1422
1488
|
"writeAttributes"
|
|
1423
1489
|
],
|
|
@@ -1498,6 +1564,7 @@
|
|
|
1498
1564
|
"setValidatedAttributeValue",
|
|
1499
1565
|
"toggleClass",
|
|
1500
1566
|
"validateAttribute",
|
|
1567
|
+
"withOwnChildren",
|
|
1501
1568
|
"writeAttribute",
|
|
1502
1569
|
"writeAttributes"
|
|
1503
1570
|
],
|
|
@@ -1651,6 +1718,7 @@
|
|
|
1651
1718
|
"setValidatedAttributeValue",
|
|
1652
1719
|
"toggleClass",
|
|
1653
1720
|
"validateAttribute",
|
|
1721
|
+
"withOwnChildren",
|
|
1654
1722
|
"writeAttribute",
|
|
1655
1723
|
"writeAttributes"
|
|
1656
1724
|
],
|
|
@@ -1768,6 +1836,7 @@
|
|
|
1768
1836
|
"setValidatedAttributeValue",
|
|
1769
1837
|
"toggleClass",
|
|
1770
1838
|
"validateAttribute",
|
|
1839
|
+
"withOwnChildren",
|
|
1771
1840
|
"writeAttribute",
|
|
1772
1841
|
"writeAttributes"
|
|
1773
1842
|
],
|
|
@@ -1842,6 +1911,7 @@
|
|
|
1842
1911
|
"setValidatedAttributeValue",
|
|
1843
1912
|
"toggleClass",
|
|
1844
1913
|
"validateAttribute",
|
|
1914
|
+
"withOwnChildren",
|
|
1845
1915
|
"writeAttribute",
|
|
1846
1916
|
"writeAttributes"
|
|
1847
1917
|
],
|
|
@@ -2001,6 +2071,7 @@
|
|
|
2001
2071
|
"setValidatedAttributeValue",
|
|
2002
2072
|
"toggleClass",
|
|
2003
2073
|
"validateAttribute",
|
|
2074
|
+
"withOwnChildren",
|
|
2004
2075
|
"writeAttribute",
|
|
2005
2076
|
"writeAttributes"
|
|
2006
2077
|
],
|
|
@@ -2125,6 +2196,7 @@
|
|
|
2125
2196
|
"setValidatedAttributeValue",
|
|
2126
2197
|
"toggleClass",
|
|
2127
2198
|
"validateAttribute",
|
|
2199
|
+
"withOwnChildren",
|
|
2128
2200
|
"writeAttribute",
|
|
2129
2201
|
"writeAttributes"
|
|
2130
2202
|
],
|
|
@@ -2293,6 +2365,7 @@
|
|
|
2293
2365
|
"setValidatedAttributeValue",
|
|
2294
2366
|
"toggleClass",
|
|
2295
2367
|
"validateAttribute",
|
|
2368
|
+
"withOwnChildren",
|
|
2296
2369
|
"writeAttribute",
|
|
2297
2370
|
"writeAttributes"
|
|
2298
2371
|
],
|
|
@@ -2410,6 +2483,7 @@
|
|
|
2410
2483
|
"setValidatedAttributeValue",
|
|
2411
2484
|
"toggleClass",
|
|
2412
2485
|
"validateAttribute",
|
|
2486
|
+
"withOwnChildren",
|
|
2413
2487
|
"writeAttribute",
|
|
2414
2488
|
"writeAttributes"
|
|
2415
2489
|
],
|
|
@@ -2484,6 +2558,7 @@
|
|
|
2484
2558
|
"setValidatedAttributeValue",
|
|
2485
2559
|
"toggleClass",
|
|
2486
2560
|
"validateAttribute",
|
|
2561
|
+
"withOwnChildren",
|
|
2487
2562
|
"writeAttribute",
|
|
2488
2563
|
"writeAttributes"
|
|
2489
2564
|
],
|
|
@@ -2600,6 +2675,7 @@
|
|
|
2600
2675
|
"setValidatedAttributeValue",
|
|
2601
2676
|
"toggleClass",
|
|
2602
2677
|
"validateAttribute",
|
|
2678
|
+
"withOwnChildren",
|
|
2603
2679
|
"writeAttribute",
|
|
2604
2680
|
"writeAttributes"
|
|
2605
2681
|
],
|
|
@@ -2619,7 +2695,10 @@
|
|
|
2619
2695
|
"get",
|
|
2620
2696
|
"managedChildren",
|
|
2621
2697
|
"register",
|
|
2698
|
+
"registered",
|
|
2699
|
+
"resolve",
|
|
2622
2700
|
"validateTree",
|
|
2701
|
+
"variant",
|
|
2623
2702
|
"wrapTree",
|
|
2624
2703
|
"wrapper"
|
|
2625
2704
|
],
|
|
@@ -2749,6 +2828,7 @@
|
|
|
2749
2828
|
"setValidatedAttributeValue",
|
|
2750
2829
|
"toggleClass",
|
|
2751
2830
|
"validateAttribute",
|
|
2831
|
+
"withOwnChildren",
|
|
2752
2832
|
"writeAttribute",
|
|
2753
2833
|
"writeAttributes"
|
|
2754
2834
|
],
|
|
@@ -2793,6 +2873,7 @@
|
|
|
2793
2873
|
"setValidatedAttributeValue",
|
|
2794
2874
|
"toggleClass",
|
|
2795
2875
|
"validateAttribute",
|
|
2876
|
+
"withOwnChildren",
|
|
2796
2877
|
"writeAttribute",
|
|
2797
2878
|
"writeAttributes"
|
|
2798
2879
|
],
|
|
@@ -2947,6 +3028,7 @@
|
|
|
2947
3028
|
"setValidatedAttributeValue",
|
|
2948
3029
|
"toggleClass",
|
|
2949
3030
|
"validateAttribute",
|
|
3031
|
+
"withOwnChildren",
|
|
2950
3032
|
"writeAttribute",
|
|
2951
3033
|
"writeAttributes"
|
|
2952
3034
|
],
|
|
@@ -2990,6 +3072,7 @@
|
|
|
2990
3072
|
"setValidatedAttributeValue",
|
|
2991
3073
|
"toggleClass",
|
|
2992
3074
|
"validateAttribute",
|
|
3075
|
+
"withOwnChildren",
|
|
2993
3076
|
"writeAttribute",
|
|
2994
3077
|
"writeAttributes"
|
|
2995
3078
|
],
|
|
@@ -3149,6 +3232,7 @@
|
|
|
3149
3232
|
"setValidatedAttributeValue",
|
|
3150
3233
|
"toggleClass",
|
|
3151
3234
|
"validateAttribute",
|
|
3235
|
+
"withOwnChildren",
|
|
3152
3236
|
"writeAttribute",
|
|
3153
3237
|
"writeAttributes"
|
|
3154
3238
|
],
|
|
@@ -3265,6 +3349,7 @@
|
|
|
3265
3349
|
"setValidatedAttributeValue",
|
|
3266
3350
|
"toggleClass",
|
|
3267
3351
|
"validateAttribute",
|
|
3352
|
+
"withOwnChildren",
|
|
3268
3353
|
"writeAttribute",
|
|
3269
3354
|
"writeAttributes"
|
|
3270
3355
|
],
|
|
@@ -9633,9 +9718,9 @@
|
|
|
9633
9718
|
},
|
|
9634
9719
|
"size": {
|
|
9635
9720
|
"fixture": "fixtures/size.ts",
|
|
9636
|
-
"rawBytes":
|
|
9637
|
-
"gzipBytes":
|
|
9638
|
-
"budgetBytes":
|
|
9721
|
+
"rawBytes": 68463,
|
|
9722
|
+
"gzipBytes": 20572,
|
|
9723
|
+
"budgetBytes": 20992,
|
|
9639
9724
|
"included": [
|
|
9640
9725
|
"src/changes/mutation.ts",
|
|
9641
9726
|
"src/dom/attributes.ts",
|
|
@@ -9644,6 +9729,7 @@
|
|
|
9644
9729
|
"src/math/vec2.ts",
|
|
9645
9730
|
"src/math/matrix.ts",
|
|
9646
9731
|
"src/core/destruction.ts",
|
|
9732
|
+
"src/mixins/parent-internals.ts",
|
|
9647
9733
|
"src/core/attribute-validation.ts",
|
|
9648
9734
|
"src/changes/types.ts",
|
|
9649
9735
|
"src/core/node.ts",
|
|
@@ -9661,7 +9747,6 @@
|
|
|
9661
9747
|
"src/mixins/sizing-internals.ts",
|
|
9662
9748
|
"src/mixins/sizable.ts",
|
|
9663
9749
|
"src/core/shape.ts",
|
|
9664
|
-
"src/mixins/parent-internals.ts",
|
|
9665
9750
|
"src/mixins/parent.ts",
|
|
9666
9751
|
"src/mixins/creatable.ts",
|
|
9667
9752
|
"src/elements/group.ts",
|
|
@@ -9671,6 +9756,9 @@
|
|
|
9671
9756
|
"src/services/bounds.ts",
|
|
9672
9757
|
"src/services/defs-manager.ts",
|
|
9673
9758
|
"src/core/native-validation.ts",
|
|
9759
|
+
"src/services/element-key.ts",
|
|
9760
|
+
"src/services/initialization.ts",
|
|
9761
|
+
"src/services/claims.ts",
|
|
9674
9762
|
"src/services/registry.ts",
|
|
9675
9763
|
"src/services/scheduler.ts",
|
|
9676
9764
|
"src/changes/service.ts",
|
|
@@ -9684,7 +9772,7 @@
|
|
|
9684
9772
|
},
|
|
9685
9773
|
"performance": {
|
|
9686
9774
|
"fixture": "scripts/benchmark.mjs",
|
|
9687
|
-
"date": "2026-11-
|
|
9775
|
+
"date": "2026-11-09T00:19:06.376Z",
|
|
9688
9776
|
"browser": "Chromium 156.0.8078.4",
|
|
9689
9777
|
"node": "v24.21.0",
|
|
9690
9778
|
"os": "win32 10.0.26200",
|
|
@@ -9693,28 +9781,27 @@
|
|
|
9693
9781
|
"count": 1000,
|
|
9694
9782
|
"warmup": 20,
|
|
9695
9783
|
"iterations": 100,
|
|
9696
|
-
"medianMs": 0.
|
|
9697
|
-
"p95Ms": 0.
|
|
9784
|
+
"medianMs": 0.5,
|
|
9785
|
+
"p95Ms": 0.7999999523162842,
|
|
9698
9786
|
"targetMedianMs": 16,
|
|
9699
9787
|
"includes": "logical mutations and synchronous DOM commit; excludes paint",
|
|
9700
9788
|
"timings": [
|
|
9701
|
-
0.3999999761581421, 0.
|
|
9789
|
+
0.3999999761581421, 0.3999999761581421, 0.3999999761581421, 0.3999999761581421,
|
|
9790
|
+
0.40000009536743164, 0.40000009536743164, 0.40000009536743164, 0.40000009536743164, 0.5, 0.5,
|
|
9702
9791
|
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, 0.5, 0.5, 0.5, 0.5,
|
|
9703
|
-
0.5, 0.5, 0.
|
|
9704
|
-
0.
|
|
9705
|
-
0.
|
|
9706
|
-
0.
|
|
9707
|
-
0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
|
|
9792
|
+
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, 0.5, 0.5, 0.5, 0.5,
|
|
9793
|
+
0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5999999046325684, 0.5999999046325684, 0.5999999046325684,
|
|
9794
|
+
0.5999999046325684, 0.5999999046325684, 0.5999999046325684, 0.5999999046325684,
|
|
9795
|
+
0.5999999046325684, 0.5999999046325684, 0.6000000238418579, 0.6000000238418579,
|
|
9708
9796
|
0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
|
|
9709
9797
|
0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
|
|
9710
9798
|
0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
|
|
9711
9799
|
0.6000000238418579, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579,
|
|
9712
|
-
0.6000000238418579, 0.6000000238418579, 0.
|
|
9713
|
-
0.
|
|
9714
|
-
0.6999999284744263, 0.6999999284744263, 0.6999999284744263, 0.7000000476837158,
|
|
9800
|
+
0.6000000238418579, 0.6000000238418579, 0.6999999284744263, 0.6999999284744263,
|
|
9801
|
+
0.7000000476837158, 0.7000000476837158, 0.7000000476837158, 0.7000000476837158,
|
|
9715
9802
|
0.7000000476837158, 0.7000000476837158, 0.7000000476837158, 0.7000000476837158,
|
|
9716
|
-
0.7000000476837158, 0.
|
|
9717
|
-
0.
|
|
9803
|
+
0.7000000476837158, 0.7999999523162842, 0.7999999523162842, 0.7999999523162842,
|
|
9804
|
+
0.8000000715255737, 0.8999999761581421, 1.2999999523162842
|
|
9718
9805
|
]
|
|
9719
9806
|
}
|
|
9720
9807
|
}
|
package/src/advanced.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { Namespace } from './dom/namespace.js';
|
|
|
11
11
|
export { DrawingContext } from './services/context.js';
|
|
12
12
|
export { Scheduler } from './services/scheduler.js';
|
|
13
13
|
export { Registry } from './services/registry.js';
|
|
14
|
-
export type { ElementClass } from './services/types.js';
|
|
14
|
+
export type { ElementClass, ElementVariant } from './services/types.js';
|
|
15
15
|
export { BoundsService } from './services/bounds.js';
|
|
16
16
|
export { DefsManager } from './services/defs-manager.js';
|
|
17
17
|
|
package/src/catalog/fragment.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Group } from '../elements/group.js';
|
|
2
2
|
import type { AnyNode } from '../core/types.js';
|
|
3
|
-
import type { ElementClass } from '../services/types.js';
|
|
3
|
+
import type { ElementClass, CreationOptions } from '../services/types.js';
|
|
4
4
|
import type { ParentNode } from '../mixins/types.js';
|
|
5
5
|
import { validateChild, validateIndex } from '../mixins/parent-internals.js';
|
|
6
6
|
import { destroySubtrees } from '../core/destruction.js';
|
|
@@ -32,7 +32,7 @@ export class SvgFragment {
|
|
|
32
32
|
}
|
|
33
33
|
create<Options, Child extends AnyNode>(
|
|
34
34
|
Constructor: ElementClass<Options, Child>,
|
|
35
|
-
options: Options,
|
|
35
|
+
options: NoInfer<CreationOptions<Options, Child>>,
|
|
36
36
|
): Child {
|
|
37
37
|
return this.#host.create(Constructor, options);
|
|
38
38
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AnyNode } from '../core/types.js';
|
|
2
|
+
import type { ModelChange } from './types.js';
|
|
3
|
+
|
|
4
|
+
/** Marks a class whose children are drawn from its own state, such as a component. */
|
|
5
|
+
export const derivesChildren = Symbol('derivesChildren');
|
|
6
|
+
const derived = new WeakSet<AnyNode>();
|
|
7
|
+
|
|
8
|
+
export const ownsDerived = (Constructor: unknown): boolean =>
|
|
9
|
+
!!(Constructor as { [derivesChildren]?: boolean } | undefined)?.[derivesChildren];
|
|
10
|
+
|
|
11
|
+
/** Records the owner's current descendants as derived. The owner redraws them after replay. */
|
|
12
|
+
export function markDerived(owner: AnyNode): void {
|
|
13
|
+
for (const node of owner.descendants()) if (node !== owner) derived.add(node);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Replay skips derived nodes and their owners' child lists. */
|
|
17
|
+
export const isDerivedChange = (change: ModelChange): boolean =>
|
|
18
|
+
derived.has(change.target.node) ||
|
|
19
|
+
(change.domain === 'children' && ownsDerived(change.target.node.constructor));
|