@excalidraw/excalidraw 0.18.0-5fffc47 → 0.18.0-6135548

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 (524) hide show
  1. package/dist/dev/{chunk-FB2NA5UG.js → chunk-6JJSWC4C.js} +1 -1
  2. package/dist/dev/{chunk-FB2NA5UG.js.map → chunk-6JJSWC4C.js.map} +2 -2
  3. package/dist/dev/chunk-DJHLEOOZ.js +69 -0
  4. package/dist/dev/chunk-DJHLEOOZ.js.map +7 -0
  5. package/dist/dev/{chunk-PWQMCSHA.js → chunk-GJCHM3LM.js} +91 -24
  6. package/dist/dev/chunk-GJCHM3LM.js.map +7 -0
  7. package/dist/dev/{chunk-YMRX7R7U.js → chunk-PW6TXCLQ.js} +270 -419
  8. package/dist/dev/chunk-PW6TXCLQ.js.map +7 -0
  9. package/dist/dev/{chunk-CP5DND7P.js → chunk-Y3BTNZQY.js} +2 -2
  10. package/dist/dev/data/{image-L23D26XS.js → image-2BHUUSLM.js} +3 -3
  11. package/dist/dev/index.css +937 -192
  12. package/dist/dev/index.css.map +3 -3
  13. package/dist/dev/index.js +10398 -8330
  14. package/dist/dev/index.js.map +4 -4
  15. package/dist/dev/locales/{ar-SA-XORAP2EK.js → ar-SA-JK5MQ7TT.js} +300 -142
  16. package/dist/dev/locales/ar-SA-JK5MQ7TT.js.map +7 -0
  17. package/dist/dev/locales/{az-AZ-NAUU3Z4Y.js → az-AZ-2PAD62G4.js} +241 -83
  18. package/dist/dev/locales/az-AZ-2PAD62G4.js.map +7 -0
  19. package/dist/dev/locales/{bg-BG-AAABLFCY.js → bg-BG-HUKVYCRK.js} +229 -71
  20. package/dist/dev/locales/bg-BG-HUKVYCRK.js.map +7 -0
  21. package/dist/dev/locales/{bn-BD-PM4AC5WG.js → bn-BD-V2CQI46P.js} +209 -51
  22. package/dist/dev/locales/bn-BD-V2CQI46P.js.map +7 -0
  23. package/dist/dev/locales/bn-IN-MBEO4C3J.js +744 -0
  24. package/dist/dev/locales/bn-IN-MBEO4C3J.js.map +7 -0
  25. package/dist/dev/locales/{ca-ES-YNNMFRQX.js → ca-ES-KWEKW4C3.js} +275 -117
  26. package/dist/dev/locales/ca-ES-KWEKW4C3.js.map +7 -0
  27. package/dist/dev/locales/{cs-CZ-DGZA5IKG.js → cs-CZ-W5AHZB5H.js} +229 -71
  28. package/dist/dev/locales/cs-CZ-W5AHZB5H.js.map +7 -0
  29. package/dist/dev/locales/{da-DK-N76F4QAJ.js → da-DK-ITTM6YM4.js} +298 -140
  30. package/dist/dev/locales/da-DK-ITTM6YM4.js.map +7 -0
  31. package/dist/dev/locales/de-CH-OAWPDQFJ.js +744 -0
  32. package/dist/dev/locales/de-CH-OAWPDQFJ.js.map +7 -0
  33. package/dist/dev/locales/{de-DE-DMRXZ2SZ.js → de-DE-ZRDYEPMS.js} +199 -41
  34. package/dist/dev/locales/de-DE-ZRDYEPMS.js.map +7 -0
  35. package/dist/dev/locales/{el-GR-HIKPLEXI.js → el-GR-QXASZLPE.js} +274 -116
  36. package/dist/dev/locales/el-GR-QXASZLPE.js.map +7 -0
  37. package/dist/dev/locales/{en-V3NQTBPG.js → en-JANWVQZF.js} +8 -2
  38. package/dist/dev/locales/{es-ES-AQYVXC32.js → es-ES-VLQBB7FJ.js} +212 -54
  39. package/dist/dev/locales/es-ES-VLQBB7FJ.js.map +7 -0
  40. package/dist/dev/locales/{eu-ES-3TOEU5DE.js → eu-ES-TF2DGTZU.js} +210 -52
  41. package/dist/dev/locales/eu-ES-TF2DGTZU.js.map +7 -0
  42. package/dist/dev/locales/{fa-IR-527GAKUP.js → fa-IR-ITKFQ7QV.js} +286 -128
  43. package/dist/dev/locales/fa-IR-ITKFQ7QV.js.map +7 -0
  44. package/dist/dev/locales/{fi-FI-M3WLVDFP.js → fi-FI-UWZRVXFI.js} +240 -82
  45. package/dist/dev/locales/fi-FI-UWZRVXFI.js.map +7 -0
  46. package/dist/dev/locales/{fr-FR-YE4VDJFI.js → fr-FR-A72LKGCO.js} +203 -45
  47. package/dist/dev/locales/fr-FR-A72LKGCO.js.map +7 -0
  48. package/dist/dev/locales/{gl-ES-KMXUYGUN.js → gl-ES-2QCVIBFP.js} +212 -54
  49. package/dist/dev/locales/gl-ES-2QCVIBFP.js.map +7 -0
  50. package/dist/dev/locales/he-IL-WJNUHU26.js +744 -0
  51. package/dist/dev/locales/he-IL-WJNUHU26.js.map +7 -0
  52. package/dist/dev/locales/hi-IN-XGMO235V.js +744 -0
  53. package/dist/dev/locales/hi-IN-XGMO235V.js.map +7 -0
  54. package/dist/dev/locales/{hu-HU-VIYZI3X4.js → hu-HU-37FDQFIS.js} +238 -80
  55. package/dist/dev/locales/hu-HU-37FDQFIS.js.map +7 -0
  56. package/dist/dev/locales/{id-ID-22TWZNLA.js → id-ID-EJIDCO4E.js} +245 -87
  57. package/dist/dev/locales/id-ID-EJIDCO4E.js.map +7 -0
  58. package/dist/dev/locales/{it-IT-MDEQ2SG3.js → it-IT-X34PIOJ2.js} +202 -44
  59. package/dist/dev/locales/it-IT-X34PIOJ2.js.map +7 -0
  60. package/dist/dev/locales/{ja-JP-K2DI4W6B.js → ja-JP-37FC23PR.js} +247 -89
  61. package/dist/dev/locales/ja-JP-37FC23PR.js.map +7 -0
  62. package/dist/dev/locales/{kaa-6BPSNM3R.js → kaa-7ZYDFVKA.js} +202 -44
  63. package/dist/dev/locales/kaa-7ZYDFVKA.js.map +7 -0
  64. package/dist/dev/locales/{kab-KAB-2S7ZURK7.js → kab-KAB-MILWXBA6.js} +210 -52
  65. package/dist/dev/locales/kab-KAB-MILWXBA6.js.map +7 -0
  66. package/dist/dev/locales/{kk-KZ-UJPYGRQQ.js → kk-KZ-7BWTPIAV.js} +175 -17
  67. package/dist/dev/locales/kk-KZ-7BWTPIAV.js.map +7 -0
  68. package/dist/dev/locales/{km-KH-M5T5JKUE.js → km-KH-BV4P2KSZ.js} +198 -40
  69. package/dist/dev/locales/km-KH-BV4P2KSZ.js.map +7 -0
  70. package/dist/dev/locales/{ko-KR-RQX37SNF.js → ko-KR-TSXE5P7B.js} +218 -60
  71. package/dist/dev/locales/ko-KR-TSXE5P7B.js.map +7 -0
  72. package/dist/dev/locales/{ku-TR-5XJDIERL.js → ku-TR-ASSXNN3U.js} +198 -40
  73. package/dist/dev/locales/ku-TR-ASSXNN3U.js.map +7 -0
  74. package/dist/dev/locales/{lt-LT-MGUBX6CA.js → lt-LT-G7RZYQQU.js} +179 -21
  75. package/dist/dev/locales/lt-LT-G7RZYQQU.js.map +7 -0
  76. package/dist/dev/locales/{lv-LV-MD7N5VHD.js → lv-LV-DXNPBJZU.js} +196 -38
  77. package/dist/dev/locales/lv-LV-DXNPBJZU.js.map +7 -0
  78. package/dist/dev/locales/{mr-IN-4XWMNGQC.js → mr-IN-7F2ZCTCF.js} +204 -46
  79. package/dist/dev/locales/mr-IN-7F2ZCTCF.js.map +7 -0
  80. package/dist/dev/locales/{my-MM-O4Z74GN5.js → my-MM-NBI3KQGW.js} +181 -23
  81. package/dist/dev/locales/my-MM-NBI3KQGW.js.map +7 -0
  82. package/dist/dev/locales/{nb-NO-BMB73KRH.js → nb-NO-4DCTQT6L.js} +220 -62
  83. package/dist/dev/locales/nb-NO-4DCTQT6L.js.map +7 -0
  84. package/dist/dev/locales/{nl-NL-F2257BLQ.js → nl-NL-XGZJ7V2V.js} +297 -139
  85. package/dist/dev/locales/nl-NL-XGZJ7V2V.js.map +7 -0
  86. package/dist/dev/locales/{nn-NO-NCORG7TS.js → nn-NO-FR534JV5.js} +201 -43
  87. package/dist/dev/locales/nn-NO-FR534JV5.js.map +7 -0
  88. package/dist/dev/locales/{oc-FR-ATFBDMF6.js → oc-FR-YQCIKZIK.js} +220 -62
  89. package/dist/dev/locales/oc-FR-YQCIKZIK.js.map +7 -0
  90. package/dist/dev/locales/{pa-IN-D2I375G4.js → pa-IN-UM43JGD2.js} +190 -32
  91. package/dist/dev/locales/pa-IN-UM43JGD2.js.map +7 -0
  92. package/dist/dev/locales/{percentages-YKFLWNK2.js → percentages-OGWD7R2K.js} +2 -2
  93. package/dist/dev/locales/{pl-PL-YJHOWAAW.js → pl-PL-2UGKA6HK.js} +214 -56
  94. package/dist/dev/locales/pl-PL-2UGKA6HK.js.map +7 -0
  95. package/dist/dev/locales/{pt-BR-APOPYZJ7.js → pt-BR-H23QFYE3.js} +237 -79
  96. package/dist/dev/locales/pt-BR-H23QFYE3.js.map +7 -0
  97. package/dist/dev/locales/pt-PT-RHKJH5I5.js +744 -0
  98. package/dist/dev/locales/pt-PT-RHKJH5I5.js.map +7 -0
  99. package/dist/dev/locales/{ro-RO-L575VRQA.js → ro-RO-IIFONL3T.js} +203 -45
  100. package/dist/dev/locales/ro-RO-IIFONL3T.js.map +7 -0
  101. package/dist/dev/locales/{ru-RU-BLG6HZG5.js → ru-RU-QEP6D7GK.js} +253 -95
  102. package/dist/dev/locales/ru-RU-QEP6D7GK.js.map +7 -0
  103. package/dist/dev/locales/si-LK-LZYJQLHF.js +744 -0
  104. package/dist/dev/locales/si-LK-LZYJQLHF.js.map +7 -0
  105. package/dist/dev/locales/{sk-SK-DY6IPO5U.js → sk-SK-RWC6UWGY.js} +200 -42
  106. package/dist/dev/locales/sk-SK-RWC6UWGY.js.map +7 -0
  107. package/dist/dev/locales/{sl-SI-5DZSRA47.js → sl-SI-QJT2CAUO.js} +197 -39
  108. package/dist/dev/locales/sl-SI-QJT2CAUO.js.map +7 -0
  109. package/dist/dev/locales/{sv-SE-V32YHALQ.js → sv-SE-3MAT3NDX.js} +202 -44
  110. package/dist/dev/locales/sv-SE-3MAT3NDX.js.map +7 -0
  111. package/dist/dev/locales/{ta-IN-5JRAGQAO.js → ta-IN-J7XOYF2T.js} +257 -99
  112. package/dist/dev/locales/ta-IN-J7XOYF2T.js.map +7 -0
  113. package/dist/dev/locales/{th-TH-55ACRHDJ.js → th-TH-2OI52EOQ.js} +289 -131
  114. package/dist/dev/locales/th-TH-2OI52EOQ.js.map +7 -0
  115. package/dist/dev/locales/{tr-TR-7QYBXDBO.js → tr-TR-G7TAUHUI.js} +257 -99
  116. package/dist/dev/locales/tr-TR-G7TAUHUI.js.map +7 -0
  117. package/dist/dev/locales/{uk-UA-TJS2TMRH.js → uk-UA-IVSVBJIG.js} +229 -71
  118. package/dist/dev/locales/uk-UA-IVSVBJIG.js.map +7 -0
  119. package/dist/dev/locales/{si-LK-KT7GGO6D.js → uz-UZ-KCVDUVDE.js} +212 -54
  120. package/dist/dev/locales/uz-UZ-KCVDUVDE.js.map +7 -0
  121. package/dist/dev/locales/vi-VN-KBZAVWP5.js +744 -0
  122. package/dist/dev/locales/vi-VN-KBZAVWP5.js.map +7 -0
  123. package/dist/dev/locales/{zh-CN-4MXUOFTH.js → zh-CN-IS26RG2D.js} +199 -41
  124. package/dist/dev/locales/zh-CN-IS26RG2D.js.map +7 -0
  125. package/dist/dev/locales/{zh-HK-RBTGIU3U.js → zh-HK-KBWQ6SJC.js} +175 -17
  126. package/dist/dev/locales/zh-HK-KBWQ6SJC.js.map +7 -0
  127. package/dist/dev/locales/{zh-TW-U5VF4CCU.js → zh-TW-JKJWJQ4J.js} +204 -46
  128. package/dist/dev/locales/zh-TW-JKJWJQ4J.js.map +7 -0
  129. package/dist/dev/subset-shared.chunk.js +2 -2
  130. package/dist/dev/subset-worker.chunk.js +2 -2
  131. package/dist/prod/chunk-AJI3LATG.js +1 -0
  132. package/dist/prod/{chunk-GF46JCB3.js → chunk-EODSYFCR.js} +7 -7
  133. package/dist/prod/chunk-R7EP47KM.js +4 -0
  134. package/dist/prod/{chunk-LS7FJGPW.js → chunk-Z5NKEFVG.js} +8 -8
  135. package/dist/prod/data/{image-NWF7UX55.js → image-WVUQOLPF.js} +1 -1
  136. package/dist/prod/index.css +1 -1
  137. package/dist/prod/index.js +34 -25
  138. package/dist/prod/locales/ar-SA-IYHKZRSE.js +8 -0
  139. package/dist/prod/locales/az-AZ-WL5GYRHK.js +1 -0
  140. package/dist/prod/locales/bg-BG-FXZYTRPD.js +5 -0
  141. package/dist/prod/locales/bn-BD-KO6YL5G2.js +3 -0
  142. package/dist/prod/locales/bn-IN-PC6JHKYB.js +3 -0
  143. package/dist/prod/locales/ca-ES-AREX5NEO.js +8 -0
  144. package/dist/prod/locales/cs-CZ-HXAZMFYH.js +7 -0
  145. package/dist/prod/locales/da-DK-5X7ZLFU3.js +2 -0
  146. package/dist/prod/locales/de-CH-76ZNVSOF.js +7 -0
  147. package/dist/prod/locales/de-DE-G3JVZ4MQ.js +7 -0
  148. package/dist/prod/locales/el-GR-4AZTZGY6.js +7 -0
  149. package/dist/prod/locales/en-2SFQVNRK.js +1 -0
  150. package/dist/prod/locales/es-ES-ART7BI3G.js +7 -0
  151. package/dist/prod/locales/eu-ES-BIF4XBMT.js +7 -0
  152. package/dist/prod/locales/fa-IR-D4HHKAAI.js +9 -0
  153. package/dist/prod/locales/fi-FI-O35ZY7UI.js +6 -0
  154. package/dist/prod/locales/fr-FR-XEFNCM4I.js +12 -0
  155. package/dist/prod/locales/gl-ES-U4NYM3X5.js +6 -0
  156. package/dist/prod/locales/he-IL-656ABAVQ.js +8 -0
  157. package/dist/prod/locales/hi-IN-Z55GAFFR.js +3 -0
  158. package/dist/prod/locales/hu-HU-UJ62DVIW.js +3 -0
  159. package/dist/prod/locales/id-ID-FLZFU3OO.js +8 -0
  160. package/dist/prod/locales/it-IT-GIGIGIBJ.js +12 -0
  161. package/dist/prod/locales/ja-JP-43VXGDWI.js +7 -0
  162. package/dist/prod/locales/kaa-L3IMSDYL.js +1 -0
  163. package/dist/prod/locales/kab-KAB-XKPWJLNL.js +4 -0
  164. package/dist/prod/locales/kk-KZ-SXPDDY2H.js +1 -0
  165. package/dist/prod/locales/km-KH-DOS4CPGC.js +7 -0
  166. package/dist/prod/locales/ko-KR-BGC6VCY4.js +5 -0
  167. package/dist/prod/locales/ku-TR-J7IUITIA.js +6 -0
  168. package/dist/prod/locales/lt-LT-AC3LV5KG.js +3 -0
  169. package/dist/prod/locales/lv-LV-I6AY7QG2.js +4 -0
  170. package/dist/prod/locales/mr-IN-5SP4HV5B.js +9 -0
  171. package/dist/prod/locales/my-MM-S7ECRBYZ.js +1 -0
  172. package/dist/prod/locales/nb-NO-6PNHTF4R.js +8 -0
  173. package/dist/prod/locales/nl-NL-R4C4SUIG.js +13 -0
  174. package/dist/prod/locales/nn-NO-3TFXTM7Y.js +4 -0
  175. package/dist/prod/locales/oc-FR-IK6GIE7H.js +4 -0
  176. package/dist/prod/locales/pa-IN-YAKHYJET.js +4 -0
  177. package/dist/prod/locales/percentages-OL6W367U.js +1 -0
  178. package/dist/prod/locales/pl-PL-BIY22ZWU.js +12 -0
  179. package/dist/prod/locales/pt-BR-Q23NUPD6.js +6 -0
  180. package/dist/prod/locales/pt-PT-LOPEJLPJ.js +8 -0
  181. package/dist/prod/locales/ro-RO-W3D2ZATV.js +12 -0
  182. package/dist/prod/locales/ru-RU-DCTW7QSH.js +10 -0
  183. package/dist/prod/locales/si-LK-FYRRHO3C.js +1 -0
  184. package/dist/prod/locales/sk-SK-MC7UOHQO.js +7 -0
  185. package/dist/prod/locales/sl-SI-L6B6HFY5.js +6 -0
  186. package/dist/prod/locales/sv-SE-KMY6L2BA.js +8 -0
  187. package/dist/prod/locales/ta-IN-ZQCYE2JK.js +6 -0
  188. package/dist/prod/locales/th-TH-WS7ECBAV.js +1 -0
  189. package/dist/prod/locales/tr-TR-S5FI7JRW.js +4 -0
  190. package/dist/prod/locales/uk-UA-4EZUWUSQ.js +6 -0
  191. package/dist/prod/locales/uz-UZ-OKHL6AFA.js +1 -0
  192. package/dist/prod/locales/vi-VN-K34TWHF7.js +7 -0
  193. package/dist/prod/locales/zh-CN-JE4UZWNO.js +11 -0
  194. package/dist/prod/locales/zh-HK-RM35YDXX.js +1 -0
  195. package/dist/prod/locales/zh-TW-ONGLV6Y5.js +9 -0
  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/src/bounds.d.ts +10 -0
  199. package/dist/types/common/src/colors.d.ts +59 -39
  200. package/dist/types/common/src/constants.d.ts +15 -27
  201. package/dist/types/common/src/editorInterface.d.ts +34 -0
  202. package/dist/types/common/src/font-metadata.d.ts +1 -3
  203. package/dist/types/common/src/index.d.ts +2 -0
  204. package/dist/types/common/src/keys.d.ts +1 -1
  205. package/dist/types/common/src/utility-types.d.ts +0 -1
  206. package/dist/types/common/src/utils.d.ts +47 -35
  207. package/dist/types/element/src/Scene.d.ts +3 -3
  208. package/dist/types/element/src/binding.d.ts +58 -44
  209. package/dist/types/element/src/bounds.d.ts +2 -10
  210. package/dist/types/element/src/collision.d.ts +6 -2
  211. package/dist/types/element/src/comparisons.d.ts +7 -7
  212. package/dist/types/element/src/dragElements.d.ts +3 -3
  213. package/dist/types/element/src/duplicate.d.ts +3 -3
  214. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  215. package/dist/types/element/src/frame.d.ts +5 -1
  216. package/dist/types/element/src/heading.d.ts +2 -1
  217. package/dist/types/element/src/image.d.ts +1 -11
  218. package/dist/types/element/src/index.d.ts +1 -3
  219. package/dist/types/element/src/linearElementEditor.d.ts +16 -20
  220. package/dist/types/element/src/mutateElement.d.ts +3 -1
  221. package/dist/types/element/src/newElement.d.ts +6 -6
  222. package/dist/types/element/src/renderElement.d.ts +1 -7
  223. package/dist/types/element/src/resizeElements.d.ts +10 -10
  224. package/dist/types/element/src/resizeTest.d.ts +6 -5
  225. package/dist/types/element/src/selection.d.ts +3 -7
  226. package/dist/types/element/src/shape.d.ts +8 -7
  227. package/dist/types/element/src/textMeasurements.d.ts +1 -3
  228. package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
  229. package/dist/types/element/src/transformHandles.d.ts +8 -27
  230. package/dist/types/element/src/typeChecks.d.ts +4 -7
  231. package/dist/types/element/src/types.d.ts +7 -11
  232. package/dist/types/element/src/utils.d.ts +5 -2
  233. package/dist/types/element/src/zindex.d.ts +7 -1
  234. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +78 -136
  235. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
  236. package/dist/types/excalidraw/actions/actionBoundText.d.ts +57 -96
  237. package/dist/types/excalidraw/actions/actionCanvas.d.ts +341 -763
  238. package/dist/types/excalidraw/actions/actionClipboard.d.ts +76 -876
  239. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +27 -47
  240. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +92 -156
  241. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  242. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
  243. package/dist/types/excalidraw/actions/actionElementLink.d.ts +23 -45
  244. package/dist/types/excalidraw/actions/actionElementLock.d.ts +56 -95
  245. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +28 -48
  246. package/dist/types/excalidraw/actions/actionExport.d.ts +124 -1129
  247. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -404
  248. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
  249. package/dist/types/excalidraw/actions/actionFrame.d.ts +193 -308
  250. package/dist/types/excalidraw/actions/actionGroup.d.ts +60 -107
  251. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +117 -177
  252. package/dist/types/excalidraw/actions/actionLink.d.ts +26 -46
  253. package/dist/types/excalidraw/actions/actionMenu.d.ts +21 -43
  254. package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -369
  255. package/dist/types/excalidraw/actions/actionProperties.d.ts +117 -2560
  256. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +30 -54
  257. package/dist/types/excalidraw/actions/actionStyles.d.ts +27 -47
  258. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  259. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +27 -47
  260. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +27 -47
  261. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +20 -42
  262. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  263. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +27 -47
  264. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +27 -47
  265. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +28 -48
  266. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
  267. package/dist/types/excalidraw/actions/register.d.ts +2 -2
  268. package/dist/types/excalidraw/actions/types.d.ts +3 -3
  269. package/dist/types/excalidraw/appState.d.ts +7 -6
  270. package/dist/types/excalidraw/clipboard.d.ts +7 -31
  271. package/dist/types/excalidraw/components/Actions.d.ts +5 -2
  272. package/dist/types/excalidraw/components/App.d.ts +58 -58
  273. package/dist/types/excalidraw/components/ButtonIconCycle.d.ts +1 -1
  274. package/dist/types/excalidraw/components/Card.d.ts +1 -3
  275. package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
  276. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -2
  277. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
  278. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
  279. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -3
  280. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  281. package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
  282. package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
  283. package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
  284. package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
  285. package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
  286. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -1
  287. package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
  288. package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
  289. package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
  290. package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
  291. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  292. package/dist/types/excalidraw/components/InlineIcon.d.ts +2 -2
  293. package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  294. package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
  295. package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
  296. package/dist/types/excalidraw/components/LinkButton.d.ts +4 -0
  297. package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
  298. package/dist/types/excalidraw/components/MobileMenu.d.ts +1 -1
  299. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -1
  300. package/dist/types/excalidraw/components/Modal.d.ts +0 -1
  301. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
  302. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  303. package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
  304. package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
  305. package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
  306. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
  307. package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
  308. package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
  309. package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
  310. package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
  311. package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
  312. package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
  313. package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
  314. package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
  315. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
  316. package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
  317. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  318. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
  319. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +27 -0
  320. package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
  321. package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +26 -0
  322. package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
  323. package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
  324. package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
  325. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
  326. package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +4 -25
  327. package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
  328. package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
  329. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
  330. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
  331. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
  332. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  333. package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
  334. package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +8 -0
  335. package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
  336. package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
  337. package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
  338. package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
  339. package/dist/types/excalidraw/components/TTDDialog/types.d.ts +91 -0
  340. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
  341. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
  342. package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
  343. package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
  344. package/dist/types/excalidraw/components/Toast.d.ts +3 -3
  345. package/dist/types/excalidraw/components/Trans.d.ts +2 -2
  346. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
  347. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +30 -33
  348. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +5 -5
  349. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
  350. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +12 -19
  351. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
  352. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
  353. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
  354. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
  355. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
  356. package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +1 -1
  357. package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
  358. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
  359. package/dist/types/excalidraw/components/icons.d.ts +21 -12
  360. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
  361. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -2
  362. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +26 -32
  363. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
  364. package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
  365. package/dist/types/excalidraw/data/blob.d.ts +321 -3
  366. package/dist/types/excalidraw/data/encode.d.ts +4 -4
  367. package/dist/types/excalidraw/data/encryption.d.ts +5 -5
  368. package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
  369. package/dist/types/excalidraw/data/index.d.ts +3 -3
  370. package/dist/types/excalidraw/data/json.d.ts +159 -2
  371. package/dist/types/excalidraw/data/library.d.ts +24 -9
  372. package/dist/types/excalidraw/data/restore.d.ts +25 -10
  373. package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
  374. package/dist/types/excalidraw/errors.d.ts +14 -0
  375. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
  376. package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
  377. package/dist/types/excalidraw/i18n.d.ts +2 -2
  378. package/dist/types/excalidraw/index.d.ts +6 -7
  379. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  380. package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
  381. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
  382. package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
  383. package/dist/types/excalidraw/scene/export.d.ts +2 -2
  384. package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
  385. package/dist/types/excalidraw/scene/types.d.ts +22 -5
  386. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  387. package/dist/types/excalidraw/snapping.d.ts +5 -5
  388. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
  389. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
  390. package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
  391. package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
  392. package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
  393. package/dist/types/excalidraw/types.d.ts +22 -20
  394. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
  395. package/dist/types/math/src/polygon.d.ts +2 -2
  396. package/dist/types/math/src/range.d.ts +1 -3
  397. package/dist/types/math/src/segment.d.ts +3 -3
  398. package/dist/types/utils/src/bbox.d.ts +1 -1
  399. package/dist/types/utils/src/export.d.ts +5 -5
  400. package/dist/types/utils/src/shape.d.ts +6 -6
  401. package/dist/types/utils/src/withinBounds.d.ts +2 -2
  402. package/package.json +7 -8
  403. package/dist/dev/chunk-MFAYKRVR.js +0 -66
  404. package/dist/dev/chunk-MFAYKRVR.js.map +0 -7
  405. package/dist/dev/chunk-PWQMCSHA.js.map +0 -7
  406. package/dist/dev/chunk-YMRX7R7U.js.map +0 -7
  407. package/dist/dev/locales/ar-SA-XORAP2EK.js.map +0 -7
  408. package/dist/dev/locales/az-AZ-NAUU3Z4Y.js.map +0 -7
  409. package/dist/dev/locales/bg-BG-AAABLFCY.js.map +0 -7
  410. package/dist/dev/locales/bn-BD-PM4AC5WG.js.map +0 -7
  411. package/dist/dev/locales/ca-ES-YNNMFRQX.js.map +0 -7
  412. package/dist/dev/locales/cs-CZ-DGZA5IKG.js.map +0 -7
  413. package/dist/dev/locales/da-DK-N76F4QAJ.js.map +0 -7
  414. package/dist/dev/locales/de-DE-DMRXZ2SZ.js.map +0 -7
  415. package/dist/dev/locales/el-GR-HIKPLEXI.js.map +0 -7
  416. package/dist/dev/locales/es-ES-AQYVXC32.js.map +0 -7
  417. package/dist/dev/locales/eu-ES-3TOEU5DE.js.map +0 -7
  418. package/dist/dev/locales/fa-IR-527GAKUP.js.map +0 -7
  419. package/dist/dev/locales/fi-FI-M3WLVDFP.js.map +0 -7
  420. package/dist/dev/locales/fr-FR-YE4VDJFI.js.map +0 -7
  421. package/dist/dev/locales/gl-ES-KMXUYGUN.js.map +0 -7
  422. package/dist/dev/locales/he-IL-4MU5N22B.js +0 -586
  423. package/dist/dev/locales/he-IL-4MU5N22B.js.map +0 -7
  424. package/dist/dev/locales/hi-IN-ZHZNZWFC.js +0 -586
  425. package/dist/dev/locales/hi-IN-ZHZNZWFC.js.map +0 -7
  426. package/dist/dev/locales/hu-HU-VIYZI3X4.js.map +0 -7
  427. package/dist/dev/locales/id-ID-22TWZNLA.js.map +0 -7
  428. package/dist/dev/locales/it-IT-MDEQ2SG3.js.map +0 -7
  429. package/dist/dev/locales/ja-JP-K2DI4W6B.js.map +0 -7
  430. package/dist/dev/locales/kaa-6BPSNM3R.js.map +0 -7
  431. package/dist/dev/locales/kab-KAB-2S7ZURK7.js.map +0 -7
  432. package/dist/dev/locales/kk-KZ-UJPYGRQQ.js.map +0 -7
  433. package/dist/dev/locales/km-KH-M5T5JKUE.js.map +0 -7
  434. package/dist/dev/locales/ko-KR-RQX37SNF.js.map +0 -7
  435. package/dist/dev/locales/ku-TR-5XJDIERL.js.map +0 -7
  436. package/dist/dev/locales/lt-LT-MGUBX6CA.js.map +0 -7
  437. package/dist/dev/locales/lv-LV-MD7N5VHD.js.map +0 -7
  438. package/dist/dev/locales/mr-IN-4XWMNGQC.js.map +0 -7
  439. package/dist/dev/locales/my-MM-O4Z74GN5.js.map +0 -7
  440. package/dist/dev/locales/nb-NO-BMB73KRH.js.map +0 -7
  441. package/dist/dev/locales/nl-NL-F2257BLQ.js.map +0 -7
  442. package/dist/dev/locales/nn-NO-NCORG7TS.js.map +0 -7
  443. package/dist/dev/locales/oc-FR-ATFBDMF6.js.map +0 -7
  444. package/dist/dev/locales/pa-IN-D2I375G4.js.map +0 -7
  445. package/dist/dev/locales/pl-PL-YJHOWAAW.js.map +0 -7
  446. package/dist/dev/locales/pt-BR-APOPYZJ7.js.map +0 -7
  447. package/dist/dev/locales/pt-PT-W56WCN7P.js +0 -586
  448. package/dist/dev/locales/pt-PT-W56WCN7P.js.map +0 -7
  449. package/dist/dev/locales/ro-RO-L575VRQA.js.map +0 -7
  450. package/dist/dev/locales/ru-RU-BLG6HZG5.js.map +0 -7
  451. package/dist/dev/locales/si-LK-KT7GGO6D.js.map +0 -7
  452. package/dist/dev/locales/sk-SK-DY6IPO5U.js.map +0 -7
  453. package/dist/dev/locales/sl-SI-5DZSRA47.js.map +0 -7
  454. package/dist/dev/locales/sv-SE-V32YHALQ.js.map +0 -7
  455. package/dist/dev/locales/ta-IN-5JRAGQAO.js.map +0 -7
  456. package/dist/dev/locales/th-TH-55ACRHDJ.js.map +0 -7
  457. package/dist/dev/locales/tr-TR-7QYBXDBO.js.map +0 -7
  458. package/dist/dev/locales/uk-UA-TJS2TMRH.js.map +0 -7
  459. package/dist/dev/locales/vi-VN-Y5CQ2EKQ.js +0 -586
  460. package/dist/dev/locales/vi-VN-Y5CQ2EKQ.js.map +0 -7
  461. package/dist/dev/locales/zh-CN-4MXUOFTH.js.map +0 -7
  462. package/dist/dev/locales/zh-HK-RBTGIU3U.js.map +0 -7
  463. package/dist/dev/locales/zh-TW-U5VF4CCU.js.map +0 -7
  464. package/dist/prod/chunk-HT4FKTIQ.js +0 -4
  465. package/dist/prod/chunk-Z3N5DIM6.js +0 -1
  466. package/dist/prod/locales/ar-SA-G6X2FPQ2.js +0 -10
  467. package/dist/prod/locales/az-AZ-76LH7QW2.js +0 -1
  468. package/dist/prod/locales/bg-BG-XCXSNQG7.js +0 -5
  469. package/dist/prod/locales/bn-BD-2XOGV67Q.js +0 -5
  470. package/dist/prod/locales/ca-ES-6MX7JW3Y.js +0 -8
  471. package/dist/prod/locales/cs-CZ-2BRQDIVT.js +0 -11
  472. package/dist/prod/locales/da-DK-5WZEPLOC.js +0 -5
  473. package/dist/prod/locales/de-DE-XR44H4JA.js +0 -8
  474. package/dist/prod/locales/el-GR-BZB4AONW.js +0 -10
  475. package/dist/prod/locales/en-LQE6K457.js +0 -1
  476. package/dist/prod/locales/es-ES-U4NZUMDT.js +0 -9
  477. package/dist/prod/locales/eu-ES-A7QVB2H4.js +0 -11
  478. package/dist/prod/locales/fa-IR-HGAKTJCU.js +0 -8
  479. package/dist/prod/locales/fi-FI-Z5N7JZ37.js +0 -6
  480. package/dist/prod/locales/fr-FR-RHASNOE6.js +0 -9
  481. package/dist/prod/locales/gl-ES-HMX3MZ6V.js +0 -10
  482. package/dist/prod/locales/he-IL-6SHJWFNN.js +0 -10
  483. package/dist/prod/locales/hi-IN-IWLTKZ5I.js +0 -4
  484. package/dist/prod/locales/hu-HU-A5ZG7DT2.js +0 -7
  485. package/dist/prod/locales/id-ID-SAP4L64H.js +0 -10
  486. package/dist/prod/locales/it-IT-JPQ66NNP.js +0 -11
  487. package/dist/prod/locales/ja-JP-DBVTYXUO.js +0 -8
  488. package/dist/prod/locales/kaa-6HZHGXH3.js +0 -1
  489. package/dist/prod/locales/kab-KAB-ZGHBKWFO.js +0 -8
  490. package/dist/prod/locales/kk-KZ-P5N5QNE5.js +0 -1
  491. package/dist/prod/locales/km-KH-HSX4SM5Z.js +0 -11
  492. package/dist/prod/locales/ko-KR-MTYHY66A.js +0 -9
  493. package/dist/prod/locales/ku-TR-6OUDTVRD.js +0 -9
  494. package/dist/prod/locales/lt-LT-XHIRWOB4.js +0 -3
  495. package/dist/prod/locales/lv-LV-5QDEKY6T.js +0 -7
  496. package/dist/prod/locales/mr-IN-CRQNXWMA.js +0 -13
  497. package/dist/prod/locales/my-MM-5M5IBNSE.js +0 -1
  498. package/dist/prod/locales/nb-NO-T6EIAALU.js +0 -10
  499. package/dist/prod/locales/nl-NL-IS3SIHDZ.js +0 -8
  500. package/dist/prod/locales/nn-NO-6E72VCQL.js +0 -8
  501. package/dist/prod/locales/oc-FR-POXYY2M6.js +0 -8
  502. package/dist/prod/locales/pa-IN-N4M65BXN.js +0 -4
  503. package/dist/prod/locales/percentages-BXMCSKIN.js +0 -1
  504. package/dist/prod/locales/pl-PL-T2D74RX3.js +0 -9
  505. package/dist/prod/locales/pt-BR-5N22H2LF.js +0 -9
  506. package/dist/prod/locales/pt-PT-UZXXM6DQ.js +0 -9
  507. package/dist/prod/locales/ro-RO-JPDTUUEW.js +0 -11
  508. package/dist/prod/locales/ru-RU-B4JR7IUQ.js +0 -9
  509. package/dist/prod/locales/si-LK-N5RQ5JYF.js +0 -1
  510. package/dist/prod/locales/sk-SK-C5VTKIMK.js +0 -6
  511. package/dist/prod/locales/sl-SI-NN7IZMDC.js +0 -6
  512. package/dist/prod/locales/sv-SE-XGPEYMSR.js +0 -10
  513. package/dist/prod/locales/ta-IN-2NMHFXQM.js +0 -9
  514. package/dist/prod/locales/th-TH-HPSO5L25.js +0 -2
  515. package/dist/prod/locales/tr-TR-DEFEU3FU.js +0 -7
  516. package/dist/prod/locales/uk-UA-QMV73CPH.js +0 -6
  517. package/dist/prod/locales/vi-VN-M7AON7JQ.js +0 -5
  518. package/dist/prod/locales/zh-CN-LNUGB5OW.js +0 -10
  519. package/dist/prod/locales/zh-HK-E62DVLB3.js +0 -1
  520. package/dist/prod/locales/zh-TW-RAJ6MFWO.js +0 -9
  521. /package/dist/dev/{chunk-CP5DND7P.js.map → chunk-Y3BTNZQY.js.map} +0 -0
  522. /package/dist/dev/data/{image-L23D26XS.js.map → image-2BHUUSLM.js.map} +0 -0
  523. /package/dist/dev/locales/{en-V3NQTBPG.js.map → en-JANWVQZF.js.map} +0 -0
  524. /package/dist/dev/locales/{percentages-YKFLWNK2.js.map → percentages-OGWD7R2K.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  define_import_meta_env_default
3
- } from "./chunk-CP5DND7P.js";
3
+ } from "./chunk-Y3BTNZQY.js";
4
4
  import {
5
5
  __publicField
6
6
  } from "./chunk-XDFCUUT6.js";
