@rasamjs/core 0.0.0-stage → 0.1.0

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 +187 -0
  3. package/LICENSE +21 -0
  4. package/README.md +675 -2
  5. package/RELEASING.md +118 -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 +176 -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 +9700 -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,187 @@
1
+ # Changelog
2
+
3
+ ## [0.1.0] - 2026-10-29
4
+
5
+ Initial release, coordinated with `@rasamjs/history` and `@rasamjs/transformer`.
6
+
7
+ ### Fixed
8
+
9
+ - Change observation preserves a sole `ChangeConflictError` for rejected writes.
10
+ Failed restoration recovery throws a typed `ChangeRollbackError`.
11
+
12
+ - `rotate()` and `scale()` pivot on the center of the current geometry bounds until
13
+ `origin()` is called, so shapes placed by x/y, `translate`, `move` or a parent group
14
+ turn and scale identically. Previously the implicit origin was local `(0, 0)`.
15
+ After a resize or other geometry edit, the next `rotate()` or `scale()` keeps the
16
+ shape in place; position absorbs the pivot move instead of the shape jumping.
17
+
18
+ - Independent position, rotation, scale, width and height animations can run
19
+ together. Manual seek/finish commits before completion callbacks, singular matrix
20
+ morphs retain shear, and negative size endpoints fail before scheduling.
21
+ - Root zoom uses CSS viewport dimensions, including percentage sizing, while
22
+ excluding ancestor transforms from the reported level.
23
+ - Numerical rounding preserves URLs, paint, identifiers and application values,
24
+ including explicitly selected attributes.
25
+
26
+ - Opening `playground/index.html` directly now loads a standalone browser script
27
+ generated by `npm run build`. The Vite route retains live TypeScript loading,
28
+ and startup failures display instructions instead of an empty drawing area.
29
+
30
+ ### Added
31
+
32
+ - Drawing-wide semantic model changes through `@rasamjs/core/changes`, normalized local
33
+ `attributechange` events, neutral interaction groups, and validated state
34
+ restoration/reconstruction for the optional `@rasamjs/history` package.
35
+
36
+ - Transformer core APIs: `Matrix.decompose()` and `PathArray.transform()`;
37
+ side-effect-free `rotation()`, `scale()` and `origin()` getters; public
38
+ `geometryMatrix()`; immutable, JSON-compatible `transformState()` save/restore
39
+ including editable geometry; and shape-specific `bakeSizing()`.
40
+ - Affine path transforms retain elliptical arcs through principal-axis recovery,
41
+ reverse sweep under reflection and turn degenerate arcs into lines. Baking
42
+ preserves geometric placement; unsupported shape sizing remains a transform.
43
+ - Animation reads exact component values without setter probes, including
44
+ negative scales, multiple turns and collapsed sizing.
45
+
46
+ - Opt-in `@rasamjs/core/data`: `data()` stores values in `data-*` attributes, `remember()`,
47
+ `memory()` and `forget()` keep per-node values in memory until destruction, and
48
+ `round()` rounds unitless numeric attributes. This closes the last two omitted
49
+ comparison actions without adding shared methods.
50
+
51
+ - P13 acceptance tooling: a complete migration guide, generated runtime/type export
52
+ and prototype inventory, source-consistent release checks, documentation/evidence
53
+ link validation, every-subpath packed imports, debugger source inclusion and
54
+ serial creation/adoption/interchange/update/animation measurements. A combined
55
+ scene exercises resources, rich text, interactions, motion and a passive round trip.
56
+ `private: true` remains the publication guard; no publish operation is automated.
57
+
58
+ - P11 opt-in `@rasamjs/core/query` and `@rasamjs/core/interchange`: frozen managed/native query
59
+ snapshots, typed predicates and matches; logical-state clones with fresh IDs,
60
+ internal reference remapping, shared or copied external resources, independent
61
+ sizing and multiline policies; referenced-defs XML export and staged passive SVG
62
+ import with namespace/schema/URL checks and rollback. Includes round-trip examples,
63
+ declarations, three-engine tests and separate 5/16 KiB bundle budgets.
64
+
65
+ - P12 opt-in `@rasamjs/core/animation`: root-owned timelines, runners with duration,
66
+ delay, CSS easing, loops, yoyo, `after` sequencing, pause/play/seek/reverse/finish/
67
+ cancel and settled outcomes, an injectable clock with `ManualClock`, and
68
+ reduced-motion handling that follows the system preference. Values interpolate for
69
+ matching units, number lists, hex/rgb colours, component and decomposed matrix
70
+ transforms, sizes, equal-length points and same-topology paths; other values are
71
+ rejected before scheduling. The latest runner takes over shared channels, direct
72
+ writes interrupt them, and destruction cancels. Frames write through existing
73
+ setters and commit once. No core code changes; the entry point has a 12 KiB budget.
74
+
75
+ - P10 opt-in `@rasamjs/core/catalog`: descriptive content and stylesheet factories,
76
+ explicit generic schemas/capabilities, namespaced attribute bindings,
77
+ ForeignObject native DOM boundaries and reusable detached fragments. Adoption
78
+ preserves unmanaged metadata and opaque native content; forest insertion
79
+ prevalidates ownership and rolls back native failures. Includes a runnable
80
+ catalog example, declarations, namespace tests and three-engine browser coverage.
81
+
82
+ - P9 opt-in `@rasamjs/core/masks` and `@rasamjs/core/patterns`: defs-owned Mask and Pattern
83
+ resources with validated units, regions, `mask-type`, tiles, viewBox and
84
+ `patternTransform`; `maskWith`/`unmask`/`masker` with self and ancestor masking
85
+ rejected; pattern paint through `fill()`/`stroke()`; atomic content updates;
86
+ per-drawing registration for adoption and templates. Masks and patterns never
87
+ change geometric bounds. Core gains the `mask` attribute (about 25 bytes gzip).
88
+ Includes three-engine pixel tests and a runnable example.
89
+
90
+ - P8 `@rasamjs/core/text` constructors/registration for Tspan and TextPath, ordered managed
91
+ text runs, explicit rich builds and plain replacement, font/line helpers, native
92
+ glyph advance measurement and typed path-label creation. Adoption and static
93
+ primitive templates retain mixed order and native text/span identity. Local-font
94
+ browser tests and an interactive text example cover layout and reference lifetime.
95
+
96
+ - P7 opt-in `@rasamjs/core/media`: Image, Symbol and Link constructors, typed factories,
97
+ per-drawing catalogs for adoption/templates, image metadata callbacks with stale
98
+ request suppression and teardown cleanup, intrinsic sizing, reference-protected
99
+ symbol instances and link/unlink operations. Use dimensions map symbol/nested SVG
100
+ viewports while ordinary target sizing remains geometric. Includes local image
101
+ fixtures, three-engine browser coverage and a runnable media example.
102
+
103
+ - P5 nested viewport geometry: x/y, viewBox and every `preserveAspectRatio`
104
+ alignment of nested `<svg>` elements map into root-space bounds, conversions, hit
105
+ tests, `Use` references and tree moves. Unresolved viewports report `unavailable`
106
+ bounds, and `worldMatrix()`/`toRoot()` throw `ViewportError`. Opt-in
107
+ `@rasamjs/core/viewport` adds `viewbox()`, focal `zoom()`, `nested()`, `isRoot()`,
108
+ `boundsIn()` and `clientBounds()`, with a runnable viewport example. Root drawings
109
+ 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.
110
+
111
+ - P4 opt-in `@rasamjs/core/events`: typed native/custom events, shared bubbling delegation,
112
+ direct capture/passive/non-bubbling listeners, once, AbortSignal, multiple-event
113
+ registration, dispatch/cancellation and lifecycle cleanup. Opt-in `focusable()`
114
+ configures keyboard focus; existing pointer `on()` contracts are preserved.
115
+
116
+ - P6 resource APIs: stable `getDefs()` shared with mounting, gradient paint matrices
117
+ and endpoints, staged stop replacement, child-returning `createStop()`, partial
118
+ stop updates, marker helpers and validated clip/marker content replacement.
119
+ Opt-in `@rasamjs/core/resources` provides typed consumer queries/unbinding, explicit raw
120
+ local lookup and reference classification, with a runnable resource example.
121
+
122
+ - Opt-in `@rasamjs/core/tree` traversal, ordering, reference-safe clear/detach, replacement,
123
+ wrapping, affine reparenting, ungrouping and flattening. Shared indexed `add()`
124
+ preserves managed/native order and connected pointer capture; moves across nested
125
+ viewports preserve root geometry since P5. Static drawing bundles exclude tree helpers.
126
+
127
+ - P0–P2 SVG.js capability milestone: regenerable comparison probes and action
128
+ coverage, documented contracts, typed attribute snapshots, class/visibility and
129
+ style conveniences, atomic size/radius helpers, parent-space bounds placement,
130
+ explicit affine composition, immutable point/path values, plot editing and
131
+ adapter-backed native path length/point reads. Later roadmap phases remain deferred.
132
+
133
+ - Typed SVG creation and adoption through `SVG()`, concrete element classes, and
134
+ per-drawing registration, with no runtime dependencies or DOM access on import.
135
+ - Shapes, text, groups, gradients, markers, clip paths, and typed local references.
136
+ - Fluent geometry, paint, sizing, affine transforms, coordinate conversion, and
137
+ geometric bounds with explicit empty and unavailable results.
138
+ - Frame-coalesced writes, synchronous batches and flushes, reusable detachment,
139
+ permanent destruction, and reference-aware resource ownership.
140
+ - Static SVG templates with primitive bindings and stable node identity on updates.
141
+ - Delegated pointer events, pointer capture, a rectangle example, and an interactive
142
+ LED playground.
143
+ - Main and advanced ESM entry points with declarations; unit, three-engine browser,
144
+ packed-consumer, size, and benchmark checks.
145
+ - MIT license and documented public API review, limitations, and release status.
146
+
147
+ ### Changed
148
+
149
+ - Native text/span wrapper inference returns `SvgText | Tspan`, reflecting their
150
+ structurally identical DOM interfaces; factory returns remain concrete. Narrow
151
+ native results with `instanceof`. The P8 catalog budget is 28 KiB gzip (was 25),
152
+ with a separate 12 KiB text budget and unchanged 16 KiB selective budget.
153
+
154
+ - Renamed the internal class decorator from `@attributes` to `@attrs` and its module
155
+ to `src/decorators/attrs.ts`. The public field decorator remains `@attr`.
156
+ - `TemplateInstance` is now a type-only export; create instances with
157
+ `Renderer.render()`. `@rasamjs/core/advanced` re-exports the main entry point instead of
158
+ repeating its export list.
159
+ - Selected `@rasamjs/core` and candidate version `0.1.0`. npm returned 404 for the name on
160
+ 2026-10-25; availability must be checked again before publication.
161
+
162
+ ### Fixed
163
+
164
+ - P6 resource disposal rejects new references and reattachment to any selected old
165
+ descendant during cleanup callbacks. Raw lookup skips targets pending disposal.
166
+ - Resource URLs and typed hrefs encode authored IDs; raw lookup decodes fragments
167
+ once and rejects malformed encodings, CSS escapes and control characters.
168
+ - Failed reference validation leaves target IDs unchanged; unsupported resource
169
+ owners and rejecting defs hosts leave no staged wrappers. Undefined marker
170
+ options retain creation defaults. Existing drawing teardown/listener behavior is preserved.
171
+
172
+ ### Performance snapshot — 2026-10-25
173
+
174
+ | Check | Measured | Budget |
175
+ | --------------------------------------------------------- | ---------------------------------------------------- | -------------------------- |
176
+ | Selective root + rectangle bundle | 43,258 bytes minified; 13,257 bytes gzip (12.95 KiB) | 15,360 bytes gzip (15 KiB) |
177
+ | 1,000 existing circles, changed fill + synchronous commit | 0.50 ms median; 1.10 ms p95 | Median below 16 ms |
178
+
179
+ Bundle fixture: `fixtures/size.ts`; unrelated shapes and templates are excluded.
180
+ Fill fixture: `scripts/benchmark.mjs`, 20 warmups followed by 100 measured batches;
181
+ includes logical updates and DOM commits, excludes paint.
182
+
183
+ Reference environment: Windows 10.0.26200, Intel Core i7-10610U at 1.80 GHz,
184
+ 8 logical CPUs, Node v24.21.0, Chromium 156.0.8078.4.
185
+ Raw samples and bundle composition are in `reports/benchmark.json` and
186
+ `reports/size.json`. These are operation timings on the recorded machine, not
187
+ 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.