@myoc/excalidraw 0.19.502 → 0.19.503

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 (319) hide show
  1. package/CHANGELOG.md +520 -0
  2. package/README.md +111 -14
  3. package/dist/dev/{chunk-WBVI4CIR.js → chunk-KLM3KPI7.js} +26 -3
  4. package/dist/dev/chunk-KLM3KPI7.js.map +7 -0
  5. package/dist/dev/{chunk-ERXRO4IP.js → chunk-OF725VHI.js} +2 -2
  6. package/dist/dev/chunk-URPEKBQ3.js +69 -0
  7. package/dist/dev/chunk-URPEKBQ3.js.map +7 -0
  8. package/dist/dev/{chunk-WGIZZ2NT.js → chunk-YVUPBWS6.js} +58 -70
  9. package/dist/dev/chunk-YVUPBWS6.js.map +7 -0
  10. package/dist/dev/data/{image-BOZX7YCK.js → image-I24D3FB6.js} +3 -3
  11. package/dist/dev/index.css +225 -95
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +6746 -3772
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{ar-SA-B565KYUE.js → ar-SA-U3PIVEZH.js} +4 -2
  16. package/dist/dev/locales/{ar-SA-B565KYUE.js.map → ar-SA-U3PIVEZH.js.map} +2 -2
  17. package/dist/dev/locales/{az-AZ-2OH7OPJT.js → az-AZ-COAM4HVM.js} +3 -1
  18. package/dist/dev/locales/{az-AZ-2OH7OPJT.js.map → az-AZ-COAM4HVM.js.map} +2 -2
  19. package/dist/dev/locales/{bg-BG-MP6UWIVG.js → bg-BG-D6B2W7JL.js} +4 -2
  20. package/dist/dev/locales/{bg-BG-MP6UWIVG.js.map → bg-BG-D6B2W7JL.js.map} +2 -2
  21. package/dist/dev/locales/{bn-BD-WUCPUYTQ.js → bn-BD-BU7GZAZW.js} +3 -1
  22. package/dist/dev/locales/{bn-BD-WUCPUYTQ.js.map → bn-BD-BU7GZAZW.js.map} +2 -2
  23. package/dist/dev/locales/{bn-IN-QX4DSL53.js → bn-IN-MYKDEVNA.js} +3 -1
  24. package/dist/dev/locales/{bn-IN-QX4DSL53.js.map → bn-IN-MYKDEVNA.js.map} +2 -2
  25. package/dist/dev/locales/{ca-ES-KWEKW4C3.js → ca-ES-GEEW5L7T.js} +57 -3
  26. package/dist/dev/locales/{ca-ES-KWEKW4C3.js.map → ca-ES-GEEW5L7T.js.map} +2 -2
  27. package/dist/dev/locales/{cs-CZ-W5AHZB5H.js → cs-CZ-LNVE3QM5.js} +57 -3
  28. package/dist/dev/locales/{cs-CZ-W5AHZB5H.js.map → cs-CZ-LNVE3QM5.js.map} +2 -2
  29. package/dist/dev/locales/{da-DK-ITTM6YM4.js → da-DK-CAYJG7FJ.js} +56 -2
  30. package/dist/dev/locales/{da-DK-ITTM6YM4.js.map → da-DK-CAYJG7FJ.js.map} +2 -2
  31. package/dist/dev/locales/{de-CH-OAWPDQFJ.js → de-CH-GCXOD4LK.js} +63 -9
  32. package/dist/dev/locales/de-CH-GCXOD4LK.js.map +7 -0
  33. package/dist/dev/locales/{de-DE-ZRDYEPMS.js → de-DE-CGDBECYD.js} +57 -3
  34. package/dist/dev/locales/{de-DE-ZRDYEPMS.js.map → de-DE-CGDBECYD.js.map} +2 -2
  35. package/dist/dev/locales/{el-GR-QXASZLPE.js → el-GR-G5QZC24A.js} +57 -3
  36. package/dist/dev/locales/{el-GR-QXASZLPE.js.map → el-GR-G5QZC24A.js.map} +2 -2
  37. package/dist/dev/locales/{en-GV3XLAUG.js → en-I7VEBYIX.js} +4 -2
  38. package/dist/dev/locales/{es-ES-VLQBB7FJ.js → es-ES-UMEOH76W.js} +57 -3
  39. package/dist/dev/locales/{es-ES-VLQBB7FJ.js.map → es-ES-UMEOH76W.js.map} +2 -2
  40. package/dist/dev/locales/{eu-ES-TF2DGTZU.js → eu-ES-IWRZXJC5.js} +57 -3
  41. package/dist/dev/locales/{eu-ES-TF2DGTZU.js.map → eu-ES-IWRZXJC5.js.map} +2 -2
  42. package/dist/dev/locales/{fa-IR-ITKFQ7QV.js → fa-IR-QOYVIIJA.js} +57 -3
  43. package/dist/dev/locales/{fa-IR-ITKFQ7QV.js.map → fa-IR-QOYVIIJA.js.map} +2 -2
  44. package/dist/dev/locales/{fi-FI-UWZRVXFI.js → fi-FI-BXRW65OA.js} +57 -3
  45. package/dist/dev/locales/{fi-FI-UWZRVXFI.js.map → fi-FI-BXRW65OA.js.map} +2 -2
  46. package/dist/dev/locales/{fr-FR-A72LKGCO.js → fr-FR-R2QH5VCW.js} +57 -3
  47. package/dist/dev/locales/{fr-FR-A72LKGCO.js.map → fr-FR-R2QH5VCW.js.map} +2 -2
  48. package/dist/dev/locales/{gl-ES-2QCVIBFP.js → gl-ES-4ES3ZADP.js} +57 -3
  49. package/dist/dev/locales/{gl-ES-2QCVIBFP.js.map → gl-ES-4ES3ZADP.js.map} +2 -2
  50. package/dist/dev/locales/{he-IL-WJNUHU26.js → he-IL-TRQRRYPH.js} +57 -3
  51. package/dist/dev/locales/{he-IL-WJNUHU26.js.map → he-IL-TRQRRYPH.js.map} +2 -2
  52. package/dist/dev/locales/{hi-IN-XGMO235V.js → hi-IN-U46BOJEC.js} +66 -12
  53. package/dist/dev/locales/hi-IN-U46BOJEC.js.map +7 -0
  54. package/dist/dev/locales/{hu-HU-37FDQFIS.js → hu-HU-JDULJ6XL.js} +146 -92
  55. package/dist/dev/locales/hu-HU-JDULJ6XL.js.map +7 -0
  56. package/dist/dev/locales/{id-ID-EJIDCO4E.js → id-ID-BLIXNCUT.js} +57 -3
  57. package/dist/dev/locales/{id-ID-EJIDCO4E.js.map → id-ID-BLIXNCUT.js.map} +2 -2
  58. package/dist/dev/locales/{it-IT-X34PIOJ2.js → it-IT-6TBW7RUK.js} +57 -3
  59. package/dist/dev/locales/{it-IT-X34PIOJ2.js.map → it-IT-6TBW7RUK.js.map} +2 -2
  60. package/dist/dev/locales/{ja-JP-37FC23PR.js → ja-JP-6HYAQFYX.js} +57 -3
  61. package/dist/dev/locales/{ja-JP-37FC23PR.js.map → ja-JP-6HYAQFYX.js.map} +2 -2
  62. package/dist/dev/locales/{kaa-7ZYDFVKA.js → kaa-Z5UP62XJ.js} +56 -2
  63. package/dist/dev/locales/{kaa-7ZYDFVKA.js.map → kaa-Z5UP62XJ.js.map} +2 -2
  64. package/dist/dev/locales/{kab-KAB-MILWXBA6.js → kab-KAB-Z7STWQKS.js} +57 -3
  65. package/dist/dev/locales/{kab-KAB-MILWXBA6.js.map → kab-KAB-Z7STWQKS.js.map} +2 -2
  66. package/dist/dev/locales/{kk-KZ-7BWTPIAV.js → kk-KZ-BWHY45DX.js} +56 -2
  67. package/dist/dev/locales/{kk-KZ-7BWTPIAV.js.map → kk-KZ-BWHY45DX.js.map} +2 -2
  68. package/dist/dev/locales/{km-KH-BV4P2KSZ.js → km-KH-HGLNWNRU.js} +57 -3
  69. package/dist/dev/locales/{km-KH-BV4P2KSZ.js.map → km-KH-HGLNWNRU.js.map} +2 -2
  70. package/dist/dev/locales/{ko-KR-TSXE5P7B.js → ko-KR-CO36WKPC.js} +57 -3
  71. package/dist/dev/locales/{ko-KR-TSXE5P7B.js.map → ko-KR-CO36WKPC.js.map} +2 -2
  72. package/dist/dev/locales/{ku-TR-ASSXNN3U.js → ku-TR-AACVIARC.js} +57 -3
  73. package/dist/dev/locales/{ku-TR-ASSXNN3U.js.map → ku-TR-AACVIARC.js.map} +2 -2
  74. package/dist/dev/locales/{lt-LT-G7RZYQQU.js → lt-LT-CFYYFLDV.js} +56 -2
  75. package/dist/dev/locales/{lt-LT-G7RZYQQU.js.map → lt-LT-CFYYFLDV.js.map} +2 -2
  76. package/dist/dev/locales/{lv-LV-DXNPBJZU.js → lv-LV-QCBBOFFU.js} +57 -3
  77. package/dist/dev/locales/{lv-LV-DXNPBJZU.js.map → lv-LV-QCBBOFFU.js.map} +2 -2
  78. package/dist/dev/locales/{mr-IN-7F2ZCTCF.js → mr-IN-B2CM5GK5.js} +57 -3
  79. package/dist/dev/locales/{mr-IN-7F2ZCTCF.js.map → mr-IN-B2CM5GK5.js.map} +2 -2
  80. package/dist/dev/locales/{my-MM-NBI3KQGW.js → my-MM-756BNN36.js} +56 -2
  81. package/dist/dev/locales/{my-MM-NBI3KQGW.js.map → my-MM-756BNN36.js.map} +2 -2
  82. package/dist/dev/locales/{nb-NO-4DCTQT6L.js → nb-NO-5BLHQI4J.js} +57 -3
  83. package/dist/dev/locales/{nb-NO-4DCTQT6L.js.map → nb-NO-5BLHQI4J.js.map} +2 -2
  84. package/dist/dev/locales/{nl-NL-XGZJ7V2V.js → nl-NL-225BLGAH.js} +58 -4
  85. package/dist/dev/locales/nl-NL-225BLGAH.js.map +7 -0
  86. package/dist/dev/locales/{nn-NO-FR534JV5.js → nn-NO-4J7MR6GH.js} +56 -2
  87. package/dist/dev/locales/{nn-NO-FR534JV5.js.map → nn-NO-4J7MR6GH.js.map} +2 -2
  88. package/dist/dev/locales/{oc-FR-YQCIKZIK.js → oc-FR-XCETH7KF.js} +57 -3
  89. package/dist/dev/locales/{oc-FR-YQCIKZIK.js.map → oc-FR-XCETH7KF.js.map} +2 -2
  90. package/dist/dev/locales/{pa-IN-UM43JGD2.js → pa-IN-32NBAN5L.js} +57 -3
  91. package/dist/dev/locales/{pa-IN-UM43JGD2.js.map → pa-IN-32NBAN5L.js.map} +2 -2
  92. package/dist/dev/locales/{percentages-OGWD7R2K.js → percentages-ZRLRVMSI.js} +2 -2
  93. package/dist/dev/locales/{pl-PL-2UGKA6HK.js → pl-PL-R6OJ54BT.js} +57 -3
  94. package/dist/dev/locales/{pl-PL-2UGKA6HK.js.map → pl-PL-R6OJ54BT.js.map} +2 -2
  95. package/dist/dev/locales/{pt-BR-H23QFYE3.js → pt-BR-7AFGAKGR.js} +57 -3
  96. package/dist/dev/locales/{pt-BR-H23QFYE3.js.map → pt-BR-7AFGAKGR.js.map} +2 -2
  97. package/dist/dev/locales/{pt-PT-RHKJH5I5.js → pt-PT-S6BMW6MY.js} +57 -3
  98. package/dist/dev/locales/{pt-PT-RHKJH5I5.js.map → pt-PT-S6BMW6MY.js.map} +2 -2
  99. package/dist/dev/locales/{ro-RO-IIFONL3T.js → ro-RO-4JVGQHS2.js} +57 -3
  100. package/dist/dev/locales/{ro-RO-IIFONL3T.js.map → ro-RO-4JVGQHS2.js.map} +2 -2
  101. package/dist/dev/locales/{ru-RU-QEP6D7GK.js → ru-RU-IESI752T.js} +59 -5
  102. package/dist/dev/locales/ru-RU-IESI752T.js.map +7 -0
  103. package/dist/dev/locales/{si-LK-LZYJQLHF.js → si-LK-H75E7PKD.js} +57 -3
  104. package/dist/dev/locales/{si-LK-LZYJQLHF.js.map → si-LK-H75E7PKD.js.map} +2 -2
  105. package/dist/dev/locales/{sk-SK-RWC6UWGY.js → sk-SK-EUK2NR2F.js} +57 -3
  106. package/dist/dev/locales/{sk-SK-RWC6UWGY.js.map → sk-SK-EUK2NR2F.js.map} +2 -2
  107. package/dist/dev/locales/{sl-SI-QJT2CAUO.js → sl-SI-AKW7R5PW.js} +57 -3
  108. package/dist/dev/locales/{sl-SI-QJT2CAUO.js.map → sl-SI-AKW7R5PW.js.map} +2 -2
  109. package/dist/dev/locales/{sv-SE-3MAT3NDX.js → sv-SE-QIBOOXLJ.js} +57 -3
  110. package/dist/dev/locales/{sv-SE-3MAT3NDX.js.map → sv-SE-QIBOOXLJ.js.map} +2 -2
  111. package/dist/dev/locales/{ta-IN-J7XOYF2T.js → ta-IN-LBK2NQ5K.js} +56 -2
  112. package/dist/dev/locales/{ta-IN-J7XOYF2T.js.map → ta-IN-LBK2NQ5K.js.map} +2 -2
  113. package/dist/dev/locales/{th-TH-2OI52EOQ.js → th-TH-YJ2E6GVT.js} +56 -2
  114. package/dist/dev/locales/{th-TH-2OI52EOQ.js.map → th-TH-YJ2E6GVT.js.map} +2 -2
  115. package/dist/dev/locales/{tr-TR-G7TAUHUI.js → tr-TR-Y5GO2XJW.js} +57 -3
  116. package/dist/dev/locales/{tr-TR-G7TAUHUI.js.map → tr-TR-Y5GO2XJW.js.map} +2 -2
  117. package/dist/dev/locales/{uk-UA-IVSVBJIG.js → uk-UA-XYAFHHJW.js} +57 -3
  118. package/dist/dev/locales/{uk-UA-IVSVBJIG.js.map → uk-UA-XYAFHHJW.js.map} +2 -2
  119. package/dist/dev/locales/{uz-UZ-KCVDUVDE.js → uz-UZ-LF3CBRYE.js} +56 -2
  120. package/dist/dev/locales/{uz-UZ-KCVDUVDE.js.map → uz-UZ-LF3CBRYE.js.map} +2 -2
  121. package/dist/dev/locales/{vi-VN-KBZAVWP5.js → vi-VN-WDPZEUOJ.js} +56 -2
  122. package/dist/dev/locales/{vi-VN-KBZAVWP5.js.map → vi-VN-WDPZEUOJ.js.map} +2 -2
  123. package/dist/dev/locales/{zh-CN-IS26RG2D.js → zh-CN-SZ37453H.js} +57 -3
  124. package/dist/dev/locales/{zh-CN-IS26RG2D.js.map → zh-CN-SZ37453H.js.map} +2 -2
  125. package/dist/dev/locales/{zh-HK-KBWQ6SJC.js → zh-HK-QDQ5QNBC.js} +56 -2
  126. package/dist/dev/locales/{zh-HK-KBWQ6SJC.js.map → zh-HK-QDQ5QNBC.js.map} +2 -2
  127. package/dist/dev/locales/{zh-TW-JKJWJQ4J.js → zh-TW-CYU6GFBV.js} +57 -3
  128. package/dist/dev/locales/{zh-TW-JKJWJQ4J.js.map → zh-TW-CYU6GFBV.js.map} +2 -2
  129. package/dist/dev/subset-shared.chunk.js +1 -1
  130. package/dist/dev/subset-worker.chunk.js +1 -1
  131. package/dist/prod/chunk-2VV6LBBJ.js +4 -0
  132. package/dist/prod/chunk-3FGJVPJS.js +12 -0
  133. package/dist/prod/chunk-3PELD44J.js +1 -0
  134. package/dist/prod/{chunk-SNEYYD2R.js → chunk-KG57QRSG.js} +1 -1
  135. package/dist/prod/data/image-IFJHSHJP.js +1 -0
  136. package/dist/prod/index.css +1 -1
  137. package/dist/prod/index.js +26 -24
  138. package/dist/prod/locales/{ar-SA-EYKRCXR6.js → ar-SA-TS6M4GHP.js} +1 -1
  139. package/dist/prod/locales/{az-AZ-ZNDJBVCS.js → az-AZ-HJWG4CPD.js} +1 -1
  140. package/dist/prod/locales/{bg-BG-O5I6U3AR.js → bg-BG-K42QREUV.js} +1 -1
  141. package/dist/prod/locales/{bn-IN-HPUBVY4I.js → bn-BD-IFEECH4W.js} +1 -1
  142. package/dist/prod/locales/{bn-BD-CXZY522G.js → bn-IN-OE7SKNFR.js} +1 -1
  143. package/dist/prod/locales/{ca-ES-AREX5NEO.js → ca-ES-MKBCGNOG.js} +3 -3
  144. package/dist/prod/locales/{cs-CZ-HXAZMFYH.js → cs-CZ-V77HGUP7.js} +2 -2
  145. package/dist/prod/locales/{da-DK-5X7ZLFU3.js → da-DK-I5RFNTM4.js} +2 -2
  146. package/dist/prod/locales/{de-DE-G3JVZ4MQ.js → de-CH-WLRDEVBV.js} +3 -3
  147. package/dist/prod/locales/{de-CH-76ZNVSOF.js → de-DE-DTI4WUSC.js} +4 -4
  148. package/dist/prod/locales/{el-GR-4AZTZGY6.js → el-GR-ZXDJ2OS4.js} +3 -3
  149. package/dist/prod/locales/en-Y2V7YPBM.js +1 -0
  150. package/dist/prod/locales/{es-ES-ART7BI3G.js → es-ES-DYQHAD43.js} +2 -2
  151. package/dist/prod/locales/{eu-ES-BIF4XBMT.js → eu-ES-QDSYU5Y3.js} +3 -3
  152. package/dist/prod/locales/{fa-IR-D4HHKAAI.js → fa-IR-26LZG4PM.js} +3 -3
  153. package/dist/prod/locales/{fi-FI-O35ZY7UI.js → fi-FI-6YS4KDE4.js} +2 -2
  154. package/dist/prod/locales/{fr-FR-XEFNCM4I.js → fr-FR-BRLLPTZC.js} +2 -2
  155. package/dist/prod/locales/{gl-ES-U4NYM3X5.js → gl-ES-OKUZTLYG.js} +3 -3
  156. package/dist/prod/locales/{he-IL-656ABAVQ.js → he-IL-26MGYIU7.js} +3 -3
  157. package/dist/prod/locales/hi-IN-Q4ZOGTP2.js +3 -0
  158. package/dist/prod/locales/hu-HU-P2OXPSN5.js +3 -0
  159. package/dist/prod/locales/{id-ID-FLZFU3OO.js → id-ID-2EIKXYN6.js} +3 -3
  160. package/dist/prod/locales/{it-IT-GIGIGIBJ.js → it-IT-4CFKVXI2.js} +4 -4
  161. package/dist/prod/locales/{ja-JP-43VXGDWI.js → ja-JP-MAND2Z4V.js} +4 -4
  162. package/dist/prod/locales/{kaa-L3IMSDYL.js → kaa-HQRTCXTJ.js} +1 -1
  163. package/dist/prod/locales/{kab-KAB-XKPWJLNL.js → kab-KAB-JKIKKTGH.js} +2 -2
  164. package/dist/prod/locales/{kk-KZ-SXPDDY2H.js → kk-KZ-HXQ63ZFC.js} +1 -1
  165. package/dist/prod/locales/{km-KH-DOS4CPGC.js → km-KH-PKL3LSGX.js} +3 -3
  166. package/dist/prod/locales/{ko-KR-BGC6VCY4.js → ko-KR-KXLREZX3.js} +2 -2
  167. package/dist/prod/locales/{ku-TR-J7IUITIA.js → ku-TR-MJ4IER3X.js} +3 -3
  168. package/dist/prod/locales/{lt-LT-AC3LV5KG.js → lt-LT-H6WFQ6FJ.js} +2 -2
  169. package/dist/prod/locales/{lv-LV-I6AY7QG2.js → lv-LV-GOCK6SJW.js} +2 -2
  170. package/dist/prod/locales/{mr-IN-5SP4HV5B.js → mr-IN-IXVLDMEQ.js} +2 -2
  171. package/dist/prod/locales/{my-MM-S7ECRBYZ.js → my-MM-YG6MYTTD.js} +1 -1
  172. package/dist/prod/locales/{nb-NO-6PNHTF4R.js → nb-NO-XGWJISD2.js} +3 -3
  173. package/dist/prod/locales/{nl-NL-R4C4SUIG.js → nl-NL-XVDVCPNC.js} +4 -4
  174. package/dist/prod/locales/{nn-NO-3TFXTM7Y.js → nn-NO-EMX5MJX5.js} +2 -2
  175. package/dist/prod/locales/{oc-FR-IK6GIE7H.js → oc-FR-ROEINTVO.js} +2 -2
  176. package/dist/prod/locales/{pa-IN-YAKHYJET.js → pa-IN-ZYN6SUDY.js} +1 -1
  177. package/dist/prod/locales/percentages-5DKR754L.js +1 -0
  178. package/dist/prod/locales/{pl-PL-BIY22ZWU.js → pl-PL-6VTG7PHC.js} +3 -3
  179. package/dist/prod/locales/{pt-BR-Q23NUPD6.js → pt-BR-5YFKRR5G.js} +2 -2
  180. package/dist/prod/locales/{pt-PT-LOPEJLPJ.js → pt-PT-GEIXXZ67.js} +1 -1
  181. package/dist/prod/locales/{ro-RO-W3D2ZATV.js → ro-RO-E2P6TFZI.js} +4 -4
  182. package/dist/prod/locales/{ru-RU-DCTW7QSH.js → ru-RU-YBIIY43T.js} +4 -4
  183. package/dist/prod/locales/{si-LK-FYRRHO3C.js → si-LK-673C2CI2.js} +1 -1
  184. package/dist/prod/locales/{sk-SK-MC7UOHQO.js → sk-SK-CKZHQ4AP.js} +2 -2
  185. package/dist/prod/locales/{sl-SI-L6B6HFY5.js → sl-SI-557H2GWM.js} +2 -2
  186. package/dist/prod/locales/{sv-SE-KMY6L2BA.js → sv-SE-XOPKKDWS.js} +3 -3
  187. package/dist/prod/locales/{ta-IN-ZQCYE2JK.js → ta-IN-XBH7DQI3.js} +3 -3
  188. package/dist/prod/locales/{th-TH-WS7ECBAV.js → th-TH-TOCWH3R4.js} +1 -1
  189. package/dist/prod/locales/{tr-TR-S5FI7JRW.js → tr-TR-GXW6CYY5.js} +2 -2
  190. package/dist/prod/locales/{uk-UA-4EZUWUSQ.js → uk-UA-IJKTNUDG.js} +3 -3
  191. package/dist/prod/locales/{uz-UZ-OKHL6AFA.js → uz-UZ-TBZZEA4V.js} +1 -1
  192. package/dist/prod/locales/{vi-VN-K34TWHF7.js → vi-VN-MULSGNVB.js} +3 -3
  193. package/dist/prod/locales/{zh-CN-JE4UZWNO.js → zh-CN-MVX3E32U.js} +3 -3
  194. package/dist/prod/locales/{zh-HK-RM35YDXX.js → zh-HK-JNU5RLIE.js} +1 -1
  195. package/dist/prod/locales/{zh-TW-ONGLV6Y5.js → zh-TW-LENVCA6T.js} +3 -3
  196. package/dist/prod/subset-shared.chunk.js +1 -1
  197. package/dist/prod/subset-worker.chunk.js +1 -1
  198. package/dist/types/common/debug.d.ts +21 -0
  199. package/dist/types/common/src/appEventBus.d.ts +27 -0
  200. package/dist/types/common/src/colors.d.ts +1 -1
  201. package/dist/types/common/src/constants.d.ts +3 -0
  202. package/dist/types/common/src/index.d.ts +3 -0
  203. package/dist/types/common/src/utils.d.ts +4 -7
  204. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  205. package/dist/types/element/src/Scene.d.ts +2 -0
  206. package/dist/types/element/src/arrowheads.d.ts +3 -0
  207. package/dist/types/element/src/arrows/focus.d.ts +27 -0
  208. package/dist/types/element/src/arrows/helpers.d.ts +5 -0
  209. package/dist/types/element/src/binding.d.ts +13 -8
  210. package/dist/types/element/src/bounds.d.ts +1 -1
  211. package/dist/types/element/src/collision.d.ts +4 -3
  212. package/dist/types/element/src/distribute.d.ts +2 -1
  213. package/dist/types/element/src/elbowArrow.d.ts +2 -0
  214. package/dist/types/element/src/index.d.ts +4 -0
  215. package/dist/types/element/src/linearElementEditor.d.ts +5 -0
  216. package/dist/types/element/src/mutateElement.d.ts +2 -0
  217. package/dist/types/element/src/selection.d.ts +5 -1
  218. package/dist/types/element/src/shapes.d.ts +2 -22
  219. package/dist/types/element/src/textElement.d.ts +1 -1
  220. package/dist/types/element/src/textWrapping.d.ts +26 -0
  221. package/dist/types/element/src/types.d.ts +5 -2
  222. package/dist/types/element/src/utils.d.ts +5 -3
  223. package/dist/types/element/src/zindex.d.ts +1 -1
  224. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +38 -35
  225. package/dist/types/excalidraw/actions/actionBoundText.d.ts +27 -25
  226. package/dist/types/excalidraw/actions/actionCanvas.d.ts +143 -132
  227. package/dist/types/excalidraw/actions/actionClipboard.d.ts +26 -24
  228. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +13 -12
  229. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +41 -36
  230. package/dist/types/excalidraw/actions/actionElementLink.d.ts +9 -12
  231. package/dist/types/excalidraw/actions/actionElementLock.d.ts +26 -24
  232. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +13 -12
  233. package/dist/types/excalidraw/actions/actionExport.d.ts +75 -368
  234. package/dist/types/excalidraw/actions/actionFrame.d.ts +52 -48
  235. package/dist/types/excalidraw/actions/actionGroup.d.ts +27 -25
  236. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +15 -12
  237. package/dist/types/excalidraw/actions/actionLink.d.ts +13 -12
  238. package/dist/types/excalidraw/actions/actionMenu.d.ts +9 -12
  239. package/dist/types/excalidraw/actions/actionProperties.d.ts +28 -26
  240. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +13 -12
  241. package/dist/types/excalidraw/actions/actionStyles.d.ts +13 -11
  242. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  243. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +181 -0
  244. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +13 -12
  245. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +181 -0
  246. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +13 -12
  247. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +9 -12
  248. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +13 -12
  249. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +13 -12
  250. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +13 -12
  251. package/dist/types/excalidraw/actions/index.d.ts +2 -0
  252. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  253. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  254. package/dist/types/excalidraw/appState.d.ts +9 -7
  255. package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
  256. package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
  257. package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
  258. package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
  259. package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
  260. package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
  261. package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
  262. package/dist/types/excalidraw/charts/index.d.ts +7 -0
  263. package/dist/types/excalidraw/clipboard.d.ts +6 -7
  264. package/dist/types/excalidraw/components/App.d.ts +55 -13
  265. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  266. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -1
  267. package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
  268. package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
  269. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
  270. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  271. package/dist/types/excalidraw/components/Toast.d.ts +8 -4
  272. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +1 -0
  273. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -17
  274. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +3 -2
  275. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +11 -13
  276. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
  277. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
  278. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
  279. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
  280. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  281. package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
  282. package/dist/types/excalidraw/components/icons.d.ts +23 -9
  283. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +17 -0
  284. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +23 -13
  285. package/dist/types/excalidraw/data/blob.d.ts +45 -44
  286. package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
  287. package/dist/types/excalidraw/data/index.d.ts +2 -3
  288. package/dist/types/excalidraw/data/json.d.ts +37 -28
  289. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  290. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  291. package/dist/types/excalidraw/index.d.ts +25 -3
  292. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  293. package/dist/types/excalidraw/types.d.ts +93 -16
  294. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +5 -1
  295. package/dist/types/math/src/point.d.ts +7 -2
  296. package/dist/types/math/src/types.d.ts +25 -1
  297. package/package.json +8 -8
  298. package/dist/dev/chunk-DJHLEOOZ.js +0 -69
  299. package/dist/dev/chunk-DJHLEOOZ.js.map +0 -7
  300. package/dist/dev/chunk-WBVI4CIR.js.map +0 -7
  301. package/dist/dev/chunk-WGIZZ2NT.js.map +0 -7
  302. package/dist/dev/locales/de-CH-OAWPDQFJ.js.map +0 -7
  303. package/dist/dev/locales/hi-IN-XGMO235V.js.map +0 -7
  304. package/dist/dev/locales/hu-HU-37FDQFIS.js.map +0 -7
  305. package/dist/dev/locales/nl-NL-XGZJ7V2V.js.map +0 -7
  306. package/dist/dev/locales/ru-RU-QEP6D7GK.js.map +0 -7
  307. package/dist/prod/chunk-AJI3LATG.js +0 -1
  308. package/dist/prod/chunk-P4DO2K62.js +0 -4
  309. package/dist/prod/chunk-SXXYW6U7.js +0 -12
  310. package/dist/prod/data/image-P7BXXOZA.js +0 -1
  311. package/dist/prod/locales/en-IT7EQLWB.js +0 -1
  312. package/dist/prod/locales/hi-IN-Z55GAFFR.js +0 -3
  313. package/dist/prod/locales/hu-HU-UJ62DVIW.js +0 -3
  314. package/dist/prod/locales/percentages-OL6W367U.js +0 -1
  315. package/dist/types/excalidraw/charts.d.ts +0 -27
  316. /package/dist/dev/{chunk-ERXRO4IP.js.map → chunk-OF725VHI.js.map} +0 -0
  317. /package/dist/dev/data/{image-BOZX7YCK.js.map → image-I24D3FB6.js.map} +0 -0
  318. /package/dist/dev/locales/{en-GV3XLAUG.js.map → en-I7VEBYIX.js.map} +0 -0
  319. /package/dist/dev/locales/{percentages-OGWD7R2K.js.map → percentages-ZRLRVMSI.js.map} +0 -0
