@excalidraw/excalidraw 0.18.0-4872083 → 0.18.0-4ce38fb

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 (431) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/dev/{chunk-2WVIVYEB.js → chunk-KMZYJ2CN.js} +484 -119
  3. package/dist/dev/chunk-KMZYJ2CN.js.map +7 -0
  4. package/dist/dev/chunk-Q67DF2PJ.js +69 -0
  5. package/dist/dev/chunk-Q67DF2PJ.js.map +7 -0
  6. package/dist/dev/{chunk-6PDCWIY7.js → chunk-QS4IP4I2.js} +33 -5
  7. package/dist/dev/chunk-QS4IP4I2.js.map +7 -0
  8. package/dist/dev/data/{image-4YS5KUOX.js → image-GQWXOMCO.js} +2 -2
  9. package/dist/dev/index.css +537 -193
  10. package/dist/dev/index.css.map +3 -3
  11. package/dist/dev/index.js +11194 -7469
  12. package/dist/dev/index.js.map +4 -4
  13. package/dist/dev/locales/{ar-SA-YEOLME2Y.js → ar-SA-EW44IW4V.js} +14 -2
  14. package/dist/dev/locales/ar-SA-EW44IW4V.js.map +7 -0
  15. package/dist/dev/locales/{az-AZ-DQL36U4O.js → az-AZ-AI7WAYA2.js} +14 -2
  16. package/dist/dev/locales/az-AZ-AI7WAYA2.js.map +7 -0
  17. package/dist/dev/locales/{bg-BG-LG6R5FEQ.js → bg-BG-43ZNGDXF.js} +14 -2
  18. package/dist/dev/locales/bg-BG-43ZNGDXF.js.map +7 -0
  19. package/dist/dev/locales/{bn-BD-W63P7JT5.js → bn-BD-PU4CN7NP.js} +14 -2
  20. package/dist/dev/locales/bn-BD-PU4CN7NP.js.map +7 -0
  21. package/dist/dev/locales/{bn-IN-SCHACAA6.js → bn-IN-54CF43JL.js} +14 -2
  22. package/dist/dev/locales/bn-IN-54CF43JL.js.map +7 -0
  23. package/dist/dev/locales/{ca-ES-XP3CQTWV.js → ca-ES-RHJO3QDO.js} +14 -2
  24. package/dist/dev/locales/ca-ES-RHJO3QDO.js.map +7 -0
  25. package/dist/dev/locales/{cs-CZ-EXLEOJMD.js → cs-CZ-ZRSAO3BA.js} +14 -2
  26. package/dist/dev/locales/cs-CZ-ZRSAO3BA.js.map +7 -0
  27. package/dist/dev/locales/{da-DK-46ONLZRX.js → da-DK-OAB6DEJX.js} +14 -2
  28. package/dist/dev/locales/da-DK-OAB6DEJX.js.map +7 -0
  29. package/dist/dev/locales/{de-CH-A5QH3YGW.js → de-CH-QF7JLXTF.js} +14 -2
  30. package/dist/dev/locales/de-CH-QF7JLXTF.js.map +7 -0
  31. package/dist/dev/locales/{de-DE-FVCCKR5N.js → de-DE-5ZO4KOPT.js} +14 -2
  32. package/dist/dev/locales/de-DE-5ZO4KOPT.js.map +7 -0
  33. package/dist/dev/locales/{el-GR-SB4MX5JS.js → el-GR-F74ZSUEO.js} +14 -2
  34. package/dist/dev/locales/el-GR-F74ZSUEO.js.map +7 -0
  35. package/dist/dev/locales/{en-5JPPY76A.js → en-RLKKKTGS.js} +4 -2
  36. package/dist/dev/locales/{es-ES-VRTYQG6S.js → es-ES-3B3IENPS.js} +14 -2
  37. package/dist/dev/locales/es-ES-3B3IENPS.js.map +7 -0
  38. package/dist/dev/locales/{eu-ES-3OHEU2YV.js → eu-ES-NH447TVU.js} +14 -2
  39. package/dist/dev/locales/eu-ES-NH447TVU.js.map +7 -0
  40. package/dist/dev/locales/{fa-IR-74WR2KXF.js → fa-IR-V44PNTTK.js} +46 -34
  41. package/dist/dev/locales/fa-IR-V44PNTTK.js.map +7 -0
  42. package/dist/dev/locales/{fi-FI-XZQC4II2.js → fi-FI-ZXSYWCC4.js} +14 -2
  43. package/dist/dev/locales/fi-FI-ZXSYWCC4.js.map +7 -0
  44. package/dist/dev/locales/{fr-FR-RABBDBKM.js → fr-FR-RJSOSEYS.js} +25 -13
  45. package/dist/dev/locales/fr-FR-RJSOSEYS.js.map +7 -0
  46. package/dist/dev/locales/{gl-ES-OU3Q6XUE.js → gl-ES-NAUVMVFY.js} +14 -2
  47. package/dist/dev/locales/gl-ES-NAUVMVFY.js.map +7 -0
  48. package/dist/dev/locales/{he-IL-6NCD5D54.js → he-IL-JBKWWR75.js} +67 -55
  49. package/dist/dev/locales/he-IL-JBKWWR75.js.map +7 -0
  50. package/dist/dev/locales/{hi-IN-M54WKOJI.js → hi-IN-SD773MVZ.js} +14 -2
  51. package/dist/dev/locales/hi-IN-SD773MVZ.js.map +7 -0
  52. package/dist/dev/locales/{hu-HU-HAW63BCI.js → hu-HU-OTA7GOAV.js} +14 -2
  53. package/dist/dev/locales/hu-HU-OTA7GOAV.js.map +7 -0
  54. package/dist/dev/locales/{id-ID-TFSPHGWX.js → id-ID-KGCGQFTT.js} +100 -88
  55. package/dist/dev/locales/id-ID-KGCGQFTT.js.map +7 -0
  56. package/dist/dev/locales/{it-IT-MH3BAO5W.js → it-IT-EWGEXMVK.js} +25 -13
  57. package/dist/dev/locales/it-IT-EWGEXMVK.js.map +7 -0
  58. package/dist/dev/locales/{ja-JP-UGJBHLX6.js → ja-JP-YMGRGBPS.js} +17 -5
  59. package/dist/dev/locales/ja-JP-YMGRGBPS.js.map +7 -0
  60. package/dist/dev/locales/{kaa-5ZUEYWIM.js → kaa-RRE7XUCW.js} +14 -2
  61. package/dist/dev/locales/kaa-RRE7XUCW.js.map +7 -0
  62. package/dist/dev/locales/{kab-KAB-RLAZQZSM.js → kab-KAB-ZCYVOJU4.js} +14 -2
  63. package/dist/dev/locales/kab-KAB-ZCYVOJU4.js.map +7 -0
  64. package/dist/dev/locales/{kk-KZ-CIP7GOIF.js → kk-KZ-TO6XEFJC.js} +14 -2
  65. package/dist/dev/locales/kk-KZ-TO6XEFJC.js.map +7 -0
  66. package/dist/dev/locales/{km-KH-YMR4247H.js → km-KH-3HTDL5HB.js} +14 -2
  67. package/dist/dev/locales/km-KH-3HTDL5HB.js.map +7 -0
  68. package/dist/dev/locales/{ko-KR-WGKQKR2R.js → ko-KR-O4L4O7L6.js} +14 -2
  69. package/dist/dev/locales/ko-KR-O4L4O7L6.js.map +7 -0
  70. package/dist/dev/locales/{ku-TR-ZSJN6TN6.js → ku-TR-AFJWDY67.js} +14 -2
  71. package/dist/dev/locales/ku-TR-AFJWDY67.js.map +7 -0
  72. package/dist/dev/locales/{lt-LT-FT6ZGIZP.js → lt-LT-7QOT2VDQ.js} +14 -2
  73. package/dist/dev/locales/lt-LT-7QOT2VDQ.js.map +7 -0
  74. package/dist/dev/locales/{lv-LV-U74YKDPR.js → lv-LV-WV6C4NYF.js} +14 -2
  75. package/dist/dev/locales/lv-LV-WV6C4NYF.js.map +7 -0
  76. package/dist/dev/locales/{mr-IN-KN72LOIA.js → mr-IN-3TLYWOEI.js} +14 -2
  77. package/dist/dev/locales/mr-IN-3TLYWOEI.js.map +7 -0
  78. package/dist/dev/locales/{my-MM-E57NLQ7W.js → my-MM-NNL2QJT3.js} +14 -2
  79. package/dist/dev/locales/my-MM-NNL2QJT3.js.map +7 -0
  80. package/dist/dev/locales/{nb-NO-FYQDWD7X.js → nb-NO-PG3XLMEV.js} +14 -2
  81. package/dist/dev/locales/nb-NO-PG3XLMEV.js.map +7 -0
  82. package/dist/dev/locales/{nl-NL-D5MZQRAC.js → nl-NL-MMOYEKKQ.js} +14 -2
  83. package/dist/dev/locales/nl-NL-MMOYEKKQ.js.map +7 -0
  84. package/dist/dev/locales/{nn-NO-5ZEUZJV4.js → nn-NO-AAC2I2YX.js} +14 -2
  85. package/dist/dev/locales/nn-NO-AAC2I2YX.js.map +7 -0
  86. package/dist/dev/locales/{oc-FR-MVW6LDAP.js → oc-FR-SR6MFB4N.js} +14 -2
  87. package/dist/dev/locales/oc-FR-SR6MFB4N.js.map +7 -0
  88. package/dist/dev/locales/{pa-IN-2NH3SVNI.js → pa-IN-ADGMQLQI.js} +14 -2
  89. package/dist/dev/locales/pa-IN-ADGMQLQI.js.map +7 -0
  90. package/dist/dev/locales/{percentages-QBBLQLIV.js → percentages-X2QIQ6XJ.js} +2 -2
  91. package/dist/dev/locales/{pl-PL-M6LYWLHY.js → pl-PL-FNIPTMVP.js} +14 -2
  92. package/dist/dev/locales/pl-PL-FNIPTMVP.js.map +7 -0
  93. package/dist/dev/locales/{pt-BR-27M3CCS7.js → pt-BR-67FMCDNE.js} +14 -2
  94. package/dist/dev/locales/pt-BR-67FMCDNE.js.map +7 -0
  95. package/dist/dev/locales/{pt-PT-V3C226NP.js → pt-PT-4G3GI4SF.js} +14 -2
  96. package/dist/dev/locales/pt-PT-4G3GI4SF.js.map +7 -0
  97. package/dist/dev/locales/{ro-RO-S4GNBAJI.js → ro-RO-CUZFN555.js} +25 -13
  98. package/dist/dev/locales/ro-RO-CUZFN555.js.map +7 -0
  99. package/dist/dev/locales/{ru-RU-CRRT5JUZ.js → ru-RU-4GHINTII.js} +14 -2
  100. package/dist/dev/locales/ru-RU-4GHINTII.js.map +7 -0
  101. package/dist/dev/locales/{si-LK-APMICZ7H.js → si-LK-SSNT7T4A.js} +14 -2
  102. package/dist/dev/locales/si-LK-SSNT7T4A.js.map +7 -0
  103. package/dist/dev/locales/{sk-SK-7ZFDZG6Y.js → sk-SK-J7TKZQEH.js} +14 -2
  104. package/dist/dev/locales/sk-SK-J7TKZQEH.js.map +7 -0
  105. package/dist/dev/locales/{sl-SI-BBENCX7D.js → sl-SI-SIBMLDYY.js} +130 -118
  106. package/dist/dev/locales/sl-SI-SIBMLDYY.js.map +7 -0
  107. package/dist/dev/locales/{sv-SE-35QJIOEW.js → sv-SE-6GYGFZNL.js} +25 -13
  108. package/dist/dev/locales/sv-SE-6GYGFZNL.js.map +7 -0
  109. package/dist/dev/locales/{ta-IN-4N5CFIWZ.js → ta-IN-7AW6CTGA.js} +14 -2
  110. package/dist/dev/locales/ta-IN-7AW6CTGA.js.map +7 -0
  111. package/dist/dev/locales/{th-TH-2F4V4IDB.js → th-TH-FP7ULYYM.js} +23 -11
  112. package/dist/dev/locales/th-TH-FP7ULYYM.js.map +7 -0
  113. package/dist/dev/locales/{tr-TR-NDFP3F7P.js → tr-TR-UDQGNXAG.js} +14 -2
  114. package/dist/dev/locales/tr-TR-UDQGNXAG.js.map +7 -0
  115. package/dist/dev/locales/{uk-UA-4I6VBQZ5.js → uk-UA-25HL2NCU.js} +51 -39
  116. package/dist/dev/locales/uk-UA-25HL2NCU.js.map +7 -0
  117. package/dist/dev/locales/{uz-UZ-UVKC7UNZ.js → uz-UZ-OPSBAY4H.js} +14 -2
  118. package/dist/dev/locales/uz-UZ-OPSBAY4H.js.map +7 -0
  119. package/dist/dev/locales/{vi-VN-UQCETDRL.js → vi-VN-DK367UGA.js} +14 -2
  120. package/dist/dev/locales/vi-VN-DK367UGA.js.map +7 -0
  121. package/dist/dev/locales/{zh-CN-RSRHKN75.js → zh-CN-QCVKNWUH.js} +14 -2
  122. package/dist/dev/locales/zh-CN-QCVKNWUH.js.map +7 -0
  123. package/dist/dev/locales/{zh-HK-XSFQ32U4.js → zh-HK-WFGYHWPG.js} +14 -2
  124. package/dist/dev/locales/zh-HK-WFGYHWPG.js.map +7 -0
  125. package/dist/dev/locales/{zh-TW-KFVYWRFJ.js → zh-TW-WHQS4ZSD.js} +33 -21
  126. package/dist/dev/locales/zh-TW-WHQS4ZSD.js.map +7 -0
  127. package/dist/prod/chunk-DYU5D34O.js +1 -0
  128. package/dist/prod/chunk-FLFP27SU.js +12 -0
  129. package/dist/prod/chunk-H5A3YXKD.js +4 -0
  130. package/dist/prod/data/image-6XY3GD3F.js +1 -0
  131. package/dist/prod/index.css +1 -1
  132. package/dist/prod/index.js +69 -100
  133. package/dist/prod/locales/{ar-SA-PQUY64WN.js → ar-SA-5WIASEJP.js} +5 -5
  134. package/dist/prod/locales/az-AZ-V5EUQD6C.js +1 -0
  135. package/dist/prod/locales/bg-BG-EXASCMTR.js +5 -0
  136. package/dist/prod/locales/bn-BD-U4SYNFCO.js +3 -0
  137. package/dist/prod/locales/bn-IN-HKDJIITE.js +3 -0
  138. package/dist/prod/locales/ca-ES-2KGUU5XB.js +8 -0
  139. package/dist/prod/locales/cs-CZ-VUCGPRML.js +7 -0
  140. package/dist/prod/locales/da-DK-NNDP2IVP.js +2 -0
  141. package/dist/prod/locales/de-CH-I7RAVIZN.js +11 -0
  142. package/dist/prod/locales/de-DE-WBQ3DQLR.js +11 -0
  143. package/dist/prod/locales/el-GR-TYQHVGXW.js +7 -0
  144. package/dist/prod/locales/en-7ZVUCEYH.js +1 -0
  145. package/dist/prod/locales/es-ES-JEUOREKJ.js +12 -0
  146. package/dist/prod/locales/eu-ES-SO5DEEAN.js +8 -0
  147. package/dist/prod/locales/fa-IR-I4JNTJHK.js +9 -0
  148. package/dist/prod/locales/fi-FI-REAEF6HQ.js +6 -0
  149. package/dist/prod/locales/fr-FR-SUCL7J6B.js +12 -0
  150. package/dist/prod/locales/gl-ES-KHCSOGVH.js +6 -0
  151. package/dist/prod/locales/he-IL-JYXVXV2Q.js +9 -0
  152. package/dist/prod/locales/hi-IN-BU52H3BO.js +3 -0
  153. package/dist/prod/locales/hu-HU-OWADXDQ3.js +3 -0
  154. package/dist/prod/locales/id-ID-2WY7E4VX.js +8 -0
  155. package/dist/prod/locales/it-IT-INVHSAJF.js +12 -0
  156. package/dist/prod/locales/ja-JP-JBNTKYP4.js +12 -0
  157. package/dist/prod/locales/kaa-TC3VIB7V.js +1 -0
  158. package/dist/prod/locales/kab-KAB-UOUDSQKM.js +4 -0
  159. package/dist/prod/locales/kk-KZ-P5H2X7YS.js +1 -0
  160. package/dist/prod/locales/{km-KH-PCWDKPHP.js → km-KH-IHMV2US7.js} +4 -4
  161. package/dist/prod/locales/ko-KR-ZTMANIDF.js +5 -0
  162. package/dist/prod/locales/ku-TR-GPJTRB5G.js +6 -0
  163. package/dist/prod/locales/lt-LT-V3XDOK3P.js +3 -0
  164. package/dist/prod/locales/lv-LV-DVQ3FADO.js +4 -0
  165. package/dist/prod/locales/mr-IN-VZ6HH5FE.js +9 -0
  166. package/dist/prod/locales/my-MM-XYKWHRK6.js +1 -0
  167. package/dist/prod/locales/nb-NO-UNO2GGZJ.js +8 -0
  168. package/dist/prod/locales/nl-NL-76EFHT4P.js +13 -0
  169. package/dist/prod/locales/nn-NO-CFKD7ABE.js +4 -0
  170. package/dist/prod/locales/oc-FR-YBJTCJ3J.js +4 -0
  171. package/dist/prod/locales/pa-IN-SNOXSMRV.js +4 -0
  172. package/dist/prod/locales/percentages-LWOC67ZH.js +1 -0
  173. package/dist/prod/locales/pl-PL-BSY6YFZ3.js +12 -0
  174. package/dist/prod/locales/pt-BR-CZDV62R3.js +10 -0
  175. package/dist/prod/locales/pt-PT-JO57XJJW.js +12 -0
  176. package/dist/prod/locales/ro-RO-UZ5ICYYN.js +12 -0
  177. package/dist/prod/locales/ru-RU-AN7JPREC.js +10 -0
  178. package/dist/prod/locales/si-LK-7CBLD6QQ.js +1 -0
  179. package/dist/prod/locales/sk-SK-SWR6DKBI.js +7 -0
  180. package/dist/prod/locales/sl-SI-QY5KCFGA.js +8 -0
  181. package/dist/prod/locales/sv-SE-O3OFCY3J.js +12 -0
  182. package/dist/prod/locales/ta-IN-V6NHHU6Z.js +6 -0
  183. package/dist/prod/locales/th-TH-WLSZUSBX.js +1 -0
  184. package/dist/prod/locales/tr-TR-GUFYG22B.js +4 -0
  185. package/dist/prod/locales/uk-UA-K6SV5NFQ.js +6 -0
  186. package/dist/prod/locales/uz-UZ-TVKTZO2G.js +1 -0
  187. package/dist/prod/locales/vi-VN-7FKFXJNO.js +7 -0
  188. package/dist/prod/locales/zh-CN-AOKVLNNK.js +11 -0
  189. package/dist/prod/locales/zh-HK-CDKPF5DC.js +1 -0
  190. package/dist/prod/locales/zh-TW-ZVGYESGW.js +13 -0
  191. package/dist/types/common/src/colors.d.ts +13 -7
  192. package/dist/types/common/src/constants.d.ts +54 -0
  193. package/dist/types/common/src/keys.d.ts +2 -0
  194. package/dist/types/common/src/random.d.ts +7 -0
  195. package/dist/types/common/src/utils.d.ts +5 -0
  196. package/dist/types/element/src/Scene.d.ts +1 -1
  197. package/dist/types/element/src/binding.d.ts +13 -7
  198. package/dist/types/element/src/collision.d.ts +14 -5
  199. package/dist/types/element/src/comparisons.d.ts +5 -3
  200. package/dist/types/element/src/delta.d.ts +23 -1
  201. package/dist/types/element/src/duplicate.d.ts +60 -0
  202. package/dist/types/element/src/flowchart.d.ts +5 -1
  203. package/dist/types/element/src/frame.d.ts +2 -2
  204. package/dist/types/element/src/index.d.ts +2 -0
  205. package/dist/types/element/src/linearElementEditor.d.ts +10 -0
  206. package/dist/types/element/src/listMarker.d.ts +34 -0
  207. package/dist/types/element/src/mutateElement.d.ts +1 -1
  208. package/dist/types/element/src/newElement.d.ts +39 -3
  209. package/dist/types/element/src/renderElement.d.ts +21 -4
  210. package/dist/types/element/src/shape.d.ts +15 -1
  211. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  212. package/dist/types/element/src/stickyNote.d.ts +183 -0
  213. package/dist/types/element/src/textElement.d.ts +9 -1
  214. package/dist/types/element/src/transform.d.ts +25 -6
  215. package/dist/types/element/src/typeChecks.d.ts +3 -2
  216. package/dist/types/element/src/types.d.ts +35 -6
  217. package/dist/types/element/src/utils.d.ts +15 -4
  218. package/dist/types/element/src/zindex.d.ts +1 -1
  219. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +60 -3
  220. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  221. package/dist/types/excalidraw/actions/actionBoundText.d.ts +40 -2
  222. package/dist/types/excalidraw/actions/actionCanvas.d.ts +140 -7
  223. package/dist/types/excalidraw/actions/actionClipboard.d.ts +40 -2
  224. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +20 -1
  225. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +61 -4
  226. package/dist/types/excalidraw/actions/actionDeselect.d.ts +23 -1
  227. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -2
  228. package/dist/types/excalidraw/actions/actionElementLink.d.ts +20 -1
  229. package/dist/types/excalidraw/actions/actionElementLock.d.ts +40 -2
  230. package/dist/types/excalidraw/actions/actionExport.d.ts +40 -2
  231. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  232. package/dist/types/excalidraw/actions/actionFrame.d.ts +111 -4
  233. package/dist/types/excalidraw/actions/actionGroup.d.ts +40 -2
  234. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +71 -2
  235. package/dist/types/excalidraw/actions/actionLink.d.ts +20 -1
  236. package/dist/types/excalidraw/actions/actionMenu.d.ts +20 -1
  237. package/dist/types/excalidraw/actions/actionProperties.d.ts +50 -8
  238. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +20 -1
  239. package/dist/types/excalidraw/actions/actionStyles.d.ts +21 -2
  240. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +20 -1
  241. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +20 -1
  242. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +20 -1
  243. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +20 -1
  244. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +20 -1
  245. package/dist/types/excalidraw/actions/actionToggleShowHints.d.ts +197 -0
  246. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +20 -1
  247. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +20 -1
  248. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +20 -1
  249. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  250. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  251. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  252. package/dist/types/excalidraw/appState.d.ts +23 -1
  253. package/dist/types/excalidraw/components/App.arrowText.d.ts +28 -30
  254. package/dist/types/excalidraw/components/App.bucketFill.d.ts +10 -0
  255. package/dist/types/excalidraw/components/App.clipboard.d.ts +31 -0
  256. package/dist/types/excalidraw/components/App.cursor.d.ts +8 -0
  257. package/dist/types/excalidraw/components/App.d.ts +110 -199
  258. package/dist/types/excalidraw/components/App.duplicate.d.ts +101 -0
  259. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  260. package/dist/types/excalidraw/components/App.text.d.ts +146 -0
  261. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  262. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  263. package/dist/types/excalidraw/components/App.viewport.d.ts +41 -1
  264. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  265. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +6 -2
  266. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  267. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +4 -1
  268. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +4 -2
  269. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  270. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  271. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  272. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  273. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  274. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  275. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  276. package/dist/types/excalidraw/components/IconButton.d.ts +2 -0
  277. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  278. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  279. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +1 -0
  280. package/dist/types/excalidraw/components/Tools.d.ts +7 -2
  281. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  282. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  283. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  284. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  285. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -0
  286. package/dist/types/excalidraw/components/icons.d.ts +2 -0
  287. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -0
  288. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +2 -2
  289. package/dist/types/excalidraw/data/blob.d.ts +40 -2
  290. package/dist/types/excalidraw/data/json.d.ts +20 -1
  291. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  292. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  293. package/dist/types/excalidraw/index.d.ts +3 -2
  294. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  295. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  296. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  297. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
  298. package/dist/types/excalidraw/scene/Renderer.d.ts +64 -2
  299. package/dist/types/excalidraw/scene/index.d.ts +1 -1
  300. package/dist/types/excalidraw/scene/types.d.ts +3 -1
  301. package/dist/types/excalidraw/types.d.ts +140 -18
  302. package/dist/types/excalidraw/viewport.d.ts +33 -1
  303. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +12 -1
  304. package/dist/types/math/src/curve.d.ts +19 -12
  305. package/dist/types/math/src/segment.d.ts +6 -0
  306. package/dist/types/utils/src/export.d.ts +1 -0
  307. package/dist/types/utils/src/shape.d.ts +2 -2
  308. package/package.json +4 -4
  309. package/dist/dev/chunk-2WVIVYEB.js.map +0 -7
  310. package/dist/dev/chunk-6PDCWIY7.js.map +0 -7
  311. package/dist/dev/chunk-HY55C7T4.js +0 -69
  312. package/dist/dev/chunk-HY55C7T4.js.map +0 -7
  313. package/dist/dev/locales/ar-SA-YEOLME2Y.js.map +0 -7
  314. package/dist/dev/locales/az-AZ-DQL36U4O.js.map +0 -7
  315. package/dist/dev/locales/bg-BG-LG6R5FEQ.js.map +0 -7
  316. package/dist/dev/locales/bn-BD-W63P7JT5.js.map +0 -7
  317. package/dist/dev/locales/bn-IN-SCHACAA6.js.map +0 -7
  318. package/dist/dev/locales/ca-ES-XP3CQTWV.js.map +0 -7
  319. package/dist/dev/locales/cs-CZ-EXLEOJMD.js.map +0 -7
  320. package/dist/dev/locales/da-DK-46ONLZRX.js.map +0 -7
  321. package/dist/dev/locales/de-CH-A5QH3YGW.js.map +0 -7
  322. package/dist/dev/locales/de-DE-FVCCKR5N.js.map +0 -7
  323. package/dist/dev/locales/el-GR-SB4MX5JS.js.map +0 -7
  324. package/dist/dev/locales/es-ES-VRTYQG6S.js.map +0 -7
  325. package/dist/dev/locales/eu-ES-3OHEU2YV.js.map +0 -7
  326. package/dist/dev/locales/fa-IR-74WR2KXF.js.map +0 -7
  327. package/dist/dev/locales/fi-FI-XZQC4II2.js.map +0 -7
  328. package/dist/dev/locales/fr-FR-RABBDBKM.js.map +0 -7
  329. package/dist/dev/locales/gl-ES-OU3Q6XUE.js.map +0 -7
  330. package/dist/dev/locales/he-IL-6NCD5D54.js.map +0 -7
  331. package/dist/dev/locales/hi-IN-M54WKOJI.js.map +0 -7
  332. package/dist/dev/locales/hu-HU-HAW63BCI.js.map +0 -7
  333. package/dist/dev/locales/id-ID-TFSPHGWX.js.map +0 -7
  334. package/dist/dev/locales/it-IT-MH3BAO5W.js.map +0 -7
  335. package/dist/dev/locales/ja-JP-UGJBHLX6.js.map +0 -7
  336. package/dist/dev/locales/kaa-5ZUEYWIM.js.map +0 -7
  337. package/dist/dev/locales/kab-KAB-RLAZQZSM.js.map +0 -7
  338. package/dist/dev/locales/kk-KZ-CIP7GOIF.js.map +0 -7
  339. package/dist/dev/locales/km-KH-YMR4247H.js.map +0 -7
  340. package/dist/dev/locales/ko-KR-WGKQKR2R.js.map +0 -7
  341. package/dist/dev/locales/ku-TR-ZSJN6TN6.js.map +0 -7
  342. package/dist/dev/locales/lt-LT-FT6ZGIZP.js.map +0 -7
  343. package/dist/dev/locales/lv-LV-U74YKDPR.js.map +0 -7
  344. package/dist/dev/locales/mr-IN-KN72LOIA.js.map +0 -7
  345. package/dist/dev/locales/my-MM-E57NLQ7W.js.map +0 -7
  346. package/dist/dev/locales/nb-NO-FYQDWD7X.js.map +0 -7
  347. package/dist/dev/locales/nl-NL-D5MZQRAC.js.map +0 -7
  348. package/dist/dev/locales/nn-NO-5ZEUZJV4.js.map +0 -7
  349. package/dist/dev/locales/oc-FR-MVW6LDAP.js.map +0 -7
  350. package/dist/dev/locales/pa-IN-2NH3SVNI.js.map +0 -7
  351. package/dist/dev/locales/pl-PL-M6LYWLHY.js.map +0 -7
  352. package/dist/dev/locales/pt-BR-27M3CCS7.js.map +0 -7
  353. package/dist/dev/locales/pt-PT-V3C226NP.js.map +0 -7
  354. package/dist/dev/locales/ro-RO-S4GNBAJI.js.map +0 -7
  355. package/dist/dev/locales/ru-RU-CRRT5JUZ.js.map +0 -7
  356. package/dist/dev/locales/si-LK-APMICZ7H.js.map +0 -7
  357. package/dist/dev/locales/sk-SK-7ZFDZG6Y.js.map +0 -7
  358. package/dist/dev/locales/sl-SI-BBENCX7D.js.map +0 -7
  359. package/dist/dev/locales/sv-SE-35QJIOEW.js.map +0 -7
  360. package/dist/dev/locales/ta-IN-4N5CFIWZ.js.map +0 -7
  361. package/dist/dev/locales/th-TH-2F4V4IDB.js.map +0 -7
  362. package/dist/dev/locales/tr-TR-NDFP3F7P.js.map +0 -7
  363. package/dist/dev/locales/uk-UA-4I6VBQZ5.js.map +0 -7
  364. package/dist/dev/locales/uz-UZ-UVKC7UNZ.js.map +0 -7
  365. package/dist/dev/locales/vi-VN-UQCETDRL.js.map +0 -7
  366. package/dist/dev/locales/zh-CN-RSRHKN75.js.map +0 -7
  367. package/dist/dev/locales/zh-HK-XSFQ32U4.js.map +0 -7
  368. package/dist/dev/locales/zh-TW-KFVYWRFJ.js.map +0 -7
  369. package/dist/prod/chunk-7XWMRXBY.js +0 -1
  370. package/dist/prod/chunk-ERSWUTIN.js +0 -4
  371. package/dist/prod/chunk-YGJVY4SA.js +0 -12
  372. package/dist/prod/data/image-QXRYHUNP.js +0 -1
  373. package/dist/prod/locales/az-AZ-OXJXL76K.js +0 -1
  374. package/dist/prod/locales/bg-BG-W2GKIJDF.js +0 -5
  375. package/dist/prod/locales/bn-BD-TGL7M4PJ.js +0 -3
  376. package/dist/prod/locales/bn-IN-BKETKYEH.js +0 -3
  377. package/dist/prod/locales/ca-ES-LD5SCRVV.js +0 -8
  378. package/dist/prod/locales/cs-CZ-OFPU5DBV.js +0 -7
  379. package/dist/prod/locales/da-DK-FRDJFYWF.js +0 -2
  380. package/dist/prod/locales/de-CH-ZG7H3QK3.js +0 -11
  381. package/dist/prod/locales/de-DE-SIJYH4IH.js +0 -11
  382. package/dist/prod/locales/el-GR-IEE2CGI2.js +0 -7
  383. package/dist/prod/locales/en-7NFCYGKX.js +0 -1
  384. package/dist/prod/locales/es-ES-TVVPWKV5.js +0 -12
  385. package/dist/prod/locales/eu-ES-CGBMFQDT.js +0 -8
  386. package/dist/prod/locales/fa-IR-IE6XAPR4.js +0 -9
  387. package/dist/prod/locales/fi-FI-P7TKNHRM.js +0 -6
  388. package/dist/prod/locales/fr-FR-QI2XZNT7.js +0 -12
  389. package/dist/prod/locales/gl-ES-TLYCNOZZ.js +0 -6
  390. package/dist/prod/locales/he-IL-ZX43XLGP.js +0 -9
  391. package/dist/prod/locales/hi-IN-UTYRMTUF.js +0 -3
  392. package/dist/prod/locales/hu-HU-AJOSEBW6.js +0 -3
  393. package/dist/prod/locales/id-ID-ETLTVG6C.js +0 -8
  394. package/dist/prod/locales/it-IT-B4B6TP6L.js +0 -12
  395. package/dist/prod/locales/ja-JP-IYKVURR5.js +0 -12
  396. package/dist/prod/locales/kaa-SE2BUIKX.js +0 -1
  397. package/dist/prod/locales/kab-KAB-Y3GLKXLR.js +0 -4
  398. package/dist/prod/locales/kk-KZ-ABWUFVOH.js +0 -1
  399. package/dist/prod/locales/ko-KR-7JQDXKGM.js +0 -5
  400. package/dist/prod/locales/ku-TR-NAH2Q5B7.js +0 -6
  401. package/dist/prod/locales/lt-LT-VQFYRSNQ.js +0 -3
  402. package/dist/prod/locales/lv-LV-T62VSYUM.js +0 -4
  403. package/dist/prod/locales/mr-IN-V4FHLCJE.js +0 -9
  404. package/dist/prod/locales/my-MM-E3SQ6E54.js +0 -1
  405. package/dist/prod/locales/nb-NO-MLNOFN5H.js +0 -8
  406. package/dist/prod/locales/nl-NL-D5L3ZV4M.js +0 -13
  407. package/dist/prod/locales/nn-NO-NNHDGPKB.js +0 -4
  408. package/dist/prod/locales/oc-FR-DWCRF55G.js +0 -4
  409. package/dist/prod/locales/pa-IN-3JSAY44M.js +0 -4
  410. package/dist/prod/locales/percentages-ETZPVQEE.js +0 -1
  411. package/dist/prod/locales/pl-PL-ACURYKP3.js +0 -12
  412. package/dist/prod/locales/pt-BR-LOX7MLGD.js +0 -10
  413. package/dist/prod/locales/pt-PT-CZ2U2RFQ.js +0 -12
  414. package/dist/prod/locales/ro-RO-2HECL2X6.js +0 -12
  415. package/dist/prod/locales/ru-RU-HAYNXO46.js +0 -10
  416. package/dist/prod/locales/si-LK-W5KNS4H6.js +0 -1
  417. package/dist/prod/locales/sk-SK-7K2CFGDV.js +0 -7
  418. package/dist/prod/locales/sl-SI-OXV2QZWW.js +0 -6
  419. package/dist/prod/locales/sv-SE-JTOBZRGL.js +0 -12
  420. package/dist/prod/locales/ta-IN-KFAVKXGT.js +0 -6
  421. package/dist/prod/locales/th-TH-VDMSCPDL.js +0 -1
  422. package/dist/prod/locales/tr-TR-CEZ6GX45.js +0 -4
  423. package/dist/prod/locales/uk-UA-Q3H3OXQC.js +0 -6
  424. package/dist/prod/locales/uz-UZ-NGCSWWPX.js +0 -1
  425. package/dist/prod/locales/vi-VN-P3NDEVPS.js +0 -7
  426. package/dist/prod/locales/zh-CN-SS3O57GA.js +0 -11
  427. package/dist/prod/locales/zh-HK-LWJT3VCF.js +0 -1
  428. package/dist/prod/locales/zh-TW-VJXC72RT.js +0 -13
  429. /package/dist/dev/data/{image-4YS5KUOX.js.map → image-GQWXOMCO.js.map} +0 -0
  430. /package/dist/dev/locales/{en-5JPPY76A.js.map → en-RLKKKTGS.js.map} +0 -0
  431. /package/dist/dev/locales/{percentages-QBBLQLIV.js.map → percentages-X2QIQ6XJ.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -13,8 +13,36 @@ Please add the latest change on the top under the correct section.
13
13
 
14
14
  ## Unreleased
15
15
 
16
+ ### Wheel navigation (2026-09-13) [#XXXX](https://github.com/excalidraw/excalidraw/pull/XXXX)
17
+
18
+ - Scrolling while holding the wheel (middle) mouse button zooms the canvas around the pointer, the same as ctrl/cmd+wheel — a wheel-button pan can be zoomed one-handed, without reaching for a modifier.
19
+ - New `appState.inputDevice` preference (`"auto" | "mouse" | "trackpad"`, default `"auto"`, persisted in browser storage) selecting the wheel mappings. With `"trackpad"` a plain wheel pans; with `"mouse"` a plain wheel zooms. Ctrl/cmd+wheel (how a pinch is delivered) zooms with either device. Shift+wheel pans horizontally, and ctrl/cmd+shift+wheel pans vertically. The wheel-button zoom above is unaffected. `"auto"` is reserved for detecting the device from the wheel events and resolves to `"trackpad"` until that is implemented (`resolveInputDevice()`). Set it from the new "Input device" radio in the main menu's preferences submenu, also exposed as `MainMenu.DefaultItems.Preferences.InputDevice`.
20
+
21
+ ### Sticky notes (2026-09-06) [#XXXX](https://github.com/excalidraw/excalidraw/pull/XXXX)
22
+
23
+ - New `stickynote` element type and toolbar tool (`N`): an always-filled, flat-rendered note whose label auto-fits — the font shrinks from the user's size down to a minimum, and only then does the note grow in height (it never shrinks below the height the user gave it). Click to place a 250×250 note, drag to size it (previewed at the dragged size, snapped to a font-aware minimum on release); text editing starts right away.
24
+ - Element model: the note carries `baseHeight` (the user's height; `height ≥ baseHeight`), its label carries `baseFontSize` (the user's font ceiling, `null`/absent on any other text) while `fontSize` holds the fitted size. Read a text element's user-facing size through `getBaseFontSize(text, elementsMap)`.
25
+ - Sticky notes are their own color domain: new `appState.currentItemStickynoteStrokeColor` (the note's text color) and `appState.currentItemStickynoteBackgroundColor` defaults, and new customizable top-pick slots `appState.colorTopPicks.stickyNoteStroke` / `stickyNoteBackground`. The stroke and background pickers, both eyedroppers and paste-styles resolve their target (regular / sticky / mixed) at execution time. A note and its label share one ink (the stroke picker reads "Text color" for notes): coloring the label while editing colors the note too, binding a colored text gives the note its color, and the creation-date footer always paints in that ink.
26
+ - Skeleton API: `convertToExcalidrawElements([{ type: "stickynote", x, y, label?: { text, fontSize? } }])` creates a note (and fitted label); see the element-skeleton docs.
27
+ - Tools can be dragged out of the toolbar: drag the sticky note button onto the canvas to drop a default-sized note where you release it, previewed translucently while dragging (nothing reaches the scene, history or collaborators until the drop; Escape cancels). The mechanism is generic — other tools can opt in.
28
+ - Toolbar: on desktop and tablet the image tool moved into the "More tools" menu (still `9`; `UIOptions.tools.image` keeps hiding it; the mobile toolbar keeps its image slot), and tool badges now show the letter shortcuts (`R`, `T`, `N`, …) instead of the numbers, which are no longer contiguous. The number keys keep working.
29
+ - Each note shows its creation date (`element.created`) in a footer band — "7 Sep", or "7 Sep 2025" once the year differs — on canvas and in SVG/PNG exports. The band is reserved in the note's layout, so the label never overlaps it; notes without a timestamp keep the band empty.
30
+ - Resize semantics: a note's corners resize proportionally by default and scale the label's font ceiling with the note (Shift frees them); its edges resize freely by default (Shift constrains them). Drag-creation is proportional by default too (Shift frees it) and never touches the font ceiling. Width-only gestures keep the base height, height gestures set it, aspect-locked multi-select and Stats group edits scale the ceiling; flips preserve everything. Arrows bound to a note follow it as it grows.
31
+
16
32
  ## Excalidraw API
17
33
 
34
+ ### `setViewport` stops following a collaborator (2026-09-26) [#XXXX](https://github.com/excalidraw/excalidraw/pull/XXXX)
35
+
36
+ - `setViewport` now asks to stop following a collaborator whenever it navigates (`onUserFollow` with `action: "UNFOLLOW"`, if `userToFollow` is set), as a user's pan or zoom does. `setViewport(null)` (clearing a lock) and a target that doesn't resolve don't navigate, and leave following alone.
37
+
38
+ ### `onDuplicate` can replace and veto duplicates (2026-09-18) [#XXXX](https://github.com/excalidraw/excalidraw/pull/XXXX)
39
+
40
+ - `props.onDuplicate` may now return new objects for the duplicated elements in every duplication path. Previously the editor kept using the objects it created, so on paste (and library insert) the frame assignment and bound text redraw went to objects that were no longer in the scene, and alt-drag dragged an element that wasn't in the scene. The returned changes are now merged into the editor's duplicates, so they're part of the duplication's own undo entry and durable increment (no follow-up `updateScene` needed).
41
+ - When pasting or inserting onto a frame, the duplicates passed to `onDuplicate` already have their `frameId` set (and are ordered under the frame).
42
+ - Omitting a duplicate from the returned array (or returning it as deleted) now reliably prevents that element from being duplicated — previously pasting over a frame brought it back, and alt-drag broke. References to it from the remaining duplicates (bindings, `boundElements`, `frameId`) are cleared, and a bound text isn't duplicated without its container. If no duplicate remains, the duplication is cancelled and the returned elements are ignored: paste and the duplicate action do nothing, and alt-drag moves the original elements instead. When only some duplicates are vetoed during alt-drag, their originals stay where they were.
43
+ - `onDuplicate` may return `false` to prevent the duplication as a whole (same as omitting every duplicate, without having to find them).
44
+ - `onDuplicate` receives a third argument with lookups covering just the elements taking part in the duplication, so you don't have to derive them by scanning the scene: `{ duplicateElements, originalElements, origIdToDuplicateId, duplicateIdToOrigId }` — the duplicates by id, the elements they were made from by id, and their ids mapped in both directions (`duplicateIdToOrigId` to look up a duplicate's original while modifying it, `origIdToDuplicateId` e.g. for remapping element ids you keep in `customData`). On paste and library insert the originals are the inserted elements, which aren't part of the scene. The maps are read-only.
45
+
18
46
  ### Host-controlled active tool (2026-07-14) [#11665](https://github.com/excalidraw/excalidraw/pull/11665)
19
47
 
20
48
  - Added `activeTool` prop (`{ type: ToolType } | { type: "custom"; customType: string }`) for forcing the active editor tool (controlled). While set, user- and API-driven tool switching is ignored — `setActiveTool` refuses non-matching activations with a console warning, non-forced toolbar buttons render disabled, and the tool-lock toggle (`Q`) is inert — and the editor snaps back if internal flows reset the tool (e.g. `restore()` on scene load). The forced tool behaves as if locked — it doesn't revert to selection after use and drawn elements aren't auto-selected — without mutating `appState.activeTool.locked`, so the user's persisted padlock preference stays untouched. Unset the prop to return tool control to the editor (the current tool stays active). The forced tool must be activatable to take effect — not disabled via `UIOptions.tools`, and (while non-interactive) allowed via `interaction.enabled.tools`; otherwise the editor stays on the `selection` tool and applies the forced tool once it becomes activatable. `image` cannot be forced (its activation opens the file picker). Composes with `interaction.enabled.tools` for presentation-style hosts: force `laser` for the presenter, `selection` + `interaction={false}` for viewers.