@excalidraw/excalidraw 0.18.0-4e471c107 → 0.18.0-51ad895

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-OCFTI2BU.js} +49 -26
  2. package/dist/dev/chunk-OCFTI2BU.js.map +7 -0
  3. package/dist/dev/{chunk-CBGOW5JB.js → chunk-SJTAY27F.js} +185 -389
  4. package/dist/dev/chunk-SJTAY27F.js.map +7 -0
  5. package/dist/dev/chunk-WCM2OLWY.js +69 -0
  6. package/dist/dev/chunk-WCM2OLWY.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 +10405 -7221
  11. package/dist/dev/index.js.map +4 -4
  12. package/dist/dev/locales/{ar-SA-XORAP2EK.js → ar-SA-JK5MQ7TT.js} +300 -142
  13. package/dist/dev/locales/ar-SA-JK5MQ7TT.js.map +7 -0
  14. package/dist/dev/locales/{az-AZ-NAUU3Z4Y.js → az-AZ-2PAD62G4.js} +241 -83
  15. package/dist/dev/locales/az-AZ-2PAD62G4.js.map +7 -0
  16. package/dist/dev/locales/{bg-BG-AAABLFCY.js → bg-BG-HUKVYCRK.js} +229 -71
  17. package/dist/dev/locales/bg-BG-HUKVYCRK.js.map +7 -0
  18. package/dist/dev/locales/{bn-BD-PM4AC5WG.js → bn-BD-V2CQI46P.js} +209 -51
  19. package/dist/dev/locales/bn-BD-V2CQI46P.js.map +7 -0
  20. package/dist/dev/locales/bn-IN-MBEO4C3J.js +744 -0
  21. package/dist/dev/locales/bn-IN-MBEO4C3J.js.map +7 -0
  22. package/dist/dev/locales/{ca-ES-YNNMFRQX.js → ca-ES-KWEKW4C3.js} +275 -117
  23. package/dist/dev/locales/ca-ES-KWEKW4C3.js.map +7 -0
  24. package/dist/dev/locales/{cs-CZ-DGZA5IKG.js → cs-CZ-W5AHZB5H.js} +229 -71
  25. package/dist/dev/locales/cs-CZ-W5AHZB5H.js.map +7 -0
  26. package/dist/dev/locales/{da-DK-N76F4QAJ.js → da-DK-ITTM6YM4.js} +298 -140
  27. package/dist/dev/locales/da-DK-ITTM6YM4.js.map +7 -0
  28. package/dist/dev/locales/de-CH-OAWPDQFJ.js +744 -0
  29. package/dist/dev/locales/de-CH-OAWPDQFJ.js.map +7 -0
  30. package/dist/dev/locales/{de-DE-DMRXZ2SZ.js → de-DE-HE4SJIAA.js} +199 -41
  31. package/dist/dev/locales/de-DE-HE4SJIAA.js.map +7 -0
  32. package/dist/dev/locales/{el-GR-HIKPLEXI.js → el-GR-QXASZLPE.js} +274 -116
  33. package/dist/dev/locales/el-GR-QXASZLPE.js.map +7 -0
  34. package/dist/dev/locales/{en-SMAPCEOQ.js → en-MLZIHOCR.js} +4 -2
  35. package/dist/dev/locales/{es-ES-AQYVXC32.js → es-ES-EDA76ZAF.js} +212 -54
  36. package/dist/dev/locales/es-ES-EDA76ZAF.js.map +7 -0
  37. package/dist/dev/locales/{eu-ES-3TOEU5DE.js → eu-ES-TF2DGTZU.js} +210 -52
  38. package/dist/dev/locales/eu-ES-TF2DGTZU.js.map +7 -0
  39. package/dist/dev/locales/{fa-IR-527GAKUP.js → fa-IR-ITKFQ7QV.js} +286 -128
  40. package/dist/dev/locales/fa-IR-ITKFQ7QV.js.map +7 -0
  41. package/dist/dev/locales/{fi-FI-M3WLVDFP.js → fi-FI-UWZRVXFI.js} +240 -82
  42. package/dist/dev/locales/fi-FI-UWZRVXFI.js.map +7 -0
  43. package/dist/dev/locales/{fr-FR-YE4VDJFI.js → fr-FR-Z3SBW42Y.js} +203 -45
  44. package/dist/dev/locales/fr-FR-Z3SBW42Y.js.map +7 -0
  45. package/dist/dev/locales/{gl-ES-KMXUYGUN.js → gl-ES-2QCVIBFP.js} +212 -54
  46. package/dist/dev/locales/gl-ES-2QCVIBFP.js.map +7 -0
  47. package/dist/dev/locales/he-IL-WJNUHU26.js +744 -0
  48. package/dist/dev/locales/he-IL-WJNUHU26.js.map +7 -0
  49. package/dist/dev/locales/hi-IN-XGMO235V.js +744 -0
  50. package/dist/dev/locales/hi-IN-XGMO235V.js.map +7 -0
  51. package/dist/dev/locales/{hu-HU-VIYZI3X4.js → hu-HU-37FDQFIS.js} +238 -80
  52. package/dist/dev/locales/hu-HU-37FDQFIS.js.map +7 -0
  53. package/dist/dev/locales/{id-ID-22TWZNLA.js → id-ID-EJIDCO4E.js} +245 -87
  54. package/dist/dev/locales/id-ID-EJIDCO4E.js.map +7 -0
  55. package/dist/dev/locales/{it-IT-MDEQ2SG3.js → it-IT-HD26UZNF.js} +202 -44
  56. package/dist/dev/locales/it-IT-HD26UZNF.js.map +7 -0
  57. package/dist/dev/locales/{ja-JP-K2DI4W6B.js → ja-JP-37FC23PR.js} +247 -89
  58. package/dist/dev/locales/ja-JP-37FC23PR.js.map +7 -0
  59. package/dist/dev/locales/{kaa-6BPSNM3R.js → kaa-7ZYDFVKA.js} +202 -44
  60. package/dist/dev/locales/kaa-7ZYDFVKA.js.map +7 -0
  61. package/dist/dev/locales/{kab-KAB-2S7ZURK7.js → kab-KAB-MILWXBA6.js} +210 -52
  62. package/dist/dev/locales/kab-KAB-MILWXBA6.js.map +7 -0
  63. package/dist/dev/locales/{kk-KZ-UJPYGRQQ.js → kk-KZ-7BWTPIAV.js} +175 -17
  64. package/dist/dev/locales/kk-KZ-7BWTPIAV.js.map +7 -0
  65. package/dist/dev/locales/{km-KH-M5T5JKUE.js → km-KH-BV4P2KSZ.js} +198 -40
  66. package/dist/dev/locales/km-KH-BV4P2KSZ.js.map +7 -0
  67. package/dist/dev/locales/{ko-KR-RQX37SNF.js → ko-KR-TSXE5P7B.js} +218 -60
  68. package/dist/dev/locales/ko-KR-TSXE5P7B.js.map +7 -0
  69. package/dist/dev/locales/{ku-TR-5XJDIERL.js → ku-TR-ASSXNN3U.js} +198 -40
  70. package/dist/dev/locales/ku-TR-ASSXNN3U.js.map +7 -0
  71. package/dist/dev/locales/{lt-LT-MGUBX6CA.js → lt-LT-G7RZYQQU.js} +179 -21
  72. package/dist/dev/locales/lt-LT-G7RZYQQU.js.map +7 -0
  73. package/dist/dev/locales/{lv-LV-MD7N5VHD.js → lv-LV-DXNPBJZU.js} +196 -38
  74. package/dist/dev/locales/lv-LV-DXNPBJZU.js.map +7 -0
  75. package/dist/dev/locales/{mr-IN-4XWMNGQC.js → mr-IN-7F2ZCTCF.js} +204 -46
  76. package/dist/dev/locales/mr-IN-7F2ZCTCF.js.map +7 -0
  77. package/dist/dev/locales/{my-MM-O4Z74GN5.js → my-MM-NBI3KQGW.js} +181 -23
  78. package/dist/dev/locales/my-MM-NBI3KQGW.js.map +7 -0
  79. package/dist/dev/locales/{nb-NO-BMB73KRH.js → nb-NO-4DCTQT6L.js} +220 -62
  80. package/dist/dev/locales/nb-NO-4DCTQT6L.js.map +7 -0
  81. package/dist/dev/locales/{nl-NL-F2257BLQ.js → nl-NL-RCSOXLW3.js} +218 -60
  82. package/dist/dev/locales/nl-NL-RCSOXLW3.js.map +7 -0
  83. package/dist/dev/locales/{nn-NO-NCORG7TS.js → nn-NO-FR534JV5.js} +201 -43
  84. package/dist/dev/locales/nn-NO-FR534JV5.js.map +7 -0
  85. package/dist/dev/locales/{oc-FR-ATFBDMF6.js → oc-FR-YQCIKZIK.js} +220 -62
  86. package/dist/dev/locales/oc-FR-YQCIKZIK.js.map +7 -0
  87. package/dist/dev/locales/{pa-IN-D2I375G4.js → pa-IN-UM43JGD2.js} +190 -32
  88. package/dist/dev/locales/pa-IN-UM43JGD2.js.map +7 -0
  89. package/dist/dev/locales/{percentages-YKFLWNK2.js → percentages-TR7IWPFY.js} +2 -2
  90. package/dist/dev/locales/{pl-PL-YJHOWAAW.js → pl-PL-2UGKA6HK.js} +214 -56
  91. package/dist/dev/locales/pl-PL-2UGKA6HK.js.map +7 -0
  92. package/dist/dev/locales/{pt-BR-APOPYZJ7.js → pt-BR-H23QFYE3.js} +237 -79
  93. package/dist/dev/locales/pt-BR-H23QFYE3.js.map +7 -0
  94. package/dist/dev/locales/pt-PT-RHKJH5I5.js +744 -0
  95. package/dist/dev/locales/pt-PT-RHKJH5I5.js.map +7 -0
  96. package/dist/dev/locales/{ro-RO-L575VRQA.js → ro-RO-IIFONL3T.js} +203 -45
  97. package/dist/dev/locales/ro-RO-IIFONL3T.js.map +7 -0
  98. package/dist/dev/locales/{ru-RU-BLG6HZG5.js → ru-RU-QEP6D7GK.js} +253 -95
  99. package/dist/dev/locales/ru-RU-QEP6D7GK.js.map +7 -0
  100. package/dist/dev/locales/si-LK-LZYJQLHF.js +744 -0
  101. package/dist/dev/locales/si-LK-LZYJQLHF.js.map +7 -0
  102. package/dist/dev/locales/{sk-SK-DY6IPO5U.js → sk-SK-G2J6PSCB.js} +200 -42
  103. package/dist/dev/locales/sk-SK-G2J6PSCB.js.map +7 -0
  104. package/dist/dev/locales/{sl-SI-5DZSRA47.js → sl-SI-QJT2CAUO.js} +197 -39
  105. package/dist/dev/locales/sl-SI-QJT2CAUO.js.map +7 -0
  106. package/dist/dev/locales/{sv-SE-V32YHALQ.js → sv-SE-3MAT3NDX.js} +202 -44
  107. package/dist/dev/locales/sv-SE-3MAT3NDX.js.map +7 -0
  108. package/dist/dev/locales/{ta-IN-5JRAGQAO.js → ta-IN-J7XOYF2T.js} +257 -99
  109. package/dist/dev/locales/ta-IN-J7XOYF2T.js.map +7 -0
  110. package/dist/dev/locales/{th-TH-55ACRHDJ.js → th-TH-2OI52EOQ.js} +289 -131
  111. package/dist/dev/locales/th-TH-2OI52EOQ.js.map +7 -0
  112. package/dist/dev/locales/{tr-TR-7QYBXDBO.js → tr-TR-G7TAUHUI.js} +257 -99
  113. package/dist/dev/locales/tr-TR-G7TAUHUI.js.map +7 -0
  114. package/dist/dev/locales/{uk-UA-TJS2TMRH.js → uk-UA-IVSVBJIG.js} +229 -71
  115. package/dist/dev/locales/uk-UA-IVSVBJIG.js.map +7 -0
  116. package/dist/dev/locales/{si-LK-KT7GGO6D.js → uz-UZ-KCVDUVDE.js} +212 -54
  117. package/dist/dev/locales/uz-UZ-KCVDUVDE.js.map +7 -0
  118. package/dist/dev/locales/vi-VN-XF3AYKJ7.js +744 -0
  119. package/dist/dev/locales/vi-VN-XF3AYKJ7.js.map +7 -0
  120. package/dist/dev/locales/{zh-CN-4MXUOFTH.js → zh-CN-IS26RG2D.js} +199 -41
  121. package/dist/dev/locales/zh-CN-IS26RG2D.js.map +7 -0
  122. package/dist/dev/locales/{zh-HK-RBTGIU3U.js → zh-HK-KBWQ6SJC.js} +175 -17
  123. package/dist/dev/locales/zh-HK-KBWQ6SJC.js.map +7 -0
  124. package/dist/dev/locales/{zh-TW-U5VF4CCU.js → zh-TW-JKJWJQ4J.js} +204 -46
  125. package/dist/dev/locales/zh-TW-JKJWJQ4J.js.map +7 -0
  126. package/dist/prod/chunk-Q7BNPSJU.js +1 -0
  127. package/dist/prod/chunk-QNG5NH6R.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-IYHKZRSE.js +8 -0
  133. package/dist/prod/locales/az-AZ-WL5GYRHK.js +1 -0
  134. package/dist/prod/locales/bg-BG-FXZYTRPD.js +5 -0
  135. package/dist/prod/locales/bn-BD-KO6YL5G2.js +3 -0
  136. package/dist/prod/locales/bn-IN-PC6JHKYB.js +3 -0
  137. package/dist/prod/locales/ca-ES-AREX5NEO.js +8 -0
  138. package/dist/prod/locales/cs-CZ-HXAZMFYH.js +7 -0
  139. package/dist/prod/locales/da-DK-5X7ZLFU3.js +2 -0
  140. package/dist/prod/locales/de-CH-76ZNVSOF.js +7 -0
  141. package/dist/prod/locales/de-DE-KU2ABQRN.js +7 -0
  142. package/dist/prod/locales/el-GR-4AZTZGY6.js +7 -0
  143. package/dist/prod/locales/en-BARVNJLJ.js +1 -0
  144. package/dist/prod/locales/es-ES-MXQVAWTQ.js +7 -0
  145. package/dist/prod/locales/eu-ES-BIF4XBMT.js +7 -0
  146. package/dist/prod/locales/fa-IR-D4HHKAAI.js +9 -0
  147. package/dist/prod/locales/fi-FI-O35ZY7UI.js +6 -0
  148. package/dist/prod/locales/fr-FR-PJOMXPCV.js +12 -0
  149. package/dist/prod/locales/gl-ES-U4NYM3X5.js +6 -0
  150. package/dist/prod/locales/he-IL-656ABAVQ.js +8 -0
  151. package/dist/prod/locales/hi-IN-Z55GAFFR.js +3 -0
  152. package/dist/prod/locales/hu-HU-UJ62DVIW.js +3 -0
  153. package/dist/prod/locales/id-ID-FLZFU3OO.js +8 -0
  154. package/dist/prod/locales/it-IT-DQZT3VFE.js +12 -0
  155. package/dist/prod/locales/ja-JP-43VXGDWI.js +7 -0
  156. package/dist/prod/locales/kaa-L3IMSDYL.js +1 -0
  157. package/dist/prod/locales/kab-KAB-XKPWJLNL.js +4 -0
  158. package/dist/prod/locales/kk-KZ-SXPDDY2H.js +1 -0
  159. package/dist/prod/locales/km-KH-DOS4CPGC.js +7 -0
  160. package/dist/prod/locales/ko-KR-BGC6VCY4.js +5 -0
  161. package/dist/prod/locales/ku-TR-J7IUITIA.js +6 -0
  162. package/dist/prod/locales/lt-LT-AC3LV5KG.js +3 -0
  163. package/dist/prod/locales/lv-LV-I6AY7QG2.js +4 -0
  164. package/dist/prod/locales/mr-IN-5SP4HV5B.js +9 -0
  165. package/dist/prod/locales/my-MM-S7ECRBYZ.js +1 -0
  166. package/dist/prod/locales/nb-NO-6PNHTF4R.js +8 -0
  167. package/dist/prod/locales/nl-NL-AVTAYVB7.js +7 -0
  168. package/dist/prod/locales/nn-NO-3TFXTM7Y.js +4 -0
  169. package/dist/prod/locales/oc-FR-IK6GIE7H.js +4 -0
  170. package/dist/prod/locales/pa-IN-YAKHYJET.js +4 -0
  171. package/dist/prod/locales/percentages-FZSTHYWV.js +1 -0
  172. package/dist/prod/locales/pl-PL-BIY22ZWU.js +12 -0
  173. package/dist/prod/locales/pt-BR-Q23NUPD6.js +6 -0
  174. package/dist/prod/locales/pt-PT-LOPEJLPJ.js +8 -0
  175. package/dist/prod/locales/ro-RO-W3D2ZATV.js +12 -0
  176. package/dist/prod/locales/ru-RU-DCTW7QSH.js +10 -0
  177. package/dist/prod/locales/si-LK-FYRRHO3C.js +1 -0
  178. package/dist/prod/locales/sk-SK-2KAMKFW5.js +7 -0
  179. package/dist/prod/locales/sl-SI-L6B6HFY5.js +6 -0
  180. package/dist/prod/locales/sv-SE-KMY6L2BA.js +8 -0
  181. package/dist/prod/locales/ta-IN-ZQCYE2JK.js +6 -0
  182. package/dist/prod/locales/th-TH-WS7ECBAV.js +1 -0
  183. package/dist/prod/locales/tr-TR-S5FI7JRW.js +4 -0
  184. package/dist/prod/locales/uk-UA-4EZUWUSQ.js +6 -0
  185. package/dist/prod/locales/uz-UZ-OKHL6AFA.js +1 -0
  186. package/dist/prod/locales/vi-VN-I6Q2YS4S.js +7 -0
  187. package/dist/prod/locales/zh-CN-JE4UZWNO.js +11 -0
  188. package/dist/prod/locales/zh-HK-RM35YDXX.js +1 -0
  189. package/dist/prod/locales/zh-TW-ONGLV6Y5.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-MLZIHOCR.js.map} +0 -0
  425. /package/dist/dev/locales/{percentages-YKFLWNK2.js.map → percentages-TR7IWPFY.js.map} +0 -0