@@ -1,3 +1,4 @@
1
+ import type { GlobalCoord } from "@excalidraw/math";
1
2
  import type { FontFamilyValues, FontString } from "@excalidraw/element/types";
2
3
  import type { ActiveTool, AppState, ToolType, UnsubscribeCallback, Zoom } from "@excalidraw/excalidraw/types";
3
4
  import type { MaybePromise, ResolutionType } from "./utility-types";
@@ -24,9 +25,7 @@ export declare const debounce: <T extends any[]>(fn: (...args: T) => void, timeo
24
25
  flush(): void;
25
26
  cancel(): void;
26
27
  };
27
- export declare const throttleRAF: <T extends any[]>(fn: (...args: T) => void, opts?: {
28
- trailing?: boolean;
29
- }) => {
28
+ export declare const throttleRAF: <T extends any[]>(fn: (...args: T) => void) => {
30
29
  (...args: T): void;
31
30
  flush(): void;
32
31
  cancel(): void;
@@ -108,10 +107,7 @@ export declare const viewportCoordsToSceneCoords: ({ clientX, clientY }: {
108
107
  offsetTop: number;
109
108
  scrollX: number;
110
109
  scrollY: number;
111
- }) => {
112
- x: number;
113
- y: number;
114
- };
110
+ }) => GlobalCoord;
115
111
  export declare const sceneCoordsToViewportCoords: ({ sceneX, sceneY }: {
116
112
  sceneX: number;
117
113
  sceneY: number;
@@ -279,4 +275,5 @@ type FEATURE_FLAGS = {
279
275
  };
280
276
  export declare const getFeatureFlag: <F extends keyof FEATURE_FLAGS>(flag: F) => FEATURE_FLAGS[F];
281
277
  export declare const setFeatureFlag: <F extends keyof FEATURE_FLAGS>(flag: F, value: FEATURE_FLAGS[F]) => void;
278
+ export declare const oneOf: <N extends string | number | symbol | null, H extends N>(needle: N, haystack: readonly H[]) => needle is H;
282
279
  export {};
@@ -0,0 +1,17 @@
1
+ export type VersionedSnapshot<T> = Readonly<{
2
+ version: number;
3
+ value: T;
4
+ }>;
5
+ export declare class VersionedSnapshotStore<T> {
6
+ private readonly isEqual;
7
+ private version;
8
+ private value;
9
+ private readonly waiters;
10
+ private readonly subscribers;
11
+ constructor(initialValue: T, isEqual?: (prev: T, next: T) => boolean);
12
+ getSnapshot(): VersionedSnapshot<T>;
13
+ set(nextValue: T): boolean;
14
+ update(updater: (prev: T) => T): boolean;
15
+ subscribe(subscriber: (snapshot: VersionedSnapshot<T>) => void): () => void;
16
+ pull(sinceVersion?: number): Promise<VersionedSnapshot<T>>;
17
+ }
@@ -75,6 +75,8 @@ export declare class Scene {
75
75
  mutateElement<TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, options?: {
76
76
  informMutation: boolean;
77
77
  isDragging: boolean;
78
+ isBindingEnabled?: boolean;
79
+ isMidpointSnappingEnabled?: boolean;
78
80
  }): TElement;
79
81
  }
80
82
  export {};
@@ -0,0 +1,3 @@
1
+ import type { Arrowhead, AnyArrowhead } from "./types";
2
+ export declare const normalizeArrowhead: (arrowhead: AnyArrowhead | null | undefined) => Arrowhead | null;
3
+ export declare const getArrowheadForPicker: (arrowhead: AnyArrowhead | null | undefined) => Arrowhead | null;
@@ -0,0 +1,27 @@
1
+ import { type GlobalPoint } from "@excalidraw/math";
2
+ import type { AppState, NullableGridSize } from "@excalidraw/excalidraw/types";
3
+ import { LinearElementEditor } from "../linearElementEditor";
4
+ import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawBindableElement, NonDeletedSceneElementsMap } from "../types";
5
+ import type { Scene } from "../Scene";
6
+ export declare const isFocusPointVisible: (focusPoint: GlobalPoint, arrow: ExcalidrawArrowElement, bindableElement: ExcalidrawBindableElement, elementsMap: ElementsMap, appState: {
7
+ isBindingEnabled: AppState["isBindingEnabled"];
8
+ zoom: AppState["zoom"];
9
+ }, startOrEnd: "start" | "end", ignoreOverlap?: boolean) => boolean;
10
+ export declare const handleFocusPointDrag: (linearElementEditor: LinearElementEditor, elementsMap: NonDeletedSceneElementsMap, pointerCoords: {
11
+ x: number;
12
+ y: number;
13
+ }, scene: Scene, appState: AppState, gridSize: NullableGridSize, switchToInsideBinding: boolean) => void;
14
+ export declare const handleFocusPointPointerDown: (arrow: ExcalidrawArrowElement, pointerDownState: {
15
+ origin: {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ }, elementsMap: NonDeletedSceneElementsMap, appState: AppState) => {
20
+ hitFocusPoint: "start" | "end" | null;
21
+ pointerOffset: {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ };
26
+ export declare const handleFocusPointPointerUp: (linearElementEditor: LinearElementEditor, scene: Scene) => void;
27
+ export declare const handleFocusPointHover: (arrow: ExcalidrawArrowElement, scenePointerX: number, scenePointerY: number, scene: Scene, appState: AppState) => "start" | "end" | null;
@@ -0,0 +1,5 @@
1
+ import type { App } from "@excalidraw/excalidraw/types";
2
+ export declare const maybeHandleArrowPointlikeDrag: ({ app, event, }: {
3
+ app: App;
4
+ event: KeyboardEvent | React.KeyboardEvent<Element> | PointerEvent;
5
+ }) => boolean;
@@ -24,12 +24,15 @@ export type BindingStrategy = {
24
24
  *
25
25
  * IMPORTANT: currently must be > 0 (this also applies to the computed gap)
26
26
  */
27
- export declare const BASE_BINDING_GAP = 10;
27
+ export declare const BASE_BINDING_GAP = 5;
28
28
  export declare const BASE_BINDING_GAP_ELBOW = 5;
29
+ export declare const BASE_ARROW_MIN_LENGTH = 10;
30
+ export declare const FOCUS_POINT_SIZE: number;
29
31
  export declare const getBindingGap: (bindTarget: ExcalidrawBindableElement, opts: Pick<ExcalidrawArrowElement, "elbowed">) => number;
30
32
  export declare const maxBindingDistance_simple: (zoom?: AppState["zoom"]) => number;
31
- export declare const shouldEnableBindingForPointerEvent: (event: React.PointerEvent<HTMLElement>) => boolean;
32
- export declare const isBindingEnabled: (appState: AppState) => boolean;
33
+ export declare const isBindingEnabled: (appState: {
34
+ isBindingEnabled: AppState["isBindingEnabled"];
35
+ }) => boolean;
33
36
  export declare const bindOrUnbindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, draggingPoints: PointsPositionUpdates, scenePointerX: number, scenePointerY: number, scene: Scene, appState: AppState, opts?: {
34
37
  newArrow?: boolean;
35
38
  altKey?: boolean;
@@ -51,7 +54,7 @@ export declare const getBindingStrategyForDraggingBindingElementEndpoints: (arro
51
54
  end: BindingStrategy;
52
55
  };
53
56
  export declare const bindOrUnbindBindingElements: (selectedArrows: NonDeleted<ExcalidrawArrowElement>[], scene: Scene, appState: AppState) => void;
54
- export declare const bindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, hoveredElement: ExcalidrawBindableElement, mode: BindMode, startOrEnd: "start" | "end", scene: Scene, focusPoint?: GlobalPoint) => void;
57
+ export declare const bindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, hoveredElement: ExcalidrawBindableElement, mode: BindMode, startOrEnd: "start" | "end", scene: Scene, focusPoint?: GlobalPoint, shouldSnapToOutline?: boolean) => void;
55
58
  export declare const unbindBindingElement: (arrow: NonDeleted<ExcalidrawArrowElement>, startOrEnd: "start" | "end", scene: Scene) => ExcalidrawBindableElement["id"] | null;
56
59
  export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, scene: Scene, options?: {
57
60
  simultaneouslyUpdated?: readonly ExcalidrawElement[];
@@ -65,10 +68,11 @@ export declare const updateBindings: (latestElement: ExcalidrawElement, scene: S
65
68
  };
66
69
  }) => void;
67
70
  export declare const getHeadingForElbowArrowSnap: (p: Readonly<GlobalPoint>, otherPoint: Readonly<GlobalPoint>, bindableElement: ExcalidrawBindableElement | undefined | null, aabb: Bounds | undefined | null, origPoint: GlobalPoint, elementsMap: ElementsMap, zoom?: AppState["zoom"]) => Heading;
68
- export declare const bindPointToSnapToElementOutline: (arrowElement: ExcalidrawArrowElement, bindableElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, customIntersector?: LineSegment<GlobalPoint>) => GlobalPoint;
71
+ export declare const bindPointToSnapToElementOutline: (arrowElement: ExcalidrawArrowElement, bindableElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, customIntersector?: LineSegment<GlobalPoint>, isMidpointSnappingEnabled?: boolean) => GlobalPoint;
69
72
  export declare const avoidRectangularCorner: (arrowElement: ExcalidrawArrowElement, bindTarget: ExcalidrawBindableElement, elementsMap: ElementsMap, p: GlobalPoint) => GlobalPoint;
70
- export declare const updateBoundPoint: (arrow: NonDeleted<ExcalidrawArrowElement>, startOrEnd: "startBinding" | "endBinding", binding: FixedPointBinding | null | undefined, bindableElement: ExcalidrawBindableElement, elementsMap: ElementsMap, customIntersector?: LineSegment<GlobalPoint>) => LocalPoint | null;
71
- export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => {
73
+ export declare const snapToMid: (bindTarget: ExcalidrawBindableElement, elementsMap: ElementsMap, p: GlobalPoint, tolerance?: number, arrowElement?: ExcalidrawArrowElement) => GlobalPoint | undefined;
74
+ export declare const updateBoundPoint: (arrow: NonDeleted<ExcalidrawArrowElement>, startOrEnd: "startBinding" | "endBinding", binding: FixedPointBinding | null | undefined, bindableElement: ExcalidrawBindableElement, elementsMap: ElementsMap, dragging?: boolean) => LocalPoint | null;
75
+ export declare const calculateFixedPointForElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawElbowArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, shouldSnapToOutline?: boolean, isMidpointSnappingEnabled?: boolean) => {
72
76
  fixedPoint: FixedPoint;
73
77
  };
74
78
  export declare const calculateFixedPointForNonElbowArrowBinding: (linearElement: NonDeleted<ExcalidrawArrowElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, focusPoint?: GlobalPoint) => {
@@ -120,5 +124,6 @@ export declare class BindableElement {
120
124
  export declare const getGlobalFixedPointForBindableElement: (fixedPointRatio: FixedPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap) => GlobalPoint;
121
125
  export declare const getGlobalFixedPoints: (arrow: ExcalidrawArrowElement, elementsMap: ElementsMap) => [GlobalPoint, GlobalPoint];
122
126
  export declare const getArrowLocalFixedPoints: (arrow: ExcalidrawElbowArrowElement, elementsMap: ElementsMap) => LocalPoint[];
123
- export declare const normalizeFixedPoint: <T extends FixedPoint | null>(fixedPoint: T) => T extends null ? null : FixedPoint;
127
+ export declare const isFixedPoint: (fixedPoint: any) => fixedPoint is FixedPointBinding["fixedPoint"];
128
+ export declare const normalizeFixedPoint: <T extends FixedPoint>(fixedPoint: T) => FixedPoint;
124
129
  export declare const getBindingSideMidPoint: (binding: FixedPointBinding, elementsMap: ElementsMap) => GlobalPoint | LocalPoint | null;
@@ -43,7 +43,7 @@ export declare const getBoundsFromPoints: (points: ExcalidrawFreeDrawElement["po
43
43
  export declare const getArrowheadSize: (arrowhead: Arrowhead) => number;
44
44
  /** @returns number in degrees */
45
45
  export declare const getArrowheadAngle: (arrowhead: Arrowhead) => Degrees;
46
- export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
46
+ export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead, offsetMultiplier?: number) => number[] | null;
47
47
  export declare const getElementBounds: (element: ExcalidrawElement, elementsMap: ElementsMap, nonRotated?: boolean) => Bounds;
48
48
  export declare const getCommonBounds: (elements: ElementsMapOrArray, elementsMap?: ElementsMap) => Bounds;
49
49
  export declare const getDraggedElementsBounds: (elements: ExcalidrawElement[], dragOffset: {
@@ -1,6 +1,6 @@
1
1
  import type { GlobalPoint, LineSegment } from "@excalidraw/math";
2
2
  import type { FrameNameBounds } from "@excalidraw/excalidraw/types";
3
- import type { ElementsMap, ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, Ordered } from "./types";
3
+ import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawBindableElement, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap, Ordered } from "./types";
4
4
  export declare const shouldTestInside: (element: ExcalidrawElement) => boolean;
5
5
  export type HitTestArgs = {
6
6
  point: GlobalPoint;
@@ -14,8 +14,9 @@ export declare const hitElementItself: ({ point, element, threshold, elementsMap
14
14
  export declare const hitElementBoundingBox: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap, tolerance?: number) => boolean;
15
15
  export declare const hitElementBoundingBoxOnly: (hitArgs: HitTestArgs, elementsMap: ElementsMap) => boolean;
16
16
  export declare const hitElementBoundText: (point: GlobalPoint, element: ExcalidrawElement, elementsMap: ElementsMap) => boolean;
17
- export declare const getAllHoveredElementAtPoint: (point: Readonly<GlobalPoint>, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, toleranceFn?: (element: ExcalidrawBindableElement) => number) => NonDeleted<ExcalidrawBindableElement>[];
18
- export declare const getHoveredElementForBinding: (point: Readonly<GlobalPoint>, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, toleranceFn?: (element: ExcalidrawBindableElement) => number) => NonDeleted<ExcalidrawBindableElement> | null;
17
+ export declare const getAllHoveredElementAtPoint: (point: Readonly<GlobalPoint>, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, tolerance?: number) => NonDeleted<ExcalidrawBindableElement>[];
18
+ export declare const getHoveredElementForBinding: (point: Readonly<GlobalPoint>, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, tolerance?: number) => NonDeleted<ExcalidrawBindableElement> | null;
19
+ export declare const getHoveredElementForFocusPoint: (point: GlobalPoint, arrow: ExcalidrawArrowElement, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, tolerance?: number) => ExcalidrawBindableElement | null;
19
20
  /**
20
21
  * Intersect a line with an element for binding test
21
22
  *
@@ -1,7 +1,8 @@
1
1
  import type { AppState } from "@excalidraw/excalidraw/types";
2
+ import type { Scene } from "./Scene";
2
3
  import type { ElementsMap, ExcalidrawElement } from "./types";
3
4
  export interface Distribution {
4
5
  space: "between";
5
6
  axis: "x" | "y";
6
7
  }
7
- export declare const distributeElements: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, distribution: Distribution, appState: Readonly<AppState>) => ExcalidrawElement[];
8
+ export declare const distributeElements: (selectedElements: ExcalidrawElement[], elementsMap: ElementsMap, distribution: Distribution, appState: Readonly<AppState>, scene: Scene) => ExcalidrawElement[];
@@ -13,5 +13,7 @@ export declare const updateElbowArrowPoints: (arrow: Readonly<ExcalidrawElbowArr
13
13
  endBinding?: FixedPointBinding | null;
14
14
  }, options?: {
15
15
  isDragging?: boolean;
16
+ isBindingEnabled?: boolean;
17
+ isMidpointSnappingEnabled?: boolean;
16
18
  }) => ElementUpdate<ExcalidrawElbowArrowElement>;
17
19
  export declare const validateElbowPoints: <P extends GlobalPoint | LocalPoint>(points: readonly P[], tolerance?: number) => boolean;
@@ -28,6 +28,7 @@ export * from "./elbowArrow";
28
28
  export * from "./elementLink";
29
29
  export * from "./embeddable";
30
30
  export * from "./flowchart";
31
+ export * from "./arrows/focus";
31
32
  export * from "./fractionalIndex";
32
33
  export * from "./frame";
33
34
  export * from "./groups";
@@ -44,6 +45,7 @@ export * from "./resizeTest";
44
45
  export * from "./Scene";
45
46
  export * from "./selection";
46
47
  export * from "./shape";
48
+ export * from "./shapes";
47
49
  export * from "./showSelectedShapeActions";
48
50
  export * from "./sizeHelpers";
49
51
  export * from "./sortElements";
@@ -56,3 +58,5 @@ export * from "./transformHandles";
56
58
  export * from "./typeChecks";
57
59
  export * from "./utils";
58
60
  export * from "./zindex";
61
+ export * from "./arrows/helpers";
62
+ export * from "./arrowheads";
@@ -33,6 +33,8 @@ export declare class LinearElementEditor {
33
33
  }>;
34
34
  readonly hoverPointIndex: number;
35
35
  readonly segmentMidPointHoveredCoords: GlobalPoint | null;
36
+ readonly hoveredFocusPointBinding: "start" | "end" | null;
37
+ readonly draggedFocusPointBinding: "start" | "end" | null;
36
38
  readonly elbowed: boolean;
37
39
  readonly customLineAngle: number | null;
38
40
  readonly isEditing: boolean;
@@ -94,6 +96,9 @@ export declare class LinearElementEditor {
94
96
  startBinding?: FixedPointBinding | null;
95
97
  endBinding?: FixedPointBinding | null;
96
98
  moveMidPointsWithElement?: boolean | null;
99
+ }, options?: {
100
+ isBindingEnabled?: boolean;
101
+ isMidpointSnappingEnabled?: boolean;
97
102
  }): void;
98
103
  static shouldAddMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, appState: AppState, elementsMap: ElementsMap): boolean;
99
104
  static addMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, app: AppClassProperties, snapToGrid: boolean, scene: Scene): {
@@ -11,6 +11,8 @@ export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TEl
11
11
  */
12
12
  export declare const mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, elementsMap: ElementsMap, updates: ElementUpdate<TElement>, options?: {
13
13
  isDragging?: boolean;
14
+ isBindingEnabled?: boolean;
15
+ isMidpointSnappingEnabled?: boolean;
14
16
  }) => TElement;
15
17
  export declare const newElementWith: <TElement extends ExcalidrawElement>(element: TElement, updates: ElementUpdate<TElement>,
16
18
  /** pass `true` to always regenerate */
@@ -1,6 +1,6 @@
1
1
  import type { AppState, InteractiveCanvasAppState } from "@excalidraw/excalidraw/types";
2
2
  import { LinearElementEditor } from "./linearElementEditor";
3
- import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeletedExcalidrawElement } from "./types";
3
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement } from "./types";
4
4
  /**
5
5
  * Frames and their containing elements are not to be selected at the same time.
6
6
  * Given an array of selected elements, if there are frames and their containing elements
@@ -32,3 +32,7 @@ export declare const getSelectionStateForElements: (targetElements: readonly Exc
32
32
  selectedGroupIds: AppState["selectedGroupIds"];
33
33
  selectedLinearElement: LinearElementEditor | null;
34
34
  };
35
+ /**
36
+ * Returns editing or single-selected text element, if any.
37
+ */
38
+ export declare const getActiveTextElement: (selectedElements: readonly NonDeleted<ExcalidrawElement>[], appState: Pick<AppState, "editingTextElement">) => import("./types").ExcalidrawTextElement | null;
@@ -1,8 +1,7 @@
1
1
  import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
2
2
  import { type GeometricShape } from "@excalidraw/utils/shape";
3
- import type { Bounds } from "@excalidraw/common";
4
- import type { AppClassProperties, Zoom } from "@excalidraw/excalidraw/types";
5
- import type { ExcalidrawElement, ElementsMap, NonDeleted, ExcalidrawLinearElement, NonDeletedSceneElementsMap } from "./types";
3
+ import type { AppClassProperties } from "@excalidraw/excalidraw/types";
4
+ import type { ExcalidrawElement, ElementsMap } from "./types";
6
5
  export type ToolCategory = "manipulation" | "elements";
7
6
  export declare const SHAPES: readonly [{
8
7
  readonly icon: import("react/jsx-runtime").JSX.Element;
@@ -223,23 +222,4 @@ export declare const getToolbarTools: (app: AppClassProperties) => readonly [{
223
222
  readonly myocSimplifiedMode: true;
224
223
  })[]];
225
224
  export declare const findShapeByKey: (key: string, app: AppClassProperties) => "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "lasso" | "eraser" | null;
226
- /**
227
- * get the pure geometric shape of an excalidraw elementw
228
- * which is then used for hit detection
229
- */
230
- export declare const getElementShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point>;
231
225
  export declare const getBoundTextShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point> | null;
232
- export declare const getControlPointsForBezierCurve: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P) => P[] | null;
233
- export declare const getBezierXY: <P extends GlobalPoint | LocalPoint>(p0: P, p1: P, p2: P, p3: P, t: number) => P;
234
- export declare const getBezierCurveLength: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P) => number;
235
- export declare const mapIntervalToBezierT: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P, interval: number) => number;
236
- /**
237
- * Get the axis-aligned bounding box for a given element
238
- */
239
- export declare const aabbForElement: (element: Readonly<ExcalidrawElement>, elementsMap: NonDeletedSceneElementsMap, offset?: [number, number, number, number]) => Bounds;
240
- export declare const pointInsideBounds: <P extends GlobalPoint | LocalPoint>(p: P, bounds: Bounds) => boolean;
241
- export declare const aabbsOverlapping: (a: Bounds, b: Bounds) => boolean;
242
- export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
243
- export declare const isPathALoop: (points: ExcalidrawLinearElement["points"],
244
- /** supply if you want the loop detection to account for current zoom */
245
- zoomValue?: Zoom["value"]) => boolean;
@@ -31,7 +31,7 @@ export declare const suppportsHorizontalAlign: (selectedElements: NonDeletedExca
31
31
  declare const VALID_CONTAINER_TYPES: Set<string>;
32
32
  export declare const isValidTextContainer: (element: {
33
33
  type: ExcalidrawElementType;
34
- }) => boolean;
34
+ }) => element is ExcalidrawTextContainer;
35
35
  export declare const computeContainerDimensionForBoundText: (dimension: number, containerType: ExtractSetType<typeof VALID_CONTAINER_TYPES>) => number;
36
36
  export declare const getBoundTextMaxWidth: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElement | null) => number;
37
37
  export declare const getBoundTextMaxHeight: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer) => number;
