@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 +1 @@
1
- {"version":3,"file":"overlayEditor.mjs","sources":["../../../src/text/overlayEditor.ts"],"sourcesContent":["/**\n * Canva/Polotno-style Overlay Text Editor\n *\n * Provides seamless inline text editing using an HTML textarea overlay\n * that matches canvas text positioning, styling, and transformations.\n */\n\nimport type { Canvas } from '../canvas/Canvas';\nimport type { FabricText } from '../shapes/Text/Text';\nimport type { IText } from '../shapes/IText/IText';\nimport type { Textbox } from '../shapes/Textbox';\nimport type { TPointerEventInfo } from '../EventTypeDefs';\nimport type { TMat2D } from '../typedefs';\nimport { transformPoint } from '../util/misc/matrix';\n\nexport interface OverlayEditorOptions {\n canvas: Canvas;\n target: FabricText | IText | Textbox;\n onCommit?: (text: string) => void;\n onCancel?: () => void;\n}\n\nexport interface ScreenTransform {\n translateX: number;\n translateY: number;\n scaleX: number;\n scaleY: number;\n angle: number; // in radians\n}\n\nexport class OverlayEditor {\n private canvas: Canvas;\n private target: FabricText | IText | Textbox;\n private container: HTMLElement;\n private textarea: HTMLTextAreaElement;\n private hostDiv: HTMLDivElement;\n private isDestroyed = false;\n private isComposing = false;\n private lastText: string;\n private onCommit?: (text: string) => void;\n private onCancel?: () => void;\n\n // Bound event handlers for cleanup\n private boundHandlers = {\n onInput: this.handleInput.bind(this),\n onKeyDown: this.handleKeyDown.bind(this),\n onBlur: this.handleBlur.bind(this),\n onCompositionStart: this.handleCompositionStart.bind(this),\n onCompositionEnd: this.handleCompositionEnd.bind(this),\n onAfterRender: this.handleAfterRender.bind(this),\n onMouseWheel: this.handleMouseWheel.bind(this),\n onFocus: this.handleFocus.bind(this),\n onMouseDown: this.handleMouseDown.bind(this),\n };\n\n constructor(options: OverlayEditorOptions) {\n this.canvas = options.canvas;\n this.target = options.target;\n this.onCommit = options.onCommit;\n this.onCancel = options.onCancel;\n this.lastText = this.target.text || '';\n\n this.container = this.getCanvasContainer();\n this.createOverlayDOM();\n this.attachEventListeners();\n this.refresh();\n this.focusTextarea();\n\n // Note: Don't manage object cursors since IText manages all cursors in _saveEditingProps/_restoreEditingProps\n // The IText editing system handles hoverCursor, moveCursor, and canvas cursors properly\n\n // Note: Canvas cursors are handled by IText's _saveEditingProps/_restoreEditingProps\n // We don't need to save/restore them here as it would conflict with IText's restoration\n }\n\n /**\n * Get the container element for the overlay (parent of upperCanvasEl)\n */\n private getCanvasContainer(): HTMLElement {\n const upperCanvas = this.canvas.upperCanvasEl;\n const container = upperCanvas.parentElement;\n if (!container) {\n throw new Error('Canvas must be mounted in DOM to use overlay editing');\n }\n\n // Ensure the container is positioned for absolute overlay positioning\n container.style.position = 'relative';\n\n return container;\n }\n\n /**\n * Create the overlay DOM structure\n */\n private createOverlayDOM(): void {\n // Host div for positioning and overflow control\n this.hostDiv = document.createElement('div');\n this.hostDiv.style.position = 'absolute';\n this.hostDiv.style.pointerEvents = 'none';\n this.hostDiv.style.zIndex = '1000';\n this.hostDiv.style.transformOrigin = 'left top';\n\n // Textarea for actual text input\n this.textarea = document.createElement('textarea');\n this.textarea.style.position = 'absolute';\n this.textarea.style.left = '0';\n this.textarea.style.top = '0';\n this.textarea.style.margin = '0';\n this.textarea.style.resize = 'none';\n this.textarea.style.pointerEvents = 'auto';\n // Set appropriate unicodeBidi based on content and direction\n const hasArabicText =\n /[\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/.test(\n this.target.text || '',\n );\n const hasLatinText = /[a-zA-Z]/.test(this.target.text || '');\n const isLTRDirection = (this.target as any).direction === 'ltr';\n\n if (hasArabicText && hasLatinText && isLTRDirection) {\n // For mixed Arabic/Latin text in LTR mode, use embed for consistent line wrapping\n this.textarea.style.unicodeBidi = 'embed';\n } else if (hasArabicText && isLTRDirection) {\n // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction\n this.textarea.style.unicodeBidi = 'embed';\n } else {\n // Default to plaintext for natural text flow\n this.textarea.style.unicodeBidi = 'plaintext';\n }\n this.textarea.style.caretColor = 'auto';\n\n // Polotno-like base\n this.textarea.style.border = 'none';\n this.textarea.style.padding = '0';\n this.textarea.style.background = 'transparent'; // Transparent so Fabric text shows through\n this.textarea.style.outline = 'none';\n this.textarea.style.overflow = 'hidden'; // Prevent scrollbars\n this.textarea.style.whiteSpace = 'pre-wrap';\n this.textarea.style.wordBreak = 'normal';\n this.textarea.style.overflowWrap = 'break-word';\n this.textarea.style.userSelect = 'text';\n this.textarea.style.textTransform = 'none';\n\n // Start visible - we'll handle transitions differently\n this.textarea.style.opacity = '1';\n\n // Set initial text\n this.textarea.value = this.target.text || '';\n\n this.hostDiv.appendChild(this.textarea);\n document.body.appendChild(this.hostDiv);\n }\n\n /**\n * Attach all event listeners\n */\n private attachEventListeners(): void {\n // Textarea events\n this.textarea.addEventListener('input', this.boundHandlers.onInput);\n this.textarea.addEventListener('keydown', this.boundHandlers.onKeyDown);\n this.textarea.addEventListener('blur', this.boundHandlers.onBlur);\n this.textarea.addEventListener(\n 'compositionstart',\n this.boundHandlers.onCompositionStart,\n );\n this.textarea.addEventListener(\n 'compositionend',\n this.boundHandlers.onCompositionEnd,\n );\n this.textarea.addEventListener('focus', this.boundHandlers.onFocus);\n\n // Canvas events for synchronization\n this.canvas.on('after:render', this.boundHandlers.onAfterRender);\n this.canvas.on('mouse:wheel', this.boundHandlers.onMouseWheel);\n this.canvas.on('mouse:down', this.boundHandlers.onMouseDown);\n\n // Store original methods to detect viewport changes\n this.setupViewportChangeDetection();\n }\n\n /**\n * Remove all event listeners\n */\n private removeEventListeners(): void {\n this.textarea.removeEventListener('input', this.boundHandlers.onInput);\n this.textarea.removeEventListener('keydown', this.boundHandlers.onKeyDown);\n this.textarea.removeEventListener('blur', this.boundHandlers.onBlur);\n this.textarea.removeEventListener(\n 'compositionstart',\n this.boundHandlers.onCompositionStart,\n );\n this.textarea.removeEventListener(\n 'compositionend',\n this.boundHandlers.onCompositionEnd,\n );\n this.textarea.removeEventListener('focus', this.boundHandlers.onFocus);\n\n this.canvas.off('after:render', this.boundHandlers.onAfterRender);\n this.canvas.off('mouse:wheel', this.boundHandlers.onMouseWheel);\n this.canvas.off('mouse:down', this.boundHandlers.onMouseDown);\n\n // Restore original methods\n this.restoreViewportChangeDetection();\n }\n\n /**\n * Simple method to refresh positioning when canvas changes\n */\n private updatePosition(): void {\n this.applyOverlayStyle();\n }\n\n /**\n * Update the Fabric object bounds to match current textarea size\n * This ensures Fabric.js selection controls follow the growing textbox\n */\n private updateObjectBounds(): void {\n if (this.isDestroyed) return;\n\n const target = this.target;\n const zoom = this.canvas.getZoom();\n\n // Get current textbox dimensions from the host div (in canvas coordinates)\n const currentWidth = parseFloat(this.hostDiv.style.width) / zoom;\n const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;\n\n // Always update height for responsive controls (especially important for line deletion)\n const heightDiff = Math.abs(currentHeight - target.height);\n const threshold = 0.5; // Lower threshold for better responsiveness to line changes\n\n if (heightDiff > threshold) {\n const oldHeight = target.height;\n target.height = currentHeight;\n target.setCoords(); // Update control positions\n\n // Force dirty to ensure proper re-rendering\n target.dirty = true;\n this.canvas.requestRenderAll(); // Re-render to show updated selection\n\n // IMPORTANT: Reposition overlay after height change\n requestAnimationFrame(() => {\n if (!this.isDestroyed) {\n this.applyOverlayStyle();\n console.log(\n '📐 Height changed - rechecking alignment after repositioning:',\n );\n }\n });\n }\n }\n\n /**\n * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)\n */\n private letterSpacingPx(charSpacing: number, fontSize: number): number {\n return (charSpacing / 1000) * fontSize;\n }\n\n /**\n * Detect text direction using first strong directional character\n */\n private firstStrongDir(text: string): 'ltr' | 'rtl' {\n // Hebrew: \\u0590-\\u05FF, Arabic: \\u0600-\\u06FF, \\u0750-\\u077F, \\uFB50-\\uFDFF, \\uFE70-\\uFEFF\n const rtlRegex =\n /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\n return rtlRegex.test(text) ? 'rtl' : 'ltr';\n }\n\n private applyOverlayStyle(): void {\n const target = this.target;\n const canvas = this.canvas;\n\n // 1. Freshen object's transformations - use aCoords like rtl-test.html\n target.setCoords();\n const aCoords = target.aCoords;\n\n // 2. Get canvas position and scroll offsets (like rtl-test.html)\n const canvasEl = canvas.upperCanvasEl;\n const canvasRect = canvasEl.getBoundingClientRect();\n const scrollX = window.scrollX || window.pageXOffset;\n const scrollY = window.scrollY || window.pageYOffset;\n\n // 3. Position and dimensions accounting for Fabric Textbox padding and viewport transform\n const zoom = canvas.getZoom();\n const vpt = canvas.viewportTransform;\n const padding = (target as any).padding || 0;\n const paddingX = padding * (target.scaleX || 1) * zoom;\n const paddingY = padding * (target.scaleY || 1) * zoom;\n\n // Transform object's top-left corner coordinates to screen coordinates using viewport transform\n // aCoords.tl already accounts for object positioning and scaling, just need viewport transform\n const screenPoint = transformPoint(\n { x: aCoords.tl.x, y: aCoords.tl.y },\n vpt,\n );\n\n const left = canvasRect.left + scrollX + screenPoint.x;\n const top = canvasRect.top + scrollY + screenPoint.y;\n\n // 4. Calculate the precise width and height for the container\n // **THE FIX:** Use getBoundingRect() for BOTH width and height.\n // This is the most reliable measure of the object's final rendered dimensions.\n const objectBounds = target.getBoundingRect();\n const width = Math.round(objectBounds.width * zoom);\n const height = Math.round(objectBounds.height * zoom);\n\n // 5. Apply styles to host DIV - absolute positioning like rtl-test.html\n this.hostDiv.style.position = 'absolute';\n this.hostDiv.style.left = `${left}px`;\n this.hostDiv.style.top = `${top}px`;\n this.hostDiv.style.width = `${width}px`;\n this.hostDiv.style.height = `${height}px`;\n this.hostDiv.style.overflow = 'hidden'; // Prevent scrollbars in host div\n // Apply rotation matching Fabric.js object transformation\n if (target.angle) {\n this.hostDiv.style.transform = `rotate(${target.angle}deg)`;\n this.hostDiv.style.transformOrigin = 'top left'; // Match Fabric Textbox behavior\n } else {\n this.hostDiv.style.transform = '';\n this.hostDiv.style.transformOrigin = '';\n }\n\n // 6. Style the textarea - match Fabric's exact rendering with padding\n const baseFontSize = target.fontSize ?? 16;\n // Use scaleX for font scaling to match Fabric text scaling exactly\n const scaleX = target.scaleX || 1;\n const finalFontSize = baseFontSize * scaleX * zoom;\n const fabricLineHeight = target.lineHeight || 1.16;\n // **THE FIX:** Use 'border-box' so the width property includes padding.\n // This makes alignment much easier and more reliable.\n this.textarea.style.boxSizing = 'border-box';\n\n // **THE FIX:** Set the textarea width to be IDENTICAL to the host div's width.\n // The padding will now be correctly contained *inside* this width.\n this.textarea.style.width = `${width}px`;\n this.textarea.style.height = '100%'; // Let hostDiv control height\n this.textarea.style.padding = `${paddingY}px ${paddingX}px`;\n\n // Apply all other font and text styles to match Fabric\n const letterSpacingPx = ((target.charSpacing || 0) / 1000) * finalFontSize;\n \n // Special handling for text objects loaded from JSON - ensure they're properly initialized\n if (target.dirty !== false && target.initDimensions) {\n console.log('🔧 Ensuring text object is properly initialized before overlay editing');\n // Force re-initialization if the text object seems to be in a dirty state\n target.initDimensions();\n }\n\n this.textarea.style.fontSize = `${finalFontSize}px`;\n this.textarea.style.lineHeight = String(fabricLineHeight);\n this.textarea.style.fontFamily = target.fontFamily || 'Arial';\n this.textarea.style.fontWeight = String(target.fontWeight || 'normal');\n this.textarea.style.fontStyle = target.fontStyle || 'normal';\n // Handle text alignment and justification\n const textAlign = (target as any).textAlign || 'left';\n let cssTextAlign = textAlign;\n \n // Detect text direction from content for proper justify handling\n const autoDetectedDirection = this.firstStrongDir(this.textarea.value || '');\n \n // DEBUG: Log alignment details\n console.log('🔍 ALIGNMENT DEBUG:');\n console.log(' Fabric textAlign:', textAlign);\n console.log(' Fabric direction:', (target as any).direction);\n console.log(' Text content:', JSON.stringify(target.text));\n console.log(' Detected direction:', autoDetectedDirection);\n \n // Map fabric.js justify to CSS\n if (textAlign.includes('justify')) {\n // Try to match fabric.js justify behavior more precisely\n try {\n // For justify, we need to replicate fabric.js space expansion\n // Use CSS justify but with specific settings to match fabric.js better\n cssTextAlign = 'justify';\n \n // Set text-align-last based on justify type and detected direction\n // Smart justify: respect detected direction even when fabric alignment doesn't match\n if (textAlign === 'justify') {\n this.textarea.style.textAlignLast = autoDetectedDirection === 'rtl' ? 'right' : 'left';\n } else if (textAlign === 'justify-left') {\n // If text is RTL but fabric says justify-left, override to justify-right for better UX\n if (autoDetectedDirection === 'rtl') {\n this.textarea.style.textAlignLast = 'right';\n console.log(' → Overrode justify-left to justify-right for RTL text');\n } else {\n this.textarea.style.textAlignLast = 'left';\n }\n } else if (textAlign === 'justify-right') {\n // If text is LTR but fabric says justify-right, override to justify-left for better UX \n if (autoDetectedDirection === 'ltr') {\n this.textarea.style.textAlignLast = 'left';\n console.log(' → Overrode justify-right to justify-left for LTR text');\n } else {\n this.textarea.style.textAlignLast = 'right';\n }\n } else if (textAlign === 'justify-center') {\n this.textarea.style.textAlignLast = 'center';\n }\n \n // Enhanced justify settings for better fabric.js matching\n (this.textarea.style as any).textJustify = 'inter-word';\n (this.textarea.style as any).wordSpacing = 'normal';\n \n // Additional CSS properties for better justify matching\n this.textarea.style.textAlign = 'justify';\n this.textarea.style.textAlignLast = this.textarea.style.textAlignLast;\n \n // Try to force better justify behavior\n (this.textarea.style as any).textJustifyTrim = 'none';\n (this.textarea.style as any).textAutospace = 'none';\n \n console.log(' → Applied justify alignment:', textAlign, 'with last-line:', this.textarea.style.textAlignLast);\n } catch (error) {\n console.warn(' → Justify setup failed, falling back to standard alignment:', error);\n cssTextAlign = textAlign.replace('justify-', '').replace('justify', 'left');\n }\n } else {\n this.textarea.style.textAlignLast = 'auto';\n (this.textarea.style as any).textJustify = 'auto';\n (this.textarea.style as any).wordSpacing = 'normal';\n console.log(' → Applied standard alignment:', cssTextAlign);\n }\n \n this.textarea.style.textAlign = cssTextAlign;\n this.textarea.style.color = target.fill?.toString() || '#000';\n this.textarea.style.letterSpacing = `${letterSpacingPx}px`;\n \n // Use the already detected direction from above\n const fabricDirection = (target as any).direction;\n \n // Use auto-detected direction for better BiDi support, but respect fabric direction if it makes sense\n this.textarea.style.direction = autoDetectedDirection || fabricDirection || 'ltr';\n this.textarea.style.fontVariant = 'normal';\n this.textarea.style.fontStretch = 'normal';\n this.textarea.style.textRendering = 'auto'; // Changed from 'optimizeLegibility' to match canvas\n this.textarea.style.fontKerning = 'normal';\n this.textarea.style.fontFeatureSettings = 'normal';\n this.textarea.style.fontVariationSettings = 'normal';\n this.textarea.style.margin = '0';\n this.textarea.style.border = 'none';\n this.textarea.style.outline = 'none';\n this.textarea.style.background = 'transparent';\n this.textarea.style.overflowWrap = 'break-word';\n this.textarea.style.whiteSpace = 'pre-wrap';\n this.textarea.style.hyphens = 'none';\n \n // DEBUG: Log final CSS properties\n console.log('🎨 FINAL TEXTAREA CSS:');\n console.log(' textAlign:', this.textarea.style.textAlign);\n console.log(' textAlignLast:', this.textarea.style.textAlignLast);\n console.log(' direction:', this.textarea.style.direction);\n console.log(' unicodeBidi:', this.textarea.style.unicodeBidi);\n console.log(' width:', this.textarea.style.width);\n console.log(' textJustify:', (this.textarea.style as any).textJustify);\n console.log(' wordSpacing:', (this.textarea.style as any).wordSpacing);\n console.log(' whiteSpace:', this.textarea.style.whiteSpace);\n \n // If justify, log Fabric object dimensions for comparison\n if (textAlign.includes('justify')) {\n console.log('🔧 FABRIC OBJECT JUSTIFY INFO:');\n console.log(' Fabric width:', (target as any).width);\n console.log(' Fabric calcTextWidth:', (target as any).calcTextWidth?.());\n console.log(' Fabric textAlign:', (target as any).textAlign);\n console.log(' Text lines:', (target as any).textLines);\n }\n \n // Debug font properties matching\n console.log('🔤 FONT PROPERTIES COMPARISON:');\n console.log(' Fabric fontFamily:', target.fontFamily);\n console.log(' Fabric fontWeight:', target.fontWeight);\n console.log(' Fabric fontStyle:', target.fontStyle);\n console.log(' Fabric fontSize:', target.fontSize);\n console.log(' → Textarea fontFamily:', this.textarea.style.fontFamily);\n console.log(' → Textarea fontWeight:', this.textarea.style.fontWeight);\n console.log(' → Textarea fontStyle:', this.textarea.style.fontStyle);\n console.log(' → Textarea fontSize:', this.textarea.style.fontSize);\n \n console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n \n // Enhanced font rendering to better match fabric.js canvas rendering\n // Default to auto for more natural rendering\n (this.textarea.style as any).webkitFontSmoothing = 'auto';\n (this.textarea.style as any).mozOsxFontSmoothing = 'auto';\n (this.textarea.style as any).fontSmooth = 'auto';\n (this.textarea.style as any).textSizeAdjust = 'none';\n \n // For bold fonts, use subpixel rendering to match canvas thickness better\n const fontWeight = String(target.fontWeight || 'normal');\n const isBold = fontWeight === 'bold' || fontWeight === '700' || \n (parseInt(fontWeight) >= 600);\n \n if (isBold) {\n (this.textarea.style as any).webkitFontSmoothing = 'subpixel-antialiased';\n (this.textarea.style as any).mozOsxFontSmoothing = 'unset';\n console.log('🔤 Applied enhanced bold rendering for better thickness matching');\n }\n \n console.log('🎨 FONT SMOOTHING APPLIED:');\n console.log(' webkitFontSmoothing:', (this.textarea.style as any).webkitFontSmoothing);\n console.log(' mozOsxFontSmoothing:', (this.textarea.style as any).mozOsxFontSmoothing);\n\n\n // Initial bounds are set correctly by Fabric.js - don't force update here\n }\n\n /**\n * Debug method to compare textarea and canvas object bounding boxes\n */\n private debugBoundingBoxComparison(): void {\n const target = this.target;\n const canvas = this.canvas;\n const zoom = canvas.getZoom();\n\n // Get textarea bounding box (in screen coordinates)\n const textareaRect = this.textarea.getBoundingClientRect();\n const hostRect = this.hostDiv.getBoundingClientRect();\n\n // Get canvas object bounding box (in screen coordinates)\n const canvasBounds = target.getBoundingRect();\n const canvasRect = canvas.upperCanvasEl.getBoundingClientRect();\n\n // Convert canvas object bounds to screen coordinates\n const vpt = canvas.viewportTransform;\n const screenObjectBounds = {\n left: canvasRect.left + canvasBounds.left * zoom + vpt[4],\n top: canvasRect.top + canvasBounds.top * zoom + vpt[5],\n width: canvasBounds.width * zoom,\n height: canvasBounds.height * zoom,\n };\n\n console.log('🔍 BOUNDING BOX COMPARISON:');\n console.log('📦 Textarea Rect:', {\n left: Math.round(textareaRect.left * 100) / 100,\n top: Math.round(textareaRect.top * 100) / 100,\n width: Math.round(textareaRect.width * 100) / 100,\n height: Math.round(textareaRect.height * 100) / 100,\n });\n console.log('📦 Host Div Rect:', {\n left: Math.round(hostRect.left * 100) / 100,\n top: Math.round(hostRect.top * 100) / 100,\n width: Math.round(hostRect.width * 100) / 100,\n height: Math.round(hostRect.height * 100) / 100,\n });\n console.log('📦 Canvas Object Bounds (screen):', {\n left: Math.round(screenObjectBounds.left * 100) / 100,\n top: Math.round(screenObjectBounds.top * 100) / 100,\n width: Math.round(screenObjectBounds.width * 100) / 100,\n height: Math.round(screenObjectBounds.height * 100) / 100,\n });\n console.log('📦 Canvas Object Bounds (canvas):', canvasBounds);\n\n // Calculate differences\n const hostVsObject = {\n leftDiff:\n Math.round((hostRect.left - screenObjectBounds.left) * 100) / 100,\n topDiff: Math.round((hostRect.top - screenObjectBounds.top) * 100) / 100,\n widthDiff:\n Math.round((hostRect.width - screenObjectBounds.width) * 100) / 100,\n heightDiff:\n Math.round((hostRect.height - screenObjectBounds.height) * 100) / 100,\n };\n\n const textareaVsObject = {\n leftDiff:\n Math.round((textareaRect.left - screenObjectBounds.left) * 100) / 100,\n topDiff:\n Math.round((textareaRect.top - screenObjectBounds.top) * 100) / 100,\n widthDiff:\n Math.round((textareaRect.width - screenObjectBounds.width) * 100) / 100,\n heightDiff:\n Math.round((textareaRect.height - screenObjectBounds.height) * 100) /\n 100,\n };\n\n console.log('📏 Host Div vs Canvas Object Diff:', hostVsObject);\n console.log('📏 Textarea vs Canvas Object Diff:', textareaVsObject);\n\n // Check if they're aligned (within 2px tolerance)\n const tolerance = 2;\n const hostAligned =\n Math.abs(hostVsObject.leftDiff) < tolerance &&\n Math.abs(hostVsObject.topDiff) < tolerance &&\n Math.abs(hostVsObject.widthDiff) < tolerance &&\n Math.abs(hostVsObject.heightDiff) < tolerance;\n\n const textareaAligned =\n Math.abs(textareaVsObject.leftDiff) < tolerance &&\n Math.abs(textareaVsObject.topDiff) < tolerance &&\n Math.abs(textareaVsObject.widthDiff) < tolerance &&\n Math.abs(textareaVsObject.heightDiff) < tolerance;\n\n console.log(\n hostAligned\n ? '✅ Host Div ALIGNED with canvas object'\n : '❌ Host Div MISALIGNED with canvas object',\n );\n console.log(\n textareaAligned\n ? '✅ Textarea ALIGNED with canvas object'\n : '❌ Textarea MISALIGNED with canvas object',\n );\n console.log('🔍 Zoom:', zoom, 'Viewport Transform:', vpt);\n console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n }\n\n /**\n * Debug method to compare text wrapping between textarea and Fabric text object\n */\n private debugTextWrapping(): void {\n const target = this.target;\n const text = this.textarea.value;\n\n console.log('📝 TEXT WRAPPING COMPARISON:');\n console.log('📄 Text Content:', `\"${text}\"`);\n console.log('📄 Text Length:', text.length);\n\n // Analyze line breaks\n const explicitLines = text.split('\\n');\n console.log('📄 Explicit Lines (\\\\n):', explicitLines.length);\n explicitLines.forEach((line, i) => {\n console.log(` Line ${i + 1}: \"${line}\" (${line.length} chars)`);\n });\n\n // Get textarea computed styles for wrapping analysis\n const textareaStyles = window.getComputedStyle(this.textarea);\n console.log('📐 Textarea Wrapping Styles:');\n console.log(' width:', textareaStyles.width);\n console.log(' fontSize:', textareaStyles.fontSize);\n console.log(' fontFamily:', textareaStyles.fontFamily);\n console.log(' fontWeight:', textareaStyles.fontWeight);\n console.log(' letterSpacing:', textareaStyles.letterSpacing);\n console.log(' lineHeight:', textareaStyles.lineHeight);\n console.log(' whiteSpace:', textareaStyles.whiteSpace);\n console.log(' wordWrap:', textareaStyles.wordWrap);\n console.log(' overflowWrap:', textareaStyles.overflowWrap);\n console.log(' direction:', textareaStyles.direction);\n console.log(' textAlign:', textareaStyles.textAlign);\n\n // Get Fabric text object properties for comparison\n console.log('📐 Fabric Text Object Properties:');\n console.log(' width:', (target as any).width);\n console.log(' fontSize:', target.fontSize);\n console.log(' fontFamily:', target.fontFamily);\n console.log(' fontWeight:', target.fontWeight);\n console.log(' charSpacing:', target.charSpacing);\n console.log(' lineHeight:', target.lineHeight);\n console.log(' direction:', (target as any).direction);\n console.log(' textAlign:', (target as any).textAlign);\n console.log(' scaleX:', target.scaleX);\n console.log(' scaleY:', target.scaleY);\n\n // Calculate effective dimensions for comparison - use actual rendered width\n // **THE FIX:** Use getBoundingRect to get the *actual rendered width* of the Fabric object.\n const fabricEffectiveWidth = this.target.getBoundingRect().width;\n // Use the exact width set on textarea for comparison\n const textareaComputedWidth = parseFloat(\n window.getComputedStyle(this.textarea).width,\n );\n const textareaEffectiveWidth =\n textareaComputedWidth / this.canvas.getZoom();\n const widthDiff = Math.abs(textareaEffectiveWidth - fabricEffectiveWidth);\n\n console.log('📏 Effective Width Comparison:');\n console.log(' Textarea Effective Width:', textareaEffectiveWidth);\n console.log(' Fabric Effective Width:', fabricEffectiveWidth);\n console.log(' Width Difference:', widthDiff.toFixed(2) + 'px');\n console.log(\n widthDiff < 1\n ? '✅ Widths MATCH for wrapping'\n : '❌ Width MISMATCH may cause different wrapping',\n );\n\n // Check text direction and bidi handling\n const hasRTLText =\n /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/.test(\n text,\n );\n const hasBidiText = /[\\u0590-\\u06FF]/.test(text) && /[a-zA-Z]/.test(text);\n\n console.log('🌍 Text Direction Analysis:');\n console.log(' Has RTL characters:', hasRTLText);\n console.log(' Has mixed Bidi text:', hasBidiText);\n console.log(' Textarea direction:', textareaStyles.direction);\n console.log(' Fabric direction:', (target as any).direction || 'auto');\n console.log(' Textarea unicodeBidi:', textareaStyles.unicodeBidi);\n\n // Measure actual rendered line count\n const textareaScrollHeight = this.textarea.scrollHeight;\n const textareaLineHeight =\n parseFloat(textareaStyles.lineHeight) ||\n parseFloat(textareaStyles.fontSize) * 1.2;\n const estimatedTextareaLines = Math.round(\n textareaScrollHeight / textareaLineHeight,\n );\n\n console.log('📊 Line Count Analysis:');\n console.log(' Textarea scrollHeight:', textareaScrollHeight);\n console.log(' Textarea lineHeight:', textareaLineHeight);\n console.log(' Estimated rendered lines:', estimatedTextareaLines);\n console.log(' Explicit line breaks:', explicitLines.length);\n\n if (estimatedTextareaLines > explicitLines.length) {\n console.log('🔄 Text wrapping detected in textarea');\n console.log(\n ' Wrapped lines:',\n estimatedTextareaLines - explicitLines.length,\n );\n } else {\n console.log('📏 No text wrapping in textarea');\n }\n\n console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n }\n\n\n /**\n * Focus the textarea and position cursor at end\n */\n private focusTextarea(): void {\n // For overlay editing, we want to keep the object in \"selection mode\" not \"editing mode\"\n // This means keeping selected=true and isEditing=false to show boundaries\n\n // Hide the text content only (not the entire object)\n this.target.opacity = 0.01; // Nearly transparent but not fully hidden\n\n // Ensure object stays selected to show boundaries\n (this.target as any).selected = true;\n (this.target as any).isEditing = false; // Override any editing state\n\n // Make sure controls are enabled and movement is allowed during overlay editing\n this.target.set({\n hasControls: true,\n hasBorders: true,\n selectable: true,\n lockMovementX: false,\n lockMovementY: false,\n });\n\n // Keep as active object\n this.canvas.setActiveObject(this.target);\n\n this.canvas.requestRenderAll();\n this.target.setCoords();\n this.applyOverlayStyle();\n\n // Fix character mapping issues after JSON loading for browser-wrapped fonts\n if ((this.target as any)._fixCharacterMappingAfterJsonLoad) {\n (this.target as any)._fixCharacterMappingAfterJsonLoad();\n }\n\n this.textarea.focus();\n\n this.textarea.setSelectionRange(\n this.textarea.value.length,\n this.textarea.value.length,\n );\n\n // Ensure the object stays selected even after textarea focus\n this.canvas.setActiveObject(this.target);\n this.canvas.requestRenderAll();\n }\n\n /**\n * Refresh overlay positioning and styling\n */\n public refresh(): void {\n if (this.isDestroyed) return;\n this.updatePosition();\n // Don't update object bounds on every refresh - only when textarea actually resizes\n }\n\n /**\n * Destroy the overlay editor\n */\n public destroy(commit: boolean = true): void {\n if (this.isDestroyed) return;\n this.isDestroyed = true;\n\n this.removeEventListeners();\n\n // Restore target visibility before handling commit/cancel\n if ((this.target as any).__overlayEditor === this) {\n (this.target as any).__overlayEditor = undefined;\n\n // Restore original opacity\n if ((this.target as any).__overlayOriginalOpacity !== undefined) {\n this.target.opacity = (this.target as any).__overlayOriginalOpacity;\n delete (this.target as any).__overlayOriginalOpacity;\n }\n }\n\n // Remove DOM first\n if (this.hostDiv.parentNode) {\n this.hostDiv.parentNode.removeChild(this.hostDiv);\n }\n\n // Handle commit/cancel after restoring visibility\n if (commit && !this.isComposing) {\n const finalText = this.textarea.value;\n \n // Auto-detect text direction and update fabric object if needed\n const detectedDirection = this.firstStrongDir(finalText);\n const currentDirection = (this.target as any).direction || 'ltr';\n \n if (detectedDirection && detectedDirection !== currentDirection) {\n console.log(`🔄 Overlay Exit: Auto-detected direction change from \"${currentDirection}\" to \"${detectedDirection}\"`);\n console.log(` Text content: \"${finalText.substring(0, 50)}...\"`);\n \n // Update the fabric object's direction\n (this.target as any).set('direction', detectedDirection);\n \n // Force a re-render to apply the direction change\n this.canvas.requestRenderAll();\n \n console.log(`✅ Fabric object direction updated to: ${detectedDirection}`);\n } else {\n console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: \"${finalText.substring(0, 30)}...\"`);\n }\n \n if (this.onCommit) {\n this.onCommit(finalText);\n }\n } else if (!commit && this.onCancel) {\n this.onCancel();\n }\n\n // Note: Don't restore object cursors since IText manages all cursors in _restoreEditingProps\n // Let the IText editing system handle proper restoration of all cursor properties\n\n // Note: Canvas cursors are restored by IText's _restoreEditingProps method\n // Force a cursor refresh by triggering _setCursorFromEvent\n setTimeout(() => {\n this.canvas.upperCanvasEl.style.cursor = '';\n // Trigger cursor refresh on next mouse move\n this.canvas.setCursor(this.canvas.defaultCursor);\n }, 0);\n\n // Request canvas re-render\n this.canvas.requestRenderAll();\n }\n\n // Event handlers\n private handleInput(): void {\n if (!this.isComposing && this.target.text !== this.textarea.value) {\n // Live update target text\n this.target.text = this.textarea.value;\n\n\n // Auto-resize textarea to match new content\n this.autoResizeTextarea();\n\n // Ensure object stays in selection mode (not editing mode) to show controls\n (this.target as any).selected = true;\n (this.target as any).isEditing = false;\n this.canvas.setActiveObject(this.target);\n this.canvas.requestRenderAll();\n }\n }\n\n private autoResizeTextarea(): void {\n // Store the scroll position and the container's old height for comparison.\n const scrollTop = this.textarea.scrollTop;\n const oldHeight = parseFloat(this.hostDiv.style.height || '0');\n\n // 1. **Force a reliable reflow.**\n // First, reset the textarea's height to a minimal value. This is the crucial step\n // that forces the browser to recalculate the content's height from scratch,\n // ignoring the hostDiv's larger, stale height.\n this.textarea.style.height = '1px';\n\n // 2. Read the now-accurate scrollHeight. This value reflects the minimum\n // height required for the content, whether it's single or multi-line.\n const scrollHeight = this.textarea.scrollHeight;\n\n // A small buffer for rendering consistency across browsers.\n const buffer = 2;\n const newHeight = scrollHeight + buffer;\n\n // Check if the height has changed significantly.\n const heightChanged = Math.abs(newHeight - oldHeight) > 1;\n\n // 4. Only update heights and object bounds if there was a change.\n if (heightChanged) {\n this.textarea.style.height = `${newHeight}px`;\n this.hostDiv.style.height = `${newHeight}px`;\n this.updateObjectBounds();\n } else {\n // If no significant change, ensure the textarea's height matches the container\n // to prevent any minor visual misalignment.\n this.textarea.style.height = this.hostDiv.style.height;\n }\n\n // 5. Restore the original scroll position.\n this.textarea.scrollTop = scrollTop;\n }\n\n private handleKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Escape') {\n e.preventDefault();\n this.destroy(false); // Cancel\n } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {\n e.preventDefault();\n this.destroy(true); // Commit\n } else if (\n e.key === 'Enter' ||\n e.key === 'Backspace' ||\n e.key === 'Delete'\n ) {\n // For keys that might change the height, schedule a resize check\n // Use both immediate and delayed checks to catch all scenarios\n requestAnimationFrame(() => {\n if (!this.isDestroyed) {\n this.autoResizeTextarea();\n }\n });\n setTimeout(() => {\n if (!this.isDestroyed) {\n this.autoResizeTextarea();\n }\n }, 10); // Small delay to ensure DOM is updated\n }\n }\n\n private handleFocus(): void {\n // Focus handler - could be used for future enhancements\n }\n\n private handleBlur(): void {\n // Commit on blur unless we're in composition mode\n if (!this.isComposing) {\n this.destroy(true);\n }\n }\n\n private handleCompositionStart(): void {\n this.isComposing = true;\n }\n\n private handleCompositionEnd(): void {\n this.isComposing = false;\n this.handleInput(); // Update text after composition\n }\n\n private handleAfterRender(): void {\n this.refresh();\n }\n\n private handleMouseWheel(): void {\n this.refresh();\n }\n\n private handleMouseDown(e: TPointerEventInfo): void {\n if (e.target !== this.target) {\n this.destroy(true);\n }\n }\n\n /**\n * Setup detection for viewport changes (zoom/pan)\n */\n private setupViewportChangeDetection(): void {\n // Store original methods\n (this.canvas as any).__originalSetZoom = this.canvas.setZoom;\n (this.canvas as any).__originalSetViewportTransform =\n this.canvas.setViewportTransform;\n (this.canvas as any).__overlayEditor = this;\n\n // Override setZoom to detect zoom changes\n const originalSetZoom = this.canvas.setZoom.bind(this.canvas);\n this.canvas.setZoom = (value: number) => {\n const result = originalSetZoom(value);\n if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {\n this.refresh();\n }\n return result;\n };\n\n // Override setViewportTransform to detect pan changes\n const originalSetViewportTransform = this.canvas.setViewportTransform.bind(\n this.canvas,\n );\n this.canvas.setViewportTransform = (vpt: TMat2D) => {\n const result = originalSetViewportTransform(vpt);\n if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {\n this.refresh();\n }\n return result;\n };\n }\n\n /**\n * Restore original viewport methods\n */\n private restoreViewportChangeDetection(): void {\n if ((this.canvas as any).__originalSetZoom) {\n this.canvas.setZoom = (this.canvas as any).__originalSetZoom;\n delete (this.canvas as any).__originalSetZoom;\n }\n if ((this.canvas as any).__originalSetViewportTransform) {\n this.canvas.setViewportTransform = (\n this.canvas as any\n ).__originalSetViewportTransform;\n delete (this.canvas as any).__originalSetViewportTransform;\n }\n delete (this.canvas as any).__overlayEditor;\n }\n}\n\n/**\n * Enter overlay text editing mode for a text object\n */\nexport function enterTextOverlayEdit(\n canvas: Canvas,\n target: FabricText | IText | Textbox,\n options?: {\n onCommit?: (text: string) => void;\n onCancel?: () => void;\n },\n): OverlayEditor {\n // If already in overlay editing, destroy existing editor first\n if ((target as any).__overlayEditor) {\n (target as any).__overlayEditor.destroy(false);\n }\n\n // Store original opacity so we can restore it later\n (target as any).__overlayOriginalOpacity = target.opacity;\n\n const editor = new OverlayEditor({\n canvas,\n target,\n onCommit: options?.onCommit,\n onCancel: options?.onCancel,\n });\n\n // We no longer change fill, so no need to store it\n\n // Store reference on target for cleanup\n (target as any).__overlayEditor = editor;\n\n return editor;\n}\n\n/**\n * Check if a text object is currently being edited with overlay editor\n */\nexport function isInOverlayEdit(target: FabricText | IText | Textbox): boolean {\n return !!(target as any).__overlayEditor?.isActive;\n}\n"],"names":["OverlayEditor","constructor","options","_defineProperty","onInput","handleInput","bind","onKeyDown","handleKeyDown","onBlur","handleBlur","onCompositionStart","handleCompositionStart","onCompositionEnd","handleCompositionEnd","onAfterRender","handleAfterRender","onMouseWheel","handleMouseWheel","onFocus","handleFocus","onMouseDown","handleMouseDown","canvas","target","onCommit","onCancel","lastText","text","container","getCanvasContainer","createOverlayDOM","attachEventListeners","refresh","focusTextarea","upperCanvas","upperCanvasEl","parentElement","Error","style","position","hostDiv","document","createElement","pointerEvents","zIndex","transformOrigin","textarea","left","top","margin","resize","hasArabicText","test","hasLatinText","isLTRDirection","direction","unicodeBidi","caretColor","border","padding","background","outline","overflow","whiteSpace","wordBreak","overflowWrap","userSelect","textTransform","opacity","value","appendChild","body","addEventListener","boundHandlers","on","setupViewportChangeDetection","removeEventListeners","removeEventListener","off","restoreViewportChangeDetection","updatePosition","applyOverlayStyle","updateObjectBounds","isDestroyed","zoom","getZoom","parseFloat","width","currentHeight","height","heightDiff","Math","abs","threshold","setCoords","dirty","requestRenderAll","requestAnimationFrame","console","log","letterSpacingPx","charSpacing","fontSize","firstStrongDir","rtlRegex","_target$fontSize","_target$fill","aCoords","canvasEl","canvasRect","getBoundingClientRect","scrollX","window","pageXOffset","scrollY","pageYOffset","vpt","viewportTransform","paddingX","scaleX","paddingY","scaleY","screenPoint","transformPoint","x","tl","y","objectBounds","getBoundingRect","round","angle","transform","baseFontSize","finalFontSize","fabricLineHeight","lineHeight","boxSizing","initDimensions","String","fontFamily","fontWeight","fontStyle","textAlign","cssTextAlign","autoDetectedDirection","JSON","stringify","includes","textAlignLast","textJustify","wordSpacing","textJustifyTrim","textAutospace","error","warn","replace","color","fill","toString","letterSpacing","fabricDirection","fontVariant","fontStretch","textRendering","fontKerning","fontFeatureSettings","fontVariationSettings","hyphens","_calcTextWidth","_ref","calcTextWidth","call","textLines","webkitFontSmoothing","mozOsxFontSmoothing","fontSmooth","textSizeAdjust","isBold","parseInt","debugBoundingBoxComparison","textareaRect","hostRect","canvasBounds","screenObjectBounds","hostVsObject","leftDiff","topDiff","widthDiff","textareaVsObject","tolerance","hostAligned","textareaAligned","debugTextWrapping","length","explicitLines","split","forEach","line","i","textareaStyles","getComputedStyle","wordWrap","fabricEffectiveWidth","textareaComputedWidth","textareaEffectiveWidth","toFixed","hasRTLText","hasBidiText","textareaScrollHeight","scrollHeight","textareaLineHeight","estimatedTextareaLines","selected","isEditing","set","hasControls","hasBorders","selectable","lockMovementX","lockMovementY","setActiveObject","_fixCharacterMappingAfterJsonLoad","focus","setSelectionRange","destroy","commit","arguments","undefined","__overlayEditor","__overlayOriginalOpacity","parentNode","removeChild","isComposing","finalText","detectedDirection","currentDirection","substring","setTimeout","cursor","setCursor","defaultCursor","autoResizeTextarea","scrollTop","oldHeight","buffer","newHeight","heightChanged","e","key","preventDefault","ctrlKey","metaKey","__originalSetZoom","setZoom","__originalSetViewportTransform","setViewportTransform","originalSetZoom","result","originalSetViewportTransform","enterTextOverlayEdit","editor"],"mappings":"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"}
1
+ {"version":3,"file":"overlayEditor.mjs","sources":["../../../src/text/overlayEditor.ts"],"sourcesContent":["/**\r\n * Canva/Polotno-style Overlay Text Editor\r\n *\r\n * Provides seamless inline text editing using an HTML textarea overlay\r\n * that matches canvas text positioning, styling, and transformations.\r\n */\r\n\r\nimport type { Canvas } from '../canvas/Canvas';\r\nimport type { FabricText } from '../shapes/Text/Text';\r\nimport type { IText } from '../shapes/IText/IText';\r\nimport type { Textbox } from '../shapes/Textbox';\r\nimport type { TPointerEventInfo } from '../EventTypeDefs';\r\nimport type { TMat2D } from '../typedefs';\r\nimport { transformPoint } from '../util/misc/matrix';\r\n\r\nexport interface OverlayEditorOptions {\r\n canvas: Canvas;\r\n target: FabricText | IText | Textbox;\r\n onCommit?: (text: string) => void;\r\n onCancel?: () => void;\r\n}\r\n\r\nexport interface ScreenTransform {\r\n translateX: number;\r\n translateY: number;\r\n scaleX: number;\r\n scaleY: number;\r\n angle: number; // in radians\r\n}\r\n\r\nexport class OverlayEditor {\r\n private canvas: Canvas;\r\n private target: FabricText | IText | Textbox;\r\n private container: HTMLElement;\r\n private textarea: HTMLTextAreaElement;\r\n private hostDiv: HTMLDivElement;\r\n private isDestroyed = false;\r\n private isComposing = false;\r\n private lastText: string;\r\n private onCommit?: (text: string) => void;\r\n private onCancel?: () => void;\r\n\r\n // Bound event handlers for cleanup\r\n private boundHandlers = {\r\n onInput: this.handleInput.bind(this),\r\n onKeyDown: this.handleKeyDown.bind(this),\r\n onBlur: this.handleBlur.bind(this),\r\n onCompositionStart: this.handleCompositionStart.bind(this),\r\n onCompositionEnd: this.handleCompositionEnd.bind(this),\r\n onAfterRender: this.handleAfterRender.bind(this),\r\n onMouseWheel: this.handleMouseWheel.bind(this),\r\n onFocus: this.handleFocus.bind(this),\r\n onMouseDown: this.handleMouseDown.bind(this),\r\n };\r\n\r\n constructor(options: OverlayEditorOptions) {\r\n this.canvas = options.canvas;\r\n this.target = options.target;\r\n this.onCommit = options.onCommit;\r\n this.onCancel = options.onCancel;\r\n this.lastText = this.target.text || '';\r\n\r\n this.container = this.getCanvasContainer();\r\n this.createOverlayDOM();\r\n this.attachEventListeners();\r\n this.refresh();\r\n this.focusTextarea();\r\n\r\n // Note: Don't manage object cursors since IText manages all cursors in _saveEditingProps/_restoreEditingProps\r\n // The IText editing system handles hoverCursor, moveCursor, and canvas cursors properly\r\n\r\n // Note: Canvas cursors are handled by IText's _saveEditingProps/_restoreEditingProps\r\n // We don't need to save/restore them here as it would conflict with IText's restoration\r\n }\r\n\r\n /**\r\n * Get the container element for the overlay (parent of upperCanvasEl)\r\n */\r\n private getCanvasContainer(): HTMLElement {\r\n const upperCanvas = this.canvas.upperCanvasEl;\r\n const container = upperCanvas.parentElement;\r\n if (!container) {\r\n throw new Error('Canvas must be mounted in DOM to use overlay editing');\r\n }\r\n\r\n // Ensure the container is positioned for absolute overlay positioning\r\n container.style.position = 'relative';\r\n\r\n return container;\r\n }\r\n\r\n /**\r\n * Create the overlay DOM structure\r\n */\r\n private createOverlayDOM(): void {\r\n // Host div for positioning and overflow control\r\n this.hostDiv = document.createElement('div');\r\n this.hostDiv.style.position = 'absolute';\r\n this.hostDiv.style.pointerEvents = 'none';\r\n this.hostDiv.style.zIndex = '1000';\r\n this.hostDiv.style.transformOrigin = 'left top';\r\n\r\n // Textarea for actual text input\r\n this.textarea = document.createElement('textarea');\r\n this.textarea.style.position = 'absolute';\r\n this.textarea.style.left = '0';\r\n this.textarea.style.top = '0';\r\n this.textarea.style.margin = '0';\r\n this.textarea.style.resize = 'none';\r\n this.textarea.style.pointerEvents = 'auto';\r\n // Set appropriate unicodeBidi based on content and direction\r\n const hasArabicText =\r\n /[\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/.test(\r\n this.target.text || '',\r\n );\r\n const hasLatinText = /[a-zA-Z]/.test(this.target.text || '');\r\n const isLTRDirection = (this.target as any).direction === 'ltr';\r\n\r\n if (hasArabicText && hasLatinText && isLTRDirection) {\r\n // For mixed Arabic/Latin text in LTR mode, use embed for consistent line wrapping\r\n this.textarea.style.unicodeBidi = 'embed';\r\n } else if (hasArabicText && isLTRDirection) {\r\n // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction\r\n this.textarea.style.unicodeBidi = 'embed';\r\n } else {\r\n // Default to plaintext for natural text flow\r\n this.textarea.style.unicodeBidi = 'plaintext';\r\n }\r\n this.textarea.style.caretColor = 'auto';\r\n\r\n // Polotno-like base\r\n this.textarea.style.border = 'none';\r\n this.textarea.style.padding = '0';\r\n this.textarea.style.background = 'transparent'; // Transparent so Fabric text shows through\r\n this.textarea.style.outline = 'none';\r\n this.textarea.style.overflow = 'hidden'; // Prevent scrollbars\r\n this.textarea.style.whiteSpace = 'pre-wrap';\r\n this.textarea.style.wordBreak = 'normal';\r\n this.textarea.style.overflowWrap = 'break-word';\r\n this.textarea.style.userSelect = 'text';\r\n this.textarea.style.textTransform = 'none';\r\n\r\n // Start visible - we'll handle transitions differently\r\n this.textarea.style.opacity = '1';\r\n\r\n // Set initial text\r\n this.textarea.value = this.target.text || '';\r\n\r\n this.hostDiv.appendChild(this.textarea);\r\n document.body.appendChild(this.hostDiv);\r\n }\r\n\r\n /**\r\n * Attach all event listeners\r\n */\r\n private attachEventListeners(): void {\r\n // Textarea events\r\n this.textarea.addEventListener('input', this.boundHandlers.onInput);\r\n this.textarea.addEventListener('keydown', this.boundHandlers.onKeyDown);\r\n this.textarea.addEventListener('blur', this.boundHandlers.onBlur);\r\n this.textarea.addEventListener(\r\n 'compositionstart',\r\n this.boundHandlers.onCompositionStart,\r\n );\r\n this.textarea.addEventListener(\r\n 'compositionend',\r\n this.boundHandlers.onCompositionEnd,\r\n );\r\n this.textarea.addEventListener('focus', this.boundHandlers.onFocus);\r\n\r\n // Canvas events for synchronization\r\n this.canvas.on('after:render', this.boundHandlers.onAfterRender);\r\n this.canvas.on('mouse:wheel', this.boundHandlers.onMouseWheel);\r\n this.canvas.on('mouse:down', this.boundHandlers.onMouseDown);\r\n\r\n // Store original methods to detect viewport changes\r\n this.setupViewportChangeDetection();\r\n }\r\n\r\n /**\r\n * Remove all event listeners\r\n */\r\n private removeEventListeners(): void {\r\n this.textarea.removeEventListener('input', this.boundHandlers.onInput);\r\n this.textarea.removeEventListener('keydown', this.boundHandlers.onKeyDown);\r\n this.textarea.removeEventListener('blur', this.boundHandlers.onBlur);\r\n this.textarea.removeEventListener(\r\n 'compositionstart',\r\n this.boundHandlers.onCompositionStart,\r\n );\r\n this.textarea.removeEventListener(\r\n 'compositionend',\r\n this.boundHandlers.onCompositionEnd,\r\n );\r\n this.textarea.removeEventListener('focus', this.boundHandlers.onFocus);\r\n\r\n this.canvas.off('after:render', this.boundHandlers.onAfterRender);\r\n this.canvas.off('mouse:wheel', this.boundHandlers.onMouseWheel);\r\n this.canvas.off('mouse:down', this.boundHandlers.onMouseDown);\r\n\r\n // Restore original methods\r\n this.restoreViewportChangeDetection();\r\n }\r\n\r\n /**\r\n * Simple method to refresh positioning when canvas changes\r\n */\r\n private updatePosition(): void {\r\n this.applyOverlayStyle();\r\n }\r\n\r\n /**\r\n * Update the Fabric object bounds to match current textarea size\r\n * This ensures Fabric.js selection controls follow the growing textbox\r\n */\r\n private updateObjectBounds(): void {\r\n if (this.isDestroyed) return;\r\n\r\n const target = this.target;\r\n const zoom = this.canvas.getZoom();\r\n\r\n // Get current textbox dimensions from the host div (in canvas coordinates)\r\n const currentWidth = parseFloat(this.hostDiv.style.width) / zoom;\r\n const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;\r\n\r\n // Always update height for responsive controls (especially important for line deletion)\r\n const heightDiff = Math.abs(currentHeight - target.height);\r\n const threshold = 0.5; // Lower threshold for better responsiveness to line changes\r\n\r\n if (heightDiff > threshold) {\r\n const oldHeight = target.height;\r\n target.height = currentHeight;\r\n target.setCoords(); // Update control positions\r\n\r\n // Force dirty to ensure proper re-rendering\r\n target.dirty = true;\r\n this.canvas.requestRenderAll(); // Re-render to show updated selection\r\n\r\n // IMPORTANT: Reposition overlay after height change\r\n requestAnimationFrame(() => {\r\n if (!this.isDestroyed) {\r\n this.applyOverlayStyle();\r\n console.log(\r\n '📐 Height changed - rechecking alignment after repositioning:',\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)\r\n */\r\n private letterSpacingPx(charSpacing: number, fontSize: number): number {\r\n return (charSpacing / 1000) * fontSize;\r\n }\r\n\r\n /**\r\n * Detect text direction using first strong directional character\r\n */\r\n private firstStrongDir(text: string): 'ltr' | 'rtl' {\r\n // Hebrew: \\u0590-\\u05FF, Arabic: \\u0600-\\u06FF, \\u0750-\\u077F, \\uFB50-\\uFDFF, \\uFE70-\\uFEFF\r\n const rtlRegex =\r\n /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\r\n return rtlRegex.test(text) ? 'rtl' : 'ltr';\r\n }\r\n\r\n private applyOverlayStyle(): void {\r\n const target = this.target;\r\n const canvas = this.canvas;\r\n\r\n // 1. Freshen object's transformations - use aCoords like rtl-test.html\r\n target.setCoords();\r\n const aCoords = target.aCoords;\r\n\r\n // 2. Get canvas position and scroll offsets (like rtl-test.html)\r\n const canvasEl = canvas.upperCanvasEl;\r\n const canvasRect = canvasEl.getBoundingClientRect();\r\n const scrollX = window.scrollX || window.pageXOffset;\r\n const scrollY = window.scrollY || window.pageYOffset;\r\n\r\n // 3. Position and dimensions accounting for Fabric Textbox padding and viewport transform\r\n const zoom = canvas.getZoom();\r\n const vpt = canvas.viewportTransform;\r\n const padding = (target as any).padding || 0;\r\n const paddingX = padding * (target.scaleX || 1) * zoom;\r\n const paddingY = padding * (target.scaleY || 1) * zoom;\r\n\r\n // Transform object's top-left corner coordinates to screen coordinates using viewport transform\r\n // aCoords.tl already accounts for object positioning and scaling, just need viewport transform\r\n const screenPoint = transformPoint(\r\n { x: aCoords.tl.x, y: aCoords.tl.y },\r\n vpt,\r\n );\r\n\r\n const left = canvasRect.left + scrollX + screenPoint.x;\r\n const top = canvasRect.top + scrollY + screenPoint.y;\r\n\r\n // 4. Calculate the precise width and height for the container\r\n // **THE FIX:** Use getBoundingRect() for BOTH width and height.\r\n // This is the most reliable measure of the object's final rendered dimensions.\r\n const objectBounds = target.getBoundingRect();\r\n const width = Math.round(objectBounds.width * zoom);\r\n const height = Math.round(objectBounds.height * zoom);\r\n\r\n // 5. Apply styles to host DIV - absolute positioning like rtl-test.html\r\n this.hostDiv.style.position = 'absolute';\r\n this.hostDiv.style.left = `${left}px`;\r\n this.hostDiv.style.top = `${top}px`;\r\n this.hostDiv.style.width = `${width}px`;\r\n this.hostDiv.style.height = `${height}px`;\r\n this.hostDiv.style.overflow = 'hidden'; // Prevent scrollbars in host div\r\n // Apply rotation matching Fabric.js object transformation\r\n if (target.angle) {\r\n this.hostDiv.style.transform = `rotate(${target.angle}deg)`;\r\n this.hostDiv.style.transformOrigin = 'top left'; // Match Fabric Textbox behavior\r\n } else {\r\n this.hostDiv.style.transform = '';\r\n this.hostDiv.style.transformOrigin = '';\r\n }\r\n\r\n // 6. Style the textarea - match Fabric's exact rendering with padding\r\n const baseFontSize = target.fontSize ?? 16;\r\n // Use scaleX for font scaling to match Fabric text scaling exactly\r\n const scaleX = target.scaleX || 1;\r\n const finalFontSize = baseFontSize * scaleX * zoom;\r\n const fabricLineHeight = target.lineHeight || 1.16;\r\n // **THE FIX:** Use 'border-box' so the width property includes padding.\r\n // This makes alignment much easier and more reliable.\r\n this.textarea.style.boxSizing = 'border-box';\r\n\r\n // **THE FIX:** Set the textarea width to be IDENTICAL to the host div's width.\r\n // The padding will now be correctly contained *inside* this width.\r\n this.textarea.style.width = `${width}px`;\r\n this.textarea.style.height = '100%'; // Let hostDiv control height\r\n this.textarea.style.padding = `${paddingY}px ${paddingX}px`;\r\n\r\n // Apply all other font and text styles to match Fabric\r\n const letterSpacingPx = ((target.charSpacing || 0) / 1000) * finalFontSize;\r\n \r\n // Special handling for text objects loaded from JSON - ensure they're properly initialized\r\n if (target.dirty !== false && target.initDimensions) {\r\n console.log('🔧 Ensuring text object is properly initialized before overlay editing');\r\n // Force re-initialization if the text object seems to be in a dirty state\r\n target.initDimensions();\r\n }\r\n\r\n this.textarea.style.fontSize = `${finalFontSize}px`;\r\n this.textarea.style.lineHeight = String(fabricLineHeight);\r\n this.textarea.style.fontFamily = target.fontFamily || 'Arial';\r\n this.textarea.style.fontWeight = String(target.fontWeight || 'normal');\r\n this.textarea.style.fontStyle = target.fontStyle || 'normal';\r\n // Handle text alignment and justification\r\n const textAlign = (target as any).textAlign || 'left';\r\n let cssTextAlign = textAlign;\r\n \r\n // Detect text direction from content for proper justify handling\r\n const autoDetectedDirection = this.firstStrongDir(this.textarea.value || '');\r\n \r\n // DEBUG: Log alignment details\r\n console.log('🔍 ALIGNMENT DEBUG:');\r\n console.log(' Fabric textAlign:', textAlign);\r\n console.log(' Fabric direction:', (target as any).direction);\r\n console.log(' Text content:', JSON.stringify(target.text));\r\n console.log(' Detected direction:', autoDetectedDirection);\r\n \r\n // Map fabric.js justify to CSS\r\n if (textAlign.includes('justify')) {\r\n // Try to match fabric.js justify behavior more precisely\r\n try {\r\n // For justify, we need to replicate fabric.js space expansion\r\n // Use CSS justify but with specific settings to match fabric.js better\r\n cssTextAlign = 'justify';\r\n \r\n // Set text-align-last based on justify type and detected direction\r\n // Smart justify: respect detected direction even when fabric alignment doesn't match\r\n if (textAlign === 'justify') {\r\n this.textarea.style.textAlignLast = autoDetectedDirection === 'rtl' ? 'right' : 'left';\r\n } else if (textAlign === 'justify-left') {\r\n // If text is RTL but fabric says justify-left, override to justify-right for better UX\r\n if (autoDetectedDirection === 'rtl') {\r\n this.textarea.style.textAlignLast = 'right';\r\n console.log(' → Overrode justify-left to justify-right for RTL text');\r\n } else {\r\n this.textarea.style.textAlignLast = 'left';\r\n }\r\n } else if (textAlign === 'justify-right') {\r\n // If text is LTR but fabric says justify-right, override to justify-left for better UX \r\n if (autoDetectedDirection === 'ltr') {\r\n this.textarea.style.textAlignLast = 'left';\r\n console.log(' → Overrode justify-right to justify-left for LTR text');\r\n } else {\r\n this.textarea.style.textAlignLast = 'right';\r\n }\r\n } else if (textAlign === 'justify-center') {\r\n this.textarea.style.textAlignLast = 'center';\r\n }\r\n \r\n // Enhanced justify settings for better fabric.js matching\r\n (this.textarea.style as any).textJustify = 'inter-word';\r\n (this.textarea.style as any).wordSpacing = 'normal';\r\n \r\n // Additional CSS properties for better justify matching\r\n this.textarea.style.textAlign = 'justify';\r\n this.textarea.style.textAlignLast = this.textarea.style.textAlignLast;\r\n \r\n // Try to force better justify behavior\r\n (this.textarea.style as any).textJustifyTrim = 'none';\r\n (this.textarea.style as any).textAutospace = 'none';\r\n \r\n console.log(' → Applied justify alignment:', textAlign, 'with last-line:', this.textarea.style.textAlignLast);\r\n } catch (error) {\r\n console.warn(' → Justify setup failed, falling back to standard alignment:', error);\r\n cssTextAlign = textAlign.replace('justify-', '').replace('justify', 'left');\r\n }\r\n } else {\r\n this.textarea.style.textAlignLast = 'auto';\r\n (this.textarea.style as any).textJustify = 'auto';\r\n (this.textarea.style as any).wordSpacing = 'normal';\r\n console.log(' → Applied standard alignment:', cssTextAlign);\r\n }\r\n \r\n this.textarea.style.textAlign = cssTextAlign;\r\n this.textarea.style.color = target.fill?.toString() || '#000';\r\n this.textarea.style.letterSpacing = `${letterSpacingPx}px`;\r\n \r\n // Use the already detected direction from above\r\n const fabricDirection = (target as any).direction;\r\n \r\n // Use auto-detected direction for better BiDi support, but respect fabric direction if it makes sense\r\n this.textarea.style.direction = autoDetectedDirection || fabricDirection || 'ltr';\r\n this.textarea.style.fontVariant = 'normal';\r\n this.textarea.style.fontStretch = 'normal';\r\n this.textarea.style.textRendering = 'auto'; // Changed from 'optimizeLegibility' to match canvas\r\n this.textarea.style.fontKerning = 'normal';\r\n this.textarea.style.fontFeatureSettings = 'normal';\r\n this.textarea.style.fontVariationSettings = 'normal';\r\n this.textarea.style.margin = '0';\r\n this.textarea.style.border = 'none';\r\n this.textarea.style.outline = 'none';\r\n this.textarea.style.background = 'transparent';\r\n this.textarea.style.overflowWrap = 'break-word';\r\n this.textarea.style.whiteSpace = 'pre-wrap';\r\n this.textarea.style.hyphens = 'none';\r\n \r\n // DEBUG: Log final CSS properties\r\n console.log('🎨 FINAL TEXTAREA CSS:');\r\n console.log(' textAlign:', this.textarea.style.textAlign);\r\n console.log(' textAlignLast:', this.textarea.style.textAlignLast);\r\n console.log(' direction:', this.textarea.style.direction);\r\n console.log(' unicodeBidi:', this.textarea.style.unicodeBidi);\r\n console.log(' width:', this.textarea.style.width);\r\n console.log(' textJustify:', (this.textarea.style as any).textJustify);\r\n console.log(' wordSpacing:', (this.textarea.style as any).wordSpacing);\r\n console.log(' whiteSpace:', this.textarea.style.whiteSpace);\r\n \r\n // If justify, log Fabric object dimensions for comparison\r\n if (textAlign.includes('justify')) {\r\n console.log('🔧 FABRIC OBJECT JUSTIFY INFO:');\r\n console.log(' Fabric width:', (target as any).width);\r\n console.log(' Fabric calcTextWidth:', (target as any).calcTextWidth?.());\r\n console.log(' Fabric textAlign:', (target as any).textAlign);\r\n console.log(' Text lines:', (target as any).textLines);\r\n }\r\n \r\n // Debug font properties matching\r\n console.log('🔤 FONT PROPERTIES COMPARISON:');\r\n console.log(' Fabric fontFamily:', target.fontFamily);\r\n console.log(' Fabric fontWeight:', target.fontWeight);\r\n console.log(' Fabric fontStyle:', target.fontStyle);\r\n console.log(' Fabric fontSize:', target.fontSize);\r\n console.log(' → Textarea fontFamily:', this.textarea.style.fontFamily);\r\n console.log(' → Textarea fontWeight:', this.textarea.style.fontWeight);\r\n console.log(' → Textarea fontStyle:', this.textarea.style.fontStyle);\r\n console.log(' → Textarea fontSize:', this.textarea.style.fontSize);\r\n \r\n console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\r\n \r\n // Enhanced font rendering to better match fabric.js canvas rendering\r\n // Default to auto for more natural rendering\r\n (this.textarea.style as any).webkitFontSmoothing = 'auto';\r\n (this.textarea.style as any).mozOsxFontSmoothing = 'auto';\r\n (this.textarea.style as any).fontSmooth = 'auto';\r\n (this.textarea.style as any).textSizeAdjust = 'none';\r\n \r\n // For bold fonts, use subpixel rendering to match canvas thickness better\r\n const fontWeight = String(target.fontWeight || 'normal');\r\n const isBold = fontWeight === 'bold' || fontWeight === '700' || \r\n (parseInt(fontWeight) >= 600);\r\n \r\n if (isBold) {\r\n (this.textarea.style as any).webkitFontSmoothing = 'subpixel-antialiased';\r\n (this.textarea.style as any).mozOsxFontSmoothing = 'unset';\r\n console.log('🔤 Applied enhanced bold rendering for better thickness matching');\r\n }\r\n \r\n console.log('🎨 FONT SMOOTHING APPLIED:');\r\n console.log(' webkitFontSmoothing:', (this.textarea.style as any).webkitFontSmoothing);\r\n console.log(' mozOsxFontSmoothing:', (this.textarea.style as any).mozOsxFontSmoothing);\r\n\r\n\r\n // Initial bounds are set correctly by Fabric.js - don't force update here\r\n }\r\n\r\n /**\r\n * Debug method to compare textarea and canvas object bounding boxes\r\n */\r\n private debugBoundingBoxComparison(): void {\r\n const target = this.target;\r\n const canvas = this.canvas;\r\n const zoom = canvas.getZoom();\r\n\r\n // Get textarea bounding box (in screen coordinates)\r\n const textareaRect = this.textarea.getBoundingClientRect();\r\n const hostRect = this.hostDiv.getBoundingClientRect();\r\n\r\n // Get canvas object bounding box (in screen coordinates)\r\n const canvasBounds = target.getBoundingRect();\r\n const canvasRect = canvas.upperCanvasEl.getBoundingClientRect();\r\n\r\n // Convert canvas object bounds to screen coordinates\r\n const vpt = canvas.viewportTransform;\r\n const screenObjectBounds = {\r\n left: canvasRect.left + canvasBounds.left * zoom + vpt[4],\r\n top: canvasRect.top + canvasBounds.top * zoom + vpt[5],\r\n width: canvasBounds.width * zoom,\r\n height: canvasBounds.height * zoom,\r\n };\r\n\r\n console.log('🔍 BOUNDING BOX COMPARISON:');\r\n console.log('📦 Textarea Rect:', {\r\n left: Math.round(textareaRect.left * 100) / 100,\r\n top: Math.round(textareaRect.top * 100) / 100,\r\n width: Math.round(textareaRect.width * 100) / 100,\r\n height: Math.round(textareaRect.height * 100) / 100,\r\n });\r\n console.log('📦 Host Div Rect:', {\r\n left: Math.round(hostRect.left * 100) / 100,\r\n top: Math.round(hostRect.top * 100) / 100,\r\n width: Math.round(hostRect.width * 100) / 100,\r\n height: Math.round(hostRect.height * 100) / 100,\r\n });\r\n console.log('📦 Canvas Object Bounds (screen):', {\r\n left: Math.round(screenObjectBounds.left * 100) / 100,\r\n top: Math.round(screenObjectBounds.top * 100) / 100,\r\n width: Math.round(screenObjectBounds.width * 100) / 100,\r\n height: Math.round(screenObjectBounds.height * 100) / 100,\r\n });\r\n console.log('📦 Canvas Object Bounds (canvas):', canvasBounds);\r\n\r\n // Calculate differences\r\n const hostVsObject = {\r\n leftDiff:\r\n Math.round((hostRect.left - screenObjectBounds.left) * 100) / 100,\r\n topDiff: Math.round((hostRect.top - screenObjectBounds.top) * 100) / 100,\r\n widthDiff:\r\n Math.round((hostRect.width - screenObjectBounds.width) * 100) / 100,\r\n heightDiff:\r\n Math.round((hostRect.height - screenObjectBounds.height) * 100) / 100,\r\n };\r\n\r\n const textareaVsObject = {\r\n leftDiff:\r\n Math.round((textareaRect.left - screenObjectBounds.left) * 100) / 100,\r\n topDiff:\r\n Math.round((textareaRect.top - screenObjectBounds.top) * 100) / 100,\r\n widthDiff:\r\n Math.round((textareaRect.width - screenObjectBounds.width) * 100) / 100,\r\n heightDiff:\r\n Math.round((textareaRect.height - screenObjectBounds.height) * 100) /\r\n 100,\r\n };\r\n\r\n console.log('📏 Host Div vs Canvas Object Diff:', hostVsObject);\r\n console.log('📏 Textarea vs Canvas Object Diff:', textareaVsObject);\r\n\r\n // Check if they're aligned (within 2px tolerance)\r\n const tolerance = 2;\r\n const hostAligned =\r\n Math.abs(hostVsObject.leftDiff) < tolerance &&\r\n Math.abs(hostVsObject.topDiff) < tolerance &&\r\n Math.abs(hostVsObject.widthDiff) < tolerance &&\r\n Math.abs(hostVsObject.heightDiff) < tolerance;\r\n\r\n const textareaAligned =\r\n Math.abs(textareaVsObject.leftDiff) < tolerance &&\r\n Math.abs(textareaVsObject.topDiff) < tolerance &&\r\n Math.abs(textareaVsObject.widthDiff) < tolerance &&\r\n Math.abs(textareaVsObject.heightDiff) < tolerance;\r\n\r\n console.log(\r\n hostAligned\r\n ? '✅ Host Div ALIGNED with canvas object'\r\n : '❌ Host Div MISALIGNED with canvas object',\r\n );\r\n console.log(\r\n textareaAligned\r\n ? '✅ Textarea ALIGNED with canvas object'\r\n : '❌ Textarea MISALIGNED with canvas object',\r\n );\r\n console.log('🔍 Zoom:', zoom, 'Viewport Transform:', vpt);\r\n console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\r\n }\r\n\r\n /**\r\n * Debug method to compare text wrapping between textarea and Fabric text object\r\n */\r\n private debugTextWrapping(): void {\r\n const target = this.target;\r\n const text = this.textarea.value;\r\n\r\n console.log('📝 TEXT WRAPPING COMPARISON:');\r\n console.log('📄 Text Content:', `\"${text}\"`);\r\n console.log('📄 Text Length:', text.length);\r\n\r\n // Analyze line breaks\r\n const explicitLines = text.split('\\n');\r\n console.log('📄 Explicit Lines (\\\\n):', explicitLines.length);\r\n explicitLines.forEach((line, i) => {\r\n console.log(` Line ${i + 1}: \"${line}\" (${line.length} chars)`);\r\n });\r\n\r\n // Get textarea computed styles for wrapping analysis\r\n const textareaStyles = window.getComputedStyle(this.textarea);\r\n console.log('📐 Textarea Wrapping Styles:');\r\n console.log(' width:', textareaStyles.width);\r\n console.log(' fontSize:', textareaStyles.fontSize);\r\n console.log(' fontFamily:', textareaStyles.fontFamily);\r\n console.log(' fontWeight:', textareaStyles.fontWeight);\r\n console.log(' letterSpacing:', textareaStyles.letterSpacing);\r\n console.log(' lineHeight:', textareaStyles.lineHeight);\r\n console.log(' whiteSpace:', textareaStyles.whiteSpace);\r\n console.log(' wordWrap:', textareaStyles.wordWrap);\r\n console.log(' overflowWrap:', textareaStyles.overflowWrap);\r\n console.log(' direction:', textareaStyles.direction);\r\n console.log(' textAlign:', textareaStyles.textAlign);\r\n\r\n // Get Fabric text object properties for comparison\r\n console.log('📐 Fabric Text Object Properties:');\r\n console.log(' width:', (target as any).width);\r\n console.log(' fontSize:', target.fontSize);\r\n console.log(' fontFamily:', target.fontFamily);\r\n console.log(' fontWeight:', target.fontWeight);\r\n console.log(' charSpacing:', target.charSpacing);\r\n console.log(' lineHeight:', target.lineHeight);\r\n console.log(' direction:', (target as any).direction);\r\n console.log(' textAlign:', (target as any).textAlign);\r\n console.log(' scaleX:', target.scaleX);\r\n console.log(' scaleY:', target.scaleY);\r\n\r\n // Calculate effective dimensions for comparison - use actual rendered width\r\n // **THE FIX:** Use getBoundingRect to get the *actual rendered width* of the Fabric object.\r\n const fabricEffectiveWidth = this.target.getBoundingRect().width;\r\n // Use the exact width set on textarea for comparison\r\n const textareaComputedWidth = parseFloat(\r\n window.getComputedStyle(this.textarea).width,\r\n );\r\n const textareaEffectiveWidth =\r\n textareaComputedWidth / this.canvas.getZoom();\r\n const widthDiff = Math.abs(textareaEffectiveWidth - fabricEffectiveWidth);\r\n\r\n console.log('📏 Effective Width Comparison:');\r\n console.log(' Textarea Effective Width:', textareaEffectiveWidth);\r\n console.log(' Fabric Effective Width:', fabricEffectiveWidth);\r\n console.log(' Width Difference:', widthDiff.toFixed(2) + 'px');\r\n console.log(\r\n widthDiff < 1\r\n ? '✅ Widths MATCH for wrapping'\r\n : '❌ Width MISMATCH may cause different wrapping',\r\n );\r\n\r\n // Check text direction and bidi handling\r\n const hasRTLText =\r\n /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/.test(\r\n text,\r\n );\r\n const hasBidiText = /[\\u0590-\\u06FF]/.test(text) && /[a-zA-Z]/.test(text);\r\n\r\n console.log('🌍 Text Direction Analysis:');\r\n console.log(' Has RTL characters:', hasRTLText);\r\n console.log(' Has mixed Bidi text:', hasBidiText);\r\n console.log(' Textarea direction:', textareaStyles.direction);\r\n console.log(' Fabric direction:', (target as any).direction || 'auto');\r\n console.log(' Textarea unicodeBidi:', textareaStyles.unicodeBidi);\r\n\r\n // Measure actual rendered line count\r\n const textareaScrollHeight = this.textarea.scrollHeight;\r\n const textareaLineHeight =\r\n parseFloat(textareaStyles.lineHeight) ||\r\n parseFloat(textareaStyles.fontSize) * 1.2;\r\n const estimatedTextareaLines = Math.round(\r\n textareaScrollHeight / textareaLineHeight,\r\n );\r\n\r\n console.log('📊 Line Count Analysis:');\r\n console.log(' Textarea scrollHeight:', textareaScrollHeight);\r\n console.log(' Textarea lineHeight:', textareaLineHeight);\r\n console.log(' Estimated rendered lines:', estimatedTextareaLines);\r\n console.log(' Explicit line breaks:', explicitLines.length);\r\n\r\n if (estimatedTextareaLines > explicitLines.length) {\r\n console.log('🔄 Text wrapping detected in textarea');\r\n console.log(\r\n ' Wrapped lines:',\r\n estimatedTextareaLines - explicitLines.length,\r\n );\r\n } else {\r\n console.log('📏 No text wrapping in textarea');\r\n }\r\n\r\n console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\r\n }\r\n\r\n\r\n /**\r\n * Focus the textarea and position cursor at end\r\n */\r\n private focusTextarea(): void {\r\n // For overlay editing, we want to keep the object in \"selection mode\" not \"editing mode\"\r\n // This means keeping selected=true and isEditing=false to show boundaries\r\n\r\n // Hide the text content only (not the entire object)\r\n this.target.opacity = 0.01; // Nearly transparent but not fully hidden\r\n\r\n // Ensure object stays selected to show boundaries\r\n (this.target as any).selected = true;\r\n (this.target as any).isEditing = false; // Override any editing state\r\n\r\n // Make sure controls are enabled and movement is allowed during overlay editing\r\n this.target.set({\r\n hasControls: true,\r\n hasBorders: true,\r\n selectable: true,\r\n lockMovementX: false,\r\n lockMovementY: false,\r\n });\r\n\r\n // Keep as active object\r\n this.canvas.setActiveObject(this.target);\r\n\r\n this.canvas.requestRenderAll();\r\n this.target.setCoords();\r\n this.applyOverlayStyle();\r\n\r\n // Fix character mapping issues after JSON loading for browser-wrapped fonts\r\n if ((this.target as any)._fixCharacterMappingAfterJsonLoad) {\r\n (this.target as any)._fixCharacterMappingAfterJsonLoad();\r\n }\r\n\r\n this.textarea.focus();\r\n\r\n this.textarea.setSelectionRange(\r\n this.textarea.value.length,\r\n this.textarea.value.length,\r\n );\r\n\r\n // Ensure the object stays selected even after textarea focus\r\n this.canvas.setActiveObject(this.target);\r\n this.canvas.requestRenderAll();\r\n }\r\n\r\n /**\r\n * Refresh overlay positioning and styling\r\n */\r\n public refresh(): void {\r\n if (this.isDestroyed) return;\r\n this.updatePosition();\r\n // Don't update object bounds on every refresh - only when textarea actually resizes\r\n }\r\n\r\n /**\r\n * Destroy the overlay editor\r\n */\r\n public destroy(commit: boolean = true): void {\r\n if (this.isDestroyed) return;\r\n this.isDestroyed = true;\r\n\r\n this.removeEventListeners();\r\n\r\n // Restore target visibility before handling commit/cancel\r\n if ((this.target as any).__overlayEditor === this) {\r\n (this.target as any).__overlayEditor = undefined;\r\n\r\n // Restore original opacity\r\n if ((this.target as any).__overlayOriginalOpacity !== undefined) {\r\n this.target.opacity = (this.target as any).__overlayOriginalOpacity;\r\n delete (this.target as any).__overlayOriginalOpacity;\r\n }\r\n }\r\n\r\n // Remove DOM first\r\n if (this.hostDiv.parentNode) {\r\n this.hostDiv.parentNode.removeChild(this.hostDiv);\r\n }\r\n\r\n // Handle commit/cancel after restoring visibility\r\n if (commit && !this.isComposing) {\r\n const finalText = this.textarea.value;\r\n \r\n // Auto-detect text direction and update fabric object if needed\r\n const detectedDirection = this.firstStrongDir(finalText);\r\n const currentDirection = (this.target as any).direction || 'ltr';\r\n \r\n if (detectedDirection && detectedDirection !== currentDirection) {\r\n console.log(`🔄 Overlay Exit: Auto-detected direction change from \"${currentDirection}\" to \"${detectedDirection}\"`);\r\n console.log(` Text content: \"${finalText.substring(0, 50)}...\"`);\r\n \r\n // Update the fabric object's direction\r\n (this.target as any).set('direction', detectedDirection);\r\n \r\n // Force a re-render to apply the direction change\r\n this.canvas.requestRenderAll();\r\n \r\n console.log(`✅ Fabric object direction updated to: ${detectedDirection}`);\r\n } else {\r\n console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: \"${finalText.substring(0, 30)}...\"`);\r\n }\r\n \r\n if (this.onCommit) {\r\n this.onCommit(finalText);\r\n }\r\n } else if (!commit && this.onCancel) {\r\n this.onCancel();\r\n }\r\n\r\n // Note: Don't restore object cursors since IText manages all cursors in _restoreEditingProps\r\n // Let the IText editing system handle proper restoration of all cursor properties\r\n\r\n // Note: Canvas cursors are restored by IText's _restoreEditingProps method\r\n // Force a cursor refresh by triggering _setCursorFromEvent\r\n setTimeout(() => {\r\n this.canvas.upperCanvasEl.style.cursor = '';\r\n // Trigger cursor refresh on next mouse move\r\n this.canvas.setCursor(this.canvas.defaultCursor);\r\n }, 0);\r\n\r\n // Request canvas re-render\r\n this.canvas.requestRenderAll();\r\n }\r\n\r\n // Event handlers\r\n private handleInput(): void {\r\n if (!this.isComposing && this.target.text !== this.textarea.value) {\r\n // Live update target text\r\n this.target.text = this.textarea.value;\r\n\r\n\r\n // Auto-resize textarea to match new content\r\n this.autoResizeTextarea();\r\n\r\n // Ensure object stays in selection mode (not editing mode) to show controls\r\n (this.target as any).selected = true;\r\n (this.target as any).isEditing = false;\r\n this.canvas.setActiveObject(this.target);\r\n this.canvas.requestRenderAll();\r\n }\r\n }\r\n\r\n private autoResizeTextarea(): void {\r\n // Store the scroll position and the container's old height for comparison.\r\n const scrollTop = this.textarea.scrollTop;\r\n const oldHeight = parseFloat(this.hostDiv.style.height || '0');\r\n\r\n // 1. **Force a reliable reflow.**\r\n // First, reset the textarea's height to a minimal value. This is the crucial step\r\n // that forces the browser to recalculate the content's height from scratch,\r\n // ignoring the hostDiv's larger, stale height.\r\n this.textarea.style.height = '1px';\r\n\r\n // 2. Read the now-accurate scrollHeight. This value reflects the minimum\r\n // height required for the content, whether it's single or multi-line.\r\n const scrollHeight = this.textarea.scrollHeight;\r\n\r\n // A small buffer for rendering consistency across browsers.\r\n const buffer = 2;\r\n const newHeight = scrollHeight + buffer;\r\n\r\n // Check if the height has changed significantly.\r\n const heightChanged = Math.abs(newHeight - oldHeight) > 1;\r\n\r\n // 4. Only update heights and object bounds if there was a change.\r\n if (heightChanged) {\r\n this.textarea.style.height = `${newHeight}px`;\r\n this.hostDiv.style.height = `${newHeight}px`;\r\n this.updateObjectBounds();\r\n } else {\r\n // If no significant change, ensure the textarea's height matches the container\r\n // to prevent any minor visual misalignment.\r\n this.textarea.style.height = this.hostDiv.style.height;\r\n }\r\n\r\n // 5. Restore the original scroll position.\r\n this.textarea.scrollTop = scrollTop;\r\n }\r\n\r\n private handleKeyDown(e: KeyboardEvent): void {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n this.destroy(false); // Cancel\r\n } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {\r\n e.preventDefault();\r\n this.destroy(true); // Commit\r\n } else if (\r\n e.key === 'Enter' ||\r\n e.key === 'Backspace' ||\r\n e.key === 'Delete'\r\n ) {\r\n // For keys that might change the height, schedule a resize check\r\n // Use both immediate and delayed checks to catch all scenarios\r\n requestAnimationFrame(() => {\r\n if (!this.isDestroyed) {\r\n this.autoResizeTextarea();\r\n }\r\n });\r\n setTimeout(() => {\r\n if (!this.isDestroyed) {\r\n this.autoResizeTextarea();\r\n }\r\n }, 10); // Small delay to ensure DOM is updated\r\n }\r\n }\r\n\r\n private handleFocus(): void {\r\n // Focus handler - could be used for future enhancements\r\n }\r\n\r\n private handleBlur(): void {\r\n // Commit on blur unless we're in composition mode\r\n if (!this.isComposing) {\r\n this.destroy(true);\r\n }\r\n }\r\n\r\n private handleCompositionStart(): void {\r\n this.isComposing = true;\r\n }\r\n\r\n private handleCompositionEnd(): void {\r\n this.isComposing = false;\r\n this.handleInput(); // Update text after composition\r\n }\r\n\r\n private handleAfterRender(): void {\r\n this.refresh();\r\n }\r\n\r\n private handleMouseWheel(): void {\r\n this.refresh();\r\n }\r\n\r\n private handleMouseDown(e: TPointerEventInfo): void {\r\n if (e.target !== this.target) {\r\n this.destroy(true);\r\n }\r\n }\r\n\r\n /**\r\n * Setup detection for viewport changes (zoom/pan)\r\n */\r\n private setupViewportChangeDetection(): void {\r\n // Store original methods\r\n (this.canvas as any).__originalSetZoom = this.canvas.setZoom;\r\n (this.canvas as any).__originalSetViewportTransform =\r\n this.canvas.setViewportTransform;\r\n (this.canvas as any).__overlayEditor = this;\r\n\r\n // Override setZoom to detect zoom changes\r\n const originalSetZoom = this.canvas.setZoom.bind(this.canvas);\r\n this.canvas.setZoom = (value: number) => {\r\n const result = originalSetZoom(value);\r\n if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {\r\n this.refresh();\r\n }\r\n return result;\r\n };\r\n\r\n // Override setViewportTransform to detect pan changes\r\n const originalSetViewportTransform = this.canvas.setViewportTransform.bind(\r\n this.canvas,\r\n );\r\n this.canvas.setViewportTransform = (vpt: TMat2D) => {\r\n const result = originalSetViewportTransform(vpt);\r\n if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {\r\n this.refresh();\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n /**\r\n * Restore original viewport methods\r\n */\r\n private restoreViewportChangeDetection(): void {\r\n if ((this.canvas as any).__originalSetZoom) {\r\n this.canvas.setZoom = (this.canvas as any).__originalSetZoom;\r\n delete (this.canvas as any).__originalSetZoom;\r\n }\r\n if ((this.canvas as any).__originalSetViewportTransform) {\r\n this.canvas.setViewportTransform = (\r\n this.canvas as any\r\n ).__originalSetViewportTransform;\r\n delete (this.canvas as any).__originalSetViewportTransform;\r\n }\r\n delete (this.canvas as any).__overlayEditor;\r\n }\r\n}\r\n\r\n/**\r\n * Enter overlay text editing mode for a text object\r\n */\r\nexport function enterTextOverlayEdit(\r\n canvas: Canvas,\r\n target: FabricText | IText | Textbox,\r\n options?: {\r\n onCommit?: (text: string) => void;\r\n onCancel?: () => void;\r\n },\r\n): OverlayEditor {\r\n // If already in overlay editing, destroy existing editor first\r\n if ((target as any).__overlayEditor) {\r\n (target as any).__overlayEditor.destroy(false);\r\n }\r\n\r\n // Store original opacity so we can restore it later\r\n (target as any).__overlayOriginalOpacity = target.opacity;\r\n\r\n const editor = new OverlayEditor({\r\n canvas,\r\n target,\r\n onCommit: options?.onCommit,\r\n onCancel: options?.onCancel,\r\n });\r\n\r\n // We no longer change fill, so no need to store it\r\n\r\n // Store reference on target for cleanup\r\n (target as any).__overlayEditor = editor;\r\n\r\n return editor;\r\n}\r\n\r\n/**\r\n * Check if a text object is currently being edited with overlay editor\r\n */\r\nexport function isInOverlayEdit(target: FabricText | IText | Textbox): boolean {\r\n return !!(target as any).__overlayEditor?.isActive;\r\n}\r\n"],"names":["OverlayEditor","constructor","options","_defineProperty","onInput","handleInput","bind","onKeyDown","handleKeyDown","onBlur","handleBlur","onCompositionStart","handleCompositionStart","onCompositionEnd","handleCompositionEnd","onAfterRender","handleAfterRender","onMouseWheel","handleMouseWheel","onFocus","handleFocus","onMouseDown","handleMouseDown","canvas","target","onCommit","onCancel","lastText","text","container","getCanvasContainer","createOverlayDOM","attachEventListeners","refresh","focusTextarea","upperCanvas","upperCanvasEl","parentElement","Error","style","position","hostDiv","document","createElement","pointerEvents","zIndex","transformOrigin","textarea","left","top","margin","resize","hasArabicText","test","hasLatinText","isLTRDirection","direction","unicodeBidi","caretColor","border","padding","background","outline","overflow","whiteSpace","wordBreak","overflowWrap","userSelect","textTransform","opacity","value","appendChild","body","addEventListener","boundHandlers","on","setupViewportChangeDetection","removeEventListeners","removeEventListener","off","restoreViewportChangeDetection","updatePosition","applyOverlayStyle","updateObjectBounds","isDestroyed","zoom","getZoom","parseFloat","width","currentHeight","height","heightDiff","Math","abs","threshold","setCoords","dirty","requestRenderAll","requestAnimationFrame","console","log","letterSpacingPx","charSpacing","fontSize","firstStrongDir","rtlRegex","_target$fontSize","_target$fill","aCoords","canvasEl","canvasRect","getBoundingClientRect","scrollX","window","pageXOffset","scrollY","pageYOffset","vpt","viewportTransform","paddingX","scaleX","paddingY","scaleY","screenPoint","transformPoint","x","tl","y","objectBounds","getBoundingRect","round","angle","transform","baseFontSize","finalFontSize","fabricLineHeight","lineHeight","boxSizing","initDimensions","String","fontFamily","fontWeight","fontStyle","textAlign","cssTextAlign","autoDetectedDirection","JSON","stringify","includes","textAlignLast","textJustify","wordSpacing","textJustifyTrim","textAutospace","error","warn","replace","color","fill","toString","letterSpacing","fabricDirection","fontVariant","fontStretch","textRendering","fontKerning","fontFeatureSettings","fontVariationSettings","hyphens","_calcTextWidth","_ref","calcTextWidth","call","textLines","webkitFontSmoothing","mozOsxFontSmoothing","fontSmooth","textSizeAdjust","isBold","parseInt","debugBoundingBoxComparison","textareaRect","hostRect","canvasBounds","screenObjectBounds","hostVsObject","leftDiff","topDiff","widthDiff","textareaVsObject","tolerance","hostAligned","textareaAligned","debugTextWrapping","length","explicitLines","split","forEach","line","i","textareaStyles","getComputedStyle","wordWrap","fabricEffectiveWidth","textareaComputedWidth","textareaEffectiveWidth","toFixed","hasRTLText","hasBidiText","textareaScrollHeight","scrollHeight","textareaLineHeight","estimatedTextareaLines","selected","isEditing","set","hasControls","hasBorders","selectable","lockMovementX","lockMovementY","setActiveObject","_fixCharacterMappingAfterJsonLoad","focus","setSelectionRange","destroy","commit","arguments","undefined","__overlayEditor","__overlayOriginalOpacity","parentNode","removeChild","isComposing","finalText","detectedDirection","currentDirection","substring","setTimeout","cursor","setCursor","defaultCursor","autoResizeTextarea","scrollTop","oldHeight","buffer","newHeight","heightChanged","e","key","preventDefault","ctrlKey","metaKey","__originalSetZoom","setZoom","__originalSetViewportTransform","setViewportTransform","originalSetZoom","result","originalSetViewportTransform","enterTextOverlayEdit","editor"],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Script Detection and Font Metrics Utilities
3
+ *
4
+ * Provides script-aware text measurement for improved bounding box calculations
5
+ * across different writing systems like Arabic, Latin, CJK, etc.
6
+ */
7
+ export type ScriptType = 'latin' | 'arabic' | 'hebrew' | 'cjk' | 'devanagari' | 'thai' | 'mixed' | 'unknown';
8
+ /**
9
+ * Reference characters for font metrics by script
10
+ */
11
+ export declare const SCRIPT_REFERENCE_CHARS: {
12
+ readonly latin: "M";
13
+ readonly arabic: "ا";
14
+ readonly hebrew: "ם";
15
+ readonly cjk: "中";
16
+ readonly devanagari: "म";
17
+ readonly thai: "ก";
18
+ readonly mixed: "M";
19
+ readonly unknown: "M";
20
+ };
21
+ /**
22
+ * Script-specific fallback proportions for font metrics
23
+ */
24
+ export declare const SCRIPT_METRICS: {
25
+ readonly latin: {
26
+ readonly ascentRatio: 0.91;
27
+ readonly descentRatio: 0.21;
28
+ readonly actualAscentRatio: 0.716;
29
+ readonly actualDescentRatio: 0;
30
+ };
31
+ readonly arabic: {
32
+ readonly ascentRatio: 0.85;
33
+ readonly descentRatio: 0.3;
34
+ readonly actualAscentRatio: 0.65;
35
+ readonly actualDescentRatio: 0.25;
36
+ };
37
+ readonly hebrew: {
38
+ readonly ascentRatio: 0.88;
39
+ readonly descentRatio: 0.25;
40
+ readonly actualAscentRatio: 0.7;
41
+ readonly actualDescentRatio: 0.15;
42
+ };
43
+ readonly cjk: {
44
+ readonly ascentRatio: 0.88;
45
+ readonly descentRatio: 0.12;
46
+ readonly actualAscentRatio: 0.8;
47
+ readonly actualDescentRatio: 0.1;
48
+ };
49
+ readonly devanagari: {
50
+ readonly ascentRatio: 1;
51
+ readonly descentRatio: 0.25;
52
+ readonly actualAscentRatio: 0.85;
53
+ readonly actualDescentRatio: 0.15;
54
+ };
55
+ readonly thai: {
56
+ readonly ascentRatio: 0.95;
57
+ readonly descentRatio: 0.3;
58
+ readonly actualAscentRatio: 0.75;
59
+ readonly actualDescentRatio: 0.2;
60
+ };
61
+ readonly mixed: {
62
+ readonly ascentRatio: 0.91;
63
+ readonly descentRatio: 0.21;
64
+ readonly actualAscentRatio: 0.716;
65
+ readonly actualDescentRatio: 0;
66
+ };
67
+ readonly unknown: {
68
+ readonly ascentRatio: 0.91;
69
+ readonly descentRatio: 0.21;
70
+ readonly actualAscentRatio: 0.716;
71
+ readonly actualDescentRatio: 0;
72
+ };
73
+ };
74
+ /**
75
+ * Detect the primary script of a text string
76
+ */
77
+ export declare function detectScript(text: string): ScriptType;
78
+ /**
79
+ * Get reference character for a given script
80
+ */
81
+ export declare function getScriptReferenceChar(script: ScriptType): string;
82
+ /**
83
+ * Get script-specific metric ratios
84
+ */
85
+ export declare function getScriptMetrics(script: ScriptType): {
86
+ readonly ascentRatio: 0.91;
87
+ readonly descentRatio: 0.21;
88
+ readonly actualAscentRatio: 0.716;
89
+ readonly actualDescentRatio: 0;
90
+ } | {
91
+ readonly ascentRatio: 0.85;
92
+ readonly descentRatio: 0.3;
93
+ readonly actualAscentRatio: 0.65;
94
+ readonly actualDescentRatio: 0.25;
95
+ } | {
96
+ readonly ascentRatio: 0.88;
97
+ readonly descentRatio: 0.25;
98
+ readonly actualAscentRatio: 0.7;
99
+ readonly actualDescentRatio: 0.15;
100
+ } | {
101
+ readonly ascentRatio: 0.88;
102
+ readonly descentRatio: 0.12;
103
+ readonly actualAscentRatio: 0.8;
104
+ readonly actualDescentRatio: 0.1;
105
+ } | {
106
+ readonly ascentRatio: 1;
107
+ readonly descentRatio: 0.25;
108
+ readonly actualAscentRatio: 0.85;
109
+ readonly actualDescentRatio: 0.15;
110
+ } | {
111
+ readonly ascentRatio: 0.95;
112
+ readonly descentRatio: 0.3;
113
+ readonly actualAscentRatio: 0.75;
114
+ readonly actualDescentRatio: 0.2;
115
+ } | {
116
+ readonly ascentRatio: 0.91;
117
+ readonly descentRatio: 0.21;
118
+ readonly actualAscentRatio: 0.716;
119
+ readonly actualDescentRatio: 0;
120
+ } | {
121
+ readonly ascentRatio: 0.91;
122
+ readonly descentRatio: 0.21;
123
+ readonly actualAscentRatio: 0.716;
124
+ readonly actualDescentRatio: 0;
125
+ };
126
+ /**
127
+ * Detect script for a single grapheme/character
128
+ */
129
+ export declare function detectGraphemeScript(grapheme: string): ScriptType;
130
+ /**
131
+ * Check if text contains complex script characteristics
132
+ */
133
+ export declare function isComplexScript(script: ScriptType): boolean;
134
+ /**
135
+ * Check if script requires special glyph shaping
136
+ */
137
+ export declare function requiresGlyphShaping(script: ScriptType): boolean;
138
+ /**
139
+ * Get optimal sample text for measuring font metrics
140
+ */
141
+ export declare function getSampleTextForScript(script: ScriptType): string;
142
+ //# sourceMappingURL=scriptUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scriptUtils.d.ts","sourceRoot":"","sources":["../../../src/text/scriptUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAyC7G;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;CASzB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAiDrD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAEjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAajE"}
@@ -0,0 +1,2 @@
1
+ const t={latin:[[0,127],[128,255],[256,383],[384,591],[7680,7935]],arabic:[[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]],hebrew:[[1424,1535],[64285,64335]],cjk:[[11904,12031],[12288,12351],[13312,19903],[19968,40959],[63744,64255],[131072,173791]],devanagari:[[2304,2431],[43232,43263]],thai:[[3584,3711]]},a={latin:"M",arabic:"ا",hebrew:"ם",cjk:"中",devanagari:"म",thai:"ก",mixed:"M",unknown:"M"},n={latin:{ascentRatio:.91,descentRatio:.21,actualAscentRatio:.716,actualDescentRatio:0},arabic:{ascentRatio:.85,descentRatio:.3,actualAscentRatio:.65,actualDescentRatio:.25},hebrew:{ascentRatio:.88,descentRatio:.25,actualAscentRatio:.7,actualDescentRatio:.15},cjk:{ascentRatio:.88,descentRatio:.12,actualAscentRatio:.8,actualDescentRatio:.1},devanagari:{ascentRatio:1,descentRatio:.25,actualAscentRatio:.85,actualDescentRatio:.15},thai:{ascentRatio:.95,descentRatio:.3,actualAscentRatio:.75,actualDescentRatio:.2},mixed:{ascentRatio:.91,descentRatio:.21,actualAscentRatio:.716,actualDescentRatio:0},unknown:{ascentRatio:.91,descentRatio:.21,actualAscentRatio:.716,actualDescentRatio:0}};function e(a){if(!a||0===a.length)return"unknown";const n={latin:0,arabic:0,hebrew:0,cjk:0,devanagari:0,thai:0,mixed:0,unknown:0};for(const e of a){const a=e.codePointAt(0);if(void 0===a)continue;let c=!1;for(const[e,i]of Object.entries(t)){for(const[t,o]of i)if(a>=t&&a<=o){n[e]++,c=!0;break}if(c)break}c||n.unknown++}const e=Object.entries(n);e.sort((t,a)=>a[1]-t[1]);const[c,i]=e[0],[o,s]=e[1];return i>0&&s>.3*i?"mixed":"unknown"===c&&0===i?"latin":c}function c(t){return a[t]}function i(t){return n[t]}function o(t){return e(t)}function s(t){return["arabic","hebrew","devanagari","thai"].includes(t)}export{n as SCRIPT_METRICS,a as SCRIPT_REFERENCE_CHARS,o as detectGraphemeScript,e as detectScript,i as getScriptMetrics,c as getScriptReferenceChar,s as isComplexScript};
2
+ //# sourceMappingURL=scriptUtils.min.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scriptUtils.min.mjs","sources":["../../../src/text/scriptUtils.ts"],"sourcesContent":["/**\n * Script Detection and Font Metrics Utilities\n * \n * Provides script-aware text measurement for improved bounding box calculations\n * across different writing systems like Arabic, Latin, CJK, etc.\n */\n\nexport type ScriptType = 'latin' | 'arabic' | 'hebrew' | 'cjk' | 'devanagari' | 'thai' | 'mixed' | 'unknown';\n\n/**\n * Unicode ranges for different scripts\n */\nconst SCRIPT_RANGES = {\n latin: [\n [0x0000, 0x007F], // Basic Latin\n [0x0080, 0x00FF], // Latin-1 Supplement\n [0x0100, 0x017F], // Latin Extended-A\n [0x0180, 0x024F], // Latin Extended-B\n [0x1E00, 0x1EFF], // Latin Extended Additional\n ],\n arabic: [\n [0x0600, 0x06FF], // Arabic\n [0x0750, 0x077F], // Arabic Supplement\n [0x08A0, 0x08FF], // Arabic Extended-A\n [0xFB50, 0xFDFF], // Arabic Presentation Forms-A\n [0xFE70, 0xFEFF], // Arabic Presentation Forms-B\n ],\n hebrew: [\n [0x0590, 0x05FF], // Hebrew\n [0xFB1D, 0xFB4F], // Hebrew Presentation Forms\n ],\n cjk: [\n [0x2E80, 0x2EFF], // CJK Radicals Supplement\n [0x3000, 0x303F], // CJK Symbols and Punctuation\n [0x3400, 0x4DBF], // CJK Extension A\n [0x4E00, 0x9FFF], // CJK Unified Ideographs\n [0xF900, 0xFAFF], // CJK Compatibility Ideographs\n [0x20000, 0x2A6DF], // CJK Extension B\n ],\n devanagari: [\n [0x0900, 0x097F], // Devanagari\n [0xA8E0, 0xA8FF], // Devanagari Extended\n ],\n thai: [\n [0x0E00, 0x0E7F], // Thai\n ],\n};\n\n/**\n * Reference characters for font metrics by script\n */\nexport const SCRIPT_REFERENCE_CHARS = {\n latin: 'M',\n arabic: 'ا', // Arabic Letter Alef\n hebrew: 'ם', // Hebrew Letter Final Mem\n cjk: '中', // Chinese character for \"middle\"\n devanagari: 'म', // Devanagari Letter Ma\n thai: 'ก', // Thai Letter Ko Kai\n mixed: 'M', // Fallback to Latin\n unknown: 'M', // Fallback to Latin\n} as const;\n\n/**\n * Script-specific fallback proportions for font metrics\n */\nexport const SCRIPT_METRICS = {\n latin: {\n ascentRatio: 0.91,\n descentRatio: 0.21,\n actualAscentRatio: 0.716,\n actualDescentRatio: 0.0,\n },\n arabic: {\n ascentRatio: 0.85, // Arabic fonts typically have lower ascenders\n descentRatio: 0.30, // But deeper descenders for diacritics\n actualAscentRatio: 0.65,\n actualDescentRatio: 0.25,\n },\n hebrew: {\n ascentRatio: 0.88,\n descentRatio: 0.25,\n actualAscentRatio: 0.70,\n actualDescentRatio: 0.15,\n },\n cjk: {\n ascentRatio: 0.88, // CJK fonts are more square\n descentRatio: 0.12,\n actualAscentRatio: 0.80,\n actualDescentRatio: 0.10,\n },\n devanagari: {\n ascentRatio: 1.0, // Devanagari has tall ascenders\n descentRatio: 0.25,\n actualAscentRatio: 0.85,\n actualDescentRatio: 0.15,\n },\n thai: {\n ascentRatio: 0.95, // Thai has tall ascenders\n descentRatio: 0.30, // And some descenders\n actualAscentRatio: 0.75,\n actualDescentRatio: 0.20,\n },\n mixed: {\n ascentRatio: 0.91,\n descentRatio: 0.21,\n actualAscentRatio: 0.716,\n actualDescentRatio: 0.0,\n },\n unknown: {\n ascentRatio: 0.91,\n descentRatio: 0.21,\n actualAscentRatio: 0.716,\n actualDescentRatio: 0.0,\n },\n} as const;\n\n/**\n * Detect the primary script of a text string\n */\nexport function detectScript(text: string): ScriptType {\n if (!text || text.length === 0) return 'unknown';\n\n const scriptCounts: Record<ScriptType, number> = {\n latin: 0,\n arabic: 0,\n hebrew: 0,\n cjk: 0,\n devanagari: 0,\n thai: 0,\n mixed: 0,\n unknown: 0,\n };\n\n for (const char of text) {\n const codePoint = char.codePointAt(0);\n if (codePoint === undefined) continue;\n\n let detected = false;\n \n for (const [script, ranges] of Object.entries(SCRIPT_RANGES)) {\n for (const [start, end] of ranges) {\n if (codePoint >= start && codePoint <= end) {\n scriptCounts[script as ScriptType]++;\n detected = true;\n break;\n }\n }\n if (detected) break;\n }\n\n if (!detected) {\n scriptCounts.unknown++;\n }\n }\n\n // Find the script with the highest count\n const entries = Object.entries(scriptCounts) as [ScriptType, number][];\n entries.sort((a, b) => b[1] - a[1]);\n\n const [topScript, topCount] = entries[0];\n const [secondScript, secondCount] = entries[1];\n\n // If we have significant counts in multiple scripts, consider it mixed\n if (topCount > 0 && secondCount > topCount * 0.3) {\n return 'mixed';\n }\n\n return topScript === 'unknown' && topCount === 0 ? 'latin' : topScript;\n}\n\n/**\n * Get reference character for a given script\n */\nexport function getScriptReferenceChar(script: ScriptType): string {\n return SCRIPT_REFERENCE_CHARS[script];\n}\n\n/**\n * Get script-specific metric ratios\n */\nexport function getScriptMetrics(script: ScriptType) {\n return SCRIPT_METRICS[script];\n}\n\n/**\n * Detect script for a single grapheme/character\n */\nexport function detectGraphemeScript(grapheme: string): ScriptType {\n return detectScript(grapheme);\n}\n\n/**\n * Check if text contains complex script characteristics\n */\nexport function isComplexScript(script: ScriptType): boolean {\n return ['arabic', 'hebrew', 'devanagari', 'thai'].includes(script);\n}\n\n/**\n * Check if script requires special glyph shaping\n */\nexport function requiresGlyphShaping(script: ScriptType): boolean {\n return ['arabic', 'devanagari', 'thai'].includes(script);\n}\n\n/**\n * Get optimal sample text for measuring font metrics\n */\nexport function getSampleTextForScript(script: ScriptType): string {\n const samples = {\n latin: 'AaBbCcMmWwXxYyZz',\n arabic: 'أابتجحدرسعفقلمنهويء',\n hebrew: 'אבגדהוחטיכלמנעפקרשת',\n cjk: '中文字体测试样本',\n devanagari: 'अआइईउऊएऐओऔकगचजट',\n thai: 'กขคงจชดตนบปพมยรลวสหอฮ',\n mixed: 'AaBbCcMmWwXxYyZz',\n unknown: 'AaBbCcMmWwXxYyZz',\n };\n \n return samples[script];\n}"],"names":["SCRIPT_RANGES","latin","arabic","hebrew","cjk","devanagari","thai","SCRIPT_REFERENCE_CHARS","mixed","unknown","SCRIPT_METRICS","ascentRatio","descentRatio","actualAscentRatio","actualDescentRatio","detectScript","text","length","scriptCounts","char","codePoint","codePointAt","undefined","detected","script","ranges","Object","entries","start","end","sort","a","b","topScript","topCount","secondScript","secondCount","getScriptReferenceChar","getScriptMetrics","detectGraphemeScript","grapheme","isComplexScript","includes"],"mappings":"AAYA,MAAMA,EAAgB,CACpBC,MAAO,CACL,CAAC,EAAQ,KACT,CAAC,IAAQ,KACT,CAAC,IAAQ,KACT,CAAC,IAAQ,KACT,CAAC,KAAQ,OAEXC,OAAQ,CACN,CAAC,KAAQ,MACT,CAAC,KAAQ,MACT,CAAC,KAAQ,MACT,CAAC,MAAQ,OACT,CAAC,MAAQ,QAEXC,OAAQ,CACN,CAAC,KAAQ,MACT,CAAC,MAAQ,QAEXC,IAAK,CACH,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,OAAS,SAEZC,WAAY,CACV,CAAC,KAAQ,MACT,CAAC,MAAQ,QAEXC,KAAM,CACJ,CAAC,KAAQ,QAOAC,EAAyB,CACpCN,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,IAAK,IACLC,WAAY,IACZC,KAAM,IACNE,MAAO,IACPC,QAAS,KAMEC,EAAiB,CAC5BT,MAAO,CACLU,YAAa,IACbC,aAAc,IACdC,kBAAmB,KACnBC,mBAAoB,GAEtBZ,OAAQ,CACNS,YAAa,IACbC,aAAc,GACdC,kBAAmB,IACnBC,mBAAoB,KAEtBX,OAAQ,CACNQ,YAAa,IACbC,aAAc,IACdC,kBAAmB,GACnBC,mBAAoB,KAEtBV,IAAK,CACHO,YAAa,IACbC,aAAc,IACdC,kBAAmB,GACnBC,mBAAoB,IAEtBT,WAAY,CACVM,YAAa,EACbC,aAAc,IACdC,kBAAmB,IACnBC,mBAAoB,KAEtBR,KAAM,CACJK,YAAa,IACbC,aAAc,GACdC,kBAAmB,IACnBC,mBAAoB,IAEtBN,MAAO,CACLG,YAAa,IACbC,aAAc,IACdC,kBAAmB,KACnBC,mBAAoB,GAEtBL,QAAS,CACPE,YAAa,IACbC,aAAc,IACdC,kBAAmB,KACnBC,mBAAoB,IAOjB,SAASC,EAAaC,GAC3B,IAAKA,GAAwB,IAAhBA,EAAKC,OAAc,MAAO,UAEvC,MAAMC,EAA2C,CAC/CjB,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,IAAK,EACLC,WAAY,EACZC,KAAM,EACNE,MAAO,EACPC,QAAS,GAGX,IAAK,MAAMU,KAAQH,EAAM,CACvB,MAAMI,EAAYD,EAAKE,YAAY,GACnC,QAAkBC,IAAdF,EAAyB,SAE7B,IAAIG,GAAW,EAEf,IAAK,MAAOC,EAAQC,KAAWC,OAAOC,QAAQ3B,GAAgB,CAC5D,IAAK,MAAO4B,EAAOC,KAAQJ,EACzB,GAAIL,GAAaQ,GAASR,GAAaS,EAAK,CAC1CX,EAAaM,KACbD,GAAW,EACX,KACF,CAEF,GAAIA,EAAU,KAChB,CAEKA,GACHL,EAAaT,SAEjB,CAGA,MAAMkB,EAAUD,OAAOC,QAAQT,GAC/BS,EAAQG,KAAK,CAACC,EAAGC,IAAMA,EAAE,GAAKD,EAAE,IAEhC,MAAOE,EAAWC,GAAYP,EAAQ,IAC/BQ,EAAcC,GAAeT,EAAQ,GAG5C,OAAIO,EAAW,GAAKE,EAAyB,GAAXF,EACzB,QAGY,YAAdD,GAAwC,IAAbC,EAAiB,QAAUD,CAC/D,CAKO,SAASI,EAAuBb,GACrC,OAAOjB,EAAuBiB,EAChC,CAKO,SAASc,EAAiBd,GAC/B,OAAOd,EAAec,EACxB,CAKO,SAASe,EAAqBC,GACnC,OAAOzB,EAAayB,EACtB,CAKO,SAASC,EAAgBjB,GAC9B,MAAO,CAAC,SAAU,SAAU,aAAc,QAAQkB,SAASlB,EAC7D"}