@@ -11,10 +11,10 @@ export type ActionResult = {
11
11
  captureUpdate: CaptureUpdateActionType;
12
12
  replaceFiles?: boolean;
13
13
  } | false;
14
- type ActionFn = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
14
+ type ActionFn<TData = any> = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: TData | undefined, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export type UpdaterFn = (res: ActionResult) => void;
16
16
  export type ActionFilterFn = (action: Action) => void;
17
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch" | "togglePolygon";
17
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeArrowProperties" | "changeOpacity" | "changeFontSize" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch" | "togglePolygon";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -24,13 +24,13 @@ export type PanelComponentProps = {
24
24
  app: AppClassProperties;
25
25
  renderAction: (name: ActionName, data?: PanelComponentProps["data"]) => React.JSX.Element | null;
26
26
  };
27
- export interface Action {
27
+ export interface Action<TData = any> {
28
28
  name: ActionName;
29
29
  label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, app: AppClassProperties) => string);
30
30
  keywords?: string[];
31
31
  icon?: React.ReactNode | ((appState: UIAppState, elements: readonly ExcalidrawElement[]) => React.ReactNode);
32
32
  PanelComponent?: React.FC<PanelComponentProps>;
33
- perform: ActionFn;
33
+ perform: ActionFn<TData>;
34
34
  keyPriority?: number;
