@nasser-sw/fabric 7.0.1-beta11 → 7.0.1-beta13

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 (2543) hide show
  1. package/.babelrc +0 -0
  2. package/.babelrcAlt +0 -0
  3. package/.browserslistrc +0 -0
  4. package/.editorconfig +0 -0
  5. package/.gitattributes +0 -0
  6. package/.gitpod.yml +0 -0
  7. package/.playwright-mcp/after-justify-applied.png +0 -0
  8. package/.playwright-mcp/after-justify-click.png +0 -0
  9. package/.playwright-mcp/initial-state.png +0 -0
  10. package/.playwright-mcp/justify-fixed-final.png +0 -0
  11. package/.prettierignore +0 -0
  12. package/.prettierrc +0 -0
  13. package/0 +0 -0
  14. package/45.6875Textbox.ts +0 -0
  15. package/CHANGELOG.md +0 -0
  16. package/CODE_OF_CONDUCT.md +0 -0
  17. package/CONTRIBUTING.md +0 -0
  18. package/LICENSE +0 -0
  19. package/OVERLAY_EDITOR_MIGRATION.md +0 -0
  20. package/README.md +0 -0
  21. package/SECURITY.md +0 -0
  22. package/debug/{konva → konva-master}/CHANGELOG.md +2 -1
  23. package/debug/{konva → konva-master}/LICENSE +0 -0
  24. package/debug/{konva → konva-master}/README.md +7 -3
  25. package/debug/{konva → konva-master}/gulpfile.mjs +0 -0
  26. package/debug/{konva → konva-master}/package.json +1 -1
  27. package/debug/{konva → konva-master}/release.sh +1 -4
  28. package/debug/{konva → konva-master}/resources/doc-includes/ContainerParams.txt +0 -0
  29. package/debug/{konva → konva-master}/resources/doc-includes/NodeParams.txt +0 -0
  30. package/debug/{konva → konva-master}/resources/doc-includes/ShapeParams.txt +0 -0
  31. package/debug/{konva → konva-master}/resources/jsdoc.conf.json +0 -0
  32. package/debug/{konva → konva-master}/rollup.config.mjs +0 -0
  33. package/debug/{konva → konva-master}/src/Animation.ts +0 -0
  34. package/debug/{konva → konva-master}/src/BezierFunctions.ts +0 -0
  35. package/debug/{konva → konva-master}/src/Canvas.ts +37 -0
  36. package/debug/{konva → konva-master}/src/Container.ts +0 -0
  37. package/debug/{konva → konva-master}/src/Context.ts +0 -0
  38. package/debug/{konva → konva-master}/src/Core.ts +0 -0
  39. package/debug/{konva → konva-master}/src/DragAndDrop.ts +0 -0
  40. package/debug/{konva → konva-master}/src/Factory.ts +0 -0
  41. package/debug/{konva → konva-master}/src/FastLayer.ts +0 -0
  42. package/debug/{konva → konva-master}/src/Global.ts +0 -0
  43. package/debug/{konva → konva-master}/src/Group.ts +0 -0
  44. package/debug/{konva → konva-master}/src/Layer.ts +0 -0
  45. package/debug/{konva → konva-master}/src/Node.ts +0 -0
  46. package/debug/{konva → konva-master}/src/PointerEvents.ts +0 -0
  47. package/debug/{konva → konva-master}/src/Shape.ts +0 -0
  48. package/debug/{konva → konva-master}/src/Stage.ts +0 -0
  49. package/debug/{konva → konva-master}/src/Tween.ts +0 -0
  50. package/debug/{konva → konva-master}/src/Util.ts +0 -0
  51. package/debug/{konva → konva-master}/src/Validators.ts +0 -0
  52. package/debug/{konva → konva-master}/src/_CoreInternals.ts +0 -0
  53. package/debug/{konva → konva-master}/src/_FullInternals.ts +0 -0
  54. package/debug/{konva → konva-master}/src/canvas-backend.ts +0 -0
  55. package/debug/{konva → konva-master}/src/filters/Blur.ts +0 -0
  56. package/debug/{konva → konva-master}/src/filters/Brighten.ts +0 -0
  57. package/debug/{konva → konva-master}/src/filters/Brightness.ts +0 -0
  58. package/debug/{konva → konva-master}/src/filters/Contrast.ts +0 -0
  59. package/debug/{konva → konva-master}/src/filters/Emboss.ts +0 -0
  60. package/debug/{konva → konva-master}/src/filters/Enhance.ts +0 -0
  61. package/debug/{konva → konva-master}/src/filters/Grayscale.ts +0 -0
  62. package/debug/{konva → konva-master}/src/filters/HSL.ts +0 -0
  63. package/debug/{konva → konva-master}/src/filters/HSV.ts +0 -0
  64. package/debug/{konva → konva-master}/src/filters/Invert.ts +0 -0
  65. package/debug/{konva → konva-master}/src/filters/Kaleidoscope.ts +0 -0
  66. package/debug/{konva → konva-master}/src/filters/Mask.ts +0 -0
  67. package/debug/{konva → konva-master}/src/filters/Noise.ts +0 -0
  68. package/debug/{konva → konva-master}/src/filters/Pixelate.ts +0 -0
  69. package/debug/{konva → konva-master}/src/filters/Posterize.ts +0 -0
  70. package/debug/{konva → konva-master}/src/filters/RGB.ts +0 -0
  71. package/debug/{konva → konva-master}/src/filters/RGBA.ts +0 -0
  72. package/debug/{konva → konva-master}/src/filters/Sepia.ts +0 -0
  73. package/debug/{konva → konva-master}/src/filters/Solarize.ts +0 -0
  74. package/debug/{konva → konva-master}/src/filters/Threshold.ts +0 -0
  75. package/debug/{konva → konva-master}/src/index.ts +0 -0
  76. package/debug/{konva → konva-master}/src/shapes/Arc.ts +0 -0
  77. package/debug/{konva → konva-master}/src/shapes/Arrow.ts +0 -0
  78. package/debug/{konva → konva-master}/src/shapes/Circle.ts +0 -0
  79. package/debug/{konva → konva-master}/src/shapes/Ellipse.ts +0 -0
  80. package/debug/{konva → konva-master}/src/shapes/Image.ts +0 -0
  81. package/debug/{konva → konva-master}/src/shapes/Label.ts +0 -0
  82. package/debug/{konva → konva-master}/src/shapes/Line.ts +0 -0
  83. package/debug/{konva → konva-master}/src/shapes/Path.ts +0 -0
  84. package/debug/{konva → konva-master}/src/shapes/Rect.ts +0 -0
  85. package/debug/{konva → konva-master}/src/shapes/RegularPolygon.ts +0 -0
  86. package/debug/{konva → konva-master}/src/shapes/Ring.ts +0 -0
  87. package/debug/{konva → konva-master}/src/shapes/Sprite.ts +0 -0
  88. package/debug/{konva → konva-master}/src/shapes/Star.ts +0 -0
  89. package/debug/{konva → konva-master}/src/shapes/Text.ts +2 -2
  90. package/debug/{konva → konva-master}/src/shapes/TextPath.ts +0 -0
  91. package/debug/{konva → konva-master}/src/shapes/Transformer.ts +0 -0
  92. package/debug/{konva → konva-master}/src/shapes/Wedge.ts +0 -0
  93. package/debug/{konva → konva-master}/src/skia-backend.ts +0 -0
  94. package/debug/{konva → konva-master}/src/types.ts +0 -0
  95. package/debug/{konva → konva-master}/tsconfig.json +0 -0
  96. package/debug/{konva → konva-master}/tsconfig.test.json +0 -0
  97. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
  98. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
  99. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  100. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
  101. package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
  102. package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  103. package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
  104. package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
  105. package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  106. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  107. package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  108. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  109. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  110. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  111. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  112. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  113. package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  114. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  115. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  116. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  117. package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
  118. package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  119. package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
  120. package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
  121. package/dist/extensions/index.d.ts +0 -0
  122. package/dist/extensions/index.d.ts.map +0 -0
  123. package/dist/fabric.d.ts +0 -0
  124. package/dist/fabric.d.ts.map +0 -0
  125. package/dist/fabric.min.mjs +0 -0
  126. package/dist/fabric.min.mjs.map +0 -0
  127. package/dist/fabric.mjs +0 -0
  128. package/dist/fabric.mjs.map +0 -0
  129. package/dist/index.d.ts +0 -0
  130. package/dist/index.d.ts.map +0 -0
  131. package/dist/index.js +747 -679
  132. package/dist/index.js.map +1 -1
  133. package/dist/index.min.js +1 -1
  134. package/dist/index.min.js.map +1 -1
  135. package/dist/index.min.mjs +1 -1
  136. package/dist/index.min.mjs.map +1 -1
  137. package/dist/index.mjs +747 -679
  138. package/dist/index.mjs.map +1 -1
  139. package/dist/index.node.cjs +747 -679
  140. package/dist/index.node.cjs.map +1 -1
  141. package/dist/index.node.d.ts +0 -0
  142. package/dist/index.node.d.ts.map +0 -0
  143. package/dist/index.node.mjs +747 -679
  144. package/dist/index.node.mjs.map +1 -1
  145. package/dist/package.json.min.mjs +1 -1
  146. package/dist/package.json.min.mjs.map +0 -0
  147. package/dist/package.json.mjs +1 -1
  148. package/dist/package.json.mjs.map +0 -0
  149. package/dist/src/ClassRegistry.d.ts +0 -0
  150. package/dist/src/ClassRegistry.d.ts.map +0 -0
  151. package/dist/src/ClassRegistry.min.mjs +0 -0
  152. package/dist/src/ClassRegistry.min.mjs.map +0 -0
  153. package/dist/src/ClassRegistry.mjs +0 -0
  154. package/dist/src/ClassRegistry.mjs.map +0 -0
  155. package/dist/src/Collection.d.ts +0 -0
  156. package/dist/src/Collection.d.ts.map +0 -0
  157. package/dist/src/Collection.min.mjs +0 -0
  158. package/dist/src/Collection.min.mjs.map +0 -0
  159. package/dist/src/Collection.mjs +0 -0
  160. package/dist/src/Collection.mjs.map +0 -0
  161. package/dist/src/CommonMethods.d.ts +0 -0
  162. package/dist/src/CommonMethods.d.ts.map +0 -0
  163. package/dist/src/CommonMethods.min.mjs +0 -0
  164. package/dist/src/CommonMethods.min.mjs.map +0 -0
  165. package/dist/src/CommonMethods.mjs +0 -0
  166. package/dist/src/CommonMethods.mjs.map +0 -0
  167. package/dist/src/EventTypeDefs.d.ts +0 -0
  168. package/dist/src/EventTypeDefs.d.ts.map +0 -0
  169. package/dist/src/Intersection.d.ts +0 -0
  170. package/dist/src/Intersection.d.ts.map +0 -0
  171. package/dist/src/Intersection.min.mjs +0 -0
  172. package/dist/src/Intersection.min.mjs.map +0 -0
  173. package/dist/src/Intersection.mjs +0 -0
  174. package/dist/src/Intersection.mjs.map +0 -0
  175. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  176. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  177. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
  178. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
  179. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
  180. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
  181. package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
  182. package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  183. package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
  184. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
  185. package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
  186. package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
  211. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  212. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  213. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
  214. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
  215. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
  216. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
  217. package/dist/src/LayoutManager/constants.d.ts +0 -0
  218. package/dist/src/LayoutManager/constants.d.ts.map +0 -0
  219. package/dist/src/LayoutManager/constants.min.mjs +0 -0
  220. package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
  221. package/dist/src/LayoutManager/constants.mjs +0 -0
  222. package/dist/src/LayoutManager/constants.mjs.map +0 -0
  223. package/dist/src/LayoutManager/index.d.ts +0 -0
  224. package/dist/src/LayoutManager/index.d.ts.map +0 -0
  225. package/dist/src/LayoutManager/types.d.ts +0 -0
  226. package/dist/src/LayoutManager/types.d.ts.map +0 -0
  227. package/dist/src/Observable.d.ts +0 -0
  228. package/dist/src/Observable.d.ts.map +0 -0
  229. package/dist/src/Observable.min.mjs +0 -0
  230. package/dist/src/Observable.min.mjs.map +0 -0
  231. package/dist/src/Observable.mjs +0 -0
  232. package/dist/src/Observable.mjs.map +0 -0
  233. package/dist/src/Pattern/Pattern.d.ts +0 -0
  234. package/dist/src/Pattern/Pattern.d.ts.map +0 -0
  235. package/dist/src/Pattern/Pattern.min.mjs +0 -0
  236. package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
  237. package/dist/src/Pattern/Pattern.mjs +0 -0
  238. package/dist/src/Pattern/Pattern.mjs.map +0 -0
  239. package/dist/src/Pattern/index.d.ts +0 -0
  240. package/dist/src/Pattern/index.d.ts.map +0 -0
  241. package/dist/src/Pattern/types.d.ts +0 -0
  242. package/dist/src/Pattern/types.d.ts.map +0 -0
  243. package/dist/src/Point.d.ts +0 -0
  244. package/dist/src/Point.d.ts.map +0 -0
  245. package/dist/src/Point.min.mjs +0 -0
  246. package/dist/src/Point.min.mjs.map +0 -0
  247. package/dist/src/Point.mjs +0 -0
  248. package/dist/src/Point.mjs.map +0 -0
  249. package/dist/src/Shadow.d.ts +0 -0
  250. package/dist/src/Shadow.d.ts.map +0 -0
  251. package/dist/src/Shadow.min.mjs +0 -0
  252. package/dist/src/Shadow.min.mjs.map +0 -0
  253. package/dist/src/Shadow.mjs +0 -0
  254. package/dist/src/Shadow.mjs.map +0 -0
  255. package/dist/src/brushes/BaseBrush.d.ts +0 -0
  256. package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
  257. package/dist/src/brushes/BaseBrush.min.mjs +0 -0
  258. package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
  259. package/dist/src/brushes/BaseBrush.mjs +0 -0
  260. package/dist/src/brushes/BaseBrush.mjs.map +0 -0
  261. package/dist/src/brushes/CircleBrush.d.ts +0 -0
  262. package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
  263. package/dist/src/brushes/CircleBrush.min.mjs +0 -0
  264. package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
  265. package/dist/src/brushes/CircleBrush.mjs +0 -0
  266. package/dist/src/brushes/CircleBrush.mjs.map +0 -0
  267. package/dist/src/brushes/PatternBrush.d.ts +0 -0
  268. package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
  269. package/dist/src/brushes/PatternBrush.min.mjs +0 -0
  270. package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
  271. package/dist/src/brushes/PatternBrush.mjs +0 -0
  272. package/dist/src/brushes/PatternBrush.mjs.map +0 -0
  273. package/dist/src/brushes/PencilBrush.d.ts +0 -0
  274. package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
  275. package/dist/src/brushes/PencilBrush.min.mjs +0 -0
  276. package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
  277. package/dist/src/brushes/PencilBrush.mjs +0 -0
  278. package/dist/src/brushes/PencilBrush.mjs.map +0 -0
  279. package/dist/src/brushes/SprayBrush.d.ts +0 -0
  280. package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
  281. package/dist/src/brushes/SprayBrush.min.mjs +0 -0
  282. package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
  283. package/dist/src/brushes/SprayBrush.mjs +0 -0
  284. package/dist/src/brushes/SprayBrush.mjs.map +0 -0
  285. package/dist/src/brushes/typedefs.d.ts +0 -0
  286. package/dist/src/brushes/typedefs.d.ts.map +0 -0
  287. package/dist/src/cache.d.ts +0 -0
  288. package/dist/src/cache.d.ts.map +0 -0
  289. package/dist/src/cache.min.mjs +0 -0
  290. package/dist/src/cache.min.mjs.map +0 -0
  291. package/dist/src/cache.mjs +0 -0
  292. package/dist/src/cache.mjs.map +0 -0
  293. package/dist/src/canvas/Canvas.d.ts +0 -0
  294. package/dist/src/canvas/Canvas.d.ts.map +0 -0
  295. package/dist/src/canvas/Canvas.min.mjs +0 -0
  296. package/dist/src/canvas/Canvas.min.mjs.map +0 -0
  297. package/dist/src/canvas/Canvas.mjs +0 -0
  298. package/dist/src/canvas/Canvas.mjs.map +0 -0
  299. package/dist/src/canvas/CanvasOptions.d.ts +0 -0
  300. package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
  301. package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
  302. package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
  303. package/dist/src/canvas/CanvasOptions.mjs +0 -0
  304. package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
  305. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  306. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  307. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
  308. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
  309. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
  310. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
  311. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  312. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  313. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
  314. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
  315. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
  316. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
  317. package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
  318. package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
  319. package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
  320. package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
  321. package/dist/src/canvas/DOMManagers/util.mjs +0 -0
  322. package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
  323. package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
  324. package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
  325. package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
  326. package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
  327. package/dist/src/canvas/SelectableCanvas.mjs +0 -0
  328. package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
  329. package/dist/src/canvas/StaticCanvas.d.ts +0 -0
  330. package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
  331. package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
  332. package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
  333. package/dist/src/canvas/StaticCanvas.mjs +0 -0
  334. package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
  335. package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
  336. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  337. package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
  338. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
  339. package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
  340. package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
  341. package/dist/src/canvas/TextEditingManager.d.ts +0 -0
  342. package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
  343. package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
  344. package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
  345. package/dist/src/canvas/TextEditingManager.mjs +0 -0
  346. package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
  347. package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
  348. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
  349. package/dist/src/color/Color.d.ts +0 -0
  350. package/dist/src/color/Color.d.ts.map +0 -0
  351. package/dist/src/color/Color.min.mjs +0 -0
  352. package/dist/src/color/Color.min.mjs.map +0 -0
  353. package/dist/src/color/Color.mjs +0 -0
  354. package/dist/src/color/Color.mjs.map +0 -0
  355. package/dist/src/color/color_map.d.ts +0 -0
  356. package/dist/src/color/color_map.d.ts.map +0 -0
  357. package/dist/src/color/color_map.min.mjs +0 -0
  358. package/dist/src/color/color_map.min.mjs.map +0 -0
  359. package/dist/src/color/color_map.mjs +0 -0
  360. package/dist/src/color/color_map.mjs.map +0 -0
  361. package/dist/src/color/constants.d.ts +0 -0
  362. package/dist/src/color/constants.d.ts.map +0 -0
  363. package/dist/src/color/constants.min.mjs +0 -0
  364. package/dist/src/color/constants.min.mjs.map +0 -0
  365. package/dist/src/color/constants.mjs +0 -0
  366. package/dist/src/color/constants.mjs.map +0 -0
  367. package/dist/src/color/typedefs.d.ts +0 -0
  368. package/dist/src/color/typedefs.d.ts.map +0 -0
  369. package/dist/src/color/util.d.ts +0 -0
  370. package/dist/src/color/util.d.ts.map +0 -0
  371. package/dist/src/color/util.min.mjs +0 -0
  372. package/dist/src/color/util.min.mjs.map +0 -0
  373. package/dist/src/color/util.mjs +0 -0
  374. package/dist/src/color/util.mjs.map +0 -0
  375. package/dist/src/config.d.ts +0 -0
  376. package/dist/src/config.d.ts.map +0 -0
  377. package/dist/src/config.min.mjs +0 -0
  378. package/dist/src/config.min.mjs.map +0 -0
  379. package/dist/src/config.mjs +0 -0
  380. package/dist/src/config.mjs.map +0 -0
  381. package/dist/src/constants.d.ts +0 -0
  382. package/dist/src/constants.d.ts.map +0 -0
  383. package/dist/src/constants.min.mjs +0 -0
  384. package/dist/src/constants.min.mjs.map +0 -0
  385. package/dist/src/constants.mjs +0 -0
  386. package/dist/src/constants.mjs.map +0 -0
  387. package/dist/src/controls/Control.d.ts +0 -0
  388. package/dist/src/controls/Control.d.ts.map +0 -0
  389. package/dist/src/controls/Control.min.mjs +0 -0
  390. package/dist/src/controls/Control.min.mjs.map +0 -0
  391. package/dist/src/controls/Control.mjs +0 -0
  392. package/dist/src/controls/Control.mjs.map +0 -0
  393. package/dist/src/controls/changeHeight.d.ts +0 -0
  394. package/dist/src/controls/changeHeight.d.ts.map +0 -0
  395. package/dist/src/controls/changeWidth.d.ts +0 -0
  396. package/dist/src/controls/changeWidth.d.ts.map +0 -0
  397. package/dist/src/controls/changeWidth.min.mjs +0 -0
  398. package/dist/src/controls/changeWidth.min.mjs.map +0 -0
  399. package/dist/src/controls/changeWidth.mjs +0 -0
  400. package/dist/src/controls/changeWidth.mjs.map +0 -0
  401. package/dist/src/controls/commonControls.d.ts +0 -0
  402. package/dist/src/controls/commonControls.d.ts.map +0 -0
  403. package/dist/src/controls/commonControls.min.mjs +0 -0
  404. package/dist/src/controls/commonControls.min.mjs.map +0 -0
  405. package/dist/src/controls/commonControls.mjs +0 -0
  406. package/dist/src/controls/commonControls.mjs.map +0 -0
  407. package/dist/src/controls/controlRendering.d.ts +0 -0
  408. package/dist/src/controls/controlRendering.d.ts.map +0 -0
  409. package/dist/src/controls/controlRendering.min.mjs +0 -0
  410. package/dist/src/controls/controlRendering.min.mjs.map +0 -0
  411. package/dist/src/controls/controlRendering.mjs +0 -0
  412. package/dist/src/controls/controlRendering.mjs.map +0 -0
  413. package/dist/src/controls/drag.d.ts +0 -0
  414. package/dist/src/controls/drag.d.ts.map +0 -0
  415. package/dist/src/controls/drag.min.mjs +0 -0
  416. package/dist/src/controls/drag.min.mjs.map +0 -0
  417. package/dist/src/controls/drag.mjs +0 -0
  418. package/dist/src/controls/drag.mjs.map +0 -0
  419. package/dist/src/controls/fireEvent.d.ts +0 -0
  420. package/dist/src/controls/fireEvent.d.ts.map +0 -0
  421. package/dist/src/controls/fireEvent.min.mjs +0 -0
  422. package/dist/src/controls/fireEvent.min.mjs.map +0 -0
  423. package/dist/src/controls/fireEvent.mjs +0 -0
  424. package/dist/src/controls/fireEvent.mjs.map +0 -0
  425. package/dist/src/controls/index.d.ts +0 -0
  426. package/dist/src/controls/index.d.ts.map +0 -0
  427. package/dist/src/controls/index.min.mjs +0 -0
  428. package/dist/src/controls/index.min.mjs.map +0 -0
  429. package/dist/src/controls/index.mjs +0 -0
  430. package/dist/src/controls/index.mjs.map +0 -0
  431. package/dist/src/controls/pathControl.d.ts +0 -0
  432. package/dist/src/controls/pathControl.d.ts.map +0 -0
  433. package/dist/src/controls/pathControl.min.mjs +0 -0
  434. package/dist/src/controls/pathControl.min.mjs.map +0 -0
  435. package/dist/src/controls/pathControl.mjs +0 -0
  436. package/dist/src/controls/pathControl.mjs.map +0 -0
  437. package/dist/src/controls/polyControl.d.ts +0 -0
  438. package/dist/src/controls/polyControl.d.ts.map +0 -0
  439. package/dist/src/controls/polyControl.min.mjs +0 -0
  440. package/dist/src/controls/polyControl.min.mjs.map +0 -0
  441. package/dist/src/controls/polyControl.mjs +0 -0
  442. package/dist/src/controls/polyControl.mjs.map +0 -0
  443. package/dist/src/controls/rotate.d.ts +0 -0
  444. package/dist/src/controls/rotate.d.ts.map +0 -0
  445. package/dist/src/controls/rotate.min.mjs +0 -0
  446. package/dist/src/controls/rotate.min.mjs.map +0 -0
  447. package/dist/src/controls/rotate.mjs +0 -0
  448. package/dist/src/controls/rotate.mjs.map +0 -0
  449. package/dist/src/controls/scale.d.ts +0 -0
  450. package/dist/src/controls/scale.d.ts.map +0 -0
  451. package/dist/src/controls/scale.min.mjs +0 -0
  452. package/dist/src/controls/scale.min.mjs.map +0 -0
  453. package/dist/src/controls/scale.mjs +0 -0
  454. package/dist/src/controls/scale.mjs.map +0 -0
  455. package/dist/src/controls/scaleSkew.d.ts +0 -0
  456. package/dist/src/controls/scaleSkew.d.ts.map +0 -0
  457. package/dist/src/controls/scaleSkew.min.mjs +0 -0
  458. package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
  459. package/dist/src/controls/scaleSkew.mjs +0 -0
  460. package/dist/src/controls/scaleSkew.mjs.map +0 -0
  461. package/dist/src/controls/skew.d.ts +0 -0
  462. package/dist/src/controls/skew.d.ts.map +0 -0
  463. package/dist/src/controls/skew.min.mjs +0 -0
  464. package/dist/src/controls/skew.min.mjs.map +0 -0
  465. package/dist/src/controls/skew.mjs +0 -0
  466. package/dist/src/controls/skew.mjs.map +0 -0
  467. package/dist/src/controls/util.d.ts +0 -0
  468. package/dist/src/controls/util.d.ts.map +0 -0
  469. package/dist/src/controls/util.min.mjs +0 -0
  470. package/dist/src/controls/util.min.mjs.map +0 -0
  471. package/dist/src/controls/util.mjs +0 -0
  472. package/dist/src/controls/util.mjs.map +0 -0
  473. package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
  474. package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  475. package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
  476. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
  477. package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
  478. package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
  479. package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  480. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  481. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
  482. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
  483. package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
  484. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
  485. package/dist/src/env/browser.d.ts +0 -0
  486. package/dist/src/env/browser.d.ts.map +0 -0
  487. package/dist/src/env/browser.min.mjs +0 -0
  488. package/dist/src/env/browser.min.mjs.map +0 -0
  489. package/dist/src/env/browser.mjs +0 -0
  490. package/dist/src/env/browser.mjs.map +0 -0
  491. package/dist/src/env/index.d.ts +0 -0
  492. package/dist/src/env/index.d.ts.map +0 -0
  493. package/dist/src/env/index.min.mjs +0 -0
  494. package/dist/src/env/index.min.mjs.map +0 -0
  495. package/dist/src/env/index.mjs +0 -0
  496. package/dist/src/env/index.mjs.map +0 -0
  497. package/dist/src/env/node.d.ts +0 -0
  498. package/dist/src/env/node.d.ts.map +0 -0
  499. package/dist/src/env/types.d.ts +0 -0
  500. package/dist/src/env/types.d.ts.map +0 -0
  501. package/dist/src/filters/BaseFilter.d.ts +0 -0
  502. package/dist/src/filters/BaseFilter.d.ts.map +0 -0
  503. package/dist/src/filters/BaseFilter.min.mjs +0 -0
  504. package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
  505. package/dist/src/filters/BaseFilter.mjs +0 -0
  506. package/dist/src/filters/BaseFilter.mjs.map +0 -0
  507. package/dist/src/filters/BlendColor.d.ts +0 -0
  508. package/dist/src/filters/BlendColor.d.ts.map +0 -0
  509. package/dist/src/filters/BlendColor.min.mjs +0 -0
  510. package/dist/src/filters/BlendColor.min.mjs.map +0 -0
  511. package/dist/src/filters/BlendColor.mjs +0 -0
  512. package/dist/src/filters/BlendColor.mjs.map +0 -0
  513. package/dist/src/filters/BlendImage.d.ts +0 -0
  514. package/dist/src/filters/BlendImage.d.ts.map +0 -0
  515. package/dist/src/filters/BlendImage.min.mjs +0 -0
  516. package/dist/src/filters/BlendImage.min.mjs.map +0 -0
  517. package/dist/src/filters/BlendImage.mjs +0 -0
  518. package/dist/src/filters/BlendImage.mjs.map +0 -0
  519. package/dist/src/filters/Blur.d.ts +0 -0
  520. package/dist/src/filters/Blur.d.ts.map +0 -0
  521. package/dist/src/filters/Blur.min.mjs +0 -0
  522. package/dist/src/filters/Blur.min.mjs.map +0 -0
  523. package/dist/src/filters/Blur.mjs +0 -0
  524. package/dist/src/filters/Blur.mjs.map +0 -0
  525. package/dist/src/filters/Boilerplate.d.ts +0 -0
  526. package/dist/src/filters/Boilerplate.d.ts.map +0 -0
  527. package/dist/src/filters/Brightness.d.ts +0 -0
  528. package/dist/src/filters/Brightness.d.ts.map +0 -0
  529. package/dist/src/filters/Brightness.min.mjs +0 -0
  530. package/dist/src/filters/Brightness.min.mjs.map +0 -0
  531. package/dist/src/filters/Brightness.mjs +0 -0
  532. package/dist/src/filters/Brightness.mjs.map +0 -0
  533. package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  534. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  535. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
  536. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
  537. package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
  538. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
  539. package/dist/src/filters/ColorMatrix.d.ts +0 -0
  540. package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
  541. package/dist/src/filters/ColorMatrix.min.mjs +0 -0
  542. package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
  543. package/dist/src/filters/ColorMatrix.mjs +0 -0
  544. package/dist/src/filters/ColorMatrix.mjs.map +0 -0
  545. package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
  546. package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  547. package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
  548. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
  549. package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
  550. package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
  551. package/dist/src/filters/Composed.d.ts +0 -0
  552. package/dist/src/filters/Composed.d.ts.map +0 -0
  553. package/dist/src/filters/Composed.min.mjs +0 -0
  554. package/dist/src/filters/Composed.min.mjs.map +0 -0
  555. package/dist/src/filters/Composed.mjs +0 -0
  556. package/dist/src/filters/Composed.mjs.map +0 -0
  557. package/dist/src/filters/Contrast.d.ts +0 -0
  558. package/dist/src/filters/Contrast.d.ts.map +0 -0
  559. package/dist/src/filters/Contrast.min.mjs +0 -0
  560. package/dist/src/filters/Contrast.min.mjs.map +0 -0
  561. package/dist/src/filters/Contrast.mjs +0 -0
  562. package/dist/src/filters/Contrast.mjs.map +0 -0
  563. package/dist/src/filters/Convolute.d.ts +0 -0
  564. package/dist/src/filters/Convolute.d.ts.map +0 -0
  565. package/dist/src/filters/Convolute.min.mjs +0 -0
  566. package/dist/src/filters/Convolute.min.mjs.map +0 -0
  567. package/dist/src/filters/Convolute.mjs +0 -0
  568. package/dist/src/filters/Convolute.mjs.map +0 -0
  569. package/dist/src/filters/FilterBackend.d.ts +0 -0
  570. package/dist/src/filters/FilterBackend.d.ts.map +0 -0
  571. package/dist/src/filters/FilterBackend.min.mjs +0 -0
  572. package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
  573. package/dist/src/filters/FilterBackend.mjs +0 -0
  574. package/dist/src/filters/FilterBackend.mjs.map +0 -0
  575. package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
  576. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  577. package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
  578. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
  579. package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
  580. package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
  581. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
  582. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
  583. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  584. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  585. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
  586. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
  587. package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
  588. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
  589. package/dist/src/filters/Gamma.d.ts +0 -0
  590. package/dist/src/filters/Gamma.d.ts.map +0 -0
  591. package/dist/src/filters/Gamma.min.mjs +0 -0
  592. package/dist/src/filters/Gamma.min.mjs.map +0 -0
  593. package/dist/src/filters/Gamma.mjs +0 -0
  594. package/dist/src/filters/Gamma.mjs.map +0 -0
  595. package/dist/src/filters/Grayscale.d.ts +0 -0
  596. package/dist/src/filters/Grayscale.d.ts.map +0 -0
  597. package/dist/src/filters/Grayscale.min.mjs +0 -0
  598. package/dist/src/filters/Grayscale.min.mjs.map +0 -0
  599. package/dist/src/filters/Grayscale.mjs +0 -0
  600. package/dist/src/filters/Grayscale.mjs.map +0 -0
  601. package/dist/src/filters/HueRotation.d.ts +0 -0
  602. package/dist/src/filters/HueRotation.d.ts.map +0 -0
  603. package/dist/src/filters/HueRotation.min.mjs +0 -0
  604. package/dist/src/filters/HueRotation.min.mjs.map +0 -0
  605. package/dist/src/filters/HueRotation.mjs +0 -0
  606. package/dist/src/filters/HueRotation.mjs.map +0 -0
  607. package/dist/src/filters/Invert.d.ts +0 -0
  608. package/dist/src/filters/Invert.d.ts.map +0 -0
  609. package/dist/src/filters/Invert.min.mjs +0 -0
  610. package/dist/src/filters/Invert.min.mjs.map +0 -0
  611. package/dist/src/filters/Invert.mjs +0 -0
  612. package/dist/src/filters/Invert.mjs.map +0 -0
  613. package/dist/src/filters/Noise.d.ts +0 -0
  614. package/dist/src/filters/Noise.d.ts.map +0 -0
  615. package/dist/src/filters/Noise.min.mjs +0 -0
  616. package/dist/src/filters/Noise.min.mjs.map +0 -0
  617. package/dist/src/filters/Noise.mjs +0 -0
  618. package/dist/src/filters/Noise.mjs.map +0 -0
  619. package/dist/src/filters/Pixelate.d.ts +0 -0
  620. package/dist/src/filters/Pixelate.d.ts.map +0 -0
  621. package/dist/src/filters/Pixelate.min.mjs +0 -0
  622. package/dist/src/filters/Pixelate.min.mjs.map +0 -0
  623. package/dist/src/filters/Pixelate.mjs +0 -0
  624. package/dist/src/filters/Pixelate.mjs.map +0 -0
  625. package/dist/src/filters/RemoveColor.d.ts +0 -0
  626. package/dist/src/filters/RemoveColor.d.ts.map +0 -0
  627. package/dist/src/filters/RemoveColor.min.mjs +0 -0
  628. package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
  629. package/dist/src/filters/RemoveColor.mjs +0 -0
  630. package/dist/src/filters/RemoveColor.mjs.map +0 -0
  631. package/dist/src/filters/Resize.d.ts +0 -0
  632. package/dist/src/filters/Resize.d.ts.map +0 -0
  633. package/dist/src/filters/Resize.min.mjs +0 -0
  634. package/dist/src/filters/Resize.min.mjs.map +0 -0
  635. package/dist/src/filters/Resize.mjs +0 -0
  636. package/dist/src/filters/Resize.mjs.map +0 -0
  637. package/dist/src/filters/Saturation.d.ts +0 -0
  638. package/dist/src/filters/Saturation.d.ts.map +0 -0
  639. package/dist/src/filters/Saturation.min.mjs +0 -0
  640. package/dist/src/filters/Saturation.min.mjs.map +0 -0
  641. package/dist/src/filters/Saturation.mjs +0 -0
  642. package/dist/src/filters/Saturation.mjs.map +0 -0
  643. package/dist/src/filters/Vibrance.d.ts +0 -0
  644. package/dist/src/filters/Vibrance.d.ts.map +0 -0
  645. package/dist/src/filters/Vibrance.min.mjs +0 -0
  646. package/dist/src/filters/Vibrance.min.mjs.map +0 -0
  647. package/dist/src/filters/Vibrance.mjs +0 -0
  648. package/dist/src/filters/Vibrance.mjs.map +0 -0
  649. package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
  650. package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  651. package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
  652. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
  653. package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
  654. package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
  655. package/dist/src/filters/filters.d.ts +0 -0
  656. package/dist/src/filters/filters.d.ts.map +0 -0
  657. package/dist/src/filters/filters.min.mjs +0 -0
  658. package/dist/src/filters/filters.min.mjs.map +0 -0
  659. package/dist/src/filters/filters.mjs +0 -0
  660. package/dist/src/filters/filters.mjs.map +0 -0
  661. package/dist/src/filters/index.d.ts +0 -0
  662. package/dist/src/filters/index.d.ts.map +0 -0
  663. package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
  664. package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
  665. package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
  666. package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
  667. package/dist/src/filters/shaders/baseFilter.mjs +0 -0
  668. package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
  669. package/dist/src/filters/shaders/blendColor.d.ts +0 -0
  670. package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
  671. package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
  672. package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
  673. package/dist/src/filters/shaders/blendColor.mjs +0 -0
  674. package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
  675. package/dist/src/filters/shaders/blendImage.d.ts +0 -0
  676. package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
  677. package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
  678. package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
  679. package/dist/src/filters/shaders/blendImage.mjs +0 -0
  680. package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
  681. package/dist/src/filters/shaders/blur.d.ts +0 -0
  682. package/dist/src/filters/shaders/blur.d.ts.map +0 -0
  683. package/dist/src/filters/shaders/blur.min.mjs +0 -0
  684. package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
  685. package/dist/src/filters/shaders/blur.mjs +0 -0
  686. package/dist/src/filters/shaders/blur.mjs.map +0 -0
  687. package/dist/src/filters/shaders/brightness.d.ts +0 -0
  688. package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
  689. package/dist/src/filters/shaders/brightness.min.mjs +0 -0
  690. package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
  691. package/dist/src/filters/shaders/brightness.mjs +0 -0
  692. package/dist/src/filters/shaders/brightness.mjs.map +0 -0
  693. package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
  694. package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  695. package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
  696. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
  697. package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
  698. package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
  699. package/dist/src/filters/shaders/constrast.d.ts +0 -0
  700. package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
  701. package/dist/src/filters/shaders/constrast.min.mjs +0 -0
  702. package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
  703. package/dist/src/filters/shaders/constrast.mjs +0 -0
  704. package/dist/src/filters/shaders/constrast.mjs.map +0 -0
  705. package/dist/src/filters/shaders/convolute.d.ts +0 -0
  706. package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
  707. package/dist/src/filters/shaders/convolute.min.mjs +0 -0
  708. package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
  709. package/dist/src/filters/shaders/convolute.mjs +0 -0
  710. package/dist/src/filters/shaders/convolute.mjs.map +0 -0
  711. package/dist/src/filters/shaders/gamma.d.ts +0 -0
  712. package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
  713. package/dist/src/filters/shaders/gamma.min.mjs +0 -0
  714. package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
  715. package/dist/src/filters/shaders/gamma.mjs +0 -0
  716. package/dist/src/filters/shaders/gamma.mjs.map +0 -0
  717. package/dist/src/filters/shaders/grayscale.d.ts +0 -0
  718. package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
  719. package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
  720. package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
  721. package/dist/src/filters/shaders/grayscale.mjs +0 -0
  722. package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
  723. package/dist/src/filters/shaders/invert.d.ts +0 -0
  724. package/dist/src/filters/shaders/invert.d.ts.map +0 -0
  725. package/dist/src/filters/shaders/invert.min.mjs +0 -0
  726. package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
  727. package/dist/src/filters/shaders/invert.mjs +0 -0
  728. package/dist/src/filters/shaders/invert.mjs.map +0 -0
  729. package/dist/src/filters/shaders/noise.d.ts +0 -0
  730. package/dist/src/filters/shaders/noise.d.ts.map +0 -0
  731. package/dist/src/filters/shaders/noise.min.mjs +0 -0
  732. package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
  733. package/dist/src/filters/shaders/noise.mjs +0 -0
  734. package/dist/src/filters/shaders/noise.mjs.map +0 -0
  735. package/dist/src/filters/shaders/pixelate.d.ts +0 -0
  736. package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
  737. package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
  738. package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
  739. package/dist/src/filters/shaders/pixelate.mjs +0 -0
  740. package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
  741. package/dist/src/filters/shaders/removeColor.d.ts +0 -0
  742. package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
  743. package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
  744. package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
  745. package/dist/src/filters/shaders/removeColor.mjs +0 -0
  746. package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
  747. package/dist/src/filters/shaders/saturation.d.ts +0 -0
  748. package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
  749. package/dist/src/filters/shaders/saturation.min.mjs +0 -0
  750. package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
  751. package/dist/src/filters/shaders/saturation.mjs +0 -0
  752. package/dist/src/filters/shaders/saturation.mjs.map +0 -0
  753. package/dist/src/filters/shaders/vibrance.d.ts +0 -0
  754. package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
  755. package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
  756. package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
  757. package/dist/src/filters/shaders/vibrance.mjs +0 -0
  758. package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
  759. package/dist/src/filters/typedefs.d.ts +0 -0
  760. package/dist/src/filters/typedefs.d.ts.map +0 -0
  761. package/dist/src/filters/utils.d.ts +0 -0
  762. package/dist/src/filters/utils.d.ts.map +0 -0
  763. package/dist/src/filters/utils.min.mjs +0 -0
  764. package/dist/src/filters/utils.min.mjs.map +0 -0
  765. package/dist/src/filters/utils.mjs +0 -0
  766. package/dist/src/filters/utils.mjs.map +0 -0
  767. package/dist/src/gradient/Gradient.d.ts +0 -0
  768. package/dist/src/gradient/Gradient.d.ts.map +0 -0
  769. package/dist/src/gradient/Gradient.min.mjs +0 -0
  770. package/dist/src/gradient/Gradient.min.mjs.map +0 -0
  771. package/dist/src/gradient/Gradient.mjs +0 -0
  772. package/dist/src/gradient/Gradient.mjs.map +0 -0
  773. package/dist/src/gradient/constants.d.ts +0 -0
  774. package/dist/src/gradient/constants.d.ts.map +0 -0
  775. package/dist/src/gradient/constants.min.mjs +0 -0
  776. package/dist/src/gradient/constants.min.mjs.map +0 -0
  777. package/dist/src/gradient/constants.mjs +0 -0
  778. package/dist/src/gradient/constants.mjs.map +0 -0
  779. package/dist/src/gradient/index.d.ts +0 -0
  780. package/dist/src/gradient/index.d.ts.map +0 -0
  781. package/dist/src/gradient/parser/misc.d.ts +0 -0
  782. package/dist/src/gradient/parser/misc.d.ts.map +0 -0
  783. package/dist/src/gradient/parser/misc.min.mjs +0 -0
  784. package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
  785. package/dist/src/gradient/parser/misc.mjs +0 -0
  786. package/dist/src/gradient/parser/misc.mjs.map +0 -0
  787. package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
  788. package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  789. package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
  790. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
  791. package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
  792. package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
  793. package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
  794. package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
  795. package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
  796. package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
  797. package/dist/src/gradient/parser/parseCoords.mjs +0 -0
  798. package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
  799. package/dist/src/gradient/typedefs.d.ts +0 -0
  800. package/dist/src/gradient/typedefs.d.ts.map +0 -0
  801. package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
  802. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
  803. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
  804. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
  805. package/dist/src/parkinglot/straighten.d.ts +0 -0
  806. package/dist/src/parkinglot/straighten.d.ts.map +0 -0
  807. package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
  808. package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
  809. package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
  810. package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
  811. package/dist/src/parser/applyViewboxTransform.mjs +0 -0
  812. package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
  813. package/dist/src/parser/attributes.d.ts +0 -0
  814. package/dist/src/parser/attributes.d.ts.map +0 -0
  815. package/dist/src/parser/attributes.min.mjs +0 -0
  816. package/dist/src/parser/attributes.min.mjs.map +0 -0
  817. package/dist/src/parser/attributes.mjs +0 -0
  818. package/dist/src/parser/attributes.mjs.map +0 -0
  819. package/dist/src/parser/constants.d.ts +0 -0
  820. package/dist/src/parser/constants.d.ts.map +0 -0
  821. package/dist/src/parser/constants.min.mjs +0 -0
  822. package/dist/src/parser/constants.min.mjs.map +0 -0
  823. package/dist/src/parser/constants.mjs +0 -0
  824. package/dist/src/parser/constants.mjs.map +0 -0
  825. package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
  826. package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  827. package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
  828. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
  829. package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
  830. package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
  831. package/dist/src/parser/elementMatchesRule.d.ts +0 -0
  832. package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
  833. package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
  834. package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
  835. package/dist/src/parser/elementMatchesRule.mjs +0 -0
  836. package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
  837. package/dist/src/parser/elements_parser.d.ts +0 -0
  838. package/dist/src/parser/elements_parser.d.ts.map +0 -0
  839. package/dist/src/parser/elements_parser.min.mjs +0 -0
  840. package/dist/src/parser/elements_parser.min.mjs.map +0 -0
  841. package/dist/src/parser/elements_parser.mjs +0 -0
  842. package/dist/src/parser/elements_parser.mjs.map +0 -0
  843. package/dist/src/parser/getCSSRules.d.ts +0 -0
  844. package/dist/src/parser/getCSSRules.d.ts.map +0 -0
  845. package/dist/src/parser/getCSSRules.min.mjs +0 -0
  846. package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
  847. package/dist/src/parser/getCSSRules.mjs +0 -0
  848. package/dist/src/parser/getCSSRules.mjs.map +0 -0
  849. package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
  850. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  851. package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
  852. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
  853. package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
  854. package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
  855. package/dist/src/parser/getGradientDefs.d.ts +0 -0
  856. package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
  857. package/dist/src/parser/getGradientDefs.min.mjs +0 -0
  858. package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
  859. package/dist/src/parser/getGradientDefs.mjs +0 -0
  860. package/dist/src/parser/getGradientDefs.mjs.map +0 -0
  861. package/dist/src/parser/getMultipleNodes.d.ts +0 -0
  862. package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
  863. package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
  864. package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
  865. package/dist/src/parser/getMultipleNodes.mjs +0 -0
  866. package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
  867. package/dist/src/parser/getSvgRegex.d.ts +0 -0
  868. package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
  869. package/dist/src/parser/getSvgRegex.min.mjs +0 -0
  870. package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
  871. package/dist/src/parser/getSvgRegex.mjs +0 -0
  872. package/dist/src/parser/getSvgRegex.mjs.map +0 -0
  873. package/dist/src/parser/getTagName.d.ts +0 -0
  874. package/dist/src/parser/getTagName.d.ts.map +0 -0
  875. package/dist/src/parser/getTagName.min.mjs +0 -0
  876. package/dist/src/parser/getTagName.min.mjs.map +0 -0
  877. package/dist/src/parser/getTagName.mjs +0 -0
  878. package/dist/src/parser/getTagName.mjs.map +0 -0
  879. package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
  880. package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  881. package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
  882. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
  883. package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
  884. package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
  885. package/dist/src/parser/loadSVGFromString.d.ts +0 -0
  886. package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
  887. package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
  888. package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
  889. package/dist/src/parser/loadSVGFromString.mjs +0 -0
  890. package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
  891. package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
  892. package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
  893. package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
  894. package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
  895. package/dist/src/parser/loadSVGFromURL.mjs +0 -0
  896. package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
  897. package/dist/src/parser/normalizeAttr.d.ts +0 -0
  898. package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
  899. package/dist/src/parser/normalizeAttr.min.mjs +0 -0
  900. package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
  901. package/dist/src/parser/normalizeAttr.mjs +0 -0
  902. package/dist/src/parser/normalizeAttr.mjs.map +0 -0
  903. package/dist/src/parser/normalizeValue.d.ts +0 -0
  904. package/dist/src/parser/normalizeValue.d.ts.map +0 -0
  905. package/dist/src/parser/normalizeValue.min.mjs +0 -0
  906. package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
  907. package/dist/src/parser/normalizeValue.mjs +0 -0
  908. package/dist/src/parser/normalizeValue.mjs.map +0 -0
  909. package/dist/src/parser/parseAttributes.d.ts +0 -0
  910. package/dist/src/parser/parseAttributes.d.ts.map +0 -0
  911. package/dist/src/parser/parseAttributes.min.mjs +0 -0
  912. package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
  913. package/dist/src/parser/parseAttributes.mjs +0 -0
  914. package/dist/src/parser/parseAttributes.mjs.map +0 -0
  915. package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
  916. package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
  917. package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
  918. package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
  919. package/dist/src/parser/parseFontDeclaration.mjs +0 -0
  920. package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
  921. package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
  922. package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
  923. package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
  924. package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
  925. package/dist/src/parser/parsePointsAttribute.mjs +0 -0
  926. package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
  927. package/dist/src/parser/parseSVGDocument.d.ts +0 -0
  928. package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
  929. package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
  930. package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
  931. package/dist/src/parser/parseSVGDocument.mjs +0 -0
  932. package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
  933. package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
  934. package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
  935. package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
  936. package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
  937. package/dist/src/parser/parseStyleAttribute.mjs +0 -0
  938. package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
  939. package/dist/src/parser/parseStyleObject.d.ts +0 -0
  940. package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
  941. package/dist/src/parser/parseStyleObject.min.mjs +0 -0
  942. package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
  943. package/dist/src/parser/parseStyleObject.mjs +0 -0
  944. package/dist/src/parser/parseStyleObject.mjs.map +0 -0
  945. package/dist/src/parser/parseStyleString.d.ts +0 -0
  946. package/dist/src/parser/parseStyleString.d.ts.map +0 -0
  947. package/dist/src/parser/parseStyleString.min.mjs +0 -0
  948. package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
  949. package/dist/src/parser/parseStyleString.mjs +0 -0
  950. package/dist/src/parser/parseStyleString.mjs.map +0 -0
  951. package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
  952. package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
  953. package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
  954. package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
  955. package/dist/src/parser/parseTransformAttribute.mjs +0 -0
  956. package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
  957. package/dist/src/parser/parseUseDirectives.d.ts +0 -0
  958. package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
  959. package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
  960. package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
  961. package/dist/src/parser/parseUseDirectives.mjs +0 -0
  962. package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
  963. package/dist/src/parser/percent.d.ts +0 -0
  964. package/dist/src/parser/percent.d.ts.map +0 -0
  965. package/dist/src/parser/percent.min.mjs +0 -0
  966. package/dist/src/parser/percent.min.mjs.map +0 -0
  967. package/dist/src/parser/percent.mjs +0 -0
  968. package/dist/src/parser/percent.mjs.map +0 -0
  969. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  970. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  971. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
  972. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
  973. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
  974. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
  975. package/dist/src/parser/selectorMatches.d.ts +0 -0
  976. package/dist/src/parser/selectorMatches.d.ts.map +0 -0
  977. package/dist/src/parser/selectorMatches.min.mjs +0 -0
  978. package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
  979. package/dist/src/parser/selectorMatches.mjs +0 -0
  980. package/dist/src/parser/selectorMatches.mjs.map +0 -0
  981. package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
  982. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  983. package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
  984. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
  985. package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
  986. package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
  987. package/dist/src/parser/typedefs.d.ts +0 -0
  988. package/dist/src/parser/typedefs.d.ts.map +0 -0
  989. package/dist/src/shapes/ActiveSelection.d.ts +0 -0
  990. package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
  991. package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
  992. package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
  993. package/dist/src/shapes/ActiveSelection.mjs +0 -0
  994. package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
  995. package/dist/src/shapes/Circle.d.ts +0 -0
  996. package/dist/src/shapes/Circle.d.ts.map +0 -0
  997. package/dist/src/shapes/Circle.min.mjs +0 -0
  998. package/dist/src/shapes/Circle.min.mjs.map +0 -0
  999. package/dist/src/shapes/Circle.mjs +0 -0
  1000. package/dist/src/shapes/Circle.mjs.map +0 -0
  1001. package/dist/src/shapes/Ellipse.d.ts +0 -0
  1002. package/dist/src/shapes/Ellipse.d.ts.map +0 -0
  1003. package/dist/src/shapes/Ellipse.min.mjs +0 -0
  1004. package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
  1005. package/dist/src/shapes/Ellipse.mjs +0 -0
  1006. package/dist/src/shapes/Ellipse.mjs.map +0 -0
  1007. package/dist/src/shapes/Group.d.ts +0 -0
  1008. package/dist/src/shapes/Group.d.ts.map +0 -0
  1009. package/dist/src/shapes/Group.min.mjs +0 -0
  1010. package/dist/src/shapes/Group.min.mjs.map +0 -0
  1011. package/dist/src/shapes/Group.mjs +0 -0
  1012. package/dist/src/shapes/Group.mjs.map +0 -0
  1013. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1014. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1015. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
  1016. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
  1017. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
  1018. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
  1019. package/dist/src/shapes/IText/IText.d.ts +0 -0
  1020. package/dist/src/shapes/IText/IText.d.ts.map +0 -0
  1021. package/dist/src/shapes/IText/IText.min.mjs +0 -0
  1022. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  1023. package/dist/src/shapes/IText/IText.mjs +206 -206
  1024. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  1025. package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1026. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
  1027. package/dist/src/shapes/IText/ITextBehavior.min.mjs +0 -0
  1028. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  1029. package/dist/src/shapes/IText/ITextBehavior.mjs +152 -152
  1030. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  1031. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1032. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1033. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
  1034. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  1035. package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
  1036. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  1037. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1038. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1039. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +0 -0
  1040. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
  1041. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +115 -115
  1042. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
  1043. package/dist/src/shapes/IText/constants.d.ts +0 -0
  1044. package/dist/src/shapes/IText/constants.d.ts.map +0 -0
  1045. package/dist/src/shapes/IText/constants.min.mjs +0 -0
  1046. package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
  1047. package/dist/src/shapes/IText/constants.mjs +0 -0
  1048. package/dist/src/shapes/IText/constants.mjs.map +0 -0
  1049. package/dist/src/shapes/Image.d.ts +0 -0
  1050. package/dist/src/shapes/Image.d.ts.map +0 -0
  1051. package/dist/src/shapes/Image.min.mjs +0 -0
  1052. package/dist/src/shapes/Image.min.mjs.map +0 -0
  1053. package/dist/src/shapes/Image.mjs +0 -0
  1054. package/dist/src/shapes/Image.mjs.map +0 -0
  1055. package/dist/src/shapes/Line.d.ts +0 -0
  1056. package/dist/src/shapes/Line.d.ts.map +0 -0
  1057. package/dist/src/shapes/Line.min.mjs +0 -0
  1058. package/dist/src/shapes/Line.min.mjs.map +0 -0
  1059. package/dist/src/shapes/Line.mjs +0 -0
  1060. package/dist/src/shapes/Line.mjs.map +0 -0
  1061. package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
  1062. package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1063. package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
  1064. package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
  1065. package/dist/src/shapes/Object/FabricObject.mjs +0 -0
  1066. package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
  1067. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1068. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1069. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
  1070. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
  1071. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
  1072. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
  1073. package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1074. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1075. package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
  1076. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
  1077. package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
  1078. package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
  1079. package/dist/src/shapes/Object/Object.d.ts +0 -0
  1080. package/dist/src/shapes/Object/Object.d.ts.map +0 -0
  1081. package/dist/src/shapes/Object/Object.min.mjs +0 -0
  1082. package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
  1083. package/dist/src/shapes/Object/Object.mjs +0 -0
  1084. package/dist/src/shapes/Object/Object.mjs.map +0 -0
  1085. package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1086. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1087. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
  1088. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
  1089. package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
  1090. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
  1091. package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
  1092. package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1093. package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
  1094. package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
  1095. package/dist/src/shapes/Object/defaultValues.mjs +0 -0
  1096. package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
  1097. package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1098. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1099. package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1100. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1101. package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1102. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1103. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1104. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1105. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1106. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1107. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1108. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1109. package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1110. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1111. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1112. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1113. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1114. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1115. package/dist/src/shapes/Object/types/index.d.ts +0 -0
  1116. package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
  1117. package/dist/src/shapes/Path.d.ts +0 -0
  1118. package/dist/src/shapes/Path.d.ts.map +0 -0
  1119. package/dist/src/shapes/Path.min.mjs +0 -0
  1120. package/dist/src/shapes/Path.min.mjs.map +0 -0
  1121. package/dist/src/shapes/Path.mjs +0 -0
  1122. package/dist/src/shapes/Path.mjs.map +0 -0
  1123. package/dist/src/shapes/Polygon.d.ts +0 -0
  1124. package/dist/src/shapes/Polygon.d.ts.map +0 -0
  1125. package/dist/src/shapes/Polygon.min.mjs +0 -0
  1126. package/dist/src/shapes/Polygon.min.mjs.map +0 -0
  1127. package/dist/src/shapes/Polygon.mjs +0 -0
  1128. package/dist/src/shapes/Polygon.mjs.map +0 -0
  1129. package/dist/src/shapes/Polyline.d.ts +0 -0
  1130. package/dist/src/shapes/Polyline.d.ts.map +0 -0
  1131. package/dist/src/shapes/Polyline.min.mjs +0 -0
  1132. package/dist/src/shapes/Polyline.min.mjs.map +0 -0
  1133. package/dist/src/shapes/Polyline.mjs +0 -0
  1134. package/dist/src/shapes/Polyline.mjs.map +0 -0
  1135. package/dist/src/shapes/Rect.d.ts +0 -0
  1136. package/dist/src/shapes/Rect.d.ts.map +0 -0
  1137. package/dist/src/shapes/Rect.min.mjs +0 -0
  1138. package/dist/src/shapes/Rect.min.mjs.map +0 -0
  1139. package/dist/src/shapes/Rect.mjs +0 -0
  1140. package/dist/src/shapes/Rect.mjs.map +0 -0
  1141. package/dist/src/shapes/Text/StyledText.d.ts +0 -0
  1142. package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
  1143. package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
  1144. package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
  1145. package/dist/src/shapes/Text/StyledText.mjs +0 -0
  1146. package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
  1147. package/dist/src/shapes/Text/Text.d.ts +0 -0
  1148. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  1149. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  1150. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  1151. package/dist/src/shapes/Text/Text.mjs +5 -1
  1152. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  1153. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1154. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1155. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
  1156. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
  1157. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
  1158. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
  1159. package/dist/src/shapes/Text/constants.d.ts +1 -1
  1160. package/dist/src/shapes/Text/constants.d.ts.map +1 -1
  1161. package/dist/src/shapes/Text/constants.min.mjs +1 -1
  1162. package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
  1163. package/dist/src/shapes/Text/constants.mjs +1 -1
  1164. package/dist/src/shapes/Text/constants.mjs.map +1 -1
  1165. package/dist/src/shapes/Textbox.d.ts +0 -0
  1166. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  1167. package/dist/src/shapes/Textbox.min.mjs +1 -1
  1168. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  1169. package/dist/src/shapes/Textbox.mjs +77 -13
  1170. package/dist/src/shapes/Textbox.mjs.map +1 -1
  1171. package/dist/src/shapes/Triangle.d.ts +0 -0
  1172. package/dist/src/shapes/Triangle.d.ts.map +0 -0
  1173. package/dist/src/shapes/Triangle.min.mjs +0 -0
  1174. package/dist/src/shapes/Triangle.min.mjs.map +0 -0
  1175. package/dist/src/shapes/Triangle.mjs +0 -0
  1176. package/dist/src/shapes/Triangle.mjs.map +0 -0
  1177. package/dist/src/text/browserLines.d.ts +0 -0
  1178. package/dist/src/text/browserLines.d.ts.map +0 -0
  1179. package/dist/src/text/browserLines.min.mjs +0 -0
  1180. package/dist/src/text/browserLines.min.mjs.map +1 -1
  1181. package/dist/src/text/browserLines.mjs +20 -20
  1182. package/dist/src/text/browserLines.mjs.map +1 -1
  1183. package/dist/src/text/ellipsis.d.ts +0 -0
  1184. package/dist/src/text/ellipsis.d.ts.map +0 -0
  1185. package/dist/src/text/ellipsis.min.mjs +0 -0
  1186. package/dist/src/text/ellipsis.min.mjs.map +1 -1
  1187. package/dist/src/text/ellipsis.mjs +11 -11
  1188. package/dist/src/text/ellipsis.mjs.map +1 -1
  1189. package/dist/src/text/examples/arabicTextExample.d.ts +60 -0
  1190. package/dist/src/text/examples/arabicTextExample.d.ts.map +1 -0
  1191. package/dist/src/text/hitTest.d.ts +0 -0
  1192. package/dist/src/text/hitTest.d.ts.map +0 -0
  1193. package/dist/src/text/hitTest.min.mjs +0 -0
  1194. package/dist/src/text/hitTest.min.mjs.map +1 -1
  1195. package/dist/src/text/hitTest.mjs +19 -19
  1196. package/dist/src/text/hitTest.mjs.map +1 -1
  1197. package/dist/src/text/layout.d.ts +0 -0
  1198. package/dist/src/text/layout.d.ts.map +0 -0
  1199. package/dist/src/text/layout.min.mjs +0 -0
  1200. package/dist/src/text/layout.min.mjs.map +1 -1
  1201. package/dist/src/text/layout.mjs +33 -33
  1202. package/dist/src/text/layout.mjs.map +1 -1
  1203. package/dist/src/text/measure.d.ts +0 -0
  1204. package/dist/src/text/measure.d.ts.map +0 -0
  1205. package/dist/src/text/measure.min.mjs +0 -0
  1206. package/dist/src/text/measure.min.mjs.map +1 -1
  1207. package/dist/src/text/measure.mjs +30 -30
  1208. package/dist/src/text/measure.mjs.map +1 -1
  1209. package/dist/src/text/overlayEditor.d.ts +0 -0
  1210. package/dist/src/text/overlayEditor.d.ts.map +0 -0
  1211. package/dist/src/text/overlayEditor.min.mjs +0 -0
  1212. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  1213. package/dist/src/text/overlayEditor.mjs +33 -33
  1214. package/dist/src/text/overlayEditor.mjs.map +1 -1
  1215. package/dist/src/text/scriptUtils.d.ts +142 -0
  1216. package/dist/src/text/scriptUtils.d.ts.map +1 -0
  1217. package/dist/src/text/scriptUtils.min.mjs +2 -0
  1218. package/dist/src/text/scriptUtils.min.mjs.map +1 -0
  1219. package/dist/src/text/scriptUtils.mjs +212 -0
  1220. package/dist/src/text/scriptUtils.mjs.map +1 -0
  1221. package/dist/src/text/unicode.d.ts +0 -0
  1222. package/dist/src/text/unicode.d.ts.map +0 -0
  1223. package/dist/src/text/unicode.min.mjs +0 -0
  1224. package/dist/src/text/unicode.min.mjs.map +1 -1
  1225. package/dist/src/text/unicode.mjs +8 -8
  1226. package/dist/src/text/unicode.mjs.map +1 -1
  1227. package/dist/src/typedefs.d.ts +0 -0
  1228. package/dist/src/typedefs.d.ts.map +0 -0
  1229. package/dist/src/util/animation/AnimationBase.d.ts +0 -0
  1230. package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
  1231. package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
  1232. package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
  1233. package/dist/src/util/animation/AnimationBase.mjs +0 -0
  1234. package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
  1235. package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1236. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1237. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
  1238. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
  1239. package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
  1240. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
  1241. package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
  1242. package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1243. package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
  1244. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
  1245. package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
  1246. package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
  1247. package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
  1248. package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1249. package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
  1250. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
  1251. package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
  1252. package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
  1253. package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
  1254. package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1255. package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
  1256. package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
  1257. package/dist/src/util/animation/ColorAnimation.mjs +0 -0
  1258. package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
  1259. package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
  1260. package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1261. package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
  1262. package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
  1263. package/dist/src/util/animation/ValueAnimation.mjs +0 -0
  1264. package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
  1265. package/dist/src/util/animation/animate.d.ts +0 -0
  1266. package/dist/src/util/animation/animate.d.ts.map +0 -0
  1267. package/dist/src/util/animation/animate.min.mjs +0 -0
  1268. package/dist/src/util/animation/animate.min.mjs.map +0 -0
  1269. package/dist/src/util/animation/animate.mjs +0 -0
  1270. package/dist/src/util/animation/animate.mjs.map +0 -0
  1271. package/dist/src/util/animation/easing.d.ts +0 -0
  1272. package/dist/src/util/animation/easing.d.ts.map +0 -0
  1273. package/dist/src/util/animation/easing.min.mjs +0 -0
  1274. package/dist/src/util/animation/easing.min.mjs.map +0 -0
  1275. package/dist/src/util/animation/easing.mjs +0 -0
  1276. package/dist/src/util/animation/easing.mjs.map +0 -0
  1277. package/dist/src/util/animation/index.d.ts +0 -0
  1278. package/dist/src/util/animation/index.d.ts.map +0 -0
  1279. package/dist/src/util/animation/types.d.ts +0 -0
  1280. package/dist/src/util/animation/types.d.ts.map +0 -0
  1281. package/dist/src/util/applyMixins.d.ts +0 -0
  1282. package/dist/src/util/applyMixins.d.ts.map +0 -0
  1283. package/dist/src/util/applyMixins.min.mjs +0 -0
  1284. package/dist/src/util/applyMixins.min.mjs.map +0 -0
  1285. package/dist/src/util/applyMixins.mjs +0 -0
  1286. package/dist/src/util/applyMixins.mjs.map +0 -0
  1287. package/dist/src/util/dom_event.d.ts +0 -0
  1288. package/dist/src/util/dom_event.d.ts.map +0 -0
  1289. package/dist/src/util/dom_event.min.mjs +0 -0
  1290. package/dist/src/util/dom_event.min.mjs.map +0 -0
  1291. package/dist/src/util/dom_event.mjs +0 -0
  1292. package/dist/src/util/dom_event.mjs.map +0 -0
  1293. package/dist/src/util/dom_misc.d.ts +0 -0
  1294. package/dist/src/util/dom_misc.d.ts.map +0 -0
  1295. package/dist/src/util/dom_misc.min.mjs +0 -0
  1296. package/dist/src/util/dom_misc.min.mjs.map +0 -0
  1297. package/dist/src/util/dom_misc.mjs +0 -0
  1298. package/dist/src/util/dom_misc.mjs.map +0 -0
  1299. package/dist/src/util/index.d.ts +0 -0
  1300. package/dist/src/util/index.d.ts.map +0 -0
  1301. package/dist/src/util/index.min.mjs +0 -0
  1302. package/dist/src/util/index.min.mjs.map +0 -0
  1303. package/dist/src/util/index.mjs +0 -0
  1304. package/dist/src/util/index.mjs.map +0 -0
  1305. package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
  1306. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  1307. package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
  1308. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
  1309. package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
  1310. package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
  1311. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  1312. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  1313. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
  1314. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
  1315. package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
  1316. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
  1317. package/dist/src/util/internals/cloneStyles.d.ts +0 -0
  1318. package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
  1319. package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
  1320. package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
  1321. package/dist/src/util/internals/cloneStyles.mjs +0 -0
  1322. package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
  1323. package/dist/src/util/internals/console.d.ts +0 -0
  1324. package/dist/src/util/internals/console.d.ts.map +0 -0
  1325. package/dist/src/util/internals/console.min.mjs +0 -0
  1326. package/dist/src/util/internals/console.min.mjs.map +0 -0
  1327. package/dist/src/util/internals/console.mjs +0 -0
  1328. package/dist/src/util/internals/console.mjs.map +0 -0
  1329. package/dist/src/util/internals/dom_style.d.ts +0 -0
  1330. package/dist/src/util/internals/dom_style.d.ts.map +0 -0
  1331. package/dist/src/util/internals/dom_style.min.mjs +0 -0
  1332. package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
  1333. package/dist/src/util/internals/dom_style.mjs +0 -0
  1334. package/dist/src/util/internals/dom_style.mjs.map +0 -0
  1335. package/dist/src/util/internals/findRight.d.ts +0 -0
  1336. package/dist/src/util/internals/findRight.d.ts.map +0 -0
  1337. package/dist/src/util/internals/findRight.min.mjs +0 -0
  1338. package/dist/src/util/internals/findRight.min.mjs.map +0 -0
  1339. package/dist/src/util/internals/findRight.mjs +0 -0
  1340. package/dist/src/util/internals/findRight.mjs.map +0 -0
  1341. package/dist/src/util/internals/getRandomInt.d.ts +0 -0
  1342. package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
  1343. package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
  1344. package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
  1345. package/dist/src/util/internals/getRandomInt.mjs +0 -0
  1346. package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
  1347. package/dist/src/util/internals/ifNaN.d.ts +0 -0
  1348. package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
  1349. package/dist/src/util/internals/ifNaN.min.mjs +0 -0
  1350. package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
  1351. package/dist/src/util/internals/ifNaN.mjs +0 -0
  1352. package/dist/src/util/internals/ifNaN.mjs.map +0 -0
  1353. package/dist/src/util/internals/removeFromArray.d.ts +0 -0
  1354. package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
  1355. package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
  1356. package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
  1357. package/dist/src/util/internals/removeFromArray.mjs +0 -0
  1358. package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
  1359. package/dist/src/util/internals/uid.d.ts +0 -0
  1360. package/dist/src/util/internals/uid.d.ts.map +0 -0
  1361. package/dist/src/util/internals/uid.min.mjs +0 -0
  1362. package/dist/src/util/internals/uid.min.mjs.map +0 -0
  1363. package/dist/src/util/internals/uid.mjs +0 -0
  1364. package/dist/src/util/internals/uid.mjs.map +0 -0
  1365. package/dist/src/util/lang_string.d.ts +0 -0
  1366. package/dist/src/util/lang_string.d.ts.map +0 -0
  1367. package/dist/src/util/lang_string.min.mjs +0 -0
  1368. package/dist/src/util/lang_string.min.mjs.map +0 -0
  1369. package/dist/src/util/lang_string.mjs +0 -0
  1370. package/dist/src/util/lang_string.mjs.map +0 -0
  1371. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  1372. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  1373. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
  1374. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
  1375. package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
  1376. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
  1377. package/dist/src/util/misc/capValue.d.ts +0 -0
  1378. package/dist/src/util/misc/capValue.d.ts.map +0 -0
  1379. package/dist/src/util/misc/capValue.min.mjs +0 -0
  1380. package/dist/src/util/misc/capValue.min.mjs.map +0 -0
  1381. package/dist/src/util/misc/capValue.mjs +0 -0
  1382. package/dist/src/util/misc/capValue.mjs.map +0 -0
  1383. package/dist/src/util/misc/cornerRadius.d.ts +0 -0
  1384. package/dist/src/util/misc/cornerRadius.d.ts.map +0 -0
  1385. package/dist/src/util/misc/cornerRadius.min.mjs +0 -0
  1386. package/dist/src/util/misc/cornerRadius.min.mjs.map +0 -0
  1387. package/dist/src/util/misc/cornerRadius.mjs +0 -0
  1388. package/dist/src/util/misc/cornerRadius.mjs.map +0 -0
  1389. package/dist/src/util/misc/cos.d.ts +0 -0
  1390. package/dist/src/util/misc/cos.d.ts.map +0 -0
  1391. package/dist/src/util/misc/cos.min.mjs +0 -0
  1392. package/dist/src/util/misc/cos.min.mjs.map +0 -0
  1393. package/dist/src/util/misc/cos.mjs +0 -0
  1394. package/dist/src/util/misc/cos.mjs.map +0 -0
  1395. package/dist/src/util/misc/dom.d.ts +0 -0
  1396. package/dist/src/util/misc/dom.d.ts.map +0 -0
  1397. package/dist/src/util/misc/dom.min.mjs +0 -0
  1398. package/dist/src/util/misc/dom.min.mjs.map +0 -0
  1399. package/dist/src/util/misc/dom.mjs +0 -0
  1400. package/dist/src/util/misc/dom.mjs.map +0 -0
  1401. package/dist/src/util/misc/findScaleTo.d.ts +0 -0
  1402. package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
  1403. package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
  1404. package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
  1405. package/dist/src/util/misc/findScaleTo.mjs +0 -0
  1406. package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
  1407. package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
  1408. package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
  1409. package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
  1410. package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
  1411. package/dist/src/util/misc/groupSVGElements.mjs +0 -0
  1412. package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
  1413. package/dist/src/util/misc/isTransparent.d.ts +0 -0
  1414. package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
  1415. package/dist/src/util/misc/isTransparent.min.mjs +0 -0
  1416. package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
  1417. package/dist/src/util/misc/isTransparent.mjs +0 -0
  1418. package/dist/src/util/misc/isTransparent.mjs.map +0 -0
  1419. package/dist/src/util/misc/matrix.d.ts +0 -0
  1420. package/dist/src/util/misc/matrix.d.ts.map +0 -0
  1421. package/dist/src/util/misc/matrix.min.mjs +0 -0
  1422. package/dist/src/util/misc/matrix.min.mjs.map +0 -0
  1423. package/dist/src/util/misc/matrix.mjs +0 -0
  1424. package/dist/src/util/misc/matrix.mjs.map +0 -0
  1425. package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
  1426. package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  1427. package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
  1428. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
  1429. package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
  1430. package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
  1431. package/dist/src/util/misc/objectEnlive.d.ts +0 -0
  1432. package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
  1433. package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
  1434. package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
  1435. package/dist/src/util/misc/objectEnlive.mjs +0 -0
  1436. package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
  1437. package/dist/src/util/misc/objectTransforms.d.ts +0 -0
  1438. package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
  1439. package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
  1440. package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
  1441. package/dist/src/util/misc/objectTransforms.mjs +0 -0
  1442. package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
  1443. package/dist/src/util/misc/pick.d.ts +0 -0
  1444. package/dist/src/util/misc/pick.d.ts.map +0 -0
  1445. package/dist/src/util/misc/pick.min.mjs +0 -0
  1446. package/dist/src/util/misc/pick.min.mjs.map +0 -0
  1447. package/dist/src/util/misc/pick.mjs +0 -0
  1448. package/dist/src/util/misc/pick.mjs.map +0 -0
  1449. package/dist/src/util/misc/planeChange.d.ts +0 -0
  1450. package/dist/src/util/misc/planeChange.d.ts.map +0 -0
  1451. package/dist/src/util/misc/planeChange.min.mjs +0 -0
  1452. package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
  1453. package/dist/src/util/misc/planeChange.mjs +0 -0
  1454. package/dist/src/util/misc/planeChange.mjs.map +0 -0
  1455. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  1456. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  1457. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
  1458. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
  1459. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
  1460. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
  1461. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  1462. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  1463. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
  1464. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
  1465. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
  1466. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
  1467. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  1468. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  1469. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
  1470. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
  1471. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
  1472. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
  1473. package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
  1474. package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
  1475. package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
  1476. package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
  1477. package/dist/src/util/misc/projectStroke/index.mjs +0 -0
  1478. package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
  1479. package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
  1480. package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
  1481. package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  1482. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  1483. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
  1484. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
  1485. package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
  1486. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
  1487. package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
  1488. package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
  1489. package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
  1490. package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
  1491. package/dist/src/util/misc/resolveOrigin.mjs +0 -0
  1492. package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
  1493. package/dist/src/util/misc/sin.d.ts +0 -0
  1494. package/dist/src/util/misc/sin.d.ts.map +0 -0
  1495. package/dist/src/util/misc/sin.min.mjs +0 -0
  1496. package/dist/src/util/misc/sin.min.mjs.map +0 -0
  1497. package/dist/src/util/misc/sin.mjs +0 -0
  1498. package/dist/src/util/misc/sin.mjs.map +0 -0
  1499. package/dist/src/util/misc/svgExport.d.ts +0 -0
  1500. package/dist/src/util/misc/svgExport.d.ts.map +0 -0
  1501. package/dist/src/util/misc/svgExport.min.mjs +0 -0
  1502. package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
  1503. package/dist/src/util/misc/svgExport.mjs +0 -0
  1504. package/dist/src/util/misc/svgExport.mjs.map +0 -0
  1505. package/dist/src/util/misc/svgParsing.d.ts +0 -0
  1506. package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
  1507. package/dist/src/util/misc/svgParsing.min.mjs +0 -0
  1508. package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
  1509. package/dist/src/util/misc/svgParsing.mjs +0 -0
  1510. package/dist/src/util/misc/svgParsing.mjs.map +0 -0
  1511. package/dist/src/util/misc/textStyles.d.ts +0 -0
  1512. package/dist/src/util/misc/textStyles.d.ts.map +0 -0
  1513. package/dist/src/util/misc/textStyles.min.mjs +0 -0
  1514. package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
  1515. package/dist/src/util/misc/textStyles.mjs +0 -0
  1516. package/dist/src/util/misc/textStyles.mjs.map +0 -0
  1517. package/dist/src/util/misc/toFixed.d.ts +0 -0
  1518. package/dist/src/util/misc/toFixed.d.ts.map +0 -0
  1519. package/dist/src/util/misc/toFixed.min.mjs +0 -0
  1520. package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
  1521. package/dist/src/util/misc/toFixed.mjs +0 -0
  1522. package/dist/src/util/misc/toFixed.mjs.map +0 -0
  1523. package/dist/src/util/misc/vectors.d.ts +0 -0
  1524. package/dist/src/util/misc/vectors.d.ts.map +0 -0
  1525. package/dist/src/util/misc/vectors.min.mjs +0 -0
  1526. package/dist/src/util/misc/vectors.min.mjs.map +0 -0
  1527. package/dist/src/util/misc/vectors.mjs +0 -0
  1528. package/dist/src/util/misc/vectors.mjs.map +0 -0
  1529. package/dist/src/util/path/index.d.ts +0 -0
  1530. package/dist/src/util/path/index.d.ts.map +0 -0
  1531. package/dist/src/util/path/index.min.mjs +0 -0
  1532. package/dist/src/util/path/index.min.mjs.map +0 -0
  1533. package/dist/src/util/path/index.mjs +0 -0
  1534. package/dist/src/util/path/index.mjs.map +0 -0
  1535. package/dist/src/util/path/regex.d.ts +0 -0
  1536. package/dist/src/util/path/regex.d.ts.map +0 -0
  1537. package/dist/src/util/path/regex.min.mjs +0 -0
  1538. package/dist/src/util/path/regex.min.mjs.map +0 -0
  1539. package/dist/src/util/path/regex.mjs +0 -0
  1540. package/dist/src/util/path/regex.mjs.map +0 -0
  1541. package/dist/src/util/path/typechecks.d.ts +0 -0
  1542. package/dist/src/util/path/typechecks.d.ts.map +0 -0
  1543. package/dist/src/util/path/typedefs.d.ts +0 -0
  1544. package/dist/src/util/path/typedefs.d.ts.map +0 -0
  1545. package/dist/src/util/transform_matrix_removal.d.ts +0 -0
  1546. package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
  1547. package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
  1548. package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
  1549. package/dist/src/util/transform_matrix_removal.mjs +0 -0
  1550. package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
  1551. package/dist/src/util/typeAssertions.d.ts +0 -0
  1552. package/dist/src/util/typeAssertions.d.ts.map +0 -0
  1553. package/dist/src/util/typeAssertions.min.mjs +0 -0
  1554. package/dist/src/util/typeAssertions.min.mjs.map +0 -0
  1555. package/dist/src/util/typeAssertions.mjs +0 -0
  1556. package/dist/src/util/typeAssertions.mjs.map +0 -0
  1557. package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
  1558. package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
  1559. package/dist-extensions/aligning_guidelines/index.mjs +0 -0
  1560. package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
  1561. package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
  1562. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
  1563. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
  1564. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
  1565. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
  1566. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
  1567. package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
  1568. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
  1569. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
  1570. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
  1571. package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
  1572. package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
  1573. package/dist-extensions/data_updaters/origins/index.mjs +0 -0
  1574. package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
  1575. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
  1576. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  1577. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
  1578. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
  1579. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  1580. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  1581. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  1582. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  1583. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  1584. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  1585. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  1586. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  1587. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  1588. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  1589. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  1590. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  1591. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
  1592. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  1593. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
  1594. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
  1595. package/dist-extensions/extensions/index.d.ts +0 -0
  1596. package/dist-extensions/extensions/index.d.ts.map +0 -0
  1597. package/dist-extensions/fabric-extensions.min.js +0 -0
  1598. package/dist-extensions/fabric-extensions.min.js.map +0 -0
  1599. package/dist-extensions/fabric.d.ts +0 -0
  1600. package/dist-extensions/fabric.d.ts.map +0 -0
  1601. package/dist-extensions/index.d.ts +0 -0
  1602. package/dist-extensions/index.d.ts.map +0 -0
  1603. package/dist-extensions/index.mjs +0 -0
  1604. package/dist-extensions/index.mjs.map +0 -0
  1605. package/dist-extensions/src/ClassRegistry.d.ts +0 -0
  1606. package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
  1607. package/dist-extensions/src/Collection.d.ts +0 -0
  1608. package/dist-extensions/src/Collection.d.ts.map +0 -0
  1609. package/dist-extensions/src/CommonMethods.d.ts +0 -0
  1610. package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
  1611. package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
  1612. package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
  1613. package/dist-extensions/src/Intersection.d.ts +0 -0
  1614. package/dist-extensions/src/Intersection.d.ts.map +0 -0
  1615. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  1616. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  1617. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
  1618. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  1619. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  1620. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  1621. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  1622. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  1623. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  1624. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  1625. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  1626. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  1627. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  1628. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  1629. package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
  1630. package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
  1631. package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
  1632. package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
  1633. package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
  1634. package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
  1635. package/dist-extensions/src/Observable.d.ts +0 -0
  1636. package/dist-extensions/src/Observable.d.ts.map +0 -0
  1637. package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
  1638. package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
  1639. package/dist-extensions/src/Pattern/index.d.ts +0 -0
  1640. package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
  1641. package/dist-extensions/src/Pattern/types.d.ts +0 -0
  1642. package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
  1643. package/dist-extensions/src/Point.d.ts +0 -0
  1644. package/dist-extensions/src/Point.d.ts.map +0 -0
  1645. package/dist-extensions/src/Shadow.d.ts +0 -0
  1646. package/dist-extensions/src/Shadow.d.ts.map +0 -0
  1647. package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
  1648. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
  1649. package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
  1650. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
  1651. package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
  1652. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
  1653. package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
  1654. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
  1655. package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
  1656. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
  1657. package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
  1658. package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
  1659. package/dist-extensions/src/cache.d.ts +0 -0
  1660. package/dist-extensions/src/cache.d.ts.map +0 -0
  1661. package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
  1662. package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
  1663. package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
  1664. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
  1665. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  1666. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  1667. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  1668. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  1669. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
  1670. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
  1671. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
  1672. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
  1673. package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
  1674. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
  1675. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
  1676. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  1677. package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
  1678. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
  1679. package/dist-extensions/src/color/Color.d.ts +0 -0
  1680. package/dist-extensions/src/color/Color.d.ts.map +0 -0
  1681. package/dist-extensions/src/color/color_map.d.ts +0 -0
  1682. package/dist-extensions/src/color/color_map.d.ts.map +0 -0
  1683. package/dist-extensions/src/color/constants.d.ts +0 -0
  1684. package/dist-extensions/src/color/constants.d.ts.map +0 -0
  1685. package/dist-extensions/src/color/typedefs.d.ts +0 -0
  1686. package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
  1687. package/dist-extensions/src/color/util.d.ts +0 -0
  1688. package/dist-extensions/src/color/util.d.ts.map +0 -0
  1689. package/dist-extensions/src/config.d.ts +0 -0
  1690. package/dist-extensions/src/config.d.ts.map +0 -0
  1691. package/dist-extensions/src/constants.d.ts +0 -0
  1692. package/dist-extensions/src/constants.d.ts.map +0 -0
  1693. package/dist-extensions/src/controls/Control.d.ts +0 -0
  1694. package/dist-extensions/src/controls/Control.d.ts.map +0 -0
  1695. package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
  1696. package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
  1697. package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
  1698. package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
  1699. package/dist-extensions/src/controls/commonControls.d.ts +0 -0
  1700. package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
  1701. package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
  1702. package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
  1703. package/dist-extensions/src/controls/drag.d.ts +0 -0
  1704. package/dist-extensions/src/controls/drag.d.ts.map +0 -0
  1705. package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
  1706. package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
  1707. package/dist-extensions/src/controls/index.d.ts +0 -0
  1708. package/dist-extensions/src/controls/index.d.ts.map +0 -0
  1709. package/dist-extensions/src/controls/pathControl.d.ts +0 -0
  1710. package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
  1711. package/dist-extensions/src/controls/polyControl.d.ts +0 -0
  1712. package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
  1713. package/dist-extensions/src/controls/rotate.d.ts +0 -0
  1714. package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
  1715. package/dist-extensions/src/controls/scale.d.ts +0 -0
  1716. package/dist-extensions/src/controls/scale.d.ts.map +0 -0
  1717. package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
  1718. package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
  1719. package/dist-extensions/src/controls/skew.d.ts +0 -0
  1720. package/dist-extensions/src/controls/skew.d.ts.map +0 -0
  1721. package/dist-extensions/src/controls/util.d.ts +0 -0
  1722. package/dist-extensions/src/controls/util.d.ts.map +0 -0
  1723. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
  1724. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  1725. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  1726. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  1727. package/dist-extensions/src/env/browser.d.ts +0 -0
  1728. package/dist-extensions/src/env/browser.d.ts.map +0 -0
  1729. package/dist-extensions/src/env/index.d.ts +0 -0
  1730. package/dist-extensions/src/env/index.d.ts.map +0 -0
  1731. package/dist-extensions/src/env/types.d.ts +0 -0
  1732. package/dist-extensions/src/env/types.d.ts.map +0 -0
  1733. package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
  1734. package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
  1735. package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
  1736. package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
  1737. package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
  1738. package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
  1739. package/dist-extensions/src/filters/Blur.d.ts +0 -0
  1740. package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
  1741. package/dist-extensions/src/filters/Brightness.d.ts +0 -0
  1742. package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
  1743. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  1744. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  1745. package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
  1746. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
  1747. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
  1748. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  1749. package/dist-extensions/src/filters/Composed.d.ts +0 -0
  1750. package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
  1751. package/dist-extensions/src/filters/Contrast.d.ts +0 -0
  1752. package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
  1753. package/dist-extensions/src/filters/Convolute.d.ts +0 -0
  1754. package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
  1755. package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
  1756. package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
  1757. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
  1758. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  1759. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  1760. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  1761. package/dist-extensions/src/filters/Gamma.d.ts +0 -0
  1762. package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
  1763. package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
  1764. package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
  1765. package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
  1766. package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
  1767. package/dist-extensions/src/filters/Invert.d.ts +0 -0
  1768. package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
  1769. package/dist-extensions/src/filters/Noise.d.ts +0 -0
  1770. package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
  1771. package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
  1772. package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
  1773. package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
  1774. package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
  1775. package/dist-extensions/src/filters/Resize.d.ts +0 -0
  1776. package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
  1777. package/dist-extensions/src/filters/Saturation.d.ts +0 -0
  1778. package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
  1779. package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
  1780. package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
  1781. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
  1782. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  1783. package/dist-extensions/src/filters/filters.d.ts +0 -0
  1784. package/dist-extensions/src/filters/filters.d.ts.map +0 -0
  1785. package/dist-extensions/src/filters/index.d.ts +0 -0
  1786. package/dist-extensions/src/filters/index.d.ts.map +0 -0
  1787. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
  1788. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
  1789. package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
  1790. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
  1791. package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
  1792. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
  1793. package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
  1794. package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
  1795. package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
  1796. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
  1797. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
  1798. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  1799. package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
  1800. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
  1801. package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
  1802. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
  1803. package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
  1804. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
  1805. package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
  1806. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
  1807. package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
  1808. package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
  1809. package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
  1810. package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
  1811. package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
  1812. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
  1813. package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
  1814. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
  1815. package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
  1816. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
  1817. package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
  1818. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
  1819. package/dist-extensions/src/filters/typedefs.d.ts +0 -0
  1820. package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
  1821. package/dist-extensions/src/filters/utils.d.ts +0 -0
  1822. package/dist-extensions/src/filters/utils.d.ts.map +0 -0
  1823. package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
  1824. package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
  1825. package/dist-extensions/src/gradient/constants.d.ts +0 -0
  1826. package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
  1827. package/dist-extensions/src/gradient/index.d.ts +0 -0
  1828. package/dist-extensions/src/gradient/index.d.ts.map +0 -0
  1829. package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
  1830. package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
  1831. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
  1832. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  1833. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
  1834. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
  1835. package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
  1836. package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
  1837. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
  1838. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
  1839. package/dist-extensions/src/parser/attributes.d.ts +0 -0
  1840. package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
  1841. package/dist-extensions/src/parser/constants.d.ts +0 -0
  1842. package/dist-extensions/src/parser/constants.d.ts.map +0 -0
  1843. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
  1844. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  1845. package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
  1846. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
  1847. package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
  1848. package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
  1849. package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
  1850. package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
  1851. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
  1852. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  1853. package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
  1854. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
  1855. package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
  1856. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
  1857. package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
  1858. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
  1859. package/dist-extensions/src/parser/getTagName.d.ts +0 -0
  1860. package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
  1861. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
  1862. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  1863. package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
  1864. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
  1865. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
  1866. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
  1867. package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
  1868. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
  1869. package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
  1870. package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
  1871. package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
  1872. package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
  1873. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
  1874. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
  1875. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
  1876. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
  1877. package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
  1878. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
  1879. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
  1880. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
  1881. package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
  1882. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
  1883. package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
  1884. package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
  1885. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
  1886. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
  1887. package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
  1888. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
  1889. package/dist-extensions/src/parser/percent.d.ts +0 -0
  1890. package/dist-extensions/src/parser/percent.d.ts.map +0 -0
  1891. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  1892. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  1893. package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
  1894. package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
  1895. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
  1896. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  1897. package/dist-extensions/src/parser/typedefs.d.ts +0 -0
  1898. package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
  1899. package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
  1900. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
  1901. package/dist-extensions/src/shapes/Circle.d.ts +0 -0
  1902. package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
  1903. package/dist-extensions/src/shapes/CustomLine.d.ts +10 -0
  1904. package/dist-extensions/src/shapes/CustomLine.d.ts.map +1 -0
  1905. package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
  1906. package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
  1907. package/dist-extensions/src/shapes/Group.d.ts +0 -0
  1908. package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
  1909. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1910. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1911. package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
  1912. package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
  1913. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1914. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
  1915. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1916. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1917. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1918. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1919. package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
  1920. package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
  1921. package/dist-extensions/src/shapes/Image.d.ts +0 -0
  1922. package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
  1923. package/dist-extensions/src/shapes/Line.d.ts +0 -0
  1924. package/dist-extensions/src/shapes/Line.d.ts.map +0 -0
  1925. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
  1926. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1927. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1928. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1929. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1930. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1931. package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
  1932. package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
  1933. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1934. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1935. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
  1936. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1937. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1938. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1939. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1940. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1941. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1942. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1943. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1944. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1945. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1946. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1947. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1948. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1949. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1950. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1951. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1952. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1953. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1954. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1955. package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
  1956. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
  1957. package/dist-extensions/src/shapes/Path.d.ts +0 -0
  1958. package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
  1959. package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
  1960. package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
  1961. package/dist-extensions/src/shapes/Polyline.d.ts +0 -0
  1962. package/dist-extensions/src/shapes/Polyline.d.ts.map +0 -0
  1963. package/dist-extensions/src/shapes/Rect.d.ts +0 -0
  1964. package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
  1965. package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
  1966. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
  1967. package/dist-extensions/src/shapes/Text/Text.d.ts +0 -0
  1968. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  1969. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1970. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1971. package/dist-extensions/src/shapes/Text/constants.d.ts +1 -1
  1972. package/dist-extensions/src/shapes/Text/constants.d.ts.map +1 -1
  1973. package/dist-extensions/src/shapes/Textbox.d.ts +0 -0
  1974. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  1975. package/dist-extensions/src/shapes/Triangle.d.ts +0 -0
  1976. package/dist-extensions/src/shapes/Triangle.d.ts.map +0 -0
  1977. package/dist-extensions/src/text/browserLines.d.ts +0 -0
  1978. package/dist-extensions/src/text/browserLines.d.ts.map +0 -0
  1979. package/dist-extensions/src/text/ellipsis.d.ts +0 -0
  1980. package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
  1981. package/dist-extensions/src/text/hitTest.d.ts +0 -0
  1982. package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
  1983. package/dist-extensions/src/text/layout.d.ts +0 -0
  1984. package/dist-extensions/src/text/layout.d.ts.map +0 -0
  1985. package/dist-extensions/src/text/measure.d.ts +0 -0
  1986. package/dist-extensions/src/text/measure.d.ts.map +0 -0
  1987. package/dist-extensions/src/text/overlayEditor.d.ts +0 -0
  1988. package/dist-extensions/src/text/overlayEditor.d.ts.map +0 -0
  1989. package/dist-extensions/src/text/scriptUtils.d.ts +142 -0
  1990. package/dist-extensions/src/text/scriptUtils.d.ts.map +1 -0
  1991. package/dist-extensions/src/text/unicode.d.ts +0 -0
  1992. package/dist-extensions/src/text/unicode.d.ts.map +0 -0
  1993. package/dist-extensions/src/typedefs.d.ts +0 -0
  1994. package/dist-extensions/src/typedefs.d.ts.map +0 -0
  1995. package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
  1996. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
  1997. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1998. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1999. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
  2000. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  2001. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
  2002. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  2003. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
  2004. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
  2005. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
  2006. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
  2007. package/dist-extensions/src/util/animation/animate.d.ts +0 -0
  2008. package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
  2009. package/dist-extensions/src/util/animation/easing.d.ts +0 -0
  2010. package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
  2011. package/dist-extensions/src/util/animation/index.d.ts +0 -0
  2012. package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
  2013. package/dist-extensions/src/util/animation/types.d.ts +0 -0
  2014. package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
  2015. package/dist-extensions/src/util/applyMixins.d.ts +0 -0
  2016. package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
  2017. package/dist-extensions/src/util/dom_event.d.ts +0 -0
  2018. package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
  2019. package/dist-extensions/src/util/dom_misc.d.ts +0 -0
  2020. package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
  2021. package/dist-extensions/src/util/index.d.ts +0 -0
  2022. package/dist-extensions/src/util/index.d.ts.map +0 -0
  2023. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
  2024. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  2025. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  2026. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  2027. package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
  2028. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
  2029. package/dist-extensions/src/util/internals/console.d.ts +0 -0
  2030. package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
  2031. package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
  2032. package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
  2033. package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
  2034. package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
  2035. package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
  2036. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
  2037. package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
  2038. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
  2039. package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
  2040. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
  2041. package/dist-extensions/src/util/internals/uid.d.ts +0 -0
  2042. package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
  2043. package/dist-extensions/src/util/lang_string.d.ts +0 -0
  2044. package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
  2045. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  2046. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  2047. package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
  2048. package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
  2049. package/dist-extensions/src/util/misc/cornerRadius.d.ts +0 -0
  2050. package/dist-extensions/src/util/misc/cornerRadius.d.ts.map +0 -0
  2051. package/dist-extensions/src/util/misc/cos.d.ts +0 -0
  2052. package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
  2053. package/dist-extensions/src/util/misc/dom.d.ts +0 -0
  2054. package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
  2055. package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
  2056. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
  2057. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
  2058. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
  2059. package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
  2060. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
  2061. package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
  2062. package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
  2063. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
  2064. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  2065. package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
  2066. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
  2067. package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
  2068. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
  2069. package/dist-extensions/src/util/misc/pick.d.ts +0 -0
  2070. package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
  2071. package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
  2072. package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
  2073. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  2074. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  2075. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  2076. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  2077. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  2078. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  2079. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
  2080. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
  2081. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
  2082. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
  2083. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  2084. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  2085. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
  2086. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
  2087. package/dist-extensions/src/util/misc/sin.d.ts +0 -0
  2088. package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
  2089. package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
  2090. package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
  2091. package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
  2092. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
  2093. package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
  2094. package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
  2095. package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
  2096. package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
  2097. package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
  2098. package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
  2099. package/dist-extensions/src/util/path/index.d.ts +0 -0
  2100. package/dist-extensions/src/util/path/index.d.ts.map +0 -0
  2101. package/dist-extensions/src/util/path/regex.d.ts +0 -0
  2102. package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
  2103. package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
  2104. package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
  2105. package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
  2106. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
  2107. package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
  2108. package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -0
  2109. package/docs/fabric-konva-gap-analysis.md +0 -0
  2110. package/docs/konva-text-behavior-spec.md +0 -0
  2111. package/docs/text-engine-design.md +0 -0
  2112. package/eslint.config.mjs +0 -0
  2113. package/examples/overlay-edit.html +416 -416
  2114. package/extensions/README.MD +0 -0
  2115. package/extensions/aligning_guidelines/README.MD +0 -0
  2116. package/extensions/aligning_guidelines/constant.ts +0 -0
  2117. package/extensions/aligning_guidelines/index.ts +0 -0
  2118. package/extensions/aligning_guidelines/typedefs.ts +0 -0
  2119. package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
  2120. package/extensions/aligning_guidelines/util/basic.ts +0 -0
  2121. package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
  2122. package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
  2123. package/extensions/aligning_guidelines/util/draw.ts +0 -0
  2124. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
  2125. package/extensions/data_updaters/README.md +0 -0
  2126. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
  2127. package/extensions/data_updaters/gradient/index.spec.ts +0 -0
  2128. package/extensions/data_updaters/gradient/index.ts +0 -0
  2129. package/extensions/data_updaters/origins/README.md +0 -0
  2130. package/extensions/data_updaters/origins/index.spec.ts +0 -0
  2131. package/extensions/data_updaters/origins/index.ts +0 -0
  2132. package/extensions/index.ts +0 -0
  2133. package/fabric-test-editor.html +3552 -0
  2134. package/fabric-test2.html +647 -0
  2135. package/fabric.ts +182 -182
  2136. package/fonts/STV Bold.ttf +0 -0
  2137. package/fonts/STV Light.ttf +0 -0
  2138. package/fonts/STV Regular.ttf +0 -0
  2139. package/index.node.ts +0 -0
  2140. package/index.ts +0 -0
  2141. package/lib/aligning_guidelines.js +0 -0
  2142. package/lib/centering_guidelines.js +0 -0
  2143. package/lib/event.js +0 -0
  2144. package/package.json +164 -164
  2145. package/playwright.config.ts +0 -0
  2146. package/playwright.setup.ts +0 -0
  2147. package/publish-next.js +0 -0
  2148. package/publish.js +0 -0
  2149. package/rollup.config.mjs +0 -0
  2150. package/rtl-debug.html +745 -0
  2151. package/scripts/bench-text.js +591 -591
  2152. package/scripts/build.mjs +0 -0
  2153. package/scripts/buildLock.mjs +0 -0
  2154. package/scripts/buildReporter.mjs +0 -0
  2155. package/scripts/buildStats.mjs +0 -0
  2156. package/scripts/dirname.mjs +0 -0
  2157. package/scripts/git.mjs +0 -0
  2158. package/scripts/index.mjs +0 -0
  2159. package/scripts/sandbox.mjs +0 -0
  2160. package/src/ClassRegistry.spec.ts +0 -0
  2161. package/src/ClassRegistry.ts +0 -0
  2162. package/src/Collection.spec.ts +0 -0
  2163. package/src/Collection.ts +0 -0
  2164. package/src/CommonMethods.ts +0 -0
  2165. package/src/EventTypeDefs.ts +0 -0
  2166. package/src/Intersection.spec.ts +0 -0
  2167. package/src/Intersection.ts +0 -0
  2168. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
  2169. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
  2170. package/src/LayoutManager/LayoutManager.spec.ts +0 -0
  2171. package/src/LayoutManager/LayoutManager.ts +0 -0
  2172. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
  2173. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
  2174. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
  2175. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
  2176. package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
  2177. package/src/LayoutManager/README.md +0 -0
  2178. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
  2179. package/src/LayoutManager/constants.ts +0 -0
  2180. package/src/LayoutManager/index.ts +0 -0
  2181. package/src/LayoutManager/types.ts +0 -0
  2182. package/src/Observable.spec.ts +0 -0
  2183. package/src/Observable.ts +0 -0
  2184. package/src/Pattern/Pattern.spec.ts +0 -0
  2185. package/src/Pattern/Pattern.ts +0 -0
  2186. package/src/Pattern/index.ts +0 -0
  2187. package/src/Pattern/types.ts +0 -0
  2188. package/src/Point.spec.ts +0 -0
  2189. package/src/Point.ts +0 -0
  2190. package/src/Shadow.spec.ts +0 -0
  2191. package/src/Shadow.ts +0 -0
  2192. package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
  2193. package/src/brushes/BaseBrush.spec.ts +0 -0
  2194. package/src/brushes/BaseBrush.ts +0 -0
  2195. package/src/brushes/CircleBrush.test.ts +0 -0
  2196. package/src/brushes/CircleBrush.ts +0 -0
  2197. package/src/brushes/PatternBrush.ts +0 -0
  2198. package/src/brushes/PencilBrush.spec.ts +0 -0
  2199. package/src/brushes/PencilBrush.ts +0 -0
  2200. package/src/brushes/SprayBrush.ts +0 -0
  2201. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
  2202. package/src/brushes/typedefs.ts +0 -0
  2203. package/src/cache.spec.ts +0 -0
  2204. package/src/cache.ts +0 -0
  2205. package/src/canvas/Canvas-dispose.spec.ts +0 -0
  2206. package/src/canvas/Canvas-events.spec.ts +0 -0
  2207. package/src/canvas/Canvas.spec.ts +0 -0
  2208. package/src/canvas/Canvas.ts +0 -0
  2209. package/src/canvas/CanvasOptions.ts +0 -0
  2210. package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
  2211. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
  2212. package/src/canvas/DOMManagers/util.spec.ts +0 -0
  2213. package/src/canvas/DOMManagers/util.ts +0 -0
  2214. package/src/canvas/SelectableCanvas.spec.ts +0 -0
  2215. package/src/canvas/SelectableCanvas.ts +0 -0
  2216. package/src/canvas/StaticCanvas.spec.ts +0 -0
  2217. package/src/canvas/StaticCanvas.ts +0 -0
  2218. package/src/canvas/StaticCanvasOptions.ts +0 -0
  2219. package/src/canvas/TextEditingManager.ts +0 -0
  2220. package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
  2221. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
  2222. package/src/canvas/__tests__/eventData.test.ts +0 -0
  2223. package/src/canvas/canvas_gestures.mixin.ts +0 -0
  2224. package/src/color/Color.ts +0 -0
  2225. package/src/color/color.test.ts +0 -0
  2226. package/src/color/color_map.ts +0 -0
  2227. package/src/color/constants.ts +0 -0
  2228. package/src/color/typedefs.ts +0 -0
  2229. package/src/color/util.ts +0 -0
  2230. package/src/config.ts +0 -0
  2231. package/src/constants.ts +0 -0
  2232. package/src/controls/Control-cursor.spec.ts +0 -0
  2233. package/src/controls/Control-handlers.spec.ts +0 -0
  2234. package/src/controls/Control.spec.ts +0 -0
  2235. package/src/controls/Control.ts +0 -0
  2236. package/src/controls/changeHeight.ts +0 -0
  2237. package/src/controls/changeWidth.test.ts +0 -0
  2238. package/src/controls/changeWidth.ts +0 -0
  2239. package/src/controls/commonControls.ts +0 -0
  2240. package/src/controls/controlRendering.ts +0 -0
  2241. package/src/controls/drag.ts +0 -0
  2242. package/src/controls/fireEvent.ts +0 -0
  2243. package/src/controls/index.ts +0 -0
  2244. package/src/controls/pathControl.spec.ts +0 -0
  2245. package/src/controls/pathControl.ts +0 -0
  2246. package/src/controls/polyControl.spec.ts +0 -0
  2247. package/src/controls/polyControl.ts +0 -0
  2248. package/src/controls/rotate.ts +0 -0
  2249. package/src/controls/scale.test.ts +0 -0
  2250. package/src/controls/scale.ts +0 -0
  2251. package/src/controls/scaleSkew.ts +0 -0
  2252. package/src/controls/skew.ts +0 -0
  2253. package/src/controls/util.ts +0 -0
  2254. package/src/controls/wrapWithFireEvent.ts +0 -0
  2255. package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
  2256. package/src/controls/wrapWithFixedAnchor.ts +0 -0
  2257. package/src/env/browser.ts +0 -0
  2258. package/src/env/env.spec.ts +0 -0
  2259. package/src/env/index.ts +0 -0
  2260. package/src/env/node.ts +0 -0
  2261. package/src/env/types.ts +0 -0
  2262. package/src/filters/BaseFilter.spec.ts +0 -0
  2263. package/src/filters/BaseFilter.ts +0 -0
  2264. package/src/filters/BlendColor.ts +0 -0
  2265. package/src/filters/BlendImage.ts +0 -0
  2266. package/src/filters/Blur.ts +0 -0
  2267. package/src/filters/Boilerplate.ts +0 -0
  2268. package/src/filters/Brightness.ts +0 -0
  2269. package/src/filters/Canvas2dFilterBackend.ts +0 -0
  2270. package/src/filters/ColorMatrix.spec.ts +0 -0
  2271. package/src/filters/ColorMatrix.ts +0 -0
  2272. package/src/filters/ColorMatrixFilters.ts +0 -0
  2273. package/src/filters/Composed.ts +0 -0
  2274. package/src/filters/Contrast.ts +0 -0
  2275. package/src/filters/Convolute.ts +0 -0
  2276. package/src/filters/FilterBackend.ts +0 -0
  2277. package/src/filters/GLProbes/GLProbe.ts +0 -0
  2278. package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
  2279. package/src/filters/GLProbes/WebGLProbe.ts +0 -0
  2280. package/src/filters/Gamma.ts +0 -0
  2281. package/src/filters/Grayscale.ts +0 -0
  2282. package/src/filters/HueRotation.ts +0 -0
  2283. package/src/filters/Invert.ts +0 -0
  2284. package/src/filters/Noise.ts +0 -0
  2285. package/src/filters/Pixelate.ts +0 -0
  2286. package/src/filters/RemoveColor.ts +0 -0
  2287. package/src/filters/Resize.ts +0 -0
  2288. package/src/filters/Saturation.ts +0 -0
  2289. package/src/filters/Vibrance.ts +0 -0
  2290. package/src/filters/WebGLFilterBackend.spec.ts +0 -0
  2291. package/src/filters/WebGLFilterBackend.ts +0 -0
  2292. package/src/filters/filters.ts +0 -0
  2293. package/src/filters/index.ts +0 -0
  2294. package/src/filters/shaders/baseFilter.ts +0 -0
  2295. package/src/filters/shaders/blendColor.ts +0 -0
  2296. package/src/filters/shaders/blendImage.ts +0 -0
  2297. package/src/filters/shaders/blur.ts +0 -0
  2298. package/src/filters/shaders/brightness.ts +0 -0
  2299. package/src/filters/shaders/colorMatrix.ts +0 -0
  2300. package/src/filters/shaders/constrast.ts +0 -0
  2301. package/src/filters/shaders/convolute.ts +0 -0
  2302. package/src/filters/shaders/gamma.ts +0 -0
  2303. package/src/filters/shaders/grayscale.ts +0 -0
  2304. package/src/filters/shaders/invert.ts +0 -0
  2305. package/src/filters/shaders/noise.ts +0 -0
  2306. package/src/filters/shaders/pixelate.ts +0 -0
  2307. package/src/filters/shaders/removeColor.ts +0 -0
  2308. package/src/filters/shaders/saturation.ts +0 -0
  2309. package/src/filters/shaders/vibrance.ts +0 -0
  2310. package/src/filters/typedefs.ts +0 -0
  2311. package/src/filters/utils.ts +0 -0
  2312. package/src/gradient/Gradient.spec.ts +0 -0
  2313. package/src/gradient/Gradient.ts +0 -0
  2314. package/src/gradient/constants.ts +0 -0
  2315. package/src/gradient/index.ts +0 -0
  2316. package/src/gradient/parser/misc.ts +0 -0
  2317. package/src/gradient/parser/parseColorStops.ts +0 -0
  2318. package/src/gradient/parser/parseCoords.ts +0 -0
  2319. package/src/gradient/typedefs.ts +0 -0
  2320. package/src/mixins/eraser_brush.mixin.ts +0 -0
  2321. package/src/parkinglot/canvas_animation.mixin.ts +0 -0
  2322. package/src/parkinglot/straighten.ts +0 -0
  2323. package/src/parser/applyViewboxTransform.spec.ts +0 -0
  2324. package/src/parser/applyViewboxTransform.ts +0 -0
  2325. package/src/parser/attributes.ts +0 -0
  2326. package/src/parser/constants.spec.ts +0 -0
  2327. package/src/parser/constants.ts +0 -0
  2328. package/src/parser/doesSomeParentMatch.ts +0 -0
  2329. package/src/parser/elementMatchesRule.ts +0 -0
  2330. package/src/parser/elements_parser.ts +0 -0
  2331. package/src/parser/getCSSRules.spec.ts +0 -0
  2332. package/src/parser/getCSSRules.ts +0 -0
  2333. package/src/parser/getGlobalStylesForElement.ts +0 -0
  2334. package/src/parser/getGradientDefs.ts +0 -0
  2335. package/src/parser/getMultipleNodes.ts +0 -0
  2336. package/src/parser/getSvgRegex.ts +0 -0
  2337. package/src/parser/getTagName.ts +0 -0
  2338. package/src/parser/hasInvalidAncestor.ts +0 -0
  2339. package/src/parser/loadSVGFromString.test.ts +0 -0
  2340. package/src/parser/loadSVGFromString.ts +0 -0
  2341. package/src/parser/loadSVGFromURL.ts +0 -0
  2342. package/src/parser/normalizeAttr.ts +0 -0
  2343. package/src/parser/normalizeValue.ts +0 -0
  2344. package/src/parser/parseAttributes.ts +0 -0
  2345. package/src/parser/parseFontDeclaration.ts +0 -0
  2346. package/src/parser/parsePointsAttribute.ts +0 -0
  2347. package/src/parser/parseSVGDocument.ts +0 -0
  2348. package/src/parser/parseStyleAttribute.ts +0 -0
  2349. package/src/parser/parseStyleObject.ts +0 -0
  2350. package/src/parser/parseStyleString.ts +0 -0
  2351. package/src/parser/parseTransformAttribute.ts +0 -0
  2352. package/src/parser/parseUseDirectives.test.ts +0 -0
  2353. package/src/parser/parseUseDirectives.ts +0 -0
  2354. package/src/parser/parser.spec.ts +0 -0
  2355. package/src/parser/percent.ts +0 -0
  2356. package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
  2357. package/src/parser/selectorMatches.ts +0 -0
  2358. package/src/parser/setStrokeFillOpacity.ts +0 -0
  2359. package/src/parser/typedefs.ts +0 -0
  2360. package/src/shapes/ActiveSelection.spec.ts +0 -0
  2361. package/src/shapes/ActiveSelection.ts +0 -0
  2362. package/src/shapes/Circle.spec.ts +0 -0
  2363. package/src/shapes/Circle.ts +0 -0
  2364. package/src/shapes/Ellipse.spec.ts +0 -0
  2365. package/src/shapes/Ellipse.ts +0 -0
  2366. package/src/shapes/Group.spec.ts +0 -0
  2367. package/src/shapes/Group.ts +0 -0
  2368. package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
  2369. package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
  2370. package/src/shapes/IText/IText.test.ts +0 -0
  2371. package/src/shapes/IText/IText.ts +846 -846
  2372. package/src/shapes/IText/ITextBehavior.test.ts +0 -0
  2373. package/src/shapes/IText/ITextBehavior.ts +1187 -1187
  2374. package/src/shapes/IText/ITextClickBehavior.ts +254 -254
  2375. package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
  2376. package/src/shapes/IText/ITextKeyBehavior.ts +732 -732
  2377. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
  2378. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
  2379. package/src/shapes/IText/constants.ts +0 -0
  2380. package/src/shapes/Image-filters.spec.ts +0 -0
  2381. package/src/shapes/Image.spec.ts +0 -0
  2382. package/src/shapes/Image.ts +0 -0
  2383. package/src/shapes/Line.spec.ts +0 -0
  2384. package/src/shapes/Line.ts +0 -0
  2385. package/src/shapes/Object/FabricObject.spec.ts +0 -0
  2386. package/src/shapes/Object/FabricObject.ts +0 -0
  2387. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
  2388. package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
  2389. package/src/shapes/Object/InteractiveObject.ts +0 -0
  2390. package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
  2391. package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
  2392. package/src/shapes/Object/Object.spec.ts +0 -0
  2393. package/src/shapes/Object/Object.ts +0 -0
  2394. package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
  2395. package/src/shapes/Object/ObjectGeometry.ts +0 -0
  2396. package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
  2397. package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
  2398. package/src/shapes/Object/StackedObject.spec.ts +0 -0
  2399. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
  2400. package/src/shapes/Object/defaultValues.ts +0 -0
  2401. package/src/shapes/Object/types/BaseProps.ts +0 -0
  2402. package/src/shapes/Object/types/BorderProps.ts +0 -0
  2403. package/src/shapes/Object/types/ControlProps.ts +0 -0
  2404. package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
  2405. package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
  2406. package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
  2407. package/src/shapes/Object/types/ObjectProps.ts +0 -0
  2408. package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
  2409. package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
  2410. package/src/shapes/Object/types/index.ts +0 -0
  2411. package/src/shapes/Path.spec.ts +0 -0
  2412. package/src/shapes/Path.ts +0 -0
  2413. package/src/shapes/Polygon.spec.ts +0 -0
  2414. package/src/shapes/Polygon.ts +0 -0
  2415. package/src/shapes/Polyline.spec.ts +0 -0
  2416. package/src/shapes/Polyline.ts +0 -0
  2417. package/src/shapes/Rect.spec.ts +0 -0
  2418. package/src/shapes/Rect.ts +0 -0
  2419. package/src/shapes/Text/StyledText.spec.ts +0 -0
  2420. package/src/shapes/Text/StyledText.ts +0 -0
  2421. package/src/shapes/Text/Text.spec.ts +0 -0
  2422. package/src/shapes/Text/Text.ts +5 -1
  2423. package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
  2424. package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
  2425. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
  2426. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
  2427. package/src/shapes/Text/constants.ts +135 -134
  2428. package/src/shapes/Textbox.spec.ts +0 -0
  2429. package/src/shapes/Textbox.ts +74 -5
  2430. package/src/shapes/Triangle.spec.ts +0 -0
  2431. package/src/shapes/Triangle.ts +0 -0
  2432. package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
  2433. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
  2434. package/src/text/browserLines.ts +233 -233
  2435. package/src/text/ellipsis.ts +516 -516
  2436. package/src/text/hitTest.ts +623 -623
  2437. package/src/text/layout.ts +586 -586
  2438. package/src/text/measure.ts +626 -626
  2439. package/src/text/overlayEditor.ts +1047 -1047
  2440. package/src/text/unicode.ts +454 -454
  2441. package/src/typedefs.ts +0 -0
  2442. package/src/util/__snapshots__/index.spec.ts.snap +0 -0
  2443. package/src/util/animation/AnimationBase.ts +0 -0
  2444. package/src/util/animation/AnimationFrameProvider.ts +0 -0
  2445. package/src/util/animation/AnimationRegistry.ts +0 -0
  2446. package/src/util/animation/ArrayAnimation.ts +0 -0
  2447. package/src/util/animation/ColorAnimation.ts +0 -0
  2448. package/src/util/animation/ValueAnimation.ts +0 -0
  2449. package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
  2450. package/src/util/animation/animate.ts +0 -0
  2451. package/src/util/animation/animations.spec.ts +0 -0
  2452. package/src/util/animation/easing.ts +0 -0
  2453. package/src/util/animation/index.ts +0 -0
  2454. package/src/util/animation/types.ts +0 -0
  2455. package/src/util/applyMixins.ts +0 -0
  2456. package/src/util/dom_event.spec.ts +0 -0
  2457. package/src/util/dom_event.ts +0 -0
  2458. package/src/util/dom_misc.ts +0 -0
  2459. package/src/util/index.spec.ts +0 -0
  2460. package/src/util/index.ts +0 -0
  2461. package/src/util/internals/applyCanvasTransform.ts +0 -0
  2462. package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
  2463. package/src/util/internals/cleanupSvgAttribute.ts +0 -0
  2464. package/src/util/internals/cloneStyles.spec.ts +0 -0
  2465. package/src/util/internals/cloneStyles.ts +0 -0
  2466. package/src/util/internals/console.ts +0 -0
  2467. package/src/util/internals/dom_style.spec.ts +0 -0
  2468. package/src/util/internals/dom_style.ts +0 -0
  2469. package/src/util/internals/findRight.ts +0 -0
  2470. package/src/util/internals/getRandomInt.test.ts +0 -0
  2471. package/src/util/internals/getRandomInt.ts +0 -0
  2472. package/src/util/internals/ifNaN.ts +0 -0
  2473. package/src/util/internals/removeFromArray.spec.ts +0 -0
  2474. package/src/util/internals/removeFromArray.ts +0 -0
  2475. package/src/util/internals/uid.ts +0 -0
  2476. package/src/util/lang_string.spec.ts +0 -0
  2477. package/src/util/lang_string.ts +0 -0
  2478. package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
  2479. package/src/util/misc/boundingBoxFromPoints.ts +0 -0
  2480. package/src/util/misc/capValue.spec.ts +0 -0
  2481. package/src/util/misc/capValue.ts +0 -0
  2482. package/src/util/misc/cornerRadius.spec.ts +0 -0
  2483. package/src/util/misc/cornerRadius.ts +0 -0
  2484. package/src/util/misc/cos.spec.ts +0 -0
  2485. package/src/util/misc/cos.ts +0 -0
  2486. package/src/util/misc/dom.spec.ts +0 -0
  2487. package/src/util/misc/dom.ts +0 -0
  2488. package/src/util/misc/findScaleTo.spec.ts +0 -0
  2489. package/src/util/misc/findScaleTo.ts +0 -0
  2490. package/src/util/misc/groupSVGElements.spec.ts +0 -0
  2491. package/src/util/misc/groupSVGElements.ts +0 -0
  2492. package/src/util/misc/isTransparent.ts +0 -0
  2493. package/src/util/misc/matrix.spec.ts +0 -0
  2494. package/src/util/misc/matrix.ts +0 -0
  2495. package/src/util/misc/mergeClipPaths.spec.ts +0 -0
  2496. package/src/util/misc/mergeClipPaths.ts +0 -0
  2497. package/src/util/misc/objectEnlive.spec.ts +0 -0
  2498. package/src/util/misc/objectEnlive.ts +0 -0
  2499. package/src/util/misc/objectTransforms.spec.ts +0 -0
  2500. package/src/util/misc/objectTransforms.ts +0 -0
  2501. package/src/util/misc/pick.spec.ts +0 -0
  2502. package/src/util/misc/pick.ts +0 -0
  2503. package/src/util/misc/planeChange.spec.ts +0 -0
  2504. package/src/util/misc/planeChange.ts +0 -0
  2505. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
  2506. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
  2507. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
  2508. package/src/util/misc/projectStroke/index.ts +0 -0
  2509. package/src/util/misc/projectStroke/types.ts +0 -0
  2510. package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
  2511. package/src/util/misc/radiansDegreesConversion.ts +0 -0
  2512. package/src/util/misc/resolveOrigin.ts +0 -0
  2513. package/src/util/misc/sin.ts +0 -0
  2514. package/src/util/misc/svgExport.ts +0 -0
  2515. package/src/util/misc/svgParsing.spec.ts +0 -0
  2516. package/src/util/misc/svgParsing.ts +0 -0
  2517. package/src/util/misc/textStyles.ts +0 -0
  2518. package/src/util/misc/toFixed.spec.ts +0 -0
  2519. package/src/util/misc/toFixed.ts +0 -0
  2520. package/src/util/misc/vectors.spec.ts +0 -0
  2521. package/src/util/misc/vectors.ts +0 -0
  2522. package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
  2523. package/src/util/path/index.spec.ts +0 -0
  2524. package/src/util/path/index.ts +0 -0
  2525. package/src/util/path/regex.ts +0 -0
  2526. package/src/util/path/typechecks.ts +0 -0
  2527. package/src/util/path/typedefs.ts +0 -0
  2528. package/src/util/transform_matrix_removal.ts +0 -0
  2529. package/src/util/typeAssertions.spec.ts +0 -0
  2530. package/src/util/typeAssertions.ts +0 -0
  2531. package/tsconfig-extensions.json +0 -0
  2532. package/tsconfig.json +0 -0
  2533. package/tsconfig.spec.json +0 -0
  2534. package/typedoc.config.json +0 -0
  2535. package/vitest.config.ts +0 -0
  2536. package/vitest.d.ts +0 -0
  2537. package/vitest.env.d.ts +0 -0
  2538. package/vitest.extend.ts +0 -0
  2539. package/vitest.setup.ts +0 -0
  2540. package/dist/src/controls/changeHeight.min.mjs +0 -2
  2541. package/dist/src/controls/changeHeight.min.mjs.map +0 -1
  2542. package/dist/src/controls/changeHeight.mjs +0 -36
  2543. package/dist/src/controls/changeHeight.mjs.map +0 -1
