@nasser-sw/fabric 7.0.0-beta1 → 7.0.1-beta2

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 (2509) 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/CHANGELOG.md +0 -0
  10. package/CODE_OF_CONDUCT.md +0 -0
  11. package/CONTRIBUTING.md +0 -0
  12. package/LICENSE +0 -0
  13. package/OVERLAY_EDITOR_MIGRATION.md +0 -0
  14. package/README.md +0 -0
  15. package/SECURITY.md +0 -0
  16. package/debug/konva/CHANGELOG.md +0 -0
  17. package/debug/konva/LICENSE +0 -0
  18. package/debug/konva/README.md +0 -0
  19. package/debug/konva/gulpfile.mjs +0 -0
  20. package/debug/konva/package.json +0 -0
  21. package/debug/konva/release.sh +0 -0
  22. package/debug/konva/resources/doc-includes/ContainerParams.txt +0 -0
  23. package/debug/konva/resources/doc-includes/NodeParams.txt +0 -0
  24. package/debug/konva/resources/doc-includes/ShapeParams.txt +0 -0
  25. package/debug/konva/resources/jsdoc.conf.json +0 -0
  26. package/debug/konva/rollup.config.mjs +0 -0
  27. package/debug/konva/src/Animation.ts +0 -0
  28. package/debug/konva/src/BezierFunctions.ts +0 -0
  29. package/debug/konva/src/Canvas.ts +0 -0
  30. package/debug/konva/src/Container.ts +0 -0
  31. package/debug/konva/src/Context.ts +0 -0
  32. package/debug/konva/src/Core.ts +0 -0
  33. package/debug/konva/src/DragAndDrop.ts +0 -0
  34. package/debug/konva/src/Factory.ts +0 -0
  35. package/debug/konva/src/FastLayer.ts +0 -0
  36. package/debug/konva/src/Global.ts +0 -0
  37. package/debug/konva/src/Group.ts +0 -0
  38. package/debug/konva/src/Layer.ts +0 -0
  39. package/debug/konva/src/Node.ts +0 -0
  40. package/debug/konva/src/PointerEvents.ts +0 -0
  41. package/debug/konva/src/Shape.ts +0 -0
  42. package/debug/konva/src/Stage.ts +0 -0
  43. package/debug/konva/src/Tween.ts +0 -0
  44. package/debug/konva/src/Util.ts +0 -0
  45. package/debug/konva/src/Validators.ts +0 -0
  46. package/debug/konva/src/_CoreInternals.ts +0 -0
  47. package/debug/konva/src/_FullInternals.ts +0 -0
  48. package/debug/konva/src/canvas-backend.ts +0 -0
  49. package/debug/konva/src/filters/Blur.ts +0 -0
  50. package/debug/konva/src/filters/Brighten.ts +0 -0
  51. package/debug/konva/src/filters/Brightness.ts +0 -0
  52. package/debug/konva/src/filters/Contrast.ts +0 -0
  53. package/debug/konva/src/filters/Emboss.ts +0 -0
  54. package/debug/konva/src/filters/Enhance.ts +0 -0
  55. package/debug/konva/src/filters/Grayscale.ts +0 -0
  56. package/debug/konva/src/filters/HSL.ts +0 -0
  57. package/debug/konva/src/filters/HSV.ts +0 -0
  58. package/debug/konva/src/filters/Invert.ts +0 -0
  59. package/debug/konva/src/filters/Kaleidoscope.ts +0 -0
  60. package/debug/konva/src/filters/Mask.ts +0 -0
  61. package/debug/konva/src/filters/Noise.ts +0 -0
  62. package/debug/konva/src/filters/Pixelate.ts +0 -0
  63. package/debug/konva/src/filters/Posterize.ts +0 -0
  64. package/debug/konva/src/filters/RGB.ts +0 -0
  65. package/debug/konva/src/filters/RGBA.ts +0 -0
  66. package/debug/konva/src/filters/Sepia.ts +0 -0
  67. package/debug/konva/src/filters/Solarize.ts +0 -0
  68. package/debug/konva/src/filters/Threshold.ts +0 -0
  69. package/debug/konva/src/index.ts +0 -0
  70. package/debug/konva/src/shapes/Arc.ts +0 -0
  71. package/debug/konva/src/shapes/Arrow.ts +0 -0
  72. package/debug/konva/src/shapes/Circle.ts +0 -0
  73. package/debug/konva/src/shapes/Ellipse.ts +0 -0
  74. package/debug/konva/src/shapes/Image.ts +0 -0
  75. package/debug/konva/src/shapes/Label.ts +0 -0
  76. package/debug/konva/src/shapes/Line.ts +0 -0
  77. package/debug/konva/src/shapes/Path.ts +0 -0
  78. package/debug/konva/src/shapes/Rect.ts +0 -0
  79. package/debug/konva/src/shapes/RegularPolygon.ts +0 -0
  80. package/debug/konva/src/shapes/Ring.ts +0 -0
  81. package/debug/konva/src/shapes/Sprite.ts +0 -0
  82. package/debug/konva/src/shapes/Star.ts +0 -0
  83. package/debug/konva/src/shapes/Text.ts +0 -0
  84. package/debug/konva/src/shapes/TextPath.ts +0 -0
  85. package/debug/konva/src/shapes/Transformer.ts +0 -0
  86. package/debug/konva/src/shapes/Wedge.ts +0 -0
  87. package/debug/konva/src/skia-backend.ts +0 -0
  88. package/debug/konva/src/types.ts +0 -0
  89. package/debug/konva/tsconfig.json +0 -0
  90. package/debug/konva/tsconfig.test.json +0 -0
  91. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
  92. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
  93. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  94. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
  95. package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
  96. package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  97. package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
  98. package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
  99. package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  100. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  101. package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  102. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  103. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  104. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  105. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  106. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  107. package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  108. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  109. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  110. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  111. package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
  112. package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  113. package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
  114. package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
  115. package/dist/extensions/index.d.ts +0 -0
  116. package/dist/extensions/index.d.ts.map +0 -0
  117. package/dist/fabric.d.ts +0 -0
  118. package/dist/fabric.d.ts.map +0 -0
  119. package/dist/fabric.min.mjs +0 -0
  120. package/dist/fabric.min.mjs.map +0 -0
  121. package/dist/fabric.mjs +0 -0
  122. package/dist/fabric.mjs.map +0 -0
  123. package/dist/index.d.ts +0 -0
  124. package/dist/index.d.ts.map +0 -0
  125. package/dist/index.js +1524 -1027
  126. package/dist/index.js.map +1 -1
  127. package/dist/index.min.js +1 -1
  128. package/dist/index.min.js.map +1 -1
  129. package/dist/index.min.mjs +1 -1
  130. package/dist/index.min.mjs.map +1 -1
  131. package/dist/index.mjs +1524 -1027
  132. package/dist/index.mjs.map +1 -1
  133. package/dist/index.node.cjs +1524 -1027
  134. package/dist/index.node.cjs.map +1 -1
  135. package/dist/index.node.d.ts +0 -0
  136. package/dist/index.node.d.ts.map +0 -0
  137. package/dist/index.node.mjs +1524 -1027
  138. package/dist/index.node.mjs.map +1 -1
  139. package/dist/package.json.min.mjs +1 -1
  140. package/dist/package.json.min.mjs.map +0 -0
  141. package/dist/package.json.mjs +1 -1
  142. package/dist/package.json.mjs.map +0 -0
  143. package/dist/src/ClassRegistry.d.ts +0 -0
  144. package/dist/src/ClassRegistry.d.ts.map +0 -0
  145. package/dist/src/ClassRegistry.min.mjs +0 -0
  146. package/dist/src/ClassRegistry.min.mjs.map +0 -0
  147. package/dist/src/ClassRegistry.mjs +0 -0
  148. package/dist/src/ClassRegistry.mjs.map +0 -0
  149. package/dist/src/Collection.d.ts +0 -0
  150. package/dist/src/Collection.d.ts.map +0 -0
  151. package/dist/src/Collection.min.mjs +0 -0
  152. package/dist/src/Collection.min.mjs.map +0 -0
  153. package/dist/src/Collection.mjs +0 -0
  154. package/dist/src/Collection.mjs.map +0 -0
  155. package/dist/src/CommonMethods.d.ts +0 -0
  156. package/dist/src/CommonMethods.d.ts.map +0 -0
  157. package/dist/src/CommonMethods.min.mjs +0 -0
  158. package/dist/src/CommonMethods.min.mjs.map +0 -0
  159. package/dist/src/CommonMethods.mjs +0 -0
  160. package/dist/src/CommonMethods.mjs.map +0 -0
  161. package/dist/src/EventTypeDefs.d.ts +0 -0
  162. package/dist/src/EventTypeDefs.d.ts.map +0 -0
  163. package/dist/src/Intersection.d.ts +0 -0
  164. package/dist/src/Intersection.d.ts.map +0 -0
  165. package/dist/src/Intersection.min.mjs +0 -0
  166. package/dist/src/Intersection.min.mjs.map +0 -0
  167. package/dist/src/Intersection.mjs +0 -0
  168. package/dist/src/Intersection.mjs.map +0 -0
  169. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  170. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  171. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
  172. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
  173. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
  174. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
  175. package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
  176. package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  177. package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
  178. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
  179. package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
  180. package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
  181. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  182. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  183. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
  184. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
  185. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
  186. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
  211. package/dist/src/LayoutManager/constants.d.ts +0 -0
  212. package/dist/src/LayoutManager/constants.d.ts.map +0 -0
  213. package/dist/src/LayoutManager/constants.min.mjs +0 -0
  214. package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
  215. package/dist/src/LayoutManager/constants.mjs +0 -0
  216. package/dist/src/LayoutManager/constants.mjs.map +0 -0
  217. package/dist/src/LayoutManager/index.d.ts +0 -0
  218. package/dist/src/LayoutManager/index.d.ts.map +0 -0
  219. package/dist/src/LayoutManager/types.d.ts +0 -0
  220. package/dist/src/LayoutManager/types.d.ts.map +0 -0
  221. package/dist/src/Observable.d.ts +0 -0
  222. package/dist/src/Observable.d.ts.map +0 -0
  223. package/dist/src/Observable.min.mjs +0 -0
  224. package/dist/src/Observable.min.mjs.map +0 -0
  225. package/dist/src/Observable.mjs +0 -0
  226. package/dist/src/Observable.mjs.map +0 -0
  227. package/dist/src/Pattern/Pattern.d.ts +0 -0
  228. package/dist/src/Pattern/Pattern.d.ts.map +0 -0
  229. package/dist/src/Pattern/Pattern.min.mjs +0 -0
  230. package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
  231. package/dist/src/Pattern/Pattern.mjs +0 -0
  232. package/dist/src/Pattern/Pattern.mjs.map +0 -0
  233. package/dist/src/Pattern/index.d.ts +0 -0
  234. package/dist/src/Pattern/index.d.ts.map +0 -0
  235. package/dist/src/Pattern/types.d.ts +0 -0
  236. package/dist/src/Pattern/types.d.ts.map +0 -0
  237. package/dist/src/Point.d.ts +0 -0
  238. package/dist/src/Point.d.ts.map +0 -0
  239. package/dist/src/Point.min.mjs +0 -0
  240. package/dist/src/Point.min.mjs.map +0 -0
  241. package/dist/src/Point.mjs +0 -0
  242. package/dist/src/Point.mjs.map +0 -0
  243. package/dist/src/Shadow.d.ts +0 -0
  244. package/dist/src/Shadow.d.ts.map +0 -0
  245. package/dist/src/Shadow.min.mjs +0 -0
  246. package/dist/src/Shadow.min.mjs.map +0 -0
  247. package/dist/src/Shadow.mjs +0 -0
  248. package/dist/src/Shadow.mjs.map +0 -0
  249. package/dist/src/brushes/BaseBrush.d.ts +0 -0
  250. package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
  251. package/dist/src/brushes/BaseBrush.min.mjs +0 -0
  252. package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
  253. package/dist/src/brushes/BaseBrush.mjs +0 -0
  254. package/dist/src/brushes/BaseBrush.mjs.map +0 -0
  255. package/dist/src/brushes/CircleBrush.d.ts +0 -0
  256. package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
  257. package/dist/src/brushes/CircleBrush.min.mjs +0 -0
  258. package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
  259. package/dist/src/brushes/CircleBrush.mjs +0 -0
  260. package/dist/src/brushes/CircleBrush.mjs.map +0 -0
  261. package/dist/src/brushes/PatternBrush.d.ts +0 -0
  262. package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
  263. package/dist/src/brushes/PatternBrush.min.mjs +0 -0
  264. package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
  265. package/dist/src/brushes/PatternBrush.mjs +0 -0
  266. package/dist/src/brushes/PatternBrush.mjs.map +0 -0
  267. package/dist/src/brushes/PencilBrush.d.ts +0 -0
  268. package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
  269. package/dist/src/brushes/PencilBrush.min.mjs +0 -0
  270. package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
  271. package/dist/src/brushes/PencilBrush.mjs +0 -0
  272. package/dist/src/brushes/PencilBrush.mjs.map +0 -0
  273. package/dist/src/brushes/SprayBrush.d.ts +0 -0
  274. package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
  275. package/dist/src/brushes/SprayBrush.min.mjs +0 -0
  276. package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
  277. package/dist/src/brushes/SprayBrush.mjs +0 -0
  278. package/dist/src/brushes/SprayBrush.mjs.map +0 -0
  279. package/dist/src/brushes/typedefs.d.ts +0 -0
  280. package/dist/src/brushes/typedefs.d.ts.map +0 -0
  281. package/dist/src/cache.d.ts +0 -0
  282. package/dist/src/cache.d.ts.map +0 -0
  283. package/dist/src/cache.min.mjs +0 -0
  284. package/dist/src/cache.min.mjs.map +0 -0
  285. package/dist/src/cache.mjs +0 -0
  286. package/dist/src/cache.mjs.map +0 -0
  287. package/dist/src/canvas/Canvas.d.ts +0 -0
  288. package/dist/src/canvas/Canvas.d.ts.map +0 -0
  289. package/dist/src/canvas/Canvas.min.mjs +0 -0
  290. package/dist/src/canvas/Canvas.min.mjs.map +0 -0
  291. package/dist/src/canvas/Canvas.mjs +0 -0
  292. package/dist/src/canvas/Canvas.mjs.map +0 -0
  293. package/dist/src/canvas/CanvasOptions.d.ts +0 -0
  294. package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
  295. package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
  296. package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
  297. package/dist/src/canvas/CanvasOptions.mjs +0 -0
  298. package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
  299. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  300. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  301. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
  302. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
  303. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
  304. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
  305. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  306. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  307. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
  308. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
  309. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
  310. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
  311. package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
  312. package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
  313. package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
  314. package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
  315. package/dist/src/canvas/DOMManagers/util.mjs +0 -0
  316. package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
  317. package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
  318. package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
  319. package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
  320. package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
  321. package/dist/src/canvas/SelectableCanvas.mjs +0 -0
  322. package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
  323. package/dist/src/canvas/StaticCanvas.d.ts +0 -0
  324. package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
  325. package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
  326. package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
  327. package/dist/src/canvas/StaticCanvas.mjs +0 -0
  328. package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
  329. package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
  330. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  331. package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
  332. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
  333. package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
  334. package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
  335. package/dist/src/canvas/TextEditingManager.d.ts +0 -0
  336. package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
  337. package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
  338. package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
  339. package/dist/src/canvas/TextEditingManager.mjs +0 -0
  340. package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
  341. package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
  342. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
  343. package/dist/src/color/Color.d.ts +0 -0
  344. package/dist/src/color/Color.d.ts.map +0 -0
  345. package/dist/src/color/Color.min.mjs +0 -0
  346. package/dist/src/color/Color.min.mjs.map +0 -0
  347. package/dist/src/color/Color.mjs +0 -0
  348. package/dist/src/color/Color.mjs.map +0 -0
  349. package/dist/src/color/color_map.d.ts +0 -0
  350. package/dist/src/color/color_map.d.ts.map +0 -0
  351. package/dist/src/color/color_map.min.mjs +0 -0
  352. package/dist/src/color/color_map.min.mjs.map +0 -0
  353. package/dist/src/color/color_map.mjs +0 -0
  354. package/dist/src/color/color_map.mjs.map +0 -0
  355. package/dist/src/color/constants.d.ts +0 -0
  356. package/dist/src/color/constants.d.ts.map +0 -0
  357. package/dist/src/color/constants.min.mjs +0 -0
  358. package/dist/src/color/constants.min.mjs.map +0 -0
  359. package/dist/src/color/constants.mjs +0 -0
  360. package/dist/src/color/constants.mjs.map +0 -0
  361. package/dist/src/color/typedefs.d.ts +0 -0
  362. package/dist/src/color/typedefs.d.ts.map +0 -0
  363. package/dist/src/color/util.d.ts +0 -0
  364. package/dist/src/color/util.d.ts.map +0 -0
  365. package/dist/src/color/util.min.mjs +0 -0
  366. package/dist/src/color/util.min.mjs.map +0 -0
  367. package/dist/src/color/util.mjs +0 -0
  368. package/dist/src/color/util.mjs.map +0 -0
  369. package/dist/src/config.d.ts +0 -0
  370. package/dist/src/config.d.ts.map +0 -0
  371. package/dist/src/config.min.mjs +0 -0
  372. package/dist/src/config.min.mjs.map +0 -0
  373. package/dist/src/config.mjs +0 -0
  374. package/dist/src/config.mjs.map +0 -0
  375. package/dist/src/constants.d.ts +0 -0
  376. package/dist/src/constants.d.ts.map +0 -0
  377. package/dist/src/constants.min.mjs +0 -0
  378. package/dist/src/constants.min.mjs.map +0 -0
  379. package/dist/src/constants.mjs +0 -0
  380. package/dist/src/constants.mjs.map +0 -0
  381. package/dist/src/controls/Control.d.ts +0 -0
  382. package/dist/src/controls/Control.d.ts.map +0 -0
  383. package/dist/src/controls/Control.min.mjs +0 -0
  384. package/dist/src/controls/Control.min.mjs.map +0 -0
  385. package/dist/src/controls/Control.mjs +0 -0
  386. package/dist/src/controls/Control.mjs.map +0 -0
  387. package/dist/src/controls/changeHeight.d.ts +0 -0
  388. package/dist/src/controls/changeHeight.d.ts.map +0 -0
  389. package/dist/src/controls/changeHeight.min.mjs +2 -0
  390. package/dist/src/controls/changeHeight.min.mjs.map +1 -0
  391. package/dist/src/controls/changeHeight.mjs +36 -0
  392. package/dist/src/controls/changeHeight.mjs.map +1 -0
  393. package/dist/src/controls/changeWidth.d.ts +0 -0
  394. package/dist/src/controls/changeWidth.d.ts.map +0 -0
  395. package/dist/src/controls/changeWidth.min.mjs +0 -0
  396. package/dist/src/controls/changeWidth.min.mjs.map +0 -0
  397. package/dist/src/controls/changeWidth.mjs +0 -0
  398. package/dist/src/controls/changeWidth.mjs.map +0 -0
  399. package/dist/src/controls/commonControls.d.ts +0 -0
  400. package/dist/src/controls/commonControls.d.ts.map +0 -0
  401. package/dist/src/controls/commonControls.min.mjs +0 -0
  402. package/dist/src/controls/commonControls.min.mjs.map +0 -0
  403. package/dist/src/controls/commonControls.mjs +0 -0
  404. package/dist/src/controls/commonControls.mjs.map +0 -0
  405. package/dist/src/controls/controlRendering.d.ts +0 -0
  406. package/dist/src/controls/controlRendering.d.ts.map +0 -0
  407. package/dist/src/controls/controlRendering.min.mjs +0 -0
  408. package/dist/src/controls/controlRendering.min.mjs.map +0 -0
  409. package/dist/src/controls/controlRendering.mjs +0 -0
  410. package/dist/src/controls/controlRendering.mjs.map +0 -0
  411. package/dist/src/controls/drag.d.ts +0 -0
  412. package/dist/src/controls/drag.d.ts.map +0 -0
  413. package/dist/src/controls/drag.min.mjs +0 -0
  414. package/dist/src/controls/drag.min.mjs.map +0 -0
  415. package/dist/src/controls/drag.mjs +0 -0
  416. package/dist/src/controls/drag.mjs.map +0 -0
  417. package/dist/src/controls/fireEvent.d.ts +0 -0
  418. package/dist/src/controls/fireEvent.d.ts.map +0 -0
  419. package/dist/src/controls/fireEvent.min.mjs +0 -0
  420. package/dist/src/controls/fireEvent.min.mjs.map +0 -0
  421. package/dist/src/controls/fireEvent.mjs +0 -0
  422. package/dist/src/controls/fireEvent.mjs.map +0 -0
  423. package/dist/src/controls/index.d.ts +0 -0
  424. package/dist/src/controls/index.d.ts.map +0 -0
  425. package/dist/src/controls/index.min.mjs +0 -0
  426. package/dist/src/controls/index.min.mjs.map +0 -0
  427. package/dist/src/controls/index.mjs +0 -0
  428. package/dist/src/controls/index.mjs.map +0 -0
  429. package/dist/src/controls/pathControl.d.ts +0 -0
  430. package/dist/src/controls/pathControl.d.ts.map +0 -0
  431. package/dist/src/controls/pathControl.min.mjs +0 -0
  432. package/dist/src/controls/pathControl.min.mjs.map +0 -0
  433. package/dist/src/controls/pathControl.mjs +0 -0
  434. package/dist/src/controls/pathControl.mjs.map +0 -0
  435. package/dist/src/controls/polyControl.d.ts +0 -0
  436. package/dist/src/controls/polyControl.d.ts.map +0 -0
  437. package/dist/src/controls/polyControl.min.mjs +0 -0
  438. package/dist/src/controls/polyControl.min.mjs.map +0 -0
  439. package/dist/src/controls/polyControl.mjs +0 -0
  440. package/dist/src/controls/polyControl.mjs.map +0 -0
  441. package/dist/src/controls/rotate.d.ts +0 -0
  442. package/dist/src/controls/rotate.d.ts.map +0 -0
  443. package/dist/src/controls/rotate.min.mjs +0 -0
  444. package/dist/src/controls/rotate.min.mjs.map +0 -0
  445. package/dist/src/controls/rotate.mjs +0 -0
  446. package/dist/src/controls/rotate.mjs.map +0 -0
  447. package/dist/src/controls/scale.d.ts +0 -0
  448. package/dist/src/controls/scale.d.ts.map +0 -0
  449. package/dist/src/controls/scale.min.mjs +0 -0
  450. package/dist/src/controls/scale.min.mjs.map +0 -0
  451. package/dist/src/controls/scale.mjs +0 -0
  452. package/dist/src/controls/scale.mjs.map +0 -0
  453. package/dist/src/controls/scaleSkew.d.ts +0 -0
  454. package/dist/src/controls/scaleSkew.d.ts.map +0 -0
  455. package/dist/src/controls/scaleSkew.min.mjs +0 -0
  456. package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
  457. package/dist/src/controls/scaleSkew.mjs +0 -0
  458. package/dist/src/controls/scaleSkew.mjs.map +0 -0
  459. package/dist/src/controls/skew.d.ts +0 -0
  460. package/dist/src/controls/skew.d.ts.map +0 -0
  461. package/dist/src/controls/skew.min.mjs +0 -0
  462. package/dist/src/controls/skew.min.mjs.map +0 -0
  463. package/dist/src/controls/skew.mjs +0 -0
  464. package/dist/src/controls/skew.mjs.map +0 -0
  465. package/dist/src/controls/util.d.ts +0 -0
  466. package/dist/src/controls/util.d.ts.map +0 -0
  467. package/dist/src/controls/util.min.mjs +0 -0
  468. package/dist/src/controls/util.min.mjs.map +0 -0
  469. package/dist/src/controls/util.mjs +0 -0
  470. package/dist/src/controls/util.mjs.map +0 -0
  471. package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
  472. package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  473. package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
  474. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
  475. package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
  476. package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
  477. package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  478. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  479. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
  480. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
  481. package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
  482. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
  483. package/dist/src/env/browser.d.ts +0 -0
  484. package/dist/src/env/browser.d.ts.map +0 -0
  485. package/dist/src/env/browser.min.mjs +0 -0
  486. package/dist/src/env/browser.min.mjs.map +0 -0
  487. package/dist/src/env/browser.mjs +0 -0
  488. package/dist/src/env/browser.mjs.map +0 -0
  489. package/dist/src/env/index.d.ts +0 -0
  490. package/dist/src/env/index.d.ts.map +0 -0
  491. package/dist/src/env/index.min.mjs +0 -0
  492. package/dist/src/env/index.min.mjs.map +0 -0
  493. package/dist/src/env/index.mjs +0 -0
  494. package/dist/src/env/index.mjs.map +0 -0
  495. package/dist/src/env/node.d.ts +0 -0
  496. package/dist/src/env/node.d.ts.map +0 -0
  497. package/dist/src/env/types.d.ts +0 -0
  498. package/dist/src/env/types.d.ts.map +0 -0
  499. package/dist/src/filters/BaseFilter.d.ts +0 -0
  500. package/dist/src/filters/BaseFilter.d.ts.map +0 -0
  501. package/dist/src/filters/BaseFilter.min.mjs +0 -0
  502. package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
  503. package/dist/src/filters/BaseFilter.mjs +0 -0
  504. package/dist/src/filters/BaseFilter.mjs.map +0 -0
  505. package/dist/src/filters/BlendColor.d.ts +0 -0
  506. package/dist/src/filters/BlendColor.d.ts.map +0 -0
  507. package/dist/src/filters/BlendColor.min.mjs +0 -0
  508. package/dist/src/filters/BlendColor.min.mjs.map +0 -0
  509. package/dist/src/filters/BlendColor.mjs +0 -0
  510. package/dist/src/filters/BlendColor.mjs.map +0 -0
  511. package/dist/src/filters/BlendImage.d.ts +0 -0
  512. package/dist/src/filters/BlendImage.d.ts.map +0 -0
  513. package/dist/src/filters/BlendImage.min.mjs +0 -0
  514. package/dist/src/filters/BlendImage.min.mjs.map +0 -0
  515. package/dist/src/filters/BlendImage.mjs +0 -0
  516. package/dist/src/filters/BlendImage.mjs.map +0 -0
  517. package/dist/src/filters/Blur.d.ts +0 -0
  518. package/dist/src/filters/Blur.d.ts.map +0 -0
  519. package/dist/src/filters/Blur.min.mjs +0 -0
  520. package/dist/src/filters/Blur.min.mjs.map +0 -0
  521. package/dist/src/filters/Blur.mjs +0 -0
  522. package/dist/src/filters/Blur.mjs.map +0 -0
  523. package/dist/src/filters/Boilerplate.d.ts +0 -0
  524. package/dist/src/filters/Boilerplate.d.ts.map +0 -0
  525. package/dist/src/filters/Brightness.d.ts +0 -0
  526. package/dist/src/filters/Brightness.d.ts.map +0 -0
  527. package/dist/src/filters/Brightness.min.mjs +0 -0
  528. package/dist/src/filters/Brightness.min.mjs.map +0 -0
  529. package/dist/src/filters/Brightness.mjs +0 -0
  530. package/dist/src/filters/Brightness.mjs.map +0 -0
  531. package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  532. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  533. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
  534. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
  535. package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
  536. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
  537. package/dist/src/filters/ColorMatrix.d.ts +0 -0
  538. package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
  539. package/dist/src/filters/ColorMatrix.min.mjs +0 -0
  540. package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
  541. package/dist/src/filters/ColorMatrix.mjs +0 -0
  542. package/dist/src/filters/ColorMatrix.mjs.map +0 -0
  543. package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
  544. package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  545. package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
  546. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
  547. package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
  548. package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
  549. package/dist/src/filters/Composed.d.ts +0 -0
  550. package/dist/src/filters/Composed.d.ts.map +0 -0
  551. package/dist/src/filters/Composed.min.mjs +0 -0
  552. package/dist/src/filters/Composed.min.mjs.map +0 -0
  553. package/dist/src/filters/Composed.mjs +0 -0
  554. package/dist/src/filters/Composed.mjs.map +0 -0
  555. package/dist/src/filters/Contrast.d.ts +0 -0
  556. package/dist/src/filters/Contrast.d.ts.map +0 -0
  557. package/dist/src/filters/Contrast.min.mjs +0 -0
  558. package/dist/src/filters/Contrast.min.mjs.map +0 -0
  559. package/dist/src/filters/Contrast.mjs +0 -0
  560. package/dist/src/filters/Contrast.mjs.map +0 -0
  561. package/dist/src/filters/Convolute.d.ts +0 -0
  562. package/dist/src/filters/Convolute.d.ts.map +0 -0
  563. package/dist/src/filters/Convolute.min.mjs +0 -0
  564. package/dist/src/filters/Convolute.min.mjs.map +0 -0
  565. package/dist/src/filters/Convolute.mjs +0 -0
  566. package/dist/src/filters/Convolute.mjs.map +0 -0
  567. package/dist/src/filters/FilterBackend.d.ts +0 -0
  568. package/dist/src/filters/FilterBackend.d.ts.map +0 -0
  569. package/dist/src/filters/FilterBackend.min.mjs +0 -0
  570. package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
  571. package/dist/src/filters/FilterBackend.mjs +0 -0
  572. package/dist/src/filters/FilterBackend.mjs.map +0 -0
  573. package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
  574. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  575. package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
  576. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
  577. package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
  578. package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
  579. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
  580. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
  581. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  582. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  583. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
  584. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
  585. package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
  586. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
  587. package/dist/src/filters/Gamma.d.ts +0 -0
  588. package/dist/src/filters/Gamma.d.ts.map +0 -0
  589. package/dist/src/filters/Gamma.min.mjs +0 -0
  590. package/dist/src/filters/Gamma.min.mjs.map +0 -0
  591. package/dist/src/filters/Gamma.mjs +0 -0
  592. package/dist/src/filters/Gamma.mjs.map +0 -0
  593. package/dist/src/filters/Grayscale.d.ts +0 -0
  594. package/dist/src/filters/Grayscale.d.ts.map +0 -0
  595. package/dist/src/filters/Grayscale.min.mjs +0 -0
  596. package/dist/src/filters/Grayscale.min.mjs.map +0 -0
  597. package/dist/src/filters/Grayscale.mjs +0 -0
  598. package/dist/src/filters/Grayscale.mjs.map +0 -0
  599. package/dist/src/filters/HueRotation.d.ts +0 -0
  600. package/dist/src/filters/HueRotation.d.ts.map +0 -0
  601. package/dist/src/filters/HueRotation.min.mjs +0 -0
  602. package/dist/src/filters/HueRotation.min.mjs.map +0 -0
  603. package/dist/src/filters/HueRotation.mjs +0 -0
  604. package/dist/src/filters/HueRotation.mjs.map +0 -0
  605. package/dist/src/filters/Invert.d.ts +0 -0
  606. package/dist/src/filters/Invert.d.ts.map +0 -0
  607. package/dist/src/filters/Invert.min.mjs +0 -0
  608. package/dist/src/filters/Invert.min.mjs.map +0 -0
  609. package/dist/src/filters/Invert.mjs +0 -0
  610. package/dist/src/filters/Invert.mjs.map +0 -0
  611. package/dist/src/filters/Noise.d.ts +0 -0
  612. package/dist/src/filters/Noise.d.ts.map +0 -0
  613. package/dist/src/filters/Noise.min.mjs +0 -0
  614. package/dist/src/filters/Noise.min.mjs.map +0 -0
  615. package/dist/src/filters/Noise.mjs +0 -0
  616. package/dist/src/filters/Noise.mjs.map +0 -0
  617. package/dist/src/filters/Pixelate.d.ts +0 -0
  618. package/dist/src/filters/Pixelate.d.ts.map +0 -0
  619. package/dist/src/filters/Pixelate.min.mjs +0 -0
  620. package/dist/src/filters/Pixelate.min.mjs.map +0 -0
  621. package/dist/src/filters/Pixelate.mjs +0 -0
  622. package/dist/src/filters/Pixelate.mjs.map +0 -0
  623. package/dist/src/filters/RemoveColor.d.ts +0 -0
  624. package/dist/src/filters/RemoveColor.d.ts.map +0 -0
  625. package/dist/src/filters/RemoveColor.min.mjs +0 -0
  626. package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
  627. package/dist/src/filters/RemoveColor.mjs +0 -0
  628. package/dist/src/filters/RemoveColor.mjs.map +0 -0
  629. package/dist/src/filters/Resize.d.ts +0 -0
  630. package/dist/src/filters/Resize.d.ts.map +0 -0
  631. package/dist/src/filters/Resize.min.mjs +0 -0
  632. package/dist/src/filters/Resize.min.mjs.map +0 -0
  633. package/dist/src/filters/Resize.mjs +0 -0
  634. package/dist/src/filters/Resize.mjs.map +0 -0
  635. package/dist/src/filters/Saturation.d.ts +0 -0
  636. package/dist/src/filters/Saturation.d.ts.map +0 -0
  637. package/dist/src/filters/Saturation.min.mjs +0 -0
  638. package/dist/src/filters/Saturation.min.mjs.map +0 -0
  639. package/dist/src/filters/Saturation.mjs +0 -0
  640. package/dist/src/filters/Saturation.mjs.map +0 -0
  641. package/dist/src/filters/Vibrance.d.ts +0 -0
  642. package/dist/src/filters/Vibrance.d.ts.map +0 -0
  643. package/dist/src/filters/Vibrance.min.mjs +0 -0
  644. package/dist/src/filters/Vibrance.min.mjs.map +0 -0
  645. package/dist/src/filters/Vibrance.mjs +0 -0
  646. package/dist/src/filters/Vibrance.mjs.map +0 -0
  647. package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
  648. package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  649. package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
  650. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
  651. package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
  652. package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
  653. package/dist/src/filters/filters.d.ts +0 -0
  654. package/dist/src/filters/filters.d.ts.map +0 -0
  655. package/dist/src/filters/filters.min.mjs +0 -0
  656. package/dist/src/filters/filters.min.mjs.map +0 -0
  657. package/dist/src/filters/filters.mjs +0 -0
  658. package/dist/src/filters/filters.mjs.map +0 -0
  659. package/dist/src/filters/index.d.ts +0 -0
  660. package/dist/src/filters/index.d.ts.map +0 -0
  661. package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
  662. package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
  663. package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
  664. package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
  665. package/dist/src/filters/shaders/baseFilter.mjs +0 -0
  666. package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
  667. package/dist/src/filters/shaders/blendColor.d.ts +0 -0
  668. package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
  669. package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
  670. package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
  671. package/dist/src/filters/shaders/blendColor.mjs +0 -0
  672. package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
  673. package/dist/src/filters/shaders/blendImage.d.ts +0 -0
  674. package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
  675. package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
  676. package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
  677. package/dist/src/filters/shaders/blendImage.mjs +0 -0
  678. package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
  679. package/dist/src/filters/shaders/blur.d.ts +0 -0
  680. package/dist/src/filters/shaders/blur.d.ts.map +0 -0
  681. package/dist/src/filters/shaders/blur.min.mjs +0 -0
  682. package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
  683. package/dist/src/filters/shaders/blur.mjs +0 -0
  684. package/dist/src/filters/shaders/blur.mjs.map +0 -0
  685. package/dist/src/filters/shaders/brightness.d.ts +0 -0
  686. package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
  687. package/dist/src/filters/shaders/brightness.min.mjs +0 -0
  688. package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
  689. package/dist/src/filters/shaders/brightness.mjs +0 -0
  690. package/dist/src/filters/shaders/brightness.mjs.map +0 -0
  691. package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
  692. package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  693. package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
  694. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
  695. package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
  696. package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
  697. package/dist/src/filters/shaders/constrast.d.ts +0 -0
  698. package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
  699. package/dist/src/filters/shaders/constrast.min.mjs +0 -0
  700. package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
  701. package/dist/src/filters/shaders/constrast.mjs +0 -0
  702. package/dist/src/filters/shaders/constrast.mjs.map +0 -0
  703. package/dist/src/filters/shaders/convolute.d.ts +0 -0
  704. package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
  705. package/dist/src/filters/shaders/convolute.min.mjs +0 -0
  706. package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
  707. package/dist/src/filters/shaders/convolute.mjs +0 -0
  708. package/dist/src/filters/shaders/convolute.mjs.map +0 -0
  709. package/dist/src/filters/shaders/gamma.d.ts +0 -0
  710. package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
  711. package/dist/src/filters/shaders/gamma.min.mjs +0 -0
  712. package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
  713. package/dist/src/filters/shaders/gamma.mjs +0 -0
  714. package/dist/src/filters/shaders/gamma.mjs.map +0 -0
  715. package/dist/src/filters/shaders/grayscale.d.ts +0 -0
  716. package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
  717. package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
  718. package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
  719. package/dist/src/filters/shaders/grayscale.mjs +0 -0
  720. package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
  721. package/dist/src/filters/shaders/invert.d.ts +0 -0
  722. package/dist/src/filters/shaders/invert.d.ts.map +0 -0
  723. package/dist/src/filters/shaders/invert.min.mjs +0 -0
  724. package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
  725. package/dist/src/filters/shaders/invert.mjs +0 -0
  726. package/dist/src/filters/shaders/invert.mjs.map +0 -0
  727. package/dist/src/filters/shaders/noise.d.ts +0 -0
  728. package/dist/src/filters/shaders/noise.d.ts.map +0 -0
  729. package/dist/src/filters/shaders/noise.min.mjs +0 -0
  730. package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
  731. package/dist/src/filters/shaders/noise.mjs +0 -0
  732. package/dist/src/filters/shaders/noise.mjs.map +0 -0
  733. package/dist/src/filters/shaders/pixelate.d.ts +0 -0
  734. package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
  735. package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
  736. package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
  737. package/dist/src/filters/shaders/pixelate.mjs +0 -0
  738. package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
  739. package/dist/src/filters/shaders/removeColor.d.ts +0 -0
  740. package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
  741. package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
  742. package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
  743. package/dist/src/filters/shaders/removeColor.mjs +0 -0
  744. package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
  745. package/dist/src/filters/shaders/saturation.d.ts +0 -0
  746. package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
  747. package/dist/src/filters/shaders/saturation.min.mjs +0 -0
  748. package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
  749. package/dist/src/filters/shaders/saturation.mjs +0 -0
  750. package/dist/src/filters/shaders/saturation.mjs.map +0 -0
  751. package/dist/src/filters/shaders/vibrance.d.ts +0 -0
  752. package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
  753. package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
  754. package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
  755. package/dist/src/filters/shaders/vibrance.mjs +0 -0
  756. package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
  757. package/dist/src/filters/typedefs.d.ts +0 -0
  758. package/dist/src/filters/typedefs.d.ts.map +0 -0
  759. package/dist/src/filters/utils.d.ts +0 -0
  760. package/dist/src/filters/utils.d.ts.map +0 -0
  761. package/dist/src/filters/utils.min.mjs +0 -0
  762. package/dist/src/filters/utils.min.mjs.map +0 -0
  763. package/dist/src/filters/utils.mjs +0 -0
  764. package/dist/src/filters/utils.mjs.map +0 -0
  765. package/dist/src/gradient/Gradient.d.ts +0 -0
  766. package/dist/src/gradient/Gradient.d.ts.map +0 -0
  767. package/dist/src/gradient/Gradient.min.mjs +0 -0
  768. package/dist/src/gradient/Gradient.min.mjs.map +0 -0
  769. package/dist/src/gradient/Gradient.mjs +0 -0
  770. package/dist/src/gradient/Gradient.mjs.map +0 -0
  771. package/dist/src/gradient/constants.d.ts +0 -0
  772. package/dist/src/gradient/constants.d.ts.map +0 -0
  773. package/dist/src/gradient/constants.min.mjs +0 -0
  774. package/dist/src/gradient/constants.min.mjs.map +0 -0
  775. package/dist/src/gradient/constants.mjs +0 -0
  776. package/dist/src/gradient/constants.mjs.map +0 -0
  777. package/dist/src/gradient/index.d.ts +0 -0
  778. package/dist/src/gradient/index.d.ts.map +0 -0
  779. package/dist/src/gradient/parser/misc.d.ts +0 -0
  780. package/dist/src/gradient/parser/misc.d.ts.map +0 -0
  781. package/dist/src/gradient/parser/misc.min.mjs +0 -0
  782. package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
  783. package/dist/src/gradient/parser/misc.mjs +0 -0
  784. package/dist/src/gradient/parser/misc.mjs.map +0 -0
  785. package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
  786. package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  787. package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
  788. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
  789. package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
  790. package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
  791. package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
  792. package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
  793. package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
  794. package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
  795. package/dist/src/gradient/parser/parseCoords.mjs +0 -0
  796. package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
  797. package/dist/src/gradient/typedefs.d.ts +0 -0
  798. package/dist/src/gradient/typedefs.d.ts.map +0 -0
  799. package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
  800. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
  801. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
  802. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
  803. package/dist/src/parkinglot/straighten.d.ts +0 -0
  804. package/dist/src/parkinglot/straighten.d.ts.map +0 -0
  805. package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
  806. package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
  807. package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
  808. package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
  809. package/dist/src/parser/applyViewboxTransform.mjs +0 -0
  810. package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
  811. package/dist/src/parser/attributes.d.ts +0 -0
  812. package/dist/src/parser/attributes.d.ts.map +0 -0
  813. package/dist/src/parser/attributes.min.mjs +0 -0
  814. package/dist/src/parser/attributes.min.mjs.map +0 -0
  815. package/dist/src/parser/attributes.mjs +0 -0
  816. package/dist/src/parser/attributes.mjs.map +0 -0
  817. package/dist/src/parser/constants.d.ts +0 -0
  818. package/dist/src/parser/constants.d.ts.map +0 -0
  819. package/dist/src/parser/constants.min.mjs +0 -0
  820. package/dist/src/parser/constants.min.mjs.map +0 -0
  821. package/dist/src/parser/constants.mjs +0 -0
  822. package/dist/src/parser/constants.mjs.map +0 -0
  823. package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
  824. package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  825. package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
  826. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
  827. package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
  828. package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
  829. package/dist/src/parser/elementMatchesRule.d.ts +0 -0
  830. package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
  831. package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
  832. package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
  833. package/dist/src/parser/elementMatchesRule.mjs +0 -0
  834. package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
  835. package/dist/src/parser/elements_parser.d.ts +0 -0
  836. package/dist/src/parser/elements_parser.d.ts.map +0 -0
  837. package/dist/src/parser/elements_parser.min.mjs +0 -0
  838. package/dist/src/parser/elements_parser.min.mjs.map +0 -0
  839. package/dist/src/parser/elements_parser.mjs +0 -0
  840. package/dist/src/parser/elements_parser.mjs.map +0 -0
  841. package/dist/src/parser/getCSSRules.d.ts +0 -0
  842. package/dist/src/parser/getCSSRules.d.ts.map +0 -0
  843. package/dist/src/parser/getCSSRules.min.mjs +0 -0
  844. package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
  845. package/dist/src/parser/getCSSRules.mjs +0 -0
  846. package/dist/src/parser/getCSSRules.mjs.map +0 -0
  847. package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
  848. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  849. package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
  850. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
  851. package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
  852. package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
  853. package/dist/src/parser/getGradientDefs.d.ts +0 -0
  854. package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
  855. package/dist/src/parser/getGradientDefs.min.mjs +0 -0
  856. package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
  857. package/dist/src/parser/getGradientDefs.mjs +0 -0
  858. package/dist/src/parser/getGradientDefs.mjs.map +0 -0
  859. package/dist/src/parser/getMultipleNodes.d.ts +0 -0
  860. package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
  861. package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
  862. package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
  863. package/dist/src/parser/getMultipleNodes.mjs +0 -0
  864. package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
  865. package/dist/src/parser/getSvgRegex.d.ts +0 -0
  866. package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
  867. package/dist/src/parser/getSvgRegex.min.mjs +0 -0
  868. package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
  869. package/dist/src/parser/getSvgRegex.mjs +0 -0
  870. package/dist/src/parser/getSvgRegex.mjs.map +0 -0
  871. package/dist/src/parser/getTagName.d.ts +0 -0
  872. package/dist/src/parser/getTagName.d.ts.map +0 -0
  873. package/dist/src/parser/getTagName.min.mjs +0 -0
  874. package/dist/src/parser/getTagName.min.mjs.map +0 -0
  875. package/dist/src/parser/getTagName.mjs +0 -0
  876. package/dist/src/parser/getTagName.mjs.map +0 -0
  877. package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
  878. package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  879. package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
  880. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
  881. package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
  882. package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
  883. package/dist/src/parser/loadSVGFromString.d.ts +0 -0
  884. package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
  885. package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
  886. package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
  887. package/dist/src/parser/loadSVGFromString.mjs +0 -0
  888. package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
  889. package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
  890. package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
  891. package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
  892. package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
  893. package/dist/src/parser/loadSVGFromURL.mjs +0 -0
  894. package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
  895. package/dist/src/parser/normalizeAttr.d.ts +0 -0
  896. package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
  897. package/dist/src/parser/normalizeAttr.min.mjs +0 -0
  898. package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
  899. package/dist/src/parser/normalizeAttr.mjs +0 -0
  900. package/dist/src/parser/normalizeAttr.mjs.map +0 -0
  901. package/dist/src/parser/normalizeValue.d.ts +0 -0
  902. package/dist/src/parser/normalizeValue.d.ts.map +0 -0
  903. package/dist/src/parser/normalizeValue.min.mjs +0 -0
  904. package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
  905. package/dist/src/parser/normalizeValue.mjs +0 -0
  906. package/dist/src/parser/normalizeValue.mjs.map +0 -0
  907. package/dist/src/parser/parseAttributes.d.ts +0 -0
  908. package/dist/src/parser/parseAttributes.d.ts.map +0 -0
  909. package/dist/src/parser/parseAttributes.min.mjs +0 -0
  910. package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
  911. package/dist/src/parser/parseAttributes.mjs +0 -0
  912. package/dist/src/parser/parseAttributes.mjs.map +0 -0
  913. package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
  914. package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
  915. package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
  916. package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
  917. package/dist/src/parser/parseFontDeclaration.mjs +0 -0
  918. package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
  919. package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
  920. package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
  921. package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
  922. package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
  923. package/dist/src/parser/parsePointsAttribute.mjs +0 -0
  924. package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
  925. package/dist/src/parser/parseSVGDocument.d.ts +0 -0
  926. package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
  927. package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
  928. package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
  929. package/dist/src/parser/parseSVGDocument.mjs +0 -0
  930. package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
  931. package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
  932. package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
  933. package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
  934. package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
  935. package/dist/src/parser/parseStyleAttribute.mjs +0 -0
  936. package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
  937. package/dist/src/parser/parseStyleObject.d.ts +0 -0
  938. package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
  939. package/dist/src/parser/parseStyleObject.min.mjs +0 -0
  940. package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
  941. package/dist/src/parser/parseStyleObject.mjs +0 -0
  942. package/dist/src/parser/parseStyleObject.mjs.map +0 -0
  943. package/dist/src/parser/parseStyleString.d.ts +0 -0
  944. package/dist/src/parser/parseStyleString.d.ts.map +0 -0
  945. package/dist/src/parser/parseStyleString.min.mjs +0 -0
  946. package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
  947. package/dist/src/parser/parseStyleString.mjs +0 -0
  948. package/dist/src/parser/parseStyleString.mjs.map +0 -0
  949. package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
  950. package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
  951. package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
  952. package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
  953. package/dist/src/parser/parseTransformAttribute.mjs +0 -0
  954. package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
  955. package/dist/src/parser/parseUseDirectives.d.ts +0 -0
  956. package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
  957. package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
  958. package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
  959. package/dist/src/parser/parseUseDirectives.mjs +0 -0
  960. package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
  961. package/dist/src/parser/percent.d.ts +0 -0
  962. package/dist/src/parser/percent.d.ts.map +0 -0
  963. package/dist/src/parser/percent.min.mjs +0 -0
  964. package/dist/src/parser/percent.min.mjs.map +0 -0
  965. package/dist/src/parser/percent.mjs +0 -0
  966. package/dist/src/parser/percent.mjs.map +0 -0
  967. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  968. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  969. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
  970. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
  971. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
  972. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
  973. package/dist/src/parser/selectorMatches.d.ts +0 -0
  974. package/dist/src/parser/selectorMatches.d.ts.map +0 -0
  975. package/dist/src/parser/selectorMatches.min.mjs +0 -0
  976. package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
  977. package/dist/src/parser/selectorMatches.mjs +0 -0
  978. package/dist/src/parser/selectorMatches.mjs.map +0 -0
  979. package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
  980. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  981. package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
  982. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
  983. package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
  984. package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
  985. package/dist/src/parser/typedefs.d.ts +0 -0
  986. package/dist/src/parser/typedefs.d.ts.map +0 -0
  987. package/dist/src/shapes/ActiveSelection.d.ts +0 -0
  988. package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
  989. package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
  990. package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
  991. package/dist/src/shapes/ActiveSelection.mjs +0 -0
  992. package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
  993. package/dist/src/shapes/Circle.d.ts +0 -0
  994. package/dist/src/shapes/Circle.d.ts.map +0 -0
  995. package/dist/src/shapes/Circle.min.mjs +0 -0
  996. package/dist/src/shapes/Circle.min.mjs.map +0 -0
  997. package/dist/src/shapes/Circle.mjs +0 -0
  998. package/dist/src/shapes/Circle.mjs.map +0 -0
  999. package/dist/src/shapes/Ellipse.d.ts +0 -0
  1000. package/dist/src/shapes/Ellipse.d.ts.map +0 -0
  1001. package/dist/src/shapes/Ellipse.min.mjs +0 -0
  1002. package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
  1003. package/dist/src/shapes/Ellipse.mjs +0 -0
  1004. package/dist/src/shapes/Ellipse.mjs.map +0 -0
  1005. package/dist/src/shapes/Group.d.ts +0 -0
  1006. package/dist/src/shapes/Group.d.ts.map +0 -0
  1007. package/dist/src/shapes/Group.min.mjs +0 -0
  1008. package/dist/src/shapes/Group.min.mjs.map +0 -0
  1009. package/dist/src/shapes/Group.mjs +0 -0
  1010. package/dist/src/shapes/Group.mjs.map +0 -0
  1011. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1012. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1013. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
  1014. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
  1015. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
  1016. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
  1017. package/dist/src/shapes/IText/IText.d.ts +0 -0
  1018. package/dist/src/shapes/IText/IText.d.ts.map +0 -0
  1019. package/dist/src/shapes/IText/IText.min.mjs +0 -0
  1020. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  1021. package/dist/src/shapes/IText/IText.mjs +206 -206
  1022. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  1023. package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1024. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
  1025. package/dist/src/shapes/IText/ITextBehavior.min.mjs +0 -0
  1026. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  1027. package/dist/src/shapes/IText/ITextBehavior.mjs +152 -152
  1028. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  1029. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1030. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1031. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
  1032. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  1033. package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
  1034. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  1035. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1036. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1037. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +0 -0
  1038. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +0 -0
  1039. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +0 -0
  1040. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +0 -0
  1041. package/dist/src/shapes/IText/constants.d.ts +0 -0
  1042. package/dist/src/shapes/IText/constants.d.ts.map +0 -0
  1043. package/dist/src/shapes/IText/constants.min.mjs +0 -0
  1044. package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
  1045. package/dist/src/shapes/IText/constants.mjs +0 -0
  1046. package/dist/src/shapes/IText/constants.mjs.map +0 -0
  1047. package/dist/src/shapes/Image.d.ts +0 -0
  1048. package/dist/src/shapes/Image.d.ts.map +0 -0
  1049. package/dist/src/shapes/Image.min.mjs +0 -0
  1050. package/dist/src/shapes/Image.min.mjs.map +0 -0
  1051. package/dist/src/shapes/Image.mjs +0 -0
  1052. package/dist/src/shapes/Image.mjs.map +0 -0
  1053. package/dist/src/shapes/Line.d.ts +0 -0
  1054. package/dist/src/shapes/Line.d.ts.map +0 -0
  1055. package/dist/src/shapes/Line.min.mjs +0 -0
  1056. package/dist/src/shapes/Line.min.mjs.map +0 -0
  1057. package/dist/src/shapes/Line.mjs +0 -0
  1058. package/dist/src/shapes/Line.mjs.map +0 -0
  1059. package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
  1060. package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1061. package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
  1062. package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
  1063. package/dist/src/shapes/Object/FabricObject.mjs +0 -0
  1064. package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
  1065. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1066. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1067. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
  1068. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
  1069. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
  1070. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
  1071. package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1072. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1073. package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
  1074. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
  1075. package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
  1076. package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
  1077. package/dist/src/shapes/Object/Object.d.ts +0 -0
  1078. package/dist/src/shapes/Object/Object.d.ts.map +0 -0
  1079. package/dist/src/shapes/Object/Object.min.mjs +0 -0
  1080. package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
  1081. package/dist/src/shapes/Object/Object.mjs +0 -0
  1082. package/dist/src/shapes/Object/Object.mjs.map +0 -0
  1083. package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1084. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1085. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
  1086. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
  1087. package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
  1088. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
  1089. package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
  1090. package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1091. package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
  1092. package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
  1093. package/dist/src/shapes/Object/defaultValues.mjs +0 -0
  1094. package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
  1095. package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1096. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1097. package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1098. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1099. package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1100. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1101. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1102. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1103. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1104. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1105. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1106. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1107. package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1108. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1109. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1110. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1111. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1112. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1113. package/dist/src/shapes/Object/types/index.d.ts +0 -0
  1114. package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
  1115. package/dist/src/shapes/Path.d.ts +0 -0
  1116. package/dist/src/shapes/Path.d.ts.map +0 -0
  1117. package/dist/src/shapes/Path.min.mjs +0 -0
  1118. package/dist/src/shapes/Path.min.mjs.map +0 -0
  1119. package/dist/src/shapes/Path.mjs +0 -0
  1120. package/dist/src/shapes/Path.mjs.map +0 -0
  1121. package/dist/src/shapes/Polygon.d.ts +0 -0
  1122. package/dist/src/shapes/Polygon.d.ts.map +0 -0
  1123. package/dist/src/shapes/Polygon.min.mjs +0 -0
  1124. package/dist/src/shapes/Polygon.min.mjs.map +0 -0
  1125. package/dist/src/shapes/Polygon.mjs +0 -0
  1126. package/dist/src/shapes/Polygon.mjs.map +0 -0
  1127. package/dist/src/shapes/Polyline.d.ts +0 -0
  1128. package/dist/src/shapes/Polyline.d.ts.map +0 -0
  1129. package/dist/src/shapes/Polyline.min.mjs +0 -0
  1130. package/dist/src/shapes/Polyline.min.mjs.map +0 -0
  1131. package/dist/src/shapes/Polyline.mjs +0 -0
  1132. package/dist/src/shapes/Polyline.mjs.map +0 -0
  1133. package/dist/src/shapes/Rect.d.ts +0 -0
  1134. package/dist/src/shapes/Rect.d.ts.map +0 -0
  1135. package/dist/src/shapes/Rect.min.mjs +0 -0
  1136. package/dist/src/shapes/Rect.min.mjs.map +0 -0
  1137. package/dist/src/shapes/Rect.mjs +0 -0
  1138. package/dist/src/shapes/Rect.mjs.map +0 -0
  1139. package/dist/src/shapes/Text/StyledText.d.ts +0 -0
  1140. package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
  1141. package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
  1142. package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
  1143. package/dist/src/shapes/Text/StyledText.mjs +0 -0
  1144. package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
  1145. package/dist/src/shapes/Text/Text.d.ts +0 -0
  1146. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  1147. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  1148. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  1149. package/dist/src/shapes/Text/Text.mjs +347 -295
  1150. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  1151. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1152. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1153. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
  1154. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
  1155. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
  1156. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
  1157. package/dist/src/shapes/Text/constants.d.ts +0 -0
  1158. package/dist/src/shapes/Text/constants.d.ts.map +0 -0
  1159. package/dist/src/shapes/Text/constants.min.mjs +0 -0
  1160. package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
  1161. package/dist/src/shapes/Text/constants.mjs +0 -0
  1162. package/dist/src/shapes/Text/constants.mjs.map +1 -1
  1163. package/dist/src/shapes/Textbox.d.ts +13 -0
  1164. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  1165. package/dist/src/shapes/Textbox.min.mjs +1 -1
  1166. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  1167. package/dist/src/shapes/Textbox.mjs +256 -138
  1168. package/dist/src/shapes/Textbox.mjs.map +1 -1
  1169. package/dist/src/shapes/Triangle.d.ts +0 -0
  1170. package/dist/src/shapes/Triangle.d.ts.map +0 -0
  1171. package/dist/src/shapes/Triangle.min.mjs +0 -0
  1172. package/dist/src/shapes/Triangle.min.mjs.map +0 -0
  1173. package/dist/src/shapes/Triangle.mjs +0 -0
  1174. package/dist/src/shapes/Triangle.mjs.map +0 -0
  1175. package/dist/src/text/browserLines.d.ts +0 -0
  1176. package/dist/src/text/browserLines.d.ts.map +0 -0
  1177. package/dist/src/text/browserLines.min.mjs +0 -0
  1178. package/dist/src/text/browserLines.min.mjs.map +1 -1
  1179. package/dist/src/text/browserLines.mjs +20 -20
  1180. package/dist/src/text/browserLines.mjs.map +1 -1
  1181. package/dist/src/text/ellipsis.d.ts +0 -0
  1182. package/dist/src/text/ellipsis.d.ts.map +0 -0
  1183. package/dist/src/text/ellipsis.min.mjs +0 -0
  1184. package/dist/src/text/ellipsis.min.mjs.map +1 -1
  1185. package/dist/src/text/ellipsis.mjs +11 -11
  1186. package/dist/src/text/ellipsis.mjs.map +1 -1
  1187. package/dist/src/text/hitTest.d.ts +0 -0
  1188. package/dist/src/text/hitTest.d.ts.map +0 -0
  1189. package/dist/src/text/hitTest.min.mjs +0 -0
  1190. package/dist/src/text/hitTest.min.mjs.map +1 -1
  1191. package/dist/src/text/hitTest.mjs +19 -19
  1192. package/dist/src/text/hitTest.mjs.map +1 -1
  1193. package/dist/src/text/layout.d.ts +0 -0
  1194. package/dist/src/text/layout.d.ts.map +0 -0
  1195. package/dist/src/text/layout.min.mjs +0 -0
  1196. package/dist/src/text/layout.min.mjs.map +1 -1
  1197. package/dist/src/text/layout.mjs +33 -33
  1198. package/dist/src/text/layout.mjs.map +1 -1
  1199. package/dist/src/text/measure.d.ts +0 -0
  1200. package/dist/src/text/measure.d.ts.map +0 -0
  1201. package/dist/src/text/measure.min.mjs +0 -0
  1202. package/dist/src/text/measure.min.mjs.map +1 -1
  1203. package/dist/src/text/measure.mjs +20 -20
  1204. package/dist/src/text/measure.mjs.map +1 -1
  1205. package/dist/src/text/overlayEditor.d.ts +8 -0
  1206. package/dist/src/text/overlayEditor.d.ts.map +1 -1
  1207. package/dist/src/text/overlayEditor.min.mjs +1 -1
  1208. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  1209. package/dist/src/text/overlayEditor.mjs +412 -85
  1210. package/dist/src/text/overlayEditor.mjs.map +1 -1
  1211. package/dist/src/text/unicode.d.ts +0 -0
  1212. package/dist/src/text/unicode.d.ts.map +0 -0
  1213. package/dist/src/text/unicode.min.mjs +0 -0
  1214. package/dist/src/text/unicode.min.mjs.map +1 -1
  1215. package/dist/src/text/unicode.mjs +8 -8
  1216. package/dist/src/text/unicode.mjs.map +1 -1
  1217. package/dist/src/typedefs.d.ts +0 -0
  1218. package/dist/src/typedefs.d.ts.map +0 -0
  1219. package/dist/src/util/animation/AnimationBase.d.ts +0 -0
  1220. package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
  1221. package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
  1222. package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
  1223. package/dist/src/util/animation/AnimationBase.mjs +0 -0
  1224. package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
  1225. package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1226. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1227. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
  1228. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
  1229. package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
  1230. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
  1231. package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
  1232. package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1233. package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
  1234. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
  1235. package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
  1236. package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
  1237. package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
  1238. package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1239. package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
  1240. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
  1241. package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
  1242. package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
  1243. package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
  1244. package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1245. package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
  1246. package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
  1247. package/dist/src/util/animation/ColorAnimation.mjs +0 -0
  1248. package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
  1249. package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
  1250. package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1251. package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
  1252. package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
  1253. package/dist/src/util/animation/ValueAnimation.mjs +0 -0
  1254. package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
  1255. package/dist/src/util/animation/animate.d.ts +0 -0
  1256. package/dist/src/util/animation/animate.d.ts.map +0 -0
  1257. package/dist/src/util/animation/animate.min.mjs +0 -0
  1258. package/dist/src/util/animation/animate.min.mjs.map +0 -0
  1259. package/dist/src/util/animation/animate.mjs +0 -0
  1260. package/dist/src/util/animation/animate.mjs.map +0 -0
  1261. package/dist/src/util/animation/easing.d.ts +0 -0
  1262. package/dist/src/util/animation/easing.d.ts.map +0 -0
  1263. package/dist/src/util/animation/easing.min.mjs +0 -0
  1264. package/dist/src/util/animation/easing.min.mjs.map +0 -0
  1265. package/dist/src/util/animation/easing.mjs +0 -0
  1266. package/dist/src/util/animation/easing.mjs.map +0 -0
  1267. package/dist/src/util/animation/index.d.ts +0 -0
  1268. package/dist/src/util/animation/index.d.ts.map +0 -0
  1269. package/dist/src/util/animation/types.d.ts +0 -0
  1270. package/dist/src/util/animation/types.d.ts.map +0 -0
  1271. package/dist/src/util/applyMixins.d.ts +0 -0
  1272. package/dist/src/util/applyMixins.d.ts.map +0 -0
  1273. package/dist/src/util/applyMixins.min.mjs +0 -0
  1274. package/dist/src/util/applyMixins.min.mjs.map +0 -0
  1275. package/dist/src/util/applyMixins.mjs +0 -0
  1276. package/dist/src/util/applyMixins.mjs.map +0 -0
  1277. package/dist/src/util/dom_event.d.ts +0 -0
  1278. package/dist/src/util/dom_event.d.ts.map +0 -0
  1279. package/dist/src/util/dom_event.min.mjs +0 -0
  1280. package/dist/src/util/dom_event.min.mjs.map +0 -0
  1281. package/dist/src/util/dom_event.mjs +0 -0
  1282. package/dist/src/util/dom_event.mjs.map +0 -0
  1283. package/dist/src/util/dom_misc.d.ts +0 -0
  1284. package/dist/src/util/dom_misc.d.ts.map +0 -0
  1285. package/dist/src/util/dom_misc.min.mjs +0 -0
  1286. package/dist/src/util/dom_misc.min.mjs.map +0 -0
  1287. package/dist/src/util/dom_misc.mjs +0 -0
  1288. package/dist/src/util/dom_misc.mjs.map +0 -0
  1289. package/dist/src/util/index.d.ts +0 -0
  1290. package/dist/src/util/index.d.ts.map +0 -0
  1291. package/dist/src/util/index.min.mjs +0 -0
  1292. package/dist/src/util/index.min.mjs.map +0 -0
  1293. package/dist/src/util/index.mjs +0 -0
  1294. package/dist/src/util/index.mjs.map +0 -0
  1295. package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
  1296. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  1297. package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
  1298. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
  1299. package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
  1300. package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
  1301. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  1302. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  1303. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
  1304. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
  1305. package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
  1306. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
  1307. package/dist/src/util/internals/cloneStyles.d.ts +0 -0
  1308. package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
  1309. package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
  1310. package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
  1311. package/dist/src/util/internals/cloneStyles.mjs +0 -0
  1312. package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
  1313. package/dist/src/util/internals/console.d.ts +0 -0
  1314. package/dist/src/util/internals/console.d.ts.map +0 -0
  1315. package/dist/src/util/internals/console.min.mjs +0 -0
  1316. package/dist/src/util/internals/console.min.mjs.map +0 -0
  1317. package/dist/src/util/internals/console.mjs +0 -0
  1318. package/dist/src/util/internals/console.mjs.map +0 -0
  1319. package/dist/src/util/internals/dom_style.d.ts +0 -0
  1320. package/dist/src/util/internals/dom_style.d.ts.map +0 -0
  1321. package/dist/src/util/internals/dom_style.min.mjs +0 -0
  1322. package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
  1323. package/dist/src/util/internals/dom_style.mjs +0 -0
  1324. package/dist/src/util/internals/dom_style.mjs.map +0 -0
  1325. package/dist/src/util/internals/findRight.d.ts +0 -0
  1326. package/dist/src/util/internals/findRight.d.ts.map +0 -0
  1327. package/dist/src/util/internals/findRight.min.mjs +0 -0
  1328. package/dist/src/util/internals/findRight.min.mjs.map +0 -0
  1329. package/dist/src/util/internals/findRight.mjs +0 -0
  1330. package/dist/src/util/internals/findRight.mjs.map +0 -0
  1331. package/dist/src/util/internals/getRandomInt.d.ts +0 -0
  1332. package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
  1333. package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
  1334. package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
  1335. package/dist/src/util/internals/getRandomInt.mjs +0 -0
  1336. package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
  1337. package/dist/src/util/internals/ifNaN.d.ts +0 -0
  1338. package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
  1339. package/dist/src/util/internals/ifNaN.min.mjs +0 -0
  1340. package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
  1341. package/dist/src/util/internals/ifNaN.mjs +0 -0
  1342. package/dist/src/util/internals/ifNaN.mjs.map +0 -0
  1343. package/dist/src/util/internals/removeFromArray.d.ts +0 -0
  1344. package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
  1345. package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
  1346. package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
  1347. package/dist/src/util/internals/removeFromArray.mjs +0 -0
  1348. package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
  1349. package/dist/src/util/internals/uid.d.ts +0 -0
  1350. package/dist/src/util/internals/uid.d.ts.map +0 -0
  1351. package/dist/src/util/internals/uid.min.mjs +0 -0
  1352. package/dist/src/util/internals/uid.min.mjs.map +0 -0
  1353. package/dist/src/util/internals/uid.mjs +0 -0
  1354. package/dist/src/util/internals/uid.mjs.map +0 -0
  1355. package/dist/src/util/lang_string.d.ts +0 -0
  1356. package/dist/src/util/lang_string.d.ts.map +0 -0
  1357. package/dist/src/util/lang_string.min.mjs +0 -0
  1358. package/dist/src/util/lang_string.min.mjs.map +0 -0
  1359. package/dist/src/util/lang_string.mjs +0 -0
  1360. package/dist/src/util/lang_string.mjs.map +0 -0
  1361. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  1362. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  1363. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
  1364. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
  1365. package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
  1366. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
  1367. package/dist/src/util/misc/capValue.d.ts +0 -0
  1368. package/dist/src/util/misc/capValue.d.ts.map +0 -0
  1369. package/dist/src/util/misc/capValue.min.mjs +0 -0
  1370. package/dist/src/util/misc/capValue.min.mjs.map +0 -0
  1371. package/dist/src/util/misc/capValue.mjs +0 -0
  1372. package/dist/src/util/misc/capValue.mjs.map +0 -0
  1373. package/dist/src/util/misc/cos.d.ts +0 -0
  1374. package/dist/src/util/misc/cos.d.ts.map +0 -0
  1375. package/dist/src/util/misc/cos.min.mjs +0 -0
  1376. package/dist/src/util/misc/cos.min.mjs.map +0 -0
  1377. package/dist/src/util/misc/cos.mjs +0 -0
  1378. package/dist/src/util/misc/cos.mjs.map +0 -0
  1379. package/dist/src/util/misc/dom.d.ts +0 -0
  1380. package/dist/src/util/misc/dom.d.ts.map +0 -0
  1381. package/dist/src/util/misc/dom.min.mjs +0 -0
  1382. package/dist/src/util/misc/dom.min.mjs.map +0 -0
  1383. package/dist/src/util/misc/dom.mjs +0 -0
  1384. package/dist/src/util/misc/dom.mjs.map +0 -0
  1385. package/dist/src/util/misc/findScaleTo.d.ts +0 -0
  1386. package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
  1387. package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
  1388. package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
  1389. package/dist/src/util/misc/findScaleTo.mjs +0 -0
  1390. package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
  1391. package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
  1392. package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
  1393. package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
  1394. package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
  1395. package/dist/src/util/misc/groupSVGElements.mjs +0 -0
  1396. package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
  1397. package/dist/src/util/misc/isTransparent.d.ts +0 -0
  1398. package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
  1399. package/dist/src/util/misc/isTransparent.min.mjs +0 -0
  1400. package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
  1401. package/dist/src/util/misc/isTransparent.mjs +0 -0
  1402. package/dist/src/util/misc/isTransparent.mjs.map +0 -0
  1403. package/dist/src/util/misc/matrix.d.ts +0 -0
  1404. package/dist/src/util/misc/matrix.d.ts.map +0 -0
  1405. package/dist/src/util/misc/matrix.min.mjs +0 -0
  1406. package/dist/src/util/misc/matrix.min.mjs.map +0 -0
  1407. package/dist/src/util/misc/matrix.mjs +0 -0
  1408. package/dist/src/util/misc/matrix.mjs.map +0 -0
  1409. package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
  1410. package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  1411. package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
  1412. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
  1413. package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
  1414. package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
  1415. package/dist/src/util/misc/objectEnlive.d.ts +0 -0
  1416. package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
  1417. package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
  1418. package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
  1419. package/dist/src/util/misc/objectEnlive.mjs +0 -0
  1420. package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
  1421. package/dist/src/util/misc/objectTransforms.d.ts +0 -0
  1422. package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
  1423. package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
  1424. package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
  1425. package/dist/src/util/misc/objectTransforms.mjs +0 -0
  1426. package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
  1427. package/dist/src/util/misc/pick.d.ts +0 -0
  1428. package/dist/src/util/misc/pick.d.ts.map +0 -0
  1429. package/dist/src/util/misc/pick.min.mjs +0 -0
  1430. package/dist/src/util/misc/pick.min.mjs.map +0 -0
  1431. package/dist/src/util/misc/pick.mjs +0 -0
  1432. package/dist/src/util/misc/pick.mjs.map +0 -0
  1433. package/dist/src/util/misc/planeChange.d.ts +0 -0
  1434. package/dist/src/util/misc/planeChange.d.ts.map +0 -0
  1435. package/dist/src/util/misc/planeChange.min.mjs +0 -0
  1436. package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
  1437. package/dist/src/util/misc/planeChange.mjs +0 -0
  1438. package/dist/src/util/misc/planeChange.mjs.map +0 -0
  1439. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  1440. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  1441. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
  1442. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
  1443. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
  1444. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
  1445. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  1446. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  1447. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
  1448. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
  1449. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
  1450. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
  1451. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  1452. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  1453. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
  1454. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
  1455. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
  1456. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
  1457. package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
  1458. package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
  1459. package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
  1460. package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
  1461. package/dist/src/util/misc/projectStroke/index.mjs +0 -0
  1462. package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
  1463. package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
  1464. package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
  1465. package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  1466. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  1467. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
  1468. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
  1469. package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
  1470. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
  1471. package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
  1472. package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
  1473. package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
  1474. package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
  1475. package/dist/src/util/misc/resolveOrigin.mjs +0 -0
  1476. package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
  1477. package/dist/src/util/misc/sin.d.ts +0 -0
  1478. package/dist/src/util/misc/sin.d.ts.map +0 -0
  1479. package/dist/src/util/misc/sin.min.mjs +0 -0
  1480. package/dist/src/util/misc/sin.min.mjs.map +0 -0
  1481. package/dist/src/util/misc/sin.mjs +0 -0
  1482. package/dist/src/util/misc/sin.mjs.map +0 -0
  1483. package/dist/src/util/misc/svgExport.d.ts +0 -0
  1484. package/dist/src/util/misc/svgExport.d.ts.map +0 -0
  1485. package/dist/src/util/misc/svgExport.min.mjs +0 -0
  1486. package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
  1487. package/dist/src/util/misc/svgExport.mjs +0 -0
  1488. package/dist/src/util/misc/svgExport.mjs.map +0 -0
  1489. package/dist/src/util/misc/svgParsing.d.ts +0 -0
  1490. package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
  1491. package/dist/src/util/misc/svgParsing.min.mjs +0 -0
  1492. package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
  1493. package/dist/src/util/misc/svgParsing.mjs +0 -0
  1494. package/dist/src/util/misc/svgParsing.mjs.map +0 -0
  1495. package/dist/src/util/misc/textStyles.d.ts +0 -0
  1496. package/dist/src/util/misc/textStyles.d.ts.map +0 -0
  1497. package/dist/src/util/misc/textStyles.min.mjs +0 -0
  1498. package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
  1499. package/dist/src/util/misc/textStyles.mjs +0 -0
  1500. package/dist/src/util/misc/textStyles.mjs.map +0 -0
  1501. package/dist/src/util/misc/toFixed.d.ts +0 -0
  1502. package/dist/src/util/misc/toFixed.d.ts.map +0 -0
  1503. package/dist/src/util/misc/toFixed.min.mjs +0 -0
  1504. package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
  1505. package/dist/src/util/misc/toFixed.mjs +0 -0
  1506. package/dist/src/util/misc/toFixed.mjs.map +0 -0
  1507. package/dist/src/util/misc/vectors.d.ts +0 -0
  1508. package/dist/src/util/misc/vectors.d.ts.map +0 -0
  1509. package/dist/src/util/misc/vectors.min.mjs +0 -0
  1510. package/dist/src/util/misc/vectors.min.mjs.map +0 -0
  1511. package/dist/src/util/misc/vectors.mjs +0 -0
  1512. package/dist/src/util/misc/vectors.mjs.map +0 -0
  1513. package/dist/src/util/path/index.d.ts +0 -0
  1514. package/dist/src/util/path/index.d.ts.map +0 -0
  1515. package/dist/src/util/path/index.min.mjs +0 -0
  1516. package/dist/src/util/path/index.min.mjs.map +0 -0
  1517. package/dist/src/util/path/index.mjs +0 -0
  1518. package/dist/src/util/path/index.mjs.map +0 -0
  1519. package/dist/src/util/path/regex.d.ts +0 -0
  1520. package/dist/src/util/path/regex.d.ts.map +0 -0
  1521. package/dist/src/util/path/regex.min.mjs +0 -0
  1522. package/dist/src/util/path/regex.min.mjs.map +0 -0
  1523. package/dist/src/util/path/regex.mjs +0 -0
  1524. package/dist/src/util/path/regex.mjs.map +0 -0
  1525. package/dist/src/util/path/typechecks.d.ts +0 -0
  1526. package/dist/src/util/path/typechecks.d.ts.map +0 -0
  1527. package/dist/src/util/path/typedefs.d.ts +0 -0
  1528. package/dist/src/util/path/typedefs.d.ts.map +0 -0
  1529. package/dist/src/util/transform_matrix_removal.d.ts +0 -0
  1530. package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
  1531. package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
  1532. package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
  1533. package/dist/src/util/transform_matrix_removal.mjs +0 -0
  1534. package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
  1535. package/dist/src/util/typeAssertions.d.ts +0 -0
  1536. package/dist/src/util/typeAssertions.d.ts.map +0 -0
  1537. package/dist/src/util/typeAssertions.min.mjs +0 -0
  1538. package/dist/src/util/typeAssertions.min.mjs.map +0 -0
  1539. package/dist/src/util/typeAssertions.mjs +0 -0
  1540. package/dist/src/util/typeAssertions.mjs.map +0 -0
  1541. package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
  1542. package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
  1543. package/dist-extensions/aligning_guidelines/index.mjs +0 -0
  1544. package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
  1545. package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
  1546. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
  1547. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
  1548. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
  1549. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
  1550. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
  1551. package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
  1552. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
  1553. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
  1554. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
  1555. package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
  1556. package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
  1557. package/dist-extensions/data_updaters/origins/index.mjs +0 -0
  1558. package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
  1559. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
  1560. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  1561. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
  1562. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
  1563. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  1564. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  1565. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  1566. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  1567. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  1568. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  1569. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  1570. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  1571. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  1572. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  1573. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  1574. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  1575. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
  1576. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  1577. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
  1578. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
  1579. package/dist-extensions/extensions/index.d.ts +0 -0
  1580. package/dist-extensions/extensions/index.d.ts.map +0 -0
  1581. package/dist-extensions/fabric-extensions.min.js +0 -0
  1582. package/dist-extensions/fabric-extensions.min.js.map +0 -0
  1583. package/dist-extensions/fabric.d.ts +0 -0
  1584. package/dist-extensions/fabric.d.ts.map +0 -0
  1585. package/dist-extensions/index.d.ts +0 -0
  1586. package/dist-extensions/index.d.ts.map +0 -0
  1587. package/dist-extensions/index.mjs +0 -0
  1588. package/dist-extensions/index.mjs.map +0 -0
  1589. package/dist-extensions/src/ClassRegistry.d.ts +0 -0
  1590. package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
  1591. package/dist-extensions/src/Collection.d.ts +0 -0
  1592. package/dist-extensions/src/Collection.d.ts.map +0 -0
  1593. package/dist-extensions/src/CommonMethods.d.ts +0 -0
  1594. package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
  1595. package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
  1596. package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
  1597. package/dist-extensions/src/Intersection.d.ts +0 -0
  1598. package/dist-extensions/src/Intersection.d.ts.map +0 -0
  1599. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  1600. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  1601. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
  1602. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  1603. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  1604. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  1605. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  1606. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  1607. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  1608. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  1609. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  1610. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  1611. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  1612. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  1613. package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
  1614. package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
  1615. package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
  1616. package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
  1617. package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
  1618. package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
  1619. package/dist-extensions/src/Observable.d.ts +0 -0
  1620. package/dist-extensions/src/Observable.d.ts.map +0 -0
  1621. package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
  1622. package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
  1623. package/dist-extensions/src/Pattern/index.d.ts +0 -0
  1624. package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
  1625. package/dist-extensions/src/Pattern/types.d.ts +0 -0
  1626. package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
  1627. package/dist-extensions/src/Point.d.ts +0 -0
  1628. package/dist-extensions/src/Point.d.ts.map +0 -0
  1629. package/dist-extensions/src/Shadow.d.ts +0 -0
  1630. package/dist-extensions/src/Shadow.d.ts.map +0 -0
  1631. package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
  1632. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
  1633. package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
  1634. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
  1635. package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
  1636. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
  1637. package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
  1638. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
  1639. package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
  1640. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
  1641. package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
  1642. package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
  1643. package/dist-extensions/src/cache.d.ts +0 -0
  1644. package/dist-extensions/src/cache.d.ts.map +0 -0
  1645. package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
  1646. package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
  1647. package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
  1648. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
  1649. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  1650. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  1651. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  1652. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  1653. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
  1654. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
  1655. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
  1656. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
  1657. package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
  1658. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
  1659. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
  1660. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  1661. package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
  1662. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
  1663. package/dist-extensions/src/color/Color.d.ts +0 -0
  1664. package/dist-extensions/src/color/Color.d.ts.map +0 -0
  1665. package/dist-extensions/src/color/color_map.d.ts +0 -0
  1666. package/dist-extensions/src/color/color_map.d.ts.map +0 -0
  1667. package/dist-extensions/src/color/constants.d.ts +0 -0
  1668. package/dist-extensions/src/color/constants.d.ts.map +0 -0
  1669. package/dist-extensions/src/color/typedefs.d.ts +0 -0
  1670. package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
  1671. package/dist-extensions/src/color/util.d.ts +0 -0
  1672. package/dist-extensions/src/color/util.d.ts.map +0 -0
  1673. package/dist-extensions/src/config.d.ts +0 -0
  1674. package/dist-extensions/src/config.d.ts.map +0 -0
  1675. package/dist-extensions/src/constants.d.ts +0 -0
  1676. package/dist-extensions/src/constants.d.ts.map +0 -0
  1677. package/dist-extensions/src/controls/Control.d.ts +0 -0
  1678. package/dist-extensions/src/controls/Control.d.ts.map +0 -0
  1679. package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
  1680. package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
  1681. package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
  1682. package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
  1683. package/dist-extensions/src/controls/commonControls.d.ts +0 -0
  1684. package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
  1685. package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
  1686. package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
  1687. package/dist-extensions/src/controls/drag.d.ts +0 -0
  1688. package/dist-extensions/src/controls/drag.d.ts.map +0 -0
  1689. package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
  1690. package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
  1691. package/dist-extensions/src/controls/index.d.ts +0 -0
  1692. package/dist-extensions/src/controls/index.d.ts.map +0 -0
  1693. package/dist-extensions/src/controls/pathControl.d.ts +0 -0
  1694. package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
  1695. package/dist-extensions/src/controls/polyControl.d.ts +0 -0
  1696. package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
  1697. package/dist-extensions/src/controls/rotate.d.ts +0 -0
  1698. package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
  1699. package/dist-extensions/src/controls/scale.d.ts +0 -0
  1700. package/dist-extensions/src/controls/scale.d.ts.map +0 -0
  1701. package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
  1702. package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
  1703. package/dist-extensions/src/controls/skew.d.ts +0 -0
  1704. package/dist-extensions/src/controls/skew.d.ts.map +0 -0
  1705. package/dist-extensions/src/controls/util.d.ts +0 -0
  1706. package/dist-extensions/src/controls/util.d.ts.map +0 -0
  1707. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
  1708. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  1709. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  1710. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  1711. package/dist-extensions/src/env/browser.d.ts +0 -0
  1712. package/dist-extensions/src/env/browser.d.ts.map +0 -0
  1713. package/dist-extensions/src/env/index.d.ts +0 -0
  1714. package/dist-extensions/src/env/index.d.ts.map +0 -0
  1715. package/dist-extensions/src/env/types.d.ts +0 -0
  1716. package/dist-extensions/src/env/types.d.ts.map +0 -0
  1717. package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
  1718. package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
  1719. package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
  1720. package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
  1721. package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
  1722. package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
  1723. package/dist-extensions/src/filters/Blur.d.ts +0 -0
  1724. package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
  1725. package/dist-extensions/src/filters/Brightness.d.ts +0 -0
  1726. package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
  1727. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  1728. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  1729. package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
  1730. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
  1731. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
  1732. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  1733. package/dist-extensions/src/filters/Composed.d.ts +0 -0
  1734. package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
  1735. package/dist-extensions/src/filters/Contrast.d.ts +0 -0
  1736. package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
  1737. package/dist-extensions/src/filters/Convolute.d.ts +0 -0
  1738. package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
  1739. package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
  1740. package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
  1741. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
  1742. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  1743. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  1744. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  1745. package/dist-extensions/src/filters/Gamma.d.ts +0 -0
  1746. package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
  1747. package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
  1748. package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
  1749. package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
  1750. package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
  1751. package/dist-extensions/src/filters/Invert.d.ts +0 -0
  1752. package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
  1753. package/dist-extensions/src/filters/Noise.d.ts +0 -0
  1754. package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
  1755. package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
  1756. package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
  1757. package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
  1758. package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
  1759. package/dist-extensions/src/filters/Resize.d.ts +0 -0
  1760. package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
  1761. package/dist-extensions/src/filters/Saturation.d.ts +0 -0
  1762. package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
  1763. package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
  1764. package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
  1765. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
  1766. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  1767. package/dist-extensions/src/filters/filters.d.ts +0 -0
  1768. package/dist-extensions/src/filters/filters.d.ts.map +0 -0
  1769. package/dist-extensions/src/filters/index.d.ts +0 -0
  1770. package/dist-extensions/src/filters/index.d.ts.map +0 -0
  1771. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
  1772. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
  1773. package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
  1774. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
  1775. package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
  1776. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
  1777. package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
  1778. package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
  1779. package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
  1780. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
  1781. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
  1782. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  1783. package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
  1784. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
  1785. package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
  1786. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
  1787. package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
  1788. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
  1789. package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
  1790. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
  1791. package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
  1792. package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
  1793. package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
  1794. package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
  1795. package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
  1796. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
  1797. package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
  1798. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
  1799. package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
  1800. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
  1801. package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
  1802. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
  1803. package/dist-extensions/src/filters/typedefs.d.ts +0 -0
  1804. package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
  1805. package/dist-extensions/src/filters/utils.d.ts +0 -0
  1806. package/dist-extensions/src/filters/utils.d.ts.map +0 -0
  1807. package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
  1808. package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
  1809. package/dist-extensions/src/gradient/constants.d.ts +0 -0
  1810. package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
  1811. package/dist-extensions/src/gradient/index.d.ts +0 -0
  1812. package/dist-extensions/src/gradient/index.d.ts.map +0 -0
  1813. package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
  1814. package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
  1815. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
  1816. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  1817. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
  1818. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
  1819. package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
  1820. package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
  1821. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
  1822. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
  1823. package/dist-extensions/src/parser/attributes.d.ts +0 -0
  1824. package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
  1825. package/dist-extensions/src/parser/constants.d.ts +0 -0
  1826. package/dist-extensions/src/parser/constants.d.ts.map +0 -0
  1827. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
  1828. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  1829. package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
  1830. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
  1831. package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
  1832. package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
  1833. package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
  1834. package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
  1835. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
  1836. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  1837. package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
  1838. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
  1839. package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
  1840. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
  1841. package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
  1842. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
  1843. package/dist-extensions/src/parser/getTagName.d.ts +0 -0
  1844. package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
  1845. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
  1846. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  1847. package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
  1848. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
  1849. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
  1850. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
  1851. package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
  1852. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
  1853. package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
  1854. package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
  1855. package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
  1856. package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
  1857. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
  1858. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
  1859. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
  1860. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
  1861. package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
  1862. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
  1863. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
  1864. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
  1865. package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
  1866. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
  1867. package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
  1868. package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
  1869. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
  1870. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
  1871. package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
  1872. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
  1873. package/dist-extensions/src/parser/percent.d.ts +0 -0
  1874. package/dist-extensions/src/parser/percent.d.ts.map +0 -0
  1875. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  1876. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  1877. package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
  1878. package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
  1879. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
  1880. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  1881. package/dist-extensions/src/parser/typedefs.d.ts +0 -0
  1882. package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
  1883. package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
  1884. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
  1885. package/dist-extensions/src/shapes/Circle.d.ts +0 -0
  1886. package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
  1887. package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
  1888. package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
  1889. package/dist-extensions/src/shapes/Group.d.ts +0 -0
  1890. package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
  1891. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1892. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1893. package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
  1894. package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
  1895. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1896. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
  1897. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1898. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1899. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1900. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1901. package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
  1902. package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
  1903. package/dist-extensions/src/shapes/Image.d.ts +0 -0
  1904. package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
  1905. package/dist-extensions/src/shapes/Line.d.ts +0 -0
  1906. package/dist-extensions/src/shapes/Line.d.ts.map +0 -0
  1907. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
  1908. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1909. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1910. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1911. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1912. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1913. package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
  1914. package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
  1915. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1916. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1917. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
  1918. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1919. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1920. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1921. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1922. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1923. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1924. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1925. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1926. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1927. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1928. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1929. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1930. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1931. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1932. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1933. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1934. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1935. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1936. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1937. package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
  1938. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
  1939. package/dist-extensions/src/shapes/Path.d.ts +0 -0
  1940. package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
  1941. package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
  1942. package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
  1943. package/dist-extensions/src/shapes/Polyline.d.ts +0 -0
  1944. package/dist-extensions/src/shapes/Polyline.d.ts.map +0 -0
  1945. package/dist-extensions/src/shapes/Rect.d.ts +0 -0
  1946. package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
  1947. package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
  1948. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
  1949. package/dist-extensions/src/shapes/Text/Text.d.ts +0 -0
  1950. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  1951. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1952. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1953. package/dist-extensions/src/shapes/Text/constants.d.ts +0 -0
  1954. package/dist-extensions/src/shapes/Text/constants.d.ts.map +0 -0
  1955. package/dist-extensions/src/shapes/Textbox.d.ts +13 -0
  1956. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  1957. package/dist-extensions/src/shapes/Triangle.d.ts +0 -0
  1958. package/dist-extensions/src/shapes/Triangle.d.ts.map +0 -0
  1959. package/dist-extensions/src/text/browserLines.d.ts +0 -0
  1960. package/dist-extensions/src/text/browserLines.d.ts.map +0 -0
  1961. package/dist-extensions/src/text/ellipsis.d.ts +0 -0
  1962. package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
  1963. package/dist-extensions/src/text/hitTest.d.ts +0 -0
  1964. package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
  1965. package/dist-extensions/src/text/layout.d.ts +0 -0
  1966. package/dist-extensions/src/text/layout.d.ts.map +0 -0
  1967. package/dist-extensions/src/text/measure.d.ts +0 -0
  1968. package/dist-extensions/src/text/measure.d.ts.map +0 -0
  1969. package/dist-extensions/src/text/overlayEditor.d.ts +8 -0
  1970. package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
  1971. package/dist-extensions/src/text/unicode.d.ts +0 -0
  1972. package/dist-extensions/src/text/unicode.d.ts.map +0 -0
  1973. package/dist-extensions/src/typedefs.d.ts +0 -0
  1974. package/dist-extensions/src/typedefs.d.ts.map +0 -0
  1975. package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
  1976. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
  1977. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1978. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1979. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
  1980. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1981. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
  1982. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1983. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
  1984. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1985. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
  1986. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1987. package/dist-extensions/src/util/animation/animate.d.ts +0 -0
  1988. package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
  1989. package/dist-extensions/src/util/animation/easing.d.ts +0 -0
  1990. package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
  1991. package/dist-extensions/src/util/animation/index.d.ts +0 -0
  1992. package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
  1993. package/dist-extensions/src/util/animation/types.d.ts +0 -0
  1994. package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
  1995. package/dist-extensions/src/util/applyMixins.d.ts +0 -0
  1996. package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
  1997. package/dist-extensions/src/util/dom_event.d.ts +0 -0
  1998. package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
  1999. package/dist-extensions/src/util/dom_misc.d.ts +0 -0
  2000. package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
  2001. package/dist-extensions/src/util/index.d.ts +0 -0
  2002. package/dist-extensions/src/util/index.d.ts.map +0 -0
  2003. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
  2004. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  2005. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  2006. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  2007. package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
  2008. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
  2009. package/dist-extensions/src/util/internals/console.d.ts +0 -0
  2010. package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
  2011. package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
  2012. package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
  2013. package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
  2014. package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
  2015. package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
  2016. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
  2017. package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
  2018. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
  2019. package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
  2020. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
  2021. package/dist-extensions/src/util/internals/uid.d.ts +0 -0
  2022. package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
  2023. package/dist-extensions/src/util/lang_string.d.ts +0 -0
  2024. package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
  2025. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  2026. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  2027. package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
  2028. package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
  2029. package/dist-extensions/src/util/misc/cos.d.ts +0 -0
  2030. package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
  2031. package/dist-extensions/src/util/misc/dom.d.ts +0 -0
  2032. package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
  2033. package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
  2034. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
  2035. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
  2036. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
  2037. package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
  2038. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
  2039. package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
  2040. package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
  2041. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
  2042. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  2043. package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
  2044. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
  2045. package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
  2046. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
  2047. package/dist-extensions/src/util/misc/pick.d.ts +0 -0
  2048. package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
  2049. package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
  2050. package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
  2051. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  2052. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  2053. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  2054. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  2055. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  2056. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  2057. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
  2058. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
  2059. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
  2060. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
  2061. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  2062. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  2063. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
  2064. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
  2065. package/dist-extensions/src/util/misc/sin.d.ts +0 -0
  2066. package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
  2067. package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
  2068. package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
  2069. package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
  2070. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
  2071. package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
  2072. package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
  2073. package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
  2074. package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
  2075. package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
  2076. package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
  2077. package/dist-extensions/src/util/path/index.d.ts +0 -0
  2078. package/dist-extensions/src/util/path/index.d.ts.map +0 -0
  2079. package/dist-extensions/src/util/path/regex.d.ts +0 -0
  2080. package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
  2081. package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
  2082. package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
  2083. package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
  2084. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
  2085. package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
  2086. package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -0
  2087. package/eslint.config.mjs +0 -0
  2088. package/examples/overlay-edit.html +416 -416
  2089. package/extensions/README.MD +0 -0
  2090. package/extensions/aligning_guidelines/README.MD +0 -0
  2091. package/extensions/aligning_guidelines/constant.ts +0 -0
  2092. package/extensions/aligning_guidelines/index.ts +0 -0
  2093. package/extensions/aligning_guidelines/typedefs.ts +0 -0
  2094. package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
  2095. package/extensions/aligning_guidelines/util/basic.ts +0 -0
  2096. package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
  2097. package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
  2098. package/extensions/aligning_guidelines/util/draw.ts +0 -0
  2099. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
  2100. package/extensions/data_updaters/README.md +0 -0
  2101. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
  2102. package/extensions/data_updaters/gradient/index.spec.ts +0 -0
  2103. package/extensions/data_updaters/gradient/index.ts +0 -0
  2104. package/extensions/data_updaters/origins/README.md +0 -0
  2105. package/extensions/data_updaters/origins/index.spec.ts +0 -0
  2106. package/extensions/data_updaters/origins/index.ts +0 -0
  2107. package/extensions/index.ts +0 -0
  2108. package/fabric-test-editor.html +591 -0
  2109. package/fabric.ts +0 -0
  2110. package/index.node.ts +0 -0
  2111. package/index.ts +0 -0
  2112. package/lib/aligning_guidelines.js +0 -0
  2113. package/lib/centering_guidelines.js +0 -0
  2114. package/lib/event.js +0 -0
  2115. package/package.json +1 -1
  2116. package/playwright.config.ts +0 -0
  2117. package/playwright.setup.ts +0 -0
  2118. package/publish-next.js +0 -0
  2119. package/publish.js +0 -0
  2120. package/rollup.config.mjs +0 -0
  2121. package/scripts/bench-text.js +591 -591
  2122. package/scripts/build.mjs +0 -0
  2123. package/scripts/buildLock.mjs +0 -0
  2124. package/scripts/buildReporter.mjs +0 -0
  2125. package/scripts/buildStats.mjs +0 -0
  2126. package/scripts/dirname.mjs +0 -0
  2127. package/scripts/git.mjs +0 -0
  2128. package/scripts/index.mjs +0 -0
  2129. package/scripts/sandbox.mjs +0 -0
  2130. package/src/ClassRegistry.spec.ts +0 -0
  2131. package/src/ClassRegistry.ts +0 -0
  2132. package/src/Collection.spec.ts +0 -0
  2133. package/src/Collection.ts +0 -0
  2134. package/src/CommonMethods.ts +0 -0
  2135. package/src/EventTypeDefs.ts +0 -0
  2136. package/src/Intersection.spec.ts +0 -0
  2137. package/src/Intersection.ts +0 -0
  2138. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
  2139. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
  2140. package/src/LayoutManager/LayoutManager.spec.ts +0 -0
  2141. package/src/LayoutManager/LayoutManager.ts +0 -0
  2142. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
  2143. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
  2144. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
  2145. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
  2146. package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
  2147. package/src/LayoutManager/README.md +0 -0
  2148. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
  2149. package/src/LayoutManager/constants.ts +0 -0
  2150. package/src/LayoutManager/index.ts +0 -0
  2151. package/src/LayoutManager/types.ts +0 -0
  2152. package/src/Observable.spec.ts +0 -0
  2153. package/src/Observable.ts +0 -0
  2154. package/src/Pattern/Pattern.spec.ts +0 -0
  2155. package/src/Pattern/Pattern.ts +0 -0
  2156. package/src/Pattern/index.ts +0 -0
  2157. package/src/Pattern/types.ts +0 -0
  2158. package/src/Point.spec.ts +0 -0
  2159. package/src/Point.ts +0 -0
  2160. package/src/Shadow.spec.ts +0 -0
  2161. package/src/Shadow.ts +0 -0
  2162. package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
  2163. package/src/brushes/BaseBrush.spec.ts +0 -0
  2164. package/src/brushes/BaseBrush.ts +0 -0
  2165. package/src/brushes/CircleBrush.test.ts +0 -0
  2166. package/src/brushes/CircleBrush.ts +0 -0
  2167. package/src/brushes/PatternBrush.ts +0 -0
  2168. package/src/brushes/PencilBrush.spec.ts +0 -0
  2169. package/src/brushes/PencilBrush.ts +0 -0
  2170. package/src/brushes/SprayBrush.ts +0 -0
  2171. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
  2172. package/src/brushes/typedefs.ts +0 -0
  2173. package/src/cache.spec.ts +0 -0
  2174. package/src/cache.ts +0 -0
  2175. package/src/canvas/Canvas-dispose.spec.ts +0 -0
  2176. package/src/canvas/Canvas-events.spec.ts +0 -0
  2177. package/src/canvas/Canvas.spec.ts +0 -0
  2178. package/src/canvas/Canvas.ts +0 -0
  2179. package/src/canvas/CanvasOptions.ts +0 -0
  2180. package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
  2181. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
  2182. package/src/canvas/DOMManagers/util.spec.ts +0 -0
  2183. package/src/canvas/DOMManagers/util.ts +0 -0
  2184. package/src/canvas/SelectableCanvas.spec.ts +0 -0
  2185. package/src/canvas/SelectableCanvas.ts +0 -0
  2186. package/src/canvas/StaticCanvas.spec.ts +0 -0
  2187. package/src/canvas/StaticCanvas.ts +0 -0
  2188. package/src/canvas/StaticCanvasOptions.ts +0 -0
  2189. package/src/canvas/TextEditingManager.ts +0 -0
  2190. package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
  2191. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
  2192. package/src/canvas/__tests__/eventData.test.ts +0 -0
  2193. package/src/canvas/canvas_gestures.mixin.ts +0 -0
  2194. package/src/color/Color.ts +0 -0
  2195. package/src/color/color.test.ts +0 -0
  2196. package/src/color/color_map.ts +0 -0
  2197. package/src/color/constants.ts +0 -0
  2198. package/src/color/typedefs.ts +0 -0
  2199. package/src/color/util.ts +0 -0
  2200. package/src/config.ts +0 -0
  2201. package/src/constants.ts +0 -0
  2202. package/src/controls/Control-cursor.spec.ts +0 -0
  2203. package/src/controls/Control-handlers.spec.ts +0 -0
  2204. package/src/controls/Control.spec.ts +0 -0
  2205. package/src/controls/Control.ts +0 -0
  2206. package/src/controls/changeHeight.ts +0 -0
  2207. package/src/controls/changeWidth.test.ts +0 -0
  2208. package/src/controls/changeWidth.ts +0 -0
  2209. package/src/controls/commonControls.ts +0 -0
  2210. package/src/controls/controlRendering.ts +0 -0
  2211. package/src/controls/drag.ts +0 -0
  2212. package/src/controls/fireEvent.ts +0 -0
  2213. package/src/controls/index.ts +0 -0
  2214. package/src/controls/pathControl.spec.ts +0 -0
  2215. package/src/controls/pathControl.ts +0 -0
  2216. package/src/controls/polyControl.spec.ts +0 -0
  2217. package/src/controls/polyControl.ts +0 -0
  2218. package/src/controls/rotate.ts +0 -0
  2219. package/src/controls/scale.test.ts +0 -0
  2220. package/src/controls/scale.ts +0 -0
  2221. package/src/controls/scaleSkew.ts +0 -0
  2222. package/src/controls/skew.ts +0 -0
  2223. package/src/controls/util.ts +0 -0
  2224. package/src/controls/wrapWithFireEvent.ts +0 -0
  2225. package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
  2226. package/src/controls/wrapWithFixedAnchor.ts +0 -0
  2227. package/src/env/browser.ts +0 -0
  2228. package/src/env/env.spec.ts +0 -0
  2229. package/src/env/index.ts +0 -0
  2230. package/src/env/node.ts +0 -0
  2231. package/src/env/types.ts +0 -0
  2232. package/src/filters/BaseFilter.spec.ts +0 -0
  2233. package/src/filters/BaseFilter.ts +0 -0
  2234. package/src/filters/BlendColor.ts +0 -0
  2235. package/src/filters/BlendImage.ts +0 -0
  2236. package/src/filters/Blur.ts +0 -0
  2237. package/src/filters/Boilerplate.ts +0 -0
  2238. package/src/filters/Brightness.ts +0 -0
  2239. package/src/filters/Canvas2dFilterBackend.ts +0 -0
  2240. package/src/filters/ColorMatrix.spec.ts +0 -0
  2241. package/src/filters/ColorMatrix.ts +0 -0
  2242. package/src/filters/ColorMatrixFilters.ts +0 -0
  2243. package/src/filters/Composed.ts +0 -0
  2244. package/src/filters/Contrast.ts +0 -0
  2245. package/src/filters/Convolute.ts +0 -0
  2246. package/src/filters/FilterBackend.ts +0 -0
  2247. package/src/filters/GLProbes/GLProbe.ts +0 -0
  2248. package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
  2249. package/src/filters/GLProbes/WebGLProbe.ts +0 -0
  2250. package/src/filters/Gamma.ts +0 -0
  2251. package/src/filters/Grayscale.ts +0 -0
  2252. package/src/filters/HueRotation.ts +0 -0
  2253. package/src/filters/Invert.ts +0 -0
  2254. package/src/filters/Noise.ts +0 -0
  2255. package/src/filters/Pixelate.ts +0 -0
  2256. package/src/filters/RemoveColor.ts +0 -0
  2257. package/src/filters/Resize.ts +0 -0
  2258. package/src/filters/Saturation.ts +0 -0
  2259. package/src/filters/Vibrance.ts +0 -0
  2260. package/src/filters/WebGLFilterBackend.spec.ts +0 -0
  2261. package/src/filters/WebGLFilterBackend.ts +0 -0
  2262. package/src/filters/filters.ts +0 -0
  2263. package/src/filters/index.ts +0 -0
  2264. package/src/filters/shaders/baseFilter.ts +0 -0
  2265. package/src/filters/shaders/blendColor.ts +0 -0
  2266. package/src/filters/shaders/blendImage.ts +0 -0
  2267. package/src/filters/shaders/blur.ts +0 -0
  2268. package/src/filters/shaders/brightness.ts +0 -0
  2269. package/src/filters/shaders/colorMatrix.ts +0 -0
  2270. package/src/filters/shaders/constrast.ts +0 -0
  2271. package/src/filters/shaders/convolute.ts +0 -0
  2272. package/src/filters/shaders/gamma.ts +0 -0
  2273. package/src/filters/shaders/grayscale.ts +0 -0
  2274. package/src/filters/shaders/invert.ts +0 -0
  2275. package/src/filters/shaders/noise.ts +0 -0
  2276. package/src/filters/shaders/pixelate.ts +0 -0
  2277. package/src/filters/shaders/removeColor.ts +0 -0
  2278. package/src/filters/shaders/saturation.ts +0 -0
  2279. package/src/filters/shaders/vibrance.ts +0 -0
  2280. package/src/filters/typedefs.ts +0 -0
  2281. package/src/filters/utils.ts +0 -0
  2282. package/src/gradient/Gradient.spec.ts +0 -0
  2283. package/src/gradient/Gradient.ts +0 -0
  2284. package/src/gradient/constants.ts +0 -0
  2285. package/src/gradient/index.ts +0 -0
  2286. package/src/gradient/parser/misc.ts +0 -0
  2287. package/src/gradient/parser/parseColorStops.ts +0 -0
  2288. package/src/gradient/parser/parseCoords.ts +0 -0
  2289. package/src/gradient/typedefs.ts +0 -0
  2290. package/src/mixins/eraser_brush.mixin.ts +0 -0
  2291. package/src/parkinglot/canvas_animation.mixin.ts +0 -0
  2292. package/src/parkinglot/straighten.ts +0 -0
  2293. package/src/parser/applyViewboxTransform.spec.ts +0 -0
  2294. package/src/parser/applyViewboxTransform.ts +0 -0
  2295. package/src/parser/attributes.ts +0 -0
  2296. package/src/parser/constants.spec.ts +0 -0
  2297. package/src/parser/constants.ts +0 -0
  2298. package/src/parser/doesSomeParentMatch.ts +0 -0
  2299. package/src/parser/elementMatchesRule.ts +0 -0
  2300. package/src/parser/elements_parser.ts +0 -0
  2301. package/src/parser/getCSSRules.spec.ts +0 -0
  2302. package/src/parser/getCSSRules.ts +0 -0
  2303. package/src/parser/getGlobalStylesForElement.ts +0 -0
  2304. package/src/parser/getGradientDefs.ts +0 -0
  2305. package/src/parser/getMultipleNodes.ts +0 -0
  2306. package/src/parser/getSvgRegex.ts +0 -0
  2307. package/src/parser/getTagName.ts +0 -0
  2308. package/src/parser/hasInvalidAncestor.ts +0 -0
  2309. package/src/parser/loadSVGFromString.test.ts +0 -0
  2310. package/src/parser/loadSVGFromString.ts +0 -0
  2311. package/src/parser/loadSVGFromURL.ts +0 -0
  2312. package/src/parser/normalizeAttr.ts +0 -0
  2313. package/src/parser/normalizeValue.ts +0 -0
  2314. package/src/parser/parseAttributes.ts +0 -0
  2315. package/src/parser/parseFontDeclaration.ts +0 -0
  2316. package/src/parser/parsePointsAttribute.ts +0 -0
  2317. package/src/parser/parseSVGDocument.ts +0 -0
  2318. package/src/parser/parseStyleAttribute.ts +0 -0
  2319. package/src/parser/parseStyleObject.ts +0 -0
  2320. package/src/parser/parseStyleString.ts +0 -0
  2321. package/src/parser/parseTransformAttribute.ts +0 -0
  2322. package/src/parser/parseUseDirectives.test.ts +0 -0
  2323. package/src/parser/parseUseDirectives.ts +0 -0
  2324. package/src/parser/parser.spec.ts +0 -0
  2325. package/src/parser/percent.ts +0 -0
  2326. package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
  2327. package/src/parser/selectorMatches.ts +0 -0
  2328. package/src/parser/setStrokeFillOpacity.ts +0 -0
  2329. package/src/parser/typedefs.ts +0 -0
  2330. package/src/shapes/ActiveSelection.spec.ts +0 -0
  2331. package/src/shapes/ActiveSelection.ts +0 -0
  2332. package/src/shapes/Circle.spec.ts +0 -0
  2333. package/src/shapes/Circle.ts +0 -0
  2334. package/src/shapes/Ellipse.spec.ts +0 -0
  2335. package/src/shapes/Ellipse.ts +0 -0
  2336. package/src/shapes/Group.spec.ts +0 -0
  2337. package/src/shapes/Group.ts +0 -0
  2338. package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
  2339. package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
  2340. package/src/shapes/IText/IText.test.ts +0 -0
  2341. package/src/shapes/IText/IText.ts +846 -846
  2342. package/src/shapes/IText/ITextBehavior.test.ts +0 -0
  2343. package/src/shapes/IText/ITextBehavior.ts +1176 -1176
  2344. package/src/shapes/IText/ITextClickBehavior.ts +254 -254
  2345. package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
  2346. package/src/shapes/IText/ITextKeyBehavior.ts +0 -0
  2347. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
  2348. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
  2349. package/src/shapes/IText/constants.ts +0 -0
  2350. package/src/shapes/Image-filters.spec.ts +0 -0
  2351. package/src/shapes/Image.spec.ts +0 -0
  2352. package/src/shapes/Image.ts +0 -0
  2353. package/src/shapes/Line.spec.ts +0 -0
  2354. package/src/shapes/Line.ts +0 -0
  2355. package/src/shapes/Object/FabricObject.spec.ts +0 -0
  2356. package/src/shapes/Object/FabricObject.ts +0 -0
  2357. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
  2358. package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
  2359. package/src/shapes/Object/InteractiveObject.ts +0 -0
  2360. package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
  2361. package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
  2362. package/src/shapes/Object/Object.spec.ts +0 -0
  2363. package/src/shapes/Object/Object.ts +0 -0
  2364. package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
  2365. package/src/shapes/Object/ObjectGeometry.ts +0 -0
  2366. package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
  2367. package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
  2368. package/src/shapes/Object/StackedObject.spec.ts +0 -0
  2369. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
  2370. package/src/shapes/Object/defaultValues.ts +0 -0
  2371. package/src/shapes/Object/types/BaseProps.ts +0 -0
  2372. package/src/shapes/Object/types/BorderProps.ts +0 -0
  2373. package/src/shapes/Object/types/ControlProps.ts +0 -0
  2374. package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
  2375. package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
  2376. package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
  2377. package/src/shapes/Object/types/ObjectProps.ts +0 -0
  2378. package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
  2379. package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
  2380. package/src/shapes/Object/types/index.ts +0 -0
  2381. package/src/shapes/Path.spec.ts +0 -0
  2382. package/src/shapes/Path.ts +0 -0
  2383. package/src/shapes/Polygon.spec.ts +0 -0
  2384. package/src/shapes/Polygon.ts +0 -0
  2385. package/src/shapes/Polyline.spec.ts +0 -0
  2386. package/src/shapes/Polyline.ts +0 -0
  2387. package/src/shapes/Rect.spec.ts +0 -0
  2388. package/src/shapes/Rect.ts +0 -0
  2389. package/src/shapes/Text/StyledText.spec.ts +0 -0
  2390. package/src/shapes/Text/StyledText.ts +0 -0
  2391. package/src/shapes/Text/Text.spec.ts +0 -0
  2392. package/src/shapes/Text/Text.ts +2226 -2161
  2393. package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
  2394. package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
  2395. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
  2396. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
  2397. package/src/shapes/Text/constants.ts +134 -134
  2398. package/src/shapes/Textbox.spec.ts +0 -0
  2399. package/src/shapes/Textbox.ts +788 -669
  2400. package/src/shapes/Triangle.ts +0 -0
  2401. package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
  2402. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
  2403. package/src/text/browserLines.ts +233 -233
  2404. package/src/text/ellipsis.ts +516 -516
  2405. package/src/text/hitTest.ts +623 -623
  2406. package/src/text/layout.ts +586 -586
  2407. package/src/text/measure.ts +475 -475
  2408. package/src/text/overlayEditor.ts +1035 -637
  2409. package/src/text/unicode.ts +454 -454
  2410. package/src/typedefs.ts +0 -0
  2411. package/src/util/__snapshots__/index.spec.ts.snap +0 -0
  2412. package/src/util/animation/AnimationBase.ts +0 -0
  2413. package/src/util/animation/AnimationFrameProvider.ts +0 -0
  2414. package/src/util/animation/AnimationRegistry.ts +0 -0
  2415. package/src/util/animation/ArrayAnimation.ts +0 -0
  2416. package/src/util/animation/ColorAnimation.ts +0 -0
  2417. package/src/util/animation/ValueAnimation.ts +0 -0
  2418. package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
  2419. package/src/util/animation/animate.ts +0 -0
  2420. package/src/util/animation/animations.spec.ts +0 -0
  2421. package/src/util/animation/easing.ts +0 -0
  2422. package/src/util/animation/index.ts +0 -0
  2423. package/src/util/animation/types.ts +0 -0
  2424. package/src/util/applyMixins.ts +0 -0
  2425. package/src/util/dom_event.spec.ts +0 -0
  2426. package/src/util/dom_event.ts +0 -0
  2427. package/src/util/dom_misc.ts +0 -0
  2428. package/src/util/index.spec.ts +0 -0
  2429. package/src/util/index.ts +0 -0
  2430. package/src/util/internals/applyCanvasTransform.ts +0 -0
  2431. package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
  2432. package/src/util/internals/cleanupSvgAttribute.ts +0 -0
  2433. package/src/util/internals/cloneStyles.spec.ts +0 -0
  2434. package/src/util/internals/cloneStyles.ts +0 -0
  2435. package/src/util/internals/console.ts +0 -0
  2436. package/src/util/internals/dom_style.spec.ts +0 -0
  2437. package/src/util/internals/dom_style.ts +0 -0
  2438. package/src/util/internals/findRight.ts +0 -0
  2439. package/src/util/internals/getRandomInt.test.ts +0 -0
  2440. package/src/util/internals/getRandomInt.ts +0 -0
  2441. package/src/util/internals/ifNaN.ts +0 -0
  2442. package/src/util/internals/removeFromArray.spec.ts +0 -0
  2443. package/src/util/internals/removeFromArray.ts +0 -0
  2444. package/src/util/internals/uid.ts +0 -0
  2445. package/src/util/lang_string.spec.ts +0 -0
  2446. package/src/util/lang_string.ts +0 -0
  2447. package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
  2448. package/src/util/misc/boundingBoxFromPoints.ts +0 -0
  2449. package/src/util/misc/capValue.spec.ts +0 -0
  2450. package/src/util/misc/capValue.ts +0 -0
  2451. package/src/util/misc/cos.spec.ts +0 -0
  2452. package/src/util/misc/cos.ts +0 -0
  2453. package/src/util/misc/dom.spec.ts +0 -0
  2454. package/src/util/misc/dom.ts +0 -0
  2455. package/src/util/misc/findScaleTo.spec.ts +0 -0
  2456. package/src/util/misc/findScaleTo.ts +0 -0
  2457. package/src/util/misc/groupSVGElements.spec.ts +0 -0
  2458. package/src/util/misc/groupSVGElements.ts +0 -0
  2459. package/src/util/misc/isTransparent.ts +0 -0
  2460. package/src/util/misc/matrix.spec.ts +0 -0
  2461. package/src/util/misc/matrix.ts +0 -0
  2462. package/src/util/misc/mergeClipPaths.spec.ts +0 -0
  2463. package/src/util/misc/mergeClipPaths.ts +0 -0
  2464. package/src/util/misc/objectEnlive.spec.ts +0 -0
  2465. package/src/util/misc/objectEnlive.ts +0 -0
  2466. package/src/util/misc/objectTransforms.spec.ts +0 -0
  2467. package/src/util/misc/objectTransforms.ts +0 -0
  2468. package/src/util/misc/pick.spec.ts +0 -0
  2469. package/src/util/misc/pick.ts +0 -0
  2470. package/src/util/misc/planeChange.spec.ts +0 -0
  2471. package/src/util/misc/planeChange.ts +0 -0
  2472. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
  2473. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
  2474. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
  2475. package/src/util/misc/projectStroke/index.ts +0 -0
  2476. package/src/util/misc/projectStroke/types.ts +0 -0
  2477. package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
  2478. package/src/util/misc/radiansDegreesConversion.ts +0 -0
  2479. package/src/util/misc/resolveOrigin.ts +0 -0
  2480. package/src/util/misc/sin.ts +0 -0
  2481. package/src/util/misc/svgExport.ts +0 -0
  2482. package/src/util/misc/svgParsing.spec.ts +0 -0
  2483. package/src/util/misc/svgParsing.ts +0 -0
  2484. package/src/util/misc/textStyles.ts +0 -0
  2485. package/src/util/misc/toFixed.spec.ts +0 -0
  2486. package/src/util/misc/toFixed.ts +0 -0
  2487. package/src/util/misc/vectors.spec.ts +0 -0
  2488. package/src/util/misc/vectors.ts +0 -0
  2489. package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
  2490. package/src/util/path/index.spec.ts +0 -0
  2491. package/src/util/path/index.ts +0 -0
  2492. package/src/util/path/regex.ts +0 -0
  2493. package/src/util/path/typechecks.ts +0 -0
  2494. package/src/util/path/typedefs.ts +0 -0
  2495. package/src/util/transform_matrix_removal.ts +0 -0
  2496. package/src/util/typeAssertions.spec.ts +0 -0
  2497. package/src/util/typeAssertions.ts +0 -0
  2498. package/tsconfig-extensions.json +0 -0
  2499. package/tsconfig.json +0 -0
  2500. package/tsconfig.spec.json +0 -0
  2501. package/typedoc.config.json +0 -0
  2502. package/vitest.config.ts +0 -0
  2503. package/vitest.d.ts +0 -0
  2504. package/vitest.env.d.ts +0 -0
  2505. package/vitest.extend.ts +0 -0
  2506. package/vitest.setup.ts +0 -0
  2507. package/docs/fabric-konva-gap-analysis.md +0 -274
  2508. package/docs/konva-text-behavior-spec.md +0 -265
  2509. package/docs/text-engine-design.md +0 -698