35
35
  keyTest?: (event: React.KeyboardEvent | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[], app: AppClassProperties) => boolean;
36
36
  predicate?: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: ExcalidrawProps, app: AppClassProperties) => boolean;
@@ -18,18 +18,25 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
18
18
  } | undefined;
19
19
  selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
20
20
  zenModeEnabled?: boolean | undefined;
21
+ shouldCacheIgnoreZoom?: boolean | undefined;
22
+ exportScale?: number | undefined;
23
+ bindMode?: import("@excalidraw/element/types").BindMode | undefined;
24
+ gridSize?: number | undefined;
21
25
  showWelcomeScreen?: boolean | undefined;
22
26
  activeTool?: ({
23
27
  lastActiveTool: import("./types").ActiveTool | null;
24
28
  locked: boolean;
25
29
  fromSelection: boolean;
26
30
  } & import("./types").ActiveTool) | undefined;
31
+ preferredSelectionTool?: {
32
+ type: "selection" | "lasso";
33
+ initialized: boolean;
34
+ } | undefined;
27
35
  penMode?: boolean | undefined;
28
36
  penDetected?: boolean | undefined;
29
37
  exportBackground?: boolean | undefined;
30
38
  exportEmbedScene?: boolean | undefined;
31
39
  exportWithDarkMode?: boolean | undefined;