@@ -9,17 +9,16 @@ import {
9
9
  import tEXt from "png-chunk-text";
10
10
  import encodePng from "png-chunks-encode";
11
11
  import decodePng from "png-chunks-extract";
12
- import { EXPORT_DATA_TYPES as EXPORT_DATA_TYPES3, MIME_TYPES as MIME_TYPES7 } from "@excalidraw/common";
12
+ import { EXPORT_DATA_TYPES as EXPORT_DATA_TYPES3, MIME_TYPES as MIME_TYPES6 } from "@excalidraw/common";
13
13
 
14
14
  // data/blob.ts
15
15
  import { nanoid } from "nanoid";
16
16
  import {
17
17
  IMAGE_MIME_TYPES,
18
- MIME_TYPES as MIME_TYPES6,
18
+ MIME_TYPES as MIME_TYPES5,
19
19
  bytesToHexString,
20
20
  isPromiseLike
21
21
  } from "@excalidraw/common";
22
- import { clearElementsForExport as clearElementsForExport2 } from "@excalidraw/element";
23
22
 
24
23
  // appState.ts
25
24
  import {
@@ -115,7 +114,7 @@ var getDefaultAppState = () => {
115
114
  panels: STATS_PANELS.generalStats | STATS_PANELS.elementProperties
116
115
  },
117
116
  startBoundElement: null,
118
- suggestedBindings: [],
117
+ suggestedBinding: null,
119
118
  frameRendering: { enabled: true, clip: true, name: true, outline: true },
120
119
  frameToHighlight: null,
121
120
  editingFrame: null,
@@ -142,7 +141,7 @@ var getDefaultAppState = () => {
142
141
  searchMatches: null,
143
142
  lockedMultiSelections: {},
144
143
  activeLockedId: null,
145
- stylesPanelMode: "full"
144
+ bindMode: "orbit"
146
145
  };
147
146
  };
148
147
  var APP_STATE_STORAGE_CONF = /* @__PURE__ */ ((config) => config)({
@@ -229,7 +228,7 @@ var APP_STATE_STORAGE_CONF = /* @__PURE__ */ ((config) => config)({
229
228
  shouldCacheIgnoreZoom: { browser: true, export: false, server: false },
230
229
  stats: { browser: true, export: false, server: false },
231
230
  startBoundElement: { browser: false, export: false, server: false },
232
- suggestedBindings: { browser: false, export: false, server: false },
231
+ suggestedBinding: { browser: false, export: false, server: false },
233
232
  frameRendering: { browser: false, export: false, server: false },
234
233
  frameToHighlight: { browser: false, export: false, server: false },
235
234
  editingFrame: { browser: false, export: false, server: false },
@@ -252,7 +251,7 @@ var APP_STATE_STORAGE_CONF = /* @__PURE__ */ ((config) => config)({
252
251
  searchMatches: { browser: false, export: false, server: false },
253
252
  lockedMultiSelections: { browser: true, export: true, server: true },
254
253
  activeLockedId: { browser: false, export: false, server: false },
255
- stylesPanelMode: { browser: false, export: false, server: false }
254
+ bindMode: { browser: true, export: false, server: false }
256
255
  });
257
256
  var _clearAppStateForStorage = (appState, exportType) => {
258
257
  const stateForExport = {};
@@ -323,6 +322,24 @@ var ExcalidrawError = class extends Error {
323
322
  this.name = "ExcalidrawError";
324
323
  }
325
324
  };
325
+ var RequestError = class extends Error {
326
+ constructor({
327
+ message = "Something went wrong",
328
+ status = 500,
329
+ data
330
+ } = {}) {
331
+ super();
332
+ __publicField(this, "status");
333
+ __publicField(this, "data");
334
+ this.name = "RequestError";
335
+ this.message = message;
336
+ this.status = status;
337
+ this.data = data;
338
+ }
339
+ toObject() {
340
+ return { name: this.name, status: this.status, message: this.message };
341
+ }
342
+ };
326
343
 
327
344
  // scene/index.ts
328
345
  import {
@@ -423,14 +440,14 @@ import {
423
440
  FRAME_STYLE as FRAME_STYLE3,
424
441
  FONT_FAMILY as FONT_FAMILY2,
425
442
  SVG_NS as SVG_NS2,
426
- THEME as THEME3,
427
- THEME_FILTER as THEME_FILTER2,
428
- MIME_TYPES as MIME_TYPES5,
443
+ THEME as THEME5,
444
+ MIME_TYPES as MIME_TYPES4,
429
445
  EXPORT_DATA_TYPES as EXPORT_DATA_TYPES2,
430
446
  arrayToMap,
431
447
  distance,
432
448
  getFontString as getFontString2,
433
- toBrandedType
449
+ toBrandedType,
450
+ applyDarkModeFilter as applyDarkModeFilter4
434
451
  } from "@excalidraw/common";
435
452
  import { getCommonBounds as getCommonBounds2, getElementAbsoluteCoords as getElementAbsoluteCoords4 } from "@excalidraw/element";
436
453
  import {
@@ -524,10 +541,6 @@ import {
524
541
  MIME_TYPES as MIME_TYPES2,
525
542
  VERSIONS
526
543
  } from "@excalidraw/common";
527
- import {
528
- clearElementsForDatabase,
529
- clearElementsForExport
530
- } from "@excalidraw/element";
531
544
 
532
545
  // data/filesystem.ts
533
546
  import {
@@ -621,7 +634,7 @@ var serializeAsJSON = (elements, appState, files, type) => {
621
634
  type: EXPORT_DATA_TYPES.excalidraw,
622
635
  version: VERSIONS.excalidraw,
623
636
  source: getExportSource(),
624
- elements: type === "local" ? clearElementsForExport(elements) : clearElementsForDatabase(elements),
637
+ elements,
625
638
  appState: type === "local" ? cleanAppStateForExport(appState) : clearAppStateForDatabase(appState),
626
639
  files: type === "local" ? filterOutDeletedFiles(elements, files) : (
627
640
  // will be stripped from JSON
@@ -687,7 +700,8 @@ import {
687
700
  FONT_FAMILY_FALLBACKS,
688
701
  CJK_HAND_DRAWN_FALLBACK_FONT,
689
702
  WINDOWS_EMOJI_FALLBACK_FONT,
690
- getFontFamilyFallbacks
703
+ getFontFamilyFallbacks,
704
+ FONT_SIZES
691
705
  } from "@excalidraw/common";
692
706
  import { getContainerElement } from "@excalidraw/element";
693
707
  import { charWidth } from "@excalidraw/element";
@@ -2916,7 +2930,7 @@ var _Fonts = class _Fonts {
2916
2930
  for (const [index, fontFamily] of fontFamilies.entries()) {
2917
2931
  const font = getFontString({
2918
2932
  fontFamily,
2919
- fontSize: 16
2933
+ fontSize: FONT_SIZES.sm
2920
2934
  });
2921
2935
  const text = _Fonts.getCharacters(charsPerFamily, fontFamily);
2922
2936
  if (!window.document.fonts.check(font, text)) {
@@ -3073,7 +3087,12 @@ __publicField(_Fonts, "loadElementsFonts", async (elements) => {
3073
3087
  var Fonts = _Fonts;
3074
3088
 
3075
3089
  // renderer/staticScene.ts
3076
- import { FRAME_STYLE, throttleRAF } from "@excalidraw/common";
3090
+ import {
3091
+ applyDarkModeFilter as applyDarkModeFilter2,
3092
+ FRAME_STYLE,
3093
+ THEME as THEME3,
3094
+ throttleRAF
3095
+ } from "@excalidraw/common";
3077
3096
  import { isElementLink } from "@excalidraw/element";
3078
3097
  import { createPlaceholderEmbeddableLabel } from "@excalidraw/element";
3079
3098
  import { getBoundTextElement } from "@excalidraw/element";
@@ -3155,19 +3174,7 @@ var isPointHittingLink = (element, elementsMap, appState, [x, y], isMobile) => {
3155
3174
  };
3156
3175
 
3157
3176
  // renderer/helpers.ts
3158
- import { THEME as THEME2, THEME_FILTER } from "@excalidraw/common";
3159
- import { FIXED_BINDING_DISTANCE } from "@excalidraw/element";
3160
- import { getDiamondPoints } from "@excalidraw/element";
3161
- import { elementCenterPoint, getCornerRadius } from "@excalidraw/element";
3162
- import {
3163
- curve,
3164
- curveCatmullRomCubicApproxPoints,
3165
- curveCatmullRomQuadraticApproxPoints,
3166
- curveOffsetPoints,
3167
- offsetPointsForQuadraticBezier,
3168
- pointFrom as pointFrom2,
3169
- pointRotateRads as pointRotateRads2
3170
- } from "@excalidraw/math";
3177
+ import { THEME as THEME2, applyDarkModeFilter } from "@excalidraw/common";
3171
3178
  var fillCircle = (context, cx, cy, radius, stroke, fill = true) => {
3172
3179
  context.beginPath();
3173
3180
  context.arc(cx, cy, radius, 0, Math.PI * 2);
@@ -3193,9 +3200,6 @@ var bootstrapCanvas = ({
3193
3200
  const context = canvas.getContext("2d");
3194
3201
  context.setTransform(1, 0, 0, 1, 0, 0);
3195
3202
  context.scale(scale, scale);
3196
- if (isExporting && theme === THEME2.DARK) {
3197
- context.filter = THEME_FILTER;
3198
- }
3199
3203
  if (typeof viewBackgroundColor === "string") {
3200
3204
  const hasTransparence = viewBackgroundColor === "transparent" || viewBackgroundColor.length === 5 || // #RGBA
3201
3205
  viewBackgroundColor.length === 9 || // #RRGGBBA
@@ -3204,7 +3208,7 @@ var bootstrapCanvas = ({
3204
3208
  context.clearRect(0, 0, normalizedWidth, normalizedHeight);
3205
3209
  }
3206
3210
  context.save();
3207
- context.fillStyle = viewBackgroundColor;
3211
+ context.fillStyle = theme === THEME2.DARK ? applyDarkModeFilter(viewBackgroundColor) : viewBackgroundColor;
3208
3212
  context.fillRect(0, 0, normalizedWidth, normalizedHeight);
3209
3213
  context.restore();
3210
3214
  } else {
@@ -3212,127 +3216,7 @@ var bootstrapCanvas = ({
3212
3216
  }
3213
3217
  return context;
3214
3218
  };
3215
- function drawCatmullRomQuadraticApprox(ctx, points, tension = 0.5) {
3216
- const pointSets = curveCatmullRomQuadraticApproxPoints(points, tension);
3217
- if (pointSets) {
3218
- for (let i = 0; i < pointSets.length - 1; i++) {
3219
- const [[cpX, cpY], [p2X, p2Y]] = pointSets[i];
3220
- ctx.quadraticCurveTo(cpX, cpY, p2X, p2Y);
3221
- }
3222
- }
3223
- }
3224
- function drawCatmullRomCubicApprox(ctx, points, tension = 0.5) {
3225
- const pointSets = curveCatmullRomCubicApproxPoints(points, tension);
3226
- if (pointSets) {
3227
- for (let i = 0; i < pointSets.length; i++) {
3228
- const [[cp1x, cp1y], [cp2x, cp2y], [x, y]] = pointSets[i];
3229
- ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
3230
- }
3231
- }
3232
- }
3233
- var drawHighlightForRectWithRotation = (context, element, elementsMap, padding) => {
3234
- const [x, y] = pointRotateRads2(
3235
- pointFrom2(element.x, element.y),
3236
- elementCenterPoint(element, elementsMap),
3237
- element.angle
3238
- );
3239
- context.save();
3240
- context.translate(x, y);
3241
- context.rotate(element.angle);
3242
- let radius = getCornerRadius(
3243
- Math.min(element.width, element.height),
3244
- element
3245
- );
3246
- if (radius === 0) {
3247
- radius = 0.01;
3248
- }
3249
- context.beginPath();
3250
- {
3251
- const topLeftApprox = offsetPointsForQuadraticBezier(
3252
- pointFrom2(0, 0 + radius),
3253
- pointFrom2(0, 0),
3254
- pointFrom2(0 + radius, 0),
3255
- padding
3256
- );
3257
- const topRightApprox = offsetPointsForQuadraticBezier(
3258
- pointFrom2(element.width - radius, 0),
3259
- pointFrom2(element.width, 0),
3260
- pointFrom2(element.width, radius),
3261
- padding
3262
- );
3263
- const bottomRightApprox = offsetPointsForQuadraticBezier(
3264
- pointFrom2(element.width, element.height - radius),
3265
- pointFrom2(element.width, element.height),
3266
- pointFrom2(element.width - radius, element.height),
3267
- padding
3268
- );
3269
- const bottomLeftApprox = offsetPointsForQuadraticBezier(
3270
- pointFrom2(radius, element.height),
3271
- pointFrom2(0, element.height),
3272
- pointFrom2(0, element.height - radius),
3273
- padding
3274
- );
3275
- context.moveTo(
3276
- topLeftApprox[topLeftApprox.length - 1][0],
3277
- topLeftApprox[topLeftApprox.length - 1][1]
3278
- );
3279
- context.lineTo(topRightApprox[0][0], topRightApprox[0][1]);
3280
- drawCatmullRomQuadraticApprox(context, topRightApprox);
3281
- context.lineTo(bottomRightApprox[0][0], bottomRightApprox[0][1]);
3282
- drawCatmullRomQuadraticApprox(context, bottomRightApprox);
3283
- context.lineTo(bottomLeftApprox[0][0], bottomLeftApprox[0][1]);
3284
- drawCatmullRomQuadraticApprox(context, bottomLeftApprox);
3285
- context.lineTo(topLeftApprox[0][0], topLeftApprox[0][1]);
3286
- drawCatmullRomQuadraticApprox(context, topLeftApprox);
3287
- }
3288
- {
3289
- const topLeftApprox = offsetPointsForQuadraticBezier(
3290
- pointFrom2(0 + radius, 0),
3291
- pointFrom2(0, 0),
3292
- pointFrom2(0, 0 + radius),
3293
- -FIXED_BINDING_DISTANCE
3294
- );
3295
- const topRightApprox = offsetPointsForQuadraticBezier(
3296
- pointFrom2(element.width, radius),
3297
- pointFrom2(element.width, 0),
3298
- pointFrom2(element.width - radius, 0),
3299
- -FIXED_BINDING_DISTANCE
3300
- );
3301
- const bottomRightApprox = offsetPointsForQuadraticBezier(
3302
- pointFrom2(element.width - radius, element.height),
3303
- pointFrom2(element.width, element.height),
3304
- pointFrom2(element.width, element.height - radius),
3305
- -FIXED_BINDING_DISTANCE
3306
- );
3307
- const bottomLeftApprox = offsetPointsForQuadraticBezier(
3308
- pointFrom2(0, element.height - radius),
3309
- pointFrom2(0, element.height),
3310
- pointFrom2(radius, element.height),
3311
- -FIXED_BINDING_DISTANCE
3312
- );
3313
- context.moveTo(
3314
- topLeftApprox[topLeftApprox.length - 1][0],
3315
- topLeftApprox[topLeftApprox.length - 1][1]
3316
- );
3317
- context.lineTo(bottomLeftApprox[0][0], bottomLeftApprox[0][1]);
3318
- drawCatmullRomQuadraticApprox(context, bottomLeftApprox);
3319
- context.lineTo(bottomRightApprox[0][0], bottomRightApprox[0][1]);
3320
- drawCatmullRomQuadraticApprox(context, bottomRightApprox);
3321
- context.lineTo(topRightApprox[0][0], topRightApprox[0][1]);
3322
- drawCatmullRomQuadraticApprox(context, topRightApprox);
3323
- context.lineTo(topLeftApprox[0][0], topLeftApprox[0][1]);
3324
- drawCatmullRomQuadraticApprox(context, topLeftApprox);
3325
- }
3326
- context.closePath();
3327
- context.fill();
3328
- context.restore();
3329
- };
3330
- var strokeEllipseWithRotation = (context, width, height, cx, cy, angle) => {
3331
- context.beginPath();
3332
- context.ellipse(cx, cy, width / 2, height / 2, angle, 0, Math.PI * 2);
3333
- context.stroke();
3334
- };
3335
- var strokeRectWithRotation = (context, x, y, width, height, cx, cy, angle, fill = false, radius = 0) => {
3219
+ var strokeRectWithRotation_simple = (context, x, y, width, height, cx, cy, angle, fill = false, radius = 0) => {
3336
3220
  context.save();
3337
3221
  context.translate(cx, cy);
3338
3222
  context.rotate(angle);
@@ -3349,133 +3233,19 @@ var strokeRectWithRotation = (context, x, y, width, height, cx, cy, angle, fill
3349
3233
  }
3350
3234
  context.restore();
3351
3235
  };
3352
- var drawHighlightForDiamondWithRotation = (context, padding, element, elementsMap) => {
3353
- const [x, y] = pointRotateRads2(
3354
- pointFrom2(element.x, element.y),
3355
- elementCenterPoint(element, elementsMap),
3356
- element.angle
3357
- );
3358
- context.save();
3359
- context.translate(x, y);
3360
- context.rotate(element.angle);
3361
- {
3362
- context.beginPath();
3363
- const [topX, topY, rightX, rightY, bottomX, bottomY, leftX, leftY] = getDiamondPoints(element);
3364
- const verticalRadius = element.roundness ? getCornerRadius(Math.abs(topX - leftX), element) : (topX - leftX) * 0.01;
3365
- const horizontalRadius = element.roundness ? getCornerRadius(Math.abs(rightY - topY), element) : (rightY - topY) * 0.01;
3366
- const topApprox = curveOffsetPoints(
3367
- curve(
3368
- pointFrom2(topX - verticalRadius, topY + horizontalRadius),
3369
- pointFrom2(topX, topY),
3370
- pointFrom2(topX, topY),
3371
- pointFrom2(topX + verticalRadius, topY + horizontalRadius)
3372
- ),
3373
- padding
3374
- );
3375
- const rightApprox = curveOffsetPoints(
3376
- curve(
3377
- pointFrom2(rightX - verticalRadius, rightY - horizontalRadius),
3378
- pointFrom2(rightX, rightY),
3379
- pointFrom2(rightX, rightY),
3380
- pointFrom2(rightX - verticalRadius, rightY + horizontalRadius)
3381
- ),
3382
- padding
3383
- );
3384
- const bottomApprox = curveOffsetPoints(
3385
- curve(
3386
- pointFrom2(bottomX + verticalRadius, bottomY - horizontalRadius),
3387
- pointFrom2(bottomX, bottomY),
3388
- pointFrom2(bottomX, bottomY),
3389
- pointFrom2(bottomX - verticalRadius, bottomY - horizontalRadius)
3390
- ),
3391
- padding
3392
- );
3393
- const leftApprox = curveOffsetPoints(
3394
- curve(
3395
- pointFrom2(leftX + verticalRadius, leftY + horizontalRadius),
3396
- pointFrom2(leftX, leftY),
3397
- pointFrom2(leftX, leftY),
3398
- pointFrom2(leftX + verticalRadius, leftY - horizontalRadius)
3399
- ),
3400
- padding
3401
- );
3402
- context.moveTo(
3403
- topApprox[topApprox.length - 1][0],
3404
- topApprox[topApprox.length - 1][1]
3405
- );
3406
- context.lineTo(rightApprox[1][0], rightApprox[1][1]);
3407
- drawCatmullRomCubicApprox(context, rightApprox);
3408
- context.lineTo(bottomApprox[1][0], bottomApprox[1][1]);
3409
- drawCatmullRomCubicApprox(context, bottomApprox);
3410
- context.lineTo(leftApprox[1][0], leftApprox[1][1]);
3411
- drawCatmullRomCubicApprox(context, leftApprox);
3412
- context.lineTo(topApprox[1][0], topApprox[1][1]);
3413
- drawCatmullRomCubicApprox(context, topApprox);
3414
- }
3415
- {
3416
- const [topX, topY, rightX, rightY, bottomX, bottomY, leftX, leftY] = getDiamondPoints(element);
3417
- const verticalRadius = element.roundness ? getCornerRadius(Math.abs(topX - leftX), element) : (topX - leftX) * 0.01;
3418
- const horizontalRadius = element.roundness ? getCornerRadius(Math.abs(rightY - topY), element) : (rightY - topY) * 0.01;
3419
- const topApprox = curveOffsetPoints(
3420
- curve(
3421
- pointFrom2(topX + verticalRadius, topY + horizontalRadius),
3422
- pointFrom2(topX, topY),
3423
- pointFrom2(topX, topY),
3424
- pointFrom2(topX - verticalRadius, topY + horizontalRadius)
3425
- ),
3426
- -FIXED_BINDING_DISTANCE
3427
- );
3428
- const rightApprox = curveOffsetPoints(
3429
- curve(
3430
- pointFrom2(rightX - verticalRadius, rightY + horizontalRadius),
3431
- pointFrom2(rightX, rightY),
3432
- pointFrom2(rightX, rightY),
3433
- pointFrom2(rightX - verticalRadius, rightY - horizontalRadius)
3434
- ),
3435
- -FIXED_BINDING_DISTANCE
3436
- );
3437
- const bottomApprox = curveOffsetPoints(
3438
- curve(
3439
- pointFrom2(bottomX - verticalRadius, bottomY - horizontalRadius),
3440
- pointFrom2(bottomX, bottomY),
3441
- pointFrom2(bottomX, bottomY),
3442
- pointFrom2(bottomX + verticalRadius, bottomY - horizontalRadius)
3443
- ),
3444
- -FIXED_BINDING_DISTANCE
3445
- );
3446
- const leftApprox = curveOffsetPoints(
3447
- curve(
3448
- pointFrom2(leftX + verticalRadius, leftY - horizontalRadius),
3449
- pointFrom2(leftX, leftY),
3450
- pointFrom2(leftX, leftY),
3451
- pointFrom2(leftX + verticalRadius, leftY + horizontalRadius)
3452
- ),
3453
- -FIXED_BINDING_DISTANCE
3454
- );
3455
- context.moveTo(
3456
- topApprox[topApprox.length - 1][0],
3457
- topApprox[topApprox.length - 1][1]
3458
- );
3459
- context.lineTo(leftApprox[1][0], leftApprox[1][1]);
3460
- drawCatmullRomCubicApprox(context, leftApprox);
3461
- context.lineTo(bottomApprox[1][0], bottomApprox[1][1]);
3462
- drawCatmullRomCubicApprox(context, bottomApprox);
3463
- context.lineTo(rightApprox[1][0], rightApprox[1][1]);
3464
- drawCatmullRomCubicApprox(context, rightApprox);
3465
- context.lineTo(topApprox[1][0], topApprox[1][1]);
3466
- drawCatmullRomCubicApprox(context, topApprox);
3467
- }
3468
- context.closePath();
3469
- context.fill();
3470
- context.restore();
3471
- };
3472
3236
 
3473
3237
  // renderer/staticScene.ts
3474
3238
  var GridLineColor = {
3475
- Bold: "#dddddd",
3476
- Regular: "#e5e5e5"
3239
+ [THEME3.LIGHT]: {
3240
+ bold: "#dddddd",
3241
+ regular: "#e5e5e5"
3242
+ },
3243
+ [THEME3.DARK]: {
3244
+ bold: applyDarkModeFilter2("#dddddd"),
3245
+ regular: applyDarkModeFilter2("#e5e5e5")
3246
+ }
3477
3247
  };
3478
- var strokeGrid = (context, gridSize, gridStep, scrollX, scrollY, zoom, width, height) => {
3248
+ var strokeGrid = (context, gridSize, gridStep, scrollX, scrollY, zoom, theme, width, height) => {
3479
3249
  const offsetX = scrollX % gridSize - gridSize;
3480
3250
  const offsetY = scrollY % gridSize - gridSize;
3481
3251
  const actualGridSize = gridSize * zoom.value;
@@ -3494,7 +3264,7 @@ var strokeGrid = (context, gridSize, gridStep, scrollX, scrollY, zoom, width, he
3494
3264
  const lineDash = [lineWidth * 3, spaceWidth + (lineWidth + spaceWidth)];
3495
3265
  context.beginPath();
3496
3266
  context.setLineDash(isBold ? [] : lineDash);
3497
- context.strokeStyle = isBold ? GridLineColor.Bold : GridLineColor.Regular;
3267
+ context.strokeStyle = isBold ? GridLineColor[theme].bold : GridLineColor[theme].regular;
3498
3268
  context.moveTo(x, offsetY - gridSize);
3499
3269
  context.lineTo(x, Math.ceil(offsetY + height + gridSize * 2));
3500
3270
  context.stroke();
@@ -3509,7 +3279,7 @@ var strokeGrid = (context, gridSize, gridStep, scrollX, scrollY, zoom, width, he
3509
3279
  const lineDash = [lineWidth * 3, spaceWidth + (lineWidth + spaceWidth)];
3510
3280
  context.beginPath();
3511
3281
  context.setLineDash(isBold ? [] : lineDash);
3512
- context.strokeStyle = isBold ? GridLineColor.Bold : GridLineColor.Regular;
3282
+ context.strokeStyle = isBold ? GridLineColor[theme].bold : GridLineColor[theme].regular;
3513
3283
  context.moveTo(offsetX - gridSize, y);
3514
3284
  context.lineTo(Math.ceil(offsetX + width + gridSize * 2), y);
3515
3285
  context.stroke();
@@ -3622,6 +3392,7 @@ var _renderStaticScene = ({
3622
3392
  appState.scrollX,
3623
3393
  appState.scrollY,
3624
3394
  appState.zoom,
3395
+ renderConfig.theme,
3625
3396
  normalizedWidth / appState.zoom.value,
3626
3397
  normalizedHeight / appState.zoom.value
3627
3398
  );
@@ -3788,12 +3559,13 @@ var renderStaticScene = (renderConfig, throttle) => {
3788
3559
  import {
3789
3560
  FRAME_STYLE as FRAME_STYLE2,
3790
3561
  MAX_DECIMALS_FOR_SVG_EXPORT,
3791
- MIME_TYPES as MIME_TYPES4,
3792
3562
  SVG_NS,
3563
+ THEME as THEME4,
3793
3564
  getFontFamilyString,
3794
3565
  isRTL,
3795
3566
  isTestEnv as isTestEnv2,
3796
- getVerticalOffset
3567
+ getVerticalOffset,
3568
+ applyDarkModeFilter as applyDarkModeFilter3
3797
3569
  } from "@excalidraw/common";
3798
3570
  import { normalizeLink, toValidURL } from "@excalidraw/common";
3799
3571
  import { hashString } from "@excalidraw/element";
@@ -3812,9 +3584,8 @@ import {
3812
3584
  isTextElement as isTextElement3
3813
3585
  } from "@excalidraw/element";
3814
3586
  import { getContainingFrame } from "@excalidraw/element";
3815
- import { getCornerRadius as getCornerRadius2, isPathALoop } from "@excalidraw/element";
3587
+ import { getCornerRadius, isPathALoop } from "@excalidraw/element";
3816
3588
  import { ShapeCache as ShapeCache2 } from "@excalidraw/element";
3817
- import { getFreeDrawSvgPath, IMAGE_INVERT_FILTER } from "@excalidraw/element";
3818
3589
  import { getElementAbsoluteCoords as getElementAbsoluteCoords3 } from "@excalidraw/element";
3819
3590
  var roughSVGDrawWithPrecision = (rsvg, drawable, precision) => {
3820
3591
  if (typeof precision === "undefined") {
@@ -3882,7 +3653,7 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
3882
3653
  case "rectangle":
3883
3654
  case "diamond":
3884
3655
  case "ellipse": {
3885
- const shape = ShapeCache2.generateElementShape(element, null);
3656
+ const shape = ShapeCache2.generateElementShape(element, renderConfig);
3886
3657
  const node = roughSVGDrawWithPrecision(
3887
3658
  rsvg,
3888
3659
  shape,
@@ -3950,7 +3721,7 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
3950
3721
  while (embeddableNode.firstChild) {
3951
3722
  embeddableNode.removeChild(embeddableNode.firstChild);
3952
3723
  }
3953
- const radius = getCornerRadius2(
3724
+ const radius = getCornerRadius(
3954
3725
  Math.min(element.width, element.height),
3955
3726
  element
3956
3727
  );
@@ -4075,36 +3846,49 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
4075
3846
  break;
4076
3847
  }
4077
3848
  case "freedraw": {
4078
- const backgroundFillShape = ShapeCache2.generateElementShape(
4079
- element,
4080
- renderConfig
4081
- );
4082
- const node = backgroundFillShape ? roughSVGDrawWithPrecision(
4083
- rsvg,
4084
- backgroundFillShape,
4085
- MAX_DECIMALS_FOR_SVG_EXPORT
4086
- ) : svgRoot.ownerDocument.createElementNS(SVG_NS, "g");
3849
+ const wrapper = svgRoot.ownerDocument.createElementNS(SVG_NS, "g");
3850
+ const shapes = ShapeCache2.generateElementShape(element, renderConfig);
3851
+ for (const shape of shapes) {
3852
+ if (typeof shape === "string") {
3853
+ const path = svgRoot.ownerDocument.createElementNS(SVG_NS, "path");
3854
+ path.setAttribute(
3855
+ "fill",
3856
+ renderConfig.theme === THEME4.DARK ? applyDarkModeFilter3(element.strokeColor) : element.strokeColor
3857
+ );
3858
+ path.setAttribute("d", shape);
3859
+ wrapper.appendChild(path);
3860
+ } else {
3861
+ const bgNode = roughSVGDrawWithPrecision(
3862
+ rsvg,
3863
+ shape,
3864
+ MAX_DECIMALS_FOR_SVG_EXPORT
3865
+ );
3866
+ if (bgNode.nodeName === "g") {
3867
+ while (bgNode.firstChild) {
3868
+ wrapper.appendChild(bgNode.firstChild);
3869
+ }
3870
+ } else {
3871
+ wrapper.appendChild(bgNode);
3872
+ }
3873
+ }
3874
+ }
4087
3875
  if (opacity !== 1) {
4088
- node.setAttribute("stroke-opacity", `${opacity}`);
4089
- node.setAttribute("fill-opacity", `${opacity}`);
3876
+ wrapper.setAttribute("stroke-opacity", `${opacity}`);
3877
+ wrapper.setAttribute("fill-opacity", `${opacity}`);
4090
3878
  }
4091
- node.setAttribute(
3879
+ wrapper.setAttribute(
4092
3880
  "transform",
4093
3881
  `translate(${offsetX || 0} ${offsetY || 0}) rotate(${degree} ${cx} ${cy})`
4094
3882
  );
4095
- node.setAttribute("stroke", "none");
4096
- const path = svgRoot.ownerDocument.createElementNS(SVG_NS, "path");
4097
- path.setAttribute("fill", element.strokeColor);
4098
- path.setAttribute("d", getFreeDrawSvgPath(element));
4099
- node.appendChild(path);
3883
+ wrapper.setAttribute("stroke", "none");
4100
3884
  const g = maybeWrapNodesInFrameClipPath(
4101
3885
  element,
4102
3886
  root,
4103
- [node],
3887
+ [wrapper],
4104
3888
  renderConfig.frameRendering,
4105
3889
  elementsMap
4106
3890
  );
4107
- addToRoot(g || node, element);
3891
+ addToRoot(g || wrapper, element);
4108
3892
  break;
4109
3893
  }
4110
3894
  case "image": {
@@ -4144,9 +3928,6 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
4144
3928
  }
4145
3929
  const use = svgRoot.ownerDocument.createElementNS(SVG_NS, "use");
4146
3930
  use.setAttribute("href", `#${symbolId}`);
4147
- if (renderConfig.exportWithDarkMode && fileData.mimeType !== MIME_TYPES4.svg) {
4148
- use.setAttribute("filter", IMAGE_INVERT_FILTER);
4149
- }
4150
3931
  let normalizedCropX = 0;
4151
3932
  let normalizedCropY = 0;
4152
3933
  if (element.crop) {
@@ -4193,14 +3974,19 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
4193
3974
  "clipPath"
4194
3975
  );
4195
3976
  clipPath.id = `image-clipPath-${element.id}`;
3977
+ clipPath.setAttribute("clipPathUnits", "userSpaceOnUse");
4196
3978
  const clipRect = svgRoot.ownerDocument.createElementNS(
4197
3979
  SVG_NS,
4198
3980
  "rect"
4199
3981
  );
4200
- const radius = getCornerRadius2(
3982
+ const radius = getCornerRadius(
4201
3983
  Math.min(element.width, element.height),
4202
3984
  element
4203
3985
  );
3986
+ const clipOffsetX = element.crop ? normalizedCropX : 0;
3987
+ const clipOffsetY = element.crop ? normalizedCropY : 0;
3988
+ clipRect.setAttribute("x", `${clipOffsetX}`);
3989
+ clipRect.setAttribute("y", `${clipOffsetY}`);
4204
3990
  clipRect.setAttribute("width", `${element.width}`);
4205
3991
  clipRect.setAttribute("height", `${element.height}`);
4206
3992
  clipRect.setAttribute("rx", `${radius}`);
@@ -4233,7 +4019,10 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
4233
4019
  rect.setAttribute("rx", FRAME_STYLE2.radius.toString());
4234
4020
  rect.setAttribute("ry", FRAME_STYLE2.radius.toString());
4235
4021
  rect.setAttribute("fill", "none");
4236
- rect.setAttribute("stroke", FRAME_STYLE2.strokeColor);
4022
+ rect.setAttribute(
4023
+ "stroke",
4024
+ renderConfig.theme === THEME4.DARK ? applyDarkModeFilter3(FRAME_STYLE2.strokeColor) : FRAME_STYLE2.strokeColor
4025
+ );
4237
4026
  rect.setAttribute("stroke-width", FRAME_STYLE2.strokeWidth.toString());
4238
4027
  addToRoot(rect, element);
4239
4028
  }
@@ -4270,7 +4059,10 @@ var renderElementToSvg = (element, elementsMap, rsvg, svgRoot, files, offsetX, o
4270
4059
  text.setAttribute("y", `${i * lineHeightPx + verticalOffset}`);
4271
4060
  text.setAttribute("font-family", getFontFamilyString(element));
4272
4061
  text.setAttribute("font-size", `${element.fontSize}px`);
4273
- text.setAttribute("fill", element.strokeColor);
4062
+ text.setAttribute(
4063
+ "fill",
4064
+ renderConfig.theme === THEME4.DARK ? applyDarkModeFilter3(element.strokeColor) : element.strokeColor
4065
+ );
4274
4066
  text.setAttribute("text-anchor", textAnchor);
4275
4067
  text.setAttribute("style", "white-space: pre;");
4276
4068
  text.setAttribute("direction", direction);
@@ -4483,7 +4275,7 @@ var exportToCanvas = async (elements, appState, files, {
4483
4275
  scrollY: -minY + exportPadding,
4484
4276
  zoom: defaultAppState.zoom,
4485
4277
  shouldCacheIgnoreZoom: false,
4486
- theme: appState.exportWithDarkMode ? THEME3.DARK : THEME3.LIGHT
4278
+ theme: appState.exportWithDarkMode ? THEME5.DARK : THEME5.LIGHT
4487
4279
  },
4488
4280
  renderConfig: {
4489
4281
  canvasBackgroundColor: viewBackgroundColor,
@@ -4493,7 +4285,8 @@ var exportToCanvas = async (elements, appState, files, {
4493
4285
  // empty disables embeddable rendering
4494
4286
  embedsValidationStatus: /* @__PURE__ */ new Map(),
4495
4287
  elementsPendingErasure: /* @__PURE__ */ new Set(),
4496
- pendingFlowchartNodes: null
4288
+ pendingFlowchartNodes: null,
4289
+ theme: appState.exportWithDarkMode ? THEME5.DARK : THEME5.LIGHT
4497
4290
  }
4498
4291
  });
4499
4292
  return canvas;
@@ -4535,9 +4328,6 @@ var exportToSvg = async (elements, appState, files, opts) => {
4535
4328
  svgRoot.setAttribute("viewBox", `0 0 ${width} ${height}`);
4536
4329
  svgRoot.setAttribute("width", `${width * exportScale}`);
4537
4330
  svgRoot.setAttribute("height", `${height * exportScale}`);
4538
- if (exportWithDarkMode) {
4539
- svgRoot.setAttribute("filter", THEME_FILTER2);
4540
- }
4541
4331
  const defsElement = svgRoot.ownerDocument.createElementNS(SVG_NS2, "defs");
4542
4332
  const metadataElement = svgRoot.ownerDocument.createElementNS(
4543
4333
  SVG_NS2,
@@ -4601,7 +4391,10 @@ var exportToSvg = async (elements, appState, files, opts) => {
4601
4391
  rect.setAttribute("y", "0");
4602
4392
  rect.setAttribute("width", `${width}`);
4603
4393
  rect.setAttribute("height", `${height}`);
4604
- rect.setAttribute("fill", viewBackgroundColor);
4394
+ rect.setAttribute(
4395
+ "fill",
4396
+ exportWithDarkMode ? applyDarkModeFilter4(viewBackgroundColor) : viewBackgroundColor
4397
+ );
4605
4398
  svgRoot.appendChild(rect);
4606
4399
  }
4607
4400
  const rsvg = rough.svg(svgRoot);
@@ -4623,7 +4416,8 @@ var exportToSvg = async (elements, appState, files, opts) => {
4623
4416
  embedsValidationStatus: renderEmbeddables ? new Map(
4624
4417
  elementsForRender.filter((element) => isFrameLikeElement(element)).map((element) => [element.id, true])
4625
4418
  ) : /* @__PURE__ */ new Map(),
4626
- reuseImages: opts?.reuseImages ?? true
4419
+ reuseImages: opts?.reuseImages ?? true,
4420
+ theme: exportWithDarkMode ? THEME5.DARK : THEME5.LIGHT
4627
4421
  }
4628
4422
  );
4629
4423
  return svgRoot;
@@ -4637,7 +4431,7 @@ var encodeSvgBase64Payload = ({
4637
4431
  true
4638
4432
  );
4639
4433
  metadataElement.appendChild(
4640
- createHTMLComment(`payload-type:${MIME_TYPES5.excalidraw}`)
4434
+ createHTMLComment(`payload-type:${MIME_TYPES4.excalidraw}`)
4641
4435
  );
4642
4436
  metadataElement.appendChild(createHTMLComment("payload-version:2"));
4643
4437
  metadataElement.appendChild(createHTMLComment("payload-start"));
@@ -4645,7 +4439,7 @@ var encodeSvgBase64Payload = ({
4645
4439
  metadataElement.appendChild(createHTMLComment("payload-end"));
4646
4440
  };
4647
4441
  var decodeSvgBase64Payload = ({ svg }) => {
4648
- if (svg.includes(`payload-type:${MIME_TYPES5.excalidraw}`)) {
4442
+ if (svg.includes(`payload-type:${MIME_TYPES4.excalidraw}`)) {
4649
4443
  const match = svg.match(
4650
4444
  /<!-- payload-start -->\s*(.+?)\s*<!-- payload-end -->/
4651
4445
  );
@@ -4686,7 +4480,7 @@ var getExportSize = (elements, exportPadding, scale) => {
4686
4480
  };
4687
4481
 
4688
4482
  // data/restore.ts
4689
- import { isFiniteNumber, pointFrom as pointFrom3 } from "@excalidraw/math";
4483
+ import { isFiniteNumber, pointFrom as pointFrom2 } from "@excalidraw/math";
4690
4484
  import {
4691
4485
  DEFAULT_FONT_FAMILY as DEFAULT_FONT_FAMILY2,
4692
4486
  DEFAULT_TEXT_ALIGN as DEFAULT_TEXT_ALIGN2,
@@ -4705,7 +4499,13 @@ import {
4705
4499
  normalizeLink as normalizeLink2,
4706
4500
  getLineHeight
4707
4501
  } from "@excalidraw/common";
4708
- import { getNonDeletedElements, isValidPolygon } from "@excalidraw/element";
4502
+ import {
4503
+ calculateFixedPointForNonElbowArrowBinding,
4504
+ getNonDeletedElements,
4505
+ isPointInElement,
4506
+ isValidPolygon,
4507
+ projectFixedPointOntoDiagonal
4508
+ } from "@excalidraw/element";
4709
4509
  import { normalizeFixedPoint } from "@excalidraw/element";
4710
4510
  import {
4711
4511
  updateElbowArrowPoints,
@@ -4719,7 +4519,6 @@ import {
4719
4519
  isArrowBoundToElement,
4720
4520
  isArrowElement as isArrowElement2,
4721
4521
  isElbowArrow,
4722
- isFixedPointBinding,
4723
4522
  isLinearElement,
4724
4523
  isLineElement,
4725
4524
  isTextElement as isTextElement4,
@@ -4754,23 +4553,66 @@ var getFontFamilyByName = (fontFamilyName) => {
4754
4553
  }
4755
4554
  return DEFAULT_FONT_FAMILY2;
4756
4555
  };
4757
- var repairBinding = (element, binding) => {
4758
- if (!binding) {
4759
- return null;
4760
- }
4761
- const focus = binding.focus || 0;
4762
- if (isElbowArrow(element)) {
4763
- const fixedPointBinding = isFixedPointBinding(binding) ? {
4764
- ...binding,
4765
- focus,
4766
- fixedPoint: normalizeFixedPoint(binding.fixedPoint ?? [0, 0])
4767
- } : null;
4768
- return fixedPointBinding;
4556
+ var repairBinding = (element, binding, targetElementsMap, existingElementsMap, startOrEnd) => {
4557
+ try {
4558
+ if (!binding) {
4559
+ return null;
4560
+ }
4561
+ if (isElbowArrow(element)) {
4562
+ const fixedPointBinding = {
4563
+ ...binding,
4564
+ fixedPoint: normalizeFixedPoint(binding.fixedPoint ?? [0, 0]),
4565
+ mode: binding.mode || "orbit"
4566
+ };
4567
+ return fixedPointBinding;
4568
+ }
4569
+ if (binding.mode) {
4570
+ if (binding.elementId) {
4571
+ return {
4572
+ elementId: binding.elementId,
4573
+ mode: binding.mode,
4574
+ fixedPoint: normalizeFixedPoint(binding.fixedPoint || [0.5, 0.5])
4575
+ };
4576
+ }
4577
+ return null;
4578
+ }
4579
+ const targetBoundElement = targetElementsMap.get(binding.elementId) || void 0;
4580
+ const boundElement = targetBoundElement || existingElementsMap?.get(
4581
+ binding.elementId
4582
+ ) || void 0;
4583
+ const elementsMap = targetBoundElement ? targetElementsMap : existingElementsMap;
4584
+ if (boundElement && elementsMap) {
4585
+ const p = LinearElementEditor2.getPointAtIndexGlobalCoordinates(
4586
+ element,
4587
+ startOrEnd === "start" ? 0 : element.points.length - 1,
4588
+ elementsMap
4589
+ );
4590
+ const mode = isPointInElement(p, boundElement, elementsMap) ? "inside" : "orbit";
4591
+ const focusPoint = mode === "inside" ? p : projectFixedPointOntoDiagonal(
4592
+ element,
4593
+ p,
4594
+ boundElement,
4595
+ startOrEnd,
4596
+ elementsMap
4597
+ ) || p;
4598
+ const { fixedPoint } = calculateFixedPointForNonElbowArrowBinding(
4599
+ element,
4600
+ boundElement,
4601
+ startOrEnd,
4602
+ elementsMap,
4603
+ focusPoint
4604
+ );
4605
+ return {
4606
+ mode,
4607
+ elementId: binding.elementId,
4608
+ fixedPoint
4609
+ };
4610
+ }
4611
+ console.error(`could not repair binding for element`);
4612
+ } catch (error) {
4613
+ console.error("Error repairing binding:", error);
4769
4614
  }
4770
- return {
4771
- ...binding,
4772
- focus
4773
- };
4615
+ return null;
4774
4616
  };
4775
4617
  var restoreElementWithProperties = (element, extra) => {
4776
4618
  const base = {
@@ -4823,7 +4665,7 @@ var restoreElementWithProperties = (element, extra) => {
4823
4665
  delete ret.boundElementIds;
4824
4666
  return ret;
4825
4667
  };
4826
- var restoreElement = (element, opts) => {
4668
+ var restoreElement = (element, targetElementsMap, existingElementsMap, opts) => {
4827
4669
  element = { ...element };
4828
4670
  switch (element.type) {
4829
4671
  case "text":
@@ -4863,7 +4705,6 @@ var restoreElement = (element, opts) => {
4863
4705
  case "freedraw": {
4864
4706
  return restoreElementWithProperties(element, {
4865
4707
  points: element.points,
4866
- lastCommittedPoint: null,
4867
4708
  simulatePressure: element.simulatePressure,
4868
4709
  pressures: element.pressures
4869
4710
  });
@@ -4882,16 +4723,15 @@ var restoreElement = (element, opts) => {
4882
4723
  let y = element.y;
4883
4724
  let points = (
4884
4725
  // migrate old arrow model to new one
4885
- !Array.isArray(element.points) || element.points.length < 2 ? [pointFrom3(0, 0), pointFrom3(element.width, element.height)] : element.points
4726
+ !Array.isArray(element.points) || element.points.length < 2 ? [pointFrom2(0, 0), pointFrom2(element.width, element.height)] : element.points
4886
4727
  );
4887
4728
  if (points[0][0] !== 0 || points[0][1] !== 0) {
4888
4729
  ({ points, x, y } = LinearElementEditor2.getNormalizeElementPointsAndCoords(element));
4889
4730
  }
4890
4731
  return restoreElementWithProperties(element, {
4891
- type: element.type === "draw" ? "line" : element.type,
4892
- startBinding: repairBinding(element, element.startBinding),
4893
- endBinding: repairBinding(element, element.endBinding),
4894
- lastCommittedPoint: null,
4732
+ type: "line",
4733
+ startBinding: null,
4734
+ endBinding: null,
4895
4735
  startArrowhead,
4896
4736
  endArrowhead,
4897
4737
  points,
@@ -4904,20 +4744,28 @@ var restoreElement = (element, opts) => {
4904
4744
  });
4905
4745
  case "arrow": {
4906
4746
  const { startArrowhead: startArrowhead2 = null, endArrowhead: endArrowhead2 = "arrow" } = element;
4907
- let x2 = element.x;
4908
- let y2 = element.y;
4909
- let points2 = (
4747
+ const x2 = element.x;
4748
+ const y2 = element.y;
4749
+ const points2 = (
4910
4750
  // migrate old arrow model to new one
4911
- !Array.isArray(element.points) || element.points.length < 2 ? [pointFrom3(0, 0), pointFrom3(element.width, element.height)] : element.points
4751
+ !Array.isArray(element.points) || element.points.length < 2 ? [pointFrom2(0, 0), pointFrom2(element.width, element.height)] : element.points
4912
4752
  );
4913
- if (points2[0][0] !== 0 || points2[0][1] !== 0) {
4914
- ({ points: points2, x: x2, y: y2 } = LinearElementEditor2.getNormalizeElementPointsAndCoords(element));
4915
- }
4916
4753
  const base = {
4917
4754
  type: element.type,
4918
- startBinding: repairBinding(element, element.startBinding),
4919
- endBinding: repairBinding(element, element.endBinding),
4920
- lastCommittedPoint: null,
4755
+ startBinding: repairBinding(
4756
+ element,
4757
+ element.startBinding,
4758
+ targetElementsMap,
4759
+ existingElementsMap,
4760
+ "start"
4761
+ ),
4762
+ endBinding: repairBinding(
4763
+ element,
4764
+ element.endBinding,
4765
+ targetElementsMap,
4766
+ existingElementsMap,
4767
+ "end"
4768
+ ),
4921
4769
  startArrowhead: startArrowhead2,
4922
4770
  endArrowhead: endArrowhead2,
4923
4771
  points: points2,
@@ -4926,15 +4774,19 @@ var restoreElement = (element, opts) => {
4926
4774
  elbowed: element.elbowed,
4927
4775
  ...getSizeFromPoints(points2)
4928
4776
  };
4929
- return isElbowArrow(element) ? restoreElementWithProperties(element, {
4777
+ const restoredElement = isElbowArrow(element) ? restoreElementWithProperties(element, {
4930
4778
  ...base,
4931
4779
  elbowed: true,
4932
- startBinding: repairBinding(element, element.startBinding),
4933
- endBinding: repairBinding(element, element.endBinding),
4934
4780
  fixedSegments: element.fixedSegments?.length && base.points.length >= 4 ? element.fixedSegments : null,
4935
4781
  startIsSpecial: element.startIsSpecial,
4936
4782
  endIsSpecial: element.endIsSpecial
4937
4783
  }) : restoreElementWithProperties(element, base);
4784
+ return {
4785
+ ...restoredElement,
4786
+ ...LinearElementEditor2.getNormalizeElementPointsAndCoords(
4787
+ restoredElement
4788
+ )
4789
+ };
4938
4790
  }
4939
4791
  case "ellipse":
4940
4792
  case "rectangle":
@@ -4999,21 +4851,33 @@ var repairFrameMembership = (element, elementsMap) => {
4999
4851
  }
5000
4852
  }
5001
4853
  };
5002
- var restoreElements = (elements, localElements, opts) => {
4854
+ var restoreElements = (targetElements, existingElements, opts) => {
5003
4855
  const existingIds = /* @__PURE__ */ new Set();
5004
- const localElementsMap = localElements ? arrayToMap2(localElements) : null;
4856
+ const targetElementsMap = arrayToMap2(targetElements || []);
4857
+ const existingElementsMap = existingElements ? arrayToMap2(existingElements) : null;
5005
4858
  const restoredElements = syncInvalidIndices2(
5006
- (elements || []).reduce((elements2, element) => {
4859
+ (targetElements || []).reduce((elements, element) => {
5007
4860
  if (element.type === "selection") {
5008
- return elements2;
4861
+ return elements;
4862
+ }
4863
+ let migratedElement;
4864
+ try {
4865
+ migratedElement = restoreElement(
4866
+ element,
4867
+ targetElementsMap,
4868
+ existingElementsMap,
4869
+ {
4870
+ deleteInvisibleElements: opts?.deleteInvisibleElements
4871
+ }
4872
+ );
4873
+ } catch (error) {
4874
+ console.error("Error restoring element:", error);
4875
+ migratedElement = null;
5009
4876
  }
5010
- let migratedElement = restoreElement(element, {
5011
- deleteInvisibleElements: opts?.deleteInvisibleElements
5012
- });
5013
4877
  if (migratedElement) {
5014
- const localElement = localElementsMap?.get(element.id);
4878
+ const localElement = existingElementsMap?.get(element.id);
5015
4879
  const shouldMarkAsDeleted = opts?.deleteInvisibleElements && isInvisiblySmallElement(element);
5016
- if (shouldMarkAsDeleted || localElement && localElement.version > migratedElement.version) {
4880
+ if (shouldMarkAsDeleted) {
5017
4881
  migratedElement = bumpVersion(migratedElement, localElement?.version);
5018
4882
  }
5019
4883
  if (shouldMarkAsDeleted) {
@@ -5023,9 +4887,9 @@ var restoreElements = (elements, localElements, opts) => {
5023
4887
  migratedElement = { ...migratedElement, id: randomId() };
5024
4888
  }
5025
4889
  existingIds.add(migratedElement.id);
5026
- elements2.push(migratedElement);
4890
+ elements.push(migratedElement);
5027
4891
  }
5028
- return elements2;
4892
+ return elements;
5029
4893
  }, [])
5030
4894
  );
5031
4895
  if (!opts?.repairBindings) {
@@ -5069,7 +4933,7 @@ var restoreElements = (elements, localElements, opts) => {
5069
4933
  restoredElementsMap,
5070
4934
  {
5071
4935
  points: [
5072
- pointFrom3(0, 0),
4936
+ pointFrom2(0, 0),
5073
4937
  element.points[element.points.length - 1]
5074
4938
  ]
5075
4939
  }
@@ -5098,10 +4962,10 @@ var restoreElements = (elements, localElements, opts) => {
5098
4962
  width: boundElement.width,
5099
4963
  height: boundElement.height,
5100
4964
  points: [
5101
- pointFrom3(0, 0),
5102
- pointFrom3(0, -10),
5103
- pointFrom3(boundElement.width / 2 + 5, -10),
5104
- pointFrom3(
4965
+ pointFrom2(0, 0),
4966
+ pointFrom2(0, -10),
4967
+ pointFrom2(boundElement.width / 2 + 5, -10),
4968
+ pointFrom2(
5105
4969
  boundElement.width / 2 + 5,
5106
4970
  boundElement.height / 2 + 5
5107
4971
  )
@@ -5179,13 +5043,6 @@ var restoreAppState = (appState, localAppState) => {
5179
5043
  editingFrame: null
5180
5044
  };
5181
5045
  };
5182
- var restore = (data, localAppState, localElements, elementsConfig) => {
5183
- return {
5184
- elements: restoreElements(data?.elements, localElements, elementsConfig),
5185
- appState: restoreAppState(data?.appState, localAppState || null),
5186
- files: data?.files || {}
5187
- };
5188
- };
5189
5046
  var restoreLibraryItem = (libraryItem) => {
5190
5047
  const elements = restoreElements(
5191
5048
  getNonDeletedElements(libraryItem.elements),
@@ -5225,9 +5082,9 @@ var restoreLibraryItems = (libraryItems = [], defaultStatus) => {
5225
5082
  // data/blob.ts
5226
5083
  var parseFileContents = async (blob) => {
5227
5084
  let contents;
5228
- if (blob.type === MIME_TYPES6.png) {
5085
+ if (blob.type === MIME_TYPES5.png) {
5229
5086
  try {
5230
- return await (await import("./data/image-L23D26XS.js")).decodePngMetadata(blob);
5087
+ return await (await import("./data/image-2BHUUSLM.js")).decodePngMetadata(blob);
5231
5088
  } catch (error) {
5232
5089
  if (error.message === "INVALID") {
5233
5090
  throw new ImageSceneDataError(
@@ -5252,7 +5109,7 @@ var parseFileContents = async (blob) => {
5252
5109
  };
5253
5110
  });
5254
5111
  }
5255
- if (blob.type === MIME_TYPES6.svg) {
5112
+ if (blob.type === MIME_TYPES5.svg) {
5256
5113
  try {
5257
5114
  return decodeSvgBase64Payload({
5258
5115
  svg: contents
@@ -5308,30 +5165,27 @@ var loadSceneOrLibraryFromBlob = async (blob, localAppState, localElements, file
5308
5165
  }
5309
5166
  if (isValidExcalidrawData(data)) {
5310
5167
  return {
5311
- type: MIME_TYPES6.excalidraw,
5312
- data: restore(
5313
- {
5314
- elements: clearElementsForExport2(data.elements || []),
5315
- appState: {
5168
+ type: MIME_TYPES5.excalidraw,
5169
+ data: {
5170
+ elements: restoreElements(data.elements, localElements, {
5171
+ repairBindings: true,
5172
+ deleteInvisibleElements: true
5173
+ }),
5174
+ appState: restoreAppState(
5175
+ {
5316
5176
  theme: localAppState?.theme,
5317
5177
  fileHandle: fileHandle || blob.handle || null,
5318
5178
  ...cleanAppStateForExport(data.appState || {}),
5319
5179
  ...localAppState ? calculateScrollCenter(data.elements || [], localAppState) : {}
5320
5180
  },
5321
- files: data.files
5322
- },
5323
- localAppState,
5324
- localElements,
5325
- {
5326
- repairBindings: true,
5327
- refreshDimensions: false,
5328
- deleteInvisibleElements: true
5329
- }
5330
- )
5181
+ localAppState
5182
+ ),
5183
+ files: data.files || {}
5184
+ }
5331
5185
  };
5332
5186
  } else if (isValidLibrary(data)) {
5333
5187
  return {
5334
- type: MIME_TYPES6.excalidrawlib,
5188
+ type: MIME_TYPES5.excalidrawlib,
5335
5189
  data
5336
5190
  };
5337
5191
  }
@@ -5350,7 +5204,7 @@ var loadFromBlob = async (blob, localAppState, localElements, fileHandle) => {
5350
5204
  localElements,
5351
5205
  fileHandle
5352
5206
  );
5353
- if (ret.type !== MIME_TYPES6.excalidraw) {
5207
+ if (ret.type !== MIME_TYPES5.excalidraw) {
5354
5208
  throw new Error("Error: invalid file");
5355
5209
  }
5356
5210
  return ret.data;
@@ -5418,7 +5272,7 @@ var dataURLToString = (dataURL) => {
5418
5272
  return base64ToString(dataURL.slice(dataURL.indexOf(",") + 1));
5419
5273
  };
5420
5274
  var resizeImageFile = async (file, opts) => {
5421
- if (file.type === MIME_TYPES6.svg) {
5275
+ if (file.type === MIME_TYPES5.svg) {
5422
5276
  return file;
5423
5277
  }
5424
5278
  const [pica, imageBlobReduce] = await Promise.all([
@@ -5451,7 +5305,7 @@ var resizeImageFile = async (file, opts) => {
5451
5305
  };
5452
5306
  var SVGStringToFile = (SVGString, filename = "") => {
5453
5307
  return new File([new TextEncoder().encode(SVGString)], filename, {
5454
- type: MIME_TYPES6.svg
5308
+ type: MIME_TYPES5.svg
5455
5309
  });
5456
5310
  };
5457
5311
  var ImageURLToFile = async (imageUrl, filename = "") => {
@@ -5503,7 +5357,7 @@ var getActualMimeTypeFromImage = async (file) => {
5503
5357
  };
5504
5358
  for (const type of Object.keys(bytes)) {
5505
5359
  if (leadingBytes.match(bytes[type])) {
5506
- mimeType = MIME_TYPES6[type];
5360
+ mimeType = MIME_TYPES5[type];
5507
5361
  break;
5508
5362
  }
5509
5363
  }
@@ -5520,9 +5374,9 @@ var normalizeFile = async (file) => {
5520
5374
  return file;
5521
5375
  }
5522
5376
  if (file?.name?.endsWith(".excalidrawlib")) {
5523
- file = createFile(file, MIME_TYPES6.excalidrawlib, file.name);
5377
+ file = createFile(file, MIME_TYPES5.excalidrawlib, file.name);
5524
5378
  } else if (file?.name?.endsWith(".excalidraw")) {
5525
- file = createFile(file, MIME_TYPES6.excalidraw, file.name);
5379
+ file = createFile(file, MIME_TYPES5.excalidraw, file.name);
5526
5380
  } else if (!file.type || file.type?.startsWith("image/")) {
5527
5381
  const mimeType = await getActualMimeTypeFromImage(file);
5528
5382
  if (mimeType && mimeType !== file.type) {
@@ -5563,7 +5417,7 @@ var encodePngMetadata = async ({
5563
5417
  }) => {
5564
5418
  const chunks = decodePng(new Uint8Array(await blobToArrayBuffer(blob)));
5565
5419
  const metadataChunk = tEXt.encode(
5566
- MIME_TYPES7.excalidraw,
5420
+ MIME_TYPES6.excalidraw,
5567
5421
  JSON.stringify(
5568
5422
  encode({
5569
5423
  text: metadata,
@@ -5572,11 +5426,11 @@ var encodePngMetadata = async ({
5572
5426
  )
5573
5427
  );
5574
5428
  chunks.splice(-1, 0, metadataChunk);
5575
- return new Blob([encodePng(chunks)], { type: MIME_TYPES7.png });
5429
+ return new Blob([encodePng(chunks)], { type: MIME_TYPES6.png });
5576
5430
  };
5577
5431
  var decodePngMetadata = async (blob) => {
5578
5432
  const metadata = await getTEXtChunk(blob);
5579
- if (metadata?.keyword === MIME_TYPES7.excalidraw) {
5433
+ if (metadata?.keyword === MIME_TYPES6.excalidraw) {
5580
5434
  try {
5581
5435
  const encodedData = JSON.parse(metadata.text);
5582
5436
  if (!("encoded" in encodedData)) {
@@ -5611,6 +5465,7 @@ export {
5611
5465
  AbortError,
5612
5466
  ImageSceneDataError,
5613
5467
  ExcalidrawError,
5468
+ RequestError,
5614
5469
  Fonts,
5615
5470
  getDefaultAppState,
5616
5471
  isEraserActive,
@@ -5629,10 +5484,7 @@ export {
5629
5484
  fillCircle,
5630
5485
  getNormalizedCanvasDimensions,
5631
5486
  bootstrapCanvas,
5632
- drawHighlightForRectWithRotation,
5633
- strokeEllipseWithRotation,
5634
- strokeRectWithRotation,
5635
- drawHighlightForDiamondWithRotation,
5487
+ strokeRectWithRotation_simple,
5636
5488
  frameClip,
5637
5489
  renderStaticSceneThrottled,
5638
5490
  renderStaticScene,
@@ -5642,7 +5494,6 @@ export {
5642
5494
  restoreElement,
5643
5495
  restoreElements,
5644
5496
  restoreAppState,
5645
- restore,
5646
5497
  restoreLibraryItems,
5647
5498
  getTEXtChunk,
5648
5499
  encodePngMetadata,
@@ -5668,4 +5519,4 @@ export {
5668
5519
  createFile,
5669
5520
  normalizeFile
5670
5521
  };
5671
- //# sourceMappingURL=chunk-YMRX7R7U.js.map
5522
+ //# sourceMappingURL=chunk-PW6TXCLQ.js.map