@@ -412,7 +412,7 @@ class Cache {
412
412
  }
413
413
  const cache = new Cache();
414
414
 
415
- var version = "7.0.0-beta1";
415
+ var version = "7.0.1-beta1";
416
416
 
417
417
  // use this syntax so babel plugin see this import here
418
418
  const VERSION = version;
@@ -18731,8 +18731,8 @@ _defineProperty(StyledText, "_styleProperties", styleProperties);
18731
18731
  // Global measurement context - reused for performance
18732
18732
  let measurementContext = null;
18733
18733
 
18734
- /**
18735
- * Get or create the shared measurement context
18734
+ /**
18735
+ * Get or create the shared measurement context
18736
18736
  */
18737
18737
  function getMeasurementContext() {
18738
18738
  if (!measurementContext) {
@@ -18745,8 +18745,8 @@ function getMeasurementContext() {
18745
18745
  return measurementContext;
18746
18746
  }
18747
18747
 
18748
- /**
18749
- * Measure a single grapheme
18748
+ /**
18749
+ * Measure a single grapheme
18750
18750
  */
18751
18751
  function measureGrapheme(grapheme, options, ctx) {
18752
18752
  // Check cache first
@@ -18779,8 +18779,8 @@ function measureGrapheme(grapheme, options, ctx) {
18779
18779
  return measurement;
18780
18780
  }
18781
18781
 
18782
- /**
18783
- * Measure a grapheme with kerning relative to previous character
18782
+ /**
18783
+ * Measure a grapheme with kerning relative to previous character
18784
18784
  */
18785
18785
  function measureGraphemeWithKerning(grapheme, previousGrapheme, options, ctx) {
18786
18786
  // Get individual measurement
@@ -18821,8 +18821,8 @@ function measureGraphemeWithKerning(grapheme, previousGrapheme, options, ctx) {
18821
18821
  };
18822
18822
  }
18823
18823
 
18824
- /**
18825
- * Get font metrics for layout calculations
18824
+ /**
18825
+ * Get font metrics for layout calculations
18826
18826
  */
18827
18827
  function getFontMetrics(options) {
18828
18828
  var _metrics$fontBounding, _metrics$fontBounding2, _metrics$actualBoundi, _metrics$actualBoundi2;
@@ -18857,8 +18857,8 @@ function getFontMetrics(options) {
18857
18857
  return result;
18858
18858
  }
18859
18859
 
18860
- /**
18861
- * Apply font styling to canvas context
18860
+ /**
18861
+ * Apply font styling to canvas context
18862
18862
  */
18863
18863
  function applyFontStyle(ctx, options) {
18864
18864
  const fontDeclaration = getFontDeclaration(options);
@@ -18875,8 +18875,8 @@ function applyFontStyle(ctx, options) {
18875
18875
  ctx.textBaseline = 'alphabetic';
18876
18876
  }
18877
18877
 
18878
- /**
18879
- * Generate font declaration string
18878
+ /**
18879
+ * Generate font declaration string
18880
18880
  */
18881
18881
  function getFontDeclaration(options) {
18882
18882
  const {
@@ -18891,8 +18891,8 @@ function getFontDeclaration(options) {
18891
18891
  return `${fontStyle} ${fontWeight} ${fontSize}px ${normalizedFamily}`;
18892
18892
  }
18893
18893
 
18894
- /**
18895
- * LRU Cache implementation for measurements
18894
+ /**
18895
+ * LRU Cache implementation for measurements
18896
18896
  */
18897
18897
  class LRUCache {
18898
18898
  constructor() {
@@ -18954,8 +18954,8 @@ class LRUCache {
18954
18954
  }
18955
18955
  }
18956
18956
 
18957
- /**
18958
- * Advanced measurement cache with font-aware keys
18957
+ /**
18958
+ * Advanced measurement cache with font-aware keys
18959
18959
  */
18960
18960
  class MeasurementCache {
18961
18961
  constructor() {
@@ -18982,8 +18982,8 @@ class MeasurementCache {
18982
18982
  }
18983
18983
  }
18984
18984
 
18985
- /**
18986
- * Kerning cache for character pairs
18985
+ /**
18986
+ * Kerning cache for character pairs
18987
18987
  */
18988
18988
  class KerningCache {
18989
18989
  constructor() {
@@ -19011,8 +19011,8 @@ class KerningCache {
19011
19011
  }
19012
19012
  }
19013
19013
 
19014
- /**
19015
- * Font metrics cache
19014
+ /**
19015
+ * Font metrics cache
19016
19016
  */
19017
19017
  class FontMetricsCache {
19018
19018
  constructor() {
@@ -19039,17 +19039,17 @@ const measurementCache = new MeasurementCache();
19039
19039
  const kerningCache = new KerningCache();
19040
19040
  const fontMetricsCache = new FontMetricsCache();
19041
19041
 
19042
- /**
19043
- * Unicode and Internationalization Support
19044
- *
19045
- * Enhanced Unicode handling for complex scripts, RTL/LTR text,
19046
- * and grapheme cluster boundary detection.
19042
+ /**
19043
+ * Unicode and Internationalization Support
19044
+ *
19045
+ * Enhanced Unicode handling for complex scripts, RTL/LTR text,
19046
+ * and grapheme cluster boundary detection.
19047
19047
  */
19048
19048
 
19049
19049
 
19050
- /**
19051
- * Enhanced grapheme segmentation using Intl.Segmenter when available
19052
- * with fallback to existing graphemeSplit implementation
19050
+ /**
19051
+ * Enhanced grapheme segmentation using Intl.Segmenter when available
19052
+ * with fallback to existing graphemeSplit implementation
19053
19053
  */
19054
19054
  function segmentGraphemes(text) {
19055
19055
  // Use native Intl.Segmenter if available
@@ -19069,15 +19069,15 @@ function segmentGraphemes(text) {
19069
19069
  return graphemeSplit(text);
19070
19070
  }
19071
19071
 
19072
- /**
19073
- * Ellipsis Text Truncation System
19074
- *
19075
- * Implements text truncation with ellipsis when content exceeds bounds,
19076
- * using binary search for optimal truncation points.
19072
+ /**
19073
+ * Ellipsis Text Truncation System
19074
+ *
19075
+ * Implements text truncation with ellipsis when content exceeds bounds,
19076
+ * using binary search for optimal truncation points.
19077
19077
  */
19078
19078
 
19079
- /**
19080
- * Apply ellipsis truncation to text based on width/height constraints
19079
+ /**
19080
+ * Apply ellipsis truncation to text based on width/height constraints
19081
19081
  */
19082
19082
  function applyEllipsis(text, options) {
19083
19083
  const {
@@ -19147,8 +19147,8 @@ function applyEllipsis(text, options) {
19147
19147
  };
19148
19148
  }
19149
19149
 
19150
- /**
19151
- * Truncate text based on width constraint using binary search
19150
+ /**
19151
+ * Truncate text based on width constraint using binary search
19152
19152
  */
19153
19153
  function truncateByWidth(text, maxWidth, ellipsisChar, ellipsisWidth, measureFn) {
19154
19154
  const graphemes = segmentGraphemes(text);
@@ -19198,8 +19198,8 @@ function truncateByWidth(text, maxWidth, ellipsisChar, ellipsisWidth, measureFn)
19198
19198
  };
19199
19199
  }
19200
19200
 
19201
- /**
19202
- * Truncate text based on height constraint
19201
+ /**
19202
+ * Truncate text based on height constraint
19203
19203
  */
19204
19204
  function truncateByHeight(text, maxHeight, ellipsisChar, measureFn) {
19205
19205
  var _measureFn;
@@ -19247,19 +19247,19 @@ function truncateByHeight(text, maxHeight, ellipsisChar, measureFn) {
19247
19247
  return truncateByWidth(lines[0], firstLineWidth, ellipsisChar, 0, measureFn);
19248
19248
  }
19249
19249
 
19250
- /**
19251
- * Core Text Layout Engine
19252
- *
19253
- * Implements Konva-compatible text layout with support for:
19254
- * - Multiple wrap modes (word/char/none)
19255
- * - Ellipsis truncation
19256
- * - Justify alignment with proper space distribution
19257
- * - RTL/LTR text direction
19258
- * - Advanced grapheme handling
19250
+ /**
19251
+ * Core Text Layout Engine
19252
+ *
19253
+ * Implements Konva-compatible text layout with support for:
19254
+ * - Multiple wrap modes (word/char/none)
19255
+ * - Ellipsis truncation
19256
+ * - Justify alignment with proper space distribution
19257
+ * - RTL/LTR text direction
19258
+ * - Advanced grapheme handling
19259
19259
  */
19260
19260
 
19261
- /**
19262
- * Main text layout function - converts text and options into positioned layout
19261
+ /**
19262
+ * Main text layout function - converts text and options into positioned layout
19263
19263
  */
19264
19264
  function layoutText(options) {
19265
19265
  var _ellipsisResult;
@@ -19378,8 +19378,8 @@ function layoutText(options) {
19378
19378
  };
19379
19379
  }
19380
19380
 
19381
- /**
19382
- * Layout a single paragraph with wrapping
19381
+ /**
19382
+ * Layout a single paragraph with wrapping
19383
19383
  */
19384
19384
  function layoutParagraph(text, options) {
19385
19385
  const {
@@ -19414,8 +19414,8 @@ function layoutParagraph(text, options) {
19414
19414
  return layoutLines;
19415
19415
  }
19416
19416
 
19417
- /**
19418
- * Layout a single line of text (no wrapping)
19417
+ /**
19418
+ * Layout a single line of text (no wrapping)
19419
19419
  */
19420
19420
  function layoutSingleLine(text, options) {
19421
19421
  let textOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -19485,8 +19485,8 @@ function layoutSingleLine(text, options) {
19485
19485
  };
19486
19486
  }
19487
19487
 
19488
- /**
19489
- * Word-based wrapping algorithm
19488
+ /**
19489
+ * Word-based wrapping algorithm
19490
19490
  */
19491
19491
  function wrapByWords(text, maxWidth, options) {
19492
19492
  const lines = [];
@@ -19519,8 +19519,8 @@ function wrapByWords(text, maxWidth, options) {
19519
19519
  return lines.length > 0 ? lines : [''];
19520
19520
  }
19521
19521
 
19522
- /**
19523
- * Character-based wrapping algorithm
19522
+ /**
19523
+ * Character-based wrapping algorithm
19524
19524
  */
19525
19525
  function wrapByCharacters(text, maxWidth, options) {
19526
19526
  const lines = [];
@@ -19542,8 +19542,8 @@ function wrapByCharacters(text, maxWidth, options) {
19542
19542
  return lines.length > 0 ? lines : [''];
19543
19543
  }
19544
19544
 
19545
- /**
19546
- * Apply text alignment to lines
19545
+ /**
19546
+ * Apply text alignment to lines
19547
19547
  */
19548
19548
  function applyAlignment(lines, align, containerWidth, options) {
19549
19549
  return lines.map(line => {
@@ -19577,8 +19577,8 @@ function applyAlignment(lines, align, containerWidth, options) {
19577
19577
  });
19578
19578
  }
19579
19579
 
19580
- /**
19581
- * Apply justify alignment by expanding spaces
19580
+ /**
19581
+ * Apply justify alignment by expanding spaces
19582
19582
  */
19583
19583
  function applyJustification(line, containerWidth, options) {
19584
19584
  const spaces = line.graphemes.filter(g => /\s/.test(g)).length;
@@ -19601,8 +19601,8 @@ function applyJustification(line, containerWidth, options) {
19601
19601
  return line;
19602
19602
  }
19603
19603
 
19604
- /**
19605
- * Calculate vertical alignment offset
19604
+ /**
19605
+ * Calculate vertical alignment offset
19606
19606
  */
19607
19607
  function calculateVerticalOffset(contentHeight, containerHeight, align) {
19608
19608
  switch (align) {
@@ -19616,8 +19616,8 @@ function calculateVerticalOffset(contentHeight, containerHeight, align) {
19616
19616
  }
19617
19617
  }
19618
19618
 
19619
- /**
19620
- * Handle height overflow with ellipsis
19619
+ /**
19620
+ * Handle height overflow with ellipsis
19621
19621
  */
19622
19622
  function handleHeightOverflow(existingLines, overflowLine, remainingHeight, options) {
19623
19623
  // If ellipsis is enabled, try to fit part of the overflow line
@@ -19646,8 +19646,8 @@ function handleHeightOverflow(existingLines, overflowLine, remainingHeight, opti
19646
19646
  };
19647
19647
  }
19648
19648
 
19649
- /**
19650
- * Create empty line for empty paragraphs
19649
+ /**
19650
+ * Create empty line for empty paragraphs
19651
19651
  */
19652
19652
  function createEmptyLine(options) {
19653
19653
  const height = options.fontSize * options.lineHeight;
@@ -19663,8 +19663,8 @@ function createEmptyLine(options) {
19663
19663
  };
19664
19664
  }
19665
19665
 
19666
- /**
19667
- * Measure width of a line of text
19666
+ /**
19667
+ * Measure width of a line of text
19668
19668
  */
19669
19669
  function measureLineWidth(text, options) {
19670
19670
  const graphemes = segmentGraphemes(text);
@@ -19681,8 +19681,8 @@ function measureLineWidth(text, options) {
19681
19681
  return width;
19682
19682
  }
19683
19683
 
19684
- /**
19685
- * Convert layout options to measurement options
19684
+ /**
19685
+ * Convert layout options to measurement options
19686
19686
  */
19687
19687
  function createMeasurementOptions(options) {
19688
19688
  return {
@@ -19925,15 +19925,15 @@ class TextSVGExportMixin extends FabricObjectSVGExportMixin {
19925
19925
  }
19926
19926
  }
19927
19927
 
19928
- /**
19929
- * Browser Line Break Extraction
19930
- *
19931
- * Captures exact line breaks as rendered by the browser to ensure
19932
- * pixel-perfect consistency between DOM editing and canvas rendering.
19928
+ /**
19929
+ * Browser Line Break Extraction
19930
+ *
19931
+ * Captures exact line breaks as rendered by the browser to ensure
19932
+ * pixel-perfect consistency between DOM editing and canvas rendering.
19933
19933
  */
19934
19934
 
19935
- /**
19936
- * Segment text into graphemes safely using Intl.Segmenter or fallback
19935
+ /**
19936
+ * Segment text into graphemes safely using Intl.Segmenter or fallback
19937
19937
  */
19938
19938
  function segmentIntoGraphemes(text) {
19939
19939
  if (typeof Intl !== 'undefined' && Intl.Segmenter) {
@@ -19947,9 +19947,9 @@ function segmentIntoGraphemes(text) {
19947
19947
  return Array.from(text);
19948
19948
  }
19949
19949
 
19950
- /**
19951
- * Extract line break information from a textarea by creating a mirror element
19952
- * with identical computed styles and measuring grapheme positions.
19950
+ /**
19951
+ * Extract line break information from a textarea by creating a mirror element
19952
+ * with identical computed styles and measuring grapheme positions.
19953
19953
  */
19954
19954
  function extractLinesFromDOM(textarea) {
19955
19955
  const text = textarea.value;
@@ -20044,16 +20044,16 @@ function extractLinesFromDOM(textarea) {
20044
20044
  }
20045
20045
  }
20046
20046
 
20047
- /**
20048
- * Create a hash of layout-affecting properties to detect when browser lines are still valid
20047
+ /**
20048
+ * Create a hash of layout-affecting properties to detect when browser lines are still valid
20049
20049
  */
20050
20050
  function createLayoutHash(target) {
20051
20051
  const properties = [target.text, target.width, target.height, target.fontFamily, target.fontSize, target.fontWeight, target.fontStyle, target.lineHeight, target.charSpacing, target.textAlign, target.direction];
20052
20052
  return properties.map(p => String(p)).join('|');
20053
20053
  }
20054
20054
 
20055
- /**
20056
- * Check if stored browser lines are still valid for the current target state
20055
+ /**
20056
+ * Check if stored browser lines are still valid for the current target state
20057
20057
  */
20058
20058
  function areBrowserLinesValid(target, storedHash) {
20059
20059
  if (!storedHash || !target.__lastBrowserLines) {
@@ -20063,24 +20063,24 @@ function areBrowserLinesValid(target, storedHash) {
20063
20063
  return currentHash === storedHash;
20064
20064
  }
20065
20065
 
20066
- /**
20067
- * Store browser lines on a target object with validity hash
20066
+ /**
20067
+ * Store browser lines on a target object with validity hash
20068
20068
  */
20069
20069
  function storeBrowserLines(target, lines, layoutHash) {
20070
20070
  target.__lastBrowserLines = lines;
20071
20071
  target.__lastBrowserLinesHash = createLayoutHash(target);
20072
20072
  }
20073
20073
 
20074
- /**
20075
- * Clear stored browser lines from a target object
20074
+ /**
20075
+ * Clear stored browser lines from a target object
20076
20076
  */
20077
20077
  function clearBrowserLines(target) {
20078
20078
  delete target.__lastBrowserLines;
20079
20079
  delete target.__lastBrowserLinesHash;
20080
20080
  }
20081
20081
 
20082
- /**
20083
- * Get stored browser lines if they're still valid
20082
+ /**
20083
+ * Get stored browser lines if they're still valid
20084
20084
  */
20085
20085
  function getBrowserLines(target) {
20086
20086
  const lines = target.__lastBrowserLines;
@@ -20093,9 +20093,9 @@ function getBrowserLines(target) {
20093
20093
 
20094
20094
  let measuringContext;
20095
20095
 
20096
- /**
20097
- * Return a context for measurement of text string.
20098
- * if created it gets stored for reuse
20096
+ /**
20097
+ * Return a context for measurement of text string.
20098
+ * if created it gets stored for reuse
20099
20099
  */
20100
20100
  function getMeasuringContext() {
20101
20101
  if (!measuringContext) {
@@ -20108,17 +20108,17 @@ function getMeasuringContext() {
20108
20108
  return measuringContext;
20109
20109
  }
20110
20110
 
20111
- /**
20112
- * Measure and return the info of a single grapheme.
20113
- * needs the the info of previous graphemes already filled
20114
- * Override to customize measuring
20111
+ /**
20112
+ * Measure and return the info of a single grapheme.
20113
+ * needs the the info of previous graphemes already filled
20114
+ * Override to customize measuring
20115
20115
  */
20116
20116
 
20117
20117
  // @TODO this is not complete
20118
20118
 
20119
- /**
20120
- * Text class
20121
- * @see {@link http://fabricjs.com/fabric-intro-part-2#text}
20119
+ /**
20120
+ * Text class
20121
+ * @see {@link http://fabricjs.com/fabric-intro-part-2#text}
20122
20122
  */
20123
20123
  class FabricText extends StyledText {
20124
20124
  static getDefaults() {
@@ -20129,11 +20129,11 @@ class FabricText extends StyledText {
20129
20129
  }
20130
20130
  constructor(text, options) {
20131
20131
  super();
20132
- /**
20133
- * contains characters bounding boxes
20134
- * This variable is considered to be protected.
20135
- * But for how mixins are implemented right now, we can't leave it private
20136
- * @protected
20132
+ /**
20133
+ * contains characters bounding boxes
20134
+ * This variable is considered to be protected.
20135
+ * But for how mixins are implemented right now, we can't leave it private
20136
+ * @protected
20137
20137
  */
20138
20138
  _defineProperty(this, "__charBounds", []);
20139
20139
  Object.assign(this, FabricText.ownDefaults);
@@ -20150,9 +20150,9 @@ class FabricText extends StyledText {
20150
20150
  this.setCoords();
20151
20151
  }
20152
20152
 
20153
- /**
20154
- * If text has a path, it will add the extra information needed
20155
- * for path and text calculations
20153
+ /**
20154
+ * If text has a path, it will add the extra information needed
20155
+ * for path and text calculations
20156
20156
  */
20157
20157
  setPathInfo() {
20158
20158
  const path = this.path;
@@ -20161,10 +20161,10 @@ class FabricText extends StyledText {
20161
20161
  }
20162
20162
  }
20163
20163
 
20164
- /**
20165
- * @private
20166
- * Divides text into lines of text and lines of graphemes.
20167
- * Uses browser lines when available for pixel-perfect consistency.
20164
+ /**
20165
+ * @private
20166
+ * Divides text into lines of text and lines of graphemes.
20167
+ * Uses browser lines when available for pixel-perfect consistency.
20168
20168
  */
20169
20169
  _splitText() {
20170
20170
  // Check if we have valid browser lines and should use them
@@ -20180,9 +20180,9 @@ class FabricText extends StyledText {
20180
20180
  return newLines;
20181
20181
  }
20182
20182
 
20183
- /**
20184
- * Create TextLinesInfo from browser-extracted lines
20185
- * @private
20183
+ /**
20184
+ * Create TextLinesInfo from browser-extracted lines
20185
+ * @private
20186
20186
  */
20187
20187
  _splitTextFromBrowserLines(browserLines) {
20188
20188
  const lines = [];
@@ -20216,10 +20216,10 @@ class FabricText extends StyledText {
20216
20216
  return result;
20217
20217
  }
20218
20218
 
20219
- /**
20220
- * Initialize or update text dimensions.
20221
- * Updates this.width and this.height with the proper values.
20222
- * Does not return dimensions.
20219
+ /**
20220
+ * Initialize or update text dimensions.
20221
+ * Updates this.width and this.height with the proper values.
20222
+ * Does not return dimensions.
20223
20223
  */
20224
20224
  initDimensions() {
20225
20225
  // Use advanced layout if enabled
@@ -20242,11 +20242,12 @@ class FabricText extends StyledText {
20242
20242
  }
20243
20243
  }
20244
20244
 
20245
- /**
20246
- * Enlarge space boxes and shift the others
20245
+ /**
20246
+ * Enlarge space boxes and shift the others
20247
20247
  */
20248
20248
  enlargeSpaces() {
20249
20249
  let diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;
20250
+ const isRtl = this.direction === 'rtl';
20250
20251
  for (let i = 0, len = this._textLines.length; i < len; i++) {
20251
20252
  if (this.textAlign !== JUSTIFY && (i === len - 1 || this.isEndOfWrapping(i))) {
20252
20253
  continue;
@@ -20257,33 +20258,62 @@ class FabricText extends StyledText {
20257
20258
  if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {
20258
20259
  numberOfSpaces = spaces.length;
20259
20260
  diffSpace = (this.width - currentLineWidth) / numberOfSpaces;
20260
- for (let j = 0; j <= line.length; j++) {
20261
- charBound = this.__charBounds[i][j];
20262
- if (this._reSpaceAndTab.test(line[j])) {
20263
- charBound.width += diffSpace;
20264
- charBound.kernedWidth += diffSpace;
20265
- charBound.left += accumulatedSpace;
20266
- accumulatedSpace += diffSpace;
20267
- } else {
20268
- charBound.left += accumulatedSpace;
20261
+ if (isRtl) {
20262
+ for (let j = 0; j < line.length; j++) {
20263
+ if (this._reSpaceAndTab.test(line[j])) ;
20264
+ }
20265
+
20266
+ // For RTL, we need to work backwards through the visual positions
20267
+ // but still update logical positions correctly
20268
+ let spaceCount = 0;
20269
+ for (let j = 0; j <= line.length; j++) {
20270
+ charBound = this.__charBounds[i][j];
20271
+ if (charBound) {
20272
+ if (this._reSpaceAndTab.test(line[j])) {
20273
+ charBound.width += diffSpace;
20274
+ charBound.kernedWidth += diffSpace;
20275
+ spaceCount++;
20276
+ }
20277
+
20278
+ // For RTL, shift all characters to the right by the total expansion
20279
+ // minus the expansion that comes after this character
20280
+ const remainingSpaces = numberOfSpaces - spaceCount;
20281
+ const shiftAmount = remainingSpaces * diffSpace;
20282
+ charBound.left += shiftAmount;
20283
+ }
20284
+ }
20285
+ } else {
20286
+ // LTR processing (original logic)
20287
+ for (let j = 0; j <= line.length; j++) {
20288
+ charBound = this.__charBounds[i][j];
20289
+ if (charBound) {
20290
+ if (this._reSpaceAndTab.test(line[j])) {
20291
+ charBound.width += diffSpace;
20292
+ charBound.kernedWidth += diffSpace;
20293
+ charBound.left += accumulatedSpace;
20294
+ accumulatedSpace += diffSpace;
20295
+ } else {
20296
+ charBound.left += accumulatedSpace;
20297
+ }
20298
+ }
20269
20299
  }
20270
20300
  }
20271
20301
  }
20272
20302
  }
20273
20303
  }
20274
20304
 
20275
- /**
20276
- * Advanced layout using new text engine (Konva-compatible)
20277
- * @private
20305
+ /**
20306
+ * Advanced layout using new text engine (Konva-compatible)
20307
+ * @private
20278
20308
  */
20279
20309
  _layoutTextAdvanced() {
20280
20310
  const options = this._getAdvancedLayoutOptions();
20281
20311
  return layoutText(options);
20282
20312
  }
20283
20313
 
20284
- /**
20285
- * Get advanced layout options from current text properties
20286
- * @private
20314
+ /**
20315
+ * Get advanced layout options from current text properties
20316
+ * @private
20287
20317
  */
20288
20318
  _getAdvancedLayoutOptions() {
20289
20319
  return {
@@ -20305,9 +20335,9 @@ class FabricText extends StyledText {
20305
20335
  };
20306
20336
  }
20307
20337
 
20308
- /**
20309
- * Map Fabric textAlign to Konva align format
20310
- * @private
20338
+ /**
20339
+ * Map Fabric textAlign to Konva align format
20340
+ * @private
20311
20341
  */
20312
20342
  _mapTextAlignToAlign(textAlign) {
20313
20343
  switch (textAlign) {
@@ -20328,8 +20358,8 @@ class FabricText extends StyledText {
20328
20358
  }
20329
20359
  }
20330
20360
 
20331
- /**
20332
- * Enhanced initDimensions that uses advanced layout when enabled
20361
+ /**
20362
+ * Enhanced initDimensions that uses advanced layout when enabled
20333
20363
  */
20334
20364
  initDimensionsAdvanced() {
20335
20365
  if (!this.enableAdvancedLayout) {
@@ -20346,9 +20376,9 @@ class FabricText extends StyledText {
20346
20376
  this.dirty = true;
20347
20377
  }
20348
20378
 
20349
- /**
20350
- * Convert new layout format to legacy _textLines and __charBounds format
20351
- * @private
20379
+ /**
20380
+ * Convert new layout format to legacy _textLines and __charBounds format
20381
+ * @private
20352
20382
  */
20353
20383
  _convertLayoutToLegacyFormat(layout) {
20354
20384
  this._textLines = layout.lines.map(line => line.graphemes);
@@ -20370,30 +20400,30 @@ class FabricText extends StyledText {
20370
20400
  }
20371
20401
  }
20372
20402
 
20373
- /**
20374
- * Detect if the text line is ended with an hard break
20375
- * text and itext do not have wrapping, return false
20376
- * @return {Boolean}
20403
+ /**
20404
+ * Detect if the text line is ended with an hard break
20405
+ * text and itext do not have wrapping, return false
20406
+ * @return {Boolean}
20377
20407
  */
20378
20408
  isEndOfWrapping(lineIndex) {
20379
20409
  return lineIndex === this._textLines.length - 1;
20380
20410
  }
20381
20411
 
20382
- /**
20383
- * Detect if a line has a linebreak and so we need to account for it when moving
20384
- * and counting style.
20385
- * It return always 1 for text and Itext. Textbox has its own implementation
20386
- * @return Number
20412
+ /**
20413
+ * Detect if a line has a linebreak and so we need to account for it when moving
20414
+ * and counting style.
20415
+ * It return always 1 for text and Itext. Textbox has its own implementation
20416
+ * @return Number
20387
20417
  */
20388
20418
 
20389
20419
  missingNewlineOffset(_lineIndex) {
20390
20420
  return 1;
20391
20421
  }
20392
20422
 
20393
- /**
20394
- * Returns 2d representation (lineIndex and charIndex) of cursor
20395
- * @param {Number} selectionStart
20396
- * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
20423
+ /**
20424
+ * Returns 2d representation (lineIndex and charIndex) of cursor
20425
+ * @param {Number} selectionStart
20426
+ * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
20397
20427
  */
20398
20428
  get2DCursorLocation(selectionStart, skipWrapping) {
20399
20429
  const lines = skipWrapping ? this._unwrappedTextLines : this._textLines;
@@ -20413,24 +20443,24 @@ class FabricText extends StyledText {
20413
20443
  };
20414
20444
  }
20415
20445
 
20416
- /**
20417
- * Returns string representation of an instance
20418
- * @return {String} String representation of text object
20446
+ /**
20447
+ * Returns string representation of an instance
20448
+ * @return {String} String representation of text object
20419
20449
  */
20420
20450
  toString() {
20421
20451
  return `#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`;
20422
20452
  }
20423
20453
 
20424
- /**
20425
- * Return the dimension and the zoom level needed to create a cache canvas
20426
- * big enough to host the object to be cached.
20427
- * @private
20428
- * @param {Object} dim.x width of object to be cached
20429
- * @param {Object} dim.y height of object to be cached
20430
- * @return {Object}.width width of canvas
20431
- * @return {Object}.height height of canvas
20432
- * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
20433
- * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
20454
+ /**
20455
+ * Return the dimension and the zoom level needed to create a cache canvas
20456
+ * big enough to host the object to be cached.
20457
+ * @private
20458
+ * @param {Object} dim.x width of object to be cached
20459
+ * @param {Object} dim.y height of object to be cached
20460
+ * @return {Object}.width width of canvas
20461
+ * @return {Object}.height height of canvas
20462
+ * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
20463
+ * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
20434
20464
  */
20435
20465
  _getCacheCanvasDimensions() {
20436
20466
  const dims = super._getCacheCanvasDimensions();
@@ -20440,9 +20470,9 @@ class FabricText extends StyledText {
20440
20470
  return dims;
20441
20471
  }
20442
20472
 
20443
- /**
20444
- * @private
20445
- * @param {CanvasRenderingContext2D} ctx Context to render on
20473
+ /**
20474
+ * @private
20475
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20446
20476
  */
20447
20477
  _render(ctx) {
20448
20478
  const path = this.path;
@@ -20455,9 +20485,9 @@ class FabricText extends StyledText {
20455
20485
  this._renderTextDecoration(ctx, 'linethrough');
20456
20486
  }
20457
20487
 
20458
- /**
20459
- * @private
20460
- * @param {CanvasRenderingContext2D} ctx Context to render on
20488
+ /**
20489
+ * @private
20490
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20461
20491
  */
20462
20492
  _renderText(ctx) {
20463
20493
  // Skip text rendering if in overlay editing mode
@@ -20473,15 +20503,15 @@ class FabricText extends StyledText {
20473
20503
  }
20474
20504
  }
20475
20505
 
20476
- /**
20477
- * Set the font parameter of the context with the object properties or with charStyle
20478
- * @private
20479
- * @param {CanvasRenderingContext2D} ctx Context to render on
20480
- * @param {Object} [charStyle] object with font style properties
20481
- * @param {String} [charStyle.fontFamily] Font Family
20482
- * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )
20483
- * @param {String} [charStyle.fontWeight] Font weight
20484
- * @param {String} [charStyle.fontStyle] Font style (italic|normal)
20506
+ /**
20507
+ * Set the font parameter of the context with the object properties or with charStyle
20508
+ * @private
20509
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20510
+ * @param {Object} [charStyle] object with font style properties
20511
+ * @param {String} [charStyle.fontFamily] Font Family
20512
+ * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )
20513
+ * @param {String} [charStyle.fontWeight] Font weight
20514
+ * @param {String} [charStyle.fontStyle] Font style (italic|normal)
20485
20515
  */
20486
20516
  _setTextStyles(ctx, charStyle, forMeasuring) {
20487
20517
  ctx.textBaseline = 'alphabetic';
@@ -20501,11 +20531,11 @@ class FabricText extends StyledText {
20501
20531
  ctx.font = this._getFontDeclaration(charStyle, forMeasuring);
20502
20532
  }
20503
20533
 
20504
- /**
20505
- * calculate and return the text Width measuring each line.
20506
- * @private
20507
- * @param {CanvasRenderingContext2D} ctx Context to render on
20508
- * @return {Number} Maximum width of Text object
20534
+ /**
20535
+ * calculate and return the text Width measuring each line.
20536
+ * @private
20537
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20538
+ * @return {Number} Maximum width of Text object
20509
20539
  */
20510
20540
  calcTextWidth() {
20511
20541
  let maxWidth = this.getLineWidth(0);
@@ -20518,23 +20548,23 @@ class FabricText extends StyledText {
20518
20548
  return maxWidth;
20519
20549
  }
20520
20550
 
20521
- /**
20522
- * @private
20523
- * @param {String} method Method name ("fillText" or "strokeText")
20524
- * @param {CanvasRenderingContext2D} ctx Context to render on
20525
- * @param {String} line Text to render
20526
- * @param {Number} left Left position of text
20527
- * @param {Number} top Top position of text
20528
- * @param {Number} lineIndex Index of a line in a text
20551
+ /**
20552
+ * @private
20553
+ * @param {String} method Method name ("fillText" or "strokeText")
20554
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20555
+ * @param {String} line Text to render
20556
+ * @param {Number} left Left position of text
20557
+ * @param {Number} top Top position of text
20558
+ * @param {Number} lineIndex Index of a line in a text
20529
20559
  */
20530
20560
  _renderTextLine(method, ctx, line, left, top, lineIndex) {
20531
20561
  this._renderChars(method, ctx, line, left, top, lineIndex);
20532
20562
  }
20533
20563
 
20534
- /**
20535
- * Renders the text background for lines, taking care of style
20536
- * @private
20537
- * @param {CanvasRenderingContext2D} ctx Context to render on
20564
+ /**
20565
+ * Renders the text background for lines, taking care of style
20566
+ * @private
20567
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20538
20568
  */
20539
20569
  _renderTextLinesBackground(ctx) {
20540
20570
  if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {
@@ -20597,15 +20627,15 @@ class FabricText extends StyledText {
20597
20627
  this._removeShadow(ctx);
20598
20628
  }
20599
20629
 
20600
- /**
20601
- * measure and return the width of a single character.
20602
- * possibly overridden to accommodate different measure logic or
20603
- * to hook some external lib for character measurement
20604
- * @private
20605
- * @param {String} _char, char to be measured
20606
- * @param {Object} charStyle style of char to be measured
20607
- * @param {String} [previousChar] previous char
20608
- * @param {Object} [prevCharStyle] style of previous char
20630
+ /**
20631
+ * measure and return the width of a single character.
20632
+ * possibly overridden to accommodate different measure logic or
20633
+ * to hook some external lib for character measurement
20634
+ * @private
20635
+ * @param {String} _char, char to be measured
20636
+ * @param {Object} charStyle style of char to be measured
20637
+ * @param {String} [previousChar] previous char
20638
+ * @param {Object} [prevCharStyle] style of previous char
20609
20639
  */
20610
20640
  _measureChar(_char, charStyle, previousChar, prevCharStyle) {
20611
20641
  const fontCache = cache.getFontCache(charStyle),
@@ -20650,19 +20680,19 @@ class FabricText extends StyledText {
20650
20680
  };
20651
20681
  }
20652
20682
 
20653
- /**
20654
- * Computes height of character at given position
20655
- * @param {Number} line the line index number
20656
- * @param {Number} _char the character index number
20657
- * @return {Number} fontSize of the character
20683
+ /**
20684
+ * Computes height of character at given position
20685
+ * @param {Number} line the line index number
20686
+ * @param {Number} _char the character index number
20687
+ * @return {Number} fontSize of the character
20658
20688
  */
20659
20689
  getHeightOfChar(line, _char) {
20660
20690
  return this.getValueOfPropertyAt(line, _char, 'fontSize');
20661
20691
  }
20662
20692
 
20663
- /**
20664
- * measure a text line measuring all characters.
20665
- * @param {Number} lineIndex line number
20693
+ /**
20694
+ * measure a text line measuring all characters.
20695
+ * @param {Number} lineIndex line number
20666
20696
  */
20667
20697
  measureLine(lineIndex) {
20668
20698
  const lineInfo = this._measureLine(lineIndex);
@@ -20675,11 +20705,11 @@ class FabricText extends StyledText {
20675
20705
  return lineInfo;
20676
20706
  }
20677
20707
 
20678
- /**
20679
- * measure every grapheme of a line, populating __charBounds
20680
- * @param {Number} lineIndex
20681
- * @return {Object} object.width total width of characters
20682
- * @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs
20708
+ /**
20709
+ * measure every grapheme of a line, populating __charBounds
20710
+ * @param {Number} lineIndex
20711
+ * @return {Object} object.width total width of characters
20712
+ * @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs
20683
20713
  */
20684
20714
  _measureLine(lineIndex) {
20685
20715
  let width = 0,
@@ -20742,13 +20772,13 @@ class FabricText extends StyledText {
20742
20772
  };
20743
20773
  }
20744
20774
 
20745
- /**
20746
- * Calculate the angle and the left,top position of the char that follow a path.
20747
- * It appends it to graphemeInfo to be reused later at rendering
20748
- * @private
20749
- * @param {Number} positionInPath to be measured
20750
- * @param {GraphemeBBox} graphemeInfo current grapheme box information
20751
- * @param {Object} startingPoint position of the point
20775
+ /**
20776
+ * Calculate the angle and the left,top position of the char that follow a path.
20777
+ * It appends it to graphemeInfo to be reused later at rendering
20778
+ * @private
20779
+ * @param {Number} positionInPath to be measured
20780
+ * @param {GraphemeBBox} graphemeInfo current grapheme box information
20781
+ * @param {Object} startingPoint position of the point
20752
20782
  */
20753
20783
  _setGraphemeOnPath(positionInPath, graphemeInfo) {
20754
20784
  const centerPosition = positionInPath + graphemeInfo.kernedWidth / 2,
@@ -20761,13 +20791,13 @@ class FabricText extends StyledText {
20761
20791
  graphemeInfo.angle = info.angle + (this.pathSide === RIGHT ? Math.PI : 0);
20762
20792
  }
20763
20793
 
20764
- /**
20765
- *
20766
- * @param {String} grapheme to be measured
20767
- * @param {Number} lineIndex index of the line where the char is
20768
- * @param {Number} charIndex position in the line
20769
- * @param {String} [prevGrapheme] character preceding the one to be measured
20770
- * @returns {GraphemeBBox} grapheme bbox
20794
+ /**
20795
+ *
20796
+ * @param {String} grapheme to be measured
20797
+ * @param {Number} lineIndex index of the line where the char is
20798
+ * @param {Number} charIndex position in the line
20799
+ * @param {String} [prevGrapheme] character preceding the one to be measured
20800
+ * @returns {GraphemeBBox} grapheme bbox
20771
20801
  */
20772
20802
  _getGraphemeBox(grapheme, lineIndex, charIndex, prevGrapheme, skipLeft) {
20773
20803
  const style = this.getCompleteStyleDeclaration(lineIndex, charIndex),
@@ -20795,10 +20825,10 @@ class FabricText extends StyledText {
20795
20825
  return box;
20796
20826
  }
20797
20827
 
20798
- /**
20799
- * Calculate height of line at 'lineIndex'
20800
- * @param {Number} lineIndex index of line to calculate
20801
- * @return {Number}
20828
+ /**
20829
+ * Calculate height of line at 'lineIndex'
20830
+ * @param {Number} lineIndex index of line to calculate
20831
+ * @return {Number}
20802
20832
  */
20803
20833
  getHeightOfLine(lineIndex) {
20804
20834
  if (this.__lineHeights[lineIndex]) {
@@ -20814,8 +20844,8 @@ class FabricText extends StyledText {
20814
20844
  return this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult;
20815
20845
  }
20816
20846
 
20817
- /**
20818
- * Calculate text box height
20847
+ /**
20848
+ * Calculate text box height
20819
20849
  */
20820
20850
  calcTextHeight() {
20821
20851
  let lineHeight,
@@ -20827,26 +20857,26 @@ class FabricText extends StyledText {
20827
20857
  return height;
20828
20858
  }
20829
20859
 
20830
- /**
20831
- * @private
20832
- * @return {Number} Left offset
20860
+ /**
20861
+ * @private
20862
+ * @return {Number} Left offset
20833
20863
  */
20834
20864
  _getLeftOffset() {
20835
20865
  return this.direction === 'ltr' ? -this.width / 2 : this.width / 2;
20836
20866
  }
20837
20867
 
20838
- /**
20839
- * @private
20840
- * @return {Number} Top offset
20868
+ /**
20869
+ * @private
20870
+ * @return {Number} Top offset
20841
20871
  */
20842
20872
  _getTopOffset() {
20843
20873
  return -this.height / 2;
20844
20874
  }
20845
20875
 
20846
- /**
20847
- * @private
20848
- * @param {CanvasRenderingContext2D} ctx Context to render on
20849
- * @param {String} method Method name ("fillText" or "strokeText")
20876
+ /**
20877
+ * @private
20878
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20879
+ * @param {String} method Method name ("fillText" or "strokeText")
20850
20880
  */
20851
20881
  _renderTextCommon(ctx, method) {
20852
20882
  ctx.save();
@@ -20863,9 +20893,9 @@ class FabricText extends StyledText {
20863
20893
  ctx.restore();
20864
20894
  }
20865
20895
 
20866
- /**
20867
- * @private
20868
- * @param {CanvasRenderingContext2D} ctx Context to render on
20896
+ /**
20897
+ * @private
20898
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20869
20899
  */
20870
20900
  _renderTextFill(ctx) {
20871
20901
  if (!this.fill && !this.styleHas(FILL)) {
@@ -20874,9 +20904,9 @@ class FabricText extends StyledText {
20874
20904
  this._renderTextCommon(ctx, 'fillText');
20875
20905
  }
20876
20906
 
20877
- /**
20878
- * @private
20879
- * @param {CanvasRenderingContext2D} ctx Context to render on
20907
+ /**
20908
+ * @private
20909
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20880
20910
  */
20881
20911
  _renderTextStroke(ctx) {
20882
20912
  if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {
@@ -20893,14 +20923,14 @@ class FabricText extends StyledText {
20893
20923
  ctx.restore();
20894
20924
  }
20895
20925
 
20896
- /**
20897
- * @private
20898
- * @param {String} method fillText or strokeText.
20899
- * @param {CanvasRenderingContext2D} ctx Context to render on
20900
- * @param {Array} line Content of the line, splitted in an array by grapheme
20901
- * @param {Number} left
20902
- * @param {Number} top
20903
- * @param {Number} lineIndex
20926
+ /**
20927
+ * @private
20928
+ * @param {String} method fillText or strokeText.
20929
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20930
+ * @param {Array} line Content of the line, splitted in an array by grapheme
20931
+ * @param {Number} left
20932
+ * @param {Number} top
20933
+ * @param {Number} lineIndex
20904
20934
  */
20905
20935
  _renderChars(method, ctx, line, left, top, lineIndex) {
20906
20936
  const lineHeight = this.getHeightOfLine(lineIndex),
@@ -20923,7 +20953,15 @@ class FabricText extends StyledText {
20923
20953
  if (currentDirection !== this.direction) {
20924
20954
  ctx.canvas.setAttribute('dir', isLtr ? 'ltr' : 'rtl');
20925
20955
  ctx.direction = isLtr ? 'ltr' : 'rtl';
20926
- ctx.textAlign = isLtr ? LEFT : RIGHT;
20956
+
20957
+ // For justify alignments, we need to set the correct canvas text alignment
20958
+ // This is crucial for RTL text to render in the correct order
20959
+ if (isJustify) {
20960
+ // Justify uses LEFT alignment as a base, letting the character positioning handle justification
20961
+ ctx.textAlign = LEFT;
20962
+ } else {
20963
+ ctx.textAlign = isLtr ? LEFT : RIGHT;
20964
+ }
20927
20965
  }
20928
20966
  top -= lineHeight * this._fontSizeFraction / this.lineHeight;
20929
20967
  if (shortCut) {
@@ -20974,16 +21012,16 @@ class FabricText extends StyledText {
20974
21012
  ctx.restore();
20975
21013
  }
20976
21014
 
20977
- /**
20978
- * This function try to patch the missing gradientTransform on canvas gradients.
20979
- * transforming a context to transform the gradient, is going to transform the stroke too.
20980
- * we want to transform the gradient but not the stroke operation, so we create
20981
- * a transformed gradient on a pattern and then we use the pattern instead of the gradient.
20982
- * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
20983
- * is limited.
20984
- * @private
20985
- * @param {TFiller} filler a fabric gradient instance
20986
- * @return {CanvasPattern} a pattern to use as fill/stroke style
21015
+ /**
21016
+ * This function try to patch the missing gradientTransform on canvas gradients.
21017
+ * transforming a context to transform the gradient, is going to transform the stroke too.
21018
+ * we want to transform the gradient but not the stroke operation, so we create
21019
+ * a transformed gradient on a pattern and then we use the pattern instead of the gradient.
21020
+ * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
21021
+ * is limited.
21022
+ * @private
21023
+ * @param {TFiller} filler a fabric gradient instance
21024
+ * @return {CanvasPattern} a pattern to use as fill/stroke style
20987
21025
  */
20988
21026
  _applyPatternGradientTransformText(filler) {
20989
21027
  // TODO: verify compatibility with strokeUniform
@@ -21039,12 +21077,12 @@ class FabricText extends StyledText {
21039
21077
  };
21040
21078
  }
21041
21079
 
21042
- /**
21043
- * This function prepare the canvas for a stroke style, and stroke and strokeWidth
21044
- * need to be sent in as defined
21045
- * @param {CanvasRenderingContext2D} ctx
21046
- * @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined
21047
- * @returns
21080
+ /**
21081
+ * This function prepare the canvas for a stroke style, and stroke and strokeWidth
21082
+ * need to be sent in as defined
21083
+ * @param {CanvasRenderingContext2D} ctx
21084
+ * @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined
21085
+ * @returns
21048
21086
  */
21049
21087
  _setStrokeStyles(ctx, _ref) {
21050
21088
  let {
@@ -21059,12 +21097,12 @@ class FabricText extends StyledText {
21059
21097
  return this.handleFiller(ctx, 'strokeStyle', stroke);
21060
21098
  }
21061
21099
 
21062
- /**
21063
- * This function prepare the canvas for a ill style, and fill
21064
- * need to be sent in as defined
21065
- * @param {CanvasRenderingContext2D} ctx
21066
- * @param {CompleteTextStyleDeclaration} style with ill defined
21067
- * @returns
21100
+ /**
21101
+ * This function prepare the canvas for a ill style, and fill
21102
+ * need to be sent in as defined
21103
+ * @param {CanvasRenderingContext2D} ctx
21104
+ * @param {CompleteTextStyleDeclaration} style with ill defined
21105
+ * @returns
21068
21106
  */
21069
21107
  _setFillStyles(ctx, _ref2) {
21070
21108
  let {
@@ -21073,16 +21111,16 @@ class FabricText extends StyledText {
21073
21111
  return this.handleFiller(ctx, 'fillStyle', fill);
21074
21112
  }
21075
21113
 
21076
- /**
21077
- * @private
21078
- * @param {String} method
21079
- * @param {CanvasRenderingContext2D} ctx Context to render on
21080
- * @param {Number} lineIndex
21081
- * @param {Number} charIndex
21082
- * @param {String} _char
21083
- * @param {Number} left Left coordinate
21084
- * @param {Number} top Top coordinate
21085
- * @param {Number} lineHeight Height of the line
21114
+ /**
21115
+ * @private
21116
+ * @param {String} method
21117
+ * @param {CanvasRenderingContext2D} ctx Context to render on
21118
+ * @param {Number} lineIndex
21119
+ * @param {Number} charIndex
21120
+ * @param {String} _char
21121
+ * @param {Number} left Left coordinate
21122
+ * @param {Number} top Top coordinate
21123
+ * @param {Number} lineHeight Height of the line
21086
21124
  */
21087
21125
  _renderChar(method, ctx, lineIndex, charIndex, _char, left, top) {
21088
21126
  const decl = this._getStyleDeclaration(lineIndex, charIndex),
@@ -21111,30 +21149,30 @@ class FabricText extends StyledText {
21111
21149
  ctx.restore();
21112
21150
  }
21113
21151
 
21114
- /**
21115
- * Turns the character into a 'superior figure' (i.e. 'superscript')
21116
- * @param {Number} start selection start
21117
- * @param {Number} end selection end
21152
+ /**
21153
+ * Turns the character into a 'superior figure' (i.e. 'superscript')
21154
+ * @param {Number} start selection start
21155
+ * @param {Number} end selection end
21118
21156
  */
21119
21157
  setSuperscript(start, end) {
21120
21158
  this._setScript(start, end, this.superscript);
21121
21159
  }
21122
21160
 
21123
- /**
21124
- * Turns the character into an 'inferior figure' (i.e. 'subscript')
21125
- * @param {Number} start selection start
21126
- * @param {Number} end selection end
21161
+ /**
21162
+ * Turns the character into an 'inferior figure' (i.e. 'subscript')
21163
+ * @param {Number} start selection start
21164
+ * @param {Number} end selection end
21127
21165
  */
21128
21166
  setSubscript(start, end) {
21129
21167
  this._setScript(start, end, this.subscript);
21130
21168
  }
21131
21169
 
21132
- /**
21133
- * Applies 'schema' at given position
21134
- * @private
21135
- * @param {Number} start selection start
21136
- * @param {Number} end selection end
21137
- * @param {Number} schema
21170
+ /**
21171
+ * Applies 'schema' at given position
21172
+ * @private
21173
+ * @param {Number} start selection start
21174
+ * @param {Number} end selection end
21175
+ * @param {Number} schema
21138
21176
  */
21139
21177
  _setScript(start, end, schema) {
21140
21178
  const loc = this.get2DCursorLocation(start, true),
@@ -21147,10 +21185,10 @@ class FabricText extends StyledText {
21147
21185
  this.setSelectionStyles(style, start, end);
21148
21186
  }
21149
21187
 
21150
- /**
21151
- * @private
21152
- * @param {Number} lineIndex index text line
21153
- * @return {Number} Line left offset
21188
+ /**
21189
+ * @private
21190
+ * @param {Number} lineIndex index text line
21191
+ * @return {Number} Line left offset
21154
21192
  */
21155
21193
  _getLineLeftOffset(lineIndex) {
21156
21194
  const lineWidth = this.getLineWidth(lineIndex),
@@ -21159,9 +21197,21 @@ class FabricText extends StyledText {
21159
21197
  direction = this.direction,
21160
21198
  isEndOfWrapping = this.isEndOfWrapping(lineIndex);
21161
21199
  let leftOffset = 0;
21162
- if (textAlign === JUSTIFY || textAlign === JUSTIFY_CENTER && !isEndOfWrapping || textAlign === JUSTIFY_RIGHT && !isEndOfWrapping || textAlign === JUSTIFY_LEFT && !isEndOfWrapping) {
21163
- return 0;
21200
+
21201
+ // Handle justify alignments (excluding last lines and wrapped line ends)
21202
+ const isJustifyLine = textAlign === JUSTIFY || textAlign === JUSTIFY_CENTER && !isEndOfWrapping || textAlign === JUSTIFY_RIGHT && !isEndOfWrapping || textAlign === JUSTIFY_LEFT && !isEndOfWrapping;
21203
+ if (isJustifyLine) {
21204
+ // Justify lines should start at the left edge for LTR and right edge for RTL
21205
+ // The space distribution is handled by enlargeSpaces()
21206
+ if (direction === 'rtl') {
21207
+ // For RTL justify, we need to account for the line being right-aligned
21208
+ return 0;
21209
+ } else {
21210
+ return 0;
21211
+ }
21164
21212
  }
21213
+
21214
+ // Handle non-justify alignments
21165
21215
  if (textAlign === CENTER) {
21166
21216
  leftOffset = lineDiff / 2;
21167
21217
  }
@@ -21174,6 +21224,8 @@ class FabricText extends StyledText {
21174
21224
  if (textAlign === JUSTIFY_RIGHT) {
21175
21225
  leftOffset = lineDiff;
21176
21226
  }
21227
+
21228
+ // Apply RTL adjustments for non-justify alignments
21177
21229
  if (direction === 'rtl') {
21178
21230
  if (textAlign === RIGHT || textAlign === JUSTIFY || textAlign === JUSTIFY_RIGHT) {
21179
21231
  leftOffset = 0;
@@ -21186,8 +21238,8 @@ class FabricText extends StyledText {
21186
21238
  return leftOffset;
21187
21239
  }
21188
21240
 
21189
- /**
21190
- * @private
21241
+ /**
21242
+ * @private
21191
21243
  */
21192
21244
  _clearCache() {
21193
21245
  this._forceClearCache = false;
@@ -21196,12 +21248,12 @@ class FabricText extends StyledText {
21196
21248
  this.__charBounds = [];
21197
21249
  }
21198
21250
 
21199
- /**
21200
- * Measure a single line given its index. Used to calculate the initial
21201
- * text bounding box. The values are calculated and stored in __lineWidths cache.
21202
- * @private
21203
- * @param {Number} lineIndex line number
21204
- * @return {Number} Line width
21251
+ /**
21252
+ * Measure a single line given its index. Used to calculate the initial
21253
+ * text bounding box. The values are calculated and stored in __lineWidths cache.
21254
+ * @private
21255
+ * @param {Number} lineIndex line number
21256
+ * @return {Number} Line width
21205
21257
  */
21206
21258
  getLineWidth(lineIndex) {
21207
21259
  if (this.__lineWidths[lineIndex] !== undefined) {
@@ -21220,12 +21272,12 @@ class FabricText extends StyledText {
21220
21272
  return 0;
21221
21273
  }
21222
21274
 
21223
- /**
21224
- * Retrieves the value of property at given character position
21225
- * @param {Number} lineIndex the line number
21226
- * @param {Number} charIndex the character number
21227
- * @param {String} property the property name
21228
- * @returns the value of 'property'
21275
+ /**
21276
+ * Retrieves the value of property at given character position
21277
+ * @param {Number} lineIndex the line number
21278
+ * @param {Number} charIndex the character number
21279
+ * @param {String} property the property name
21280
+ * @returns the value of 'property'
21229
21281
  */
21230
21282
  getValueOfPropertyAt(lineIndex, charIndex, property) {
21231
21283
  var _charStyle$property;
@@ -21233,9 +21285,9 @@ class FabricText extends StyledText {
21233
21285
  return (_charStyle$property = charStyle[property]) !== null && _charStyle$property !== void 0 ? _charStyle$property : this[property];
21234
21286
  }
21235
21287
 
21236
- /**
21237
- * @private
21238
- * @param {CanvasRenderingContext2D} ctx Context to render on
21288
+ /**
21289
+ * @private
21290
+ * @param {CanvasRenderingContext2D} ctx Context to render on
21239
21291
  */
21240
21292
  _renderTextDecoration(ctx, type) {
21241
21293
  if (!this[type] && !this.styleHas(type)) {
@@ -21319,10 +21371,10 @@ class FabricText extends StyledText {
21319
21371
  this._removeShadow(ctx);
21320
21372
  }
21321
21373
 
21322
- /**
21323
- * return font declaration string for canvas context
21324
- * @param {Object} [styleObject] object
21325
- * @returns {String} font declaration formatted for canvas context.
21374
+ /**
21375
+ * return font declaration string for canvas context
21376
+ * @param {Object} [styleObject] object
21377
+ * @returns {String} font declaration formatted for canvas context.
21326
21378
  */
21327
21379
  _getFontDeclaration() {
21328
21380
  let {
@@ -21336,9 +21388,9 @@ class FabricText extends StyledText {
21336
21388
  return [fontStyle, fontWeight, `${forMeasuring ? this.CACHE_FONT_SIZE : fontSize}px`, parsedFontFamily].join(' ');
21337
21389
  }
21338
21390
 
21339
- /**
21340
- * Renders text instance on a specified context
21341
- * @param {CanvasRenderingContext2D} ctx Context to render on
21391
+ /**
21392
+ * Renders text instance on a specified context
21393
+ * @param {CanvasRenderingContext2D} ctx Context to render on
21342
21394
  */
21343
21395
  render(ctx) {
21344
21396
  if (!this.visible) {
@@ -21353,22 +21405,22 @@ class FabricText extends StyledText {
21353
21405
  super.render(ctx);
21354
21406
  }
21355
21407
 
21356
- /**
21357
- * Override this method to customize grapheme splitting
21358
- * @todo the util `graphemeSplit` needs to be injectable in some way.
21359
- * is more comfortable to inject the correct util rather than having to override text
21360
- * in the middle of the prototype chain
21361
- * @param {string} value
21362
- * @returns {string[]} array of graphemes
21408
+ /**
21409
+ * Override this method to customize grapheme splitting
21410
+ * @todo the util `graphemeSplit` needs to be injectable in some way.
21411
+ * is more comfortable to inject the correct util rather than having to override text
21412
+ * in the middle of the prototype chain
21413
+ * @param {string} value
21414
+ * @returns {string[]} array of graphemes
21363
21415
  */
21364
21416
  graphemeSplit(value) {
21365
21417
  return graphemeSplit(value);
21366
21418
  }
21367
21419
 
21368
- /**
21369
- * Returns the text as an array of lines.
21370
- * @param {String} text text to split
21371
- * @returns Lines in the text
21420
+ /**
21421
+ * Returns the text as an array of lines.
21422
+ * @param {String} text text to split
21423
+ * @returns Lines in the text
21372
21424
  */
21373
21425
  _splitTextIntoLines(text) {
21374
21426
  const lines = text.split(this._reNewline),
@@ -21388,10 +21440,10 @@ class FabricText extends StyledText {
21388
21440
  };
21389
21441
  }
21390
21442
 
21391
- /**
21392
- * Returns object representation of an instance
21393
- * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
21394
- * @return {Object} Object representation of an instance
21443
+ /**
21444
+ * Returns object representation of an instance
21445
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
21446
+ * @return {Object} Object representation of an instance
21395
21447
  */
21396
21448
  toObject() {
21397
21449
  let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -21434,23 +21486,23 @@ class FabricText extends StyledText {
21434
21486
  return this;
21435
21487
  }
21436
21488
 
21437
- /**
21438
- * Returns complexity of an instance
21439
- * @return {Number} complexity
21489
+ /**
21490
+ * Returns complexity of an instance
21491
+ * @return {Number} complexity
21440
21492
  */
21441
21493
  complexity() {
21442
21494
  return 1;
21443
21495
  }
21444
21496
 
21445
- /**
21446
- * List of generic font families
21447
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name
21497
+ /**
21498
+ * List of generic font families
21499
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name
21448
21500
  */
21449
21501
 
21450
- /**
21451
- * Returns FabricText instance from an SVG element (<b>not yet implemented</b>)
21452
- * @param {HTMLElement} element Element to parse
21453
- * @param {Object} [options] Options object
21502
+ /**
21503
+ * Returns FabricText instance from an SVG element (<b>not yet implemented</b>)
21504
+ * @param {HTMLElement} element Element to parse
21505
+ * @param {Object} [options] Options object
21454
21506
  */
21455
21507
  static async fromElement(element, options, cssRules) {
21456
21508
  const parsedAttributes = parseAttributes(element, FabricText.ATTRIBUTE_NAMES, cssRules);
@@ -21489,10 +21541,10 @@ class FabricText extends StyledText {
21489
21541
  scaledDiff = lineHeightDiff * textHeightScaleFactor,
21490
21542
  textHeight = text.getScaledHeight() + scaledDiff;
21491
21543
  let offX = 0;
21492
- /*
21493
- Adjust positioning:
21494
- x/y attributes in SVG correspond to the bottom-left corner of text bounding box
21495
- fabric output by default at top, left.
21544
+ /*
21545
+ Adjust positioning:
21546
+ x/y attributes in SVG correspond to the bottom-left corner of text bounding box
21547
+ fabric output by default at top, left.
21496
21548
  */
21497
21549
  if (textAnchor === CENTER) {
21498
21550
  offX = text.getScaledWidth() / 2;
@@ -21510,10 +21562,10 @@ class FabricText extends StyledText {
21510
21562
 
21511
21563
  /* _FROM_SVG_END_ */
21512
21564
 
21513
- /**
21514
- * Returns FabricText instance from an object representation
21515
- * @param {Object} object plain js Object to create an instance from
21516
- * @returns {Promise<FabricText>}
21565
+ /**
21566
+ * Returns FabricText instance from an object representation
21567
+ * @param {Object} object plain js Object to create an instance from
21568
+ * @returns {Promise<FabricText>}
21517
21569
  */
21518
21570
  static fromObject(object) {
21519
21571
  return this._fromObject({
@@ -21524,10 +21576,10 @@ class FabricText extends StyledText {
21524
21576
  });
21525
21577
  }
21526
21578
  }
21527
- /**
21528
- * Properties that requires a text layout recalculation when changed
21529
- * @type string[]
21530
- * @protected
21579
+ /**
21580
+ * Properties that requires a text layout recalculation when changed
21581
+ * @type string[]
21582
+ * @protected
21531
21583
  */
21532
21584
  _defineProperty(FabricText, "textLayoutProperties", textLayoutProperties);
21533
21585
  _defineProperty(FabricText, "cacheProperties", [...cacheProperties, ...additionalProps]);
@@ -21535,9 +21587,9 @@ _defineProperty(FabricText, "ownDefaults", textDefaultValues);
21535
21587
  _defineProperty(FabricText, "type", 'Text');
21536
21588
  _defineProperty(FabricText, "genericFonts", ['serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui', 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong']);
21537
21589
  /* _FROM_SVG_START_ */
21538
- /**
21539
- * List of attribute names to account for when parsing SVG element (used by {@link FabricText.fromElement})
21540
- * @see: http://www.w3.org/TR/SVG/text.html#TextElement
21590
+ /**
21591
+ * List of attribute names to account for when parsing SVG element (used by {@link FabricText.fromElement})
21592
+ * @see: http://www.w3.org/TR/SVG/text.html#TextElement
21541
21593
  */
21542
21594
  _defineProperty(FabricText, "ATTRIBUTE_NAMES", SHARED_ATTRIBUTES.concat('x', 'y', 'dx', 'dy', 'font-family', 'font-style', 'font-weight', 'font-size', 'letter-spacing', 'text-decoration', 'text-anchor'));
21543
21595
  applyMixins(FabricText, [TextSVGExportMixin]);
@@ -21924,8 +21976,8 @@ class OverlayEditor {
21924
21976
  // We don't need to save/restore them here as it would conflict with IText's restoration
21925
21977
  }
21926
21978
 
21927
- /**
21928
- * Get the container element for the overlay (parent of upperCanvasEl)
21979
+ /**
21980
+ * Get the container element for the overlay (parent of upperCanvasEl)
21929
21981
  */
21930
21982
  getCanvasContainer() {
21931
21983
  const upperCanvas = this.canvas.upperCanvasEl;
@@ -21939,8 +21991,8 @@ class OverlayEditor {
21939
21991
  return container;
21940
21992
  }
21941
21993
 
21942
- /**
21943
- * Create the overlay DOM structure
21994
+ /**
21995
+ * Create the overlay DOM structure
21944
21996
  */
21945
21997
  createOverlayDOM() {
21946
21998
  // Host div for positioning and overflow control
@@ -21960,8 +22012,12 @@ class OverlayEditor {
21960
22012
  this.textarea.style.pointerEvents = 'auto';
21961
22013
  // Set appropriate unicodeBidi based on content and direction
21962
22014
  const hasArabicText = /[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(this.target.text || '');
22015
+ const hasLatinText = /[a-zA-Z]/.test(this.target.text || '');
21963
22016
  const isLTRDirection = this.target.direction === 'ltr';
21964
- if (hasArabicText && isLTRDirection) {
22017
+ if (hasArabicText && hasLatinText && isLTRDirection) {
22018
+ // For mixed Arabic/Latin text in LTR mode, use embed for consistent line wrapping
22019
+ this.textarea.style.unicodeBidi = 'embed';
22020
+ } else if (hasArabicText && isLTRDirection) {
21965
22021
  // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction
21966
22022
  this.textarea.style.unicodeBidi = 'embed';
21967
22023
  } else {
@@ -21991,8 +22047,8 @@ class OverlayEditor {
21991
22047
  document.body.appendChild(this.hostDiv);
21992
22048
  }
21993
22049
 
21994
- /**
21995
- * Attach all event listeners
22050
+ /**
22051
+ * Attach all event listeners
21996
22052
  */
21997
22053
  attachEventListeners() {
21998
22054
  // Textarea events
@@ -22012,8 +22068,8 @@ class OverlayEditor {
22012
22068
  this.setupViewportChangeDetection();
22013
22069
  }
22014
22070
 
22015
- /**
22016
- * Remove all event listeners
22071
+ /**
22072
+ * Remove all event listeners
22017
22073
  */
22018
22074
  removeEventListeners() {
22019
22075
  this.textarea.removeEventListener('input', this.boundHandlers.onInput);
@@ -22030,16 +22086,16 @@ class OverlayEditor {
22030
22086
  this.restoreViewportChangeDetection();
22031
22087
  }
22032
22088
 
22033
- /**
22034
- * Simple method to refresh positioning when canvas changes
22089
+ /**
22090
+ * Simple method to refresh positioning when canvas changes
22035
22091
  */
22036
22092
  updatePosition() {
22037
22093
  this.applyOverlayStyle();
22038
22094
  }
22039
22095
 
22040
- /**
22041
- * Update the Fabric object bounds to match current textarea size
22042
- * This ensures Fabric.js selection controls follow the growing textbox
22096
+ /**
22097
+ * Update the Fabric object bounds to match current textarea size
22098
+ * This ensures Fabric.js selection controls follow the growing textbox
22043
22099
  */
22044
22100
  updateObjectBounds() {
22045
22101
  if (this.isDestroyed) return;
@@ -22050,26 +22106,38 @@ class OverlayEditor {
22050
22106
  parseFloat(this.hostDiv.style.width) / zoom;
22051
22107
  const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;
22052
22108
 
22053
- // Only update if there's a meaningful change (avoid float precision issues)
22109
+ // Always update height for responsive controls (especially important for line deletion)
22054
22110
  const heightDiff = Math.abs(currentHeight - target.height);
22055
- const threshold = 1; // 1px threshold to avoid micro-changes
22111
+ const threshold = 0.5; // Lower threshold for better responsiveness to line changes
22056
22112
 
22057
22113
  if (heightDiff > threshold) {
22114
+ target.height;
22058
22115
  target.height = currentHeight;
22059
22116
  target.setCoords(); // Update control positions
22117
+
22118
+ // Force dirty to ensure proper re-rendering
22119
+ target.dirty = true;
22060
22120
  this.canvas.requestRenderAll(); // Re-render to show updated selection
22121
+
22122
+ // IMPORTANT: Reposition overlay after height change
22123
+ requestAnimationFrame(() => {
22124
+ if (!this.isDestroyed) {
22125
+ this.applyOverlayStyle();
22126
+ console.log('📐 Height changed - rechecking alignment after repositioning:');
22127
+ }
22128
+ });
22061
22129
  }
22062
22130
  }
22063
22131
 
22064
- /**
22065
- * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
22132
+ /**
22133
+ * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
22066
22134
  */
22067
22135
  letterSpacingPx(charSpacing, fontSize) {
22068
22136
  return charSpacing / 1000 * fontSize;
22069
22137
  }
22070
22138
 
22071
- /**
22072
- * Detect text direction using first strong directional character
22139
+ /**
22140
+ * Detect text direction using first strong directional character
22073
22141
  */
22074
22142
  firstStrongDir(text) {
22075
22143
  // Hebrew: \u0590-\u05FF, Arabic: \u0600-\u06FF, \u0750-\u077F, \uFB50-\uFDFF, \uFE70-\uFEFF
@@ -22085,14 +22153,6 @@ class OverlayEditor {
22085
22153
  target.setCoords();
22086
22154
  const aCoords = target.aCoords;
22087
22155
 
22088
- // DEBUG: Log dimensions before edit
22089
- console.log('BEFORE EDIT:');
22090
- console.log(' target.width =', target.width);
22091
- console.log(' target.height =', target.height);
22092
- console.log(' target.getScaledWidth() =', target.getScaledWidth());
22093
- console.log(' target.getScaledHeight() =', target.getScaledHeight());
22094
- console.log(' target.padding =', target.padding);
22095
-
22096
22156
  // 2. Get canvas position and scroll offsets (like rtl-test.html)
22097
22157
  const canvasEl = canvas.upperCanvasEl;
22098
22158
  const canvasRect = canvasEl.getBoundingClientRect();
@@ -22115,14 +22175,12 @@ class OverlayEditor {
22115
22175
  const left = canvasRect.left + scrollX + screenPoint.x;
22116
22176
  const top = canvasRect.top + scrollY + screenPoint.y;
22117
22177
 
22118
- // 4. Get dimensions with zoom scaling - use target.width for text wrapping, scaled height for container
22119
- const width = target.width * (target.scaleX || 1) * zoom; // Account for object scale and viewport zoom
22120
- const height = target.height * (target.scaleY || 1) * zoom;
22121
- console.log('WIDTH CALCULATION:');
22122
- console.log(' target.width =', target.width);
22123
- console.log(' scaledWidth =', target.getScaledWidth());
22124
- console.log(' zoom =', zoom);
22125
- console.log(' final width =', width);
22178
+ // 4. Calculate the precise width and height for the container
22179
+ // **THE FIX:** Use getBoundingRect() for BOTH width and height.
22180
+ // This is the most reliable measure of the object's final rendered dimensions.
22181
+ const objectBounds = target.getBoundingRect();
22182
+ const width = Math.round(objectBounds.width * zoom);
22183
+ const height = Math.round(objectBounds.height * zoom);
22126
22184
 
22127
22185
  // 5. Apply styles to host DIV - absolute positioning like rtl-test.html
22128
22186
  this.hostDiv.style.position = 'absolute';
@@ -22146,52 +22204,328 @@ class OverlayEditor {
22146
22204
  const scaleX = target.scaleX || 1;
22147
22205
  const finalFontSize = baseFontSize * scaleX * zoom;
22148
22206
  const fabricLineHeight = target.lineHeight || 1.16;
22149
- // Apply padding and dimensions to textarea
22150
- const textareaWidth = paddingX > 0 ? `calc(100% - ${2 * paddingX}px)` : '100%';
22151
- const textareaHeight = paddingY > 0 ? `calc(100% - ${2 * paddingY}px)` : '100%';
22152
- this.textarea.style.width = textareaWidth;
22153
- this.textarea.style.height = textareaHeight;
22207
+ // **THE FIX:** Use 'border-box' so the width property includes padding.
22208
+ // This makes alignment much easier and more reliable.
22209
+ this.textarea.style.boxSizing = 'border-box';
22210
+
22211
+ // **THE FIX:** Set the textarea width to be IDENTICAL to the host div's width.
22212
+ // The padding will now be correctly contained *inside* this width.
22213
+ this.textarea.style.width = `${width}px`;
22214
+ this.textarea.style.height = '100%'; // Let hostDiv control height
22154
22215
  this.textarea.style.padding = `${paddingY}px ${paddingX}px`;
22216
+
22217
+ // Apply all other font and text styles to match Fabric
22218
+ const letterSpacingPx = (target.charSpacing || 0) / 1000 * finalFontSize;
22155
22219
  this.textarea.style.fontSize = `${finalFontSize}px`;
22156
- this.textarea.style.lineHeight = String(fabricLineHeight); // Use unit-less multiplier
22220
+ this.textarea.style.lineHeight = String(fabricLineHeight);
22157
22221
  this.textarea.style.fontFamily = target.fontFamily || 'Arial';
22158
22222
  this.textarea.style.fontWeight = String(target.fontWeight || 'normal');
22159
22223
  this.textarea.style.fontStyle = target.fontStyle || 'normal';
22160
- this.textarea.style.textAlign = target.textAlign || 'left';
22224
+ // Handle text alignment and justification
22225
+ const textAlign = target.textAlign || 'left';
22226
+ let cssTextAlign = textAlign;
22227
+
22228
+ // Detect text direction from content for proper justify handling
22229
+ const autoDetectedDirection = this.firstStrongDir(this.textarea.value || '');
22230
+
22231
+ // DEBUG: Log alignment details
22232
+ console.log('🔍 ALIGNMENT DEBUG:');
22233
+ console.log(' Fabric textAlign:', textAlign);
22234
+ console.log(' Fabric direction:', target.direction);
22235
+ console.log(' Text content:', JSON.stringify(target.text));
22236
+ console.log(' Detected direction:', autoDetectedDirection);
22237
+
22238
+ // Map fabric.js justify to CSS
22239
+ if (textAlign.includes('justify')) {
22240
+ // Try to match fabric.js justify behavior more precisely
22241
+ try {
22242
+ // For justify, we need to replicate fabric.js space expansion
22243
+ // Use CSS justify but with specific settings to match fabric.js better
22244
+ cssTextAlign = 'justify';
22245
+
22246
+ // Set text-align-last based on justify type and detected direction
22247
+ // Smart justify: respect detected direction even when fabric alignment doesn't match
22248
+ if (textAlign === 'justify') {
22249
+ this.textarea.style.textAlignLast = autoDetectedDirection === 'rtl' ? 'right' : 'left';
22250
+ } else if (textAlign === 'justify-left') {
22251
+ // If text is RTL but fabric says justify-left, override to justify-right for better UX
22252
+ if (autoDetectedDirection === 'rtl') {
22253
+ this.textarea.style.textAlignLast = 'right';
22254
+ console.log(' → Overrode justify-left to justify-right for RTL text');
22255
+ } else {
22256
+ this.textarea.style.textAlignLast = 'left';
22257
+ }
22258
+ } else if (textAlign === 'justify-right') {
22259
+ // If text is LTR but fabric says justify-right, override to justify-left for better UX
22260
+ if (autoDetectedDirection === 'ltr') {
22261
+ this.textarea.style.textAlignLast = 'left';
22262
+ console.log(' → Overrode justify-right to justify-left for LTR text');
22263
+ } else {
22264
+ this.textarea.style.textAlignLast = 'right';
22265
+ }
22266
+ } else if (textAlign === 'justify-center') {
22267
+ this.textarea.style.textAlignLast = 'center';
22268
+ }
22269
+
22270
+ // Enhanced justify settings for better fabric.js matching
22271
+ this.textarea.style.textJustify = 'inter-word';
22272
+ this.textarea.style.wordSpacing = 'normal';
22273
+
22274
+ // Additional CSS properties for better justify matching
22275
+ this.textarea.style.textAlign = 'justify';
22276
+ this.textarea.style.textAlignLast = this.textarea.style.textAlignLast;
22277
+
22278
+ // Try to force better justify behavior
22279
+ this.textarea.style.textJustifyTrim = 'none';
22280
+ this.textarea.style.textAutospace = 'none';
22281
+ console.log(' → Applied justify alignment:', textAlign, 'with last-line:', this.textarea.style.textAlignLast);
22282
+ } catch (error) {
22283
+ console.warn(' → Justify setup failed, falling back to standard alignment:', error);
22284
+ cssTextAlign = textAlign.replace('justify-', '').replace('justify', 'left');
22285
+ }
22286
+ } else {
22287
+ this.textarea.style.textAlignLast = 'auto';
22288
+ this.textarea.style.textJustify = 'auto';
22289
+ this.textarea.style.wordSpacing = 'normal';
22290
+ console.log(' → Applied standard alignment:', cssTextAlign);
22291
+ }
22292
+ this.textarea.style.textAlign = cssTextAlign;
22161
22293
  this.textarea.style.color = ((_target$fill = target.fill) === null || _target$fill === void 0 ? void 0 : _target$fill.toString()) || '#000';
22162
- this.textarea.style.letterSpacing = `${(target.charSpacing || 0) / 1000}em`;
22163
- this.textarea.style.direction = target.direction || this.firstStrongDir(this.textarea.value || '');
22294
+ this.textarea.style.letterSpacing = `${letterSpacingPx}px`;
22164
22295
 
22165
- // Ensure consistent font rendering between Fabric and CSS
22296
+ // Use the already detected direction from above
22297
+ const fabricDirection = target.direction;
22298
+
22299
+ // Use auto-detected direction for better BiDi support, but respect fabric direction if it makes sense
22300
+ this.textarea.style.direction = autoDetectedDirection || fabricDirection || 'ltr';
22166
22301
  this.textarea.style.fontVariant = 'normal';
22167
22302
  this.textarea.style.fontStretch = 'normal';
22168
- this.textarea.style.textRendering = 'auto';
22169
- this.textarea.style.fontKerning = 'auto';
22170
- this.textarea.style.boxSizing = 'content-box'; // Padding is added outside width/height
22303
+ this.textarea.style.textRendering = 'auto'; // Changed from 'optimizeLegibility' to match canvas
22304
+ this.textarea.style.fontKerning = 'normal';
22305
+ this.textarea.style.fontFeatureSettings = 'normal';
22306
+ this.textarea.style.fontVariationSettings = 'normal';
22171
22307
  this.textarea.style.margin = '0';
22172
22308
  this.textarea.style.border = 'none';
22173
22309
  this.textarea.style.outline = 'none';
22174
22310
  this.textarea.style.background = 'transparent';
22175
- this.textarea.style.wordWrap = 'break-word';
22311
+ this.textarea.style.overflowWrap = 'break-word';
22176
22312
  this.textarea.style.whiteSpace = 'pre-wrap';
22177
-
22178
- // DEBUG: Log final textarea dimensions
22179
- console.log('TEXTAREA AFTER SETUP:');
22180
- console.log(' textarea width =', this.textarea.style.width);
22181
- console.log(' textarea height =', this.textarea.style.height);
22182
- console.log(' textarea padding =', this.textarea.style.padding);
22183
- console.log(' paddingX =', paddingX, 'paddingY =', paddingY);
22184
- console.log(' baseFontSize =', baseFontSize);
22185
- console.log(' scaleX =', scaleX);
22186
- console.log(' zoom =', zoom);
22187
- console.log(' finalFontSize =', finalFontSize);
22188
- console.log(' fabricLineHeight =', fabricLineHeight);
22313
+ this.textarea.style.hyphens = 'none';
22314
+
22315
+ // DEBUG: Log final CSS properties
22316
+ console.log('🎨 FINAL TEXTAREA CSS:');
22317
+ console.log(' textAlign:', this.textarea.style.textAlign);
22318
+ console.log(' textAlignLast:', this.textarea.style.textAlignLast);
22319
+ console.log(' direction:', this.textarea.style.direction);
22320
+ console.log(' unicodeBidi:', this.textarea.style.unicodeBidi);
22321
+ console.log(' width:', this.textarea.style.width);
22322
+ console.log(' textJustify:', this.textarea.style.textJustify);
22323
+ console.log(' wordSpacing:', this.textarea.style.wordSpacing);
22324
+ console.log(' whiteSpace:', this.textarea.style.whiteSpace);
22325
+
22326
+ // If justify, log Fabric object dimensions for comparison
22327
+ if (textAlign.includes('justify')) {
22328
+ var _calcTextWidth, _ref;
22329
+ console.log('🔧 FABRIC OBJECT JUSTIFY INFO:');
22330
+ console.log(' Fabric width:', target.width);
22331
+ console.log(' Fabric calcTextWidth:', (_calcTextWidth = (_ref = target).calcTextWidth) === null || _calcTextWidth === void 0 ? void 0 : _calcTextWidth.call(_ref));
22332
+ console.log(' Fabric textAlign:', target.textAlign);
22333
+ console.log(' Text lines:', target.textLines);
22334
+ }
22335
+
22336
+ // Debug font properties matching
22337
+ console.log('🔤 FONT PROPERTIES COMPARISON:');
22338
+ console.log(' Fabric fontFamily:', target.fontFamily);
22339
+ console.log(' Fabric fontWeight:', target.fontWeight);
22340
+ console.log(' Fabric fontStyle:', target.fontStyle);
22341
+ console.log(' Fabric fontSize:', target.fontSize);
22342
+ console.log(' → Textarea fontFamily:', this.textarea.style.fontFamily);
22343
+ console.log(' → Textarea fontWeight:', this.textarea.style.fontWeight);
22344
+ console.log(' → Textarea fontStyle:', this.textarea.style.fontStyle);
22345
+ console.log(' → Textarea fontSize:', this.textarea.style.fontSize);
22346
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
22347
+
22348
+ // Enhanced font rendering to better match fabric.js canvas rendering
22349
+ // Default to auto for more natural rendering
22350
+ this.textarea.style.webkitFontSmoothing = 'auto';
22351
+ this.textarea.style.mozOsxFontSmoothing = 'auto';
22352
+ this.textarea.style.fontSmooth = 'auto';
22353
+ this.textarea.style.textSizeAdjust = 'none';
22354
+
22355
+ // For bold fonts, use subpixel rendering to match canvas thickness better
22356
+ const fontWeight = String(target.fontWeight || 'normal');
22357
+ const isBold = fontWeight === 'bold' || fontWeight === '700' || parseInt(fontWeight) >= 600;
22358
+ if (isBold) {
22359
+ this.textarea.style.webkitFontSmoothing = 'subpixel-antialiased';
22360
+ this.textarea.style.mozOsxFontSmoothing = 'unset';
22361
+ console.log('🔤 Applied enhanced bold rendering for better thickness matching');
22362
+ }
22363
+ console.log('🎨 FONT SMOOTHING APPLIED:');
22364
+ console.log(' webkitFontSmoothing:', this.textarea.style.webkitFontSmoothing);
22365
+ console.log(' mozOsxFontSmoothing:', this.textarea.style.mozOsxFontSmoothing);
22189
22366
 
22190
22367
  // Initial bounds are set correctly by Fabric.js - don't force update here
22191
22368
  }
22192
22369
 
22193
- /**
22194
- * Focus the textarea and position cursor at end
22370
+ /**
22371
+ * Debug method to compare textarea and canvas object bounding boxes
22372
+ */
22373
+ debugBoundingBoxComparison() {
22374
+ const target = this.target;
22375
+ const canvas = this.canvas;
22376
+ const zoom = canvas.getZoom();
22377
+
22378
+ // Get textarea bounding box (in screen coordinates)
22379
+ const textareaRect = this.textarea.getBoundingClientRect();
22380
+ const hostRect = this.hostDiv.getBoundingClientRect();
22381
+
22382
+ // Get canvas object bounding box (in screen coordinates)
22383
+ const canvasBounds = target.getBoundingRect();
22384
+ const canvasRect = canvas.upperCanvasEl.getBoundingClientRect();
22385
+
22386
+ // Convert canvas object bounds to screen coordinates
22387
+ const vpt = canvas.viewportTransform;
22388
+ const screenObjectBounds = {
22389
+ left: canvasRect.left + canvasBounds.left * zoom + vpt[4],
22390
+ top: canvasRect.top + canvasBounds.top * zoom + vpt[5],
22391
+ width: canvasBounds.width * zoom,
22392
+ height: canvasBounds.height * zoom
22393
+ };
22394
+ console.log('🔍 BOUNDING BOX COMPARISON:');
22395
+ console.log('📦 Textarea Rect:', {
22396
+ left: Math.round(textareaRect.left * 100) / 100,
22397
+ top: Math.round(textareaRect.top * 100) / 100,
22398
+ width: Math.round(textareaRect.width * 100) / 100,
22399
+ height: Math.round(textareaRect.height * 100) / 100
22400
+ });
22401
+ console.log('📦 Host Div Rect:', {
22402
+ left: Math.round(hostRect.left * 100) / 100,
22403
+ top: Math.round(hostRect.top * 100) / 100,
22404
+ width: Math.round(hostRect.width * 100) / 100,
22405
+ height: Math.round(hostRect.height * 100) / 100
22406
+ });
22407
+ console.log('📦 Canvas Object Bounds (screen):', {
22408
+ left: Math.round(screenObjectBounds.left * 100) / 100,
22409
+ top: Math.round(screenObjectBounds.top * 100) / 100,
22410
+ width: Math.round(screenObjectBounds.width * 100) / 100,
22411
+ height: Math.round(screenObjectBounds.height * 100) / 100
22412
+ });
22413
+ console.log('📦 Canvas Object Bounds (canvas):', canvasBounds);
22414
+
22415
+ // Calculate differences
22416
+ const hostVsObject = {
22417
+ leftDiff: Math.round((hostRect.left - screenObjectBounds.left) * 100) / 100,
22418
+ topDiff: Math.round((hostRect.top - screenObjectBounds.top) * 100) / 100,
22419
+ widthDiff: Math.round((hostRect.width - screenObjectBounds.width) * 100) / 100,
22420
+ heightDiff: Math.round((hostRect.height - screenObjectBounds.height) * 100) / 100
22421
+ };
22422
+ const textareaVsObject = {
22423
+ leftDiff: Math.round((textareaRect.left - screenObjectBounds.left) * 100) / 100,
22424
+ topDiff: Math.round((textareaRect.top - screenObjectBounds.top) * 100) / 100,
22425
+ widthDiff: Math.round((textareaRect.width - screenObjectBounds.width) * 100) / 100,
22426
+ heightDiff: Math.round((textareaRect.height - screenObjectBounds.height) * 100) / 100
22427
+ };
22428
+ console.log('📏 Host Div vs Canvas Object Diff:', hostVsObject);
22429
+ console.log('📏 Textarea vs Canvas Object Diff:', textareaVsObject);
22430
+
22431
+ // Check if they're aligned (within 2px tolerance)
22432
+ const tolerance = 2;
22433
+ const hostAligned = Math.abs(hostVsObject.leftDiff) < tolerance && Math.abs(hostVsObject.topDiff) < tolerance && Math.abs(hostVsObject.widthDiff) < tolerance && Math.abs(hostVsObject.heightDiff) < tolerance;
22434
+ const textareaAligned = Math.abs(textareaVsObject.leftDiff) < tolerance && Math.abs(textareaVsObject.topDiff) < tolerance && Math.abs(textareaVsObject.widthDiff) < tolerance && Math.abs(textareaVsObject.heightDiff) < tolerance;
22435
+ console.log(hostAligned ? '✅ Host Div ALIGNED with canvas object' : '❌ Host Div MISALIGNED with canvas object');
22436
+ console.log(textareaAligned ? '✅ Textarea ALIGNED with canvas object' : '❌ Textarea MISALIGNED with canvas object');
22437
+ console.log('🔍 Zoom:', zoom, 'Viewport Transform:', vpt);
22438
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
22439
+ }
22440
+
22441
+ /**
22442
+ * Debug method to compare text wrapping between textarea and Fabric text object
22443
+ */
22444
+ debugTextWrapping() {
22445
+ const target = this.target;
22446
+ const text = this.textarea.value;
22447
+ console.log('📝 TEXT WRAPPING COMPARISON:');
22448
+ console.log('📄 Text Content:', `"${text}"`);
22449
+ console.log('📄 Text Length:', text.length);
22450
+
22451
+ // Analyze line breaks
22452
+ const explicitLines = text.split('\n');
22453
+ console.log('📄 Explicit Lines (\\n):', explicitLines.length);
22454
+ explicitLines.forEach((line, i) => {
22455
+ console.log(` Line ${i + 1}: "${line}" (${line.length} chars)`);
22456
+ });
22457
+
22458
+ // Get textarea computed styles for wrapping analysis
22459
+ const textareaStyles = window.getComputedStyle(this.textarea);
22460
+ console.log('📐 Textarea Wrapping Styles:');
22461
+ console.log(' width:', textareaStyles.width);
22462
+ console.log(' fontSize:', textareaStyles.fontSize);
22463
+ console.log(' fontFamily:', textareaStyles.fontFamily);
22464
+ console.log(' fontWeight:', textareaStyles.fontWeight);
22465
+ console.log(' letterSpacing:', textareaStyles.letterSpacing);
22466
+ console.log(' lineHeight:', textareaStyles.lineHeight);
22467
+ console.log(' whiteSpace:', textareaStyles.whiteSpace);
22468
+ console.log(' wordWrap:', textareaStyles.wordWrap);
22469
+ console.log(' overflowWrap:', textareaStyles.overflowWrap);
22470
+ console.log(' direction:', textareaStyles.direction);
22471
+ console.log(' textAlign:', textareaStyles.textAlign);
22472
+
22473
+ // Get Fabric text object properties for comparison
22474
+ console.log('📐 Fabric Text Object Properties:');
22475
+ console.log(' width:', target.width);
22476
+ console.log(' fontSize:', target.fontSize);
22477
+ console.log(' fontFamily:', target.fontFamily);
22478
+ console.log(' fontWeight:', target.fontWeight);
22479
+ console.log(' charSpacing:', target.charSpacing);
22480
+ console.log(' lineHeight:', target.lineHeight);
22481
+ console.log(' direction:', target.direction);
22482
+ console.log(' textAlign:', target.textAlign);
22483
+ console.log(' scaleX:', target.scaleX);
22484
+ console.log(' scaleY:', target.scaleY);
22485
+
22486
+ // Calculate effective dimensions for comparison - use actual rendered width
22487
+ // **THE FIX:** Use getBoundingRect to get the *actual rendered width* of the Fabric object.
22488
+ const fabricEffectiveWidth = this.target.getBoundingRect().width;
22489
+ // Use the exact width set on textarea for comparison
22490
+ const textareaComputedWidth = parseFloat(window.getComputedStyle(this.textarea).width);
22491
+ const textareaEffectiveWidth = textareaComputedWidth / this.canvas.getZoom();
22492
+ const widthDiff = Math.abs(textareaEffectiveWidth - fabricEffectiveWidth);
22493
+ console.log('📏 Effective Width Comparison:');
22494
+ console.log(' Textarea Effective Width:', textareaEffectiveWidth);
22495
+ console.log(' Fabric Effective Width:', fabricEffectiveWidth);
22496
+ console.log(' Width Difference:', widthDiff.toFixed(2) + 'px');
22497
+ console.log(widthDiff < 1 ? '✅ Widths MATCH for wrapping' : '❌ Width MISMATCH may cause different wrapping');
22498
+
22499
+ // Check text direction and bidi handling
22500
+ const hasRTLText = /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(text);
22501
+ const hasBidiText = /[\u0590-\u06FF]/.test(text) && /[a-zA-Z]/.test(text);
22502
+ console.log('🌍 Text Direction Analysis:');
22503
+ console.log(' Has RTL characters:', hasRTLText);
22504
+ console.log(' Has mixed Bidi text:', hasBidiText);
22505
+ console.log(' Textarea direction:', textareaStyles.direction);
22506
+ console.log(' Fabric direction:', target.direction || 'auto');
22507
+ console.log(' Textarea unicodeBidi:', textareaStyles.unicodeBidi);
22508
+
22509
+ // Measure actual rendered line count
22510
+ const textareaScrollHeight = this.textarea.scrollHeight;
22511
+ const textareaLineHeight = parseFloat(textareaStyles.lineHeight) || parseFloat(textareaStyles.fontSize) * 1.2;
22512
+ const estimatedTextareaLines = Math.round(textareaScrollHeight / textareaLineHeight);
22513
+ console.log('📊 Line Count Analysis:');
22514
+ console.log(' Textarea scrollHeight:', textareaScrollHeight);
22515
+ console.log(' Textarea lineHeight:', textareaLineHeight);
22516
+ console.log(' Estimated rendered lines:', estimatedTextareaLines);
22517
+ console.log(' Explicit line breaks:', explicitLines.length);
22518
+ if (estimatedTextareaLines > explicitLines.length) {
22519
+ console.log('🔄 Text wrapping detected in textarea');
22520
+ console.log(' Wrapped lines:', estimatedTextareaLines - explicitLines.length);
22521
+ } else {
22522
+ console.log('📏 No text wrapping in textarea');
22523
+ }
22524
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
22525
+ }
22526
+
22527
+ /**
22528
+ * Focus the textarea and position cursor at end
22195
22529
  */
22196
22530
  focusTextarea() {
22197
22531
  // For overlay editing, we want to keep the object in "selection mode" not "editing mode"
@@ -22226,8 +22560,8 @@ class OverlayEditor {
22226
22560
  this.canvas.requestRenderAll();
22227
22561
  }
22228
22562
 
22229
- /**
22230
- * Refresh overlay positioning and styling
22563
+ /**
22564
+ * Refresh overlay positioning and styling
22231
22565
  */
22232
22566
  refresh() {
22233
22567
  if (this.isDestroyed) return;
@@ -22235,8 +22569,8 @@ class OverlayEditor {
22235
22569
  // Don't update object bounds on every refresh - only when textarea actually resizes
22236
22570
  }
22237
22571
 
22238
- /**
22239
- * Destroy the overlay editor
22572
+ /**
22573
+ * Destroy the overlay editor
22240
22574
  */
22241
22575
  destroy() {
22242
22576
  let commit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -22263,6 +22597,23 @@ class OverlayEditor {
22263
22597
  // Handle commit/cancel after restoring visibility
22264
22598
  if (commit && !this.isComposing) {
22265
22599
  const finalText = this.textarea.value;
22600
+
22601
+ // Auto-detect text direction and update fabric object if needed
22602
+ const detectedDirection = this.firstStrongDir(finalText);
22603
+ const currentDirection = this.target.direction || 'ltr';
22604
+ if (detectedDirection && detectedDirection !== currentDirection) {
22605
+ console.log(`🔄 Overlay Exit: Auto-detected direction change from "${currentDirection}" to "${detectedDirection}"`);
22606
+ console.log(` Text content: "${finalText.substring(0, 50)}..."`);
22607
+
22608
+ // Update the fabric object's direction
22609
+ this.target.set('direction', detectedDirection);
22610
+
22611
+ // Force a re-render to apply the direction change
22612
+ this.canvas.requestRenderAll();
22613
+ console.log(`✅ Fabric object direction updated to: ${detectedDirection}`);
22614
+ } else {
22615
+ console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: "${finalText.substring(0, 30)}..."`);
22616
+ }
22266
22617
  if (this.onCommit) {
22267
22618
  this.onCommit(finalText);
22268
22619
  }
@@ -22302,25 +22653,40 @@ class OverlayEditor {
22302
22653
  }
22303
22654
  }
22304
22655
  autoResizeTextarea() {
22305
- // Allow both vertical growth and shrinking; host width stays fixed
22306
- const oldHeight = parseFloat(window.getComputedStyle(this.textarea).height);
22307
-
22308
- // Reset height to measure actual needed height
22309
- this.textarea.style.height = 'auto';
22656
+ // Store the scroll position and the container's old height for comparison.
22657
+ const scrollTop = this.textarea.scrollTop;
22658
+ const oldHeight = parseFloat(this.hostDiv.style.height || '0');
22659
+
22660
+ // 1. **Force a reliable reflow.**
22661
+ // First, reset the textarea's height to a minimal value. This is the crucial step
22662
+ // that forces the browser to recalculate the content's height from scratch,
22663
+ // ignoring the hostDiv's larger, stale height.
22664
+ this.textarea.style.height = '1px';
22665
+
22666
+ // 2. Read the now-accurate scrollHeight. This value reflects the minimum
22667
+ // height required for the content, whether it's single or multi-line.
22310
22668
  const scrollHeight = this.textarea.scrollHeight;
22311
22669
 
22312
- // Add extra padding to prevent text clipping (especially for line height)
22313
- const lineHeightBuffer = 8; // Extra space to prevent clipping
22314
- const newHeight = Math.max(scrollHeight + lineHeightBuffer, 25); // Minimum height with buffer
22315
- const heightChanged = Math.abs(newHeight - oldHeight) > 2; // Only if meaningful change
22670
+ // A small buffer for rendering consistency across browsers.
22671
+ const buffer = 2;
22672
+ const newHeight = scrollHeight + buffer;
22316
22673
 
22317
- this.textarea.style.height = `${newHeight}px`;
22318
- this.hostDiv.style.height = `${newHeight}px`; // Match exactly
22674
+ // Check if the height has changed significantly.
22675
+ const heightChanged = Math.abs(newHeight - oldHeight) > 1;
22319
22676
 
22320
- // Only update object bounds if height actually changed
22677
+ // 4. Only update heights and object bounds if there was a change.
22321
22678
  if (heightChanged) {
22679
+ this.textarea.style.height = `${newHeight}px`;
22680
+ this.hostDiv.style.height = `${newHeight}px`;
22322
22681
  this.updateObjectBounds();
22682
+ } else {
22683
+ // If no significant change, ensure the textarea's height matches the container
22684
+ // to prevent any minor visual misalignment.
22685
+ this.textarea.style.height = this.hostDiv.style.height;
22323
22686
  }
22687
+
22688
+ // 5. Restore the original scroll position.
22689
+ this.textarea.scrollTop = scrollTop;
22324
22690
  }
22325
22691
  handleKeyDown(e) {
22326
22692
  if (e.key === 'Escape') {
@@ -22329,6 +22695,19 @@ class OverlayEditor {
22329
22695
  } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {
22330
22696
  e.preventDefault();
22331
22697
  this.destroy(true); // Commit
22698
+ } else if (e.key === 'Enter' || e.key === 'Backspace' || e.key === 'Delete') {
22699
+ // For keys that might change the height, schedule a resize check
22700
+ // Use both immediate and delayed checks to catch all scenarios
22701
+ requestAnimationFrame(() => {
22702
+ if (!this.isDestroyed) {
22703
+ this.autoResizeTextarea();
22704
+ }
22705
+ });
22706
+ setTimeout(() => {
22707
+ if (!this.isDestroyed) {
22708
+ this.autoResizeTextarea();
22709
+ }
22710
+ }, 10); // Small delay to ensure DOM is updated
22332
22711
  }
22333
22712
  }
22334
22713
  handleFocus() {
@@ -22359,8 +22738,8 @@ class OverlayEditor {
22359
22738
  }
22360
22739
  }
22361
22740
 
22362
- /**
22363
- * Setup detection for viewport changes (zoom/pan)
22741
+ /**
22742
+ * Setup detection for viewport changes (zoom/pan)
22364
22743
  */
22365
22744
  setupViewportChangeDetection() {
22366
22745
  // Store original methods
@@ -22389,8 +22768,8 @@ class OverlayEditor {
22389
22768
  };
22390
22769
  }
22391
22770
 
22392
- /**
22393
- * Restore original viewport methods
22771
+ /**
22772
+ * Restore original viewport methods
22394
22773
  */
22395
22774
  restoreViewportChangeDetection() {
22396
22775
  if (this.canvas.__originalSetZoom) {
@@ -22405,8 +22784,8 @@ class OverlayEditor {
22405
22784
  }
22406
22785
  }
22407
22786
 
22408
- /**
22409
- * Enter overlay text editing mode for a text object
22787
+ /**
22788
+ * Enter overlay text editing mode for a text object
22410
22789
  */
22411
22790
  function enterTextOverlayEdit(canvas, target, options) {
22412
22791
  // If already in overlay editing, destroy existing editor first
@@ -22430,35 +22809,35 @@ function enterTextOverlayEdit(canvas, target, options) {
22430
22809
  return editor;
22431
22810
  }
22432
22811
 
22433
- /**
22434
- * extend this regex to support non english languages
22435
- *
22436
- * - ` ` Matches a SPACE character (char code 32).
22437
- * - `\n` Matches a LINE FEED character (char code 10).
22438
- * - `.` Matches a "." character (char code 46).
22439
- * - `,` Matches a "," character (char code 44).
22440
- * - `;` Matches a ";" character (char code 59).
22441
- * - `!` Matches a "!" character (char code 33).
22442
- * - `\?` Matches a "?" character (char code 63).
22443
- * - `\-` Matches a "-" character (char code 45).
22812
+ /**
22813
+ * extend this regex to support non english languages
22814
+ *
22815
+ * - ` ` Matches a SPACE character (char code 32).
22816
+ * - `\n` Matches a LINE FEED character (char code 10).
22817
+ * - `.` Matches a "." character (char code 46).
22818
+ * - `,` Matches a "," character (char code 44).
22819
+ * - `;` Matches a ";" character (char code 59).
22820
+ * - `!` Matches a "!" character (char code 33).
22821
+ * - `\?` Matches a "?" character (char code 63).
22822
+ * - `\-` Matches a "-" character (char code 45).
22444
22823
  */
22445
22824
  // eslint-disable-next-line no-useless-escape
22446
22825
  const reNonWord = /[ \n\.,;!\?\-]/;
22447
22826
  class ITextBehavior extends FabricText {
22448
22827
  constructor() {
22449
22828
  super(...arguments);
22450
- /**
22451
- * Helps determining when the text is in composition, so that the cursor
22452
- * rendering is altered.
22829
+ /**
22830
+ * Helps determining when the text is in composition, so that the cursor
22831
+ * rendering is altered.
22453
22832
  */
22454
22833
  _defineProperty(this, "_currentCursorOpacity", 1);
22455
22834
  }
22456
- /**
22457
- * Keeps track if the IText object was selected before the actual click.
22458
- * This because we want to delay enter editing by a click.
22835
+ /**
22836
+ * Keeps track if the IText object was selected before the actual click.
22837
+ * This because we want to delay enter editing by a click.
22459
22838
  */
22460
- /**
22461
- * Initializes all the interactive behavior of IText
22839
+ /**
22840
+ * Initializes all the interactive behavior of IText
22462
22841
  */
22463
22842
  initBehavior() {
22464
22843
  this._tick = this._tick.bind(this);
@@ -22471,8 +22850,8 @@ class ITextBehavior extends FabricText {
22471
22850
  return super.onDeselect(options);
22472
22851
  }
22473
22852
 
22474
- /**
22475
- * @private
22853
+ /**
22854
+ * @private
22476
22855
  */
22477
22856
  _animateCursor(_ref) {
22478
22857
  let {
@@ -22497,8 +22876,8 @@ class ITextBehavior extends FabricText {
22497
22876
  });
22498
22877
  }
22499
22878
 
22500
- /**
22501
- * changes the cursor from visible to invisible
22879
+ /**
22880
+ * changes the cursor from visible to invisible
22502
22881
  */
22503
22882
  _tick(delay) {
22504
22883
  this._currentTickState = this._animateCursor({
@@ -22509,8 +22888,8 @@ class ITextBehavior extends FabricText {
22509
22888
  });
22510
22889
  }
22511
22890
 
22512
- /**
22513
- * Changes the cursor from invisible to visible
22891
+ /**
22892
+ * Changes the cursor from invisible to visible
22514
22893
  */
22515
22894
  _onTickComplete() {
22516
22895
  var _this$_currentTickCom;
@@ -22522,16 +22901,16 @@ class ITextBehavior extends FabricText {
22522
22901
  });
22523
22902
  }
22524
22903
 
22525
- /**
22526
- * Initializes delayed cursor
22904
+ /**
22905
+ * Initializes delayed cursor
22527
22906
  */
22528
22907
  initDelayedCursor(restart) {
22529
22908
  this.abortCursorAnimation();
22530
22909
  this._tick(restart ? 0 : this.cursorDelay);
22531
22910
  }
22532
22911
 
22533
- /**
22534
- * Aborts cursor animation, clears all timeouts and clear textarea context if necessary
22912
+ /**
22913
+ * Aborts cursor animation, clears all timeouts and clear textarea context if necessary
22535
22914
  */
22536
22915
  abortCursorAnimation() {
22537
22916
  let shouldClear = false;
@@ -22549,9 +22928,9 @@ class ITextBehavior extends FabricText {
22549
22928
  }
22550
22929
  }
22551
22930
 
22552
- /**
22553
- * Restart tue cursor animation if either is in complete state ( between animations )
22554
- * or if it never started before
22931
+ /**
22932
+ * Restart tue cursor animation if either is in complete state ( between animations )
22933
+ * or if it never started before
22555
22934
  */
22556
22935
  restartCursorIfNeeded() {
22557
22936
  if ([this._currentTickState, this._currentTickCompleteState].some(cursorAnimation => !cursorAnimation || cursorAnimation.isDone())) {
@@ -22559,8 +22938,8 @@ class ITextBehavior extends FabricText {
22559
22938
  }
22560
22939
  }
22561
22940
 
22562
- /**
22563
- * Selects entire text
22941
+ /**
22942
+ * Selects entire text
22564
22943
  */
22565
22944
  selectAll() {
22566
22945
  this.selectionStart = 0;
@@ -22570,26 +22949,26 @@ class ITextBehavior extends FabricText {
22570
22949
  return this;
22571
22950
  }
22572
22951
 
22573
- /**
22574
- * Selects entire text and updates the visual state
22952
+ /**
22953
+ * Selects entire text and updates the visual state
22575
22954
  */
22576
22955
  cmdAll() {
22577
22956
  this.selectAll();
22578
22957
  this.renderCursorOrSelection();
22579
22958
  }
22580
22959
 
22581
- /**
22582
- * Returns selected text
22583
- * @return {String}
22960
+ /**
22961
+ * Returns selected text
22962
+ * @return {String}
22584
22963
  */
22585
22964
  getSelectedText() {
22586
22965
  return this._text.slice(this.selectionStart, this.selectionEnd).join('');
22587
22966
  }
22588
22967
 
22589
- /**
22590
- * Find new selection index representing start of current word according to current selection index
22591
- * @param {Number} startFrom Current selection index
22592
- * @return {Number} New selection index
22968
+ /**
22969
+ * Find new selection index representing start of current word according to current selection index
22970
+ * @param {Number} startFrom Current selection index
22971
+ * @return {Number} New selection index
22593
22972
  */
22594
22973
  findWordBoundaryLeft(startFrom) {
22595
22974
  let offset = 0,
@@ -22609,10 +22988,10 @@ class ITextBehavior extends FabricText {
22609
22988
  return startFrom - offset;
22610
22989
  }
22611
22990
 
22612
- /**
22613
- * Find new selection index representing end of current word according to current selection index
22614
- * @param {Number} startFrom Current selection index
22615
- * @return {Number} New selection index
22991
+ /**
22992
+ * Find new selection index representing end of current word according to current selection index
22993
+ * @param {Number} startFrom Current selection index
22994
+ * @return {Number} New selection index
22616
22995
  */
22617
22996
  findWordBoundaryRight(startFrom) {
22618
22997
  let offset = 0,
@@ -22632,10 +23011,10 @@ class ITextBehavior extends FabricText {
22632
23011
  return startFrom + offset;
22633
23012
  }
22634
23013
 
22635
- /**
22636
- * Find new selection index representing start of current line according to current selection index
22637
- * @param {Number} startFrom Current selection index
22638
- * @return {Number} New selection index
23014
+ /**
23015
+ * Find new selection index representing start of current line according to current selection index
23016
+ * @param {Number} startFrom Current selection index
23017
+ * @return {Number} New selection index
22639
23018
  */
22640
23019
  findLineBoundaryLeft(startFrom) {
22641
23020
  let offset = 0,
@@ -22647,10 +23026,10 @@ class ITextBehavior extends FabricText {
22647
23026
  return startFrom - offset;
22648
23027
  }
22649
23028
 
22650
- /**
22651
- * Find new selection index representing end of current line according to current selection index
22652
- * @param {Number} startFrom Current selection index
22653
- * @return {Number} New selection index
23029
+ /**
23030
+ * Find new selection index representing end of current line according to current selection index
23031
+ * @param {Number} startFrom Current selection index
23032
+ * @return {Number} New selection index
22654
23033
  */
22655
23034
  findLineBoundaryRight(startFrom) {
22656
23035
  let offset = 0,
@@ -22662,11 +23041,11 @@ class ITextBehavior extends FabricText {
22662
23041
  return startFrom + offset;
22663
23042
  }
22664
23043
 
22665
- /**
22666
- * Finds index corresponding to beginning or end of a word
22667
- * @param {Number} selectionStart Index of a character
22668
- * @param {Number} direction 1 or -1
22669
- * @return {Number} Index of the beginning or end of a word
23044
+ /**
23045
+ * Finds index corresponding to beginning or end of a word
23046
+ * @param {Number} selectionStart Index of a character
23047
+ * @param {Number} direction 1 or -1
23048
+ * @return {Number} Index of the beginning or end of a word
22670
23049
  */
22671
23050
  searchWordBoundary(selectionStart, direction) {
22672
23051
  const text = this._text;
@@ -22684,9 +23063,9 @@ class ITextBehavior extends FabricText {
22684
23063
  return index;
22685
23064
  }
22686
23065
 
22687
- /**
22688
- * Selects the word that contains the char at index selectionStart
22689
- * @param {Number} selectionStart Index of a character
23066
+ /**
23067
+ * Selects the word that contains the char at index selectionStart
23068
+ * @param {Number} selectionStart Index of a character
22690
23069
  */
22691
23070
  selectWord(selectionStart) {
22692
23071
  selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
@@ -22702,9 +23081,9 @@ class ITextBehavior extends FabricText {
22702
23081
  this.renderCursorOrSelection();
22703
23082
  }
22704
23083
 
22705
- /**
22706
- * Selects the line that contains selectionStart
22707
- * @param {Number} selectionStart Index of a character
23084
+ /**
23085
+ * Selects the line that contains selectionStart
23086
+ * @param {Number} selectionStart Index of a character
22708
23087
  */
22709
23088
  selectLine(selectionStart) {
22710
23089
  selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
@@ -22716,8 +23095,8 @@ class ITextBehavior extends FabricText {
22716
23095
  this._updateTextarea();
22717
23096
  }
22718
23097
 
22719
- /**
22720
- * Enters editing state
23098
+ /**
23099
+ * Enters editing state
22721
23100
  */
22722
23101
  enterEditing(e) {
22723
23102
  if (this.isEditing || !this.editable) {
@@ -22737,8 +23116,8 @@ class ITextBehavior extends FabricText {
22737
23116
  }
22738
23117
  }
22739
23118
 
22740
- /**
22741
- * runs the actual logic that enter from editing state, see {@link enterEditing}
23119
+ /**
23120
+ * runs the actual logic that enter from editing state, see {@link enterEditing}
22742
23121
  */
22743
23122
  enterEditingImpl() {
22744
23123
  if (this.canvas) {
@@ -22762,8 +23141,8 @@ class ITextBehavior extends FabricText {
22762
23141
  }
22763
23142
  }
22764
23143
 
22765
- /**
22766
- * Enter overlay editing mode using DOM textarea overlay
23144
+ /**
23145
+ * Enter overlay editing mode using DOM textarea overlay
22767
23146
  */
22768
23147
  enterOverlayEditing() {
22769
23148
  this._saveEditingProps();
@@ -22784,8 +23163,8 @@ class ITextBehavior extends FabricText {
22784
23163
  });
22785
23164
  }
22786
23165
 
22787
- /**
22788
- * Commit overlay editing changes
23166
+ /**
23167
+ * Commit overlay editing changes
22789
23168
  */
22790
23169
  commitOverlayEdit(text) {
22791
23170
  const overlayEditor = this.__overlayEditor;
@@ -22809,8 +23188,8 @@ class ITextBehavior extends FabricText {
22809
23188
  this.canvas && this.canvas.requestRenderAll();
22810
23189
  }
22811
23190
 
22812
- /**
22813
- * Cancel overlay editing without changes
23191
+ /**
23192
+ * Cancel overlay editing without changes
22814
23193
  */
22815
23194
  cancelOverlayEdit() {
22816
23195
  // Restore original text
@@ -22818,8 +23197,8 @@ class ITextBehavior extends FabricText {
22818
23197
  this.exitEditing();
22819
23198
  }
22820
23199
 
22821
- /**
22822
- * called by {@link Canvas#textEditingManager}
23200
+ /**
23201
+ * called by {@link Canvas#textEditingManager}
22823
23202
  */
22824
23203
  updateSelectionOnMouseMove(e) {
22825
23204
  if (this.getActiveControl()) {
@@ -22847,8 +23226,8 @@ class ITextBehavior extends FabricText {
22847
23226
  }
22848
23227
  }
22849
23228
 
22850
- /**
22851
- * @private
23229
+ /**
23230
+ * @private
22852
23231
  */
22853
23232
  _setEditingProps() {
22854
23233
  this.hoverCursor = 'text';
@@ -22860,8 +23239,8 @@ class ITextBehavior extends FabricText {
22860
23239
  this.lockMovementX = this.lockMovementY = true;
22861
23240
  }
22862
23241
 
22863
- /**
22864
- * convert from textarea to grapheme indexes
23242
+ /**
23243
+ * convert from textarea to grapheme indexes
22865
23244
  */
22866
23245
  fromStringToGraphemeSelection(start, end, text) {
22867
23246
  const smallerTextStart = text.slice(0, start),
@@ -22880,8 +23259,8 @@ class ITextBehavior extends FabricText {
22880
23259
  };
22881
23260
  }
22882
23261
 
22883
- /**
22884
- * convert from fabric to textarea values
23262
+ /**
23263
+ * convert from fabric to textarea values
22885
23264
  */
22886
23265
  fromGraphemeToStringSelection(start, end, graphemes) {
22887
23266
  const smallerTextStart = graphemes.slice(0, start),
@@ -22900,8 +23279,8 @@ class ITextBehavior extends FabricText {
22900
23279
  };
22901
23280
  }
22902
23281
 
22903
- /**
22904
- * @private
23282
+ /**
23283
+ * @private
22905
23284
  */
22906
23285
  _updateTextarea() {
22907
23286
  this.cursorOffsetCache = {};
@@ -22916,8 +23295,8 @@ class ITextBehavior extends FabricText {
22916
23295
  this.updateTextareaPosition();
22917
23296
  }
22918
23297
 
22919
- /**
22920
- * @private
23298
+ /**
23299
+ * @private
22921
23300
  */
22922
23301
  updateFromTextArea() {
22923
23302
  if (!this.hiddenTextarea) {
@@ -22937,8 +23316,8 @@ class ITextBehavior extends FabricText {
22937
23316
  this.updateTextareaPosition();
22938
23317
  }
22939
23318
 
22940
- /**
22941
- * @private
23319
+ /**
23320
+ * @private
22942
23321
  */
22943
23322
  updateTextareaPosition() {
22944
23323
  if (this.selectionStart === this.selectionEnd) {
@@ -22948,9 +23327,9 @@ class ITextBehavior extends FabricText {
22948
23327
  }
22949
23328
  }
22950
23329
 
22951
- /**
22952
- * @private
22953
- * @return {Object} style contains style for hiddenTextarea
23330
+ /**
23331
+ * @private
23332
+ * @return {Object} style contains style for hiddenTextarea
22954
23333
  */
22955
23334
  _calcTextareaPosition() {
22956
23335
  if (!this.canvas) {
@@ -22997,8 +23376,8 @@ class ITextBehavior extends FabricText {
22997
23376
  };
22998
23377
  }
22999
23378
 
23000
- /**
23001
- * @private
23379
+ /**
23380
+ * @private
23002
23381
  */
23003
23382
  _saveEditingProps() {
23004
23383
  this._savedProps = {
@@ -23015,8 +23394,8 @@ class ITextBehavior extends FabricText {
23015
23394
  };
23016
23395
  }
23017
23396
 
23018
- /**
23019
- * @private
23397
+ /**
23398
+ * @private
23020
23399
  */
23021
23400
  _restoreEditingProps() {
23022
23401
  if (!this._savedProps) {
@@ -23036,9 +23415,9 @@ class ITextBehavior extends FabricText {
23036
23415
  delete this._savedProps;
23037
23416
  }
23038
23417
 
23039
- /**
23040
- * runs the actual logic that exits from editing state, see {@link exitEditing}
23041
- * But it does not fire events
23418
+ /**
23419
+ * runs the actual logic that exits from editing state, see {@link exitEditing}
23420
+ * But it does not fire events
23042
23421
  */
23043
23422
  exitEditingImpl() {
23044
23423
  const hiddenTextarea = this.hiddenTextarea;
@@ -23059,8 +23438,8 @@ class ITextBehavior extends FabricText {
23059
23438
  }
23060
23439
  }
23061
23440
 
23062
- /**
23063
- * Exits from editing state and fires relevant events
23441
+ /**
23442
+ * Exits from editing state and fires relevant events
23064
23443
  */
23065
23444
  exitEditing() {
23066
23445
  const isTextChanged = this._textBeforeEdit !== this.text;
@@ -23079,8 +23458,8 @@ class ITextBehavior extends FabricText {
23079
23458
  return this;
23080
23459
  }
23081
23460
 
23082
- /**
23083
- * @private
23461
+ /**
23462
+ * @private
23084
23463
  */
23085
23464
  _removeExtraneousStyles() {
23086
23465
  for (const prop in this.styles) {
@@ -23090,10 +23469,10 @@ class ITextBehavior extends FabricText {
23090
23469
  }
23091
23470
  }
23092
23471
 
23093
- /**
23094
- * remove and reflow a style block from start to end.
23095
- * @param {Number} start linear start position for removal (included in removal)
23096
- * @param {Number} end linear end position for removal ( excluded from removal )
23472
+ /**
23473
+ * remove and reflow a style block from start to end.
23474
+ * @param {Number} start linear start position for removal (included in removal)
23475
+ * @param {Number} end linear end position for removal ( excluded from removal )
23097
23476
  */
23098
23477
  removeStyleFromTo(start, end) {
23099
23478
  const {
@@ -23146,10 +23525,10 @@ class ITextBehavior extends FabricText {
23146
23525
  }
23147
23526
  }
23148
23527
 
23149
- /**
23150
- * Shifts line styles up or down
23151
- * @param {Number} lineIndex Index of a line
23152
- * @param {Number} offset Can any number?
23528
+ /**
23529
+ * Shifts line styles up or down
23530
+ * @param {Number} lineIndex Index of a line
23531
+ * @param {Number} offset Can any number?
23153
23532
  */
23154
23533
  shiftLineStyles(lineIndex, offset) {
23155
23534
  const clonedStyles = Object.assign({}, this.styles);
@@ -23164,15 +23543,15 @@ class ITextBehavior extends FabricText {
23164
23543
  }
23165
23544
  }
23166
23545
 
23167
- /**
23168
- * Handle insertion of more consecutive style lines for when one or more
23169
- * newlines gets added to the text. Since current style needs to be shifted
23170
- * first we shift the current style of the number lines needed, then we add
23171
- * new lines from the last to the first.
23172
- * @param {Number} lineIndex Index of a line
23173
- * @param {Number} charIndex Index of a char
23174
- * @param {Number} qty number of lines to add
23175
- * @param {Array} copiedStyle Array of objects styles
23546
+ /**
23547
+ * Handle insertion of more consecutive style lines for when one or more
23548
+ * newlines gets added to the text. Since current style needs to be shifted
23549
+ * first we shift the current style of the number lines needed, then we add
23550
+ * new lines from the last to the first.
23551
+ * @param {Number} lineIndex Index of a line
23552
+ * @param {Number} charIndex Index of a char
23553
+ * @param {Number} qty number of lines to add
23554
+ * @param {Array} copiedStyle Array of objects styles
23176
23555
  */
23177
23556
  insertNewlineStyleObject(lineIndex, charIndex, qty, copiedStyle) {
23178
23557
  const newLineStyles = {};
@@ -23232,12 +23611,12 @@ class ITextBehavior extends FabricText {
23232
23611
  this._forceClearCache = true;
23233
23612
  }
23234
23613
 
23235
- /**
23236
- * Inserts style object for a given line/char index
23237
- * @param {Number} lineIndex Index of a line
23238
- * @param {Number} charIndex Index of a char
23239
- * @param {Number} quantity number Style object to insert, if given
23240
- * @param {Array} copiedStyle array of style objects
23614
+ /**
23615
+ * Inserts style object for a given line/char index
23616
+ * @param {Number} lineIndex Index of a line
23617
+ * @param {Number} charIndex Index of a char
23618
+ * @param {Number} quantity number Style object to insert, if given
23619
+ * @param {Array} copiedStyle array of style objects
23241
23620
  */
23242
23621
  insertCharStyleObject(lineIndex, charIndex, quantity, copiedStyle) {
23243
23622
  if (!this.styles) {
@@ -23286,11 +23665,11 @@ class ITextBehavior extends FabricText {
23286
23665
  }
23287
23666
  }
23288
23667
 
23289
- /**
23290
- * Inserts style object(s)
23291
- * @param {Array} insertedText Characters at the location where style is inserted
23292
- * @param {Number} start cursor index for inserting style
23293
- * @param {Array} [copiedStyle] array of style objects to insert.
23668
+ /**
23669
+ * Inserts style object(s)
23670
+ * @param {Array} insertedText Characters at the location where style is inserted
23671
+ * @param {Number} start cursor index for inserting style
23672
+ * @param {Array} [copiedStyle] array of style objects to insert.
23294
23673
  */
23295
23674
  insertNewStyleBlock(insertedText, start, copiedStyle) {
23296
23675
  const cursorLoc = this.get2DCursorLocation(start, true),
@@ -23331,12 +23710,12 @@ class ITextBehavior extends FabricText {
23331
23710
  }
23332
23711
  }
23333
23712
 
23334
- /**
23335
- * Removes characters from start/end
23336
- * start/end ar per grapheme position in _text array.
23337
- *
23338
- * @param {Number} start
23339
- * @param {Number} end default to start + 1
23713
+ /**
23714
+ * Removes characters from start/end
23715
+ * start/end ar per grapheme position in _text array.
23716
+ *
23717
+ * @param {Number} start
23718
+ * @param {Number} end default to start + 1
23340
23719
  */
23341
23720
  removeChars(start) {
23342
23721
  let end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : start + 1;
@@ -23349,17 +23728,17 @@ class ITextBehavior extends FabricText {
23349
23728
  this._removeExtraneousStyles();
23350
23729
  }
23351
23730
 
23352
- /**
23353
- * insert characters at start position, before start position.
23354
- * start equal 1 it means the text get inserted between actual grapheme 0 and 1
23355
- * if style array is provided, it must be as the same length of text in graphemes
23356
- * if end is provided and is bigger than start, old text is replaced.
23357
- * start/end ar per grapheme position in _text array.
23358
- *
23359
- * @param {String} text text to insert
23360
- * @param {Array} style array of style objects
23361
- * @param {Number} start
23362
- * @param {Number} end default to start + 1
23731
+ /**
23732
+ * insert characters at start position, before start position.
23733
+ * start equal 1 it means the text get inserted between actual grapheme 0 and 1
23734
+ * if style array is provided, it must be as the same length of text in graphemes
23735
+ * if end is provided and is bigger than start, old text is replaced.
23736
+ * start/end ar per grapheme position in _text array.
23737
+ *
23738
+ * @param {String} text text to insert
23739
+ * @param {Array} style array of style objects
23740
+ * @param {Number} start
23741
+ * @param {Number} end default to start + 1
23363
23742
  */
23364
23743
  insertChars(text, style, start) {
23365
23744
  let end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : start;
@@ -23376,9 +23755,9 @@ class ITextBehavior extends FabricText {
23376
23755
  this._removeExtraneousStyles();
23377
23756
  }
23378
23757
 
23379
- /**
23380
- * Set the selectionStart and selectionEnd according to the new position of cursor
23381
- * mimic the key - mouse navigation when shift is pressed.
23758
+ /**
23759
+ * Set the selectionStart and selectionEnd according to the new position of cursor
23760
+ * mimic the key - mouse navigation when shift is pressed.
23382
23761
  */
23383
23762
  setSelectionStartEndWithShift(start, end, newSelection) {
23384
23763
  if (newSelection <= start) {
@@ -24001,8 +24380,8 @@ class ITextKeyBehavior extends ITextBehavior {
24001
24380
  }
24002
24381
  }
24003
24382
 
24004
- /**
24005
- * `LEFT_CLICK === 0`
24383
+ /**
24384
+ * `LEFT_CLICK === 0`
24006
24385
  */
24007
24386
  const notALeftClick = e => !!e.button;
24008
24387
  class ITextClickBehavior extends ITextKeyBehavior {
@@ -24020,36 +24399,36 @@ class ITextClickBehavior extends ITextKeyBehavior {
24020
24399
  super.initBehavior();
24021
24400
  }
24022
24401
 
24023
- /**
24024
- * If this method returns true a mouse move operation over a text selection
24025
- * will not prevent the native mouse event allowing the browser to start a drag operation.
24026
- * shouldStartDragging can be read 'do not prevent default for mouse move event'
24027
- * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
24028
- * @returns
24402
+ /**
24403
+ * If this method returns true a mouse move operation over a text selection
24404
+ * will not prevent the native mouse event allowing the browser to start a drag operation.
24405
+ * shouldStartDragging can be read 'do not prevent default for mouse move event'
24406
+ * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
24407
+ * @returns
24029
24408
  */
24030
24409
  shouldStartDragging() {
24031
24410
  return this.draggableTextDelegate.isActive();
24032
24411
  }
24033
24412
 
24034
- /**
24035
- * @public override this method to control whether instance should/shouldn't become a drag source,
24036
- * @see also {@link DraggableTextDelegate#isActive}
24037
- * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
24038
- * @returns {boolean} should handle event
24413
+ /**
24414
+ * @public override this method to control whether instance should/shouldn't become a drag source,
24415
+ * @see also {@link DraggableTextDelegate#isActive}
24416
+ * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
24417
+ * @returns {boolean} should handle event
24039
24418
  */
24040
24419
  onDragStart(e) {
24041
24420
  return this.draggableTextDelegate.onDragStart(e);
24042
24421
  }
24043
24422
 
24044
- /**
24045
- * @public override this method to control whether instance should/shouldn't become a drop target
24423
+ /**
24424
+ * @public override this method to control whether instance should/shouldn't become a drop target
24046
24425
  */
24047
24426
  canDrop(e) {
24048
24427
  return this.draggableTextDelegate.canDrop(e);
24049
24428
  }
24050
24429
 
24051
- /**
24052
- * Default handler for double click, select a word or enter overlay editing
24430
+ /**
24431
+ * Default handler for double click, select a word or enter overlay editing
24053
24432
  */
24054
24433
  doubleClickHandler(options) {
24055
24434
  // Check if we should enter overlay editing mode
@@ -24066,8 +24445,8 @@ class ITextClickBehavior extends ITextKeyBehavior {
24066
24445
  this.renderCursorOrSelection();
24067
24446
  }
24068
24447
 
24069
- /**
24070
- * Default handler for triple click, select a line
24448
+ /**
24449
+ * Default handler for triple click, select a line
24071
24450
  */
24072
24451
  tripleClickHandler(options) {
24073
24452
  if (!this.isEditing) {
@@ -24077,13 +24456,13 @@ class ITextClickBehavior extends ITextKeyBehavior {
24077
24456
  this.renderCursorOrSelection();
24078
24457
  }
24079
24458
 
24080
- /**
24081
- * Default event handler for the basic functionalities needed on _mouseDown
24082
- * can be overridden to do something different.
24083
- * Scope of this implementation is: find the click position, set selectionStart
24084
- * find selectionEnd, initialize the drawing of either cursor or selection area
24085
- * initializing a mousedDown on a text area will cancel fabricjs knowledge of
24086
- * current compositionMode. It will be set to false.
24459
+ /**
24460
+ * Default event handler for the basic functionalities needed on _mouseDown
24461
+ * can be overridden to do something different.
24462
+ * Scope of this implementation is: find the click position, set selectionStart
24463
+ * find selectionEnd, initialize the drawing of either cursor or selection area
24464
+ * initializing a mousedDown on a text area will cancel fabricjs knowledge of
24465
+ * current compositionMode. It will be set to false.
24087
24466
  */
24088
24467
  _mouseDownHandler(_ref) {
24089
24468
  let {
@@ -24111,9 +24490,9 @@ class ITextClickBehavior extends ITextKeyBehavior {
24111
24490
  this.selected || (this.selected = alreadySelected || this.isEditing);
24112
24491
  }
24113
24492
 
24114
- /**
24115
- * standard handler for mouse up, overridable
24116
- * @private
24493
+ /**
24494
+ * standard handler for mouse up, overridable
24495
+ * @private
24117
24496
  */
24118
24497
  mouseUpHandler(_ref2) {
24119
24498
  let {
@@ -24144,9 +24523,9 @@ class ITextClickBehavior extends ITextKeyBehavior {
24144
24523
  }
24145
24524
  }
24146
24525
 
24147
- /**
24148
- * Changes cursor location in a text depending on passed pointer (x/y) object
24149
- * @param {TPointerEvent} e Event object
24526
+ /**
24527
+ * Changes cursor location in a text depending on passed pointer (x/y) object
24528
+ * @param {TPointerEvent} e Event object
24150
24529
  */
24151
24530
  setCursorByClick(e) {
24152
24531
  const newSelection = this.getSelectionStartFromPointer(e),
@@ -24164,10 +24543,10 @@ class ITextClickBehavior extends ITextKeyBehavior {
24164
24543
  }
24165
24544
  }
24166
24545
 
24167
- /**
24168
- * Returns index of a character corresponding to where an object was clicked
24169
- * @param {TPointerEvent} e Event object
24170
- * @return {Number} Index of a character
24546
+ /**
24547
+ * Returns index of a character corresponding to where an object was clicked
24548
+ * @param {TPointerEvent} e Event object
24549
+ * @return {Number} Index of a character
24171
24550
  */
24172
24551
  getSelectionStartFromPointer(e) {
24173
24552
  const mouseOffset = this.canvas.getScenePoint(e).transform(invertTransform(this.calcTransformMatrix())).add(new Point(-this._getLeftOffset(), -this._getTopOffset()));
@@ -24213,15 +24592,15 @@ class ITextClickBehavior extends ITextKeyBehavior {
24213
24592
  }
24214
24593
  }
24215
24594
 
24216
- /**
24217
- * Hit Testing and Cursor Positioning System
24218
- *
24219
- * Maps pointer coordinates to text positions and provides cursor rectangles
24220
- * for interactive text editing with grapheme-aware boundaries.
24595
+ /**
24596
+ * Hit Testing and Cursor Positioning System
24597
+ *
24598
+ * Maps pointer coordinates to text positions and provides cursor rectangles
24599
+ * for interactive text editing with grapheme-aware boundaries.
24221
24600
  */
24222
24601
 
24223
- /**
24224
- * Hit test a point against laid out text to find insertion position
24602
+ /**
24603
+ * Hit test a point against laid out text to find insertion position
24225
24604
  */
24226
24605
  function hitTest(x, y, layout, options) {
24227
24606
  if (layout.lines.length === 0) {
@@ -24265,8 +24644,8 @@ function hitTest(x, y, layout, options) {
24265
24644
  };
24266
24645
  }
24267
24646
 
24268
- /**
24269
- * Get cursor rectangle for a given insertion index
24647
+ /**
24648
+ * Get cursor rectangle for a given insertion index
24270
24649
  */
24271
24650
  function getCursorRect(insertionIndex, layout, options) {
24272
24651
  if (layout.lines.length === 0) {
@@ -24313,8 +24692,8 @@ function getCursorRect(insertionIndex, layout, options) {
24313
24692
 
24314
24693
  // Private helper functions
24315
24694
 
24316
- /**
24317
- * Find which line contains the given Y coordinate
24695
+ /**
24696
+ * Find which line contains the given Y coordinate
24318
24697
  */
24319
24698
  function findLineAtY(y, lines) {
24320
24699
  var _lines;
@@ -24337,8 +24716,8 @@ function findLineAtY(y, lines) {
24337
24716
  };
24338
24717
  }
24339
24718
 
24340
- /**
24341
- * Find character position within a line at given X coordinate
24719
+ /**
24720
+ * Find character position within a line at given X coordinate
24342
24721
  */
24343
24722
  function findCharAtX(x, line, options) {
24344
24723
  if (line.bounds.length === 0) {
@@ -24444,8 +24823,8 @@ function findCharAtX(x, line, options) {
24444
24823
  };
24445
24824
  }
24446
24825
 
24447
- /**
24448
- * Calculate total insertion index from line and character indices
24826
+ /**
24827
+ * Calculate total insertion index from line and character indices
24449
24828
  */
24450
24829
  function calculateInsertionIndex(lineIndex, graphemeIndex, layout) {
24451
24830
  let insertionIndex = 0;
@@ -24464,8 +24843,8 @@ function calculateInsertionIndex(lineIndex, graphemeIndex, layout) {
24464
24843
  return insertionIndex;
24465
24844
  }
24466
24845
 
24467
- /**
24468
- * Find line and grapheme position from insertion index
24846
+ /**
24847
+ * Find line and grapheme position from insertion index
24469
24848
  */
24470
24849
  function findPositionFromIndex(insertionIndex, layout) {
24471
24850
  let currentIndex = 0;
@@ -24507,8 +24886,8 @@ function findPositionFromIndex(insertionIndex, layout) {
24507
24886
  };
24508
24887
  }
24509
24888
 
24510
- /**
24511
- * Calculate Y position of a line
24889
+ /**
24890
+ * Calculate Y position of a line
24512
24891
  */
24513
24892
  function calculateLineY(lineIndex, layout, options) {
24514
24893
  let y = 0;
@@ -24611,48 +24990,48 @@ const iTextDefaultValues = {
24611
24990
 
24612
24991
  // @TODO this is not complete
24613
24992
 
24614
- /**
24615
- * @fires changed
24616
- * @fires selection:changed
24617
- * @fires editing:entered
24618
- * @fires editing:exited
24619
- * @fires dragstart
24620
- * @fires drag drag event firing on the drag source
24621
- * @fires dragend
24622
- * @fires copy
24623
- * @fires cut
24624
- * @fires paste
24625
- *
24626
- * #### Supported key combinations
24627
- * ```
24628
- * Move cursor: left, right, up, down
24629
- * Select character: shift + left, shift + right
24630
- * Select text vertically: shift + up, shift + down
24631
- * Move cursor by word: alt + left, alt + right
24632
- * Select words: shift + alt + left, shift + alt + right
24633
- * Move cursor to line start/end: cmd + left, cmd + right or home, end
24634
- * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
24635
- * Jump to start/end of text: cmd + up, cmd + down
24636
- * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
24637
- * Delete character: backspace
24638
- * Delete word: alt + backspace
24639
- * Delete line: cmd + backspace
24640
- * Forward delete: delete
24641
- * Copy text: ctrl/cmd + c
24642
- * Paste text: ctrl/cmd + v
24643
- * Cut text: ctrl/cmd + x
24644
- * Select entire text: ctrl/cmd + a
24645
- * Quit editing tab or esc
24646
- * ```
24647
- *
24648
- * #### Supported mouse/touch combination
24649
- * ```
24650
- * Position cursor: click/touch
24651
- * Create selection: click/touch & drag
24652
- * Create selection: click & shift + click
24653
- * Select word: double click
24654
- * Select line: triple click
24655
- * ```
24993
+ /**
24994
+ * @fires changed
24995
+ * @fires selection:changed
24996
+ * @fires editing:entered
24997
+ * @fires editing:exited
24998
+ * @fires dragstart
24999
+ * @fires drag drag event firing on the drag source
25000
+ * @fires dragend
25001
+ * @fires copy
25002
+ * @fires cut
25003
+ * @fires paste
25004
+ *
25005
+ * #### Supported key combinations
25006
+ * ```
25007
+ * Move cursor: left, right, up, down
25008
+ * Select character: shift + left, shift + right
25009
+ * Select text vertically: shift + up, shift + down
25010
+ * Move cursor by word: alt + left, alt + right
25011
+ * Select words: shift + alt + left, shift + alt + right
25012
+ * Move cursor to line start/end: cmd + left, cmd + right or home, end
25013
+ * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
25014
+ * Jump to start/end of text: cmd + up, cmd + down
25015
+ * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
25016
+ * Delete character: backspace
25017
+ * Delete word: alt + backspace
25018
+ * Delete line: cmd + backspace
25019
+ * Forward delete: delete
25020
+ * Copy text: ctrl/cmd + c
25021
+ * Paste text: ctrl/cmd + v
25022
+ * Cut text: ctrl/cmd + x
25023
+ * Select entire text: ctrl/cmd + a
25024
+ * Quit editing tab or esc
25025
+ * ```
25026
+ *
25027
+ * #### Supported mouse/touch combination
25028
+ * ```
25029
+ * Position cursor: click/touch
25030
+ * Create selection: click/touch & drag
25031
+ * Create selection: click & shift + click
25032
+ * Select word: double click
25033
+ * Select line: triple click
25034
+ * ```
24656
25035
  */
24657
25036
  class IText extends ITextClickBehavior {
24658
25037
  static getDefaults() {
@@ -24667,10 +25046,10 @@ class IText extends ITextClickBehavior {
24667
25046
  return type === 'itext' ? 'i-text' : type;
24668
25047
  }
24669
25048
 
24670
- /**
24671
- * Constructor
24672
- * @param {String} text Text string
24673
- * @param {Object} [options] Options object
25049
+ /**
25050
+ * Constructor
25051
+ * @param {String} text Text string
25052
+ * @param {Object} [options] Options object
24674
25053
  */
24675
25054
  constructor(text, options) {
24676
25055
  super(text, {
@@ -24680,11 +25059,11 @@ class IText extends ITextClickBehavior {
24680
25059
  this.initBehavior();
24681
25060
  }
24682
25061
 
24683
- /**
24684
- * While editing handle differently
24685
- * @private
24686
- * @param {string} key
24687
- * @param {*} value
25062
+ /**
25063
+ * While editing handle differently
25064
+ * @private
25065
+ * @param {string} key
25066
+ * @param {*} value
24688
25067
  */
24689
25068
  _set(key, value) {
24690
25069
  if (this.isEditing && this._savedProps && key in this._savedProps) {
@@ -24699,28 +25078,28 @@ class IText extends ITextClickBehavior {
24699
25078
  return super._set(key, value);
24700
25079
  }
24701
25080
 
24702
- /**
24703
- * Sets selection start (left boundary of a selection)
24704
- * @param {Number} index Index to set selection start to
25081
+ /**
25082
+ * Sets selection start (left boundary of a selection)
25083
+ * @param {Number} index Index to set selection start to
24705
25084
  */
24706
25085
  setSelectionStart(index) {
24707
25086
  index = Math.max(index, 0);
24708
25087
  this._updateAndFire('selectionStart', index);
24709
25088
  }
24710
25089
 
24711
- /**
24712
- * Sets selection end (right boundary of a selection)
24713
- * @param {Number} index Index to set selection end to
25090
+ /**
25091
+ * Sets selection end (right boundary of a selection)
25092
+ * @param {Number} index Index to set selection end to
24714
25093
  */
24715
25094
  setSelectionEnd(index) {
24716
25095
  index = Math.min(index, this.text.length);
24717
25096
  this._updateAndFire('selectionEnd', index);
24718
25097
  }
24719
25098
 
24720
- /**
24721
- * @private
24722
- * @param {String} property 'selectionStart' or 'selectionEnd'
24723
- * @param {Number} index new position of property
25099
+ /**
25100
+ * @private
25101
+ * @param {String} property 'selectionStart' or 'selectionEnd'
25102
+ * @param {Number} index new position of property
24724
25103
  */
24725
25104
  _updateAndFire(property, index) {
24726
25105
  if (this[property] !== index) {
@@ -24730,9 +25109,9 @@ class IText extends ITextClickBehavior {
24730
25109
  this._updateTextarea();
24731
25110
  }
24732
25111
 
24733
- /**
24734
- * Fires the even of selection changed
24735
- * @private
25112
+ /**
25113
+ * Fires the even of selection changed
25114
+ * @private
24736
25115
  */
24737
25116
  _fireSelectionChanged() {
24738
25117
  this.fire('selection:changed');
@@ -24741,25 +25120,25 @@ class IText extends ITextClickBehavior {
24741
25120
  });
24742
25121
  }
24743
25122
 
24744
- /**
24745
- * Initialize text dimensions. Render all text on given context
24746
- * or on a offscreen canvas to get the text width with measureText.
24747
- * Updates this.width and this.height with the proper values.
24748
- * Does not return dimensions.
24749
- * @private
25123
+ /**
25124
+ * Initialize text dimensions. Render all text on given context
25125
+ * or on a offscreen canvas to get the text width with measureText.
25126
+ * Updates this.width and this.height with the proper values.
25127
+ * Does not return dimensions.
25128
+ * @private
24750
25129
  */
24751
25130
  initDimensions() {
24752
25131
  this.isEditing && this.initDelayedCursor();
24753
25132
  super.initDimensions();
24754
25133
  }
24755
25134
 
24756
- /**
24757
- * Gets style of a current selection/cursor (at the start position)
24758
- * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
24759
- * @param {Number} startIndex Start index to get styles at
24760
- * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
24761
- * @param {Boolean} [complete] get full style or not
24762
- * @return {Array} styles an array with one, zero or more Style objects
25135
+ /**
25136
+ * Gets style of a current selection/cursor (at the start position)
25137
+ * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
25138
+ * @param {Number} startIndex Start index to get styles at
25139
+ * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
25140
+ * @param {Boolean} [complete] get full style or not
25141
+ * @return {Array} styles an array with one, zero or more Style objects
24763
25142
  */
24764
25143
  getSelectionStyles() {
24765
25144
  let startIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart || 0;
@@ -24768,11 +25147,11 @@ class IText extends ITextClickBehavior {
24768
25147
  return super.getSelectionStyles(startIndex, endIndex, complete);
24769
25148
  }
24770
25149
 
24771
- /**
24772
- * Sets style of a current selection, if no selection exist, do not set anything.
24773
- * @param {Object} [styles] Styles object
24774
- * @param {Number} [startIndex] Start index to get styles at
24775
- * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
25150
+ /**
25151
+ * Sets style of a current selection, if no selection exist, do not set anything.
25152
+ * @param {Object} [styles] Styles object
25153
+ * @param {Number} [startIndex] Start index to get styles at
25154
+ * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
24776
25155
  */
24777
25156
  setSelectionStyles(styles) {
24778
25157
  let startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.selectionStart || 0;
@@ -24780,10 +25159,10 @@ class IText extends ITextClickBehavior {
24780
25159
  return super.setSelectionStyles(styles, startIndex, endIndex);
24781
25160
  }
24782
25161
 
24783
- /**
24784
- * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
24785
- * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
24786
- * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
25162
+ /**
25163
+ * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
25164
+ * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
25165
+ * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
24787
25166
  */
24788
25167
  get2DCursorLocation() {
24789
25168
  let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -24791,9 +25170,9 @@ class IText extends ITextClickBehavior {
24791
25170
  return super.get2DCursorLocation(selectionStart, skipWrapping);
24792
25171
  }
24793
25172
 
24794
- /**
24795
- * @private
24796
- * @param {CanvasRenderingContext2D} ctx Context to render on
25173
+ /**
25174
+ * @private
25175
+ * @param {CanvasRenderingContext2D} ctx Context to render on
24797
25176
  */
24798
25177
  render(ctx) {
24799
25178
  super.render(ctx);
@@ -24803,9 +25182,9 @@ class IText extends ITextClickBehavior {
24803
25182
  this.renderCursorOrSelection();
24804
25183
  }
24805
25184
 
24806
- /**
24807
- * @override block cursor/selection logic while rendering the exported canvas
24808
- * @todo this workaround should be replaced with a more robust solution
25185
+ /**
25186
+ * @override block cursor/selection logic while rendering the exported canvas
25187
+ * @todo this workaround should be replaced with a more robust solution
24809
25188
  */
24810
25189
  toCanvasElement(options) {
24811
25190
  const isEditing = this.isEditing;
@@ -24815,9 +25194,9 @@ class IText extends ITextClickBehavior {
24815
25194
  return canvas;
24816
25195
  }
24817
25196
 
24818
- /**
24819
- * Renders cursor or selection (depending on what exists)
24820
- * it does on the contextTop. If contextTop is not available, do nothing.
25197
+ /**
25198
+ * Renders cursor or selection (depending on what exists)
25199
+ * it does on the contextTop. If contextTop is not available, do nothing.
24821
25200
  */
24822
25201
  renderCursorOrSelection() {
24823
25202
  if (!this.isEditing || !this.canvas) {
@@ -24873,12 +25252,12 @@ class IText extends ITextClickBehavior {
24873
25252
  ctx.restore();
24874
25253
  }
24875
25254
 
24876
- /**
24877
- * Finds and returns an array of clip paths that are applied to the parent
24878
- * group(s) of the current FabricObject instance. The object's hierarchy is
24879
- * traversed upwards (from the current object towards the root of the canvas),
24880
- * checking each parent object for the presence of a `clipPath` that is not
24881
- * absolutely positioned.
25255
+ /**
25256
+ * Finds and returns an array of clip paths that are applied to the parent
25257
+ * group(s) of the current FabricObject instance. The object's hierarchy is
25258
+ * traversed upwards (from the current object towards the root of the canvas),
25259
+ * checking each parent object for the presence of a `clipPath` that is not
25260
+ * absolutely positioned.
24882
25261
  */
24883
25262
  findAncestorsWithClipPath() {
24884
25263
  const clipPathAncestors = [];
@@ -24893,13 +25272,13 @@ class IText extends ITextClickBehavior {
24893
25272
  return clipPathAncestors;
24894
25273
  }
24895
25274
 
24896
- /**
24897
- * Returns cursor boundaries (left, top, leftOffset, topOffset)
24898
- * left/top are left/top of entire text box
24899
- * leftOffset/topOffset are offset from that left/top point of a text box
24900
- * @private
24901
- * @param {number} [index] index from start
24902
- * @param {boolean} [skipCaching]
25275
+ /**
25276
+ * Returns cursor boundaries (left, top, leftOffset, topOffset)
25277
+ * left/top are left/top of entire text box
25278
+ * leftOffset/topOffset are offset from that left/top point of a text box
25279
+ * @private
25280
+ * @param {number} [index] index from start
25281
+ * @param {boolean} [skipCaching]
24903
25282
  */
24904
25283
  _getCursorBoundaries() {
24905
25284
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -24913,11 +25292,11 @@ class IText extends ITextClickBehavior {
24913
25292
  return this._getCursorBoundariesOriginal(index, skipCaching);
24914
25293
  }
24915
25294
 
24916
- /**
24917
- * Caches and returns cursor left/top offset relative to instance's center point
24918
- * @private
24919
- * @param {number} index index from start
24920
- * @param {boolean} [skipCaching]
25295
+ /**
25296
+ * Caches and returns cursor left/top offset relative to instance's center point
25297
+ * @private
25298
+ * @param {number} index index from start
25299
+ * @param {boolean} [skipCaching]
24921
25300
  */
24922
25301
  _getCursorBoundariesOffsets(index, skipCaching) {
24923
25302
  if (skipCaching) {
@@ -24929,9 +25308,9 @@ class IText extends ITextClickBehavior {
24929
25308
  return this.cursorOffsetCache = this.__getCursorBoundariesOffsets(index);
24930
25309
  }
24931
25310
 
24932
- /**
24933
- * Enhanced cursor boundaries using advanced hit testing when available
24934
- * @private
25311
+ /**
25312
+ * Enhanced cursor boundaries using advanced hit testing when available
25313
+ * @private
24935
25314
  */
24936
25315
  _getCursorBoundariesAdvanced(index) {
24937
25316
  if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
@@ -24947,9 +25326,9 @@ class IText extends ITextClickBehavior {
24947
25326
  };
24948
25327
  }
24949
25328
 
24950
- /**
24951
- * Enhanced selection start from pointer using BiDi-aware hit testing
24952
- * @override
25329
+ /**
25330
+ * Enhanced selection start from pointer using BiDi-aware hit testing
25331
+ * @override
24953
25332
  */
24954
25333
  getSelectionStartFromPointer(e) {
24955
25334
  if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
@@ -24963,9 +25342,9 @@ class IText extends ITextClickBehavior {
24963
25342
  return Math.min(hitResult.charIndex, this._text.length);
24964
25343
  }
24965
25344
 
24966
- /**
24967
- * Original cursor boundaries implementation
24968
- * @private
25345
+ /**
25346
+ * Original cursor boundaries implementation
25347
+ * @private
24969
25348
  */
24970
25349
  _getCursorBoundariesOriginal(index, skipCaching) {
24971
25350
  const left = this._getLeftOffset(),
@@ -24979,10 +25358,10 @@ class IText extends ITextClickBehavior {
24979
25358
  };
24980
25359
  }
24981
25360
 
24982
- /**
24983
- * Calculates cursor left/top offset relative to instance's center point
24984
- * @private
24985
- * @param {number} index index from start
25361
+ /**
25362
+ * Calculates cursor left/top offset relative to instance's center point
25363
+ * @private
25364
+ * @param {number} index index from start
24986
25365
  */
24987
25366
  __getCursorBoundariesOffsets(index) {
24988
25367
  let topOffset = 0,
@@ -25016,29 +25395,29 @@ class IText extends ITextClickBehavior {
25016
25395
  return boundaries;
25017
25396
  }
25018
25397
 
25019
- /**
25020
- * Renders cursor on context Top, outside the animation cycle, on request
25021
- * Used for the drag/drop effect.
25022
- * If contextTop is not available, do nothing.
25398
+ /**
25399
+ * Renders cursor on context Top, outside the animation cycle, on request
25400
+ * Used for the drag/drop effect.
25401
+ * If contextTop is not available, do nothing.
25023
25402
  */
25024
25403
  renderCursorAt(selectionStart) {
25025
25404
  this._renderCursor(this.canvas.contextTop, this._getCursorBoundaries(selectionStart, true), selectionStart);
25026
25405
  }
25027
25406
 
25028
- /**
25029
- * Renders cursor
25030
- * @param {Object} boundaries
25031
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25407
+ /**
25408
+ * Renders cursor
25409
+ * @param {Object} boundaries
25410
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25032
25411
  */
25033
25412
  renderCursor(ctx, boundaries) {
25034
25413
  this._renderCursor(ctx, boundaries, this.selectionStart);
25035
25414
  }
25036
25415
 
25037
- /**
25038
- * Return the data needed to render the cursor for given selection start
25039
- * The left,top are relative to the object, while width and height are prescaled
25040
- * to look think with canvas zoom and object scaling,
25041
- * so they depend on canvas and object scaling
25416
+ /**
25417
+ * Return the data needed to render the cursor for given selection start
25418
+ * The left,top are relative to the object, while width and height are prescaled
25419
+ * to look think with canvas zoom and object scaling,
25420
+ * so they depend on canvas and object scaling
25042
25421
  */
25043
25422
  getCursorRenderingData() {
25044
25423
  let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -25061,9 +25440,9 @@ class IText extends ITextClickBehavior {
25061
25440
  };
25062
25441
  }
25063
25442
 
25064
- /**
25065
- * Render the cursor at the given selectionStart.
25066
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25443
+ /**
25444
+ * Render the cursor at the given selectionStart.
25445
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25067
25446
  */
25068
25447
  _renderCursor(ctx, boundaries, selectionStart) {
25069
25448
  const {
@@ -25079,10 +25458,10 @@ class IText extends ITextClickBehavior {
25079
25458
  ctx.fillRect(left, top, width, height);
25080
25459
  }
25081
25460
 
25082
- /**
25083
- * Renders text selection
25084
- * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25085
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25461
+ /**
25462
+ * Renders text selection
25463
+ * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25464
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25086
25465
  */
25087
25466
  renderSelection(ctx, boundaries) {
25088
25467
  const selection = {
@@ -25092,8 +25471,8 @@ class IText extends ITextClickBehavior {
25092
25471
  this._renderSelection(ctx, selection, boundaries);
25093
25472
  }
25094
25473
 
25095
- /**
25096
- * Renders drag start text selection
25474
+ /**
25475
+ * Renders drag start text selection
25097
25476
  */
25098
25477
  renderDragSourceEffect() {
25099
25478
  const dragStartSelection = this.draggableTextDelegate.getDragStartSelection();
@@ -25104,12 +25483,12 @@ class IText extends ITextClickBehavior {
25104
25483
  this.renderCursorAt(dragSelection);
25105
25484
  }
25106
25485
 
25107
- /**
25108
- * Renders text selection
25109
- * @private
25110
- * @param {{ selectionStart: number, selectionEnd: number }} selection
25111
- * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25112
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25486
+ /**
25487
+ * Renders text selection
25488
+ * @private
25489
+ * @param {{ selectionStart: number, selectionEnd: number }} selection
25490
+ * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25491
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25113
25492
  */
25114
25493
  _renderSelection(ctx, selection, boundaries) {
25115
25494
  const selectionStart = selection.selectionStart,
@@ -25171,34 +25550,34 @@ class IText extends ITextClickBehavior {
25171
25550
  }
25172
25551
  }
25173
25552
 
25174
- /**
25175
- * High level function to know the height of the cursor.
25176
- * the currentChar is the one that precedes the cursor
25177
- * Returns fontSize of char at the current cursor
25178
- * Unused from the library, is for the end user
25179
- * @return {Number} Character font size
25553
+ /**
25554
+ * High level function to know the height of the cursor.
25555
+ * the currentChar is the one that precedes the cursor
25556
+ * Returns fontSize of char at the current cursor
25557
+ * Unused from the library, is for the end user
25558
+ * @return {Number} Character font size
25180
25559
  */
25181
25560
  getCurrentCharFontSize() {
25182
25561
  const cp = this._getCurrentCharIndex();
25183
25562
  return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');
25184
25563
  }
25185
25564
 
25186
- /**
25187
- * High level function to know the color of the cursor.
25188
- * the currentChar is the one that precedes the cursor
25189
- * Returns color (fill) of char at the current cursor
25190
- * if the text object has a pattern or gradient for filler, it will return that.
25191
- * Unused by the library, is for the end user
25192
- * @return {String | TFiller} Character color (fill)
25565
+ /**
25566
+ * High level function to know the color of the cursor.
25567
+ * the currentChar is the one that precedes the cursor
25568
+ * Returns color (fill) of char at the current cursor
25569
+ * if the text object has a pattern or gradient for filler, it will return that.
25570
+ * Unused by the library, is for the end user
25571
+ * @return {String | TFiller} Character color (fill)
25193
25572
  */
25194
25573
  getCurrentCharColor() {
25195
25574
  const cp = this._getCurrentCharIndex();
25196
25575
  return this.getValueOfPropertyAt(cp.l, cp.c, FILL);
25197
25576
  }
25198
25577
 
25199
- /**
25200
- * Returns the cursor position for the getCurrent.. functions
25201
- * @private
25578
+ /**
25579
+ * Returns the cursor position for the getCurrent.. functions
25580
+ * @private
25202
25581
  */
25203
25582
  _getCurrentCharIndex() {
25204
25583
  const cursorPosition = this.get2DCursorLocation(this.selectionStart, true),
@@ -25214,52 +25593,52 @@ class IText extends ITextClickBehavior {
25214
25593
  super.dispose();
25215
25594
  }
25216
25595
  }
25217
- /**
25218
- * Index where text selection starts (or where cursor is when there is no selection)
25219
- * @type Number
25596
+ /**
25597
+ * Index where text selection starts (or where cursor is when there is no selection)
25598
+ * @type Number
25220
25599
  */
25221
- /**
25222
- * Index where text selection ends
25223
- * @type Number
25600
+ /**
25601
+ * Index where text selection ends
25602
+ * @type Number
25224
25603
  */
25225
- /**
25226
- * Color of text selection
25227
- * @type String
25604
+ /**
25605
+ * Color of text selection
25606
+ * @type String
25228
25607
  */
25229
- /**
25230
- * Indicates whether text is in editing mode
25231
- * @type Boolean
25608
+ /**
25609
+ * Indicates whether text is in editing mode
25610
+ * @type Boolean
25232
25611
  */
25233
- /**
25234
- * Indicates whether a text can be edited
25235
- * @type Boolean
25612
+ /**
25613
+ * Indicates whether a text can be edited
25614
+ * @type Boolean
25236
25615
  */
25237
- /**
25238
- * Border color of text object while it's in editing mode
25239
- * @type String
25616
+ /**
25617
+ * Border color of text object while it's in editing mode
25618
+ * @type String
25240
25619
  */
25241
- /**
25242
- * Width of cursor (in px)
25243
- * @type Number
25620
+ /**
25621
+ * Width of cursor (in px)
25622
+ * @type Number
25244
25623
  */
25245
- /**
25246
- * Color of text cursor color in editing mode.
25247
- * if not set (default) will take color from the text.
25248
- * if set to a color value that fabric can understand, it will
25249
- * be used instead of the color of the text at the current position.
25250
- * @type String
25624
+ /**
25625
+ * Color of text cursor color in editing mode.
25626
+ * if not set (default) will take color from the text.
25627
+ * if set to a color value that fabric can understand, it will
25628
+ * be used instead of the color of the text at the current position.
25629
+ * @type String
25251
25630
  */
25252
- /**
25253
- * Delay between cursor blink (in ms)
25254
- * @type Number
25631
+ /**
25632
+ * Delay between cursor blink (in ms)
25633
+ * @type Number
25255
25634
  */
25256
- /**
25257
- * Duration of cursor fade in (in ms)
25258
- * @type Number
25635
+ /**
25636
+ * Duration of cursor fade in (in ms)
25637
+ * @type Number
25259
25638
  */
25260
- /**
25261
- * Indicates whether internal text char widths can be cached
25262
- * @type Boolean
25639
+ /**
25640
+ * Indicates whether internal text char widths can be cached
25641
+ * @type Boolean
25263
25642
  */
25264
25643
  _defineProperty(IText, "ownDefaults", iTextDefaultValues);
25265
25644
  _defineProperty(IText, "type", 'IText');
@@ -25281,11 +25660,11 @@ const textboxDefaultValues = {
25281
25660
 
25282
25661
  // @TODO this is not complete
25283
25662
 
25284
- /**
25285
- * Textbox class, based on IText, allows the user to resize the text rectangle
25286
- * and wraps lines automatically. Textboxes have their Y scaling locked, the
25287
- * user can only change width. Height is adjusted automatically based on the
25288
- * wrapping of lines.
25663
+ /**
25664
+ * Textbox class, based on IText, allows the user to resize the text rectangle
25665
+ * and wraps lines automatically. Textboxes have their Y scaling locked, the
25666
+ * user can only change width. Height is adjusted automatically based on the
25667
+ * wrapping of lines.
25289
25668
  */
25290
25669
  class Textbox extends IText {
25291
25670
  static getDefaults() {
@@ -25295,22 +25674,23 @@ class Textbox extends IText {
25295
25674
  };
25296
25675
  }
25297
25676
 
25298
- /**
25299
- * Constructor
25300
- * @param {String} text Text string
25301
- * @param {Object} [options] Options object
25677
+ /**
25678
+ * Constructor
25679
+ * @param {String} text Text string
25680
+ * @param {Object} [options] Options object
25302
25681
  */
25303
25682
  constructor(text, options) {
25304
25683
  super(text, {
25305
25684
  ...Textbox.ownDefaults,
25306
25685
  ...options
25307
25686
  });
25687
+ this.initializeEventListeners();
25308
25688
  }
25309
25689
 
25310
- /**
25311
- * Creates the default control object.
25312
- * If you prefer to have on instance of controls shared among all objects
25313
- * make this function return an empty object and add controls to the ownDefaults object
25690
+ /**
25691
+ * Creates the default control object.
25692
+ * If you prefer to have on instance of controls shared among all objects
25693
+ * make this function return an empty object and add controls to the ownDefaults object
25314
25694
  */
25315
25695
  static createControls() {
25316
25696
  return {
@@ -25318,11 +25698,11 @@ class Textbox extends IText {
25318
25698
  };
25319
25699
  }
25320
25700
 
25321
- /**
25322
- * Unlike superclass's version of this function, Textbox does not update
25323
- * its width.
25324
- * @private
25325
- * @override
25701
+ /**
25702
+ * Unlike superclass's version of this function, Textbox does not update
25703
+ * its width.
25704
+ * @private
25705
+ * @override
25326
25706
  */
25327
25707
  initDimensions() {
25328
25708
  if (!this.initialized) {
@@ -25351,9 +25731,9 @@ class Textbox extends IText {
25351
25731
  this.height = this.calcTextHeight();
25352
25732
  }
25353
25733
 
25354
- /**
25355
- * Advanced dimensions calculation using new layout engine
25356
- * @private
25734
+ /**
25735
+ * Advanced dimensions calculation using new layout engine
25736
+ * @private
25357
25737
  */
25358
25738
  initDimensionsAdvanced() {
25359
25739
  if (!this.initialized) {
@@ -25408,9 +25788,9 @@ class Textbox extends IText {
25408
25788
  this.dirty = true;
25409
25789
  }
25410
25790
 
25411
- /**
25412
- * Generate style map from new layout format
25413
- * @private
25791
+ /**
25792
+ * Generate style map from new layout format
25793
+ * @private
25414
25794
  */
25415
25795
  _generateStyleMapFromLayout(layout) {
25416
25796
  const map = {};
@@ -25432,12 +25812,12 @@ class Textbox extends IText {
25432
25812
  return map;
25433
25813
  }
25434
25814
 
25435
- /**
25436
- * Generate an object that translates the style object so that it is
25437
- * broken up by visual lines (new lines and automatic wrapping).
25438
- * The original text styles object is broken up by actual lines (new lines only),
25439
- * which is only sufficient for Text / IText
25440
- * @private
25815
+ /**
25816
+ * Generate an object that translates the style object so that it is
25817
+ * broken up by visual lines (new lines and automatic wrapping).
25818
+ * The original text styles object is broken up by actual lines (new lines only),
25819
+ * which is only sufficient for Text / IText
25820
+ * @private
25441
25821
  */
25442
25822
  _generateStyleMap(textInfo) {
25443
25823
  let realLineCount = 0,
@@ -25464,10 +25844,10 @@ class Textbox extends IText {
25464
25844
  return map;
25465
25845
  }
25466
25846
 
25467
- /**
25468
- * Returns true if object has a style property or has it on a specified line
25469
- * @param {Number} lineIndex
25470
- * @return {Boolean}
25847
+ /**
25848
+ * Returns true if object has a style property or has it on a specified line
25849
+ * @param {Number} lineIndex
25850
+ * @return {Boolean}
25471
25851
  */
25472
25852
  styleHas(property, lineIndex) {
25473
25853
  if (this._styleMap && !this.isWrapping) {
@@ -25479,10 +25859,10 @@ class Textbox extends IText {
25479
25859
  return super.styleHas(property, lineIndex);
25480
25860
  }
25481
25861
 
25482
- /**
25483
- * Returns true if object has no styling or no styling in a line
25484
- * @param {Number} lineIndex , lineIndex is on wrapped lines.
25485
- * @return {Boolean}
25862
+ /**
25863
+ * Returns true if object has no styling or no styling in a line
25864
+ * @param {Number} lineIndex , lineIndex is on wrapped lines.
25865
+ * @return {Boolean}
25486
25866
  */
25487
25867
  isEmptyStyles(lineIndex) {
25488
25868
  if (!this.styles) {
@@ -25519,11 +25899,11 @@ class Textbox extends IText {
25519
25899
  return true;
25520
25900
  }
25521
25901
 
25522
- /**
25523
- * @protected
25524
- * @param {Number} lineIndex
25525
- * @param {Number} charIndex
25526
- * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined
25902
+ /**
25903
+ * @protected
25904
+ * @param {Number} lineIndex
25905
+ * @param {Number} charIndex
25906
+ * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined
25527
25907
  */
25528
25908
  _getStyleDeclaration(lineIndex, charIndex) {
25529
25909
  if (this._styleMap && !this.isWrapping) {
@@ -25537,59 +25917,59 @@ class Textbox extends IText {
25537
25917
  return super._getStyleDeclaration(lineIndex, charIndex);
25538
25918
  }
25539
25919
 
25540
- /**
25541
- * @param {Number} lineIndex
25542
- * @param {Number} charIndex
25543
- * @param {Object} style
25544
- * @private
25920
+ /**
25921
+ * @param {Number} lineIndex
25922
+ * @param {Number} charIndex
25923
+ * @param {Object} style
25924
+ * @private
25545
25925
  */
25546
25926
  _setStyleDeclaration(lineIndex, charIndex, style) {
25547
25927
  const map = this._styleMap[lineIndex];
25548
25928
  super._setStyleDeclaration(map.line, map.offset + charIndex, style);
25549
25929
  }
25550
25930
 
25551
- /**
25552
- * @param {Number} lineIndex
25553
- * @param {Number} charIndex
25554
- * @private
25931
+ /**
25932
+ * @param {Number} lineIndex
25933
+ * @param {Number} charIndex
25934
+ * @private
25555
25935
  */
25556
25936
  _deleteStyleDeclaration(lineIndex, charIndex) {
25557
25937
  const map = this._styleMap[lineIndex];
25558
25938
  super._deleteStyleDeclaration(map.line, map.offset + charIndex);
25559
25939
  }
25560
25940
 
25561
- /**
25562
- * probably broken need a fix
25563
- * Returns the real style line that correspond to the wrapped lineIndex line
25564
- * Used just to verify if the line does exist or not.
25565
- * @param {Number} lineIndex
25566
- * @returns {Boolean} if the line exists or not
25567
- * @private
25941
+ /**
25942
+ * probably broken need a fix
25943
+ * Returns the real style line that correspond to the wrapped lineIndex line
25944
+ * Used just to verify if the line does exist or not.
25945
+ * @param {Number} lineIndex
25946
+ * @returns {Boolean} if the line exists or not
25947
+ * @private
25568
25948
  */
25569
25949
  _getLineStyle(lineIndex) {
25570
25950
  const map = this._styleMap[lineIndex];
25571
25951
  return !!this.styles[map.line];
25572
25952
  }
25573
25953
 
25574
- /**
25575
- * Set the line style to an empty object so that is initialized
25576
- * @param {Number} lineIndex
25577
- * @param {Object} style
25578
- * @private
25954
+ /**
25955
+ * Set the line style to an empty object so that is initialized
25956
+ * @param {Number} lineIndex
25957
+ * @param {Object} style
25958
+ * @private
25579
25959
  */
25580
25960
  _setLineStyle(lineIndex) {
25581
25961
  const map = this._styleMap[lineIndex];
25582
25962
  super._setLineStyle(map.line);
25583
25963
  }
25584
25964
 
25585
- /**
25586
- * Wraps text using the 'width' property of Textbox. First this function
25587
- * splits text on newlines, so we preserve newlines entered by the user.
25588
- * Then it wraps each line using the width of the Textbox by calling
25589
- * _wrapLine().
25590
- * @param {Array} lines The string array of text that is split into lines
25591
- * @param {Number} desiredWidth width you want to wrap to
25592
- * @returns {Array} Array of lines
25965
+ /**
25966
+ * Wraps text using the 'width' property of Textbox. First this function
25967
+ * splits text on newlines, so we preserve newlines entered by the user.
25968
+ * Then it wraps each line using the width of the Textbox by calling
25969
+ * _wrapLine().
25970
+ * @param {Array} lines The string array of text that is split into lines
25971
+ * @param {Number} desiredWidth width you want to wrap to
25972
+ * @returns {Array} Array of lines
25593
25973
  */
25594
25974
  _wrapText(lines, desiredWidth) {
25595
25975
  this.isWrapping = true;
@@ -25603,12 +25983,12 @@ class Textbox extends IText {
25603
25983
  return wrapped;
25604
25984
  }
25605
25985
 
25606
- /**
25607
- * For each line of text terminated by an hard line stop,
25608
- * measure each word width and extract the largest word from all.
25609
- * The returned words here are the one that at the end will be rendered.
25610
- * @param {string[]} lines the lines we need to measure
25611
- *
25986
+ /**
25987
+ * For each line of text terminated by an hard line stop,
25988
+ * measure each word width and extract the largest word from all.
25989
+ * The returned words here are the one that at the end will be rendered.
25990
+ * @param {string[]} lines the lines we need to measure
25991
+ *
25612
25992
  */
25613
25993
  getGraphemeDataForRender(lines) {
25614
25994
  const splitByGrapheme = this.splitByGrapheme,
@@ -25641,17 +26021,17 @@ class Textbox extends IText {
25641
26021
  };
25642
26022
  }
25643
26023
 
25644
- /**
25645
- * Helper function to measure a string of text, given its lineIndex and charIndex offset
25646
- * It gets called when charBounds are not available yet.
25647
- * Override if necessary
25648
- * Use with {@link Textbox#wordSplit}
25649
- *
25650
- * @param {CanvasRenderingContext2D} ctx
25651
- * @param {String} text
25652
- * @param {number} lineIndex
25653
- * @param {number} charOffset
25654
- * @returns {number}
26024
+ /**
26025
+ * Helper function to measure a string of text, given its lineIndex and charIndex offset
26026
+ * It gets called when charBounds are not available yet.
26027
+ * Override if necessary
26028
+ * Use with {@link Textbox#wordSplit}
26029
+ *
26030
+ * @param {CanvasRenderingContext2D} ctx
26031
+ * @param {String} text
26032
+ * @param {number} lineIndex
26033
+ * @param {number} charOffset
26034
+ * @returns {number}
25655
26035
  */
25656
26036
  _measureWord(word, lineIndex) {
25657
26037
  let charOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -25666,26 +26046,26 @@ class Textbox extends IText {
25666
26046
  return width;
25667
26047
  }
25668
26048
 
25669
- /**
25670
- * Override this method to customize word splitting
25671
- * Use with {@link Textbox#_measureWord}
25672
- * @param {string} value
25673
- * @returns {string[]} array of words
26049
+ /**
26050
+ * Override this method to customize word splitting
26051
+ * Use with {@link Textbox#_measureWord}
26052
+ * @param {string} value
26053
+ * @returns {string[]} array of words
25674
26054
  */
25675
26055
  wordSplit(value) {
25676
26056
  return value.split(this._wordJoiners);
25677
26057
  }
25678
26058
 
25679
- /**
25680
- * Wraps a line of text using the width of the Textbox as desiredWidth
25681
- * and leveraging the known width o words from GraphemeData
25682
- * @private
25683
- * @param {Number} lineIndex
25684
- * @param {Number} desiredWidth width you want to wrap the line to
25685
- * @param {GraphemeData} graphemeData an object containing all the lines' words width.
25686
- * @param {Number} reservedSpace space to remove from wrapping for custom functionalities
25687
- * @returns {Array} Array of line(s) into which the given text is wrapped
25688
- * to.
26059
+ /**
26060
+ * Wraps a line of text using the width of the Textbox as desiredWidth
26061
+ * and leveraging the known width o words from GraphemeData
26062
+ * @private
26063
+ * @param {Number} lineIndex
26064
+ * @param {Number} desiredWidth width you want to wrap the line to
26065
+ * @param {GraphemeData} graphemeData an object containing all the lines' words width.
26066
+ * @param {Number} reservedSpace space to remove from wrapping for custom functionalities
26067
+ * @returns {Array} Array of line(s) into which the given text is wrapped
26068
+ * to.
25689
26069
  */
25690
26070
  _wrapLine(lineIndex, desiredWidth, _ref) {
25691
26071
  let {
@@ -25743,11 +26123,11 @@ class Textbox extends IText {
25743
26123
  return graphemeLines;
25744
26124
  }
25745
26125
 
25746
- /**
25747
- * Detect if the text line is ended with an hard break
25748
- * text and itext do not have wrapping, return false
25749
- * @param {Number} lineIndex text to split
25750
- * @return {Boolean}
26126
+ /**
26127
+ * Detect if the text line is ended with an hard break
26128
+ * text and itext do not have wrapping, return false
26129
+ * @param {Number} lineIndex text to split
26130
+ * @return {Boolean}
25751
26131
  */
25752
26132
  isEndOfWrapping(lineIndex) {
25753
26133
  if (!this._styleMap[lineIndex + 1]) {
@@ -25761,12 +26141,12 @@ class Textbox extends IText {
25761
26141
  return false;
25762
26142
  }
25763
26143
 
25764
- /**
25765
- * Detect if a line has a linebreak and so we need to account for it when moving
25766
- * and counting style.
25767
- * This is important only for splitByGrapheme at the end of wrapping.
25768
- * If we are not wrapping the offset is always 1
25769
- * @return Number
26144
+ /**
26145
+ * Detect if a line has a linebreak and so we need to account for it when moving
26146
+ * and counting style.
26147
+ * This is important only for splitByGrapheme at the end of wrapping.
26148
+ * If we are not wrapping the offset is always 1
26149
+ * @return Number
25770
26150
  */
25771
26151
  missingNewlineOffset(lineIndex, skipWrapping) {
25772
26152
  if (this.splitByGrapheme && !skipWrapping) {
@@ -25775,12 +26155,12 @@ class Textbox extends IText {
25775
26155
  return 1;
25776
26156
  }
25777
26157
 
25778
- /**
25779
- * Gets lines of text to render in the Textbox. This function calculates
25780
- * text wrapping on the fly every time it is called.
25781
- * @param {String} text text to split
25782
- * @returns {Array} Array of lines in the Textbox.
25783
- * @override
26158
+ /**
26159
+ * Gets lines of text to render in the Textbox. This function calculates
26160
+ * text wrapping on the fly every time it is called.
26161
+ * @param {String} text text to split
26162
+ * @returns {Array} Array of lines in the Textbox.
26163
+ * @override
25784
26164
  */
25785
26165
  _splitTextIntoLines(text) {
25786
26166
  const newText = super._splitTextIntoLines(text),
@@ -25812,31 +26192,148 @@ class Textbox extends IText {
25812
26192
  }
25813
26193
  }
25814
26194
 
25815
- /**
25816
- * Returns object representation of an instance
25817
- * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
25818
- * @return {Object} object representation of an instance
26195
+ /**
26196
+ * Initialize event listeners for safety snap functionality
26197
+ * @private
26198
+ */
26199
+ initializeEventListeners() {
26200
+ var _this$canvas;
26201
+ // Track which side is being used for resize to handle position compensation
26202
+ let resizeOrigin = null;
26203
+
26204
+ // Detect resize origin during resizing
26205
+ this.on('resizing', e => {
26206
+ // Check transform origin to determine which side is being resized
26207
+ if (e.transform) {
26208
+ const {
26209
+ originX
26210
+ } = e.transform;
26211
+ // originX tells us which side is the anchor - opposite side is being dragged
26212
+ resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;
26213
+ } else if (e.originX) {
26214
+ const {
26215
+ originX
26216
+ } = e;
26217
+ resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;
26218
+ }
26219
+ });
26220
+
26221
+ // Only trigger safety snap after resize is complete (not during)
26222
+ // Use 'modified' event which fires after user releases the mouse
26223
+ this.on('modified', () => {
26224
+ const currentResizeOrigin = resizeOrigin; // Capture the value before reset
26225
+ // Small delay to ensure text layout is updated
26226
+ setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);
26227
+ resizeOrigin = null; // Reset after capturing
26228
+ });
26229
+
26230
+ // Also listen to canvas-level modified event as backup
26231
+ (_this$canvas = this.canvas) === null || _this$canvas === void 0 || _this$canvas.on('object:modified', e => {
26232
+ if (e.target === this) {
26233
+ const currentResizeOrigin = resizeOrigin; // Capture the value before reset
26234
+ setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);
26235
+ resizeOrigin = null; // Reset after capturing
26236
+ }
26237
+ });
26238
+ }
26239
+
26240
+ /**
26241
+ * Safety snap to prevent glyph clipping after manual resize.
26242
+ * Similar to Polotno - checks if any glyphs are too close to edges
26243
+ * and automatically expands width if needed.
26244
+ * @private
26245
+ * @param resizeOrigin - Which side was used for resizing ('left' or 'right')
26246
+ */
26247
+ safetySnapWidth(resizeOrigin) {
26248
+ // For Textbox objects, we always want to check for clipping regardless of isWrapping flag
26249
+ if (!this._textLines || this.type.toLowerCase() !== 'textbox' || this._textLines.length === 0) {
26250
+ return;
26251
+ }
26252
+ const lineCount = this._textLines.length;
26253
+ if (lineCount === 0) return;
26254
+ let maxRequiredWidth = 0; // Width including RTL buffer
26255
+
26256
+ for (let i = 0; i < lineCount; i++) {
26257
+ const lineText = this._textLines[i].join(''); // Convert grapheme array to string
26258
+ const lineWidth = this.getLineWidth(i);
26259
+
26260
+ // RTL detection - regex for Arabic, Hebrew, and other RTL characters
26261
+ const rtlRegex = /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/;
26262
+ if (rtlRegex.test(lineText)) {
26263
+ // Add minimal RTL compensation buffer - just enough to prevent clipping
26264
+ const rtlBuffer = (this.fontSize || 16) * 0.15; // 15% of font size (much smaller)
26265
+ maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth + rtlBuffer);
26266
+ } else {
26267
+ maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth);
26268
+ }
26269
+ }
26270
+
26271
+ // Safety margin - how close glyphs can get before we snap
26272
+ const safetyThreshold = 2; // px - very subtle trigger
26273
+
26274
+ if (maxRequiredWidth > this.width - safetyThreshold) {
26275
+ var _this$canvas2;
26276
+ // Set width to exactly what's needed + minimal safety margin
26277
+ const newWidth = maxRequiredWidth + 1; // Add just 1px safety margin
26278
+
26279
+ // Store original position before width change
26280
+ const originalLeft = this.left;
26281
+ const originalTop = this.top;
26282
+ const widthIncrease = newWidth - this.width;
26283
+
26284
+ // Change width
26285
+ this.set('width', newWidth);
26286
+
26287
+ // Force text layout recalculation
26288
+ this.initDimensions();
26289
+
26290
+ // Only compensate position when resizing from left handle
26291
+ // Right handle resize doesn't shift the text position
26292
+ if (resizeOrigin === 'left') {
26293
+ // When resizing from left, the expansion pushes text right
26294
+ // Compensate by moving the textbox left by the width increase
26295
+ this.set({
26296
+ 'left': originalLeft - widthIncrease,
26297
+ 'top': originalTop
26298
+ });
26299
+ }
26300
+ this.setCoords();
26301
+
26302
+ // Also refresh the overlay editor if it exists
26303
+ if (this.__overlayEditor) {
26304
+ setTimeout(() => {
26305
+ this.__overlayEditor.refresh();
26306
+ }, 0);
26307
+ }
26308
+ (_this$canvas2 = this.canvas) === null || _this$canvas2 === void 0 || _this$canvas2.requestRenderAll();
26309
+ }
26310
+ }
26311
+
26312
+ /**
26313
+ * Returns object representation of an instance
26314
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
26315
+ * @return {Object} object representation of an instance
25819
26316
  */
25820
26317
  toObject() {
25821
26318
  let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
25822
26319
  return super.toObject(['minWidth', 'splitByGrapheme', ...propertiesToInclude]);
25823
26320
  }
25824
26321
  }
25825
- /**
25826
- * Minimum width of textbox, in pixels.
25827
- * @type Number
25828
- */
25829
- /**
25830
- * Minimum calculated width of a textbox, in pixels.
25831
- * fixed to 2 so that an empty textbox cannot go to 0
25832
- * and is still selectable without text.
25833
- * @type Number
25834
- */
25835
- /**
25836
- * Use this boolean property in order to split strings that have no white space concept.
25837
- * this is a cheap way to help with chinese/japanese
25838
- * @type Boolean
25839
- * @since 2.6.0
26322
+ /**
26323
+ * Minimum width of textbox, in pixels.
26324
+ * @type Number
26325
+ */
26326
+ /**
26327
+ * Minimum calculated width of a textbox, in pixels.
26328
+ * fixed to 2 so that an empty textbox cannot go to 0
26329
+ * and is still selectable without text.
26330
+ * @type Number
26331
+ */
26332
+ /**
26333
+ * Use this boolean property in order to split strings that have no white space concept.
26334
+ * this is a cheap way to help with chinese/japanese
26335
+ * @type Boolean
26336
+ * @since 2.6.0
25840
26337
  */
25841
26338
  _defineProperty(Textbox, "type", 'Textbox');
25842
26339
  _defineProperty(Textbox, "textLayoutProperties", [...IText.textLayoutProperties, 'width']);