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

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/.prettierignore +0 -0
  8. package/.prettierrc +0 -0
  9. package/0 +0 -0
  10. package/CHANGELOG.md +0 -0
  11. package/CODE_OF_CONDUCT.md +0 -0
  12. package/CONTRIBUTING.md +0 -0
  13. package/LICENSE +0 -0
  14. package/OVERLAY_EDITOR_MIGRATION.md +0 -0
  15. package/README.md +0 -0
  16. package/SECURITY.md +0 -0
  17. package/debug/{konva-master → konva}/CHANGELOG.md +1 -2
  18. package/debug/{konva-master → konva}/LICENSE +0 -0
  19. package/debug/{konva-master → konva}/README.md +3 -7
  20. package/debug/{konva-master → konva}/gulpfile.mjs +0 -0
  21. package/debug/{konva-master → konva}/package.json +1 -1
  22. package/debug/{konva-master → konva}/release.sh +4 -1
  23. package/debug/{konva-master → konva}/resources/doc-includes/ContainerParams.txt +0 -0
  24. package/debug/{konva-master → konva}/resources/doc-includes/NodeParams.txt +0 -0
  25. package/debug/{konva-master → konva}/resources/doc-includes/ShapeParams.txt +0 -0
  26. package/debug/{konva-master → konva}/resources/jsdoc.conf.json +0 -0
  27. package/debug/{konva-master → konva}/rollup.config.mjs +0 -0
  28. package/debug/{konva-master → konva}/src/Animation.ts +0 -0
  29. package/debug/{konva-master → konva}/src/BezierFunctions.ts +0 -0
  30. package/debug/{konva-master → konva}/src/Canvas.ts +0 -37
  31. package/debug/{konva-master → konva}/src/Container.ts +0 -0
  32. package/debug/{konva-master → konva}/src/Context.ts +0 -0
  33. package/debug/{konva-master → konva}/src/Core.ts +0 -0
  34. package/debug/{konva-master → konva}/src/DragAndDrop.ts +0 -0
  35. package/debug/{konva-master → konva}/src/Factory.ts +0 -0
  36. package/debug/{konva-master → konva}/src/FastLayer.ts +0 -0
  37. package/debug/{konva-master → konva}/src/Global.ts +0 -0
  38. package/debug/{konva-master → konva}/src/Group.ts +0 -0
  39. package/debug/{konva-master → konva}/src/Layer.ts +0 -0
  40. package/debug/{konva-master → konva}/src/Node.ts +0 -0
  41. package/debug/{konva-master → konva}/src/PointerEvents.ts +0 -0
  42. package/debug/{konva-master → konva}/src/Shape.ts +0 -0
  43. package/debug/{konva-master → konva}/src/Stage.ts +0 -0
  44. package/debug/{konva-master → konva}/src/Tween.ts +0 -0
  45. package/debug/{konva-master → konva}/src/Util.ts +0 -0
  46. package/debug/{konva-master → konva}/src/Validators.ts +0 -0
  47. package/debug/{konva-master → konva}/src/_CoreInternals.ts +0 -0
  48. package/debug/{konva-master → konva}/src/_FullInternals.ts +0 -0
  49. package/debug/{konva-master → konva}/src/canvas-backend.ts +0 -0
  50. package/debug/{konva-master → konva}/src/filters/Blur.ts +0 -0
  51. package/debug/{konva-master → konva}/src/filters/Brighten.ts +0 -0
  52. package/debug/{konva-master → konva}/src/filters/Brightness.ts +0 -0
  53. package/debug/{konva-master → konva}/src/filters/Contrast.ts +0 -0
  54. package/debug/{konva-master → konva}/src/filters/Emboss.ts +0 -0
  55. package/debug/{konva-master → konva}/src/filters/Enhance.ts +0 -0
  56. package/debug/{konva-master → konva}/src/filters/Grayscale.ts +0 -0
  57. package/debug/{konva-master → konva}/src/filters/HSL.ts +0 -0
  58. package/debug/{konva-master → konva}/src/filters/HSV.ts +0 -0
  59. package/debug/{konva-master → konva}/src/filters/Invert.ts +0 -0
  60. package/debug/{konva-master → konva}/src/filters/Kaleidoscope.ts +0 -0
  61. package/debug/{konva-master → konva}/src/filters/Mask.ts +0 -0
  62. package/debug/{konva-master → konva}/src/filters/Noise.ts +0 -0
  63. package/debug/{konva-master → konva}/src/filters/Pixelate.ts +0 -0
  64. package/debug/{konva-master → konva}/src/filters/Posterize.ts +0 -0
  65. package/debug/{konva-master → konva}/src/filters/RGB.ts +0 -0
  66. package/debug/{konva-master → konva}/src/filters/RGBA.ts +0 -0
  67. package/debug/{konva-master → konva}/src/filters/Sepia.ts +0 -0
  68. package/debug/{konva-master → konva}/src/filters/Solarize.ts +0 -0
  69. package/debug/{konva-master → konva}/src/filters/Threshold.ts +0 -0
  70. package/debug/{konva-master → konva}/src/index.ts +0 -0
  71. package/debug/{konva-master → konva}/src/shapes/Arc.ts +0 -0
  72. package/debug/{konva-master → konva}/src/shapes/Arrow.ts +0 -0
  73. package/debug/{konva-master → konva}/src/shapes/Circle.ts +0 -0
  74. package/debug/{konva-master → konva}/src/shapes/Ellipse.ts +0 -0
  75. package/debug/{konva-master → konva}/src/shapes/Image.ts +0 -0
  76. package/debug/{konva-master → konva}/src/shapes/Label.ts +0 -0
  77. package/debug/{konva-master → konva}/src/shapes/Line.ts +0 -0
  78. package/debug/{konva-master → konva}/src/shapes/Path.ts +0 -0
  79. package/debug/{konva-master → konva}/src/shapes/Rect.ts +0 -0
  80. package/debug/{konva-master → konva}/src/shapes/RegularPolygon.ts +0 -0
  81. package/debug/{konva-master → konva}/src/shapes/Ring.ts +0 -0
  82. package/debug/{konva-master → konva}/src/shapes/Sprite.ts +0 -0
  83. package/debug/{konva-master → konva}/src/shapes/Star.ts +0 -0
  84. package/debug/{konva-master → konva}/src/shapes/Text.ts +2 -2
  85. package/debug/{konva-master → konva}/src/shapes/TextPath.ts +0 -0
  86. package/debug/{konva-master → konva}/src/shapes/Transformer.ts +0 -0
  87. package/debug/{konva-master → konva}/src/shapes/Wedge.ts +0 -0
  88. package/debug/{konva-master → konva}/src/skia-backend.ts +0 -0
  89. package/debug/{konva-master → konva}/src/types.ts +0 -0
  90. package/debug/{konva-master → konva}/tsconfig.json +0 -0
  91. package/debug/{konva-master → konva}/tsconfig.test.json +0 -0
  92. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
  93. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
  94. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  95. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
  96. package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
  97. package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  98. package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
  99. package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
  100. package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  101. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  102. package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  103. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  104. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  105. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  106. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  107. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  108. package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  109. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  110. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  111. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  112. package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
  113. package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  114. package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
  115. package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
  116. package/dist/extensions/index.d.ts +0 -0
  117. package/dist/extensions/index.d.ts.map +0 -0
  118. package/dist/fabric.d.ts +0 -0
  119. package/dist/fabric.d.ts.map +0 -0
  120. package/dist/fabric.min.mjs +0 -0
  121. package/dist/fabric.min.mjs.map +0 -0
  122. package/dist/fabric.mjs +0 -0
  123. package/dist/fabric.mjs.map +0 -0
  124. package/dist/index.d.ts +0 -0
  125. package/dist/index.d.ts.map +0 -0
  126. package/dist/index.js +1046 -721
  127. package/dist/index.js.map +1 -1
  128. package/dist/index.min.js +1 -1
  129. package/dist/index.min.js.map +1 -1
  130. package/dist/index.min.mjs +1 -1
  131. package/dist/index.min.mjs.map +1 -1
  132. package/dist/index.mjs +1046 -721
  133. package/dist/index.mjs.map +1 -1
  134. package/dist/index.node.cjs +1046 -721
  135. package/dist/index.node.cjs.map +1 -1
  136. package/dist/index.node.d.ts +0 -0
  137. package/dist/index.node.d.ts.map +0 -0
  138. package/dist/index.node.mjs +1046 -721
  139. package/dist/index.node.mjs.map +1 -1
  140. package/dist/package.json.min.mjs +1 -1
  141. package/dist/package.json.min.mjs.map +0 -0
  142. package/dist/package.json.mjs +1 -1
  143. package/dist/package.json.mjs.map +0 -0
  144. package/dist/src/ClassRegistry.d.ts +0 -0
  145. package/dist/src/ClassRegistry.d.ts.map +0 -0
  146. package/dist/src/ClassRegistry.min.mjs +0 -0
  147. package/dist/src/ClassRegistry.min.mjs.map +0 -0
  148. package/dist/src/ClassRegistry.mjs +0 -0
  149. package/dist/src/ClassRegistry.mjs.map +0 -0
  150. package/dist/src/Collection.d.ts +0 -0
  151. package/dist/src/Collection.d.ts.map +0 -0
  152. package/dist/src/Collection.min.mjs +0 -0
  153. package/dist/src/Collection.min.mjs.map +0 -0
  154. package/dist/src/Collection.mjs +0 -0
  155. package/dist/src/Collection.mjs.map +0 -0
  156. package/dist/src/CommonMethods.d.ts +0 -0
  157. package/dist/src/CommonMethods.d.ts.map +0 -0
  158. package/dist/src/CommonMethods.min.mjs +0 -0
  159. package/dist/src/CommonMethods.min.mjs.map +0 -0
  160. package/dist/src/CommonMethods.mjs +0 -0
  161. package/dist/src/CommonMethods.mjs.map +0 -0
  162. package/dist/src/EventTypeDefs.d.ts +0 -0
  163. package/dist/src/EventTypeDefs.d.ts.map +0 -0
  164. package/dist/src/Intersection.d.ts +0 -0
  165. package/dist/src/Intersection.d.ts.map +0 -0
  166. package/dist/src/Intersection.min.mjs +0 -0
  167. package/dist/src/Intersection.min.mjs.map +0 -0
  168. package/dist/src/Intersection.mjs +0 -0
  169. package/dist/src/Intersection.mjs.map +0 -0
  170. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  171. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  172. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
  173. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
  174. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
  175. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
  176. package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
  177. package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  178. package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
  179. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
  180. package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
  181. package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
  182. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  183. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  184. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
  185. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
  186. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
  211. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
  212. package/dist/src/LayoutManager/constants.d.ts +0 -0
  213. package/dist/src/LayoutManager/constants.d.ts.map +0 -0
  214. package/dist/src/LayoutManager/constants.min.mjs +0 -0
  215. package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
  216. package/dist/src/LayoutManager/constants.mjs +0 -0
  217. package/dist/src/LayoutManager/constants.mjs.map +0 -0
  218. package/dist/src/LayoutManager/index.d.ts +0 -0
  219. package/dist/src/LayoutManager/index.d.ts.map +0 -0
  220. package/dist/src/LayoutManager/types.d.ts +0 -0
  221. package/dist/src/LayoutManager/types.d.ts.map +0 -0
  222. package/dist/src/Observable.d.ts +0 -0
  223. package/dist/src/Observable.d.ts.map +0 -0
  224. package/dist/src/Observable.min.mjs +0 -0
  225. package/dist/src/Observable.min.mjs.map +0 -0
  226. package/dist/src/Observable.mjs +0 -0
  227. package/dist/src/Observable.mjs.map +0 -0
  228. package/dist/src/Pattern/Pattern.d.ts +0 -0
  229. package/dist/src/Pattern/Pattern.d.ts.map +0 -0
  230. package/dist/src/Pattern/Pattern.min.mjs +0 -0
  231. package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
  232. package/dist/src/Pattern/Pattern.mjs +0 -0
  233. package/dist/src/Pattern/Pattern.mjs.map +0 -0
  234. package/dist/src/Pattern/index.d.ts +0 -0
  235. package/dist/src/Pattern/index.d.ts.map +0 -0
  236. package/dist/src/Pattern/types.d.ts +0 -0
  237. package/dist/src/Pattern/types.d.ts.map +0 -0
  238. package/dist/src/Point.d.ts +0 -0
  239. package/dist/src/Point.d.ts.map +0 -0
  240. package/dist/src/Point.min.mjs +0 -0
  241. package/dist/src/Point.min.mjs.map +0 -0
  242. package/dist/src/Point.mjs +0 -0
  243. package/dist/src/Point.mjs.map +0 -0
  244. package/dist/src/Shadow.d.ts +0 -0
  245. package/dist/src/Shadow.d.ts.map +0 -0
  246. package/dist/src/Shadow.min.mjs +0 -0
  247. package/dist/src/Shadow.min.mjs.map +0 -0
  248. package/dist/src/Shadow.mjs +0 -0
  249. package/dist/src/Shadow.mjs.map +0 -0
  250. package/dist/src/brushes/BaseBrush.d.ts +0 -0
  251. package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
  252. package/dist/src/brushes/BaseBrush.min.mjs +0 -0
  253. package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
  254. package/dist/src/brushes/BaseBrush.mjs +0 -0
  255. package/dist/src/brushes/BaseBrush.mjs.map +0 -0
  256. package/dist/src/brushes/CircleBrush.d.ts +0 -0
  257. package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
  258. package/dist/src/brushes/CircleBrush.min.mjs +0 -0
  259. package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
  260. package/dist/src/brushes/CircleBrush.mjs +0 -0
  261. package/dist/src/brushes/CircleBrush.mjs.map +0 -0
  262. package/dist/src/brushes/PatternBrush.d.ts +0 -0
  263. package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
  264. package/dist/src/brushes/PatternBrush.min.mjs +0 -0
  265. package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
  266. package/dist/src/brushes/PatternBrush.mjs +0 -0
  267. package/dist/src/brushes/PatternBrush.mjs.map +0 -0
  268. package/dist/src/brushes/PencilBrush.d.ts +0 -0
  269. package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
  270. package/dist/src/brushes/PencilBrush.min.mjs +0 -0
  271. package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
  272. package/dist/src/brushes/PencilBrush.mjs +0 -0
  273. package/dist/src/brushes/PencilBrush.mjs.map +0 -0
  274. package/dist/src/brushes/SprayBrush.d.ts +0 -0
  275. package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
  276. package/dist/src/brushes/SprayBrush.min.mjs +0 -0
  277. package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
  278. package/dist/src/brushes/SprayBrush.mjs +0 -0
  279. package/dist/src/brushes/SprayBrush.mjs.map +0 -0
  280. package/dist/src/brushes/typedefs.d.ts +0 -0
  281. package/dist/src/brushes/typedefs.d.ts.map +0 -0
  282. package/dist/src/cache.d.ts +0 -0
  283. package/dist/src/cache.d.ts.map +0 -0
  284. package/dist/src/cache.min.mjs +0 -0
  285. package/dist/src/cache.min.mjs.map +0 -0
  286. package/dist/src/cache.mjs +0 -0
  287. package/dist/src/cache.mjs.map +0 -0
  288. package/dist/src/canvas/Canvas.d.ts +0 -0
  289. package/dist/src/canvas/Canvas.d.ts.map +0 -0
  290. package/dist/src/canvas/Canvas.min.mjs +0 -0
  291. package/dist/src/canvas/Canvas.min.mjs.map +0 -0
  292. package/dist/src/canvas/Canvas.mjs +0 -0
  293. package/dist/src/canvas/Canvas.mjs.map +0 -0
  294. package/dist/src/canvas/CanvasOptions.d.ts +0 -0
  295. package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
  296. package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
  297. package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
  298. package/dist/src/canvas/CanvasOptions.mjs +0 -0
  299. package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
  300. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  301. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  302. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
  303. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
  304. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
  305. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
  306. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  307. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  308. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
  309. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
  310. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
  311. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
  312. package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
  313. package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
  314. package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
  315. package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
  316. package/dist/src/canvas/DOMManagers/util.mjs +0 -0
  317. package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
  318. package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
  319. package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
  320. package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
  321. package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
  322. package/dist/src/canvas/SelectableCanvas.mjs +0 -0
  323. package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
  324. package/dist/src/canvas/StaticCanvas.d.ts +0 -0
  325. package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
  326. package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
  327. package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
  328. package/dist/src/canvas/StaticCanvas.mjs +0 -0
  329. package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
  330. package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
  331. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  332. package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
  333. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
  334. package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
  335. package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
  336. package/dist/src/canvas/TextEditingManager.d.ts +0 -0
  337. package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
  338. package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
  339. package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
  340. package/dist/src/canvas/TextEditingManager.mjs +0 -0
  341. package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
  342. package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
  343. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
  344. package/dist/src/color/Color.d.ts +0 -0
  345. package/dist/src/color/Color.d.ts.map +0 -0
  346. package/dist/src/color/Color.min.mjs +0 -0
  347. package/dist/src/color/Color.min.mjs.map +0 -0
  348. package/dist/src/color/Color.mjs +0 -0
  349. package/dist/src/color/Color.mjs.map +0 -0
  350. package/dist/src/color/color_map.d.ts +0 -0
  351. package/dist/src/color/color_map.d.ts.map +0 -0
  352. package/dist/src/color/color_map.min.mjs +0 -0
  353. package/dist/src/color/color_map.min.mjs.map +0 -0
  354. package/dist/src/color/color_map.mjs +0 -0
  355. package/dist/src/color/color_map.mjs.map +0 -0
  356. package/dist/src/color/constants.d.ts +0 -0
  357. package/dist/src/color/constants.d.ts.map +0 -0
  358. package/dist/src/color/constants.min.mjs +0 -0
  359. package/dist/src/color/constants.min.mjs.map +0 -0
  360. package/dist/src/color/constants.mjs +0 -0
  361. package/dist/src/color/constants.mjs.map +0 -0
  362. package/dist/src/color/typedefs.d.ts +0 -0
  363. package/dist/src/color/typedefs.d.ts.map +0 -0
  364. package/dist/src/color/util.d.ts +0 -0
  365. package/dist/src/color/util.d.ts.map +0 -0
  366. package/dist/src/color/util.min.mjs +0 -0
  367. package/dist/src/color/util.min.mjs.map +0 -0
  368. package/dist/src/color/util.mjs +0 -0
  369. package/dist/src/color/util.mjs.map +0 -0
  370. package/dist/src/config.d.ts +0 -0
  371. package/dist/src/config.d.ts.map +0 -0
  372. package/dist/src/config.min.mjs +0 -0
  373. package/dist/src/config.min.mjs.map +0 -0
  374. package/dist/src/config.mjs +0 -0
  375. package/dist/src/config.mjs.map +0 -0
  376. package/dist/src/constants.d.ts +0 -0
  377. package/dist/src/constants.d.ts.map +0 -0
  378. package/dist/src/constants.min.mjs +0 -0
  379. package/dist/src/constants.min.mjs.map +0 -0
  380. package/dist/src/constants.mjs +0 -0
  381. package/dist/src/constants.mjs.map +0 -0
  382. package/dist/src/controls/Control.d.ts +0 -0
  383. package/dist/src/controls/Control.d.ts.map +0 -0
  384. package/dist/src/controls/Control.min.mjs +0 -0
  385. package/dist/src/controls/Control.min.mjs.map +0 -0
  386. package/dist/src/controls/Control.mjs +0 -0
  387. package/dist/src/controls/Control.mjs.map +0 -0
  388. package/dist/src/controls/changeHeight.d.ts +0 -0
  389. package/dist/src/controls/changeHeight.d.ts.map +0 -0
  390. package/dist/src/controls/changeHeight.min.mjs +2 -0
  391. package/dist/src/controls/changeHeight.min.mjs.map +1 -0
  392. package/dist/src/controls/changeHeight.mjs +36 -0
  393. package/dist/src/controls/changeHeight.mjs.map +1 -0
  394. package/dist/src/controls/changeWidth.d.ts +0 -0
  395. package/dist/src/controls/changeWidth.d.ts.map +0 -0
  396. package/dist/src/controls/changeWidth.min.mjs +0 -0
  397. package/dist/src/controls/changeWidth.min.mjs.map +0 -0
  398. package/dist/src/controls/changeWidth.mjs +0 -0
  399. package/dist/src/controls/changeWidth.mjs.map +0 -0
  400. package/dist/src/controls/commonControls.d.ts +0 -0
  401. package/dist/src/controls/commonControls.d.ts.map +0 -0
  402. package/dist/src/controls/commonControls.min.mjs +0 -0
  403. package/dist/src/controls/commonControls.min.mjs.map +0 -0
  404. package/dist/src/controls/commonControls.mjs +0 -0
  405. package/dist/src/controls/commonControls.mjs.map +0 -0
  406. package/dist/src/controls/controlRendering.d.ts +0 -0
  407. package/dist/src/controls/controlRendering.d.ts.map +0 -0
  408. package/dist/src/controls/controlRendering.min.mjs +0 -0
  409. package/dist/src/controls/controlRendering.min.mjs.map +0 -0
  410. package/dist/src/controls/controlRendering.mjs +0 -0
  411. package/dist/src/controls/controlRendering.mjs.map +0 -0
  412. package/dist/src/controls/drag.d.ts +0 -0
  413. package/dist/src/controls/drag.d.ts.map +0 -0
  414. package/dist/src/controls/drag.min.mjs +0 -0
  415. package/dist/src/controls/drag.min.mjs.map +0 -0
  416. package/dist/src/controls/drag.mjs +0 -0
  417. package/dist/src/controls/drag.mjs.map +0 -0
  418. package/dist/src/controls/fireEvent.d.ts +0 -0
  419. package/dist/src/controls/fireEvent.d.ts.map +0 -0
  420. package/dist/src/controls/fireEvent.min.mjs +0 -0
  421. package/dist/src/controls/fireEvent.min.mjs.map +0 -0
  422. package/dist/src/controls/fireEvent.mjs +0 -0
  423. package/dist/src/controls/fireEvent.mjs.map +0 -0
  424. package/dist/src/controls/index.d.ts +0 -0
  425. package/dist/src/controls/index.d.ts.map +0 -0
  426. package/dist/src/controls/index.min.mjs +0 -0
  427. package/dist/src/controls/index.min.mjs.map +0 -0
  428. package/dist/src/controls/index.mjs +0 -0
  429. package/dist/src/controls/index.mjs.map +0 -0
  430. package/dist/src/controls/pathControl.d.ts +0 -0
  431. package/dist/src/controls/pathControl.d.ts.map +0 -0
  432. package/dist/src/controls/pathControl.min.mjs +0 -0
  433. package/dist/src/controls/pathControl.min.mjs.map +0 -0
  434. package/dist/src/controls/pathControl.mjs +0 -0
  435. package/dist/src/controls/pathControl.mjs.map +0 -0
  436. package/dist/src/controls/polyControl.d.ts +0 -0
  437. package/dist/src/controls/polyControl.d.ts.map +0 -0
  438. package/dist/src/controls/polyControl.min.mjs +0 -0
  439. package/dist/src/controls/polyControl.min.mjs.map +0 -0
  440. package/dist/src/controls/polyControl.mjs +0 -0
  441. package/dist/src/controls/polyControl.mjs.map +0 -0
  442. package/dist/src/controls/rotate.d.ts +0 -0
  443. package/dist/src/controls/rotate.d.ts.map +0 -0
  444. package/dist/src/controls/rotate.min.mjs +0 -0
  445. package/dist/src/controls/rotate.min.mjs.map +0 -0
  446. package/dist/src/controls/rotate.mjs +0 -0
  447. package/dist/src/controls/rotate.mjs.map +0 -0
  448. package/dist/src/controls/scale.d.ts +0 -0
  449. package/dist/src/controls/scale.d.ts.map +0 -0
  450. package/dist/src/controls/scale.min.mjs +0 -0
  451. package/dist/src/controls/scale.min.mjs.map +0 -0
  452. package/dist/src/controls/scale.mjs +0 -0
  453. package/dist/src/controls/scale.mjs.map +0 -0
  454. package/dist/src/controls/scaleSkew.d.ts +0 -0
  455. package/dist/src/controls/scaleSkew.d.ts.map +0 -0
  456. package/dist/src/controls/scaleSkew.min.mjs +0 -0
  457. package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
  458. package/dist/src/controls/scaleSkew.mjs +0 -0
  459. package/dist/src/controls/scaleSkew.mjs.map +0 -0
  460. package/dist/src/controls/skew.d.ts +0 -0
  461. package/dist/src/controls/skew.d.ts.map +0 -0
  462. package/dist/src/controls/skew.min.mjs +0 -0
  463. package/dist/src/controls/skew.min.mjs.map +0 -0
  464. package/dist/src/controls/skew.mjs +0 -0
  465. package/dist/src/controls/skew.mjs.map +0 -0
  466. package/dist/src/controls/util.d.ts +0 -0
  467. package/dist/src/controls/util.d.ts.map +0 -0
  468. package/dist/src/controls/util.min.mjs +0 -0
  469. package/dist/src/controls/util.min.mjs.map +0 -0
  470. package/dist/src/controls/util.mjs +0 -0
  471. package/dist/src/controls/util.mjs.map +0 -0
  472. package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
  473. package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  474. package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
  475. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
  476. package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
  477. package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
  478. package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  479. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  480. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
  481. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
  482. package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
  483. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
  484. package/dist/src/env/browser.d.ts +0 -0
  485. package/dist/src/env/browser.d.ts.map +0 -0
  486. package/dist/src/env/browser.min.mjs +0 -0
  487. package/dist/src/env/browser.min.mjs.map +0 -0
  488. package/dist/src/env/browser.mjs +0 -0
  489. package/dist/src/env/browser.mjs.map +0 -0
  490. package/dist/src/env/index.d.ts +0 -0
  491. package/dist/src/env/index.d.ts.map +0 -0
  492. package/dist/src/env/index.min.mjs +0 -0
  493. package/dist/src/env/index.min.mjs.map +0 -0
  494. package/dist/src/env/index.mjs +0 -0
  495. package/dist/src/env/index.mjs.map +0 -0
  496. package/dist/src/env/node.d.ts +0 -0
  497. package/dist/src/env/node.d.ts.map +0 -0
  498. package/dist/src/env/types.d.ts +0 -0
  499. package/dist/src/env/types.d.ts.map +0 -0
  500. package/dist/src/filters/BaseFilter.d.ts +0 -0
  501. package/dist/src/filters/BaseFilter.d.ts.map +0 -0
  502. package/dist/src/filters/BaseFilter.min.mjs +0 -0
  503. package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
  504. package/dist/src/filters/BaseFilter.mjs +0 -0
  505. package/dist/src/filters/BaseFilter.mjs.map +0 -0
  506. package/dist/src/filters/BlendColor.d.ts +0 -0
  507. package/dist/src/filters/BlendColor.d.ts.map +0 -0
  508. package/dist/src/filters/BlendColor.min.mjs +0 -0
  509. package/dist/src/filters/BlendColor.min.mjs.map +0 -0
  510. package/dist/src/filters/BlendColor.mjs +0 -0
  511. package/dist/src/filters/BlendColor.mjs.map +0 -0
  512. package/dist/src/filters/BlendImage.d.ts +0 -0
  513. package/dist/src/filters/BlendImage.d.ts.map +0 -0
  514. package/dist/src/filters/BlendImage.min.mjs +0 -0
  515. package/dist/src/filters/BlendImage.min.mjs.map +0 -0
  516. package/dist/src/filters/BlendImage.mjs +0 -0
  517. package/dist/src/filters/BlendImage.mjs.map +0 -0
  518. package/dist/src/filters/Blur.d.ts +0 -0
  519. package/dist/src/filters/Blur.d.ts.map +0 -0
  520. package/dist/src/filters/Blur.min.mjs +0 -0
  521. package/dist/src/filters/Blur.min.mjs.map +0 -0
  522. package/dist/src/filters/Blur.mjs +0 -0
  523. package/dist/src/filters/Blur.mjs.map +0 -0
  524. package/dist/src/filters/Boilerplate.d.ts +0 -0
  525. package/dist/src/filters/Boilerplate.d.ts.map +0 -0
  526. package/dist/src/filters/Brightness.d.ts +0 -0
  527. package/dist/src/filters/Brightness.d.ts.map +0 -0
  528. package/dist/src/filters/Brightness.min.mjs +0 -0
  529. package/dist/src/filters/Brightness.min.mjs.map +0 -0
  530. package/dist/src/filters/Brightness.mjs +0 -0
  531. package/dist/src/filters/Brightness.mjs.map +0 -0
  532. package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  533. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  534. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
  535. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
  536. package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
  537. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
  538. package/dist/src/filters/ColorMatrix.d.ts +0 -0
  539. package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
  540. package/dist/src/filters/ColorMatrix.min.mjs +0 -0
  541. package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
  542. package/dist/src/filters/ColorMatrix.mjs +0 -0
  543. package/dist/src/filters/ColorMatrix.mjs.map +0 -0
  544. package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
  545. package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  546. package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
  547. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
  548. package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
  549. package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
  550. package/dist/src/filters/Composed.d.ts +0 -0
  551. package/dist/src/filters/Composed.d.ts.map +0 -0
  552. package/dist/src/filters/Composed.min.mjs +0 -0
  553. package/dist/src/filters/Composed.min.mjs.map +0 -0
  554. package/dist/src/filters/Composed.mjs +0 -0
  555. package/dist/src/filters/Composed.mjs.map +0 -0
  556. package/dist/src/filters/Contrast.d.ts +0 -0
  557. package/dist/src/filters/Contrast.d.ts.map +0 -0
  558. package/dist/src/filters/Contrast.min.mjs +0 -0
  559. package/dist/src/filters/Contrast.min.mjs.map +0 -0
  560. package/dist/src/filters/Contrast.mjs +0 -0
  561. package/dist/src/filters/Contrast.mjs.map +0 -0
  562. package/dist/src/filters/Convolute.d.ts +0 -0
  563. package/dist/src/filters/Convolute.d.ts.map +0 -0
  564. package/dist/src/filters/Convolute.min.mjs +0 -0
  565. package/dist/src/filters/Convolute.min.mjs.map +0 -0
  566. package/dist/src/filters/Convolute.mjs +0 -0
  567. package/dist/src/filters/Convolute.mjs.map +0 -0
  568. package/dist/src/filters/FilterBackend.d.ts +0 -0
  569. package/dist/src/filters/FilterBackend.d.ts.map +0 -0
  570. package/dist/src/filters/FilterBackend.min.mjs +0 -0
  571. package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
  572. package/dist/src/filters/FilterBackend.mjs +0 -0
  573. package/dist/src/filters/FilterBackend.mjs.map +0 -0
  574. package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
  575. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  576. package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
  577. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
  578. package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
  579. package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
  580. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
  581. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
  582. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  583. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  584. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
  585. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
  586. package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
  587. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
  588. package/dist/src/filters/Gamma.d.ts +0 -0
  589. package/dist/src/filters/Gamma.d.ts.map +0 -0
  590. package/dist/src/filters/Gamma.min.mjs +0 -0
  591. package/dist/src/filters/Gamma.min.mjs.map +0 -0
  592. package/dist/src/filters/Gamma.mjs +0 -0
  593. package/dist/src/filters/Gamma.mjs.map +0 -0
  594. package/dist/src/filters/Grayscale.d.ts +0 -0
  595. package/dist/src/filters/Grayscale.d.ts.map +0 -0
  596. package/dist/src/filters/Grayscale.min.mjs +0 -0
  597. package/dist/src/filters/Grayscale.min.mjs.map +0 -0
  598. package/dist/src/filters/Grayscale.mjs +0 -0
  599. package/dist/src/filters/Grayscale.mjs.map +0 -0
  600. package/dist/src/filters/HueRotation.d.ts +0 -0
  601. package/dist/src/filters/HueRotation.d.ts.map +0 -0
  602. package/dist/src/filters/HueRotation.min.mjs +0 -0
  603. package/dist/src/filters/HueRotation.min.mjs.map +0 -0
  604. package/dist/src/filters/HueRotation.mjs +0 -0
  605. package/dist/src/filters/HueRotation.mjs.map +0 -0
  606. package/dist/src/filters/Invert.d.ts +0 -0
  607. package/dist/src/filters/Invert.d.ts.map +0 -0
  608. package/dist/src/filters/Invert.min.mjs +0 -0
  609. package/dist/src/filters/Invert.min.mjs.map +0 -0
  610. package/dist/src/filters/Invert.mjs +0 -0
  611. package/dist/src/filters/Invert.mjs.map +0 -0
  612. package/dist/src/filters/Noise.d.ts +0 -0
  613. package/dist/src/filters/Noise.d.ts.map +0 -0
  614. package/dist/src/filters/Noise.min.mjs +0 -0
  615. package/dist/src/filters/Noise.min.mjs.map +0 -0
  616. package/dist/src/filters/Noise.mjs +0 -0
  617. package/dist/src/filters/Noise.mjs.map +0 -0
  618. package/dist/src/filters/Pixelate.d.ts +0 -0
  619. package/dist/src/filters/Pixelate.d.ts.map +0 -0
  620. package/dist/src/filters/Pixelate.min.mjs +0 -0
  621. package/dist/src/filters/Pixelate.min.mjs.map +0 -0
  622. package/dist/src/filters/Pixelate.mjs +0 -0
  623. package/dist/src/filters/Pixelate.mjs.map +0 -0
  624. package/dist/src/filters/RemoveColor.d.ts +0 -0
  625. package/dist/src/filters/RemoveColor.d.ts.map +0 -0
  626. package/dist/src/filters/RemoveColor.min.mjs +0 -0
  627. package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
  628. package/dist/src/filters/RemoveColor.mjs +0 -0
  629. package/dist/src/filters/RemoveColor.mjs.map +0 -0
  630. package/dist/src/filters/Resize.d.ts +0 -0
  631. package/dist/src/filters/Resize.d.ts.map +0 -0
  632. package/dist/src/filters/Resize.min.mjs +0 -0
  633. package/dist/src/filters/Resize.min.mjs.map +0 -0
  634. package/dist/src/filters/Resize.mjs +0 -0
  635. package/dist/src/filters/Resize.mjs.map +0 -0
  636. package/dist/src/filters/Saturation.d.ts +0 -0
  637. package/dist/src/filters/Saturation.d.ts.map +0 -0
  638. package/dist/src/filters/Saturation.min.mjs +0 -0
  639. package/dist/src/filters/Saturation.min.mjs.map +0 -0
  640. package/dist/src/filters/Saturation.mjs +0 -0
  641. package/dist/src/filters/Saturation.mjs.map +0 -0
  642. package/dist/src/filters/Vibrance.d.ts +0 -0
  643. package/dist/src/filters/Vibrance.d.ts.map +0 -0
  644. package/dist/src/filters/Vibrance.min.mjs +0 -0
  645. package/dist/src/filters/Vibrance.min.mjs.map +0 -0
  646. package/dist/src/filters/Vibrance.mjs +0 -0
  647. package/dist/src/filters/Vibrance.mjs.map +0 -0
  648. package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
  649. package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  650. package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
  651. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
  652. package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
  653. package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
  654. package/dist/src/filters/filters.d.ts +0 -0
  655. package/dist/src/filters/filters.d.ts.map +0 -0
  656. package/dist/src/filters/filters.min.mjs +0 -0
  657. package/dist/src/filters/filters.min.mjs.map +0 -0
  658. package/dist/src/filters/filters.mjs +0 -0
  659. package/dist/src/filters/filters.mjs.map +0 -0
  660. package/dist/src/filters/index.d.ts +0 -0
  661. package/dist/src/filters/index.d.ts.map +0 -0
  662. package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
  663. package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
  664. package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
  665. package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
  666. package/dist/src/filters/shaders/baseFilter.mjs +0 -0
  667. package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
  668. package/dist/src/filters/shaders/blendColor.d.ts +0 -0
  669. package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
  670. package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
  671. package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
  672. package/dist/src/filters/shaders/blendColor.mjs +0 -0
  673. package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
  674. package/dist/src/filters/shaders/blendImage.d.ts +0 -0
  675. package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
  676. package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
  677. package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
  678. package/dist/src/filters/shaders/blendImage.mjs +0 -0
  679. package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
  680. package/dist/src/filters/shaders/blur.d.ts +0 -0
  681. package/dist/src/filters/shaders/blur.d.ts.map +0 -0
  682. package/dist/src/filters/shaders/blur.min.mjs +0 -0
  683. package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
  684. package/dist/src/filters/shaders/blur.mjs +0 -0
  685. package/dist/src/filters/shaders/blur.mjs.map +0 -0
  686. package/dist/src/filters/shaders/brightness.d.ts +0 -0
  687. package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
  688. package/dist/src/filters/shaders/brightness.min.mjs +0 -0
  689. package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
  690. package/dist/src/filters/shaders/brightness.mjs +0 -0
  691. package/dist/src/filters/shaders/brightness.mjs.map +0 -0
  692. package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
  693. package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  694. package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
  695. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
  696. package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
  697. package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
  698. package/dist/src/filters/shaders/constrast.d.ts +0 -0
  699. package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
  700. package/dist/src/filters/shaders/constrast.min.mjs +0 -0
  701. package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
  702. package/dist/src/filters/shaders/constrast.mjs +0 -0
  703. package/dist/src/filters/shaders/constrast.mjs.map +0 -0
  704. package/dist/src/filters/shaders/convolute.d.ts +0 -0
  705. package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
  706. package/dist/src/filters/shaders/convolute.min.mjs +0 -0
  707. package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
  708. package/dist/src/filters/shaders/convolute.mjs +0 -0
  709. package/dist/src/filters/shaders/convolute.mjs.map +0 -0
  710. package/dist/src/filters/shaders/gamma.d.ts +0 -0
  711. package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
  712. package/dist/src/filters/shaders/gamma.min.mjs +0 -0
  713. package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
  714. package/dist/src/filters/shaders/gamma.mjs +0 -0
  715. package/dist/src/filters/shaders/gamma.mjs.map +0 -0
  716. package/dist/src/filters/shaders/grayscale.d.ts +0 -0
  717. package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
  718. package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
  719. package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
  720. package/dist/src/filters/shaders/grayscale.mjs +0 -0
  721. package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
  722. package/dist/src/filters/shaders/invert.d.ts +0 -0
  723. package/dist/src/filters/shaders/invert.d.ts.map +0 -0
  724. package/dist/src/filters/shaders/invert.min.mjs +0 -0
  725. package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
  726. package/dist/src/filters/shaders/invert.mjs +0 -0
  727. package/dist/src/filters/shaders/invert.mjs.map +0 -0
  728. package/dist/src/filters/shaders/noise.d.ts +0 -0
  729. package/dist/src/filters/shaders/noise.d.ts.map +0 -0
  730. package/dist/src/filters/shaders/noise.min.mjs +0 -0
  731. package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
  732. package/dist/src/filters/shaders/noise.mjs +0 -0
  733. package/dist/src/filters/shaders/noise.mjs.map +0 -0
  734. package/dist/src/filters/shaders/pixelate.d.ts +0 -0
  735. package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
  736. package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
  737. package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
  738. package/dist/src/filters/shaders/pixelate.mjs +0 -0
  739. package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
  740. package/dist/src/filters/shaders/removeColor.d.ts +0 -0
  741. package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
  742. package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
  743. package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
  744. package/dist/src/filters/shaders/removeColor.mjs +0 -0
  745. package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
  746. package/dist/src/filters/shaders/saturation.d.ts +0 -0
  747. package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
  748. package/dist/src/filters/shaders/saturation.min.mjs +0 -0
  749. package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
  750. package/dist/src/filters/shaders/saturation.mjs +0 -0
  751. package/dist/src/filters/shaders/saturation.mjs.map +0 -0
  752. package/dist/src/filters/shaders/vibrance.d.ts +0 -0
  753. package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
  754. package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
  755. package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
  756. package/dist/src/filters/shaders/vibrance.mjs +0 -0
  757. package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
  758. package/dist/src/filters/typedefs.d.ts +0 -0
  759. package/dist/src/filters/typedefs.d.ts.map +0 -0
  760. package/dist/src/filters/utils.d.ts +0 -0
  761. package/dist/src/filters/utils.d.ts.map +0 -0
  762. package/dist/src/filters/utils.min.mjs +0 -0
  763. package/dist/src/filters/utils.min.mjs.map +0 -0
  764. package/dist/src/filters/utils.mjs +0 -0
  765. package/dist/src/filters/utils.mjs.map +0 -0
  766. package/dist/src/gradient/Gradient.d.ts +0 -0
  767. package/dist/src/gradient/Gradient.d.ts.map +0 -0
  768. package/dist/src/gradient/Gradient.min.mjs +0 -0
  769. package/dist/src/gradient/Gradient.min.mjs.map +0 -0
  770. package/dist/src/gradient/Gradient.mjs +0 -0
  771. package/dist/src/gradient/Gradient.mjs.map +0 -0
  772. package/dist/src/gradient/constants.d.ts +0 -0
  773. package/dist/src/gradient/constants.d.ts.map +0 -0
  774. package/dist/src/gradient/constants.min.mjs +0 -0
  775. package/dist/src/gradient/constants.min.mjs.map +0 -0
  776. package/dist/src/gradient/constants.mjs +0 -0
  777. package/dist/src/gradient/constants.mjs.map +0 -0
  778. package/dist/src/gradient/index.d.ts +0 -0
  779. package/dist/src/gradient/index.d.ts.map +0 -0
  780. package/dist/src/gradient/parser/misc.d.ts +0 -0
  781. package/dist/src/gradient/parser/misc.d.ts.map +0 -0
  782. package/dist/src/gradient/parser/misc.min.mjs +0 -0
  783. package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
  784. package/dist/src/gradient/parser/misc.mjs +0 -0
  785. package/dist/src/gradient/parser/misc.mjs.map +0 -0
  786. package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
  787. package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  788. package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
  789. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
  790. package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
  791. package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
  792. package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
  793. package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
  794. package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
  795. package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
  796. package/dist/src/gradient/parser/parseCoords.mjs +0 -0
  797. package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
  798. package/dist/src/gradient/typedefs.d.ts +0 -0
  799. package/dist/src/gradient/typedefs.d.ts.map +0 -0
  800. package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
  801. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
  802. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
  803. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
  804. package/dist/src/parkinglot/straighten.d.ts +0 -0
  805. package/dist/src/parkinglot/straighten.d.ts.map +0 -0
  806. package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
  807. package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
  808. package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
  809. package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
  810. package/dist/src/parser/applyViewboxTransform.mjs +0 -0
  811. package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
  812. package/dist/src/parser/attributes.d.ts +0 -0
  813. package/dist/src/parser/attributes.d.ts.map +0 -0
  814. package/dist/src/parser/attributes.min.mjs +0 -0
  815. package/dist/src/parser/attributes.min.mjs.map +0 -0
  816. package/dist/src/parser/attributes.mjs +0 -0
  817. package/dist/src/parser/attributes.mjs.map +0 -0
  818. package/dist/src/parser/constants.d.ts +0 -0
  819. package/dist/src/parser/constants.d.ts.map +0 -0
  820. package/dist/src/parser/constants.min.mjs +0 -0
  821. package/dist/src/parser/constants.min.mjs.map +0 -0
  822. package/dist/src/parser/constants.mjs +0 -0
  823. package/dist/src/parser/constants.mjs.map +0 -0
  824. package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
  825. package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  826. package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
  827. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
  828. package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
  829. package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
  830. package/dist/src/parser/elementMatchesRule.d.ts +0 -0
  831. package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
  832. package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
  833. package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
  834. package/dist/src/parser/elementMatchesRule.mjs +0 -0
  835. package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
  836. package/dist/src/parser/elements_parser.d.ts +0 -0
  837. package/dist/src/parser/elements_parser.d.ts.map +0 -0
  838. package/dist/src/parser/elements_parser.min.mjs +0 -0
  839. package/dist/src/parser/elements_parser.min.mjs.map +0 -0
  840. package/dist/src/parser/elements_parser.mjs +0 -0
  841. package/dist/src/parser/elements_parser.mjs.map +0 -0
  842. package/dist/src/parser/getCSSRules.d.ts +0 -0
  843. package/dist/src/parser/getCSSRules.d.ts.map +0 -0
  844. package/dist/src/parser/getCSSRules.min.mjs +0 -0
  845. package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
  846. package/dist/src/parser/getCSSRules.mjs +0 -0
  847. package/dist/src/parser/getCSSRules.mjs.map +0 -0
  848. package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
  849. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  850. package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
  851. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
  852. package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
  853. package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
  854. package/dist/src/parser/getGradientDefs.d.ts +0 -0
  855. package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
  856. package/dist/src/parser/getGradientDefs.min.mjs +0 -0
  857. package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
  858. package/dist/src/parser/getGradientDefs.mjs +0 -0
  859. package/dist/src/parser/getGradientDefs.mjs.map +0 -0
  860. package/dist/src/parser/getMultipleNodes.d.ts +0 -0
  861. package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
  862. package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
  863. package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
  864. package/dist/src/parser/getMultipleNodes.mjs +0 -0
  865. package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
  866. package/dist/src/parser/getSvgRegex.d.ts +0 -0
  867. package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
  868. package/dist/src/parser/getSvgRegex.min.mjs +0 -0
  869. package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
  870. package/dist/src/parser/getSvgRegex.mjs +0 -0
  871. package/dist/src/parser/getSvgRegex.mjs.map +0 -0
  872. package/dist/src/parser/getTagName.d.ts +0 -0
  873. package/dist/src/parser/getTagName.d.ts.map +0 -0
  874. package/dist/src/parser/getTagName.min.mjs +0 -0
  875. package/dist/src/parser/getTagName.min.mjs.map +0 -0
  876. package/dist/src/parser/getTagName.mjs +0 -0
  877. package/dist/src/parser/getTagName.mjs.map +0 -0
  878. package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
  879. package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  880. package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
  881. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
  882. package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
  883. package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
  884. package/dist/src/parser/loadSVGFromString.d.ts +0 -0
  885. package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
  886. package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
  887. package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
  888. package/dist/src/parser/loadSVGFromString.mjs +0 -0
  889. package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
  890. package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
  891. package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
  892. package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
  893. package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
  894. package/dist/src/parser/loadSVGFromURL.mjs +0 -0
  895. package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
  896. package/dist/src/parser/normalizeAttr.d.ts +0 -0
  897. package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
  898. package/dist/src/parser/normalizeAttr.min.mjs +0 -0
  899. package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
  900. package/dist/src/parser/normalizeAttr.mjs +0 -0
  901. package/dist/src/parser/normalizeAttr.mjs.map +0 -0
  902. package/dist/src/parser/normalizeValue.d.ts +0 -0
  903. package/dist/src/parser/normalizeValue.d.ts.map +0 -0
  904. package/dist/src/parser/normalizeValue.min.mjs +0 -0
  905. package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
  906. package/dist/src/parser/normalizeValue.mjs +0 -0
  907. package/dist/src/parser/normalizeValue.mjs.map +0 -0
  908. package/dist/src/parser/parseAttributes.d.ts +0 -0
  909. package/dist/src/parser/parseAttributes.d.ts.map +0 -0
  910. package/dist/src/parser/parseAttributes.min.mjs +0 -0
  911. package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
  912. package/dist/src/parser/parseAttributes.mjs +0 -0
  913. package/dist/src/parser/parseAttributes.mjs.map +0 -0
  914. package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
  915. package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
  916. package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
  917. package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
  918. package/dist/src/parser/parseFontDeclaration.mjs +0 -0
  919. package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
  920. package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
  921. package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
  922. package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
  923. package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
  924. package/dist/src/parser/parsePointsAttribute.mjs +0 -0
  925. package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
  926. package/dist/src/parser/parseSVGDocument.d.ts +0 -0
  927. package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
  928. package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
  929. package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
  930. package/dist/src/parser/parseSVGDocument.mjs +0 -0
  931. package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
  932. package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
  933. package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
  934. package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
  935. package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
  936. package/dist/src/parser/parseStyleAttribute.mjs +0 -0
  937. package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
  938. package/dist/src/parser/parseStyleObject.d.ts +0 -0
  939. package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
  940. package/dist/src/parser/parseStyleObject.min.mjs +0 -0
  941. package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
  942. package/dist/src/parser/parseStyleObject.mjs +0 -0
  943. package/dist/src/parser/parseStyleObject.mjs.map +0 -0
  944. package/dist/src/parser/parseStyleString.d.ts +0 -0
  945. package/dist/src/parser/parseStyleString.d.ts.map +0 -0
  946. package/dist/src/parser/parseStyleString.min.mjs +0 -0
  947. package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
  948. package/dist/src/parser/parseStyleString.mjs +0 -0
  949. package/dist/src/parser/parseStyleString.mjs.map +0 -0
  950. package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
  951. package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
  952. package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
  953. package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
  954. package/dist/src/parser/parseTransformAttribute.mjs +0 -0
  955. package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
  956. package/dist/src/parser/parseUseDirectives.d.ts +0 -0
  957. package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
  958. package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
  959. package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
  960. package/dist/src/parser/parseUseDirectives.mjs +0 -0
  961. package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
  962. package/dist/src/parser/percent.d.ts +0 -0
  963. package/dist/src/parser/percent.d.ts.map +0 -0
  964. package/dist/src/parser/percent.min.mjs +0 -0
  965. package/dist/src/parser/percent.min.mjs.map +0 -0
  966. package/dist/src/parser/percent.mjs +0 -0
  967. package/dist/src/parser/percent.mjs.map +0 -0
  968. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  969. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  970. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
  971. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
  972. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
  973. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
  974. package/dist/src/parser/selectorMatches.d.ts +0 -0
  975. package/dist/src/parser/selectorMatches.d.ts.map +0 -0
  976. package/dist/src/parser/selectorMatches.min.mjs +0 -0
  977. package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
  978. package/dist/src/parser/selectorMatches.mjs +0 -0
  979. package/dist/src/parser/selectorMatches.mjs.map +0 -0
  980. package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
  981. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  982. package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
  983. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
  984. package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
  985. package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
  986. package/dist/src/parser/typedefs.d.ts +0 -0
  987. package/dist/src/parser/typedefs.d.ts.map +0 -0
  988. package/dist/src/shapes/ActiveSelection.d.ts +0 -0
  989. package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
  990. package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
  991. package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
  992. package/dist/src/shapes/ActiveSelection.mjs +0 -0
  993. package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
  994. package/dist/src/shapes/Circle.d.ts +0 -0
  995. package/dist/src/shapes/Circle.d.ts.map +0 -0
  996. package/dist/src/shapes/Circle.min.mjs +0 -0
  997. package/dist/src/shapes/Circle.min.mjs.map +0 -0
  998. package/dist/src/shapes/Circle.mjs +0 -0
  999. package/dist/src/shapes/Circle.mjs.map +0 -0
  1000. package/dist/src/shapes/Ellipse.d.ts +0 -0
  1001. package/dist/src/shapes/Ellipse.d.ts.map +0 -0
  1002. package/dist/src/shapes/Ellipse.min.mjs +0 -0
  1003. package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
  1004. package/dist/src/shapes/Ellipse.mjs +0 -0
  1005. package/dist/src/shapes/Ellipse.mjs.map +0 -0
  1006. package/dist/src/shapes/Group.d.ts +0 -0
  1007. package/dist/src/shapes/Group.d.ts.map +0 -0
  1008. package/dist/src/shapes/Group.min.mjs +0 -0
  1009. package/dist/src/shapes/Group.min.mjs.map +0 -0
  1010. package/dist/src/shapes/Group.mjs +0 -0
  1011. package/dist/src/shapes/Group.mjs.map +0 -0
  1012. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1013. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1014. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
  1015. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
  1016. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
  1017. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
  1018. package/dist/src/shapes/IText/IText.d.ts +0 -0
  1019. package/dist/src/shapes/IText/IText.d.ts.map +0 -0
  1020. package/dist/src/shapes/IText/IText.min.mjs +0 -0
  1021. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  1022. package/dist/src/shapes/IText/IText.mjs +206 -206
  1023. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  1024. package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1025. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
  1026. package/dist/src/shapes/IText/ITextBehavior.min.mjs +1 -1
  1027. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  1028. package/dist/src/shapes/IText/ITextBehavior.mjs +221 -157
  1029. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  1030. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1031. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1032. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
  1033. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  1034. package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
  1035. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  1036. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1037. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1038. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +0 -0
  1039. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
  1040. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +115 -115
  1041. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
  1042. package/dist/src/shapes/IText/constants.d.ts +0 -0
  1043. package/dist/src/shapes/IText/constants.d.ts.map +0 -0
  1044. package/dist/src/shapes/IText/constants.min.mjs +0 -0
  1045. package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
  1046. package/dist/src/shapes/IText/constants.mjs +0 -0
  1047. package/dist/src/shapes/IText/constants.mjs.map +0 -0
  1048. package/dist/src/shapes/Image.d.ts +0 -0
  1049. package/dist/src/shapes/Image.d.ts.map +0 -0
  1050. package/dist/src/shapes/Image.min.mjs +0 -0
  1051. package/dist/src/shapes/Image.min.mjs.map +0 -0
  1052. package/dist/src/shapes/Image.mjs +0 -0
  1053. package/dist/src/shapes/Image.mjs.map +0 -0
  1054. package/dist/src/shapes/Line.d.ts +0 -0
  1055. package/dist/src/shapes/Line.d.ts.map +0 -0
  1056. package/dist/src/shapes/Line.min.mjs +0 -0
  1057. package/dist/src/shapes/Line.min.mjs.map +0 -0
  1058. package/dist/src/shapes/Line.mjs +0 -0
  1059. package/dist/src/shapes/Line.mjs.map +0 -0
  1060. package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
  1061. package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1062. package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
  1063. package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
  1064. package/dist/src/shapes/Object/FabricObject.mjs +0 -0
  1065. package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
  1066. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1067. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1068. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
  1069. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
  1070. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
  1071. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
  1072. package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1073. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1074. package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
  1075. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
  1076. package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
  1077. package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
  1078. package/dist/src/shapes/Object/Object.d.ts +0 -0
  1079. package/dist/src/shapes/Object/Object.d.ts.map +0 -0
  1080. package/dist/src/shapes/Object/Object.min.mjs +0 -0
  1081. package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
  1082. package/dist/src/shapes/Object/Object.mjs +0 -0
  1083. package/dist/src/shapes/Object/Object.mjs.map +0 -0
  1084. package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1085. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1086. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
  1087. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
  1088. package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
  1089. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
  1090. package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
  1091. package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1092. package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
  1093. package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
  1094. package/dist/src/shapes/Object/defaultValues.mjs +0 -0
  1095. package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
  1096. package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1097. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1098. package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1099. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1100. package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1101. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1102. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1103. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1104. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1105. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1106. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1107. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1108. package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1109. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1110. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1111. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1112. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1113. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1114. package/dist/src/shapes/Object/types/index.d.ts +0 -0
  1115. package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
  1116. package/dist/src/shapes/Path.d.ts +0 -0
  1117. package/dist/src/shapes/Path.d.ts.map +0 -0
  1118. package/dist/src/shapes/Path.min.mjs +0 -0
  1119. package/dist/src/shapes/Path.min.mjs.map +0 -0
  1120. package/dist/src/shapes/Path.mjs +0 -0
  1121. package/dist/src/shapes/Path.mjs.map +0 -0
  1122. package/dist/src/shapes/Polygon.d.ts +0 -0
  1123. package/dist/src/shapes/Polygon.d.ts.map +0 -0
  1124. package/dist/src/shapes/Polygon.min.mjs +0 -0
  1125. package/dist/src/shapes/Polygon.min.mjs.map +0 -0
  1126. package/dist/src/shapes/Polygon.mjs +0 -0
  1127. package/dist/src/shapes/Polygon.mjs.map +0 -0
  1128. package/dist/src/shapes/Polyline.d.ts +0 -0
  1129. package/dist/src/shapes/Polyline.d.ts.map +0 -0
  1130. package/dist/src/shapes/Polyline.min.mjs +0 -0
  1131. package/dist/src/shapes/Polyline.min.mjs.map +0 -0
  1132. package/dist/src/shapes/Polyline.mjs +0 -0
  1133. package/dist/src/shapes/Polyline.mjs.map +0 -0
  1134. package/dist/src/shapes/Rect.d.ts +0 -0
  1135. package/dist/src/shapes/Rect.d.ts.map +0 -0
  1136. package/dist/src/shapes/Rect.min.mjs +0 -0
  1137. package/dist/src/shapes/Rect.min.mjs.map +0 -0
  1138. package/dist/src/shapes/Rect.mjs +0 -0
  1139. package/dist/src/shapes/Rect.mjs.map +0 -0
  1140. package/dist/src/shapes/Text/StyledText.d.ts +0 -0
  1141. package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
  1142. package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
  1143. package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
  1144. package/dist/src/shapes/Text/StyledText.mjs +0 -0
  1145. package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
  1146. package/dist/src/shapes/Text/Text.d.ts +1 -0
  1147. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  1148. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  1149. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  1150. package/dist/src/shapes/Text/Text.mjs +20 -7
  1151. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  1152. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1153. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1154. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
  1155. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
  1156. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
  1157. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
  1158. package/dist/src/shapes/Text/constants.d.ts +0 -0
  1159. package/dist/src/shapes/Text/constants.d.ts.map +0 -0
  1160. package/dist/src/shapes/Text/constants.min.mjs +0 -0
  1161. package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
  1162. package/dist/src/shapes/Text/constants.mjs +0 -0
  1163. package/dist/src/shapes/Text/constants.mjs.map +1 -1
  1164. package/dist/src/shapes/Textbox.d.ts +20 -0
  1165. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  1166. package/dist/src/shapes/Textbox.min.mjs +1 -1
  1167. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  1168. package/dist/src/shapes/Textbox.mjs +242 -22
  1169. package/dist/src/shapes/Textbox.mjs.map +1 -1
  1170. package/dist/src/shapes/Triangle.d.ts +0 -0
  1171. package/dist/src/shapes/Triangle.d.ts.map +0 -0
  1172. package/dist/src/shapes/Triangle.min.mjs +0 -0
  1173. package/dist/src/shapes/Triangle.min.mjs.map +0 -0
  1174. package/dist/src/shapes/Triangle.mjs +0 -0
  1175. package/dist/src/shapes/Triangle.mjs.map +0 -0
  1176. package/dist/src/text/browserLines.d.ts +7 -2
  1177. package/dist/src/text/browserLines.d.ts.map +1 -1
  1178. package/dist/src/text/browserLines.min.mjs +1 -1
  1179. package/dist/src/text/browserLines.min.mjs.map +1 -1
  1180. package/dist/src/text/browserLines.mjs +35 -25
  1181. package/dist/src/text/browserLines.mjs.map +1 -1
  1182. package/dist/src/text/ellipsis.d.ts +0 -0
  1183. package/dist/src/text/ellipsis.d.ts.map +0 -0
  1184. package/dist/src/text/ellipsis.min.mjs +0 -0
  1185. package/dist/src/text/ellipsis.min.mjs.map +1 -1
  1186. package/dist/src/text/ellipsis.mjs +11 -11
  1187. package/dist/src/text/ellipsis.mjs.map +1 -1
  1188. package/dist/src/text/hitTest.d.ts +0 -0
  1189. package/dist/src/text/hitTest.d.ts.map +0 -0
  1190. package/dist/src/text/hitTest.min.mjs +0 -0
  1191. package/dist/src/text/hitTest.min.mjs.map +1 -1
  1192. package/dist/src/text/hitTest.mjs +19 -19
  1193. package/dist/src/text/hitTest.mjs.map +1 -1
  1194. package/dist/src/text/layout.d.ts +0 -0
  1195. package/dist/src/text/layout.d.ts.map +0 -0
  1196. package/dist/src/text/layout.min.mjs +0 -0
  1197. package/dist/src/text/layout.min.mjs.map +1 -1
  1198. package/dist/src/text/layout.mjs +33 -33
  1199. package/dist/src/text/layout.mjs.map +1 -1
  1200. package/dist/src/text/measure.d.ts +0 -0
  1201. package/dist/src/text/measure.d.ts.map +0 -0
  1202. package/dist/src/text/measure.min.mjs +0 -0
  1203. package/dist/src/text/measure.min.mjs.map +1 -1
  1204. package/dist/src/text/measure.mjs +30 -30
  1205. package/dist/src/text/measure.mjs.map +1 -1
  1206. package/dist/src/text/overlayEditor.d.ts +1 -0
  1207. package/dist/src/text/overlayEditor.d.ts.map +1 -1
  1208. package/dist/src/text/overlayEditor.min.mjs +1 -1
  1209. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  1210. package/dist/src/text/overlayEditor.mjs +70 -51
  1211. package/dist/src/text/overlayEditor.mjs.map +1 -1
  1212. package/dist/src/text/unicode.d.ts +0 -0
  1213. package/dist/src/text/unicode.d.ts.map +0 -0
  1214. package/dist/src/text/unicode.min.mjs +0 -0
  1215. package/dist/src/text/unicode.min.mjs.map +1 -1
  1216. package/dist/src/text/unicode.mjs +8 -8
  1217. package/dist/src/text/unicode.mjs.map +1 -1
  1218. package/dist/src/typedefs.d.ts +0 -0
  1219. package/dist/src/typedefs.d.ts.map +0 -0
  1220. package/dist/src/util/animation/AnimationBase.d.ts +0 -0
  1221. package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
  1222. package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
  1223. package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
  1224. package/dist/src/util/animation/AnimationBase.mjs +0 -0
  1225. package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
  1226. package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1227. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1228. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
  1229. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
  1230. package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
  1231. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
  1232. package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
  1233. package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1234. package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
  1235. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
  1236. package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
  1237. package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
  1238. package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
  1239. package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1240. package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
  1241. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
  1242. package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
  1243. package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
  1244. package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
  1245. package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1246. package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
  1247. package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
  1248. package/dist/src/util/animation/ColorAnimation.mjs +0 -0
  1249. package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
  1250. package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
  1251. package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1252. package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
  1253. package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
  1254. package/dist/src/util/animation/ValueAnimation.mjs +0 -0
  1255. package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
  1256. package/dist/src/util/animation/animate.d.ts +0 -0
  1257. package/dist/src/util/animation/animate.d.ts.map +0 -0
  1258. package/dist/src/util/animation/animate.min.mjs +0 -0
  1259. package/dist/src/util/animation/animate.min.mjs.map +0 -0
  1260. package/dist/src/util/animation/animate.mjs +0 -0
  1261. package/dist/src/util/animation/animate.mjs.map +0 -0
  1262. package/dist/src/util/animation/easing.d.ts +0 -0
  1263. package/dist/src/util/animation/easing.d.ts.map +0 -0
  1264. package/dist/src/util/animation/easing.min.mjs +0 -0
  1265. package/dist/src/util/animation/easing.min.mjs.map +0 -0
  1266. package/dist/src/util/animation/easing.mjs +0 -0
  1267. package/dist/src/util/animation/easing.mjs.map +0 -0
  1268. package/dist/src/util/animation/index.d.ts +0 -0
  1269. package/dist/src/util/animation/index.d.ts.map +0 -0
  1270. package/dist/src/util/animation/types.d.ts +0 -0
  1271. package/dist/src/util/animation/types.d.ts.map +0 -0
  1272. package/dist/src/util/applyMixins.d.ts +0 -0
  1273. package/dist/src/util/applyMixins.d.ts.map +0 -0
  1274. package/dist/src/util/applyMixins.min.mjs +0 -0
  1275. package/dist/src/util/applyMixins.min.mjs.map +0 -0
  1276. package/dist/src/util/applyMixins.mjs +0 -0
  1277. package/dist/src/util/applyMixins.mjs.map +0 -0
  1278. package/dist/src/util/dom_event.d.ts +0 -0
  1279. package/dist/src/util/dom_event.d.ts.map +0 -0
  1280. package/dist/src/util/dom_event.min.mjs +0 -0
  1281. package/dist/src/util/dom_event.min.mjs.map +0 -0
  1282. package/dist/src/util/dom_event.mjs +0 -0
  1283. package/dist/src/util/dom_event.mjs.map +0 -0
  1284. package/dist/src/util/dom_misc.d.ts +0 -0
  1285. package/dist/src/util/dom_misc.d.ts.map +0 -0
  1286. package/dist/src/util/dom_misc.min.mjs +0 -0
  1287. package/dist/src/util/dom_misc.min.mjs.map +0 -0
  1288. package/dist/src/util/dom_misc.mjs +0 -0
  1289. package/dist/src/util/dom_misc.mjs.map +0 -0
  1290. package/dist/src/util/index.d.ts +0 -0
  1291. package/dist/src/util/index.d.ts.map +0 -0
  1292. package/dist/src/util/index.min.mjs +0 -0
  1293. package/dist/src/util/index.min.mjs.map +0 -0
  1294. package/dist/src/util/index.mjs +0 -0
  1295. package/dist/src/util/index.mjs.map +0 -0
  1296. package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
  1297. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  1298. package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
  1299. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
  1300. package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
  1301. package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
  1302. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  1303. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  1304. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
  1305. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
  1306. package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
  1307. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
  1308. package/dist/src/util/internals/cloneStyles.d.ts +0 -0
  1309. package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
  1310. package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
  1311. package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
  1312. package/dist/src/util/internals/cloneStyles.mjs +0 -0
  1313. package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
  1314. package/dist/src/util/internals/console.d.ts +0 -0
  1315. package/dist/src/util/internals/console.d.ts.map +0 -0
  1316. package/dist/src/util/internals/console.min.mjs +0 -0
  1317. package/dist/src/util/internals/console.min.mjs.map +0 -0
  1318. package/dist/src/util/internals/console.mjs +0 -0
  1319. package/dist/src/util/internals/console.mjs.map +0 -0
  1320. package/dist/src/util/internals/dom_style.d.ts +0 -0
  1321. package/dist/src/util/internals/dom_style.d.ts.map +0 -0
  1322. package/dist/src/util/internals/dom_style.min.mjs +0 -0
  1323. package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
  1324. package/dist/src/util/internals/dom_style.mjs +0 -0
  1325. package/dist/src/util/internals/dom_style.mjs.map +0 -0
  1326. package/dist/src/util/internals/findRight.d.ts +0 -0
  1327. package/dist/src/util/internals/findRight.d.ts.map +0 -0
  1328. package/dist/src/util/internals/findRight.min.mjs +0 -0
  1329. package/dist/src/util/internals/findRight.min.mjs.map +0 -0
  1330. package/dist/src/util/internals/findRight.mjs +0 -0
  1331. package/dist/src/util/internals/findRight.mjs.map +0 -0
  1332. package/dist/src/util/internals/getRandomInt.d.ts +0 -0
  1333. package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
  1334. package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
  1335. package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
  1336. package/dist/src/util/internals/getRandomInt.mjs +0 -0
  1337. package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
  1338. package/dist/src/util/internals/ifNaN.d.ts +0 -0
  1339. package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
  1340. package/dist/src/util/internals/ifNaN.min.mjs +0 -0
  1341. package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
  1342. package/dist/src/util/internals/ifNaN.mjs +0 -0
  1343. package/dist/src/util/internals/ifNaN.mjs.map +0 -0
  1344. package/dist/src/util/internals/removeFromArray.d.ts +0 -0
  1345. package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
  1346. package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
  1347. package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
  1348. package/dist/src/util/internals/removeFromArray.mjs +0 -0
  1349. package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
  1350. package/dist/src/util/internals/uid.d.ts +0 -0
  1351. package/dist/src/util/internals/uid.d.ts.map +0 -0
  1352. package/dist/src/util/internals/uid.min.mjs +0 -0
  1353. package/dist/src/util/internals/uid.min.mjs.map +0 -0
  1354. package/dist/src/util/internals/uid.mjs +0 -0
  1355. package/dist/src/util/internals/uid.mjs.map +0 -0
  1356. package/dist/src/util/lang_string.d.ts +0 -0
  1357. package/dist/src/util/lang_string.d.ts.map +0 -0
  1358. package/dist/src/util/lang_string.min.mjs +0 -0
  1359. package/dist/src/util/lang_string.min.mjs.map +0 -0
  1360. package/dist/src/util/lang_string.mjs +0 -0
  1361. package/dist/src/util/lang_string.mjs.map +0 -0
  1362. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  1363. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  1364. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
  1365. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
  1366. package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
  1367. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
  1368. package/dist/src/util/misc/capValue.d.ts +0 -0
  1369. package/dist/src/util/misc/capValue.d.ts.map +0 -0
  1370. package/dist/src/util/misc/capValue.min.mjs +0 -0
  1371. package/dist/src/util/misc/capValue.min.mjs.map +0 -0
  1372. package/dist/src/util/misc/capValue.mjs +0 -0
  1373. package/dist/src/util/misc/capValue.mjs.map +0 -0
  1374. package/dist/src/util/misc/cornerRadius.d.ts +0 -0
  1375. package/dist/src/util/misc/cornerRadius.d.ts.map +0 -0
  1376. package/dist/src/util/misc/cornerRadius.min.mjs +0 -0
  1377. package/dist/src/util/misc/cornerRadius.min.mjs.map +0 -0
  1378. package/dist/src/util/misc/cornerRadius.mjs +0 -0
  1379. package/dist/src/util/misc/cornerRadius.mjs.map +0 -0
  1380. package/dist/src/util/misc/cos.d.ts +0 -0
  1381. package/dist/src/util/misc/cos.d.ts.map +0 -0
  1382. package/dist/src/util/misc/cos.min.mjs +0 -0
  1383. package/dist/src/util/misc/cos.min.mjs.map +0 -0
  1384. package/dist/src/util/misc/cos.mjs +0 -0
  1385. package/dist/src/util/misc/cos.mjs.map +0 -0
  1386. package/dist/src/util/misc/dom.d.ts +0 -0
  1387. package/dist/src/util/misc/dom.d.ts.map +0 -0
  1388. package/dist/src/util/misc/dom.min.mjs +0 -0
  1389. package/dist/src/util/misc/dom.min.mjs.map +0 -0
  1390. package/dist/src/util/misc/dom.mjs +0 -0
  1391. package/dist/src/util/misc/dom.mjs.map +0 -0
  1392. package/dist/src/util/misc/findScaleTo.d.ts +0 -0
  1393. package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
  1394. package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
  1395. package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
  1396. package/dist/src/util/misc/findScaleTo.mjs +0 -0
  1397. package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
  1398. package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
  1399. package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
  1400. package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
  1401. package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
  1402. package/dist/src/util/misc/groupSVGElements.mjs +0 -0
  1403. package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
  1404. package/dist/src/util/misc/isTransparent.d.ts +0 -0
  1405. package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
  1406. package/dist/src/util/misc/isTransparent.min.mjs +0 -0
  1407. package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
  1408. package/dist/src/util/misc/isTransparent.mjs +0 -0
  1409. package/dist/src/util/misc/isTransparent.mjs.map +0 -0
  1410. package/dist/src/util/misc/matrix.d.ts +0 -0
  1411. package/dist/src/util/misc/matrix.d.ts.map +0 -0
  1412. package/dist/src/util/misc/matrix.min.mjs +0 -0
  1413. package/dist/src/util/misc/matrix.min.mjs.map +0 -0
  1414. package/dist/src/util/misc/matrix.mjs +0 -0
  1415. package/dist/src/util/misc/matrix.mjs.map +0 -0
  1416. package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
  1417. package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  1418. package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
  1419. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
  1420. package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
  1421. package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
  1422. package/dist/src/util/misc/objectEnlive.d.ts +0 -0
  1423. package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
  1424. package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
  1425. package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
  1426. package/dist/src/util/misc/objectEnlive.mjs +0 -0
  1427. package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
  1428. package/dist/src/util/misc/objectTransforms.d.ts +0 -0
  1429. package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
  1430. package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
  1431. package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
  1432. package/dist/src/util/misc/objectTransforms.mjs +0 -0
  1433. package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
  1434. package/dist/src/util/misc/pick.d.ts +0 -0
  1435. package/dist/src/util/misc/pick.d.ts.map +0 -0
  1436. package/dist/src/util/misc/pick.min.mjs +0 -0
  1437. package/dist/src/util/misc/pick.min.mjs.map +0 -0
  1438. package/dist/src/util/misc/pick.mjs +0 -0
  1439. package/dist/src/util/misc/pick.mjs.map +0 -0
  1440. package/dist/src/util/misc/planeChange.d.ts +0 -0
  1441. package/dist/src/util/misc/planeChange.d.ts.map +0 -0
  1442. package/dist/src/util/misc/planeChange.min.mjs +0 -0
  1443. package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
  1444. package/dist/src/util/misc/planeChange.mjs +0 -0
  1445. package/dist/src/util/misc/planeChange.mjs.map +0 -0
  1446. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  1447. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  1448. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
  1449. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
  1450. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
  1451. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
  1452. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  1453. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  1454. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
  1455. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
  1456. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
  1457. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
  1458. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  1459. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  1460. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
  1461. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
  1462. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
  1463. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
  1464. package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
  1465. package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
  1466. package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
  1467. package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
  1468. package/dist/src/util/misc/projectStroke/index.mjs +0 -0
  1469. package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
  1470. package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
  1471. package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
  1472. package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  1473. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  1474. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
  1475. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
  1476. package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
  1477. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
  1478. package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
  1479. package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
  1480. package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
  1481. package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
  1482. package/dist/src/util/misc/resolveOrigin.mjs +0 -0
  1483. package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
  1484. package/dist/src/util/misc/sin.d.ts +0 -0
  1485. package/dist/src/util/misc/sin.d.ts.map +0 -0
  1486. package/dist/src/util/misc/sin.min.mjs +0 -0
  1487. package/dist/src/util/misc/sin.min.mjs.map +0 -0
  1488. package/dist/src/util/misc/sin.mjs +0 -0
  1489. package/dist/src/util/misc/sin.mjs.map +0 -0
  1490. package/dist/src/util/misc/svgExport.d.ts +0 -0
  1491. package/dist/src/util/misc/svgExport.d.ts.map +0 -0
  1492. package/dist/src/util/misc/svgExport.min.mjs +0 -0
  1493. package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
  1494. package/dist/src/util/misc/svgExport.mjs +0 -0
  1495. package/dist/src/util/misc/svgExport.mjs.map +0 -0
  1496. package/dist/src/util/misc/svgParsing.d.ts +0 -0
  1497. package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
  1498. package/dist/src/util/misc/svgParsing.min.mjs +0 -0
  1499. package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
  1500. package/dist/src/util/misc/svgParsing.mjs +0 -0
  1501. package/dist/src/util/misc/svgParsing.mjs.map +0 -0
  1502. package/dist/src/util/misc/textStyles.d.ts +0 -0
  1503. package/dist/src/util/misc/textStyles.d.ts.map +0 -0
  1504. package/dist/src/util/misc/textStyles.min.mjs +0 -0
  1505. package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
  1506. package/dist/src/util/misc/textStyles.mjs +0 -0
  1507. package/dist/src/util/misc/textStyles.mjs.map +0 -0
  1508. package/dist/src/util/misc/toFixed.d.ts +0 -0
  1509. package/dist/src/util/misc/toFixed.d.ts.map +0 -0
  1510. package/dist/src/util/misc/toFixed.min.mjs +0 -0
  1511. package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
  1512. package/dist/src/util/misc/toFixed.mjs +0 -0
  1513. package/dist/src/util/misc/toFixed.mjs.map +0 -0
  1514. package/dist/src/util/misc/vectors.d.ts +0 -0
  1515. package/dist/src/util/misc/vectors.d.ts.map +0 -0
  1516. package/dist/src/util/misc/vectors.min.mjs +0 -0
  1517. package/dist/src/util/misc/vectors.min.mjs.map +0 -0
  1518. package/dist/src/util/misc/vectors.mjs +0 -0
  1519. package/dist/src/util/misc/vectors.mjs.map +0 -0
  1520. package/dist/src/util/path/index.d.ts +0 -0
  1521. package/dist/src/util/path/index.d.ts.map +0 -0
  1522. package/dist/src/util/path/index.min.mjs +0 -0
  1523. package/dist/src/util/path/index.min.mjs.map +0 -0
  1524. package/dist/src/util/path/index.mjs +0 -0
  1525. package/dist/src/util/path/index.mjs.map +0 -0
  1526. package/dist/src/util/path/regex.d.ts +0 -0
  1527. package/dist/src/util/path/regex.d.ts.map +0 -0
  1528. package/dist/src/util/path/regex.min.mjs +0 -0
  1529. package/dist/src/util/path/regex.min.mjs.map +0 -0
  1530. package/dist/src/util/path/regex.mjs +0 -0
  1531. package/dist/src/util/path/regex.mjs.map +0 -0
  1532. package/dist/src/util/path/typechecks.d.ts +0 -0
  1533. package/dist/src/util/path/typechecks.d.ts.map +0 -0
  1534. package/dist/src/util/path/typedefs.d.ts +0 -0
  1535. package/dist/src/util/path/typedefs.d.ts.map +0 -0
  1536. package/dist/src/util/transform_matrix_removal.d.ts +0 -0
  1537. package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
  1538. package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
  1539. package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
  1540. package/dist/src/util/transform_matrix_removal.mjs +0 -0
  1541. package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
  1542. package/dist/src/util/typeAssertions.d.ts +0 -0
  1543. package/dist/src/util/typeAssertions.d.ts.map +0 -0
  1544. package/dist/src/util/typeAssertions.min.mjs +0 -0
  1545. package/dist/src/util/typeAssertions.min.mjs.map +0 -0
  1546. package/dist/src/util/typeAssertions.mjs +0 -0
  1547. package/dist/src/util/typeAssertions.mjs.map +0 -0
  1548. package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
  1549. package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
  1550. package/dist-extensions/aligning_guidelines/index.mjs +0 -0
  1551. package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
  1552. package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
  1553. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
  1554. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
  1555. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
  1556. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
  1557. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
  1558. package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
  1559. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
  1560. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
  1561. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
  1562. package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
  1563. package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
  1564. package/dist-extensions/data_updaters/origins/index.mjs +0 -0
  1565. package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
  1566. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
  1567. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  1568. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
  1569. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
  1570. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  1571. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  1572. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  1573. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  1574. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  1575. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  1576. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  1577. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  1578. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  1579. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  1580. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  1581. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  1582. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
  1583. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  1584. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
  1585. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
  1586. package/dist-extensions/extensions/index.d.ts +0 -0
  1587. package/dist-extensions/extensions/index.d.ts.map +0 -0
  1588. package/dist-extensions/fabric-extensions.min.js +0 -0
  1589. package/dist-extensions/fabric-extensions.min.js.map +0 -0
  1590. package/dist-extensions/fabric.d.ts +0 -0
  1591. package/dist-extensions/fabric.d.ts.map +0 -0
  1592. package/dist-extensions/index.d.ts +0 -0
  1593. package/dist-extensions/index.d.ts.map +0 -0
  1594. package/dist-extensions/index.mjs +0 -0
  1595. package/dist-extensions/index.mjs.map +0 -0
  1596. package/dist-extensions/src/ClassRegistry.d.ts +0 -0
  1597. package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
  1598. package/dist-extensions/src/Collection.d.ts +0 -0
  1599. package/dist-extensions/src/Collection.d.ts.map +0 -0
  1600. package/dist-extensions/src/CommonMethods.d.ts +0 -0
  1601. package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
  1602. package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
  1603. package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
  1604. package/dist-extensions/src/Intersection.d.ts +0 -0
  1605. package/dist-extensions/src/Intersection.d.ts.map +0 -0
  1606. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  1607. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  1608. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
  1609. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  1610. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  1611. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  1612. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  1613. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  1614. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  1615. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  1616. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  1617. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  1618. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  1619. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  1620. package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
  1621. package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
  1622. package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
  1623. package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
  1624. package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
  1625. package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
  1626. package/dist-extensions/src/Observable.d.ts +0 -0
  1627. package/dist-extensions/src/Observable.d.ts.map +0 -0
  1628. package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
  1629. package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
  1630. package/dist-extensions/src/Pattern/index.d.ts +0 -0
  1631. package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
  1632. package/dist-extensions/src/Pattern/types.d.ts +0 -0
  1633. package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
  1634. package/dist-extensions/src/Point.d.ts +0 -0
  1635. package/dist-extensions/src/Point.d.ts.map +0 -0
  1636. package/dist-extensions/src/Shadow.d.ts +0 -0
  1637. package/dist-extensions/src/Shadow.d.ts.map +0 -0
  1638. package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
  1639. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
  1640. package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
  1641. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
  1642. package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
  1643. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
  1644. package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
  1645. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
  1646. package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
  1647. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
  1648. package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
  1649. package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
  1650. package/dist-extensions/src/cache.d.ts +0 -0
  1651. package/dist-extensions/src/cache.d.ts.map +0 -0
  1652. package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
  1653. package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
  1654. package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
  1655. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
  1656. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  1657. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  1658. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  1659. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  1660. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
  1661. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
  1662. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
  1663. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
  1664. package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
  1665. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
  1666. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
  1667. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  1668. package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
  1669. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
  1670. package/dist-extensions/src/color/Color.d.ts +0 -0
  1671. package/dist-extensions/src/color/Color.d.ts.map +0 -0
  1672. package/dist-extensions/src/color/color_map.d.ts +0 -0
  1673. package/dist-extensions/src/color/color_map.d.ts.map +0 -0
  1674. package/dist-extensions/src/color/constants.d.ts +0 -0
  1675. package/dist-extensions/src/color/constants.d.ts.map +0 -0
  1676. package/dist-extensions/src/color/typedefs.d.ts +0 -0
  1677. package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
  1678. package/dist-extensions/src/color/util.d.ts +0 -0
  1679. package/dist-extensions/src/color/util.d.ts.map +0 -0
  1680. package/dist-extensions/src/config.d.ts +0 -0
  1681. package/dist-extensions/src/config.d.ts.map +0 -0
  1682. package/dist-extensions/src/constants.d.ts +0 -0
  1683. package/dist-extensions/src/constants.d.ts.map +0 -0
  1684. package/dist-extensions/src/controls/Control.d.ts +0 -0
  1685. package/dist-extensions/src/controls/Control.d.ts.map +0 -0
  1686. package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
  1687. package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
  1688. package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
  1689. package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
  1690. package/dist-extensions/src/controls/commonControls.d.ts +0 -0
  1691. package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
  1692. package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
  1693. package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
  1694. package/dist-extensions/src/controls/drag.d.ts +0 -0
  1695. package/dist-extensions/src/controls/drag.d.ts.map +0 -0
  1696. package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
  1697. package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
  1698. package/dist-extensions/src/controls/index.d.ts +0 -0
  1699. package/dist-extensions/src/controls/index.d.ts.map +0 -0
  1700. package/dist-extensions/src/controls/pathControl.d.ts +0 -0
  1701. package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
  1702. package/dist-extensions/src/controls/polyControl.d.ts +0 -0
  1703. package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
  1704. package/dist-extensions/src/controls/rotate.d.ts +0 -0
  1705. package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
  1706. package/dist-extensions/src/controls/scale.d.ts +0 -0
  1707. package/dist-extensions/src/controls/scale.d.ts.map +0 -0
  1708. package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
  1709. package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
  1710. package/dist-extensions/src/controls/skew.d.ts +0 -0
  1711. package/dist-extensions/src/controls/skew.d.ts.map +0 -0
  1712. package/dist-extensions/src/controls/util.d.ts +0 -0
  1713. package/dist-extensions/src/controls/util.d.ts.map +0 -0
  1714. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
  1715. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  1716. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  1717. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  1718. package/dist-extensions/src/env/browser.d.ts +0 -0
  1719. package/dist-extensions/src/env/browser.d.ts.map +0 -0
  1720. package/dist-extensions/src/env/index.d.ts +0 -0
  1721. package/dist-extensions/src/env/index.d.ts.map +0 -0
  1722. package/dist-extensions/src/env/types.d.ts +0 -0
  1723. package/dist-extensions/src/env/types.d.ts.map +0 -0
  1724. package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
  1725. package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
  1726. package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
  1727. package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
  1728. package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
  1729. package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
  1730. package/dist-extensions/src/filters/Blur.d.ts +0 -0
  1731. package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
  1732. package/dist-extensions/src/filters/Brightness.d.ts +0 -0
  1733. package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
  1734. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  1735. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  1736. package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
  1737. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
  1738. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
  1739. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  1740. package/dist-extensions/src/filters/Composed.d.ts +0 -0
  1741. package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
  1742. package/dist-extensions/src/filters/Contrast.d.ts +0 -0
  1743. package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
  1744. package/dist-extensions/src/filters/Convolute.d.ts +0 -0
  1745. package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
  1746. package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
  1747. package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
  1748. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
  1749. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  1750. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  1751. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  1752. package/dist-extensions/src/filters/Gamma.d.ts +0 -0
  1753. package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
  1754. package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
  1755. package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
  1756. package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
  1757. package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
  1758. package/dist-extensions/src/filters/Invert.d.ts +0 -0
  1759. package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
  1760. package/dist-extensions/src/filters/Noise.d.ts +0 -0
  1761. package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
  1762. package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
  1763. package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
  1764. package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
  1765. package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
  1766. package/dist-extensions/src/filters/Resize.d.ts +0 -0
  1767. package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
  1768. package/dist-extensions/src/filters/Saturation.d.ts +0 -0
  1769. package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
  1770. package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
  1771. package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
  1772. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
  1773. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  1774. package/dist-extensions/src/filters/filters.d.ts +0 -0
  1775. package/dist-extensions/src/filters/filters.d.ts.map +0 -0
  1776. package/dist-extensions/src/filters/index.d.ts +0 -0
  1777. package/dist-extensions/src/filters/index.d.ts.map +0 -0
  1778. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
  1779. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
  1780. package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
  1781. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
  1782. package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
  1783. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
  1784. package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
  1785. package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
  1786. package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
  1787. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
  1788. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
  1789. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  1790. package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
  1791. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
  1792. package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
  1793. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
  1794. package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
  1795. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
  1796. package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
  1797. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
  1798. package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
  1799. package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
  1800. package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
  1801. package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
  1802. package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
  1803. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
  1804. package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
  1805. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
  1806. package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
  1807. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
  1808. package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
  1809. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
  1810. package/dist-extensions/src/filters/typedefs.d.ts +0 -0
  1811. package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
  1812. package/dist-extensions/src/filters/utils.d.ts +0 -0
  1813. package/dist-extensions/src/filters/utils.d.ts.map +0 -0
  1814. package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
  1815. package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
  1816. package/dist-extensions/src/gradient/constants.d.ts +0 -0
  1817. package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
  1818. package/dist-extensions/src/gradient/index.d.ts +0 -0
  1819. package/dist-extensions/src/gradient/index.d.ts.map +0 -0
  1820. package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
  1821. package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
  1822. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
  1823. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  1824. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
  1825. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
  1826. package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
  1827. package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
  1828. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
  1829. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
  1830. package/dist-extensions/src/parser/attributes.d.ts +0 -0
  1831. package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
  1832. package/dist-extensions/src/parser/constants.d.ts +0 -0
  1833. package/dist-extensions/src/parser/constants.d.ts.map +0 -0
  1834. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
  1835. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  1836. package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
  1837. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
  1838. package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
  1839. package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
  1840. package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
  1841. package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
  1842. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
  1843. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  1844. package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
  1845. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
  1846. package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
  1847. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
  1848. package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
  1849. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
  1850. package/dist-extensions/src/parser/getTagName.d.ts +0 -0
  1851. package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
  1852. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
  1853. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  1854. package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
  1855. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
  1856. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
  1857. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
  1858. package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
  1859. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
  1860. package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
  1861. package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
  1862. package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
  1863. package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
  1864. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
  1865. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
  1866. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
  1867. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
  1868. package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
  1869. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
  1870. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
  1871. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
  1872. package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
  1873. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
  1874. package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
  1875. package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
  1876. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
  1877. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
  1878. package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
  1879. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
  1880. package/dist-extensions/src/parser/percent.d.ts +0 -0
  1881. package/dist-extensions/src/parser/percent.d.ts.map +0 -0
  1882. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  1883. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  1884. package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
  1885. package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
  1886. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
  1887. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  1888. package/dist-extensions/src/parser/typedefs.d.ts +0 -0
  1889. package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
  1890. package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
  1891. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
  1892. package/dist-extensions/src/shapes/Circle.d.ts +0 -0
  1893. package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
  1894. package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
  1895. package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
  1896. package/dist-extensions/src/shapes/Group.d.ts +0 -0
  1897. package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
  1898. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1899. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1900. package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
  1901. package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
  1902. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1903. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
  1904. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1905. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1906. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1907. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1908. package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
  1909. package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
  1910. package/dist-extensions/src/shapes/Image.d.ts +0 -0
  1911. package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
  1912. package/dist-extensions/src/shapes/Line.d.ts +0 -0
  1913. package/dist-extensions/src/shapes/Line.d.ts.map +0 -0
  1914. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
  1915. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1916. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1917. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1918. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1919. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1920. package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
  1921. package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
  1922. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1923. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1924. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
  1925. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1926. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1927. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1928. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1929. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1930. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1931. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1932. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1933. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1934. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1935. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1936. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1937. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1938. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1939. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1940. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1941. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1942. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1943. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1944. package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
  1945. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
  1946. package/dist-extensions/src/shapes/Path.d.ts +0 -0
  1947. package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
  1948. package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
  1949. package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
  1950. package/dist-extensions/src/shapes/Polyline.d.ts +0 -0
  1951. package/dist-extensions/src/shapes/Polyline.d.ts.map +0 -0
  1952. package/dist-extensions/src/shapes/Rect.d.ts +0 -0
  1953. package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
  1954. package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
  1955. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
  1956. package/dist-extensions/src/shapes/Text/Text.d.ts +1 -0
  1957. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  1958. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1959. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1960. package/dist-extensions/src/shapes/Text/constants.d.ts +0 -0
  1961. package/dist-extensions/src/shapes/Text/constants.d.ts.map +0 -0
  1962. package/dist-extensions/src/shapes/Textbox.d.ts +20 -0
  1963. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  1964. package/dist-extensions/src/shapes/Triangle.d.ts +0 -0
  1965. package/dist-extensions/src/shapes/Triangle.d.ts.map +0 -0
  1966. package/dist-extensions/src/text/browserLines.d.ts +7 -2
  1967. package/dist-extensions/src/text/browserLines.d.ts.map +1 -1
  1968. package/dist-extensions/src/text/ellipsis.d.ts +0 -0
  1969. package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
  1970. package/dist-extensions/src/text/hitTest.d.ts +0 -0
  1971. package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
  1972. package/dist-extensions/src/text/layout.d.ts +0 -0
  1973. package/dist-extensions/src/text/layout.d.ts.map +0 -0
  1974. package/dist-extensions/src/text/measure.d.ts +0 -0
  1975. package/dist-extensions/src/text/measure.d.ts.map +0 -0
  1976. package/dist-extensions/src/text/overlayEditor.d.ts +1 -0
  1977. package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
  1978. package/dist-extensions/src/text/unicode.d.ts +0 -0
  1979. package/dist-extensions/src/text/unicode.d.ts.map +0 -0
  1980. package/dist-extensions/src/typedefs.d.ts +0 -0
  1981. package/dist-extensions/src/typedefs.d.ts.map +0 -0
  1982. package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
  1983. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
  1984. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1985. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1986. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
  1987. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1988. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
  1989. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1990. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
  1991. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1992. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
  1993. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1994. package/dist-extensions/src/util/animation/animate.d.ts +0 -0
  1995. package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
  1996. package/dist-extensions/src/util/animation/easing.d.ts +0 -0
  1997. package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
  1998. package/dist-extensions/src/util/animation/index.d.ts +0 -0
  1999. package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
  2000. package/dist-extensions/src/util/animation/types.d.ts +0 -0
  2001. package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
  2002. package/dist-extensions/src/util/applyMixins.d.ts +0 -0
  2003. package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
  2004. package/dist-extensions/src/util/dom_event.d.ts +0 -0
  2005. package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
  2006. package/dist-extensions/src/util/dom_misc.d.ts +0 -0
  2007. package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
  2008. package/dist-extensions/src/util/index.d.ts +0 -0
  2009. package/dist-extensions/src/util/index.d.ts.map +0 -0
  2010. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
  2011. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  2012. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  2013. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  2014. package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
  2015. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
  2016. package/dist-extensions/src/util/internals/console.d.ts +0 -0
  2017. package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
  2018. package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
  2019. package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
  2020. package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
  2021. package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
  2022. package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
  2023. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
  2024. package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
  2025. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
  2026. package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
  2027. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
  2028. package/dist-extensions/src/util/internals/uid.d.ts +0 -0
  2029. package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
  2030. package/dist-extensions/src/util/lang_string.d.ts +0 -0
  2031. package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
  2032. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  2033. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  2034. package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
  2035. package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
  2036. package/dist-extensions/src/util/misc/cornerRadius.d.ts +0 -0
  2037. package/dist-extensions/src/util/misc/cornerRadius.d.ts.map +0 -0
  2038. package/dist-extensions/src/util/misc/cos.d.ts +0 -0
  2039. package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
  2040. package/dist-extensions/src/util/misc/dom.d.ts +0 -0
  2041. package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
  2042. package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
  2043. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
  2044. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
  2045. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
  2046. package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
  2047. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
  2048. package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
  2049. package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
  2050. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
  2051. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  2052. package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
  2053. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
  2054. package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
  2055. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
  2056. package/dist-extensions/src/util/misc/pick.d.ts +0 -0
  2057. package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
  2058. package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
  2059. package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
  2060. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  2061. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  2062. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  2063. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  2064. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  2065. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  2066. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
  2067. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
  2068. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
  2069. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
  2070. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  2071. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  2072. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
  2073. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
  2074. package/dist-extensions/src/util/misc/sin.d.ts +0 -0
  2075. package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
  2076. package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
  2077. package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
  2078. package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
  2079. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
  2080. package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
  2081. package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
  2082. package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
  2083. package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
  2084. package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
  2085. package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
  2086. package/dist-extensions/src/util/path/index.d.ts +0 -0
  2087. package/dist-extensions/src/util/path/index.d.ts.map +0 -0
  2088. package/dist-extensions/src/util/path/regex.d.ts +0 -0
  2089. package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
  2090. package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
  2091. package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
  2092. package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
  2093. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
  2094. package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
  2095. package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -0
  2096. package/docs/fabric-konva-gap-analysis.md +0 -0
  2097. package/docs/konva-text-behavior-spec.md +0 -0
  2098. package/docs/text-engine-design.md +0 -0
  2099. package/eslint.config.mjs +0 -0
  2100. package/examples/overlay-edit.html +416 -416
  2101. package/extensions/README.MD +0 -0
  2102. package/extensions/aligning_guidelines/README.MD +0 -0
  2103. package/extensions/aligning_guidelines/constant.ts +0 -0
  2104. package/extensions/aligning_guidelines/index.ts +0 -0
  2105. package/extensions/aligning_guidelines/typedefs.ts +0 -0
  2106. package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
  2107. package/extensions/aligning_guidelines/util/basic.ts +0 -0
  2108. package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
  2109. package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
  2110. package/extensions/aligning_guidelines/util/draw.ts +0 -0
  2111. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
  2112. package/extensions/data_updaters/README.md +0 -0
  2113. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
  2114. package/extensions/data_updaters/gradient/index.spec.ts +0 -0
  2115. package/extensions/data_updaters/gradient/index.ts +0 -0
  2116. package/extensions/data_updaters/origins/README.md +0 -0
  2117. package/extensions/data_updaters/origins/index.spec.ts +0 -0
  2118. package/extensions/data_updaters/origins/index.ts +0 -0
  2119. package/extensions/index.ts +0 -0
  2120. package/fabric.ts +182 -182
  2121. package/index.node.ts +0 -0
  2122. package/index.ts +0 -0
  2123. package/lib/aligning_guidelines.js +0 -0
  2124. package/lib/centering_guidelines.js +0 -0
  2125. package/lib/event.js +0 -0
  2126. package/package.json +164 -164
  2127. package/playwright.config.ts +0 -0
  2128. package/playwright.setup.ts +0 -0
  2129. package/{fonts → public/fonts}/STV Bold.ttf +0 -0
  2130. package/{fonts → public/fonts}/STV Light.ttf +0 -0
  2131. package/{fonts → public/fonts}/STV Regular.ttf +0 -0
  2132. package/publish-next.js +0 -0
  2133. package/publish.js +0 -0
  2134. package/rollup.config.mjs +0 -0
  2135. package/rtl-debug.html +744 -744
  2136. package/scripts/bench-text.js +591 -591
  2137. package/scripts/build.mjs +0 -0
  2138. package/scripts/buildLock.mjs +0 -0
  2139. package/scripts/buildReporter.mjs +0 -0
  2140. package/scripts/buildStats.mjs +0 -0
  2141. package/scripts/dirname.mjs +0 -0
  2142. package/scripts/git.mjs +0 -0
  2143. package/scripts/index.mjs +0 -0
  2144. package/scripts/sandbox.mjs +0 -0
  2145. package/src/ClassRegistry.spec.ts +0 -0
  2146. package/src/ClassRegistry.ts +0 -0
  2147. package/src/Collection.spec.ts +0 -0
  2148. package/src/Collection.ts +0 -0
  2149. package/src/CommonMethods.ts +0 -0
  2150. package/src/EventTypeDefs.ts +0 -0
  2151. package/src/Intersection.spec.ts +0 -0
  2152. package/src/Intersection.ts +0 -0
  2153. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
  2154. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
  2155. package/src/LayoutManager/LayoutManager.spec.ts +0 -0
  2156. package/src/LayoutManager/LayoutManager.ts +0 -0
  2157. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
  2158. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
  2159. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
  2160. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
  2161. package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
  2162. package/src/LayoutManager/README.md +0 -0
  2163. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
  2164. package/src/LayoutManager/constants.ts +0 -0
  2165. package/src/LayoutManager/index.ts +0 -0
  2166. package/src/LayoutManager/types.ts +0 -0
  2167. package/src/Observable.spec.ts +0 -0
  2168. package/src/Observable.ts +0 -0
  2169. package/src/Pattern/Pattern.spec.ts +0 -0
  2170. package/src/Pattern/Pattern.ts +0 -0
  2171. package/src/Pattern/index.ts +0 -0
  2172. package/src/Pattern/types.ts +0 -0
  2173. package/src/Point.spec.ts +0 -0
  2174. package/src/Point.ts +0 -0
  2175. package/src/Shadow.spec.ts +0 -0
  2176. package/src/Shadow.ts +0 -0
  2177. package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
  2178. package/src/brushes/BaseBrush.spec.ts +0 -0
  2179. package/src/brushes/BaseBrush.ts +0 -0
  2180. package/src/brushes/CircleBrush.test.ts +0 -0
  2181. package/src/brushes/CircleBrush.ts +0 -0
  2182. package/src/brushes/PatternBrush.ts +0 -0
  2183. package/src/brushes/PencilBrush.spec.ts +0 -0
  2184. package/src/brushes/PencilBrush.ts +0 -0
  2185. package/src/brushes/SprayBrush.ts +0 -0
  2186. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
  2187. package/src/brushes/typedefs.ts +0 -0
  2188. package/src/cache.spec.ts +0 -0
  2189. package/src/cache.ts +0 -0
  2190. package/src/canvas/Canvas-dispose.spec.ts +0 -0
  2191. package/src/canvas/Canvas-events.spec.ts +0 -0
  2192. package/src/canvas/Canvas.spec.ts +0 -0
  2193. package/src/canvas/Canvas.ts +0 -0
  2194. package/src/canvas/CanvasOptions.ts +0 -0
  2195. package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
  2196. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
  2197. package/src/canvas/DOMManagers/util.spec.ts +0 -0
  2198. package/src/canvas/DOMManagers/util.ts +0 -0
  2199. package/src/canvas/SelectableCanvas.spec.ts +0 -0
  2200. package/src/canvas/SelectableCanvas.ts +0 -0
  2201. package/src/canvas/StaticCanvas.spec.ts +0 -0
  2202. package/src/canvas/StaticCanvas.ts +0 -0
  2203. package/src/canvas/StaticCanvasOptions.ts +0 -0
  2204. package/src/canvas/TextEditingManager.ts +0 -0
  2205. package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
  2206. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
  2207. package/src/canvas/__tests__/eventData.test.ts +0 -0
  2208. package/src/canvas/canvas_gestures.mixin.ts +0 -0
  2209. package/src/color/Color.ts +0 -0
  2210. package/src/color/color.test.ts +0 -0
  2211. package/src/color/color_map.ts +0 -0
  2212. package/src/color/constants.ts +0 -0
  2213. package/src/color/typedefs.ts +0 -0
  2214. package/src/color/util.ts +0 -0
  2215. package/src/config.ts +0 -0
  2216. package/src/constants.ts +0 -0
  2217. package/src/controls/Control-cursor.spec.ts +0 -0
  2218. package/src/controls/Control-handlers.spec.ts +0 -0
  2219. package/src/controls/Control.spec.ts +0 -0
  2220. package/src/controls/Control.ts +0 -0
  2221. package/src/controls/changeHeight.ts +0 -0
  2222. package/src/controls/changeWidth.test.ts +0 -0
  2223. package/src/controls/changeWidth.ts +0 -0
  2224. package/src/controls/commonControls.ts +0 -0
  2225. package/src/controls/controlRendering.ts +0 -0
  2226. package/src/controls/drag.ts +0 -0
  2227. package/src/controls/fireEvent.ts +0 -0
  2228. package/src/controls/index.ts +0 -0
  2229. package/src/controls/pathControl.spec.ts +0 -0
  2230. package/src/controls/pathControl.ts +0 -0
  2231. package/src/controls/polyControl.spec.ts +0 -0
  2232. package/src/controls/polyControl.ts +0 -0
  2233. package/src/controls/rotate.ts +0 -0
  2234. package/src/controls/scale.test.ts +0 -0
  2235. package/src/controls/scale.ts +0 -0
  2236. package/src/controls/scaleSkew.ts +0 -0
  2237. package/src/controls/skew.ts +0 -0
  2238. package/src/controls/util.ts +0 -0
  2239. package/src/controls/wrapWithFireEvent.ts +0 -0
  2240. package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
  2241. package/src/controls/wrapWithFixedAnchor.ts +0 -0
  2242. package/src/env/browser.ts +0 -0
  2243. package/src/env/env.spec.ts +0 -0
  2244. package/src/env/index.ts +0 -0
  2245. package/src/env/node.ts +0 -0
  2246. package/src/env/types.ts +0 -0
  2247. package/src/filters/BaseFilter.spec.ts +0 -0
  2248. package/src/filters/BaseFilter.ts +0 -0
  2249. package/src/filters/BlendColor.ts +0 -0
  2250. package/src/filters/BlendImage.ts +0 -0
  2251. package/src/filters/Blur.ts +0 -0
  2252. package/src/filters/Boilerplate.ts +0 -0
  2253. package/src/filters/Brightness.ts +0 -0
  2254. package/src/filters/Canvas2dFilterBackend.ts +0 -0
  2255. package/src/filters/ColorMatrix.spec.ts +0 -0
  2256. package/src/filters/ColorMatrix.ts +0 -0
  2257. package/src/filters/ColorMatrixFilters.ts +0 -0
  2258. package/src/filters/Composed.ts +0 -0
  2259. package/src/filters/Contrast.ts +0 -0
  2260. package/src/filters/Convolute.ts +0 -0
  2261. package/src/filters/FilterBackend.ts +0 -0
  2262. package/src/filters/GLProbes/GLProbe.ts +0 -0
  2263. package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
  2264. package/src/filters/GLProbes/WebGLProbe.ts +0 -0
  2265. package/src/filters/Gamma.ts +0 -0
  2266. package/src/filters/Grayscale.ts +0 -0
  2267. package/src/filters/HueRotation.ts +0 -0
  2268. package/src/filters/Invert.ts +0 -0
  2269. package/src/filters/Noise.ts +0 -0
  2270. package/src/filters/Pixelate.ts +0 -0
  2271. package/src/filters/RemoveColor.ts +0 -0
  2272. package/src/filters/Resize.ts +0 -0
  2273. package/src/filters/Saturation.ts +0 -0
  2274. package/src/filters/Vibrance.ts +0 -0
  2275. package/src/filters/WebGLFilterBackend.spec.ts +0 -0
  2276. package/src/filters/WebGLFilterBackend.ts +0 -0
  2277. package/src/filters/filters.ts +0 -0
  2278. package/src/filters/index.ts +0 -0
  2279. package/src/filters/shaders/baseFilter.ts +0 -0
  2280. package/src/filters/shaders/blendColor.ts +0 -0
  2281. package/src/filters/shaders/blendImage.ts +0 -0
  2282. package/src/filters/shaders/blur.ts +0 -0
  2283. package/src/filters/shaders/brightness.ts +0 -0
  2284. package/src/filters/shaders/colorMatrix.ts +0 -0
  2285. package/src/filters/shaders/constrast.ts +0 -0
  2286. package/src/filters/shaders/convolute.ts +0 -0
  2287. package/src/filters/shaders/gamma.ts +0 -0
  2288. package/src/filters/shaders/grayscale.ts +0 -0
  2289. package/src/filters/shaders/invert.ts +0 -0
  2290. package/src/filters/shaders/noise.ts +0 -0
  2291. package/src/filters/shaders/pixelate.ts +0 -0
  2292. package/src/filters/shaders/removeColor.ts +0 -0
  2293. package/src/filters/shaders/saturation.ts +0 -0
  2294. package/src/filters/shaders/vibrance.ts +0 -0
  2295. package/src/filters/typedefs.ts +0 -0
  2296. package/src/filters/utils.ts +0 -0
  2297. package/src/gradient/Gradient.spec.ts +0 -0
  2298. package/src/gradient/Gradient.ts +0 -0
  2299. package/src/gradient/constants.ts +0 -0
  2300. package/src/gradient/index.ts +0 -0
  2301. package/src/gradient/parser/misc.ts +0 -0
  2302. package/src/gradient/parser/parseColorStops.ts +0 -0
  2303. package/src/gradient/parser/parseCoords.ts +0 -0
  2304. package/src/gradient/typedefs.ts +0 -0
  2305. package/src/mixins/eraser_brush.mixin.ts +0 -0
  2306. package/src/parkinglot/canvas_animation.mixin.ts +0 -0
  2307. package/src/parkinglot/straighten.ts +0 -0
  2308. package/src/parser/applyViewboxTransform.spec.ts +0 -0
  2309. package/src/parser/applyViewboxTransform.ts +0 -0
  2310. package/src/parser/attributes.ts +0 -0
  2311. package/src/parser/constants.spec.ts +0 -0
  2312. package/src/parser/constants.ts +0 -0
  2313. package/src/parser/doesSomeParentMatch.ts +0 -0
  2314. package/src/parser/elementMatchesRule.ts +0 -0
  2315. package/src/parser/elements_parser.ts +0 -0
  2316. package/src/parser/getCSSRules.spec.ts +0 -0
  2317. package/src/parser/getCSSRules.ts +0 -0
  2318. package/src/parser/getGlobalStylesForElement.ts +0 -0
  2319. package/src/parser/getGradientDefs.ts +0 -0
  2320. package/src/parser/getMultipleNodes.ts +0 -0
  2321. package/src/parser/getSvgRegex.ts +0 -0
  2322. package/src/parser/getTagName.ts +0 -0
  2323. package/src/parser/hasInvalidAncestor.ts +0 -0
  2324. package/src/parser/loadSVGFromString.test.ts +0 -0
  2325. package/src/parser/loadSVGFromString.ts +0 -0
  2326. package/src/parser/loadSVGFromURL.ts +0 -0
  2327. package/src/parser/normalizeAttr.ts +0 -0
  2328. package/src/parser/normalizeValue.ts +0 -0
  2329. package/src/parser/parseAttributes.ts +0 -0
  2330. package/src/parser/parseFontDeclaration.ts +0 -0
  2331. package/src/parser/parsePointsAttribute.ts +0 -0
  2332. package/src/parser/parseSVGDocument.ts +0 -0
  2333. package/src/parser/parseStyleAttribute.ts +0 -0
  2334. package/src/parser/parseStyleObject.ts +0 -0
  2335. package/src/parser/parseStyleString.ts +0 -0
  2336. package/src/parser/parseTransformAttribute.ts +0 -0
  2337. package/src/parser/parseUseDirectives.test.ts +0 -0
  2338. package/src/parser/parseUseDirectives.ts +0 -0
  2339. package/src/parser/parser.spec.ts +0 -0
  2340. package/src/parser/percent.ts +0 -0
  2341. package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
  2342. package/src/parser/selectorMatches.ts +0 -0
  2343. package/src/parser/setStrokeFillOpacity.ts +0 -0
  2344. package/src/parser/typedefs.ts +0 -0
  2345. package/src/shapes/ActiveSelection.spec.ts +0 -0
  2346. package/src/shapes/ActiveSelection.ts +0 -0
  2347. package/src/shapes/Circle.spec.ts +0 -0
  2348. package/src/shapes/Circle.ts +0 -0
  2349. package/src/shapes/Ellipse.spec.ts +0 -0
  2350. package/src/shapes/Ellipse.ts +0 -0
  2351. package/src/shapes/Group.spec.ts +0 -0
  2352. package/src/shapes/Group.ts +0 -0
  2353. package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
  2354. package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
  2355. package/src/shapes/IText/IText.test.ts +0 -0
  2356. package/src/shapes/IText/IText.ts +846 -846
  2357. package/src/shapes/IText/ITextBehavior.test.ts +0 -0
  2358. package/src/shapes/IText/ITextBehavior.ts +1263 -1188
  2359. package/src/shapes/IText/ITextClickBehavior.ts +254 -254
  2360. package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
  2361. package/src/shapes/IText/ITextKeyBehavior.ts +732 -732
  2362. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
  2363. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
  2364. package/src/shapes/IText/constants.ts +0 -0
  2365. package/src/shapes/Image-filters.spec.ts +0 -0
  2366. package/src/shapes/Image.spec.ts +0 -0
  2367. package/src/shapes/Image.ts +0 -0
  2368. package/src/shapes/Line.spec.ts +0 -0
  2369. package/src/shapes/Line.ts +0 -0
  2370. package/src/shapes/Object/FabricObject.spec.ts +0 -0
  2371. package/src/shapes/Object/FabricObject.ts +0 -0
  2372. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
  2373. package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
  2374. package/src/shapes/Object/InteractiveObject.ts +0 -0
  2375. package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
  2376. package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
  2377. package/src/shapes/Object/Object.spec.ts +0 -0
  2378. package/src/shapes/Object/Object.ts +0 -0
  2379. package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
  2380. package/src/shapes/Object/ObjectGeometry.ts +0 -0
  2381. package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
  2382. package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
  2383. package/src/shapes/Object/StackedObject.spec.ts +0 -0
  2384. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
  2385. package/src/shapes/Object/defaultValues.ts +0 -0
  2386. package/src/shapes/Object/types/BaseProps.ts +0 -0
  2387. package/src/shapes/Object/types/BorderProps.ts +0 -0
  2388. package/src/shapes/Object/types/ControlProps.ts +0 -0
  2389. package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
  2390. package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
  2391. package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
  2392. package/src/shapes/Object/types/ObjectProps.ts +0 -0
  2393. package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
  2394. package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
  2395. package/src/shapes/Object/types/index.ts +0 -0
  2396. package/src/shapes/Path.spec.ts +0 -0
  2397. package/src/shapes/Path.ts +0 -0
  2398. package/src/shapes/Polygon.spec.ts +0 -0
  2399. package/src/shapes/Polygon.ts +0 -0
  2400. package/src/shapes/Polyline.spec.ts +0 -0
  2401. package/src/shapes/Polyline.ts +0 -0
  2402. package/src/shapes/Rect.spec.ts +0 -0
  2403. package/src/shapes/Rect.ts +0 -0
  2404. package/src/shapes/Text/StyledText.spec.ts +0 -0
  2405. package/src/shapes/Text/StyledText.ts +0 -0
  2406. package/src/shapes/Text/Text.spec.ts +0 -0
  2407. package/src/shapes/Text/Text.ts +206 -139
  2408. package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
  2409. package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
  2410. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
  2411. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
  2412. package/src/shapes/Text/constants.ts +135 -135
  2413. package/src/shapes/Textbox.spec.ts +0 -0
  2414. package/src/shapes/Textbox.ts +581 -182
  2415. package/src/shapes/Triangle.spec.ts +0 -0
  2416. package/src/shapes/Triangle.ts +0 -0
  2417. package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
  2418. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
  2419. package/src/text/browserLines.ts +266 -234
  2420. package/src/text/ellipsis.ts +516 -516
  2421. package/src/text/hitTest.ts +623 -623
  2422. package/src/text/layout.ts +586 -586
  2423. package/src/text/measure.ts +626 -626
  2424. package/src/text/overlayEditor.ts +1108 -1047
  2425. package/src/text/unicode.ts +454 -454
  2426. package/src/typedefs.ts +0 -0
  2427. package/src/util/__snapshots__/index.spec.ts.snap +0 -0
  2428. package/src/util/animation/AnimationBase.ts +0 -0
  2429. package/src/util/animation/AnimationFrameProvider.ts +0 -0
  2430. package/src/util/animation/AnimationRegistry.ts +0 -0
  2431. package/src/util/animation/ArrayAnimation.ts +0 -0
  2432. package/src/util/animation/ColorAnimation.ts +0 -0
  2433. package/src/util/animation/ValueAnimation.ts +0 -0
  2434. package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
  2435. package/src/util/animation/animate.ts +0 -0
  2436. package/src/util/animation/animations.spec.ts +0 -0
  2437. package/src/util/animation/easing.ts +0 -0
  2438. package/src/util/animation/index.ts +0 -0
  2439. package/src/util/animation/types.ts +0 -0
  2440. package/src/util/applyMixins.ts +0 -0
  2441. package/src/util/dom_event.spec.ts +0 -0
  2442. package/src/util/dom_event.ts +0 -0
  2443. package/src/util/dom_misc.ts +0 -0
  2444. package/src/util/index.spec.ts +0 -0
  2445. package/src/util/index.ts +0 -0
  2446. package/src/util/internals/applyCanvasTransform.ts +0 -0
  2447. package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
  2448. package/src/util/internals/cleanupSvgAttribute.ts +0 -0
  2449. package/src/util/internals/cloneStyles.spec.ts +0 -0
  2450. package/src/util/internals/cloneStyles.ts +0 -0
  2451. package/src/util/internals/console.ts +0 -0
  2452. package/src/util/internals/dom_style.spec.ts +0 -0
  2453. package/src/util/internals/dom_style.ts +0 -0
  2454. package/src/util/internals/findRight.ts +0 -0
  2455. package/src/util/internals/getRandomInt.test.ts +0 -0
  2456. package/src/util/internals/getRandomInt.ts +0 -0
  2457. package/src/util/internals/ifNaN.ts +0 -0
  2458. package/src/util/internals/removeFromArray.spec.ts +0 -0
  2459. package/src/util/internals/removeFromArray.ts +0 -0
  2460. package/src/util/internals/uid.ts +0 -0
  2461. package/src/util/lang_string.spec.ts +0 -0
  2462. package/src/util/lang_string.ts +0 -0
  2463. package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
  2464. package/src/util/misc/boundingBoxFromPoints.ts +0 -0
  2465. package/src/util/misc/capValue.spec.ts +0 -0
  2466. package/src/util/misc/capValue.ts +0 -0
  2467. package/src/util/misc/cornerRadius.spec.ts +0 -0
  2468. package/src/util/misc/cornerRadius.ts +0 -0
  2469. package/src/util/misc/cos.spec.ts +0 -0
  2470. package/src/util/misc/cos.ts +0 -0
  2471. package/src/util/misc/dom.spec.ts +0 -0
  2472. package/src/util/misc/dom.ts +0 -0
  2473. package/src/util/misc/findScaleTo.spec.ts +0 -0
  2474. package/src/util/misc/findScaleTo.ts +0 -0
  2475. package/src/util/misc/groupSVGElements.spec.ts +0 -0
  2476. package/src/util/misc/groupSVGElements.ts +0 -0
  2477. package/src/util/misc/isTransparent.ts +0 -0
  2478. package/src/util/misc/matrix.spec.ts +0 -0
  2479. package/src/util/misc/matrix.ts +0 -0
  2480. package/src/util/misc/mergeClipPaths.spec.ts +0 -0
  2481. package/src/util/misc/mergeClipPaths.ts +0 -0
  2482. package/src/util/misc/objectEnlive.spec.ts +0 -0
  2483. package/src/util/misc/objectEnlive.ts +0 -0
  2484. package/src/util/misc/objectTransforms.spec.ts +0 -0
  2485. package/src/util/misc/objectTransforms.ts +0 -0
  2486. package/src/util/misc/pick.spec.ts +0 -0
  2487. package/src/util/misc/pick.ts +0 -0
  2488. package/src/util/misc/planeChange.spec.ts +0 -0
  2489. package/src/util/misc/planeChange.ts +0 -0
  2490. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
  2491. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
  2492. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
  2493. package/src/util/misc/projectStroke/index.ts +0 -0
  2494. package/src/util/misc/projectStroke/types.ts +0 -0
  2495. package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
  2496. package/src/util/misc/radiansDegreesConversion.ts +0 -0
  2497. package/src/util/misc/resolveOrigin.ts +0 -0
  2498. package/src/util/misc/sin.ts +0 -0
  2499. package/src/util/misc/svgExport.ts +0 -0
  2500. package/src/util/misc/svgParsing.spec.ts +0 -0
  2501. package/src/util/misc/svgParsing.ts +0 -0
  2502. package/src/util/misc/textStyles.ts +0 -0
  2503. package/src/util/misc/toFixed.spec.ts +0 -0
  2504. package/src/util/misc/toFixed.ts +0 -0
  2505. package/src/util/misc/vectors.spec.ts +0 -0
  2506. package/src/util/misc/vectors.ts +0 -0
  2507. package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
  2508. package/src/util/path/index.spec.ts +0 -0
  2509. package/src/util/path/index.ts +0 -0
  2510. package/src/util/path/regex.ts +0 -0
  2511. package/src/util/path/typechecks.ts +0 -0
  2512. package/src/util/path/typedefs.ts +0 -0
  2513. package/src/util/transform_matrix_removal.ts +0 -0
  2514. package/src/util/typeAssertions.spec.ts +0 -0
  2515. package/src/util/typeAssertions.ts +0 -0
  2516. package/tsconfig-extensions.json +0 -0
  2517. package/tsconfig.json +0 -0
  2518. package/tsconfig.spec.json +0 -0
  2519. package/typedoc.config.json +0 -0
  2520. package/vitest.config.ts +0 -0
  2521. package/vitest.d.ts +0 -0
  2522. package/vitest.env.d.ts +0 -0
  2523. package/vitest.extend.ts +0 -0
  2524. package/vitest.setup.ts +0 -0
  2525. package/.playwright-mcp/after-justify-applied.png +0 -0
  2526. package/.playwright-mcp/after-justify-click.png +0 -0
  2527. package/.playwright-mcp/initial-state.png +0 -0
  2528. package/.playwright-mcp/justify-fixed-final.png +0 -0
  2529. package/45.6875Textbox.ts +0 -0
  2530. package/dist/src/text/examples/arabicTextExample.d.ts +0 -60
  2531. package/dist/src/text/examples/arabicTextExample.d.ts.map +0 -1
  2532. package/dist/src/text/scriptUtils.d.ts +0 -142
  2533. package/dist/src/text/scriptUtils.d.ts.map +0 -1
  2534. package/dist/src/text/scriptUtils.min.mjs +0 -2
  2535. package/dist/src/text/scriptUtils.min.mjs.map +0 -1
  2536. package/dist/src/text/scriptUtils.mjs +0 -212
  2537. package/dist/src/text/scriptUtils.mjs.map +0 -1
  2538. package/dist-extensions/src/shapes/CustomLine.d.ts +0 -10
  2539. package/dist-extensions/src/shapes/CustomLine.d.ts.map +0 -1
  2540. package/dist-extensions/src/text/scriptUtils.d.ts +0 -142
  2541. package/dist-extensions/src/text/scriptUtils.d.ts.map +0 -1
  2542. package/fabric-test-editor.html +0 -3552
  2543. package/fabric-test2.html +0 -647
