@reffy/infinite-canvas 0.0.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 (507) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +94 -0
  3. package/esm/API.d.ts +21 -0
  4. package/esm/API.d.ts.map +1 -0
  5. package/esm/API.js +74 -0
  6. package/esm/API.js.map +1 -0
  7. package/esm/Canvas.d.ts +69 -0
  8. package/esm/Canvas.d.ts.map +1 -0
  9. package/esm/Canvas.js +383 -0
  10. package/esm/Canvas.js.map +1 -0
  11. package/esm/Component.d.ts +126 -0
  12. package/esm/Component.d.ts.map +1 -0
  13. package/esm/Component.js +612 -0
  14. package/esm/Component.js.map +1 -0
  15. package/esm/bounding/AABB.d.ts +10 -0
  16. package/esm/bounding/AABB.d.ts.map +1 -0
  17. package/esm/bounding/AABB.js +19 -0
  18. package/esm/bounding/AABB.js.map +1 -0
  19. package/esm/bounding/BoundingBox.d.ts +53 -0
  20. package/esm/bounding/BoundingBox.d.ts.map +1 -0
  21. package/esm/bounding/BoundingBox.js +300 -0
  22. package/esm/bounding/BoundingBox.js.map +1 -0
  23. package/esm/bounding/Marquee.d.ts +28 -0
  24. package/esm/bounding/Marquee.d.ts.map +1 -0
  25. package/esm/bounding/Marquee.js +111 -0
  26. package/esm/bounding/Marquee.js.map +1 -0
  27. package/esm/bounding/MultiBoundingBox.d.ts +33 -0
  28. package/esm/bounding/MultiBoundingBox.d.ts.map +1 -0
  29. package/esm/bounding/MultiBoundingBox.js +373 -0
  30. package/esm/bounding/MultiBoundingBox.js.map +1 -0
  31. package/esm/bounding/index.d.ts +6 -0
  32. package/esm/bounding/index.d.ts.map +1 -0
  33. package/esm/bounding/index.js +6 -0
  34. package/esm/bounding/index.js.map +1 -0
  35. package/esm/bounding/type.d.ts +13 -0
  36. package/esm/bounding/type.d.ts.map +1 -0
  37. package/esm/bounding/type.js +6 -0
  38. package/esm/bounding/type.js.map +1 -0
  39. package/esm/camera/Camera.d.ts +27 -0
  40. package/esm/camera/Camera.d.ts.map +1 -0
  41. package/esm/camera/Camera.js +68 -0
  42. package/esm/camera/Camera.js.map +1 -0
  43. package/esm/camera/index.d.ts +2 -0
  44. package/esm/camera/index.d.ts.map +1 -0
  45. package/esm/camera/index.js +2 -0
  46. package/esm/camera/index.js.map +1 -0
  47. package/esm/contextMenu/ContextMenu.d.ts +57 -0
  48. package/esm/contextMenu/ContextMenu.d.ts.map +1 -0
  49. package/esm/contextMenu/ContextMenu.js +118 -0
  50. package/esm/contextMenu/ContextMenu.js.map +1 -0
  51. package/esm/contextMenu/Interaction.d.ts +22 -0
  52. package/esm/contextMenu/Interaction.d.ts.map +1 -0
  53. package/esm/contextMenu/Interaction.js +256 -0
  54. package/esm/contextMenu/Interaction.js.map +1 -0
  55. package/esm/contextMenu/index.d.ts +3 -0
  56. package/esm/contextMenu/index.d.ts.map +1 -0
  57. package/esm/contextMenu/index.js +3 -0
  58. package/esm/contextMenu/index.js.map +1 -0
  59. package/esm/history/history.d.ts +29 -0
  60. package/esm/history/history.d.ts.map +1 -0
  61. package/esm/history/history.js +120 -0
  62. package/esm/history/history.js.map +1 -0
  63. package/esm/history/index.d.ts +2 -0
  64. package/esm/history/index.d.ts.map +1 -0
  65. package/esm/history/index.js +2 -0
  66. package/esm/history/index.js.map +1 -0
  67. package/esm/index.d.ts +5 -0
  68. package/esm/index.d.ts.map +1 -0
  69. package/esm/index.js +5 -0
  70. package/esm/index.js.map +1 -0
  71. package/esm/loader/Interaction.d.ts +4 -0
  72. package/esm/loader/Interaction.d.ts.map +1 -0
  73. package/esm/loader/Interaction.js +17 -0
  74. package/esm/loader/Interaction.js.map +1 -0
  75. package/esm/loader/Loader.d.ts +19 -0
  76. package/esm/loader/Loader.d.ts.map +1 -0
  77. package/esm/loader/Loader.js +49 -0
  78. package/esm/loader/Loader.js.map +1 -0
  79. package/esm/loader/index.d.ts +3 -0
  80. package/esm/loader/index.d.ts.map +1 -0
  81. package/esm/loader/index.js +3 -0
  82. package/esm/loader/index.js.map +1 -0
  83. package/esm/manager/ContextMenu.d.ts +11 -0
  84. package/esm/manager/ContextMenu.d.ts.map +1 -0
  85. package/esm/manager/ContextMenu.js +46 -0
  86. package/esm/manager/ContextMenu.js.map +1 -0
  87. package/esm/manager/FlipCommand.d.ts +18 -0
  88. package/esm/manager/FlipCommand.d.ts.map +1 -0
  89. package/esm/manager/FlipCommand.js +35 -0
  90. package/esm/manager/FlipCommand.js.map +1 -0
  91. package/esm/manager/KeyEvent.d.ts +16 -0
  92. package/esm/manager/KeyEvent.d.ts.map +1 -0
  93. package/esm/manager/KeyEvent.js +51 -0
  94. package/esm/manager/KeyEvent.js.map +1 -0
  95. package/esm/manager/OrderCommand.d.ts +17 -0
  96. package/esm/manager/OrderCommand.d.ts.map +1 -0
  97. package/esm/manager/OrderCommand.js +28 -0
  98. package/esm/manager/OrderCommand.js.map +1 -0
  99. package/esm/manager/PointerEvent.d.ts +70 -0
  100. package/esm/manager/PointerEvent.d.ts.map +1 -0
  101. package/esm/manager/PointerEvent.js +171 -0
  102. package/esm/manager/PointerEvent.js.map +1 -0
  103. package/esm/manager/SceneCommand.d.ts +18 -0
  104. package/esm/manager/SceneCommand.d.ts.map +1 -0
  105. package/esm/manager/SceneCommand.js +85 -0
  106. package/esm/manager/SceneCommand.js.map +1 -0
  107. package/esm/manager/Selection.d.ts +61 -0
  108. package/esm/manager/Selection.d.ts.map +1 -0
  109. package/esm/manager/Selection.js +305 -0
  110. package/esm/manager/Selection.js.map +1 -0
  111. package/esm/manager/TransformCommand.d.ts +20 -0
  112. package/esm/manager/TransformCommand.d.ts.map +1 -0
  113. package/esm/manager/TransformCommand.js +29 -0
  114. package/esm/manager/TransformCommand.js.map +1 -0
  115. package/esm/manager/index.d.ts +9 -0
  116. package/esm/manager/index.d.ts.map +1 -0
  117. package/esm/manager/index.js +9 -0
  118. package/esm/manager/index.js.map +1 -0
  119. package/esm/serializer/index.d.ts +2 -0
  120. package/esm/serializer/index.d.ts.map +1 -0
  121. package/esm/serializer/index.js +2 -0
  122. package/esm/serializer/index.js.map +1 -0
  123. package/esm/serializer/serializer.d.ts +54 -0
  124. package/esm/serializer/serializer.d.ts.map +1 -0
  125. package/esm/serializer/serializer.js +226 -0
  126. package/esm/serializer/serializer.js.map +1 -0
  127. package/esm/shaders/grid.d.ts +3 -0
  128. package/esm/shaders/grid.d.ts.map +1 -0
  129. package/esm/shaders/grid.js +89 -0
  130. package/esm/shaders/grid.js.map +1 -0
  131. package/esm/shaders/img.d.ts +4 -0
  132. package/esm/shaders/img.d.ts.map +1 -0
  133. package/esm/shaders/img.js +39 -0
  134. package/esm/shaders/img.js.map +1 -0
  135. package/esm/shaders/index.d.ts +4 -0
  136. package/esm/shaders/index.d.ts.map +1 -0
  137. package/esm/shaders/index.js +4 -0
  138. package/esm/shaders/index.js.map +1 -0
  139. package/esm/shaders/shape.d.ts +4 -0
  140. package/esm/shaders/shape.d.ts.map +1 -0
  141. package/esm/shaders/shape.js +29 -0
  142. package/esm/shaders/shape.js.map +1 -0
  143. package/esm/shapes/Grid.d.ts +21 -0
  144. package/esm/shapes/Grid.d.ts.map +1 -0
  145. package/esm/shapes/Grid.js +86 -0
  146. package/esm/shapes/Grid.js.map +1 -0
  147. package/esm/shapes/Img.d.ts +47 -0
  148. package/esm/shapes/Img.d.ts.map +1 -0
  149. package/esm/shapes/Img.js +310 -0
  150. package/esm/shapes/Img.js.map +1 -0
  151. package/esm/shapes/Rect.d.ts +34 -0
  152. package/esm/shapes/Rect.d.ts.map +1 -0
  153. package/esm/shapes/Rect.js +92 -0
  154. package/esm/shapes/Rect.js.map +1 -0
  155. package/esm/shapes/Renderable.d.ts +54 -0
  156. package/esm/shapes/Renderable.d.ts.map +1 -0
  157. package/esm/shapes/Renderable.js +141 -0
  158. package/esm/shapes/Renderable.js.map +1 -0
  159. package/esm/shapes/Shape.d.ts +27 -0
  160. package/esm/shapes/Shape.d.ts.map +1 -0
  161. package/esm/shapes/Shape.js +69 -0
  162. package/esm/shapes/Shape.js.map +1 -0
  163. package/esm/shapes/Triangle.d.ts +20 -0
  164. package/esm/shapes/Triangle.d.ts.map +1 -0
  165. package/esm/shapes/Triangle.js +82 -0
  166. package/esm/shapes/Triangle.js.map +1 -0
  167. package/esm/shapes/index.d.ts +6 -0
  168. package/esm/shapes/index.d.ts.map +1 -0
  169. package/esm/shapes/index.js +7 -0
  170. package/esm/shapes/index.js.map +1 -0
  171. package/esm/state/camera.d.ts +36 -0
  172. package/esm/state/camera.d.ts.map +1 -0
  173. package/esm/state/camera.js +88 -0
  174. package/esm/state/camera.js.map +1 -0
  175. package/esm/state/index.d.ts +4 -0
  176. package/esm/state/index.d.ts.map +1 -0
  177. package/esm/state/index.js +4 -0
  178. package/esm/state/index.js.map +1 -0
  179. package/esm/state/pointerEvent.d.ts +23 -0
  180. package/esm/state/pointerEvent.d.ts.map +1 -0
  181. package/esm/state/pointerEvent.js +49 -0
  182. package/esm/state/pointerEvent.js.map +1 -0
  183. package/esm/state/renderable.d.ts +36 -0
  184. package/esm/state/renderable.d.ts.map +1 -0
  185. package/esm/state/renderable.js +176 -0
  186. package/esm/state/renderable.js.map +1 -0
  187. package/esm/storage/defaultStorage.d.ts +34 -0
  188. package/esm/storage/defaultStorage.d.ts.map +1 -0
  189. package/esm/storage/defaultStorage.js +237 -0
  190. package/esm/storage/defaultStorage.js.map +1 -0
  191. package/esm/storage/index.d.ts +3 -0
  192. package/esm/storage/index.d.ts.map +1 -0
  193. package/esm/storage/index.js +3 -0
  194. package/esm/storage/index.js.map +1 -0
  195. package/esm/storage/storage.d.ts +36 -0
  196. package/esm/storage/storage.d.ts.map +1 -0
  197. package/esm/storage/storage.js +44 -0
  198. package/esm/storage/storage.js.map +1 -0
  199. package/esm/util/camera/camera.d.ts +19 -0
  200. package/esm/util/camera/camera.d.ts.map +1 -0
  201. package/esm/util/camera/camera.js +75 -0
  202. package/esm/util/camera/camera.js.map +1 -0
  203. package/esm/util/camera/index.d.ts +2 -0
  204. package/esm/util/camera/index.d.ts.map +1 -0
  205. package/esm/util/camera/index.js +2 -0
  206. package/esm/util/camera/index.js.map +1 -0
  207. package/esm/util/checks.d.ts +11 -0
  208. package/esm/util/checks.d.ts.map +1 -0
  209. package/esm/util/checks.js +36 -0
  210. package/esm/util/checks.js.map +1 -0
  211. package/esm/util/clipboard.d.ts +7 -0
  212. package/esm/util/clipboard.d.ts.map +1 -0
  213. package/esm/util/clipboard.js +146 -0
  214. package/esm/util/clipboard.js.map +1 -0
  215. package/esm/util/color.d.ts +4 -0
  216. package/esm/util/color.d.ts.map +1 -0
  217. package/esm/util/color.js +8 -0
  218. package/esm/util/color.js.map +1 -0
  219. package/esm/util/customEventType.d.ts +35 -0
  220. package/esm/util/customEventType.d.ts.map +1 -0
  221. package/esm/util/customEventType.js +35 -0
  222. package/esm/util/customEventType.js.map +1 -0
  223. package/esm/util/files.d.ts +19 -0
  224. package/esm/util/files.d.ts.map +1 -0
  225. package/esm/util/files.js +182 -0
  226. package/esm/util/files.js.map +1 -0
  227. package/esm/util/handles.d.ts +10 -0
  228. package/esm/util/handles.d.ts.map +1 -0
  229. package/esm/util/handles.js +16 -0
  230. package/esm/util/handles.js.map +1 -0
  231. package/esm/util/index.d.ts +11 -0
  232. package/esm/util/index.d.ts.map +1 -0
  233. package/esm/util/index.js +11 -0
  234. package/esm/util/index.js.map +1 -0
  235. package/esm/util/performance.d.ts +2 -0
  236. package/esm/util/performance.d.ts.map +1 -0
  237. package/esm/util/performance.js +7 -0
  238. package/esm/util/performance.js.map +1 -0
  239. package/esm/util/shaders.d.ts +2 -0
  240. package/esm/util/shaders.d.ts.map +1 -0
  241. package/esm/util/shaders.js +30 -0
  242. package/esm/util/shaders.js.map +1 -0
  243. package/esm/util/webgl/index.d.ts +3 -0
  244. package/esm/util/webgl/index.d.ts.map +1 -0
  245. package/esm/util/webgl/index.js +3 -0
  246. package/esm/util/webgl/index.js.map +1 -0
  247. package/esm/util/webgl/m3.d.ts +11 -0
  248. package/esm/util/webgl/m3.d.ts.map +1 -0
  249. package/esm/util/webgl/m3.js +98 -0
  250. package/esm/util/webgl/m3.js.map +1 -0
  251. package/esm/util/webgl/uniform.d.ts +5 -0
  252. package/esm/util/webgl/uniform.d.ts.map +1 -0
  253. package/esm/util/webgl/uniform.js +18 -0
  254. package/esm/util/webgl/uniform.js.map +1 -0
  255. package/lib/API.d.ts +21 -0
  256. package/lib/API.d.ts.map +1 -0
  257. package/lib/API.js +78 -0
  258. package/lib/API.js.map +1 -0
  259. package/lib/Canvas.d.ts +69 -0
  260. package/lib/Canvas.d.ts.map +1 -0
  261. package/lib/Canvas.js +387 -0
  262. package/lib/Canvas.js.map +1 -0
  263. package/lib/Component.d.ts +126 -0
  264. package/lib/Component.d.ts.map +1 -0
  265. package/lib/Component.js +618 -0
  266. package/lib/Component.js.map +1 -0
  267. package/lib/bounding/AABB.d.ts +10 -0
  268. package/lib/bounding/AABB.d.ts.map +1 -0
  269. package/lib/bounding/AABB.js +23 -0
  270. package/lib/bounding/AABB.js.map +1 -0
  271. package/lib/bounding/BoundingBox.d.ts +53 -0
  272. package/lib/bounding/BoundingBox.d.ts.map +1 -0
  273. package/lib/bounding/BoundingBox.js +304 -0
  274. package/lib/bounding/BoundingBox.js.map +1 -0
  275. package/lib/bounding/Marquee.d.ts +28 -0
  276. package/lib/bounding/Marquee.d.ts.map +1 -0
  277. package/lib/bounding/Marquee.js +115 -0
  278. package/lib/bounding/Marquee.js.map +1 -0
  279. package/lib/bounding/MultiBoundingBox.d.ts +33 -0
  280. package/lib/bounding/MultiBoundingBox.d.ts.map +1 -0
  281. package/lib/bounding/MultiBoundingBox.js +377 -0
  282. package/lib/bounding/MultiBoundingBox.js.map +1 -0
  283. package/lib/bounding/index.d.ts +6 -0
  284. package/lib/bounding/index.d.ts.map +1 -0
  285. package/lib/bounding/index.js +22 -0
  286. package/lib/bounding/index.js.map +1 -0
  287. package/lib/bounding/type.d.ts +13 -0
  288. package/lib/bounding/type.d.ts.map +1 -0
  289. package/lib/bounding/type.js +9 -0
  290. package/lib/bounding/type.js.map +1 -0
  291. package/lib/camera/Camera.d.ts +27 -0
  292. package/lib/camera/Camera.d.ts.map +1 -0
  293. package/lib/camera/Camera.js +72 -0
  294. package/lib/camera/Camera.js.map +1 -0
  295. package/lib/camera/index.d.ts +2 -0
  296. package/lib/camera/index.d.ts.map +1 -0
  297. package/lib/camera/index.js +18 -0
  298. package/lib/camera/index.js.map +1 -0
  299. package/lib/contextMenu/ContextMenu.d.ts +57 -0
  300. package/lib/contextMenu/ContextMenu.d.ts.map +1 -0
  301. package/lib/contextMenu/ContextMenu.js +124 -0
  302. package/lib/contextMenu/ContextMenu.js.map +1 -0
  303. package/lib/contextMenu/Interaction.d.ts +22 -0
  304. package/lib/contextMenu/Interaction.d.ts.map +1 -0
  305. package/lib/contextMenu/Interaction.js +265 -0
  306. package/lib/contextMenu/Interaction.js.map +1 -0
  307. package/lib/contextMenu/index.d.ts +3 -0
  308. package/lib/contextMenu/index.d.ts.map +1 -0
  309. package/lib/contextMenu/index.js +19 -0
  310. package/lib/contextMenu/index.js.map +1 -0
  311. package/lib/history/history.d.ts +29 -0
  312. package/lib/history/history.d.ts.map +1 -0
  313. package/lib/history/history.js +127 -0
  314. package/lib/history/history.js.map +1 -0
  315. package/lib/history/index.d.ts +2 -0
  316. package/lib/history/index.d.ts.map +1 -0
  317. package/lib/history/index.js +18 -0
  318. package/lib/history/index.js.map +1 -0
  319. package/lib/index.d.ts +5 -0
  320. package/lib/index.d.ts.map +1 -0
  321. package/lib/index.js +21 -0
  322. package/lib/index.js.map +1 -0
  323. package/lib/loader/Interaction.d.ts +4 -0
  324. package/lib/loader/Interaction.d.ts.map +1 -0
  325. package/lib/loader/Interaction.js +21 -0
  326. package/lib/loader/Interaction.js.map +1 -0
  327. package/lib/loader/Loader.d.ts +19 -0
  328. package/lib/loader/Loader.d.ts.map +1 -0
  329. package/lib/loader/Loader.js +53 -0
  330. package/lib/loader/Loader.js.map +1 -0
  331. package/lib/loader/index.d.ts +3 -0
  332. package/lib/loader/index.d.ts.map +1 -0
  333. package/lib/loader/index.js +19 -0
  334. package/lib/loader/index.js.map +1 -0
  335. package/lib/manager/ContextMenu.d.ts +11 -0
  336. package/lib/manager/ContextMenu.d.ts.map +1 -0
  337. package/lib/manager/ContextMenu.js +50 -0
  338. package/lib/manager/ContextMenu.js.map +1 -0
  339. package/lib/manager/FlipCommand.d.ts +18 -0
  340. package/lib/manager/FlipCommand.d.ts.map +1 -0
  341. package/lib/manager/FlipCommand.js +39 -0
  342. package/lib/manager/FlipCommand.js.map +1 -0
  343. package/lib/manager/KeyEvent.d.ts +16 -0
  344. package/lib/manager/KeyEvent.d.ts.map +1 -0
  345. package/lib/manager/KeyEvent.js +55 -0
  346. package/lib/manager/KeyEvent.js.map +1 -0
  347. package/lib/manager/OrderCommand.d.ts +17 -0
  348. package/lib/manager/OrderCommand.d.ts.map +1 -0
  349. package/lib/manager/OrderCommand.js +32 -0
  350. package/lib/manager/OrderCommand.js.map +1 -0
  351. package/lib/manager/PointerEvent.d.ts +70 -0
  352. package/lib/manager/PointerEvent.d.ts.map +1 -0
  353. package/lib/manager/PointerEvent.js +175 -0
  354. package/lib/manager/PointerEvent.js.map +1 -0
  355. package/lib/manager/SceneCommand.d.ts +18 -0
  356. package/lib/manager/SceneCommand.d.ts.map +1 -0
  357. package/lib/manager/SceneCommand.js +91 -0
  358. package/lib/manager/SceneCommand.js.map +1 -0
  359. package/lib/manager/Selection.d.ts +61 -0
  360. package/lib/manager/Selection.d.ts.map +1 -0
  361. package/lib/manager/Selection.js +309 -0
  362. package/lib/manager/Selection.js.map +1 -0
  363. package/lib/manager/TransformCommand.d.ts +20 -0
  364. package/lib/manager/TransformCommand.d.ts.map +1 -0
  365. package/lib/manager/TransformCommand.js +33 -0
  366. package/lib/manager/TransformCommand.js.map +1 -0
  367. package/lib/manager/index.d.ts +9 -0
  368. package/lib/manager/index.d.ts.map +1 -0
  369. package/lib/manager/index.js +25 -0
  370. package/lib/manager/index.js.map +1 -0
  371. package/lib/serializer/index.d.ts +2 -0
  372. package/lib/serializer/index.d.ts.map +1 -0
  373. package/lib/serializer/index.js +18 -0
  374. package/lib/serializer/index.js.map +1 -0
  375. package/lib/serializer/serializer.d.ts +54 -0
  376. package/lib/serializer/serializer.d.ts.map +1 -0
  377. package/lib/serializer/serializer.js +231 -0
  378. package/lib/serializer/serializer.js.map +1 -0
  379. package/lib/shaders/grid.d.ts +3 -0
  380. package/lib/shaders/grid.d.ts.map +1 -0
  381. package/lib/shaders/grid.js +92 -0
  382. package/lib/shaders/grid.js.map +1 -0
  383. package/lib/shaders/img.d.ts +4 -0
  384. package/lib/shaders/img.d.ts.map +1 -0
  385. package/lib/shaders/img.js +43 -0
  386. package/lib/shaders/img.js.map +1 -0
  387. package/lib/shaders/index.d.ts +4 -0
  388. package/lib/shaders/index.d.ts.map +1 -0
  389. package/lib/shaders/index.js +20 -0
  390. package/lib/shaders/index.js.map +1 -0
  391. package/lib/shaders/shape.d.ts +4 -0
  392. package/lib/shaders/shape.d.ts.map +1 -0
  393. package/lib/shaders/shape.js +33 -0
  394. package/lib/shaders/shape.js.map +1 -0
  395. package/lib/shapes/Grid.d.ts +21 -0
  396. package/lib/shapes/Grid.d.ts.map +1 -0
  397. package/lib/shapes/Grid.js +90 -0
  398. package/lib/shapes/Grid.js.map +1 -0
  399. package/lib/shapes/Img.d.ts +47 -0
  400. package/lib/shapes/Img.d.ts.map +1 -0
  401. package/lib/shapes/Img.js +314 -0
  402. package/lib/shapes/Img.js.map +1 -0
  403. package/lib/shapes/Rect.d.ts +34 -0
  404. package/lib/shapes/Rect.d.ts.map +1 -0
  405. package/lib/shapes/Rect.js +96 -0
  406. package/lib/shapes/Rect.js.map +1 -0
  407. package/lib/shapes/Renderable.d.ts +54 -0
  408. package/lib/shapes/Renderable.d.ts.map +1 -0
  409. package/lib/shapes/Renderable.js +146 -0
  410. package/lib/shapes/Renderable.js.map +1 -0
  411. package/lib/shapes/Shape.d.ts +27 -0
  412. package/lib/shapes/Shape.d.ts.map +1 -0
  413. package/lib/shapes/Shape.js +73 -0
  414. package/lib/shapes/Shape.js.map +1 -0
  415. package/lib/shapes/Triangle.d.ts +20 -0
  416. package/lib/shapes/Triangle.d.ts.map +1 -0
  417. package/lib/shapes/Triangle.js +86 -0
  418. package/lib/shapes/Triangle.js.map +1 -0
  419. package/lib/shapes/index.d.ts +6 -0
  420. package/lib/shapes/index.d.ts.map +1 -0
  421. package/lib/shapes/index.js +23 -0
  422. package/lib/shapes/index.js.map +1 -0
  423. package/lib/state/camera.d.ts +36 -0
  424. package/lib/state/camera.d.ts.map +1 -0
  425. package/lib/state/camera.js +92 -0
  426. package/lib/state/camera.js.map +1 -0
  427. package/lib/state/index.d.ts +4 -0
  428. package/lib/state/index.d.ts.map +1 -0
  429. package/lib/state/index.js +20 -0
  430. package/lib/state/index.js.map +1 -0
  431. package/lib/state/pointerEvent.d.ts +23 -0
  432. package/lib/state/pointerEvent.d.ts.map +1 -0
  433. package/lib/state/pointerEvent.js +53 -0
  434. package/lib/state/pointerEvent.js.map +1 -0
  435. package/lib/state/renderable.d.ts +36 -0
  436. package/lib/state/renderable.d.ts.map +1 -0
  437. package/lib/state/renderable.js +180 -0
  438. package/lib/state/renderable.js.map +1 -0
  439. package/lib/storage/defaultStorage.d.ts +34 -0
  440. package/lib/storage/defaultStorage.d.ts.map +1 -0
  441. package/lib/storage/defaultStorage.js +246 -0
  442. package/lib/storage/defaultStorage.js.map +1 -0
  443. package/lib/storage/index.d.ts +3 -0
  444. package/lib/storage/index.d.ts.map +1 -0
  445. package/lib/storage/index.js +19 -0
  446. package/lib/storage/index.js.map +1 -0
  447. package/lib/storage/storage.d.ts +36 -0
  448. package/lib/storage/storage.d.ts.map +1 -0
  449. package/lib/storage/storage.js +50 -0
  450. package/lib/storage/storage.js.map +1 -0
  451. package/lib/util/camera/camera.d.ts +19 -0
  452. package/lib/util/camera/camera.d.ts.map +1 -0
  453. package/lib/util/camera/camera.js +87 -0
  454. package/lib/util/camera/camera.js.map +1 -0
  455. package/lib/util/camera/index.d.ts +2 -0
  456. package/lib/util/camera/index.d.ts.map +1 -0
  457. package/lib/util/camera/index.js +18 -0
  458. package/lib/util/camera/index.js.map +1 -0
  459. package/lib/util/checks.d.ts +11 -0
  460. package/lib/util/checks.d.ts.map +1 -0
  461. package/lib/util/checks.js +49 -0
  462. package/lib/util/checks.js.map +1 -0
  463. package/lib/util/clipboard.d.ts +7 -0
  464. package/lib/util/clipboard.d.ts.map +1 -0
  465. package/lib/util/clipboard.js +152 -0
  466. package/lib/util/clipboard.js.map +1 -0
  467. package/lib/util/color.d.ts +4 -0
  468. package/lib/util/color.d.ts.map +1 -0
  469. package/lib/util/color.js +11 -0
  470. package/lib/util/color.js.map +1 -0
  471. package/lib/util/customEventType.d.ts +35 -0
  472. package/lib/util/customEventType.d.ts.map +1 -0
  473. package/lib/util/customEventType.js +38 -0
  474. package/lib/util/customEventType.js.map +1 -0
  475. package/lib/util/files.d.ts +19 -0
  476. package/lib/util/files.d.ts.map +1 -0
  477. package/lib/util/files.js +193 -0
  478. package/lib/util/files.js.map +1 -0
  479. package/lib/util/handles.d.ts +10 -0
  480. package/lib/util/handles.d.ts.map +1 -0
  481. package/lib/util/handles.js +20 -0
  482. package/lib/util/handles.js.map +1 -0
  483. package/lib/util/index.d.ts +11 -0
  484. package/lib/util/index.d.ts.map +1 -0
  485. package/lib/util/index.js +27 -0
  486. package/lib/util/index.js.map +1 -0
  487. package/lib/util/performance.d.ts +2 -0
  488. package/lib/util/performance.d.ts.map +1 -0
  489. package/lib/util/performance.js +10 -0
  490. package/lib/util/performance.js.map +1 -0
  491. package/lib/util/shaders.d.ts +2 -0
  492. package/lib/util/shaders.d.ts.map +1 -0
  493. package/lib/util/shaders.js +33 -0
  494. package/lib/util/shaders.js.map +1 -0
  495. package/lib/util/webgl/index.d.ts +3 -0
  496. package/lib/util/webgl/index.d.ts.map +1 -0
  497. package/lib/util/webgl/index.js +19 -0
  498. package/lib/util/webgl/index.js.map +1 -0
  499. package/lib/util/webgl/m3.d.ts +11 -0
  500. package/lib/util/webgl/m3.d.ts.map +1 -0
  501. package/lib/util/webgl/m3.js +101 -0
  502. package/lib/util/webgl/m3.js.map +1 -0
  503. package/lib/util/webgl/uniform.d.ts +5 -0
  504. package/lib/util/webgl/uniform.d.ts.map +1 -0
  505. package/lib/util/webgl/uniform.js +21 -0
  506. package/lib/util/webgl/uniform.js.map +1 -0
  507. package/package.json +95 -0
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2025] [Vincent Sit]
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.
package/README.md ADDED
@@ -0,0 +1,94 @@
1
+ # Reffy Infinite Canvas
2
+
3
+ A TypeScript Web Component (`<infinite-canvas>`) that provides an infinite, GPU-accelerated canvas for placing and manipulating reference images. Built with Lit + WebGL, the canvas enables selection, context menu, history (undo/redo), and a default persistent storage (IndexedDB + LocalStorage).
4
+
5
+ - Web Component: `<infinite-canvas>` renders a full-screen canvas and starts a render loop.
6
+ - Engine: WebGL-backed renderer with Grid, Img, Rect shapes and z-ordering.
7
+ - Interaction: Selection, flip, align, normalize, pointer/key/context menu managers.
8
+ - Persistence: Auto-save and manual import/export to JSON; deduplicated image storage via hashing.
9
+ - History: Composite commands push for undo/redo across interactions.
10
+
11
+ ## A word from the developer
12
+
13
+ Before you carry on to read the rest of the documentation, I would like to first state that this project was heavily influenced by the following open-sourced projects:
14
+
15
+ - [Excalidraw](https://excalidraw.com/)
16
+ - [An infinite canvas tutorial](https://infinitecanvas.cc/)
17
+
18
+ They are both incredible resources and have sped up my own learning and I highly recommend browsing through their materials. I am still learning as I go and working on this project.
19
+
20
+ Additionally, I referenced [PureRef](https://www.pureref.com/) for a lot of the available functions. In fact, as the project continued development, it became clear that I wanted to create a version of PureRef, but for the web.
21
+
22
+ Happy learning!
23
+
24
+ ## Aim of the project
25
+
26
+ While working on a separate, but related project, I was making a lot of progress leveraging Excalidraw and enjoying the fact that I did not have to think or write my own implementation. However, Excalidraw, despite how fantastic it is, came coupled with a predetermined setup (toolbars and such) and a lot of functions that a pure image reference board would not need.
27
+
28
+ Thus, I made the challenging decision to try to write my own. Reffy Infinite Canvas aims to expose the APIs, enabling developers to customise their own canvas toolbars.
29
+
30
+ While not everything is customisable, it does offer more options than Excalidraw, achieving part of the initial goal.
31
+
32
+ ## Installation
33
+
34
+ ```powershell
35
+ npm i reffy-infinite-canvas
36
+ ```
37
+
38
+ ## API
39
+
40
+ To utilise the API, create the canvas and set up some way for the canvas to be discoverable through JS/TS.
41
+
42
+ ```js
43
+ const el = document.querySelector('#canvas') as InfiniteCanvasElement;
44
+
45
+ InfiniteCanvasAPI.forElement(el).then(api => {
46
+ // example: toggling the grid mode for the canvas
47
+ const modeButton = document.getElementById('mode-button') as HTMLButtonElement;
48
+ modeButton.onclick = api.toggleMode.bind(api);
49
+ };
50
+ ```
51
+
52
+ ## Image transformation
53
+
54
+ Available image transformations:
55
+
56
+ - Flip
57
+ - Normalize (by first selected and average)
58
+ - Align
59
+ - Scale
60
+ - Move
61
+
62
+ ## Persistent storage
63
+
64
+ While there is a default set up for users to pick up and go, you can use the API to connect up a different source to write and read from.
65
+
66
+ Take a look at the code snippet below for an example set up.
67
+
68
+ ```typescript
69
+ // sample code
70
+ const el = document.querySelector('#canvas') as InfiniteCanvasElement;
71
+
72
+ InfiniteCanvasAPI.forElement(el).then(api => {
73
+
74
+ const canvasStorage: CanvasStorage = { /** Add your custom canvas storage in here */ };
75
+
76
+ const fileStorage: FileStorage = { /** Add your custom local storage for file here */ };
77
+
78
+ el.assignCanvasStorage(canvasStorage);
79
+ el.assignFileStorage(fileStorage);
80
+ };
81
+ ```
82
+
83
+ The design for image storage is styled after Excalidraw. This means breaking the canvas data into two parts.
84
+
85
+ - `FileStorage` is how we store the image data. In case of multiple copies of the same image, the storage is made more efficient by relying on hashing the image data as the file id, by which the canvas data uses to get the image data.
86
+ - `CanvasStorage` is the layout of the canvas. This means camera position, keeping track of the images placed onto the canvas, their positions, and their transformation.
87
+
88
+ The canvas is reconstructed each time you load the canvas.
89
+
90
+ When setting up the canvasStorage, you can add the custom canvas storage and add a frequency, measured in ms. The default is 300000 ms (or, 5 minutes).
91
+
92
+ ### TODO:
93
+
94
+ - Add method to allow custom setting of how frequent auto save should be
package/esm/API.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { CanvasStorage } from "./storage";
2
+ import { InfiniteCanvasElement } from "./Component";
3
+ export declare class InfiniteCanvasAPI {
4
+ private el;
5
+ constructor(el: InfiniteCanvasElement);
6
+ static forElement(selectorOrElement: string | InfiniteCanvasElement): Promise<InfiniteCanvasAPI>;
7
+ /**
8
+ * Without assigning storage, the canvas will not save any data
9
+ * @param storage
10
+ * @param saveFrequency How often auto save occurs in ms
11
+ */
12
+ assignCanvasStorage(storage: CanvasStorage, saveFrequency?: number): this;
13
+ zoomIn(): Promise<void>;
14
+ zoomOut(): Promise<void>;
15
+ toggleMode(): Promise<void>;
16
+ addImageFromLocal(fileList: FileList): Promise<void>;
17
+ exportCanvas(filename?: string): Promise<void>;
18
+ importCanvas(fileList: FileList): Promise<void>;
19
+ clearCanvas(): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=API.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.d.ts","sourceRoot":"src/","sources":["API.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAwB;gBAEtB,EAAE,EAAE,qBAAqB;WAcxB,UAAU,CACrB,iBAAiB,EAAE,MAAM,GAAG,qBAAqB,GAChD,OAAO,CAAC,iBAAiB,CAAC;IAmB7B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,GAAE,MAAa;IAKlE,MAAM;IAKN,OAAO;IAIP,UAAU;IAIV,iBAAiB,CAAC,QAAQ,EAAE,QAAQ;IAepC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM;IAI9B,YAAY,CAAC,QAAQ,EAAE,QAAQ;IAK/B,WAAW;CAGlB"}
package/esm/API.js ADDED
@@ -0,0 +1,74 @@
1
+ export class InfiniteCanvasAPI {
2
+ constructor(el) {
3
+ if (!el)
4
+ throw new Error("InfiniteCanvasElement is required");
5
+ this.el = el;
6
+ this.assignCanvasStorage = this.assignCanvasStorage.bind(this);
7
+ this.zoomIn = this.zoomIn.bind(this);
8
+ this.zoomOut = this.zoomOut.bind(this);
9
+ this.toggleMode = this.toggleMode.bind(this);
10
+ this.addImageFromLocal = this.addImageFromLocal.bind(this);
11
+ this.exportCanvas = this.exportCanvas.bind(this);
12
+ this.importCanvas = this.importCanvas.bind(this);
13
+ this.clearCanvas = this.clearCanvas.bind(this);
14
+ }
15
+ static async forElement(selectorOrElement) {
16
+ let el;
17
+ if (typeof selectorOrElement === "string") {
18
+ await customElements.whenDefined("infinite-canvas");
19
+ el = document.querySelector(selectorOrElement);
20
+ }
21
+ else {
22
+ el = selectorOrElement;
23
+ }
24
+ if (!el)
25
+ throw new Error("infinite-canvas element not found");
26
+ if (!el.canvas) {
27
+ await new Promise((res) => el.addEventListener("load", () => res(), { once: true }));
28
+ }
29
+ return new InfiniteCanvasAPI(el);
30
+ }
31
+ /**
32
+ * Without assigning storage, the canvas will not save any data
33
+ * @param storage
34
+ * @param saveFrequency How often auto save occurs in ms
35
+ */
36
+ assignCanvasStorage(storage, saveFrequency = 3000) {
37
+ this.el.assignCanvasStorage(storage, saveFrequency);
38
+ return this;
39
+ }
40
+ async zoomIn() {
41
+ console.log("zooming");
42
+ this.el.zoomIn();
43
+ }
44
+ async zoomOut() {
45
+ this.el.zoomOut();
46
+ }
47
+ async toggleMode() {
48
+ this.el.togglePointerMode();
49
+ }
50
+ async addImageFromLocal(fileList) {
51
+ // Validate all files are images before proceeding
52
+ if (!fileList || fileList.length === 0)
53
+ return;
54
+ for (let i = 0; i < fileList.length; i++) {
55
+ const file = fileList[i];
56
+ if (!file || !file.type || !file.type.startsWith("image/")) {
57
+ throw new Error("Only specific image files are supported. Please select image files only.");
58
+ }
59
+ }
60
+ await this.el.addImages(fileList);
61
+ }
62
+ async exportCanvas(filename) {
63
+ this.el.exportCanvas(filename);
64
+ }
65
+ async importCanvas(fileList) {
66
+ if (!fileList || fileList.length !== 1)
67
+ return;
68
+ await this.el.importCanvas(fileList);
69
+ }
70
+ async clearCanvas() {
71
+ this.el.clearCanvas();
72
+ }
73
+ }
74
+ //# sourceMappingURL=API.js.map
package/esm/API.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.js","sourceRoot":"src/","sources":["API.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { Img, Renderable, Grid } from "./shapes";
2
+ import { SelectionManager, PointerEventManager, ContextMenuManager } from "./manager";
3
+ import { Camera } from "./camera";
4
+ import { CanvasHistory } from "./history";
5
+ import { SerializedCanvas } from "./serializer";
6
+ import EventEmitter from "eventemitter3";
7
+ import { ImageFileMetadata } from "./storage";
8
+ export declare class Canvas extends Renderable {
9
+ #private;
10
+ writeToStorage: () => void;
11
+ saveImgFileToStorage: (data: string) => Promise<string | number | null>;
12
+ getContainerDimension: () => number[];
13
+ getWorldsCoordsFromCanvas: (x: number, y: number) => number[];
14
+ private orderDirty;
15
+ private renderList;
16
+ markOrderDirty(): void;
17
+ get gl(): WebGLRenderingContext;
18
+ get grid(): Grid;
19
+ get history(): CanvasHistory;
20
+ get eventHub(): EventEmitter<string | symbol, any>;
21
+ get pointerEventManager(): PointerEventManager;
22
+ get selectionManager(): SelectionManager;
23
+ get contextMenuManager(): ContextMenuManager;
24
+ get canvas(): HTMLCanvasElement;
25
+ get camera(): Camera;
26
+ get isGlobalClick(): boolean;
27
+ set isGlobalClick(val: boolean);
28
+ get basicShapeProgram(): WebGLProgram;
29
+ constructor(canvas: HTMLCanvasElement, history: CanvasHistory, eventHub: EventEmitter, writeToStorage: () => void, saveImgFileToStorage: (data: string) => Promise<string | number | null>, getContainerDimension: () => number[]);
30
+ engine(): this;
31
+ get totalNumberOfChildren(): number;
32
+ get numberOfChildrenRendered(): number;
33
+ appendChild<T extends Renderable>(child: T): T;
34
+ removeChild(child: Renderable): void;
35
+ getChild(id: number): Renderable;
36
+ updateWorldMatrix(): void;
37
+ render(): void;
38
+ destroy(): void;
39
+ getDOM(): HTMLCanvasElement;
40
+ assignEventListener(type: string, fn: (() => void) | ((e: any) => void), options?: boolean | AddEventListenerOptions): void;
41
+ hitTest(x: number, y: number): boolean;
42
+ addImageToCanvas(src: string, x: number, y: number, sx?: number, sy?: number, center?: boolean): Promise<Img>;
43
+ exportState(): SerializedCanvas;
44
+ importState(data: SerializedCanvas, getFile: (fileId: string | number) => Promise<ImageFileMetadata>): Promise<Canvas>;
45
+ clearChildren(): void;
46
+ toggleGrid(): void;
47
+ getSelected(): Img[];
48
+ setShapeZOrder(toFront?: boolean): void;
49
+ changeMode(): void;
50
+ updateZoomByFixedAmount(direction?: 1 | -1): void;
51
+ getBoundingClientRect(): DOMRect;
52
+ private static webglStats;
53
+ private wrapWebGLContext;
54
+ static getWebGLStats(): {
55
+ buffersLeaked: number;
56
+ programsLeaked: number;
57
+ texturesLeaked: number;
58
+ shadersLeaked: number;
59
+ buffersCreated: number;
60
+ buffersDeleted: number;
61
+ programsCreated: number;
62
+ programsDeleted: number;
63
+ texturesCreated: number;
64
+ texturesDeleted: number;
65
+ shadersCreated: number;
66
+ shadersDeleted: number;
67
+ };
68
+ }
69
+ //# sourceMappingURL=Canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"src/","sources":["Canvas.ts"],"names":[],"mappings":"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"}