@rasamjs/core 0.0.0-stage → 0.1.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 (831) hide show
  1. package/API.md +169 -0
  2. package/CHANGELOG.md +196 -0
  3. package/LICENSE +21 -0
  4. package/README.md +675 -2
  5. package/RELEASING.md +125 -0
  6. package/dist/advanced.d.ts +29 -0
  7. package/dist/advanced.d.ts.map +1 -0
  8. package/dist/advanced.js +25 -0
  9. package/dist/advanced.js.map +1 -0
  10. package/dist/animation/channels.d.ts +17 -0
  11. package/dist/animation/channels.d.ts.map +1 -0
  12. package/dist/animation/channels.js +184 -0
  13. package/dist/animation/channels.js.map +1 -0
  14. package/dist/animation/ease.d.ts +3 -0
  15. package/dist/animation/ease.d.ts.map +1 -0
  16. package/dist/animation/ease.js +50 -0
  17. package/dist/animation/ease.js.map +1 -0
  18. package/dist/animation/interpolate.d.ts +14 -0
  19. package/dist/animation/interpolate.d.ts.map +1 -0
  20. package/dist/animation/interpolate.js +160 -0
  21. package/dist/animation/interpolate.js.map +1 -0
  22. package/dist/animation/timeline.d.ts +82 -0
  23. package/dist/animation/timeline.d.ts.map +1 -0
  24. package/dist/animation/timeline.js +513 -0
  25. package/dist/animation/timeline.js.map +1 -0
  26. package/dist/animation/types.d.ts +65 -0
  27. package/dist/animation/types.d.ts.map +1 -0
  28. package/dist/animation/types.js +2 -0
  29. package/dist/animation/types.js.map +1 -0
  30. package/dist/animation.d.ts +8 -0
  31. package/dist/animation.d.ts.map +1 -0
  32. package/dist/animation.js +7 -0
  33. package/dist/animation.js.map +1 -0
  34. package/dist/catalog/attributes.d.ts +4 -0
  35. package/dist/catalog/attributes.d.ts.map +1 -0
  36. package/dist/catalog/attributes.js +42 -0
  37. package/dist/catalog/attributes.js.map +1 -0
  38. package/dist/catalog/css.d.ts +5 -0
  39. package/dist/catalog/css.d.ts.map +1 -0
  40. package/dist/catalog/css.js +21 -0
  41. package/dist/catalog/css.js.map +1 -0
  42. package/dist/catalog/define-element.d.ts +12 -0
  43. package/dist/catalog/define-element.d.ts.map +1 -0
  44. package/dist/catalog/define-element.js +106 -0
  45. package/dist/catalog/define-element.js.map +1 -0
  46. package/dist/catalog/fragment.d.ts +19 -0
  47. package/dist/catalog/fragment.d.ts.map +1 -0
  48. package/dist/catalog/fragment.js +107 -0
  49. package/dist/catalog/fragment.js.map +1 -0
  50. package/dist/catalog/namespaces.d.ts +11 -0
  51. package/dist/catalog/namespaces.d.ts.map +1 -0
  52. package/dist/catalog/namespaces.js +16 -0
  53. package/dist/catalog/namespaces.js.map +1 -0
  54. package/dist/catalog/native-content.d.ts +5 -0
  55. package/dist/catalog/native-content.d.ts.map +1 -0
  56. package/dist/catalog/native-content.js +28 -0
  57. package/dist/catalog/native-content.js.map +1 -0
  58. package/dist/catalog/types.d.ts +31 -0
  59. package/dist/catalog/types.d.ts.map +1 -0
  60. package/dist/catalog/types.js +2 -0
  61. package/dist/catalog/types.js.map +1 -0
  62. package/dist/catalog.d.ts +20 -0
  63. package/dist/catalog.d.ts.map +1 -0
  64. package/dist/catalog.js +52 -0
  65. package/dist/catalog.js.map +1 -0
  66. package/dist/changes/mutation.d.ts +3 -0
  67. package/dist/changes/mutation.d.ts.map +1 -0
  68. package/dist/changes/mutation.js +9 -0
  69. package/dist/changes/mutation.js.map +1 -0
  70. package/dist/changes/restore.d.ts +5 -0
  71. package/dist/changes/restore.d.ts.map +1 -0
  72. package/dist/changes/restore.js +315 -0
  73. package/dist/changes/restore.js.map +1 -0
  74. package/dist/changes/service.d.ts +63 -0
  75. package/dist/changes/service.d.ts.map +1 -0
  76. package/dist/changes/service.js +365 -0
  77. package/dist/changes/service.js.map +1 -0
  78. package/dist/changes/state.d.ts +16 -0
  79. package/dist/changes/state.d.ts.map +1 -0
  80. package/dist/changes/state.js +226 -0
  81. package/dist/changes/state.js.map +1 -0
  82. package/dist/changes/types.d.ts +134 -0
  83. package/dist/changes/types.d.ts.map +1 -0
  84. package/dist/changes/types.js +26 -0
  85. package/dist/changes/types.js.map +1 -0
  86. package/dist/changes.d.ts +12 -0
  87. package/dist/changes.d.ts.map +1 -0
  88. package/dist/changes.js +22 -0
  89. package/dist/changes.js.map +1 -0
  90. package/dist/core/attribute-validation.d.ts +3 -0
  91. package/dist/core/attribute-validation.d.ts.map +1 -0
  92. package/dist/core/attribute-validation.js +3 -0
  93. package/dist/core/attribute-validation.js.map +1 -0
  94. package/dist/core/destruction.d.ts +7 -0
  95. package/dist/core/destruction.d.ts.map +1 -0
  96. package/dist/core/destruction.js +9 -0
  97. package/dist/core/destruction.js.map +1 -0
  98. package/dist/core/mix.d.ts +3 -0
  99. package/dist/core/mix.d.ts.map +1 -0
  100. package/dist/core/mix.js +2 -0
  101. package/dist/core/mix.js.map +1 -0
  102. package/dist/core/native-validation.d.ts +3 -0
  103. package/dist/core/native-validation.d.ts.map +1 -0
  104. package/dist/core/native-validation.js +3 -0
  105. package/dist/core/native-validation.js.map +1 -0
  106. package/dist/core/node.d.ts +80 -0
  107. package/dist/core/node.d.ts.map +1 -0
  108. package/dist/core/node.js +349 -0
  109. package/dist/core/node.js.map +1 -0
  110. package/dist/core/shape.d.ts +10 -0
  111. package/dist/core/shape.d.ts.map +1 -0
  112. package/dist/core/shape.js +13 -0
  113. package/dist/core/shape.js.map +1 -0
  114. package/dist/core/types.d.ts +39 -0
  115. package/dist/core/types.d.ts.map +1 -0
  116. package/dist/core/types.js +2 -0
  117. package/dist/core/types.js.map +1 -0
  118. package/dist/data.d.ts +20 -0
  119. package/dist/data.d.ts.map +1 -0
  120. package/dist/data.js +151 -0
  121. package/dist/data.js.map +1 -0
  122. package/dist/decorators/attr.d.ts +13 -0
  123. package/dist/decorators/attr.d.ts.map +1 -0
  124. package/dist/decorators/attr.js +52 -0
  125. package/dist/decorators/attr.js.map +1 -0
  126. package/dist/decorators/attrs.d.ts +21 -0
  127. package/dist/decorators/attrs.d.ts.map +1 -0
  128. package/dist/decorators/attrs.js +47 -0
  129. package/dist/decorators/attrs.js.map +1 -0
  130. package/dist/dom/attributes.d.ts +31 -0
  131. package/dist/dom/attributes.d.ts.map +1 -0
  132. package/dist/dom/attributes.js +277 -0
  133. package/dist/dom/attributes.js.map +1 -0
  134. package/dist/dom/content.d.ts +15 -0
  135. package/dist/dom/content.d.ts.map +1 -0
  136. package/dist/dom/content.js +79 -0
  137. package/dist/dom/content.js.map +1 -0
  138. package/dist/dom/create.d.ts +42 -0
  139. package/dist/dom/create.d.ts.map +1 -0
  140. package/dist/dom/create.js +243 -0
  141. package/dist/dom/create.js.map +1 -0
  142. package/dist/dom/events.d.ts +11 -0
  143. package/dist/dom/events.d.ts.map +1 -0
  144. package/dist/dom/events.js +39 -0
  145. package/dist/dom/events.js.map +1 -0
  146. package/dist/dom/images.d.ts +9 -0
  147. package/dist/dom/images.d.ts.map +1 -0
  148. package/dist/dom/images.js +17 -0
  149. package/dist/dom/images.js.map +1 -0
  150. package/dist/dom/namespace.d.ts +4 -0
  151. package/dist/dom/namespace.d.ts.map +1 -0
  152. package/dist/dom/namespace.js +4 -0
  153. package/dist/dom/namespace.js.map +1 -0
  154. package/dist/dom/namespaced-attributes.d.ts +8 -0
  155. package/dist/dom/namespaced-attributes.d.ts.map +1 -0
  156. package/dist/dom/namespaced-attributes.js +29 -0
  157. package/dist/dom/namespaced-attributes.js.map +1 -0
  158. package/dist/dom/text.d.ts +14 -0
  159. package/dist/dom/text.d.ts.map +1 -0
  160. package/dist/dom/text.js +54 -0
  161. package/dist/dom/text.js.map +1 -0
  162. package/dist/dom/types.d.ts +12 -0
  163. package/dist/dom/types.d.ts.map +1 -0
  164. package/dist/dom/types.js +3 -0
  165. package/dist/dom/types.js.map +1 -0
  166. package/dist/dom/viewport.d.ts +8 -0
  167. package/dist/dom/viewport.d.ts.map +1 -0
  168. package/dist/dom/viewport.js +27 -0
  169. package/dist/dom/viewport.js.map +1 -0
  170. package/dist/elements/circle.d.ts +16 -0
  171. package/dist/elements/circle.d.ts.map +1 -0
  172. package/dist/elements/circle.js +107 -0
  173. package/dist/elements/circle.js.map +1 -0
  174. package/dist/elements/clip-path.d.ts +13 -0
  175. package/dist/elements/clip-path.d.ts.map +1 -0
  176. package/dist/elements/clip-path.js +25 -0
  177. package/dist/elements/clip-path.js.map +1 -0
  178. package/dist/elements/defs.d.ts +7 -0
  179. package/dist/elements/defs.d.ts.map +1 -0
  180. package/dist/elements/defs.js +9 -0
  181. package/dist/elements/defs.js.map +1 -0
  182. package/dist/elements/descriptive.d.ts +31 -0
  183. package/dist/elements/descriptive.d.ts.map +1 -0
  184. package/dist/elements/descriptive.js +34 -0
  185. package/dist/elements/descriptive.js.map +1 -0
  186. package/dist/elements/ellipse.d.ts +17 -0
  187. package/dist/elements/ellipse.d.ts.map +1 -0
  188. package/dist/elements/ellipse.js +110 -0
  189. package/dist/elements/ellipse.js.map +1 -0
  190. package/dist/elements/foreign-object.d.ts +27 -0
  191. package/dist/elements/foreign-object.d.ts.map +1 -0
  192. package/dist/elements/foreign-object.js +142 -0
  193. package/dist/elements/foreign-object.js.map +1 -0
  194. package/dist/elements/generic.d.ts +17 -0
  195. package/dist/elements/generic.d.ts.map +1 -0
  196. package/dist/elements/generic.js +29 -0
  197. package/dist/elements/generic.js.map +1 -0
  198. package/dist/elements/gradient.d.ts +38 -0
  199. package/dist/elements/gradient.d.ts.map +1 -0
  200. package/dist/elements/gradient.js +155 -0
  201. package/dist/elements/gradient.js.map +1 -0
  202. package/dist/elements/group.d.ts +8 -0
  203. package/dist/elements/group.d.ts.map +1 -0
  204. package/dist/elements/group.js +12 -0
  205. package/dist/elements/group.js.map +1 -0
  206. package/dist/elements/image.d.ts +39 -0
  207. package/dist/elements/image.d.ts.map +1 -0
  208. package/dist/elements/image.js +254 -0
  209. package/dist/elements/image.js.map +1 -0
  210. package/dist/elements/index.d.ts +6 -0
  211. package/dist/elements/index.d.ts.map +1 -0
  212. package/dist/elements/index.js +38 -0
  213. package/dist/elements/index.js.map +1 -0
  214. package/dist/elements/instance-hit.d.ts +5 -0
  215. package/dist/elements/instance-hit.d.ts.map +1 -0
  216. package/dist/elements/instance-hit.js +21 -0
  217. package/dist/elements/instance-hit.js.map +1 -0
  218. package/dist/elements/line.d.ts +22 -0
  219. package/dist/elements/line.d.ts.map +1 -0
  220. package/dist/elements/line.js +111 -0
  221. package/dist/elements/line.js.map +1 -0
  222. package/dist/elements/link.d.ts +15 -0
  223. package/dist/elements/link.d.ts.map +1 -0
  224. package/dist/elements/link.js +26 -0
  225. package/dist/elements/link.js.map +1 -0
  226. package/dist/elements/marker.d.ts +22 -0
  227. package/dist/elements/marker.d.ts.map +1 -0
  228. package/dist/elements/marker.js +67 -0
  229. package/dist/elements/marker.js.map +1 -0
  230. package/dist/elements/mask.d.ts +26 -0
  231. package/dist/elements/mask.d.ts.map +1 -0
  232. package/dist/elements/mask.js +67 -0
  233. package/dist/elements/mask.js.map +1 -0
  234. package/dist/elements/path.d.ts +20 -0
  235. package/dist/elements/path.d.ts.map +1 -0
  236. package/dist/elements/path.js +111 -0
  237. package/dist/elements/path.js.map +1 -0
  238. package/dist/elements/pattern.d.ts +27 -0
  239. package/dist/elements/pattern.d.ts.map +1 -0
  240. package/dist/elements/pattern.js +68 -0
  241. package/dist/elements/pattern.js.map +1 -0
  242. package/dist/elements/point-shape.d.ts +19 -0
  243. package/dist/elements/point-shape.d.ts.map +1 -0
  244. package/dist/elements/point-shape.js +99 -0
  245. package/dist/elements/point-shape.js.map +1 -0
  246. package/dist/elements/polygon.d.ts +5 -0
  247. package/dist/elements/polygon.d.ts.map +1 -0
  248. package/dist/elements/polygon.js +5 -0
  249. package/dist/elements/polygon.js.map +1 -0
  250. package/dist/elements/polyline.d.ts +5 -0
  251. package/dist/elements/polyline.d.ts.map +1 -0
  252. package/dist/elements/polyline.js +5 -0
  253. package/dist/elements/polyline.js.map +1 -0
  254. package/dist/elements/rect.d.ts +15 -0
  255. package/dist/elements/rect.d.ts.map +1 -0
  256. package/dist/elements/rect.js +116 -0
  257. package/dist/elements/rect.js.map +1 -0
  258. package/dist/elements/stop.d.ts +15 -0
  259. package/dist/elements/stop.d.ts.map +1 -0
  260. package/dist/elements/stop.js +95 -0
  261. package/dist/elements/stop.js.map +1 -0
  262. package/dist/elements/style.d.ts +17 -0
  263. package/dist/elements/style.d.ts.map +1 -0
  264. package/dist/elements/style.js +37 -0
  265. package/dist/elements/style.js.map +1 -0
  266. package/dist/elements/svg.d.ts +23 -0
  267. package/dist/elements/svg.d.ts.map +1 -0
  268. package/dist/elements/svg.js +73 -0
  269. package/dist/elements/svg.js.map +1 -0
  270. package/dist/elements/symbol.d.ts +23 -0
  271. package/dist/elements/symbol.d.ts.map +1 -0
  272. package/dist/elements/symbol.js +51 -0
  273. package/dist/elements/symbol.js.map +1 -0
  274. package/dist/elements/text-path.d.ts +22 -0
  275. package/dist/elements/text-path.d.ts.map +1 -0
  276. package/dist/elements/text-path.js +104 -0
  277. package/dist/elements/text-path.js.map +1 -0
  278. package/dist/elements/text.d.ts +33 -0
  279. package/dist/elements/text.d.ts.map +1 -0
  280. package/dist/elements/text.js +170 -0
  281. package/dist/elements/text.js.map +1 -0
  282. package/dist/elements/tspan.d.ts +22 -0
  283. package/dist/elements/tspan.d.ts.map +1 -0
  284. package/dist/elements/tspan.js +92 -0
  285. package/dist/elements/tspan.js.map +1 -0
  286. package/dist/elements/types.d.ts +167 -0
  287. package/dist/elements/types.d.ts.map +1 -0
  288. package/dist/elements/types.js +2 -0
  289. package/dist/elements/types.js.map +1 -0
  290. package/dist/elements/use-geometry.d.ts +8 -0
  291. package/dist/elements/use-geometry.d.ts.map +1 -0
  292. package/dist/elements/use-geometry.js +38 -0
  293. package/dist/elements/use-geometry.js.map +1 -0
  294. package/dist/elements/use.d.ts +26 -0
  295. package/dist/elements/use.d.ts.map +1 -0
  296. package/dist/elements/use.js +143 -0
  297. package/dist/elements/use.js.map +1 -0
  298. package/dist/events/dom-events.d.ts +8 -0
  299. package/dist/events/dom-events.d.ts.map +1 -0
  300. package/dist/events/dom-events.js +189 -0
  301. package/dist/events/dom-events.js.map +1 -0
  302. package/dist/events/dom-lifecycle.d.ts +3 -0
  303. package/dist/events/dom-lifecycle.d.ts.map +1 -0
  304. package/dist/events/dom-lifecycle.js +15 -0
  305. package/dist/events/dom-lifecycle.js.map +1 -0
  306. package/dist/events/dom-router.d.ts +15 -0
  307. package/dist/events/dom-router.d.ts.map +1 -0
  308. package/dist/events/dom-router.js +83 -0
  309. package/dist/events/dom-router.js.map +1 -0
  310. package/dist/events/dom-types.d.ts +34 -0
  311. package/dist/events/dom-types.d.ts.map +1 -0
  312. package/dist/events/dom-types.js +2 -0
  313. package/dist/events/dom-types.js.map +1 -0
  314. package/dist/events/emitter.d.ts +12 -0
  315. package/dist/events/emitter.d.ts.map +1 -0
  316. package/dist/events/emitter.js +53 -0
  317. package/dist/events/emitter.js.map +1 -0
  318. package/dist/events/focusable.d.ts +5 -0
  319. package/dist/events/focusable.d.ts.map +1 -0
  320. package/dist/events/focusable.js +17 -0
  321. package/dist/events/focusable.js.map +1 -0
  322. package/dist/events/pointer.d.ts +22 -0
  323. package/dist/events/pointer.d.ts.map +1 -0
  324. package/dist/events/pointer.js +138 -0
  325. package/dist/events/pointer.js.map +1 -0
  326. package/dist/events/types.d.ts +4 -0
  327. package/dist/events/types.d.ts.map +1 -0
  328. package/dist/events/types.js +3 -0
  329. package/dist/events/types.js.map +1 -0
  330. package/dist/events.d.ts +5 -0
  331. package/dist/events.d.ts.map +1 -0
  332. package/dist/events.js +4 -0
  333. package/dist/events.js.map +1 -0
  334. package/dist/geometry/bake-ellipse.d.ts +4 -0
  335. package/dist/geometry/bake-ellipse.d.ts.map +1 -0
  336. package/dist/geometry/bake-ellipse.js +27 -0
  337. package/dist/geometry/bake-ellipse.js.map +1 -0
  338. package/dist/geometry/point-array.d.ts +20 -0
  339. package/dist/geometry/point-array.d.ts.map +1 -0
  340. package/dist/geometry/point-array.js +95 -0
  341. package/dist/geometry/point-array.js.map +1 -0
  342. package/dist/geometry/point-list.d.ts +7 -0
  343. package/dist/geometry/point-list.d.ts.map +1 -0
  344. package/dist/geometry/point-list.js +64 -0
  345. package/dist/geometry/point-list.js.map +1 -0
  346. package/dist/index.d.ts +43 -0
  347. package/dist/index.d.ts.map +1 -0
  348. package/dist/index.js +31 -0
  349. package/dist/index.js.map +1 -0
  350. package/dist/interchange/clone.d.ts +4 -0
  351. package/dist/interchange/clone.d.ts.map +1 -0
  352. package/dist/interchange/clone.js +91 -0
  353. package/dist/interchange/clone.js.map +1 -0
  354. package/dist/interchange/dom.d.ts +7 -0
  355. package/dist/interchange/dom.d.ts.map +1 -0
  356. package/dist/interchange/dom.js +39 -0
  357. package/dist/interchange/dom.js.map +1 -0
  358. package/dist/interchange/markup.d.ts +6 -0
  359. package/dist/interchange/markup.d.ts.map +1 -0
  360. package/dist/interchange/markup.js +60 -0
  361. package/dist/interchange/markup.js.map +1 -0
  362. package/dist/interchange/policy.d.ts +4 -0
  363. package/dist/interchange/policy.d.ts.map +1 -0
  364. package/dist/interchange/policy.js +140 -0
  365. package/dist/interchange/policy.js.map +1 -0
  366. package/dist/interchange/reconstruct.d.ts +8 -0
  367. package/dist/interchange/reconstruct.d.ts.map +1 -0
  368. package/dist/interchange/reconstruct.js +101 -0
  369. package/dist/interchange/reconstruct.js.map +1 -0
  370. package/dist/interchange/references.d.ts +6 -0
  371. package/dist/interchange/references.d.ts.map +1 -0
  372. package/dist/interchange/references.js +106 -0
  373. package/dist/interchange/references.js.map +1 -0
  374. package/dist/interchange/snapshot.d.ts +4 -0
  375. package/dist/interchange/snapshot.d.ts.map +1 -0
  376. package/dist/interchange/snapshot.js +51 -0
  377. package/dist/interchange/snapshot.js.map +1 -0
  378. package/dist/interchange/types.d.ts +18 -0
  379. package/dist/interchange/types.d.ts.map +1 -0
  380. package/dist/interchange/types.js +2 -0
  381. package/dist/interchange/types.js.map +1 -0
  382. package/dist/interchange.d.ts +5 -0
  383. package/dist/interchange.d.ts.map +1 -0
  384. package/dist/interchange.js +4 -0
  385. package/dist/interchange.js.map +1 -0
  386. package/dist/masks.d.ts +16 -0
  387. package/dist/masks.d.ts.map +1 -0
  388. package/dist/masks.js +49 -0
  389. package/dist/masks.js.map +1 -0
  390. package/dist/math/bbox.d.ts +22 -0
  391. package/dist/math/bbox.d.ts.map +1 -0
  392. package/dist/math/bbox.js +97 -0
  393. package/dist/math/bbox.js.map +1 -0
  394. package/dist/math/length.d.ts +4 -0
  395. package/dist/math/length.d.ts.map +1 -0
  396. package/dist/math/length.js +19 -0
  397. package/dist/math/length.js.map +1 -0
  398. package/dist/math/matrix.d.ts +37 -0
  399. package/dist/math/matrix.d.ts.map +1 -0
  400. package/dist/math/matrix.js +155 -0
  401. package/dist/math/matrix.js.map +1 -0
  402. package/dist/math/vec2.d.ts +14 -0
  403. package/dist/math/vec2.d.ts.map +1 -0
  404. package/dist/math/vec2.js +34 -0
  405. package/dist/math/vec2.js.map +1 -0
  406. package/dist/math/viewbox.d.ts +9 -0
  407. package/dist/math/viewbox.d.ts.map +1 -0
  408. package/dist/math/viewbox.js +24 -0
  409. package/dist/math/viewbox.js.map +1 -0
  410. package/dist/math/viewport.d.ts +14 -0
  411. package/dist/math/viewport.d.ts.map +1 -0
  412. package/dist/math/viewport.js +43 -0
  413. package/dist/math/viewport.js.map +1 -0
  414. package/dist/media/length.d.ts +5 -0
  415. package/dist/media/length.d.ts.map +1 -0
  416. package/dist/media/length.js +20 -0
  417. package/dist/media/length.js.map +1 -0
  418. package/dist/media/types.d.ts +36 -0
  419. package/dist/media/types.d.ts.map +1 -0
  420. package/dist/media/types.js +2 -0
  421. package/dist/media/types.js.map +1 -0
  422. package/dist/media/validation.d.ts +5 -0
  423. package/dist/media/validation.d.ts.map +1 -0
  424. package/dist/media/validation.js +24 -0
  425. package/dist/media/validation.js.map +1 -0
  426. package/dist/media.d.ts +19 -0
  427. package/dist/media.d.ts.map +1 -0
  428. package/dist/media.js +74 -0
  429. package/dist/media.js.map +1 -0
  430. package/dist/mixins/creatable.d.ts +4 -0
  431. package/dist/mixins/creatable.d.ts.map +1 -0
  432. package/dist/mixins/creatable.js +68 -0
  433. package/dist/mixins/creatable.js.map +1 -0
  434. package/dist/mixins/guards.d.ts +15 -0
  435. package/dist/mixins/guards.d.ts.map +1 -0
  436. package/dist/mixins/guards.js +19 -0
  437. package/dist/mixins/guards.js.map +1 -0
  438. package/dist/mixins/parent-internals.d.ts +6 -0
  439. package/dist/mixins/parent-internals.d.ts.map +1 -0
  440. package/dist/mixins/parent-internals.js +15 -0
  441. package/dist/mixins/parent-internals.js.map +1 -0
  442. package/dist/mixins/parent.d.ts +3 -0
  443. package/dist/mixins/parent.d.ts.map +1 -0
  444. package/dist/mixins/parent.js +163 -0
  445. package/dist/mixins/parent.js.map +1 -0
  446. package/dist/mixins/placement.d.ts +4 -0
  447. package/dist/mixins/placement.d.ts.map +1 -0
  448. package/dist/mixins/placement.js +4 -0
  449. package/dist/mixins/placement.js.map +1 -0
  450. package/dist/mixins/resourceful.d.ts +9 -0
  451. package/dist/mixins/resourceful.d.ts.map +1 -0
  452. package/dist/mixins/resourceful.js +55 -0
  453. package/dist/mixins/resourceful.js.map +1 -0
  454. package/dist/mixins/sizable.d.ts +4 -0
  455. package/dist/mixins/sizable.d.ts.map +1 -0
  456. package/dist/mixins/sizable.js +178 -0
  457. package/dist/mixins/sizable.js.map +1 -0
  458. package/dist/mixins/sizing-internals.d.ts +8 -0
  459. package/dist/mixins/sizing-internals.d.ts.map +1 -0
  460. package/dist/mixins/sizing-internals.js +15 -0
  461. package/dist/mixins/sizing-internals.js.map +1 -0
  462. package/dist/mixins/styleable.d.ts +3 -0
  463. package/dist/mixins/styleable.d.ts.map +1 -0
  464. package/dist/mixins/styleable.js +83 -0
  465. package/dist/mixins/styleable.js.map +1 -0
  466. package/dist/mixins/textual.d.ts +3 -0
  467. package/dist/mixins/textual.d.ts.map +1 -0
  468. package/dist/mixins/textual.js +47 -0
  469. package/dist/mixins/textual.js.map +1 -0
  470. package/dist/mixins/transform-state.d.ts +44 -0
  471. package/dist/mixins/transform-state.d.ts.map +1 -0
  472. package/dist/mixins/transform-state.js +101 -0
  473. package/dist/mixins/transform-state.js.map +1 -0
  474. package/dist/mixins/transformable.d.ts +3 -0
  475. package/dist/mixins/transformable.d.ts.map +1 -0
  476. package/dist/mixins/transformable.js +328 -0
  477. package/dist/mixins/transformable.js.map +1 -0
  478. package/dist/mixins/types.d.ts +144 -0
  479. package/dist/mixins/types.d.ts.map +1 -0
  480. package/dist/mixins/types.js +4 -0
  481. package/dist/mixins/types.js.map +1 -0
  482. package/dist/path/path-array.d.ts +16 -0
  483. package/dist/path/path-array.d.ts.map +1 -0
  484. package/dist/path/path-array.js +66 -0
  485. package/dist/path/path-array.js.map +1 -0
  486. package/dist/path/path-builder.d.ts +54 -0
  487. package/dist/path/path-builder.d.ts.map +1 -0
  488. package/dist/path/path-builder.js +306 -0
  489. package/dist/path/path-builder.js.map +1 -0
  490. package/dist/path/transform-arc.d.ts +5 -0
  491. package/dist/path/transform-arc.d.ts.map +1 -0
  492. package/dist/path/transform-arc.js +32 -0
  493. package/dist/path/transform-arc.js.map +1 -0
  494. package/dist/patterns.d.ts +11 -0
  495. package/dist/patterns.d.ts.map +1 -0
  496. package/dist/patterns.js +24 -0
  497. package/dist/patterns.js.map +1 -0
  498. package/dist/query.d.ts +11 -0
  499. package/dist/query.d.ts.map +1 -0
  500. package/dist/query.js +28 -0
  501. package/dist/query.js.map +1 -0
  502. package/dist/resources/content.d.ts +5 -0
  503. package/dist/resources/content.d.ts.map +1 -0
  504. package/dist/resources/content.js +27 -0
  505. package/dist/resources/content.js.map +1 -0
  506. package/dist/resources/references.d.ts +14 -0
  507. package/dist/resources/references.d.ts.map +1 -0
  508. package/dist/resources/references.js +72 -0
  509. package/dist/resources/references.js.map +1 -0
  510. package/dist/resources/validation.d.ts +4 -0
  511. package/dist/resources/validation.d.ts.map +1 -0
  512. package/dist/resources/validation.js +31 -0
  513. package/dist/resources/validation.js.map +1 -0
  514. package/dist/resources.d.ts +3 -0
  515. package/dist/resources.d.ts.map +1 -0
  516. package/dist/resources.js +2 -0
  517. package/dist/resources.js.map +1 -0
  518. package/dist/services/bounds.d.ts +30 -0
  519. package/dist/services/bounds.d.ts.map +1 -0
  520. package/dist/services/bounds.js +152 -0
  521. package/dist/services/bounds.js.map +1 -0
  522. package/dist/services/catalog.d.ts +5 -0
  523. package/dist/services/catalog.d.ts.map +1 -0
  524. package/dist/services/catalog.js +13 -0
  525. package/dist/services/catalog.js.map +1 -0
  526. package/dist/services/context.d.ts +23 -0
  527. package/dist/services/context.d.ts.map +1 -0
  528. package/dist/services/context.js +40 -0
  529. package/dist/services/context.js.map +1 -0
  530. package/dist/services/defs-manager.d.ts +28 -0
  531. package/dist/services/defs-manager.d.ts.map +1 -0
  532. package/dist/services/defs-manager.js +153 -0
  533. package/dist/services/defs-manager.js.map +1 -0
  534. package/dist/services/mount.d.ts +4 -0
  535. package/dist/services/mount.d.ts.map +1 -0
  536. package/dist/services/mount.js +17 -0
  537. package/dist/services/mount.js.map +1 -0
  538. package/dist/services/reference-value.d.ts +3 -0
  539. package/dist/services/reference-value.d.ts.map +1 -0
  540. package/dist/services/reference-value.js +6 -0
  541. package/dist/services/reference-value.js.map +1 -0
  542. package/dist/services/registry.d.ts +27 -0
  543. package/dist/services/registry.d.ts.map +1 -0
  544. package/dist/services/registry.js +148 -0
  545. package/dist/services/registry.js.map +1 -0
  546. package/dist/services/scheduler.d.ts +20 -0
  547. package/dist/services/scheduler.d.ts.map +1 -0
  548. package/dist/services/scheduler.js +91 -0
  549. package/dist/services/scheduler.js.map +1 -0
  550. package/dist/services/types.d.ts +36 -0
  551. package/dist/services/types.d.ts.map +1 -0
  552. package/dist/services/types.js +3 -0
  553. package/dist/services/types.js.map +1 -0
  554. package/dist/services/viewport.d.ts +14 -0
  555. package/dist/services/viewport.d.ts.map +1 -0
  556. package/dist/services/viewport.js +39 -0
  557. package/dist/services/viewport.js.map +1 -0
  558. package/dist/svg.d.ts +21 -0
  559. package/dist/svg.d.ts.map +1 -0
  560. package/dist/svg.js +91 -0
  561. package/dist/svg.js.map +1 -0
  562. package/dist/template/parts.d.ts +37 -0
  563. package/dist/template/parts.d.ts.map +1 -0
  564. package/dist/template/parts.js +176 -0
  565. package/dist/template/parts.js.map +1 -0
  566. package/dist/template/render.d.ts +28 -0
  567. package/dist/template/render.d.ts.map +1 -0
  568. package/dist/template/render.js +118 -0
  569. package/dist/template/render.js.map +1 -0
  570. package/dist/template/svg-tag.d.ts +12 -0
  571. package/dist/template/svg-tag.d.ts.map +1 -0
  572. package/dist/template/svg-tag.js +18 -0
  573. package/dist/template/svg-tag.js.map +1 -0
  574. package/dist/text/content.d.ts +36 -0
  575. package/dist/text/content.d.ts.map +1 -0
  576. package/dist/text/content.js +283 -0
  577. package/dist/text/content.js.map +1 -0
  578. package/dist/text/internals.d.ts +6 -0
  579. package/dist/text/internals.d.ts.map +1 -0
  580. package/dist/text/internals.js +2 -0
  581. package/dist/text/internals.js.map +1 -0
  582. package/dist/text/measure.d.ts +9 -0
  583. package/dist/text/measure.d.ts.map +1 -0
  584. package/dist/text/measure.js +32 -0
  585. package/dist/text/measure.js.map +1 -0
  586. package/dist/text/rich-textual.d.ts +19 -0
  587. package/dist/text/rich-textual.d.ts.map +1 -0
  588. package/dist/text/rich-textual.js +154 -0
  589. package/dist/text/rich-textual.js.map +1 -0
  590. package/dist/text/types.d.ts +37 -0
  591. package/dist/text/types.d.ts.map +1 -0
  592. package/dist/text/types.js +2 -0
  593. package/dist/text/types.js.map +1 -0
  594. package/dist/text/validation.d.ts +4 -0
  595. package/dist/text/validation.d.ts.map +1 -0
  596. package/dist/text/validation.js +13 -0
  597. package/dist/text/validation.js.map +1 -0
  598. package/dist/text.d.ts +13 -0
  599. package/dist/text.d.ts.map +1 -0
  600. package/dist/text.js +36 -0
  601. package/dist/text.js.map +1 -0
  602. package/dist/tree/lifecycle.d.ts +7 -0
  603. package/dist/tree/lifecycle.d.ts.map +1 -0
  604. package/dist/tree/lifecycle.js +33 -0
  605. package/dist/tree/lifecycle.js.map +1 -0
  606. package/dist/tree/ordering.d.ts +12 -0
  607. package/dist/tree/ordering.d.ts.map +1 -0
  608. package/dist/tree/ordering.js +40 -0
  609. package/dist/tree/ordering.js.map +1 -0
  610. package/dist/tree/reparent.d.ts +8 -0
  611. package/dist/tree/reparent.d.ts.map +1 -0
  612. package/dist/tree/reparent.js +55 -0
  613. package/dist/tree/reparent.js.map +1 -0
  614. package/dist/tree/structure.d.ts +10 -0
  615. package/dist/tree/structure.d.ts.map +1 -0
  616. package/dist/tree/structure.js +139 -0
  617. package/dist/tree/structure.js.map +1 -0
  618. package/dist/tree/traversal.d.ts +13 -0
  619. package/dist/tree/traversal.d.ts.map +1 -0
  620. package/dist/tree/traversal.js +45 -0
  621. package/dist/tree/traversal.js.map +1 -0
  622. package/dist/tree.d.ts +7 -0
  623. package/dist/tree.d.ts.map +1 -0
  624. package/dist/tree.js +7 -0
  625. package/dist/tree.js.map +1 -0
  626. package/dist/types/common.d.ts +94 -0
  627. package/dist/types/common.d.ts.map +1 -0
  628. package/dist/types/common.js +2 -0
  629. package/dist/types/common.js.map +1 -0
  630. package/dist/types/elements.d.ts +56 -0
  631. package/dist/types/elements.d.ts.map +1 -0
  632. package/dist/types/elements.js +2 -0
  633. package/dist/types/elements.js.map +1 -0
  634. package/dist/types/svg-wrapper.d.ts +28 -0
  635. package/dist/types/svg-wrapper.d.ts.map +1 -0
  636. package/dist/types/svg-wrapper.js +2 -0
  637. package/dist/types/svg-wrapper.js.map +1 -0
  638. package/dist/viewport.d.ts +33 -0
  639. package/dist/viewport.d.ts.map +1 -0
  640. package/dist/viewport.js +103 -0
  641. package/dist/viewport.js.map +1 -0
  642. package/package.json +141 -4
  643. package/reports/adoption.json +47 -0
  644. package/reports/animation-benchmark.json +680 -0
  645. package/reports/benchmark.json +118 -0
  646. package/reports/creation.json +68 -0
  647. package/reports/interchange-benchmark.json +146 -0
  648. package/reports/p10-validation.md +100 -0
  649. package/reports/p11-validation.md +69 -0
  650. package/reports/p13-validation.md +48 -0
  651. package/reports/p4-validation.md +57 -0
  652. package/reports/p6-validation.md +60 -0
  653. package/reports/p7-validation.md +84 -0
  654. package/reports/p8-validation.md +75 -0
  655. package/reports/public-api-contract.json +9499 -0
  656. package/reports/public-api-review.md +308 -0
  657. package/reports/size-parity.json +504 -0
  658. package/reports/size.json +51 -0
  659. package/reports/svgjs-action-coverage.json +3835 -0
  660. package/reports/svgjs-comparison-gc.json +2763 -0
  661. package/reports/svgjs-comparison-gc.md +30 -0
  662. package/reports/svgjs-comparison.json +8219 -0
  663. package/reports/svgjs-comparison.md +42 -0
  664. package/reports/svgjs-element-actions.md +375 -0
  665. package/reports/svgjs-element-api-inventory.json +7754 -0
  666. package/reports/svgjs-parity-baseline.json +9184 -0
  667. package/reports/svgjs-parity-current.json +9699 -0
  668. package/reports/svgjs-stability.md +26 -0
  669. package/reports/svgjs-trial-a.json +8219 -0
  670. package/reports/svgjs-trial-a.md +42 -0
  671. package/reports/svgjs-trial-b.json +8219 -0
  672. package/reports/svgjs-trial-b.md +42 -0
  673. package/src/advanced.ts +35 -0
  674. package/src/animation/channels.ts +243 -0
  675. package/src/animation/ease.ts +50 -0
  676. package/src/animation/interpolate.ts +197 -0
  677. package/src/animation/timeline.ts +529 -0
  678. package/src/animation/types.ts +74 -0
  679. package/src/animation.ts +27 -0
  680. package/src/catalog/attributes.ts +47 -0
  681. package/src/catalog/css.ts +25 -0
  682. package/src/catalog/define-element.ts +130 -0
  683. package/src/catalog/fragment.ts +110 -0
  684. package/src/catalog/namespaces.ts +26 -0
  685. package/src/catalog/native-content.ts +29 -0
  686. package/src/catalog/types.ts +31 -0
  687. package/src/catalog.ts +88 -0
  688. package/src/changes/mutation.ts +16 -0
  689. package/src/changes/restore.ts +373 -0
  690. package/src/changes/service.ts +388 -0
  691. package/src/changes/state.ts +242 -0
  692. package/src/changes/types.ts +164 -0
  693. package/src/changes.ts +55 -0
  694. package/src/core/attribute-validation.ts +2 -0
  695. package/src/core/destruction.ts +11 -0
  696. package/src/core/mix.ts +4 -0
  697. package/src/core/native-validation.ts +2 -0
  698. package/src/core/node.ts +401 -0
  699. package/src/core/shape.ts +21 -0
  700. package/src/core/types.ts +53 -0
  701. package/src/data.ts +183 -0
  702. package/src/decorators/attr.ts +78 -0
  703. package/src/decorators/attrs.ts +66 -0
  704. package/src/dom/attributes.ts +277 -0
  705. package/src/dom/content.ts +88 -0
  706. package/src/dom/create.ts +255 -0
  707. package/src/dom/events.ts +51 -0
  708. package/src/dom/images.ts +26 -0
  709. package/src/dom/namespace.ts +3 -0
  710. package/src/dom/namespaced-attributes.ts +34 -0
  711. package/src/dom/text.ts +57 -0
  712. package/src/dom/types.ts +16 -0
  713. package/src/dom/viewport.ts +27 -0
  714. package/src/elements/circle.ts +65 -0
  715. package/src/elements/clip-path.ts +29 -0
  716. package/src/elements/defs.ts +11 -0
  717. package/src/elements/descriptive.ts +39 -0
  718. package/src/elements/ellipse.ts +69 -0
  719. package/src/elements/foreign-object.ts +102 -0
  720. package/src/elements/generic.ts +33 -0
  721. package/src/elements/gradient.ts +195 -0
  722. package/src/elements/group.ts +17 -0
  723. package/src/elements/image.ts +239 -0
  724. package/src/elements/index.ts +39 -0
  725. package/src/elements/instance-hit.ts +19 -0
  726. package/src/elements/line.ts +75 -0
  727. package/src/elements/link.ts +34 -0
  728. package/src/elements/marker.ts +90 -0
  729. package/src/elements/mask.ts +85 -0
  730. package/src/elements/path.ts +78 -0
  731. package/src/elements/pattern.ts +89 -0
  732. package/src/elements/point-shape.ts +67 -0
  733. package/src/elements/polygon.ts +5 -0
  734. package/src/elements/polyline.ts +5 -0
  735. package/src/elements/rect.ts +73 -0
  736. package/src/elements/stop.ts +51 -0
  737. package/src/elements/style.ts +43 -0
  738. package/src/elements/svg.ts +95 -0
  739. package/src/elements/symbol.ts +70 -0
  740. package/src/elements/text-path.ts +67 -0
  741. package/src/elements/text.ts +133 -0
  742. package/src/elements/tspan.ts +47 -0
  743. package/src/elements/types.ts +234 -0
  744. package/src/elements/use-geometry.ts +43 -0
  745. package/src/elements/use.ts +100 -0
  746. package/src/events/dom-events.ts +235 -0
  747. package/src/events/dom-lifecycle.ts +12 -0
  748. package/src/events/dom-router.ts +96 -0
  749. package/src/events/dom-types.ts +42 -0
  750. package/src/events/emitter.ts +65 -0
  751. package/src/events/focusable.ts +20 -0
  752. package/src/events/pointer.ts +147 -0
  753. package/src/events/types.ts +8 -0
  754. package/src/events.ts +10 -0
  755. package/src/geometry/bake-ellipse.ts +33 -0
  756. package/src/geometry/point-array.ts +113 -0
  757. package/src/geometry/point-list.ts +59 -0
  758. package/src/index.ts +76 -0
  759. package/src/interchange/clone.ts +97 -0
  760. package/src/interchange/dom.ts +38 -0
  761. package/src/interchange/markup.ts +66 -0
  762. package/src/interchange/policy.ts +146 -0
  763. package/src/interchange/reconstruct.ts +138 -0
  764. package/src/interchange/references.ts +118 -0
  765. package/src/interchange/snapshot.ts +50 -0
  766. package/src/interchange/types.ts +18 -0
  767. package/src/interchange.ts +4 -0
  768. package/src/masks.ts +62 -0
  769. package/src/math/bbox.ts +106 -0
  770. package/src/math/length.ts +19 -0
  771. package/src/math/matrix.ts +181 -0
  772. package/src/math/vec2.ts +41 -0
  773. package/src/math/viewbox.ts +29 -0
  774. package/src/math/viewport.ts +58 -0
  775. package/src/media/length.ts +20 -0
  776. package/src/media/types.ts +37 -0
  777. package/src/media/validation.ts +21 -0
  778. package/src/media.ts +84 -0
  779. package/src/mixins/creatable.ts +96 -0
  780. package/src/mixins/guards.ts +26 -0
  781. package/src/mixins/parent-internals.ts +17 -0
  782. package/src/mixins/parent.ts +193 -0
  783. package/src/mixins/placement.ts +3 -0
  784. package/src/mixins/resourceful.ts +64 -0
  785. package/src/mixins/sizable.ts +208 -0
  786. package/src/mixins/sizing-internals.ts +16 -0
  787. package/src/mixins/styleable.ts +103 -0
  788. package/src/mixins/textual.ts +50 -0
  789. package/src/mixins/transform-state.ts +141 -0
  790. package/src/mixins/transformable.ts +359 -0
  791. package/src/mixins/types.ts +194 -0
  792. package/src/path/path-array.ts +88 -0
  793. package/src/path/path-builder.ts +346 -0
  794. package/src/path/transform-arc.ts +50 -0
  795. package/src/patterns.ts +32 -0
  796. package/src/query.ts +66 -0
  797. package/src/resources/content.ts +28 -0
  798. package/src/resources/references.ts +93 -0
  799. package/src/resources/validation.ts +27 -0
  800. package/src/resources.ts +7 -0
  801. package/src/services/bounds.ts +153 -0
  802. package/src/services/catalog.ts +14 -0
  803. package/src/services/context.ts +46 -0
  804. package/src/services/defs-manager.ts +158 -0
  805. package/src/services/mount.ts +17 -0
  806. package/src/services/reference-value.ts +8 -0
  807. package/src/services/registry.ts +156 -0
  808. package/src/services/scheduler.ts +88 -0
  809. package/src/services/types.ts +48 -0
  810. package/src/services/viewport.ts +50 -0
  811. package/src/svg.ts +112 -0
  812. package/src/template/parts.ts +203 -0
  813. package/src/template/render.ts +142 -0
  814. package/src/template/svg-tag.ts +20 -0
  815. package/src/text/content.ts +299 -0
  816. package/src/text/internals.ts +6 -0
  817. package/src/text/measure.ts +37 -0
  818. package/src/text/rich-textual.ts +169 -0
  819. package/src/text/types.ts +45 -0
  820. package/src/text/validation.ts +13 -0
  821. package/src/text.ts +47 -0
  822. package/src/tree/lifecycle.ts +37 -0
  823. package/src/tree/ordering.ts +47 -0
  824. package/src/tree/reparent.ts +64 -0
  825. package/src/tree/structure.ts +166 -0
  826. package/src/tree/traversal.ts +52 -0
  827. package/src/tree.ts +24 -0
  828. package/src/types/common.ts +103 -0
  829. package/src/types/elements.ts +59 -0
  830. package/src/types/svg-wrapper.ts +76 -0
  831. package/src/viewport.ts +132 -0