package/dist/index.js CHANGED
@@ -360,7 +360,7 @@
360
360
  }
361
361
  const cache = new Cache();
362
362
 
363
- var version = "7.0.1-beta12";
363
+ var version = "7.0.1-beta14";
364
364
 
365
365
  // use this syntax so babel plugin see this import here
366
366
  const VERSION = version;
@@ -19189,8 +19189,8 @@
19189
19189
  // Global measurement context - reused for performance
19190
19190
  let measurementContext = null;
19191
19191
 
19192
- /**
19193
- * Get or create the shared measurement context
19192
+ /**
19193
+ * Get or create the shared measurement context
19194
19194
  */
19195
19195
  function getMeasurementContext() {
19196
19196
  if (!measurementContext) {
@@ -19203,8 +19203,8 @@
19203
19203
  return measurementContext;
19204
19204
  }
19205
19205
 
19206
- /**
19207
- * Measure a single grapheme
19206
+ /**
19207
+ * Measure a single grapheme
19208
19208
  */
19209
19209
  function measureGrapheme(grapheme, options, ctx) {
19210
19210
  // Check cache first
@@ -19237,8 +19237,8 @@
19237
19237
  return measurement;
19238
19238
  }
19239
19239
 
19240
- /**
19241
- * Measure a grapheme with kerning relative to previous character
19240
+ /**
19241
+ * Measure a grapheme with kerning relative to previous character
19242
19242
  */
19243
19243
  function measureGraphemeWithKerning(grapheme, previousGrapheme, options, ctx) {
19244
19244
  // Get individual measurement
@@ -19279,9 +19279,9 @@
19279
19279
  };
19280
19280
  }