@@ -5,9 +5,35 @@ import type { FontString } from "./types";
5
5
  export declare const containsCJK: (text: string) => boolean;
6
6
  /**
7
7
  * Breaks the line into the tokens based on the found line break opporutnities.
8
+ *
9
+ * Note: tokenization normalizes to NFC first so decomposed graphemes are treated as
10
+ * their composed variants for wrapping. Any code that needs exact source offsets should
11
+ * keep in mind that this assumes the input text is already NFC-normalized.
8
12
  */
9
13
  export declare const parseTokens: (line: string) => string[];
10
14
  /**
11
15
  * Wraps the original text into the lines based on the given width.
16
+ *
17
+ * This is a convenience adapter over `getWrappedTextLines()` for call sites
18
+ * that only need the rendered wrapped string and not the source offsets.
12
19
  */
13
20
  export declare const wrapText: (text: string, font: FontString, maxWidth: number) => string;
21
+ /**
22
+ * A single rendered visual line produced from the original text.
23
+ *
24
+ * `start` and `end` are end-exclusive code-unit offsets into the original text, and do
25
+ * not include synthetic soft line breaks inserted by this module. If trailing whitespace
26
+ * was trimmed away at a wrap boundary, `end` points to the last rendered character.
27
+ */
28
+ export type WrappedTextLine = {
29
+ text: string;
30
+ start: number;
31
+ end: number;
32
+ };
33
+ /**
34
+ * Returns the rendered visual lines together with their source offsets.
35
+ *
36
+ * This is the source-of-truth wrapping pipeline for callers that need more than the
37
+ * final wrapped string, for example caret placement or future editor/rich-text mapping.
38
+ */
39
+ export declare const getWrappedTextLines: (text: string, font: FontString, maxWidth: number) => WrappedTextLine[];
@@ -1,7 +1,7 @@
1
1
  import type { LocalPoint, Radians } from "@excalidraw/math";
