@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
package/dist/index.js CHANGED
@@ -360,7 +360,7 @@
360
360
  }
361
361
  const cache = new Cache();
362
362
 
363
- var version = "7.0.0-beta1";
363
+ var version = "7.0.1-beta1";
364
364
 
365
365
  // use this syntax so babel plugin see this import here
366
366
  const VERSION = version;
@@ -18679,8 +18679,8 @@
18679
18679
  // Global measurement context - reused for performance
18680
18680
  let measurementContext = null;
18681
18681
 
18682
- /**
18683
- * Get or create the shared measurement context
18682
+ /**
18683
+ * Get or create the shared measurement context
18684
18684
  */
18685
18685
  function getMeasurementContext() {
18686
18686
  if (!measurementContext) {
@@ -18693,8 +18693,8 @@
18693
18693
  return measurementContext;
18694
18694
  }
18695
18695
 
18696
- /**
18697
- * Measure a single grapheme
18696
+ /**
18697
+ * Measure a single grapheme
18698
18698
  */
18699
18699
  function measureGrapheme(grapheme, options, ctx) {
18700
18700
  // Check cache first
@@ -18727,8 +18727,8 @@
18727
18727
  return measurement;
18728
18728
  }
18729
18729
 
18730
- /**
18731
- * Measure a grapheme with kerning relative to previous character
18730
+ /**
18731
+ * Measure a grapheme with kerning relative to previous character
18732
18732
  */
18733
18733
  function measureGraphemeWithKerning(grapheme, previousGrapheme, options, ctx) {
18734
18734
  // Get individual measurement
@@ -18769,8 +18769,8 @@
18769
18769
  };
18770
18770
  }
18771
18771
 
18772
- /**
18773
- * Get font metrics for layout calculations
18772
+ /**
18773
+ * Get font metrics for layout calculations
18774
18774
  */
18775
18775
  function getFontMetrics(options) {
18776
18776
  var _metrics$fontBounding, _metrics$fontBounding2, _metrics$actualBoundi, _metrics$actualBoundi2;
@@ -18805,8 +18805,8 @@
18805
18805
  return result;
18806
18806
  }
18807
18807
 
18808
- /**
18809
- * Apply font styling to canvas context
18808
+ /**
18809
+ * Apply font styling to canvas context
18810
18810
  */
18811
18811
  function applyFontStyle(ctx, options) {
18812
18812
  const fontDeclaration = getFontDeclaration(options);
@@ -18823,8 +18823,8 @@
18823
18823
  ctx.textBaseline = 'alphabetic';
18824
18824
  }
18825
18825
 
18826
- /**
18827
- * Generate font declaration string
18826
+ /**
18827
+ * Generate font declaration string
18828
18828
  */
18829
18829
  function getFontDeclaration(options) {
18830
18830
  const {
@@ -18839,8 +18839,8 @@
18839
18839
  return `${fontStyle} ${fontWeight} ${fontSize}px ${normalizedFamily}`;
18840
18840
  }
18841
18841
 
18842
- /**
18843
- * LRU Cache implementation for measurements
18842
+ /**
18843
+ * LRU Cache implementation for measurements
18844
18844
  */
18845
18845
  class LRUCache {
18846
18846
  constructor() {
@@ -18902,8 +18902,8 @@
18902
18902
  }
18903
18903
  }
18904
18904
 
18905
- /**
18906
- * Advanced measurement cache with font-aware keys
18905
+ /**
18906
+ * Advanced measurement cache with font-aware keys
18907
18907
  */
18908
18908
  class MeasurementCache {
18909
18909
  constructor() {
@@ -18930,8 +18930,8 @@
18930
18930
  }
18931
18931
  }
18932
18932
 
18933
- /**
18934
- * Kerning cache for character pairs
18933
+ /**
18934
+ * Kerning cache for character pairs
18935
18935
  */
18936
18936
  class KerningCache {
18937
18937
  constructor() {
@@ -18959,8 +18959,8 @@
18959
18959
  }
18960
18960
  }
18961
18961
 
18962
- /**
18963
- * Font metrics cache
18962
+ /**
18963
+ * Font metrics cache
18964
18964
  */
18965
18965
  class FontMetricsCache {
18966
18966
  constructor() {
@@ -18987,17 +18987,17 @@
18987
18987
  const kerningCache = new KerningCache();
18988
18988
  const fontMetricsCache = new FontMetricsCache();
18989
18989
 
18990
- /**
18991
- * Unicode and Internationalization Support
18992
- *
18993
- * Enhanced Unicode handling for complex scripts, RTL/LTR text,
18994
- * and grapheme cluster boundary detection.
18990
+ /**
18991
+ * Unicode and Internationalization Support
18992
+ *
18993
+ * Enhanced Unicode handling for complex scripts, RTL/LTR text,
18994
+ * and grapheme cluster boundary detection.
18995
18995
  */
18996
18996
 
18997
18997
 
18998
- /**
18999
- * Enhanced grapheme segmentation using Intl.Segmenter when available
19000
- * with fallback to existing graphemeSplit implementation
18998
+ /**
18999
+ * Enhanced grapheme segmentation using Intl.Segmenter when available
19000
+ * with fallback to existing graphemeSplit implementation
19001
19001
  */
19002
19002
  function segmentGraphemes(text) {
19003
19003
  // Use native Intl.Segmenter if available
@@ -19017,15 +19017,15 @@
19017
19017
  return graphemeSplit(text);
19018
19018
  }
19019
19019
 
19020
- /**
19021
- * Ellipsis Text Truncation System
19022
- *
19023
- * Implements text truncation with ellipsis when content exceeds bounds,
19024
- * using binary search for optimal truncation points.
19020
+ /**
19021
+ * Ellipsis Text Truncation System
19022
+ *
19023
+ * Implements text truncation with ellipsis when content exceeds bounds,
19024
+ * using binary search for optimal truncation points.
19025
19025
  */
19026
19026
 
19027
- /**
19028
- * Apply ellipsis truncation to text based on width/height constraints
19027
+ /**
19028
+ * Apply ellipsis truncation to text based on width/height constraints
19029
19029
  */
19030
19030
  function applyEllipsis(text, options) {
19031
19031
  const {
@@ -19095,8 +19095,8 @@
19095
19095
  };
19096
19096
  }
19097
19097
 
19098
- /**
19099
- * Truncate text based on width constraint using binary search
19098
+ /**
19099
+ * Truncate text based on width constraint using binary search
19100
19100
  */
19101
19101
  function truncateByWidth(text, maxWidth, ellipsisChar, ellipsisWidth, measureFn) {
19102
19102
  const graphemes = segmentGraphemes(text);
@@ -19146,8 +19146,8 @@
19146
19146
  };
19147
19147
  }
19148
19148
 
19149
- /**
19150
- * Truncate text based on height constraint
19149
+ /**
19150
+ * Truncate text based on height constraint
19151
19151
  */
19152
19152
  function truncateByHeight(text, maxHeight, ellipsisChar, measureFn) {
19153
19153
  var _measureFn;
@@ -19195,19 +19195,19 @@
19195
19195
  return truncateByWidth(lines[0], firstLineWidth, ellipsisChar, 0, measureFn);
19196
19196
  }
19197
19197
 
19198
- /**
19199
- * Core Text Layout Engine
19200
- *
19201
- * Implements Konva-compatible text layout with support for:
19202
- * - Multiple wrap modes (word/char/none)
19203
- * - Ellipsis truncation
19204
- * - Justify alignment with proper space distribution
19205
- * - RTL/LTR text direction
19206
- * - Advanced grapheme handling
19198
+ /**
19199
+ * Core Text Layout Engine
19200
+ *
19201
+ * Implements Konva-compatible text layout with support for:
19202
+ * - Multiple wrap modes (word/char/none)
19203
+ * - Ellipsis truncation
19204
+ * - Justify alignment with proper space distribution
19205
+ * - RTL/LTR text direction
19206
+ * - Advanced grapheme handling
19207
19207
  */
19208
19208
 
19209
- /**
19210
- * Main text layout function - converts text and options into positioned layout
19209
+ /**
19210
+ * Main text layout function - converts text and options into positioned layout
19211
19211
  */
19212
19212
  function layoutText(options) {
19213
19213
  var _ellipsisResult;
@@ -19326,8 +19326,8 @@
19326
19326
  };
19327
19327
  }
19328
19328
 
19329
- /**
19330
- * Layout a single paragraph with wrapping
19329
+ /**
19330
+ * Layout a single paragraph with wrapping
19331
19331
  */
19332
19332
  function layoutParagraph(text, options) {
19333
19333
  const {
@@ -19362,8 +19362,8 @@
19362
19362
  return layoutLines;
19363
19363
  }
19364
19364
 
19365
- /**
19366
- * Layout a single line of text (no wrapping)
19365
+ /**
19366
+ * Layout a single line of text (no wrapping)
19367
19367
  */
19368
19368
  function layoutSingleLine(text, options) {
19369
19369
  let textOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -19433,8 +19433,8 @@
19433
19433
  };
19434
19434
  }
19435
19435
 
19436
- /**
19437
- * Word-based wrapping algorithm
19436
+ /**
19437
+ * Word-based wrapping algorithm
19438
19438
  */
19439
19439
  function wrapByWords(text, maxWidth, options) {
19440
19440
  const lines = [];
@@ -19467,8 +19467,8 @@
19467
19467
  return lines.length > 0 ? lines : [''];
19468
19468
  }
19469
19469
 
19470
- /**
19471
- * Character-based wrapping algorithm
19470
+ /**
19471
+ * Character-based wrapping algorithm
19472
19472
  */
19473
19473
  function wrapByCharacters(text, maxWidth, options) {
19474
19474
  const lines = [];
@@ -19490,8 +19490,8 @@
19490
19490
  return lines.length > 0 ? lines : [''];
19491
19491
  }
19492
19492
 
19493
- /**
19494
- * Apply text alignment to lines
19493
+ /**
19494
+ * Apply text alignment to lines
19495
19495
  */
19496
19496
  function applyAlignment(lines, align, containerWidth, options) {
19497
19497
  return lines.map(line => {
@@ -19525,8 +19525,8 @@
19525
19525
  });
19526
19526
  }
19527
19527
 
19528
- /**
19529
- * Apply justify alignment by expanding spaces
19528
+ /**
19529
+ * Apply justify alignment by expanding spaces
19530
19530
  */
19531
19531
  function applyJustification(line, containerWidth, options) {
19532
19532
  const spaces = line.graphemes.filter(g => /\s/.test(g)).length;
@@ -19549,8 +19549,8 @@
19549
19549
  return line;
19550
19550
  }
19551
19551
 
19552
- /**
19553
- * Calculate vertical alignment offset
19552
+ /**
19553
+ * Calculate vertical alignment offset
19554
19554
  */
19555
19555
  function calculateVerticalOffset(contentHeight, containerHeight, align) {
19556
19556
  switch (align) {
@@ -19564,8 +19564,8 @@
19564
19564
  }
19565
19565
  }
19566
19566
 
19567
- /**
19568
- * Handle height overflow with ellipsis
19567
+ /**
19568
+ * Handle height overflow with ellipsis
19569
19569
  */
19570
19570
  function handleHeightOverflow(existingLines, overflowLine, remainingHeight, options) {
19571
19571
  // If ellipsis is enabled, try to fit part of the overflow line
@@ -19594,8 +19594,8 @@
19594
19594
  };
19595
19595
  }
19596
19596
 
19597
- /**
19598
- * Create empty line for empty paragraphs
19597
+ /**
19598
+ * Create empty line for empty paragraphs
19599
19599
  */
19600
19600
  function createEmptyLine(options) {
19601
19601
  const height = options.fontSize * options.lineHeight;
@@ -19611,8 +19611,8 @@
19611
19611
  };
19612
19612
  }
19613
19613
 
19614
- /**
19615
- * Measure width of a line of text
19614
+ /**
19615
+ * Measure width of a line of text
19616
19616
  */
19617
19617
  function measureLineWidth(text, options) {
19618
19618
  const graphemes = segmentGraphemes(text);
@@ -19629,8 +19629,8 @@
19629
19629
  return width;
19630
19630
  }
19631
19631
 
19632
- /**
19633
- * Convert layout options to measurement options
19632
+ /**
19633
+ * Convert layout options to measurement options
19634
19634
  */
19635
19635
  function createMeasurementOptions(options) {
19636
19636
  return {
@@ -19873,15 +19873,15 @@
19873
19873
  }
19874
19874
  }
19875
19875
 
19876
- /**
19877
- * Browser Line Break Extraction
19878
- *
19879
- * Captures exact line breaks as rendered by the browser to ensure
19880
- * pixel-perfect consistency between DOM editing and canvas rendering.
19876
+ /**
19877
+ * Browser Line Break Extraction
19878
+ *
19879
+ * Captures exact line breaks as rendered by the browser to ensure
19880
+ * pixel-perfect consistency between DOM editing and canvas rendering.
19881
19881
  */
19882
19882
 
19883
- /**
19884
- * Segment text into graphemes safely using Intl.Segmenter or fallback
19883
+ /**
19884
+ * Segment text into graphemes safely using Intl.Segmenter or fallback
19885
19885
  */
19886
19886
  function segmentIntoGraphemes(text) {
19887
19887
  if (typeof Intl !== 'undefined' && Intl.Segmenter) {
@@ -19895,9 +19895,9 @@
19895
19895
  return Array.from(text);
19896
19896
  }
19897
19897
 
19898
- /**
19899
- * Extract line break information from a textarea by creating a mirror element
19900
- * with identical computed styles and measuring grapheme positions.
19898
+ /**
19899
+ * Extract line break information from a textarea by creating a mirror element
19900
+ * with identical computed styles and measuring grapheme positions.
19901
19901
  */
19902
19902
  function extractLinesFromDOM(textarea) {
19903
19903
  const text = textarea.value;
@@ -19992,16 +19992,16 @@
19992
19992
  }
19993
19993
  }
19994
19994
 
19995
- /**
19996
- * Create a hash of layout-affecting properties to detect when browser lines are still valid
19995
+ /**
19996
+ * Create a hash of layout-affecting properties to detect when browser lines are still valid
19997
19997
  */
19998
19998
  function createLayoutHash(target) {
19999
19999
  const properties = [target.text, target.width, target.height, target.fontFamily, target.fontSize, target.fontWeight, target.fontStyle, target.lineHeight, target.charSpacing, target.textAlign, target.direction];
20000
20000
  return properties.map(p => String(p)).join('|');
20001
20001
  }
20002
20002
 
20003
- /**
20004
- * Check if stored browser lines are still valid for the current target state
20003
+ /**
20004
+ * Check if stored browser lines are still valid for the current target state
20005
20005
  */