19281
19281
 
19282
- /**
19283
- * Get a representative character for font metrics measurement
19284
- * Uses canvas to test which scripts the font actually supports
19282
+ /**
19283
+ * Get a representative character for font metrics measurement
19284
+ * Uses canvas to test which scripts the font actually supports
19285
19285
  */
19286
19286
  function getRepresentativeCharacter(fontFamily) {
19287
19287
  const context = getMeasurementContext();
@@ -19370,8 +19370,8 @@
19370
19370
  return 'M';
19371
19371
  }
19372
19372
 
19373
- /**
19374
- * Get font metrics for layout calculations
19373
+ /**
19374
+ * Get font metrics for layout calculations
19375
19375
  */
19376
19376
  function getFontMetrics(options) {
19377
19377
  var _metrics$fontBounding, _metrics$fontBounding2, _metrics$actualBoundi, _metrics$actualBoundi2;
@@ -19407,8 +19407,8 @@
19407
19407
  return result;
19408
19408
  }
19409
19409
 
19410
- /**
19411
- * Apply font styling to canvas context
19410
+ /**
19411
+ * Apply font styling to canvas context
19412
19412
  */
19413
19413
  function applyFontStyle(ctx, options) {
19414
19414
  const fontDeclaration = getFontDeclaration(options);
@@ -19425,8 +19425,8 @@
19425
19425
  ctx.textBaseline = 'alphabetic';
19426
19426
  }