2
2
  import type { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "@excalidraw/common";
3
3
  import type { MakeBrand, MarkNonNullable, Merge, ValueOf } from "@excalidraw/common/utility-types";
4
- export type ChartType = "bar" | "line";
4
+ export type ChartType = "bar" | "line" | "radar";
5
5
  export type FillStyle = "hachure" | "cross-hatch" | "solid" | "zigzag";
6
6
  export type FontFamilyKeys = keyof typeof FONT_FAMILY;
7
7
  export type FontFamilyValues = typeof FONT_FAMILY[FontFamilyKeys];
@@ -208,7 +208,10 @@ export type PointsPositionUpdates = Map<Index, {
208
208
  point: LocalPoint;
209
209
  isDragging?: boolean;
210
210
  }>;
211
- export type Arrowhead = "arrow" | "bar" | "dot" | "circle" | "circle_outline" | "triangle" | "triangle_outline" | "diamond" | "diamond_outline" | "crowfoot_one" | "crowfoot_many" | "crowfoot_one_or_many";
211
+ export type CardinalityArrowhead = "cardinality_one" | "cardinality_many" | "cardinality_one_or_many" | "cardinality_exactly_one" | "cardinality_zero_or_one" | "cardinality_zero_or_many";
212
+ export type ArrowheadLegacy = "dot" | "crowfoot_one" | "crowfoot_many" | "crowfoot_one_or_many";
213
+ export type Arrowhead = "arrow" | "bar" | "circle" | "circle_outline" | "triangle" | "triangle_outline" | "diamond" | "diamond_outline" | CardinalityArrowhead;
214
+ export type AnyArrowhead = Arrowhead | ArrowheadLegacy;
212
215
  export type ExcalidrawLinearElement = _ExcalidrawElementBase & Readonly<{
213
216
  type: "line" | "arrow";
214
217
  points: readonly LocalPoint[];
@@ -1,7 +1,7 @@
1
1
  import { type GlobalPoint } from "@excalidraw/math";
2
2
  import type { Curve, LineSegment } from "@excalidraw/math";
3
- import type { Zoom } from "@excalidraw/excalidraw/types";
4
- import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, ExcalidrawRectanguloidElement } from "./types";
3
+ import type { AppState, Zoom } from "@excalidraw/excalidraw/types";
4
+ import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawBindableElement, ExcalidrawDiamondElement, ExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawLinearElement, ExcalidrawRectanguloidElement } from "./types";
5
5
  /**
6
6
  * Returns the **rotated** components of freedraw, line or arrow elements.
7
7
  *
@@ -18,6 +18,7 @@ export declare function deconstructLinearOrFreeDrawElement(element: ExcalidrawLi
18
18
  * @returns Tuple of **unrotated** line segments (0) and curves (1)
19
19
  */