32
- exportScale?: number | undefined;
33
40
  currentItemStrokeColor?: string | undefined;
34
41
  currentItemBackgroundColor?: string | undefined;
35
42
  currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
@@ -46,7 +53,7 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
46
53
  currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
47
54
  cursorButton?: "up" | "down" | undefined;
48
55
  scrolledOutside?: boolean | undefined;
49
- openMenu?: "canvas" | "shape" | null | undefined;
56
+ openMenu?: "canvas" | null | undefined;
50
57
  openSidebar?: {
51
58
  name: string;
52
59
  tab?: string | undefined;
@@ -56,8 +63,6 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
56
63
  previousSelectedElementIds?: {
57
64
  [id: string]: true;
58
65
  } | undefined;
59
- shouldCacheIgnoreZoom?: boolean | undefined;
60
- gridSize?: number | undefined;
61
66
  gridStep?: number | undefined;
62
67
  gridModeEnabled?: boolean | undefined;
63
68
  stats?: {
@@ -1,5 +1,8 @@
1
1
  import { ALLOWED_PASTE_MIME_TYPES } from "@excalidraw/common";
2
+ import type { ValueOf } from "@excalidraw/common/utility-types";
3
+ import type { IMAGE_MIME_TYPES, STRING_MIME_TYPES } from "@excalidraw/common";
2
4
  import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
5
+ import type { FileSystemHandle } from "./data/filesystem";
3
6
  import type { Spreadsheet } from "./charts";
4
7
  import type { BinaryFiles } from "./types";
5
8
  export type PastedMixedContent = {
@@ -57,10 +60,70 @@ export declare const readSystemClipboard: () => Promise<{
57
60
  "image/avif"?: string | File | undefined;
58
61
  "image/jfif"?: string | File | undefined;
59
62
  }>;
63
+ type AllowedParsedDataTransferItem = {
64
+ type: ValueOf<typeof IMAGE_MIME_TYPES>;
65
+ kind: "file";
66
+ file: File;
67
+ fileHandle: FileSystemHandle | null;
68
+ } | {
69
+ type: ValueOf<typeof STRING_MIME_TYPES>;
70
+ kind: "string";
71
+ value: string;
72
+ };
73
+ type ParsedDataTransferItem = {
74
+ type: string;
75
+ kind: "file";
76
+ file: File;
77
+ fileHandle: FileSystemHandle | null;
78
+ } | {
79
+ type: string;
80
+ kind: "string";
81
+ value: string;
82
+ };
83
+ type ParsedDataTransferItemType<T extends AllowedParsedDataTransferItem["type"]> = AllowedParsedDataTransferItem & {
84
+ type: T;
85
+ };
86
+ export type ParsedDataTransferFile = Extract<AllowedParsedDataTransferItem, {
87
+ kind: "file";
88
+ }>;
89
+ type ParsedDataTranferList = ParsedDataTransferItem[] & {
90
+ /**
91
+ * Only allows filtering by known `string` data types, since `file`
92
+ * types can have multiple items of the same type (e.g. multiple image files)
93
+ * unlike `string` data transfer items.
94
+ */
95
+ findByType: typeof findDataTransferItemType;
96
+ /**
97
+ * Only allows filtering by known `string` data types, since `file`
98
+ * types can have multiple items of the same type (e.g. multiple image files)
99
+ * unlike `string` data transfer items.
100
+ */
101
+ getData: typeof getDataTransferItemData;
102
+ getFiles: typeof getDataTransferFiles;
103
+ };
104
+ declare const findDataTransferItemType: <T extends ValueOf<{
105
+ readonly text: "text/plain";
106
+ readonly html: "text/html";
107
+ readonly json: "application/json";
108
+ readonly excalidraw: "application/vnd.excalidraw+json";
109
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
110
+ readonly excalidrawlibIds: "application/vnd.excalidrawlib.ids+json";
111
+ }>>(this: ParsedDataTranferList, type: T) => ParsedDataTransferItemType<T> | null;
112
+ declare const getDataTransferItemData: <T extends ValueOf<{
113
+ readonly text: "text/plain";
114
+ readonly html: "text/html";
115
+ readonly json: "application/json";
116
+ readonly excalidraw: "application/vnd.excalidraw+json";
117
+ readonly excalidrawlib: "application/vnd.excalidrawlib+json";
118
+ readonly excalidrawlibIds: "application/vnd.excalidrawlib.ids+json";
119
+ }>>(this: ParsedDataTranferList, type: T) => ParsedDataTransferItemType<ValueOf<typeof STRING_MIME_TYPES>>["value"] | null;
120
+ declare const getDataTransferFiles: (this: ParsedDataTranferList) => ParsedDataTransferFile[];
121
+ export declare const parseDataTransferEvent: (event: ClipboardEvent | DragEvent | React.DragEvent<HTMLDivElement>) => Promise<ParsedDataTranferList>;
60
122
  /**
61
123
  * Attempts to parse clipboard event.
62
124
  */
63
- export declare const parseClipboard: (event: ClipboardEvent, isPlainPaste?: boolean) => Promise<ClipboardData>;
125
+ export declare const parseClipboard: (dataList: ParsedDataTranferList, isPlainPaste?: boolean) => Promise<ClipboardData>;
64
126
  export declare const copyBlobToClipboardAsPng: (blob: Blob | Promise<Blob>) => Promise<void>;
65
127
  export declare const copyTextToSystemClipboard: (text: string | null, clipboardEvent?: ClipboardEvent | null) => Promise<void>;
128
+ export declare const isClipboardEvent: (event: React.SyntheticEvent | Event) => event is ClipboardEvent;
66
129
  export {};
@@ -1,6 +1,6 @@
1
1
  import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
2
2
  import "./Actions.scss";
3
- import type { AppClassProperties, AppProps, UIAppState, Zoom } from "../types";
3
+ import type { AppClassProperties, AppProps, UIAppState, Zoom, AppState } from "../types";
4
4
  import type { ActionManager } from "../actions/manager";
5
5
  export declare const canChangeStrokeColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
6
6
  export declare const canChangeBackgroundColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
@@ -10,9 +10,23 @@ export declare const SelectedShapeActions: ({ appState, elementsMap, renderActio
10
10
  renderAction: ActionManager["renderAction"];
11
11
  app: AppClassProperties;
12
12
  }) => import("react/jsx-runtime").JSX.Element;
13
- export declare const ShapesSwitcher: ({ activeTool, appState, app, UIOptions, }: {
14
- activeTool: UIAppState["activeTool"];
13
+ export declare const CompactShapeActions: ({ appState, elementsMap, renderAction, app, setAppState, }: {
15
14
  appState: UIAppState;
15
+ elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
16
+ renderAction: ActionManager["renderAction"];
17
+ app: AppClassProperties;
18
+ setAppState: React.Component<any, AppState>["setState"];
19
+ }) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const MobileShapeActions: ({ appState, elementsMap, renderAction, app, setAppState, }: {
21
+ appState: UIAppState;
22
+ elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
23
+ renderAction: ActionManager["renderAction"];
24
+ app: AppClassProperties;
25
+ setAppState: React.Component<any, AppState>["setState"];
26
+ }) => import("react/jsx-runtime").JSX.Element;
27
+ export declare const ShapesSwitcher: ({ activeTool, setAppState, app, UIOptions, }: {
28
+ activeTool: UIAppState["activeTool"];
29
+ setAppState: React.Component<any, AppState>["setState"];
16
30
  app: AppClassProperties;
17
31
  UIOptions: AppProps["UIOptions"];
18
32
  }) => import("react/jsx-runtime").JSX.Element;
@@ -24,11 +38,10 @@ export declare const UndoRedoActions: ({ renderAction, className, }: {
24
38
  renderAction: ActionManager["renderAction"];
25
39
  className?: string | undefined;
26
40
  }) => import("react/jsx-runtime").JSX.Element;
27
- export declare const ExitZenModeAction: ({ actionManager, showExitZenModeBtn, }: {
41
+ export declare const ExitZenModeButton: ({ actionManager, showExitZenModeBtn, }: {
28
42
  actionManager: ActionManager;
29
43
  showExitZenModeBtn: boolean;
30
44
  }) => import("react/jsx-runtime").JSX.Element;
31
- export declare const FinalizeAction: ({ renderAction, className, }: {
32
- renderAction: ActionManager["renderAction"];
33
- className?: string | undefined;
45
+ export declare const ExitViewModeButton: ({ actionManager, }: {
46
+ actionManager: ActionManager;
34
47
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { type EXPORT_IMAGE_TYPES, Emitter } from "@excalidraw/common";
3
- import { LinearElementEditor, FlowChartCreator, Scene, Store, type ElementUpdate } from "@excalidraw/element";
4
- import type { ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "@excalidraw/element/types";
2
+ import { type EXPORT_IMAGE_TYPES, Emitter, type EditorInterface, type StylesPanelMode } from "@excalidraw/common";
3
+ import { LinearElementEditor, FlowChartCreator, Scene, Store, type ElementUpdate, StoreDelta, type ApplyToOptions } from "@excalidraw/element";
4
+ import type { ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered, SceneElementsMap } from "@excalidraw/element/types";
5
5
  import type { Mutable } from "@excalidraw/common/utility-types";
6
6
  import { ActionManager } from "../actions/manager";
7
7
  import { AnimationFrameHandler } from "../animation-frame-handler";
@@ -14,7 +14,7 @@ import { LassoTrail } from "../lasso";
14
14
  import { EraserTrail } from "../eraser";
15
15
  import type { ExportedElements } from "../data";
16
16
  import type { FileSystemHandle } from "../data/filesystem";
17
- import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
17
+ import type { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload, GenerateDiagramToCode, NullableGridSize, Offsets } from "../types";
18
18
  import type { RoughCanvas } from "roughjs/bin/canvas";
19
19
  import type { ActionResult } from "../actions/types";
20
20
  export declare const ExcalidrawContainerContext: React.Context<{
@@ -23,17 +23,18 @@ export declare const ExcalidrawContainerContext: React.Context<{
23
23
  }>;
24
24
  export declare const useApp: () => AppClassProperties;
25
25
  export declare const useAppProps: () => AppProps;
26
- export declare const useDevice: () => Readonly<{
27
- viewport: {
28
- isMobile: boolean;
29
- isLandscape: boolean;
30
- };
31
- editor: {
32
- isMobile: boolean;
33
- canFitSidebar: boolean;
34
- };
26
+ export declare const useEditorInterface: () => Readonly<{
27
+ formFactor: "phone" | "tablet" | "desktop";
28
+ desktopUIMode: "compact" | "full";
29
+ userAgent: Readonly<{
30
+ isMobileDevice: boolean;
31
+ platform: "other" | "ios" | "android" | "unknown";
32
+ }>;
35
33
  isTouchScreen: boolean;
34
+ canFitSidebar: boolean;
35
+ isLandscape: boolean;
36
36
  }>;
37
+ export declare const useStylesPanelMode: () => StylesPanelMode;
37
38
  export declare const useExcalidrawContainer: () => {
38
39
  container: HTMLDivElement | null;
39
40
  id: string | null;
@@ -48,14 +49,14 @@ declare class App extends React.Component<AppProps, AppState> {
48
49
  rc: RoughCanvas;
49
50
  unmounted: boolean;
50
51
  actionManager: ActionManager;
51
- device: Device;
52
+ editorInterface: EditorInterface;
53
+ private stylesPanelMode;
52
54
  private excalidrawContainerRef;
53
55
  scene: Scene;
54
56
  fonts: Fonts;
55
57
  renderer: Renderer;
56
58
  visibleElements: readonly NonDeletedExcalidrawElement[];
57
59
  private resizeObserver;
58
- private nearestScrollableContainer;
59
60
  library: AppClassProperties["library"];
60
61
  libraryItemsFromStorage: LibraryItems | undefined;
61
62
  id: string;
@@ -82,6 +83,7 @@ declare class App extends React.Component<AppProps, AppState> {
82
83
  private elementsPendingErasure;
83
84
  flowChartCreator: FlowChartCreator;
84
85
  private flowChartNavigator;
86
+ bindModeHandler: ReturnType<typeof setTimeout> | null;
85
87
  hitLinkElement?: NonDeletedExcalidrawElement;
86
88
  lastPointerDownEvent: React.PointerEvent<HTMLElement> | null;
87
89
  lastPointerUpEvent: React.PointerEvent<HTMLElement> | PointerEvent | null;
@@ -153,6 +155,7 @@ declare class App extends React.Component<AppProps, AppState> {
153
155
  x: number;
154
156
  y: number;
155
157
  };
158
+ blockDragging: boolean;
156
159
  };
157
160
  eventListeners: {
158
161
  onMove: {
@@ -222,6 +225,7 @@ declare class App extends React.Component<AppProps, AppState> {
222
225
  x: number;
223
226
  y: number;
224
227
  };
228
+ blockDragging: boolean;
225
229
  };
226
230
  eventListeners: {
227
231
  onMove: {
@@ -246,6 +250,10 @@ declare class App extends React.Component<AppProps, AppState> {
246
250
  constructor(props: AppProps);
247
251
  updateEditorAtom: <Value, Args extends unknown[], Result>(atom: WritableAtom<Value, Args, Result>, ...args: Args) => Result;
248
252
  private onWindowMessage;
253
+ private handleSkipBindMode;
254
+ private resetDelayedBindMode;
255
+ private previousHoveredBindableElement;
256
+ private handleDelayedBindModeChange;
249
257
  private cacheEmbeddableRef;
250
258
  /**
251
259
  * Returns gridSize taking into account `gridModeEnabled`.
@@ -297,9 +305,11 @@ declare class App extends React.Component<AppProps, AppState> {
297
305
  */
298
306
  private resetScene;
299
307
  private initializeScene;
300
- private isMobileBreakpoint;
301
- private refreshViewportBreakpoints;
302
- private refreshEditorBreakpoints;
308
+ private getFormFactor;
309
+ refreshEditorInterface: () => void;
310
+ private reconcileStylesPanelMode;
311
+ /** TO BE USED LATER */
312
+ private setDesktopUIMode;
303
313
  private clearImageShapeCache;
304
314
  componentDidMount(): Promise<void>;
305
315
  componentWillUnmount(): void;
@@ -316,6 +326,7 @@ declare class App extends React.Component<AppProps, AppState> {
316
326
  private static resetTapTwice;
317
327
  private onTouchStart;
318
328
  private onTouchEnd;
329
+ private insertClipboardContent;
319
330
  pasteFromClipboard: (event: ClipboardEvent) => Promise<void>;
320
331
  addElementsFromPasteOrLibrary: (opts: {
321
332
  elements: readonly ExcalidrawElement[];
@@ -397,6 +408,7 @@ declare class App extends React.Component<AppProps, AppState> {
397
408
  */
398
409
  captureUpdate?: SceneData["captureUpdate"];
399
410
  }) => void;
411
+ applyDeltas: (deltas: StoreDelta[], options?: ApplyToOptions) => [SceneElementsMap, AppState, boolean];
400
412
  mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean) => TElement;
401
413
  private triggerRender;
402
414
  /**
@@ -488,7 +500,7 @@ declare class App extends React.Component<AppProps, AppState> {
488
500
  sceneY: number;
489
501
  link: string;
490
502
  }) => NonDeleted<ExcalidrawEmbeddableElement> | undefined;
491
- private createImageElement;
503
+ private newImagePlaceholder;
492
504
  private handleLinearElementOnPointerDown;
493
505
  private getCurrentItemRoundness;
494
506
  private createGenericElementOnPointerDown;
@@ -509,11 +521,7 @@ declare class App extends React.Component<AppProps, AppState> {
509
521
  * and when you don't want to loose those modifications
510
522
  */
511
523
  private getLatestInitializedImageElement;
512
- /**
513
- * inserts image into elements array and rerenders
514
- */
515
- private insertImageElement;
516
- private onImageAction;
524
+ private onImageToolbarButtonClick;
517
525
  private getImageNaturalDimensions;
518
526
  /** updates image cache, refreshing updated elements and/or setting status
519
527
  to error for images that fail during <img> element creation */
@@ -524,9 +532,9 @@ declare class App extends React.Component<AppProps, AppState> {
524
532
  * to render new images. This is just a failsafe */
525
533
  private scheduleImageRefresh;
526
534
  private updateBindingEnabledOnPointerMove;
527
- private maybeSuggestBindingAtCursor;
528
535
  private clearSelection;
529
536
  private handleInteractiveCanvasRef;
537
+ private insertImages;
530
538
  private handleAppOnDrop;
531
539
  loadFileToCanvas: (file: File, fileHandle: FileSystemHandle | null) => Promise<void>;
532
540
  private handleCanvasContextMenu;
@@ -541,6 +549,7 @@ declare class App extends React.Component<AppProps, AppState> {
541
549
  private updateDOMRect;
542
550
  refresh: () => void;
543
551
  private getCanvasOffsets;
552
+ watchState: () => void;
544
553
  private updateLanguage;
545
554
  }
546
555
  declare global {
@@ -550,6 +559,7 @@ declare global {
550
559
  elements: readonly ExcalidrawElement[];
551
560
  state: AppState;
552
561
  setState: React.Component<any, AppState>["setState"];
562
+ watchState: (prev: any, next: any) => void | undefined;
553
563
  app: InstanceType<typeof App>;
554
564
  history: History;
555
565
  store: Store;
@@ -10,8 +10,10 @@ interface PickerProps {
10
10
  palette: ColorPaletteCustom;
11
11
  updateData: (formData?: any) => void;
12
12
  children?: React.ReactNode;
13
+ showTitle?: boolean;
13
14
  onEyeDropperToggle: (force?: boolean) => void;
14
15
  onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;
16
+ showHotKey?: boolean;
15
17
  }
16
18
  export declare const Picker: React.ForwardRefExoticComponent<PickerProps & React.RefAttributes<unknown>>;
17
19
  export {};
@@ -4,6 +4,7 @@ interface PickerColorListProps {
4
4
  color: string | null;
5
5
  onChange: (color: string) => void;
6
6
  activeShade: number;
7
+ showHotKey?: boolean;
7
8
  }
8
- declare const PickerColorList: ({ palette, color, onChange, activeShade, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
9
+ declare const PickerColorList: ({ palette, color, onChange, activeShade, showHotKey, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
9
10
  export default PickerColorList;
@@ -3,6 +3,7 @@ interface ShadeListProps {
3
3
  color: string | null;
4
4
  onChange: (color: string) => void;
5
5
  palette: ColorPaletteCustom;
6
+ showHotKey?: boolean;
6
7
  }
7
- export declare const ShadeList: ({ color, onChange, palette }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const ShadeList: ({ color, onChange, palette, showHotKey, }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
9
  export {};
@@ -8,6 +8,7 @@ export declare const DEFAULT_CATEGORIES: {
8
8
  editor: string;
9
9
  elements: string;
10
10
  links: string;
11
+ library: string;
11
12
  };
12
13
  type CommandPaletteProps = {
13
14
  customCommandPaletteItems?: CommandPaletteItem[];
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { ActionManager } from "../../actions/manager";
3
3
  import type { Action } from "../../actions/types";
4
- import type { UIAppState } from "../../types";
5
4
  export type CommandPaletteItem = {
6
5
  label: string;
7
6
  /** additional keywords to match against
@@ -12,7 +11,7 @@ export type CommandPaletteItem = {
12
11
  * (deburred name + keywords)
13
12
  */
14
13
  haystack?: string;
15
- icon?: React.ReactNode | ((appState: UIAppState) => React.ReactNode);
14
+ icon?: Action["icon"];
16
15
  category: string;
17
16
  order?: number;
18
17
  predicate?: boolean | Action["predicate"];
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const Ellipsify: ({ children, ...rest }: {
3
+ children: React.ReactNode;
4
+ } & import("react").HTMLAttributes<HTMLSpanElement>) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import "./ExcalidrawLogo.scss";
3
- type LogoSize = "xs" | "small" | "normal" | "large" | "custom";
3
+ type LogoSize = "xs" | "small" | "normal" | "large" | "custom" | "mobile";
4
4
  interface LogoProps {
5
5
  size?: LogoSize;
6
6
  withText?: boolean;
@@ -4,7 +4,7 @@ export type ButtonVariant = "filled" | "outlined" | "icon";
4
4
  export type ButtonColor = "primary" | "danger" | "warning" | "muted" | "success";
5
5
  export type ButtonSize = "medium" | "large";
6
6
  export type FilledButtonProps = {
7
- label: string;
7
+ label?: string;
8
8
  children?: React.ReactNode;
9
9
  onClick?: (event: React.MouseEvent) => void;
10
10
  status?: null | "loading" | "success";
@@ -16,6 +16,7 @@ interface FontPickerProps {
16
16
  onHover: (fontFamily: FontFamilyValues) => void;
17
17
  onLeave: () => void;
18
18
  onPopupChange: (open: boolean) => void;
19
+ compactMode?: boolean;
19
20
  }
20
- export declare const FontPicker: React.MemoExoticComponent<({ isOpened, selectedFontFamily, hoveredFontFamily, onSelect, onHover, onLeave, onPopupChange, }: FontPickerProps) => import("react/jsx-runtime").JSX.Element>;
21
+ export declare const FontPicker: React.MemoExoticComponent<({ isOpened, selectedFontFamily, hoveredFontFamily, onSelect, onHover, onLeave, onPopupChange, compactMode, }: FontPickerProps) => import("react/jsx-runtime").JSX.Element>;
21
22
  export {};
@@ -1,6 +1,8 @@
1
1
  import type { FontFamilyValues } from "@excalidraw/element/types";
2
2
  interface FontPickerTriggerProps {
3
3
  selectedFontFamily: FontFamilyValues | null;
4
+ isOpened?: boolean;
5
+ compactMode?: boolean;
4
6
  }
5
- export declare const FontPickerTrigger: ({ selectedFontFamily, }: FontPickerTriggerProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const FontPickerTrigger: ({ selectedFontFamily, isOpened, compactMode, }: FontPickerTriggerProps) => import("react/jsx-runtime").JSX.Element;
6
8
  export {};
@@ -1,10 +1,11 @@
1
+ import type { EditorInterface } from "@excalidraw/common";
1
2
  import "./HintViewer.scss";
2
- import type { AppClassProperties, Device, UIAppState } from "../types";
3
+ import type { AppClassProperties, UIAppState } from "../types";
3
4
  interface HintViewerProps {
4
5
  appState: UIAppState;
5
6
  isMobile: boolean;
6
- device: Device;
7
+ editorInterface: EditorInterface;
7
8
  app: AppClassProperties;
8
9
  }
9
- export declare const HintViewer: ({ appState, isMobile, device, app, }: HintViewerProps) => import("react/jsx-runtime").JSX.Element | null;
10
+ export declare const HintViewer: ({ appState, isMobile, editorInterface, app, }: HintViewerProps) => import("react/jsx-runtime").JSX.Element | null;
10
11
  export {};
@@ -1,3 +1,5 @@
1
- export declare const InlineIcon: ({ icon }: {
1
+ export declare const InlineIcon: ({ className, icon, size, }: {
2
+ className?: string | undefined;
2
3
  icon: React.ReactNode;
4
+ size?: string | undefined;
3
5
  }) => import("react/jsx-runtime").JSX.Element;
@@ -17,6 +17,7 @@ interface LayerUIProps {
17
17
  onPenModeToggle: AppClassProperties["togglePenMode"];
18
18
  showExitZenModeBtn: boolean;
19
19
  langCode: Language["code"];
20
+ renderTopLeftUI?: ExcalidrawProps["renderTopLeftUI"];
20
21
  renderTopRightUI?: ExcalidrawProps["renderTopRightUI"];
21
22
  renderCustomStats?: ExcalidrawProps["renderCustomStats"];
22
23
  UIOptions: AppProps["UIOptions"];
@@ -27,5 +28,5 @@ interface LayerUIProps {
27
28
  isCollaborating: boolean;
28
29
  generateLinkForSelection?: AppProps["generateLinkForSelection"];
29
30
  }
30
- declare const _default: React.MemoExoticComponent<({ actionManager, appState, files, setAppState, elements, canvas, onLockToggle, onHandToolToggle, onPenModeToggle, showExitZenModeBtn, renderTopRightUI, renderCustomStats, UIOptions, onExportImage, renderWelcomeScreen, children, app, isCollaborating, generateLinkForSelection, }: LayerUIProps) => import("react/jsx-runtime").JSX.Element>;
31
+ declare const _default: React.MemoExoticComponent<({ actionManager, appState, files, setAppState, elements, canvas, onLockToggle, onHandToolToggle, onPenModeToggle, showExitZenModeBtn, renderTopLeftUI, renderTopRightUI, renderCustomStats, UIOptions, onExportImage, renderWelcomeScreen, children, app, isCollaborating, generateLinkForSelection, }: LayerUIProps) => import("react/jsx-runtime").JSX.Element>;
31
32
  export default _default;
@@ -3,7 +3,7 @@ import type { ExcalidrawElement, NonDeleted } from "@excalidraw/element/types";
3
3
  import type { SvgCache } from "../hooks/useLibraryItemSvg";
4
4
  import type { LibraryItem } from "../types";
5
5
  import type { ReactNode } from "react";
6
- type LibraryOrPendingItem = (LibraryItem | /* pending library item */ {
6
+ type LibraryOrPendingItem = readonly (LibraryItem | /* pending library item */ {
7
7
  id: null;
8
8
  elements: readonly NonDeleted<ExcalidrawElement>[];
9
9
  })[];
@@ -0,0 +1,4 @@
1
+ export declare const LinkButton: ({ children, href, }: {
2
+ href: string;
3
+ children: React.ReactNode;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
3
3
  import type { ActionManager } from "../actions/manager";
4
- import type { AppClassProperties, AppProps, AppState, Device, ExcalidrawProps, UIAppState } from "../types";
4
+ import type { AppClassProperties, AppProps, AppState, UIAppState } from "../types";
5
5
  import type { JSX } from "react";
6
6
  type MobileMenuProps = {
7
7
  appState: UIAppState;
@@ -10,16 +10,14 @@ type MobileMenuProps = {
10
10
  renderImageExportDialog: () => React.ReactNode;
11
11
  setAppState: React.Component<any, AppState>["setState"];
12
12
  elements: readonly NonDeletedExcalidrawElement[];
13
- onLockToggle: () => void;
14
13
  onHandToolToggle: () => void;
15
14
  onPenModeToggle: AppClassProperties["togglePenMode"];
16
15
  renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
17
- renderCustomStats?: ExcalidrawProps["renderCustomStats"];
16
+ renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
18
17
  renderSidebars: () => JSX.Element | null;
19
- device: Device;
20
18
  renderWelcomeScreen: boolean;
21
19
  UIOptions: AppProps["UIOptions"];
22
20
  app: AppClassProperties;
23
21
  };
24
- export declare const MobileMenu: ({ appState, elements, actionManager, setAppState, onLockToggle, onHandToolToggle, onPenModeToggle, renderTopRightUI, renderCustomStats, renderSidebars, device, renderWelcomeScreen, UIOptions, app, }: MobileMenuProps) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const MobileMenu: ({ appState, elements, actionManager, setAppState, onHandToolToggle, renderTopLeftUI, renderTopRightUI, renderSidebars, renderWelcomeScreen, UIOptions, app, onPenModeToggle, }: MobileMenuProps) => import("react/jsx-runtime").JSX.Element;
25
23
  export {};
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import "./ToolIcon.scss";
3
+ import "./MobileToolBar.scss";
4
+ import type { AppClassProperties, UIAppState } from "../types";
5
+ type MobileToolBarProps = {
6
+ app: AppClassProperties;
7
+ onHandToolToggle: () => void;
8
+ setAppState: React.Component<any, UIAppState>["setState"];
9
+ };
10
+ export declare const MobileToolBar: ({ app, onHandToolToggle, setAppState, }: MobileToolBarProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -10,6 +10,7 @@ type Props = {
10
10
  offsetTop?: number;
11
11
  viewportWidth?: number;
12
12
  viewportHeight?: number;
13
+ className?: string;
13
14
  };
14
- export declare const Popover: ({ children, left, top, onCloseRequest, fitInViewport, offsetLeft, offsetTop, viewportWidth, viewportHeight, }: Props) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const Popover: ({ children, left, top, onCloseRequest, fitInViewport, offsetLeft, offsetTop, viewportWidth, viewportHeight, className, }: Props) => import("react/jsx-runtime").JSX.Element;
15
16
  export {};
@@ -10,6 +10,7 @@ interface PropertiesPopoverProps {
10
10
  onPointerLeave?: React.PointerEventHandler<HTMLDivElement>;
11
11
  onFocusOutside?: Popover.PopoverContentProps["onFocusOutside"];
12
12
  onPointerDownOutside?: Popover.PopoverContentProps["onPointerDownOutside"];
13
+ preventAutoFocusOnTouch?: boolean;
13
14
  }
14
15
  export declare const PropertiesPopover: React.ForwardRefExoticComponent<PropertiesPopoverProps & React.RefAttributes<HTMLDivElement>>;
15
16
  export {};
@@ -15,5 +15,5 @@ export declare const newOrigin: (x1: number, y1: number, w1: number, h1: number,
15
15
  x: number;
16
16
  y: number;
17
17
  };
18
- export declare const moveElement: (newTopLeftX: number, newTopLeftY: number, originalElement: ExcalidrawElement, scene: Scene, originalElementsMap: ElementsMap, shouldInformMutation?: boolean) => void;
18
+ export declare const moveElement: (newTopLeftX: number, newTopLeftY: number, originalElement: ExcalidrawElement, scene: Scene, appState: AppState, originalElementsMap: ElementsMap, shouldInformMutation?: boolean) => void;
19
19
  export declare const getAtomicUnits: (targetElements: readonly ExcalidrawElement[], appState: AppState) => AtomicUnit[];
@@ -1,5 +1,4 @@
1
- import type { ReactNode } from "react";
2
- import type { JSX } from "react";
1
+ import type { JSX, ReactNode } from "react";
3
2
  export declare const TTDDialogTrigger: {
4
3
  ({ children, icon, }: {
5
4
  children?: ReactNode;