19427
19427
 
19428
- /**
19429
- * Generate font declaration string
19428
+ /**
19429
+ * Generate font declaration string
19430
19430
  */
19431
19431
  function getFontDeclaration(options) {
19432
19432
  const {
@@ -19445,8 +19445,8 @@
19445
19445
  return `${fontStyle} ${fontWeight} ${fontSize}px ${normalizedFamily}`;
19446
19446
  }
19447
19447
 
19448
- /**
19449
- * LRU Cache implementation for measurements
19448
+ /**
19449
+ * LRU Cache implementation for measurements
19450
19450
  */
19451
19451
  class LRUCache {
19452
19452
  constructor() {
@@ -19508,8 +19508,8 @@
19508
19508
  }
19509
19509
  }
19510
19510
 
19511
- /**
19512
- * Advanced measurement cache with font-aware keys
19511
+ /**
19512
+ * Advanced measurement cache with font-aware keys
19513
19513
  */
19514
19514
  class MeasurementCache {
19515
19515
  constructor() {
@@ -19536,8 +19536,8 @@
19536
19536
  }
19537
19537
  }
19538
19538
 
19539
- /**
19540
- * Kerning cache for character pairs
19539
+ /**
19540
+ * Kerning cache for character pairs
19541
19541
  */
19542
19542
  class KerningCache {
19543
19543
  constructor() {
@@ -19565,8 +19565,8 @@
19565
19565
  }
19566
19566
  }
19567
19567
 
19568
- /**
19569
- * Font metrics cache
19568
+ /**
19569
+ * Font metrics cache
19570
19570
  */
19571
19571
  class FontMetricsCache {
19572
19572
  constructor() {
@@ -19601,8 +19601,8 @@
19601
19601
  });
19602
19602
  }