20
20
  export declare function deconstructRectanguloidElement(element: ExcalidrawRectanguloidElement, offset?: number): [LineSegment<GlobalPoint>[], Curve<GlobalPoint>[]];
21
+ export declare function getDiamondBaseCorners(element: ExcalidrawDiamondElement, offset?: number): Curve<GlobalPoint>[];
21
22
  /**
22
23
  * Get the **unrotated** building components of a diamond element
23
24
  * in the form of line segments and curves as a tuple, in this order.
@@ -31,4 +32,5 @@ export declare const isPathALoop: (points: ExcalidrawLinearElement["points"],
31
32
  /** supply if you want the loop detection to account for current zoom */
32
33
  zoomValue?: Zoom["value"]) => boolean;
33
34
  export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
34
- export declare const projectFixedPointOntoDiagonal: (arrow: ExcalidrawArrowElement, point: GlobalPoint, element: ExcalidrawElement, startOrEnd: "start" | "end", elementsMap: ElementsMap) => GlobalPoint | null;
35
+ export declare const getSnapOutlineMidPoint: (point: GlobalPoint, element: ExcalidrawBindableElement, elementsMap: ElementsMap, zoom: AppState["zoom"]) => GlobalPoint | undefined;
36
+ export declare const projectFixedPointOntoDiagonal: (arrow: ExcalidrawArrowElement, point: GlobalPoint, element: ExcalidrawBindableElement, startOrEnd: "start" | "end", elementsMap: ElementsMap, zoom: AppState["zoom"], isMidpointSnappingEnabled?: boolean) => GlobalPoint | null;
@@ -6,7 +6,7 @@ import type { ExcalidrawArrowElement, ExcalidrawElement, NonDeletedExcalidrawEle
6
6
  * Moves the arrow element above any bindable elements it intersects with or
7
7
  * hovers over.
8
8
  */
9
- export declare const moveArrowAboveBindable: (point: GlobalPoint, arrow: ExcalidrawArrowElement, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, scene: Scene) => readonly OrderedExcalidrawElement[];
9
+ export declare const moveArrowAboveBindable: (point: GlobalPoint, arrow: ExcalidrawArrowElement, elements: readonly Ordered<NonDeletedExcalidrawElement>[], elementsMap: NonDeletedSceneElementsMap, scene: Scene, hit?: NonDeletedExcalidrawElement) => readonly OrderedExcalidrawElement[];
10
10
  export declare const moveOneLeft: (allElements: readonly ExcalidrawElement[], appState: AppState, scene: Scene) => readonly ExcalidrawElement[];
11
11
  export declare const moveOneRight: (allElements: readonly ExcalidrawElement[], appState: AppState, scene: Scene) => readonly ExcalidrawElement[];
12
12
  export declare const moveAllLeft: (allElements: readonly ExcalidrawElement[], appState: AppState) => readonly ExcalidrawElement[] | ExcalidrawElement[];
@@ -38,8 +38,13 @@ export declare const actionAddToLibrary: {
38
38
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
39
39
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
40
40
  isBindingEnabled: boolean;
41
+ bindingPreference: "enabled" | "disabled";
42
+ isMidpointSnappingEnabled: boolean;
41
43
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
42
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
44
+ suggestedBinding: {
45
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
46
+ midPoint?: import("@excalidraw/math").GlobalPoint;
47
+ } | null;
43
48
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
44
49
  frameRendering: {
45
50
  enabled: boolean;
@@ -49,7 +54,7 @@ export declare const actionAddToLibrary: {
49
54
  };
50
55
  editingFrame: string | null;
51
56
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
52
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
57
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
53
58
  activeTool: {
54
59
  lastActiveTool: import("../types").ActiveTool | null;
55
60
  locked: boolean;
@@ -104,6 +109,10 @@ export declare const actionAddToLibrary: {
104
109
  } | {
105
110
  name: "elementLinkSelector";
106
111
  sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
112
+ } | {
113
+ name: "charts";
114
+ data: import("../charts").Spreadsheet;
115
+ rawText: string;
107
116
  };
108
117
  defaultSidebarDockedPreference: boolean;
109
118
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
@@ -132,20 +141,12 @@ export declare const actionAddToLibrary: {
132
141
  height: number;
133
142
  offsetTop: number;
134
143
  offsetLeft: number;
135
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
144
+ fileHandle: FileSystemFileHandle | null;
136
145
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
137
146
  stats: {
138
147
  open: boolean;
139
148
  panels: number;
140
149
  };
141
- currentChartType: import("@excalidraw/element/types").ChartType;
142
- pasteDialog: {
143
- shown: false;
144
- data: null;
145
- } | {
146
- shown: true;
147
- data: import("../charts").Spreadsheet;
148
- };
149
150
  showHyperlinkPopup: false | "info" | "editor";
150
151
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
151
152
  snapLines: readonly import("../snapping").SnapLine[];
@@ -200,8 +201,13 @@ export declare const actionAddToLibrary: {
200
201
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
201
202
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
202
203
  isBindingEnabled: boolean;
204
+ bindingPreference: "enabled" | "disabled";
205
+ isMidpointSnappingEnabled: boolean;
203
206
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
204
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
207
+ suggestedBinding: {
208
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
209
+ midPoint?: import("@excalidraw/math").GlobalPoint;
210
+ } | null;
205
211
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
206
212
  frameRendering: {
207
213
  enabled: boolean;
@@ -211,7 +217,7 @@ export declare const actionAddToLibrary: {
211
217
  };
212
218
  editingFrame: string | null;
213
219
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
214
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
220
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
215
221
  activeTool: {
216
222
  lastActiveTool: import("../types").ActiveTool | null;
217
223
  locked: boolean;
@@ -266,6 +272,10 @@ export declare const actionAddToLibrary: {
266
272
  } | {
267
273
  name: "elementLinkSelector";
268
274
  sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
275
+ } | {
276
+ name: "charts";
277
+ data: import("../charts").Spreadsheet;
278
+ rawText: string;
269
279
  };
270
280
  defaultSidebarDockedPreference: boolean;
271
281
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
@@ -281,7 +291,7 @@ export declare const actionAddToLibrary: {
281
291
  selectedElementsAreBeingDragged: boolean;
282
292
  shouldCacheIgnoreZoom: boolean;
283
293
  toast: {
284
- message: string;
294
+ message: React.ReactNode;
285
295
  closable?: boolean;
286
296
  duration?: number;
287
297
  } | null;
@@ -299,20 +309,12 @@ export declare const actionAddToLibrary: {
299
309
  height: number;
300
310
  offsetTop: number;
301
311
  offsetLeft: number;
302
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
312
+ fileHandle: FileSystemFileHandle | null;
303
313
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
304
314
  stats: {
305
315
  open: boolean;
306
316
  panels: number;
307
317
  };
308
- currentChartType: import("@excalidraw/element/types").ChartType;
309
- pasteDialog: {
310
- shown: false;
311
- data: null;
312
- } | {
313
- shown: true;
314
- data: import("../charts").Spreadsheet;
315
- };
316
318
  showHyperlinkPopup: false | "info" | "editor";
317
319
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
318
320
  snapLines: readonly import("../snapping").SnapLine[];
@@ -367,8 +369,13 @@ export declare const actionAddToLibrary: {
367
369
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
368
370
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
369
371
  isBindingEnabled: boolean;
372
+ bindingPreference: "enabled" | "disabled";
373
+ isMidpointSnappingEnabled: boolean;
370
374
  startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
371
- suggestedBinding: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
375
+ suggestedBinding: {
376
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
377
+ midPoint?: import("@excalidraw/math").GlobalPoint;
378
+ } | null;
372
379
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
373
380
  frameRendering: {
374
381
  enabled: boolean;
@@ -378,7 +385,7 @@ export declare const actionAddToLibrary: {
378
385
  };
379
386
  editingFrame: string | null;
380
387
  elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
381
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
388
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
382
389
  activeTool: {
383
390
  lastActiveTool: import("../types").ActiveTool | null;
384
391
  locked: boolean;
@@ -433,6 +440,10 @@ export declare const actionAddToLibrary: {
433
440
  } | {
434
441
  name: "elementLinkSelector";
435
442
  sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
443
+ } | {
444
+ name: "charts";
445
+ data: import("../charts").Spreadsheet;
446
+ rawText: string;
436
447
  };
437
448
  defaultSidebarDockedPreference: boolean;
438
449
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
@@ -448,7 +459,7 @@ export declare const actionAddToLibrary: {
448
459
  selectedElementsAreBeingDragged: boolean;
449
460
  shouldCacheIgnoreZoom: boolean;
450
461
  toast: {
451
- message: string;
462
+ message: React.ReactNode;
452
463
  closable?: boolean;
453
464
  duration?: number;
454
465
  } | null;
@@ -466,20 +477,12 @@ export declare const actionAddToLibrary: {
466
477
  height: number;
467
478
  offsetTop: number;
468
479
  offsetLeft: number;
469
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
480
+ fileHandle: FileSystemFileHandle | null;
470
481
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
471
482
  stats: {
472
483
  open: boolean;
473
484
  panels: number;
474
485
  };
475
- currentChartType: import("@excalidraw/element/types").ChartType;
476
- pasteDialog: {
477
- shown: false;
478
- data: null;
479
- } | {
480
- shown: true;
481
- data: import("../charts").Spreadsheet;
482
- };
483
486
  showHyperlinkPopup: false | "info" | "editor";
484
487
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
485
488
  snapLines: readonly import("../snapping").SnapLine[];