package/API.md ADDED
@@ -0,0 +1,169 @@
1
+ # Public entry points
2
+
3
+ Generated from emitted declarations and document-free runtime imports.
4
+ Run `npm run api:check` to detect changes; review differences before `api:update`.
5
+
6
+ Only documented operations are supported application APIs. Deep imports, mutable
7
+ service bookkeeping, TypeScript-private methods and undocumented symbol hooks remain internal,
8
+ even when JavaScript can reach them. Prototype reachability is recorded separately
9
+ in `reports/public-api-contract.json` for review; it is not a support commitment.
10
+
11
+ ## @rasamjs/core
12
+
13
+ Runtime exports (32):
14
+
15
+ `BBox`, `Circle`, `ClipPath`, `Defs`, `Ellipse`, `Group`, `Line`, `LinearGradient`, `Marker`, `Matrix`, `Path`, `PathArray`, `PathBuilder`, `PointArray`, `Polygon`, `Polyline`, `RadialGradient`, `Rect`, `Renderer`, `SVG`, `Shape`, `Stop`, `Svg`, `SvgNode`, `SvgTemplate`, `SvgText`, `Use`, `Vec2`, `ViewBox`, `ViewportError`, `attr`, `svg`.
16
+
17
+ Type-only exports (46):
18
+
19
+ `AnyNode`, `AttributeValue`, `Bounds`, `Box`, `CircleOptions`, `ClipPathOptions`, `CommonAttributes`, `Disposable`, `DrawingPointerEvent`, `EllipseOptions`, `GeometryChange`, `GradientStop`, `Length`, `LineOptions`, `LinearGradientOptions`, `MarkerOptions`, `MatrixDecomposition`, `MatrixValues`, `NestedSvgOptions`, `NodeEvents`, `PaintValue`, `PathAttributes`, `PathCommand`, `PathInput`, `PathOptions`, `PathSegment`, `Point`, `PointInput`, `PointerEventType`, `PolygonOptions`, `PolylineAttributes`, `PolylineOptions`, `RadialGradientOptions`, `RectOptions`, `ResourceReference`, `SVGOptions`, `StyleProperties`, `SvgAttributes`, `SvgOptions`, `TemplateInstance`, `TemplateValue`, `TextAttributes`, `TextMeasurementProvider`, `TextOptions`, `TransformState`, `UseOptions`.
20
+
21
+ ## @rasamjs/core/advanced
22
+
23
+ Runtime exports (57):
24
+
25
+ `Attributes`, `BBox`, `BoundsService`, `Circle`, `ClipPath`, `Creatable`, `Defs`, `DefsManager`, `DomFactory`, `DrawingContext`, `Elements`, `Ellipse`, `Emitter`, `Gradient`, `Group`, `Guards`, `Line`, `LinearGradient`, `Marker`, `Matrix`, `Namespace`, `Parent`, `Path`, `PathArray`, `PathBuilder`, `PathGeometry`, `PointArray`, `PointerRouter`, `Polygon`, `Polyline`, `RadialGradient`, `Rect`, `Registry`, `Renderer`, `SVG`, `Scheduler`, `Shape`, `Sizable`, `Stop`, `Styleable`, `Svg`, `SvgNode`, `SvgTag`, `SvgTemplate`, `SvgText`, `Textual`, `Transformable`, `Use`, `Vec2`, `ViewBox`, `ViewportError`, `attr`, `isParent`, `isTextual`, `isTransformable`, `mix`, `svg`.
26
+
27
+ Type-only exports (52):
28
+
29
+ `AnyNode`, `AttributeValue`, `Bounds`, `Box`, `CircleOptions`, `ClipPathOptions`, `CommonAttributes`, `CreatableFeature`, `Ctor`, `Disposable`, `DrawingPointerEvent`, `ElementClass`, `EllipseOptions`, `GeometryChange`, `GradientStop`, `Length`, `LineOptions`, `LinearGradientOptions`, `MarkerOptions`, `MatrixDecomposition`, `MatrixValues`, `NestedSvgOptions`, `NodeEvents`, `PaintValue`, `ParentFeature`, `ParentNode`, `PathAttributes`, `PathCommand`, `PathInput`, `PathOptions`, `PathSegment`, `Point`, `PointInput`, `PointerEventType`, `PolygonOptions`, `PolylineAttributes`, `PolylineOptions`, `RadialGradientOptions`, `RectOptions`, `ResourceReference`, `SVGOptions`, `SizableFeature`, `StyleProperties`, `SvgAttributes`, `SvgOptions`, `TemplateInstance`, `TemplateValue`, `TextAttributes`, `TextMeasurementProvider`, `TextOptions`, `TransformState`, `UseOptions`.
30
+
31
+ ## @rasamjs/core/animation
32
+
33
+ Runtime exports (3):
34
+
35
+ `ManualClock`, `animate`, `timeline`.
36
+
37
+ Type-only exports (11):
38
+
39
+ `AnimatedValue`, `AnimationClock`, `AnimationRunner`, `AnimationTarget`, `Easing`, `MotionPreference`, `RunnerOptions`, `RunnerOutcome`, `RunnerState`, `Timeline`, `TimelineOptions`.
40
+
41
+ ## @rasamjs/core/catalog
42
+
43
+ Runtime exports (21):
44
+
45
+ `Description`, `ForeignObject`, `GenericContainer`, `GenericElement`, `HTML_NAMESPACE`, `Metadata`, `SVG_NAMESPACE`, `SvgFragment`, `SvgStyle`, `Title`, `XLINK_NAMESPACE`, `XML_NAMESPACE`, `catalogElements`, `defineElement`, `description`, `foreignObject`, `fragment`, `metadata`, `registerCatalog`, `stylesheet`, `title`.
46
+
47
+ Type-only exports (7):
48
+
49
+ `CssDeclarations`, `DescriptiveOptions`, `ElementDefinition`, `ForeignObjectOptions`, `GenericAttributes`, `HtmlElementOptions`, `StylesheetOptions`.
50
+
51
+ ## @rasamjs/core/changes
52
+
53
+ Runtime exports (14):
54
+
55
+ `ChangeConflictError`, `ChangeObserverError`, `ChangeRollbackError`, `beginChangeGroup`, `captureModelState`, `changeKey`, `claimRecorder`, `combineChanges`, `observeChanges`, `restoreChanges`, `restoreModelState`, `sameState`, `validateModelState`, `withChanges`.
56
+
57
+ Type-only exports (13):
58
+
59
+ `ChangeBatch`, `ChangeEvent`, `ChangeGroup`, `ChangeMetadata`, `ContentState`, `ModelChange`, `ModelFeatures`, `ModelSnapshot`, `NativeNodeState`, `NodeHandle`, `Placement`, `PropertyState`, `TextPolicies`.
60
+
61
+ ## @rasamjs/core/data
62
+
63
+ Runtime exports (5):
64
+
65
+ `data`, `forget`, `memory`, `remember`, `round`.
66
+
67
+ Type-only exports (0):
68
+
69
+ .
70
+
71
+ ## @rasamjs/core/events
72
+
73
+ Runtime exports (6):
74
+
75
+ `dispatch`, `dispatchCustom`, `focusable`, `onCustom`, `onDom`, `onMany`.
76
+
77
+ Type-only exports (5):
78
+
79
+ `DomEventType`, `DomListener`, `DomListenerOptions`, `DrawingDomEvent`, `FocusOptions`.
80
+
81
+ ## @rasamjs/core/interchange
82
+
83
+ Runtime exports (3):
84
+
85
+ `cloneNode`, `exportSvg`, `importSvg`.
86
+
87
+ Type-only exports (3):
88
+
89
+ `CloneOptions`, `ExportOptions`, `ImportOptions`.
90
+
91
+ ## @rasamjs/core/masks
92
+
93
+ Runtime exports (7):
94
+
95
+ `Mask`, `mask`, `maskElements`, `maskWith`, `masker`, `registerMasks`, `unmask`.
96
+
97
+ Type-only exports (1):
98
+
99
+ `MaskOptions`.
100
+
101
+ ## @rasamjs/core/media
102
+
103
+ Runtime exports (11):
104
+
105
+ `Link`, `SvgImage`, `SvgSymbol`, `image`, `link`, `linkTo`, `linker`, `mediaElements`, `registerMedia`, `symbol`, `unlink`.
106
+
107
+ Type-only exports (8):
108
+
109
+ `ImageLoadCallbacks`, `ImageLoadError`, `ImageLoadResult`, `ImageLoadingState`, `ImageOptions`, `IntrinsicSize`, `LinkOptions`, `SymbolOptions`.
110
+
111
+ ## @rasamjs/core/patterns
112
+
113
+ Runtime exports (4):
114
+
115
+ `Pattern`, `pattern`, `patternElements`, `registerPatterns`.
116
+
117
+ Type-only exports (1):
118
+
119
+ `PatternOptions`.
120
+
121
+ ## @rasamjs/core/query
122
+
123
+ Runtime exports (4):
124
+
125
+ `matches`, `query`, `queryFirst`, `queryNative`.
126
+
127
+ Type-only exports (1):
128
+
129
+ `NodePredicate`.
130
+
131
+ ## @rasamjs/core/resources
132
+
133
+ Runtime exports (4):
134
+
135
+ `classifyReference`, `consumers`, `resolveReference`, `unbindConsumers`.
136
+
137
+ Type-only exports (1):
138
+
139
+ `LocalReference`.
140
+
141
+ ## @rasamjs/core/text
142
+
143
+ Runtime exports (5):
144
+
145
+ `TextPath`, `Tspan`, `registerText`, `textElements`, `textOnPath`.
146
+
147
+ Type-only exports (7):
148
+
149
+ `FontOptions`, `TextContentPart`, `TextOnPathOptions`, `TextPathAttributes`, `TextPathOptions`, `TextRunMeasurementProvider`, `TspanOptions`.
150
+
151
+ ## @rasamjs/core/tree
152
+
153
+ Runtime exports (25):
154
+
155
+ `after`, `ancestors`, `back`, `backward`, `before`, `clear`, `detachChildren`, `first`, `flatten`, `forward`, `front`, `index`, `insertAfter`, `insertBefore`, `last`, `next`, `previous`, `reparentTo`, `reparentToRoot`, `replace`, `rootNode`, `siblings`, `ungroup`, `unwrap`, `wrap`.
156
+
157
+ Type-only exports (0):
158
+
159
+ .
160
+
161
+ ## @rasamjs/core/viewport
162
+
163
+ Runtime exports (7):
164
+
165
+ `ViewportError`, `boundsIn`, `clientBounds`, `isRoot`, `nested`, `viewbox`, `zoom`.
166
+
167
+ Type-only exports (2):
168
+
169
+ `NestedSvgOptions`, `ViewBoxInput`.
package/CHANGELOG.md ADDED
@@ -0,0 +1,196 @@
1
+ # Changelog
2
+
3
+ ## [0.1.1] (unreleased)
4
+
5
+ ### Fixed
6
+
7
+ - Reading `width()` or `height()` no longer opens a change run. With change listeners
8
+ attached (for example a transformer, selection or history), each read used to capture
9
+ the node's sibling order, so measuring n fresh siblings was O(n²). The first snapping
10
+ drag over 1,000 shapes drops from 0.4–0.8 s to under 50 ms. Writes are still recorded.
11
+
12
+ ## [0.1.0] - 2026-10-29
13
+
14
+ Initial release, coordinated with `@rasamjs/history` and `@rasamjs/transformer`.
15
+
16
+ ### Fixed
17
+
18
+ - Change observation preserves a sole `ChangeConflictError` for rejected writes.
19
+ Failed restoration recovery throws a typed `ChangeRollbackError`.
20
+
21
+ - `rotate()` and `scale()` pivot on the center of the current geometry bounds until
22
+ `origin()` is called, so shapes placed by x/y, `translate`, `move` or a parent group
23
+ turn and scale identically. Previously the implicit origin was local `(0, 0)`.
24
+ After a resize or other geometry edit, the next `rotate()` or `scale()` keeps the
25
+ shape in place; position absorbs the pivot move instead of the shape jumping.
26
+
27
+ - Independent position, rotation, scale, width and height animations can run
28
+ together. Manual seek/finish commits before completion callbacks, singular matrix
29
+ morphs retain shear, and negative size endpoints fail before scheduling.
30
+ - Root zoom uses CSS viewport dimensions, including percentage sizing, while
31
+ excluding ancestor transforms from the reported level.
32
+ - Numerical rounding preserves URLs, paint, identifiers and application values,
33
+ including explicitly selected attributes.
34
+
35
+ - Opening `playground/index.html` directly now loads a standalone browser script
36
+ generated by `npm run build`. The Vite route retains live TypeScript loading,
37
+ and startup failures display instructions instead of an empty drawing area.
38
+
39
+ ### Added
40
+
41
+ - Drawing-wide semantic model changes through `@rasamjs/core/changes`, normalized local
42
+ `attributechange` events, neutral interaction groups, and validated state
43
+ restoration/reconstruction for the optional `@rasamjs/history` package.
44
+
45
+ - Transformer core APIs: `Matrix.decompose()` and `PathArray.transform()`;
46
+ side-effect-free `rotation()`, `scale()` and `origin()` getters; public
47
+ `geometryMatrix()`; immutable, JSON-compatible `transformState()` save/restore
48
+ including editable geometry; and shape-specific `bakeSizing()`.
49
+ - Affine path transforms retain elliptical arcs through principal-axis recovery,
50
+ reverse sweep under reflection and turn degenerate arcs into lines. Baking
51
+ preserves geometric placement; unsupported shape sizing remains a transform.
52
+ - Animation reads exact component values without setter probes, including
53
+ negative scales, multiple turns and collapsed sizing.
54
+
55
+ - Opt-in `@rasamjs/core/data`: `data()` stores values in `data-*` attributes, `remember()`,
56
+ `memory()` and `forget()` keep per-node values in memory until destruction, and
57
+ `round()` rounds unitless numeric attributes. This closes the last two omitted
58
+ comparison actions without adding shared methods.
59
+
60
+ - P13 acceptance tooling: a complete migration guide, generated runtime/type export
61
+ and prototype inventory, source-consistent release checks, documentation/evidence
62
+ link validation, every-subpath packed imports, debugger source inclusion and
63
+ serial creation/adoption/interchange/update/animation measurements. A combined
64
+ scene exercises resources, rich text, interactions, motion and a passive round trip.
65
+ `private: true` remains the publication guard; no publish operation is automated.
66
+
67
+ - P11 opt-in `@rasamjs/core/query` and `@rasamjs/core/interchange`: frozen managed/native query
68
+ snapshots, typed predicates and matches; logical-state clones with fresh IDs,
69
+ internal reference remapping, shared or copied external resources, independent
70
+ sizing and multiline policies; referenced-defs XML export and staged passive SVG
71
+ import with namespace/schema/URL checks and rollback. Includes round-trip examples,
72
+ declarations, three-engine tests and separate 5/16 KiB bundle budgets.
73
+
74
+ - P12 opt-in `@rasamjs/core/animation`: root-owned timelines, runners with duration,
75
+ delay, CSS easing, loops, yoyo, `after` sequencing, pause/play/seek/reverse/finish/
76
+ cancel and settled outcomes, an injectable clock with `ManualClock`, and
77
+ reduced-motion handling that follows the system preference. Values interpolate for
78
+ matching units, number lists, hex/rgb colours, component and decomposed matrix
79
+ transforms, sizes, equal-length points and same-topology paths; other values are
80
+ rejected before scheduling. The latest runner takes over shared channels, direct
81
+ writes interrupt them, and destruction cancels. Frames write through existing
82
+ setters and commit once. No core code changes; the entry point has a 12 KiB budget.
83
+
84
+ - P10 opt-in `@rasamjs/core/catalog`: descriptive content and stylesheet factories,
85
+ explicit generic schemas/capabilities, namespaced attribute bindings,
86
+ ForeignObject native DOM boundaries and reusable detached fragments. Adoption
87
+ preserves unmanaged metadata and opaque native content; forest insertion
88
+ prevalidates ownership and rolls back native failures. Includes a runnable
89
+ catalog example, declarations, namespace tests and three-engine browser coverage.
90
+
91
+ - P9 opt-in `@rasamjs/core/masks` and `@rasamjs/core/patterns`: defs-owned Mask and Pattern
92
+ resources with validated units, regions, `mask-type`, tiles, viewBox and
93
+ `patternTransform`; `maskWith`/`unmask`/`masker` with self and ancestor masking
94
+ rejected; pattern paint through `fill()`/`stroke()`; atomic content updates;
95
+ per-drawing registration for adoption and templates. Masks and patterns never
96
+ change geometric bounds. Core gains the `mask` attribute (about 25 bytes gzip).
97
+ Includes three-engine pixel tests and a runnable example.
98
+
99
+ - P8 `@rasamjs/core/text` constructors/registration for Tspan and TextPath, ordered managed
100
+ text runs, explicit rich builds and plain replacement, font/line helpers, native
101
+ glyph advance measurement and typed path-label creation. Adoption and static
102
+ primitive templates retain mixed order and native text/span identity. Local-font
103
+ browser tests and an interactive text example cover layout and reference lifetime.
104
+
105
+ - P7 opt-in `@rasamjs/core/media`: Image, Symbol and Link constructors, typed factories,
106
+ per-drawing catalogs for adoption/templates, image metadata callbacks with stale
107
+ request suppression and teardown cleanup, intrinsic sizing, reference-protected
108
+ symbol instances and link/unlink operations. Use dimensions map symbol/nested SVG
109
+ viewports while ordinary target sizing remains geometric. Includes local image
110
+ fixtures, three-engine browser coverage and a runnable media example.
111
+
112
+ - P5 nested viewport geometry: x/y, viewBox and every `preserveAspectRatio`
113
+ alignment of nested `<svg>` elements map into root-space bounds, conversions, hit
114
+ tests, `Use` references and tree moves. Unresolved viewports report `unavailable`
115
+ bounds, and `worldMatrix()`/`toRoot()` throw `ViewportError`. Opt-in
116
+ `@rasamjs/core/viewport` adds `viewbox()`, focal `zoom()`, `nested()`, `isRoot()`,
117
+ `boundsIn()` and `clientBounds()`, with a runnable viewport example. Root drawings
118
+ register `Svg`, so nested `<svg>` markup is adoptable. The selective budget rose from 15 KiB to 16 KiB gzip, and the catalog budget from 24 KiB to 25 KiB, for the core mapping. After the final review fixes, the selective budget rose again to 20 KiB.
119
+
120
+ - P4 opt-in `@rasamjs/core/events`: typed native/custom events, shared bubbling delegation,
121
+ direct capture/passive/non-bubbling listeners, once, AbortSignal, multiple-event
122
+ registration, dispatch/cancellation and lifecycle cleanup. Opt-in `focusable()`
123
+ configures keyboard focus; existing pointer `on()` contracts are preserved.
124
+
125
+ - P6 resource APIs: stable `getDefs()` shared with mounting, gradient paint matrices
126
+ and endpoints, staged stop replacement, child-returning `createStop()`, partial
127
+ stop updates, marker helpers and validated clip/marker content replacement.
128
+ Opt-in `@rasamjs/core/resources` provides typed consumer queries/unbinding, explicit raw
129
+ local lookup and reference classification, with a runnable resource example.
130
+
131
+ - Opt-in `@rasamjs/core/tree` traversal, ordering, reference-safe clear/detach, replacement,
132
+ wrapping, affine reparenting, ungrouping and flattening. Shared indexed `add()`
133
+ preserves managed/native order and connected pointer capture; moves across nested
134
+ viewports preserve root geometry since P5. Static drawing bundles exclude tree helpers.
135
+
136
+ - P0–P2 SVG.js capability milestone: regenerable comparison probes and action
137
+ coverage, documented contracts, typed attribute snapshots, class/visibility and
138
+ style conveniences, atomic size/radius helpers, parent-space bounds placement,
139
+ explicit affine composition, immutable point/path values, plot editing and
140
+ adapter-backed native path length/point reads. Later roadmap phases remain deferred.
141
+
142
+ - Typed SVG creation and adoption through `SVG()`, concrete element classes, and
143
+ per-drawing registration, with no runtime dependencies or DOM access on import.
144
+ - Shapes, text, groups, gradients, markers, clip paths, and typed local references.
145
+ - Fluent geometry, paint, sizing, affine transforms, coordinate conversion, and
146
+ geometric bounds with explicit empty and unavailable results.
147
+ - Frame-coalesced writes, synchronous batches and flushes, reusable detachment,
148
+ permanent destruction, and reference-aware resource ownership.
149
+ - Static SVG templates with primitive bindings and stable node identity on updates.
150
+ - Delegated pointer events, pointer capture, a rectangle example, and an interactive
151
+ LED playground.
152
+ - Main and advanced ESM entry points with declarations; unit, three-engine browser,
153
+ packed-consumer, size, and benchmark checks.
154
+ - MIT license and documented public API review, limitations, and release status.
155
+
156
+ ### Changed
157
+
158
+ - Native text/span wrapper inference returns `SvgText | Tspan`, reflecting their
159
+ structurally identical DOM interfaces; factory returns remain concrete. Narrow
160
+ native results with `instanceof`. The P8 catalog budget is 28 KiB gzip (was 25),
161
+ with a separate 12 KiB text budget and unchanged 16 KiB selective budget.
162
+
163
+ - Renamed the internal class decorator from `@attributes` to `@attrs` and its module
164
+ to `src/decorators/attrs.ts`. The public field decorator remains `@attr`.
165
+ - `TemplateInstance` is now a type-only export; create instances with
166
+ `Renderer.render()`. `@rasamjs/core/advanced` re-exports the main entry point instead of
167
+ repeating its export list.
168
+ - Selected `@rasamjs/core` and candidate version `0.1.0`. npm returned 404 for the name on
169
+ 2026-10-25; availability must be checked again before publication.
170
+
171
+ ### Fixed
172
+
173
+ - P6 resource disposal rejects new references and reattachment to any selected old
174
+ descendant during cleanup callbacks. Raw lookup skips targets pending disposal.
175
+ - Resource URLs and typed hrefs encode authored IDs; raw lookup decodes fragments
176
+ once and rejects malformed encodings, CSS escapes and control characters.
177
+ - Failed reference validation leaves target IDs unchanged; unsupported resource
178
+ owners and rejecting defs hosts leave no staged wrappers. Undefined marker
179
+ options retain creation defaults. Existing drawing teardown/listener behavior is preserved.
180
+
181
+ ### Performance snapshot — 2026-10-25
182
+
183
+ | Check | Measured | Budget |
184
+ | --------------------------------------------------------- | ---------------------------------------------------- | -------------------------- |
185
+ | Selective root + rectangle bundle | 43,258 bytes minified; 13,257 bytes gzip (12.95 KiB) | 15,360 bytes gzip (15 KiB) |
186
+ | 1,000 existing circles, changed fill + synchronous commit | 0.50 ms median; 1.10 ms p95 | Median below 16 ms |
187
+
188
+ Bundle fixture: `fixtures/size.ts`; unrelated shapes and templates are excluded.
189
+ Fill fixture: `scripts/benchmark.mjs`, 20 warmups followed by 100 measured batches;
190
+ includes logical updates and DOM commits, excludes paint.
191
+
192
+ Reference environment: Windows 10.0.26200, Intel Core i7-10610U at 1.80 GHz,
193
+ 8 logical CPUs, Node v24.21.0, Chromium 156.0.8078.4.
194
+ Raw samples and bundle composition are in `reports/benchmark.json` and
195
+ `reports/size.json`. These are operation timings on the recorded machine, not
196
+ end-to-end frame rates.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 rasam contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.