20006
20006
  function areBrowserLinesValid(target, storedHash) {
20007
20007
  if (!storedHash || !target.__lastBrowserLines) {
@@ -20011,24 +20011,24 @@
20011
20011
  return currentHash === storedHash;
20012
20012
  }
20013
20013
 
20014
- /**
20015
- * Store browser lines on a target object with validity hash
20014
+ /**
20015
+ * Store browser lines on a target object with validity hash
20016
20016
  */
20017
20017
  function storeBrowserLines(target, lines, layoutHash) {
20018
20018
  target.__lastBrowserLines = lines;
20019
20019
  target.__lastBrowserLinesHash = createLayoutHash(target);
20020
20020
  }
20021
20021
 
20022
- /**
20023
- * Clear stored browser lines from a target object
20022
+ /**
20023
+ * Clear stored browser lines from a target object
20024
20024
  */
20025
20025
  function clearBrowserLines(target) {
20026
20026
  delete target.__lastBrowserLines;
20027
20027
  delete target.__lastBrowserLinesHash;
20028
20028
  }
20029
20029
 
20030
- /**
20031
- * Get stored browser lines if they're still valid
20030
+ /**
20031
+ * Get stored browser lines if they're still valid
20032
20032
  */
20033
20033
  function getBrowserLines(target) {
20034
20034
  const lines = target.__lastBrowserLines;
@@ -20041,9 +20041,9 @@
20041
20041
 
20042
20042
  let measuringContext;
20043
20043
 
20044
- /**
20045
- * Return a context for measurement of text string.
20046
- * if created it gets stored for reuse
20044
+ /**
20045
+ * Return a context for measurement of text string.
20046
+ * if created it gets stored for reuse
20047
20047
  */
20048
20048
  function getMeasuringContext() {
20049
20049
  if (!measuringContext) {
@@ -20056,17 +20056,17 @@
20056
20056
  return measuringContext;
20057
20057
  }
20058
20058
 
20059
- /**
20060
- * Measure and return the info of a single grapheme.
20061
- * needs the the info of previous graphemes already filled
20062
- * Override to customize measuring
20059
+ /**
20060
+ * Measure and return the info of a single grapheme.
20061
+ * needs the the info of previous graphemes already filled
20062
+ * Override to customize measuring
20063
20063
  */
20064
20064
 
20065
20065
  // @TODO this is not complete
20066
20066
 
20067
- /**
20068
- * Text class
20069
- * @see {@link http://fabricjs.com/fabric-intro-part-2#text}
20067
+ /**
20068
+ * Text class
20069
+ * @see {@link http://fabricjs.com/fabric-intro-part-2#text}
20070
20070
  */
20071
20071
  class FabricText extends StyledText {
20072
20072
  static getDefaults() {
@@ -20077,11 +20077,11 @@
20077
20077
  }
20078
20078
  constructor(text, options) {
20079
20079
  super();
20080
- /**
20081
- * contains characters bounding boxes
20082
- * This variable is considered to be protected.
20083
- * But for how mixins are implemented right now, we can't leave it private
20084
- * @protected
20080
+ /**
20081
+ * contains characters bounding boxes
20082
+ * This variable is considered to be protected.
20083
+ * But for how mixins are implemented right now, we can't leave it private
20084
+ * @protected
20085
20085
  */
20086
20086
  _defineProperty(this, "__charBounds", []);
20087
20087
  Object.assign(this, FabricText.ownDefaults);
@@ -20098,9 +20098,9 @@
20098
20098
  this.setCoords();
20099
20099
  }
20100
20100
 
20101
- /**
20102
- * If text has a path, it will add the extra information needed
20103
- * for path and text calculations
20101
+ /**
20102
+ * If text has a path, it will add the extra information needed
20103
+ * for path and text calculations
20104
20104
  */
20105
20105
  setPathInfo() {
20106
20106
  const path = this.path;
@@ -20109,10 +20109,10 @@
20109
20109
  }
20110
20110
  }
20111
20111
 
20112
- /**
20113
- * @private
20114
- * Divides text into lines of text and lines of graphemes.
20115
- * Uses browser lines when available for pixel-perfect consistency.
20112
+ /**
20113
+ * @private
20114
+ * Divides text into lines of text and lines of graphemes.
20115
+ * Uses browser lines when available for pixel-perfect consistency.
20116
20116
  */
20117
20117
  _splitText() {
20118
20118
  // Check if we have valid browser lines and should use them
@@ -20128,9 +20128,9 @@
20128
20128
  return newLines;
20129
20129
  }
20130
20130
 
20131
- /**
20132
- * Create TextLinesInfo from browser-extracted lines
20133
- * @private
20131
+ /**
20132
+ * Create TextLinesInfo from browser-extracted lines
20133
+ * @private
20134
20134
  */
20135
20135
  _splitTextFromBrowserLines(browserLines) {
20136
20136
  const lines = [];
@@ -20164,10 +20164,10 @@
20164
20164
  return result;
20165
20165
  }
20166
20166
 
20167
- /**
20168
- * Initialize or update text dimensions.
20169
- * Updates this.width and this.height with the proper values.
20170
- * Does not return dimensions.
20167
+ /**
20168
+ * Initialize or update text dimensions.
20169
+ * Updates this.width and this.height with the proper values.
20170
+ * Does not return dimensions.
20171
20171
  */
20172
20172
  initDimensions() {
20173
20173
  // Use advanced layout if enabled
@@ -20190,11 +20190,12 @@
20190
20190
  }
20191
20191
  }
20192
20192
 
20193
- /**
20194
- * Enlarge space boxes and shift the others
20193
+ /**
20194
+ * Enlarge space boxes and shift the others
20195
20195
  */
20196
20196
  enlargeSpaces() {
20197
20197
  let diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;
20198
+ const isRtl = this.direction === 'rtl';
20198
20199
  for (let i = 0, len = this._textLines.length; i < len; i++) {
20199
20200
  if (this.textAlign !== JUSTIFY && (i === len - 1 || this.isEndOfWrapping(i))) {
20200
20201
  continue;
@@ -20205,33 +20206,62 @@
20205
20206
  if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {
20206
20207
  numberOfSpaces = spaces.length;
20207
20208
  diffSpace = (this.width - currentLineWidth) / numberOfSpaces;
20208
- for (let j = 0; j <= line.length; j++) {
20209
- charBound = this.__charBounds[i][j];
20210
- if (this._reSpaceAndTab.test(line[j])) {
20211
- charBound.width += diffSpace;
20212
- charBound.kernedWidth += diffSpace;
20213
- charBound.left += accumulatedSpace;
20214
- accumulatedSpace += diffSpace;
20215
- } else {
20216
- charBound.left += accumulatedSpace;
20209
+ if (isRtl) {
20210
+ for (let j = 0; j < line.length; j++) {
20211
+ if (this._reSpaceAndTab.test(line[j])) ;
20212
+ }
20213
+
20214
+ // For RTL, we need to work backwards through the visual positions
20215
+ // but still update logical positions correctly
20216
+ let spaceCount = 0;
20217
+ for (let j = 0; j <= line.length; j++) {
20218
+ charBound = this.__charBounds[i][j];
20219
+ if (charBound) {
20220
+ if (this._reSpaceAndTab.test(line[j])) {
20221
+ charBound.width += diffSpace;
20222
+ charBound.kernedWidth += diffSpace;
20223
+ spaceCount++;
20224
+ }
20225
+
20226
+ // For RTL, shift all characters to the right by the total expansion
20227
+ // minus the expansion that comes after this character
20228
+ const remainingSpaces = numberOfSpaces - spaceCount;
20229
+ const shiftAmount = remainingSpaces * diffSpace;
20230
+ charBound.left += shiftAmount;
20231
+ }
20232
+ }
20233
+ } else {
20234
+ // LTR processing (original logic)
20235
+ for (let j = 0; j <= line.length; j++) {
20236
+ charBound = this.__charBounds[i][j];
20237
+ if (charBound) {
20238
+ if (this._reSpaceAndTab.test(line[j])) {
20239
+ charBound.width += diffSpace;
20240
+ charBound.kernedWidth += diffSpace;
20241
+ charBound.left += accumulatedSpace;
20242
+ accumulatedSpace += diffSpace;
20243
+ } else {
20244
+ charBound.left += accumulatedSpace;
20245
+ }
20246
+ }
20217
20247
  }
20218
20248
  }
20219
20249
  }
20220
20250
  }
20221
20251
  }
20222
20252
 
20223
- /**
20224
- * Advanced layout using new text engine (Konva-compatible)
20225
- * @private
20253
+ /**
20254
+ * Advanced layout using new text engine (Konva-compatible)
20255
+ * @private
20226
20256
  */
20227
20257
  _layoutTextAdvanced() {
20228
20258
  const options = this._getAdvancedLayoutOptions();
20229
20259
  return layoutText(options);
20230
20260
  }
20231
20261
 
20232
- /**
20233
- * Get advanced layout options from current text properties
20234
- * @private
20262
+ /**
20263
+ * Get advanced layout options from current text properties
20264
+ * @private
20235
20265
  */
20236
20266
  _getAdvancedLayoutOptions() {
20237
20267
  return {
@@ -20253,9 +20283,9 @@
20253
20283
  };
20254
20284
  }
20255
20285
 
20256
- /**
20257
- * Map Fabric textAlign to Konva align format
20258
- * @private
20286
+ /**
20287
+ * Map Fabric textAlign to Konva align format
20288
+ * @private
20259
20289
  */
20260
20290
  _mapTextAlignToAlign(textAlign) {
20261
20291
  switch (textAlign) {
@@ -20276,8 +20306,8 @@
20276
20306
  }
20277
20307
  }
20278
20308
 
20279
- /**
20280
- * Enhanced initDimensions that uses advanced layout when enabled
20309
+ /**
20310
+ * Enhanced initDimensions that uses advanced layout when enabled
20281
20311
  */
20282
20312
  initDimensionsAdvanced() {
20283
20313
  if (!this.enableAdvancedLayout) {
@@ -20294,9 +20324,9 @@
20294
20324
  this.dirty = true;
20295
20325
  }
20296
20326
 
20297
- /**
20298
- * Convert new layout format to legacy _textLines and __charBounds format
20299
- * @private
20327
+ /**
20328
+ * Convert new layout format to legacy _textLines and __charBounds format
20329
+ * @private
20300
20330
  */
20301
20331
  _convertLayoutToLegacyFormat(layout) {
20302
20332
  this._textLines = layout.lines.map(line => line.graphemes);
@@ -20318,30 +20348,30 @@
20318
20348
  }
20319
20349
  }
20320
20350
 
20321
- /**
20322
- * Detect if the text line is ended with an hard break
20323
- * text and itext do not have wrapping, return false
20324
- * @return {Boolean}
20351
+ /**
20352
+ * Detect if the text line is ended with an hard break
20353
+ * text and itext do not have wrapping, return false
20354
+ * @return {Boolean}
20325
20355
  */
20326
20356
  isEndOfWrapping(lineIndex) {
20327
20357
  return lineIndex === this._textLines.length - 1;
20328
20358
  }
20329
20359
 
20330
- /**
20331
- * Detect if a line has a linebreak and so we need to account for it when moving
20332
- * and counting style.
20333
- * It return always 1 for text and Itext. Textbox has its own implementation
20334
- * @return Number
20360
+ /**
20361
+ * Detect if a line has a linebreak and so we need to account for it when moving
20362
+ * and counting style.
20363
+ * It return always 1 for text and Itext. Textbox has its own implementation
20364
+ * @return Number
20335
20365
  */
20336
20366
 
20337
20367
  missingNewlineOffset(_lineIndex) {
20338
20368
  return 1;
20339
20369
  }
20340
20370
 
20341
- /**
20342
- * Returns 2d representation (lineIndex and charIndex) of cursor
20343
- * @param {Number} selectionStart
20344
- * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
20371
+ /**
20372
+ * Returns 2d representation (lineIndex and charIndex) of cursor
20373
+ * @param {Number} selectionStart
20374
+ * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
20345
20375
  */
20346
20376
  get2DCursorLocation(selectionStart, skipWrapping) {
20347
20377
  const lines = skipWrapping ? this._unwrappedTextLines : this._textLines;
@@ -20361,24 +20391,24 @@
20361
20391
  };
20362
20392
  }
20363
20393
 
20364
- /**
20365
- * Returns string representation of an instance
20366
- * @return {String} String representation of text object
20394
+ /**
20395
+ * Returns string representation of an instance
20396
+ * @return {String} String representation of text object
20367
20397
  */
20368
20398
  toString() {
20369
20399
  return `#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`;
20370
20400
  }
20371
20401
 
20372
- /**
20373
- * Return the dimension and the zoom level needed to create a cache canvas
20374
- * big enough to host the object to be cached.
20375
- * @private
20376
- * @param {Object} dim.x width of object to be cached
20377
- * @param {Object} dim.y height of object to be cached
20378
- * @return {Object}.width width of canvas
20379
- * @return {Object}.height height of canvas
20380
- * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
20381
- * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
20402
+ /**
20403
+ * Return the dimension and the zoom level needed to create a cache canvas
20404
+ * big enough to host the object to be cached.
20405
+ * @private
20406
+ * @param {Object} dim.x width of object to be cached
20407
+ * @param {Object} dim.y height of object to be cached
20408
+ * @return {Object}.width width of canvas
20409
+ * @return {Object}.height height of canvas
20410
+ * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
20411
+ * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
20382
20412
  */
20383
20413
  _getCacheCanvasDimensions() {
20384
20414
  const dims = super._getCacheCanvasDimensions();
@@ -20388,9 +20418,9 @@
20388
20418
  return dims;
20389
20419
  }
20390
20420
 
20391
- /**
20392
- * @private
20393
- * @param {CanvasRenderingContext2D} ctx Context to render on
20421
+ /**
20422
+ * @private
20423
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20394
20424
  */
20395
20425
  _render(ctx) {
20396
20426
  const path = this.path;
@@ -20403,9 +20433,9 @@
20403
20433
  this._renderTextDecoration(ctx, 'linethrough');
20404
20434
  }
20405
20435
 
20406
- /**
20407
- * @private
20408
- * @param {CanvasRenderingContext2D} ctx Context to render on
20436
+ /**
20437
+ * @private
20438
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20409
20439
  */
20410
20440
  _renderText(ctx) {
20411
20441
  // Skip text rendering if in overlay editing mode
@@ -20421,15 +20451,15 @@
20421
20451
  }
20422
20452
  }
20423
20453
 
20424
- /**
20425
- * Set the font parameter of the context with the object properties or with charStyle
20426
- * @private
20427
- * @param {CanvasRenderingContext2D} ctx Context to render on
20428
- * @param {Object} [charStyle] object with font style properties
20429
- * @param {String} [charStyle.fontFamily] Font Family
20430
- * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )
20431
- * @param {String} [charStyle.fontWeight] Font weight
20432
- * @param {String} [charStyle.fontStyle] Font style (italic|normal)
20454
+ /**
20455
+ * Set the font parameter of the context with the object properties or with charStyle
20456
+ * @private
20457
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20458
+ * @param {Object} [charStyle] object with font style properties
20459
+ * @param {String} [charStyle.fontFamily] Font Family
20460
+ * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )
20461
+ * @param {String} [charStyle.fontWeight] Font weight
20462
+ * @param {String} [charStyle.fontStyle] Font style (italic|normal)
20433
20463
  */
20434
20464
  _setTextStyles(ctx, charStyle, forMeasuring) {
20435
20465
  ctx.textBaseline = 'alphabetic';
@@ -20449,11 +20479,11 @@
20449
20479
  ctx.font = this._getFontDeclaration(charStyle, forMeasuring);
20450
20480
  }
20451
20481
 
20452
- /**
20453
- * calculate and return the text Width measuring each line.
20454
- * @private
20455
- * @param {CanvasRenderingContext2D} ctx Context to render on
20456
- * @return {Number} Maximum width of Text object
20482
+ /**
20483
+ * calculate and return the text Width measuring each line.
20484
+ * @private
20485
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20486
+ * @return {Number} Maximum width of Text object
20457
20487
  */
20458
20488
  calcTextWidth() {
20459
20489
  let maxWidth = this.getLineWidth(0);
@@ -20466,23 +20496,23 @@
20466
20496
  return maxWidth;
20467
20497
  }
20468
20498
 
20469
- /**
20470
- * @private
20471
- * @param {String} method Method name ("fillText" or "strokeText")
20472
- * @param {CanvasRenderingContext2D} ctx Context to render on
20473
- * @param {String} line Text to render
20474
- * @param {Number} left Left position of text
20475
- * @param {Number} top Top position of text
20476
- * @param {Number} lineIndex Index of a line in a text
20499
+ /**
20500
+ * @private
20501
+ * @param {String} method Method name ("fillText" or "strokeText")
20502
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20503
+ * @param {String} line Text to render
20504
+ * @param {Number} left Left position of text
20505
+ * @param {Number} top Top position of text
20506
+ * @param {Number} lineIndex Index of a line in a text
20477
20507
  */
20478
20508
  _renderTextLine(method, ctx, line, left, top, lineIndex) {
20479
20509
  this._renderChars(method, ctx, line, left, top, lineIndex);
20480
20510
  }
20481
20511
 
20482
- /**
20483
- * Renders the text background for lines, taking care of style
20484
- * @private
20485
- * @param {CanvasRenderingContext2D} ctx Context to render on
20512
+ /**
20513
+ * Renders the text background for lines, taking care of style
20514
+ * @private
20515
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20486
20516
  */
20487
20517
  _renderTextLinesBackground(ctx) {
20488
20518
  if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {
@@ -20545,15 +20575,15 @@
20545
20575
  this._removeShadow(ctx);
20546
20576
  }
20547
20577
 
20548
- /**
20549
- * measure and return the width of a single character.
20550
- * possibly overridden to accommodate different measure logic or
20551
- * to hook some external lib for character measurement
20552
- * @private
20553
- * @param {String} _char, char to be measured
20554
- * @param {Object} charStyle style of char to be measured
20555
- * @param {String} [previousChar] previous char
20556
- * @param {Object} [prevCharStyle] style of previous char
20578
+ /**
20579
+ * measure and return the width of a single character.
20580
+ * possibly overridden to accommodate different measure logic or
20581
+ * to hook some external lib for character measurement
20582
+ * @private
20583
+ * @param {String} _char, char to be measured
20584
+ * @param {Object} charStyle style of char to be measured
20585
+ * @param {String} [previousChar] previous char
20586
+ * @param {Object} [prevCharStyle] style of previous char
20557
20587
  */
20558
20588
  _measureChar(_char, charStyle, previousChar, prevCharStyle) {
20559
20589
  const fontCache = cache.getFontCache(charStyle),
@@ -20598,19 +20628,19 @@
20598
20628
  };
20599
20629
  }
20600
20630
 
20601
- /**
20602
- * Computes height of character at given position
20603
- * @param {Number} line the line index number
20604
- * @param {Number} _char the character index number
20605
- * @return {Number} fontSize of the character
20631
+ /**
20632
+ * Computes height of character at given position
20633
+ * @param {Number} line the line index number
20634
+ * @param {Number} _char the character index number
20635
+ * @return {Number} fontSize of the character
20606
20636
  */
20607
20637
  getHeightOfChar(line, _char) {
20608
20638
  return this.getValueOfPropertyAt(line, _char, 'fontSize');
20609
20639
  }
20610
20640
 
20611
- /**
20612
- * measure a text line measuring all characters.
20613
- * @param {Number} lineIndex line number
20641
+ /**
20642
+ * measure a text line measuring all characters.
20643
+ * @param {Number} lineIndex line number
20614
20644
  */
20615
20645
  measureLine(lineIndex) {
20616
20646
  const lineInfo = this._measureLine(lineIndex);
@@ -20623,11 +20653,11 @@
20623
20653
  return lineInfo;
20624
20654
  }
20625
20655
 
20626
- /**
20627
- * measure every grapheme of a line, populating __charBounds
20628
- * @param {Number} lineIndex
20629
- * @return {Object} object.width total width of characters
20630
- * @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs
20656
+ /**
20657
+ * measure every grapheme of a line, populating __charBounds
20658
+ * @param {Number} lineIndex
20659
+ * @return {Object} object.width total width of characters
20660
+ * @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs
20631
20661
  */
20632
20662
  _measureLine(lineIndex) {
20633
20663
  let width = 0,
@@ -20690,13 +20720,13 @@
20690
20720
  };
20691
20721
  }
20692
20722
 
20693
- /**
20694
- * Calculate the angle and the left,top position of the char that follow a path.
20695
- * It appends it to graphemeInfo to be reused later at rendering
20696
- * @private
20697
- * @param {Number} positionInPath to be measured
20698
- * @param {GraphemeBBox} graphemeInfo current grapheme box information
20699
- * @param {Object} startingPoint position of the point
20723
+ /**
20724
+ * Calculate the angle and the left,top position of the char that follow a path.
20725
+ * It appends it to graphemeInfo to be reused later at rendering
20726
+ * @private
20727
+ * @param {Number} positionInPath to be measured
20728
+ * @param {GraphemeBBox} graphemeInfo current grapheme box information
20729
+ * @param {Object} startingPoint position of the point
20700
20730
  */
20701
20731
  _setGraphemeOnPath(positionInPath, graphemeInfo) {
20702
20732
  const centerPosition = positionInPath + graphemeInfo.kernedWidth / 2,
@@ -20709,13 +20739,13 @@
20709
20739
  graphemeInfo.angle = info.angle + (this.pathSide === RIGHT ? Math.PI : 0);
20710
20740
  }
20711
20741
 
20712
- /**
20713
- *
20714
- * @param {String} grapheme to be measured
20715
- * @param {Number} lineIndex index of the line where the char is
20716
- * @param {Number} charIndex position in the line
20717
- * @param {String} [prevGrapheme] character preceding the one to be measured
20718
- * @returns {GraphemeBBox} grapheme bbox
20742
+ /**
20743
+ *
20744
+ * @param {String} grapheme to be measured
20745
+ * @param {Number} lineIndex index of the line where the char is
20746
+ * @param {Number} charIndex position in the line
20747
+ * @param {String} [prevGrapheme] character preceding the one to be measured
20748
+ * @returns {GraphemeBBox} grapheme bbox
20719
20749
  */
20720
20750
  _getGraphemeBox(grapheme, lineIndex, charIndex, prevGrapheme, skipLeft) {
20721
20751
  const style = this.getCompleteStyleDeclaration(lineIndex, charIndex),
@@ -20743,10 +20773,10 @@
20743
20773
  return box;
20744
20774
  }
20745
20775
 
20746
- /**
20747
- * Calculate height of line at 'lineIndex'
20748
- * @param {Number} lineIndex index of line to calculate
20749
- * @return {Number}
20776
+ /**
20777
+ * Calculate height of line at 'lineIndex'
20778
+ * @param {Number} lineIndex index of line to calculate
20779
+ * @return {Number}
20750
20780
  */
20751
20781
  getHeightOfLine(lineIndex) {
20752
20782
  if (this.__lineHeights[lineIndex]) {
@@ -20762,8 +20792,8 @@
20762
20792
  return this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult;
20763
20793
  }
20764
20794
 
20765
- /**
20766
- * Calculate text box height
20795
+ /**
20796
+ * Calculate text box height
20767
20797
  */
20768
20798
  calcTextHeight() {
20769
20799
  let lineHeight,
@@ -20775,26 +20805,26 @@
20775
20805
  return height;
20776
20806
  }
20777
20807
 
20778
- /**
20779
- * @private
20780
- * @return {Number} Left offset
20808
+ /**
20809
+ * @private
20810
+ * @return {Number} Left offset
20781
20811
  */
20782
20812
  _getLeftOffset() {
20783
20813
  return this.direction === 'ltr' ? -this.width / 2 : this.width / 2;
20784
20814
  }
20785
20815
 
20786
- /**
20787
- * @private
20788
- * @return {Number} Top offset
20816
+ /**
20817
+ * @private
20818
+ * @return {Number} Top offset
20789
20819
  */
20790
20820
  _getTopOffset() {
20791
20821
  return -this.height / 2;
20792
20822
  }
20793
20823
 
20794
- /**
20795
- * @private
20796
- * @param {CanvasRenderingContext2D} ctx Context to render on
20797
- * @param {String} method Method name ("fillText" or "strokeText")
20824
+ /**
20825
+ * @private
20826
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20827
+ * @param {String} method Method name ("fillText" or "strokeText")
20798
20828
  */
20799
20829
  _renderTextCommon(ctx, method) {
20800
20830
  ctx.save();
@@ -20811,9 +20841,9 @@
20811
20841
  ctx.restore();
20812
20842
  }
20813
20843
 
20814
- /**
20815
- * @private
20816
- * @param {CanvasRenderingContext2D} ctx Context to render on
20844
+ /**
20845
+ * @private
20846
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20817
20847
  */
20818
20848
  _renderTextFill(ctx) {
20819
20849
  if (!this.fill && !this.styleHas(FILL)) {
@@ -20822,9 +20852,9 @@
20822
20852
  this._renderTextCommon(ctx, 'fillText');
20823
20853
  }
20824
20854
 
20825
- /**
20826
- * @private
20827
- * @param {CanvasRenderingContext2D} ctx Context to render on
20855
+ /**
20856
+ * @private
20857
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20828
20858
  */
20829
20859
  _renderTextStroke(ctx) {
20830
20860
  if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {
@@ -20841,14 +20871,14 @@
20841
20871
  ctx.restore();
20842
20872
  }
20843
20873
 
20844
- /**
20845
- * @private
20846
- * @param {String} method fillText or strokeText.
20847
- * @param {CanvasRenderingContext2D} ctx Context to render on
20848
- * @param {Array} line Content of the line, splitted in an array by grapheme
20849
- * @param {Number} left
20850
- * @param {Number} top
20851
- * @param {Number} lineIndex
20874
+ /**
20875
+ * @private
20876
+ * @param {String} method fillText or strokeText.
20877
+ * @param {CanvasRenderingContext2D} ctx Context to render on
20878
+ * @param {Array} line Content of the line, splitted in an array by grapheme
20879
+ * @param {Number} left
20880
+ * @param {Number} top
20881
+ * @param {Number} lineIndex
20852
20882
  */
20853
20883
  _renderChars(method, ctx, line, left, top, lineIndex) {
20854
20884
  const lineHeight = this.getHeightOfLine(lineIndex),
@@ -20871,7 +20901,15 @@
20871
20901
  if (currentDirection !== this.direction) {
20872
20902
  ctx.canvas.setAttribute('dir', isLtr ? 'ltr' : 'rtl');
20873
20903
  ctx.direction = isLtr ? 'ltr' : 'rtl';
20874
- ctx.textAlign = isLtr ? LEFT : RIGHT;
20904
+
20905
+ // For justify alignments, we need to set the correct canvas text alignment
20906
+ // This is crucial for RTL text to render in the correct order
20907
+ if (isJustify) {
20908
+ // Justify uses LEFT alignment as a base, letting the character positioning handle justification
20909
+ ctx.textAlign = LEFT;
20910
+ } else {
20911
+ ctx.textAlign = isLtr ? LEFT : RIGHT;
20912
+ }
20875
20913
  }
20876
20914
  top -= lineHeight * this._fontSizeFraction / this.lineHeight;
20877
20915
  if (shortCut) {
@@ -20922,16 +20960,16 @@
20922
20960
  ctx.restore();
20923
20961
  }
20924
20962
 
20925
- /**
20926
- * This function try to patch the missing gradientTransform on canvas gradients.
20927
- * transforming a context to transform the gradient, is going to transform the stroke too.
20928
- * we want to transform the gradient but not the stroke operation, so we create
20929
- * a transformed gradient on a pattern and then we use the pattern instead of the gradient.
20930
- * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
20931
- * is limited.
20932
- * @private
20933
- * @param {TFiller} filler a fabric gradient instance
20934
- * @return {CanvasPattern} a pattern to use as fill/stroke style
20963
+ /**
20964
+ * This function try to patch the missing gradientTransform on canvas gradients.
20965
+ * transforming a context to transform the gradient, is going to transform the stroke too.
20966
+ * we want to transform the gradient but not the stroke operation, so we create
20967
+ * a transformed gradient on a pattern and then we use the pattern instead of the gradient.
20968
+ * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
20969
+ * is limited.
20970
+ * @private
20971
+ * @param {TFiller} filler a fabric gradient instance
20972
+ * @return {CanvasPattern} a pattern to use as fill/stroke style
20935
20973
  */
20936
20974
  _applyPatternGradientTransformText(filler) {
20937
20975
  // TODO: verify compatibility with strokeUniform
@@ -20987,12 +21025,12 @@
20987
21025
  };
20988
21026
  }
20989
21027
 
20990
- /**
20991
- * This function prepare the canvas for a stroke style, and stroke and strokeWidth
20992
- * need to be sent in as defined
20993
- * @param {CanvasRenderingContext2D} ctx
20994
- * @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined
20995
- * @returns
21028
+ /**
21029
+ * This function prepare the canvas for a stroke style, and stroke and strokeWidth
21030
+ * need to be sent in as defined
21031
+ * @param {CanvasRenderingContext2D} ctx
21032
+ * @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined
21033
+ * @returns
20996
21034
  */
20997
21035
  _setStrokeStyles(ctx, _ref) {
20998
21036
  let {
@@ -21007,12 +21045,12 @@
21007
21045
  return this.handleFiller(ctx, 'strokeStyle', stroke);
21008
21046
  }
21009
21047
 
21010
- /**
21011
- * This function prepare the canvas for a ill style, and fill
21012
- * need to be sent in as defined
21013
- * @param {CanvasRenderingContext2D} ctx
21014
- * @param {CompleteTextStyleDeclaration} style with ill defined
21015
- * @returns
21048
+ /**
21049
+ * This function prepare the canvas for a ill style, and fill
21050
+ * need to be sent in as defined
21051
+ * @param {CanvasRenderingContext2D} ctx
21052
+ * @param {CompleteTextStyleDeclaration} style with ill defined
21053
+ * @returns
21016
21054
  */
21017
21055
  _setFillStyles(ctx, _ref2) {
21018
21056
  let {
@@ -21021,16 +21059,16 @@
21021
21059
  return this.handleFiller(ctx, 'fillStyle', fill);
21022
21060
  }
21023
21061
 
21024
- /**
21025
- * @private
21026
- * @param {String} method
21027
- * @param {CanvasRenderingContext2D} ctx Context to render on
21028
- * @param {Number} lineIndex
21029
- * @param {Number} charIndex
21030
- * @param {String} _char
21031
- * @param {Number} left Left coordinate
21032
- * @param {Number} top Top coordinate
21033
- * @param {Number} lineHeight Height of the line
21062
+ /**
21063
+ * @private
21064
+ * @param {String} method
21065
+ * @param {CanvasRenderingContext2D} ctx Context to render on
21066
+ * @param {Number} lineIndex
21067
+ * @param {Number} charIndex
21068
+ * @param {String} _char
21069
+ * @param {Number} left Left coordinate
21070
+ * @param {Number} top Top coordinate
21071
+ * @param {Number} lineHeight Height of the line
21034
21072
  */
21035
21073
  _renderChar(method, ctx, lineIndex, charIndex, _char, left, top) {
21036
21074
  const decl = this._getStyleDeclaration(lineIndex, charIndex),
@@ -21059,30 +21097,30 @@
21059
21097
  ctx.restore();
21060
21098
  }
21061
21099
 
21062
- /**
21063
- * Turns the character into a 'superior figure' (i.e. 'superscript')
21064
- * @param {Number} start selection start
21065
- * @param {Number} end selection end
21100
+ /**
21101
+ * Turns the character into a 'superior figure' (i.e. 'superscript')
21102
+ * @param {Number} start selection start
21103
+ * @param {Number} end selection end
21066
21104
  */
21067
21105
  setSuperscript(start, end) {
21068
21106
  this._setScript(start, end, this.superscript);
21069
21107
  }
21070
21108
 
21071
- /**
21072
- * Turns the character into an 'inferior figure' (i.e. 'subscript')
21073
- * @param {Number} start selection start
21074
- * @param {Number} end selection end
21109
+ /**
21110
+ * Turns the character into an 'inferior figure' (i.e. 'subscript')
21111
+ * @param {Number} start selection start
21112
+ * @param {Number} end selection end
21075
21113
  */
21076
21114
  setSubscript(start, end) {
21077
21115
  this._setScript(start, end, this.subscript);
21078
21116
  }
21079
21117
 
21080
- /**
21081
- * Applies 'schema' at given position
21082
- * @private
21083
- * @param {Number} start selection start
21084
- * @param {Number} end selection end
21085
- * @param {Number} schema
21118
+ /**
21119
+ * Applies 'schema' at given position
21120
+ * @private
21121
+ * @param {Number} start selection start
21122
+ * @param {Number} end selection end
21123
+ * @param {Number} schema
21086
21124
  */
21087
21125
  _setScript(start, end, schema) {
21088
21126
  const loc = this.get2DCursorLocation(start, true),
@@ -21095,10 +21133,10 @@
21095
21133
  this.setSelectionStyles(style, start, end);
21096
21134
  }
21097
21135
 
21098
- /**
21099
- * @private
21100
- * @param {Number} lineIndex index text line
21101
- * @return {Number} Line left offset
21136
+ /**
21137
+ * @private
21138
+ * @param {Number} lineIndex index text line
21139
+ * @return {Number} Line left offset
21102
21140
  */
21103
21141
  _getLineLeftOffset(lineIndex) {
21104
21142
  const lineWidth = this.getLineWidth(lineIndex),
@@ -21107,9 +21145,21 @@
21107
21145
  direction = this.direction,
21108
21146
  isEndOfWrapping = this.isEndOfWrapping(lineIndex);
21109
21147
  let leftOffset = 0;
21110
- if (textAlign === JUSTIFY || textAlign === JUSTIFY_CENTER && !isEndOfWrapping || textAlign === JUSTIFY_RIGHT && !isEndOfWrapping || textAlign === JUSTIFY_LEFT && !isEndOfWrapping) {
21111
- return 0;
21148
+
21149
+ // Handle justify alignments (excluding last lines and wrapped line ends)
21150
+ const isJustifyLine = textAlign === JUSTIFY || textAlign === JUSTIFY_CENTER && !isEndOfWrapping || textAlign === JUSTIFY_RIGHT && !isEndOfWrapping || textAlign === JUSTIFY_LEFT && !isEndOfWrapping;
21151
+ if (isJustifyLine) {
21152
+ // Justify lines should start at the left edge for LTR and right edge for RTL
21153
+ // The space distribution is handled by enlargeSpaces()
21154
+ if (direction === 'rtl') {
21155
+ // For RTL justify, we need to account for the line being right-aligned
21156
+ return 0;
21157
+ } else {
21158
+ return 0;
21159
+ }
21112
21160
  }
21161
+
21162
+ // Handle non-justify alignments
21113
21163
  if (textAlign === CENTER) {
21114
21164
  leftOffset = lineDiff / 2;
21115
21165
  }
@@ -21122,6 +21172,8 @@
21122
21172
  if (textAlign === JUSTIFY_RIGHT) {
21123
21173
  leftOffset = lineDiff;
21124
21174
  }
21175
+
21176
+ // Apply RTL adjustments for non-justify alignments
21125
21177
  if (direction === 'rtl') {
21126
21178
  if (textAlign === RIGHT || textAlign === JUSTIFY || textAlign === JUSTIFY_RIGHT) {
21127
21179
  leftOffset = 0;
@@ -21134,8 +21186,8 @@
21134
21186
  return leftOffset;
21135
21187
  }
21136
21188
 
21137
- /**
21138
- * @private
21189
+ /**
21190
+ * @private
21139
21191
  */
21140
21192
  _clearCache() {
21141
21193
  this._forceClearCache = false;
@@ -21144,12 +21196,12 @@
21144
21196
  this.__charBounds = [];
21145
21197
  }
21146
21198
 
21147
- /**
21148
- * Measure a single line given its index. Used to calculate the initial
21149
- * text bounding box. The values are calculated and stored in __lineWidths cache.
21150
- * @private
21151
- * @param {Number} lineIndex line number
21152
- * @return {Number} Line width
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
21153
21205
  */
21154
21206
  getLineWidth(lineIndex) {
21155
21207
  if (this.__lineWidths[lineIndex] !== undefined) {
@@ -21168,12 +21220,12 @@
21168
21220
  return 0;
21169
21221
  }
21170
21222
 
21171
- /**
21172
- * Retrieves the value of property at given character position
21173
- * @param {Number} lineIndex the line number
21174
- * @param {Number} charIndex the character number
21175
- * @param {String} property the property name
21176
- * @returns the value of 'property'
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'
21177
21229
  */
21178
21230
  getValueOfPropertyAt(lineIndex, charIndex, property) {
21179
21231
  var _charStyle$property;
@@ -21181,9 +21233,9 @@
21181
21233
  return (_charStyle$property = charStyle[property]) !== null && _charStyle$property !== void 0 ? _charStyle$property : this[property];
21182
21234
  }
21183
21235
 
21184
- /**
21185
- * @private
21186
- * @param {CanvasRenderingContext2D} ctx Context to render on
21236
+ /**
21237
+ * @private
21238
+ * @param {CanvasRenderingContext2D} ctx Context to render on
21187
21239
  */
21188
21240
  _renderTextDecoration(ctx, type) {
21189
21241
  if (!this[type] && !this.styleHas(type)) {
@@ -21267,10 +21319,10 @@
21267
21319
  this._removeShadow(ctx);
21268
21320
  }
21269
21321
 
21270
- /**
21271
- * return font declaration string for canvas context
21272
- * @param {Object} [styleObject] object
21273
- * @returns {String} font declaration formatted for canvas context.
21322
+ /**
21323
+ * return font declaration string for canvas context
21324
+ * @param {Object} [styleObject] object
21325
+ * @returns {String} font declaration formatted for canvas context.
21274
21326
  */
21275
21327
  _getFontDeclaration() {
21276
21328
  let {
@@ -21284,9 +21336,9 @@
21284
21336
  return [fontStyle, fontWeight, `${forMeasuring ? this.CACHE_FONT_SIZE : fontSize}px`, parsedFontFamily].join(' ');
21285
21337
  }
21286
21338
 
21287
- /**
21288
- * Renders text instance on a specified context
21289
- * @param {CanvasRenderingContext2D} ctx Context to render on
21339
+ /**
21340
+ * Renders text instance on a specified context
21341
+ * @param {CanvasRenderingContext2D} ctx Context to render on
21290
21342
  */
21291
21343
  render(ctx) {
21292
21344
  if (!this.visible) {
@@ -21301,22 +21353,22 @@
21301
21353
  super.render(ctx);
21302
21354
  }
21303
21355
 
21304
- /**
21305
- * Override this method to customize grapheme splitting
21306
- * @todo the util `graphemeSplit` needs to be injectable in some way.
21307
- * is more comfortable to inject the correct util rather than having to override text
21308
- * in the middle of the prototype chain
21309
- * @param {string} value
21310
- * @returns {string[]} array of graphemes
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
21311
21363
  */
21312
21364
  graphemeSplit(value) {
21313
21365
  return graphemeSplit(value);
21314
21366
  }
21315
21367
 
21316
- /**
21317
- * Returns the text as an array of lines.
21318
- * @param {String} text text to split
21319
- * @returns Lines in the text
21368
+ /**
21369
+ * Returns the text as an array of lines.
21370
+ * @param {String} text text to split
21371
+ * @returns Lines in the text
21320
21372
  */
21321
21373
  _splitTextIntoLines(text) {
21322
21374
  const lines = text.split(this._reNewline),
@@ -21336,10 +21388,10 @@
21336
21388
  };
21337
21389
  }
21338
21390
 
21339
- /**
21340
- * Returns object representation of an instance
21341
- * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
21342
- * @return {Object} Object representation of an instance
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
21343
21395
  */
21344
21396
  toObject() {
21345
21397
  let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -21382,23 +21434,23 @@
21382
21434
  return this;
21383
21435
  }
21384
21436
 
21385
- /**
21386
- * Returns complexity of an instance
21387
- * @return {Number} complexity
21437
+ /**
21438
+ * Returns complexity of an instance
21439
+ * @return {Number} complexity
21388
21440
  */
21389
21441
  complexity() {
21390
21442
  return 1;
21391
21443
  }
21392
21444
 
21393
- /**
21394
- * List of generic font families
21395
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name
21445
+ /**
21446
+ * List of generic font families
21447
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name
21396
21448
  */
21397
21449
 
21398
- /**
21399
- * Returns FabricText instance from an SVG element (<b>not yet implemented</b>)
21400
- * @param {HTMLElement} element Element to parse
21401
- * @param {Object} [options] Options object
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
21402
21454
  */
21403
21455
  static async fromElement(element, options, cssRules) {
21404
21456
  const parsedAttributes = parseAttributes(element, FabricText.ATTRIBUTE_NAMES, cssRules);
@@ -21437,10 +21489,10 @@
21437
21489
  scaledDiff = lineHeightDiff * textHeightScaleFactor,
21438
21490
  textHeight = text.getScaledHeight() + scaledDiff;
21439
21491
  let offX = 0;
21440
- /*
21441
- Adjust positioning:
21442
- x/y attributes in SVG correspond to the bottom-left corner of text bounding box
21443
- fabric output by default at top, left.
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.
21444
21496
  */
21445
21497
  if (textAnchor === CENTER) {
21446
21498
  offX = text.getScaledWidth() / 2;
@@ -21458,10 +21510,10 @@
21458
21510
 
21459
21511
  /* _FROM_SVG_END_ */
21460
21512
 
21461
- /**
21462
- * Returns FabricText instance from an object representation
21463
- * @param {Object} object plain js Object to create an instance from
21464
- * @returns {Promise<FabricText>}
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>}
21465
21517
  */
21466
21518
  static fromObject(object) {
21467
21519
  return this._fromObject({
@@ -21472,10 +21524,10 @@
21472
21524
  });
21473
21525
  }
21474
21526
  }
21475
- /**
21476
- * Properties that requires a text layout recalculation when changed
21477
- * @type string[]
21478
- * @protected
21527
+ /**
21528
+ * Properties that requires a text layout recalculation when changed
21529
+ * @type string[]
21530
+ * @protected
21479
21531
  */
21480
21532
  _defineProperty(FabricText, "textLayoutProperties", textLayoutProperties);
21481
21533
  _defineProperty(FabricText, "cacheProperties", [...cacheProperties, ...additionalProps]);
@@ -21483,9 +21535,9 @@
21483
21535
  _defineProperty(FabricText, "type", 'Text');
21484
21536
  _defineProperty(FabricText, "genericFonts", ['serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui', 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong']);
21485
21537
  /* _FROM_SVG_START_ */
21486
- /**
21487
- * List of attribute names to account for when parsing SVG element (used by {@link FabricText.fromElement})
21488
- * @see: http://www.w3.org/TR/SVG/text.html#TextElement
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
21489
21541
  */
21490
21542
  _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'));
21491
21543
  applyMixins(FabricText, [TextSVGExportMixin]);
@@ -21872,8 +21924,8 @@
21872
21924
  // We don't need to save/restore them here as it would conflict with IText's restoration
21873
21925
  }
21874
21926
 
21875
- /**
21876
- * Get the container element for the overlay (parent of upperCanvasEl)
21927
+ /**
21928
+ * Get the container element for the overlay (parent of upperCanvasEl)
21877
21929
  */
21878
21930
  getCanvasContainer() {
21879
21931
  const upperCanvas = this.canvas.upperCanvasEl;
@@ -21887,8 +21939,8 @@
21887
21939
  return container;
21888
21940
  }
21889
21941
 
21890
- /**
21891
- * Create the overlay DOM structure
21942
+ /**
21943
+ * Create the overlay DOM structure
21892
21944
  */
21893
21945
  createOverlayDOM() {
21894
21946
  // Host div for positioning and overflow control
@@ -21908,8 +21960,12 @@
21908
21960
  this.textarea.style.pointerEvents = 'auto';
21909
21961
  // Set appropriate unicodeBidi based on content and direction
21910
21962
  const hasArabicText = /[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(this.target.text || '');
21963
+ const hasLatinText = /[a-zA-Z]/.test(this.target.text || '');
21911
21964
  const isLTRDirection = this.target.direction === 'ltr';
21912
- if (hasArabicText && isLTRDirection) {
21965
+ if (hasArabicText && hasLatinText && isLTRDirection) {
21966
+ // For mixed Arabic/Latin text in LTR mode, use embed for consistent line wrapping
21967
+ this.textarea.style.unicodeBidi = 'embed';
21968
+ } else if (hasArabicText && isLTRDirection) {
21913
21969
  // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction
21914
21970
  this.textarea.style.unicodeBidi = 'embed';
21915
21971
  } else {
@@ -21939,8 +21995,8 @@
21939
21995
  document.body.appendChild(this.hostDiv);
21940
21996
  }
21941
21997
 
21942
- /**
21943
- * Attach all event listeners
21998
+ /**
21999
+ * Attach all event listeners
21944
22000
  */
21945
22001
  attachEventListeners() {
21946
22002
  // Textarea events
@@ -21960,8 +22016,8 @@
21960
22016
  this.setupViewportChangeDetection();
21961
22017
  }
21962
22018
 
21963
- /**
21964
- * Remove all event listeners
22019
+ /**
22020
+ * Remove all event listeners
21965
22021
  */
21966
22022
  removeEventListeners() {
21967
22023
  this.textarea.removeEventListener('input', this.boundHandlers.onInput);
@@ -21978,16 +22034,16 @@
21978
22034
  this.restoreViewportChangeDetection();
21979
22035
  }
21980
22036
 
21981
- /**
21982
- * Simple method to refresh positioning when canvas changes
22037
+ /**
22038
+ * Simple method to refresh positioning when canvas changes
21983
22039
  */
21984
22040
  updatePosition() {
21985
22041
  this.applyOverlayStyle();
21986
22042
  }
21987
22043
 
21988
- /**
21989
- * Update the Fabric object bounds to match current textarea size
21990
- * This ensures Fabric.js selection controls follow the growing textbox
22044
+ /**
22045
+ * Update the Fabric object bounds to match current textarea size
22046
+ * This ensures Fabric.js selection controls follow the growing textbox
21991
22047
  */
21992
22048
  updateObjectBounds() {
21993
22049
  if (this.isDestroyed) return;
@@ -21998,26 +22054,38 @@
21998
22054
  parseFloat(this.hostDiv.style.width) / zoom;
21999
22055
  const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;
22000
22056
 
22001
- // Only update if there's a meaningful change (avoid float precision issues)
22057
+ // Always update height for responsive controls (especially important for line deletion)
22002
22058
  const heightDiff = Math.abs(currentHeight - target.height);
22003
- const threshold = 1; // 1px threshold to avoid micro-changes
22059
+ const threshold = 0.5; // Lower threshold for better responsiveness to line changes
22004
22060
 
22005
22061
  if (heightDiff > threshold) {
22062
+ target.height;
22006
22063
  target.height = currentHeight;
22007
22064
  target.setCoords(); // Update control positions
22065
+
22066
+ // Force dirty to ensure proper re-rendering
22067
+ target.dirty = true;
22008
22068
  this.canvas.requestRenderAll(); // Re-render to show updated selection
22069
+
22070
+ // IMPORTANT: Reposition overlay after height change
22071
+ requestAnimationFrame(() => {
22072
+ if (!this.isDestroyed) {
22073
+ this.applyOverlayStyle();
22074
+ console.log('📐 Height changed - rechecking alignment after repositioning:');
22075
+ }
22076
+ });
22009
22077
  }
22010
22078
  }
22011
22079
 
22012
- /**
22013
- * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
22080
+ /**
22081
+ * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
22014
22082
  */
22015
22083
  letterSpacingPx(charSpacing, fontSize) {
22016
22084
  return charSpacing / 1000 * fontSize;
22017
22085
  }
22018
22086
 
22019
- /**
22020
- * Detect text direction using first strong directional character
22087
+ /**
22088
+ * Detect text direction using first strong directional character
22021
22089
  */
22022
22090
  firstStrongDir(text) {
22023
22091
  // Hebrew: \u0590-\u05FF, Arabic: \u0600-\u06FF, \u0750-\u077F, \uFB50-\uFDFF, \uFE70-\uFEFF
@@ -22033,14 +22101,6 @@
22033
22101
  target.setCoords();
22034
22102
  const aCoords = target.aCoords;
22035
22103
 
22036
- // DEBUG: Log dimensions before edit
22037
- console.log('BEFORE EDIT:');
22038
- console.log(' target.width =', target.width);
22039
- console.log(' target.height =', target.height);
22040
- console.log(' target.getScaledWidth() =', target.getScaledWidth());
22041
- console.log(' target.getScaledHeight() =', target.getScaledHeight());
22042
- console.log(' target.padding =', target.padding);
22043
-
22044
22104
  // 2. Get canvas position and scroll offsets (like rtl-test.html)
22045
22105
  const canvasEl = canvas.upperCanvasEl;
22046
22106
  const canvasRect = canvasEl.getBoundingClientRect();
@@ -22063,14 +22123,12 @@
22063
22123
  const left = canvasRect.left + scrollX + screenPoint.x;
22064
22124
  const top = canvasRect.top + scrollY + screenPoint.y;
22065
22125
 
22066
- // 4. Get dimensions with zoom scaling - use target.width for text wrapping, scaled height for container
22067
- const width = target.width * (target.scaleX || 1) * zoom; // Account for object scale and viewport zoom
22068
- const height = target.height * (target.scaleY || 1) * zoom;
22069
- console.log('WIDTH CALCULATION:');
22070
- console.log(' target.width =', target.width);
22071
- console.log(' scaledWidth =', target.getScaledWidth());
22072
- console.log(' zoom =', zoom);
22073
- console.log(' final width =', width);
22126
+ // 4. Calculate the precise width and height for the container
22127
+ // **THE FIX:** Use getBoundingRect() for BOTH width and height.
22128
+ // This is the most reliable measure of the object's final rendered dimensions.
22129
+ const objectBounds = target.getBoundingRect();
22130
+ const width = Math.round(objectBounds.width * zoom);
22131
+ const height = Math.round(objectBounds.height * zoom);
22074
22132
 
22075
22133
  // 5. Apply styles to host DIV - absolute positioning like rtl-test.html
22076
22134
  this.hostDiv.style.position = 'absolute';
@@ -22094,52 +22152,328 @@
22094
22152
  const scaleX = target.scaleX || 1;
22095
22153
  const finalFontSize = baseFontSize * scaleX * zoom;
22096
22154
  const fabricLineHeight = target.lineHeight || 1.16;
22097
- // Apply padding and dimensions to textarea
22098
- const textareaWidth = paddingX > 0 ? `calc(100% - ${2 * paddingX}px)` : '100%';
22099
- const textareaHeight = paddingY > 0 ? `calc(100% - ${2 * paddingY}px)` : '100%';
22100
- this.textarea.style.width = textareaWidth;
22101
- this.textarea.style.height = textareaHeight;
22155
+ // **THE FIX:** Use 'border-box' so the width property includes padding.
22156
+ // This makes alignment much easier and more reliable.
22157
+ this.textarea.style.boxSizing = 'border-box';
22158
+
22159
+ // **THE FIX:** Set the textarea width to be IDENTICAL to the host div's width.
22160
+ // The padding will now be correctly contained *inside* this width.
22161
+ this.textarea.style.width = `${width}px`;
22162
+ this.textarea.style.height = '100%'; // Let hostDiv control height
22102
22163
  this.textarea.style.padding = `${paddingY}px ${paddingX}px`;
22164
+
22165
+ // Apply all other font and text styles to match Fabric
22166
+ const letterSpacingPx = (target.charSpacing || 0) / 1000 * finalFontSize;
22103
22167
  this.textarea.style.fontSize = `${finalFontSize}px`;
22104
- this.textarea.style.lineHeight = String(fabricLineHeight); // Use unit-less multiplier
22168
+ this.textarea.style.lineHeight = String(fabricLineHeight);
22105
22169
  this.textarea.style.fontFamily = target.fontFamily || 'Arial';
22106
22170
  this.textarea.style.fontWeight = String(target.fontWeight || 'normal');
22107
22171
  this.textarea.style.fontStyle = target.fontStyle || 'normal';
22108
- this.textarea.style.textAlign = target.textAlign || 'left';
22172
+ // Handle text alignment and justification
22173
+ const textAlign = target.textAlign || 'left';
22174
+ let cssTextAlign = textAlign;
22175
+
22176
+ // Detect text direction from content for proper justify handling
22177
+ const autoDetectedDirection = this.firstStrongDir(this.textarea.value || '');
22178
+
22179
+ // DEBUG: Log alignment details
22180
+ console.log('🔍 ALIGNMENT DEBUG:');
22181
+ console.log(' Fabric textAlign:', textAlign);
22182
+ console.log(' Fabric direction:', target.direction);
22183
+ console.log(' Text content:', JSON.stringify(target.text));
22184
+ console.log(' Detected direction:', autoDetectedDirection);
22185
+
22186
+ // Map fabric.js justify to CSS
22187
+ if (textAlign.includes('justify')) {
22188
+ // Try to match fabric.js justify behavior more precisely
22189
+ try {
22190
+ // For justify, we need to replicate fabric.js space expansion
22191
+ // Use CSS justify but with specific settings to match fabric.js better
22192
+ cssTextAlign = 'justify';
22193
+
22194
+ // Set text-align-last based on justify type and detected direction
22195
+ // Smart justify: respect detected direction even when fabric alignment doesn't match
22196
+ if (textAlign === 'justify') {
22197
+ this.textarea.style.textAlignLast = autoDetectedDirection === 'rtl' ? 'right' : 'left';
22198
+ } else if (textAlign === 'justify-left') {
22199
+ // If text is RTL but fabric says justify-left, override to justify-right for better UX
22200
+ if (autoDetectedDirection === 'rtl') {
22201
+ this.textarea.style.textAlignLast = 'right';
22202
+ console.log(' → Overrode justify-left to justify-right for RTL text');
22203
+ } else {
22204
+ this.textarea.style.textAlignLast = 'left';
22205
+ }
22206
+ } else if (textAlign === 'justify-right') {
22207
+ // If text is LTR but fabric says justify-right, override to justify-left for better UX
22208
+ if (autoDetectedDirection === 'ltr') {
22209
+ this.textarea.style.textAlignLast = 'left';
22210
+ console.log(' → Overrode justify-right to justify-left for LTR text');
22211
+ } else {
22212
+ this.textarea.style.textAlignLast = 'right';
22213
+ }
22214
+ } else if (textAlign === 'justify-center') {
22215
+ this.textarea.style.textAlignLast = 'center';
22216
+ }
22217
+
22218
+ // Enhanced justify settings for better fabric.js matching
22219
+ this.textarea.style.textJustify = 'inter-word';
22220
+ this.textarea.style.wordSpacing = 'normal';
22221
+
22222
+ // Additional CSS properties for better justify matching
22223
+ this.textarea.style.textAlign = 'justify';
22224
+ this.textarea.style.textAlignLast = this.textarea.style.textAlignLast;
22225
+
22226
+ // Try to force better justify behavior
22227
+ this.textarea.style.textJustifyTrim = 'none';
22228
+ this.textarea.style.textAutospace = 'none';
22229
+ console.log(' → Applied justify alignment:', textAlign, 'with last-line:', this.textarea.style.textAlignLast);
22230
+ } catch (error) {
22231
+ console.warn(' → Justify setup failed, falling back to standard alignment:', error);
22232
+ cssTextAlign = textAlign.replace('justify-', '').replace('justify', 'left');
22233
+ }
22234
+ } else {
22235
+ this.textarea.style.textAlignLast = 'auto';
22236
+ this.textarea.style.textJustify = 'auto';
22237
+ this.textarea.style.wordSpacing = 'normal';
22238
+ console.log(' → Applied standard alignment:', cssTextAlign);
22239
+ }
22240
+ this.textarea.style.textAlign = cssTextAlign;
22109
22241
  this.textarea.style.color = ((_target$fill = target.fill) === null || _target$fill === void 0 ? void 0 : _target$fill.toString()) || '#000';
22110
- this.textarea.style.letterSpacing = `${(target.charSpacing || 0) / 1000}em`;
22111
- this.textarea.style.direction = target.direction || this.firstStrongDir(this.textarea.value || '');
22242
+ this.textarea.style.letterSpacing = `${letterSpacingPx}px`;
22112
22243
 
22113
- // Ensure consistent font rendering between Fabric and CSS
22244
+ // Use the already detected direction from above
22245
+ const fabricDirection = target.direction;
22246
+
22247
+ // Use auto-detected direction for better BiDi support, but respect fabric direction if it makes sense
22248
+ this.textarea.style.direction = autoDetectedDirection || fabricDirection || 'ltr';
22114
22249
  this.textarea.style.fontVariant = 'normal';
22115
22250
  this.textarea.style.fontStretch = 'normal';
22116
- this.textarea.style.textRendering = 'auto';
22117
- this.textarea.style.fontKerning = 'auto';
22118
- this.textarea.style.boxSizing = 'content-box'; // Padding is added outside width/height
22251
+ this.textarea.style.textRendering = 'auto'; // Changed from 'optimizeLegibility' to match canvas
22252
+ this.textarea.style.fontKerning = 'normal';
22253
+ this.textarea.style.fontFeatureSettings = 'normal';
22254
+ this.textarea.style.fontVariationSettings = 'normal';
22119
22255
  this.textarea.style.margin = '0';
22120
22256
  this.textarea.style.border = 'none';
22121
22257
  this.textarea.style.outline = 'none';
22122
22258
  this.textarea.style.background = 'transparent';
22123
- this.textarea.style.wordWrap = 'break-word';
22259
+ this.textarea.style.overflowWrap = 'break-word';
22124
22260
  this.textarea.style.whiteSpace = 'pre-wrap';
22125
-
22126
- // DEBUG: Log final textarea dimensions
22127
- console.log('TEXTAREA AFTER SETUP:');
22128
- console.log(' textarea width =', this.textarea.style.width);
22129
- console.log(' textarea height =', this.textarea.style.height);
22130
- console.log(' textarea padding =', this.textarea.style.padding);
22131
- console.log(' paddingX =', paddingX, 'paddingY =', paddingY);
22132
- console.log(' baseFontSize =', baseFontSize);
22133
- console.log(' scaleX =', scaleX);
22134
- console.log(' zoom =', zoom);
22135
- console.log(' finalFontSize =', finalFontSize);
22136
- console.log(' fabricLineHeight =', fabricLineHeight);
22261
+ this.textarea.style.hyphens = 'none';
22262
+
22263
+ // DEBUG: Log final CSS properties
22264
+ console.log('🎨 FINAL TEXTAREA CSS:');
22265
+ console.log(' textAlign:', this.textarea.style.textAlign);
22266
+ console.log(' textAlignLast:', this.textarea.style.textAlignLast);
22267
+ console.log(' direction:', this.textarea.style.direction);
22268
+ console.log(' unicodeBidi:', this.textarea.style.unicodeBidi);
22269
+ console.log(' width:', this.textarea.style.width);
22270
+ console.log(' textJustify:', this.textarea.style.textJustify);
22271
+ console.log(' wordSpacing:', this.textarea.style.wordSpacing);
22272
+ console.log(' whiteSpace:', this.textarea.style.whiteSpace);
22273
+
22274
+ // If justify, log Fabric object dimensions for comparison
22275
+ if (textAlign.includes('justify')) {
22276
+ var _calcTextWidth, _ref;
22277
+ console.log('🔧 FABRIC OBJECT JUSTIFY INFO:');
22278
+ console.log(' Fabric width:', target.width);
22279
+ console.log(' Fabric calcTextWidth:', (_calcTextWidth = (_ref = target).calcTextWidth) === null || _calcTextWidth === void 0 ? void 0 : _calcTextWidth.call(_ref));
22280
+ console.log(' Fabric textAlign:', target.textAlign);
22281
+ console.log(' Text lines:', target.textLines);
22282
+ }
22283
+
22284
+ // Debug font properties matching
22285
+ console.log('🔤 FONT PROPERTIES COMPARISON:');
22286
+ console.log(' Fabric fontFamily:', target.fontFamily);
22287
+ console.log(' Fabric fontWeight:', target.fontWeight);
22288
+ console.log(' Fabric fontStyle:', target.fontStyle);
22289
+ console.log(' Fabric fontSize:', target.fontSize);
22290
+ console.log(' → Textarea fontFamily:', this.textarea.style.fontFamily);
22291
+ console.log(' → Textarea fontWeight:', this.textarea.style.fontWeight);
22292
+ console.log(' → Textarea fontStyle:', this.textarea.style.fontStyle);
22293
+ console.log(' → Textarea fontSize:', this.textarea.style.fontSize);
22294
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
22295
+
22296
+ // Enhanced font rendering to better match fabric.js canvas rendering
22297
+ // Default to auto for more natural rendering
22298
+ this.textarea.style.webkitFontSmoothing = 'auto';
22299
+ this.textarea.style.mozOsxFontSmoothing = 'auto';
22300
+ this.textarea.style.fontSmooth = 'auto';
22301
+ this.textarea.style.textSizeAdjust = 'none';
22302
+
22303
+ // For bold fonts, use subpixel rendering to match canvas thickness better
22304
+ const fontWeight = String(target.fontWeight || 'normal');
22305
+ const isBold = fontWeight === 'bold' || fontWeight === '700' || parseInt(fontWeight) >= 600;
22306
+ if (isBold) {
22307
+ this.textarea.style.webkitFontSmoothing = 'subpixel-antialiased';
22308
+ this.textarea.style.mozOsxFontSmoothing = 'unset';
22309
+ console.log('🔤 Applied enhanced bold rendering for better thickness matching');
22310
+ }
22311
+ console.log('🎨 FONT SMOOTHING APPLIED:');
22312
+ console.log(' webkitFontSmoothing:', this.textarea.style.webkitFontSmoothing);
22313
+ console.log(' mozOsxFontSmoothing:', this.textarea.style.mozOsxFontSmoothing);
22137
22314
 
22138
22315
  // Initial bounds are set correctly by Fabric.js - don't force update here
22139
22316
  }
22140
22317
 
22141
- /**
22142
- * Focus the textarea and position cursor at end
22318
+ /**
22319
+ * Debug method to compare textarea and canvas object bounding boxes
22320
+ */
22321
+ debugBoundingBoxComparison() {
22322
+ const target = this.target;
22323
+ const canvas = this.canvas;
22324
+ const zoom = canvas.getZoom();
22325
+
22326
+ // Get textarea bounding box (in screen coordinates)
22327
+ const textareaRect = this.textarea.getBoundingClientRect();
22328
+ const hostRect = this.hostDiv.getBoundingClientRect();
22329
+
22330
+ // Get canvas object bounding box (in screen coordinates)
22331
+ const canvasBounds = target.getBoundingRect();
22332
+ const canvasRect = canvas.upperCanvasEl.getBoundingClientRect();
22333
+
22334
+ // Convert canvas object bounds to screen coordinates
22335
+ const vpt = canvas.viewportTransform;
22336
+ const screenObjectBounds = {
22337
+ left: canvasRect.left + canvasBounds.left * zoom + vpt[4],
22338
+ top: canvasRect.top + canvasBounds.top * zoom + vpt[5],
22339
+ width: canvasBounds.width * zoom,
22340
+ height: canvasBounds.height * zoom
22341
+ };
22342
+ console.log('🔍 BOUNDING BOX COMPARISON:');
22343
+ console.log('📦 Textarea Rect:', {
22344
+ left: Math.round(textareaRect.left * 100) / 100,
22345
+ top: Math.round(textareaRect.top * 100) / 100,
22346
+ width: Math.round(textareaRect.width * 100) / 100,
22347
+ height: Math.round(textareaRect.height * 100) / 100
22348
+ });
22349
+ console.log('📦 Host Div Rect:', {
22350
+ left: Math.round(hostRect.left * 100) / 100,
22351
+ top: Math.round(hostRect.top * 100) / 100,
22352
+ width: Math.round(hostRect.width * 100) / 100,
22353
+ height: Math.round(hostRect.height * 100) / 100
22354
+ });
22355
+ console.log('📦 Canvas Object Bounds (screen):', {
22356
+ left: Math.round(screenObjectBounds.left * 100) / 100,
22357
+ top: Math.round(screenObjectBounds.top * 100) / 100,
22358
+ width: Math.round(screenObjectBounds.width * 100) / 100,
22359
+ height: Math.round(screenObjectBounds.height * 100) / 100
22360
+ });
22361
+ console.log('📦 Canvas Object Bounds (canvas):', canvasBounds);
22362
+
22363
+ // Calculate differences
22364
+ const hostVsObject = {
22365
+ leftDiff: Math.round((hostRect.left - screenObjectBounds.left) * 100) / 100,
22366
+ topDiff: Math.round((hostRect.top - screenObjectBounds.top) * 100) / 100,
22367
+ widthDiff: Math.round((hostRect.width - screenObjectBounds.width) * 100) / 100,
22368
+ heightDiff: Math.round((hostRect.height - screenObjectBounds.height) * 100) / 100
22369
+ };
22370
+ const textareaVsObject = {
22371
+ leftDiff: Math.round((textareaRect.left - screenObjectBounds.left) * 100) / 100,
22372
+ topDiff: Math.round((textareaRect.top - screenObjectBounds.top) * 100) / 100,
22373
+ widthDiff: Math.round((textareaRect.width - screenObjectBounds.width) * 100) / 100,
22374
+ heightDiff: Math.round((textareaRect.height - screenObjectBounds.height) * 100) / 100
22375
+ };
22376
+ console.log('📏 Host Div vs Canvas Object Diff:', hostVsObject);
22377
+ console.log('📏 Textarea vs Canvas Object Diff:', textareaVsObject);
22378
+
22379
+ // Check if they're aligned (within 2px tolerance)
22380
+ const tolerance = 2;
22381
+ const hostAligned = Math.abs(hostVsObject.leftDiff) < tolerance && Math.abs(hostVsObject.topDiff) < tolerance && Math.abs(hostVsObject.widthDiff) < tolerance && Math.abs(hostVsObject.heightDiff) < tolerance;
22382
+ const textareaAligned = Math.abs(textareaVsObject.leftDiff) < tolerance && Math.abs(textareaVsObject.topDiff) < tolerance && Math.abs(textareaVsObject.widthDiff) < tolerance && Math.abs(textareaVsObject.heightDiff) < tolerance;
22383
+ console.log(hostAligned ? '✅ Host Div ALIGNED with canvas object' : '❌ Host Div MISALIGNED with canvas object');
22384
+ console.log(textareaAligned ? '✅ Textarea ALIGNED with canvas object' : '❌ Textarea MISALIGNED with canvas object');
22385
+ console.log('🔍 Zoom:', zoom, 'Viewport Transform:', vpt);
22386
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
22387
+ }
22388
+
22389
+ /**
22390
+ * Debug method to compare text wrapping between textarea and Fabric text object
22391
+ */
22392
+ debugTextWrapping() {
22393
+ const target = this.target;
22394
+ const text = this.textarea.value;
22395
+ console.log('📝 TEXT WRAPPING COMPARISON:');
22396
+ console.log('📄 Text Content:', `"${text}"`);
22397
+ console.log('📄 Text Length:', text.length);
22398
+
22399
+ // Analyze line breaks
22400
+ const explicitLines = text.split('\n');
22401
+ console.log('📄 Explicit Lines (\\n):', explicitLines.length);
22402
+ explicitLines.forEach((line, i) => {
22403
+ console.log(` Line ${i + 1}: "${line}" (${line.length} chars)`);
22404
+ });
22405
+
22406
+ // Get textarea computed styles for wrapping analysis
22407
+ const textareaStyles = window.getComputedStyle(this.textarea);
22408
+ console.log('📐 Textarea Wrapping Styles:');
22409
+ console.log(' width:', textareaStyles.width);
22410
+ console.log(' fontSize:', textareaStyles.fontSize);
22411
+ console.log(' fontFamily:', textareaStyles.fontFamily);
22412
+ console.log(' fontWeight:', textareaStyles.fontWeight);
22413
+ console.log(' letterSpacing:', textareaStyles.letterSpacing);
22414
+ console.log(' lineHeight:', textareaStyles.lineHeight);
22415
+ console.log(' whiteSpace:', textareaStyles.whiteSpace);
22416
+ console.log(' wordWrap:', textareaStyles.wordWrap);
22417
+ console.log(' overflowWrap:', textareaStyles.overflowWrap);
22418
+ console.log(' direction:', textareaStyles.direction);
22419
+ console.log(' textAlign:', textareaStyles.textAlign);
22420
+
22421
+ // Get Fabric text object properties for comparison
22422
+ console.log('📐 Fabric Text Object Properties:');
22423
+ console.log(' width:', target.width);
22424
+ console.log(' fontSize:', target.fontSize);
22425
+ console.log(' fontFamily:', target.fontFamily);
22426
+ console.log(' fontWeight:', target.fontWeight);
22427
+ console.log(' charSpacing:', target.charSpacing);
22428
+ console.log(' lineHeight:', target.lineHeight);
22429
+ console.log(' direction:', target.direction);
22430
+ console.log(' textAlign:', target.textAlign);
22431
+ console.log(' scaleX:', target.scaleX);
22432
+ console.log(' scaleY:', target.scaleY);
22433
+
22434
+ // Calculate effective dimensions for comparison - use actual rendered width
22435
+ // **THE FIX:** Use getBoundingRect to get the *actual rendered width* of the Fabric object.
22436
+ const fabricEffectiveWidth = this.target.getBoundingRect().width;
22437
+ // Use the exact width set on textarea for comparison
22438
+ const textareaComputedWidth = parseFloat(window.getComputedStyle(this.textarea).width);
22439
+ const textareaEffectiveWidth = textareaComputedWidth / this.canvas.getZoom();
22440
+ const widthDiff = Math.abs(textareaEffectiveWidth - fabricEffectiveWidth);
22441
+ console.log('📏 Effective Width Comparison:');
22442
+ console.log(' Textarea Effective Width:', textareaEffectiveWidth);
22443
+ console.log(' Fabric Effective Width:', fabricEffectiveWidth);
22444
+ console.log(' Width Difference:', widthDiff.toFixed(2) + 'px');
22445
+ console.log(widthDiff < 1 ? '✅ Widths MATCH for wrapping' : '❌ Width MISMATCH may cause different wrapping');
22446
+
22447
+ // Check text direction and bidi handling
22448
+ const hasRTLText = /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(text);
22449
+ const hasBidiText = /[\u0590-\u06FF]/.test(text) && /[a-zA-Z]/.test(text);
22450
+ console.log('🌍 Text Direction Analysis:');
22451
+ console.log(' Has RTL characters:', hasRTLText);
22452
+ console.log(' Has mixed Bidi text:', hasBidiText);
22453
+ console.log(' Textarea direction:', textareaStyles.direction);
22454
+ console.log(' Fabric direction:', target.direction || 'auto');
22455
+ console.log(' Textarea unicodeBidi:', textareaStyles.unicodeBidi);
22456
+
22457
+ // Measure actual rendered line count
22458
+ const textareaScrollHeight = this.textarea.scrollHeight;
22459
+ const textareaLineHeight = parseFloat(textareaStyles.lineHeight) || parseFloat(textareaStyles.fontSize) * 1.2;
22460
+ const estimatedTextareaLines = Math.round(textareaScrollHeight / textareaLineHeight);
22461
+ console.log('📊 Line Count Analysis:');
22462
+ console.log(' Textarea scrollHeight:', textareaScrollHeight);
22463
+ console.log(' Textarea lineHeight:', textareaLineHeight);
22464
+ console.log(' Estimated rendered lines:', estimatedTextareaLines);
22465
+ console.log(' Explicit line breaks:', explicitLines.length);
22466
+ if (estimatedTextareaLines > explicitLines.length) {
22467
+ console.log('🔄 Text wrapping detected in textarea');
22468
+ console.log(' Wrapped lines:', estimatedTextareaLines - explicitLines.length);
22469
+ } else {
22470
+ console.log('📏 No text wrapping in textarea');
22471
+ }
22472
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
22473
+ }
22474
+
22475
+ /**
22476
+ * Focus the textarea and position cursor at end
22143
22477
  */
22144
22478
  focusTextarea() {
22145
22479
  // For overlay editing, we want to keep the object in "selection mode" not "editing mode"
@@ -22174,8 +22508,8 @@
22174
22508
  this.canvas.requestRenderAll();
22175
22509
  }
22176
22510
 
22177
- /**
22178
- * Refresh overlay positioning and styling
22511
+ /**
22512
+ * Refresh overlay positioning and styling
22179
22513
  */
22180
22514
  refresh() {
22181
22515
  if (this.isDestroyed) return;
@@ -22183,8 +22517,8 @@
22183
22517
  // Don't update object bounds on every refresh - only when textarea actually resizes
22184
22518
  }
22185
22519
 
22186
- /**
22187
- * Destroy the overlay editor
22520
+ /**
22521
+ * Destroy the overlay editor
22188
22522
  */
22189
22523
  destroy() {
22190
22524
  let commit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -22211,6 +22545,23 @@
22211
22545
  // Handle commit/cancel after restoring visibility
22212
22546
  if (commit && !this.isComposing) {
22213
22547
  const finalText = this.textarea.value;
22548
+
22549
+ // Auto-detect text direction and update fabric object if needed
22550
+ const detectedDirection = this.firstStrongDir(finalText);
22551
+ const currentDirection = this.target.direction || 'ltr';
22552
+ if (detectedDirection && detectedDirection !== currentDirection) {
22553
+ console.log(`🔄 Overlay Exit: Auto-detected direction change from "${currentDirection}" to "${detectedDirection}"`);
22554
+ console.log(` Text content: "${finalText.substring(0, 50)}..."`);
22555
+
22556
+ // Update the fabric object's direction
22557
+ this.target.set('direction', detectedDirection);
22558
+
22559
+ // Force a re-render to apply the direction change
22560
+ this.canvas.requestRenderAll();
22561
+ console.log(`✅ Fabric object direction updated to: ${detectedDirection}`);
22562
+ } else {
22563
+ console.log(`📝 Overlay Exit: Direction unchanged (${currentDirection}), text: "${finalText.substring(0, 30)}..."`);
22564
+ }
22214
22565
  if (this.onCommit) {
22215
22566
  this.onCommit(finalText);
22216
22567
  }
@@ -22250,25 +22601,40 @@
22250
22601
  }
22251
22602
  }
22252
22603
  autoResizeTextarea() {
22253
- // Allow both vertical growth and shrinking; host width stays fixed
22254
- const oldHeight = parseFloat(window.getComputedStyle(this.textarea).height);
22255
-
22256
- // Reset height to measure actual needed height
22257
- this.textarea.style.height = 'auto';
22604
+ // Store the scroll position and the container's old height for comparison.
22605
+ const scrollTop = this.textarea.scrollTop;
22606
+ const oldHeight = parseFloat(this.hostDiv.style.height || '0');
22607
+
22608
+ // 1. **Force a reliable reflow.**
22609
+ // First, reset the textarea's height to a minimal value. This is the crucial step
22610
+ // that forces the browser to recalculate the content's height from scratch,
22611
+ // ignoring the hostDiv's larger, stale height.
22612
+ this.textarea.style.height = '1px';
22613
+
22614
+ // 2. Read the now-accurate scrollHeight. This value reflects the minimum
22615
+ // height required for the content, whether it's single or multi-line.
22258
22616
  const scrollHeight = this.textarea.scrollHeight;
22259
22617
 
22260
- // Add extra padding to prevent text clipping (especially for line height)
22261
- const lineHeightBuffer = 8; // Extra space to prevent clipping
22262
- const newHeight = Math.max(scrollHeight + lineHeightBuffer, 25); // Minimum height with buffer
22263
- const heightChanged = Math.abs(newHeight - oldHeight) > 2; // Only if meaningful change
22618
+ // A small buffer for rendering consistency across browsers.
22619
+ const buffer = 2;
22620
+ const newHeight = scrollHeight + buffer;
22264
22621
 
22265
- this.textarea.style.height = `${newHeight}px`;
22266
- this.hostDiv.style.height = `${newHeight}px`; // Match exactly
22622
+ // Check if the height has changed significantly.
22623
+ const heightChanged = Math.abs(newHeight - oldHeight) > 1;
22267
22624
 
22268
- // Only update object bounds if height actually changed
22625
+ // 4. Only update heights and object bounds if there was a change.
22269
22626
  if (heightChanged) {
22627
+ this.textarea.style.height = `${newHeight}px`;
22628
+ this.hostDiv.style.height = `${newHeight}px`;
22270
22629
  this.updateObjectBounds();
22630
+ } else {
22631
+ // If no significant change, ensure the textarea's height matches the container
22632
+ // to prevent any minor visual misalignment.
22633
+ this.textarea.style.height = this.hostDiv.style.height;
22271
22634
  }
22635
+
22636
+ // 5. Restore the original scroll position.
22637
+ this.textarea.scrollTop = scrollTop;
22272
22638
  }
22273
22639
  handleKeyDown(e) {
22274
22640
  if (e.key === 'Escape') {
@@ -22277,6 +22643,19 @@
22277
22643
  } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {
22278
22644
  e.preventDefault();
22279
22645
  this.destroy(true); // Commit
22646
+ } else if (e.key === 'Enter' || e.key === 'Backspace' || e.key === 'Delete') {
22647
+ // For keys that might change the height, schedule a resize check
22648
+ // Use both immediate and delayed checks to catch all scenarios
22649
+ requestAnimationFrame(() => {
22650
+ if (!this.isDestroyed) {
22651
+ this.autoResizeTextarea();
22652
+ }
22653
+ });
22654
+ setTimeout(() => {
22655
+ if (!this.isDestroyed) {
22656
+ this.autoResizeTextarea();
22657
+ }
22658
+ }, 10); // Small delay to ensure DOM is updated
22280
22659
  }
22281
22660
  }
22282
22661
  handleFocus() {
@@ -22307,8 +22686,8 @@
22307
22686
  }
22308
22687
  }
22309
22688
 
22310
- /**
22311
- * Setup detection for viewport changes (zoom/pan)
22689
+ /**
22690
+ * Setup detection for viewport changes (zoom/pan)
22312
22691
  */
22313
22692
  setupViewportChangeDetection() {
22314
22693
  // Store original methods
@@ -22337,8 +22716,8 @@
22337
22716
  };
22338
22717
  }
22339
22718
 
22340
- /**
22341
- * Restore original viewport methods
22719
+ /**
22720
+ * Restore original viewport methods
22342
22721
  */
22343
22722
  restoreViewportChangeDetection() {
22344
22723
  if (this.canvas.__originalSetZoom) {
@@ -22353,8 +22732,8 @@
22353
22732
  }
22354
22733
  }
22355
22734
 
22356
- /**
22357
- * Enter overlay text editing mode for a text object
22735
+ /**
22736
+ * Enter overlay text editing mode for a text object
22358
22737
  */
22359
22738
  function enterTextOverlayEdit(canvas, target, options) {
22360
22739
  // If already in overlay editing, destroy existing editor first
@@ -22378,35 +22757,35 @@
22378
22757
  return editor;
22379
22758
  }
22380
22759
 
22381
- /**
22382
- * extend this regex to support non english languages
22383
- *
22384
- * - ` ` Matches a SPACE character (char code 32).
22385
- * - `\n` Matches a LINE FEED character (char code 10).
22386
- * - `.` Matches a "." character (char code 46).
22387
- * - `,` Matches a "," character (char code 44).
22388
- * - `;` Matches a ";" character (char code 59).
22389
- * - `!` Matches a "!" character (char code 33).
22390
- * - `\?` Matches a "?" character (char code 63).
22391
- * - `\-` Matches a "-" character (char code 45).
22760
+ /**
22761
+ * extend this regex to support non english languages
22762
+ *
22763
+ * - ` ` Matches a SPACE character (char code 32).
22764
+ * - `\n` Matches a LINE FEED character (char code 10).
22765
+ * - `.` Matches a "." character (char code 46).
22766
+ * - `,` Matches a "," character (char code 44).
22767
+ * - `;` Matches a ";" character (char code 59).
22768
+ * - `!` Matches a "!" character (char code 33).
22769
+ * - `\?` Matches a "?" character (char code 63).
22770
+ * - `\-` Matches a "-" character (char code 45).
22392
22771
  */
22393
22772
  // eslint-disable-next-line no-useless-escape
22394
22773
  const reNonWord = /[ \n\.,;!\?\-]/;
22395
22774
  class ITextBehavior extends FabricText {
22396
22775
  constructor() {
22397
22776
  super(...arguments);
22398
- /**
22399
- * Helps determining when the text is in composition, so that the cursor
22400
- * rendering is altered.
22777
+ /**
22778
+ * Helps determining when the text is in composition, so that the cursor
22779
+ * rendering is altered.
22401
22780
  */
22402
22781
  _defineProperty(this, "_currentCursorOpacity", 1);
22403
22782
  }
22404
- /**
22405
- * Keeps track if the IText object was selected before the actual click.
22406
- * This because we want to delay enter editing by a click.
22783
+ /**
22784
+ * Keeps track if the IText object was selected before the actual click.
22785
+ * This because we want to delay enter editing by a click.
22407
22786
  */
22408
- /**
22409
- * Initializes all the interactive behavior of IText
22787
+ /**
22788
+ * Initializes all the interactive behavior of IText
22410
22789
  */
22411
22790
  initBehavior() {
22412
22791
  this._tick = this._tick.bind(this);
@@ -22419,8 +22798,8 @@
22419
22798
  return super.onDeselect(options);
22420
22799
  }
22421
22800
 
22422
- /**
22423
- * @private
22801
+ /**
22802
+ * @private
22424
22803
  */
22425
22804
  _animateCursor(_ref) {
22426
22805
  let {
@@ -22445,8 +22824,8 @@
22445
22824
  });
22446
22825
  }
22447
22826
 
22448
- /**
22449
- * changes the cursor from visible to invisible
22827
+ /**
22828
+ * changes the cursor from visible to invisible
22450
22829
  */
22451
22830
  _tick(delay) {
22452
22831
  this._currentTickState = this._animateCursor({
@@ -22457,8 +22836,8 @@
22457
22836
  });
22458
22837
  }
22459
22838
 
22460
- /**
22461
- * Changes the cursor from invisible to visible
22839
+ /**
22840
+ * Changes the cursor from invisible to visible
22462
22841
  */
22463
22842
  _onTickComplete() {
22464
22843
  var _this$_currentTickCom;
@@ -22470,16 +22849,16 @@
22470
22849
  });
22471
22850
  }
22472
22851
 
22473
- /**
22474
- * Initializes delayed cursor
22852
+ /**
22853
+ * Initializes delayed cursor
22475
22854
  */
22476
22855
  initDelayedCursor(restart) {
22477
22856
  this.abortCursorAnimation();
22478
22857
  this._tick(restart ? 0 : this.cursorDelay);
22479
22858
  }
22480
22859
 
22481
- /**
22482
- * Aborts cursor animation, clears all timeouts and clear textarea context if necessary
22860
+ /**
22861
+ * Aborts cursor animation, clears all timeouts and clear textarea context if necessary
22483
22862
  */
22484
22863
  abortCursorAnimation() {
22485
22864
  let shouldClear = false;
@@ -22497,9 +22876,9 @@
22497
22876
  }
22498
22877
  }
22499
22878
 
22500
- /**
22501
- * Restart tue cursor animation if either is in complete state ( between animations )
22502
- * or if it never started before
22879
+ /**
22880
+ * Restart tue cursor animation if either is in complete state ( between animations )
22881
+ * or if it never started before
22503
22882
  */
22504
22883
  restartCursorIfNeeded() {
22505
22884
  if ([this._currentTickState, this._currentTickCompleteState].some(cursorAnimation => !cursorAnimation || cursorAnimation.isDone())) {
@@ -22507,8 +22886,8 @@
22507
22886
  }
22508
22887
  }
22509
22888
 
22510
- /**
22511
- * Selects entire text
22889
+ /**
22890
+ * Selects entire text
22512
22891
  */
22513
22892
  selectAll() {
22514
22893
  this.selectionStart = 0;
@@ -22518,26 +22897,26 @@
22518
22897
  return this;
22519
22898
  }
22520
22899
 
22521
- /**
22522
- * Selects entire text and updates the visual state
22900
+ /**
22901
+ * Selects entire text and updates the visual state
22523
22902
  */
22524
22903
  cmdAll() {
22525
22904
  this.selectAll();
22526
22905
  this.renderCursorOrSelection();
22527
22906
  }
22528
22907
 
22529
- /**
22530
- * Returns selected text
22531
- * @return {String}
22908
+ /**
22909
+ * Returns selected text
22910
+ * @return {String}
22532
22911
  */
22533
22912
  getSelectedText() {
22534
22913
  return this._text.slice(this.selectionStart, this.selectionEnd).join('');
22535
22914
  }
22536
22915
 
22537
- /**
22538
- * Find new selection index representing start of current word according to current selection index
22539
- * @param {Number} startFrom Current selection index
22540
- * @return {Number} New selection index
22916
+ /**
22917
+ * Find new selection index representing start of current word according to current selection index
22918
+ * @param {Number} startFrom Current selection index
22919
+ * @return {Number} New selection index
22541
22920
  */
22542
22921
  findWordBoundaryLeft(startFrom) {
22543
22922
  let offset = 0,
@@ -22557,10 +22936,10 @@
22557
22936
  return startFrom - offset;
22558
22937
  }
22559
22938
 
22560
- /**
22561
- * Find new selection index representing end of current word according to current selection index
22562
- * @param {Number} startFrom Current selection index
22563
- * @return {Number} New selection index
22939
+ /**
22940
+ * Find new selection index representing end of current word according to current selection index
22941
+ * @param {Number} startFrom Current selection index
22942
+ * @return {Number} New selection index
22564
22943
  */
22565
22944
  findWordBoundaryRight(startFrom) {
22566
22945
  let offset = 0,
@@ -22580,10 +22959,10 @@
22580
22959
  return startFrom + offset;
22581
22960
  }
22582
22961
 
22583
- /**
22584
- * Find new selection index representing start of current line according to current selection index
22585
- * @param {Number} startFrom Current selection index
22586
- * @return {Number} New selection index
22962
+ /**
22963
+ * Find new selection index representing start of current line according to current selection index
22964
+ * @param {Number} startFrom Current selection index
22965
+ * @return {Number} New selection index
22587
22966
  */
22588
22967
  findLineBoundaryLeft(startFrom) {
22589
22968
  let offset = 0,
@@ -22595,10 +22974,10 @@
22595
22974
  return startFrom - offset;
22596
22975
  }
22597
22976
 
22598
- /**
22599
- * Find new selection index representing end of current line according to current selection index
22600
- * @param {Number} startFrom Current selection index
22601
- * @return {Number} New selection index
22977
+ /**
22978
+ * Find new selection index representing end of current line according to current selection index
22979
+ * @param {Number} startFrom Current selection index
22980
+ * @return {Number} New selection index
22602
22981
  */
22603
22982
  findLineBoundaryRight(startFrom) {
22604
22983
  let offset = 0,
@@ -22610,11 +22989,11 @@
22610
22989
  return startFrom + offset;
22611
22990
  }
22612
22991
 
22613
- /**
22614
- * Finds index corresponding to beginning or end of a word
22615
- * @param {Number} selectionStart Index of a character
22616
- * @param {Number} direction 1 or -1
22617
- * @return {Number} Index of the beginning or end of a word
22992
+ /**
22993
+ * Finds index corresponding to beginning or end of a word
22994
+ * @param {Number} selectionStart Index of a character
22995
+ * @param {Number} direction 1 or -1
22996
+ * @return {Number} Index of the beginning or end of a word
22618
22997
  */
22619
22998
  searchWordBoundary(selectionStart, direction) {
22620
22999
  const text = this._text;
@@ -22632,9 +23011,9 @@
22632
23011
  return index;
22633
23012
  }
22634
23013
 
22635
- /**
22636
- * Selects the word that contains the char at index selectionStart
22637
- * @param {Number} selectionStart Index of a character
23014
+ /**
23015
+ * Selects the word that contains the char at index selectionStart
23016
+ * @param {Number} selectionStart Index of a character
22638
23017
  */
22639
23018
  selectWord(selectionStart) {
22640
23019
  selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
@@ -22650,9 +23029,9 @@
22650
23029
  this.renderCursorOrSelection();
22651
23030
  }
22652
23031
 
22653
- /**
22654
- * Selects the line that contains selectionStart
22655
- * @param {Number} selectionStart Index of a character
23032
+ /**
23033
+ * Selects the line that contains selectionStart
23034
+ * @param {Number} selectionStart Index of a character
22656
23035
  */
22657
23036
  selectLine(selectionStart) {
22658
23037
  selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
@@ -22664,8 +23043,8 @@
22664
23043
  this._updateTextarea();
22665
23044
  }
22666
23045
 
22667
- /**
22668
- * Enters editing state
23046
+ /**
23047
+ * Enters editing state
22669
23048
  */
22670
23049
  enterEditing(e) {
22671
23050
  if (this.isEditing || !this.editable) {
@@ -22685,8 +23064,8 @@
22685
23064
  }
22686
23065
  }
22687
23066
 
22688
- /**
22689
- * runs the actual logic that enter from editing state, see {@link enterEditing}
23067
+ /**
23068
+ * runs the actual logic that enter from editing state, see {@link enterEditing}
22690
23069
  */
22691
23070
  enterEditingImpl() {
22692
23071
  if (this.canvas) {
@@ -22710,8 +23089,8 @@
22710
23089
  }
22711
23090
  }
22712
23091
 
22713
- /**
22714
- * Enter overlay editing mode using DOM textarea overlay
23092
+ /**
23093
+ * Enter overlay editing mode using DOM textarea overlay
22715
23094
  */
22716
23095
  enterOverlayEditing() {
22717
23096
  this._saveEditingProps();
@@ -22732,8 +23111,8 @@
22732
23111
  });
22733
23112
  }
22734
23113
 
22735
- /**
22736
- * Commit overlay editing changes
23114
+ /**
23115
+ * Commit overlay editing changes
22737
23116
  */
22738
23117
  commitOverlayEdit(text) {
22739
23118
  const overlayEditor = this.__overlayEditor;
@@ -22757,8 +23136,8 @@
22757
23136
  this.canvas && this.canvas.requestRenderAll();
22758
23137
  }
22759
23138
 
22760
- /**
22761
- * Cancel overlay editing without changes
23139
+ /**
23140
+ * Cancel overlay editing without changes
22762
23141
  */
22763
23142
  cancelOverlayEdit() {
22764
23143
  // Restore original text
@@ -22766,8 +23145,8 @@
22766
23145
  this.exitEditing();
22767
23146
  }
22768
23147
 
22769
- /**
22770
- * called by {@link Canvas#textEditingManager}
23148
+ /**
23149
+ * called by {@link Canvas#textEditingManager}
22771
23150
  */
22772
23151
  updateSelectionOnMouseMove(e) {
22773
23152
  if (this.getActiveControl()) {
@@ -22795,8 +23174,8 @@
22795
23174
  }
22796
23175
  }
22797
23176
 
22798
- /**
22799
- * @private
23177
+ /**
23178
+ * @private
22800
23179
  */
22801
23180
  _setEditingProps() {
22802
23181
  this.hoverCursor = 'text';
@@ -22808,8 +23187,8 @@
22808
23187
  this.lockMovementX = this.lockMovementY = true;
22809
23188
  }
22810
23189
 
22811
- /**
22812
- * convert from textarea to grapheme indexes
23190
+ /**
23191
+ * convert from textarea to grapheme indexes
22813
23192
  */
22814
23193
  fromStringToGraphemeSelection(start, end, text) {
22815
23194
  const smallerTextStart = text.slice(0, start),
@@ -22828,8 +23207,8 @@
22828
23207
  };
22829
23208
  }
22830
23209
 
22831
- /**
22832
- * convert from fabric to textarea values
23210
+ /**
23211
+ * convert from fabric to textarea values
22833
23212
  */
22834
23213
  fromGraphemeToStringSelection(start, end, graphemes) {
22835
23214
  const smallerTextStart = graphemes.slice(0, start),
@@ -22848,8 +23227,8 @@
22848
23227
  };
22849
23228
  }
22850
23229
 
22851
- /**
22852
- * @private
23230
+ /**
23231
+ * @private
22853
23232
  */
22854
23233
  _updateTextarea() {
22855
23234
  this.cursorOffsetCache = {};
@@ -22864,8 +23243,8 @@
22864
23243
  this.updateTextareaPosition();
22865
23244
  }
22866
23245
 
22867
- /**
22868
- * @private
23246
+ /**
23247
+ * @private
22869
23248
  */
22870
23249
  updateFromTextArea() {
22871
23250
  if (!this.hiddenTextarea) {
@@ -22885,8 +23264,8 @@
22885
23264
  this.updateTextareaPosition();
22886
23265
  }
22887
23266
 
22888
- /**
22889
- * @private
23267
+ /**
23268
+ * @private
22890
23269
  */
22891
23270
  updateTextareaPosition() {
22892
23271
  if (this.selectionStart === this.selectionEnd) {
@@ -22896,9 +23275,9 @@
22896
23275
  }
22897
23276
  }
22898
23277
 
22899
- /**
22900
- * @private
22901
- * @return {Object} style contains style for hiddenTextarea
23278
+ /**
23279
+ * @private
23280
+ * @return {Object} style contains style for hiddenTextarea
22902
23281
  */
22903
23282
  _calcTextareaPosition() {
22904
23283
  if (!this.canvas) {
@@ -22945,8 +23324,8 @@
22945
23324
  };
22946
23325
  }
22947
23326
 
22948
- /**
22949
- * @private
23327
+ /**
23328
+ * @private
22950
23329
  */
22951
23330
  _saveEditingProps() {
22952
23331
  this._savedProps = {
@@ -22963,8 +23342,8 @@
22963
23342
  };
22964
23343
  }
22965
23344
 
22966
- /**
22967
- * @private
23345
+ /**
23346
+ * @private
22968
23347
  */
22969
23348
  _restoreEditingProps() {
22970
23349
  if (!this._savedProps) {
@@ -22984,9 +23363,9 @@
22984
23363
  delete this._savedProps;
22985
23364
  }
22986
23365
 
22987
- /**
22988
- * runs the actual logic that exits from editing state, see {@link exitEditing}
22989
- * But it does not fire events
23366
+ /**
23367
+ * runs the actual logic that exits from editing state, see {@link exitEditing}
23368
+ * But it does not fire events
22990
23369
  */
22991
23370
  exitEditingImpl() {
22992
23371
  const hiddenTextarea = this.hiddenTextarea;
@@ -23007,8 +23386,8 @@
23007
23386
  }
23008
23387
  }
23009
23388
 
23010
- /**
23011
- * Exits from editing state and fires relevant events
23389
+ /**
23390
+ * Exits from editing state and fires relevant events
23012
23391
  */
23013
23392
  exitEditing() {
23014
23393
  const isTextChanged = this._textBeforeEdit !== this.text;
@@ -23027,8 +23406,8 @@
23027
23406
  return this;
23028
23407
  }
23029
23408
 
23030
- /**
23031
- * @private
23409
+ /**
23410
+ * @private
23032
23411
  */
23033
23412
  _removeExtraneousStyles() {
23034
23413
  for (const prop in this.styles) {
@@ -23038,10 +23417,10 @@
23038
23417
  }
23039
23418
  }
23040
23419
 
23041
- /**
23042
- * remove and reflow a style block from start to end.
23043
- * @param {Number} start linear start position for removal (included in removal)
23044
- * @param {Number} end linear end position for removal ( excluded from removal )
23420
+ /**
23421
+ * remove and reflow a style block from start to end.
23422
+ * @param {Number} start linear start position for removal (included in removal)
23423
+ * @param {Number} end linear end position for removal ( excluded from removal )
23045
23424
  */
23046
23425
  removeStyleFromTo(start, end) {
23047
23426
  const {
@@ -23094,10 +23473,10 @@
23094
23473
  }
23095
23474
  }
23096
23475
 
23097
- /**
23098
- * Shifts line styles up or down
23099
- * @param {Number} lineIndex Index of a line
23100
- * @param {Number} offset Can any number?
23476
+ /**
23477
+ * Shifts line styles up or down
23478
+ * @param {Number} lineIndex Index of a line
23479
+ * @param {Number} offset Can any number?
23101
23480
  */
23102
23481
  shiftLineStyles(lineIndex, offset) {
23103
23482
  const clonedStyles = Object.assign({}, this.styles);
@@ -23112,15 +23491,15 @@
23112
23491
  }
23113
23492
  }
23114
23493
 
23115
- /**
23116
- * Handle insertion of more consecutive style lines for when one or more
23117
- * newlines gets added to the text. Since current style needs to be shifted
23118
- * first we shift the current style of the number lines needed, then we add
23119
- * new lines from the last to the first.
23120
- * @param {Number} lineIndex Index of a line
23121
- * @param {Number} charIndex Index of a char
23122
- * @param {Number} qty number of lines to add
23123
- * @param {Array} copiedStyle Array of objects styles
23494
+ /**
23495
+ * Handle insertion of more consecutive style lines for when one or more
23496
+ * newlines gets added to the text. Since current style needs to be shifted
23497
+ * first we shift the current style of the number lines needed, then we add
23498
+ * new lines from the last to the first.
23499
+ * @param {Number} lineIndex Index of a line
23500
+ * @param {Number} charIndex Index of a char
23501
+ * @param {Number} qty number of lines to add
23502
+ * @param {Array} copiedStyle Array of objects styles
23124
23503
  */
23125
23504
  insertNewlineStyleObject(lineIndex, charIndex, qty, copiedStyle) {
23126
23505
  const newLineStyles = {};
@@ -23180,12 +23559,12 @@
23180
23559
  this._forceClearCache = true;
23181
23560
  }
23182
23561
 
23183
- /**
23184
- * Inserts style object for a given line/char index
23185
- * @param {Number} lineIndex Index of a line
23186
- * @param {Number} charIndex Index of a char
23187
- * @param {Number} quantity number Style object to insert, if given
23188
- * @param {Array} copiedStyle array of style objects
23562
+ /**
23563
+ * Inserts style object for a given line/char index
23564
+ * @param {Number} lineIndex Index of a line
23565
+ * @param {Number} charIndex Index of a char
23566
+ * @param {Number} quantity number Style object to insert, if given
23567
+ * @param {Array} copiedStyle array of style objects
23189
23568
  */
23190
23569
  insertCharStyleObject(lineIndex, charIndex, quantity, copiedStyle) {
23191
23570
  if (!this.styles) {
@@ -23234,11 +23613,11 @@
23234
23613
  }
23235
23614
  }
23236
23615
 
23237
- /**
23238
- * Inserts style object(s)
23239
- * @param {Array} insertedText Characters at the location where style is inserted
23240
- * @param {Number} start cursor index for inserting style
23241
- * @param {Array} [copiedStyle] array of style objects to insert.
23616
+ /**
23617
+ * Inserts style object(s)
23618
+ * @param {Array} insertedText Characters at the location where style is inserted
23619
+ * @param {Number} start cursor index for inserting style
23620
+ * @param {Array} [copiedStyle] array of style objects to insert.
23242
23621
  */
23243
23622
  insertNewStyleBlock(insertedText, start, copiedStyle) {
23244
23623
  const cursorLoc = this.get2DCursorLocation(start, true),
@@ -23279,12 +23658,12 @@
23279
23658
  }
23280
23659
  }
23281
23660
 
23282
- /**
23283
- * Removes characters from start/end
23284
- * start/end ar per grapheme position in _text array.
23285
- *
23286
- * @param {Number} start
23287
- * @param {Number} end default to start + 1
23661
+ /**
23662
+ * Removes characters from start/end
23663
+ * start/end ar per grapheme position in _text array.
23664
+ *
23665
+ * @param {Number} start
23666
+ * @param {Number} end default to start + 1
23288
23667
  */
23289
23668
  removeChars(start) {
23290
23669
  let end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : start + 1;
@@ -23297,17 +23676,17 @@
23297
23676
  this._removeExtraneousStyles();
23298
23677
  }
23299
23678
 
23300
- /**
23301
- * insert characters at start position, before start position.
23302
- * start equal 1 it means the text get inserted between actual grapheme 0 and 1
23303
- * if style array is provided, it must be as the same length of text in graphemes
23304
- * if end is provided and is bigger than start, old text is replaced.
23305
- * start/end ar per grapheme position in _text array.
23306
- *
23307
- * @param {String} text text to insert
23308
- * @param {Array} style array of style objects
23309
- * @param {Number} start
23310
- * @param {Number} end default to start + 1
23679
+ /**
23680
+ * insert characters at start position, before start position.
23681
+ * start equal 1 it means the text get inserted between actual grapheme 0 and 1
23682
+ * if style array is provided, it must be as the same length of text in graphemes
23683
+ * if end is provided and is bigger than start, old text is replaced.
23684
+ * start/end ar per grapheme position in _text array.
23685
+ *
23686
+ * @param {String} text text to insert
23687
+ * @param {Array} style array of style objects
23688
+ * @param {Number} start
23689
+ * @param {Number} end default to start + 1
23311
23690
  */
23312
23691
  insertChars(text, style, start) {
23313
23692
  let end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : start;
@@ -23324,9 +23703,9 @@
23324
23703
  this._removeExtraneousStyles();
23325
23704
  }
23326
23705
 
23327
- /**
23328
- * Set the selectionStart and selectionEnd according to the new position of cursor
23329
- * mimic the key - mouse navigation when shift is pressed.
23706
+ /**
23707
+ * Set the selectionStart and selectionEnd according to the new position of cursor
23708
+ * mimic the key - mouse navigation when shift is pressed.
23330
23709
  */
23331
23710
  setSelectionStartEndWithShift(start, end, newSelection) {
23332
23711
  if (newSelection <= start) {
@@ -23949,8 +24328,8 @@
23949
24328
  }
23950
24329
  }
23951
24330
 
23952
- /**
23953
- * `LEFT_CLICK === 0`
24331
+ /**
24332
+ * `LEFT_CLICK === 0`
23954
24333
  */
23955
24334
  const notALeftClick = e => !!e.button;
23956
24335
  class ITextClickBehavior extends ITextKeyBehavior {
@@ -23968,36 +24347,36 @@
23968
24347
  super.initBehavior();
23969
24348
  }
23970
24349
 
23971
- /**
23972
- * If this method returns true a mouse move operation over a text selection
23973
- * will not prevent the native mouse event allowing the browser to start a drag operation.
23974
- * shouldStartDragging can be read 'do not prevent default for mouse move event'
23975
- * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
23976
- * @returns
24350
+ /**
24351
+ * If this method returns true a mouse move operation over a text selection
24352
+ * will not prevent the native mouse event allowing the browser to start a drag operation.
24353
+ * shouldStartDragging can be read 'do not prevent default for mouse move event'
24354
+ * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
24355
+ * @returns
23977
24356
  */
23978
24357
  shouldStartDragging() {
23979
24358
  return this.draggableTextDelegate.isActive();
23980
24359
  }
23981
24360
 
23982
- /**
23983
- * @public override this method to control whether instance should/shouldn't become a drag source,
23984
- * @see also {@link DraggableTextDelegate#isActive}
23985
- * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
23986
- * @returns {boolean} should handle event
24361
+ /**
24362
+ * @public override this method to control whether instance should/shouldn't become a drag source,
24363
+ * @see also {@link DraggableTextDelegate#isActive}
24364
+ * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
24365
+ * @returns {boolean} should handle event
23987
24366
  */
23988
24367
  onDragStart(e) {
23989
24368
  return this.draggableTextDelegate.onDragStart(e);
23990
24369
  }
23991
24370
 
23992
- /**
23993
- * @public override this method to control whether instance should/shouldn't become a drop target
24371
+ /**
24372
+ * @public override this method to control whether instance should/shouldn't become a drop target
23994
24373
  */
23995
24374
  canDrop(e) {
23996
24375
  return this.draggableTextDelegate.canDrop(e);
23997
24376
  }
23998
24377
 
23999
- /**
24000
- * Default handler for double click, select a word or enter overlay editing
24378
+ /**
24379
+ * Default handler for double click, select a word or enter overlay editing
24001
24380
  */
24002
24381
  doubleClickHandler(options) {
24003
24382
  // Check if we should enter overlay editing mode
@@ -24014,8 +24393,8 @@
24014
24393
  this.renderCursorOrSelection();
24015
24394
  }
24016
24395
 
24017
- /**
24018
- * Default handler for triple click, select a line
24396
+ /**
24397
+ * Default handler for triple click, select a line
24019
24398
  */
24020
24399
  tripleClickHandler(options) {
24021
24400
  if (!this.isEditing) {
@@ -24025,13 +24404,13 @@
24025
24404
  this.renderCursorOrSelection();
24026
24405
  }
24027
24406
 
24028
- /**
24029
- * Default event handler for the basic functionalities needed on _mouseDown
24030
- * can be overridden to do something different.
24031
- * Scope of this implementation is: find the click position, set selectionStart
24032
- * find selectionEnd, initialize the drawing of either cursor or selection area
24033
- * initializing a mousedDown on a text area will cancel fabricjs knowledge of
24034
- * current compositionMode. It will be set to false.
24407
+ /**
24408
+ * Default event handler for the basic functionalities needed on _mouseDown
24409
+ * can be overridden to do something different.
24410
+ * Scope of this implementation is: find the click position, set selectionStart
24411
+ * find selectionEnd, initialize the drawing of either cursor or selection area
24412
+ * initializing a mousedDown on a text area will cancel fabricjs knowledge of
24413
+ * current compositionMode. It will be set to false.
24035
24414
  */
24036
24415
  _mouseDownHandler(_ref) {
24037
24416
  let {
@@ -24059,9 +24438,9 @@
24059
24438
  this.selected || (this.selected = alreadySelected || this.isEditing);
24060
24439
  }
24061
24440
 
24062
- /**
24063
- * standard handler for mouse up, overridable
24064
- * @private
24441
+ /**
24442
+ * standard handler for mouse up, overridable
24443
+ * @private
24065
24444
  */
24066
24445
  mouseUpHandler(_ref2) {
24067
24446
  let {
@@ -24092,9 +24471,9 @@
24092
24471
  }
24093
24472
  }
24094
24473
 
24095
- /**
24096
- * Changes cursor location in a text depending on passed pointer (x/y) object
24097
- * @param {TPointerEvent} e Event object
24474
+ /**
24475
+ * Changes cursor location in a text depending on passed pointer (x/y) object
24476
+ * @param {TPointerEvent} e Event object
24098
24477
  */
24099
24478
  setCursorByClick(e) {
24100
24479
  const newSelection = this.getSelectionStartFromPointer(e),
@@ -24112,10 +24491,10 @@
24112
24491
  }
24113
24492
  }
24114
24493
 
24115
- /**
24116
- * Returns index of a character corresponding to where an object was clicked
24117
- * @param {TPointerEvent} e Event object
24118
- * @return {Number} Index of a character
24494
+ /**
24495
+ * Returns index of a character corresponding to where an object was clicked
24496
+ * @param {TPointerEvent} e Event object
24497
+ * @return {Number} Index of a character
24119
24498
  */
24120
24499
  getSelectionStartFromPointer(e) {
24121
24500
  const mouseOffset = this.canvas.getScenePoint(e).transform(invertTransform(this.calcTransformMatrix())).add(new Point(-this._getLeftOffset(), -this._getTopOffset()));
@@ -24161,15 +24540,15 @@
24161
24540
  }
24162
24541
  }
24163
24542
 
24164
- /**
24165
- * Hit Testing and Cursor Positioning System
24166
- *
24167
- * Maps pointer coordinates to text positions and provides cursor rectangles
24168
- * for interactive text editing with grapheme-aware boundaries.
24543
+ /**
24544
+ * Hit Testing and Cursor Positioning System
24545
+ *
24546
+ * Maps pointer coordinates to text positions and provides cursor rectangles
24547
+ * for interactive text editing with grapheme-aware boundaries.
24169
24548
  */
24170
24549
 
24171
- /**
24172
- * Hit test a point against laid out text to find insertion position
24550
+ /**
24551
+ * Hit test a point against laid out text to find insertion position
24173
24552
  */
24174
24553
  function hitTest(x, y, layout, options) {
24175
24554
  if (layout.lines.length === 0) {
@@ -24213,8 +24592,8 @@
24213
24592
  };
24214
24593
  }
24215
24594
 
24216
- /**
24217
- * Get cursor rectangle for a given insertion index
24595
+ /**
24596
+ * Get cursor rectangle for a given insertion index
24218
24597
  */
24219
24598
  function getCursorRect(insertionIndex, layout, options) {
24220
24599
  if (layout.lines.length === 0) {
@@ -24261,8 +24640,8 @@
24261
24640
 
24262
24641
  // Private helper functions
24263
24642
 
24264
- /**
24265
- * Find which line contains the given Y coordinate
24643
+ /**
24644
+ * Find which line contains the given Y coordinate
24266
24645
  */
24267
24646
  function findLineAtY(y, lines) {
24268
24647
  var _lines;
@@ -24285,8 +24664,8 @@
24285
24664
  };
24286
24665
  }
24287
24666
 
24288
- /**
24289
- * Find character position within a line at given X coordinate
24667
+ /**
24668
+ * Find character position within a line at given X coordinate
24290
24669
  */
24291
24670
  function findCharAtX(x, line, options) {
24292
24671
  if (line.bounds.length === 0) {
@@ -24392,8 +24771,8 @@
24392
24771
  };
24393
24772
  }
24394
24773
 
24395
- /**
24396
- * Calculate total insertion index from line and character indices
24774
+ /**
24775
+ * Calculate total insertion index from line and character indices
24397
24776
  */
24398
24777
  function calculateInsertionIndex(lineIndex, graphemeIndex, layout) {
24399
24778
  let insertionIndex = 0;
@@ -24412,8 +24791,8 @@
24412
24791
  return insertionIndex;
24413
24792
  }
24414
24793
 
24415
- /**
24416
- * Find line and grapheme position from insertion index
24794
+ /**
24795
+ * Find line and grapheme position from insertion index
24417
24796
  */
24418
24797
  function findPositionFromIndex(insertionIndex, layout) {
24419
24798
  let currentIndex = 0;
@@ -24455,8 +24834,8 @@
24455
24834
  };
24456
24835
  }
24457
24836
 
24458
- /**
24459
- * Calculate Y position of a line
24837
+ /**
24838
+ * Calculate Y position of a line
24460
24839
  */
24461
24840
  function calculateLineY(lineIndex, layout, options) {
24462
24841
  let y = 0;
@@ -24559,48 +24938,48 @@
24559
24938
 
24560
24939
  // @TODO this is not complete
24561
24940
 
24562
- /**
24563
- * @fires changed
24564
- * @fires selection:changed
24565
- * @fires editing:entered
24566
- * @fires editing:exited
24567
- * @fires dragstart
24568
- * @fires drag drag event firing on the drag source
24569
- * @fires dragend
24570
- * @fires copy
24571
- * @fires cut
24572
- * @fires paste
24573
- *
24574
- * #### Supported key combinations
24575
- * ```
24576
- * Move cursor: left, right, up, down
24577
- * Select character: shift + left, shift + right
24578
- * Select text vertically: shift + up, shift + down
24579
- * Move cursor by word: alt + left, alt + right
24580
- * Select words: shift + alt + left, shift + alt + right
24581
- * Move cursor to line start/end: cmd + left, cmd + right or home, end
24582
- * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
24583
- * Jump to start/end of text: cmd + up, cmd + down
24584
- * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
24585
- * Delete character: backspace
24586
- * Delete word: alt + backspace
24587
- * Delete line: cmd + backspace
24588
- * Forward delete: delete
24589
- * Copy text: ctrl/cmd + c
24590
- * Paste text: ctrl/cmd + v
24591
- * Cut text: ctrl/cmd + x
24592
- * Select entire text: ctrl/cmd + a
24593
- * Quit editing tab or esc
24594
- * ```
24595
- *
24596
- * #### Supported mouse/touch combination
24597
- * ```
24598
- * Position cursor: click/touch
24599
- * Create selection: click/touch & drag
24600
- * Create selection: click & shift + click
24601
- * Select word: double click
24602
- * Select line: triple click
24603
- * ```
24941
+ /**
24942
+ * @fires changed
24943
+ * @fires selection:changed
24944
+ * @fires editing:entered
24945
+ * @fires editing:exited
24946
+ * @fires dragstart
24947
+ * @fires drag drag event firing on the drag source
24948
+ * @fires dragend
24949
+ * @fires copy
24950
+ * @fires cut
24951
+ * @fires paste
24952
+ *
24953
+ * #### Supported key combinations
24954
+ * ```
24955
+ * Move cursor: left, right, up, down
24956
+ * Select character: shift + left, shift + right
24957
+ * Select text vertically: shift + up, shift + down
24958
+ * Move cursor by word: alt + left, alt + right
24959
+ * Select words: shift + alt + left, shift + alt + right
24960
+ * Move cursor to line start/end: cmd + left, cmd + right or home, end
24961
+ * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
24962
+ * Jump to start/end of text: cmd + up, cmd + down
24963
+ * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
24964
+ * Delete character: backspace
24965
+ * Delete word: alt + backspace
24966
+ * Delete line: cmd + backspace
24967
+ * Forward delete: delete
24968
+ * Copy text: ctrl/cmd + c
24969
+ * Paste text: ctrl/cmd + v
24970
+ * Cut text: ctrl/cmd + x
24971
+ * Select entire text: ctrl/cmd + a
24972
+ * Quit editing tab or esc
24973
+ * ```
24974
+ *
24975
+ * #### Supported mouse/touch combination
24976
+ * ```
24977
+ * Position cursor: click/touch
24978
+ * Create selection: click/touch & drag
24979
+ * Create selection: click & shift + click
24980
+ * Select word: double click
24981
+ * Select line: triple click
24982
+ * ```
24604
24983
  */
24605
24984
  class IText extends ITextClickBehavior {
24606
24985
  static getDefaults() {
@@ -24615,10 +24994,10 @@
24615
24994
  return type === 'itext' ? 'i-text' : type;
24616
24995
  }
24617
24996
 
24618
- /**
24619
- * Constructor
24620
- * @param {String} text Text string
24621
- * @param {Object} [options] Options object
24997
+ /**
24998
+ * Constructor
24999
+ * @param {String} text Text string
25000
+ * @param {Object} [options] Options object
24622
25001
  */
24623
25002
  constructor(text, options) {
24624
25003
  super(text, {
@@ -24628,11 +25007,11 @@
24628
25007
  this.initBehavior();
24629
25008
  }
24630
25009
 
24631
- /**
24632
- * While editing handle differently
24633
- * @private
24634
- * @param {string} key
24635
- * @param {*} value
25010
+ /**
25011
+ * While editing handle differently
25012
+ * @private
25013
+ * @param {string} key
25014
+ * @param {*} value
24636
25015
  */
24637
25016
  _set(key, value) {
24638
25017
  if (this.isEditing && this._savedProps && key in this._savedProps) {
@@ -24647,28 +25026,28 @@
24647
25026
  return super._set(key, value);
24648
25027
  }
24649
25028
 
24650
- /**
24651
- * Sets selection start (left boundary of a selection)
24652
- * @param {Number} index Index to set selection start to
25029
+ /**
25030
+ * Sets selection start (left boundary of a selection)
25031
+ * @param {Number} index Index to set selection start to
24653
25032
  */
24654
25033
  setSelectionStart(index) {
24655
25034
  index = Math.max(index, 0);
24656
25035
  this._updateAndFire('selectionStart', index);
24657
25036
  }
24658
25037
 
24659
- /**
24660
- * Sets selection end (right boundary of a selection)
24661
- * @param {Number} index Index to set selection end to
25038
+ /**
25039
+ * Sets selection end (right boundary of a selection)
25040
+ * @param {Number} index Index to set selection end to
24662
25041
  */
24663
25042
  setSelectionEnd(index) {
24664
25043
  index = Math.min(index, this.text.length);
24665
25044
  this._updateAndFire('selectionEnd', index);
24666
25045
  }
24667
25046
 
24668
- /**
24669
- * @private
24670
- * @param {String} property 'selectionStart' or 'selectionEnd'
24671
- * @param {Number} index new position of property
25047
+ /**
25048
+ * @private
25049
+ * @param {String} property 'selectionStart' or 'selectionEnd'
25050
+ * @param {Number} index new position of property
24672
25051
  */
24673
25052
  _updateAndFire(property, index) {
24674
25053
  if (this[property] !== index) {
@@ -24678,9 +25057,9 @@
24678
25057
  this._updateTextarea();
24679
25058
  }
24680
25059
 
24681
- /**
24682
- * Fires the even of selection changed
24683
- * @private
25060
+ /**
25061
+ * Fires the even of selection changed
25062
+ * @private
24684
25063
  */
24685
25064
  _fireSelectionChanged() {
24686
25065
  this.fire('selection:changed');
@@ -24689,25 +25068,25 @@
24689
25068
  });
24690
25069
  }
24691
25070
 
24692
- /**
24693
- * Initialize text dimensions. Render all text on given context
24694
- * or on a offscreen canvas to get the text width with measureText.
24695
- * Updates this.width and this.height with the proper values.
24696
- * Does not return dimensions.
24697
- * @private
25071
+ /**
25072
+ * Initialize text dimensions. Render all text on given context
25073
+ * or on a offscreen canvas to get the text width with measureText.
25074
+ * Updates this.width and this.height with the proper values.
25075
+ * Does not return dimensions.
25076
+ * @private
24698
25077
  */
24699
25078
  initDimensions() {
24700
25079
  this.isEditing && this.initDelayedCursor();
24701
25080
  super.initDimensions();
24702
25081
  }
24703
25082
 
24704
- /**
24705
- * Gets style of a current selection/cursor (at the start position)
24706
- * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
24707
- * @param {Number} startIndex Start index to get styles at
24708
- * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
24709
- * @param {Boolean} [complete] get full style or not
24710
- * @return {Array} styles an array with one, zero or more Style objects
25083
+ /**
25084
+ * Gets style of a current selection/cursor (at the start position)
25085
+ * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
25086
+ * @param {Number} startIndex Start index to get styles at
25087
+ * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
25088
+ * @param {Boolean} [complete] get full style or not
25089
+ * @return {Array} styles an array with one, zero or more Style objects
24711
25090
  */
24712
25091
  getSelectionStyles() {
24713
25092
  let startIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart || 0;
@@ -24716,11 +25095,11 @@
24716
25095
  return super.getSelectionStyles(startIndex, endIndex, complete);
24717
25096
  }
24718
25097
 
24719
- /**
24720
- * Sets style of a current selection, if no selection exist, do not set anything.
24721
- * @param {Object} [styles] Styles object
24722
- * @param {Number} [startIndex] Start index to get styles at
24723
- * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
25098
+ /**
25099
+ * Sets style of a current selection, if no selection exist, do not set anything.
25100
+ * @param {Object} [styles] Styles object
25101
+ * @param {Number} [startIndex] Start index to get styles at
25102
+ * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
24724
25103
  */
24725
25104
  setSelectionStyles(styles) {
24726
25105
  let startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.selectionStart || 0;
@@ -24728,10 +25107,10 @@
24728
25107
  return super.setSelectionStyles(styles, startIndex, endIndex);
24729
25108
  }
24730
25109
 
24731
- /**
24732
- * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
24733
- * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
24734
- * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
25110
+ /**
25111
+ * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
25112
+ * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
25113
+ * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
24735
25114
  */
24736
25115
  get2DCursorLocation() {
24737
25116
  let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -24739,9 +25118,9 @@
24739
25118
  return super.get2DCursorLocation(selectionStart, skipWrapping);
24740
25119
  }
24741
25120
 
24742
- /**
24743
- * @private
24744
- * @param {CanvasRenderingContext2D} ctx Context to render on
25121
+ /**
25122
+ * @private
25123
+ * @param {CanvasRenderingContext2D} ctx Context to render on
24745
25124
  */
24746
25125
  render(ctx) {
24747
25126
  super.render(ctx);
@@ -24751,9 +25130,9 @@
24751
25130
  this.renderCursorOrSelection();
24752
25131
  }
24753
25132
 
24754
- /**
24755
- * @override block cursor/selection logic while rendering the exported canvas
24756
- * @todo this workaround should be replaced with a more robust solution
25133
+ /**
25134
+ * @override block cursor/selection logic while rendering the exported canvas
25135
+ * @todo this workaround should be replaced with a more robust solution
24757
25136
  */
24758
25137
  toCanvasElement(options) {
24759
25138
  const isEditing = this.isEditing;
@@ -24763,9 +25142,9 @@
24763
25142
  return canvas;
24764
25143
  }
24765
25144
 
24766
- /**
24767
- * Renders cursor or selection (depending on what exists)
24768
- * it does on the contextTop. If contextTop is not available, do nothing.
25145
+ /**
25146
+ * Renders cursor or selection (depending on what exists)
25147
+ * it does on the contextTop. If contextTop is not available, do nothing.
24769
25148
  */
24770
25149
  renderCursorOrSelection() {
24771
25150
  if (!this.isEditing || !this.canvas) {
@@ -24821,12 +25200,12 @@
24821
25200
  ctx.restore();
24822
25201
  }
24823
25202
 
24824
- /**
24825
- * Finds and returns an array of clip paths that are applied to the parent
24826
- * group(s) of the current FabricObject instance. The object's hierarchy is
24827
- * traversed upwards (from the current object towards the root of the canvas),
24828
- * checking each parent object for the presence of a `clipPath` that is not
24829
- * absolutely positioned.
25203
+ /**
25204
+ * Finds and returns an array of clip paths that are applied to the parent
25205
+ * group(s) of the current FabricObject instance. The object's hierarchy is
25206
+ * traversed upwards (from the current object towards the root of the canvas),
25207
+ * checking each parent object for the presence of a `clipPath` that is not
25208
+ * absolutely positioned.
24830
25209
  */
24831
25210
  findAncestorsWithClipPath() {
24832
25211
  const clipPathAncestors = [];
@@ -24841,13 +25220,13 @@
24841
25220
  return clipPathAncestors;
24842
25221
  }
24843
25222
 
24844
- /**
24845
- * Returns cursor boundaries (left, top, leftOffset, topOffset)
24846
- * left/top are left/top of entire text box
24847
- * leftOffset/topOffset are offset from that left/top point of a text box
24848
- * @private
24849
- * @param {number} [index] index from start
24850
- * @param {boolean} [skipCaching]
25223
+ /**
25224
+ * Returns cursor boundaries (left, top, leftOffset, topOffset)
25225
+ * left/top are left/top of entire text box
25226
+ * leftOffset/topOffset are offset from that left/top point of a text box
25227
+ * @private
25228
+ * @param {number} [index] index from start
25229
+ * @param {boolean} [skipCaching]
24851
25230
  */
24852
25231
  _getCursorBoundaries() {
24853
25232
  let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -24861,11 +25240,11 @@
24861
25240
  return this._getCursorBoundariesOriginal(index, skipCaching);
24862
25241
  }
24863
25242
 
24864
- /**
24865
- * Caches and returns cursor left/top offset relative to instance's center point
24866
- * @private
24867
- * @param {number} index index from start
24868
- * @param {boolean} [skipCaching]
25243
+ /**
25244
+ * Caches and returns cursor left/top offset relative to instance's center point
25245
+ * @private
25246
+ * @param {number} index index from start
25247
+ * @param {boolean} [skipCaching]
24869
25248
  */
24870
25249
  _getCursorBoundariesOffsets(index, skipCaching) {
24871
25250
  if (skipCaching) {
@@ -24877,9 +25256,9 @@
24877
25256
  return this.cursorOffsetCache = this.__getCursorBoundariesOffsets(index);
24878
25257
  }
24879
25258
 
24880
- /**
24881
- * Enhanced cursor boundaries using advanced hit testing when available
24882
- * @private
25259
+ /**
25260
+ * Enhanced cursor boundaries using advanced hit testing when available
25261
+ * @private
24883
25262
  */
24884
25263
  _getCursorBoundariesAdvanced(index) {
24885
25264
  if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
@@ -24895,9 +25274,9 @@
24895
25274
  };
24896
25275
  }
24897
25276
 
24898
- /**
24899
- * Enhanced selection start from pointer using BiDi-aware hit testing
24900
- * @override
25277
+ /**
25278
+ * Enhanced selection start from pointer using BiDi-aware hit testing
25279
+ * @override
24901
25280
  */
24902
25281
  getSelectionStartFromPointer(e) {
24903
25282
  if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
@@ -24911,9 +25290,9 @@
24911
25290
  return Math.min(hitResult.charIndex, this._text.length);
24912
25291
  }
24913
25292
 
24914
- /**
24915
- * Original cursor boundaries implementation
24916
- * @private
25293
+ /**
25294
+ * Original cursor boundaries implementation
25295
+ * @private
24917
25296
  */
24918
25297
  _getCursorBoundariesOriginal(index, skipCaching) {
24919
25298
  const left = this._getLeftOffset(),
@@ -24927,10 +25306,10 @@
24927
25306
  };
24928
25307
  }
24929
25308
 
24930
- /**
24931
- * Calculates cursor left/top offset relative to instance's center point
24932
- * @private
24933
- * @param {number} index index from start
25309
+ /**
25310
+ * Calculates cursor left/top offset relative to instance's center point
25311
+ * @private
25312
+ * @param {number} index index from start
24934
25313
  */
24935
25314
  __getCursorBoundariesOffsets(index) {
24936
25315
  let topOffset = 0,
@@ -24964,29 +25343,29 @@
24964
25343
  return boundaries;
24965
25344
  }
24966
25345
 
24967
- /**
24968
- * Renders cursor on context Top, outside the animation cycle, on request
24969
- * Used for the drag/drop effect.
24970
- * If contextTop is not available, do nothing.
25346
+ /**
25347
+ * Renders cursor on context Top, outside the animation cycle, on request
25348
+ * Used for the drag/drop effect.
25349
+ * If contextTop is not available, do nothing.
24971
25350
  */
24972
25351
  renderCursorAt(selectionStart) {
24973
25352
  this._renderCursor(this.canvas.contextTop, this._getCursorBoundaries(selectionStart, true), selectionStart);
24974
25353
  }
24975
25354
 
24976
- /**
24977
- * Renders cursor
24978
- * @param {Object} boundaries
24979
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25355
+ /**
25356
+ * Renders cursor
25357
+ * @param {Object} boundaries
25358
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
24980
25359
  */
24981
25360
  renderCursor(ctx, boundaries) {
24982
25361
  this._renderCursor(ctx, boundaries, this.selectionStart);
24983
25362
  }
24984
25363
 
24985
- /**
24986
- * Return the data needed to render the cursor for given selection start
24987
- * The left,top are relative to the object, while width and height are prescaled
24988
- * to look think with canvas zoom and object scaling,
24989
- * so they depend on canvas and object scaling
25364
+ /**
25365
+ * Return the data needed to render the cursor for given selection start
25366
+ * The left,top are relative to the object, while width and height are prescaled
25367
+ * to look think with canvas zoom and object scaling,
25368
+ * so they depend on canvas and object scaling
24990
25369
  */
24991
25370
  getCursorRenderingData() {
24992
25371
  let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
@@ -25009,9 +25388,9 @@
25009
25388
  };
25010
25389
  }
25011
25390
 
25012
- /**
25013
- * Render the cursor at the given selectionStart.
25014
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25391
+ /**
25392
+ * Render the cursor at the given selectionStart.
25393
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25015
25394
  */
25016
25395
  _renderCursor(ctx, boundaries, selectionStart) {
25017
25396
  const {
@@ -25027,10 +25406,10 @@
25027
25406
  ctx.fillRect(left, top, width, height);
25028
25407
  }
25029
25408
 
25030
- /**
25031
- * Renders text selection
25032
- * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25033
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25409
+ /**
25410
+ * Renders text selection
25411
+ * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25412
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25034
25413
  */
25035
25414
  renderSelection(ctx, boundaries) {
25036
25415
  const selection = {
@@ -25040,8 +25419,8 @@
25040
25419
  this._renderSelection(ctx, selection, boundaries);
25041
25420
  }
25042
25421
 
25043
- /**
25044
- * Renders drag start text selection
25422
+ /**
25423
+ * Renders drag start text selection
25045
25424
  */
25046
25425
  renderDragSourceEffect() {
25047
25426
  const dragStartSelection = this.draggableTextDelegate.getDragStartSelection();
@@ -25052,12 +25431,12 @@
25052
25431
  this.renderCursorAt(dragSelection);
25053
25432
  }
25054
25433
 
25055
- /**
25056
- * Renders text selection
25057
- * @private
25058
- * @param {{ selectionStart: number, selectionEnd: number }} selection
25059
- * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25060
- * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25434
+ /**
25435
+ * Renders text selection
25436
+ * @private
25437
+ * @param {{ selectionStart: number, selectionEnd: number }} selection
25438
+ * @param {Object} boundaries Object with left/top/leftOffset/topOffset
25439
+ * @param {CanvasRenderingContext2D} ctx transformed context to draw on
25061
25440
  */
25062
25441
  _renderSelection(ctx, selection, boundaries) {
25063
25442
  const selectionStart = selection.selectionStart,
@@ -25119,34 +25498,34 @@
25119
25498
  }
25120
25499
  }
25121
25500
 
25122
- /**
25123
- * High level function to know the height of the cursor.
25124
- * the currentChar is the one that precedes the cursor
25125
- * Returns fontSize of char at the current cursor
25126
- * Unused from the library, is for the end user
25127
- * @return {Number} Character font size
25501
+ /**
25502
+ * High level function to know the height of the cursor.
25503
+ * the currentChar is the one that precedes the cursor
25504
+ * Returns fontSize of char at the current cursor
25505
+ * Unused from the library, is for the end user
25506
+ * @return {Number} Character font size
25128
25507
  */
25129
25508
  getCurrentCharFontSize() {
25130
25509
  const cp = this._getCurrentCharIndex();
25131
25510
  return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');
25132
25511
  }
25133
25512
 
25134
- /**
25135
- * High level function to know the color of the cursor.
25136
- * the currentChar is the one that precedes the cursor
25137
- * Returns color (fill) of char at the current cursor
25138
- * if the text object has a pattern or gradient for filler, it will return that.
25139
- * Unused by the library, is for the end user
25140
- * @return {String | TFiller} Character color (fill)
25513
+ /**
25514
+ * High level function to know the color of the cursor.
25515
+ * the currentChar is the one that precedes the cursor
25516
+ * Returns color (fill) of char at the current cursor
25517
+ * if the text object has a pattern or gradient for filler, it will return that.
25518
+ * Unused by the library, is for the end user
25519
+ * @return {String | TFiller} Character color (fill)
25141
25520
  */
25142
25521
  getCurrentCharColor() {
25143
25522
  const cp = this._getCurrentCharIndex();
25144
25523
  return this.getValueOfPropertyAt(cp.l, cp.c, FILL);
25145
25524
  }
25146
25525
 
25147
- /**
25148
- * Returns the cursor position for the getCurrent.. functions
25149
- * @private
25526
+ /**
25527
+ * Returns the cursor position for the getCurrent.. functions
25528
+ * @private
25150
25529
  */
25151
25530
  _getCurrentCharIndex() {
25152
25531
  const cursorPosition = this.get2DCursorLocation(this.selectionStart, true),
@@ -25162,52 +25541,52 @@
25162
25541
  super.dispose();
25163
25542
  }
25164
25543
  }
25165
- /**
25166
- * Index where text selection starts (or where cursor is when there is no selection)
25167
- * @type Number
25544
+ /**
25545
+ * Index where text selection starts (or where cursor is when there is no selection)
25546
+ * @type Number
25168
25547
  */
25169
- /**
25170
- * Index where text selection ends
25171
- * @type Number
25548
+ /**
25549
+ * Index where text selection ends
25550
+ * @type Number
25172
25551
  */
25173
- /**
25174
- * Color of text selection
25175
- * @type String
25552
+ /**
25553
+ * Color of text selection
25554
+ * @type String
25176
25555
  */
25177
- /**
25178
- * Indicates whether text is in editing mode
25179
- * @type Boolean
25556
+ /**
25557
+ * Indicates whether text is in editing mode
25558
+ * @type Boolean
25180
25559
  */
25181
- /**
25182
- * Indicates whether a text can be edited
25183
- * @type Boolean
25560
+ /**
25561
+ * Indicates whether a text can be edited
25562
+ * @type Boolean
25184
25563
  */
25185
- /**
25186
- * Border color of text object while it's in editing mode
25187
- * @type String
25564
+ /**
25565
+ * Border color of text object while it's in editing mode
25566
+ * @type String
25188
25567
  */
25189
- /**
25190
- * Width of cursor (in px)
25191
- * @type Number
25568
+ /**
25569
+ * Width of cursor (in px)
25570
+ * @type Number
25192
25571
  */
25193
- /**
25194
- * Color of text cursor color in editing mode.
25195
- * if not set (default) will take color from the text.
25196
- * if set to a color value that fabric can understand, it will
25197
- * be used instead of the color of the text at the current position.
25198
- * @type String
25572
+ /**
25573
+ * Color of text cursor color in editing mode.
25574
+ * if not set (default) will take color from the text.
25575
+ * if set to a color value that fabric can understand, it will
25576
+ * be used instead of the color of the text at the current position.
25577
+ * @type String
25199
25578
  */
25200
- /**
25201
- * Delay between cursor blink (in ms)
25202
- * @type Number
25579
+ /**
25580
+ * Delay between cursor blink (in ms)
25581
+ * @type Number
25203
25582
  */
25204
- /**
25205
- * Duration of cursor fade in (in ms)
25206
- * @type Number
25583
+ /**
25584
+ * Duration of cursor fade in (in ms)
25585
+ * @type Number
25207
25586
  */
25208
- /**
25209
- * Indicates whether internal text char widths can be cached
25210
- * @type Boolean
25587
+ /**
25588
+ * Indicates whether internal text char widths can be cached
25589
+ * @type Boolean
25211
25590
  */
25212
25591
  _defineProperty(IText, "ownDefaults", iTextDefaultValues);
25213
25592
  _defineProperty(IText, "type", 'IText');
@@ -25229,11 +25608,11 @@
25229
25608
 
25230
25609
  // @TODO this is not complete
25231
25610
 
25232
- /**
25233
- * Textbox class, based on IText, allows the user to resize the text rectangle
25234
- * and wraps lines automatically. Textboxes have their Y scaling locked, the
25235
- * user can only change width. Height is adjusted automatically based on the
25236
- * wrapping of lines.
25611
+ /**
25612
+ * Textbox class, based on IText, allows the user to resize the text rectangle
25613
+ * and wraps lines automatically. Textboxes have their Y scaling locked, the
25614
+ * user can only change width. Height is adjusted automatically based on the
25615
+ * wrapping of lines.
25237
25616
  */
25238
25617
  class Textbox extends IText {
25239
25618
  static getDefaults() {
@@ -25243,22 +25622,23 @@
25243
25622
  };
25244
25623
  }
25245
25624
 
25246
- /**
25247
- * Constructor
25248
- * @param {String} text Text string
25249
- * @param {Object} [options] Options object
25625
+ /**
25626
+ * Constructor
25627
+ * @param {String} text Text string
25628
+ * @param {Object} [options] Options object
25250
25629
  */
25251
25630
  constructor(text, options) {
25252
25631
  super(text, {
25253
25632
  ...Textbox.ownDefaults,
25254
25633
  ...options
25255
25634
  });
25635
+ this.initializeEventListeners();
25256
25636
  }
25257
25637
 
25258
- /**
25259
- * Creates the default control object.
25260
- * If you prefer to have on instance of controls shared among all objects
25261
- * make this function return an empty object and add controls to the ownDefaults object
25638
+ /**
25639
+ * Creates the default control object.
25640
+ * If you prefer to have on instance of controls shared among all objects
25641
+ * make this function return an empty object and add controls to the ownDefaults object
25262
25642
  */
25263
25643
  static createControls() {
25264
25644
  return {
@@ -25266,11 +25646,11 @@
25266
25646
  };
25267
25647
  }
25268
25648
 
25269
- /**
25270
- * Unlike superclass's version of this function, Textbox does not update
25271
- * its width.
25272
- * @private
25273
- * @override
25649
+ /**
25650
+ * Unlike superclass's version of this function, Textbox does not update
25651
+ * its width.
25652
+ * @private
25653
+ * @override
25274
25654
  */
25275
25655
  initDimensions() {
25276
25656
  if (!this.initialized) {
@@ -25299,9 +25679,9 @@
25299
25679
  this.height = this.calcTextHeight();
25300
25680
  }
25301
25681
 
25302
- /**
25303
- * Advanced dimensions calculation using new layout engine
25304
- * @private
25682
+ /**
25683
+ * Advanced dimensions calculation using new layout engine
25684
+ * @private
25305
25685
  */
25306
25686
  initDimensionsAdvanced() {
25307
25687
  if (!this.initialized) {
@@ -25356,9 +25736,9 @@
25356
25736
  this.dirty = true;
25357
25737
  }
25358
25738
 
25359
- /**
25360
- * Generate style map from new layout format
25361
- * @private
25739
+ /**
25740
+ * Generate style map from new layout format
25741
+ * @private
25362
25742
  */
25363
25743
  _generateStyleMapFromLayout(layout) {
25364
25744
  const map = {};
@@ -25380,12 +25760,12 @@
25380
25760
  return map;
25381
25761
  }
25382
25762
 
25383
- /**
25384
- * Generate an object that translates the style object so that it is
25385
- * broken up by visual lines (new lines and automatic wrapping).
25386
- * The original text styles object is broken up by actual lines (new lines only),
25387
- * which is only sufficient for Text / IText
25388
- * @private
25763
+ /**
25764
+ * Generate an object that translates the style object so that it is
25765
+ * broken up by visual lines (new lines and automatic wrapping).
25766
+ * The original text styles object is broken up by actual lines (new lines only),
25767
+ * which is only sufficient for Text / IText
25768
+ * @private
25389
25769
  */
25390
25770
  _generateStyleMap(textInfo) {
25391
25771
  let realLineCount = 0,
@@ -25412,10 +25792,10 @@
25412
25792
  return map;
25413
25793
  }
25414
25794
 
25415
- /**
25416
- * Returns true if object has a style property or has it on a specified line
25417
- * @param {Number} lineIndex
25418
- * @return {Boolean}
25795
+ /**
25796
+ * Returns true if object has a style property or has it on a specified line
25797
+ * @param {Number} lineIndex
25798
+ * @return {Boolean}
25419
25799
  */
25420
25800
  styleHas(property, lineIndex) {
25421
25801
  if (this._styleMap && !this.isWrapping) {
@@ -25427,10 +25807,10 @@
25427
25807
  return super.styleHas(property, lineIndex);
25428
25808
  }
25429
25809
 
25430
- /**
25431
- * Returns true if object has no styling or no styling in a line
25432
- * @param {Number} lineIndex , lineIndex is on wrapped lines.
25433
- * @return {Boolean}
25810
+ /**
25811
+ * Returns true if object has no styling or no styling in a line
25812
+ * @param {Number} lineIndex , lineIndex is on wrapped lines.
25813
+ * @return {Boolean}
25434
25814
  */
25435
25815
  isEmptyStyles(lineIndex) {
25436
25816
  if (!this.styles) {
@@ -25467,11 +25847,11 @@
25467
25847
  return true;
25468
25848
  }
25469
25849
 
25470
- /**
25471
- * @protected
25472
- * @param {Number} lineIndex
25473
- * @param {Number} charIndex
25474
- * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined
25850
+ /**
25851
+ * @protected
25852
+ * @param {Number} lineIndex
25853
+ * @param {Number} charIndex
25854
+ * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined
25475
25855
  */
25476
25856
  _getStyleDeclaration(lineIndex, charIndex) {
25477
25857
  if (this._styleMap && !this.isWrapping) {
@@ -25485,59 +25865,59 @@
25485
25865
  return super._getStyleDeclaration(lineIndex, charIndex);
25486
25866
  }
25487
25867
 
25488
- /**
25489
- * @param {Number} lineIndex
25490
- * @param {Number} charIndex
25491
- * @param {Object} style
25492
- * @private
25868
+ /**
25869
+ * @param {Number} lineIndex
25870
+ * @param {Number} charIndex
25871
+ * @param {Object} style
25872
+ * @private
25493
25873
  */
25494
25874
  _setStyleDeclaration(lineIndex, charIndex, style) {
25495
25875
  const map = this._styleMap[lineIndex];
25496
25876
  super._setStyleDeclaration(map.line, map.offset + charIndex, style);
25497
25877
  }
25498
25878
 
25499
- /**
25500
- * @param {Number} lineIndex
25501
- * @param {Number} charIndex
25502
- * @private
25879
+ /**
25880
+ * @param {Number} lineIndex
25881
+ * @param {Number} charIndex
25882
+ * @private
25503
25883
  */
25504
25884
  _deleteStyleDeclaration(lineIndex, charIndex) {
25505
25885
  const map = this._styleMap[lineIndex];
25506
25886
  super._deleteStyleDeclaration(map.line, map.offset + charIndex);
25507
25887
  }
25508
25888
 
25509
- /**
25510
- * probably broken need a fix
25511
- * Returns the real style line that correspond to the wrapped lineIndex line
25512
- * Used just to verify if the line does exist or not.
25513
- * @param {Number} lineIndex
25514
- * @returns {Boolean} if the line exists or not
25515
- * @private
25889
+ /**
25890
+ * probably broken need a fix
25891
+ * Returns the real style line that correspond to the wrapped lineIndex line
25892
+ * Used just to verify if the line does exist or not.
25893
+ * @param {Number} lineIndex
25894
+ * @returns {Boolean} if the line exists or not
25895
+ * @private
25516
25896
  */
25517
25897
  _getLineStyle(lineIndex) {
25518
25898
  const map = this._styleMap[lineIndex];
25519
25899
  return !!this.styles[map.line];
25520
25900
  }
25521
25901
 
25522
- /**
25523
- * Set the line style to an empty object so that is initialized
25524
- * @param {Number} lineIndex
25525
- * @param {Object} style
25526
- * @private
25902
+ /**
25903
+ * Set the line style to an empty object so that is initialized
25904
+ * @param {Number} lineIndex
25905
+ * @param {Object} style
25906
+ * @private
25527
25907
  */
25528
25908
  _setLineStyle(lineIndex) {
25529
25909
  const map = this._styleMap[lineIndex];
25530
25910
  super._setLineStyle(map.line);
25531
25911
  }
25532
25912
 
25533
- /**
25534
- * Wraps text using the 'width' property of Textbox. First this function
25535
- * splits text on newlines, so we preserve newlines entered by the user.
25536
- * Then it wraps each line using the width of the Textbox by calling
25537
- * _wrapLine().
25538
- * @param {Array} lines The string array of text that is split into lines
25539
- * @param {Number} desiredWidth width you want to wrap to
25540
- * @returns {Array} Array of lines
25913
+ /**
25914
+ * Wraps text using the 'width' property of Textbox. First this function
25915
+ * splits text on newlines, so we preserve newlines entered by the user.
25916
+ * Then it wraps each line using the width of the Textbox by calling
25917
+ * _wrapLine().
25918
+ * @param {Array} lines The string array of text that is split into lines
25919
+ * @param {Number} desiredWidth width you want to wrap to
25920
+ * @returns {Array} Array of lines
25541
25921
  */
25542
25922
  _wrapText(lines, desiredWidth) {
25543
25923
  this.isWrapping = true;
@@ -25551,12 +25931,12 @@
25551
25931
  return wrapped;
25552
25932
  }
25553
25933
 
25554
- /**
25555
- * For each line of text terminated by an hard line stop,
25556
- * measure each word width and extract the largest word from all.
25557
- * The returned words here are the one that at the end will be rendered.
25558
- * @param {string[]} lines the lines we need to measure
25559
- *
25934
+ /**
25935
+ * For each line of text terminated by an hard line stop,
25936
+ * measure each word width and extract the largest word from all.
25937
+ * The returned words here are the one that at the end will be rendered.
25938
+ * @param {string[]} lines the lines we need to measure
25939
+ *
25560
25940
  */
25561
25941
  getGraphemeDataForRender(lines) {
25562
25942
  const splitByGrapheme = this.splitByGrapheme,
@@ -25589,17 +25969,17 @@
25589
25969
  };
25590
25970
  }
25591
25971
 
25592
- /**
25593
- * Helper function to measure a string of text, given its lineIndex and charIndex offset
25594
- * It gets called when charBounds are not available yet.
25595
- * Override if necessary
25596
- * Use with {@link Textbox#wordSplit}
25597
- *
25598
- * @param {CanvasRenderingContext2D} ctx
25599
- * @param {String} text
25600
- * @param {number} lineIndex
25601
- * @param {number} charOffset
25602
- * @returns {number}
25972
+ /**
25973
+ * Helper function to measure a string of text, given its lineIndex and charIndex offset
25974
+ * It gets called when charBounds are not available yet.
25975
+ * Override if necessary
25976
+ * Use with {@link Textbox#wordSplit}
25977
+ *
25978
+ * @param {CanvasRenderingContext2D} ctx
25979
+ * @param {String} text
25980
+ * @param {number} lineIndex
25981
+ * @param {number} charOffset
25982
+ * @returns {number}
25603
25983
  */
25604
25984
  _measureWord(word, lineIndex) {
25605
25985
  let charOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -25614,26 +25994,26 @@
25614
25994
  return width;
25615
25995
  }
25616
25996
 
25617
- /**
25618
- * Override this method to customize word splitting
25619
- * Use with {@link Textbox#_measureWord}
25620
- * @param {string} value
25621
- * @returns {string[]} array of words
25997
+ /**
25998
+ * Override this method to customize word splitting
25999
+ * Use with {@link Textbox#_measureWord}
26000
+ * @param {string} value
26001
+ * @returns {string[]} array of words
25622
26002
  */
25623
26003
  wordSplit(value) {
25624
26004
  return value.split(this._wordJoiners);
25625
26005
  }
25626
26006
 
25627
- /**
25628
- * Wraps a line of text using the width of the Textbox as desiredWidth
25629
- * and leveraging the known width o words from GraphemeData
25630
- * @private
25631
- * @param {Number} lineIndex
25632
- * @param {Number} desiredWidth width you want to wrap the line to
25633
- * @param {GraphemeData} graphemeData an object containing all the lines' words width.
25634
- * @param {Number} reservedSpace space to remove from wrapping for custom functionalities
25635
- * @returns {Array} Array of line(s) into which the given text is wrapped
25636
- * to.
26007
+ /**
26008
+ * Wraps a line of text using the width of the Textbox as desiredWidth
26009
+ * and leveraging the known width o words from GraphemeData
26010
+ * @private
26011
+ * @param {Number} lineIndex
26012
+ * @param {Number} desiredWidth width you want to wrap the line to
26013
+ * @param {GraphemeData} graphemeData an object containing all the lines' words width.
26014
+ * @param {Number} reservedSpace space to remove from wrapping for custom functionalities
26015
+ * @returns {Array} Array of line(s) into which the given text is wrapped
26016
+ * to.
25637
26017
  */
25638
26018
  _wrapLine(lineIndex, desiredWidth, _ref) {
25639
26019
  let {
@@ -25691,11 +26071,11 @@
25691
26071
  return graphemeLines;
25692
26072
  }
25693
26073
 
25694
- /**
25695
- * Detect if the text line is ended with an hard break
25696
- * text and itext do not have wrapping, return false
25697
- * @param {Number} lineIndex text to split
25698
- * @return {Boolean}
26074
+ /**
26075
+ * Detect if the text line is ended with an hard break
26076
+ * text and itext do not have wrapping, return false
26077
+ * @param {Number} lineIndex text to split
26078
+ * @return {Boolean}
25699
26079
  */
25700
26080
  isEndOfWrapping(lineIndex) {
25701
26081
  if (!this._styleMap[lineIndex + 1]) {
@@ -25709,12 +26089,12 @@
25709
26089
  return false;
25710
26090
  }
25711
26091
 
25712
- /**
25713
- * Detect if a line has a linebreak and so we need to account for it when moving
25714
- * and counting style.
25715
- * This is important only for splitByGrapheme at the end of wrapping.
25716
- * If we are not wrapping the offset is always 1
25717
- * @return Number
26092
+ /**
26093
+ * Detect if a line has a linebreak and so we need to account for it when moving
26094
+ * and counting style.
26095
+ * This is important only for splitByGrapheme at the end of wrapping.
26096
+ * If we are not wrapping the offset is always 1
26097
+ * @return Number
25718
26098
  */
25719
26099
  missingNewlineOffset(lineIndex, skipWrapping) {
25720
26100
  if (this.splitByGrapheme && !skipWrapping) {
@@ -25723,12 +26103,12 @@
25723
26103
  return 1;
25724
26104
  }
25725
26105
 
25726
- /**
25727
- * Gets lines of text to render in the Textbox. This function calculates
25728
- * text wrapping on the fly every time it is called.
25729
- * @param {String} text text to split
25730
- * @returns {Array} Array of lines in the Textbox.
25731
- * @override
26106
+ /**
26107
+ * Gets lines of text to render in the Textbox. This function calculates
26108
+ * text wrapping on the fly every time it is called.
26109
+ * @param {String} text text to split
26110
+ * @returns {Array} Array of lines in the Textbox.
26111
+ * @override
25732
26112
  */
25733
26113
  _splitTextIntoLines(text) {
25734
26114
  const newText = super._splitTextIntoLines(text),
@@ -25760,31 +26140,148 @@
25760
26140
  }
25761
26141
  }
25762
26142
 
25763
- /**
25764
- * Returns object representation of an instance
25765
- * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
25766
- * @return {Object} object representation of an instance
26143
+ /**
26144
+ * Initialize event listeners for safety snap functionality
26145
+ * @private
26146
+ */
26147
+ initializeEventListeners() {
26148
+ var _this$canvas;
26149
+ // Track which side is being used for resize to handle position compensation
26150
+ let resizeOrigin = null;
26151
+
26152
+ // Detect resize origin during resizing
26153
+ this.on('resizing', e => {
26154
+ // Check transform origin to determine which side is being resized
26155
+ if (e.transform) {
26156
+ const {
26157
+ originX
26158
+ } = e.transform;
26159
+ // originX tells us which side is the anchor - opposite side is being dragged
26160
+ resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;
26161
+ } else if (e.originX) {
26162
+ const {
26163
+ originX
26164
+ } = e;
26165
+ resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;
26166
+ }
26167
+ });
26168
+
26169
+ // Only trigger safety snap after resize is complete (not during)
26170
+ // Use 'modified' event which fires after user releases the mouse
26171
+ this.on('modified', () => {
26172
+ const currentResizeOrigin = resizeOrigin; // Capture the value before reset
26173
+ // Small delay to ensure text layout is updated
26174
+ setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);
26175
+ resizeOrigin = null; // Reset after capturing
26176
+ });
26177
+
26178
+ // Also listen to canvas-level modified event as backup
26179
+ (_this$canvas = this.canvas) === null || _this$canvas === void 0 || _this$canvas.on('object:modified', e => {
26180
+ if (e.target === this) {
26181
+ const currentResizeOrigin = resizeOrigin; // Capture the value before reset
26182
+ setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);
26183
+ resizeOrigin = null; // Reset after capturing
26184
+ }
26185
+ });
26186
+ }
26187
+
26188
+ /**
26189
+ * Safety snap to prevent glyph clipping after manual resize.
26190
+ * Similar to Polotno - checks if any glyphs are too close to edges
26191
+ * and automatically expands width if needed.
26192
+ * @private
26193
+ * @param resizeOrigin - Which side was used for resizing ('left' or 'right')
26194
+ */
26195
+ safetySnapWidth(resizeOrigin) {
26196
+ // For Textbox objects, we always want to check for clipping regardless of isWrapping flag
26197
+ if (!this._textLines || this.type.toLowerCase() !== 'textbox' || this._textLines.length === 0) {
26198
+ return;
26199
+ }
26200
+ const lineCount = this._textLines.length;
26201
+ if (lineCount === 0) return;
26202
+ let maxRequiredWidth = 0; // Width including RTL buffer
26203
+
26204
+ for (let i = 0; i < lineCount; i++) {
26205
+ const lineText = this._textLines[i].join(''); // Convert grapheme array to string
26206
+ const lineWidth = this.getLineWidth(i);
26207
+
26208
+ // RTL detection - regex for Arabic, Hebrew, and other RTL characters
26209
+ const rtlRegex = /[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/;
26210
+ if (rtlRegex.test(lineText)) {
26211
+ // Add minimal RTL compensation buffer - just enough to prevent clipping
26212
+ const rtlBuffer = (this.fontSize || 16) * 0.15; // 15% of font size (much smaller)
26213
+ maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth + rtlBuffer);
26214
+ } else {
26215
+ maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth);
26216
+ }
26217
+ }
26218
+
26219
+ // Safety margin - how close glyphs can get before we snap
26220
+ const safetyThreshold = 2; // px - very subtle trigger
26221
+
26222
+ if (maxRequiredWidth > this.width - safetyThreshold) {
26223
+ var _this$canvas2;
26224
+ // Set width to exactly what's needed + minimal safety margin
26225
+ const newWidth = maxRequiredWidth + 1; // Add just 1px safety margin
26226
+
26227
+ // Store original position before width change
26228
+ const originalLeft = this.left;
26229
+ const originalTop = this.top;
26230
+ const widthIncrease = newWidth - this.width;
26231
+
26232
+ // Change width
26233
+ this.set('width', newWidth);
26234
+
26235
+ // Force text layout recalculation
26236
+ this.initDimensions();
26237
+
26238
+ // Only compensate position when resizing from left handle
26239
+ // Right handle resize doesn't shift the text position
26240
+ if (resizeOrigin === 'left') {
26241
+ // When resizing from left, the expansion pushes text right
26242
+ // Compensate by moving the textbox left by the width increase
26243
+ this.set({
26244
+ 'left': originalLeft - widthIncrease,
26245
+ 'top': originalTop
26246
+ });
26247
+ }
26248
+ this.setCoords();
26249
+
26250
+ // Also refresh the overlay editor if it exists
26251
+ if (this.__overlayEditor) {
26252
+ setTimeout(() => {
26253
+ this.__overlayEditor.refresh();
26254
+ }, 0);
26255
+ }
26256
+ (_this$canvas2 = this.canvas) === null || _this$canvas2 === void 0 || _this$canvas2.requestRenderAll();
26257
+ }
26258
+ }
26259
+
26260
+ /**
26261
+ * Returns object representation of an instance
26262
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
26263
+ * @return {Object} object representation of an instance
25767
26264
  */
25768
26265
  toObject() {
25769
26266
  let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
25770
26267
  return super.toObject(['minWidth', 'splitByGrapheme', ...propertiesToInclude]);
25771
26268
  }
25772
26269
  }
25773
- /**
25774
- * Minimum width of textbox, in pixels.
25775
- * @type Number
25776
- */
25777
- /**
25778
- * Minimum calculated width of a textbox, in pixels.
25779
- * fixed to 2 so that an empty textbox cannot go to 0
25780
- * and is still selectable without text.
25781
- * @type Number
25782
- */
25783
- /**
25784
- * Use this boolean property in order to split strings that have no white space concept.
25785
- * this is a cheap way to help with chinese/japanese
25786
- * @type Boolean
25787
- * @since 2.6.0
26270
+ /**
26271
+ * Minimum width of textbox, in pixels.
26272
+ * @type Number
26273
+ */
26274
+ /**
26275
+ * Minimum calculated width of a textbox, in pixels.
26276
+ * fixed to 2 so that an empty textbox cannot go to 0
26277
+ * and is still selectable without text.
26278
+ * @type Number
26279
+ */
26280
+ /**
26281
+ * Use this boolean property in order to split strings that have no white space concept.
26282
+ * this is a cheap way to help with chinese/japanese
26283
+ * @type Boolean
26284
+ * @since 2.6.0
25788
26285
  */
25789
26286
  _defineProperty(Textbox, "type", 'Textbox');
25790
26287
  _defineProperty(Textbox, "textLayoutProperties", [...IText.textLayoutProperties, 'width']);