@excalidraw/excalidraw 0.18.0-b7aac689a → 0.18.0-c141960

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 (425) hide show
  1. package/dist/dev/{chunk-QF5FRM6O.js → chunk-AWYOLLYX.js} +49 -26
  2. package/dist/dev/chunk-AWYOLLYX.js.map +7 -0
  3. package/dist/dev/chunk-PMQWN2AA.js +69 -0
  4. package/dist/dev/chunk-PMQWN2AA.js.map +7 -0
  5. package/dist/dev/{chunk-CBGOW5JB.js → chunk-SJTAY27F.js} +185 -389
  6. package/dist/dev/chunk-SJTAY27F.js.map +7 -0
  7. package/dist/dev/data/{image-SURZSZNX.js → image-S2GFZH7W.js} +2 -2
  8. package/dist/dev/index.css +944 -498
  9. package/dist/dev/index.css.map +3 -3
  10. package/dist/dev/index.js +10424 -7221
  11. package/dist/dev/index.js.map +4 -4
  12. package/dist/dev/locales/{ar-SA-XORAP2EK.js → ar-SA-USQAA427.js} +299 -142
  13. package/dist/dev/locales/ar-SA-USQAA427.js.map +7 -0
  14. package/dist/dev/locales/{az-AZ-NAUU3Z4Y.js → az-AZ-CVQRXULV.js} +240 -83
  15. package/dist/dev/locales/az-AZ-CVQRXULV.js.map +7 -0
  16. package/dist/dev/locales/{bg-BG-AAABLFCY.js → bg-BG-E4I2JVOQ.js} +228 -71
  17. package/dist/dev/locales/bg-BG-E4I2JVOQ.js.map +7 -0
  18. package/dist/dev/locales/{bn-BD-PM4AC5WG.js → bn-BD-O55ROP2R.js} +208 -51
  19. package/dist/dev/locales/bn-BD-O55ROP2R.js.map +7 -0
  20. package/dist/dev/locales/bn-IN-OL7OUKTP.js +743 -0
  21. package/dist/dev/locales/bn-IN-OL7OUKTP.js.map +7 -0
  22. package/dist/dev/locales/{ca-ES-YNNMFRQX.js → ca-ES-73KY52DM.js} +274 -117
  23. package/dist/dev/locales/ca-ES-73KY52DM.js.map +7 -0
  24. package/dist/dev/locales/{cs-CZ-DGZA5IKG.js → cs-CZ-2YGHPQ24.js} +228 -71
  25. package/dist/dev/locales/cs-CZ-2YGHPQ24.js.map +7 -0
  26. package/dist/dev/locales/{da-DK-N76F4QAJ.js → da-DK-OEIZIPJU.js} +297 -140
  27. package/dist/dev/locales/da-DK-OEIZIPJU.js.map +7 -0
  28. package/dist/dev/locales/de-CH-4GJTW23D.js +743 -0
  29. package/dist/dev/locales/de-CH-4GJTW23D.js.map +7 -0
  30. package/dist/dev/locales/{de-DE-DMRXZ2SZ.js → de-DE-YRH6WMM5.js} +198 -41
  31. package/dist/dev/locales/de-DE-YRH6WMM5.js.map +7 -0
  32. package/dist/dev/locales/{el-GR-HIKPLEXI.js → el-GR-W7S64QNM.js} +273 -116
  33. package/dist/dev/locales/el-GR-W7S64QNM.js.map +7 -0
  34. package/dist/dev/locales/{en-SMAPCEOQ.js → en-ZO6QSABV.js} +4 -2
  35. package/dist/dev/locales/{es-ES-AQYVXC32.js → es-ES-7JEN5PTZ.js} +211 -54
  36. package/dist/dev/locales/es-ES-7JEN5PTZ.js.map +7 -0
  37. package/dist/dev/locales/{eu-ES-3TOEU5DE.js → eu-ES-HQNHU6VR.js} +209 -52
  38. package/dist/dev/locales/eu-ES-HQNHU6VR.js.map +7 -0
  39. package/dist/dev/locales/{fa-IR-527GAKUP.js → fa-IR-IN6XOPA6.js} +285 -128
  40. package/dist/dev/locales/fa-IR-IN6XOPA6.js.map +7 -0
  41. package/dist/dev/locales/{fi-FI-M3WLVDFP.js → fi-FI-5BAAYJDZ.js} +239 -82
  42. package/dist/dev/locales/fi-FI-5BAAYJDZ.js.map +7 -0
  43. package/dist/dev/locales/{fr-FR-YE4VDJFI.js → fr-FR-KCXBY2R4.js} +202 -45
  44. package/dist/dev/locales/fr-FR-KCXBY2R4.js.map +7 -0
  45. package/dist/dev/locales/{gl-ES-KMXUYGUN.js → gl-ES-5OPGWS6N.js} +211 -54
  46. package/dist/dev/locales/gl-ES-5OPGWS6N.js.map +7 -0
  47. package/dist/dev/locales/he-IL-3A6ZWK6L.js +743 -0
  48. package/dist/dev/locales/he-IL-3A6ZWK6L.js.map +7 -0
  49. package/dist/dev/locales/hi-IN-HZTBH6EG.js +743 -0
  50. package/dist/dev/locales/hi-IN-HZTBH6EG.js.map +7 -0
  51. package/dist/dev/locales/{hu-HU-VIYZI3X4.js → hu-HU-52IRZEAZ.js} +237 -80
  52. package/dist/dev/locales/hu-HU-52IRZEAZ.js.map +7 -0
  53. package/dist/dev/locales/{id-ID-22TWZNLA.js → id-ID-W6HBGXTS.js} +244 -87
  54. package/dist/dev/locales/id-ID-W6HBGXTS.js.map +7 -0
  55. package/dist/dev/locales/{it-IT-MDEQ2SG3.js → it-IT-AV75ICYT.js} +201 -44
  56. package/dist/dev/locales/it-IT-AV75ICYT.js.map +7 -0
  57. package/dist/dev/locales/{ja-JP-K2DI4W6B.js → ja-JP-SS4G3ZXF.js} +246 -89
  58. package/dist/dev/locales/ja-JP-SS4G3ZXF.js.map +7 -0
  59. package/dist/dev/locales/{kaa-6BPSNM3R.js → kaa-Y5BBB3IW.js} +201 -44
  60. package/dist/dev/locales/kaa-Y5BBB3IW.js.map +7 -0
  61. package/dist/dev/locales/{kab-KAB-2S7ZURK7.js → kab-KAB-KDVZQXBT.js} +209 -52
  62. package/dist/dev/locales/kab-KAB-KDVZQXBT.js.map +7 -0
  63. package/dist/dev/locales/{kk-KZ-UJPYGRQQ.js → kk-KZ-762YODLJ.js} +174 -17
  64. package/dist/dev/locales/kk-KZ-762YODLJ.js.map +7 -0
  65. package/dist/dev/locales/{km-KH-M5T5JKUE.js → km-KH-K2TE5MIK.js} +197 -40
  66. package/dist/dev/locales/km-KH-K2TE5MIK.js.map +7 -0
  67. package/dist/dev/locales/{ko-KR-RQX37SNF.js → ko-KR-75RUMBCO.js} +217 -60
  68. package/dist/dev/locales/ko-KR-75RUMBCO.js.map +7 -0
  69. package/dist/dev/locales/{ku-TR-5XJDIERL.js → ku-TR-E6DJ6LYM.js} +197 -40
  70. package/dist/dev/locales/ku-TR-E6DJ6LYM.js.map +7 -0
  71. package/dist/dev/locales/{lt-LT-MGUBX6CA.js → lt-LT-BYS5DA45.js} +178 -21
  72. package/dist/dev/locales/lt-LT-BYS5DA45.js.map +7 -0
  73. package/dist/dev/locales/{lv-LV-MD7N5VHD.js → lv-LV-SPQ2VWX3.js} +195 -38
  74. package/dist/dev/locales/lv-LV-SPQ2VWX3.js.map +7 -0
  75. package/dist/dev/locales/{mr-IN-4XWMNGQC.js → mr-IN-2HLK6LUA.js} +203 -46
  76. package/dist/dev/locales/mr-IN-2HLK6LUA.js.map +7 -0
  77. package/dist/dev/locales/{my-MM-O4Z74GN5.js → my-MM-P2LR44WR.js} +180 -23
  78. package/dist/dev/locales/my-MM-P2LR44WR.js.map +7 -0
  79. package/dist/dev/locales/{nb-NO-BMB73KRH.js → nb-NO-7YZHFFVS.js} +219 -62
  80. package/dist/dev/locales/nb-NO-7YZHFFVS.js.map +7 -0
  81. package/dist/dev/locales/{nl-NL-F2257BLQ.js → nl-NL-TF2OVIKN.js} +217 -60
  82. package/dist/dev/locales/nl-NL-TF2OVIKN.js.map +7 -0
  83. package/dist/dev/locales/{nn-NO-NCORG7TS.js → nn-NO-2BWEL2IS.js} +200 -43
  84. package/dist/dev/locales/nn-NO-2BWEL2IS.js.map +7 -0
  85. package/dist/dev/locales/{oc-FR-ATFBDMF6.js → oc-FR-5JYIFGLE.js} +212 -55
  86. package/dist/dev/locales/oc-FR-5JYIFGLE.js.map +7 -0
  87. package/dist/dev/locales/{pa-IN-D2I375G4.js → pa-IN-KBBGER76.js} +189 -32
  88. package/dist/dev/locales/pa-IN-KBBGER76.js.map +7 -0
  89. package/dist/dev/locales/{percentages-YKFLWNK2.js → percentages-2RAYDWNS.js} +2 -2
  90. package/dist/dev/locales/{pl-PL-YJHOWAAW.js → pl-PL-BWZ2X734.js} +213 -56
  91. package/dist/dev/locales/pl-PL-BWZ2X734.js.map +7 -0
  92. package/dist/dev/locales/{pt-BR-APOPYZJ7.js → pt-BR-ERVIQI63.js} +236 -79
  93. package/dist/dev/locales/pt-BR-ERVIQI63.js.map +7 -0
  94. package/dist/dev/locales/pt-PT-ZNJ5NB5S.js +743 -0
  95. package/dist/dev/locales/pt-PT-ZNJ5NB5S.js.map +7 -0
  96. package/dist/dev/locales/{ro-RO-L575VRQA.js → ro-RO-UYNXGUB7.js} +202 -45
  97. package/dist/dev/locales/ro-RO-UYNXGUB7.js.map +7 -0
  98. package/dist/dev/locales/{ru-RU-BLG6HZG5.js → ru-RU-F7LPIMGQ.js} +252 -95
  99. package/dist/dev/locales/ru-RU-F7LPIMGQ.js.map +7 -0
  100. package/dist/dev/locales/si-LK-5GF2DJUH.js +743 -0
  101. package/dist/dev/locales/si-LK-5GF2DJUH.js.map +7 -0
  102. package/dist/dev/locales/{sk-SK-DY6IPO5U.js → sk-SK-H6WE7IJX.js} +199 -42
  103. package/dist/dev/locales/sk-SK-H6WE7IJX.js.map +7 -0
  104. package/dist/dev/locales/{sl-SI-5DZSRA47.js → sl-SI-4PJ6LBI7.js} +196 -39
  105. package/dist/dev/locales/sl-SI-4PJ6LBI7.js.map +7 -0
  106. package/dist/dev/locales/{sv-SE-V32YHALQ.js → sv-SE-E5VQLCRE.js} +201 -44
  107. package/dist/dev/locales/sv-SE-E5VQLCRE.js.map +7 -0
  108. package/dist/dev/locales/{ta-IN-5JRAGQAO.js → ta-IN-2YWIVLKF.js} +256 -99
  109. package/dist/dev/locales/ta-IN-2YWIVLKF.js.map +7 -0
  110. package/dist/dev/locales/{th-TH-55ACRHDJ.js → th-TH-IV7RUTDK.js} +288 -131
  111. package/dist/dev/locales/th-TH-IV7RUTDK.js.map +7 -0
  112. package/dist/dev/locales/{tr-TR-7QYBXDBO.js → tr-TR-LEQWIQH7.js} +256 -99
  113. package/dist/dev/locales/tr-TR-LEQWIQH7.js.map +7 -0
  114. package/dist/dev/locales/{uk-UA-TJS2TMRH.js → uk-UA-DWVOQPTB.js} +228 -71
  115. package/dist/dev/locales/uk-UA-DWVOQPTB.js.map +7 -0
  116. package/dist/dev/locales/{si-LK-KT7GGO6D.js → uz-UZ-CKXQ3QKG.js} +211 -54
  117. package/dist/dev/locales/uz-UZ-CKXQ3QKG.js.map +7 -0
  118. package/dist/dev/locales/vi-VN-3P6DZOGS.js +743 -0
  119. package/dist/dev/locales/vi-VN-3P6DZOGS.js.map +7 -0
  120. package/dist/dev/locales/{zh-CN-4MXUOFTH.js → zh-CN-XXVG53TQ.js} +198 -41
  121. package/dist/dev/locales/zh-CN-XXVG53TQ.js.map +7 -0
  122. package/dist/dev/locales/{zh-HK-RBTGIU3U.js → zh-HK-JCHGKEUE.js} +174 -17
  123. package/dist/dev/locales/zh-HK-JCHGKEUE.js.map +7 -0
  124. package/dist/dev/locales/{zh-TW-U5VF4CCU.js → zh-TW-ARVT7RZU.js} +203 -46
  125. package/dist/dev/locales/zh-TW-ARVT7RZU.js.map +7 -0
  126. package/dist/prod/chunk-KRJFZ5JQ.js +1 -0
  127. package/dist/prod/chunk-N7QNUCIG.js +12 -0
  128. package/dist/prod/chunk-XJNFOLHK.js +4 -0
  129. package/dist/prod/data/{image-HXEZYJPQ.js → image-SMWA6JLH.js} +1 -1
  130. package/dist/prod/index.css +1 -1
  131. package/dist/prod/index.js +23 -23
  132. package/dist/prod/locales/ar-SA-F62BVQMB.js +8 -0
  133. package/dist/prod/locales/az-AZ-7PGSKYOB.js +1 -0
  134. package/dist/prod/locales/bg-BG-AAEXMUQ4.js +5 -0
  135. package/dist/prod/locales/bn-BD-ONOFQYIQ.js +3 -0
  136. package/dist/prod/locales/bn-IN-YT3I2M3F.js +3 -0
  137. package/dist/prod/locales/ca-ES-GG4YH2FN.js +8 -0
  138. package/dist/prod/locales/cs-CZ-IS5VTBOP.js +7 -0
  139. package/dist/prod/locales/da-DK-VPQ2KWAY.js +2 -0
  140. package/dist/prod/locales/de-CH-G4Y2G6IS.js +7 -0
  141. package/dist/prod/locales/de-DE-RAT2LIDI.js +7 -0
  142. package/dist/prod/locales/el-GR-DNJB2AZO.js +7 -0
  143. package/dist/prod/locales/en-FOCNVEEU.js +1 -0
  144. package/dist/prod/locales/es-ES-IMTENLBU.js +7 -0
  145. package/dist/prod/locales/eu-ES-XLOS36YS.js +7 -0
  146. package/dist/prod/locales/fa-IR-J6Z2YOGX.js +9 -0
  147. package/dist/prod/locales/fi-FI-B2IQ7SBP.js +6 -0
  148. package/dist/prod/locales/fr-FR-N5BRDCMI.js +12 -0
  149. package/dist/prod/locales/gl-ES-BOYALFRN.js +6 -0
  150. package/dist/prod/locales/he-IL-H7M7HGY5.js +8 -0
  151. package/dist/prod/locales/hi-IN-7AB5CA2Q.js +3 -0
  152. package/dist/prod/locales/hu-HU-ZZM7UJLP.js +3 -0
  153. package/dist/prod/locales/id-ID-RZ7JNCXA.js +8 -0
  154. package/dist/prod/locales/it-IT-ZX7HN56D.js +8 -0
  155. package/dist/prod/locales/ja-JP-NBNBUHIR.js +7 -0
  156. package/dist/prod/locales/kaa-QWYSGEM7.js +1 -0
  157. package/dist/prod/locales/kab-KAB-Q3HBKQ5I.js +4 -0
  158. package/dist/prod/locales/kk-KZ-HF2NTCRX.js +1 -0
  159. package/dist/prod/locales/km-KH-CN6HHF5U.js +7 -0
  160. package/dist/prod/locales/ko-KR-SJQMUXM7.js +5 -0
  161. package/dist/prod/locales/ku-TR-VM4BHTPC.js +6 -0
  162. package/dist/prod/locales/lt-LT-QIWZQ7AG.js +3 -0
  163. package/dist/prod/locales/lv-LV-YQFCB4WZ.js +4 -0
  164. package/dist/prod/locales/mr-IN-GR2ZJPSQ.js +9 -0
  165. package/dist/prod/locales/my-MM-M5XJDJQ2.js +1 -0
  166. package/dist/prod/locales/nb-NO-2RU2YF7H.js +8 -0
  167. package/dist/prod/locales/nl-NL-MUHXDQFK.js +7 -0
  168. package/dist/prod/locales/nn-NO-72RCA552.js +4 -0
  169. package/dist/prod/locales/oc-FR-65ITQYQ2.js +4 -0
  170. package/dist/prod/locales/pa-IN-WESENMFH.js +4 -0
  171. package/dist/prod/locales/percentages-OEPNEGCM.js +1 -0
  172. package/dist/prod/locales/pl-PL-7C4NGVUA.js +12 -0
  173. package/dist/prod/locales/pt-BR-QH23C2IX.js +6 -0
  174. package/dist/prod/locales/pt-PT-O5XBATXI.js +8 -0
  175. package/dist/prod/locales/ro-RO-QHCHEGM5.js +12 -0
  176. package/dist/prod/locales/ru-RU-FUMQ2LLB.js +6 -0
  177. package/dist/prod/locales/si-LK-JYUINGNN.js +1 -0
  178. package/dist/prod/locales/sk-SK-R25O52BS.js +7 -0
  179. package/dist/prod/locales/sl-SI-5KPVX4FS.js +6 -0
  180. package/dist/prod/locales/sv-SE-MVMXV6O4.js +8 -0
  181. package/dist/prod/locales/ta-IN-A32FQB4D.js +6 -0
  182. package/dist/prod/locales/th-TH-CXMWNVBY.js +1 -0
  183. package/dist/prod/locales/tr-TR-YHFI3W2D.js +4 -0
  184. package/dist/prod/locales/uk-UA-UTJIIKT5.js +6 -0
  185. package/dist/prod/locales/uz-UZ-H4EGTR7D.js +1 -0
  186. package/dist/prod/locales/vi-VN-XBV2ESZM.js +7 -0
  187. package/dist/prod/locales/zh-CN-CKCJ4HAO.js +11 -0
  188. package/dist/prod/locales/zh-HK-ISASRRMF.js +1 -0
  189. package/dist/prod/locales/zh-TW-KYRW5V3R.js +9 -0
  190. package/dist/types/common/src/constants.d.ts +21 -15
  191. package/dist/types/common/src/editorInterface.d.ts +34 -0
  192. package/dist/types/common/src/index.d.ts +2 -0
  193. package/dist/types/common/src/utils.d.ts +9 -3
  194. package/dist/types/common/src/visualdebug.d.ts +41 -0
  195. package/dist/types/element/src/Scene.d.ts +6 -2
  196. package/dist/types/element/src/align.d.ts +2 -1
  197. package/dist/types/element/src/binding.d.ts +55 -43
  198. package/dist/types/element/src/bounds.d.ts +1 -1
  199. package/dist/types/element/src/collision.d.ts +6 -2
  200. package/dist/types/element/src/delta.d.ts +16 -4
  201. package/dist/types/element/src/distribute.d.ts +2 -1
  202. package/dist/types/element/src/groups.d.ts +1 -0
  203. package/dist/types/element/src/index.d.ts +1 -3
  204. package/dist/types/element/src/linearElementEditor.d.ts +17 -19
  205. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  206. package/dist/types/element/src/renderElement.d.ts +5 -2
  207. package/dist/types/element/src/resizeTest.d.ts +5 -4
  208. package/dist/types/element/src/store.d.ts +6 -1
  209. package/dist/types/element/src/textElement.d.ts +1 -1
  210. package/dist/types/element/src/transformHandles.d.ts +5 -4
  211. package/dist/types/element/src/typeChecks.d.ts +2 -3
  212. package/dist/types/element/src/types.d.ts +7 -11
  213. package/dist/types/element/src/utils.d.ts +2 -1
  214. package/dist/types/element/src/zindex.d.ts +7 -1
  215. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +34 -16
  216. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  217. package/dist/types/excalidraw/actions/actionBoundText.d.ts +25 -13
  218. package/dist/types/excalidraw/actions/actionCanvas.d.ts +153 -275
  219. package/dist/types/excalidraw/actions/actionClipboard.d.ts +45 -777
  220. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +12 -6
  221. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +45 -29
  222. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -2
  223. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -2
  224. package/dist/types/excalidraw/actions/actionElementLink.d.ts +11 -7
  225. package/dist/types/excalidraw/actions/actionElementLock.d.ts +23 -11
  226. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +12 -6
  227. package/dist/types/excalidraw/actions/actionExport.d.ts +68 -952
  228. package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
  229. package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -2
  230. package/dist/types/excalidraw/actions/actionFrame.d.ts +50 -28
  231. package/dist/types/excalidraw/actions/actionGroup.d.ts +24 -12
  232. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +47 -14
  233. package/dist/types/excalidraw/actions/actionLink.d.ts +9 -3
  234. package/dist/types/excalidraw/actions/actionMenu.d.ts +10 -374
  235. package/dist/types/excalidraw/actions/actionNavigate.d.ts +21 -361
  236. package/dist/types/excalidraw/actions/actionProperties.d.ts +87 -2418
  237. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +12 -6
  238. package/dist/types/excalidraw/actions/actionStyles.d.ts +13 -7
  239. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  240. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +11 -5
  241. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +11 -5
  242. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +10 -6
  243. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  244. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +11 -5
  245. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +11 -5
  246. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +12 -6
  247. package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -2
  248. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  249. package/dist/types/excalidraw/actions/manager.d.ts +1 -1
  250. package/dist/types/excalidraw/actions/register.d.ts +1 -1
  251. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  252. package/dist/types/excalidraw/appState.d.ts +9 -4
  253. package/dist/types/excalidraw/clipboard.d.ts +64 -1
  254. package/dist/types/excalidraw/components/Actions.d.ts +20 -7
  255. package/dist/types/excalidraw/components/App.d.ts +35 -25
  256. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  257. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  258. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  259. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  260. package/dist/types/excalidraw/components/CommandPalette/types.d.ts +1 -2
  261. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  262. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -1
  263. package/dist/types/excalidraw/components/FilledButton.d.ts +1 -1
  264. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  265. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  266. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  267. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  268. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  269. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  270. package/dist/types/excalidraw/components/LinkButton.d.ts +4 -0
  271. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  272. package/dist/types/excalidraw/components/MobileToolBar.d.ts +11 -0
  273. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  274. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  275. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  276. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -2
  277. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  278. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  279. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
  280. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +4 -2
  281. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +2 -1
  282. package/dist/types/excalidraw/components/icons.d.ts +10 -0
  283. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +13 -1
  284. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +0 -3
  285. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  286. package/dist/types/excalidraw/data/blob.d.ts +3 -7
  287. package/dist/types/excalidraw/data/reconcile.d.ts +1 -0
  288. package/dist/types/excalidraw/data/restore.d.ts +7 -2
  289. package/dist/types/excalidraw/data/types.d.ts +4 -1
  290. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  291. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +3 -1
  292. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  293. package/dist/types/excalidraw/index.d.ts +4 -4
  294. package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
  295. package/dist/types/excalidraw/renderer/helpers.d.ts +1 -5
  296. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +5 -13
  297. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  298. package/dist/types/excalidraw/scene/types.d.ts +15 -3
  299. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  300. package/dist/types/excalidraw/types.d.ts +37 -24
  301. package/dist/types/math/src/segment.d.ts +1 -0
  302. package/history.ts +1 -1
  303. package/package.json +6 -6
  304. package/dist/dev/chunk-CBGOW5JB.js.map +0 -7
  305. package/dist/dev/chunk-MFAYKRVR.js +0 -66
  306. package/dist/dev/chunk-MFAYKRVR.js.map +0 -7
  307. package/dist/dev/chunk-QF5FRM6O.js.map +0 -7
  308. package/dist/dev/locales/ar-SA-XORAP2EK.js.map +0 -7
  309. package/dist/dev/locales/az-AZ-NAUU3Z4Y.js.map +0 -7
  310. package/dist/dev/locales/bg-BG-AAABLFCY.js.map +0 -7
  311. package/dist/dev/locales/bn-BD-PM4AC5WG.js.map +0 -7
  312. package/dist/dev/locales/ca-ES-YNNMFRQX.js.map +0 -7
  313. package/dist/dev/locales/cs-CZ-DGZA5IKG.js.map +0 -7
  314. package/dist/dev/locales/da-DK-N76F4QAJ.js.map +0 -7
  315. package/dist/dev/locales/de-DE-DMRXZ2SZ.js.map +0 -7
  316. package/dist/dev/locales/el-GR-HIKPLEXI.js.map +0 -7
  317. package/dist/dev/locales/es-ES-AQYVXC32.js.map +0 -7
  318. package/dist/dev/locales/eu-ES-3TOEU5DE.js.map +0 -7
  319. package/dist/dev/locales/fa-IR-527GAKUP.js.map +0 -7
  320. package/dist/dev/locales/fi-FI-M3WLVDFP.js.map +0 -7
  321. package/dist/dev/locales/fr-FR-YE4VDJFI.js.map +0 -7
  322. package/dist/dev/locales/gl-ES-KMXUYGUN.js.map +0 -7
  323. package/dist/dev/locales/he-IL-4MU5N22B.js +0 -586
  324. package/dist/dev/locales/he-IL-4MU5N22B.js.map +0 -7
  325. package/dist/dev/locales/hi-IN-ZHZNZWFC.js +0 -586
  326. package/dist/dev/locales/hi-IN-ZHZNZWFC.js.map +0 -7
  327. package/dist/dev/locales/hu-HU-VIYZI3X4.js.map +0 -7
  328. package/dist/dev/locales/id-ID-22TWZNLA.js.map +0 -7
  329. package/dist/dev/locales/it-IT-MDEQ2SG3.js.map +0 -7
  330. package/dist/dev/locales/ja-JP-K2DI4W6B.js.map +0 -7
  331. package/dist/dev/locales/kaa-6BPSNM3R.js.map +0 -7
  332. package/dist/dev/locales/kab-KAB-2S7ZURK7.js.map +0 -7
  333. package/dist/dev/locales/kk-KZ-UJPYGRQQ.js.map +0 -7
  334. package/dist/dev/locales/km-KH-M5T5JKUE.js.map +0 -7
  335. package/dist/dev/locales/ko-KR-RQX37SNF.js.map +0 -7
  336. package/dist/dev/locales/ku-TR-5XJDIERL.js.map +0 -7
  337. package/dist/dev/locales/lt-LT-MGUBX6CA.js.map +0 -7
  338. package/dist/dev/locales/lv-LV-MD7N5VHD.js.map +0 -7
  339. package/dist/dev/locales/mr-IN-4XWMNGQC.js.map +0 -7
  340. package/dist/dev/locales/my-MM-O4Z74GN5.js.map +0 -7
  341. package/dist/dev/locales/nb-NO-BMB73KRH.js.map +0 -7
  342. package/dist/dev/locales/nl-NL-F2257BLQ.js.map +0 -7
  343. package/dist/dev/locales/nn-NO-NCORG7TS.js.map +0 -7
  344. package/dist/dev/locales/oc-FR-ATFBDMF6.js.map +0 -7
  345. package/dist/dev/locales/pa-IN-D2I375G4.js.map +0 -7
  346. package/dist/dev/locales/pl-PL-YJHOWAAW.js.map +0 -7
  347. package/dist/dev/locales/pt-BR-APOPYZJ7.js.map +0 -7
  348. package/dist/dev/locales/pt-PT-W56WCN7P.js +0 -586
  349. package/dist/dev/locales/pt-PT-W56WCN7P.js.map +0 -7
  350. package/dist/dev/locales/ro-RO-L575VRQA.js.map +0 -7
  351. package/dist/dev/locales/ru-RU-BLG6HZG5.js.map +0 -7
  352. package/dist/dev/locales/si-LK-KT7GGO6D.js.map +0 -7
  353. package/dist/dev/locales/sk-SK-DY6IPO5U.js.map +0 -7
  354. package/dist/dev/locales/sl-SI-5DZSRA47.js.map +0 -7
  355. package/dist/dev/locales/sv-SE-V32YHALQ.js.map +0 -7
  356. package/dist/dev/locales/ta-IN-5JRAGQAO.js.map +0 -7
  357. package/dist/dev/locales/th-TH-55ACRHDJ.js.map +0 -7
  358. package/dist/dev/locales/tr-TR-7QYBXDBO.js.map +0 -7
  359. package/dist/dev/locales/uk-UA-TJS2TMRH.js.map +0 -7
  360. package/dist/dev/locales/vi-VN-Y5CQ2EKQ.js +0 -586
  361. package/dist/dev/locales/vi-VN-Y5CQ2EKQ.js.map +0 -7
  362. package/dist/dev/locales/zh-CN-4MXUOFTH.js.map +0 -7
  363. package/dist/dev/locales/zh-HK-RBTGIU3U.js.map +0 -7
  364. package/dist/dev/locales/zh-TW-U5VF4CCU.js.map +0 -7
  365. package/dist/prod/chunk-I4UNSFV6.js +0 -12
  366. package/dist/prod/chunk-IRHK23LL.js +0 -4
  367. package/dist/prod/chunk-Z3N5DIM6.js +0 -1
  368. package/dist/prod/locales/ar-SA-G6X2FPQ2.js +0 -10
  369. package/dist/prod/locales/az-AZ-76LH7QW2.js +0 -1
  370. package/dist/prod/locales/bg-BG-XCXSNQG7.js +0 -5
  371. package/dist/prod/locales/bn-BD-2XOGV67Q.js +0 -5
  372. package/dist/prod/locales/ca-ES-6MX7JW3Y.js +0 -8
  373. package/dist/prod/locales/cs-CZ-2BRQDIVT.js +0 -11
  374. package/dist/prod/locales/da-DK-5WZEPLOC.js +0 -5
  375. package/dist/prod/locales/de-DE-XR44H4JA.js +0 -8
  376. package/dist/prod/locales/el-GR-BZB4AONW.js +0 -10
  377. package/dist/prod/locales/en-TYY6KWIJ.js +0 -1
  378. package/dist/prod/locales/es-ES-U4NZUMDT.js +0 -9
  379. package/dist/prod/locales/eu-ES-A7QVB2H4.js +0 -11
  380. package/dist/prod/locales/fa-IR-HGAKTJCU.js +0 -8
  381. package/dist/prod/locales/fi-FI-Z5N7JZ37.js +0 -6
  382. package/dist/prod/locales/fr-FR-RHASNOE6.js +0 -9
  383. package/dist/prod/locales/gl-ES-HMX3MZ6V.js +0 -10
  384. package/dist/prod/locales/he-IL-6SHJWFNN.js +0 -10
  385. package/dist/prod/locales/hi-IN-IWLTKZ5I.js +0 -4
  386. package/dist/prod/locales/hu-HU-A5ZG7DT2.js +0 -7
  387. package/dist/prod/locales/id-ID-SAP4L64H.js +0 -10
  388. package/dist/prod/locales/it-IT-JPQ66NNP.js +0 -11
  389. package/dist/prod/locales/ja-JP-DBVTYXUO.js +0 -8
  390. package/dist/prod/locales/kaa-6HZHGXH3.js +0 -1
  391. package/dist/prod/locales/kab-KAB-ZGHBKWFO.js +0 -8
  392. package/dist/prod/locales/kk-KZ-P5N5QNE5.js +0 -1
  393. package/dist/prod/locales/km-KH-HSX4SM5Z.js +0 -11
  394. package/dist/prod/locales/ko-KR-MTYHY66A.js +0 -9
  395. package/dist/prod/locales/ku-TR-6OUDTVRD.js +0 -9
  396. package/dist/prod/locales/lt-LT-XHIRWOB4.js +0 -3
  397. package/dist/prod/locales/lv-LV-5QDEKY6T.js +0 -7
  398. package/dist/prod/locales/mr-IN-CRQNXWMA.js +0 -13
  399. package/dist/prod/locales/my-MM-5M5IBNSE.js +0 -1
  400. package/dist/prod/locales/nb-NO-T6EIAALU.js +0 -10
  401. package/dist/prod/locales/nl-NL-IS3SIHDZ.js +0 -8
  402. package/dist/prod/locales/nn-NO-6E72VCQL.js +0 -8
  403. package/dist/prod/locales/oc-FR-POXYY2M6.js +0 -8
  404. package/dist/prod/locales/pa-IN-N4M65BXN.js +0 -4
  405. package/dist/prod/locales/percentages-BXMCSKIN.js +0 -1
  406. package/dist/prod/locales/pl-PL-T2D74RX3.js +0 -9
  407. package/dist/prod/locales/pt-BR-5N22H2LF.js +0 -9
  408. package/dist/prod/locales/pt-PT-UZXXM6DQ.js +0 -9
  409. package/dist/prod/locales/ro-RO-JPDTUUEW.js +0 -11
  410. package/dist/prod/locales/ru-RU-B4JR7IUQ.js +0 -9
  411. package/dist/prod/locales/si-LK-N5RQ5JYF.js +0 -1
  412. package/dist/prod/locales/sk-SK-C5VTKIMK.js +0 -6
  413. package/dist/prod/locales/sl-SI-NN7IZMDC.js +0 -6
  414. package/dist/prod/locales/sv-SE-XGPEYMSR.js +0 -10
  415. package/dist/prod/locales/ta-IN-2NMHFXQM.js +0 -9
  416. package/dist/prod/locales/th-TH-HPSO5L25.js +0 -2
  417. package/dist/prod/locales/tr-TR-DEFEU3FU.js +0 -7
  418. package/dist/prod/locales/uk-UA-QMV73CPH.js +0 -6
  419. package/dist/prod/locales/vi-VN-M7AON7JQ.js +0 -5
  420. package/dist/prod/locales/zh-CN-LNUGB5OW.js +0 -10
  421. package/dist/prod/locales/zh-HK-E62DVLB3.js +0 -1
  422. package/dist/prod/locales/zh-TW-RAJ6MFWO.js +0 -9
  423. /package/dist/dev/data/{image-SURZSZNX.js.map → image-S2GFZH7W.js.map} +0 -0
  424. /package/dist/dev/locales/{en-SMAPCEOQ.js.map → en-ZO6QSABV.js.map} +0 -0
  425. /package/dist/dev/locales/{percentages-YKFLWNK2.js.map → percentages-2RAYDWNS.js.map} +0 -0