19603
19603
 
19604
- /**
19605
- * Clear all measurement caches
19604
+ /**
19605
+ * Clear all measurement caches
19606
19606
  */
19607
19607
  function clearAllCaches() {
19608
19608
  measurementCache.clear();
@@ -19610,9 +19610,9 @@
19610
19610
  fontMetricsCache.clear();
19611
19611
  }
19612
19612
 
19613
- /**
19614
- * Detect if a font lacks English glyph support
19615
- * These fonts should use browser-native measurement instead of Fabric's character-by-character measurement
19613
+ /**
19614
+ * Detect if a font lacks English glyph support
19615
+ * These fonts should use browser-native measurement instead of Fabric's character-by-character measurement
19616
19616
  */
19617
19617
  function fontLacksEnglishGlyphs(fontFamily) {
19618
19618
  if (typeof document === 'undefined') return false;
@@ -19656,8 +19656,8 @@
19656
19656
  // Cache for font glyph detection results
19657
19657
  const fontGlyphCache = new Map();
19658
19658
 
19659
- /**
19660
- * Cached version of font glyph detection
19659
+ /**
19660
+ * Cached version of font glyph detection
19661
19661
  */
19662
19662
  function fontLacksEnglishGlyphsCached(fontFamily) {
19663
19663
  if (fontGlyphCache.has(fontFamily)) {
@@ -19668,17 +19668,17 @@
19668
19668
  return result;
19669
19669
  }
19670
19670
 
19671
- /**
19672
- * Unicode and Internationalization Support
19673
- *
19674
- * Enhanced Unicode handling for complex scripts, RTL/LTR text,
19675
- * and grapheme cluster boundary detection.
19671
+ /**
19672
+ * Unicode and Internationalization Support
19673
+ *
19674
+ * Enhanced Unicode handling for complex scripts, RTL/LTR text,
19675
+ * and grapheme cluster boundary detection.
19676
19676
  */
19677
19677
 
19678
19678
 
19679
- /**
19680
- * Enhanced grapheme segmentation using Intl.Segmenter when available
19681
- * with fallback to existing graphemeSplit implementation
19679
+ /**
19680
+ * Enhanced grapheme segmentation using Intl.Segmenter when available
19681
+ * with fallback to existing graphemeSplit implementation
19682
19682
  */
19683
19683
  function segmentGraphemes(text) {
19684
19684
  // Use native Intl.Segmenter if available
@@ -19698,15 +19698,15 @@
19698
19698
  return graphemeSplit(text);
19699
19699
  }
19700
19700
 
19701
- /**
19702
- * Ellipsis Text Truncation System
19703
- *
19704
- * Implements text truncation with ellipsis when content exceeds bounds,
19705
- * using binary search for optimal truncation points.
19701
+ /**
19702
+ * Ellipsis Text Truncation System
19703
+ *
19704
+ * Implements text truncation with ellipsis when content exceeds bounds,
19705
+ * using binary search for optimal truncation points.
19706
19706
  */
19707
19707
 
19708
- /**
19709
- * Apply ellipsis truncation to text based on width/height constraints
19708
+ /**
19709
+ * Apply ellipsis truncation to text based on width/height constraints
19710
19710
  */
19711
19711
  function applyEllipsis(text, options) {
19712
19712
  const {
@@ -19776,8 +19776,8 @@
19776
19776
  };
19777
19777
  }
19778
19778
 
19779
- /**
19780
- * Truncate text based on width constraint using binary search
19779
+ /**
19780
+ * Truncate text based on width constraint using binary search
19781
19781
  */
19782
19782
  function truncateByWidth(text, maxWidth, ellipsisChar, ellipsisWidth, measureFn) {
19783
19783
  const graphemes = segmentGraphemes(text);
@@ -19827,8 +19827,8 @@
19827
19827
  };
19828
19828
  }
19829
19829
 
19830
- /**
19831
- * Truncate text based on height constraint
19830
+ /**
19831
+ * Truncate text based on height constraint
19832
19832
  */
19833
19833
  function truncateByHeight(text, maxHeight, ellipsisChar, measureFn) {
19834
19834
  var _measureFn;
@@ -19876,19 +19876,19 @@
19876
19876
  return truncateByWidth(lines[0], firstLineWidth, ellipsisChar, 0, measureFn);
19877
19877
  }
19878
19878
 
19879
- /**
19880
- * Core Text Layout Engine
19881
- *
19882
- * Implements Konva-compatible text layout with support for:
19883
- * - Multiple wrap modes (word/char/none)
19884
- * - Ellipsis truncation
19885
- * - Justify alignment with proper space distribution
19886
- * - RTL/LTR text direction
19887
- * - Advanced grapheme handling
19879
+ /**
19880
+ * Core Text Layout Engine
19881
+ *
19882
+ * Implements Konva-compatible text layout with support for:
19883
+ * - Multiple wrap modes (word/char/none)
19884
+ * - Ellipsis truncation
19885
+ * - Justify alignment with proper space distribution
19886
+ * - RTL/LTR text direction
19887
+ * - Advanced grapheme handling
19888
19888
  */
19889
19889
 
19890
- /**
19891
- * Main text layout function - converts text and options into positioned layout
19890
+ /**
19891
+ * Main text layout function - converts text and options into positioned layout
19892
19892
  */
19893
19893
  function layoutText(options) {
19894
19894
  var _ellipsisResult;
@@ -20007,8 +20007,8 @@
20007
20007
  };
20008
20008
  }
20009
20009
 
20010
- /**
20011
- * Layout a single paragraph with wrapping
20010
+ /**
20011
+ * Layout a single paragraph with wrapping
20012
20012
  */
20013
20013
  function layoutParagraph(text, options) {
20014
20014
  const {
@@ -20043,8 +20043,8 @@
20043
20043
  return layoutLines;
20044
20044
  }
20045
20045
 
20046
- /**
20047
- * Layout a single line of text (no wrapping)
20046
+ /**
20047
+ * Layout a single line of text (no wrapping)
20048
20048
  */
20049
20049
  function layoutSingleLine(text, options) {
20050
20050
  let textOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -20114,8 +20114,8 @@
20114
20114
  };
20115
20115
  }
20116
20116
 
20117
- /**
20118
- * Word-based wrapping algorithm
20117
+ /**
20118
+ * Word-based wrapping algorithm
20119
20119
  */
20120
20120
  function wrapByWords(text, maxWidth, options) {
20121
20121
  const lines = [];
@@ -20148,8 +20148,8 @@
20148
20148
  return lines.length > 0 ? lines : [''];
20149
20149
  }
20150
20150
 
20151
- /**
20152
- * Character-based wrapping algorithm
20151
+ /**
20152
+ * Character-based wrapping algorithm
20153
20153
  */
20154
20154
  function wrapByCharacters(text, maxWidth, options) {
20155
20155
  const lines = [];
@@ -20171,8 +20171,8 @@
20171
20171
  return lines.length > 0 ? lines : [''];
20172
20172
  }
20173
20173
 
20174
- /**
20175
- * Apply text alignment to lines
20174
+ /**
20175
+ * Apply text alignment to lines
20176
20176
  */
20177
20177
  function applyAlignment(lines, align, containerWidth, options) {
20178
20178
  return lines.map(line => {
@@ -20206,8 +20206,8 @@
20206
20206
  });
20207
20207
  }
20208
20208
 
20209
- /**
20210
- * Apply justify alignment by expanding spaces
20209
+ /**
20210
+ * Apply justify alignment by expanding spaces
20211
20211
  */
20212
20212
  function applyJustification(line, containerWidth, options) {
20213
20213
  const spaces = line.graphemes.filter(g => /\s/.test(g)).length;
@@ -20230,8 +20230,8 @@
20230
20230
  return line;
20231
20231
  }
20232
20232
 
20233
- /**
20234
- * Calculate vertical alignment offset
20233
+ /**
20234
+ * Calculate vertical alignment offset
20235
20235
  */
20236
20236
  function calculateVerticalOffset(contentHeight, containerHeight, align) {
20237
20237
  switch (align) {
@@ -20245,8 +20245,8 @@
20245
20245
  }
20246
20246
  }
20247
20247
 
20248
- /**
20249
- * Handle height overflow with ellipsis
20248
+ /**
20249
+ * Handle height overflow with ellipsis
20250
20250
  */
20251
20251
  function handleHeightOverflow(existingLines, overflowLine, remainingHeight, options) {
20252
20252
  // If ellipsis is enabled, try to fit part of the overflow line
@@ -20275,8 +20275,8 @@
20275
20275
  };
20276
20276
  }
20277
20277
 
20278
- /**
20279
- * Create empty line for empty paragraphs
20278
+ /**
20279
+ * Create empty line for empty paragraphs
20280
20280
  */
20281
20281
  function createEmptyLine(options) {
20282
20282
  const height = options.fontSize * options.lineHeight;
@@ -20292,8 +20292,8 @@
20292
20292
  };
20293
20293
  }
20294
20294
 
20295
- /**
20296
- * Measure width of a line of text
20295
+ /**
20296
+ * Measure width of a line of text
20297
20297
  */
20298
20298
  function measureLineWidth(text, options) {
20299
20299
  const graphemes = segmentGraphemes(text);
@@ -20310,8 +20310,8 @@
20310
20310
  return width;
20311
20311
  }
20312
20312
 
20313
- /**
20314
- * Convert layout options to measurement options
20313
+ /**
20314
+ * Convert layout options to measurement options
20315
20315
  */
20316
20316
  function createMeasurementOptions(options) {
20317
20317
  return {
@@ -20554,15 +20554,15 @@
20554
20554
  }
20555
20555
  }
20556
20556
 
20557
- /**
20558
- * Browser Line Break Extraction
20559
- *
20560
- * Captures exact line breaks as rendered by the browser to ensure
20561
- * pixel-perfect consistency between DOM editing and canvas rendering.
20557
+ /**
20558
+ * Browser Line Break Extraction
20559
+ *
20560
+ * Captures exact line breaks as rendered by the browser to ensure
20561
+ * pixel-perfect consistency between DOM editing and canvas rendering.
20562
20562
  */
20563
20563
 
20564
- /**
20565
- * Segment text into graphemes safely using Intl.Segmenter or fallback
20564
+ /**
20565
+ * Segment text into graphemes safely using Intl.Segmenter or fallback
20566
20566
  */
20567
20567
  function segmentIntoGraphemes(text) {
20568
20568
  if (typeof Intl !== 'undefined' && Intl.Segmenter) {
@@ -20576,9 +20576,9 @@
20576
20576
  return Array.from(text);
20577
20577
  }
20578
20578
 
20579
- /**
20580
- * Extract line break information from a textarea by creating a mirror element
20581
- * with identical computed styles and measuring grapheme positions.
20579
+ /**
20580
+ * Extract line break information from a textarea by creating a mirror element
20581
+ * with identical computed styles and measuring grapheme positions.
20582
20582
  */
20583
20583
  function extractLinesFromDOM(textarea) {
20584
20584
  const text = textarea.value;
@@ -20586,7 +20586,8 @@
20586
20586
  return {
20587
20587
  lines: [],
20588
20588
  totalWidth: 0,
20589
- totalHeight: 0
20589
+ totalHeight: 0,
20590
+ width: 0
20590
20591
  };
20591
20592
  }
20592
20593
 
@@ -20615,6 +20616,8 @@
20615
20616
  mirror.style.overflow = 'hidden';
20616
20617
  mirror.style.resize = 'none';
20617
20618
  container.appendChild(mirror);
20619
+ // capture the width the browser is using for layout
20620
+ const width = mirror.clientWidth;
20618
20621
  try {
20619
20622
  // Segment text into graphemes
20620
20623
  const graphemes = segmentIntoGraphemes(text);
@@ -20665,7 +20668,8 @@
20665
20668
  return {
20666
20669
  lines,
20667
20670
  totalWidth,
20668
- totalHeight
20671
+ totalHeight,
20672
+ width
20669
20673
  };
20670
20674
  } finally {
20671
20675
  // Clean up mirror element
@@ -20673,16 +20677,16 @@
20673
20677
  }
20674
20678
  }
20675
20679
 
20676
- /**
20677
- * Create a hash of layout-affecting properties to detect when browser lines are still valid
20680
+ /**
20681
+ * Create a hash of layout-affecting properties to detect when browser lines are still valid
20678
20682
  */
20679
20683
  function createLayoutHash(target) {
20680
20684
  const properties = [target.text, target.width, target.height, target.fontFamily, target.fontSize, target.fontWeight, target.fontStyle, target.lineHeight, target.charSpacing, target.textAlign, target.direction];
20681
20685
  return properties.map(p => String(p)).join('|');
20682
20686
  }
20683
20687
 
20684
- /**
20685
- * Check if stored browser lines are still valid for the current target state
20688
+ /**
20689
+ * Check if stored browser lines are still valid for the current target state
20686
20690
  */