@@ -1,1047 +1,1047 @@
1
- /**
2
- * Canva/Polotno-style Overlay Text Editor
3
- *
4
- * Provides seamless inline text editing using an HTML textarea overlay
5
- * that matches canvas text positioning, styling, and transformations.
6
- */
7
-
8
- import type { Canvas } from '../canvas/Canvas';
9
- import type { FabricText } from '../shapes/Text/Text';
10
- import type { IText } from '../shapes/IText/IText';
11
- import type { Textbox } from '../shapes/Textbox';
12
- import type { TPointerEventInfo } from '../EventTypeDefs';
13
- import type { TMat2D } from '../typedefs';
14
- import { transformPoint } from '../util/misc/matrix';
15
-
16
- export interface OverlayEditorOptions {
17
- canvas: Canvas;
18
- target: FabricText | IText | Textbox;
19
- onCommit?: (text: string) => void;
20
- onCancel?: () => void;
21
- }
22
-
23
- export interface ScreenTransform {
24
- translateX: number;
25
- translateY: number;
26
- scaleX: number;
27
- scaleY: number;
28
- angle: number; // in radians
29
- }
30
-
31
- export class OverlayEditor {
32
- private canvas: Canvas;
33
- private target: FabricText | IText | Textbox;
34
- private container: HTMLElement;
35
- private textarea: HTMLTextAreaElement;
36
- private hostDiv: HTMLDivElement;
37
- private isDestroyed = false;
38
- private isComposing = false;
39
- private lastText: string;
40
- private onCommit?: (text: string) => void;
41
- private onCancel?: () => void;
42
-
43
- // Bound event handlers for cleanup
44
- private boundHandlers = {
45
- onInput: this.handleInput.bind(this),
46
- onKeyDown: this.handleKeyDown.bind(this),
47
- onBlur: this.handleBlur.bind(this),
48
- onCompositionStart: this.handleCompositionStart.bind(this),
49
- onCompositionEnd: this.handleCompositionEnd.bind(this),
50
- onAfterRender: this.handleAfterRender.bind(this),
51
- onMouseWheel: this.handleMouseWheel.bind(this),
52
- onFocus: this.handleFocus.bind(this),
53
- onMouseDown: this.handleMouseDown.bind(this),
54
- };
55
-
56
- constructor(options: OverlayEditorOptions) {
57
- this.canvas = options.canvas;
58
- this.target = options.target;
59
- this.onCommit = options.onCommit;
60
- this.onCancel = options.onCancel;
61
- this.lastText = this.target.text || '';
62
-
63
- this.container = this.getCanvasContainer();
64
- this.createOverlayDOM();
65
- this.attachEventListeners();
66
- this.refresh();
67
- this.focusTextarea();
68
-
69
- // Note: Don't manage object cursors since IText manages all cursors in _saveEditingProps/_restoreEditingProps
70
- // The IText editing system handles hoverCursor, moveCursor, and canvas cursors properly
71
-
72
- // Note: Canvas cursors are handled by IText's _saveEditingProps/_restoreEditingProps
73
- // We don't need to save/restore them here as it would conflict with IText's restoration
74
- }
75
-
76
- /**
77
- * Get the container element for the overlay (parent of upperCanvasEl)
78
- */
79
- private getCanvasContainer(): HTMLElement {
80
- const upperCanvas = this.canvas.upperCanvasEl;
81
- const container = upperCanvas.parentElement;
82
- if (!container) {
83
- throw new Error('Canvas must be mounted in DOM to use overlay editing');
84
- }
85
-
86
- // Ensure the container is positioned for absolute overlay positioning
87
- container.style.position = 'relative';
88
-
89
- return container;
90
- }
91
-
92
- /**
93
- * Create the overlay DOM structure
94
- */
95
- private createOverlayDOM(): void {
96
- // Host div for positioning and overflow control
97
- this.hostDiv = document.createElement('div');
98
- this.hostDiv.style.position = 'absolute';
99
- this.hostDiv.style.pointerEvents = 'none';
100
- this.hostDiv.style.zIndex = '1000';
101
- this.hostDiv.style.transformOrigin = 'left top';
102
-
103
- // Textarea for actual text input
104
- this.textarea = document.createElement('textarea');
105
- this.textarea.style.position = 'absolute';
106
- this.textarea.style.left = '0';
107
- this.textarea.style.top = '0';
108
- this.textarea.style.margin = '0';
109
- this.textarea.style.resize = 'none';
110
- this.textarea.style.pointerEvents = 'auto';
111
- // Set appropriate unicodeBidi based on content and direction
112
- const hasArabicText =
113
- /[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(
114
- this.target.text || '',
115
- );
116
- const hasLatinText = /[a-zA-Z]/.test(this.target.text || '');
117
- const isLTRDirection = (this.target as any).direction === 'ltr';
118
-
119
- if (hasArabicText && hasLatinText && isLTRDirection) {
120
- // For mixed Arabic/Latin text in LTR mode, use embed for consistent line wrapping
121
- this.textarea.style.unicodeBidi = 'embed';
122
- } else if (hasArabicText && isLTRDirection) {
123
- // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction
124
- this.textarea.style.unicodeBidi = 'embed';
125
- } else {
126
- // Default to plaintext for natural text flow
127
- this.textarea.style.unicodeBidi = 'plaintext';
128
- }
129
- this.textarea.style.caretColor = 'auto';
130
-
131
- // Polotno-like base
132
- this.textarea.style.border = 'none';
133
- this.textarea.style.padding = '0';
134
- this.textarea.style.background = 'transparent'; // Transparent so Fabric text shows through
135
- this.textarea.style.outline = 'none';
136
- this.textarea.style.overflow = 'hidden'; // Prevent scrollbars
137
- this.textarea.style.whiteSpace = 'pre-wrap';
138
- this.textarea.style.wordBreak = 'normal';
139
- this.textarea.style.overflowWrap = 'break-word';
140
- this.textarea.style.userSelect = 'text';
141
- this.textarea.style.textTransform = 'none';
142
-
143
- // Start visible - we'll handle transitions differently
144
- this.textarea.style.opacity = '1';
145
-
146
- // Set initial text
147
- this.textarea.value = this.target.text || '';
148
-
149
- this.hostDiv.appendChild(this.textarea);
150
- document.body.appendChild(this.hostDiv);
151
- }
152
-
153
- /**
154
- * Attach all event listeners
155
- */
156
- private attachEventListeners(): void {
157
- // Textarea events
158
- this.textarea.addEventListener('input', this.boundHandlers.onInput);
159
- this.textarea.addEventListener('keydown', this.boundHandlers.onKeyDown);
160
- this.textarea.addEventListener('blur', this.boundHandlers.onBlur);
161
- this.textarea.addEventListener(
162
- 'compositionstart',
163
- this.boundHandlers.onCompositionStart,
164
- );
165
- this.textarea.addEventListener(
166
- 'compositionend',
167
- this.boundHandlers.onCompositionEnd,
168
- );
169
- this.textarea.addEventListener('focus', this.boundHandlers.onFocus);
170
-
171
- // Canvas events for synchronization
172
- this.canvas.on('after:render', this.boundHandlers.onAfterRender);
173
- this.canvas.on('mouse:wheel', this.boundHandlers.onMouseWheel);
174
- this.canvas.on('mouse:down', this.boundHandlers.onMouseDown);
175
-
176
- // Store original methods to detect viewport changes
177
- this.setupViewportChangeDetection();
178
- }
179
-
180
- /**
181
- * Remove all event listeners
182
- */
183
- private removeEventListeners(): void {
184
- this.textarea.removeEventListener('input', this.boundHandlers.onInput);
185
- this.textarea.removeEventListener('keydown', this.boundHandlers.onKeyDown);
186
- this.textarea.removeEventListener('blur', this.boundHandlers.onBlur);
187
- this.textarea.removeEventListener(
188
- 'compositionstart',
189
- this.boundHandlers.onCompositionStart,
190
- );
191
- this.textarea.removeEventListener(
192
- 'compositionend',
193
- this.boundHandlers.onCompositionEnd,
194
- );
195
- this.textarea.removeEventListener('focus', this.boundHandlers.onFocus);
196
-
197
- this.canvas.off('after:render', this.boundHandlers.onAfterRender);
198
- this.canvas.off('mouse:wheel', this.boundHandlers.onMouseWheel);
199
- this.canvas.off('mouse:down', this.boundHandlers.onMouseDown);
200
-
201
- // Restore original methods
202
- this.restoreViewportChangeDetection();
203
- }
204
-
205
- /**
206
- * Simple method to refresh positioning when canvas changes
207
- */
208
- private updatePosition(): void {
209
- this.applyOverlayStyle();
210
- }
211
-
212
- /**
213
- * Update the Fabric object bounds to match current textarea size
214
- * This ensures Fabric.js selection controls follow the growing textbox
215
- */
216
- private updateObjectBounds(): void {
217
- if (this.isDestroyed) return;
218
-
219
- const target = this.target;
220
- const zoom = this.canvas.getZoom();
221
-
222
- // Get current textbox dimensions from the host div (in canvas coordinates)
223
- const currentWidth = parseFloat(this.hostDiv.style.width) / zoom;
224
- const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;
225
-
226
- // Always update height for responsive controls (especially important for line deletion)
227
- const heightDiff = Math.abs(currentHeight - target.height);
228
- const threshold = 0.5; // Lower threshold for better responsiveness to line changes
229
-
230
- if (heightDiff > threshold) {
231
- const oldHeight = target.height;
232
- target.height = currentHeight;
233
- target.setCoords(); // Update control positions
234
-
235
- // Force dirty to ensure proper re-rendering
236
- target.dirty = true;
237
- this.canvas.requestRenderAll(); // Re-render to show updated selection
238
-
239
- // IMPORTANT: Reposition overlay after height change
240
- requestAnimationFrame(() => {
241
- if (!this.isDestroyed) {
242
- this.applyOverlayStyle();
243
- console.log(
244
- '📐 Height changed - rechecking alignment after repositioning:',
245
- );
246
- }
247
- });
248
- }
249
- }
250
-
251
- /**
252
- * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
253
- */
254
- private letterSpacingPx(charSpacing: number, fontSize: number): number {
255
- return (charSpacing / 1000) * fontSize;
256
- }
257
-
258
- /**
259
- * Detect text direction using first strong directional character
260
- */
261
- private firstStrongDir(text: string): 'ltr' | 'rtl' {
262
- // Hebrew: \u0590-\u05FF, Arabic: \u0600-\u06FF, \u0750-\u077F, \uFB50-\uFDFF, \uFE70-\uFEFF
263
- const rtlRegex =
264
- /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/;
265
- return rtlRegex.test(text) ? 'rtl' : 'ltr';
266
- }
267
-
268
- private applyOverlayStyle(): void {
269
- const target = this.target;
270
- const canvas = this.canvas;
271
-
272
- // 1. Freshen object's transformations - use aCoords like rtl-test.html
273
- target.setCoords();
274
- const aCoords = target.aCoords;
275
-
276
- // 2. Get canvas position and scroll offsets (like rtl-test.html)
277
- const canvasEl = canvas.upperCanvasEl;
278
- const canvasRect = canvasEl.getBoundingClientRect();
279
- const scrollX = window.scrollX || window.pageXOffset;
280
- const scrollY = window.scrollY || window.pageYOffset;
281
-
282
- // 3. Position and dimensions accounting for Fabric Textbox padding and viewport transform
283
- const zoom = canvas.getZoom();
284
- const vpt = canvas.viewportTransform;
285
- const padding = (target as any).padding || 0;
286
- const paddingX = padding * (target.scaleX || 1) * zoom;
287
- const paddingY = padding * (target.scaleY || 1) * zoom;
288
-
289
- // Transform object's top-left corner coordinates to screen coordinates using viewport transform
290
- // aCoords.tl already accounts for object positioning and scaling, just need viewport transform
291
- const screenPoint = transformPoint(
292
- { x: aCoords.tl.x, y: aCoords.tl.y },
293
- vpt,
294
- );
295
-
296
- const left = canvasRect.left + scrollX + screenPoint.x;
297
- const top = canvasRect.top + scrollY + screenPoint.y;
298
-
299
- // 4. Calculate the precise width and height for the container
300
- // **THE FIX:** Use getBoundingRect() for BOTH width and height.
301
- // This is the most reliable measure of the object's final rendered dimensions.
302
- const objectBounds = target.getBoundingRect();
303
- const width = Math.round(objectBounds.width * zoom);
304
- const height = Math.round(objectBounds.height * zoom);
305
-
306
- // 5. Apply styles to host DIV - absolute positioning like rtl-test.html
307
- this.hostDiv.style.position = 'absolute';
308
- this.hostDiv.style.left = `${left}px`;
309
- this.hostDiv.style.top = `${top}px`;
310
- this.hostDiv.style.width = `${width}px`;
311
- this.hostDiv.style.height = `${height}px`;
312
- this.hostDiv.style.overflow = 'hidden'; // Prevent scrollbars in host div
313
- // Apply rotation matching Fabric.js object transformation
314
- if (target.angle) {
315
- this.hostDiv.style.transform = `rotate(${target.angle}deg)`;
316
- this.hostDiv.style.transformOrigin = 'top left'; // Match Fabric Textbox behavior
317
- } else {
318
- this.hostDiv.style.transform = '';
319
- this.hostDiv.style.transformOrigin = '';
320
- }
321
-
322
- // 6. Style the textarea - match Fabric's exact rendering with padding
323
- const baseFontSize = target.fontSize ?? 16;
324
- // Use scaleX for font scaling to match Fabric text scaling exactly
325
- const scaleX = target.scaleX || 1;
326
- const finalFontSize = baseFontSize * scaleX * zoom;
327
- const fabricLineHeight = target.lineHeight || 1.16;
328
- // **THE FIX:** Use 'border-box' so the width property includes padding.
329
- // This makes alignment much easier and more reliable.
330
- this.textarea.style.boxSizing = 'border-box';
331
-
332
- // **THE FIX:** Set the textarea width to be IDENTICAL to the host div's width.
333
- // The padding will now be correctly contained *inside* this width.
334
- this.textarea.style.width = `${width}px`;
335
- this.textarea.style.height = '100%'; // Let hostDiv control height
336
- this.textarea.style.padding = `${paddingY}px ${paddingX}px`;
337
-
338
- // Apply all other font and text styles to match Fabric
339
- const letterSpacingPx = ((target.charSpacing || 0) / 1000) * finalFontSize;
340
-
341
- // Special handling for text objects loaded from JSON - ensure they're properly initialized
342
- if (target.dirty !== false && target.initDimensions) {
343
- console.log('🔧 Ensuring text object is properly initialized before overlay editing');
344
- // Force re-initialization if the text object seems to be in a dirty state
345
- target.initDimensions();
346
- }
347
-
348
- this.textarea.style.fontSize = `${finalFontSize}px`;
349
- this.textarea.style.lineHeight = String(fabricLineHeight);
350
- this.textarea.style.fontFamily = target.fontFamily || 'Arial';
351
- this.textarea.style.fontWeight = String(target.fontWeight || 'normal');
352
- this.textarea.style.fontStyle = target.fontStyle || 'normal';
353
- // Handle text alignment and justification
354
- const textAlign = (target as any).textAlign || 'left';
355
- let cssTextAlign = textAlign;
356
-
357
- // Detect text direction from content for proper justify handling
358
- const autoDetectedDirection = this.firstStrongDir(this.textarea.value || '');
359
-
360
- // DEBUG: Log alignment details
361
- console.log('🔍 ALIGNMENT DEBUG:');
362
- console.log(' Fabric textAlign:', textAlign);
363
- console.log(' Fabric direction:', (target as any).direction);
364
- console.log(' Text content:', JSON.stringify(target.text));
365
- console.log(' Detected direction:', autoDetectedDirection);
366
-
367
- // Map fabric.js justify to CSS
368
- if (textAlign.includes('justify')) {
369
- // Try to match fabric.js justify behavior more precisely
370
- try {
371
- // For justify, we need to replicate fabric.js space expansion
372
- // Use CSS justify but with specific settings to match fabric.js better
373
- cssTextAlign = 'justify';
374
-
375
- // Set text-align-last based on justify type and detected direction
376
- // Smart justify: respect detected direction even when fabric alignment doesn't match
377
- if (textAlign === 'justify') {
378
- this.textarea.style.textAlignLast = autoDetectedDirection === 'rtl' ? 'right' : 'left';
379
- } else if (textAlign === 'justify-left') {
380
- // If text is RTL but fabric says justify-left, override to justify-right for better UX
381
- if (autoDetectedDirection === 'rtl') {
382
- this.textarea.style.textAlignLast = 'right';
383
- console.log(' → Overrode justify-left to justify-right for RTL text');
384
- } else {
385
- this.textarea.style.textAlignLast = 'left';
386
- }
387
- } else if (textAlign === 'justify-right') {
388
- // If text is LTR but fabric says justify-right, override to justify-left for better UX
389
- if (autoDetectedDirection === 'ltr') {
390
- this.textarea.style.textAlignLast = 'left';
391
- console.log(' → Overrode justify-right to justify-left for LTR text');
392
- } else {
393
- this.textarea.style.textAlignLast = 'right';
394
- }
395
- } else if (textAlign === 'justify-center') {
396
- this.textarea.style.textAlignLast = 'center';
397
- }
398
-
399
- // Enhanced justify settings for better fabric.js matching
400
- (this.textarea.style as any).textJustify = 'inter-word';
401
- (this.textarea.style as any).wordSpacing = 'normal';
402
-
403
- // Additional CSS properties for better justify matching
404
- this.textarea.style.textAlign = 'justify';
405
- this.textarea.style.textAlignLast = this.textarea.style.textAlignLast;
406
-
407
- // Try to force better justify behavior
408
- (this.textarea.style as any).textJustifyTrim = 'none';
409
- (this.textarea.style as any).textAutospace = 'none';
410
-
411
- console.log(' → Applied justify alignment:', textAlign, 'with last-line:', this.textarea.style.textAlignLast);
412
- } catch (error) {
413
- console.warn(' → Justify setup failed, falling back to standard alignment:', error);
414
- cssTextAlign = textAlign.replace('justify-', '').replace('justify', 'left');
415
- }
416
- } else {
417
- this.textarea.style.textAlignLast = 'auto';
418
- (this.textarea.style as any).textJustify = 'auto';
419
- (this.textarea.style as any).wordSpacing = 'normal';
420
- console.log(' → Applied standard alignment:', cssTextAlign);
421
- }
422
-
423
- this.textarea.style.textAlign = cssTextAlign;
424
- this.textarea.style.color = target.fill?.toString() || '#000';
425
- this.textarea.style.letterSpacing = `${letterSpacingPx}px`;
426
-
427
- // Use the already detected direction from above
428
- const fabricDirection = (target as any).direction;
429
-
430
- // Use auto-detected direction for better BiDi support, but respect fabric direction if it makes sense
431
- this.textarea.style.direction = autoDetectedDirection || fabricDirection || 'ltr';
432
- this.textarea.style.fontVariant = 'normal';
433
- this.textarea.style.fontStretch = 'normal';
434
- this.textarea.style.textRendering = 'auto'; // Changed from 'optimizeLegibility' to match canvas
435
- this.textarea.style.fontKerning = 'normal';
436
- this.textarea.style.fontFeatureSettings = 'normal';
437
- this.textarea.style.fontVariationSettings = 'normal';
438
- this.textarea.style.margin = '0';
439
- this.textarea.style.border = 'none';
440
- this.textarea.style.outline = 'none';
441
- this.textarea.style.background = 'transparent';
442
- this.textarea.style.overflowWrap = 'break-word';
443
- this.textarea.style.whiteSpace = 'pre-wrap';
444
- this.textarea.style.hyphens = 'none';
445
-
446
- // DEBUG: Log final CSS properties
447
- console.log('🎨 FINAL TEXTAREA CSS:');
448
- console.log(' textAlign:', this.textarea.style.textAlign);
449
- console.log(' textAlignLast:', this.textarea.style.textAlignLast);
450
- console.log(' direction:', this.textarea.style.direction);
451
- console.log(' unicodeBidi:', this.textarea.style.unicodeBidi);
452
- console.log(' width:', this.textarea.style.width);
453
- console.log(' textJustify:', (this.textarea.style as any).textJustify);
454
- console.log(' wordSpacing:', (this.textarea.style as any).wordSpacing);
455
- console.log(' whiteSpace:', this.textarea.style.whiteSpace);
456
-
457
- // If justify, log Fabric object dimensions for comparison
458
- if (textAlign.includes('justify')) {
459
- console.log('🔧 FABRIC OBJECT JUSTIFY INFO:');
460
- console.log(' Fabric width:', (target as any).width);
461
- console.log(' Fabric calcTextWidth:', (target as any).calcTextWidth?.());
462
- console.log(' Fabric textAlign:', (target as any).textAlign);
463
- console.log(' Text lines:', (target as any).textLines);
464
- }
465
-
466
- // Debug font properties matching
467
- console.log('🔤 FONT PROPERTIES COMPARISON:');
468
- console.log(' Fabric fontFamily:', target.fontFamily);
469
- console.log(' Fabric fontWeight:', target.fontWeight);
470
- console.log(' Fabric fontStyle:', target.fontStyle);
471
- console.log(' Fabric fontSize:', target.fontSize);
472
- console.log(' → Textarea fontFamily:', this.textarea.style.fontFamily);
473
- console.log(' → Textarea fontWeight:', this.textarea.style.fontWeight);
474
- console.log(' → Textarea fontStyle:', this.textarea.style.fontStyle);
475
- console.log(' → Textarea fontSize:', this.textarea.style.fontSize);
476
-
477
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
478
-
479
- // Enhanced font rendering to better match fabric.js canvas rendering
480
- // Default to auto for more natural rendering
481
- (this.textarea.style as any).webkitFontSmoothing = 'auto';
482
- (this.textarea.style as any).mozOsxFontSmoothing = 'auto';
483
- (this.textarea.style as any).fontSmooth = 'auto';
484
- (this.textarea.style as any).textSizeAdjust = 'none';
485
-
486
- // For bold fonts, use subpixel rendering to match canvas thickness better
487
- const fontWeight = String(target.fontWeight || 'normal');
488
- const isBold = fontWeight === 'bold' || fontWeight === '700' ||
489
- (parseInt(fontWeight) >= 600);
490
-
491
- if (isBold) {
492
- (this.textarea.style as any).webkitFontSmoothing = 'subpixel-antialiased';
493
- (this.textarea.style as any).mozOsxFontSmoothing = 'unset';
494
- console.log('🔤 Applied enhanced bold rendering for better thickness matching');
495
- }
496
-
497
- console.log('🎨 FONT SMOOTHING APPLIED:');
498
- console.log(' webkitFontSmoothing:', (this.textarea.style as any).webkitFontSmoothing);
499
- console.log(' mozOsxFontSmoothing:', (this.textarea.style as any).mozOsxFontSmoothing);
500
-
501
-
502
- // Initial bounds are set correctly by Fabric.js - don't force update here
503
- }
504
-
505
- /**
506
- * Debug method to compare textarea and canvas object bounding boxes
507
- */
508
- private debugBoundingBoxComparison(): void {
509
- const target = this.target;
510
- const canvas = this.canvas;
511
- const zoom = canvas.getZoom();
512
-
513
- // Get textarea bounding box (in screen coordinates)
514
- const textareaRect = this.textarea.getBoundingClientRect();
515
- const hostRect = this.hostDiv.getBoundingClientRect();
516
-
517
- // Get canvas object bounding box (in screen coordinates)
518
- const canvasBounds = target.getBoundingRect();
519
- const canvasRect = canvas.upperCanvasEl.getBoundingClientRect();
520
-
521
- // Convert canvas object bounds to screen coordinates
522
- const vpt = canvas.viewportTransform;
523
- const screenObjectBounds = {
524
- left: canvasRect.left + canvasBounds.left * zoom + vpt[4],
525
- top: canvasRect.top + canvasBounds.top * zoom + vpt[5],
526
- width: canvasBounds.width * zoom,
527
- height: canvasBounds.height * zoom,
528
- };
529
-
530
- console.log('🔍 BOUNDING BOX COMPARISON:');
531
- console.log('📦 Textarea Rect:', {
532
- left: Math.round(textareaRect.left * 100) / 100,
533
- top: Math.round(textareaRect.top * 100) / 100,
534
- width: Math.round(textareaRect.width * 100) / 100,
535
- height: Math.round(textareaRect.height * 100) / 100,
536
- });
537
- console.log('📦 Host Div Rect:', {
538
- left: Math.round(hostRect.left * 100) / 100,
539
- top: Math.round(hostRect.top * 100) / 100,
540
- width: Math.round(hostRect.width * 100) / 100,
541
- height: Math.round(hostRect.height * 100) / 100,
542
- });
543
- console.log('📦 Canvas Object Bounds (screen):', {
544
- left: Math.round(screenObjectBounds.left * 100) / 100,
545
- top: Math.round(screenObjectBounds.top * 100) / 100,
546
- width: Math.round(screenObjectBounds.width * 100) / 100,
547
- height: Math.round(screenObjectBounds.height * 100) / 100,
548
- });
549
- console.log('📦 Canvas Object Bounds (canvas):', canvasBounds);
550
-
551
- // Calculate differences
552
- const hostVsObject = {
553
- leftDiff:
554
- Math.round((hostRect.left - screenObjectBounds.left) * 100) / 100,
555
- topDiff: Math.round((hostRect.top - screenObjectBounds.top) * 100) / 100,
556
- widthDiff:
557
- Math.round((hostRect.width - screenObjectBounds.width) * 100) / 100,
558
- heightDiff:
559
- Math.round((hostRect.height - screenObjectBounds.height) * 100) / 100,
560
- };
561
-
562
- const textareaVsObject = {
563
- leftDiff:
564
- Math.round((textareaRect.left - screenObjectBounds.left) * 100) / 100,
565
- topDiff:
566
- Math.round((textareaRect.top - screenObjectBounds.top) * 100) / 100,
567
- widthDiff:
568
- Math.round((textareaRect.width - screenObjectBounds.width) * 100) / 100,
569
- heightDiff:
570
- Math.round((textareaRect.height - screenObjectBounds.height) * 100) /
571
- 100,
572
- };
573
-
574
- console.log('📏 Host Div vs Canvas Object Diff:', hostVsObject);
575
- console.log('📏 Textarea vs Canvas Object Diff:', textareaVsObject);
576
-
577
- // Check if they're aligned (within 2px tolerance)
578
- const tolerance = 2;
579
- const hostAligned =
580
- Math.abs(hostVsObject.leftDiff) < tolerance &&
581
- Math.abs(hostVsObject.topDiff) < tolerance &&
582
- Math.abs(hostVsObject.widthDiff) < tolerance &&
583
- Math.abs(hostVsObject.heightDiff) < tolerance;
584
-
585
- const textareaAligned =
586
- Math.abs(textareaVsObject.leftDiff) < tolerance &&
587
- Math.abs(textareaVsObject.topDiff) < tolerance &&
588
- Math.abs(textareaVsObject.widthDiff) < tolerance &&
589
- Math.abs(textareaVsObject.heightDiff) < tolerance;
590
-
591
- console.log(
592
- hostAligned
593
- ? '✅ Host Div ALIGNED with canvas object'
594
- : '❌ Host Div MISALIGNED with canvas object',
595
- );
596
- console.log(
597
- textareaAligned
598
- ? '✅ Textarea ALIGNED with canvas object'
599
- : '❌ Textarea MISALIGNED with canvas object',
600
- );
601
- console.log('🔍 Zoom:', zoom, 'Viewport Transform:', vpt);
602
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
603
- }
604
-
605
- /**
606
- * Debug method to compare text wrapping between textarea and Fabric text object
607
- */
608
- private debugTextWrapping(): void {
609
- const target = this.target;
610
- const text = this.textarea.value;
611
-
612
- console.log('📝 TEXT WRAPPING COMPARISON:');
613
- console.log('📄 Text Content:', `"${text}"`);
614
- console.log('📄 Text Length:', text.length);
615
-
616
- // Analyze line breaks
617
- const explicitLines = text.split('\n');
618
- console.log('📄 Explicit Lines (\\n):', explicitLines.length);
619
- explicitLines.forEach((line, i) => {
620
- console.log(` Line ${i + 1}: "${line}" (${line.length} chars)`);
621
- });
622
-
623
- // Get textarea computed styles for wrapping analysis
624
- const textareaStyles = window.getComputedStyle(this.textarea);
625
- console.log('📐 Textarea Wrapping Styles:');
626
- console.log(' width:', textareaStyles.width);
627
- console.log(' fontSize:', textareaStyles.fontSize);
628
- console.log(' fontFamily:', textareaStyles.fontFamily);
629
- console.log(' fontWeight:', textareaStyles.fontWeight);
630
- console.log(' letterSpacing:', textareaStyles.letterSpacing);
631
- console.log(' lineHeight:', textareaStyles.lineHeight);
632
- console.log(' whiteSpace:', textareaStyles.whiteSpace);
633
- console.log(' wordWrap:', textareaStyles.wordWrap);
634
- console.log(' overflowWrap:', textareaStyles.overflowWrap);
635
- console.log(' direction:', textareaStyles.direction);
636
- console.log(' textAlign:', textareaStyles.textAlign);
637
-
638
- // Get Fabric text object properties for comparison
639
- console.log('📐 Fabric Text Object Properties:');
640
- console.log(' width:', (target as any).width);
641
- console.log(' fontSize:', target.fontSize);
642
- console.log(' fontFamily:', target.fontFamily);
643
- console.log(' fontWeight:', target.fontWeight);
644
- console.log(' charSpacing:', target.charSpacing);
645
- console.log(' lineHeight:', target.lineHeight);
646
- console.log(' direction:', (target as any).direction);
647
- console.log(' textAlign:', (target as any).textAlign);
648
- console.log(' scaleX:', target.scaleX);
649
- console.log(' scaleY:', target.scaleY);
650
-
651
- // Calculate effective dimensions for comparison - use actual rendered width
652
- // **THE FIX:** Use getBoundingRect to get the *actual rendered width* of the Fabric object.
653
- const fabricEffectiveWidth = this.target.getBoundingRect().width;
654
- // Use the exact width set on textarea for comparison
655
- const textareaComputedWidth = parseFloat(
656
- window.getComputedStyle(this.textarea).width,
657
- );
658
- const textareaEffectiveWidth =
659
- textareaComputedWidth / this.canvas.getZoom();
660
- const widthDiff = Math.abs(textareaEffectiveWidth - fabricEffectiveWidth);
661
-
662
- console.log('📏 Effective Width Comparison:');
663
- console.log(' Textarea Effective Width:', textareaEffectiveWidth);
664
- console.log(' Fabric Effective Width:', fabricEffectiveWidth);
665
- console.log(' Width Difference:', widthDiff.toFixed(2) + 'px');
666
- console.log(
667
- widthDiff < 1
668
- ? '✅ Widths MATCH for wrapping'
669
- : '❌ Width MISMATCH may cause different wrapping',
670
- );
671
-
672
- // Check text direction and bidi handling
673
- const hasRTLText =
674
- /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(
675
- text,
676
- );
677
- const hasBidiText = /[\u0590-\u06FF]/.test(text) && /[a-zA-Z]/.test(text);
678
-
679
- console.log('🌍 Text Direction Analysis:');
680
- console.log(' Has RTL characters:', hasRTLText);
681
- console.log(' Has mixed Bidi text:', hasBidiText);
682
- console.log(' Textarea direction:', textareaStyles.direction);
683
- console.log(' Fabric direction:', (target as any).direction || 'auto');
684
- console.log(' Textarea unicodeBidi:', textareaStyles.unicodeBidi);
685
-
686
- // Measure actual rendered line count
687
- const textareaScrollHeight = this.textarea.scrollHeight;
688
- const textareaLineHeight =
689
- parseFloat(textareaStyles.lineHeight) ||
690
- parseFloat(textareaStyles.fontSize) * 1.2;
691
- const estimatedTextareaLines = Math.round(
692
- textareaScrollHeight / textareaLineHeight,
693
- );
694
-
695
- console.log('📊 Line Count Analysis:');
696
- console.log(' Textarea scrollHeight:', textareaScrollHeight);
697
- console.log(' Textarea lineHeight:', textareaLineHeight);
698
- console.log(' Estimated rendered lines:', estimatedTextareaLines);
699
- console.log(' Explicit line breaks:', explicitLines.length);
700
-
701
- if (estimatedTextareaLines > explicitLines.length) {
702
- console.log('🔄 Text wrapping detected in textarea');
703
- console.log(
704
- ' Wrapped lines:',
705
- estimatedTextareaLines - explicitLines.length,
706
- );
707
- } else {
708
- console.log('📏 No text wrapping in textarea');
709
- }
710
-
711
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
712
- }
713
-
714
-
715
- /**
716
- * Focus the textarea and position cursor at end
717
- */
718
- private focusTextarea(): void {
719
- // For overlay editing, we want to keep the object in "selection mode" not "editing mode"
720
- // This means keeping selected=true and isEditing=false to show boundaries
721
-
722
- // Hide the text content only (not the entire object)
723
- this.target.opacity = 0.01; // Nearly transparent but not fully hidden
724
-
725
- // Ensure object stays selected to show boundaries
726
- (this.target as any).selected = true;
727
- (this.target as any).isEditing = false; // Override any editing state
728
-
729
- // Make sure controls are enabled and movement is allowed during overlay editing
730
- this.target.set({
731
- hasControls: true,
732
- hasBorders: true,
733
- selectable: true,
734
- lockMovementX: false,
735
- lockMovementY: false,
736
- });
737
-
738
- // Keep as active object
739
- this.canvas.setActiveObject(this.target);
740
-
741
- this.canvas.requestRenderAll();
742
- this.target.setCoords();
743
- this.applyOverlayStyle();
744
-
745
- // Fix character mapping issues after JSON loading for browser-wrapped fonts
746
- if ((this.target as any)._fixCharacterMappingAfterJsonLoad) {
747
- (this.target as any)._fixCharacterMappingAfterJsonLoad();
748
- }
749
-
750
- this.textarea.focus();
751
-
752
- this.textarea.setSelectionRange(
753
- this.textarea.value.length,
754
- this.textarea.value.length,
755
- );
756
-
757
- // Ensure the object stays selected even after textarea focus
758
- this.canvas.setActiveObject(this.target);
759
- this.canvas.requestRenderAll();
760
- }
761
-
762
- /**
763
- * Refresh overlay positioning and styling
764
- */
765
- public refresh(): void {
766
- if (this.isDestroyed) return;
767
- this.updatePosition();
768
- // Don't update object bounds on every refresh - only when textarea actually resizes
769
- }
770
-
771
- /**
772
- * Destroy the overlay editor
773
- */
774
- public destroy(commit: boolean = true): void {
775
- if (this.isDestroyed) return;
776
- this.isDestroyed = true;
777
-
778
- this.removeEventListeners();
779
-
780
- // Restore target visibility before handling commit/cancel
781
- if ((this.target as any).__overlayEditor === this) {
782
- (this.target as any).__overlayEditor = undefined;
783
-
784
- // Restore original opacity
785
- if ((this.target as any).__overlayOriginalOpacity !== undefined) {
786
- this.target.opacity = (this.target as any).__overlayOriginalOpacity;
787
- delete (this.target as any).__overlayOriginalOpacity;
788
- }
789
- }
790
-
791
- // Remove DOM first
792
- if (this.hostDiv.parentNode) {
793
- this.hostDiv.parentNode.removeChild(this.hostDiv);
794
- }
795
-
796
- // Handle commit/cancel after restoring visibility
797
- if (commit && !this.isComposing) {
798
- const finalText = this.textarea.value;
799
-
800
- // Auto-detect text direction and update fabric object if needed
801
- const detectedDirection = this.firstStrongDir(finalText);
802
- const currentDirection = (this.target as any).direction || 'ltr';
803
-
804
- if (detectedDirection && detectedDirection !== currentDirection) {
805
- console.log(`🔄 Overlay Exit: Auto-detected direction change from "${currentDirection}" to "${detectedDirection}"`);
806
- console.log(` Text content: "${finalText.substring(0, 50)}..."`);
807
-
808
- // Update the fabric object's direction
809
- (this.target as any).set('direction', detectedDirection);
810
-
811
- // Force a re-render to apply the direction change
812
- this.canvas.requestRenderAll();
813
-
814
- console.log(`✅ Fabric object direction updated to: ${detectedDirection}`);
815
- } else {
816
- console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: "${finalText.substring(0, 30)}..."`);
817
- }
818
-
819
- if (this.onCommit) {
820
- this.onCommit(finalText);
821
- }
822
- } else if (!commit && this.onCancel) {
823
- this.onCancel();
824
- }
825
-
826
- // Note: Don't restore object cursors since IText manages all cursors in _restoreEditingProps
827
- // Let the IText editing system handle proper restoration of all cursor properties
828
-
829
- // Note: Canvas cursors are restored by IText's _restoreEditingProps method
830
- // Force a cursor refresh by triggering _setCursorFromEvent
831
- setTimeout(() => {
832
- this.canvas.upperCanvasEl.style.cursor = '';
833
- // Trigger cursor refresh on next mouse move
834
- this.canvas.setCursor(this.canvas.defaultCursor);
835
- }, 0);
836
-
837
- // Request canvas re-render
838
- this.canvas.requestRenderAll();
839
- }
840
-
841
- // Event handlers
842
- private handleInput(): void {
843
- if (!this.isComposing && this.target.text !== this.textarea.value) {
844
- // Live update target text
845
- this.target.text = this.textarea.value;
846
-
847
-
848
- // Auto-resize textarea to match new content
849
- this.autoResizeTextarea();
850
-
851
- // Ensure object stays in selection mode (not editing mode) to show controls
852
- (this.target as any).selected = true;
853
- (this.target as any).isEditing = false;
854
- this.canvas.setActiveObject(this.target);
855
- this.canvas.requestRenderAll();
856
- }
857
- }
858
-
859
- private autoResizeTextarea(): void {
860
- // Store the scroll position and the container's old height for comparison.
861
- const scrollTop = this.textarea.scrollTop;
862
- const oldHeight = parseFloat(this.hostDiv.style.height || '0');
863
-
864
- // 1. **Force a reliable reflow.**
865
- // First, reset the textarea's height to a minimal value. This is the crucial step
866
- // that forces the browser to recalculate the content's height from scratch,
867
- // ignoring the hostDiv's larger, stale height.
868
- this.textarea.style.height = '1px';
869
-
870
- // 2. Read the now-accurate scrollHeight. This value reflects the minimum
871
- // height required for the content, whether it's single or multi-line.
872
- const scrollHeight = this.textarea.scrollHeight;
873
-
874
- // A small buffer for rendering consistency across browsers.
875
- const buffer = 2;
876
- const newHeight = scrollHeight + buffer;
877
-
878
- // Check if the height has changed significantly.
879
- const heightChanged = Math.abs(newHeight - oldHeight) > 1;
880
-
881
- // 4. Only update heights and object bounds if there was a change.
882
- if (heightChanged) {
883
- this.textarea.style.height = `${newHeight}px`;
884
- this.hostDiv.style.height = `${newHeight}px`;
885
- this.updateObjectBounds();
886
- } else {
887
- // If no significant change, ensure the textarea's height matches the container
888
- // to prevent any minor visual misalignment.
889
- this.textarea.style.height = this.hostDiv.style.height;
890
- }
891
-
892
- // 5. Restore the original scroll position.
893
- this.textarea.scrollTop = scrollTop;
894
- }
895
-
896
- private handleKeyDown(e: KeyboardEvent): void {
897
- if (e.key === 'Escape') {
898
- e.preventDefault();
899
- this.destroy(false); // Cancel
900
- } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {
901
- e.preventDefault();
902
- this.destroy(true); // Commit
903
- } else if (
904
- e.key === 'Enter' ||
905
- e.key === 'Backspace' ||
906
- e.key === 'Delete'
907
- ) {
908
- // For keys that might change the height, schedule a resize check
909
- // Use both immediate and delayed checks to catch all scenarios
910
- requestAnimationFrame(() => {
911
- if (!this.isDestroyed) {
912
- this.autoResizeTextarea();
913
- }
914
- });
915
- setTimeout(() => {
916
- if (!this.isDestroyed) {
917
- this.autoResizeTextarea();
918
- }
919
- }, 10); // Small delay to ensure DOM is updated
920
- }
921
- }
922
-
923
- private handleFocus(): void {
924
- // Focus handler - could be used for future enhancements
925
- }
926
-
927
- private handleBlur(): void {
928
- // Commit on blur unless we're in composition mode
929
- if (!this.isComposing) {
930
- this.destroy(true);
931
- }
932
- }
933
-
934
- private handleCompositionStart(): void {
935
- this.isComposing = true;
936
- }
937
-
938
- private handleCompositionEnd(): void {
939
- this.isComposing = false;
940
- this.handleInput(); // Update text after composition
941
- }
942
-
943
- private handleAfterRender(): void {
944
- this.refresh();
945
- }
946
-
947
- private handleMouseWheel(): void {
948
- this.refresh();
949
- }
950
-
951
- private handleMouseDown(e: TPointerEventInfo): void {
952
- if (e.target !== this.target) {
953
- this.destroy(true);
954
- }
955
- }
956
-
957
- /**
958
- * Setup detection for viewport changes (zoom/pan)
959
- */
960
- private setupViewportChangeDetection(): void {
961
- // Store original methods
962
- (this.canvas as any).__originalSetZoom = this.canvas.setZoom;
963
- (this.canvas as any).__originalSetViewportTransform =
964
- this.canvas.setViewportTransform;
965
- (this.canvas as any).__overlayEditor = this;
966
-
967
- // Override setZoom to detect zoom changes
968
- const originalSetZoom = this.canvas.setZoom.bind(this.canvas);
969
- this.canvas.setZoom = (value: number) => {
970
- const result = originalSetZoom(value);
971
- if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {
972
- this.refresh();
973
- }
974
- return result;
975
- };
976
-
977
- // Override setViewportTransform to detect pan changes
978
- const originalSetViewportTransform = this.canvas.setViewportTransform.bind(
979
- this.canvas,
980
- );
981
- this.canvas.setViewportTransform = (vpt: TMat2D) => {
982
- const result = originalSetViewportTransform(vpt);
983
- if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {
984
- this.refresh();
985
- }
986
- return result;
987
- };
988
- }
989
-
990
- /**
991
- * Restore original viewport methods
992
- */
993
- private restoreViewportChangeDetection(): void {
994
- if ((this.canvas as any).__originalSetZoom) {
995
- this.canvas.setZoom = (this.canvas as any).__originalSetZoom;
996
- delete (this.canvas as any).__originalSetZoom;
997
- }
998
- if ((this.canvas as any).__originalSetViewportTransform) {
999
- this.canvas.setViewportTransform = (
1000
- this.canvas as any
1001
- ).__originalSetViewportTransform;
1002
- delete (this.canvas as any).__originalSetViewportTransform;
1003
- }
1004
- delete (this.canvas as any).__overlayEditor;
1005
- }
1006
- }
1007
-
1008
- /**
1009
- * Enter overlay text editing mode for a text object
1010
- */
1011
- export function enterTextOverlayEdit(
1012
- canvas: Canvas,
1013
- target: FabricText | IText | Textbox,
1014
- options?: {
1015
- onCommit?: (text: string) => void;
1016
- onCancel?: () => void;
1017
- },
1018
- ): OverlayEditor {
1019
- // If already in overlay editing, destroy existing editor first
1020
- if ((target as any).__overlayEditor) {
1021
- (target as any).__overlayEditor.destroy(false);
1022
- }
1023
-
1024
- // Store original opacity so we can restore it later
1025
- (target as any).__overlayOriginalOpacity = target.opacity;
1026
-
1027
- const editor = new OverlayEditor({
1028
- canvas,
1029
- target,
1030
- onCommit: options?.onCommit,
1031
- onCancel: options?.onCancel,
1032
- });
1033
-
1034
- // We no longer change fill, so no need to store it
1035
-
1036
- // Store reference on target for cleanup
1037
- (target as any).__overlayEditor = editor;
1038
-
1039
- return editor;
1040
- }
1041
-
1042
- /**
1043
- * Check if a text object is currently being edited with overlay editor
1044
- */
1045
- export function isInOverlayEdit(target: FabricText | IText | Textbox): boolean {
1046
- return !!(target as any).__overlayEditor?.isActive;
1047
- }
1
+ /**
2
+ * Canva/Polotno-style Overlay Text Editor
3
+ *
4
+ * Provides seamless inline text editing using an HTML textarea overlay
5
+ * that matches canvas text positioning, styling, and transformations.
6
+ */
7
+
8
+ import type { Canvas } from '../canvas/Canvas';
9
+ import type { FabricText } from '../shapes/Text/Text';
10
+ import type { IText } from '../shapes/IText/IText';
11
+ import type { Textbox } from '../shapes/Textbox';
12
+ import type { TPointerEventInfo } from '../EventTypeDefs';
13
+ import type { TMat2D } from '../typedefs';
14
+ import { transformPoint } from '../util/misc/matrix';
15
+
16
+ export interface OverlayEditorOptions {
17
+ canvas: Canvas;
18
+ target: FabricText | IText | Textbox;
19
+ onCommit?: (text: string) => void;
20
+ onCancel?: () => void;
21
+ }
22
+
23
+ export interface ScreenTransform {
24
+ translateX: number;
25
+ translateY: number;
26
+ scaleX: number;
27
+ scaleY: number;
28
+ angle: number; // in radians
29
+ }
30
+
31
+ export class OverlayEditor {
32
+ private canvas: Canvas;
33
+ private target: FabricText | IText | Textbox;
34
+ private container: HTMLElement;
35
+ private textarea: HTMLTextAreaElement;
36
+ private hostDiv: HTMLDivElement;
37
+ private isDestroyed = false;
38
+ private isComposing = false;
39
+ private lastText: string;
40
+ private onCommit?: (text: string) => void;
41
+ private onCancel?: () => void;
42
+
43
+ // Bound event handlers for cleanup
44
+ private boundHandlers = {
45
+ onInput: this.handleInput.bind(this),
46
+ onKeyDown: this.handleKeyDown.bind(this),
47
+ onBlur: this.handleBlur.bind(this),
48
+ onCompositionStart: this.handleCompositionStart.bind(this),
49
+ onCompositionEnd: this.handleCompositionEnd.bind(this),
50
+ onAfterRender: this.handleAfterRender.bind(this),
51
+ onMouseWheel: this.handleMouseWheel.bind(this),
52
+ onFocus: this.handleFocus.bind(this),
53
+ onMouseDown: this.handleMouseDown.bind(this),
54
+ };
55
+
56
+ constructor(options: OverlayEditorOptions) {
57
+ this.canvas = options.canvas;
58
+ this.target = options.target;
59
+ this.onCommit = options.onCommit;
60
+ this.onCancel = options.onCancel;
61
+ this.lastText = this.target.text || '';
62
+
63
+ this.container = this.getCanvasContainer();
64
+ this.createOverlayDOM();
65
+ this.attachEventListeners();
66
+ this.refresh();
67
+ this.focusTextarea();
68
+
69
+ // Note: Don't manage object cursors since IText manages all cursors in _saveEditingProps/_restoreEditingProps
70
+ // The IText editing system handles hoverCursor, moveCursor, and canvas cursors properly
71
+
72
+ // Note: Canvas cursors are handled by IText's _saveEditingProps/_restoreEditingProps
73
+ // We don't need to save/restore them here as it would conflict with IText's restoration
74
+ }
75
+
76
+ /**
77
+ * Get the container element for the overlay (parent of upperCanvasEl)
78
+ */
79
+ private getCanvasContainer(): HTMLElement {
80
+ const upperCanvas = this.canvas.upperCanvasEl;
81
+ const container = upperCanvas.parentElement;
82
+ if (!container) {
83
+ throw new Error('Canvas must be mounted in DOM to use overlay editing');
84
+ }
85
+
86
+ // Ensure the container is positioned for absolute overlay positioning
87
+ container.style.position = 'relative';
88
+
89
+ return container;
90
+ }
91
+
92
+ /**
93
+ * Create the overlay DOM structure
94
+ */
95
+ private createOverlayDOM(): void {
96
+ // Host div for positioning and overflow control
97
+ this.hostDiv = document.createElement('div');
98
+ this.hostDiv.style.position = 'absolute';
99
+ this.hostDiv.style.pointerEvents = 'none';
100
+ this.hostDiv.style.zIndex = '1000';
101
+ this.hostDiv.style.transformOrigin = 'left top';
102
+
103
+ // Textarea for actual text input
104
+ this.textarea = document.createElement('textarea');
105
+ this.textarea.style.position = 'absolute';
106
+ this.textarea.style.left = '0';
107
+ this.textarea.style.top = '0';
108
+ this.textarea.style.margin = '0';
109
+ this.textarea.style.resize = 'none';
110
+ this.textarea.style.pointerEvents = 'auto';
111
+ // Set appropriate unicodeBidi based on content and direction
112
+ const hasArabicText =
113
+ /[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(
114
+ this.target.text || '',
115
+ );
116
+ const hasLatinText = /[a-zA-Z]/.test(this.target.text || '');
117
+ const isLTRDirection = (this.target as any).direction === 'ltr';
118
+
119
+ if (hasArabicText && hasLatinText && isLTRDirection) {
120
+ // For mixed Arabic/Latin text in LTR mode, use embed for consistent line wrapping
121
+ this.textarea.style.unicodeBidi = 'embed';
122
+ } else if (hasArabicText && isLTRDirection) {
123
+ // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction
124
+ this.textarea.style.unicodeBidi = 'embed';
125
+ } else {
126
+ // Default to plaintext for natural text flow
127
+ this.textarea.style.unicodeBidi = 'plaintext';
128
+ }
129
+ this.textarea.style.caretColor = 'auto';
130
+
131
+ // Polotno-like base
132
+ this.textarea.style.border = 'none';
133
+ this.textarea.style.padding = '0';
134
+ this.textarea.style.background = 'transparent'; // Transparent so Fabric text shows through
135
+ this.textarea.style.outline = 'none';
136
+ this.textarea.style.overflow = 'hidden'; // Prevent scrollbars
137
+ this.textarea.style.whiteSpace = 'pre-wrap';
138
+ this.textarea.style.wordBreak = 'normal';
139
+ this.textarea.style.overflowWrap = 'break-word';
140
+ this.textarea.style.userSelect = 'text';
141
+ this.textarea.style.textTransform = 'none';
142
+
143
+ // Start visible - we'll handle transitions differently
144
+ this.textarea.style.opacity = '1';
145
+
146
+ // Set initial text
147
+ this.textarea.value = this.target.text || '';
148
+
149
+ this.hostDiv.appendChild(this.textarea);
150
+ document.body.appendChild(this.hostDiv);
151
+ }
152
+
153
+ /**
154
+ * Attach all event listeners
155
+ */
156
+ private attachEventListeners(): void {
157
+ // Textarea events
158
+ this.textarea.addEventListener('input', this.boundHandlers.onInput);
159
+ this.textarea.addEventListener('keydown', this.boundHandlers.onKeyDown);
160
+ this.textarea.addEventListener('blur', this.boundHandlers.onBlur);
161
+ this.textarea.addEventListener(
162
+ 'compositionstart',
163
+ this.boundHandlers.onCompositionStart,
164
+ );
165
+ this.textarea.addEventListener(
166
+ 'compositionend',
167
+ this.boundHandlers.onCompositionEnd,
168
+ );
169
+ this.textarea.addEventListener('focus', this.boundHandlers.onFocus);
170
+
171
+ // Canvas events for synchronization
172
+ this.canvas.on('after:render', this.boundHandlers.onAfterRender);
173
+ this.canvas.on('mouse:wheel', this.boundHandlers.onMouseWheel);
174
+ this.canvas.on('mouse:down', this.boundHandlers.onMouseDown);
175
+
176
+ // Store original methods to detect viewport changes
177
+ this.setupViewportChangeDetection();
178
+ }
179
+
180
+ /**
181
+ * Remove all event listeners
182
+ */
183
+ private removeEventListeners(): void {
184
+ this.textarea.removeEventListener('input', this.boundHandlers.onInput);
185
+ this.textarea.removeEventListener('keydown', this.boundHandlers.onKeyDown);
186
+ this.textarea.removeEventListener('blur', this.boundHandlers.onBlur);
187
+ this.textarea.removeEventListener(
188
+ 'compositionstart',
189
+ this.boundHandlers.onCompositionStart,
190
+ );
191
+ this.textarea.removeEventListener(
192
+ 'compositionend',
193
+ this.boundHandlers.onCompositionEnd,
194
+ );
195
+ this.textarea.removeEventListener('focus', this.boundHandlers.onFocus);
196
+
197
+ this.canvas.off('after:render', this.boundHandlers.onAfterRender);
198
+ this.canvas.off('mouse:wheel', this.boundHandlers.onMouseWheel);
199
+ this.canvas.off('mouse:down', this.boundHandlers.onMouseDown);
200
+
201
+ // Restore original methods
202
+ this.restoreViewportChangeDetection();
203
+ }
204
+
205
+ /**
206
+ * Simple method to refresh positioning when canvas changes
207
+ */
208
+ private updatePosition(): void {
209
+ this.applyOverlayStyle();
210
+ }
211
+
212
+ /**
213
+ * Update the Fabric object bounds to match current textarea size
214
+ * This ensures Fabric.js selection controls follow the growing textbox
215
+ */
216
+ private updateObjectBounds(): void {
217
+ if (this.isDestroyed) return;
218
+
219
+ const target = this.target;
220
+ const zoom = this.canvas.getZoom();
221
+
222
+ // Get current textbox dimensions from the host div (in canvas coordinates)
223
+ const currentWidth = parseFloat(this.hostDiv.style.width) / zoom;
224
+ const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;
225
+
226
+ // Always update height for responsive controls (especially important for line deletion)
227
+ const heightDiff = Math.abs(currentHeight - target.height);
228
+ const threshold = 0.5; // Lower threshold for better responsiveness to line changes
229
+
230
+ if (heightDiff > threshold) {
231
+ const oldHeight = target.height;
232
+ target.height = currentHeight;
233
+ target.setCoords(); // Update control positions
234
+
235
+ // Force dirty to ensure proper re-rendering
236
+ target.dirty = true;
237
+ this.canvas.requestRenderAll(); // Re-render to show updated selection
238
+
239
+ // IMPORTANT: Reposition overlay after height change
240
+ requestAnimationFrame(() => {
241
+ if (!this.isDestroyed) {
242
+ this.applyOverlayStyle();
243
+ console.log(
244
+ '📐 Height changed - rechecking alignment after repositioning:',
245
+ );
246
+ }
247
+ });
248
+ }
249
+ }
250
+
251
+ /**
252
+ * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
253
+ */
254
+ private letterSpacingPx(charSpacing: number, fontSize: number): number {
255
+ return (charSpacing / 1000) * fontSize;
256
+ }
257
+
258
+ /**
259
+ * Detect text direction using first strong directional character
260
+ */
261
+ private firstStrongDir(text: string): 'ltr' | 'rtl' {
262
+ // Hebrew: \u0590-\u05FF, Arabic: \u0600-\u06FF, \u0750-\u077F, \uFB50-\uFDFF, \uFE70-\uFEFF
263
+ const rtlRegex =
264
+ /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/;
265
+ return rtlRegex.test(text) ? 'rtl' : 'ltr';
266
+ }
267
+
268
+ private applyOverlayStyle(): void {
269
+ const target = this.target;
270
+ const canvas = this.canvas;
271
+
272
+ // 1. Freshen object's transformations - use aCoords like rtl-test.html
273
+ target.setCoords();
274
+ const aCoords = target.aCoords;
275
+
276
+ // 2. Get canvas position and scroll offsets (like rtl-test.html)
277
+ const canvasEl = canvas.upperCanvasEl;
278
+ const canvasRect = canvasEl.getBoundingClientRect();
279
+ const scrollX = window.scrollX || window.pageXOffset;
280
+ const scrollY = window.scrollY || window.pageYOffset;
281
+
282
+ // 3. Position and dimensions accounting for Fabric Textbox padding and viewport transform
283
+ const zoom = canvas.getZoom();
284
+ const vpt = canvas.viewportTransform;
285
+ const padding = (target as any).padding || 0;
286
+ const paddingX = padding * (target.scaleX || 1) * zoom;
287
+ const paddingY = padding * (target.scaleY || 1) * zoom;
288
+
289
+ // Transform object's top-left corner coordinates to screen coordinates using viewport transform
290
+ // aCoords.tl already accounts for object positioning and scaling, just need viewport transform
291
+ const screenPoint = transformPoint(
292
+ { x: aCoords.tl.x, y: aCoords.tl.y },
293
+ vpt,
294
+ );
295
+
296
+ const left = canvasRect.left + scrollX + screenPoint.x;
297
+ const top = canvasRect.top + scrollY + screenPoint.y;
298
+
299
+ // 4. Calculate the precise width and height for the container
300
+ // **THE FIX:** Use getBoundingRect() for BOTH width and height.
301
+ // This is the most reliable measure of the object's final rendered dimensions.
302
+ const objectBounds = target.getBoundingRect();
303
+ const width = Math.round(objectBounds.width * zoom);
304
+ const height = Math.round(objectBounds.height * zoom);
305
+
306
+ // 5. Apply styles to host DIV - absolute positioning like rtl-test.html
307
+ this.hostDiv.style.position = 'absolute';
308
+ this.hostDiv.style.left = `${left}px`;
309
+ this.hostDiv.style.top = `${top}px`;
310
+ this.hostDiv.style.width = `${width}px`;
311
+ this.hostDiv.style.height = `${height}px`;
312
+ this.hostDiv.style.overflow = 'hidden'; // Prevent scrollbars in host div
313
+ // Apply rotation matching Fabric.js object transformation
314
+ if (target.angle) {
315
+ this.hostDiv.style.transform = `rotate(${target.angle}deg)`;
316
+ this.hostDiv.style.transformOrigin = 'top left'; // Match Fabric Textbox behavior
317
+ } else {
318
+ this.hostDiv.style.transform = '';
319
+ this.hostDiv.style.transformOrigin = '';
320
+ }
321
+
322
+ // 6. Style the textarea - match Fabric's exact rendering with padding
323
+ const baseFontSize = target.fontSize ?? 16;
324
+ // Use scaleX for font scaling to match Fabric text scaling exactly
325
+ const scaleX = target.scaleX || 1;
326
+ const finalFontSize = baseFontSize * scaleX * zoom;
327
+ const fabricLineHeight = target.lineHeight || 1.16;
328
+ // **THE FIX:** Use 'border-box' so the width property includes padding.
329
+ // This makes alignment much easier and more reliable.
330
+ this.textarea.style.boxSizing = 'border-box';
331
+
332
+ // **THE FIX:** Set the textarea width to be IDENTICAL to the host div's width.
333
+ // The padding will now be correctly contained *inside* this width.
334
+ this.textarea.style.width = `${width}px`;
335
+ this.textarea.style.height = '100%'; // Let hostDiv control height
336
+ this.textarea.style.padding = `${paddingY}px ${paddingX}px`;
337
+
338
+ // Apply all other font and text styles to match Fabric
339
+ const letterSpacingPx = ((target.charSpacing || 0) / 1000) * finalFontSize;
340
+
341
+ // Special handling for text objects loaded from JSON - ensure they're properly initialized
342
+ if (target.dirty !== false && target.initDimensions) {
343
+ console.log('🔧 Ensuring text object is properly initialized before overlay editing');
344
+ // Force re-initialization if the text object seems to be in a dirty state
345
+ target.initDimensions();
346
+ }
347
+
348
+ this.textarea.style.fontSize = `${finalFontSize}px`;
349
+ this.textarea.style.lineHeight = String(fabricLineHeight);
350
+ this.textarea.style.fontFamily = target.fontFamily || 'Arial';
351
+ this.textarea.style.fontWeight = String(target.fontWeight || 'normal');
352
+ this.textarea.style.fontStyle = target.fontStyle || 'normal';
353
+ // Handle text alignment and justification
354
+ const textAlign = (target as any).textAlign || 'left';
355
+ let cssTextAlign = textAlign;
356
+
357
+ // Detect text direction from content for proper justify handling
358
+ const autoDetectedDirection = this.firstStrongDir(this.textarea.value || '');
359
+
360
+ // DEBUG: Log alignment details
361
+ console.log('🔍 ALIGNMENT DEBUG:');
362
+ console.log(' Fabric textAlign:', textAlign);
363
+ console.log(' Fabric direction:', (target as any).direction);
364
+ console.log(' Text content:', JSON.stringify(target.text));
365
+ console.log(' Detected direction:', autoDetectedDirection);
366
+
367
+ // Map fabric.js justify to CSS
368
+ if (textAlign.includes('justify')) {
369
+ // Try to match fabric.js justify behavior more precisely
370
+ try {
371
+ // For justify, we need to replicate fabric.js space expansion
372
+ // Use CSS justify but with specific settings to match fabric.js better
373
+ cssTextAlign = 'justify';
374
+
375
+ // Set text-align-last based on justify type and detected direction
376
+ // Smart justify: respect detected direction even when fabric alignment doesn't match
377
+ if (textAlign === 'justify') {
378
+ this.textarea.style.textAlignLast = autoDetectedDirection === 'rtl' ? 'right' : 'left';
379
+ } else if (textAlign === 'justify-left') {
380
+ // If text is RTL but fabric says justify-left, override to justify-right for better UX
381
+ if (autoDetectedDirection === 'rtl') {
382
+ this.textarea.style.textAlignLast = 'right';
383
+ console.log(' → Overrode justify-left to justify-right for RTL text');
384
+ } else {
385
+ this.textarea.style.textAlignLast = 'left';
386
+ }
387
+ } else if (textAlign === 'justify-right') {
388
+ // If text is LTR but fabric says justify-right, override to justify-left for better UX
389
+ if (autoDetectedDirection === 'ltr') {
390
+ this.textarea.style.textAlignLast = 'left';
391
+ console.log(' → Overrode justify-right to justify-left for LTR text');
392
+ } else {
393
+ this.textarea.style.textAlignLast = 'right';
394
+ }
395
+ } else if (textAlign === 'justify-center') {
396
+ this.textarea.style.textAlignLast = 'center';
397
+ }
398
+
399
+ // Enhanced justify settings for better fabric.js matching
400
+ (this.textarea.style as any).textJustify = 'inter-word';
401
+ (this.textarea.style as any).wordSpacing = 'normal';
402
+
403
+ // Additional CSS properties for better justify matching
404
+ this.textarea.style.textAlign = 'justify';
405
+ this.textarea.style.textAlignLast = this.textarea.style.textAlignLast;
406
+
407
+ // Try to force better justify behavior
408
+ (this.textarea.style as any).textJustifyTrim = 'none';
409
+ (this.textarea.style as any).textAutospace = 'none';
410
+
411
+ console.log(' → Applied justify alignment:', textAlign, 'with last-line:', this.textarea.style.textAlignLast);
412
+ } catch (error) {
413
+ console.warn(' → Justify setup failed, falling back to standard alignment:', error);
414
+ cssTextAlign = textAlign.replace('justify-', '').replace('justify', 'left');
415
+ }
416
+ } else {
417
+ this.textarea.style.textAlignLast = 'auto';
418
+ (this.textarea.style as any).textJustify = 'auto';
419
+ (this.textarea.style as any).wordSpacing = 'normal';
420
+ console.log(' → Applied standard alignment:', cssTextAlign);
421
+ }
422
+
423
+ this.textarea.style.textAlign = cssTextAlign;
424
+ this.textarea.style.color = target.fill?.toString() || '#000';
425
+ this.textarea.style.letterSpacing = `${letterSpacingPx}px`;
426
+
427
+ // Use the already detected direction from above
428
+ const fabricDirection = (target as any).direction;
429
+
430
+ // Use auto-detected direction for better BiDi support, but respect fabric direction if it makes sense
431
+ this.textarea.style.direction = autoDetectedDirection || fabricDirection || 'ltr';
432
+ this.textarea.style.fontVariant = 'normal';
433
+ this.textarea.style.fontStretch = 'normal';
434
+ this.textarea.style.textRendering = 'auto'; // Changed from 'optimizeLegibility' to match canvas
435
+ this.textarea.style.fontKerning = 'normal';
436
+ this.textarea.style.fontFeatureSettings = 'normal';
437
+ this.textarea.style.fontVariationSettings = 'normal';
438
+ this.textarea.style.margin = '0';
439
+ this.textarea.style.border = 'none';
440
+ this.textarea.style.outline = 'none';
441
+ this.textarea.style.background = 'transparent';
442
+ this.textarea.style.overflowWrap = 'break-word';
443
+ this.textarea.style.whiteSpace = 'pre-wrap';
444
+ this.textarea.style.hyphens = 'none';
445
+
446
+ // DEBUG: Log final CSS properties
447
+ console.log('🎨 FINAL TEXTAREA CSS:');
448
+ console.log(' textAlign:', this.textarea.style.textAlign);
449
+ console.log(' textAlignLast:', this.textarea.style.textAlignLast);
450
+ console.log(' direction:', this.textarea.style.direction);
451
+ console.log(' unicodeBidi:', this.textarea.style.unicodeBidi);
452
+ console.log(' width:', this.textarea.style.width);
453
+ console.log(' textJustify:', (this.textarea.style as any).textJustify);
454
+ console.log(' wordSpacing:', (this.textarea.style as any).wordSpacing);
455
+ console.log(' whiteSpace:', this.textarea.style.whiteSpace);
456
+
457
+ // If justify, log Fabric object dimensions for comparison
458
+ if (textAlign.includes('justify')) {
459
+ console.log('🔧 FABRIC OBJECT JUSTIFY INFO:');
460
+ console.log(' Fabric width:', (target as any).width);
461
+ console.log(' Fabric calcTextWidth:', (target as any).calcTextWidth?.());
462
+ console.log(' Fabric textAlign:', (target as any).textAlign);
463
+ console.log(' Text lines:', (target as any).textLines);
464
+ }
465
+
466
+ // Debug font properties matching
467
+ console.log('🔤 FONT PROPERTIES COMPARISON:');
468
+ console.log(' Fabric fontFamily:', target.fontFamily);
469
+ console.log(' Fabric fontWeight:', target.fontWeight);
470
+ console.log(' Fabric fontStyle:', target.fontStyle);
471
+ console.log(' Fabric fontSize:', target.fontSize);
472
+ console.log(' → Textarea fontFamily:', this.textarea.style.fontFamily);
473
+ console.log(' → Textarea fontWeight:', this.textarea.style.fontWeight);
474
+ console.log(' → Textarea fontStyle:', this.textarea.style.fontStyle);
475
+ console.log(' → Textarea fontSize:', this.textarea.style.fontSize);
476
+
477
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
478
+
479
+ // Enhanced font rendering to better match fabric.js canvas rendering
480
+ // Default to auto for more natural rendering
481
+ (this.textarea.style as any).webkitFontSmoothing = 'auto';
482
+ (this.textarea.style as any).mozOsxFontSmoothing = 'auto';
483
+ (this.textarea.style as any).fontSmooth = 'auto';
484
+ (this.textarea.style as any).textSizeAdjust = 'none';
485
+
486
+ // For bold fonts, use subpixel rendering to match canvas thickness better
487
+ const fontWeight = String(target.fontWeight || 'normal');
488
+ const isBold = fontWeight === 'bold' || fontWeight === '700' ||
489
+ (parseInt(fontWeight) >= 600);
490
+
491
+ if (isBold) {
492
+ (this.textarea.style as any).webkitFontSmoothing = 'subpixel-antialiased';
493
+ (this.textarea.style as any).mozOsxFontSmoothing = 'unset';
494
+ console.log('🔤 Applied enhanced bold rendering for better thickness matching');
495
+ }
496
+
497
+ console.log('🎨 FONT SMOOTHING APPLIED:');
498
+ console.log(' webkitFontSmoothing:', (this.textarea.style as any).webkitFontSmoothing);
499
+ console.log(' mozOsxFontSmoothing:', (this.textarea.style as any).mozOsxFontSmoothing);
500
+
501
+
502
+ // Initial bounds are set correctly by Fabric.js - don't force update here
503
+ }
504
+
505
+ /**
506
+ * Debug method to compare textarea and canvas object bounding boxes
507
+ */
508
+ private debugBoundingBoxComparison(): void {
509
+ const target = this.target;
510
+ const canvas = this.canvas;
511
+ const zoom = canvas.getZoom();
512
+
513
+ // Get textarea bounding box (in screen coordinates)
514
+ const textareaRect = this.textarea.getBoundingClientRect();
515
+ const hostRect = this.hostDiv.getBoundingClientRect();
516
+
517
+ // Get canvas object bounding box (in screen coordinates)
518
+ const canvasBounds = target.getBoundingRect();
519
+ const canvasRect = canvas.upperCanvasEl.getBoundingClientRect();
520
+
521
+ // Convert canvas object bounds to screen coordinates
522
+ const vpt = canvas.viewportTransform;
523
+ const screenObjectBounds = {
524
+ left: canvasRect.left + canvasBounds.left * zoom + vpt[4],
525
+ top: canvasRect.top + canvasBounds.top * zoom + vpt[5],
526
+ width: canvasBounds.width * zoom,
527
+ height: canvasBounds.height * zoom,
528
+ };
529
+
530
+ console.log('🔍 BOUNDING BOX COMPARISON:');
531
+ console.log('📦 Textarea Rect:', {
532
+ left: Math.round(textareaRect.left * 100) / 100,
533
+ top: Math.round(textareaRect.top * 100) / 100,
534
+ width: Math.round(textareaRect.width * 100) / 100,
535
+ height: Math.round(textareaRect.height * 100) / 100,
536
+ });
537
+ console.log('📦 Host Div Rect:', {
538
+ left: Math.round(hostRect.left * 100) / 100,
539
+ top: Math.round(hostRect.top * 100) / 100,
540
+ width: Math.round(hostRect.width * 100) / 100,
541
+ height: Math.round(hostRect.height * 100) / 100,
542
+ });
543
+ console.log('📦 Canvas Object Bounds (screen):', {
544
+ left: Math.round(screenObjectBounds.left * 100) / 100,
545
+ top: Math.round(screenObjectBounds.top * 100) / 100,
546
+ width: Math.round(screenObjectBounds.width * 100) / 100,
547
+ height: Math.round(screenObjectBounds.height * 100) / 100,
548
+ });
549
+ console.log('📦 Canvas Object Bounds (canvas):', canvasBounds);
550
+
551
+ // Calculate differences
552
+ const hostVsObject = {
553
+ leftDiff:
554
+ Math.round((hostRect.left - screenObjectBounds.left) * 100) / 100,
555
+ topDiff: Math.round((hostRect.top - screenObjectBounds.top) * 100) / 100,
556
+ widthDiff:
557
+ Math.round((hostRect.width - screenObjectBounds.width) * 100) / 100,
558
+ heightDiff:
559
+ Math.round((hostRect.height - screenObjectBounds.height) * 100) / 100,
560
+ };
561
+
562
+ const textareaVsObject = {
563
+ leftDiff:
564
+ Math.round((textareaRect.left - screenObjectBounds.left) * 100) / 100,
565
+ topDiff:
566
+ Math.round((textareaRect.top - screenObjectBounds.top) * 100) / 100,
567
+ widthDiff:
568
+ Math.round((textareaRect.width - screenObjectBounds.width) * 100) / 100,
569
+ heightDiff:
570
+ Math.round((textareaRect.height - screenObjectBounds.height) * 100) /
571
+ 100,
572
+ };
573
+
574
+ console.log('📏 Host Div vs Canvas Object Diff:', hostVsObject);
575
+ console.log('📏 Textarea vs Canvas Object Diff:', textareaVsObject);
576
+
577
+ // Check if they're aligned (within 2px tolerance)
578
+ const tolerance = 2;
579
+ const hostAligned =
580
+ Math.abs(hostVsObject.leftDiff) < tolerance &&
581
+ Math.abs(hostVsObject.topDiff) < tolerance &&
582
+ Math.abs(hostVsObject.widthDiff) < tolerance &&
583
+ Math.abs(hostVsObject.heightDiff) < tolerance;
584
+
585
+ const textareaAligned =
586
+ Math.abs(textareaVsObject.leftDiff) < tolerance &&
587
+ Math.abs(textareaVsObject.topDiff) < tolerance &&
588
+ Math.abs(textareaVsObject.widthDiff) < tolerance &&
589
+ Math.abs(textareaVsObject.heightDiff) < tolerance;
590
+
591
+ console.log(
592
+ hostAligned
593
+ ? '✅ Host Div ALIGNED with canvas object'
594
+ : '❌ Host Div MISALIGNED with canvas object',
595
+ );
596
+ console.log(
597
+ textareaAligned
598
+ ? '✅ Textarea ALIGNED with canvas object'
599
+ : '❌ Textarea MISALIGNED with canvas object',
600
+ );
601
+ console.log('🔍 Zoom:', zoom, 'Viewport Transform:', vpt);
602
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
603
+ }
604
+
605
+ /**
606
+ * Debug method to compare text wrapping between textarea and Fabric text object
607
+ */
608
+ private debugTextWrapping(): void {
609
+ const target = this.target;
610
+ const text = this.textarea.value;
611
+
612
+ console.log('📝 TEXT WRAPPING COMPARISON:');
613
+ console.log('📄 Text Content:', `"${text}"`);
614
+ console.log('📄 Text Length:', text.length);
615
+
616
+ // Analyze line breaks
617
+ const explicitLines = text.split('\n');
618
+ console.log('📄 Explicit Lines (\\n):', explicitLines.length);
619
+ explicitLines.forEach((line, i) => {
620
+ console.log(` Line ${i + 1}: "${line}" (${line.length} chars)`);
621
+ });
622
+
623
+ // Get textarea computed styles for wrapping analysis
624
+ const textareaStyles = window.getComputedStyle(this.textarea);
625
+ console.log('📐 Textarea Wrapping Styles:');
626
+ console.log(' width:', textareaStyles.width);
627
+ console.log(' fontSize:', textareaStyles.fontSize);
628
+ console.log(' fontFamily:', textareaStyles.fontFamily);
629
+ console.log(' fontWeight:', textareaStyles.fontWeight);
630
+ console.log(' letterSpacing:', textareaStyles.letterSpacing);
631
+ console.log(' lineHeight:', textareaStyles.lineHeight);
632
+ console.log(' whiteSpace:', textareaStyles.whiteSpace);
633
+ console.log(' wordWrap:', textareaStyles.wordWrap);
634
+ console.log(' overflowWrap:', textareaStyles.overflowWrap);
635
+ console.log(' direction:', textareaStyles.direction);
636
+ console.log(' textAlign:', textareaStyles.textAlign);
637
+
638
+ // Get Fabric text object properties for comparison
639
+ console.log('📐 Fabric Text Object Properties:');
640
+ console.log(' width:', (target as any).width);
641
+ console.log(' fontSize:', target.fontSize);
642
+ console.log(' fontFamily:', target.fontFamily);
643
+ console.log(' fontWeight:', target.fontWeight);
644
+ console.log(' charSpacing:', target.charSpacing);
645
+ console.log(' lineHeight:', target.lineHeight);
646
+ console.log(' direction:', (target as any).direction);
647
+ console.log(' textAlign:', (target as any).textAlign);
648
+ console.log(' scaleX:', target.scaleX);
649
+ console.log(' scaleY:', target.scaleY);
650
+
651
+ // Calculate effective dimensions for comparison - use actual rendered width
652
+ // **THE FIX:** Use getBoundingRect to get the *actual rendered width* of the Fabric object.
653
+ const fabricEffectiveWidth = this.target.getBoundingRect().width;
654
+ // Use the exact width set on textarea for comparison
655
+ const textareaComputedWidth = parseFloat(
656
+ window.getComputedStyle(this.textarea).width,
657
+ );
658
+ const textareaEffectiveWidth =
659
+ textareaComputedWidth / this.canvas.getZoom();
660
+ const widthDiff = Math.abs(textareaEffectiveWidth - fabricEffectiveWidth);
661
+
662
+ console.log('📏 Effective Width Comparison:');
663
+ console.log(' Textarea Effective Width:', textareaEffectiveWidth);
664
+ console.log(' Fabric Effective Width:', fabricEffectiveWidth);
665
+ console.log(' Width Difference:', widthDiff.toFixed(2) + 'px');
666
+ console.log(
667
+ widthDiff < 1
668
+ ? '✅ Widths MATCH for wrapping'
669
+ : '❌ Width MISMATCH may cause different wrapping',
670
+ );
671
+
672
+ // Check text direction and bidi handling
673
+ const hasRTLText =
674
+ /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(
675
+ text,
676
+ );
677
+ const hasBidiText = /[\u0590-\u06FF]/.test(text) && /[a-zA-Z]/.test(text);
678
+
679
+ console.log('🌍 Text Direction Analysis:');
680
+ console.log(' Has RTL characters:', hasRTLText);
681
+ console.log(' Has mixed Bidi text:', hasBidiText);
682
+ console.log(' Textarea direction:', textareaStyles.direction);
683
+ console.log(' Fabric direction:', (target as any).direction || 'auto');
684
+ console.log(' Textarea unicodeBidi:', textareaStyles.unicodeBidi);
685
+
686
+ // Measure actual rendered line count
687
+ const textareaScrollHeight = this.textarea.scrollHeight;
688
+ const textareaLineHeight =
689
+ parseFloat(textareaStyles.lineHeight) ||
690
+ parseFloat(textareaStyles.fontSize) * 1.2;
691
+ const estimatedTextareaLines = Math.round(
692
+ textareaScrollHeight / textareaLineHeight,
693
+ );
694
+
695
+ console.log('📊 Line Count Analysis:');
696
+ console.log(' Textarea scrollHeight:', textareaScrollHeight);
697
+ console.log(' Textarea lineHeight:', textareaLineHeight);
698
+ console.log(' Estimated rendered lines:', estimatedTextareaLines);
699
+ console.log(' Explicit line breaks:', explicitLines.length);
700
+
701
+ if (estimatedTextareaLines > explicitLines.length) {
702
+ console.log('🔄 Text wrapping detected in textarea');
703
+ console.log(
704
+ ' Wrapped lines:',
705
+ estimatedTextareaLines - explicitLines.length,
706
+ );
707
+ } else {
708
+ console.log('📏 No text wrapping in textarea');
709
+ }
710
+
711
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
712
+ }
713
+
714
+
715
+ /**
716
+ * Focus the textarea and position cursor at end
717
+ */
718
+ private focusTextarea(): void {
719
+ // For overlay editing, we want to keep the object in "selection mode" not "editing mode"
720
+ // This means keeping selected=true and isEditing=false to show boundaries
721
+
722
+ // Hide the text content only (not the entire object)
723
+ this.target.opacity = 0.01; // Nearly transparent but not fully hidden
724
+
725
+ // Ensure object stays selected to show boundaries
726
+ (this.target as any).selected = true;
727
+ (this.target as any).isEditing = false; // Override any editing state
728
+
729
+ // Make sure controls are enabled and movement is allowed during overlay editing
730
+ this.target.set({
731
+ hasControls: true,
732
+ hasBorders: true,
733
+ selectable: true,
734
+ lockMovementX: false,
735
+ lockMovementY: false,
736
+ });
737
+
738
+ // Keep as active object
739
+ this.canvas.setActiveObject(this.target);
740
+
741
+ this.canvas.requestRenderAll();
742
+ this.target.setCoords();
743
+ this.applyOverlayStyle();
744
+
745
+ // Fix character mapping issues after JSON loading for browser-wrapped fonts
746
+ if ((this.target as any)._fixCharacterMappingAfterJsonLoad) {
747
+ (this.target as any)._fixCharacterMappingAfterJsonLoad();
748
+ }
749
+
750
+ this.textarea.focus();
751
+
752
+ this.textarea.setSelectionRange(
753
+ this.textarea.value.length,
754
+ this.textarea.value.length,
755
+ );
756
+
757
+ // Ensure the object stays selected even after textarea focus
758
+ this.canvas.setActiveObject(this.target);
759
+ this.canvas.requestRenderAll();
760
+ }
761
+
762
+ /**
763
+ * Refresh overlay positioning and styling
764
+ */
765
+ public refresh(): void {
766
+ if (this.isDestroyed) return;
767
+ this.updatePosition();
768
+ // Don't update object bounds on every refresh - only when textarea actually resizes
769
+ }
770
+
771
+ /**
772
+ * Destroy the overlay editor
773
+ */
774
+ public destroy(commit: boolean = true): void {
775
+ if (this.isDestroyed) return;
776
+ this.isDestroyed = true;
777
+
778
+ this.removeEventListeners();
779
+
780
+ // Restore target visibility before handling commit/cancel
781
+ if ((this.target as any).__overlayEditor === this) {
782
+ (this.target as any).__overlayEditor = undefined;
783
+
784
+ // Restore original opacity
785
+ if ((this.target as any).__overlayOriginalOpacity !== undefined) {
786
+ this.target.opacity = (this.target as any).__overlayOriginalOpacity;
787
+ delete (this.target as any).__overlayOriginalOpacity;
788
+ }
789
+ }
790
+
791
+ // Remove DOM first
792
+ if (this.hostDiv.parentNode) {
793
+ this.hostDiv.parentNode.removeChild(this.hostDiv);
794
+ }
795
+
796
+ // Handle commit/cancel after restoring visibility
797
+ if (commit && !this.isComposing) {
798
+ const finalText = this.textarea.value;
799
+
800
+ // Auto-detect text direction and update fabric object if needed
801
+ const detectedDirection = this.firstStrongDir(finalText);
802
+ const currentDirection = (this.target as any).direction || 'ltr';
803
+
804
+ if (detectedDirection && detectedDirection !== currentDirection) {
805
+ console.log(`🔄 Overlay Exit: Auto-detected direction change from "${currentDirection}" to "${detectedDirection}"`);
806
+ console.log(` Text content: "${finalText.substring(0, 50)}..."`);
807
+
808
+ // Update the fabric object's direction
809
+ (this.target as any).set('direction', detectedDirection);
810
+
811
+ // Force a re-render to apply the direction change
812
+ this.canvas.requestRenderAll();
813
+
814
+ console.log(`✅ Fabric object direction updated to: ${detectedDirection}`);
815
+ } else {
816
+ console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: "${finalText.substring(0, 30)}..."`);
817
+ }
818
+
819
+ if (this.onCommit) {
820
+ this.onCommit(finalText);
821
+ }
822
+ } else if (!commit && this.onCancel) {
823
+ this.onCancel();
824
+ }
825
+
826
+ // Note: Don't restore object cursors since IText manages all cursors in _restoreEditingProps
827
+ // Let the IText editing system handle proper restoration of all cursor properties
828
+
829
+ // Note: Canvas cursors are restored by IText's _restoreEditingProps method
830
+ // Force a cursor refresh by triggering _setCursorFromEvent
831
+ setTimeout(() => {
832
+ this.canvas.upperCanvasEl.style.cursor = '';
833
+ // Trigger cursor refresh on next mouse move
834
+ this.canvas.setCursor(this.canvas.defaultCursor);
835
+ }, 0);
836
+
837
+ // Request canvas re-render
838
+ this.canvas.requestRenderAll();
839
+ }
840
+
841
+ // Event handlers
842
+ private handleInput(): void {
843
+ if (!this.isComposing && this.target.text !== this.textarea.value) {
844
+ // Live update target text
845
+ this.target.text = this.textarea.value;
846
+
847
+
848
+ // Auto-resize textarea to match new content
849
+ this.autoResizeTextarea();
850
+
851
+ // Ensure object stays in selection mode (not editing mode) to show controls
852
+ (this.target as any).selected = true;
853
+ (this.target as any).isEditing = false;
854
+ this.canvas.setActiveObject(this.target);
855
+ this.canvas.requestRenderAll();
856
+ }
857
+ }
858
+
859
+ private autoResizeTextarea(): void {
860
+ // Store the scroll position and the container's old height for comparison.
861
+ const scrollTop = this.textarea.scrollTop;
862
+ const oldHeight = parseFloat(this.hostDiv.style.height || '0');
863
+
864
+ // 1. **Force a reliable reflow.**
865
+ // First, reset the textarea's height to a minimal value. This is the crucial step
866
+ // that forces the browser to recalculate the content's height from scratch,
867
+ // ignoring the hostDiv's larger, stale height.
868
+ this.textarea.style.height = '1px';
869
+
870
+ // 2. Read the now-accurate scrollHeight. This value reflects the minimum
871
+ // height required for the content, whether it's single or multi-line.
872
+ const scrollHeight = this.textarea.scrollHeight;
873
+
874
+ // A small buffer for rendering consistency across browsers.
875
+ const buffer = 2;
876
+ const newHeight = scrollHeight + buffer;
877
+
878
+ // Check if the height has changed significantly.
879
+ const heightChanged = Math.abs(newHeight - oldHeight) > 1;
880
+
881
+ // 4. Only update heights and object bounds if there was a change.
882
+ if (heightChanged) {
883
+ this.textarea.style.height = `${newHeight}px`;
884
+ this.hostDiv.style.height = `${newHeight}px`;
885
+ this.updateObjectBounds();
886
+ } else {
887
+ // If no significant change, ensure the textarea's height matches the container
888
+ // to prevent any minor visual misalignment.
889
+ this.textarea.style.height = this.hostDiv.style.height;
890
+ }
891
+
892
+ // 5. Restore the original scroll position.
893
+ this.textarea.scrollTop = scrollTop;
894
+ }
895
+
896
+ private handleKeyDown(e: KeyboardEvent): void {
897
+ if (e.key === 'Escape') {
898
+ e.preventDefault();
899
+ this.destroy(false); // Cancel
900
+ } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {
901
+ e.preventDefault();
902
+ this.destroy(true); // Commit
903
+ } else if (
904
+ e.key === 'Enter' ||
905
+ e.key === 'Backspace' ||
906
+ e.key === 'Delete'
907
+ ) {
908
+ // For keys that might change the height, schedule a resize check
909
+ // Use both immediate and delayed checks to catch all scenarios
910
+ requestAnimationFrame(() => {
911
+ if (!this.isDestroyed) {
912
+ this.autoResizeTextarea();
913
+ }
914
+ });
915
+ setTimeout(() => {
916
+ if (!this.isDestroyed) {
917
+ this.autoResizeTextarea();
918
+ }
919
+ }, 10); // Small delay to ensure DOM is updated
920
+ }
921
+ }
922
+
923
+ private handleFocus(): void {
924
+ // Focus handler - could be used for future enhancements
925
+ }
926
+
927
+ private handleBlur(): void {
928
+ // Commit on blur unless we're in composition mode
929
+ if (!this.isComposing) {
930
+ this.destroy(true);
931
+ }
932
+ }
933
+
934
+ private handleCompositionStart(): void {
935
+ this.isComposing = true;
936
+ }
937
+
938
+ private handleCompositionEnd(): void {
939
+ this.isComposing = false;
940
+ this.handleInput(); // Update text after composition
941
+ }
942
+
943
+ private handleAfterRender(): void {
944
+ this.refresh();
945
+ }
946
+
947
+ private handleMouseWheel(): void {
948
+ this.refresh();
949
+ }
950
+
951
+ private handleMouseDown(e: TPointerEventInfo): void {
952
+ if (e.target !== this.target) {
953
+ this.destroy(true);
954
+ }
955
+ }
956
+
957
+ /**
958
+ * Setup detection for viewport changes (zoom/pan)
959
+ */
960
+ private setupViewportChangeDetection(): void {
961
+ // Store original methods
962
+ (this.canvas as any).__originalSetZoom = this.canvas.setZoom;
963
+ (this.canvas as any).__originalSetViewportTransform =
964
+ this.canvas.setViewportTransform;
965
+ (this.canvas as any).__overlayEditor = this;
966
+
967
+ // Override setZoom to detect zoom changes
968
+ const originalSetZoom = this.canvas.setZoom.bind(this.canvas);
969
+ this.canvas.setZoom = (value: number) => {
970
+ const result = originalSetZoom(value);
971
+ if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {
972
+ this.refresh();
973
+ }
974
+ return result;
975
+ };
976
+
977
+ // Override setViewportTransform to detect pan changes
978
+ const originalSetViewportTransform = this.canvas.setViewportTransform.bind(
979
+ this.canvas,
980
+ );
981
+ this.canvas.setViewportTransform = (vpt: TMat2D) => {
982
+ const result = originalSetViewportTransform(vpt);
983
+ if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {
984
+ this.refresh();
985
+ }
986
+ return result;
987
+ };
988
+ }
989
+
990
+ /**
991
+ * Restore original viewport methods
992
+ */
993
+ private restoreViewportChangeDetection(): void {
994
+ if ((this.canvas as any).__originalSetZoom) {
995
+ this.canvas.setZoom = (this.canvas as any).__originalSetZoom;
996
+ delete (this.canvas as any).__originalSetZoom;
997
+ }
998
+ if ((this.canvas as any).__originalSetViewportTransform) {
999
+ this.canvas.setViewportTransform = (
1000
+ this.canvas as any
1001
+ ).__originalSetViewportTransform;
1002
+ delete (this.canvas as any).__originalSetViewportTransform;
1003
+ }
1004
+ delete (this.canvas as any).__overlayEditor;
1005
+ }
1006
+ }
1007
+
1008
+ /**
1009
+ * Enter overlay text editing mode for a text object
1010
+ */
1011
+ export function enterTextOverlayEdit(
1012
+ canvas: Canvas,
1013
+ target: FabricText | IText | Textbox,
1014
+ options?: {
1015
+ onCommit?: (text: string) => void;
1016
+ onCancel?: () => void;
1017
+ },
1018
+ ): OverlayEditor {
1019
+ // If already in overlay editing, destroy existing editor first
1020
+ if ((target as any).__overlayEditor) {
1021
+ (target as any).__overlayEditor.destroy(false);
1022
+ }
1023
+
1024
+ // Store original opacity so we can restore it later
1025
+ (target as any).__overlayOriginalOpacity = target.opacity;
1026
+
1027
+ const editor = new OverlayEditor({
1028
+ canvas,
1029
+ target,
1030
+ onCommit: options?.onCommit,
1031
+ onCancel: options?.onCancel,
1032
+ });
1033
+
1034
+ // We no longer change fill, so no need to store it
1035
+
1036
+ // Store reference on target for cleanup
1037
+ (target as any).__overlayEditor = editor;
1038
+
1039
+ return editor;
1040
+ }
1041
+
1042
+ /**
1043
+ * Check if a text object is currently being edited with overlay editor
1044
+ */
1045
+ export function isInOverlayEdit(target: FabricText | IText | Textbox): boolean {
1046
+ return !!(target as any).__overlayEditor?.isActive;
1047
+ }