@@ -12,6 +12,7 @@ type TextFieldProps = {
12
12
  className?: string;
13
13
  placeholder?: string;
14
14
  isRedacted?: boolean;
15
+ type?: "text" | "search";
15
16
  } & ({
16
17
  value: string;
17
18
  } | {
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import "./ToolPopover.scss";
3
+ import type { AppClassProperties } from "../types";
4
+ type ToolOption = {
5
+ type: string;
6
+ icon: React.ReactNode;
7
+ title?: string;
8
+ };
9
+ type ToolPopoverProps = {
10
+ app: AppClassProperties;
11
+ options: readonly ToolOption[];
12
+ activeTool: {
13
+ type: string;
14
+ };
15
+ defaultOption: string;
16
+ className?: string;
17
+ namePrefix: string;
18
+ title: string;
19
+ "data-testid": string;
20
+ onToolChange: (type: string) => void;
21
+ displayedOption: ToolOption;
22
+ fillable?: boolean;
23
+ };
24
+ export declare const ToolPopover: ({ app, options, activeTool, defaultOption, className, namePrefix, title, "data-testid": dataTestId, onToolChange, displayedOption, fillable, }: ToolPopoverProps) => import("react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -1,7 +1,8 @@
1
1
  import React from "react";
2
+ import { type EditorInterface } from "@excalidraw/common";
3
+ import type { RenderableElementsMap, RenderInteractiveSceneCallback } from "@excalidraw/excalidraw/scene/types";
2
4
  import type { NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
3
- import type { RenderableElementsMap, RenderInteractiveSceneCallback } from "../../scene/types";
4
- import type { Device, InteractiveCanvasAppState } from "../../types";
5
+ import type { AppClassProperties, InteractiveCanvasAppState } from "../../types";
5
6
  import type { DOMAttributes } from "react";
6
7
  type InteractiveCanvasProps = {
7
8
  containerRef: React.RefObject<HTMLDivElement | null>;
@@ -15,7 +16,8 @@ type InteractiveCanvasProps = {
15
16
  scale: number;
16
17
  appState: InteractiveCanvasAppState;
17
18
  renderScrollbars: boolean;
18
- device: Device;
19
+ editorInterface: EditorInterface;
20
+ app: AppClassProperties;
19
21
  renderInteractiveSceneCallback: (data: RenderInteractiveSceneCallback) => void;
20
22
  handleCanvasRef: (canvas: HTMLCanvasElement | null) => void;
21
23
  onContextMenu: Exclude<DOMAttributes<HTMLCanvasElement | HTMLDivElement>["onContextMenu"], undefined>;
@@ -26,5 +28,6 @@ type InteractiveCanvasProps = {
26
28
  onPointerDown: Exclude<DOMAttributes<HTMLCanvasElement>["onPointerDown"], undefined>;
27
29
  onDoubleClick: Exclude<DOMAttributes<HTMLCanvasElement>["onDoubleClick"], undefined>;
28
30
  };
31
+ export declare const INTERACTIVE_SCENE_ANIMATION_KEY = "animateInteractiveScene";
29
32
  declare const _default: React.MemoExoticComponent<(props: InteractiveCanvasProps) => import("react/jsx-runtime").JSX.Element>;
30
33
  export default _default;
@@ -1,9 +1,10 @@
1
1
  import React from "react";
2
2
  import "./DropdownMenu.scss";
3
3
  declare const DropdownMenu: {
4
- ({ children, open, }: {
4
+ ({ children, open, placement, }: {
5
5
  children?: React.ReactNode;
6
6
  open: boolean;
7
+ placement?: "top" | "bottom" | undefined;
7
8
  }): import("react/jsx-runtime").JSX.Element;
8
9
  Trigger: {
9
10
  ({ className, children, onToggle, title, ...rest }: {
@@ -15,12 +16,13 @@ declare const DropdownMenu: {
15
16
  displayName: string;
16
17
  };
17
18
  Content: {
18
- ({ children, onClickOutside, className, onSelect, style, }: {
19
+ ({ children, onClickOutside, className, onSelect, style, placement, }: {
19
20
  children?: React.ReactNode;
20
21
  onClickOutside?: (() => void) | undefined;
21
22
  className?: string | undefined;
22
23
  onSelect?: ((event: Event) => void) | undefined;
23
24
  style?: React.CSSProperties | undefined;
25
+ placement?: "top" | "bottom" | undefined;
24
26
  }): import("react/jsx-runtime").JSX.Element;
25
27
  displayName: string;
26
28
  };
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  declare const MenuContent: {
3
- ({ children, onClickOutside, className, onSelect, style, }: {
3
+ ({ children, onClickOutside, className, onSelect, style, placement, }: {
4
4
  children?: React.ReactNode;
5
5
  onClickOutside?: (() => void) | undefined;
6
6
  className?: string | undefined;
@@ -9,6 +9,7 @@ declare const MenuContent: {
9
9
  */
10
10
  onSelect?: ((event: Event) => void) | undefined;
11
11
  style?: React.CSSProperties | undefined;
12
+ placement?: "top" | "bottom" | undefined;
12
13
  }): import("react/jsx-runtime").JSX.Element;
13
14
  displayName: string;
14
15
  };
@@ -11,6 +11,7 @@ export declare const PlusPromoIcon: import("react/jsx-runtime").JSX.Element;
11
11
  export declare const LibraryIcon: import("react/jsx-runtime").JSX.Element;
12
12
  export declare const PlusIcon: import("react/jsx-runtime").JSX.Element;
13
13
  export declare const DotsIcon: import("react/jsx-runtime").JSX.Element;
14
+ export declare const DotsHorizontalIcon: import("react/jsx-runtime").JSX.Element;
14
15
  export declare const PinIcon: import("react/jsx-runtime").JSX.Element;
15
16
  export declare const polygonIcon: import("react/jsx-runtime").JSX.Element;
16
17
  export declare const UnlockedIcon: import("react/jsx-runtime").JSX.Element;
@@ -30,6 +31,7 @@ export declare const LineIcon: import("react/jsx-runtime").JSX.Element;
30
31
  export declare const PenModeIcon: import("react/jsx-runtime").JSX.Element;
31
32
  export declare const FreedrawIcon: import("react/jsx-runtime").JSX.Element;
32
33
  export declare const TextIcon: import("react/jsx-runtime").JSX.Element;
34
+ export declare const TextSizeIcon: import("react/jsx-runtime").JSX.Element;
33
35
  export declare const ImageIcon: import("react/jsx-runtime").JSX.Element;
34
36
  export declare const EraserIcon: import("react/jsx-runtime").JSX.Element;
35
37
  export declare const ZoomInIcon: import("react/jsx-runtime").JSX.Element;
@@ -222,4 +224,12 @@ export declare const collapseUpIcon: import("react/jsx-runtime").JSX.Element;
222
224
  export declare const upIcon: import("react/jsx-runtime").JSX.Element;
223
225
  export declare const cropIcon: import("react/jsx-runtime").JSX.Element;
224
226
  export declare const elementLinkIcon: import("react/jsx-runtime").JSX.Element;
227
+ export declare const resizeIcon: import("react/jsx-runtime").JSX.Element;
228
+ export declare const adjustmentsIcon: import("react/jsx-runtime").JSX.Element;
229
+ export declare const strokeIcon: import("react/jsx-runtime").JSX.Element;
230
+ export declare const pencilIcon: import("react/jsx-runtime").JSX.Element;
231
+ export declare const chevronLeftIcon: import("react/jsx-runtime").JSX.Element;
232
+ export declare const sidebarRightIcon: import("react/jsx-runtime").JSX.Element;
233
+ export declare const messageCircleIcon: import("react/jsx-runtime").JSX.Element;
234
+ export declare const presentationIcon: import("react/jsx-runtime").JSX.Element;
225
235
  export {};
@@ -1,9 +1,21 @@
1
1
  /// <reference types="react" />
2
+ import { type EditorInterface } from "@excalidraw/common";
2
3
  import "./LiveCollaborationTrigger.scss";
3
4
  declare const LiveCollaborationTrigger: {
4
- ({ isCollaborating, onSelect, ...rest }: {
5
+ ({ isCollaborating, onSelect, editorInterface, ...rest }: {
5
6
  isCollaborating: boolean;
6
7
  onSelect: () => void;
8
+ editorInterface?: Readonly<{
9
+ formFactor: "phone" | "tablet" | "desktop";
10
+ desktopUIMode: "compact" | "full";
11
+ userAgent: Readonly<{
12
+ isMobileDevice: boolean;
13
+ platform: "other" | "ios" | "android" | "unknown";
14
+ }>;
15
+ isTouchScreen: boolean;
16
+ canFitSidebar: boolean;
17
+ isLandscape: boolean;
18
+ }> | undefined;
7
19
  } & import("react").ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
8
20
  displayName: string;
9
21
  };
@@ -25,9 +25,6 @@ declare const MainMenu: React.FC<{
25
25
  order?: number | undefined;
26
26
  onSelect?: ((event: Event) => void) | undefined;
27
27
  children: React.ReactNode;
28
- /**
29
- * Called when any menu item is selected (clicked on).
30
- */
31
28
  shortcut?: string | undefined;
32
29
  hovered?: boolean | undefined;
33
30
  selected?: boolean | undefined;
@@ -1,3 +1,4 @@
1
+ import type { AppClassProperties } from "../types";
1
2
  export declare const SHAPES: readonly [{
2
3
  readonly icon: import("react/jsx-runtime").JSX.Element;
3
4
  readonly value: "selection";
@@ -59,4 +60,131 @@ export declare const SHAPES: readonly [{
59
60
  readonly numericKey: "0";
60
61
  readonly fillable: false;
61
62
  }];
62
- export declare const findShapeByKey: (key: string) => "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | null;
63
+ export declare const getToolbarTools: (app: AppClassProperties) => readonly [{
64
+ readonly icon: import("react/jsx-runtime").JSX.Element;
65
+ readonly value: "selection";
66
+ readonly key: "v";
67
+ readonly numericKey: "1";
68
+ readonly fillable: true;
69
+ }, {
70
+ readonly icon: import("react/jsx-runtime").JSX.Element;
71
+ readonly value: "rectangle";
72
+ readonly key: "r";
73
+ readonly numericKey: "2";
74
+ readonly fillable: true;
75
+ }, {
76
+ readonly icon: import("react/jsx-runtime").JSX.Element;
77
+ readonly value: "diamond";
78
+ readonly key: "d";
79
+ readonly numericKey: "3";
80
+ readonly fillable: true;
81
+ }, {
82
+ readonly icon: import("react/jsx-runtime").JSX.Element;
83
+ readonly value: "ellipse";
84
+ readonly key: "o";
85
+ readonly numericKey: "4";
86
+ readonly fillable: true;
87
+ }, {
88
+ readonly icon: import("react/jsx-runtime").JSX.Element;
89
+ readonly value: "arrow";
90
+ readonly key: "a";
91
+ readonly numericKey: "5";
92
+ readonly fillable: true;
93
+ }, {
94
+ readonly icon: import("react/jsx-runtime").JSX.Element;
95
+ readonly value: "line";
96
+ readonly key: "l";
97
+ readonly numericKey: "6";
98
+ readonly fillable: true;
99
+ }, {
100
+ readonly icon: import("react/jsx-runtime").JSX.Element;
101
+ readonly value: "freedraw";
102
+ readonly key: readonly ["p", "x"];
103
+ readonly numericKey: "7";
104
+ readonly fillable: false;
105
+ }, {
106
+ readonly icon: import("react/jsx-runtime").JSX.Element;
107
+ readonly value: "text";
108
+ readonly key: "t";
109
+ readonly numericKey: "8";
110
+ readonly fillable: false;
111
+ }, {
112
+ readonly icon: import("react/jsx-runtime").JSX.Element;
113
+ readonly value: "image";
114
+ readonly key: null;
115
+ readonly numericKey: "9";
116
+ readonly fillable: false;
117
+ }, {
118
+ readonly icon: import("react/jsx-runtime").JSX.Element;
119
+ readonly value: "eraser";
120
+ readonly key: "e";
121
+ readonly numericKey: "0";
122
+ readonly fillable: false;
123
+ }] | readonly [{
124
+ readonly value: "lasso";
125
+ readonly icon: import("react/jsx-runtime").JSX.Element;
126
+ readonly key: "v";
127
+ readonly numericKey: "1";
128
+ readonly fillable: true;
129
+ }, ...({
130
+ readonly icon: import("react/jsx-runtime").JSX.Element;
131
+ readonly value: "selection";
132
+ readonly key: "v";
133
+ readonly numericKey: "1";
134
+ readonly fillable: true;
135
+ } | {
136
+ readonly icon: import("react/jsx-runtime").JSX.Element;
137
+ readonly value: "rectangle";
138
+ readonly key: "r";
139
+ readonly numericKey: "2";
140
+ readonly fillable: true;
141
+ } | {
142
+ readonly icon: import("react/jsx-runtime").JSX.Element;
143
+ readonly value: "diamond";
144
+ readonly key: "d";
145
+ readonly numericKey: "3";
146
+ readonly fillable: true;
147
+ } | {
148
+ readonly icon: import("react/jsx-runtime").JSX.Element;
149
+ readonly value: "ellipse";
150
+ readonly key: "o";
151
+ readonly numericKey: "4";
152
+ readonly fillable: true;
153
+ } | {
154
+ readonly icon: import("react/jsx-runtime").JSX.Element;
155
+ readonly value: "arrow";
156
+ readonly key: "a";
157
+ readonly numericKey: "5";
158
+ readonly fillable: true;
159
+ } | {
160
+ readonly icon: import("react/jsx-runtime").JSX.Element;
161
+ readonly value: "line";
162
+ readonly key: "l";
163
+ readonly numericKey: "6";
164
+ readonly fillable: true;
165
+ } | {
166
+ readonly icon: import("react/jsx-runtime").JSX.Element;
167
+ readonly value: "freedraw";
168
+ readonly key: readonly ["p", "x"];
169
+ readonly numericKey: "7";
170
+ readonly fillable: false;
171
+ } | {
172
+ readonly icon: import("react/jsx-runtime").JSX.Element;
173
+ readonly value: "text";
174
+ readonly key: "t";
175
+ readonly numericKey: "8";
176
+ readonly fillable: false;
177
+ } | {
178
+ readonly icon: import("react/jsx-runtime").JSX.Element;
179
+ readonly value: "image";
180
+ readonly key: null;
181
+ readonly numericKey: "9";
182
+ readonly fillable: false;
183
+ } | {
184
+ readonly icon: import("react/jsx-runtime").JSX.Element;
185
+ readonly value: "eraser";
186
+ readonly key: "e";
187
+ readonly numericKey: "0";
188
+ readonly fillable: false;
189
+ })[]];
190
+ export declare const findShapeByKey: (key: string, app: AppClassProperties) => "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "lasso" | "eraser" | null;
@@ -2,7 +2,7 @@ import { IMAGE_MIME_TYPES, MIME_TYPES } from "@excalidraw/common";
2
2
  import type { ValueOf } from "@excalidraw/common/utility-types";
3
3
  import type { ExcalidrawElement, FileId } from "@excalidraw/element/types";
4
4
  import type { AppState, DataURL, LibraryItem } from "../types";
5
- import type { FileSystemHandle } from "./filesystem";
5
+ import type { FileSystemHandle } from "browser-fs-access";
6
6
  import type { ImportedLibraryData } from "./types";
7
7
  export declare const getMimeType: (blob: Blob | string) => string;
8
8
  export declare const getFileHandleType: (handle: FileSystemHandle | null) => string | null;
@@ -40,12 +40,8 @@ export declare const SVGStringToFile: (SVGString: string, filename?: string) =>
40
40
  type: typeof MIME_TYPES.svg;
41
41
  };
42
42
  export declare const ImageURLToFile: (imageUrl: string, filename?: string) => Promise<File | undefined>;
43
- export declare const getFileFromEvent: (event: React.DragEvent<HTMLDivElement>) => Promise<{
44
- file: File | null;
45
- fileHandle: FileSystemHandle | null;
46
- }>;
47
- export declare const getFileHandle: (event: React.DragEvent<HTMLDivElement>) => Promise<FileSystemHandle | null>;
48
- export declare const createFile: (blob: File | Blob | ArrayBuffer, mimeType: ValueOf<typeof MIME_TYPES>, name: string | undefined) => File;
43
+ export declare const getFileHandle: (event: DragEvent | React.DragEvent | DataTransferItem) => Promise<FileSystemHandle | null>;
44
+ export declare const createFile: (blob: File | Blob | ArrayBuffer, mimeType: string, name: string | undefined) => File;
49
45
  /** attempts to detect correct mimeType if none is set, or if an image
50
46
  * has an incorrect extension.
51
47
  * Note: doesn't handle missing .excalidraw/.excalidrawlib extension */
@@ -3,4 +3,5 @@ import type { MakeBrand } from "@excalidraw/common/utility-types";
3
3
  import type { AppState } from "../types";
4
4
  export type ReconciledExcalidrawElement = OrderedExcalidrawElement & MakeBrand<"ReconciledElement">;
5
5
  export type RemoteExcalidrawElement = OrderedExcalidrawElement & MakeBrand<"RemoteExcalidrawElement">;
6
+ export declare const shouldDiscardRemoteElement: (localAppState: AppState, local: OrderedExcalidrawElement | undefined, remote: RemoteExcalidrawElement) => boolean;
6
7
  export declare const reconcileElements: (localElements: readonly OrderedExcalidrawElement[], remoteElements: readonly RemoteExcalidrawElement[], localAppState: AppState) => ReconciledExcalidrawElement[];
@@ -1,4 +1,4 @@
1
- import type { ExcalidrawElement, OrderedExcalidrawElement } from "@excalidraw/element/types";
1
+ import type { ElementsMap, ExcalidrawArrowElement, ExcalidrawElement, ExcalidrawLinearElement, ExcalidrawSelectionElement, ExcalidrawTextElement, OrderedExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppState, BinaryFiles, LibraryItem } from "../types";
3
3
  import type { ImportedDataState } from "./types";
4
4
  type RestoredAppState = Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
@@ -8,14 +8,19 @@ export type RestoredDataState = {
8
8
  appState: RestoredAppState;
9
9
  files: BinaryFiles;
10
10
  };
11
- export declare const restoreElements: (elements: ImportedDataState["elements"], localElements: readonly ExcalidrawElement[] | null | undefined, opts?: {
11
+ export declare const restoreElement: (element: Exclude<ExcalidrawElement, ExcalidrawSelectionElement>, elementsMap: Readonly<ElementsMap>, opts?: {
12
+ deleteInvisibleElements?: boolean;
13
+ }) => ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | ExcalidrawArrowElement | null;
14
+ export declare const restoreElements: (targetElements: ImportedDataState["elements"], localElements: readonly ExcalidrawElement[] | null | undefined, opts?: {
12
15
  refreshDimensions?: boolean;
13
16
  repairBindings?: boolean;
17
+ deleteInvisibleElements?: boolean;
14
18
  } | undefined) => OrderedExcalidrawElement[];
15
19
  export declare const restoreAppState: (appState: ImportedDataState["appState"], localAppState: Partial<AppState> | null | undefined) => RestoredAppState;
16
20
  export declare const restore: (data: Pick<ImportedDataState, "appState" | "elements" | "files"> | null, localAppState: Partial<AppState> | null | undefined, localElements: readonly ExcalidrawElement[] | null | undefined, elementsConfig?: {
17
21
  refreshDimensions?: boolean;
18
22
  repairBindings?: boolean;
23
+ deleteInvisibleElements?: boolean;
19
24
  }) => RestoredDataState;
20
25
  export declare const restoreLibraryItems: (libraryItems: ImportedDataState["libraryItems"], defaultStatus: LibraryItem["status"]) => LibraryItem[];
21
26
  export {};
@@ -1,7 +1,7 @@
1
1
  import type { VERSIONS } from "@excalidraw/common";
2
2
  import type { ExcalidrawElement } from "@excalidraw/element/types";
3
3
  import type { cleanAppStateForExport } from "../appState";
4
- import type { AppState, BinaryFiles, LibraryItems, LibraryItems_anyVersion } from "../types";
4
+ import type { AppState, BinaryFiles, LibraryItem, LibraryItems, LibraryItems_anyVersion } from "../types";
5
5
  export interface ExportedDataState {
6
6
  type: string;
7
7
  version: number;
@@ -43,3 +43,6 @@ export interface ImportedLibraryData extends Partial<ExportedLibraryData> {
43
43
  /** @deprecated v1 */
44
44
  library?: LibraryItems;
45
45
  }
46
+ export type ExcalidrawLibraryIds = {
47
+ itemIds: LibraryItem["id"][];
48
+ };
@@ -3,7 +3,7 @@ export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
3
  export declare const libraryItemSvgsCache: import("jotai/vanilla/atom").PrimitiveAtom<SvgCache> & {
4
4
  init: SvgCache;
5
5
  };
6
- export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache) => SVGSVGElement | undefined;
6
+ export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache, ref: React.RefObject<HTMLDivElement | null>) => SVGSVGElement | undefined;
7
7
  export declare const useLibraryCache: () => {
8
8
  clearLibraryCache: () => void;
9
9
  deleteItemsFromLibraryCache: (items: LibraryItem["id"][]) => void;
@@ -1,7 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  export declare function useOutsideClick<T extends HTMLElement>(ref: React.RefObject<T | null>,
3
3
  /** if performance is of concern, memoize the callback */
4
- callback: (event: Event) => void,
4
+ callback: (event: Event & {
5
+ target: T;
6
+ }) => void,
5
7
  /**
6
8
  * Optional callback which is called on every click.
7
9
  *
@@ -0,0 +1,14 @@
1
+ export type CaretPosition = {
2
+ start: number;
3
+ end: number;
4
+ };
5
+ export declare const saveCaretPosition: () => CaretPosition | null;
6
+ export declare const restoreCaretPosition: (position: CaretPosition | null) => void;
7
+ export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void) => void;
8
+ export declare const useTextEditorFocus: () => {
9
+ saveCaretPosition: () => void;
10
+ restoreCaretPosition: () => void;
11
+ clearSavedPosition: () => void;
12
+ hasSavedPosition: boolean;
13
+ };
14
+ export declare const temporarilyDisableTextEditorBlur: (duration?: number) => void;
@@ -12,7 +12,7 @@ export { getSceneVersion, hashElementsVersion, hashString, getNonDeletedElements
12
12
  export { getTextFromElements } from "@excalidraw/element";
13
13
  export { isInvisiblySmallElement } from "@excalidraw/element";
14
14
  export { defaultLang, useI18n, languages } from "./i18n";
15
- export { restore, restoreAppState, restoreElements, restoreLibraryItems, } from "./data/restore";
15
+ export { restore, restoreAppState, restoreElement, restoreElements, restoreLibraryItems, } from "./data/restore";
16
16
  export { reconcileElements } from "./data/reconcile";
17
17
  export { exportToCanvas, exportToBlob, exportToSvg, exportToClipboard, } from "@excalidraw/utils/export";
18
18
  export { serializeAsJSON, serializeLibraryAsJSON } from "./data/json";
@@ -20,16 +20,16 @@ export { loadFromBlob, loadSceneOrLibraryFromBlob, loadLibraryFromBlob, } from "
20
20
  export { getFreeDrawSvgPath } from "@excalidraw/element";
21
21
  export { mergeLibraryItems, getLibraryItemsHash } from "./data/library";
22
22
  export { isLinearElement } from "@excalidraw/element";
23
- export { FONT_FAMILY, THEME, MIME_TYPES, ROUNDNESS, DEFAULT_LASER_COLOR, UserIdleState, normalizeLink, } from "@excalidraw/common";
23
+ export { FONT_FAMILY, THEME, MIME_TYPES, ROUNDNESS, DEFAULT_LASER_COLOR, UserIdleState, normalizeLink, sceneCoordsToViewportCoords, viewportCoordsToSceneCoords, getFormFactor, } from "@excalidraw/common";
24
24
  export { mutateElement, newElementWith, bumpVersion, } from "@excalidraw/element";
25
25
  export { CaptureUpdateAction } from "@excalidraw/element";
26
26
  export { parseLibraryTokensFromUrl, useHandleLibrary } from "./data/library";
27
- export { sceneCoordsToViewportCoords, viewportCoordsToSceneCoords, } from "@excalidraw/common";
28
27
  export { Sidebar } from "./components/Sidebar/Sidebar";
29
28
  export { Button } from "./components/Button";
30
29
  export { Footer };
31
30
  export { MainMenu };
32
- export { useDevice } from "./components/App";
31
+ export { Ellipsify } from "./components/Ellipsify";
32
+ export { useEditorInterface, useStylesPanelMode } from "./components/App";
33
33
  export { WelcomeScreen };
34
34
  export { LiveCollaborationTrigger };
35
35
  export { Stats } from "./components/Stats";
@@ -0,0 +1,12 @@
1
+ export type Animation<R extends object> = (params: {
2
+ deltaTime: number;
3
+ state?: R;
4
+ }) => R | null | undefined;
5
+ export declare class AnimationController {
6
+ private static isRunning;
7
+ private static animations;
8
+ static start<R extends object>(key: string, animation: Animation<R>): void;
9
+ private static tick;
10
+ static running(key: string): boolean;
11
+ static cancel(key: string): void;
12
+ }
@@ -1,4 +1,3 @@
1
- import type { ElementsMap, ExcalidrawDiamondElement, ExcalidrawRectanguloidElement } from "@excalidraw/element/types";
2
1
  import type { StaticCanvasRenderConfig } from "../scene/types";
3
2
  import type { AppState, StaticCanvasAppState } from "../types";
4
3
  export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke: boolean, fill?: boolean) => void;
@@ -12,7 +11,4 @@ export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normali
12
11
  isExporting?: boolean | undefined;
13
12
  viewBackgroundColor?: string | null | undefined;
14
13
  }) => CanvasRenderingContext2D;
15
- export declare const drawHighlightForRectWithRotation: (context: CanvasRenderingContext2D, element: ExcalidrawRectanguloidElement, elementsMap: ElementsMap, padding: number) => void;
16
- export declare const strokeEllipseWithRotation: (context: CanvasRenderingContext2D, width: number, height: number, cx: number, cy: number, angle: number) => void;
17
- export declare const strokeRectWithRotation: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, cx: number, cy: number, angle: number, fill?: boolean, radius?: number) => void;
18
- export declare const drawHighlightForDiamondWithRotation: (context: CanvasRenderingContext2D, padding: number, element: ExcalidrawDiamondElement, elementsMap: ElementsMap) => void;
14
+ export declare const strokeRectWithRotation_simple: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, cx: number, cy: number, angle: number, fill?: boolean, radius?: number) => void;
@@ -1,20 +1,12 @@
1
+ import { getScrollBars } from "../scene/scrollbars";
1
2
  import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
2
- /** throttled to animation framerate */
3
- export declare const renderInteractiveSceneThrottled: {
4
- (config: InteractiveSceneRenderConfig): void;
5
- flush(): void;
6
- cancel(): void;
7
- };
8
3
  /**
9
4
  * Interactive scene is the ui-canvas where we render bounding boxes, selections
10
5
  * and other ui stuff.
11
6
  */
12
- export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }: InteractiveSceneRenderConfig) => {
7
+ export declare const renderInteractiveScene: <U extends ({ app, canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
8
+ scrollBars?: import("../scene/types").ScrollBars | undefined;
13
9
  atLeastOneVisibleElement: boolean;
14
10
  elementsMap: RenderableElementsMap;
15
- scrollBars?: undefined;
16
- } | {
17
- scrollBars: import("../scene/types").ScrollBars | undefined;
18
- atLeastOneVisibleElement: boolean;
19
- elementsMap: RenderableElementsMap;
20
- }, T extends boolean = false>(renderConfig: InteractiveSceneRenderConfig, throttle?: T | undefined) => T extends true ? void : ReturnType<U>;
11
+ animationState?: import("../scene/types").InteractiveSceneRenderAnimationState | undefined;
12
+ }>(renderConfig: InteractiveSceneRenderConfig) => ReturnType<U>;
@@ -1,4 +1,7 @@
1
- import type { StaticSceneRenderConfig } from "../scene/types";
1
+ import type { ExcalidrawFrameLikeElement } from "@excalidraw/element/types";
2
+ import type { StaticCanvasRenderConfig, StaticSceneRenderConfig } from "../scene/types";
3
+ import type { StaticCanvasAppState } from "../types";
4
+ export declare const frameClip: (frame: ExcalidrawFrameLikeElement, context: CanvasRenderingContext2D, renderConfig: StaticCanvasRenderConfig, appState: StaticCanvasAppState) => void;
2
5
  /** throttled to animation framerate */
3
6
  export declare const renderStaticSceneThrottled: {
4
7
  (config: StaticSceneRenderConfig): void;
@@ -1,7 +1,7 @@
1
- import type { UserIdleState } from "@excalidraw/common";
1
+ import type { UserIdleState, EditorInterface } from "@excalidraw/common";
2
2
  import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
3
3
  import type { MakeBrand } from "@excalidraw/common/utility-types";
4
- import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, Device, PendingExcalidrawElements } from "../types";
4
+ import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, PendingExcalidrawElements } from "../types";
5
5
  import type { RoughCanvas } from "roughjs/bin/canvas";
6
6
  import type { Drawable } from "roughjs/bin/core";
7
7
  export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
@@ -43,6 +43,10 @@ export type InteractiveCanvasRenderConfig = {
43
43
  remotePointerUsernames: Map<SocketId, string>;
44
44
  remotePointerButton: Map<SocketId, string | undefined>;
45
45
  selectionColor: string;
46
+ lastViewportPosition: {
47
+ x: number;
48
+ y: number;
49
+ };
46
50
  renderScrollbars?: boolean;
47
51
  };
48
52
  export type RenderInteractiveSceneCallback = {
@@ -60,7 +64,13 @@ export type StaticSceneRenderConfig = {
60
64
  appState: StaticCanvasAppState;
61
65
  renderConfig: StaticCanvasRenderConfig;
62
66
  };
67
+ export type InteractiveSceneRenderAnimationState = {
68
+ bindingHighlight: {
69
+ runtime: number;
70
+ } | undefined;
71
+ };
63
72
  export type InteractiveSceneRenderConfig = {
73
+ app: AppClassProperties;
64
74
  canvas: HTMLCanvasElement | null;
65
75
  elementsMap: RenderableElementsMap;
66
76
  visibleElements: readonly NonDeletedExcalidrawElement[];
@@ -69,8 +79,10 @@ export type InteractiveSceneRenderConfig = {
69
79
  scale: number;
70
80
  appState: InteractiveCanvasAppState;
71
81
  renderConfig: InteractiveCanvasRenderConfig;
72
- device: Device;
82
+ editorInterface: EditorInterface;
73
83
  callback: (data: RenderInteractiveSceneCallback) => void;
84
+ animationState?: InteractiveSceneRenderAnimationState;
85
+ deltaTime: number;
74
86
  };
75
87
  export type NewElementSceneRenderConfig = {
76
88
  canvas: HTMLCanvasElement | null;
@@ -0,0 +1 @@
1
+ export declare const getShortcutKey: (shortcut: string) => string;