20687
20691
  function areBrowserLinesValid(target, storedHash) {
20688
20692
  if (!storedHash || !target.__lastBrowserLines) {
@@ -20691,31 +20695,37 @@
20691
20695
  const currentHash = createLayoutHash(target);
20692
20696
  return currentHash === storedHash;
20693
20697
  }
20694
-
20695
- /**
20696
- * Store browser lines on a target object with validity hash
20698
+ /**
20699
+ * Store browser lines on a target object with validity hash
20697
20700
  */
20698
- function storeBrowserLines(target, lines, layoutHash) {
20701
+ function storeBrowserLines(target, lines, width, layoutHash) {
20699
20702
  target.__lastBrowserLines = lines;
20703
+ target.__lastBrowserLinesWidth = width;
20700
20704
  target.__lastBrowserLinesHash = createLayoutHash(target);
20701
20705
  }
20702
20706
 
20703
- /**
20704
- * Clear stored browser lines from a target object
20707
+ /**
20708
+ * Clear stored browser lines from a target object
20705
20709
  */
20706
20710
  function clearBrowserLines(target) {
20707
20711
  delete target.__lastBrowserLines;
20708
20712
  delete target.__lastBrowserLinesHash;
20713
+ delete target.__lastBrowserLinesWidth;
20709
20714
  }
20710
20715
 
20711
- /**
20712
- * Get stored browser lines if they're still valid
20716
+ /**
20717
+ * Get stored browser lines if they're still valid
20713
20718
  */
20714
20719
  function getBrowserLines(target) {
20715
20720
  const lines = target.__lastBrowserLines;
20716
20721
  const hash = target.__lastBrowserLinesHash;
20717
20722
  if (lines && areBrowserLinesValid(target, hash)) {
20718
- return lines;
20723
+ return {
20724
+ lines,
20725
+ totalWidth: 0,
20726
+ totalHeight: 0,
20727
+ width: target.__lastBrowserLinesWidth
20728
+ };
20719
20729
  }
20720
20730
  return null;
20721
20731
  }
@@ -20796,10 +20806,18 @@
20796
20806
  * Uses browser lines when available for pixel-perfect consistency.
20797
20807
  */
20798
20808
  _splitText() {
20799
- // Check if we have valid browser lines and should use them
20800
- const browserLines = getBrowserLines(this);
20801
- if (browserLines && this.useOverlayEditing) {
20802
- return this._splitTextFromBrowserLines(browserLines);
20809
+ // For justify text with overlay editing, always use normal fabric wrapping
20810
+ if (this.textAlign.includes('justify') && this.useOverlayEditing) {
20811
+ console.log('🧹 JUSTIFY OVERLAY: Using fabric wrapping');
20812
+ this.__lastBrowserLines = null;
20813
+ this.__lastBrowserLinesHash = null;
20814
+ } else {
20815
+ // Check if we have valid browser lines for non-justify text
20816
+ const browserLinesInfo = getBrowserLines(this);
20817
+ if (browserLinesInfo && this.useOverlayEditing) {
20818
+ this._browserWrappingWidth = browserLinesInfo.width;
20819
+ return this._splitTextFromBrowserLines(browserLinesInfo.lines);
20820
+ }
20803
20821
  }
20804
20822
  const newLines = this._splitTextIntoLines(this.text);
20805
20823
  this.textLines = newLines.lines;
@@ -20900,6 +20918,11 @@
20900
20918
  enlargeSpaces() {
20901
20919
  let diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;
20902
20920
  const isRtl = this.direction === 'rtl';
20921
+ // use browser wrapping width if available
20922
+ const justificationWidth = this._browserWrappingWidth || this.width;
20923
+ if (this._browserWrappingWidth) {
20924
+ this._browserWrappingWidth = undefined;
20925
+ }
20903
20926
  for (let i = 0, len = this._textLines.length; i < len; i++) {
20904
20927
  if (!this.textAlign.includes('justify') || i === len - 1 || this.isEndOfWrapping(i)) {
20905
20928
  continue;
@@ -20907,11 +20930,11 @@
20907
20930
  accumulatedSpace = 0;
20908
20931
  line = this._textLines[i];
20909
20932
  currentLineWidth = this.getLineWidth(i);
20910
- if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {
20933
+ if (currentLineWidth < justificationWidth && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {
20911
20934
  numberOfSpaces = spaces.length;
20912
- diffSpace = (this.width - currentLineWidth) / numberOfSpaces;
20935
+ diffSpace = (justificationWidth - currentLineWidth) / numberOfSpaces;
20913
20936
  console.log(`🔧 EnlargeSpaces Line ${i}:`);
20914
- console.log(` Current width: ${currentLineWidth}, Target: ${this.width}`);
20937
+ console.log(` Current width: ${currentLineWidth}, Target: ${justificationWidth}`);
20915
20938
  console.log(` Spaces: ${numberOfSpaces}, diffSpace: ${diffSpace.toFixed(2)}`);
20916
20939
  if (isRtl) {
20917
20940
  for (let j = 0; j < line.length; j++) {
@@ -22842,8 +22865,8 @@
22842
22865
  // We don't need to save/restore them here as it would conflict with IText's restoration
22843
22866
  }
22844
22867
 
22845
- /**
22846
- * Get the container element for the overlay (parent of upperCanvasEl)
22868
+ /**
22869
+ * Get the container element for the overlay (parent of upperCanvasEl)
22847
22870
  */
22848
22871
  getCanvasContainer() {
22849
22872
  const upperCanvas = this.canvas.upperCanvasEl;
@@ -22857,8 +22880,8 @@
22857
22880
  return container;
22858
22881
  }
22859
22882
 
22860
- /**
22861
- * Create the overlay DOM structure
22883
+ /**
22884
+ * Create the overlay DOM structure
22862
22885
  */
22863
22886
  createOverlayDOM() {
22864
22887
  // Host div for positioning and overflow control
@@ -22913,8 +22936,8 @@
22913
22936
  document.body.appendChild(this.hostDiv);
22914
22937
  }
22915
22938
 
22916
- /**
22917
- * Attach all event listeners
22939
+ /**
22940
+ * Attach all event listeners
22918
22941
  */
22919
22942
  attachEventListeners() {
22920
22943
  // Textarea events
@@ -22934,8 +22957,8 @@
22934
22957
  this.setupViewportChangeDetection();
22935
22958
  }
22936
22959
 
22937
- /**
22938
- * Remove all event listeners
22960
+ /**
22961
+ * Remove all event listeners
22939
22962
  */
22940
22963
  removeEventListeners() {
22941
22964
  this.textarea.removeEventListener('input', this.boundHandlers.onInput);
@@ -22952,16 +22975,16 @@
22952
22975
  this.restoreViewportChangeDetection();
22953
22976
  }
22954
22977
 
22955
- /**
22956
- * Simple method to refresh positioning when canvas changes
22978
+ /**
22979
+ * Simple method to refresh positioning when canvas changes
22957
22980
  */
22958
22981
  updatePosition() {
22959
22982
  this.applyOverlayStyle();
22960
22983
  }
22961
22984
 
22962
- /**
22963
- * Update the Fabric object bounds to match current textarea size
22964
- * This ensures Fabric.js selection controls follow the growing textbox
22985
+ /**
22986
+ * Update the Fabric object bounds to match current textarea size
22987
+ * This ensures Fabric.js selection controls follow the growing textbox
22965
22988
  */
22966
22989
  updateObjectBounds() {
22967
22990
  if (this.isDestroyed) return;
@@ -22995,15 +23018,15 @@
22995
23018
  }
22996
23019
  }
22997
23020
 
22998
- /**
22999
- * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
23021
+ /**
23022
+ * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
23000
23023
  */
23001
23024
  letterSpacingPx(charSpacing, fontSize) {
23002
23025
  return charSpacing / 1000 * fontSize;
23003
23026
  }
23004
23027
 
23005
- /**
23006
- * Detect text direction using first strong directional character
23028
+ /**
23029
+ * Detect text direction using first strong directional character
23007
23030
  */
23008
23031
  firstStrongDir(text) {
23009
23032
  // Hebrew: \u0590-\u05FF, Arabic: \u0600-\u06FF, \u0750-\u077F, \uFB50-\uFDFF, \uFE70-\uFEFF
@@ -23042,10 +23065,10 @@
23042
23065
  const top = canvasRect.top + scrollY + screenPoint.y;
23043
23066
 
23044
23067
  // 4. Calculate the precise width and height for the container
23045
- // **THE FIX:** Use getBoundingRect() for BOTH width and height.
23046
- // This is the most reliable measure of the object's final rendered dimensions.
23068
+ // **THE FIX:** Use the same width calculation as measureLinesWithBrowser for consistency
23047
23069
  const objectBounds = target.getBoundingRect();
23048
- const width = Math.round(objectBounds.width * zoom);
23070
+ const scaleX = target.scaleX || 1;
23071
+ const width = Math.round((target.width * scaleX + padding * 2) * zoom);
23049
23072
  const height = Math.round(objectBounds.height * zoom);
23050
23073
 
23051
23074
  // 5. Apply styles to host DIV - absolute positioning like rtl-test.html
@@ -23067,7 +23090,6 @@
23067
23090
  // 6. Style the textarea - match Fabric's exact rendering with padding
23068
23091
  const baseFontSize = (_target$fontSize = target.fontSize) !== null && _target$fontSize !== void 0 ? _target$fontSize : 16;
23069
23092
  // Use scaleX for font scaling to match Fabric text scaling exactly
23070
- const scaleX = target.scaleX || 1;
23071
23093
  const finalFontSize = baseFontSize * scaleX * zoom;
23072
23094
  const fabricLineHeight = target.lineHeight || 1.16;
23073
23095
  // **THE FIX:** Use 'border-box' so the width property includes padding.
@@ -23129,7 +23151,7 @@
23129
23151
  this.textarea.style.textAlignLast = 'left';
23130
23152
  }
23131
23153
  } else if (textAlign === 'justify-right') {
23132
- // If text is LTR but fabric says justify-right, override to justify-left for better UX
23154
+ // If text is LTR but fabric says justify-right, override to justify-left for better UX
23133
23155
  if (autoDetectedDirection === 'ltr') {
23134
23156
  this.textarea.style.textAlignLast = 'left';
23135
23157
  console.log(' → Overrode justify-right to justify-left for LTR text');
@@ -23240,8 +23262,8 @@
23240
23262
  // Initial bounds are set correctly by Fabric.js - don't force update here
23241
23263
  }
23242
23264
 
23243
- /**
23244
- * Debug method to compare textarea and canvas object bounding boxes
23265
+ /**
23266
+ * Debug method to compare textarea and canvas object bounding boxes
23245
23267
  */
23246
23268
  debugBoundingBoxComparison() {
23247
23269
  const target = this.target;
@@ -23311,8 +23333,8 @@
23311
23333
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
23312
23334
  }
23313
23335
 
23314
- /**
23315
- * Debug method to compare text wrapping between textarea and Fabric text object
23336
+ /**
23337
+ * Debug method to compare text wrapping between textarea and Fabric text object
23316
23338
  */
23317
23339
  debugTextWrapping() {
23318
23340
  const target = this.target;
@@ -23397,8 +23419,8 @@
23397
23419
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
23398
23420
  }
23399
23421
 
23400
- /**
23401
- * Focus the textarea and position cursor at end
23422
+ /**
23423
+ * Focus the textarea and position cursor at end
23402
23424
  */
23403
23425
  focusTextarea() {
23404
23426
  // For overlay editing, we want to keep the object in "selection mode" not "editing mode"
@@ -23438,8 +23460,8 @@
23438
23460
  this.canvas.requestRenderAll();
23439
23461
  }
23440
23462
 
23441
- /**
23442
- * Refresh overlay positioning and styling
23463
+ /**
23464
+ * Refresh overlay positioning and styling
23443
23465
  */
23444
23466
  refresh() {
23445
23467
  if (this.isDestroyed) return;
@@ -23447,32 +23469,34 @@
23447
23469
  // Don't update object bounds on every refresh - only when textarea actually resizes
23448
23470
  }
23449
23471
 
23450
- /**
23451
- * Destroy the overlay editor
23472
+ /**
23473
+ * Destroy the overlay editor
23452
23474
  */
23453
23475
  destroy() {
23476
+ var _this$target$textAlig;
23454
23477
  let commit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
23455
23478
  if (this.isDestroyed) return;
23456
23479
  this.isDestroyed = true;
23457
23480
  this.removeEventListeners();
23458
23481
 
23459
- // Restore target visibility before handling commit/cancel
23460
- if (this.target.__overlayEditor === this) {
23461
- this.target.__overlayEditor = undefined;
23462
-
23463
- // Restore original opacity
23464
- if (this.target.__overlayOriginalOpacity !== undefined) {
23465
- this.target.opacity = this.target.__overlayOriginalOpacity;
23466
- delete this.target.__overlayOriginalOpacity;
23482
+ // EXTRACT DOM DATA BEFORE REMOVING DOM for justify text preservation
23483
+ let extractedOverlayData = null;
23484
+ if (commit && (_this$target$textAlig = this.target.textAlign) !== null && _this$target$textAlig !== void 0 && _this$target$textAlig.includes('justify')) {
23485
+ try {
23486
+ // Store the DOM structure before destruction
23487
+ const result = extractLinesFromDOM(this.textarea);
23488
+ extractedOverlayData = result.lines;
23489
+ console.log('🔧 DESTROY: Extracted overlay lines before DOM removal');
23490
+ } catch (error) {
23491
+ console.warn('Failed to extract overlay lines before destruction:', error);
23467
23492
  }
23468
23493
  }
23469
23494
 
23470
- // Remove DOM first
23471
- if (this.hostDiv.parentNode) {
23472
- this.hostDiv.parentNode.removeChild(this.hostDiv);
23495
+ // Restore original opacity but keep overlayEditor reference for commit
23496
+ if (this.target.__overlayOriginalOpacity !== undefined) {
23497
+ this.target.opacity = this.target.__overlayOriginalOpacity;
23498
+ delete this.target.__overlayOriginalOpacity;
23473
23499
  }
23474
-
23475
- // Handle commit/cancel after restoring visibility
23476
23500
  if (commit && !this.isComposing) {
23477
23501
  const finalText = this.textarea.value;
23478
23502
 
@@ -23493,12 +23517,26 @@
23493
23517
  console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: "${finalText.substring(0, 30)}..."`);
23494
23518
  }
23495
23519
  if (this.onCommit) {
23520
+ // Store extracted overlay data on target for commitOverlayEdit to use
23521
+ if (extractedOverlayData) {
23522
+ this.target._extractedOverlayLines = extractedOverlayData;
23523
+ }
23496
23524
  this.onCommit(finalText);
23497
23525
  }
23498
23526
  } else if (!commit && this.onCancel) {
23499
23527
  this.onCancel();
23500
23528
  }
23501
23529
 
23530
+ // Clear overlay editor reference AFTER commit/cancel handlers
23531
+ if (this.target.__overlayEditor === this) {
23532
+ this.target.__overlayEditor = undefined;
23533
+ }
23534
+
23535
+ // Remove DOM after commit/cancel handlers
23536
+ if (this.hostDiv.parentNode) {
23537
+ this.hostDiv.parentNode.removeChild(this.hostDiv);
23538
+ }
23539
+
23502
23540
  // Note: Don't restore object cursors since IText manages all cursors in _restoreEditingProps
23503
23541
  // Let the IText editing system handle proper restoration of all cursor properties
23504
23542
 
@@ -23513,6 +23551,9 @@
23513
23551
  // Request canvas re-render
23514
23552
  this.canvas.requestRenderAll();
23515
23553
  }
23554
+ get textareaElement() {
23555
+ return this.textarea;
23556
+ }
23516
23557
 
23517
23558
  // Event handlers
23518
23559
  handleInput() {
@@ -23616,8 +23657,8 @@
23616
23657
  }
23617
23658
  }
23618
23659
 
23619
- /**
23620
- * Setup detection for viewport changes (zoom/pan)
23660
+ /**
23661
+ * Setup detection for viewport changes (zoom/pan)
23621
23662
  */
23622
23663
  setupViewportChangeDetection() {
23623
23664
  // Store original methods
@@ -23646,8 +23687,8 @@
23646
23687
  };
23647
23688
  }
23648
23689
 
23649
- /**
23650
- * Restore original viewport methods
23690
+ /**
23691
+ * Restore original viewport methods
23651
23692
  */
23652
23693
  restoreViewportChangeDetection() {
23653
23694
  if (this.canvas.__originalSetZoom) {
@@ -23662,8 +23703,8 @@
23662
23703
  }
23663
23704
  }
23664
23705
 
23665
- /**
23666
- * Enter overlay text editing mode for a text object
23706
+ /**
23707
+ * Enter overlay text editing mode for a text object
23667
23708
  */
23668
23709
  function enterTextOverlayEdit(canvas, target, options) {
23669
23710
  // If already in overlay editing, destroy existing editor first
@@ -23687,35 +23728,35 @@
23687
23728
  return editor;
23688
23729
  }
23689
23730
 
23690
- /**
23691
- * extend this regex to support non english languages
23692
- *
23693
- * - ` ` Matches a SPACE character (char code 32).
23694
- * - `\n` Matches a LINE FEED character (char code 10).
23695
- * - `.` Matches a "." character (char code 46).
23696
- * - `,` Matches a "," character (char code 44).
23697
- * - `;` Matches a ";" character (char code 59).
23698
- * - `!` Matches a "!" character (char code 33).
23699
- * - `\?` Matches a "?" character (char code 63).
23700
- * - `\-` Matches a "-" character (char code 45).
23731
+ /**
23732
+ * extend this regex to support non english languages
23733
+ *
23734
+ * - ` ` Matches a SPACE character (char code 32).
23735
+ * - `\n` Matches a LINE FEED character (char code 10).
23736
+ * - `.` Matches a "." character (char code 46).
23737
+ * - `,` Matches a "," character (char code 44).
23738
+ * - `;` Matches a ";" character (char code 59).
23739
+ * - `!` Matches a "!" character (char code 33).
23740
+ * - `\?` Matches a "?" character (char code 63).
23741
+ * - `\-` Matches a "-" character (char code 45).
23701
23742
  */
23702
23743
  // eslint-disable-next-line no-useless-escape
23703
23744
  const reNonWord = /[ \n\.,;!\?\-]/;
23704
23745
  class ITextBehavior extends FabricText {
23705
23746
  constructor() {
23706
23747
  super(...arguments);
23707
- /**
23708
- * Helps determining when the text is in composition, so that the cursor
23709
- * rendering is altered.
23748
+ /**
23749
+ * Helps determining when the text is in composition, so that the cursor
23750
+ * rendering is altered.
23710
23751
  */
23711
23752
  _defineProperty(this, "_currentCursorOpacity", 1);
23712
23753
  }
23713
- /**
23714
- * Keeps track if the IText object was selected before the actual click.
23715
- * This because we want to delay enter editing by a click.
23754
+ /**
23755
+ * Keeps track if the IText object was selected before the actual click.
23756
+ * This because we want to delay enter editing by a click.
23716
23757
  */
23717
- /**
23718
- * Initializes all the interactive behavior of IText
23758
+ /**
23759
+ * Initializes all the interactive behavior of IText
23719
23760
  */
23720
23761
  initBehavior() {
23721
23762
  this._tick = this._tick.bind(this);
@@ -23728,8 +23769,8 @@
23728
23769
  return super.onDeselect(options);
23729
23770
  }
23730
23771
 
23731
- /**
23732
- * @private
23772
+ /**
23773
+ * @private
23733
23774
  */
23734
23775
  _animateCursor(_ref) {
23735
23776
  let {
@@ -23754,8 +23795,8 @@
23754
23795
  });
23755
23796
  }
23756
23797
 
23757
- /**
23758
- * changes the cursor from visible to invisible
23798
+ /**
23799
+ * changes the cursor from visible to invisible
23759
23800
  */
23760
23801
  _tick(delay) {
23761
23802
  this._currentTickState = this._animateCursor({
@@ -23766,8 +23807,8 @@
23766
23807
  });
23767
23808
  }
23768
23809
 
23769
- /**
23770
- * Changes the cursor from invisible to visible
23810
+ /**
23811
+ * Changes the cursor from invisible to visible
23771
23812
  */
23772
23813
  _onTickComplete() {
23773
23814
  var _this$_currentTickCom;
@@ -23779,16 +23820,16 @@
23779
23820
  });
23780
23821
  }
23781
23822
 
23782
- /**
23783
- * Initializes delayed cursor
23823
+ /**
23824
+ * Initializes delayed cursor
23784
23825
  */
23785
23826
  initDelayedCursor(restart) {
23786
23827
  this.abortCursorAnimation();
23787
23828
  this._tick(restart ? 0 : this.cursorDelay);
23788
23829
  }
23789
23830
 
23790
- /**
23791
- * Aborts cursor animation, clears all timeouts and clear textarea context if necessary
23831
+ /**
23832
+ * Aborts cursor animation, clears all timeouts and clear textarea context if necessary
23792
23833
  */
23793
23834
  abortCursorAnimation() {
23794
23835
  let shouldClear = false;
@@ -23806,9 +23847,9 @@
23806
23847
  }
23807
23848
  }
23808
23849
 
23809
- /**
23810
- * Restart tue cursor animation if either is in complete state ( between animations )
23811
- * or if it never started before
23850
+ /**
23851
+ * Restart tue cursor animation if either is in complete state ( between animations )
23852
+ * or if it never started before
23812
23853
  */
23813
23854
  restartCursorIfNeeded() {
23814
23855
  if ([this._currentTickState, this._currentTickCompleteState].some(cursorAnimation => !cursorAnimation || cursorAnimation.isDone())) {
@@ -23816,8 +23857,8 @@
23816
23857
  }
23817
23858
  }
23818
23859
 
23819
- /**
23820
- * Selects entire text
23860
+ /**
23861
+ * Selects entire text
23821
23862
  */
23822
23863
  selectAll() {
23823
23864
  this.selectionStart = 0;
@@ -23827,26 +23868,26 @@
23827
23868
  return this;
23828
23869
  }
23829
23870
 
23830
- /**
23831
- * Selects entire text and updates the visual state
23871
+ /**
23872
+ * Selects entire text and updates the visual state
23832
23873
  */
23833
23874
  cmdAll() {
23834
23875
  this.selectAll();
23835
23876
  this.renderCursorOrSelection();
23836
23877
  }
23837
23878
 
23838
- /**
23839
- * Returns selected text
23840
- * @return {String}
23879
+ /**
23880
+ * Returns selected text
23881
+ * @return {String}
23841
23882
  */
23842
23883
  getSelectedText() {
23843
23884
  return this._text.slice(this.selectionStart, this.selectionEnd).join('');
23844
23885
  }
23845
23886
 
23846
- /**
23847
- * Find new selection index representing start of current word according to current selection index
23848
- * @param {Number} startFrom Current selection index
23849
- * @return {Number} New selection index
23887
+ /**
23888
+ * Find new selection index representing start of current word according to current selection index
23889
+ * @param {Number} startFrom Current selection index
23890
+ * @return {Number} New selection index
23850
23891
  */
23851
23892
  findWordBoundaryLeft(startFrom) {
23852
23893
  let offset = 0,
@@ -23866,10 +23907,10 @@
23866
23907
  return startFrom - offset;
23867
23908
  }
23868
23909
 
23869
- /**
23870
- * Find new selection index representing end of current word according to current selection index
23871
- * @param {Number} startFrom Current selection index
23872
- * @return {Number} New selection index
23910
+ /**
23911
+ * Find new selection index representing end of current word according to current selection index
23912
+ * @param {Number} startFrom Current selection index
23913
+ * @return {Number} New selection index
23873
23914
  */
23874
23915
  findWordBoundaryRight(startFrom) {
23875
23916
  let offset = 0,
@@ -23889,10 +23930,10 @@
23889
23930
  return startFrom + offset;
23890
23931
  }
23891
23932
 
23892
- /**
23893
- * Find new selection index representing start of current line according to current selection index
23894
- * @param {Number} startFrom Current selection index
23895
- * @return {Number} New selection index
23933
+ /**
23934
+ * Find new selection index representing start of current line according to current selection index
23935
+ * @param {Number} startFrom Current selection index
23936
+ * @return {Number} New selection index
23896
23937
  */
23897
23938
  findLineBoundaryLeft(startFrom) {
23898
23939
  let offset = 0,
@@ -23904,10 +23945,10 @@
23904
23945
  return startFrom - offset;
23905
23946
  }
23906
23947
 
23907
- /**
23908
- * Find new selection index representing end of current line according to current selection index
23909
- * @param {Number} startFrom Current selection index
23910
- * @return {Number} New selection index
23948
+ /**
23949
+ * Find new selection index representing end of current line according to current selection index
23950
+ * @param {Number} startFrom Current selection index
23951
+ * @return {Number} New selection index
23911
23952
  */
23912
23953
  findLineBoundaryRight(startFrom) {
23913
23954
  let offset = 0,
@@ -23919,11 +23960,11 @@
23919
23960
  return startFrom + offset;
23920
23961
  }
23921
23962
 
23922
- /**
23923
- * Finds index corresponding to beginning or end of a word
23924
- * @param {Number} selectionStart Index of a character
23925
- * @param {Number} direction 1 or -1
23926
- * @return {Number} Index of the beginning or end of a word
23963
+ /**
23964
+ * Finds index corresponding to beginning or end of a word
23965
+ * @param {Number} selectionStart Index of a character
23966
+ * @param {Number} direction 1 or -1
23967
+ * @return {Number} Index of the beginning or end of a word
23927
23968
  */
23928
23969
  searchWordBoundary(selectionStart, direction) {
23929
23970
  const text = this._text;
@@ -23941,9 +23982,9 @@
23941
23982
  return index;
23942
23983
  }
23943
23984
 
23944
- /**
23945
- * Selects the word that contains the char at index selectionStart
23946
- * @param {Number} selectionStart Index of a character
23985
+ /**
23986
+ * Selects the word that contains the char at index selectionStart
23987
+ * @param {Number} selectionStart Index of a character
23947
23988
  */
23948
23989
  selectWord(selectionStart) {
23949
23990
  selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
@@ -23959,9 +24000,9 @@
23959
24000
  this.renderCursorOrSelection();
23960
24001
  }
23961
24002
 
23962
- /**
23963
- * Selects the line that contains selectionStart
23964
- * @param {Number} selectionStart Index of a character
24003
+ /**
24004
+ * Selects the line that contains selectionStart
24005
+ * @param {Number} selectionStart Index of a character
23965
24006
  */
23966
24007
  selectLine(selectionStart) {
23967
24008
  selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
@@ -23973,8 +24014,8 @@
23973
24014
  this._updateTextarea();
23974
24015
  }
23975
24016
 
23976
- /**
23977
- * Enters editing state
24017
+ /**
24018
+ * Enters editing state
23978
24019
  */
23979
24020
  enterEditing(e) {
23980
24021
  if (this.isEditing || !this.editable) {
@@ -23994,8 +24035,8 @@
23994
24035
  }
23995
24036
  }
23996
24037
 
23997
- /**
23998
- * runs the actual logic that enter from editing state, see {@link enterEditing}
24038
+ /**
24039
+ * runs the actual logic that enter from editing state, see {@link enterEditing}
23999
24040
  */
24000
24041
  enterEditingImpl() {
24001
24042
  if (this.canvas) {
@@ -24006,6 +24047,18 @@
24006
24047
 
24007
24048
  // Check if using overlay editing
24008
24049
  if (this.useOverlayEditing) {
24050
+ // For justify text, backup the current working state before overlay editing
24051
+ if (this.textAlign.includes('justify')) {
24052
+ console.log('💾 BACKUP: Saving pre-overlay justify state');
24053
+ this._originalText = this.text; // Store original text to detect changes
24054
+ this._preOverlayJustifyState = {
24055
+ __charBounds: JSON.parse(JSON.stringify(this.__charBounds || [])),
24056
+ __lineHeights: [...(this.__lineHeights || [])],
24057
+ __lineWidths: [...(this.__lineWidths || [])],
24058
+ textLines: [...(this.textLines || [])],
24059
+ _textLines: (this._textLines || []).map(line => [...line])
24060
+ };
24061
+ }
24009
24062
  this.enterOverlayEditing();
24010
24063
  } else {
24011
24064
  this.initHiddenTextarea();
@@ -24019,8 +24072,8 @@
24019
24072
  }
24020
24073
  }
24021
24074
 
24022
- /**
24023
- * Enter overlay editing mode using DOM textarea overlay
24075
+ /**
24076
+ * Enter overlay editing mode using DOM textarea overlay
24024
24077
  */
24025
24078
  enterOverlayEditing() {
24026
24079
  this._saveEditingProps();
@@ -24041,33 +24094,85 @@
24041
24094
  });
24042
24095
  }
24043
24096
 
24044
- /**
24045
- * Commit overlay editing changes
24097
+ /**
24098
+ * Commit overlay editing changes
24046
24099
  */
24047
24100
  commitOverlayEdit(text) {
24048
24101
  const overlayEditor = this.__overlayEditor;
24049
- if (overlayEditor) {
24050
- // Extract browser lines for pixel-perfect rendering
24102
+
24103
+ // Update text first so browser line cache uses the new content
24104
+ this.text = text;
24105
+
24106
+ // For justify text, restore pre-overlay state only if text didn't change
24107
+ if (this.textAlign.includes('justify')) {
24108
+ const textChanged = this._originalText !== text;
24109
+ console.log('🔄 JUSTIFY CHECK: Text changed:', textChanged);
24110
+
24111
+ // Only restore backup state if text didn't change
24112
+ if (!textChanged) {
24113
+ const backupState = this._preOverlayJustifyState;
24114
+ if (backupState) {
24115
+ var _this$canvas;
24116
+ console.log('📦 RESTORE: Text unchanged, restoring pre-overlay state');
24117
+ // Restore the working character bounds and measurements (but keep current text)
24118
+ this.__charBounds = JSON.parse(JSON.stringify(backupState.__charBounds));
24119
+ this.__lineHeights = [...backupState.__lineHeights];
24120
+ this.__lineWidths = [...backupState.__lineWidths];
24121
+ this.textLines = [...backupState.textLines];
24122
+ this._textLines = backupState._textLines.map(line => [...line]);
24123
+
24124
+ // Clear the backup
24125
+ delete this._preOverlayJustifyState;
24126
+ delete this._originalText;
24127
+
24128
+ // Just request a render, don't rebuild
24129
+ (_this$canvas = this.canvas) === null || _this$canvas === void 0 || _this$canvas.requestRenderAll();
24130
+ return;
24131
+ }
24132
+ } else {
24133
+ console.log('🆕 REBUILD: Text changed, need to rebuild justify layout');
24134
+ // Clean up backup since we won't use it
24135
+ delete this._preOverlayJustifyState;
24136
+ delete this._originalText;
24137
+ }
24138
+ }
24139
+ if (overlayEditor && overlayEditor.textareaElement) {
24140
+ // For non-justify text, extract browser lines normally
24051
24141
  try {
24052
24142
  const result = extractLinesFromDOM(overlayEditor.textareaElement);
24053
- storeBrowserLines(this, result.lines);
24143
+ storeBrowserLines(this, result.lines, result.width);
24054
24144
  } catch (error) {
24055
24145
  console.warn('Failed to extract browser lines:', error);
24056
24146
  }
24057
24147
  }
24058
24148
 
24059
- // Update text content and trigger layout recalculation
24060
- this.text = text;
24149
+ // Trigger layout recalculation
24061
24150
  this.dirty = true;
24062
24151
  this.initDimensions();
24152
+
24153
+ // For justify text, force complete reconstruction after overlay editing
24154
+ if (this.textAlign.includes('justify') && 'enlargeSpaces' in this) {
24155
+ setTimeout(() => {
24156
+ var _this$canvas2;
24157
+ console.log('🔧 FORCE REBUILD: Rebuilding justify text after overlay editing');
24158
+ // Force complete reconstruction of character bounds
24159
+ this.__charBounds = [];
24160
+ this.__lineHeights = [];
24161
+ this.__lineWidths = [];
24162
+ // Re-run initDimensions to rebuild everything
24163
+ this.initDimensions();
24164
+ (_this$canvas2 = this.canvas) === null || _this$canvas2 === void 0 || _this$canvas2.requestRenderAll();
24165
+ }, 20);
24166
+ }
24063
24167
  this.setCoords();
24064
24168
  this.exitEditing();
24065
24169
  this.fire('changed');
24066
24170
  this.canvas && this.canvas.requestRenderAll();
24171
+ console.log('🔧 DEBUG: commitOverlayEdit complete');
24067
24172
  }
24068
24173
 
24069
- /**
24070
- * Cancel overlay editing without changes
24174
+ /**
24175
+ * Cancel overlay editing without changes
24071
24176
  */
24072
24177
  cancelOverlayEdit() {
24073
24178
  // Restore original text
@@ -24075,8 +24180,8 @@
24075
24180
  this.exitEditing();
24076
24181
  }
24077
24182
 
24078
- /**
24079
- * called by {@link Canvas#textEditingManager}
24183
+ /**
24184
+ * called by {@link Canvas#textEditingManager}
24080
24185
  */
24081
24186
  updateSelectionOnMouseMove(e) {
24082
24187
  if (this.getActiveControl()) {
@@ -24104,8 +24209,8 @@
24104
24209
  }
24105
24210
  }
24106
24211
 
24107
- /**
24108
- * @private
24212
+ /**
24213
+ * @private
24109
24214
  */
24110
24215
  _setEditingProps() {
24111
24216
  this.hoverCursor = 'text';
@@ -24117,8 +24222,8 @@
24117
24222
  this.lockMovementX = this.lockMovementY = true;
24118
24223
  }
24119
24224
 
24120
- /**
24121
- * convert from textarea to grapheme indexes
24225
+ /**
24226
+ * convert from textarea to grapheme indexes
24122
24227
  */
24123
24228
  fromStringToGraphemeSelection(start, end, text) {
24124
24229
  const smallerTextStart = text.slice(0, start),
@@ -24137,8 +24242,8 @@
24137
24242
  };
24138
24243
  }
24139
24244
 
24140
- /**
24141
- * convert from fabric to textarea values
24245
+ /**
24246
+ * convert from fabric to textarea values
24142
24247
  */
24143
24248
  fromGraphemeToStringSelection(start, end, graphemes) {
24144
24249
  const smallerTextStart = graphemes.slice(0, start),
@@ -24157,8 +24262,8 @@
24157
24262
  };
24158
24263
  }
24159
24264
 
24160
- /**
24161
- * @private
24265
+ /**
24266
+ * @private
24162
24267
  */
24163
24268
  _updateTextarea() {
24164
24269
  console.log('🔤 _updateTextarea called with fabric text:', this.text);
@@ -24183,8 +24288,8 @@
24183
24288
  this.updateTextareaPosition();
24184
24289
  }
24185
24290
 
24186
- /**
24187
- * @private
24291
+ /**
24292
+ * @private
24188
24293
  */
24189
24294
  updateFromTextArea() {
24190
24295
  if (!this.hiddenTextarea) {
@@ -24204,8 +24309,8 @@
24204
24309
  this.updateTextareaPosition();
24205
24310
  }
24206
24311
 
24207
- /**
24208
- * @private
24312
+ /**
24313
+ * @private
24209
24314
  */
24210
24315
  updateTextareaPosition() {
24211
24316
  if (this.selectionStart === this.selectionEnd) {
@@ -24215,9 +24320,9 @@
24215
24320
  }
24216
24321
  }
24217
24322
 
24218
- /**
24219
- * @private
24220
- * @return {Object} style contains style for hiddenTextarea
24323
+ /**
24324
+ * @private
24325
+ * @return {Object} style contains style for hiddenTextarea
24221
24326
  */
24222
24327
  _calcTextareaPosition() {
24223
24328
  if (!this.canvas) {
@@ -24264,8 +24369,8 @@
24264
24369
  };
24265
24370
  }
24266
24371
 
24267
- /**
24268
- * @private
24372
+ /**
24373
+ * @private
24269
24374
  */
24270
24375
  _saveEditingProps() {
24271
24376
  this._savedProps = {
@@ -24282,8 +24387,8 @@
24282
24387
  };
24283
24388
  }
24284
24389
 
24285
- /**
24286
- * @private
24390
+ /**
24391
+ * @private
24287
24392
  */
24288
24393
  _restoreEditingProps() {
24289
24394
  if (!this._savedProps) {
@@ -24303,9 +24408,9 @@
24303
24408
  delete this._savedProps;
24304
24409
  }
24305
24410
 
24306
- /**
24307
- * runs the actual logic that exits from editing state, see {@link exitEditing}
24308
- * But it does not fire events
24411
+ /**
24412
+ * runs the actual logic that exits from editing state, see {@link exitEditing}
24413
+ * But it does not fire events
24309
24414
  */
24310
24415
  exitEditingImpl() {
24311
24416
  const hiddenTextarea = this.hiddenTextarea;
@@ -24326,8 +24431,8 @@
24326
24431
  }
24327
24432
  }
24328
24433
 
24329
- /**
24330
- * Exits from editing state and fires relevant events
24434
+ /**
24435
+ * Exits from editing state and fires relevant events
24331
24436
  */
24332
24437
  exitEditing() {
24333
24438
  const isTextChanged = this._textBeforeEdit !== this.text;
@@ -24346,8 +24451,8 @@
24346
24451
  return this;
24347
24452
  }
24348
24453
 
24349
- /**
24350
- * @private
24454
+ /**
24455
+ * @private
24351
24456
  */
24352
24457
  _removeExtraneousStyles() {
24353
24458
  for (const prop in this.styles) {
@@ -24357,10 +24462,10 @@
24357
24462
  }
24358
24463
  }
24359
24464
 
24360
- /**
24361
- * remove and reflow a style block from start to end.
24362
- * @param {Number} start linear start position for removal (included in removal)
24363
- * @param {Number} end linear end position for removal ( excluded from removal )
24465
+ /**
24466
+ * remove and reflow a style block from start to end.
24467
+ * @param {Number} start linear start position for removal (included in removal)
24468
+ * @param {Number} end linear end position for removal ( excluded from removal )
24364
24469
  */
24365
24470
  removeStyleFromTo(start, end) {
24366
24471
  const {
@@ -24413,10 +24518,10 @@
24413
24518
  }
24414
24519
  }
24415
24520
 
24416
- /**
24417
- * Shifts line styles up or down
24418
- * @param {Number} lineIndex Index of a line
24419
- * @param {Number} offset Can any number?
24521
+ /**
24522
+ * Shifts line styles up or down
24523
+ * @param {Number} lineIndex Index of a line
24524
+ * @param {Number} offset Can any number?
24420
24525
  */
24421
24526
  shiftLineStyles(lineIndex, offset) {
24422
24527
  const clonedStyles = Object.assign({}, this.styles);
@@ -24431,15 +24536,15 @@
24431
24536
  }
24432
24537
  }
24433
24538
 
24434
- /**
24435
- * Handle insertion of more consecutive style lines for when one or more
24436
- * newlines gets added to the text. Since current style needs to be shifted
24437
- * first we shift the current style of the number lines needed, then we add
24438
- * new lines from the last to the first.
24439
- * @param {Number} lineIndex Index of a line
24440
- * @param {Number} charIndex Index of a char
24441
- * @param {Number} qty number of lines to add
24442
- * @param {Array} copiedStyle Array of objects styles
24539
+ /**
24540
+ * Handle insertion of more consecutive style lines for when one or more
24541
+ * newlines gets added to the text. Since current style needs to be shifted
24542
+ * first we shift the current style of the number lines needed, then we add
24543
+ * new lines from the last to the first.
24544
+ * @param {Number} lineIndex Index of a line
24545
+ * @param {Number} charIndex Index of a char
24546
+ * @param {Number} qty number of lines to add
24547
+ * @param {Array} copiedStyle Array of objects styles
24443
24548
  */
24444
24549
  insertNewlineStyleObject(lineIndex, charIndex, qty, copiedStyle) {
24445
24550
  const newLineStyles = {};
@@ -24499,12 +24604,12 @@
24499
24604
  this._forceClearCache = true;
24500
24605
  }
24501
24606
 
24502
- /**
24503
- * Inserts style object for a given line/char index
24504
- * @param {Number} lineIndex Index of a line
24505
- * @param {Number} charIndex Index of a char
24506
- * @param {Number} quantity number Style object to insert, if given
24507
- * @param {Array} copiedStyle array of style objects
24607
+ /**
24608
+ * Inserts style object for a given line/char index
24609
+ * @param {Number} lineIndex Index of a line
24610
+ * @param {Number} charIndex Index of a char
24611
+ * @param {Number} quantity number Style object to insert, if given
24612
+ * @param {Array} copiedStyle array of style objects
24508
24613
  */
24509
24614
  insertCharStyleObject(lineIndex, charIndex, quantity, copiedStyle) {
24510
24615
  if (!this.styles) {
@@ -24553,11 +24658,11 @@
24553
24658
  }
24554
24659
  }
24555
24660
 
24556
- /**
24557
- * Inserts style object(s)
24558
- * @param {Array} insertedText Characters at the location where style is inserted
24559
- * @param {Number} start cursor index for inserting style
24560
- * @param {Array} [copiedStyle] array of style objects to insert.
24661
+ /**
24662
+ * Inserts style object(s)
24663
+ * @param {Array} insertedText Characters at the location where style is inserted
24664
+ * @param {Number} start cursor index for inserting style
24665
+ * @param {Array} [copiedStyle] array of style objects to insert.
24561
24666
  */
24562
24667
  insertNewStyleBlock(insertedText, start, copiedStyle) {
24563
24668
  const cursorLoc = this.get2DCursorLocation(start, true),
@@ -24598,12 +24703,12 @@
24598
24703
  }
24599
24704
  }
24600
24705
 
24601
- /**
24602
- * Removes characters from start/end
24603
- * start/end ar per grapheme position in _text array.
24604
- *
24605
- * @param {Number} start
24606
- * @param {Number} end default to start + 1
24706
+ /**
24707
+ * Removes characters from start/end
24708
+ * start/end ar per grapheme position in _text array.
24709
+ *
24710
+ * @param {Number} start
24711
+ * @param {Number} end default to start + 1
24607
24712
  */
24608
24713
  removeChars(start) {
24609
24714
  let end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : start + 1;
@@ -24616,17 +24721,17 @@
24616
24721
  this._removeExtraneousStyles();
24617
24722
  }
24618
24723
 
24619
- /**
24620
- * insert characters at start position, before start position.
24621
- * start equal 1 it means the text get inserted between actual grapheme 0 and 1
24622
- * if style array is provided, it must be as the same length of text in graphemes
24623
- * if end is provided and is bigger than start, old text is replaced.
24624
- * start/end ar per grapheme position in _text array.
24625
- *
24626
- * @param {String} text text to insert
24627
- * @param {Array} style array of style objects
24628
- * @param {Number} start
24629
- * @param {Number} end default to start + 1
24724
+ /**
24725
+ * insert characters at start position, before start position.
24726
+ * start equal 1 it means the text get inserted between actual grapheme 0 and 1
24727
+ * if style array is provided, it must be as the same length of text in graphemes
24728
+ * if end is provided and is bigger than start, old text is replaced.
24729
+ * start/end ar per grapheme position in _text array.
24730
+ *
24731
+ * @param {String} text text to insert
24732
+ * @param {Array} style array of style objects
24733
+ * @param {Number} start
24734
+ * @param {Number} end default to start + 1
24630
24735
  */
24631
24736
  insertChars(text, style, start) {
24632
24737
  let end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : start;
@@ -24643,9 +24748,9 @@
24643
24748
  this._removeExtraneousStyles();
24644
24749
  }
24645
24750
 
24646
- /**
24647
- * Set the selectionStart and selectionEnd according to the new position of cursor
24648
- * mimic the key - mouse navigation when shift is pressed.
24751
+ /**
24752
+ * Set the selectionStart and selectionEnd according to the new position of cursor
24753
+ * mimic the key - mouse navigation when shift is pressed.
24649
24754
  */
24650
24755
  setSelectionStartEndWithShift(start, end, newSelection) {
24651
24756
  if (newSelection <= start) {
@@ -24676,36 +24781,36 @@
24676
24781
  }
24677
24782
 
24678
24783
  class ITextKeyBehavior extends ITextBehavior {
24679
- /**
24680
- * For functionalities on keyDown
24681
- * Map a special key to a function of the instance/prototype
24682
- * If you need different behavior for ESC or TAB or arrows, you have to change
24683
- * this map setting the name of a function that you build on the IText or
24684
- * your prototype.
24685
- * the map change will affect all Instances unless you need for only some text Instances
24686
- * in that case you have to clone this object and assign your Instance.
24687
- * this.keysMap = Object.assign({}, this.keysMap);
24688
- * The function must be in IText.prototype.myFunction And will receive event as args[0]
24784
+ /**
24785
+ * For functionalities on keyDown
24786
+ * Map a special key to a function of the instance/prototype
24787
+ * If you need different behavior for ESC or TAB or arrows, you have to change
24788
+ * this map setting the name of a function that you build on the IText or
24789
+ * your prototype.
24790
+ * the map change will affect all Instances unless you need for only some text Instances
24791
+ * in that case you have to clone this object and assign your Instance.
24792
+ * this.keysMap = Object.assign({}, this.keysMap);
24793
+ * The function must be in IText.prototype.myFunction And will receive event as args[0]
24689
24794
  */
24690
24795
 
24691
- /**
24692
- * For functionalities on keyUp + ctrl || cmd
24796
+ /**
24797
+ * For functionalities on keyUp + ctrl || cmd
24693
24798
  */
24694
24799
 
24695
- /**
24696
- * For functionalities on keyDown + ctrl || cmd
24800
+ /**
24801
+ * For functionalities on keyDown + ctrl || cmd
24697
24802
  */
24698
24803
 
24699
- /**
24700
- * DOM container to append the hiddenTextarea.
24701
- * An alternative to attaching to the document.body.
24702
- * Useful to reduce laggish redraw of the full document.body tree and
24703
- * also with modals event capturing that won't let the textarea take focus.
24704
- * @type HTMLElement
24804
+ /**
24805
+ * DOM container to append the hiddenTextarea.
24806
+ * An alternative to attaching to the document.body.
24807
+ * Useful to reduce laggish redraw of the full document.body tree and
24808
+ * also with modals event capturing that won't let the textarea take focus.
24809
+ * @type HTMLElement
24705
24810
  */
24706
24811
 
24707
- /**
24708
- * Initializes hidden textarea (needed to bring up keyboard in iOS)
24812
+ /**
24813
+ * Initializes hidden textarea (needed to bring up keyboard in iOS)
24709
24814
  */
24710
24815
  initHiddenTextarea() {
24711
24816
  const doc = this.canvas && getDocumentFromElement(this.canvas.getElement()) || getFabricDocument();
@@ -24748,17 +24853,17 @@
24748
24853
  this.hiddenTextarea = textarea;
24749
24854
  }
24750
24855
 
24751
- /**
24752
- * Override this method to customize cursor behavior on textbox blur
24856
+ /**
24857
+ * Override this method to customize cursor behavior on textbox blur
24753
24858
  */
24754
24859
  blur() {
24755
24860
  this.abortCursorAnimation();
24756
24861
  }
24757
24862
 
24758
- /**
24759
- * Handles keydown event
24760
- * only used for arrows and combination of modifier keys.
24761
- * @param {KeyboardEvent} e Event object
24863
+ /**
24864
+ * Handles keydown event
24865
+ * only used for arrows and combination of modifier keys.
24866
+ * @param {KeyboardEvent} e Event object
24762
24867
  */
24763
24868
  onKeyDown(e) {
24764
24869
  if (!this.isEditing) {
@@ -24784,11 +24889,11 @@
24784
24889
  }
24785
24890
  }
24786
24891
 
24787
- /**
24788
- * Handles keyup event
24789
- * We handle KeyUp because ie11 and edge have difficulties copy/pasting
24790
- * if a copy/cut event fired, keyup is dismissed
24791
- * @param {KeyboardEvent} e Event object
24892
+ /**
24893
+ * Handles keyup event
24894
+ * We handle KeyUp because ie11 and edge have difficulties copy/pasting
24895
+ * if a copy/cut event fired, keyup is dismissed
24896
+ * @param {KeyboardEvent} e Event object
24792
24897
  */
24793
24898
  onKeyUp(e) {
24794
24899
  if (!this.isEditing || this._copyDone || this.inCompositionMode) {
@@ -24805,9 +24910,9 @@
24805
24910
  this.canvas && this.canvas.requestRenderAll();
24806
24911
  }
24807
24912
 
24808
- /**
24809
- * Handles onInput event
24810
- * @param {Event} e Event object
24913
+ /**
24914
+ * Handles onInput event
24915
+ * @param {Event} e Event object
24811
24916
  */
24812
24917
  onInput(e) {
24813
24918
  const fromPaste = this.fromPaste;
@@ -24944,15 +25049,15 @@
24944
25049
  updateAndFire();
24945
25050
  }
24946
25051
 
24947
- /**
24948
- * Composition start
25052
+ /**
25053
+ * Composition start
24949
25054
  */
24950
25055
  onCompositionStart() {
24951
25056
  this.inCompositionMode = true;
24952
25057
  }
24953
25058
 
24954
- /**
24955
- * Composition end
25059
+ /**
25060
+ * Composition end
24956
25061
  */
24957
25062
  onCompositionEnd() {
24958
25063
  this.inCompositionMode = false;
@@ -24970,8 +25075,8 @@
24970
25075
  this.updateTextareaPosition();
24971
25076
  }
24972
25077
 
24973
- /**
24974
- * Copies selected text
25078
+ /**
25079
+ * Copies selected text
24975
25080
  */
24976
25081
  copy() {
24977
25082
  if (this.selectionStart === this.selectionEnd) {
@@ -24990,19 +25095,19 @@
24990
25095
  this._copyDone = true;
24991
25096
  }
24992
25097
 
24993
- /**
24994
- * Pastes text
25098
+ /**
25099
+ * Pastes text
24995
25100
  */
24996
25101
  paste() {
24997
25102
  this.fromPaste = true;
24998
25103
  }
24999
25104
 
25000
- /**
25001
- * Finds the width in pixels before the cursor on the same line
25002
- * @private
25003
- * @param {Number} lineIndex
25004
- * @param {Number} charIndex
25005
- * @return {Number} widthBeforeCursor width before cursor
25105
+ /**
25106
+ * Finds the width in pixels before the cursor on the same line
25107
+ * @private
25108
+ * @param {Number} lineIndex
25109
+ * @param {Number} charIndex
25110
+ * @return {Number} widthBeforeCursor width before cursor
25006
25111
  */
25007
25112
  _getWidthBeforeCursor(lineIndex, charIndex) {
25008
25113
  let widthBeforeCursor = this._getLineLeftOffset(lineIndex),
@@ -25014,11 +25119,11 @@
25014
25119
  return widthBeforeCursor;
25015
25120
  }
25016
25121
 
25017
- /**
25018
- * Gets start offset of a selection
25019
- * @param {KeyboardEvent} e Event object
25020
- * @param {Boolean} isRight
25021
- * @return {Number}
25122
+ /**
25123
+ * Gets start offset of a selection
25124
+ * @param {KeyboardEvent} e Event object
25125
+ * @param {Boolean} isRight
25126
+ * @return {Number}
25022
25127
  */
25023
25128
  getDownCursorOffset(e, isRight) {
25024
25129
  const selectionProp = this._getSelectionForOffset(e, isRight),
@@ -25036,12 +25141,12 @@
25036
25141
  return textAfterCursor.length + indexOnOtherLine + 1 + this.missingNewlineOffset(lineIndex);
25037
25142
  }
25038
25143
 
25039
- /**
25040
- * private
25041
- * Helps finding if the offset should be counted from Start or End
25042
- * @param {KeyboardEvent} e Event object
25043
- * @param {Boolean} isRight
25044
- * @return {Number}
25144
+ /**
25145
+ * private
25146
+ * Helps finding if the offset should be counted from Start or End
25147
+ * @param {KeyboardEvent} e Event object
25148
+ * @param {Boolean} isRight
25149
+ * @return {Number}
25045
25150
  */
25046
25151
  _getSelectionForOffset(e, isRight) {
25047
25152
  if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {
@@ -25051,10 +25156,10 @@
25051
25156
  }
25052
25157
  }
25053
25158
 
25054
- /**
25055
- * @param {KeyboardEvent} e Event object
25056
- * @param {Boolean} isRight
25057
- * @return {Number}
25159
+ /**
25160
+ * @param {KeyboardEvent} e Event object
25161
+ * @param {Boolean} isRight
25162
+ * @return {Number}
25058
25163
  */
25059
25164
  getUpCursorOffset(e, isRight) {
25060
25165
  const selectionProp = this._getSelectionForOffset(e, isRight),
@@ -25073,9 +25178,9 @@
25073
25178
  return -this._textLines[lineIndex - 1].length + indexOnOtherLine - textBeforeCursor.length + (1 - missingNewlineOffset);
25074
25179
  }
25075
25180
 
25076
- /**
25077
- * for a given width it founds the matching character.
25078
- * @private
25181
+ /**
25182
+ * for a given width it founds the matching character.
25183
+ * @private
25079
25184
  */
25080
25185
  _getIndexOnLine(lineIndex, width) {
25081
25186
  const line = this._textLines[lineIndex],
@@ -25105,9 +25210,9 @@
25105
25210
  return indexOnLine;
25106
25211
  }
25107
25212
 
25108
- /**
25109
- * Moves cursor down
25110
- * @param {KeyboardEvent} e Event object
25213
+ /**
25214
+ * Moves cursor down
25215
+ * @param {KeyboardEvent} e Event object
25111
25216
  */
25112
25217
  moveCursorDown(e) {
25113
25218
  if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {
@@ -25116,9 +25221,9 @@
25116
25221
  this._moveCursorUpOrDown('Down', e);
25117
25222
  }
25118
25223
 
25119
- /**
25120
- * Moves cursor up
25121
- * @param {KeyboardEvent} e Event object
25224
+ /**
25225
+ * Moves cursor up
25226
+ * @param {KeyboardEvent} e Event object
25122
25227
  */
25123
25228
  moveCursorUp(e) {
25124
25229
  if (this.selectionStart === 0 && this.selectionEnd === 0) {
@@ -25127,10 +25232,10 @@
25127
25232
  this._moveCursorUpOrDown('Up', e);
25128
25233
  }
25129
25234
 
25130
- /**
25131
- * Moves cursor up or down, fires the events
25132
- * @param {String} direction 'Up' or 'Down'
25133
- * @param {KeyboardEvent} e Event object
25235
+ /**
25236
+ * Moves cursor up or down, fires the events
25237
+ * @param {String} direction 'Up' or 'Down'
25238
+ * @param {KeyboardEvent} e Event object
25134
25239
  */
25135
25240
  _moveCursorUpOrDown(direction, e) {
25136
25241
  const offset = this[`get${direction}CursorOffset`](e, this._selectionDirection === RIGHT);
@@ -25152,9 +25257,9 @@
25152
25257
  }
25153
25258
  }
25154
25259
 
25155
- /**
25156
- * Moves cursor with shift
25157
- * @param {Number} offset
25260
+ /**
25261
+ * Moves cursor with shift
25262
+ * @param {Number} offset
25158
25263
  */
25159
25264
  moveCursorWithShift(offset) {
25160
25265
  const newSelection = this._selectionDirection === LEFT ? this.selectionStart + offset : this.selectionEnd + offset;
@@ -25162,9 +25267,9 @@
25162
25267
  return offset !== 0;
25163
25268
  }
25164
25269
 
25165
- /**
25166
- * Moves cursor up without shift
25167
- * @param {Number} offset
25270
+ /**
25271
+ * Moves cursor up without shift
25272
+ * @param {Number} offset
25168
25273
  */
25169
25274
  moveCursorWithoutShift(offset) {
25170
25275
  if (offset < 0) {
@@ -25177,9 +25282,9 @@
25177
25282
  return offset !== 0;
25178
25283
  }
25179
25284
 
25180
- /**
25181
- * Moves cursor left
25182
- * @param {KeyboardEvent} e Event object
25285
+ /**
25286
+ * Moves cursor left
25287
+ * @param {KeyboardEvent} e Event object
25183
25288
  */
25184
25289
  moveCursorLeft(e) {
25185
25290
  if (this.selectionStart === 0 && this.selectionEnd === 0) {
@@ -25188,11 +25293,11 @@
25188
25293
  this._moveCursorLeftOrRight('Left', e);
25189
25294
  }
25190
25295
 
25191
- /**
25192
- * @private
25193
- * @return {Boolean} true if a change happened
25194
- *
25195
- * @todo refactor not to use method name composition
25296
+ /**
25297
+ * @private
25298
+ * @return {Boolean} true if a change happened
25299
+ *
25300
+ * @todo refactor not to use method name composition
25196
25301
  */
25197
25302
  _move(e, prop, direction) {
25198
25303
  let newValue;
@@ -25211,23 +25316,23 @@
25211
25316
  return false;
25212
25317
  }
25213
25318
 
25214
- /**
25215
- * @private
25319
+ /**
25320
+ * @private
25216
25321
  */
25217
25322
  _moveLeft(e, prop) {
25218
25323
  return this._move(e, prop, 'Left');
25219
25324
  }
25220
25325
 
25221
- /**
25222
- * @private
25326
+ /**
25327
+ * @private
25223
25328
  */
25224
25329
  _moveRight(e, prop) {
25225
25330
  return this._move(e, prop, 'Right');
25226
25331
  }
25227
25332
 
25228
- /**
25229
- * Moves cursor left without keeping selection
25230
- * @param {KeyboardEvent} e
25333
+ /**
25334
+ * Moves cursor left without keeping selection
25335
+ * @param {KeyboardEvent} e
25231
25336
  */
25232
25337
  moveCursorLeftWithoutShift(e) {
25233
25338
  let change = true;
@@ -25242,9 +25347,9 @@
25242
25347
  return change;
25243
25348
  }
25244
25349
 
25245
- /**
25246
- * Moves cursor left while keeping selection
25247
- * @param {KeyboardEvent} e
25350
+ /**
25351
+ * Moves cursor left while keeping selection
25352
+ * @param {KeyboardEvent} e
25248
25353
  */
25249
25354
  moveCursorLeftWithShift(e) {
25250
25355
  if (this._selectionDirection === RIGHT && this.selectionStart !== this.selectionEnd) {
@@ -25255,9 +25360,9 @@
25255
25360
  }
25256
25361
  }
25257
25362
 
25258
- /**
25259
- * Moves cursor right
25260
- * @param {KeyboardEvent} e Event object
25363
+ /**
25364
+ * Moves cursor right
25365
+ * @param {KeyboardEvent} e Event object
25261
25366
  */
25262
25367
  moveCursorRight(e) {
25263
25368
  if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {
@@ -25266,10 +25371,10 @@
25266
25371
  this._moveCursorLeftOrRight('Right', e);
25267
25372
  }
25268
25373
 
25269
- /**
25270
- * Moves cursor right or Left, fires event
25271
- * @param {String} direction 'Left', 'Right'
25272
- * @param {KeyboardEvent} e Event object
25374
+ /**
25375
+ * Moves cursor right or Left, fires event
25376
+ * @param {String} direction 'Left', 'Right'
25377
+ * @param {KeyboardEvent} e Event object
25273
25378
  */
25274
25379
  _moveCursorLeftOrRight(direction, e) {
25275
25380
  const actionName = `moveCursor${direction}${e.shiftKey ? 'WithShift' : 'WithoutShift'}`;
@@ -25284,9 +25389,9 @@
25284
25389
  }
25285
25390
  }
25286
25391
 
25287
- /**
25288
- * Moves cursor right while keeping selection
25289
- * @param {KeyboardEvent} e
25392
+ /**
25393
+ * Moves cursor right while keeping selection
25394
+ * @param {KeyboardEvent} e
25290
25395
  */
25291
25396
  moveCursorRightWithShift(e) {
25292
25397
  if (this._selectionDirection === LEFT && this.selectionStart !== this.selectionEnd) {
@@ -25297,9 +25402,9 @@
25297
25402
  }
25298
25403
  }
25299
25404
 
25300
- /**
25301
- * Moves cursor right without keeping selection
25302
- * @param {KeyboardEvent} e Event object
25405
+ /**
25406
+ * Moves cursor right without keeping selection
25407
+ * @param {KeyboardEvent} e Event object
25303
25408
  */
25304
25409
  moveCursorRightWithoutShift(e) {
25305
25410
  let changed = true;
@@ -25314,8 +25419,8 @@
25314
25419
  }
25315
25420
  }
25316
25421
 
25317
- /**
25318
- * `LEFT_CLICK === 0`
25422
+ /**
25423
+ * `LEFT_CLICK === 0`
25319
25424
  */
25320
25425
  const notALeftClick = e => !!e.button;
25321
25426
  class ITextClickBehavior extends ITextKeyBehavior {
@@ -25333,36 +25438,36 @@
25333
25438
  super.initBehavior();
25334
25439
  }
25335
25440
 
25336
- /**
25337
- * If this method returns true a mouse move operation over a text selection
25338
- * will not prevent the native mouse event allowing the browser to start a drag operation.
25339
- * shouldStartDragging can be read 'do not prevent default for mouse move event'
25340
- * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
25341
- * @returns
25441
+ /**
25442
+ * If this method returns true a mouse move operation over a text selection
25443
+ * will not prevent the native mouse event allowing the browser to start a drag operation.
25444
+ * shouldStartDragging can be read 'do not prevent default for mouse move event'
25445
+ * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
25446
+ * @returns
25342
25447
  */
25343
25448
  shouldStartDragging() {
25344
25449
  return this.draggableTextDelegate.isActive();
25345
25450
  }
25346
25451
 
25347
- /**
25348
- * @public override this method to control whether instance should/shouldn't become a drag source,
25349
- * @see also {@link DraggableTextDelegate#isActive}
25350
- * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
25351
- * @returns {boolean} should handle event
25452
+ /**
25453
+ * @public override this method to control whether instance should/shouldn't become a drag source,
25454
+ * @see also {@link DraggableTextDelegate#isActive}
25455
+ * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
25456
+ * @returns {boolean} should handle event
25352
25457
  */
25353
25458
  onDragStart(e) {
25354
25459
  return this.draggableTextDelegate.onDragStart(e);
25355
25460
  }
25356
25461
 
25357
- /**
25358
- * @public override this method to control whether instance should/shouldn't become a drop target
25462
+ /**
25463
+ * @public override this method to control whether instance should/shouldn't become a drop target
25359
25464
  */
25360
25465
  canDrop(e) {
25361
25466
  return this.draggableTextDelegate.canDrop(e);
25362
25467
  }
25363
25468
 
25364
- /**
25365
- * Default handler for double click, select a word or enter overlay editing
25469
+ /**
25470
+ * Default handler for double click, select a word or enter overlay editing
25366
25471
  */
25367
25472
  doubleClickHandler(options) {
25368
25473
  // Check if we should enter overlay editing mode
@@ -25379,8 +25484,8 @@
25379
25484
  this.renderCursorOrSelection();
25380
25485
  }
25381
25486
 
25382
- /**
25383
- * Default handler for triple click, select a line
25487
+ /**
25488
+ * Default handler for triple click, select a line
25384
25489
  */
25385
25490
  tripleClickHandler(options) {
25386
25491
  if (!this.isEditing) {
@@ -25390,13 +25495,13 @@
25390
25495
  this.renderCursorOrSelection();
25391
25496
  }
25392
25497
 
25393
- /**
25394
- * Default event handler for the basic functionalities needed on _mouseDown
25395
- * can be overridden to do something different.
25396
- * Scope of this implementation is: find the click position, set selectionStart
25397
- * find selectionEnd, initialize the drawing of either cursor or selection area
25398
- * initializing a mousedDown on a text area will cancel fabricjs knowledge of
25399
- * current compositionMode. It will be set to false.
25498
+ /**
25499
+ * Default event handler for the basic functionalities needed on _mouseDown
25500
+ * can be overridden to do something different.
25501
+ * Scope of this implementation is: find the click position, set selectionStart
25502
+ * find selectionEnd, initialize the drawing of either cursor or selection area
25503
+ * initializing a mousedDown on a text area will cancel fabricjs knowledge of
25504
+ * current compositionMode. It will be set to false.
25400
25505
  */
25401
25506
  _mouseDownHandler(_ref) {
25402
25507
  let {
@@ -25424,9 +25529,9 @@
25424
25529
  this.selected || (this.selected = alreadySelected || this.isEditing);
25425
25530
  }
25426
25531
 
25427
- /**
25428
- * standard handler for mouse up, overridable
25429
- * @private
25532
+ /**
25533
+ * standard handler for mouse up, overridable
25534
+ * @private
25430
25535
  */
25431
25536
  mouseUpHandler(_ref2) {
25432
25537
  let {
@@ -25457,9 +25562,9 @@
25457
25562
  }
25458
25563
  }
25459
25564
 
25460
- /**
25461
- * Changes cursor location in a text depending on passed pointer (x/y) object
25462
- * @param {TPointerEvent} e Event object
25565
+ /**
25566
+ * Changes cursor location in a text depending on passed pointer (x/y) object
25567
+ * @param {TPointerEvent} e Event object
25463
25568
  */
25464
25569
  setCursorByClick(e) {
25465
25570
  const newSelection = this.getSelectionStartFromPointer(e),
@@ -25477,10 +25582,10 @@
25477
25582
  }
25478
25583
  }
25479
25584
 
25480
- /**
25481
- * Returns index of a character corresponding to where an object was clicked
25482
- * @param {TPointerEvent} e Event object
25483
- * @return {Number} Index of a character
25585
+ /**
25586
+ * Returns index of a character corresponding to where an object was clicked
25587
+ * @param {TPointerEvent} e Event object
25588
+ * @return {Number} Index of a character
25484
25589
  */
25485
25590
  getSelectionStartFromPointer(e) {
25486
25591
  const mouseOffset = this.canvas.getScenePoint(e).transform(invertTransform(this.calcTransformMatrix())).add(new Point(-this._getLeftOffset(), -this._getTopOffset()));
@@ -25526,15 +25631,15 @@
25526
25631
  }
25527
25632
  }
25528
25633
 
25529
- /**
25530
- * Hit Testing and Cursor Positioning System
25531
- *
25532
- * Maps pointer coordinates to text positions and provides cursor rectangles
25533
- * for interactive text editing with grapheme-aware boundaries.
25634
+ /**
25635
+ * Hit Testing and Cursor Positioning System
25636
+ *
25637
+ * Maps pointer coordinates to text positions and provides cursor rectangles
25638
+ * for interactive text editing with grapheme-aware boundaries.
25534
25639
  */
25535
25640
 
25536
- /**
25537
- * Hit test a point against laid out text to find insertion position
25641
+ /**
25642
+ * Hit test a point against laid out text to find insertion position
25538
25643
  */
25539
25644
  function hitTest(x, y, layout, options) {
25540
25645
  if (layout.lines.length === 0) {
@@ -25578,8 +25683,8 @@
25578
25683
  };
25579
25684
  }
25580
25685
 
25581
- /**
25582
- * Get cursor rectangle for a given insertion index
25686
+ /**
25687
+ * Get cursor rectangle for a given insertion index
25583
25688
  */
25584
25689
  function getCursorRect(insertionIndex, layout, options) {
25585
25690
  if (layout.lines.length === 0) {
@@ -25626,8 +25731,8 @@
25626
25731
 
25627
25732
  // Private helper functions
25628
25733
 
25629
- /**
25630
- * Find which line contains the given Y coordinate
25734
+ /**
25735
+ * Find which line contains the given Y coordinate
25631
25736
  */
25632
25737
  function findLineAtY(y, lines) {
25633
25738
  var _lines;
@@ -25650,8 +25755,8 @@
25650
25755
  };
25651
25756
  }
25652
25757
 
25653
- /**
25654
- * Find character position within a line at given X coordinate
25758
+ /**
25759
+ * Find character position within a line at given X coordinate
25655
25760
  */
25656
25761
  function findCharAtX(x, line, options) {
25657
25762
  if (line.bounds.length === 0) {
@@ -25757,8 +25862,8 @@
25757
25862
  };
25758
25863
  }
25759
25864
 
25760
- /**
25761
- * Calculate total insertion index from line and character indices
25865
+ /**
25866
+ * Calculate total insertion index from line and character indices
25762
25867
  */
25763
25868
  function calculateInsertionIndex(lineIndex, graphemeIndex, layout) {
25764
25869
  let insertionIndex = 0;
@@ -25777,8 +25882,8 @@
25777
25882
  return insertionIndex;
25778
25883
  }
25779
25884
 
25780
- /**
25781
- * Find line and grapheme position from insertion index
25885
+ /**
25886
+ * Find line and grapheme position from insertion index
25782
25887
  */
25783
25888
  function findPositionFromIndex(insertionIndex, layout) {
25784
25889
  let currentIndex = 0;
@@ -25820,8 +25925,8 @@
25820
25925
  };
25821
25926
  }
25822
25927
 
25823
- /**
25824
- * Calculate Y position of a line
25928
+ /**
25929
+ * Calculate Y position of a line
25825
25930
  */
25826
25931
  function calculateLineY(lineIndex, layout, options) {
25827
25932
  let y = 0;
@@ -25924,48 +26029,48 @@
25924
26029
 
25925
26030
  // @TODO this is not complete
25926
26031
 
25927
- /**
25928
- * @fires changed
25929
- * @fires selection:changed
25930
- * @fires editing:entered
25931
- * @fires editing:exited
25932
- * @fires dragstart
25933
- * @fires drag drag event firing on the drag source
25934
- * @fires dragend
25935
- * @fires copy
25936
- * @fires cut
25937
- * @fires paste
25938
- *
25939
- * #### Supported key combinations
25940
- * ```
25941
- * Move cursor: left, right, up, down
25942
- * Select character: shift + left, shift + right
25943
- * Select text vertically: shift + up, shift + down
25944
- * Move cursor by word: alt + left, alt + right
25945
- * Select words: shift + alt + left, shift + alt + right
25946
- * Move cursor to line start/end: cmd + left, cmd + right or home, end
25947
- * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
25948
- * Jump to start/end of text: cmd + up, cmd + down
25949
- * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
25950
- * Delete character: backspace
25951
- * Delete word: alt + backspace
25952
- * Delete line: cmd + backspace
25953
- * Forward delete: delete
25954
- * Copy text: ctrl/cmd + c
25955
- * Paste text: ctrl/cmd + v
25956
- * Cut text: ctrl/cmd + x
25957
- * Select entire text: ctrl/cmd + a
25958
- * Quit editing tab or esc
25959
- * ```
25960
- *
25961
- * #### Supported mouse/touch combination
25962
- * ```
25963
- * Position cursor: click/touch
25964
- * Create selection: click/touch & drag
25965
- * Create selection: click & shift + click
25966
- * Select word: double click
25967
- * Select line: triple click
25968
- * ```
26032
+ /**
26033
+ * @fires changed
26034
+ * @fires selection:changed
26035
+ * @fires editing:entered
26036
+ * @fires editing:exited
26037
+ * @fires dragstart
26038
+ * @fires drag drag event firing on the drag source
26039
+ * @fires dragend
26040
+ * @fires copy
26041
+ * @fires cut
26042
+ * @fires paste
26043
+ *
26044
+ * #### Supported key combinations
26045
+ * ```
26046
+ * Move cursor: left, right, up, down
26047
+ * Select character: shift + left, shift + right
26048
+ * Select text vertically: shift + up, shift + down
26049
+ * Move cursor by word: alt + left, alt + right
26050
+ * Select words: shift + alt + left, shift + alt + right
26051
+ * Move cursor to line start/end: cmd + left, cmd + right or home, end
26052
+ * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
26053
+ * Jump to start/end of text: cmd + up, cmd + down
26054
+ * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
26055
+ * Delete character: backspace
26056
+ * Delete word: alt + backspace
26057
+ * Delete line: cmd + backspace
26058
+ * Forward delete: delete
26059
+ * Copy text: ctrl/cmd + c
26060
+ * Paste text: ctrl/cmd + v
26061
+ * Cut text: ctrl/cmd + x
26062
+ * Select entire text: ctrl/cmd + a
26063
+ * Quit editing tab or esc
26064
+ * ```
26065
+ *
26066
+ * #### Supported mouse/touch combination
26067
+ * ```
26068
+ * Position cursor: click/touch
26069
+ * Create selection: click/touch & drag
26070
+ * Create selection: click & shift + click
26071
+ * Select word: double click
26072
+ * Select line: triple click
26073
+ * ```
25969
26074
  */
25970
26075
  class IText extends ITextClickBehavior {
25971
26076
  static getDefaults() {
@@ -25980,10 +26085,10 @@
25980
26085
  return type === 'itext' ? 'i-text' : type;
25981
26086
  }
25982
26087
 
25983
- /**
25984
- * Constructor
25985
- * @param {String} text Text string
25986
- * @param {Object} [options] Options object
26088
+ /**
26089
+ * Constructor
26090
+ * @param {String} text Text string
26091
+ * @param {Object} [options] Options object
25987
26092
  */
25988
26093
  constructor(text, options) {
25989
26094
  super(text, {
@@ -25993,11 +26098,11 @@
25993
26098
  this.initBehavior();
25994
26099
  }
25995
26100
 
25996
- /**
25997
- * While editing handle differently
25998
- * @private
25999
- * @param {string} key
26000
- * @param {*} value
26101
+ /**
26102
+ * While editing handle differently
26103
+ * @private
26104
+ * @param {string} key
26105
+ * @param {*} value
26001
26106
  */
26002
26107
  _set(key, value) {
26003
26108
  if (this.isEditing && this._savedProps && key in this._savedProps) {
@@ -26012,28 +26117,28 @@
26012
26117
  return super._set(key, value);
26013
26118
  }
26014
26119
 
26015
- /**
26016
- * Sets selection start (left boundary of a selection)
26017
- * @param {Number} index Index to set selection start to
26120
+ /**
26121
+ * Sets selection start (left boundary of a selection)
26122
+ * @param {Number} index Index to set selection start to
26018
26123
  */
26019
26124
  setSelectionStart(index) {
26020
26125
  index = Math.max(index, 0);
26021
26126
  this._updateAndFire('selectionStart', index);
26022
26127
  }
26023
26128
 
26024
- /**
26025
- * Sets selection end (right boundary of a selection)
26026
- * @param {Number} index Index to set selection end to
26129
+ /**
26130
+ * Sets selection end (right boundary of a selection)
26131
+ * @param {Number} index Index to set selection end to
26027
26132
  */
26028
26133
  setSelectionEnd(index) {
26029
26134
  index = Math.min(index, this.text.length);
26030
26135
  this._updateAndFire('selectionEnd', index);
26031
26136
  }
26032
26137
 
26033
- /**
26034
- * @private
26035
- * @param {String} property 'selectionStart' or 'selectionEnd'
26036
- * @param {Number} index new position of property
26138
+ /**
26139
+ * @private
26140
+ * @param {String} property 'selectionStart' or 'selectionEnd'
26141
+ * @param {Number} index new position of property
26037
26142
  */
26038
26143
  _updateAndFire(property, index) {
26039
26144
  if (this[property] !== index) {
@@ -26043,9 +26148,9 @@
26043
26148
  this._updateTextarea();
26044
26149
  }
26045
26150
 
26046
- /**
26047
- * Fires the even of selection changed
26048
- * @private
26151
+ /**
26152
+ * Fires the even of selection changed
26153
+ * @private
26049
26154
  */
26050
26155
  _fireSelectionChanged() {
26051
26156
  this.fire('selection:changed');
@@ -26054,25 +26159,25 @@
26054
26159
  });
26055
26160
  }
26056
26161
 
26057
- /**
26058
- * Initialize text dimensions. Render all text on given context
26059
- * or on a offscreen canvas to get the text width with measureText.
26060
- * Updates this.width and this.height with the proper values.
26061
- * Does not return dimensions.
26062
- * @private
26162
+ /**
26163
+ * Initialize text dimensions. Render all text on given context
26164
+ * or on a offscreen canvas to get the text width with measureText.
26165
+ * Updates this.width and this.height with the proper values.
26166
+ * Does not return dimensions.
26167
+ * @private
26063
26168
  */
26064
26169
  initDimensions() {
26065
26170
  this.isEditing && this.initDelayedCursor();
26066
26171
  super.initDimensions();
26067
26172
  }
26068
26173
 
26069
- /**
26070
- * Gets style of a current selection/cursor (at the start position)
26071
- * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
26072
- * @param {Number} startIndex Start index to get styles at
26073
- * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
26074
- * @param {Boolean} [complete] get full style or not
26075
- * @return {Array} styles an array with one, zero or more Style objects
26174
+ /**
26175
+ * Gets style of a current selection/cursor (at the start position)
26176
+ * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
26177
+ * @param {Number} startIndex Start index to get styles at
26178
+ * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
26179
+ * @param {Boolean} [complete] get full style or not
26180
+ * @return {Array} styles an array with one, zero or more Style objects
26076
26181
  */
26077
26182
  getSelectionStyles() {
26078
26183
  let startIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart || 0;
@@ -26081,11 +26186,11 @@
26081
26186
  return super.getSelectionStyles(startIndex, endIndex, complete);
26082
26187
  }
26083
26188
 
26084
- /**
26085
- * Sets style of a current selection, if no selection exist, do not set anything.
26086
- * @param {Object} [styles] Styles object
26087
- * @param {Number} [startIndex] Start index to get styles at
26088
- * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
26189
+ /**
26190
+ * Sets style of a current selection, if no selection exist, do not set anything.
26191
+ * @param {Object} [styles] Styles object
26192
+ * @param {Number} [startIndex] Start index to get styles at
26193
+ * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
26089
26194
  */
26090
26195
  setSelectionStyles(styles) {
26091
26196
  let startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.selectionStart || 0;
@@ -26093,10 +26198,10 @@
26093
26198
  return super.setSelectionStyles(styles, startIndex, endIndex);
26094
26199
  }
26095
26200
 
26096
- /**
26097
- * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
26098
- * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
26099
- * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
26201
+ /**
26202
+ * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
26203
+ * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
26204
+ * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
26100
26205
  */
26101
26206
  get2DCursorLocation() {
26102
26207
  let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -26104,9 +26209,9 @@
26104
26209
  return super.get2DCursorLocation(selectionStart, skipWrapping);
26105
26210
  }
26106
26211
 
26107
- /**
26108
- * @private
26109
- * @param {CanvasRenderingContext2D} ctx Context to render on
26212
+ /**
26213
+ * @private
26214
+ * @param {CanvasRenderingContext2D} ctx Context to render on
26110
26215
  */
26111
26216
  render(ctx) {
26112
26217
  super.render(ctx);
@@ -26116,9 +26221,9 @@
26116
26221
  this.renderCursorOrSelection();
26117
26222
  }
26118
26223
 
26119
- /**
26120
- * @override block cursor/selection logic while rendering the exported canvas
26121
- * @todo this workaround should be replaced with a more robust solution
26224
+ /**
26225
+ * @override block cursor/selection logic while rendering the exported canvas
26226
+ * @todo this workaround should be replaced with a more robust solution
26122
26227
  */
26123
26228
  toCanvasElement(options) {
26124
26229
  const isEditing = this.isEditing;
@@ -26128,9 +26233,9 @@
26128
26233
  return canvas;
26129
26234
  }
26130
26235
 
26131
- /**
26132
- * Renders cursor or selection (depending on what exists)
26133
- * it does on the contextTop. If contextTop is not available, do nothing.
26236
+ /**
26237
+ * Renders cursor or selection (depending on what exists)
26238
+ * it does on the contextTop. If contextTop is not available, do nothing.
26134
26239
  */
26135
26240
  renderCursorOrSelection() {
26136
26241
  if (!this.isEditing || !this.canvas) {
@@ -26186,12 +26291,12 @@
26186
26291
  ctx.restore();
26187
26292
  }
26188
26293
 
26189
- /**
26190
- * Finds and returns an array of clip paths that are applied to the parent
26191
- * group(s) of the current FabricObject instance. The object's hierarchy is
26192
- * traversed upwards (from the current object towards the root of the canvas),
26193
- * checking each parent object for the presence of a `clipPath` that is not
26194
- * absolutely positioned.
26294
+ /**
26295
+ * Finds and returns an array of clip paths that are applied to the parent
26296
+ * group(s) of the current FabricObject instance. The object's hierarchy is
26297
+ * traversed upwards (from the current object towards the root of the canvas),
26298
+ * checking each parent object for the presence of a `clipPath` that is not
26299
+ * absolutely positioned.
26195
26300
  */
26196
26301
  findAncestorsWithClipPath() {
26197
26302
  const clipPathAncestors = [];
@@ -26206,13 +26311,13 @@
26206
26311
  return clipPathAncestors;
26207
26312
  }
26208
26313
 
26209
- /**
26210
- * Returns cursor boundaries (left, top, leftOffset, topOffset)
26211
- * left/top are left/top of entire text box
26212
- * leftOffset/topOffset are offset from that left/top point of a text box
26213
- * @private
26214
- * @param {number} [index] index from start
26215
- * @param {boolean} [skipCaching]
26314
+ /**
26315
+ * Returns cursor boundaries (left, top, leftOffset, topOffset)
26316
+ * left/top are left/top of entire text box
26317
+ * leftOffset/topOffset are offset from that left/top point of a text box
26318
+ * @private
26319
+ * @param {number} [index] index from start
26320
+ * @param {boolean} [skipCaching]
26216
26321
  */
26217
26322
  _getCursorBoundaries() {
26218
26323
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -26226,11 +26331,11 @@
26226
26331
  return this._getCursorBoundariesOriginal(index, skipCaching);
26227
26332
  }
26228
26333
 
26229
- /**
26230
- * Caches and returns cursor left/top offset relative to instance's center point
26231
- * @private
26232
- * @param {number} index index from start
26233
- * @param {boolean} [skipCaching]
26334
+ /**
26335
+ * Caches and returns cursor left/top offset relative to instance's center point
26336
+ * @private
26337
+ * @param {number} index index from start
26338
+ * @param {boolean} [skipCaching]
26234
26339
  */
26235
26340
  _getCursorBoundariesOffsets(index, skipCaching) {
26236
26341
  if (skipCaching) {
@@ -26242,9 +26347,9 @@
26242
26347
  return this.cursorOffsetCache = this.__getCursorBoundariesOffsets(index);
26243
26348
  }
26244
26349
 
26245
- /**
26246
- * Enhanced cursor boundaries using advanced hit testing when available
26247
- * @private
26350
+ /**
26351
+ * Enhanced cursor boundaries using advanced hit testing when available
26352
+ * @private
26248
26353
  */
26249
26354
  _getCursorBoundariesAdvanced(index) {
26250
26355
  if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
@@ -26260,9 +26365,9 @@
26260
26365
  };
26261
26366
  }
26262
26367
 
26263
- /**
26264
- * Enhanced selection start from pointer using BiDi-aware hit testing
26265
- * @override
26368
+ /**
26369
+ * Enhanced selection start from pointer using BiDi-aware hit testing
26370
+ * @override
26266
26371
  */
26267
26372
  getSelectionStartFromPointer(e) {
26268
26373
  if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
@@ -26276,9 +26381,9 @@
26276
26381
  return Math.min(hitResult.charIndex, this._text.length);
26277
26382
  }
26278
26383
 
26279
- /**
26280
- * Original cursor boundaries implementation
26281
- * @private
26384
+ /**
26385
+ * Original cursor boundaries implementation
26386
+ * @private
26282
26387
  */
26283
26388
  _getCursorBoundariesOriginal(index, skipCaching) {
26284
26389
  const left = this._getLeftOffset(),
@@ -26292,10 +26397,10 @@
26292
26397
  };
26293
26398
  }
26294
26399
 
26295
- /**
26296
- * Calculates cursor left/top offset relative to instance's center point
26297
- * @private
26298
- * @param {number} index index from start
26400
+ /**
26401
+ * Calculates cursor left/top offset relative to instance's center point
26402
+ * @private
26403
+ * @param {number} index index from start
26299
26404
  */
26300
26405
  __getCursorBoundariesOffsets(index) {
26301
26406
  let topOffset = 0,
@@ -26329,29 +26434,29 @@
26329
26434
  return boundaries;
26330
26435
  }
26331
26436
 
26332
- /**
26333
- * Renders cursor on context Top, outside the animation cycle, on request
26334
- * Used for the drag/drop effect.
26335
- * If contextTop is not available, do nothing.
26437
+ /**
26438
+ * Renders cursor on context Top, outside the animation cycle, on request
26439
+ * Used for the drag/drop effect.
26440
+ * If contextTop is not available, do nothing.
26336
26441
  */
26337
26442
  renderCursorAt(selectionStart) {
26338
26443
  this._renderCursor(this.canvas.contextTop, this._getCursorBoundaries(selectionStart, true), selectionStart);
26339
26444
  }
26340
26445
 
26341
- /**
26342
- * Renders cursor
26343
- * @param {Object} boundaries
26344
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26446
+ /**
26447
+ * Renders cursor
26448
+ * @param {Object} boundaries
26449
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26345
26450
  */
26346
26451
  renderCursor(ctx, boundaries) {
26347
26452
  this._renderCursor(ctx, boundaries, this.selectionStart);
26348
26453
  }
26349
26454
 
26350
- /**
26351
- * Return the data needed to render the cursor for given selection start
26352
- * The left,top are relative to the object, while width and height are prescaled
26353
- * to look think with canvas zoom and object scaling,
26354
- * so they depend on canvas and object scaling
26455
+ /**
26456
+ * Return the data needed to render the cursor for given selection start
26457
+ * The left,top are relative to the object, while width and height are prescaled
26458
+ * to look think with canvas zoom and object scaling,
26459
+ * so they depend on canvas and object scaling
26355
26460
  */
26356
26461
  getCursorRenderingData() {
26357
26462
  let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -26374,9 +26479,9 @@
26374
26479
  };
26375
26480
  }
26376
26481
 
26377
- /**
26378
- * Render the cursor at the given selectionStart.
26379
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26482
+ /**
26483
+ * Render the cursor at the given selectionStart.
26484
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26380
26485
  */
26381
26486
  _renderCursor(ctx, boundaries, selectionStart) {
26382
26487
  const {
@@ -26392,10 +26497,10 @@
26392
26497
  ctx.fillRect(left, top, width, height);
26393
26498
  }
26394
26499
 
26395
- /**
26396
- * Renders text selection
26397
- * @param {Object} boundaries Object with left/top/leftOffset/topOffset
26398
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26500
+ /**
26501
+ * Renders text selection
26502
+ * @param {Object} boundaries Object with left/top/leftOffset/topOffset
26503
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26399
26504
  */
26400
26505
  renderSelection(ctx, boundaries) {
26401
26506
  const selection = {
@@ -26405,8 +26510,8 @@
26405
26510
  this._renderSelection(ctx, selection, boundaries);
26406
26511
  }
26407
26512
 
26408
- /**
26409
- * Renders drag start text selection
26513
+ /**
26514
+ * Renders drag start text selection
26410
26515
  */
26411
26516
  renderDragSourceEffect() {
26412
26517
  const dragStartSelection = this.draggableTextDelegate.getDragStartSelection();
@@ -26417,12 +26522,12 @@
26417
26522
  this.renderCursorAt(dragSelection);
26418
26523
  }
26419
26524
 
26420
- /**
26421
- * Renders text selection
26422
- * @private
26423
- * @param {{ selectionStart: number, selectionEnd: number }} selection
26424
- * @param {Object} boundaries Object with left/top/leftOffset/topOffset
26425
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26525
+ /**
26526
+ * Renders text selection
26527
+ * @private
26528
+ * @param {{ selectionStart: number, selectionEnd: number }} selection
26529
+ * @param {Object} boundaries Object with left/top/leftOffset/topOffset
26530
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
26426
26531
  */
26427
26532
  _renderSelection(ctx, selection, boundaries) {
26428
26533
  const selectionStart = selection.selectionStart,
@@ -26484,34 +26589,34 @@
26484
26589
  }
26485
26590
  }
26486
26591
 
26487
- /**
26488
- * High level function to know the height of the cursor.
26489
- * the currentChar is the one that precedes the cursor
26490
- * Returns fontSize of char at the current cursor
26491
- * Unused from the library, is for the end user
26492
- * @return {Number} Character font size
26592
+ /**
26593
+ * High level function to know the height of the cursor.
26594
+ * the currentChar is the one that precedes the cursor
26595
+ * Returns fontSize of char at the current cursor
26596
+ * Unused from the library, is for the end user
26597
+ * @return {Number} Character font size
26493
26598
  */
26494
26599
  getCurrentCharFontSize() {
26495
26600
  const cp = this._getCurrentCharIndex();
26496
26601
  return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');
26497
26602
  }
26498
26603
 
26499
- /**
26500
- * High level function to know the color of the cursor.
26501
- * the currentChar is the one that precedes the cursor
26502
- * Returns color (fill) of char at the current cursor
26503
- * if the text object has a pattern or gradient for filler, it will return that.
26504
- * Unused by the library, is for the end user
26505
- * @return {String | TFiller} Character color (fill)
26604
+ /**
26605
+ * High level function to know the color of the cursor.
26606
+ * the currentChar is the one that precedes the cursor
26607
+ * Returns color (fill) of char at the current cursor
26608
+ * if the text object has a pattern or gradient for filler, it will return that.
26609
+ * Unused by the library, is for the end user
26610
+ * @return {String | TFiller} Character color (fill)
26506
26611
  */
26507
26612
  getCurrentCharColor() {
26508
26613
  const cp = this._getCurrentCharIndex();
26509
26614
  return this.getValueOfPropertyAt(cp.l, cp.c, FILL);
26510
26615
  }
26511
26616
 
26512
- /**
26513
- * Returns the cursor position for the getCurrent.. functions
26514
- * @private
26617
+ /**
26618
+ * Returns the cursor position for the getCurrent.. functions
26619
+ * @private
26515
26620
  */
26516
26621
  _getCurrentCharIndex() {
26517
26622
  const cursorPosition = this.get2DCursorLocation(this.selectionStart, true),
@@ -26527,52 +26632,52 @@
26527
26632
  super.dispose();
26528
26633
  }
26529
26634
  }
26530
- /**
26531
- * Index where text selection starts (or where cursor is when there is no selection)
26532
- * @type Number
26635
+ /**
26636
+ * Index where text selection starts (or where cursor is when there is no selection)
26637
+ * @type Number
26533
26638
  */
26534
- /**
26535
- * Index where text selection ends
26536
- * @type Number
26639
+ /**
26640
+ * Index where text selection ends
26641
+ * @type Number
26537
26642
  */
26538
- /**
26539
- * Color of text selection
26540
- * @type String
26643
+ /**
26644
+ * Color of text selection
26645
+ * @type String
26541
26646
  */
26542
- /**
26543
- * Indicates whether text is in editing mode
26544
- * @type Boolean
26647
+ /**
26648
+ * Indicates whether text is in editing mode
26649
+ * @type Boolean
26545
26650
  */
26546
- /**
26547
- * Indicates whether a text can be edited
26548
- * @type Boolean
26651
+ /**
26652
+ * Indicates whether a text can be edited
26653
+ * @type Boolean
26549
26654
  */
26550
- /**
26551
- * Border color of text object while it's in editing mode
26552
- * @type String
26655
+ /**
26656
+ * Border color of text object while it's in editing mode
26657
+ * @type String
26553
26658
  */
26554
- /**
26555
- * Width of cursor (in px)
26556
- * @type Number
26659
+ /**
26660
+ * Width of cursor (in px)
26661
+ * @type Number
26557
26662
  */
26558
- /**
26559
- * Color of text cursor color in editing mode.
26560
- * if not set (default) will take color from the text.
26561
- * if set to a color value that fabric can understand, it will
26562
- * be used instead of the color of the text at the current position.
26563
- * @type String
26663
+ /**
26664
+ * Color of text cursor color in editing mode.
26665
+ * if not set (default) will take color from the text.
26666
+ * if set to a color value that fabric can understand, it will
26667
+ * be used instead of the color of the text at the current position.
26668
+ * @type String
26564
26669
  */
26565
- /**
26566
- * Delay between cursor blink (in ms)
26567
- * @type Number
26670
+ /**
26671
+ * Delay between cursor blink (in ms)
26672
+ * @type Number
26568
26673
  */
26569
- /**
26570
- * Duration of cursor fade in (in ms)
26571
- * @type Number
26674
+ /**
26675
+ * Duration of cursor fade in (in ms)
26676
+ * @type Number
26572
26677
  */
26573
- /**
26574
- * Indicates whether internal text char widths can be cached
26575
- * @type Boolean
26678
+ /**
26679
+ * Indicates whether internal text char widths can be cached
26680
+ * @type Boolean
26576
26681
  */
26577
26682
  _defineProperty(IText, "ownDefaults", iTextDefaultValues);
26578
26683
  _defineProperty(IText, "type", 'IText');
@@ -26713,15 +26818,8 @@
26713
26818
  return;
26714
26819
  }
26715
26820
 
26716
- // Don't apply justify alignment during drag operations to prevent snapping
26717
- const now = Date.now();
26718
- const lastDragTime = this._lastInitDimensionsTime || 0;
26719
- const isDuringDrag = now - lastDragTime < 200; // 200ms window for drag detection
26720
-
26721
- if (isDuringDrag) {
26722
- console.log('🔤 Skipping justify during drag operation to prevent snapping');
26723
- return;
26724
- }
26821
+ // Note: Removed drag detection logic that was causing issues
26822
+ // Justify alignment will now apply immediately when needed
26725
26823
 
26726
26824
  // For non-browser-wrapping fonts, use Fabric's justify system
26727
26825
  // once text is measured we need to make space fatter to make justified text.
@@ -26781,7 +26879,9 @@
26781
26879
  }
26782
26880
 
26783
26881
  // Double-check that justify was applied by checking space widths
26784
- if (this.textAlign.includes('justify') && this.__charBounds) {
26882
+ // Skip validation during rapid width changes to prevent interference
26883
+ console.log('🔍 JUSTIFY CHECK:', this.textAlign.includes('justify'), !!this.__charBounds, !this._skipJustifyValidation);
26884
+ if (this.textAlign.includes('justify') && this.__charBounds && !this._skipJustifyValidation) {
26785
26885
  setTimeout(() => {
26786
26886
  // Verify justify was applied by checking if space widths vary
26787
26887
  let hasVariableSpaces = false;
@@ -27294,7 +27394,8 @@
27294
27394
  */
27295
27395
  _splitTextIntoLines(text) {
27296
27396
  // Check if we need browser wrapping using smart font detection
27297
- const needsBrowserWrapping = this.fontFamily && fontLacksEnglishGlyphsCached(this.fontFamily);
27397
+ // Skip browser wrapping for justify text when using overlay editing to prevent measurement conflicts
27398
+ const needsBrowserWrapping = this.fontFamily && fontLacksEnglishGlyphsCached(this.fontFamily) && !(this.textAlign.includes('justify') && this.useOverlayEditing);
27298
27399
  if (needsBrowserWrapping) {
27299
27400
  // Cache key based on text content, width, font properties, AND text alignment
27300
27401
  const textHash = text.length + text.slice(0, 50); // Include text content in cache key
@@ -27319,6 +27420,11 @@
27319
27420
 
27320
27421
  // Mark that we used browser wrapping to prevent dynamicMinWidth modifications
27321
27422
  this._usingBrowserWrapping = true;
27423
+
27424
+ // pass the width to enlargeSpaces
27425
+ if (result.width) {
27426
+ this._browserWrappingWidth = result.width;
27427
+ }
27322
27428
  return result;
27323
27429
  }
27324
27430
 
@@ -27347,26 +27453,47 @@
27347
27453
  return this._splitTextIntoLinesDefault(text);
27348
27454
  }
27349
27455
 
27456
+ // Skip measurement if we just extracted lines from overlay for justify text
27457
+ if (this._skipJustifyMeasurement && this.textAlign.includes('justify')) {
27458
+ console.log('🚫 SKIP: Skipping browser measurement, using stored overlay lines');
27459
+ this._skipJustifyMeasurement = false; // Reset flag
27460
+ return this._splitTextIntoLinesDefault(text);
27461
+ }
27462
+
27350
27463
  // Create a hidden element that mimics the overlay editor
27351
27464
  const testElement = document.createElement('div');
27352
27465
  testElement.style.position = 'absolute';
27353
27466
  testElement.style.left = '-9999px';
27354
27467
  testElement.style.visibility = 'hidden';
27355
- testElement.style.fontSize = `${this.fontSize}px`;
27468
+ const scaleX = this.scaleX || 1;
27469
+ const fontSize = this.fontSize * scaleX;
27470
+ const padding = this.padding || 0;
27471
+ testElement.style.fontSize = `${fontSize}px`;
27356
27472
  testElement.style.fontFamily = `"${this.fontFamily}"`;
27357
27473
  testElement.style.fontWeight = String(this.fontWeight || 'normal');
27358
27474
  testElement.style.fontStyle = String(this.fontStyle || 'normal');
27359
27475
  testElement.style.lineHeight = String(this.lineHeight || 1.16);
27360
- testElement.style.width = `${this.width}px`;
27476
+ testElement.style.letterSpacing = `${(this.charSpacing || 0) / 1000 * fontSize}px`;
27361
27477
  testElement.style.direction = this.direction || 'ltr';
27362
27478
  testElement.style.whiteSpace = 'pre-wrap';
27363
27479
  testElement.style.wordBreak = 'normal';
27364
27480
  testElement.style.overflowWrap = 'break-word';
27365
-
27366
- // Set browser-native text alignment (including justify)
27481
+ testElement.style.padding = `${padding}px`;
27482
+ testElement.style.boxSizing = 'border-box';
27483
+ testElement.style.width = `${this.width * scaleX + padding * 2}px`;
27367
27484
  if (this.textAlign.includes('justify')) {
27368
27485
  testElement.style.textAlign = 'justify';
27369
- testElement.style.textAlignLast = 'auto'; // Let browser decide last line alignment
27486
+ if (this.direction === 'rtl') {
27487
+ testElement.style.textAlignLast = 'right';
27488
+ } else {
27489
+ testElement.style.textAlignLast = 'left';
27490
+ }
27491
+ testElement.style.textJustify = 'inter-word';
27492
+ testElement.style.unicodeBidi = 'plaintext';
27493
+ testElement.style.wordSpacing = 'normal';
27494
+ // Match font smoothing from overlay editor
27495
+ testElement.style.webkitFontSmoothing = 'auto';
27496
+ testElement.style.mozOsxFontSmoothing = 'auto';
27370
27497
  } else {
27371
27498
  testElement.style.textAlign = this.textAlign;
27372
27499
  }
@@ -27391,7 +27518,7 @@
27391
27518
  if (i > currentLineStart && (rect.bottom > previousBottom + 5 || i === textLength)) {
27392
27519
  // New line detected or end of text
27393
27520
  const lineEnd = i === textLength ? i : i - 1;
27394
- const lineText = text.substring(currentLineStart, lineEnd).trim();
27521
+ const lineText = text.substring(currentLineStart, lineEnd);
27395
27522
  if (lineText) {
27396
27523
  lines.push(lineText);
27397
27524
  // Convert to graphemes for compatibility
@@ -27414,6 +27541,7 @@
27414
27541
  const offsetHeight = testElement.offsetHeight;
27415
27542
  const clientHeight = testElement.clientHeight;
27416
27543
  const boundingRect = testElement.getBoundingClientRect();
27544
+ const clientWidth = testElement.clientWidth;
27417
27545
  console.log(`🔤 Browser element measurements:`);
27418
27546
  console.log(` scrollHeight: ${actualBrowserHeight}px (content + padding + hidden overflow)`);
27419
27547
  console.log(` offsetHeight: ${offsetHeight}px (content + padding + border)`);
@@ -27461,7 +27589,8 @@
27461
27589
  graphemeText: text.split(''),
27462
27590
  graphemeLines: graphemeLines,
27463
27591
  justifySpaceMeasurements: justifySpaceMeasurements,
27464
- actualBrowserHeight: adjustedHeight
27592
+ actualBrowserHeight: adjustedHeight,
27593
+ width: clientWidth
27465
27594
  };
27466
27595
  }
27467
27596
 
@@ -27513,6 +27642,14 @@
27513
27642
  return;
27514
27643
  }
27515
27644
 
27645
+ // Check for overlay justify measurements first
27646
+ const overlayMeasurements = this._overlayJustifyMeasurements;
27647
+ if (overlayMeasurements) {
27648
+ console.log('🎯 OVERLAY JUSTIFY: Using stored overlay measurements');
27649
+ this._applyOverlayJustifySpaces(overlayMeasurements);
27650
+ return;
27651
+ }
27652
+
27516
27653
  // Get space measurements from browser wrapping result
27517
27654
  const styleMap = this._styleMap;
27518
27655
  if (!styleMap || !styleMap.justifySpaceMeasurements) {
@@ -27578,6 +27715,111 @@
27578
27715
  });
27579
27716
  }
27580
27717
 
27718
+ /**
27719
+ * Apply overlay justify measurements to character bounds
27720
+ * @private
27721
+ */
27722
+ _applyOverlayJustifySpaces(overlayMeasurements) {
27723
+ this._textLines.forEach((line, lineIndex) => {
27724
+ if (!this.__charBounds || !this.__charBounds[lineIndex]) return;
27725
+ const lineMeasurement = overlayMeasurements[lineIndex];
27726
+ if (!lineMeasurement) return;
27727
+ const {
27728
+ justifiedSpaceWidth
27729
+ } = lineMeasurement;
27730
+ let spaceIndex = 0;
27731
+ line.forEach((char, charIndex) => {
27732
+ if (char === ' ' && this.__charBounds[lineIndex][charIndex]) {
27733
+ const oldWidth = this.__charBounds[lineIndex][charIndex].width;
27734
+ this.__charBounds[lineIndex][charIndex].width = justifiedSpaceWidth;
27735
+ console.log(`🎯 OVERLAY Line ${lineIndex} space ${spaceIndex}: ${oldWidth.toFixed(1)}px -> ${justifiedSpaceWidth.toFixed(1)}px`);
27736
+ spaceIndex++;
27737
+ }
27738
+ });
27739
+ });
27740
+ }
27741
+
27742
+ /**
27743
+ * Extract justify measurements from overlay textarea and store them
27744
+ */
27745
+ extractJustifyMeasurementsFromOverlay(textarea) {
27746
+ const text = textarea.value;
27747
+ if (!text || !this.textAlign.includes('justify')) {
27748
+ return;
27749
+ }
27750
+
27751
+ // Use the same measurement technique as measureLinesWithBrowser
27752
+ const testElement = document.createElement('div');
27753
+ testElement.style.position = 'absolute';
27754
+ testElement.style.left = '-9999px';
27755
+ testElement.style.visibility = 'hidden';
27756
+
27757
+ // Copy all styles from the textarea to ensure identical rendering
27758
+ const computedStyle = window.getComputedStyle(textarea);
27759
+ const stylesToCopy = ['fontSize', 'fontFamily', 'fontWeight', 'fontStyle', 'lineHeight', 'letterSpacing', 'direction', 'textAlign', 'textAlignLast', 'textJustify', 'width', 'padding', 'boxSizing', 'whiteSpace', 'wordBreak', 'overflowWrap'];
27760
+ stylesToCopy.forEach(prop => {
27761
+ testElement.style[prop] = computedStyle[prop];
27762
+ });
27763
+ testElement.textContent = text;
27764
+ document.body.appendChild(testElement);
27765
+ try {
27766
+ // Extract justify space measurements using the same logic
27767
+ const lines = text.split('\n');
27768
+ const justifyMeasurements = {};
27769
+ lines.forEach((line, lineIndex) => {
27770
+ if (line.trim()) {
27771
+ const spaces = (line.match(/\s/g) || []).length;
27772
+ if (spaces > 0) {
27773
+ // Measure natural space width
27774
+ const singleSpaceDiv = document.createElement('div');
27775
+ stylesToCopy.forEach(prop => {
27776
+ singleSpaceDiv.style[prop] = computedStyle[prop];
27777
+ });
27778
+ singleSpaceDiv.textContent = ' ';
27779
+ document.body.appendChild(singleSpaceDiv);
27780
+ const naturalSpaceWidth = singleSpaceDiv.getBoundingClientRect().width;
27781
+ document.body.removeChild(singleSpaceDiv);
27782
+
27783
+ // Measure justified line width
27784
+ const lineDiv = document.createElement('div');
27785
+ stylesToCopy.forEach(prop => {
27786
+ lineDiv.style[prop] = computedStyle[prop];
27787
+ });
27788
+ lineDiv.textContent = line;
27789
+ document.body.appendChild(lineDiv);
27790
+ const lineWidth = lineDiv.getBoundingClientRect().width;
27791
+ const containerWidth = parseFloat(computedStyle.width);
27792
+
27793
+ // Calculate justified space width
27794
+ const nonSpaceText = line.replace(/\s/g, '');
27795
+ const nonSpaceDiv = document.createElement('div');
27796
+ stylesToCopy.forEach(prop => {
27797
+ nonSpaceDiv.style[prop] = computedStyle[prop];
27798
+ });
27799
+ nonSpaceDiv.textContent = nonSpaceText;
27800
+ document.body.appendChild(nonSpaceDiv);
27801
+ const nonSpaceWidth = nonSpaceDiv.getBoundingClientRect().width;
27802
+ const justifiedSpaceWidth = (containerWidth - nonSpaceWidth) / spaces;
27803
+ console.log(`🎯 OVERLAY Line ${lineIndex}: ${spaces} spaces, natural: ${naturalSpaceWidth.toFixed(1)}px -> justified: ${justifiedSpaceWidth.toFixed(1)}px`);
27804
+ justifyMeasurements[lineIndex] = {
27805
+ naturalSpaceWidth,
27806
+ justifiedSpaceWidth,
27807
+ spaceCount: spaces
27808
+ };
27809
+ document.body.removeChild(lineDiv);
27810
+ document.body.removeChild(nonSpaceDiv);
27811
+ }
27812
+ }
27813
+ });
27814
+
27815
+ // Store the measurements
27816
+ this._overlayJustifyMeasurements = justifyMeasurements;
27817
+ console.log('💾 STORED: Overlay justify measurements', justifyMeasurements);
27818
+ } finally {
27819
+ document.body.removeChild(testElement);
27820
+ }
27821
+ }
27822
+
27581
27823
  /**
27582
27824
  * Fallback to default Fabric wrapping
27583
27825
  * @private
@@ -27642,6 +27884,7 @@
27642
27884
  // Use 'modified' event which fires after user releases the mouse
27643
27885
  this.on('modified', () => {
27644
27886
  const currentResizeOrigin = resizeOrigin; // Capture the value before reset
27887
+ this.initDimensions();
27645
27888
  // Small delay to ensure text layout is updated
27646
27889
  setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);
27647
27890
  resizeOrigin = null; // Reset after capturing
@@ -27701,7 +27944,7 @@
27701
27944
  const originalTop = this.top;
27702
27945
  const widthIncrease = newWidth - this.width;
27703
27946
 
27704
- // Change width
27947
+ // Change width
27705
27948
  this.set('width', newWidth);
27706
27949
 
27707
27950
  // Force text layout recalculation
@@ -27713,8 +27956,8 @@
27713
27956
  // When resizing from left, the expansion pushes text right
27714
27957
  // Compensate by moving the textbox left by the width increase
27715
27958
  this.set({
27716
- 'left': originalLeft - widthIncrease,
27717
- 'top': originalTop
27959
+ left: originalLeft - widthIncrease,
27960
+ top: originalTop
27718
27961
  });
27719
27962
  }
27720
27963
  this.setCoords();
@@ -27810,6 +28053,35 @@
27810
28053
  }
27811
28054
  }
27812
28055
 
28056
+ /**
28057
+ * Fix justify text after JSON loading - call this after fromObject
28058
+ * @public
28059
+ */
28060
+ fixJustifyAfterJSONLoad() {
28061
+ if (this.textAlign.includes('justify') && this.useOverlayEditing) {
28062
+ console.log('🔧 JSON FIX: Fixing justify text after JSON load');
28063
+ // The issue is that enlargeSpaces() isn't properly updating after JSON load
28064
+ // Workaround: temporarily change width to trigger proper rebuild, then restore
28065
+ setTimeout(() => {
28066
+ const originalWidth = this.width;
28067
+ console.log('🔄 JSON TRICK: Temporarily changing width to force justify rebuild');
28068
+
28069
+ // Temporarily change width by 1px to trigger proper justify recalculation
28070
+ this.width = originalWidth + 1;
28071
+ this.initDimensions();
28072
+
28073
+ // Restore original width - this will trigger the proper justify calculation
28074
+ setTimeout(() => {
28075
+ var _this$canvas8;
28076
+ this.width = originalWidth;
28077
+ this.initDimensions();
28078
+ (_this$canvas8 = this.canvas) === null || _this$canvas8 === void 0 || _this$canvas8.requestRenderAll();
28079
+ console.log('✅ JSON FIX: Restored original width, justify should be fixed');
28080
+ }, 50);
28081
+ }, 100);
28082
+ }
28083
+ }
28084
+
27813
28085
  /**
27814
28086
  * Returns object representation of an instance
27815
28087
  * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
@@ -27817,7 +28089,60 @@
27817
28089
  */
27818
28090
  toObject() {
27819
28091
  let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
27820
- return super.toObject(['minWidth', 'splitByGrapheme', ...propertiesToInclude]);
28092
+ const obj = super.toObject(['minWidth', 'splitByGrapheme', ...propertiesToInclude]);
28093
+
28094
+ // For justify text with overlay editing, ensure measurements are available
28095
+ if (this.textAlign.includes('justify') && this.useOverlayEditing) {
28096
+ var _charBounds, _charBounds2;
28097
+ // If character bounds don't exist yet, initialize dimensions to calculate them
28098
+ if (!((_charBounds = this.__charBounds) !== null && _charBounds !== void 0 && _charBounds.length)) {
28099
+ console.log('🔧 SERIALIZE: Character bounds missing, initializing dimensions for justify text');
28100
+ this.initDimensions();
28101
+ }
28102
+
28103
+ // Now save the measurements if they exist
28104
+ if ((_charBounds2 = this.__charBounds) !== null && _charBounds2 !== void 0 && _charBounds2.length) {
28105
+ console.log('💾 SERIALIZE: Saving justify measurements to JSON');
28106
+ obj._justifyMeasurements = {
28107
+ __charBounds: this.__charBounds,
28108
+ __lineHeights: this.__lineHeights,
28109
+ __lineWidths: this.__lineWidths,
28110
+ _hasJustifyData: true
28111
+ };
28112
+ } else {
28113
+ console.warn('⚠️ SERIALIZE: Could not generate character bounds for justify text');
28114
+ }
28115
+ }
28116
+ return obj;
28117
+ }
28118
+
28119
+ /**
28120
+ * Override _set to handle justify measurements during JSON loading
28121
+ * @private
28122
+ */
28123
+ _set(key, value) {
28124
+ const result = super._set(key, value);
28125
+
28126
+ // Restore justify measurements if they exist in the JSON data
28127
+ if (key === '_justifyMeasurements' && value && value._hasJustifyData) {
28128
+ console.log('🔄 DESERIALIZE: Restoring justify measurements from JSON');
28129
+ this.__charBounds = value.__charBounds;
28130
+ this.__lineHeights = value.__lineHeights;
28131
+ this.__lineWidths = value.__lineWidths;
28132
+
28133
+ // Mark that we have restored data so we don't interfere with it
28134
+ this._hasRestoredJustifyData = true;
28135
+
28136
+ // Automatically trigger the fix after JSON loading
28137
+ if (this.textAlign.includes('justify') && this.useOverlayEditing) {
28138
+ console.log('🔄 AUTO-FIX: Calling fixJustifyAfterJSONLoad after restoring justify measurements');
28139
+ // Use setTimeout to ensure this runs after all object initialization is complete
28140
+ setTimeout(() => {
28141
+ this.fixJustifyAfterJSONLoad();
28142
+ }, 10);
28143
+ }
28144
+ }
28145
+ return result;
27821
28146
  }
27822
28147
  }
27823
28148
  /**