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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2543) hide show
  1. package/.babelrc +0 -0
  2. package/.babelrcAlt +0 -0
  3. package/.browserslistrc +0 -0
  4. package/.editorconfig +0 -0
  5. package/.gitattributes +0 -0
  6. package/.gitpod.yml +0 -0
  7. package/.prettierignore +0 -0
  8. package/.prettierrc +0 -0
  9. package/0 +0 -0
  10. package/CHANGELOG.md +0 -0
  11. package/CODE_OF_CONDUCT.md +0 -0
  12. package/CONTRIBUTING.md +0 -0
  13. package/LICENSE +0 -0
  14. package/OVERLAY_EDITOR_MIGRATION.md +0 -0
  15. package/README.md +0 -0
  16. package/SECURITY.md +0 -0
  17. package/debug/{konva-master → konva}/CHANGELOG.md +1 -2
  18. package/debug/{konva-master → konva}/LICENSE +0 -0
  19. package/debug/{konva-master → konva}/README.md +3 -7
  20. package/debug/{konva-master → konva}/gulpfile.mjs +0 -0
  21. package/debug/{konva-master → konva}/package.json +1 -1
  22. package/debug/{konva-master → konva}/release.sh +4 -1
  23. package/debug/{konva-master → konva}/resources/doc-includes/ContainerParams.txt +0 -0
  24. package/debug/{konva-master → konva}/resources/doc-includes/NodeParams.txt +0 -0
  25. package/debug/{konva-master → konva}/resources/doc-includes/ShapeParams.txt +0 -0
  26. package/debug/{konva-master → konva}/resources/jsdoc.conf.json +0 -0
  27. package/debug/{konva-master → konva}/rollup.config.mjs +0 -0
  28. package/debug/{konva-master → konva}/src/Animation.ts +0 -0
  29. package/debug/{konva-master → konva}/src/BezierFunctions.ts +0 -0
  30. package/debug/{konva-master → konva}/src/Canvas.ts +0 -37
  31. package/debug/{konva-master → konva}/src/Container.ts +0 -0
  32. package/debug/{konva-master → konva}/src/Context.ts +0 -0
  33. package/debug/{konva-master → konva}/src/Core.ts +0 -0
  34. package/debug/{konva-master → konva}/src/DragAndDrop.ts +0 -0
  35. package/debug/{konva-master → konva}/src/Factory.ts +0 -0
  36. package/debug/{konva-master → konva}/src/FastLayer.ts +0 -0
  37. package/debug/{konva-master → konva}/src/Global.ts +0 -0
  38. package/debug/{konva-master → konva}/src/Group.ts +0 -0
  39. package/debug/{konva-master → konva}/src/Layer.ts +0 -0
  40. package/debug/{konva-master → konva}/src/Node.ts +0 -0
  41. package/debug/{konva-master → konva}/src/PointerEvents.ts +0 -0
  42. package/debug/{konva-master → konva}/src/Shape.ts +0 -0
  43. package/debug/{konva-master → konva}/src/Stage.ts +0 -0
  44. package/debug/{konva-master → konva}/src/Tween.ts +0 -0
  45. package/debug/{konva-master → konva}/src/Util.ts +0 -0
  46. package/debug/{konva-master → konva}/src/Validators.ts +0 -0
  47. package/debug/{konva-master → konva}/src/_CoreInternals.ts +0 -0
  48. package/debug/{konva-master → konva}/src/_FullInternals.ts +0 -0
  49. package/debug/{konva-master → konva}/src/canvas-backend.ts +0 -0
  50. package/debug/{konva-master → konva}/src/filters/Blur.ts +0 -0
  51. package/debug/{konva-master → konva}/src/filters/Brighten.ts +0 -0
  52. package/debug/{konva-master → konva}/src/filters/Brightness.ts +0 -0
  53. package/debug/{konva-master → konva}/src/filters/Contrast.ts +0 -0
  54. package/debug/{konva-master → konva}/src/filters/Emboss.ts +0 -0
  55. package/debug/{konva-master → konva}/src/filters/Enhance.ts +0 -0
  56. package/debug/{konva-master → konva}/src/filters/Grayscale.ts +0 -0
  57. package/debug/{konva-master → konva}/src/filters/HSL.ts +0 -0
  58. package/debug/{konva-master → konva}/src/filters/HSV.ts +0 -0
  59. package/debug/{konva-master → konva}/src/filters/Invert.ts +0 -0
  60. package/debug/{konva-master → konva}/src/filters/Kaleidoscope.ts +0 -0
  61. package/debug/{konva-master → konva}/src/filters/Mask.ts +0 -0
  62. package/debug/{konva-master → konva}/src/filters/Noise.ts +0 -0
  63. package/debug/{konva-master → konva}/src/filters/Pixelate.ts +0 -0
  64. package/debug/{konva-master → konva}/src/filters/Posterize.ts +0 -0
  65. package/debug/{konva-master → konva}/src/filters/RGB.ts +0 -0
  66. package/debug/{konva-master → konva}/src/filters/RGBA.ts +0 -0
  67. package/debug/{konva-master → konva}/src/filters/Sepia.ts +0 -0
  68. package/debug/{konva-master → konva}/src/filters/Solarize.ts +0 -0
  69. package/debug/{konva-master → konva}/src/filters/Threshold.ts +0 -0
  70. package/debug/{konva-master → konva}/src/index.ts +0 -0
  71. package/debug/{konva-master → konva}/src/shapes/Arc.ts +0 -0
  72. package/debug/{konva-master → konva}/src/shapes/Arrow.ts +0 -0
  73. package/debug/{konva-master → konva}/src/shapes/Circle.ts +0 -0
  74. package/debug/{konva-master → konva}/src/shapes/Ellipse.ts +0 -0
  75. package/debug/{konva-master → konva}/src/shapes/Image.ts +0 -0
  76. package/debug/{konva-master → konva}/src/shapes/Label.ts +0 -0
  77. package/debug/{konva-master → konva}/src/shapes/Line.ts +0 -0
  78. package/debug/{konva-master → konva}/src/shapes/Path.ts +0 -0
  79. package/debug/{konva-master → konva}/src/shapes/Rect.ts +0 -0
  80. package/debug/{konva-master → konva}/src/shapes/RegularPolygon.ts +0 -0
  81. package/debug/{konva-master → konva}/src/shapes/Ring.ts +0 -0
  82. package/debug/{konva-master → konva}/src/shapes/Sprite.ts +0 -0
  83. package/debug/{konva-master → konva}/src/shapes/Star.ts +0 -0
  84. package/debug/{konva-master → konva}/src/shapes/Text.ts +2 -2
  85. package/debug/{konva-master → konva}/src/shapes/TextPath.ts +0 -0
  86. package/debug/{konva-master → konva}/src/shapes/Transformer.ts +0 -0
  87. package/debug/{konva-master → konva}/src/shapes/Wedge.ts +0 -0
  88. package/debug/{konva-master → konva}/src/skia-backend.ts +0 -0
  89. package/debug/{konva-master → konva}/src/types.ts +0 -0
  90. package/debug/{konva-master → konva}/tsconfig.json +0 -0
  91. package/debug/{konva-master → konva}/tsconfig.test.json +0 -0
  92. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
  93. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
  94. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  95. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
  96. package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
  97. package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  98. package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
  99. package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
  100. package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  101. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  102. package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  103. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  104. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  105. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  106. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  107. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  108. package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  109. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  110. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  111. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  112. package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
  113. package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  114. package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
  115. package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
  116. package/dist/extensions/index.d.ts +0 -0
  117. package/dist/extensions/index.d.ts.map +0 -0
  118. package/dist/fabric.d.ts +0 -0
  119. package/dist/fabric.d.ts.map +0 -0
  120. package/dist/fabric.min.mjs +0 -0
  121. package/dist/fabric.min.mjs.map +0 -0
  122. package/dist/fabric.mjs +0 -0
  123. package/dist/fabric.mjs.map +0 -0
  124. package/dist/index.d.ts +0 -0
  125. package/dist/index.d.ts.map +0 -0
  126. package/dist/index.js +1046 -721
  127. package/dist/index.js.map +1 -1
  128. package/dist/index.min.js +1 -1
  129. package/dist/index.min.js.map +1 -1
  130. package/dist/index.min.mjs +1 -1
  131. package/dist/index.min.mjs.map +1 -1
  132. package/dist/index.mjs +1046 -721
  133. package/dist/index.mjs.map +1 -1
  134. package/dist/index.node.cjs +1046 -721
  135. package/dist/index.node.cjs.map +1 -1
  136. package/dist/index.node.d.ts +0 -0
  137. package/dist/index.node.d.ts.map +0 -0
  138. package/dist/index.node.mjs +1046 -721
  139. package/dist/index.node.mjs.map +1 -1
  140. package/dist/package.json.min.mjs +1 -1
  141. package/dist/package.json.min.mjs.map +0 -0
  142. package/dist/package.json.mjs +1 -1
  143. package/dist/package.json.mjs.map +0 -0
  144. package/dist/src/ClassRegistry.d.ts +0 -0
  145. package/dist/src/ClassRegistry.d.ts.map +0 -0
  146. package/dist/src/ClassRegistry.min.mjs +0 -0
  147. package/dist/src/ClassRegistry.min.mjs.map +0 -0
  148. package/dist/src/ClassRegistry.mjs +0 -0
  149. package/dist/src/ClassRegistry.mjs.map +0 -0
  150. package/dist/src/Collection.d.ts +0 -0
  151. package/dist/src/Collection.d.ts.map +0 -0
  152. package/dist/src/Collection.min.mjs +0 -0
  153. package/dist/src/Collection.min.mjs.map +0 -0
  154. package/dist/src/Collection.mjs +0 -0
  155. package/dist/src/Collection.mjs.map +0 -0
  156. package/dist/src/CommonMethods.d.ts +0 -0
  157. package/dist/src/CommonMethods.d.ts.map +0 -0
  158. package/dist/src/CommonMethods.min.mjs +0 -0
  159. package/dist/src/CommonMethods.min.mjs.map +0 -0
  160. package/dist/src/CommonMethods.mjs +0 -0
  161. package/dist/src/CommonMethods.mjs.map +0 -0
  162. package/dist/src/EventTypeDefs.d.ts +0 -0
  163. package/dist/src/EventTypeDefs.d.ts.map +0 -0
  164. package/dist/src/Intersection.d.ts +0 -0
  165. package/dist/src/Intersection.d.ts.map +0 -0
  166. package/dist/src/Intersection.min.mjs +0 -0
  167. package/dist/src/Intersection.min.mjs.map +0 -0
  168. package/dist/src/Intersection.mjs +0 -0
  169. package/dist/src/Intersection.mjs.map +0 -0
  170. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  171. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  172. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
  173. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
  174. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
  175. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
  176. package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
  177. package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  178. package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
  179. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
  180. package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
  181. package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
  182. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  183. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  184. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
  185. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
  186. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
  211. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
  212. package/dist/src/LayoutManager/constants.d.ts +0 -0
  213. package/dist/src/LayoutManager/constants.d.ts.map +0 -0
  214. package/dist/src/LayoutManager/constants.min.mjs +0 -0
  215. package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
  216. package/dist/src/LayoutManager/constants.mjs +0 -0
  217. package/dist/src/LayoutManager/constants.mjs.map +0 -0
  218. package/dist/src/LayoutManager/index.d.ts +0 -0
  219. package/dist/src/LayoutManager/index.d.ts.map +0 -0
  220. package/dist/src/LayoutManager/types.d.ts +0 -0
  221. package/dist/src/LayoutManager/types.d.ts.map +0 -0
  222. package/dist/src/Observable.d.ts +0 -0
  223. package/dist/src/Observable.d.ts.map +0 -0
  224. package/dist/src/Observable.min.mjs +0 -0
  225. package/dist/src/Observable.min.mjs.map +0 -0
  226. package/dist/src/Observable.mjs +0 -0
  227. package/dist/src/Observable.mjs.map +0 -0
  228. package/dist/src/Pattern/Pattern.d.ts +0 -0
  229. package/dist/src/Pattern/Pattern.d.ts.map +0 -0
  230. package/dist/src/Pattern/Pattern.min.mjs +0 -0
  231. package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
  232. package/dist/src/Pattern/Pattern.mjs +0 -0
  233. package/dist/src/Pattern/Pattern.mjs.map +0 -0
  234. package/dist/src/Pattern/index.d.ts +0 -0
  235. package/dist/src/Pattern/index.d.ts.map +0 -0
  236. package/dist/src/Pattern/types.d.ts +0 -0
  237. package/dist/src/Pattern/types.d.ts.map +0 -0
  238. package/dist/src/Point.d.ts +0 -0
  239. package/dist/src/Point.d.ts.map +0 -0
  240. package/dist/src/Point.min.mjs +0 -0
  241. package/dist/src/Point.min.mjs.map +0 -0
  242. package/dist/src/Point.mjs +0 -0
  243. package/dist/src/Point.mjs.map +0 -0
  244. package/dist/src/Shadow.d.ts +0 -0
  245. package/dist/src/Shadow.d.ts.map +0 -0
  246. package/dist/src/Shadow.min.mjs +0 -0
  247. package/dist/src/Shadow.min.mjs.map +0 -0
  248. package/dist/src/Shadow.mjs +0 -0
  249. package/dist/src/Shadow.mjs.map +0 -0
  250. package/dist/src/brushes/BaseBrush.d.ts +0 -0
  251. package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
  252. package/dist/src/brushes/BaseBrush.min.mjs +0 -0
  253. package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
  254. package/dist/src/brushes/BaseBrush.mjs +0 -0
  255. package/dist/src/brushes/BaseBrush.mjs.map +0 -0
  256. package/dist/src/brushes/CircleBrush.d.ts +0 -0
  257. package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
  258. package/dist/src/brushes/CircleBrush.min.mjs +0 -0
  259. package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
  260. package/dist/src/brushes/CircleBrush.mjs +0 -0
  261. package/dist/src/brushes/CircleBrush.mjs.map +0 -0
  262. package/dist/src/brushes/PatternBrush.d.ts +0 -0
  263. package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
  264. package/dist/src/brushes/PatternBrush.min.mjs +0 -0
  265. package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
  266. package/dist/src/brushes/PatternBrush.mjs +0 -0
  267. package/dist/src/brushes/PatternBrush.mjs.map +0 -0
  268. package/dist/src/brushes/PencilBrush.d.ts +0 -0
  269. package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
  270. package/dist/src/brushes/PencilBrush.min.mjs +0 -0
  271. package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
  272. package/dist/src/brushes/PencilBrush.mjs +0 -0
  273. package/dist/src/brushes/PencilBrush.mjs.map +0 -0
  274. package/dist/src/brushes/SprayBrush.d.ts +0 -0
  275. package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
  276. package/dist/src/brushes/SprayBrush.min.mjs +0 -0
  277. package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
  278. package/dist/src/brushes/SprayBrush.mjs +0 -0
  279. package/dist/src/brushes/SprayBrush.mjs.map +0 -0
  280. package/dist/src/brushes/typedefs.d.ts +0 -0
  281. package/dist/src/brushes/typedefs.d.ts.map +0 -0
  282. package/dist/src/cache.d.ts +0 -0
  283. package/dist/src/cache.d.ts.map +0 -0
  284. package/dist/src/cache.min.mjs +0 -0
  285. package/dist/src/cache.min.mjs.map +0 -0
  286. package/dist/src/cache.mjs +0 -0
  287. package/dist/src/cache.mjs.map +0 -0
  288. package/dist/src/canvas/Canvas.d.ts +0 -0
  289. package/dist/src/canvas/Canvas.d.ts.map +0 -0
  290. package/dist/src/canvas/Canvas.min.mjs +0 -0
  291. package/dist/src/canvas/Canvas.min.mjs.map +0 -0
  292. package/dist/src/canvas/Canvas.mjs +0 -0
  293. package/dist/src/canvas/Canvas.mjs.map +0 -0
  294. package/dist/src/canvas/CanvasOptions.d.ts +0 -0
  295. package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
  296. package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
  297. package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
  298. package/dist/src/canvas/CanvasOptions.mjs +0 -0
  299. package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
  300. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  301. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  302. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
  303. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
  304. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
  305. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
  306. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  307. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  308. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
  309. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
  310. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
  311. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
  312. package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
  313. package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
  314. package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
  315. package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
  316. package/dist/src/canvas/DOMManagers/util.mjs +0 -0
  317. package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
  318. package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
  319. package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
  320. package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
  321. package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
  322. package/dist/src/canvas/SelectableCanvas.mjs +0 -0
  323. package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
  324. package/dist/src/canvas/StaticCanvas.d.ts +0 -0
  325. package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
  326. package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
  327. package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
  328. package/dist/src/canvas/StaticCanvas.mjs +0 -0
  329. package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
  330. package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
  331. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  332. package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
  333. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
  334. package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
  335. package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
  336. package/dist/src/canvas/TextEditingManager.d.ts +0 -0
  337. package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
  338. package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
  339. package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
  340. package/dist/src/canvas/TextEditingManager.mjs +0 -0
  341. package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
  342. package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
  343. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
  344. package/dist/src/color/Color.d.ts +0 -0
  345. package/dist/src/color/Color.d.ts.map +0 -0
  346. package/dist/src/color/Color.min.mjs +0 -0
  347. package/dist/src/color/Color.min.mjs.map +0 -0
  348. package/dist/src/color/Color.mjs +0 -0
  349. package/dist/src/color/Color.mjs.map +0 -0
  350. package/dist/src/color/color_map.d.ts +0 -0
  351. package/dist/src/color/color_map.d.ts.map +0 -0
  352. package/dist/src/color/color_map.min.mjs +0 -0
  353. package/dist/src/color/color_map.min.mjs.map +0 -0
  354. package/dist/src/color/color_map.mjs +0 -0
  355. package/dist/src/color/color_map.mjs.map +0 -0
  356. package/dist/src/color/constants.d.ts +0 -0
  357. package/dist/src/color/constants.d.ts.map +0 -0
  358. package/dist/src/color/constants.min.mjs +0 -0
  359. package/dist/src/color/constants.min.mjs.map +0 -0
  360. package/dist/src/color/constants.mjs +0 -0
  361. package/dist/src/color/constants.mjs.map +0 -0
  362. package/dist/src/color/typedefs.d.ts +0 -0
  363. package/dist/src/color/typedefs.d.ts.map +0 -0
  364. package/dist/src/color/util.d.ts +0 -0
  365. package/dist/src/color/util.d.ts.map +0 -0
  366. package/dist/src/color/util.min.mjs +0 -0
  367. package/dist/src/color/util.min.mjs.map +0 -0
  368. package/dist/src/color/util.mjs +0 -0
  369. package/dist/src/color/util.mjs.map +0 -0
  370. package/dist/src/config.d.ts +0 -0
  371. package/dist/src/config.d.ts.map +0 -0
  372. package/dist/src/config.min.mjs +0 -0
  373. package/dist/src/config.min.mjs.map +0 -0
  374. package/dist/src/config.mjs +0 -0
  375. package/dist/src/config.mjs.map +0 -0
  376. package/dist/src/constants.d.ts +0 -0
  377. package/dist/src/constants.d.ts.map +0 -0
  378. package/dist/src/constants.min.mjs +0 -0
  379. package/dist/src/constants.min.mjs.map +0 -0
  380. package/dist/src/constants.mjs +0 -0
  381. package/dist/src/constants.mjs.map +0 -0
  382. package/dist/src/controls/Control.d.ts +0 -0
  383. package/dist/src/controls/Control.d.ts.map +0 -0
  384. package/dist/src/controls/Control.min.mjs +0 -0
  385. package/dist/src/controls/Control.min.mjs.map +0 -0
  386. package/dist/src/controls/Control.mjs +0 -0
  387. package/dist/src/controls/Control.mjs.map +0 -0
  388. package/dist/src/controls/changeHeight.d.ts +0 -0
  389. package/dist/src/controls/changeHeight.d.ts.map +0 -0
  390. package/dist/src/controls/changeHeight.min.mjs +2 -0
  391. package/dist/src/controls/changeHeight.min.mjs.map +1 -0
  392. package/dist/src/controls/changeHeight.mjs +36 -0
  393. package/dist/src/controls/changeHeight.mjs.map +1 -0
  394. package/dist/src/controls/changeWidth.d.ts +0 -0
  395. package/dist/src/controls/changeWidth.d.ts.map +0 -0
  396. package/dist/src/controls/changeWidth.min.mjs +0 -0
  397. package/dist/src/controls/changeWidth.min.mjs.map +0 -0
  398. package/dist/src/controls/changeWidth.mjs +0 -0
  399. package/dist/src/controls/changeWidth.mjs.map +0 -0
  400. package/dist/src/controls/commonControls.d.ts +0 -0
  401. package/dist/src/controls/commonControls.d.ts.map +0 -0
  402. package/dist/src/controls/commonControls.min.mjs +0 -0
  403. package/dist/src/controls/commonControls.min.mjs.map +0 -0
  404. package/dist/src/controls/commonControls.mjs +0 -0
  405. package/dist/src/controls/commonControls.mjs.map +0 -0
  406. package/dist/src/controls/controlRendering.d.ts +0 -0
  407. package/dist/src/controls/controlRendering.d.ts.map +0 -0
  408. package/dist/src/controls/controlRendering.min.mjs +0 -0
  409. package/dist/src/controls/controlRendering.min.mjs.map +0 -0
  410. package/dist/src/controls/controlRendering.mjs +0 -0
  411. package/dist/src/controls/controlRendering.mjs.map +0 -0
  412. package/dist/src/controls/drag.d.ts +0 -0
  413. package/dist/src/controls/drag.d.ts.map +0 -0
  414. package/dist/src/controls/drag.min.mjs +0 -0
  415. package/dist/src/controls/drag.min.mjs.map +0 -0
  416. package/dist/src/controls/drag.mjs +0 -0
  417. package/dist/src/controls/drag.mjs.map +0 -0
  418. package/dist/src/controls/fireEvent.d.ts +0 -0
  419. package/dist/src/controls/fireEvent.d.ts.map +0 -0
  420. package/dist/src/controls/fireEvent.min.mjs +0 -0
  421. package/dist/src/controls/fireEvent.min.mjs.map +0 -0
  422. package/dist/src/controls/fireEvent.mjs +0 -0
  423. package/dist/src/controls/fireEvent.mjs.map +0 -0
  424. package/dist/src/controls/index.d.ts +0 -0
  425. package/dist/src/controls/index.d.ts.map +0 -0
  426. package/dist/src/controls/index.min.mjs +0 -0
  427. package/dist/src/controls/index.min.mjs.map +0 -0
  428. package/dist/src/controls/index.mjs +0 -0
  429. package/dist/src/controls/index.mjs.map +0 -0
  430. package/dist/src/controls/pathControl.d.ts +0 -0
  431. package/dist/src/controls/pathControl.d.ts.map +0 -0
  432. package/dist/src/controls/pathControl.min.mjs +0 -0
  433. package/dist/src/controls/pathControl.min.mjs.map +0 -0
  434. package/dist/src/controls/pathControl.mjs +0 -0
  435. package/dist/src/controls/pathControl.mjs.map +0 -0
  436. package/dist/src/controls/polyControl.d.ts +0 -0
  437. package/dist/src/controls/polyControl.d.ts.map +0 -0
  438. package/dist/src/controls/polyControl.min.mjs +0 -0
  439. package/dist/src/controls/polyControl.min.mjs.map +0 -0
  440. package/dist/src/controls/polyControl.mjs +0 -0
  441. package/dist/src/controls/polyControl.mjs.map +0 -0
  442. package/dist/src/controls/rotate.d.ts +0 -0
  443. package/dist/src/controls/rotate.d.ts.map +0 -0
  444. package/dist/src/controls/rotate.min.mjs +0 -0
  445. package/dist/src/controls/rotate.min.mjs.map +0 -0
  446. package/dist/src/controls/rotate.mjs +0 -0
  447. package/dist/src/controls/rotate.mjs.map +0 -0
  448. package/dist/src/controls/scale.d.ts +0 -0
  449. package/dist/src/controls/scale.d.ts.map +0 -0
  450. package/dist/src/controls/scale.min.mjs +0 -0
  451. package/dist/src/controls/scale.min.mjs.map +0 -0
  452. package/dist/src/controls/scale.mjs +0 -0
  453. package/dist/src/controls/scale.mjs.map +0 -0
  454. package/dist/src/controls/scaleSkew.d.ts +0 -0
  455. package/dist/src/controls/scaleSkew.d.ts.map +0 -0
  456. package/dist/src/controls/scaleSkew.min.mjs +0 -0
  457. package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
  458. package/dist/src/controls/scaleSkew.mjs +0 -0
  459. package/dist/src/controls/scaleSkew.mjs.map +0 -0
  460. package/dist/src/controls/skew.d.ts +0 -0
  461. package/dist/src/controls/skew.d.ts.map +0 -0
  462. package/dist/src/controls/skew.min.mjs +0 -0
  463. package/dist/src/controls/skew.min.mjs.map +0 -0
  464. package/dist/src/controls/skew.mjs +0 -0
  465. package/dist/src/controls/skew.mjs.map +0 -0
  466. package/dist/src/controls/util.d.ts +0 -0
  467. package/dist/src/controls/util.d.ts.map +0 -0
  468. package/dist/src/controls/util.min.mjs +0 -0
  469. package/dist/src/controls/util.min.mjs.map +0 -0
  470. package/dist/src/controls/util.mjs +0 -0
  471. package/dist/src/controls/util.mjs.map +0 -0
  472. package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
  473. package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  474. package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
  475. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
  476. package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
  477. package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
  478. package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  479. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  480. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
  481. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
  482. package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
  483. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
  484. package/dist/src/env/browser.d.ts +0 -0
  485. package/dist/src/env/browser.d.ts.map +0 -0
  486. package/dist/src/env/browser.min.mjs +0 -0
  487. package/dist/src/env/browser.min.mjs.map +0 -0
  488. package/dist/src/env/browser.mjs +0 -0
  489. package/dist/src/env/browser.mjs.map +0 -0
  490. package/dist/src/env/index.d.ts +0 -0
  491. package/dist/src/env/index.d.ts.map +0 -0
  492. package/dist/src/env/index.min.mjs +0 -0
  493. package/dist/src/env/index.min.mjs.map +0 -0
  494. package/dist/src/env/index.mjs +0 -0
  495. package/dist/src/env/index.mjs.map +0 -0
  496. package/dist/src/env/node.d.ts +0 -0
  497. package/dist/src/env/node.d.ts.map +0 -0
  498. package/dist/src/env/types.d.ts +0 -0
  499. package/dist/src/env/types.d.ts.map +0 -0
  500. package/dist/src/filters/BaseFilter.d.ts +0 -0
  501. package/dist/src/filters/BaseFilter.d.ts.map +0 -0
  502. package/dist/src/filters/BaseFilter.min.mjs +0 -0
  503. package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
  504. package/dist/src/filters/BaseFilter.mjs +0 -0
  505. package/dist/src/filters/BaseFilter.mjs.map +0 -0
  506. package/dist/src/filters/BlendColor.d.ts +0 -0
  507. package/dist/src/filters/BlendColor.d.ts.map +0 -0
  508. package/dist/src/filters/BlendColor.min.mjs +0 -0
  509. package/dist/src/filters/BlendColor.min.mjs.map +0 -0
  510. package/dist/src/filters/BlendColor.mjs +0 -0
  511. package/dist/src/filters/BlendColor.mjs.map +0 -0
  512. package/dist/src/filters/BlendImage.d.ts +0 -0
  513. package/dist/src/filters/BlendImage.d.ts.map +0 -0
  514. package/dist/src/filters/BlendImage.min.mjs +0 -0
  515. package/dist/src/filters/BlendImage.min.mjs.map +0 -0
  516. package/dist/src/filters/BlendImage.mjs +0 -0
  517. package/dist/src/filters/BlendImage.mjs.map +0 -0
  518. package/dist/src/filters/Blur.d.ts +0 -0
  519. package/dist/src/filters/Blur.d.ts.map +0 -0
  520. package/dist/src/filters/Blur.min.mjs +0 -0
  521. package/dist/src/filters/Blur.min.mjs.map +0 -0
  522. package/dist/src/filters/Blur.mjs +0 -0
  523. package/dist/src/filters/Blur.mjs.map +0 -0
  524. package/dist/src/filters/Boilerplate.d.ts +0 -0
  525. package/dist/src/filters/Boilerplate.d.ts.map +0 -0
  526. package/dist/src/filters/Brightness.d.ts +0 -0
  527. package/dist/src/filters/Brightness.d.ts.map +0 -0
  528. package/dist/src/filters/Brightness.min.mjs +0 -0
  529. package/dist/src/filters/Brightness.min.mjs.map +0 -0
  530. package/dist/src/filters/Brightness.mjs +0 -0
  531. package/dist/src/filters/Brightness.mjs.map +0 -0
  532. package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  533. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  534. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
  535. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
  536. package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
  537. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
  538. package/dist/src/filters/ColorMatrix.d.ts +0 -0
  539. package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
  540. package/dist/src/filters/ColorMatrix.min.mjs +0 -0
  541. package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
  542. package/dist/src/filters/ColorMatrix.mjs +0 -0
  543. package/dist/src/filters/ColorMatrix.mjs.map +0 -0
  544. package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
  545. package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  546. package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
  547. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
  548. package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
  549. package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
  550. package/dist/src/filters/Composed.d.ts +0 -0
  551. package/dist/src/filters/Composed.d.ts.map +0 -0
  552. package/dist/src/filters/Composed.min.mjs +0 -0
  553. package/dist/src/filters/Composed.min.mjs.map +0 -0
  554. package/dist/src/filters/Composed.mjs +0 -0
  555. package/dist/src/filters/Composed.mjs.map +0 -0
  556. package/dist/src/filters/Contrast.d.ts +0 -0
  557. package/dist/src/filters/Contrast.d.ts.map +0 -0
  558. package/dist/src/filters/Contrast.min.mjs +0 -0
  559. package/dist/src/filters/Contrast.min.mjs.map +0 -0
  560. package/dist/src/filters/Contrast.mjs +0 -0
  561. package/dist/src/filters/Contrast.mjs.map +0 -0
  562. package/dist/src/filters/Convolute.d.ts +0 -0
  563. package/dist/src/filters/Convolute.d.ts.map +0 -0
  564. package/dist/src/filters/Convolute.min.mjs +0 -0
  565. package/dist/src/filters/Convolute.min.mjs.map +0 -0
  566. package/dist/src/filters/Convolute.mjs +0 -0
  567. package/dist/src/filters/Convolute.mjs.map +0 -0
  568. package/dist/src/filters/FilterBackend.d.ts +0 -0
  569. package/dist/src/filters/FilterBackend.d.ts.map +0 -0
  570. package/dist/src/filters/FilterBackend.min.mjs +0 -0
  571. package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
  572. package/dist/src/filters/FilterBackend.mjs +0 -0
  573. package/dist/src/filters/FilterBackend.mjs.map +0 -0
  574. package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
  575. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  576. package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
  577. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
  578. package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
  579. package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
  580. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
  581. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
  582. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  583. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  584. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
  585. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
  586. package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
  587. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
  588. package/dist/src/filters/Gamma.d.ts +0 -0
  589. package/dist/src/filters/Gamma.d.ts.map +0 -0
  590. package/dist/src/filters/Gamma.min.mjs +0 -0
  591. package/dist/src/filters/Gamma.min.mjs.map +0 -0
  592. package/dist/src/filters/Gamma.mjs +0 -0
  593. package/dist/src/filters/Gamma.mjs.map +0 -0
  594. package/dist/src/filters/Grayscale.d.ts +0 -0
  595. package/dist/src/filters/Grayscale.d.ts.map +0 -0
  596. package/dist/src/filters/Grayscale.min.mjs +0 -0
  597. package/dist/src/filters/Grayscale.min.mjs.map +0 -0
  598. package/dist/src/filters/Grayscale.mjs +0 -0
  599. package/dist/src/filters/Grayscale.mjs.map +0 -0
  600. package/dist/src/filters/HueRotation.d.ts +0 -0
  601. package/dist/src/filters/HueRotation.d.ts.map +0 -0
  602. package/dist/src/filters/HueRotation.min.mjs +0 -0
  603. package/dist/src/filters/HueRotation.min.mjs.map +0 -0
  604. package/dist/src/filters/HueRotation.mjs +0 -0
  605. package/dist/src/filters/HueRotation.mjs.map +0 -0
  606. package/dist/src/filters/Invert.d.ts +0 -0
  607. package/dist/src/filters/Invert.d.ts.map +0 -0
  608. package/dist/src/filters/Invert.min.mjs +0 -0
  609. package/dist/src/filters/Invert.min.mjs.map +0 -0
  610. package/dist/src/filters/Invert.mjs +0 -0
  611. package/dist/src/filters/Invert.mjs.map +0 -0
  612. package/dist/src/filters/Noise.d.ts +0 -0
  613. package/dist/src/filters/Noise.d.ts.map +0 -0
  614. package/dist/src/filters/Noise.min.mjs +0 -0
  615. package/dist/src/filters/Noise.min.mjs.map +0 -0
  616. package/dist/src/filters/Noise.mjs +0 -0
  617. package/dist/src/filters/Noise.mjs.map +0 -0
  618. package/dist/src/filters/Pixelate.d.ts +0 -0
  619. package/dist/src/filters/Pixelate.d.ts.map +0 -0
  620. package/dist/src/filters/Pixelate.min.mjs +0 -0
  621. package/dist/src/filters/Pixelate.min.mjs.map +0 -0
  622. package/dist/src/filters/Pixelate.mjs +0 -0
  623. package/dist/src/filters/Pixelate.mjs.map +0 -0
  624. package/dist/src/filters/RemoveColor.d.ts +0 -0
  625. package/dist/src/filters/RemoveColor.d.ts.map +0 -0
  626. package/dist/src/filters/RemoveColor.min.mjs +0 -0
  627. package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
  628. package/dist/src/filters/RemoveColor.mjs +0 -0
  629. package/dist/src/filters/RemoveColor.mjs.map +0 -0
  630. package/dist/src/filters/Resize.d.ts +0 -0
  631. package/dist/src/filters/Resize.d.ts.map +0 -0
  632. package/dist/src/filters/Resize.min.mjs +0 -0
  633. package/dist/src/filters/Resize.min.mjs.map +0 -0
  634. package/dist/src/filters/Resize.mjs +0 -0
  635. package/dist/src/filters/Resize.mjs.map +0 -0
  636. package/dist/src/filters/Saturation.d.ts +0 -0
  637. package/dist/src/filters/Saturation.d.ts.map +0 -0
  638. package/dist/src/filters/Saturation.min.mjs +0 -0
  639. package/dist/src/filters/Saturation.min.mjs.map +0 -0
  640. package/dist/src/filters/Saturation.mjs +0 -0
  641. package/dist/src/filters/Saturation.mjs.map +0 -0
  642. package/dist/src/filters/Vibrance.d.ts +0 -0
  643. package/dist/src/filters/Vibrance.d.ts.map +0 -0
  644. package/dist/src/filters/Vibrance.min.mjs +0 -0
  645. package/dist/src/filters/Vibrance.min.mjs.map +0 -0
  646. package/dist/src/filters/Vibrance.mjs +0 -0
  647. package/dist/src/filters/Vibrance.mjs.map +0 -0
  648. package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
  649. package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  650. package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
  651. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
  652. package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
  653. package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
  654. package/dist/src/filters/filters.d.ts +0 -0
  655. package/dist/src/filters/filters.d.ts.map +0 -0
  656. package/dist/src/filters/filters.min.mjs +0 -0
  657. package/dist/src/filters/filters.min.mjs.map +0 -0
  658. package/dist/src/filters/filters.mjs +0 -0
  659. package/dist/src/filters/filters.mjs.map +0 -0
  660. package/dist/src/filters/index.d.ts +0 -0
  661. package/dist/src/filters/index.d.ts.map +0 -0
  662. package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
  663. package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
  664. package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
  665. package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
  666. package/dist/src/filters/shaders/baseFilter.mjs +0 -0
  667. package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
  668. package/dist/src/filters/shaders/blendColor.d.ts +0 -0
  669. package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
  670. package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
  671. package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
  672. package/dist/src/filters/shaders/blendColor.mjs +0 -0
  673. package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
  674. package/dist/src/filters/shaders/blendImage.d.ts +0 -0
  675. package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
  676. package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
  677. package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
  678. package/dist/src/filters/shaders/blendImage.mjs +0 -0
  679. package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
  680. package/dist/src/filters/shaders/blur.d.ts +0 -0
  681. package/dist/src/filters/shaders/blur.d.ts.map +0 -0
  682. package/dist/src/filters/shaders/blur.min.mjs +0 -0
  683. package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
  684. package/dist/src/filters/shaders/blur.mjs +0 -0
  685. package/dist/src/filters/shaders/blur.mjs.map +0 -0
  686. package/dist/src/filters/shaders/brightness.d.ts +0 -0
  687. package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
  688. package/dist/src/filters/shaders/brightness.min.mjs +0 -0
  689. package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
  690. package/dist/src/filters/shaders/brightness.mjs +0 -0
  691. package/dist/src/filters/shaders/brightness.mjs.map +0 -0
  692. package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
  693. package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  694. package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
  695. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
  696. package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
  697. package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
  698. package/dist/src/filters/shaders/constrast.d.ts +0 -0
  699. package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
  700. package/dist/src/filters/shaders/constrast.min.mjs +0 -0
  701. package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
  702. package/dist/src/filters/shaders/constrast.mjs +0 -0
  703. package/dist/src/filters/shaders/constrast.mjs.map +0 -0
  704. package/dist/src/filters/shaders/convolute.d.ts +0 -0
  705. package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
  706. package/dist/src/filters/shaders/convolute.min.mjs +0 -0
  707. package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
  708. package/dist/src/filters/shaders/convolute.mjs +0 -0
  709. package/dist/src/filters/shaders/convolute.mjs.map +0 -0
  710. package/dist/src/filters/shaders/gamma.d.ts +0 -0
  711. package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
  712. package/dist/src/filters/shaders/gamma.min.mjs +0 -0
  713. package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
  714. package/dist/src/filters/shaders/gamma.mjs +0 -0
  715. package/dist/src/filters/shaders/gamma.mjs.map +0 -0
  716. package/dist/src/filters/shaders/grayscale.d.ts +0 -0
  717. package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
  718. package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
  719. package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
  720. package/dist/src/filters/shaders/grayscale.mjs +0 -0
  721. package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
  722. package/dist/src/filters/shaders/invert.d.ts +0 -0
  723. package/dist/src/filters/shaders/invert.d.ts.map +0 -0
  724. package/dist/src/filters/shaders/invert.min.mjs +0 -0
  725. package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
  726. package/dist/src/filters/shaders/invert.mjs +0 -0
  727. package/dist/src/filters/shaders/invert.mjs.map +0 -0
  728. package/dist/src/filters/shaders/noise.d.ts +0 -0
  729. package/dist/src/filters/shaders/noise.d.ts.map +0 -0
  730. package/dist/src/filters/shaders/noise.min.mjs +0 -0
  731. package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
  732. package/dist/src/filters/shaders/noise.mjs +0 -0
  733. package/dist/src/filters/shaders/noise.mjs.map +0 -0
  734. package/dist/src/filters/shaders/pixelate.d.ts +0 -0
  735. package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
  736. package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
  737. package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
  738. package/dist/src/filters/shaders/pixelate.mjs +0 -0
  739. package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
  740. package/dist/src/filters/shaders/removeColor.d.ts +0 -0
  741. package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
  742. package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
  743. package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
  744. package/dist/src/filters/shaders/removeColor.mjs +0 -0
  745. package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
  746. package/dist/src/filters/shaders/saturation.d.ts +0 -0
  747. package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
  748. package/dist/src/filters/shaders/saturation.min.mjs +0 -0
  749. package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
  750. package/dist/src/filters/shaders/saturation.mjs +0 -0
  751. package/dist/src/filters/shaders/saturation.mjs.map +0 -0
  752. package/dist/src/filters/shaders/vibrance.d.ts +0 -0
  753. package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
  754. package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
  755. package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
  756. package/dist/src/filters/shaders/vibrance.mjs +0 -0
  757. package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
  758. package/dist/src/filters/typedefs.d.ts +0 -0
  759. package/dist/src/filters/typedefs.d.ts.map +0 -0
  760. package/dist/src/filters/utils.d.ts +0 -0
  761. package/dist/src/filters/utils.d.ts.map +0 -0
  762. package/dist/src/filters/utils.min.mjs +0 -0
  763. package/dist/src/filters/utils.min.mjs.map +0 -0
  764. package/dist/src/filters/utils.mjs +0 -0
  765. package/dist/src/filters/utils.mjs.map +0 -0
  766. package/dist/src/gradient/Gradient.d.ts +0 -0
  767. package/dist/src/gradient/Gradient.d.ts.map +0 -0
  768. package/dist/src/gradient/Gradient.min.mjs +0 -0
  769. package/dist/src/gradient/Gradient.min.mjs.map +0 -0
  770. package/dist/src/gradient/Gradient.mjs +0 -0
  771. package/dist/src/gradient/Gradient.mjs.map +0 -0
  772. package/dist/src/gradient/constants.d.ts +0 -0
  773. package/dist/src/gradient/constants.d.ts.map +0 -0
  774. package/dist/src/gradient/constants.min.mjs +0 -0
  775. package/dist/src/gradient/constants.min.mjs.map +0 -0
  776. package/dist/src/gradient/constants.mjs +0 -0
  777. package/dist/src/gradient/constants.mjs.map +0 -0
  778. package/dist/src/gradient/index.d.ts +0 -0
  779. package/dist/src/gradient/index.d.ts.map +0 -0
  780. package/dist/src/gradient/parser/misc.d.ts +0 -0
  781. package/dist/src/gradient/parser/misc.d.ts.map +0 -0
  782. package/dist/src/gradient/parser/misc.min.mjs +0 -0
  783. package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
  784. package/dist/src/gradient/parser/misc.mjs +0 -0
  785. package/dist/src/gradient/parser/misc.mjs.map +0 -0
  786. package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
  787. package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  788. package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
  789. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
  790. package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
  791. package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
  792. package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
  793. package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
  794. package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
  795. package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
  796. package/dist/src/gradient/parser/parseCoords.mjs +0 -0
  797. package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
  798. package/dist/src/gradient/typedefs.d.ts +0 -0
  799. package/dist/src/gradient/typedefs.d.ts.map +0 -0
  800. package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
  801. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
  802. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
  803. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
  804. package/dist/src/parkinglot/straighten.d.ts +0 -0
  805. package/dist/src/parkinglot/straighten.d.ts.map +0 -0
  806. package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
  807. package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
  808. package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
  809. package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
  810. package/dist/src/parser/applyViewboxTransform.mjs +0 -0
  811. package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
  812. package/dist/src/parser/attributes.d.ts +0 -0
  813. package/dist/src/parser/attributes.d.ts.map +0 -0
  814. package/dist/src/parser/attributes.min.mjs +0 -0
  815. package/dist/src/parser/attributes.min.mjs.map +0 -0
  816. package/dist/src/parser/attributes.mjs +0 -0
  817. package/dist/src/parser/attributes.mjs.map +0 -0
  818. package/dist/src/parser/constants.d.ts +0 -0
  819. package/dist/src/parser/constants.d.ts.map +0 -0
  820. package/dist/src/parser/constants.min.mjs +0 -0
  821. package/dist/src/parser/constants.min.mjs.map +0 -0
  822. package/dist/src/parser/constants.mjs +0 -0
  823. package/dist/src/parser/constants.mjs.map +0 -0
  824. package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
  825. package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  826. package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
  827. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
  828. package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
  829. package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
  830. package/dist/src/parser/elementMatchesRule.d.ts +0 -0
  831. package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
  832. package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
  833. package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
  834. package/dist/src/parser/elementMatchesRule.mjs +0 -0
  835. package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
  836. package/dist/src/parser/elements_parser.d.ts +0 -0
  837. package/dist/src/parser/elements_parser.d.ts.map +0 -0
  838. package/dist/src/parser/elements_parser.min.mjs +0 -0
  839. package/dist/src/parser/elements_parser.min.mjs.map +0 -0
  840. package/dist/src/parser/elements_parser.mjs +0 -0
  841. package/dist/src/parser/elements_parser.mjs.map +0 -0
  842. package/dist/src/parser/getCSSRules.d.ts +0 -0
  843. package/dist/src/parser/getCSSRules.d.ts.map +0 -0
  844. package/dist/src/parser/getCSSRules.min.mjs +0 -0
  845. package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
  846. package/dist/src/parser/getCSSRules.mjs +0 -0
  847. package/dist/src/parser/getCSSRules.mjs.map +0 -0
  848. package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
  849. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  850. package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
  851. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
  852. package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
  853. package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
  854. package/dist/src/parser/getGradientDefs.d.ts +0 -0
  855. package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
  856. package/dist/src/parser/getGradientDefs.min.mjs +0 -0
  857. package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
  858. package/dist/src/parser/getGradientDefs.mjs +0 -0
  859. package/dist/src/parser/getGradientDefs.mjs.map +0 -0
  860. package/dist/src/parser/getMultipleNodes.d.ts +0 -0
  861. package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
  862. package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
  863. package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
  864. package/dist/src/parser/getMultipleNodes.mjs +0 -0
  865. package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
  866. package/dist/src/parser/getSvgRegex.d.ts +0 -0
  867. package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
  868. package/dist/src/parser/getSvgRegex.min.mjs +0 -0
  869. package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
  870. package/dist/src/parser/getSvgRegex.mjs +0 -0
  871. package/dist/src/parser/getSvgRegex.mjs.map +0 -0
  872. package/dist/src/parser/getTagName.d.ts +0 -0
  873. package/dist/src/parser/getTagName.d.ts.map +0 -0
  874. package/dist/src/parser/getTagName.min.mjs +0 -0
  875. package/dist/src/parser/getTagName.min.mjs.map +0 -0
  876. package/dist/src/parser/getTagName.mjs +0 -0
  877. package/dist/src/parser/getTagName.mjs.map +0 -0
  878. package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
  879. package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  880. package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
  881. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
  882. package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
  883. package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
  884. package/dist/src/parser/loadSVGFromString.d.ts +0 -0
  885. package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
  886. package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
  887. package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
  888. package/dist/src/parser/loadSVGFromString.mjs +0 -0
  889. package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
  890. package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
  891. package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
  892. package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
  893. package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
  894. package/dist/src/parser/loadSVGFromURL.mjs +0 -0
  895. package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
  896. package/dist/src/parser/normalizeAttr.d.ts +0 -0
  897. package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
  898. package/dist/src/parser/normalizeAttr.min.mjs +0 -0
  899. package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
  900. package/dist/src/parser/normalizeAttr.mjs +0 -0
  901. package/dist/src/parser/normalizeAttr.mjs.map +0 -0
  902. package/dist/src/parser/normalizeValue.d.ts +0 -0
  903. package/dist/src/parser/normalizeValue.d.ts.map +0 -0
  904. package/dist/src/parser/normalizeValue.min.mjs +0 -0
  905. package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
  906. package/dist/src/parser/normalizeValue.mjs +0 -0
  907. package/dist/src/parser/normalizeValue.mjs.map +0 -0
  908. package/dist/src/parser/parseAttributes.d.ts +0 -0
  909. package/dist/src/parser/parseAttributes.d.ts.map +0 -0
  910. package/dist/src/parser/parseAttributes.min.mjs +0 -0
  911. package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
  912. package/dist/src/parser/parseAttributes.mjs +0 -0
  913. package/dist/src/parser/parseAttributes.mjs.map +0 -0
  914. package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
  915. package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
  916. package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
  917. package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
  918. package/dist/src/parser/parseFontDeclaration.mjs +0 -0
  919. package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
  920. package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
  921. package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
  922. package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
  923. package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
  924. package/dist/src/parser/parsePointsAttribute.mjs +0 -0
  925. package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
  926. package/dist/src/parser/parseSVGDocument.d.ts +0 -0
  927. package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
  928. package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
  929. package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
  930. package/dist/src/parser/parseSVGDocument.mjs +0 -0
  931. package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
  932. package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
  933. package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
  934. package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
  935. package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
  936. package/dist/src/parser/parseStyleAttribute.mjs +0 -0
  937. package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
  938. package/dist/src/parser/parseStyleObject.d.ts +0 -0
  939. package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
  940. package/dist/src/parser/parseStyleObject.min.mjs +0 -0
  941. package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
  942. package/dist/src/parser/parseStyleObject.mjs +0 -0
  943. package/dist/src/parser/parseStyleObject.mjs.map +0 -0
  944. package/dist/src/parser/parseStyleString.d.ts +0 -0
  945. package/dist/src/parser/parseStyleString.d.ts.map +0 -0
  946. package/dist/src/parser/parseStyleString.min.mjs +0 -0
  947. package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
  948. package/dist/src/parser/parseStyleString.mjs +0 -0
  949. package/dist/src/parser/parseStyleString.mjs.map +0 -0
  950. package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
  951. package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
  952. package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
  953. package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
  954. package/dist/src/parser/parseTransformAttribute.mjs +0 -0
  955. package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
  956. package/dist/src/parser/parseUseDirectives.d.ts +0 -0
  957. package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
  958. package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
  959. package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
  960. package/dist/src/parser/parseUseDirectives.mjs +0 -0
  961. package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
  962. package/dist/src/parser/percent.d.ts +0 -0
  963. package/dist/src/parser/percent.d.ts.map +0 -0
  964. package/dist/src/parser/percent.min.mjs +0 -0
  965. package/dist/src/parser/percent.min.mjs.map +0 -0
  966. package/dist/src/parser/percent.mjs +0 -0
  967. package/dist/src/parser/percent.mjs.map +0 -0
  968. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  969. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  970. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
  971. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
  972. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
  973. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
  974. package/dist/src/parser/selectorMatches.d.ts +0 -0
  975. package/dist/src/parser/selectorMatches.d.ts.map +0 -0
  976. package/dist/src/parser/selectorMatches.min.mjs +0 -0
  977. package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
  978. package/dist/src/parser/selectorMatches.mjs +0 -0
  979. package/dist/src/parser/selectorMatches.mjs.map +0 -0
  980. package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
  981. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  982. package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
  983. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
  984. package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
  985. package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
  986. package/dist/src/parser/typedefs.d.ts +0 -0
  987. package/dist/src/parser/typedefs.d.ts.map +0 -0
  988. package/dist/src/shapes/ActiveSelection.d.ts +0 -0
  989. package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
  990. package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
  991. package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
  992. package/dist/src/shapes/ActiveSelection.mjs +0 -0
  993. package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
  994. package/dist/src/shapes/Circle.d.ts +0 -0
  995. package/dist/src/shapes/Circle.d.ts.map +0 -0
  996. package/dist/src/shapes/Circle.min.mjs +0 -0
  997. package/dist/src/shapes/Circle.min.mjs.map +0 -0
  998. package/dist/src/shapes/Circle.mjs +0 -0
  999. package/dist/src/shapes/Circle.mjs.map +0 -0
  1000. package/dist/src/shapes/Ellipse.d.ts +0 -0
  1001. package/dist/src/shapes/Ellipse.d.ts.map +0 -0
  1002. package/dist/src/shapes/Ellipse.min.mjs +0 -0
  1003. package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
  1004. package/dist/src/shapes/Ellipse.mjs +0 -0
  1005. package/dist/src/shapes/Ellipse.mjs.map +0 -0
  1006. package/dist/src/shapes/Group.d.ts +0 -0
  1007. package/dist/src/shapes/Group.d.ts.map +0 -0
  1008. package/dist/src/shapes/Group.min.mjs +0 -0
  1009. package/dist/src/shapes/Group.min.mjs.map +0 -0
  1010. package/dist/src/shapes/Group.mjs +0 -0
  1011. package/dist/src/shapes/Group.mjs.map +0 -0
  1012. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1013. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1014. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
  1015. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
  1016. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
  1017. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
  1018. package/dist/src/shapes/IText/IText.d.ts +0 -0
  1019. package/dist/src/shapes/IText/IText.d.ts.map +0 -0
  1020. package/dist/src/shapes/IText/IText.min.mjs +0 -0
  1021. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  1022. package/dist/src/shapes/IText/IText.mjs +206 -206
  1023. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  1024. package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1025. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
  1026. package/dist/src/shapes/IText/ITextBehavior.min.mjs +1 -1
  1027. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  1028. package/dist/src/shapes/IText/ITextBehavior.mjs +221 -157
  1029. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  1030. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1031. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1032. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
  1033. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  1034. package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
  1035. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  1036. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1037. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1038. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +0 -0
  1039. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
  1040. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +115 -115
  1041. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
  1042. package/dist/src/shapes/IText/constants.d.ts +0 -0
  1043. package/dist/src/shapes/IText/constants.d.ts.map +0 -0
  1044. package/dist/src/shapes/IText/constants.min.mjs +0 -0
  1045. package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
  1046. package/dist/src/shapes/IText/constants.mjs +0 -0
  1047. package/dist/src/shapes/IText/constants.mjs.map +0 -0
  1048. package/dist/src/shapes/Image.d.ts +0 -0
  1049. package/dist/src/shapes/Image.d.ts.map +0 -0
  1050. package/dist/src/shapes/Image.min.mjs +0 -0
  1051. package/dist/src/shapes/Image.min.mjs.map +0 -0
  1052. package/dist/src/shapes/Image.mjs +0 -0
  1053. package/dist/src/shapes/Image.mjs.map +0 -0
  1054. package/dist/src/shapes/Line.d.ts +0 -0
  1055. package/dist/src/shapes/Line.d.ts.map +0 -0
  1056. package/dist/src/shapes/Line.min.mjs +0 -0
  1057. package/dist/src/shapes/Line.min.mjs.map +0 -0
  1058. package/dist/src/shapes/Line.mjs +0 -0
  1059. package/dist/src/shapes/Line.mjs.map +0 -0
  1060. package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
  1061. package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1062. package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
  1063. package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
  1064. package/dist/src/shapes/Object/FabricObject.mjs +0 -0
  1065. package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
  1066. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1067. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1068. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
  1069. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
  1070. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
  1071. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
  1072. package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1073. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1074. package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
  1075. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
  1076. package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
  1077. package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
  1078. package/dist/src/shapes/Object/Object.d.ts +0 -0
  1079. package/dist/src/shapes/Object/Object.d.ts.map +0 -0
  1080. package/dist/src/shapes/Object/Object.min.mjs +0 -0
  1081. package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
  1082. package/dist/src/shapes/Object/Object.mjs +0 -0
  1083. package/dist/src/shapes/Object/Object.mjs.map +0 -0
  1084. package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1085. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1086. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
  1087. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
  1088. package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
  1089. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
  1090. package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
  1091. package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1092. package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
  1093. package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
  1094. package/dist/src/shapes/Object/defaultValues.mjs +0 -0
  1095. package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
  1096. package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1097. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1098. package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1099. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1100. package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1101. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1102. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1103. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1104. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1105. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1106. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1107. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1108. package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1109. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1110. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1111. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1112. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1113. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1114. package/dist/src/shapes/Object/types/index.d.ts +0 -0
  1115. package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
  1116. package/dist/src/shapes/Path.d.ts +0 -0
  1117. package/dist/src/shapes/Path.d.ts.map +0 -0
  1118. package/dist/src/shapes/Path.min.mjs +0 -0
  1119. package/dist/src/shapes/Path.min.mjs.map +0 -0
  1120. package/dist/src/shapes/Path.mjs +0 -0
  1121. package/dist/src/shapes/Path.mjs.map +0 -0
  1122. package/dist/src/shapes/Polygon.d.ts +0 -0
  1123. package/dist/src/shapes/Polygon.d.ts.map +0 -0
  1124. package/dist/src/shapes/Polygon.min.mjs +0 -0
  1125. package/dist/src/shapes/Polygon.min.mjs.map +0 -0
  1126. package/dist/src/shapes/Polygon.mjs +0 -0
  1127. package/dist/src/shapes/Polygon.mjs.map +0 -0
  1128. package/dist/src/shapes/Polyline.d.ts +0 -0
  1129. package/dist/src/shapes/Polyline.d.ts.map +0 -0
  1130. package/dist/src/shapes/Polyline.min.mjs +0 -0
  1131. package/dist/src/shapes/Polyline.min.mjs.map +0 -0
  1132. package/dist/src/shapes/Polyline.mjs +0 -0
  1133. package/dist/src/shapes/Polyline.mjs.map +0 -0
  1134. package/dist/src/shapes/Rect.d.ts +0 -0
  1135. package/dist/src/shapes/Rect.d.ts.map +0 -0
  1136. package/dist/src/shapes/Rect.min.mjs +0 -0
  1137. package/dist/src/shapes/Rect.min.mjs.map +0 -0
  1138. package/dist/src/shapes/Rect.mjs +0 -0
  1139. package/dist/src/shapes/Rect.mjs.map +0 -0
  1140. package/dist/src/shapes/Text/StyledText.d.ts +0 -0
  1141. package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
  1142. package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
  1143. package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
  1144. package/dist/src/shapes/Text/StyledText.mjs +0 -0
  1145. package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
  1146. package/dist/src/shapes/Text/Text.d.ts +1 -0
  1147. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  1148. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  1149. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  1150. package/dist/src/shapes/Text/Text.mjs +20 -7
  1151. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  1152. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1153. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1154. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
  1155. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
  1156. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
  1157. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
  1158. package/dist/src/shapes/Text/constants.d.ts +0 -0
  1159. package/dist/src/shapes/Text/constants.d.ts.map +0 -0
  1160. package/dist/src/shapes/Text/constants.min.mjs +0 -0
  1161. package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
  1162. package/dist/src/shapes/Text/constants.mjs +0 -0
  1163. package/dist/src/shapes/Text/constants.mjs.map +1 -1
  1164. package/dist/src/shapes/Textbox.d.ts +20 -0
  1165. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  1166. package/dist/src/shapes/Textbox.min.mjs +1 -1
  1167. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  1168. package/dist/src/shapes/Textbox.mjs +242 -22
  1169. package/dist/src/shapes/Textbox.mjs.map +1 -1
  1170. package/dist/src/shapes/Triangle.d.ts +0 -0
  1171. package/dist/src/shapes/Triangle.d.ts.map +0 -0
  1172. package/dist/src/shapes/Triangle.min.mjs +0 -0
  1173. package/dist/src/shapes/Triangle.min.mjs.map +0 -0
  1174. package/dist/src/shapes/Triangle.mjs +0 -0
  1175. package/dist/src/shapes/Triangle.mjs.map +0 -0
  1176. package/dist/src/text/browserLines.d.ts +7 -2
  1177. package/dist/src/text/browserLines.d.ts.map +1 -1
  1178. package/dist/src/text/browserLines.min.mjs +1 -1
  1179. package/dist/src/text/browserLines.min.mjs.map +1 -1
  1180. package/dist/src/text/browserLines.mjs +35 -25
  1181. package/dist/src/text/browserLines.mjs.map +1 -1
  1182. package/dist/src/text/ellipsis.d.ts +0 -0
  1183. package/dist/src/text/ellipsis.d.ts.map +0 -0
  1184. package/dist/src/text/ellipsis.min.mjs +0 -0
  1185. package/dist/src/text/ellipsis.min.mjs.map +1 -1
  1186. package/dist/src/text/ellipsis.mjs +11 -11
  1187. package/dist/src/text/ellipsis.mjs.map +1 -1
  1188. package/dist/src/text/hitTest.d.ts +0 -0
  1189. package/dist/src/text/hitTest.d.ts.map +0 -0
  1190. package/dist/src/text/hitTest.min.mjs +0 -0
  1191. package/dist/src/text/hitTest.min.mjs.map +1 -1
  1192. package/dist/src/text/hitTest.mjs +19 -19
  1193. package/dist/src/text/hitTest.mjs.map +1 -1
  1194. package/dist/src/text/layout.d.ts +0 -0
  1195. package/dist/src/text/layout.d.ts.map +0 -0
  1196. package/dist/src/text/layout.min.mjs +0 -0
  1197. package/dist/src/text/layout.min.mjs.map +1 -1
  1198. package/dist/src/text/layout.mjs +33 -33
  1199. package/dist/src/text/layout.mjs.map +1 -1
  1200. package/dist/src/text/measure.d.ts +0 -0
  1201. package/dist/src/text/measure.d.ts.map +0 -0
  1202. package/dist/src/text/measure.min.mjs +0 -0
  1203. package/dist/src/text/measure.min.mjs.map +1 -1
  1204. package/dist/src/text/measure.mjs +30 -30
  1205. package/dist/src/text/measure.mjs.map +1 -1
  1206. package/dist/src/text/overlayEditor.d.ts +1 -0
  1207. package/dist/src/text/overlayEditor.d.ts.map +1 -1
  1208. package/dist/src/text/overlayEditor.min.mjs +1 -1
  1209. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  1210. package/dist/src/text/overlayEditor.mjs +70 -51
  1211. package/dist/src/text/overlayEditor.mjs.map +1 -1
  1212. package/dist/src/text/unicode.d.ts +0 -0
  1213. package/dist/src/text/unicode.d.ts.map +0 -0
  1214. package/dist/src/text/unicode.min.mjs +0 -0
  1215. package/dist/src/text/unicode.min.mjs.map +1 -1
  1216. package/dist/src/text/unicode.mjs +8 -8
  1217. package/dist/src/text/unicode.mjs.map +1 -1
  1218. package/dist/src/typedefs.d.ts +0 -0
  1219. package/dist/src/typedefs.d.ts.map +0 -0
  1220. package/dist/src/util/animation/AnimationBase.d.ts +0 -0
  1221. package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
  1222. package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
  1223. package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
  1224. package/dist/src/util/animation/AnimationBase.mjs +0 -0
  1225. package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
  1226. package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1227. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1228. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
  1229. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
  1230. package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
  1231. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
  1232. package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
  1233. package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1234. package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
  1235. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
  1236. package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
  1237. package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
  1238. package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
  1239. package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1240. package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
  1241. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
  1242. package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
  1243. package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
  1244. package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
  1245. package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1246. package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
  1247. package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
  1248. package/dist/src/util/animation/ColorAnimation.mjs +0 -0
  1249. package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
  1250. package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
  1251. package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1252. package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
  1253. package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
  1254. package/dist/src/util/animation/ValueAnimation.mjs +0 -0
  1255. package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
  1256. package/dist/src/util/animation/animate.d.ts +0 -0
  1257. package/dist/src/util/animation/animate.d.ts.map +0 -0
  1258. package/dist/src/util/animation/animate.min.mjs +0 -0
  1259. package/dist/src/util/animation/animate.min.mjs.map +0 -0
  1260. package/dist/src/util/animation/animate.mjs +0 -0
  1261. package/dist/src/util/animation/animate.mjs.map +0 -0
  1262. package/dist/src/util/animation/easing.d.ts +0 -0
  1263. package/dist/src/util/animation/easing.d.ts.map +0 -0
  1264. package/dist/src/util/animation/easing.min.mjs +0 -0
  1265. package/dist/src/util/animation/easing.min.mjs.map +0 -0
  1266. package/dist/src/util/animation/easing.mjs +0 -0
  1267. package/dist/src/util/animation/easing.mjs.map +0 -0
  1268. package/dist/src/util/animation/index.d.ts +0 -0
  1269. package/dist/src/util/animation/index.d.ts.map +0 -0
  1270. package/dist/src/util/animation/types.d.ts +0 -0
  1271. package/dist/src/util/animation/types.d.ts.map +0 -0
  1272. package/dist/src/util/applyMixins.d.ts +0 -0
  1273. package/dist/src/util/applyMixins.d.ts.map +0 -0
  1274. package/dist/src/util/applyMixins.min.mjs +0 -0
  1275. package/dist/src/util/applyMixins.min.mjs.map +0 -0
  1276. package/dist/src/util/applyMixins.mjs +0 -0
  1277. package/dist/src/util/applyMixins.mjs.map +0 -0
  1278. package/dist/src/util/dom_event.d.ts +0 -0
  1279. package/dist/src/util/dom_event.d.ts.map +0 -0
  1280. package/dist/src/util/dom_event.min.mjs +0 -0
  1281. package/dist/src/util/dom_event.min.mjs.map +0 -0
  1282. package/dist/src/util/dom_event.mjs +0 -0
  1283. package/dist/src/util/dom_event.mjs.map +0 -0
  1284. package/dist/src/util/dom_misc.d.ts +0 -0
  1285. package/dist/src/util/dom_misc.d.ts.map +0 -0
  1286. package/dist/src/util/dom_misc.min.mjs +0 -0
  1287. package/dist/src/util/dom_misc.min.mjs.map +0 -0
  1288. package/dist/src/util/dom_misc.mjs +0 -0
  1289. package/dist/src/util/dom_misc.mjs.map +0 -0
  1290. package/dist/src/util/index.d.ts +0 -0
  1291. package/dist/src/util/index.d.ts.map +0 -0
  1292. package/dist/src/util/index.min.mjs +0 -0
  1293. package/dist/src/util/index.min.mjs.map +0 -0
  1294. package/dist/src/util/index.mjs +0 -0
  1295. package/dist/src/util/index.mjs.map +0 -0
  1296. package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
  1297. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  1298. package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
  1299. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
  1300. package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
  1301. package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
  1302. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  1303. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  1304. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
  1305. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
  1306. package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
  1307. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
  1308. package/dist/src/util/internals/cloneStyles.d.ts +0 -0
  1309. package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
  1310. package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
  1311. package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
  1312. package/dist/src/util/internals/cloneStyles.mjs +0 -0
  1313. package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
  1314. package/dist/src/util/internals/console.d.ts +0 -0
  1315. package/dist/src/util/internals/console.d.ts.map +0 -0
  1316. package/dist/src/util/internals/console.min.mjs +0 -0
  1317. package/dist/src/util/internals/console.min.mjs.map +0 -0
  1318. package/dist/src/util/internals/console.mjs +0 -0
  1319. package/dist/src/util/internals/console.mjs.map +0 -0
  1320. package/dist/src/util/internals/dom_style.d.ts +0 -0
  1321. package/dist/src/util/internals/dom_style.d.ts.map +0 -0
  1322. package/dist/src/util/internals/dom_style.min.mjs +0 -0
  1323. package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
  1324. package/dist/src/util/internals/dom_style.mjs +0 -0
  1325. package/dist/src/util/internals/dom_style.mjs.map +0 -0
  1326. package/dist/src/util/internals/findRight.d.ts +0 -0
  1327. package/dist/src/util/internals/findRight.d.ts.map +0 -0
  1328. package/dist/src/util/internals/findRight.min.mjs +0 -0
  1329. package/dist/src/util/internals/findRight.min.mjs.map +0 -0
  1330. package/dist/src/util/internals/findRight.mjs +0 -0
  1331. package/dist/src/util/internals/findRight.mjs.map +0 -0
  1332. package/dist/src/util/internals/getRandomInt.d.ts +0 -0
  1333. package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
  1334. package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
  1335. package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
  1336. package/dist/src/util/internals/getRandomInt.mjs +0 -0
  1337. package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
  1338. package/dist/src/util/internals/ifNaN.d.ts +0 -0
  1339. package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
  1340. package/dist/src/util/internals/ifNaN.min.mjs +0 -0
  1341. package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
  1342. package/dist/src/util/internals/ifNaN.mjs +0 -0
  1343. package/dist/src/util/internals/ifNaN.mjs.map +0 -0
  1344. package/dist/src/util/internals/removeFromArray.d.ts +0 -0
  1345. package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
  1346. package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
  1347. package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
  1348. package/dist/src/util/internals/removeFromArray.mjs +0 -0
  1349. package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
  1350. package/dist/src/util/internals/uid.d.ts +0 -0
  1351. package/dist/src/util/internals/uid.d.ts.map +0 -0
  1352. package/dist/src/util/internals/uid.min.mjs +0 -0
  1353. package/dist/src/util/internals/uid.min.mjs.map +0 -0
  1354. package/dist/src/util/internals/uid.mjs +0 -0
  1355. package/dist/src/util/internals/uid.mjs.map +0 -0
  1356. package/dist/src/util/lang_string.d.ts +0 -0
  1357. package/dist/src/util/lang_string.d.ts.map +0 -0
  1358. package/dist/src/util/lang_string.min.mjs +0 -0
  1359. package/dist/src/util/lang_string.min.mjs.map +0 -0
  1360. package/dist/src/util/lang_string.mjs +0 -0
  1361. package/dist/src/util/lang_string.mjs.map +0 -0
  1362. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  1363. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  1364. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
  1365. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
  1366. package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
  1367. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
  1368. package/dist/src/util/misc/capValue.d.ts +0 -0
  1369. package/dist/src/util/misc/capValue.d.ts.map +0 -0
  1370. package/dist/src/util/misc/capValue.min.mjs +0 -0
  1371. package/dist/src/util/misc/capValue.min.mjs.map +0 -0
  1372. package/dist/src/util/misc/capValue.mjs +0 -0
  1373. package/dist/src/util/misc/capValue.mjs.map +0 -0
  1374. package/dist/src/util/misc/cornerRadius.d.ts +0 -0
  1375. package/dist/src/util/misc/cornerRadius.d.ts.map +0 -0
  1376. package/dist/src/util/misc/cornerRadius.min.mjs +0 -0
  1377. package/dist/src/util/misc/cornerRadius.min.mjs.map +0 -0
  1378. package/dist/src/util/misc/cornerRadius.mjs +0 -0
  1379. package/dist/src/util/misc/cornerRadius.mjs.map +0 -0
  1380. package/dist/src/util/misc/cos.d.ts +0 -0
  1381. package/dist/src/util/misc/cos.d.ts.map +0 -0
  1382. package/dist/src/util/misc/cos.min.mjs +0 -0
  1383. package/dist/src/util/misc/cos.min.mjs.map +0 -0
  1384. package/dist/src/util/misc/cos.mjs +0 -0
  1385. package/dist/src/util/misc/cos.mjs.map +0 -0
  1386. package/dist/src/util/misc/dom.d.ts +0 -0
  1387. package/dist/src/util/misc/dom.d.ts.map +0 -0
  1388. package/dist/src/util/misc/dom.min.mjs +0 -0
  1389. package/dist/src/util/misc/dom.min.mjs.map +0 -0
  1390. package/dist/src/util/misc/dom.mjs +0 -0
  1391. package/dist/src/util/misc/dom.mjs.map +0 -0
  1392. package/dist/src/util/misc/findScaleTo.d.ts +0 -0
  1393. package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
  1394. package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
  1395. package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
  1396. package/dist/src/util/misc/findScaleTo.mjs +0 -0
  1397. package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
  1398. package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
  1399. package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
  1400. package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
  1401. package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
  1402. package/dist/src/util/misc/groupSVGElements.mjs +0 -0
  1403. package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
  1404. package/dist/src/util/misc/isTransparent.d.ts +0 -0
  1405. package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
  1406. package/dist/src/util/misc/isTransparent.min.mjs +0 -0
  1407. package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
  1408. package/dist/src/util/misc/isTransparent.mjs +0 -0
  1409. package/dist/src/util/misc/isTransparent.mjs.map +0 -0
  1410. package/dist/src/util/misc/matrix.d.ts +0 -0
  1411. package/dist/src/util/misc/matrix.d.ts.map +0 -0
  1412. package/dist/src/util/misc/matrix.min.mjs +0 -0
  1413. package/dist/src/util/misc/matrix.min.mjs.map +0 -0
  1414. package/dist/src/util/misc/matrix.mjs +0 -0
  1415. package/dist/src/util/misc/matrix.mjs.map +0 -0
  1416. package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
  1417. package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  1418. package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
  1419. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
  1420. package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
  1421. package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
  1422. package/dist/src/util/misc/objectEnlive.d.ts +0 -0
  1423. package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
  1424. package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
  1425. package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
  1426. package/dist/src/util/misc/objectEnlive.mjs +0 -0
  1427. package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
  1428. package/dist/src/util/misc/objectTransforms.d.ts +0 -0
  1429. package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
  1430. package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
  1431. package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
  1432. package/dist/src/util/misc/objectTransforms.mjs +0 -0
  1433. package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
  1434. package/dist/src/util/misc/pick.d.ts +0 -0
  1435. package/dist/src/util/misc/pick.d.ts.map +0 -0
  1436. package/dist/src/util/misc/pick.min.mjs +0 -0
  1437. package/dist/src/util/misc/pick.min.mjs.map +0 -0
  1438. package/dist/src/util/misc/pick.mjs +0 -0
  1439. package/dist/src/util/misc/pick.mjs.map +0 -0
  1440. package/dist/src/util/misc/planeChange.d.ts +0 -0
  1441. package/dist/src/util/misc/planeChange.d.ts.map +0 -0
  1442. package/dist/src/util/misc/planeChange.min.mjs +0 -0
  1443. package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
  1444. package/dist/src/util/misc/planeChange.mjs +0 -0
  1445. package/dist/src/util/misc/planeChange.mjs.map +0 -0
  1446. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  1447. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  1448. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
  1449. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
  1450. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
  1451. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
  1452. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  1453. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  1454. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
  1455. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
  1456. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
  1457. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
  1458. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  1459. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  1460. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
  1461. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
  1462. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
  1463. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
  1464. package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
  1465. package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
  1466. package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
  1467. package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
  1468. package/dist/src/util/misc/projectStroke/index.mjs +0 -0
  1469. package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
  1470. package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
  1471. package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
  1472. package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  1473. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  1474. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
  1475. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
  1476. package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
  1477. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
  1478. package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
  1479. package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
  1480. package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
  1481. package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
  1482. package/dist/src/util/misc/resolveOrigin.mjs +0 -0
  1483. package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
  1484. package/dist/src/util/misc/sin.d.ts +0 -0
  1485. package/dist/src/util/misc/sin.d.ts.map +0 -0
  1486. package/dist/src/util/misc/sin.min.mjs +0 -0
  1487. package/dist/src/util/misc/sin.min.mjs.map +0 -0
  1488. package/dist/src/util/misc/sin.mjs +0 -0
  1489. package/dist/src/util/misc/sin.mjs.map +0 -0
  1490. package/dist/src/util/misc/svgExport.d.ts +0 -0
  1491. package/dist/src/util/misc/svgExport.d.ts.map +0 -0
  1492. package/dist/src/util/misc/svgExport.min.mjs +0 -0
  1493. package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
  1494. package/dist/src/util/misc/svgExport.mjs +0 -0
  1495. package/dist/src/util/misc/svgExport.mjs.map +0 -0
  1496. package/dist/src/util/misc/svgParsing.d.ts +0 -0
  1497. package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
  1498. package/dist/src/util/misc/svgParsing.min.mjs +0 -0
  1499. package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
  1500. package/dist/src/util/misc/svgParsing.mjs +0 -0
  1501. package/dist/src/util/misc/svgParsing.mjs.map +0 -0
  1502. package/dist/src/util/misc/textStyles.d.ts +0 -0
  1503. package/dist/src/util/misc/textStyles.d.ts.map +0 -0
  1504. package/dist/src/util/misc/textStyles.min.mjs +0 -0
  1505. package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
  1506. package/dist/src/util/misc/textStyles.mjs +0 -0
  1507. package/dist/src/util/misc/textStyles.mjs.map +0 -0
  1508. package/dist/src/util/misc/toFixed.d.ts +0 -0
  1509. package/dist/src/util/misc/toFixed.d.ts.map +0 -0
  1510. package/dist/src/util/misc/toFixed.min.mjs +0 -0
  1511. package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
  1512. package/dist/src/util/misc/toFixed.mjs +0 -0
  1513. package/dist/src/util/misc/toFixed.mjs.map +0 -0
  1514. package/dist/src/util/misc/vectors.d.ts +0 -0
  1515. package/dist/src/util/misc/vectors.d.ts.map +0 -0
  1516. package/dist/src/util/misc/vectors.min.mjs +0 -0
  1517. package/dist/src/util/misc/vectors.min.mjs.map +0 -0
  1518. package/dist/src/util/misc/vectors.mjs +0 -0
  1519. package/dist/src/util/misc/vectors.mjs.map +0 -0
  1520. package/dist/src/util/path/index.d.ts +0 -0
  1521. package/dist/src/util/path/index.d.ts.map +0 -0
  1522. package/dist/src/util/path/index.min.mjs +0 -0
  1523. package/dist/src/util/path/index.min.mjs.map +0 -0
  1524. package/dist/src/util/path/index.mjs +0 -0
  1525. package/dist/src/util/path/index.mjs.map +0 -0
  1526. package/dist/src/util/path/regex.d.ts +0 -0
  1527. package/dist/src/util/path/regex.d.ts.map +0 -0
  1528. package/dist/src/util/path/regex.min.mjs +0 -0
  1529. package/dist/src/util/path/regex.min.mjs.map +0 -0
  1530. package/dist/src/util/path/regex.mjs +0 -0
  1531. package/dist/src/util/path/regex.mjs.map +0 -0
  1532. package/dist/src/util/path/typechecks.d.ts +0 -0
  1533. package/dist/src/util/path/typechecks.d.ts.map +0 -0
  1534. package/dist/src/util/path/typedefs.d.ts +0 -0
  1535. package/dist/src/util/path/typedefs.d.ts.map +0 -0
  1536. package/dist/src/util/transform_matrix_removal.d.ts +0 -0
  1537. package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
  1538. package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
  1539. package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
  1540. package/dist/src/util/transform_matrix_removal.mjs +0 -0
  1541. package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
  1542. package/dist/src/util/typeAssertions.d.ts +0 -0
  1543. package/dist/src/util/typeAssertions.d.ts.map +0 -0
  1544. package/dist/src/util/typeAssertions.min.mjs +0 -0
  1545. package/dist/src/util/typeAssertions.min.mjs.map +0 -0
  1546. package/dist/src/util/typeAssertions.mjs +0 -0
  1547. package/dist/src/util/typeAssertions.mjs.map +0 -0
  1548. package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
  1549. package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
  1550. package/dist-extensions/aligning_guidelines/index.mjs +0 -0
  1551. package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
  1552. package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
  1553. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
  1554. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
  1555. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
  1556. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
  1557. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
  1558. package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
  1559. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
  1560. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
  1561. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
  1562. package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
  1563. package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
  1564. package/dist-extensions/data_updaters/origins/index.mjs +0 -0
  1565. package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
  1566. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
  1567. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  1568. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
  1569. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
  1570. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  1571. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  1572. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  1573. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  1574. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  1575. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  1576. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  1577. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  1578. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  1579. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  1580. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  1581. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  1582. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
  1583. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  1584. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
  1585. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
  1586. package/dist-extensions/extensions/index.d.ts +0 -0
  1587. package/dist-extensions/extensions/index.d.ts.map +0 -0
  1588. package/dist-extensions/fabric-extensions.min.js +0 -0
  1589. package/dist-extensions/fabric-extensions.min.js.map +0 -0
  1590. package/dist-extensions/fabric.d.ts +0 -0
  1591. package/dist-extensions/fabric.d.ts.map +0 -0
  1592. package/dist-extensions/index.d.ts +0 -0
  1593. package/dist-extensions/index.d.ts.map +0 -0
  1594. package/dist-extensions/index.mjs +0 -0
  1595. package/dist-extensions/index.mjs.map +0 -0
  1596. package/dist-extensions/src/ClassRegistry.d.ts +0 -0
  1597. package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
  1598. package/dist-extensions/src/Collection.d.ts +0 -0
  1599. package/dist-extensions/src/Collection.d.ts.map +0 -0
  1600. package/dist-extensions/src/CommonMethods.d.ts +0 -0
  1601. package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
  1602. package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
  1603. package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
  1604. package/dist-extensions/src/Intersection.d.ts +0 -0
  1605. package/dist-extensions/src/Intersection.d.ts.map +0 -0
  1606. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  1607. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  1608. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
  1609. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  1610. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  1611. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  1612. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  1613. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  1614. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  1615. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  1616. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  1617. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  1618. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  1619. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  1620. package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
  1621. package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
  1622. package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
  1623. package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
  1624. package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
  1625. package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
  1626. package/dist-extensions/src/Observable.d.ts +0 -0
  1627. package/dist-extensions/src/Observable.d.ts.map +0 -0
  1628. package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
  1629. package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
  1630. package/dist-extensions/src/Pattern/index.d.ts +0 -0
  1631. package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
  1632. package/dist-extensions/src/Pattern/types.d.ts +0 -0
  1633. package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
  1634. package/dist-extensions/src/Point.d.ts +0 -0
  1635. package/dist-extensions/src/Point.d.ts.map +0 -0
  1636. package/dist-extensions/src/Shadow.d.ts +0 -0
  1637. package/dist-extensions/src/Shadow.d.ts.map +0 -0
  1638. package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
  1639. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
  1640. package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
  1641. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
  1642. package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
  1643. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
  1644. package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
  1645. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
  1646. package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
  1647. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
  1648. package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
  1649. package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
  1650. package/dist-extensions/src/cache.d.ts +0 -0
  1651. package/dist-extensions/src/cache.d.ts.map +0 -0
  1652. package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
  1653. package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
  1654. package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
  1655. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
  1656. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  1657. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  1658. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  1659. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  1660. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
  1661. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
  1662. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
  1663. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
  1664. package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
  1665. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
  1666. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
  1667. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  1668. package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
  1669. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
  1670. package/dist-extensions/src/color/Color.d.ts +0 -0
  1671. package/dist-extensions/src/color/Color.d.ts.map +0 -0
  1672. package/dist-extensions/src/color/color_map.d.ts +0 -0
  1673. package/dist-extensions/src/color/color_map.d.ts.map +0 -0
  1674. package/dist-extensions/src/color/constants.d.ts +0 -0
  1675. package/dist-extensions/src/color/constants.d.ts.map +0 -0
  1676. package/dist-extensions/src/color/typedefs.d.ts +0 -0
  1677. package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
  1678. package/dist-extensions/src/color/util.d.ts +0 -0
  1679. package/dist-extensions/src/color/util.d.ts.map +0 -0
  1680. package/dist-extensions/src/config.d.ts +0 -0
  1681. package/dist-extensions/src/config.d.ts.map +0 -0
  1682. package/dist-extensions/src/constants.d.ts +0 -0
  1683. package/dist-extensions/src/constants.d.ts.map +0 -0
  1684. package/dist-extensions/src/controls/Control.d.ts +0 -0
  1685. package/dist-extensions/src/controls/Control.d.ts.map +0 -0
  1686. package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
  1687. package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
  1688. package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
  1689. package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
  1690. package/dist-extensions/src/controls/commonControls.d.ts +0 -0
  1691. package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
  1692. package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
  1693. package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
  1694. package/dist-extensions/src/controls/drag.d.ts +0 -0
  1695. package/dist-extensions/src/controls/drag.d.ts.map +0 -0
  1696. package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
  1697. package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
  1698. package/dist-extensions/src/controls/index.d.ts +0 -0
  1699. package/dist-extensions/src/controls/index.d.ts.map +0 -0
  1700. package/dist-extensions/src/controls/pathControl.d.ts +0 -0
  1701. package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
  1702. package/dist-extensions/src/controls/polyControl.d.ts +0 -0
  1703. package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
  1704. package/dist-extensions/src/controls/rotate.d.ts +0 -0
  1705. package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
  1706. package/dist-extensions/src/controls/scale.d.ts +0 -0
  1707. package/dist-extensions/src/controls/scale.d.ts.map +0 -0
  1708. package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
  1709. package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
  1710. package/dist-extensions/src/controls/skew.d.ts +0 -0
  1711. package/dist-extensions/src/controls/skew.d.ts.map +0 -0
  1712. package/dist-extensions/src/controls/util.d.ts +0 -0
  1713. package/dist-extensions/src/controls/util.d.ts.map +0 -0
  1714. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
  1715. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  1716. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  1717. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  1718. package/dist-extensions/src/env/browser.d.ts +0 -0
  1719. package/dist-extensions/src/env/browser.d.ts.map +0 -0
  1720. package/dist-extensions/src/env/index.d.ts +0 -0
  1721. package/dist-extensions/src/env/index.d.ts.map +0 -0
  1722. package/dist-extensions/src/env/types.d.ts +0 -0
  1723. package/dist-extensions/src/env/types.d.ts.map +0 -0
  1724. package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
  1725. package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
  1726. package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
  1727. package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
  1728. package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
  1729. package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
  1730. package/dist-extensions/src/filters/Blur.d.ts +0 -0
  1731. package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
  1732. package/dist-extensions/src/filters/Brightness.d.ts +0 -0
  1733. package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
  1734. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  1735. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  1736. package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
  1737. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
  1738. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
  1739. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  1740. package/dist-extensions/src/filters/Composed.d.ts +0 -0
  1741. package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
  1742. package/dist-extensions/src/filters/Contrast.d.ts +0 -0
  1743. package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
  1744. package/dist-extensions/src/filters/Convolute.d.ts +0 -0
  1745. package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
  1746. package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
  1747. package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
  1748. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
  1749. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  1750. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  1751. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  1752. package/dist-extensions/src/filters/Gamma.d.ts +0 -0
  1753. package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
  1754. package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
  1755. package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
  1756. package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
  1757. package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
  1758. package/dist-extensions/src/filters/Invert.d.ts +0 -0
  1759. package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
  1760. package/dist-extensions/src/filters/Noise.d.ts +0 -0
  1761. package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
  1762. package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
  1763. package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
  1764. package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
  1765. package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
  1766. package/dist-extensions/src/filters/Resize.d.ts +0 -0
  1767. package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
  1768. package/dist-extensions/src/filters/Saturation.d.ts +0 -0
  1769. package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
  1770. package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
  1771. package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
  1772. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
  1773. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  1774. package/dist-extensions/src/filters/filters.d.ts +0 -0
  1775. package/dist-extensions/src/filters/filters.d.ts.map +0 -0
  1776. package/dist-extensions/src/filters/index.d.ts +0 -0
  1777. package/dist-extensions/src/filters/index.d.ts.map +0 -0
  1778. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
  1779. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
  1780. package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
  1781. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
  1782. package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
  1783. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
  1784. package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
  1785. package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
  1786. package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
  1787. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
  1788. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
  1789. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  1790. package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
  1791. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
  1792. package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
  1793. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
  1794. package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
  1795. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
  1796. package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
  1797. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
  1798. package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
  1799. package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
  1800. package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
  1801. package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
  1802. package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
  1803. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
  1804. package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
  1805. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
  1806. package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
  1807. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
  1808. package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
  1809. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
  1810. package/dist-extensions/src/filters/typedefs.d.ts +0 -0
  1811. package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
  1812. package/dist-extensions/src/filters/utils.d.ts +0 -0
  1813. package/dist-extensions/src/filters/utils.d.ts.map +0 -0
  1814. package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
  1815. package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
  1816. package/dist-extensions/src/gradient/constants.d.ts +0 -0
  1817. package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
  1818. package/dist-extensions/src/gradient/index.d.ts +0 -0
  1819. package/dist-extensions/src/gradient/index.d.ts.map +0 -0
  1820. package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
  1821. package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
  1822. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
  1823. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  1824. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
  1825. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
  1826. package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
  1827. package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
  1828. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
  1829. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
  1830. package/dist-extensions/src/parser/attributes.d.ts +0 -0
  1831. package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
  1832. package/dist-extensions/src/parser/constants.d.ts +0 -0
  1833. package/dist-extensions/src/parser/constants.d.ts.map +0 -0
  1834. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
  1835. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  1836. package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
  1837. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
  1838. package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
  1839. package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
  1840. package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
  1841. package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
  1842. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
  1843. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  1844. package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
  1845. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
  1846. package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
  1847. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
  1848. package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
  1849. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
  1850. package/dist-extensions/src/parser/getTagName.d.ts +0 -0
  1851. package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
  1852. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
  1853. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  1854. package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
  1855. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
  1856. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
  1857. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
  1858. package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
  1859. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
  1860. package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
  1861. package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
  1862. package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
  1863. package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
  1864. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
  1865. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
  1866. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
  1867. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
  1868. package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
  1869. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
  1870. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
  1871. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
  1872. package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
  1873. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
  1874. package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
  1875. package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
  1876. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
  1877. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
  1878. package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
  1879. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
  1880. package/dist-extensions/src/parser/percent.d.ts +0 -0
  1881. package/dist-extensions/src/parser/percent.d.ts.map +0 -0
  1882. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  1883. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  1884. package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
  1885. package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
  1886. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
  1887. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  1888. package/dist-extensions/src/parser/typedefs.d.ts +0 -0
  1889. package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
  1890. package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
  1891. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
  1892. package/dist-extensions/src/shapes/Circle.d.ts +0 -0
  1893. package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
  1894. package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
  1895. package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
  1896. package/dist-extensions/src/shapes/Group.d.ts +0 -0
  1897. package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
  1898. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1899. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1900. package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
  1901. package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
  1902. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1903. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
  1904. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1905. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1906. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1907. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1908. package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
  1909. package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
  1910. package/dist-extensions/src/shapes/Image.d.ts +0 -0
  1911. package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
  1912. package/dist-extensions/src/shapes/Line.d.ts +0 -0
  1913. package/dist-extensions/src/shapes/Line.d.ts.map +0 -0
  1914. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
  1915. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1916. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1917. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1918. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1919. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1920. package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
  1921. package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
  1922. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1923. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1924. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
  1925. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1926. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1927. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1928. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1929. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1930. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1931. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1932. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1933. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1934. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1935. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1936. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1937. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1938. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1939. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1940. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1941. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1942. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1943. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1944. package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
  1945. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
  1946. package/dist-extensions/src/shapes/Path.d.ts +0 -0
  1947. package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
  1948. package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
  1949. package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
  1950. package/dist-extensions/src/shapes/Polyline.d.ts +0 -0
  1951. package/dist-extensions/src/shapes/Polyline.d.ts.map +0 -0
  1952. package/dist-extensions/src/shapes/Rect.d.ts +0 -0
  1953. package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
  1954. package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
  1955. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
  1956. package/dist-extensions/src/shapes/Text/Text.d.ts +1 -0
  1957. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  1958. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1959. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1960. package/dist-extensions/src/shapes/Text/constants.d.ts +0 -0
  1961. package/dist-extensions/src/shapes/Text/constants.d.ts.map +0 -0
  1962. package/dist-extensions/src/shapes/Textbox.d.ts +20 -0
  1963. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  1964. package/dist-extensions/src/shapes/Triangle.d.ts +0 -0
  1965. package/dist-extensions/src/shapes/Triangle.d.ts.map +0 -0
  1966. package/dist-extensions/src/text/browserLines.d.ts +7 -2
  1967. package/dist-extensions/src/text/browserLines.d.ts.map +1 -1
  1968. package/dist-extensions/src/text/ellipsis.d.ts +0 -0
  1969. package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
  1970. package/dist-extensions/src/text/hitTest.d.ts +0 -0
  1971. package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
  1972. package/dist-extensions/src/text/layout.d.ts +0 -0
  1973. package/dist-extensions/src/text/layout.d.ts.map +0 -0
  1974. package/dist-extensions/src/text/measure.d.ts +0 -0
  1975. package/dist-extensions/src/text/measure.d.ts.map +0 -0
  1976. package/dist-extensions/src/text/overlayEditor.d.ts +1 -0
  1977. package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
  1978. package/dist-extensions/src/text/unicode.d.ts +0 -0
  1979. package/dist-extensions/src/text/unicode.d.ts.map +0 -0
  1980. package/dist-extensions/src/typedefs.d.ts +0 -0
  1981. package/dist-extensions/src/typedefs.d.ts.map +0 -0
  1982. package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
  1983. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
  1984. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1985. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1986. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
  1987. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1988. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
  1989. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1990. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
  1991. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1992. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
  1993. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1994. package/dist-extensions/src/util/animation/animate.d.ts +0 -0
  1995. package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
  1996. package/dist-extensions/src/util/animation/easing.d.ts +0 -0
  1997. package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
  1998. package/dist-extensions/src/util/animation/index.d.ts +0 -0
  1999. package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
  2000. package/dist-extensions/src/util/animation/types.d.ts +0 -0
  2001. package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
  2002. package/dist-extensions/src/util/applyMixins.d.ts +0 -0
  2003. package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
  2004. package/dist-extensions/src/util/dom_event.d.ts +0 -0
  2005. package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
  2006. package/dist-extensions/src/util/dom_misc.d.ts +0 -0
  2007. package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
  2008. package/dist-extensions/src/util/index.d.ts +0 -0
  2009. package/dist-extensions/src/util/index.d.ts.map +0 -0
  2010. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
  2011. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  2012. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  2013. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  2014. package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
  2015. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
  2016. package/dist-extensions/src/util/internals/console.d.ts +0 -0
  2017. package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
  2018. package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
  2019. package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
  2020. package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
  2021. package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
  2022. package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
  2023. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
  2024. package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
  2025. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
  2026. package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
  2027. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
  2028. package/dist-extensions/src/util/internals/uid.d.ts +0 -0
  2029. package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
  2030. package/dist-extensions/src/util/lang_string.d.ts +0 -0
  2031. package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
  2032. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  2033. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  2034. package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
  2035. package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
  2036. package/dist-extensions/src/util/misc/cornerRadius.d.ts +0 -0
  2037. package/dist-extensions/src/util/misc/cornerRadius.d.ts.map +0 -0
  2038. package/dist-extensions/src/util/misc/cos.d.ts +0 -0
  2039. package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
  2040. package/dist-extensions/src/util/misc/dom.d.ts +0 -0
  2041. package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
  2042. package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
  2043. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
  2044. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
  2045. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
  2046. package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
  2047. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
  2048. package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
  2049. package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
  2050. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
  2051. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  2052. package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
  2053. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
  2054. package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
  2055. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
  2056. package/dist-extensions/src/util/misc/pick.d.ts +0 -0
  2057. package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
  2058. package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
  2059. package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
  2060. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  2061. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  2062. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  2063. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  2064. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  2065. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  2066. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
  2067. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
  2068. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
  2069. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
  2070. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  2071. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  2072. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
  2073. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
  2074. package/dist-extensions/src/util/misc/sin.d.ts +0 -0
  2075. package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
  2076. package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
  2077. package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
  2078. package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
  2079. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
  2080. package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
  2081. package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
  2082. package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
  2083. package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
  2084. package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
  2085. package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
  2086. package/dist-extensions/src/util/path/index.d.ts +0 -0
  2087. package/dist-extensions/src/util/path/index.d.ts.map +0 -0
  2088. package/dist-extensions/src/util/path/regex.d.ts +0 -0
  2089. package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
  2090. package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
  2091. package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
  2092. package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
  2093. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
  2094. package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
  2095. package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -0
  2096. package/docs/fabric-konva-gap-analysis.md +0 -0
  2097. package/docs/konva-text-behavior-spec.md +0 -0
  2098. package/docs/text-engine-design.md +0 -0
  2099. package/eslint.config.mjs +0 -0
  2100. package/examples/overlay-edit.html +416 -416
  2101. package/extensions/README.MD +0 -0
  2102. package/extensions/aligning_guidelines/README.MD +0 -0
  2103. package/extensions/aligning_guidelines/constant.ts +0 -0
  2104. package/extensions/aligning_guidelines/index.ts +0 -0
  2105. package/extensions/aligning_guidelines/typedefs.ts +0 -0
  2106. package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
  2107. package/extensions/aligning_guidelines/util/basic.ts +0 -0
  2108. package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
  2109. package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
  2110. package/extensions/aligning_guidelines/util/draw.ts +0 -0
  2111. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
  2112. package/extensions/data_updaters/README.md +0 -0
  2113. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
  2114. package/extensions/data_updaters/gradient/index.spec.ts +0 -0
  2115. package/extensions/data_updaters/gradient/index.ts +0 -0
  2116. package/extensions/data_updaters/origins/README.md +0 -0
  2117. package/extensions/data_updaters/origins/index.spec.ts +0 -0
  2118. package/extensions/data_updaters/origins/index.ts +0 -0
  2119. package/extensions/index.ts +0 -0
  2120. package/fabric.ts +182 -182
  2121. package/index.node.ts +0 -0
  2122. package/index.ts +0 -0
  2123. package/lib/aligning_guidelines.js +0 -0
  2124. package/lib/centering_guidelines.js +0 -0
  2125. package/lib/event.js +0 -0
  2126. package/package.json +164 -164
  2127. package/playwright.config.ts +0 -0
  2128. package/playwright.setup.ts +0 -0
  2129. package/{fonts → public/fonts}/STV Bold.ttf +0 -0
  2130. package/{fonts → public/fonts}/STV Light.ttf +0 -0
  2131. package/{fonts → public/fonts}/STV Regular.ttf +0 -0
  2132. package/publish-next.js +0 -0
  2133. package/publish.js +0 -0
  2134. package/rollup.config.mjs +0 -0
  2135. package/rtl-debug.html +744 -744
  2136. package/scripts/bench-text.js +591 -591
  2137. package/scripts/build.mjs +0 -0
  2138. package/scripts/buildLock.mjs +0 -0
  2139. package/scripts/buildReporter.mjs +0 -0
  2140. package/scripts/buildStats.mjs +0 -0
  2141. package/scripts/dirname.mjs +0 -0
  2142. package/scripts/git.mjs +0 -0
  2143. package/scripts/index.mjs +0 -0
  2144. package/scripts/sandbox.mjs +0 -0
  2145. package/src/ClassRegistry.spec.ts +0 -0
  2146. package/src/ClassRegistry.ts +0 -0
  2147. package/src/Collection.spec.ts +0 -0
  2148. package/src/Collection.ts +0 -0
  2149. package/src/CommonMethods.ts +0 -0
  2150. package/src/EventTypeDefs.ts +0 -0
  2151. package/src/Intersection.spec.ts +0 -0
  2152. package/src/Intersection.ts +0 -0
  2153. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
  2154. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
  2155. package/src/LayoutManager/LayoutManager.spec.ts +0 -0
  2156. package/src/LayoutManager/LayoutManager.ts +0 -0
  2157. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
  2158. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
  2159. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
  2160. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
  2161. package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
  2162. package/src/LayoutManager/README.md +0 -0
  2163. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
  2164. package/src/LayoutManager/constants.ts +0 -0
  2165. package/src/LayoutManager/index.ts +0 -0
  2166. package/src/LayoutManager/types.ts +0 -0
  2167. package/src/Observable.spec.ts +0 -0
  2168. package/src/Observable.ts +0 -0
  2169. package/src/Pattern/Pattern.spec.ts +0 -0
  2170. package/src/Pattern/Pattern.ts +0 -0
  2171. package/src/Pattern/index.ts +0 -0
  2172. package/src/Pattern/types.ts +0 -0
  2173. package/src/Point.spec.ts +0 -0
  2174. package/src/Point.ts +0 -0
  2175. package/src/Shadow.spec.ts +0 -0
  2176. package/src/Shadow.ts +0 -0
  2177. package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
  2178. package/src/brushes/BaseBrush.spec.ts +0 -0
  2179. package/src/brushes/BaseBrush.ts +0 -0
  2180. package/src/brushes/CircleBrush.test.ts +0 -0
  2181. package/src/brushes/CircleBrush.ts +0 -0
  2182. package/src/brushes/PatternBrush.ts +0 -0
  2183. package/src/brushes/PencilBrush.spec.ts +0 -0
  2184. package/src/brushes/PencilBrush.ts +0 -0
  2185. package/src/brushes/SprayBrush.ts +0 -0
  2186. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
  2187. package/src/brushes/typedefs.ts +0 -0
  2188. package/src/cache.spec.ts +0 -0
  2189. package/src/cache.ts +0 -0
  2190. package/src/canvas/Canvas-dispose.spec.ts +0 -0
  2191. package/src/canvas/Canvas-events.spec.ts +0 -0
  2192. package/src/canvas/Canvas.spec.ts +0 -0
  2193. package/src/canvas/Canvas.ts +0 -0
  2194. package/src/canvas/CanvasOptions.ts +0 -0
  2195. package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
  2196. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
  2197. package/src/canvas/DOMManagers/util.spec.ts +0 -0
  2198. package/src/canvas/DOMManagers/util.ts +0 -0
  2199. package/src/canvas/SelectableCanvas.spec.ts +0 -0
  2200. package/src/canvas/SelectableCanvas.ts +0 -0
  2201. package/src/canvas/StaticCanvas.spec.ts +0 -0
  2202. package/src/canvas/StaticCanvas.ts +0 -0
  2203. package/src/canvas/StaticCanvasOptions.ts +0 -0
  2204. package/src/canvas/TextEditingManager.ts +0 -0
  2205. package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
  2206. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
  2207. package/src/canvas/__tests__/eventData.test.ts +0 -0
  2208. package/src/canvas/canvas_gestures.mixin.ts +0 -0
  2209. package/src/color/Color.ts +0 -0
  2210. package/src/color/color.test.ts +0 -0
  2211. package/src/color/color_map.ts +0 -0
  2212. package/src/color/constants.ts +0 -0
  2213. package/src/color/typedefs.ts +0 -0
  2214. package/src/color/util.ts +0 -0
  2215. package/src/config.ts +0 -0
  2216. package/src/constants.ts +0 -0
  2217. package/src/controls/Control-cursor.spec.ts +0 -0
  2218. package/src/controls/Control-handlers.spec.ts +0 -0
  2219. package/src/controls/Control.spec.ts +0 -0
  2220. package/src/controls/Control.ts +0 -0
  2221. package/src/controls/changeHeight.ts +0 -0
  2222. package/src/controls/changeWidth.test.ts +0 -0
  2223. package/src/controls/changeWidth.ts +0 -0
  2224. package/src/controls/commonControls.ts +0 -0
  2225. package/src/controls/controlRendering.ts +0 -0
  2226. package/src/controls/drag.ts +0 -0
  2227. package/src/controls/fireEvent.ts +0 -0
  2228. package/src/controls/index.ts +0 -0
  2229. package/src/controls/pathControl.spec.ts +0 -0
  2230. package/src/controls/pathControl.ts +0 -0
  2231. package/src/controls/polyControl.spec.ts +0 -0
  2232. package/src/controls/polyControl.ts +0 -0
  2233. package/src/controls/rotate.ts +0 -0
  2234. package/src/controls/scale.test.ts +0 -0
  2235. package/src/controls/scale.ts +0 -0
  2236. package/src/controls/scaleSkew.ts +0 -0
  2237. package/src/controls/skew.ts +0 -0
  2238. package/src/controls/util.ts +0 -0
  2239. package/src/controls/wrapWithFireEvent.ts +0 -0
  2240. package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
  2241. package/src/controls/wrapWithFixedAnchor.ts +0 -0
  2242. package/src/env/browser.ts +0 -0
  2243. package/src/env/env.spec.ts +0 -0
  2244. package/src/env/index.ts +0 -0
  2245. package/src/env/node.ts +0 -0
  2246. package/src/env/types.ts +0 -0
  2247. package/src/filters/BaseFilter.spec.ts +0 -0
  2248. package/src/filters/BaseFilter.ts +0 -0
  2249. package/src/filters/BlendColor.ts +0 -0
  2250. package/src/filters/BlendImage.ts +0 -0
  2251. package/src/filters/Blur.ts +0 -0
  2252. package/src/filters/Boilerplate.ts +0 -0
  2253. package/src/filters/Brightness.ts +0 -0
  2254. package/src/filters/Canvas2dFilterBackend.ts +0 -0
  2255. package/src/filters/ColorMatrix.spec.ts +0 -0
  2256. package/src/filters/ColorMatrix.ts +0 -0
  2257. package/src/filters/ColorMatrixFilters.ts +0 -0
  2258. package/src/filters/Composed.ts +0 -0
  2259. package/src/filters/Contrast.ts +0 -0
  2260. package/src/filters/Convolute.ts +0 -0
  2261. package/src/filters/FilterBackend.ts +0 -0
  2262. package/src/filters/GLProbes/GLProbe.ts +0 -0
  2263. package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
  2264. package/src/filters/GLProbes/WebGLProbe.ts +0 -0
  2265. package/src/filters/Gamma.ts +0 -0
  2266. package/src/filters/Grayscale.ts +0 -0
  2267. package/src/filters/HueRotation.ts +0 -0
  2268. package/src/filters/Invert.ts +0 -0
  2269. package/src/filters/Noise.ts +0 -0
  2270. package/src/filters/Pixelate.ts +0 -0
  2271. package/src/filters/RemoveColor.ts +0 -0
  2272. package/src/filters/Resize.ts +0 -0
  2273. package/src/filters/Saturation.ts +0 -0
  2274. package/src/filters/Vibrance.ts +0 -0
  2275. package/src/filters/WebGLFilterBackend.spec.ts +0 -0
  2276. package/src/filters/WebGLFilterBackend.ts +0 -0
  2277. package/src/filters/filters.ts +0 -0
  2278. package/src/filters/index.ts +0 -0
  2279. package/src/filters/shaders/baseFilter.ts +0 -0
  2280. package/src/filters/shaders/blendColor.ts +0 -0
  2281. package/src/filters/shaders/blendImage.ts +0 -0
  2282. package/src/filters/shaders/blur.ts +0 -0
  2283. package/src/filters/shaders/brightness.ts +0 -0
  2284. package/src/filters/shaders/colorMatrix.ts +0 -0
  2285. package/src/filters/shaders/constrast.ts +0 -0
  2286. package/src/filters/shaders/convolute.ts +0 -0
  2287. package/src/filters/shaders/gamma.ts +0 -0
  2288. package/src/filters/shaders/grayscale.ts +0 -0
  2289. package/src/filters/shaders/invert.ts +0 -0
  2290. package/src/filters/shaders/noise.ts +0 -0
  2291. package/src/filters/shaders/pixelate.ts +0 -0
  2292. package/src/filters/shaders/removeColor.ts +0 -0
  2293. package/src/filters/shaders/saturation.ts +0 -0
  2294. package/src/filters/shaders/vibrance.ts +0 -0
  2295. package/src/filters/typedefs.ts +0 -0
  2296. package/src/filters/utils.ts +0 -0
  2297. package/src/gradient/Gradient.spec.ts +0 -0
  2298. package/src/gradient/Gradient.ts +0 -0
  2299. package/src/gradient/constants.ts +0 -0
  2300. package/src/gradient/index.ts +0 -0
  2301. package/src/gradient/parser/misc.ts +0 -0
  2302. package/src/gradient/parser/parseColorStops.ts +0 -0
  2303. package/src/gradient/parser/parseCoords.ts +0 -0
  2304. package/src/gradient/typedefs.ts +0 -0
  2305. package/src/mixins/eraser_brush.mixin.ts +0 -0
  2306. package/src/parkinglot/canvas_animation.mixin.ts +0 -0
  2307. package/src/parkinglot/straighten.ts +0 -0
  2308. package/src/parser/applyViewboxTransform.spec.ts +0 -0
  2309. package/src/parser/applyViewboxTransform.ts +0 -0
  2310. package/src/parser/attributes.ts +0 -0
  2311. package/src/parser/constants.spec.ts +0 -0
  2312. package/src/parser/constants.ts +0 -0
  2313. package/src/parser/doesSomeParentMatch.ts +0 -0
  2314. package/src/parser/elementMatchesRule.ts +0 -0
  2315. package/src/parser/elements_parser.ts +0 -0
  2316. package/src/parser/getCSSRules.spec.ts +0 -0
  2317. package/src/parser/getCSSRules.ts +0 -0
  2318. package/src/parser/getGlobalStylesForElement.ts +0 -0
  2319. package/src/parser/getGradientDefs.ts +0 -0
  2320. package/src/parser/getMultipleNodes.ts +0 -0
  2321. package/src/parser/getSvgRegex.ts +0 -0
  2322. package/src/parser/getTagName.ts +0 -0
  2323. package/src/parser/hasInvalidAncestor.ts +0 -0
  2324. package/src/parser/loadSVGFromString.test.ts +0 -0
  2325. package/src/parser/loadSVGFromString.ts +0 -0
  2326. package/src/parser/loadSVGFromURL.ts +0 -0
  2327. package/src/parser/normalizeAttr.ts +0 -0
  2328. package/src/parser/normalizeValue.ts +0 -0
  2329. package/src/parser/parseAttributes.ts +0 -0
  2330. package/src/parser/parseFontDeclaration.ts +0 -0
  2331. package/src/parser/parsePointsAttribute.ts +0 -0
  2332. package/src/parser/parseSVGDocument.ts +0 -0
  2333. package/src/parser/parseStyleAttribute.ts +0 -0
  2334. package/src/parser/parseStyleObject.ts +0 -0
  2335. package/src/parser/parseStyleString.ts +0 -0
  2336. package/src/parser/parseTransformAttribute.ts +0 -0
  2337. package/src/parser/parseUseDirectives.test.ts +0 -0
  2338. package/src/parser/parseUseDirectives.ts +0 -0
  2339. package/src/parser/parser.spec.ts +0 -0
  2340. package/src/parser/percent.ts +0 -0
  2341. package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
  2342. package/src/parser/selectorMatches.ts +0 -0
  2343. package/src/parser/setStrokeFillOpacity.ts +0 -0
  2344. package/src/parser/typedefs.ts +0 -0
  2345. package/src/shapes/ActiveSelection.spec.ts +0 -0
  2346. package/src/shapes/ActiveSelection.ts +0 -0
  2347. package/src/shapes/Circle.spec.ts +0 -0
  2348. package/src/shapes/Circle.ts +0 -0
  2349. package/src/shapes/Ellipse.spec.ts +0 -0
  2350. package/src/shapes/Ellipse.ts +0 -0
  2351. package/src/shapes/Group.spec.ts +0 -0
  2352. package/src/shapes/Group.ts +0 -0
  2353. package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
  2354. package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
  2355. package/src/shapes/IText/IText.test.ts +0 -0
  2356. package/src/shapes/IText/IText.ts +846 -846
  2357. package/src/shapes/IText/ITextBehavior.test.ts +0 -0
  2358. package/src/shapes/IText/ITextBehavior.ts +1263 -1188
  2359. package/src/shapes/IText/ITextClickBehavior.ts +254 -254
  2360. package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
  2361. package/src/shapes/IText/ITextKeyBehavior.ts +732 -732
  2362. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
  2363. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
  2364. package/src/shapes/IText/constants.ts +0 -0
  2365. package/src/shapes/Image-filters.spec.ts +0 -0
  2366. package/src/shapes/Image.spec.ts +0 -0
  2367. package/src/shapes/Image.ts +0 -0
  2368. package/src/shapes/Line.spec.ts +0 -0
  2369. package/src/shapes/Line.ts +0 -0
  2370. package/src/shapes/Object/FabricObject.spec.ts +0 -0
  2371. package/src/shapes/Object/FabricObject.ts +0 -0
  2372. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
  2373. package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
  2374. package/src/shapes/Object/InteractiveObject.ts +0 -0
  2375. package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
  2376. package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
  2377. package/src/shapes/Object/Object.spec.ts +0 -0
  2378. package/src/shapes/Object/Object.ts +0 -0
  2379. package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
  2380. package/src/shapes/Object/ObjectGeometry.ts +0 -0
  2381. package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
  2382. package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
  2383. package/src/shapes/Object/StackedObject.spec.ts +0 -0
  2384. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
  2385. package/src/shapes/Object/defaultValues.ts +0 -0
  2386. package/src/shapes/Object/types/BaseProps.ts +0 -0
  2387. package/src/shapes/Object/types/BorderProps.ts +0 -0
  2388. package/src/shapes/Object/types/ControlProps.ts +0 -0
  2389. package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
  2390. package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
  2391. package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
  2392. package/src/shapes/Object/types/ObjectProps.ts +0 -0
  2393. package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
  2394. package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
  2395. package/src/shapes/Object/types/index.ts +0 -0
  2396. package/src/shapes/Path.spec.ts +0 -0
  2397. package/src/shapes/Path.ts +0 -0
  2398. package/src/shapes/Polygon.spec.ts +0 -0
  2399. package/src/shapes/Polygon.ts +0 -0
  2400. package/src/shapes/Polyline.spec.ts +0 -0
  2401. package/src/shapes/Polyline.ts +0 -0
  2402. package/src/shapes/Rect.spec.ts +0 -0
  2403. package/src/shapes/Rect.ts +0 -0
  2404. package/src/shapes/Text/StyledText.spec.ts +0 -0
  2405. package/src/shapes/Text/StyledText.ts +0 -0
  2406. package/src/shapes/Text/Text.spec.ts +0 -0
  2407. package/src/shapes/Text/Text.ts +206 -139
  2408. package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
  2409. package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
  2410. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
  2411. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
  2412. package/src/shapes/Text/constants.ts +135 -135
  2413. package/src/shapes/Textbox.spec.ts +0 -0
  2414. package/src/shapes/Textbox.ts +581 -182
  2415. package/src/shapes/Triangle.spec.ts +0 -0
  2416. package/src/shapes/Triangle.ts +0 -0
  2417. package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
  2418. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
  2419. package/src/text/browserLines.ts +266 -234
  2420. package/src/text/ellipsis.ts +516 -516
  2421. package/src/text/hitTest.ts +623 -623
  2422. package/src/text/layout.ts +586 -586
  2423. package/src/text/measure.ts +626 -626
  2424. package/src/text/overlayEditor.ts +1108 -1047
  2425. package/src/text/unicode.ts +454 -454
  2426. package/src/typedefs.ts +0 -0
  2427. package/src/util/__snapshots__/index.spec.ts.snap +0 -0
  2428. package/src/util/animation/AnimationBase.ts +0 -0
  2429. package/src/util/animation/AnimationFrameProvider.ts +0 -0
  2430. package/src/util/animation/AnimationRegistry.ts +0 -0
  2431. package/src/util/animation/ArrayAnimation.ts +0 -0
  2432. package/src/util/animation/ColorAnimation.ts +0 -0
  2433. package/src/util/animation/ValueAnimation.ts +0 -0
  2434. package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
  2435. package/src/util/animation/animate.ts +0 -0
  2436. package/src/util/animation/animations.spec.ts +0 -0
  2437. package/src/util/animation/easing.ts +0 -0
  2438. package/src/util/animation/index.ts +0 -0
  2439. package/src/util/animation/types.ts +0 -0
  2440. package/src/util/applyMixins.ts +0 -0
  2441. package/src/util/dom_event.spec.ts +0 -0
  2442. package/src/util/dom_event.ts +0 -0
  2443. package/src/util/dom_misc.ts +0 -0
  2444. package/src/util/index.spec.ts +0 -0
  2445. package/src/util/index.ts +0 -0
  2446. package/src/util/internals/applyCanvasTransform.ts +0 -0
  2447. package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
  2448. package/src/util/internals/cleanupSvgAttribute.ts +0 -0
  2449. package/src/util/internals/cloneStyles.spec.ts +0 -0
  2450. package/src/util/internals/cloneStyles.ts +0 -0
  2451. package/src/util/internals/console.ts +0 -0
  2452. package/src/util/internals/dom_style.spec.ts +0 -0
  2453. package/src/util/internals/dom_style.ts +0 -0
  2454. package/src/util/internals/findRight.ts +0 -0
  2455. package/src/util/internals/getRandomInt.test.ts +0 -0
  2456. package/src/util/internals/getRandomInt.ts +0 -0
  2457. package/src/util/internals/ifNaN.ts +0 -0
  2458. package/src/util/internals/removeFromArray.spec.ts +0 -0
  2459. package/src/util/internals/removeFromArray.ts +0 -0
  2460. package/src/util/internals/uid.ts +0 -0
  2461. package/src/util/lang_string.spec.ts +0 -0
  2462. package/src/util/lang_string.ts +0 -0
  2463. package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
  2464. package/src/util/misc/boundingBoxFromPoints.ts +0 -0
  2465. package/src/util/misc/capValue.spec.ts +0 -0
  2466. package/src/util/misc/capValue.ts +0 -0
  2467. package/src/util/misc/cornerRadius.spec.ts +0 -0
  2468. package/src/util/misc/cornerRadius.ts +0 -0
  2469. package/src/util/misc/cos.spec.ts +0 -0
  2470. package/src/util/misc/cos.ts +0 -0
  2471. package/src/util/misc/dom.spec.ts +0 -0
  2472. package/src/util/misc/dom.ts +0 -0
  2473. package/src/util/misc/findScaleTo.spec.ts +0 -0
  2474. package/src/util/misc/findScaleTo.ts +0 -0
  2475. package/src/util/misc/groupSVGElements.spec.ts +0 -0
  2476. package/src/util/misc/groupSVGElements.ts +0 -0
  2477. package/src/util/misc/isTransparent.ts +0 -0
  2478. package/src/util/misc/matrix.spec.ts +0 -0
  2479. package/src/util/misc/matrix.ts +0 -0
  2480. package/src/util/misc/mergeClipPaths.spec.ts +0 -0
  2481. package/src/util/misc/mergeClipPaths.ts +0 -0
  2482. package/src/util/misc/objectEnlive.spec.ts +0 -0
  2483. package/src/util/misc/objectEnlive.ts +0 -0
  2484. package/src/util/misc/objectTransforms.spec.ts +0 -0
  2485. package/src/util/misc/objectTransforms.ts +0 -0
  2486. package/src/util/misc/pick.spec.ts +0 -0
  2487. package/src/util/misc/pick.ts +0 -0
  2488. package/src/util/misc/planeChange.spec.ts +0 -0
  2489. package/src/util/misc/planeChange.ts +0 -0
  2490. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
  2491. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
  2492. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
  2493. package/src/util/misc/projectStroke/index.ts +0 -0
  2494. package/src/util/misc/projectStroke/types.ts +0 -0
  2495. package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
  2496. package/src/util/misc/radiansDegreesConversion.ts +0 -0
  2497. package/src/util/misc/resolveOrigin.ts +0 -0
  2498. package/src/util/misc/sin.ts +0 -0
  2499. package/src/util/misc/svgExport.ts +0 -0
  2500. package/src/util/misc/svgParsing.spec.ts +0 -0
  2501. package/src/util/misc/svgParsing.ts +0 -0
  2502. package/src/util/misc/textStyles.ts +0 -0
  2503. package/src/util/misc/toFixed.spec.ts +0 -0
  2504. package/src/util/misc/toFixed.ts +0 -0
  2505. package/src/util/misc/vectors.spec.ts +0 -0
  2506. package/src/util/misc/vectors.ts +0 -0
  2507. package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
  2508. package/src/util/path/index.spec.ts +0 -0
  2509. package/src/util/path/index.ts +0 -0
  2510. package/src/util/path/regex.ts +0 -0
  2511. package/src/util/path/typechecks.ts +0 -0
  2512. package/src/util/path/typedefs.ts +0 -0
  2513. package/src/util/transform_matrix_removal.ts +0 -0
  2514. package/src/util/typeAssertions.spec.ts +0 -0
  2515. package/src/util/typeAssertions.ts +0 -0
  2516. package/tsconfig-extensions.json +0 -0
  2517. package/tsconfig.json +0 -0
  2518. package/tsconfig.spec.json +0 -0
  2519. package/typedoc.config.json +0 -0
  2520. package/vitest.config.ts +0 -0
  2521. package/vitest.d.ts +0 -0
  2522. package/vitest.env.d.ts +0 -0
  2523. package/vitest.extend.ts +0 -0
  2524. package/vitest.setup.ts +0 -0
  2525. package/.playwright-mcp/after-justify-applied.png +0 -0
  2526. package/.playwright-mcp/after-justify-click.png +0 -0
  2527. package/.playwright-mcp/initial-state.png +0 -0
  2528. package/.playwright-mcp/justify-fixed-final.png +0 -0
  2529. package/45.6875Textbox.ts +0 -0
  2530. package/dist/src/text/examples/arabicTextExample.d.ts +0 -60
  2531. package/dist/src/text/examples/arabicTextExample.d.ts.map +0 -1
  2532. package/dist/src/text/scriptUtils.d.ts +0 -142
  2533. package/dist/src/text/scriptUtils.d.ts.map +0 -1
  2534. package/dist/src/text/scriptUtils.min.mjs +0 -2
  2535. package/dist/src/text/scriptUtils.min.mjs.map +0 -1
  2536. package/dist/src/text/scriptUtils.mjs +0 -212
  2537. package/dist/src/text/scriptUtils.mjs.map +0 -1
  2538. package/dist-extensions/src/shapes/CustomLine.d.ts +0 -10
  2539. package/dist-extensions/src/shapes/CustomLine.d.ts.map +0 -1
  2540. package/dist-extensions/src/text/scriptUtils.d.ts +0 -142
  2541. package/dist-extensions/src/text/scriptUtils.d.ts.map +0 -1
  2542. package/fabric-test-editor.html +0 -3552
  2543. package/fabric-test2.html +0 -647
@@ -1 +1 @@
1
- {"version":3,"file":"Textbox.mjs","sources":["../../../src/shapes/Textbox.ts"],"sourcesContent":["import type { TClassProperties, TOptions } from '../typedefs';\nimport { IText } from './IText/IText';\nimport { classRegistry } from '../ClassRegistry';\nimport { createTextboxDefaultControls } from '../controls/commonControls';\nimport { JUSTIFY, JUSTIFY_CENTER } from './Text/constants';\nimport type { TextStyleDeclaration } from './Text/StyledText';\nimport type { SerializedITextProps, ITextProps } from './IText/IText';\nimport type { ITextEvents } from './IText/ITextBehavior';\nimport type { TextLinesInfo } from './Text/Text';\nimport type { Control } from '../controls/Control';\nimport { fontLacksEnglishGlyphsCached } from '../text/measure';\nimport { layoutText } from '../text/layout';\n\n// @TODO: Many things here are configuration related and shouldn't be on the class nor prototype\n// regexes, list of properties that are not suppose to change by instances, magic consts.\n// this will be a separated effort\nexport const textboxDefaultValues: Partial<TClassProperties<Textbox>> = {\n minWidth: 20,\n dynamicMinWidth: 2,\n lockScalingFlip: true,\n noScaleCache: false,\n _wordJoiners: /[ \\t\\r]/,\n splitByGrapheme: false,\n};\n\nexport type GraphemeData = {\n wordsData: {\n word: string[];\n width: number;\n }[][];\n largestWordWidth: number;\n};\n\nexport type StyleMap = Record<string, { line: number; offset: number }>;\n\n// @TODO this is not complete\ninterface UniqueTextboxProps {\n minWidth: number;\n splitByGrapheme: boolean;\n dynamicMinWidth: number;\n _wordJoiners: RegExp;\n}\n\nexport interface SerializedTextboxProps\n extends SerializedITextProps,\n Pick<UniqueTextboxProps, 'minWidth' | 'splitByGrapheme'> {}\n\nexport interface TextboxProps extends ITextProps, UniqueTextboxProps {}\n\n/**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n */\nexport class Textbox<\n Props extends TOptions<TextboxProps> = Partial<TextboxProps>,\n SProps extends SerializedTextboxProps = SerializedTextboxProps,\n EventSpec extends ITextEvents = ITextEvents,\n >\n extends IText<Props, SProps, EventSpec>\n implements UniqueTextboxProps\n{\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n */\n declare minWidth: number;\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n */\n declare dynamicMinWidth: number;\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japanese\n * @type Boolean\n * @since 2.6.0\n */\n declare splitByGrapheme: boolean;\n\n declare _wordJoiners: RegExp;\n\n declare _styleMap: StyleMap;\n\n declare isWrapping: boolean;\n\n static type = 'Textbox';\n\n static textLayoutProperties = [...IText.textLayoutProperties, 'width'];\n\n static ownDefaults = textboxDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Textbox.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n */\n constructor(text: string, options?: Props) {\n super(text, { ...Textbox.ownDefaults, ...options } as Props);\n this.initializeEventListeners();\n }\n\n /**\n * Creates the default control object.\n * If you prefer to have on instance of controls shared among all objects\n * make this function return an empty object and add controls to the ownDefaults object\n */\n static createControls(): { controls: Record<string, Control> } {\n return { controls: createTextboxDefaultControls() };\n }\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions() {\n if (!this.initialized) {\n this.initialized = true;\n }\n \n // Prevent rapid recalculations during moves\n if ((this as any)._usingBrowserWrapping) {\n const now = Date.now();\n const lastCall = (this as any)._lastInitDimensionsTime || 0;\n const isRapidCall = now - lastCall < 100;\n const isDuringLoading = (this as any)._jsonLoading || !(this as any)._browserWrapInitialized;\n \n if (isRapidCall && !isDuringLoading) {\n return;\n }\n (this as any)._lastInitDimensionsTime = now;\n }\n \n // Skip if nothing changed\n const currentState = `${this.text}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n if ((this as any)._lastDimensionState === currentState && this._textLines && this._textLines.length > 0) {\n return;\n }\n (this as any)._lastDimensionState = currentState;\n \n // Use advanced layout if enabled\n if (this.enableAdvancedLayout) {\n return this.initDimensionsAdvanced();\n }\n \n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n const splitTextResult = this._splitText();\n this._styleMap = this._generateStyleMap(splitTextResult);\n \n // For browser wrapping, ensure _textLines is set from browser results\n if ((this as any)._usingBrowserWrapping && splitTextResult && splitTextResult.lines) {\n this._textLines = splitTextResult.lines.map(line => line.split(''));\n \n // Store justify measurements and browser height\n const justifyMeasurements = (splitTextResult as any).justifySpaceMeasurements;\n if (justifyMeasurements) {\n (this._styleMap as any).justifySpaceMeasurements = justifyMeasurements;\n }\n \n const actualHeight = (splitTextResult as any).actualBrowserHeight;\n if (actualHeight) {\n (this as any)._actualBrowserHeight = actualHeight;\n }\n }\n // Don't auto-resize width when using browser wrapping to prevent width increases during moves\n if (!((this as any)._usingBrowserWrapping) && this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\n \n // For browser wrapping fonts (like STV), ensure minimum width for new textboxes\n // since these fonts can't measure English characters properly\n if ((this as any)._usingBrowserWrapping && this.width < 50) {\n console.log(`🔤 BROWSER WRAP: Font ${this.fontFamily} has width ${this.width}px, setting to 300px for usability`);\n this.width = 300;\n }\n \n // Mark browser wrapping as initialized when complete\n if ((this as any)._usingBrowserWrapping) {\n (this as any)._browserWrapInitialized = true;\n }\n\n this.calcTextWidth();\n \n if (this.textAlign.includes(JUSTIFY)) {\n // For browser wrapping fonts, apply browser-calculated justify spaces\n if ((this as any)._usingBrowserWrapping) {\n console.log('🔤 BROWSER WRAP: Applying browser-calculated justify spaces');\n this._applyBrowserJustifySpaces();\n return;\n }\n \n // Don't apply justify alignment during drag operations to prevent snapping\n const now = Date.now();\n const lastDragTime = (this as any)._lastInitDimensionsTime || 0;\n const isDuringDrag = now - lastDragTime < 200; // 200ms window for drag detection\n \n if (isDuringDrag) {\n console.log('🔤 Skipping justify during drag operation to prevent snapping');\n return;\n }\n \n // For non-browser-wrapping fonts, use Fabric's justify system\n // once text is measured we need to make space fatter to make justified text.\n // Ensure __charBounds exists and fonts are ready before applying justify\n if (this.__charBounds && this.__charBounds.length > 0) {\n // Check if font is ready for accurate justify calculations\n const fontReady = this._isFontReady ? this._isFontReady() : true;\n if (fontReady) {\n this.enlargeSpaces();\n } else {\n console.warn('⚠️ Textbox: Font not ready for justify, deferring enlargeSpaces');\n // Defer justify calculation until font is ready\n this._scheduleJustifyAfterFontLoad();\n }\n } else {\n console.warn('⚠️ Textbox: __charBounds not ready for justify alignment, deferring enlargeSpaces');\n // Defer the justify calculation until the next frame\n setTimeout(() => {\n if (this.__charBounds && this.__charBounds.length > 0 && this.enlargeSpaces) {\n console.log('🔧 Applying deferred Textbox justify alignment');\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n }, 0);\n }\n }\n // Calculate height - use Fabric's calculation for proper text rendering space\n if ((this as any)._usingBrowserWrapping && this._textLines && this._textLines.length > 0) {\n const actualBrowserHeight = (this as any)._actualBrowserHeight;\n const oldHeight = this.height;\n // Use Fabric's height calculation since it knows how much space text rendering needs\n this.height = this.calcTextHeight();\n \n // Force canvas refresh and control update if height changed significantly\n if (Math.abs(this.height - oldHeight) > 1) {\n this.setCoords();\n this.canvas?.requestRenderAll();\n \n // DEBUG: Log exact positioning details\n console.log(`🎯 POSITIONING DEBUG:`);\n console.log(` Textbox height: ${this.height}px`);\n console.log(` Textbox top: ${this.top}px`);\n console.log(` Textbox left: ${this.left}px`);\n console.log(` Text lines: ${this._textLines?.length || 0}`);\n console.log(` Font size: ${this.fontSize}px`);\n console.log(` Line height: ${this.lineHeight || 1.16}`);\n console.log(` Calculated line height: ${this.fontSize * (this.lineHeight || 1.16)}px`);\n console.log(` _getTopOffset(): ${this._getTopOffset()}px`);\n console.log(` calcTextHeight(): ${this.calcTextHeight()}px`);\n console.log(` Browser height: ${actualBrowserHeight}px`);\n console.log(` Height difference: ${this.height - this.calcTextHeight()}px`);\n }\n } else {\n this.height = this.calcTextHeight();\n }\n\n // Double-check that justify was applied by checking space widths\n if (this.textAlign.includes('justify') && this.__charBounds) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) => /\\s/.test(this._textLines[i][j]));\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(space => Math.abs(space.width - firstSpaceWidth) > 0.1);\n }\n }\n });\n \n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again');\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n }, 10);\n }\n }\n\n /**\n * Schedule justify calculation after font loads (Textbox-specific)\n * @private\n */\n _scheduleJustifyAfterFontLoad(): void {\n if (typeof document === 'undefined' || !('fonts' in document)) {\n return;\n }\n \n // Only schedule if not already waiting\n if ((this as any)._fontJustifyScheduled) {\n return;\n }\n (this as any)._fontJustifyScheduled = true;\n \n const fontSpec = `${this.fontSize}px ${this.fontFamily}`;\n document.fonts.load(fontSpec).then(() => {\n (this as any)._fontJustifyScheduled = false;\n console.log('🔧 Textbox: Font loaded, applying justify alignment');\n \n // Re-run initDimensions to ensure proper justify calculation\n this.initDimensions();\n this.canvas?.requestRenderAll();\n }).catch(() => {\n (this as any)._fontJustifyScheduled = false;\n console.warn('⚠️ Textbox: Font loading failed, justify may be incorrect');\n });\n }\n\n /**\n * Advanced dimensions calculation using new layout engine\n * @private\n */\n initDimensionsAdvanced() {\n if (!this.initialized) {\n return;\n }\n \n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n this.dynamicMinWidth = 0;\n \n // Use new layout engine\n const layout = layoutText({\n text: this.text,\n width: this.width,\n height: this.height,\n wrap: this.wrap || 'word',\n align: (this as any)._mapTextAlignToAlign(this.textAlign),\n ellipsis: this.ellipsis || false,\n fontSize: this.fontSize,\n lineHeight: this.lineHeight,\n letterSpacing: this.letterSpacing || 0,\n charSpacing: this.charSpacing,\n direction: this.direction === 'inherit' ? 'ltr' : this.direction,\n fontFamily: this.fontFamily,\n fontStyle: this.fontStyle,\n fontWeight: this.fontWeight,\n verticalAlign: this.verticalAlign || 'top',\n });\n \n // Update dynamic minimum width based on layout\n if (layout.lines.length > 0) {\n const maxLineWidth = Math.max(...layout.lines.map(line => line.width));\n this.dynamicMinWidth = Math.max(this.minWidth, maxLineWidth);\n }\n \n // Adjust width if needed (preserving Textbox behavior)\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n // Re-layout with new width\n const newLayout = layoutText({\n ...(this as any)._getAdvancedLayoutOptions(),\n width: this.width,\n });\n this.height = newLayout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(newLayout);\n } else {\n this.height = layout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(layout);\n }\n \n // Generate style map for compatibility\n this._styleMap = this._generateStyleMapFromLayout(layout);\n this.dirty = true;\n }\n\n /**\n * Generate style map from new layout format\n * @private\n */\n _generateStyleMapFromLayout(layout: any): StyleMap {\n const map: StyleMap = {};\n let realLineCount = 0;\n let charCount = 0;\n\n layout.lines.forEach((line: any, i: number) => {\n if (line.text.includes('\\n') && i > 0) {\n realLineCount++;\n }\n \n map[i] = { line: realLineCount, offset: 0 };\n charCount += line.graphemes.length;\n \n if (i < layout.lines.length - 1) {\n charCount += 1; // newline character\n }\n });\n\n return map;\n }\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap(textInfo: TextLinesInfo): StyleMap {\n let realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0;\n const map: StyleMap = {};\n\n for (let i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n } else if (\n !this.splitByGrapheme &&\n this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) &&\n i > 0\n ) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n }\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas(property: keyof TextStyleDeclaration, lineIndex: number): boolean {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return super.styleHas(property, lineIndex);\n }\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles(lineIndex: number): boolean {\n if (!this.styles) {\n return true;\n }\n let offset = 0,\n nextLineIndex = lineIndex + 1,\n nextOffset: number,\n shouldLimit = false;\n const map = this._styleMap[lineIndex],\n mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n const obj =\n typeof lineIndex === 'undefined'\n ? this.styles\n : { line: this.styles[lineIndex] };\n for (const p1 in obj) {\n for (const p2 in obj[p1]) {\n const p2Number = parseInt(p2, 10);\n if (p2Number >= offset && (!shouldLimit || p2Number < nextOffset!)) {\n for (const p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n }\n\n /**\n * @protected\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined\n */\n _getStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n ): TextStyleDeclaration {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (!map) {\n return {};\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return super._getStyleDeclaration(lineIndex, charIndex);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n protected _setStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n style: object,\n ) {\n const map = this._styleMap[lineIndex];\n super._setStyleDeclaration(map.line, map.offset + charIndex, style);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n protected _deleteStyleDeclaration(lineIndex: number, charIndex: number) {\n const map = this._styleMap[lineIndex];\n super._deleteStyleDeclaration(map.line, map.offset + charIndex);\n }\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n protected _getLineStyle(lineIndex: number): boolean {\n const map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n }\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n protected _setLineStyle(lineIndex: number) {\n const map = this._styleMap[lineIndex];\n super._setLineStyle(map.line);\n }\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText(lines: string[], desiredWidth: number): string[][] {\n this.isWrapping = true;\n // extract all thewords and the widths to optimally wrap lines.\n const data = this.getGraphemeDataForRender(lines);\n const wrapped: string[][] = [];\n for (let i = 0; i < data.wordsData.length; i++) {\n wrapped.push(...this._wrapLine(i, desiredWidth, data));\n }\n this.isWrapping = false;\n return wrapped;\n }\n\n /**\n * For each line of text terminated by an hard line stop,\n * measure each word width and extract the largest word from all.\n * The returned words here are the one that at the end will be rendered.\n * @param {string[]} lines the lines we need to measure\n *\n */\n getGraphemeDataForRender(lines: string[]): GraphemeData {\n const splitByGrapheme = this.splitByGrapheme,\n infix = splitByGrapheme ? '' : ' ';\n\n let largestWordWidth = 0;\n\n const data = lines.map((line, lineIndex) => {\n let offset = 0;\n const wordsOrGraphemes = splitByGrapheme\n ? this.graphemeSplit(line)\n : this.wordSplit(line);\n\n if (wordsOrGraphemes.length === 0) {\n return [{ word: [], width: 0 }];\n }\n\n return wordsOrGraphemes.map((word: string) => {\n // if using splitByGrapheme words are already in graphemes.\n const graphemeArray = splitByGrapheme\n ? [word]\n : this.graphemeSplit(word);\n const width = this._measureWord(graphemeArray, lineIndex, offset);\n largestWordWidth = Math.max(width, largestWordWidth);\n offset += graphemeArray.length + infix.length;\n return { word: graphemeArray, width };\n });\n });\n\n return {\n wordsData: data,\n largestWordWidth,\n };\n }\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * It gets called when charBounds are not available yet.\n * Override if necessary\n * Use with {@link Textbox#wordSplit}\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n */\n _measureWord(word: string[], lineIndex: number, charOffset = 0): number {\n let width = 0,\n prevGrapheme;\n const skipLeft = true;\n for (let i = 0, len = word.length; i < len; i++) {\n const box = this._getGraphemeBox(\n word[i],\n lineIndex,\n i + charOffset,\n prevGrapheme,\n skipLeft,\n );\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n }\n\n /**\n * Override this method to customize word splitting\n * Use with {@link Textbox#_measureWord}\n * @param {string} value\n * @returns {string[]} array of words\n */\n wordSplit(value: string): string[] {\n return value.split(this._wordJoiners);\n }\n\n /**\n * Wraps a line of text using the width of the Textbox as desiredWidth\n * and leveraging the known width o words from GraphemeData\n * @private\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {GraphemeData} graphemeData an object containing all the lines' words width.\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine(\n lineIndex: number,\n desiredWidth: number,\n { largestWordWidth, wordsData }: GraphemeData,\n reservedSpace = 0,\n ): string[][] {\n const additionalSpace = this._getWidthOfCharSpacing(),\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n infix = splitByGrapheme ? '' : ' ';\n\n let lineWidth = 0,\n line: string[] = [],\n // spaces in different languages?\n offset = 0,\n infixWidth = 0,\n lineJustStarted = true;\n\n desiredWidth -= reservedSpace;\n\n const maxWidth = Math.max(\n desiredWidth,\n largestWordWidth,\n this.dynamicMinWidth,\n );\n // layout words\n const data = wordsData[lineIndex];\n offset = 0;\n let i;\n for (i = 0; i < data.length; i++) {\n const { word, width: wordWidth } = data[i];\n offset += word.length;\n\n // Predictive wrapping: check if adding this word would exceed the width\n const potentialLineWidth = lineWidth + infixWidth + wordWidth - additionalSpace;\n // Use exact width to match overlay editor behavior\n const conservativeMaxWidth = maxWidth; // No artificial buffer\n \n // Debug logging for wrapping decisions\n const currentLineText = line.join('');\n console.log(`🔧 FABRIC WRAP CHECK: \"${data[i].word}\" -> potential: ${potentialLineWidth.toFixed(1)}px vs limit: ${conservativeMaxWidth.toFixed(1)}px`);\n \n if (potentialLineWidth > conservativeMaxWidth && !lineJustStarted) {\n // This word would exceed the width, wrap before adding it\n console.log(`🔧 FABRIC WRAP! Line: \"${currentLineText}\" (${lineWidth.toFixed(1)}px)`);\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth; // Start new line with just this word\n lineJustStarted = true;\n } else {\n // Word fits, add it to current line\n lineWidth = potentialLineWidth + additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n \n // Debug: show current line after adding word\n console.log(`🔧 FABRIC AFTER ADD: Line now: \"${line.join('')}\" (${line.length} chars)`);\n \n\n infixWidth = splitByGrapheme\n ? 0\n : this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n }\n\n i && graphemeLines.push(line);\n\n // TODO: this code is probably not necessary anymore.\n // it can be moved out of this function since largestWordWidth is now\n // known in advance\n // Don't modify dynamicMinWidth when using browser wrapping to prevent width increases\n if (!((this as any)._usingBrowserWrapping) && largestWordWidth + reservedSpace > this.dynamicMinWidth) {\n console.log(`🔧 FABRIC updating dynamicMinWidth: ${this.dynamicMinWidth} -> ${largestWordWidth - additionalSpace + reservedSpace}`);\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n } else if ((this as any)._usingBrowserWrapping) {\n console.log(`🔤 BROWSER WRAP: Skipping dynamicMinWidth update to prevent width increase`);\n }\n \n // Debug: show final wrapped lines\n console.log(`🔧 FABRIC FINAL LINES: ${graphemeLines.length} lines`);\n graphemeLines.forEach((line, i) => {\n console.log(` Line ${i + 1}: \"${line.join('')}\" (${line.length} chars)`);\n });\n \n return graphemeLines;\n }\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping(lineIndex: number): boolean {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n }\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * This is important only for splitByGrapheme at the end of wrapping.\n * If we are not wrapping the offset is always 1\n * @return Number\n */\n missingNewlineOffset(lineIndex: number, skipWrapping?: boolean): 0 | 1 {\n if (this.splitByGrapheme && !skipWrapping) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n }\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines(text: string) {\n // Check if we need browser wrapping using smart font detection\n const needsBrowserWrapping = this.fontFamily && fontLacksEnglishGlyphsCached(this.fontFamily);\n \n if (needsBrowserWrapping) {\n // Cache key based on text content, width, font properties, AND text alignment\n const textHash = text.length + text.slice(0, 50); // Include text content in cache key\n const cacheKey = `${textHash}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n \n // Check if we have a cached result and nothing has changed\n if ((this as any)._browserWrapCache && (this as any)._browserWrapCache.key === cacheKey) {\n const cachedResult = (this as any)._browserWrapCache.result;\n \n // For justify alignment, ensure we have the measurements\n if (this.textAlign.includes('justify') && !(cachedResult as any).justifySpaceMeasurements) {\n // Fall through to recalculate\n } else {\n return cachedResult;\n }\n }\n \n const result = this._splitTextIntoLinesWithBrowser(text);\n \n // Cache the result\n (this as any)._browserWrapCache = { key: cacheKey, result };\n \n // Mark that we used browser wrapping to prevent dynamicMinWidth modifications\n (this as any)._usingBrowserWrapping = true;\n \n return result;\n }\n \n // Clear the browser wrapping flag when using regular wrapping\n (this as any)._usingBrowserWrapping = false;\n \n // Default Fabric wrapping for other fonts\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n /**\n * Use browser's native text wrapping for accurate handling of fonts without English glyphs\n * @private\n */\n _splitTextIntoLinesWithBrowser(text: string) {\n if (typeof document === 'undefined') {\n // Fallback to regular wrapping in Node.js\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Create a hidden element that mimics the overlay editor\n const testElement = document.createElement('div');\n testElement.style.position = 'absolute';\n testElement.style.left = '-9999px';\n testElement.style.visibility = 'hidden';\n testElement.style.fontSize = `${this.fontSize}px`;\n testElement.style.fontFamily = `\"${this.fontFamily}\"`;\n testElement.style.fontWeight = String(this.fontWeight || 'normal');\n testElement.style.fontStyle = String(this.fontStyle || 'normal');\n testElement.style.lineHeight = String(this.lineHeight || 1.16);\n \n testElement.style.width = `${this.width}px`;\n \n testElement.style.direction = this.direction || 'ltr';\n testElement.style.whiteSpace = 'pre-wrap';\n testElement.style.wordBreak = 'normal';\n testElement.style.overflowWrap = 'break-word';\n \n // Set browser-native text alignment (including justify)\n if (this.textAlign.includes('justify')) {\n testElement.style.textAlign = 'justify';\n testElement.style.textAlignLast = 'auto'; // Let browser decide last line alignment\n } else {\n testElement.style.textAlign = this.textAlign;\n }\n \n testElement.textContent = text;\n\n document.body.appendChild(testElement);\n\n // Get the browser's natural line breaks\n const range = document.createRange();\n const lines: string[] = [];\n const graphemeLines: string[][] = [];\n\n try {\n // Simple approach: split by measuring character positions\n const textNode = testElement.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n let currentLineStart = 0;\n const textLength = text.length;\n let previousBottom = 0;\n \n for (let i = 0; i <= textLength; i++) {\n range.setStart(textNode, currentLineStart);\n range.setEnd(textNode, i);\n const rect = range.getBoundingClientRect();\n \n if (i > currentLineStart && (rect.bottom > previousBottom + 5 || i === textLength)) {\n // New line detected or end of text\n const lineEnd = i === textLength ? i : i - 1;\n const lineText = text.substring(currentLineStart, lineEnd).trim();\n if (lineText) {\n lines.push(lineText);\n // Convert to graphemes for compatibility\n const graphemeLine = lineText.split('');\n graphemeLines.push(graphemeLine);\n }\n currentLineStart = lineEnd;\n previousBottom = rect.bottom;\n }\n }\n }\n } catch (error) {\n console.warn('Browser wrapping failed, using fallback:', error);\n document.body.removeChild(testElement);\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Extract actual browser height BEFORE removing element\n const actualBrowserHeight = testElement.scrollHeight;\n const offsetHeight = testElement.offsetHeight;\n const clientHeight = testElement.clientHeight;\n const boundingRect = testElement.getBoundingClientRect();\n \n console.log(`🔤 Browser element measurements:`);\n console.log(` scrollHeight: ${actualBrowserHeight}px (content + padding + hidden overflow)`);\n console.log(` offsetHeight: ${offsetHeight}px (content + padding + border)`);\n console.log(` clientHeight: ${clientHeight}px (content + padding, no border/scrollbar)`);\n console.log(` boundingRect.height: ${boundingRect.height}px (actual rendered height)`);\n console.log(` Font size: ${this.fontSize}px, Line height: ${this.lineHeight || 1.16}, Lines: ${lines.length}`);\n\n // For justify alignment, extract space measurements from browser BEFORE removing element\n let justifySpaceMeasurements = null;\n if (this.textAlign.includes('justify')) {\n justifySpaceMeasurements = this._extractJustifySpaceMeasurements(testElement, lines);\n }\n\n document.body.removeChild(testElement);\n\n console.log(`🔤 Browser wrapping result: ${lines.length} lines`);\n \n // Try different height measurements to find the most accurate\n let bestHeight = actualBrowserHeight;\n \n // If scrollHeight and offsetHeight differ significantly, investigate\n if (Math.abs(actualBrowserHeight - offsetHeight) > 2) {\n console.log(`🔤 Height discrepancy detected: scrollHeight=${actualBrowserHeight}px vs offsetHeight=${offsetHeight}px`);\n }\n \n // Consider using boundingRect height if it's larger (sometimes more accurate for visible content)\n if (boundingRect.height > bestHeight) {\n console.log(`🔤 Using boundingRect height (${boundingRect.height}px) instead of scrollHeight (${bestHeight}px)`);\n bestHeight = boundingRect.height;\n }\n \n // Font-specific height adjustments for accurate bounding box\n let adjustedHeight = bestHeight;\n \n // Fonts without English glyphs need additional height buffer due to different font metrics\n const lacksEnglishGlyphs = fontLacksEnglishGlyphsCached(this.fontFamily);\n if (lacksEnglishGlyphs) {\n const glyphBuffer = this.fontSize * 0.25; // 25% of font size for non-English fonts\n adjustedHeight = bestHeight + glyphBuffer;\n console.log(`🔤 Non-English font detected (${this.fontFamily}): Adding ${glyphBuffer}px buffer (${bestHeight}px + ${glyphBuffer}px = ${adjustedHeight}px)`);\n } else {\n console.log(`🔤 Standard font (${this.fontFamily}): Using browser height directly (${bestHeight}px)`);\n }\n \n return {\n _unwrappedLines: [text.split('')],\n lines: lines,\n graphemeText: text.split(''),\n graphemeLines: graphemeLines,\n justifySpaceMeasurements: justifySpaceMeasurements,\n actualBrowserHeight: adjustedHeight,\n };\n }\n\n\n\n\n /**\n * Extract justify space measurements from browser\n * @private\n */\n _extractJustifySpaceMeasurements(element: HTMLElement, lines: string[]) {\n console.log(`🔤 Extracting browser justify space measurements for ${lines.length} lines`);\n \n // For now, we'll use a simplified approach:\n // Apply uniform space expansion to match the line width\n const spaceWidths: number[][] = [];\n \n lines.forEach((line, lineIndex) => {\n const lineSpaces: number[] = [];\n const spaceCount = (line.match(/\\s/g) || []).length;\n \n if (spaceCount > 0 && lineIndex < lines.length - 1) { // Don't justify last line\n // Calculate how much space expansion is needed\n const normalSpaceWidth = 6.4; // Default space width for STV font\n const lineWidth = this.width;\n \n // Estimate natural line width\n const charCount = line.length - spaceCount;\n const avgCharWidth = 12; // Approximate for STV font\n const naturalWidth = charCount * avgCharWidth + spaceCount * normalSpaceWidth;\n \n // Calculate expanded space width\n const remainingSpace = lineWidth - (charCount * avgCharWidth);\n const expandedSpaceWidth = remainingSpace / spaceCount;\n \n console.log(`🔤 Line ${lineIndex}: ${spaceCount} spaces, natural: ${normalSpaceWidth}px -> justified: ${expandedSpaceWidth.toFixed(1)}px`);\n \n // Fill array with expanded space widths for this line\n for (let i = 0; i < spaceCount; i++) {\n lineSpaces.push(expandedSpaceWidth);\n }\n }\n \n spaceWidths.push(lineSpaces);\n });\n \n return spaceWidths;\n }\n\n /**\n * Apply browser-calculated justify space measurements\n * @private\n */\n _applyBrowserJustifySpaces() {\n if (!this._textLines || !this.__charBounds) {\n console.warn('🔤 BROWSER JUSTIFY: _textLines or __charBounds not ready');\n return;\n }\n\n // Get space measurements from browser wrapping result\n const styleMap = this._styleMap as any;\n if (!styleMap || !styleMap.justifySpaceMeasurements) {\n console.warn('🔤 BROWSER JUSTIFY: No justify space measurements available');\n return;\n }\n\n const spaceWidths = styleMap.justifySpaceMeasurements as number[][];\n console.log('🔤 BROWSER JUSTIFY: Applying space measurements to __charBounds');\n\n // Apply space widths to character bounds\n this._textLines.forEach((line, lineIndex) => {\n if (!this.__charBounds || !this.__charBounds[lineIndex] || !spaceWidths[lineIndex]) return;\n \n const lineBounds = this.__charBounds[lineIndex];\n const lineSpaceWidths = spaceWidths[lineIndex];\n let spaceIndex = 0;\n let accumulatedSpace = 0;\n const isRtl = this.direction === 'rtl';\n const spaceDiffs = [];\n\n // First, calculate the difference for each space\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n if (/\\s/.test(line[charIndex]) && spaceIndex < lineSpaceWidths.length) {\n const charBound = lineBounds[charIndex];\n if (charBound) {\n spaceDiffs.push(lineSpaceWidths[spaceIndex] - charBound.width);\n }\n spaceIndex++;\n }\n }\n \n spaceIndex = 0;\n let remainingDiff = spaceDiffs.reduce((a, b) => a + b, 0);\n\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n const charBound = lineBounds[charIndex];\n if (!charBound) continue;\n\n if (isRtl) {\n charBound.left += remainingDiff;\n } else {\n charBound.left += accumulatedSpace;\n }\n\n if (/\\s/.test(line[charIndex]) && spaceIndex < spaceDiffs.length) {\n const diff = spaceDiffs[spaceIndex];\n const oldWidth = charBound.width;\n charBound.width += diff;\n charBound.kernedWidth += diff;\n console.log(`🔤 Line ${lineIndex} space ${spaceIndex}: ${oldWidth.toFixed(1)}px -> ${charBound.width.toFixed(1)}px`);\n \n if (isRtl) {\n remainingDiff -= diff;\n } else {\n accumulatedSpace += diff;\n }\n spaceIndex++;\n }\n }\n // also need to update the last charBound\n const lastBound = lineBounds[line.length];\n if (lastBound) {\n if (isRtl) {\n lastBound.left += remainingDiff;\n } else {\n lastBound.left += accumulatedSpace;\n }\n }\n });\n }\n\n /**\n * Fallback to default Fabric wrapping\n * @private\n */\n _splitTextIntoLinesDefault(text: string) {\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n getMinWidth() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n }\n\n _removeExtraneousStyles() {\n const linesToKeep = new Map();\n for (const prop in this._styleMap) {\n const propNumber = parseInt(prop, 10);\n if (this._textLines[propNumber]) {\n const lineIndex = this._styleMap[prop].line;\n linesToKeep.set(`${lineIndex}`, true);\n }\n }\n for (const prop in this.styles) {\n if (!linesToKeep.has(prop)) {\n delete this.styles[prop];\n }\n }\n }\n\n /**\n * Initialize event listeners for safety snap functionality\n * @private\n */\n private initializeEventListeners(): void {\n // Track which side is being used for resize to handle position compensation\n let resizeOrigin: 'left' | 'right' | null = null;\n \n // Detect resize origin during resizing\n this.on('resizing', (e: any) => {\n // Check transform origin to determine which side is being resized\n if (e.transform) {\n const { originX } = e.transform;\n // originX tells us which side is the anchor - opposite side is being dragged\n resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n } else if (e.originX) {\n const { originX } = e;\n resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n }\n });\n \n // Only trigger safety snap after resize is complete (not during)\n // Use 'modified' event which fires after user releases the mouse\n this.on('modified', () => {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n // Small delay to ensure text layout is updated\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n });\n \n // Also listen to canvas-level modified event as backup\n this.canvas?.on('object:modified', (e) => {\n if (e.target === this) {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n }\n });\n }\n\n /**\n * Safety snap to prevent glyph clipping after manual resize.\n * Similar to Polotno - checks if any glyphs are too close to edges\n * and automatically expands width if needed.\n * @private\n * @param resizeOrigin - Which side was used for resizing ('left' or 'right')\n */\n private safetySnapWidth(resizeOrigin?: 'left' | 'right' | null): void {\n // For Textbox objects, we always want to check for clipping regardless of isWrapping flag\n if (!this._textLines || this.type.toLowerCase() !== 'textbox' || this._textLines.length === 0) {\n return;\n }\n \n const lineCount = this._textLines.length;\n if (lineCount === 0) return;\n\n // Check all lines, not just the last one\n let maxActualLineWidth = 0; // Actual measured width without buffers\n let maxRequiredWidth = 0; // Width including RTL buffer\n \n for (let i = 0; i < lineCount; i++) {\n const lineText = this._textLines[i].join(''); // Convert grapheme array to string\n const lineWidth = this.getLineWidth(i);\n maxActualLineWidth = Math.max(maxActualLineWidth, lineWidth);\n \n // RTL detection - regex for Arabic, Hebrew, and other RTL characters\n const rtlRegex = /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\n if (rtlRegex.test(lineText)) {\n // Add minimal RTL compensation buffer - just enough to prevent clipping\n const rtlBuffer = (this.fontSize || 16) * 0.15; // 15% of font size (much smaller)\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth + rtlBuffer);\n } else {\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth);\n }\n }\n\n // Safety margin - how close glyphs can get before we snap\n const safetyThreshold = 2; // px - very subtle trigger\n \n if (maxRequiredWidth > this.width - safetyThreshold) {\n // Set width to exactly what's needed + minimal safety margin\n const newWidth = maxRequiredWidth + 1; // Add just 1px safety margin\n \n // Store original position before width change\n const originalLeft = this.left;\n const originalTop = this.top;\n const widthIncrease = newWidth - this.width;\n \n // Change width \n this.set('width', newWidth);\n \n // Force text layout recalculation\n this.initDimensions();\n \n // Only compensate position when resizing from left handle\n // Right handle resize doesn't shift the text position\n if (resizeOrigin === 'left') {\n // When resizing from left, the expansion pushes text right\n // Compensate by moving the textbox left by the width increase\n this.set({\n 'left': originalLeft - widthIncrease,\n 'top': originalTop\n });\n }\n \n this.setCoords();\n \n // Also refresh the overlay editor if it exists\n if ((this as any).__overlayEditor) {\n setTimeout(() => {\n (this as any).__overlayEditor.refresh();\n }, 0);\n }\n \n this.canvas?.requestRenderAll();\n }\n }\n\n /**\n * Fix character selection mismatch after JSON loading for browser-wrapped fonts\n * @private\n */\n _fixCharacterMappingAfterJsonLoad(): void {\n if ((this as any)._usingBrowserWrapping) {\n // Clear all cached states to force fresh text layout calculation\n (this as any)._browserWrapCache = null;\n (this as any)._lastDimensionState = null;\n \n // Force complete re-initialization\n this.initDimensions();\n this._forceClearCache = true;\n \n // Ensure canvas refresh\n this.setCoords();\n if (this.canvas) {\n this.canvas.requestRenderAll();\n }\n }\n }\n\n /**\n * Force complete textbox re-initialization (useful after JSON loading)\n * Overrides Text version with Textbox-specific logic\n */\n forceTextReinitialization(): void {\n console.log('🔄 Force reinitializing Textbox object');\n \n // CRITICAL: Ensure textbox is marked as initialized\n this.initialized = true;\n \n // Clear all caches and force dirty state\n this._clearCache();\n this.dirty = true;\n this.dynamicMinWidth = 0;\n \n // Force isEditing false to ensure clean state\n this.isEditing = false;\n \n console.log(' → Set initialized=true, dirty=true, cleared caches');\n \n // Re-initialize dimensions (this will handle justify properly)\n this.initDimensions();\n \n // Double-check that justify was applied by checking space widths\n if (this.textAlign.includes('justify') && this.__charBounds) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) => /\\s/.test(this._textLines[i][j]));\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(space => Math.abs(space.width - firstSpaceWidth) > 0.1);\n }\n }\n });\n \n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again');\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n \n // Ensure height is recalculated - use browser height if available\n if ((this as any)._usingBrowserWrapping && (this as any)._actualBrowserHeight) {\n this.height = (this as any)._actualBrowserHeight;\n console.log(`🔤 JUSTIFY: Preserved browser height: ${this.height}px`);\n } else {\n this.height = this.calcTextHeight();\n console.log(`🔧 JUSTIFY: Used calcTextHeight: ${this.height}px`);\n }\n this.canvas?.requestRenderAll();\n }, 10);\n }\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never,\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject<T, K>([\n 'minWidth',\n 'splitByGrapheme',\n ...propertiesToInclude,\n ] as K[]);\n }\n}\n\nclassRegistry.setClass(Textbox);\n"],"names":["textboxDefaultValues","minWidth","dynamicMinWidth","lockScalingFlip","noScaleCache","_wordJoiners","splitByGrapheme","Textbox","IText","getDefaults","ownDefaults","constructor","text","options","initializeEventListeners","createControls","controls","createTextboxDefaultControls","initDimensions","initialized","_usingBrowserWrapping","now","Date","lastCall","_lastInitDimensionsTime","isRapidCall","isDuringLoading","_jsonLoading","_browserWrapInitialized","currentState","width","fontSize","fontFamily","textAlign","_lastDimensionState","_textLines","length","enableAdvancedLayout","initDimensionsAdvanced","isEditing","initDelayedCursor","_clearCache","splitTextResult","_splitText","_styleMap","_generateStyleMap","lines","map","line","split","justifyMeasurements","justifySpaceMeasurements","actualHeight","actualBrowserHeight","_actualBrowserHeight","_set","console","log","calcTextWidth","includes","JUSTIFY","_applyBrowserJustifySpaces","lastDragTime","isDuringDrag","__charBounds","fontReady","_isFontReady","enlargeSpaces","warn","_scheduleJustifyAfterFontLoad","setTimeout","_this$canvas","canvas","requestRenderAll","oldHeight","height","calcTextHeight","Math","abs","_this$canvas2","_this$_textLines","setCoords","top","left","lineHeight","_getTopOffset","hasVariableSpaces","forEach","lineBounds","i","spaces","filter","bound","j","test","firstSpaceWidth","some","space","_this$canvas3","document","_fontJustifyScheduled","fontSpec","fonts","load","then","_this$canvas4","catch","layout","layoutText","wrap","align","_mapTextAlignToAlign","ellipsis","letterSpacing","charSpacing","direction","fontStyle","fontWeight","verticalAlign","maxLineWidth","max","newLayout","_getAdvancedLayoutOptions","totalHeight","_convertLayoutToLegacyFormat","_generateStyleMapFromLayout","dirty","realLineCount","charCount","offset","graphemes","textInfo","realLineCharCount","graphemeLines","graphemeText","_reSpaceAndTab","styleHas","property","lineIndex","isWrapping","isEmptyStyles","styles","nextLineIndex","nextOffset","shouldLimit","mapNextLine","obj","p1","p2","p2Number","parseInt","p3","_getStyleDeclaration","charIndex","_setStyleDeclaration","style","_deleteStyleDeclaration","_getLineStyle","_setLineStyle","_wrapText","desiredWidth","data","getGraphemeDataForRender","wrapped","wordsData","push","_wrapLine","infix","largestWordWidth","wordsOrGraphemes","graphemeSplit","wordSplit","word","graphemeArray","_measureWord","charOffset","arguments","undefined","prevGrapheme","skipLeft","len","box","_getGraphemeBox","kernedWidth","value","_ref","reservedSpace","additionalSpace","_getWidthOfCharSpacing","lineWidth","infixWidth","lineJustStarted","maxWidth","wordWidth","potentialLineWidth","conservativeMaxWidth","currentLineText","join","toFixed","concat","isEndOfWrapping","missingNewlineOffset","skipWrapping","_splitTextIntoLines","needsBrowserWrapping","fontLacksEnglishGlyphsCached","textHash","slice","cacheKey","_browserWrapCache","key","cachedResult","result","_splitTextIntoLinesWithBrowser","newText","Array","_splitTextIntoLinesDefault","testElement","createElement","position","visibility","String","whiteSpace","wordBreak","overflowWrap","textAlignLast","textContent","body","appendChild","range","createRange","textNode","firstChild","nodeType","Node","TEXT_NODE","currentLineStart","textLength","previousBottom","setStart","setEnd","rect","getBoundingClientRect","bottom","lineEnd","lineText","substring","trim","graphemeLine","error","removeChild","scrollHeight","offsetHeight","clientHeight","boundingRect","_extractJustifySpaceMeasurements","bestHeight","adjustedHeight","lacksEnglishGlyphs","glyphBuffer","_unwrappedLines","element","spaceWidths","lineSpaces","spaceCount","match","normalSpaceWidth","avgCharWidth","remainingSpace","expandedSpaceWidth","styleMap","lineSpaceWidths","spaceIndex","accumulatedSpace","isRtl","spaceDiffs","charBound","remainingDiff","reduce","a","b","diff","oldWidth","lastBound","getMinWidth","_removeExtraneousStyles","linesToKeep","Map","prop","propNumber","set","has","_this$canvas5","resizeOrigin","on","e","transform","originX","currentResizeOrigin","safetySnapWidth","target","type","toLowerCase","lineCount","maxRequiredWidth","getLineWidth","rtlRegex","rtlBuffer","safetyThreshold","_this$canvas6","newWidth","originalLeft","originalTop","widthIncrease","__overlayEditor","refresh","_fixCharacterMappingAfterJsonLoad","_forceClearCache","forceTextReinitialization","_this$canvas7","toObject","propertiesToInclude","_defineProperty","textLayoutProperties","classRegistry","setClass"],"mappings":"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"}
1
+ {"version":3,"file":"Textbox.mjs","sources":["../../../src/shapes/Textbox.ts"],"sourcesContent":["import type { TClassProperties, TOptions } from '../typedefs';\nimport { IText } from './IText/IText';\nimport { classRegistry } from '../ClassRegistry';\nimport { createTextboxDefaultControls } from '../controls/commonControls';\nimport { JUSTIFY } from './Text/constants';\nimport type { TextStyleDeclaration } from './Text/StyledText';\nimport type { SerializedITextProps, ITextProps } from './IText/IText';\nimport type { ITextEvents } from './IText/ITextBehavior';\nimport type { TextLinesInfo } from './Text/Text';\nimport type { Control } from '../controls/Control';\nimport { fontLacksEnglishGlyphsCached } from '../text/measure';\nimport { layoutText } from '../text/layout';\n\n// @TODO: Many things here are configuration related and shouldn't be on the class nor prototype\n// regexes, list of properties that are not suppose to change by instances, magic consts.\n// this will be a separated effort\nexport const textboxDefaultValues: Partial<TClassProperties<Textbox>> = {\n minWidth: 20,\n dynamicMinWidth: 2,\n lockScalingFlip: true,\n noScaleCache: false,\n _wordJoiners: /[ \\t\\r]/,\n splitByGrapheme: false,\n};\n\nexport type GraphemeData = {\n wordsData: {\n word: string[];\n width: number;\n }[][];\n largestWordWidth: number;\n};\n\nexport type StyleMap = Record<string, { line: number; offset: number }>;\n\n// @TODO this is not complete\ninterface UniqueTextboxProps {\n minWidth: number;\n splitByGrapheme: boolean;\n dynamicMinWidth: number;\n _wordJoiners: RegExp;\n}\n\nexport interface SerializedTextboxProps\n extends SerializedITextProps,\n Pick<UniqueTextboxProps, 'minWidth' | 'splitByGrapheme'> {}\n\nexport interface TextboxProps extends ITextProps, UniqueTextboxProps {}\n\n/**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n */\nexport class Textbox<\n Props extends TOptions<TextboxProps> = Partial<TextboxProps>,\n SProps extends SerializedTextboxProps = SerializedTextboxProps,\n EventSpec extends ITextEvents = ITextEvents,\n >\n extends IText<Props, SProps, EventSpec>\n implements UniqueTextboxProps\n{\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n */\n declare minWidth: number;\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n */\n declare dynamicMinWidth: number;\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japanese\n * @type Boolean\n * @since 2.6.0\n */\n declare splitByGrapheme: boolean;\n\n declare _wordJoiners: RegExp;\n\n declare _styleMap: StyleMap;\n\n declare isWrapping: boolean;\n\n static type = 'Textbox';\n\n static textLayoutProperties = [...IText.textLayoutProperties, 'width'];\n\n static ownDefaults = textboxDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Textbox.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n */\n constructor(text: string, options?: Props) {\n super(text, { ...Textbox.ownDefaults, ...options } as Props);\n this.initializeEventListeners();\n }\n\n /**\n * Creates the default control object.\n * If you prefer to have on instance of controls shared among all objects\n * make this function return an empty object and add controls to the ownDefaults object\n */\n static createControls(): { controls: Record<string, Control> } {\n return { controls: createTextboxDefaultControls() };\n }\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions() {\n if (!this.initialized) {\n this.initialized = true;\n }\n\n // Prevent rapid recalculations during moves\n if ((this as any)._usingBrowserWrapping) {\n const now = Date.now();\n const lastCall = (this as any)._lastInitDimensionsTime || 0;\n const isRapidCall = now - lastCall < 100;\n const isDuringLoading =\n (this as any)._jsonLoading || !(this as any)._browserWrapInitialized;\n\n if (isRapidCall && !isDuringLoading) {\n return;\n }\n (this as any)._lastInitDimensionsTime = now;\n }\n\n // Skip if nothing changed\n const currentState = `${this.text}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n if (\n (this as any)._lastDimensionState === currentState &&\n this._textLines &&\n this._textLines.length > 0\n ) {\n return;\n }\n (this as any)._lastDimensionState = currentState;\n\n // Use advanced layout if enabled\n if (this.enableAdvancedLayout) {\n return this.initDimensionsAdvanced();\n }\n\n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n const splitTextResult = this._splitText();\n this._styleMap = this._generateStyleMap(splitTextResult);\n\n // For browser wrapping, ensure _textLines is set from browser results\n if (\n (this as any)._usingBrowserWrapping &&\n splitTextResult &&\n splitTextResult.lines\n ) {\n this._textLines = splitTextResult.lines.map((line) => line.split(''));\n\n // Store justify measurements and browser height\n const justifyMeasurements = (splitTextResult as any)\n .justifySpaceMeasurements;\n if (justifyMeasurements) {\n (this._styleMap as any).justifySpaceMeasurements = justifyMeasurements;\n }\n\n const actualHeight = (splitTextResult as any).actualBrowserHeight;\n if (actualHeight) {\n (this as any)._actualBrowserHeight = actualHeight;\n }\n }\n // Don't auto-resize width when using browser wrapping to prevent width increases during moves\n if (\n !(this as any)._usingBrowserWrapping &&\n this.dynamicMinWidth > this.width\n ) {\n this._set('width', this.dynamicMinWidth);\n }\n\n // For browser wrapping fonts (like STV), ensure minimum width for new textboxes\n // since these fonts can't measure English characters properly\n if ((this as any)._usingBrowserWrapping && this.width < 50) {\n console.log(\n `🔤 BROWSER WRAP: Font ${this.fontFamily} has width ${this.width}px, setting to 300px for usability`,\n );\n this.width = 300;\n }\n\n // Mark browser wrapping as initialized when complete\n if ((this as any)._usingBrowserWrapping) {\n (this as any)._browserWrapInitialized = true;\n }\n\n this.calcTextWidth();\n\n if (this.textAlign.includes(JUSTIFY)) {\n // For browser wrapping fonts, apply browser-calculated justify spaces\n if ((this as any)._usingBrowserWrapping) {\n console.log(\n '🔤 BROWSER WRAP: Applying browser-calculated justify spaces',\n );\n this._applyBrowserJustifySpaces();\n return;\n }\n\n // Note: Removed drag detection logic that was causing issues\n // Justify alignment will now apply immediately when needed\n\n // For non-browser-wrapping fonts, use Fabric's justify system\n // once text is measured we need to make space fatter to make justified text.\n // Ensure __charBounds exists and fonts are ready before applying justify\n if (this.__charBounds && this.__charBounds.length > 0) {\n // Check if font is ready for accurate justify calculations\n const fontReady = this._isFontReady ? this._isFontReady() : true;\n if (fontReady) {\n this.enlargeSpaces();\n } else {\n console.warn(\n '⚠️ Textbox: Font not ready for justify, deferring enlargeSpaces',\n );\n // Defer justify calculation until font is ready\n this._scheduleJustifyAfterFontLoad();\n }\n } else {\n console.warn(\n '⚠️ Textbox: __charBounds not ready for justify alignment, deferring enlargeSpaces',\n );\n // Defer the justify calculation until the next frame\n setTimeout(() => {\n if (\n this.__charBounds &&\n this.__charBounds.length > 0 &&\n this.enlargeSpaces\n ) {\n console.log('🔧 Applying deferred Textbox justify alignment');\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n }, 0);\n }\n }\n // Calculate height - use Fabric's calculation for proper text rendering space\n if (\n (this as any)._usingBrowserWrapping &&\n this._textLines &&\n this._textLines.length > 0\n ) {\n const actualBrowserHeight = (this as any)._actualBrowserHeight;\n const oldHeight = this.height;\n // Use Fabric's height calculation since it knows how much space text rendering needs\n this.height = this.calcTextHeight();\n\n // Force canvas refresh and control update if height changed significantly\n if (Math.abs(this.height - oldHeight) > 1) {\n this.setCoords();\n this.canvas?.requestRenderAll();\n\n // DEBUG: Log exact positioning details\n console.log(`🎯 POSITIONING DEBUG:`);\n console.log(` Textbox height: ${this.height}px`);\n console.log(` Textbox top: ${this.top}px`);\n console.log(` Textbox left: ${this.left}px`);\n console.log(` Text lines: ${this._textLines?.length || 0}`);\n console.log(` Font size: ${this.fontSize}px`);\n console.log(` Line height: ${this.lineHeight || 1.16}`);\n console.log(\n ` Calculated line height: ${this.fontSize * (this.lineHeight || 1.16)}px`,\n );\n console.log(` _getTopOffset(): ${this._getTopOffset()}px`);\n console.log(` calcTextHeight(): ${this.calcTextHeight()}px`);\n console.log(` Browser height: ${actualBrowserHeight}px`);\n console.log(\n ` Height difference: ${this.height - this.calcTextHeight()}px`,\n );\n }\n } else {\n this.height = this.calcTextHeight();\n }\n\n // Double-check that justify was applied by checking space widths\n // Skip validation during rapid width changes to prevent interference\n console.log(\n '🔍 JUSTIFY CHECK:',\n this.textAlign.includes('justify'),\n !!this.__charBounds,\n !(this as any)._skipJustifyValidation,\n );\n if (\n this.textAlign.includes('justify') &&\n this.__charBounds &&\n !(this as any)._skipJustifyValidation\n ) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) =>\n /\\s/.test(this._textLines[i][j]),\n );\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(\n (space) => Math.abs(space.width - firstSpaceWidth) > 0.1,\n );\n }\n }\n });\n\n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(\n ' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again',\n );\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n }, 10);\n }\n }\n\n /**\n * Schedule justify calculation after font loads (Textbox-specific)\n * @private\n */\n _scheduleJustifyAfterFontLoad(): void {\n if (typeof document === 'undefined' || !('fonts' in document)) {\n return;\n }\n\n // Only schedule if not already waiting\n if ((this as any)._fontJustifyScheduled) {\n return;\n }\n (this as any)._fontJustifyScheduled = true;\n\n const fontSpec = `${this.fontSize}px ${this.fontFamily}`;\n document.fonts\n .load(fontSpec)\n .then(() => {\n (this as any)._fontJustifyScheduled = false;\n console.log('🔧 Textbox: Font loaded, applying justify alignment');\n\n // Re-run initDimensions to ensure proper justify calculation\n this.initDimensions();\n this.canvas?.requestRenderAll();\n })\n .catch(() => {\n (this as any)._fontJustifyScheduled = false;\n console.warn(\n '⚠️ Textbox: Font loading failed, justify may be incorrect',\n );\n });\n }\n\n /**\n * Advanced dimensions calculation using new layout engine\n * @private\n */\n initDimensionsAdvanced() {\n if (!this.initialized) {\n return;\n }\n\n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n this.dynamicMinWidth = 0;\n\n // Use new layout engine\n const layout = layoutText({\n text: this.text,\n width: this.width,\n height: this.height,\n wrap: this.wrap || 'word',\n align: (this as any)._mapTextAlignToAlign(this.textAlign),\n ellipsis: this.ellipsis || false,\n fontSize: this.fontSize,\n lineHeight: this.lineHeight,\n letterSpacing: this.letterSpacing || 0,\n charSpacing: this.charSpacing,\n direction: this.direction === 'inherit' ? 'ltr' : this.direction,\n fontFamily: this.fontFamily,\n fontStyle: this.fontStyle,\n fontWeight: this.fontWeight,\n verticalAlign: this.verticalAlign || 'top',\n });\n\n // Update dynamic minimum width based on layout\n if (layout.lines.length > 0) {\n const maxLineWidth = Math.max(...layout.lines.map((line) => line.width));\n this.dynamicMinWidth = Math.max(this.minWidth, maxLineWidth);\n }\n\n // Adjust width if needed (preserving Textbox behavior)\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n // Re-layout with new width\n const newLayout = layoutText({\n ...(this as any)._getAdvancedLayoutOptions(),\n width: this.width,\n });\n this.height = newLayout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(newLayout);\n } else {\n this.height = layout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(layout);\n }\n\n // Generate style map for compatibility\n this._styleMap = this._generateStyleMapFromLayout(layout);\n this.dirty = true;\n }\n\n /**\n * Generate style map from new layout format\n * @private\n */\n _generateStyleMapFromLayout(layout: any): StyleMap {\n const map: StyleMap = {};\n let realLineCount = 0;\n let charCount = 0;\n\n layout.lines.forEach((line: any, i: number) => {\n if (line.text.includes('\\n') && i > 0) {\n realLineCount++;\n }\n\n map[i] = { line: realLineCount, offset: 0 };\n charCount += line.graphemes.length;\n\n if (i < layout.lines.length - 1) {\n charCount += 1; // newline character\n }\n });\n\n return map;\n }\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap(textInfo: TextLinesInfo): StyleMap {\n let realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0;\n const map: StyleMap = {};\n\n for (let i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n } else if (\n !this.splitByGrapheme &&\n this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) &&\n i > 0\n ) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n }\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas(property: keyof TextStyleDeclaration, lineIndex: number): boolean {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return super.styleHas(property, lineIndex);\n }\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles(lineIndex: number): boolean {\n if (!this.styles) {\n return true;\n }\n let offset = 0,\n nextLineIndex = lineIndex + 1,\n nextOffset: number,\n shouldLimit = false;\n const map = this._styleMap[lineIndex],\n mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n const obj =\n typeof lineIndex === 'undefined'\n ? this.styles\n : { line: this.styles[lineIndex] };\n for (const p1 in obj) {\n for (const p2 in obj[p1]) {\n const p2Number = parseInt(p2, 10);\n if (p2Number >= offset && (!shouldLimit || p2Number < nextOffset!)) {\n for (const p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n }\n\n /**\n * @protected\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined\n */\n _getStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n ): TextStyleDeclaration {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (!map) {\n return {};\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return super._getStyleDeclaration(lineIndex, charIndex);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n protected _setStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n style: object,\n ) {\n const map = this._styleMap[lineIndex];\n super._setStyleDeclaration(map.line, map.offset + charIndex, style);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n protected _deleteStyleDeclaration(lineIndex: number, charIndex: number) {\n const map = this._styleMap[lineIndex];\n super._deleteStyleDeclaration(map.line, map.offset + charIndex);\n }\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n protected _getLineStyle(lineIndex: number): boolean {\n const map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n }\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n protected _setLineStyle(lineIndex: number) {\n const map = this._styleMap[lineIndex];\n super._setLineStyle(map.line);\n }\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText(lines: string[], desiredWidth: number): string[][] {\n this.isWrapping = true;\n // extract all thewords and the widths to optimally wrap lines.\n const data = this.getGraphemeDataForRender(lines);\n const wrapped: string[][] = [];\n for (let i = 0; i < data.wordsData.length; i++) {\n wrapped.push(...this._wrapLine(i, desiredWidth, data));\n }\n this.isWrapping = false;\n return wrapped;\n }\n\n /**\n * For each line of text terminated by an hard line stop,\n * measure each word width and extract the largest word from all.\n * The returned words here are the one that at the end will be rendered.\n * @param {string[]} lines the lines we need to measure\n *\n */\n getGraphemeDataForRender(lines: string[]): GraphemeData {\n const splitByGrapheme = this.splitByGrapheme,\n infix = splitByGrapheme ? '' : ' ';\n\n let largestWordWidth = 0;\n\n const data = lines.map((line, lineIndex) => {\n let offset = 0;\n const wordsOrGraphemes = splitByGrapheme\n ? this.graphemeSplit(line)\n : this.wordSplit(line);\n\n if (wordsOrGraphemes.length === 0) {\n return [{ word: [], width: 0 }];\n }\n\n return wordsOrGraphemes.map((word: string) => {\n // if using splitByGrapheme words are already in graphemes.\n const graphemeArray = splitByGrapheme\n ? [word]\n : this.graphemeSplit(word);\n const width = this._measureWord(graphemeArray, lineIndex, offset);\n largestWordWidth = Math.max(width, largestWordWidth);\n offset += graphemeArray.length + infix.length;\n return { word: graphemeArray, width };\n });\n });\n\n return {\n wordsData: data,\n largestWordWidth,\n };\n }\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * It gets called when charBounds are not available yet.\n * Override if necessary\n * Use with {@link Textbox#wordSplit}\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n */\n _measureWord(word: string[], lineIndex: number, charOffset = 0): number {\n let width = 0,\n prevGrapheme;\n const skipLeft = true;\n for (let i = 0, len = word.length; i < len; i++) {\n const box = this._getGraphemeBox(\n word[i],\n lineIndex,\n i + charOffset,\n prevGrapheme,\n skipLeft,\n );\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n }\n\n /**\n * Override this method to customize word splitting\n * Use with {@link Textbox#_measureWord}\n * @param {string} value\n * @returns {string[]} array of words\n */\n wordSplit(value: string): string[] {\n return value.split(this._wordJoiners);\n }\n\n /**\n * Wraps a line of text using the width of the Textbox as desiredWidth\n * and leveraging the known width o words from GraphemeData\n * @private\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {GraphemeData} graphemeData an object containing all the lines' words width.\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine(\n lineIndex: number,\n desiredWidth: number,\n { largestWordWidth, wordsData }: GraphemeData,\n reservedSpace = 0,\n ): string[][] {\n const additionalSpace = this._getWidthOfCharSpacing(),\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n infix = splitByGrapheme ? '' : ' ';\n\n let lineWidth = 0,\n line: string[] = [],\n // spaces in different languages?\n offset = 0,\n infixWidth = 0,\n lineJustStarted = true;\n\n desiredWidth -= reservedSpace;\n\n const maxWidth = Math.max(\n desiredWidth,\n largestWordWidth,\n this.dynamicMinWidth,\n );\n // layout words\n const data = wordsData[lineIndex];\n offset = 0;\n let i;\n for (i = 0; i < data.length; i++) {\n const { word, width: wordWidth } = data[i];\n offset += word.length;\n\n // Predictive wrapping: check if adding this word would exceed the width\n const potentialLineWidth =\n lineWidth + infixWidth + wordWidth - additionalSpace;\n // Use exact width to match overlay editor behavior\n const conservativeMaxWidth = maxWidth; // No artificial buffer\n\n // Debug logging for wrapping decisions\n const currentLineText = line.join('');\n console.log(\n `🔧 FABRIC WRAP CHECK: \"${data[i].word}\" -> potential: ${potentialLineWidth.toFixed(1)}px vs limit: ${conservativeMaxWidth.toFixed(1)}px`,\n );\n\n if (potentialLineWidth > conservativeMaxWidth && !lineJustStarted) {\n // This word would exceed the width, wrap before adding it\n console.log(\n `🔧 FABRIC WRAP! Line: \"${currentLineText}\" (${lineWidth.toFixed(1)}px)`,\n );\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth; // Start new line with just this word\n lineJustStarted = true;\n } else {\n // Word fits, add it to current line\n lineWidth = potentialLineWidth + additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n\n // Debug: show current line after adding word\n console.log(\n `🔧 FABRIC AFTER ADD: Line now: \"${line.join('')}\" (${line.length} chars)`,\n );\n\n infixWidth = splitByGrapheme\n ? 0\n : this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n }\n\n i && graphemeLines.push(line);\n\n // TODO: this code is probably not necessary anymore.\n // it can be moved out of this function since largestWordWidth is now\n // known in advance\n // Don't modify dynamicMinWidth when using browser wrapping to prevent width increases\n if (\n !(this as any)._usingBrowserWrapping &&\n largestWordWidth + reservedSpace > this.dynamicMinWidth\n ) {\n console.log(\n `🔧 FABRIC updating dynamicMinWidth: ${this.dynamicMinWidth} -> ${largestWordWidth - additionalSpace + reservedSpace}`,\n );\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n } else if ((this as any)._usingBrowserWrapping) {\n console.log(\n `🔤 BROWSER WRAP: Skipping dynamicMinWidth update to prevent width increase`,\n );\n }\n\n // Debug: show final wrapped lines\n console.log(`🔧 FABRIC FINAL LINES: ${graphemeLines.length} lines`);\n graphemeLines.forEach((line, i) => {\n console.log(\n ` Line ${i + 1}: \"${line.join('')}\" (${line.length} chars)`,\n );\n });\n\n return graphemeLines;\n }\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping(lineIndex: number): boolean {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n }\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * This is important only for splitByGrapheme at the end of wrapping.\n * If we are not wrapping the offset is always 1\n * @return Number\n */\n missingNewlineOffset(lineIndex: number, skipWrapping?: boolean): 0 | 1 {\n if (this.splitByGrapheme && !skipWrapping) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n }\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines(text: string) {\n // Check if we need browser wrapping using smart font detection\n // Skip browser wrapping for justify text when using overlay editing to prevent measurement conflicts\n const needsBrowserWrapping =\n this.fontFamily &&\n fontLacksEnglishGlyphsCached(this.fontFamily) &&\n !(this.textAlign.includes('justify') && (this as any).useOverlayEditing);\n\n if (needsBrowserWrapping) {\n // Cache key based on text content, width, font properties, AND text alignment\n const textHash = text.length + text.slice(0, 50); // Include text content in cache key\n const cacheKey = `${textHash}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n\n // Check if we have a cached result and nothing has changed\n if (\n (this as any)._browserWrapCache &&\n (this as any)._browserWrapCache.key === cacheKey\n ) {\n const cachedResult = (this as any)._browserWrapCache.result;\n\n // For justify alignment, ensure we have the measurements\n if (\n this.textAlign.includes('justify') &&\n !(cachedResult as any).justifySpaceMeasurements\n ) {\n // Fall through to recalculate\n } else {\n return cachedResult;\n }\n }\n\n const result = this._splitTextIntoLinesWithBrowser(text);\n\n // Cache the result\n (this as any)._browserWrapCache = { key: cacheKey, result };\n\n // Mark that we used browser wrapping to prevent dynamicMinWidth modifications\n (this as any)._usingBrowserWrapping = true;\n\n // pass the width to enlargeSpaces\n if (result.width) {\n (this as any)._browserWrappingWidth = result.width;\n }\n\n return result;\n }\n\n // Clear the browser wrapping flag when using regular wrapping\n (this as any)._usingBrowserWrapping = false;\n\n // Default Fabric wrapping for other fonts\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n /**\n * Use browser's native text wrapping for accurate handling of fonts without English glyphs\n * @private\n */\n _splitTextIntoLinesWithBrowser(text: string) {\n if (typeof document === 'undefined') {\n // Fallback to regular wrapping in Node.js\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Skip measurement if we just extracted lines from overlay for justify text\n if (\n (this as any)._skipJustifyMeasurement &&\n this.textAlign.includes('justify')\n ) {\n console.log(\n '🚫 SKIP: Skipping browser measurement, using stored overlay lines',\n );\n (this as any)._skipJustifyMeasurement = false; // Reset flag\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Create a hidden element that mimics the overlay editor\n const testElement = document.createElement('div');\n testElement.style.position = 'absolute';\n testElement.style.left = '-9999px';\n testElement.style.visibility = 'hidden';\n\n const scaleX = this.scaleX || 1;\n const fontSize = this.fontSize * scaleX;\n const padding = this.padding || 0;\n\n testElement.style.fontSize = `${fontSize}px`;\n testElement.style.fontFamily = `\"${this.fontFamily}\"`;\n testElement.style.fontWeight = String(this.fontWeight || 'normal');\n testElement.style.fontStyle = String(this.fontStyle || 'normal');\n testElement.style.lineHeight = String(this.lineHeight || 1.16);\n testElement.style.letterSpacing = `${((this.charSpacing || 0) / 1000) * fontSize}px`;\n testElement.style.direction = this.direction || 'ltr';\n testElement.style.whiteSpace = 'pre-wrap';\n testElement.style.wordBreak = 'normal';\n testElement.style.overflowWrap = 'break-word';\n testElement.style.padding = `${padding}px`;\n testElement.style.boxSizing = 'border-box';\n testElement.style.width = `${this.width * scaleX + padding * 2}px`;\n\n if (this.textAlign.includes('justify')) {\n testElement.style.textAlign = 'justify';\n if (this.direction === 'rtl') {\n testElement.style.textAlignLast = 'right';\n } else {\n testElement.style.textAlignLast = 'left';\n }\n (testElement.style as any).textJustify = 'inter-word';\n (testElement.style as any).unicodeBidi = 'plaintext';\n (testElement.style as any).wordSpacing = 'normal';\n // Match font smoothing from overlay editor\n (testElement.style as any).webkitFontSmoothing = 'auto';\n (testElement.style as any).mozOsxFontSmoothing = 'auto';\n } else {\n testElement.style.textAlign = this.textAlign;\n }\n\n testElement.textContent = text;\n\n document.body.appendChild(testElement);\n\n // Get the browser's natural line breaks\n const range = document.createRange();\n const lines: string[] = [];\n const graphemeLines: string[][] = [];\n\n try {\n // Simple approach: split by measuring character positions\n const textNode = testElement.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n let currentLineStart = 0;\n const textLength = text.length;\n let previousBottom = 0;\n\n for (let i = 0; i <= textLength; i++) {\n range.setStart(textNode, currentLineStart);\n range.setEnd(textNode, i);\n const rect = range.getBoundingClientRect();\n\n if (\n i > currentLineStart &&\n (rect.bottom > previousBottom + 5 || i === textLength)\n ) {\n // New line detected or end of text\n const lineEnd = i === textLength ? i : i - 1;\n const lineText = text.substring(currentLineStart, lineEnd);\n if (lineText) {\n lines.push(lineText);\n // Convert to graphemes for compatibility\n const graphemeLine = lineText.split('');\n graphemeLines.push(graphemeLine);\n }\n currentLineStart = lineEnd;\n previousBottom = rect.bottom;\n }\n }\n }\n } catch (error) {\n console.warn('Browser wrapping failed, using fallback:', error);\n document.body.removeChild(testElement);\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Extract actual browser height BEFORE removing element\n const actualBrowserHeight = testElement.scrollHeight;\n const offsetHeight = testElement.offsetHeight;\n const clientHeight = testElement.clientHeight;\n const boundingRect = testElement.getBoundingClientRect();\n const clientWidth = testElement.clientWidth;\n\n console.log(`🔤 Browser element measurements:`);\n console.log(\n ` scrollHeight: ${actualBrowserHeight}px (content + padding + hidden overflow)`,\n );\n console.log(\n ` offsetHeight: ${offsetHeight}px (content + padding + border)`,\n );\n console.log(\n ` clientHeight: ${clientHeight}px (content + padding, no border/scrollbar)`,\n );\n console.log(\n ` boundingRect.height: ${boundingRect.height}px (actual rendered height)`,\n );\n console.log(\n ` Font size: ${this.fontSize}px, Line height: ${this.lineHeight || 1.16}, Lines: ${lines.length}`,\n );\n\n // For justify alignment, extract space measurements from browser BEFORE removing element\n let justifySpaceMeasurements = null;\n if (this.textAlign.includes('justify')) {\n justifySpaceMeasurements = this._extractJustifySpaceMeasurements(\n testElement,\n lines,\n );\n }\n\n document.body.removeChild(testElement);\n\n console.log(`🔤 Browser wrapping result: ${lines.length} lines`);\n\n // Try different height measurements to find the most accurate\n let bestHeight = actualBrowserHeight;\n\n // If scrollHeight and offsetHeight differ significantly, investigate\n if (Math.abs(actualBrowserHeight - offsetHeight) > 2) {\n console.log(\n `🔤 Height discrepancy detected: scrollHeight=${actualBrowserHeight}px vs offsetHeight=${offsetHeight}px`,\n );\n }\n\n // Consider using boundingRect height if it's larger (sometimes more accurate for visible content)\n if (boundingRect.height > bestHeight) {\n console.log(\n `🔤 Using boundingRect height (${boundingRect.height}px) instead of scrollHeight (${bestHeight}px)`,\n );\n bestHeight = boundingRect.height;\n }\n\n // Font-specific height adjustments for accurate bounding box\n let adjustedHeight = bestHeight;\n\n // Fonts without English glyphs need additional height buffer due to different font metrics\n const lacksEnglishGlyphs = fontLacksEnglishGlyphsCached(this.fontFamily);\n if (lacksEnglishGlyphs) {\n const glyphBuffer = this.fontSize * 0.25; // 25% of font size for non-English fonts\n adjustedHeight = bestHeight + glyphBuffer;\n console.log(\n `🔤 Non-English font detected (${this.fontFamily}): Adding ${glyphBuffer}px buffer (${bestHeight}px + ${glyphBuffer}px = ${adjustedHeight}px)`,\n );\n } else {\n console.log(\n `🔤 Standard font (${this.fontFamily}): Using browser height directly (${bestHeight}px)`,\n );\n }\n\n return {\n _unwrappedLines: [text.split('')],\n lines: lines,\n graphemeText: text.split(''),\n graphemeLines: graphemeLines,\n justifySpaceMeasurements: justifySpaceMeasurements,\n actualBrowserHeight: adjustedHeight,\n width: clientWidth,\n };\n }\n\n /**\n * Extract justify space measurements from browser\n * @private\n */\n _extractJustifySpaceMeasurements(element: HTMLElement, lines: string[]) {\n console.log(\n `🔤 Extracting browser justify space measurements for ${lines.length} lines`,\n );\n\n // For now, we'll use a simplified approach:\n // Apply uniform space expansion to match the line width\n const spaceWidths: number[][] = [];\n\n lines.forEach((line, lineIndex) => {\n const lineSpaces: number[] = [];\n const spaceCount = (line.match(/\\s/g) || []).length;\n\n if (spaceCount > 0 && lineIndex < lines.length - 1) {\n // Don't justify last line\n // Calculate how much space expansion is needed\n const normalSpaceWidth = 6.4; // Default space width for STV font\n const lineWidth = this.width;\n\n // Estimate natural line width\n const charCount = line.length - spaceCount;\n const avgCharWidth = 12; // Approximate for STV font\n const naturalWidth =\n charCount * avgCharWidth + spaceCount * normalSpaceWidth;\n\n // Calculate expanded space width\n const remainingSpace = lineWidth - charCount * avgCharWidth;\n const expandedSpaceWidth = remainingSpace / spaceCount;\n\n console.log(\n `🔤 Line ${lineIndex}: ${spaceCount} spaces, natural: ${normalSpaceWidth}px -> justified: ${expandedSpaceWidth.toFixed(1)}px`,\n );\n\n // Fill array with expanded space widths for this line\n for (let i = 0; i < spaceCount; i++) {\n lineSpaces.push(expandedSpaceWidth);\n }\n }\n\n spaceWidths.push(lineSpaces);\n });\n\n return spaceWidths;\n }\n\n /**\n * Apply browser-calculated justify space measurements\n * @private\n */\n _applyBrowserJustifySpaces() {\n if (!this._textLines || !this.__charBounds) {\n console.warn('🔤 BROWSER JUSTIFY: _textLines or __charBounds not ready');\n return;\n }\n\n // Check for overlay justify measurements first\n const overlayMeasurements = (this as any)._overlayJustifyMeasurements;\n if (overlayMeasurements) {\n console.log('🎯 OVERLAY JUSTIFY: Using stored overlay measurements');\n this._applyOverlayJustifySpaces(overlayMeasurements);\n return;\n }\n\n // Get space measurements from browser wrapping result\n const styleMap = this._styleMap as any;\n if (!styleMap || !styleMap.justifySpaceMeasurements) {\n console.warn(\n '🔤 BROWSER JUSTIFY: No justify space measurements available',\n );\n return;\n }\n\n const spaceWidths = styleMap.justifySpaceMeasurements as number[][];\n console.log(\n '🔤 BROWSER JUSTIFY: Applying space measurements to __charBounds',\n );\n\n // Apply space widths to character bounds\n this._textLines.forEach((line, lineIndex) => {\n if (\n !this.__charBounds ||\n !this.__charBounds[lineIndex] ||\n !spaceWidths[lineIndex]\n )\n return;\n\n const lineBounds = this.__charBounds[lineIndex];\n const lineSpaceWidths = spaceWidths[lineIndex];\n let spaceIndex = 0;\n let accumulatedSpace = 0;\n const isRtl = this.direction === 'rtl';\n const spaceDiffs = [];\n\n // First, calculate the difference for each space\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n if (/\\s/.test(line[charIndex]) && spaceIndex < lineSpaceWidths.length) {\n const charBound = lineBounds[charIndex];\n if (charBound) {\n spaceDiffs.push(lineSpaceWidths[spaceIndex] - charBound.width);\n }\n spaceIndex++;\n }\n }\n\n spaceIndex = 0;\n let remainingDiff = spaceDiffs.reduce((a, b) => a + b, 0);\n\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n const charBound = lineBounds[charIndex];\n if (!charBound) continue;\n\n if (isRtl) {\n charBound.left += remainingDiff;\n } else {\n charBound.left += accumulatedSpace;\n }\n\n if (/\\s/.test(line[charIndex]) && spaceIndex < spaceDiffs.length) {\n const diff = spaceDiffs[spaceIndex];\n const oldWidth = charBound.width;\n charBound.width += diff;\n charBound.kernedWidth += diff;\n console.log(\n `🔤 Line ${lineIndex} space ${spaceIndex}: ${oldWidth.toFixed(1)}px -> ${charBound.width.toFixed(1)}px`,\n );\n\n if (isRtl) {\n remainingDiff -= diff;\n } else {\n accumulatedSpace += diff;\n }\n spaceIndex++;\n }\n }\n // also need to update the last charBound\n const lastBound = lineBounds[line.length];\n if (lastBound) {\n if (isRtl) {\n lastBound.left += remainingDiff;\n } else {\n lastBound.left += accumulatedSpace;\n }\n }\n });\n }\n\n /**\n * Apply overlay justify measurements to character bounds\n * @private\n */\n _applyOverlayJustifySpaces(overlayMeasurements: any) {\n this._textLines.forEach((line, lineIndex) => {\n if (!this.__charBounds || !this.__charBounds[lineIndex]) return;\n\n const lineMeasurement = overlayMeasurements[lineIndex];\n if (!lineMeasurement) return;\n\n const { justifiedSpaceWidth } = lineMeasurement;\n let spaceIndex = 0;\n\n line.forEach((char, charIndex) => {\n if (char === ' ' && this.__charBounds![lineIndex][charIndex]) {\n const oldWidth = this.__charBounds![lineIndex][charIndex].width;\n this.__charBounds![lineIndex][charIndex].width = justifiedSpaceWidth;\n console.log(\n `🎯 OVERLAY Line ${lineIndex} space ${spaceIndex}: ${oldWidth.toFixed(1)}px -> ${justifiedSpaceWidth.toFixed(1)}px`,\n );\n spaceIndex++;\n }\n });\n });\n }\n\n /**\n * Extract justify measurements from overlay textarea and store them\n */\n extractJustifyMeasurementsFromOverlay(textarea: HTMLTextAreaElement) {\n const text = textarea.value;\n if (!text || !this.textAlign.includes('justify')) {\n return;\n }\n\n // Use the same measurement technique as measureLinesWithBrowser\n const testElement = document.createElement('div');\n testElement.style.position = 'absolute';\n testElement.style.left = '-9999px';\n testElement.style.visibility = 'hidden';\n\n // Copy all styles from the textarea to ensure identical rendering\n const computedStyle = window.getComputedStyle(textarea);\n const stylesToCopy = [\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'fontStyle',\n 'lineHeight',\n 'letterSpacing',\n 'direction',\n 'textAlign',\n 'textAlignLast',\n 'textJustify',\n 'width',\n 'padding',\n 'boxSizing',\n 'whiteSpace',\n 'wordBreak',\n 'overflowWrap',\n ];\n\n stylesToCopy.forEach((prop) => {\n (testElement.style as any)[prop] = (computedStyle as any)[prop];\n });\n\n testElement.textContent = text;\n document.body.appendChild(testElement);\n\n try {\n // Extract justify space measurements using the same logic\n const lines = text.split('\\n');\n const justifyMeasurements: any = {};\n\n lines.forEach((line, lineIndex) => {\n if (line.trim()) {\n const spaces = (line.match(/\\s/g) || []).length;\n if (spaces > 0) {\n // Measure natural space width\n const singleSpaceDiv = document.createElement('div');\n stylesToCopy.forEach((prop) => {\n (singleSpaceDiv.style as any)[prop] = (computedStyle as any)[\n prop\n ];\n });\n singleSpaceDiv.textContent = ' ';\n document.body.appendChild(singleSpaceDiv);\n const naturalSpaceWidth =\n singleSpaceDiv.getBoundingClientRect().width;\n document.body.removeChild(singleSpaceDiv);\n\n // Measure justified line width\n const lineDiv = document.createElement('div');\n stylesToCopy.forEach((prop) => {\n (lineDiv.style as any)[prop] = (computedStyle as any)[prop];\n });\n lineDiv.textContent = line;\n document.body.appendChild(lineDiv);\n const lineWidth = lineDiv.getBoundingClientRect().width;\n const containerWidth = parseFloat(computedStyle.width);\n\n // Calculate justified space width\n const nonSpaceText = line.replace(/\\s/g, '');\n const nonSpaceDiv = document.createElement('div');\n stylesToCopy.forEach((prop) => {\n (nonSpaceDiv.style as any)[prop] = (computedStyle as any)[prop];\n });\n nonSpaceDiv.textContent = nonSpaceText;\n document.body.appendChild(nonSpaceDiv);\n const nonSpaceWidth = nonSpaceDiv.getBoundingClientRect().width;\n\n const justifiedSpaceWidth =\n (containerWidth - nonSpaceWidth) / spaces;\n\n console.log(\n `🎯 OVERLAY Line ${lineIndex}: ${spaces} spaces, natural: ${naturalSpaceWidth.toFixed(1)}px -> justified: ${justifiedSpaceWidth.toFixed(1)}px`,\n );\n\n justifyMeasurements[lineIndex] = {\n naturalSpaceWidth,\n justifiedSpaceWidth,\n spaceCount: spaces,\n };\n\n document.body.removeChild(lineDiv);\n document.body.removeChild(nonSpaceDiv);\n }\n }\n });\n\n // Store the measurements\n (this as any)._overlayJustifyMeasurements = justifyMeasurements;\n console.log(\n '💾 STORED: Overlay justify measurements',\n justifyMeasurements,\n );\n } finally {\n document.body.removeChild(testElement);\n }\n }\n\n /**\n * Fallback to default Fabric wrapping\n * @private\n */\n _splitTextIntoLinesDefault(text: string) {\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n getMinWidth() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n }\n\n _removeExtraneousStyles() {\n const linesToKeep = new Map();\n for (const prop in this._styleMap) {\n const propNumber = parseInt(prop, 10);\n if (this._textLines[propNumber]) {\n const lineIndex = this._styleMap[prop].line;\n linesToKeep.set(`${lineIndex}`, true);\n }\n }\n for (const prop in this.styles) {\n if (!linesToKeep.has(prop)) {\n delete this.styles[prop];\n }\n }\n }\n\n /**\n * Initialize event listeners for safety snap functionality\n * @private\n */\n private initializeEventListeners(): void {\n // Track which side is being used for resize to handle position compensation\n let resizeOrigin: 'left' | 'right' | null = null;\n\n // Detect resize origin during resizing\n this.on('resizing', (e: any) => {\n // Check transform origin to determine which side is being resized\n if (e.transform) {\n const { originX } = e.transform;\n // originX tells us which side is the anchor - opposite side is being dragged\n resizeOrigin =\n originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n } else if (e.originX) {\n const { originX } = e;\n resizeOrigin =\n originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n }\n });\n\n // Only trigger safety snap after resize is complete (not during)\n // Use 'modified' event which fires after user releases the mouse\n this.on('modified', () => {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n this.initDimensions();\n // Small delay to ensure text layout is updated\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n });\n\n // Also listen to canvas-level modified event as backup\n this.canvas?.on('object:modified', (e) => {\n if (e.target === this) {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n }\n });\n }\n\n /**\n * Safety snap to prevent glyph clipping after manual resize.\n * Similar to Polotno - checks if any glyphs are too close to edges\n * and automatically expands width if needed.\n * @private\n * @param resizeOrigin - Which side was used for resizing ('left' or 'right')\n */\n private safetySnapWidth(resizeOrigin?: 'left' | 'right' | null): void {\n // For Textbox objects, we always want to check for clipping regardless of isWrapping flag\n if (\n !this._textLines ||\n this.type.toLowerCase() !== 'textbox' ||\n this._textLines.length === 0\n ) {\n return;\n }\n\n const lineCount = this._textLines.length;\n if (lineCount === 0) return;\n\n // Check all lines, not just the last one\n let maxActualLineWidth = 0; // Actual measured width without buffers\n let maxRequiredWidth = 0; // Width including RTL buffer\n\n for (let i = 0; i < lineCount; i++) {\n const lineText = this._textLines[i].join(''); // Convert grapheme array to string\n const lineWidth = this.getLineWidth(i);\n maxActualLineWidth = Math.max(maxActualLineWidth, lineWidth);\n\n // RTL detection - regex for Arabic, Hebrew, and other RTL characters\n const rtlRegex =\n /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\n if (rtlRegex.test(lineText)) {\n // Add minimal RTL compensation buffer - just enough to prevent clipping\n const rtlBuffer = (this.fontSize || 16) * 0.15; // 15% of font size (much smaller)\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth + rtlBuffer);\n } else {\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth);\n }\n }\n\n // Safety margin - how close glyphs can get before we snap\n const safetyThreshold = 2; // px - very subtle trigger\n\n if (maxRequiredWidth > this.width - safetyThreshold) {\n // Set width to exactly what's needed + minimal safety margin\n const newWidth = maxRequiredWidth + 1; // Add just 1px safety margin\n\n // Store original position before width change\n const originalLeft = this.left;\n const originalTop = this.top;\n const widthIncrease = newWidth - this.width;\n\n // Change width\n this.set('width', newWidth);\n\n // Force text layout recalculation\n this.initDimensions();\n\n // Only compensate position when resizing from left handle\n // Right handle resize doesn't shift the text position\n if (resizeOrigin === 'left') {\n // When resizing from left, the expansion pushes text right\n // Compensate by moving the textbox left by the width increase\n this.set({\n left: originalLeft - widthIncrease,\n top: originalTop,\n });\n }\n\n this.setCoords();\n\n // Also refresh the overlay editor if it exists\n if ((this as any).__overlayEditor) {\n setTimeout(() => {\n (this as any).__overlayEditor.refresh();\n }, 0);\n }\n\n this.canvas?.requestRenderAll();\n }\n }\n\n /**\n * Fix character selection mismatch after JSON loading for browser-wrapped fonts\n * @private\n */\n _fixCharacterMappingAfterJsonLoad(): void {\n if ((this as any)._usingBrowserWrapping) {\n // Clear all cached states to force fresh text layout calculation\n (this as any)._browserWrapCache = null;\n (this as any)._lastDimensionState = null;\n\n // Force complete re-initialization\n this.initDimensions();\n this._forceClearCache = true;\n\n // Ensure canvas refresh\n this.setCoords();\n if (this.canvas) {\n this.canvas.requestRenderAll();\n }\n }\n }\n\n /**\n * Force complete textbox re-initialization (useful after JSON loading)\n * Overrides Text version with Textbox-specific logic\n */\n forceTextReinitialization(): void {\n console.log('🔄 Force reinitializing Textbox object');\n\n // CRITICAL: Ensure textbox is marked as initialized\n this.initialized = true;\n\n // Clear all caches and force dirty state\n this._clearCache();\n this.dirty = true;\n this.dynamicMinWidth = 0;\n\n // Force isEditing false to ensure clean state\n this.isEditing = false;\n\n console.log(' → Set initialized=true, dirty=true, cleared caches');\n\n // Re-initialize dimensions (this will handle justify properly)\n this.initDimensions();\n\n // Double-check that justify was applied by checking space widths\n if (this.textAlign.includes('justify') && this.__charBounds) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) =>\n /\\s/.test(this._textLines[i][j]),\n );\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(\n (space) => Math.abs(space.width - firstSpaceWidth) > 0.1,\n );\n }\n }\n });\n\n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(\n ' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again',\n );\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n\n // Ensure height is recalculated - use browser height if available\n if (\n (this as any)._usingBrowserWrapping &&\n (this as any)._actualBrowserHeight\n ) {\n this.height = (this as any)._actualBrowserHeight;\n console.log(`🔤 JUSTIFY: Preserved browser height: ${this.height}px`);\n } else {\n this.height = this.calcTextHeight();\n console.log(`🔧 JUSTIFY: Used calcTextHeight: ${this.height}px`);\n }\n this.canvas?.requestRenderAll();\n }, 10);\n }\n }\n\n /**\n * Fix justify text after JSON loading - call this after fromObject\n * @public\n */\n fixJustifyAfterJSONLoad() {\n if (this.textAlign.includes('justify') && this.useOverlayEditing) {\n console.log('🔧 JSON FIX: Fixing justify text after JSON load');\n // The issue is that enlargeSpaces() isn't properly updating after JSON load\n // Workaround: temporarily change width to trigger proper rebuild, then restore\n setTimeout(() => {\n const originalWidth = this.width;\n console.log(\n '🔄 JSON TRICK: Temporarily changing width to force justify rebuild',\n );\n\n // Temporarily change width by 1px to trigger proper justify recalculation\n this.width = originalWidth + 1;\n this.initDimensions();\n\n // Restore original width - this will trigger the proper justify calculation\n setTimeout(() => {\n this.width = originalWidth;\n this.initDimensions();\n this.canvas?.requestRenderAll();\n console.log(\n '✅ JSON FIX: Restored original width, justify should be fixed',\n );\n }, 50);\n }, 100);\n }\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never,\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n const obj = super.toObject<T, K>([\n 'minWidth',\n 'splitByGrapheme',\n ...propertiesToInclude,\n ] as K[]);\n\n // For justify text with overlay editing, ensure measurements are available\n if (this.textAlign.includes('justify') && this.useOverlayEditing) {\n // If character bounds don't exist yet, initialize dimensions to calculate them\n if (!(this as any).__charBounds?.length) {\n console.log('🔧 SERIALIZE: Character bounds missing, initializing dimensions for justify text');\n this.initDimensions();\n }\n\n // Now save the measurements if they exist\n if ((this as any).__charBounds?.length) {\n console.log('💾 SERIALIZE: Saving justify measurements to JSON');\n (obj as any)._justifyMeasurements = {\n __charBounds: (this as any).__charBounds,\n __lineHeights: (this as any).__lineHeights,\n __lineWidths: (this as any).__lineWidths,\n _hasJustifyData: true,\n };\n } else {\n console.warn('⚠️ SERIALIZE: Could not generate character bounds for justify text');\n }\n }\n\n return obj;\n }\n\n /**\n * Override _set to handle justify measurements during JSON loading\n * @private\n */\n _set(key: string, value: any) {\n const result = super._set(key, value);\n\n // Restore justify measurements if they exist in the JSON data\n if (key === '_justifyMeasurements' && value && value._hasJustifyData) {\n console.log('🔄 DESERIALIZE: Restoring justify measurements from JSON');\n (this as any).__charBounds = value.__charBounds;\n (this as any).__lineHeights = value.__lineHeights;\n (this as any).__lineWidths = value.__lineWidths;\n\n // Mark that we have restored data so we don't interfere with it\n (this as any)._hasRestoredJustifyData = true;\n\n // Automatically trigger the fix after JSON loading\n if (this.textAlign.includes('justify') && this.useOverlayEditing) {\n console.log('🔄 AUTO-FIX: Calling fixJustifyAfterJSONLoad after restoring justify measurements');\n // Use setTimeout to ensure this runs after all object initialization is complete\n setTimeout(() => {\n this.fixJustifyAfterJSONLoad();\n }, 10);\n }\n }\n\n return result;\n }\n\n}\n\nclassRegistry.setClass(Textbox);\n"],"names":["textboxDefaultValues","minWidth","dynamicMinWidth","lockScalingFlip","noScaleCache","_wordJoiners","splitByGrapheme","Textbox","IText","getDefaults","ownDefaults","constructor","text","options","initializeEventListeners","createControls","controls","createTextboxDefaultControls","initDimensions","initialized","_usingBrowserWrapping","now","Date","lastCall","_lastInitDimensionsTime","isRapidCall","isDuringLoading","_jsonLoading","_browserWrapInitialized","currentState","width","fontSize","fontFamily","textAlign","_lastDimensionState","_textLines","length","enableAdvancedLayout","initDimensionsAdvanced","isEditing","initDelayedCursor","_clearCache","splitTextResult","_splitText","_styleMap","_generateStyleMap","lines","map","line","split","justifyMeasurements","justifySpaceMeasurements","actualHeight","actualBrowserHeight","_actualBrowserHeight","_set","console","log","calcTextWidth","includes","JUSTIFY","_applyBrowserJustifySpaces","__charBounds","fontReady","_isFontReady","enlargeSpaces","warn","_scheduleJustifyAfterFontLoad","setTimeout","_this$canvas","canvas","requestRenderAll","oldHeight","height","calcTextHeight","Math","abs","_this$canvas2","_this$_textLines","setCoords","top","left","lineHeight","_getTopOffset","_skipJustifyValidation","hasVariableSpaces","forEach","lineBounds","i","spaces","filter","bound","j","test","firstSpaceWidth","some","space","_this$canvas3","document","_fontJustifyScheduled","fontSpec","fonts","load","then","_this$canvas4","catch","layout","layoutText","wrap","align","_mapTextAlignToAlign","ellipsis","letterSpacing","charSpacing","direction","fontStyle","fontWeight","verticalAlign","maxLineWidth","max","newLayout","_getAdvancedLayoutOptions","totalHeight","_convertLayoutToLegacyFormat","_generateStyleMapFromLayout","dirty","realLineCount","charCount","offset","graphemes","textInfo","realLineCharCount","graphemeLines","graphemeText","_reSpaceAndTab","styleHas","property","lineIndex","isWrapping","isEmptyStyles","styles","nextLineIndex","nextOffset","shouldLimit","mapNextLine","obj","p1","p2","p2Number","parseInt","p3","_getStyleDeclaration","charIndex","_setStyleDeclaration","style","_deleteStyleDeclaration","_getLineStyle","_setLineStyle","_wrapText","desiredWidth","data","getGraphemeDataForRender","wrapped","wordsData","push","_wrapLine","infix","largestWordWidth","wordsOrGraphemes","graphemeSplit","wordSplit","word","graphemeArray","_measureWord","charOffset","arguments","undefined","prevGrapheme","skipLeft","len","box","_getGraphemeBox","kernedWidth","value","_ref","reservedSpace","additionalSpace","_getWidthOfCharSpacing","lineWidth","infixWidth","lineJustStarted","maxWidth","wordWidth","potentialLineWidth","conservativeMaxWidth","currentLineText","join","toFixed","concat","isEndOfWrapping","missingNewlineOffset","skipWrapping","_splitTextIntoLines","needsBrowserWrapping","fontLacksEnglishGlyphsCached","useOverlayEditing","textHash","slice","cacheKey","_browserWrapCache","key","cachedResult","result","_splitTextIntoLinesWithBrowser","_browserWrappingWidth","newText","Array","_splitTextIntoLinesDefault","_skipJustifyMeasurement","testElement","createElement","position","visibility","scaleX","padding","String","whiteSpace","wordBreak","overflowWrap","boxSizing","textAlignLast","textJustify","unicodeBidi","wordSpacing","webkitFontSmoothing","mozOsxFontSmoothing","textContent","body","appendChild","range","createRange","textNode","firstChild","nodeType","Node","TEXT_NODE","currentLineStart","textLength","previousBottom","setStart","setEnd","rect","getBoundingClientRect","bottom","lineEnd","lineText","substring","graphemeLine","error","removeChild","scrollHeight","offsetHeight","clientHeight","boundingRect","clientWidth","_extractJustifySpaceMeasurements","bestHeight","adjustedHeight","lacksEnglishGlyphs","glyphBuffer","_unwrappedLines","element","spaceWidths","lineSpaces","spaceCount","match","normalSpaceWidth","avgCharWidth","remainingSpace","expandedSpaceWidth","overlayMeasurements","_overlayJustifyMeasurements","_applyOverlayJustifySpaces","styleMap","lineSpaceWidths","spaceIndex","accumulatedSpace","isRtl","spaceDiffs","charBound","remainingDiff","reduce","a","b","diff","oldWidth","lastBound","lineMeasurement","justifiedSpaceWidth","char","extractJustifyMeasurementsFromOverlay","textarea","computedStyle","window","getComputedStyle","stylesToCopy","prop","trim","singleSpaceDiv","naturalSpaceWidth","lineDiv","containerWidth","parseFloat","nonSpaceText","replace","nonSpaceDiv","nonSpaceWidth","getMinWidth","_removeExtraneousStyles","linesToKeep","Map","propNumber","set","has","_this$canvas5","resizeOrigin","on","e","transform","originX","currentResizeOrigin","safetySnapWidth","target","type","toLowerCase","lineCount","maxRequiredWidth","getLineWidth","rtlRegex","rtlBuffer","safetyThreshold","_this$canvas6","newWidth","originalLeft","originalTop","widthIncrease","__overlayEditor","refresh","_fixCharacterMappingAfterJsonLoad","_forceClearCache","forceTextReinitialization","_this$canvas7","fixJustifyAfterJSONLoad","originalWidth","_this$canvas8","toObject","propertiesToInclude","_charBounds","_charBounds2","_justifyMeasurements","__lineHeights","__lineWidths","_hasJustifyData","_hasRestoredJustifyData","_defineProperty","textLayoutProperties","classRegistry","setClass"],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -13,6 +13,7 @@ export interface BrowserLinesResult {
13
13
  lines: BrowserLine[];
14
14
  totalWidth: number;
15
15
  totalHeight: number;
16
+ width: number;
16
17
  }
17
18
  /**
18
19
  * Extract line break information from a textarea by creating a mirror element
@@ -27,10 +28,14 @@ export declare function createLayoutHash(target: any): string;
27
28
  * Check if stored browser lines are still valid for the current target state
28
29
  */
29
30
  export declare function areBrowserLinesValid(target: any, storedHash?: string): boolean;
31
+ export type StoredBrowserLines = {
32
+ lines: BrowserLine[];
33
+ width?: number;
34
+ };
30
35
  /**
31
36
  * Store browser lines on a target object with validity hash
32
37
  */
33
- export declare function storeBrowserLines(target: any, lines: BrowserLine[], layoutHash?: string): void;
38
+ export declare function storeBrowserLines(target: any, lines: BrowserLine[], width?: number, layoutHash?: string): void;
34
39
  /**
35
40
  * Clear stored browser lines from a target object
36
41
  */
@@ -38,5 +43,5 @@ export declare function clearBrowserLines(target: any): void;
38
43
  /**
39
44
  * Get stored browser lines if they're still valid
40
45
  */
41
- export declare function getBrowserLines(target: any): BrowserLine[] | null;
46
+ export declare function getBrowserLines(target: any): BrowserLinesResult | null;
42
47
  //# sourceMappingURL=browserLines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browserLines.d.ts","sourceRoot":"","sources":["../../../src/text/browserLines.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAeD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,kBAAkB,CAkIrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAgBpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAO9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAGN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAGnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,EAAE,GAAG,IAAI,CASjE"}
1
+ {"version":3,"file":"browserLines.d.ts","sourceRoot":"","sources":["../../../src/text/browserLines.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAiBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,mBAAmB,GAC5B,kBAAkB,CA4IpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAgBpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,EACX,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAOT;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAInD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,kBAAkB,GAAG,IAAI,CActE"}
@@ -1,2 +1,2 @@
1
- function t(t){const e=t.value;if(!e)return{lines:[],totalWidth:0,totalHeight:0};const n=getComputedStyle(t),i=t.parentElement;if(!i)throw new Error("Textarea must be in DOM to extract lines");const o=document.createElement("div");o.style.position="absolute",o.style.left="-9999px",o.style.top="-9999px",o.style.visibility="hidden",o.style.pointerEvents="none";["fontSize","fontFamily","fontWeight","fontStyle","lineHeight","letterSpacing","wordSpacing","textAlign","textTransform","whiteSpace","overflowWrap","wordBreak","direction","unicodeBidi","width","height","maxWidth","maxHeight","minWidth","minHeight","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","border","borderTop","borderRight","borderBottom","borderLeft","boxSizing"].forEach(t=>{o.style[t]=n[t]}),o.style.overflow="hidden",o.style.resize="none",i.appendChild(o);try{const t=function(t){if("undefined"!=typeof Intl&&Intl.Segmenter){const e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(t),t=>t.segment)}return Array.from(t)}(e),n=[];t.forEach((t,e)=>{const i=document.createElement("span");i.textContent=t,i.setAttribute("data-index",e.toString()),o.appendChild(i),n.push(i)});const i=new Map;n.forEach((t,e)=>{const n=t.offsetTop;i.has(n)||i.set(n,{spans:[],indices:[]}),i.get(n).spans.push(t),i.get(n).indices.push(e)});const r=[];Array.from(i.keys()).sort((t,e)=>t-e).forEach(e=>{const n=i.get(e).indices.sort((t,e)=>t-e),o=n[0],s=n[n.length-1]+1,a=t.slice(o,s).join("");r.push({text:a,start:o,end:s})});const s=Math.max(...n.map(t=>t.offsetLeft+t.offsetWidth)),a=n.length>0?Math.max(...n.map(t=>t.offsetTop+t.offsetHeight)):0;return{lines:r,totalWidth:s,totalHeight:a}}finally{i.removeChild(o)}}function e(t){return[t.text,t.width,t.height,t.fontFamily,t.fontSize,t.fontWeight,t.fontStyle,t.lineHeight,t.charSpacing,t.textAlign,t.direction].map(t=>String(t)).join("|")}function n(t,n){if(!n||!t.__lastBrowserLines)return!1;return e(t)===n}function i(t,n,i){t.__lastBrowserLines=n,t.__lastBrowserLinesHash=e(t)}function o(t){delete t.__lastBrowserLines,delete t.__lastBrowserLinesHash}function r(t){const e=t.__lastBrowserLines,i=t.__lastBrowserLinesHash;return e&&n(t,i)?e:null}export{n as areBrowserLinesValid,o as clearBrowserLines,e as createLayoutHash,t as extractLinesFromDOM,r as getBrowserLines,i as storeBrowserLines};
1
+ function t(t){const e=t.value;if(!e)return{lines:[],totalWidth:0,totalHeight:0,width:0};const n=getComputedStyle(t),i=t.parentElement;if(!i)throw new Error("Textarea must be in DOM to extract lines");const o=document.createElement("div");o.style.position="absolute",o.style.left="-9999px",o.style.top="-9999px",o.style.visibility="hidden",o.style.pointerEvents="none";["fontSize","fontFamily","fontWeight","fontStyle","lineHeight","letterSpacing","wordSpacing","textAlign","textTransform","whiteSpace","overflowWrap","wordBreak","direction","unicodeBidi","width","height","maxWidth","maxHeight","minWidth","minHeight","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","border","borderTop","borderRight","borderBottom","borderLeft","boxSizing"].forEach(t=>{o.style[t]=n[t]}),o.style.overflow="hidden",o.style.resize="none",i.appendChild(o);const r=o.clientWidth;try{const t=function(t){if("undefined"!=typeof Intl&&Intl.Segmenter){const e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(t),t=>t.segment)}return Array.from(t)}(e),n=[];t.forEach((t,e)=>{const i=document.createElement("span");i.textContent=t,i.setAttribute("data-index",e.toString()),o.appendChild(i),n.push(i)});const i=new Map;n.forEach((t,e)=>{const n=t.offsetTop;i.has(n)||i.set(n,{spans:[],indices:[]}),i.get(n).spans.push(t),i.get(n).indices.push(e)});const s=[];Array.from(i.keys()).sort((t,e)=>t-e).forEach(e=>{const n=i.get(e).indices.sort((t,e)=>t-e),o=n[0],r=n[n.length-1]+1,a=t.slice(o,r).join("");s.push({text:a,start:o,end:r})});const a=Math.max(...n.map(t=>t.offsetLeft+t.offsetWidth)),l=n.length>0?Math.max(...n.map(t=>t.offsetTop+t.offsetHeight)):0;return{lines:s,totalWidth:a,totalHeight:l,width:r}}finally{i.removeChild(o)}}function e(t){return[t.text,t.width,t.height,t.fontFamily,t.fontSize,t.fontWeight,t.fontStyle,t.lineHeight,t.charSpacing,t.textAlign,t.direction].map(t=>String(t)).join("|")}function n(t,n){if(!n||!t.__lastBrowserLines)return!1;return e(t)===n}function i(t,n,i,o){t.__lastBrowserLines=n,t.__lastBrowserLinesWidth=i,t.__lastBrowserLinesHash=e(t)}function o(t){delete t.__lastBrowserLines,delete t.__lastBrowserLinesHash,delete t.__lastBrowserLinesWidth}function r(t){const e=t.__lastBrowserLines,i=t.__lastBrowserLinesHash;return e&&n(t,i)?{lines:e,totalWidth:0,totalHeight:0,width:t.__lastBrowserLinesWidth}:null}export{n as areBrowserLinesValid,o as clearBrowserLines,e as createLayoutHash,t as extractLinesFromDOM,r as getBrowserLines,i as storeBrowserLines};
2
2
  //# sourceMappingURL=browserLines.min.mjs.map