@dwelle/excalidraw 0.5.0-2dbdd6f → 0.5.0-2e5786f

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 (553) hide show
  1. package/CHANGELOG.md +229 -0
  2. package/README.md +111 -14
  3. package/dist/dev/{chunk-EWKWI3K7.js → chunk-IUKF2BNN.js} +59 -5
  4. package/dist/dev/chunk-IUKF2BNN.js.map +7 -0
  5. package/dist/dev/chunk-Q67DF2PJ.js +69 -0
  6. package/dist/dev/chunk-Q67DF2PJ.js.map +7 -0
  7. package/dist/dev/{chunk-JBODKHIT.js → chunk-XFZZLSOF.js} +16745 -11631
  8. package/dist/dev/chunk-XFZZLSOF.js.map +7 -0
  9. package/dist/dev/{chunk-NYLL7DNJ.js → chunk-XRXU5XOA.js} +2 -2
  10. package/dist/dev/components/TTDDialog/{CodeMirrorEditor-PY5ZVWKQ.js → CodeMirrorEditor-GYLDZZSD.js} +2 -2
  11. package/dist/dev/data/{image-WSL7K3G4.js → image-KVOR7M3R.js} +3 -3
  12. package/dist/dev/index.css +1065 -724
  13. package/dist/dev/index.css.map +3 -3
  14. package/dist/dev/index.js +16584 -10255
  15. package/dist/dev/index.js.map +4 -4
  16. package/dist/dev/locales/{ar-SA-AGVJN2FU.js → ar-SA-EW44IW4V.js} +91 -46
  17. package/dist/dev/locales/ar-SA-EW44IW4V.js.map +7 -0
  18. package/dist/dev/locales/{az-AZ-62IXPX5D.js → az-AZ-AI7WAYA2.js} +49 -4
  19. package/dist/dev/locales/az-AZ-AI7WAYA2.js.map +7 -0
  20. package/dist/dev/locales/{bg-BG-UBDZF4KA.js → bg-BG-43ZNGDXF.js} +49 -4
  21. package/dist/dev/locales/bg-BG-43ZNGDXF.js.map +7 -0
  22. package/dist/dev/locales/{bn-BD-4TAUVZOD.js → bn-BD-PU4CN7NP.js} +49 -4
  23. package/dist/dev/locales/bn-BD-PU4CN7NP.js.map +7 -0
  24. package/dist/dev/locales/{bn-IN-PUGL2LDE.js → bn-IN-54CF43JL.js} +49 -4
  25. package/dist/dev/locales/bn-IN-54CF43JL.js.map +7 -0
  26. package/dist/dev/locales/{ca-ES-GEEW5L7T.js → ca-ES-RHJO3QDO.js} +50 -5
  27. package/dist/dev/locales/ca-ES-RHJO3QDO.js.map +7 -0
  28. package/dist/dev/locales/{cs-CZ-LNVE3QM5.js → cs-CZ-ZRSAO3BA.js} +49 -4
  29. package/dist/dev/locales/cs-CZ-ZRSAO3BA.js.map +7 -0
  30. package/dist/dev/locales/{da-DK-CAYJG7FJ.js → da-DK-OAB6DEJX.js} +49 -4
  31. package/dist/dev/locales/da-DK-OAB6DEJX.js.map +7 -0
  32. package/dist/dev/locales/{de-CH-GCXOD4LK.js → de-CH-QF7JLXTF.js} +157 -112
  33. package/dist/dev/locales/de-CH-QF7JLXTF.js.map +7 -0
  34. package/dist/dev/locales/{de-DE-CGDBECYD.js → de-DE-5ZO4KOPT.js} +157 -112
  35. package/dist/dev/locales/de-DE-5ZO4KOPT.js.map +7 -0
  36. package/dist/dev/locales/{el-GR-G5QZC24A.js → el-GR-F74ZSUEO.js} +50 -5
  37. package/dist/dev/locales/el-GR-F74ZSUEO.js.map +7 -0
  38. package/dist/dev/locales/{en-A3UOWEYW.js → en-BC4BNQRX.js} +8 -2
  39. package/dist/dev/locales/{es-ES-UMEOH76W.js → es-ES-3B3IENPS.js} +144 -99
  40. package/dist/dev/locales/es-ES-3B3IENPS.js.map +7 -0
  41. package/dist/dev/locales/{eu-ES-IWRZXJC5.js → eu-ES-NH447TVU.js} +203 -158
  42. package/dist/dev/locales/eu-ES-NH447TVU.js.map +7 -0
  43. package/dist/dev/locales/{fa-IR-QOYVIIJA.js → fa-IR-V44PNTTK.js} +68 -23
  44. package/dist/dev/locales/fa-IR-V44PNTTK.js.map +7 -0
  45. package/dist/dev/locales/{fi-FI-BXRW65OA.js → fi-FI-ZXSYWCC4.js} +49 -4
  46. package/dist/dev/locales/fi-FI-ZXSYWCC4.js.map +7 -0
  47. package/dist/dev/locales/{fr-FR-R2QH5VCW.js → fr-FR-RJSOSEYS.js} +88 -43
  48. package/dist/dev/locales/fr-FR-RJSOSEYS.js.map +7 -0
  49. package/dist/dev/locales/{gl-ES-4ES3ZADP.js → gl-ES-NAUVMVFY.js} +49 -4
  50. package/dist/dev/locales/gl-ES-NAUVMVFY.js.map +7 -0
  51. package/dist/dev/locales/{he-IL-TRQRRYPH.js → he-IL-JBKWWR75.js} +145 -100
  52. package/dist/dev/locales/he-IL-JBKWWR75.js.map +7 -0
  53. package/dist/dev/locales/{hi-IN-U46BOJEC.js → hi-IN-SD773MVZ.js} +50 -5
  54. package/dist/dev/locales/hi-IN-SD773MVZ.js.map +7 -0
  55. package/dist/dev/locales/{hu-HU-JDULJ6XL.js → hu-HU-OTA7GOAV.js} +49 -4
  56. package/dist/dev/locales/hu-HU-OTA7GOAV.js.map +7 -0
  57. package/dist/dev/locales/{id-ID-BLIXNCUT.js → id-ID-KGCGQFTT.js} +139 -94
  58. package/dist/dev/locales/id-ID-KGCGQFTT.js.map +7 -0
  59. package/dist/dev/locales/{it-IT-6TBW7RUK.js → it-IT-EWGEXMVK.js} +54 -9
  60. package/dist/dev/locales/it-IT-EWGEXMVK.js.map +7 -0
  61. package/dist/dev/locales/{ja-JP-6HYAQFYX.js → ja-JP-YMGRGBPS.js} +189 -144
  62. package/dist/dev/locales/ja-JP-YMGRGBPS.js.map +7 -0
  63. package/dist/dev/locales/{kaa-Z5UP62XJ.js → kaa-RRE7XUCW.js} +49 -4
  64. package/dist/dev/locales/kaa-RRE7XUCW.js.map +7 -0
  65. package/dist/dev/locales/{kab-KAB-Z7STWQKS.js → kab-KAB-ZCYVOJU4.js} +49 -4
  66. package/dist/dev/locales/kab-KAB-ZCYVOJU4.js.map +7 -0
  67. package/dist/dev/locales/{kk-KZ-BWHY45DX.js → kk-KZ-TO6XEFJC.js} +49 -4
  68. package/dist/dev/locales/kk-KZ-TO6XEFJC.js.map +7 -0
  69. package/dist/dev/locales/{km-KH-HGLNWNRU.js → km-KH-3HTDL5HB.js} +49 -4
  70. package/dist/dev/locales/km-KH-3HTDL5HB.js.map +7 -0
  71. package/dist/dev/locales/{ko-KR-CO36WKPC.js → ko-KR-O4L4O7L6.js} +133 -88
  72. package/dist/dev/locales/ko-KR-O4L4O7L6.js.map +7 -0
  73. package/dist/dev/locales/{ku-TR-AACVIARC.js → ku-TR-AFJWDY67.js} +49 -4
  74. package/dist/dev/locales/ku-TR-AFJWDY67.js.map +7 -0
  75. package/dist/dev/locales/{lt-LT-CFYYFLDV.js → lt-LT-7QOT2VDQ.js} +49 -4
  76. package/dist/dev/locales/lt-LT-7QOT2VDQ.js.map +7 -0
  77. package/dist/dev/locales/{lv-LV-QCBBOFFU.js → lv-LV-WV6C4NYF.js} +49 -4
  78. package/dist/dev/locales/lv-LV-WV6C4NYF.js.map +7 -0
  79. package/dist/dev/locales/{mr-IN-B2CM5GK5.js → mr-IN-3TLYWOEI.js} +52 -7
  80. package/dist/dev/locales/mr-IN-3TLYWOEI.js.map +7 -0
  81. package/dist/dev/locales/{my-MM-756BNN36.js → my-MM-NNL2QJT3.js} +49 -4
  82. package/dist/dev/locales/my-MM-NNL2QJT3.js.map +7 -0
  83. package/dist/dev/locales/{nb-NO-5BLHQI4J.js → nb-NO-PG3XLMEV.js} +50 -5
  84. package/dist/dev/locales/nb-NO-PG3XLMEV.js.map +7 -0
  85. package/dist/dev/locales/{nl-NL-225BLGAH.js → nl-NL-MMOYEKKQ.js} +59 -14
  86. package/dist/dev/locales/nl-NL-MMOYEKKQ.js.map +7 -0
  87. package/dist/dev/locales/{nn-NO-4J7MR6GH.js → nn-NO-AAC2I2YX.js} +49 -4
  88. package/dist/dev/locales/nn-NO-AAC2I2YX.js.map +7 -0
  89. package/dist/dev/locales/{oc-FR-XCETH7KF.js → oc-FR-SR6MFB4N.js} +50 -5
  90. package/dist/dev/locales/oc-FR-SR6MFB4N.js.map +7 -0
  91. package/dist/dev/locales/{pa-IN-32NBAN5L.js → pa-IN-ADGMQLQI.js} +49 -4
  92. package/dist/dev/locales/pa-IN-ADGMQLQI.js.map +7 -0
  93. package/dist/dev/locales/{percentages-ZRLRVMSI.js → percentages-X2QIQ6XJ.js} +2 -2
  94. package/dist/dev/locales/{pl-PL-R6OJ54BT.js → pl-PL-FNIPTMVP.js} +50 -5
  95. package/dist/dev/locales/pl-PL-FNIPTMVP.js.map +7 -0
  96. package/dist/dev/locales/{pt-BR-7AFGAKGR.js → pt-BR-67FMCDNE.js} +136 -91
  97. package/dist/dev/locales/pt-BR-67FMCDNE.js.map +7 -0
  98. package/dist/dev/locales/{pt-PT-S6BMW6MY.js → pt-PT-4G3GI4SF.js} +135 -90
  99. package/dist/dev/locales/pt-PT-4G3GI4SF.js.map +7 -0
  100. package/dist/dev/locales/{ro-RO-4JVGQHS2.js → ro-RO-CUZFN555.js} +54 -9
  101. package/dist/dev/locales/ro-RO-CUZFN555.js.map +7 -0
  102. package/dist/dev/locales/{ru-RU-IESI752T.js → ru-RU-4GHINTII.js} +56 -11
  103. package/dist/dev/locales/ru-RU-4GHINTII.js.map +7 -0
  104. package/dist/dev/locales/{si-LK-H75E7PKD.js → si-LK-SSNT7T4A.js} +50 -5
  105. package/dist/dev/locales/si-LK-SSNT7T4A.js.map +7 -0
  106. package/dist/dev/locales/{sk-SK-EUK2NR2F.js → sk-SK-J7TKZQEH.js} +87 -42
  107. package/dist/dev/locales/sk-SK-J7TKZQEH.js.map +7 -0
  108. package/dist/dev/locales/{sl-SI-AKW7R5PW.js → sl-SI-SIBMLDYY.js} +135 -90
  109. package/dist/dev/locales/sl-SI-SIBMLDYY.js.map +7 -0
  110. package/dist/dev/locales/{sv-SE-QIBOOXLJ.js → sv-SE-6GYGFZNL.js} +132 -87
  111. package/dist/dev/locales/sv-SE-6GYGFZNL.js.map +7 -0
  112. package/dist/dev/locales/{ta-IN-LBK2NQ5K.js → ta-IN-7AW6CTGA.js} +49 -4
  113. package/dist/dev/locales/ta-IN-7AW6CTGA.js.map +7 -0
  114. package/dist/dev/locales/{th-TH-YJ2E6GVT.js → th-TH-FP7ULYYM.js} +98 -53
  115. package/dist/dev/locales/th-TH-FP7ULYYM.js.map +7 -0
  116. package/dist/dev/locales/{tr-TR-Y5GO2XJW.js → tr-TR-UDQGNXAG.js} +126 -81
  117. package/dist/dev/locales/tr-TR-UDQGNXAG.js.map +7 -0
  118. package/dist/dev/locales/{uk-UA-XYAFHHJW.js → uk-UA-25HL2NCU.js} +109 -64
  119. package/dist/dev/locales/uk-UA-25HL2NCU.js.map +7 -0
  120. package/dist/dev/locales/{uz-UZ-LF3CBRYE.js → uz-UZ-OPSBAY4H.js} +49 -4
  121. package/dist/dev/locales/uz-UZ-OPSBAY4H.js.map +7 -0
  122. package/dist/dev/locales/{vi-VN-WDPZEUOJ.js → vi-VN-DK367UGA.js} +49 -4
  123. package/dist/dev/locales/vi-VN-DK367UGA.js.map +7 -0
  124. package/dist/dev/locales/{zh-CN-SZ37453H.js → zh-CN-QCVKNWUH.js} +88 -43
  125. package/dist/dev/locales/zh-CN-QCVKNWUH.js.map +7 -0
  126. package/dist/dev/locales/{zh-HK-QDQ5QNBC.js → zh-HK-WFGYHWPG.js} +49 -4
  127. package/dist/dev/locales/zh-HK-WFGYHWPG.js.map +7 -0
  128. package/dist/dev/locales/{zh-TW-CYU6GFBV.js → zh-TW-WHQS4ZSD.js} +134 -89
  129. package/dist/dev/locales/zh-TW-WHQS4ZSD.js.map +7 -0
  130. package/dist/dev/subset-shared.chunk.js +1 -1
  131. package/dist/dev/subset-worker.chunk.js +1 -1
  132. package/dist/prod/chunk-DYU5D34O.js +1 -0
  133. package/dist/prod/chunk-FZAZBDSE.js +12 -0
  134. package/dist/prod/chunk-OKMKEMDC.js +35 -0
  135. package/dist/prod/{chunk-ZV7TQH6J.js → chunk-RX4U73MO.js} +1 -1
  136. package/dist/prod/components/TTDDialog/{CodeMirrorEditor-M5ZUJBXD.js → CodeMirrorEditor-TTO5E5XX.js} +1 -1
  137. package/dist/prod/data/image-QH2OFXIG.js +1 -0
  138. package/dist/prod/index.css +1 -1
  139. package/dist/prod/index.js +67 -98
  140. package/dist/prod/locales/ar-SA-5WIASEJP.js +10 -0
  141. package/dist/prod/locales/az-AZ-V5EUQD6C.js +1 -0
  142. package/dist/prod/locales/bg-BG-EXASCMTR.js +5 -0
  143. package/dist/prod/locales/bn-BD-U4SYNFCO.js +3 -0
  144. package/dist/prod/locales/bn-IN-HKDJIITE.js +3 -0
  145. package/dist/prod/locales/ca-ES-2KGUU5XB.js +8 -0
  146. package/dist/prod/locales/cs-CZ-VUCGPRML.js +7 -0
  147. package/dist/prod/locales/da-DK-NNDP2IVP.js +2 -0
  148. package/dist/prod/locales/de-CH-I7RAVIZN.js +11 -0
  149. package/dist/prod/locales/de-DE-WBQ3DQLR.js +11 -0
  150. package/dist/prod/locales/el-GR-TYQHVGXW.js +7 -0
  151. package/dist/prod/locales/en-R7FWCZ5G.js +1 -0
  152. package/dist/prod/locales/es-ES-JEUOREKJ.js +12 -0
  153. package/dist/prod/locales/eu-ES-SO5DEEAN.js +8 -0
  154. package/dist/prod/locales/fa-IR-I4JNTJHK.js +9 -0
  155. package/dist/prod/locales/fi-FI-REAEF6HQ.js +6 -0
  156. package/dist/prod/locales/fr-FR-SUCL7J6B.js +12 -0
  157. package/dist/prod/locales/gl-ES-KHCSOGVH.js +6 -0
  158. package/dist/prod/locales/he-IL-JYXVXV2Q.js +9 -0
  159. package/dist/prod/locales/hi-IN-BU52H3BO.js +3 -0
  160. package/dist/prod/locales/hu-HU-OWADXDQ3.js +3 -0
  161. package/dist/prod/locales/id-ID-2WY7E4VX.js +8 -0
  162. package/dist/prod/locales/it-IT-INVHSAJF.js +12 -0
  163. package/dist/prod/locales/ja-JP-JBNTKYP4.js +12 -0
  164. package/dist/prod/locales/kaa-TC3VIB7V.js +1 -0
  165. package/dist/prod/locales/kab-KAB-UOUDSQKM.js +4 -0
  166. package/dist/prod/locales/kk-KZ-P5H2X7YS.js +1 -0
  167. package/dist/prod/locales/km-KH-IHMV2US7.js +7 -0
  168. package/dist/prod/locales/ko-KR-ZTMANIDF.js +5 -0
  169. package/dist/prod/locales/ku-TR-GPJTRB5G.js +6 -0
  170. package/dist/prod/locales/lt-LT-V3XDOK3P.js +3 -0
  171. package/dist/prod/locales/lv-LV-DVQ3FADO.js +4 -0
  172. package/dist/prod/locales/mr-IN-VZ6HH5FE.js +9 -0
  173. package/dist/prod/locales/my-MM-XYKWHRK6.js +1 -0
  174. package/dist/prod/locales/nb-NO-UNO2GGZJ.js +8 -0
  175. package/dist/prod/locales/nl-NL-76EFHT4P.js +13 -0
  176. package/dist/prod/locales/nn-NO-CFKD7ABE.js +4 -0
  177. package/dist/prod/locales/oc-FR-YBJTCJ3J.js +4 -0
  178. package/dist/prod/locales/pa-IN-SNOXSMRV.js +4 -0
  179. package/dist/prod/locales/percentages-LWOC67ZH.js +1 -0
  180. package/dist/prod/locales/pl-PL-BSY6YFZ3.js +12 -0
  181. package/dist/prod/locales/pt-BR-CZDV62R3.js +10 -0
  182. package/dist/prod/locales/pt-PT-JO57XJJW.js +12 -0
  183. package/dist/prod/locales/ro-RO-UZ5ICYYN.js +12 -0
  184. package/dist/prod/locales/ru-RU-AN7JPREC.js +10 -0
  185. package/dist/prod/locales/si-LK-7CBLD6QQ.js +1 -0
  186. package/dist/prod/locales/sk-SK-SWR6DKBI.js +7 -0
  187. package/dist/prod/locales/sl-SI-QY5KCFGA.js +8 -0
  188. package/dist/prod/locales/sv-SE-O3OFCY3J.js +12 -0
  189. package/dist/prod/locales/ta-IN-V6NHHU6Z.js +6 -0
  190. package/dist/prod/locales/th-TH-WLSZUSBX.js +1 -0
  191. package/dist/prod/locales/tr-TR-GUFYG22B.js +4 -0
  192. package/dist/prod/locales/uk-UA-K6SV5NFQ.js +6 -0
  193. package/dist/prod/locales/uz-UZ-TVKTZO2G.js +1 -0
  194. package/dist/prod/locales/vi-VN-7FKFXJNO.js +7 -0
  195. package/dist/prod/locales/zh-CN-AOKVLNNK.js +11 -0
  196. package/dist/prod/locales/zh-HK-CDKPF5DC.js +1 -0
  197. package/dist/prod/locales/zh-TW-ZVGYESGW.js +13 -0
  198. package/dist/prod/subset-shared.chunk.js +1 -1
  199. package/dist/prod/subset-worker.chunk.js +1 -1
  200. package/dist/types/common/src/appEventBus.d.ts +27 -0
  201. package/dist/types/common/src/colors.d.ts +23 -1
  202. package/dist/types/common/src/constants.d.ts +66 -7
  203. package/dist/types/common/src/index.d.ts +2 -0
  204. package/dist/types/common/src/keys.d.ts +4 -0
  205. package/dist/types/common/src/points.d.ts +1 -1
  206. package/dist/types/common/src/random.d.ts +7 -0
  207. package/dist/types/common/src/utils.d.ts +7 -46
  208. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  209. package/dist/types/element/src/Scene.d.ts +7 -5
  210. package/dist/types/element/src/align.d.ts +2 -2
  211. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  212. package/dist/types/element/src/arrows/focus.d.ts +5 -2
  213. package/dist/types/element/src/binding.d.ts +28 -13
  214. package/dist/types/element/src/bounds.d.ts +22 -7
  215. package/dist/types/element/src/bucketFill.d.ts +110 -0
  216. package/dist/types/element/src/collision.d.ts +14 -5
  217. package/dist/types/element/src/comparisons.d.ts +8 -5
  218. package/dist/types/element/src/convertToShape.d.ts +23 -0
  219. package/dist/types/element/src/delta.d.ts +23 -1
  220. package/dist/types/element/src/distribute.d.ts +2 -2
  221. package/dist/types/element/src/dragElements.d.ts +27 -0
  222. package/dist/types/element/src/duplicate.d.ts +64 -3
  223. package/dist/types/element/src/embeddable.d.ts +2 -2
  224. package/dist/types/element/src/flowchart.d.ts +11 -7
  225. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  226. package/dist/types/element/src/frame.d.ts +11 -10
  227. package/dist/types/element/src/groups.d.ts +9 -9
  228. package/dist/types/element/src/index.d.ts +6 -1
  229. package/dist/types/element/src/linearElementEditor.d.ts +27 -10
  230. package/dist/types/element/src/listMarker.d.ts +34 -0
  231. package/dist/types/element/src/mutateElement.d.ts +1 -1
  232. package/dist/types/element/src/newElement.d.ts +53 -3
  233. package/dist/types/element/src/renderElement.d.ts +21 -7
  234. package/dist/types/element/src/resizeElements.d.ts +2 -2
  235. package/dist/types/element/src/selection.d.ts +7 -7
  236. package/dist/types/element/src/shape.d.ts +27 -1
  237. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  238. package/dist/types/element/src/sortElements.d.ts +10 -0
  239. package/dist/types/element/src/stickyNote.d.ts +183 -0
  240. package/dist/types/element/src/textElement.d.ts +20 -9
  241. package/dist/types/element/src/transform.d.ts +26 -7
  242. package/dist/types/element/src/typeChecks.d.ts +29 -27
  243. package/dist/types/element/src/types.d.ts +43 -7
  244. package/dist/types/element/src/utils.d.ts +15 -4
  245. package/dist/types/element/src/zindex.d.ts +2 -2
  246. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +92 -26
  247. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  248. package/dist/types/excalidraw/actions/actionBoundText.d.ts +62 -18
  249. package/dist/types/excalidraw/actions/actionCanvas.d.ts +385 -753
  250. package/dist/types/excalidraw/actions/actionClipboard.d.ts +62 -18
  251. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +31 -9
  252. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +96 -29
  253. package/dist/types/excalidraw/actions/actionDeselect.d.ts +182 -0
  254. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  255. package/dist/types/excalidraw/actions/actionElementLink.d.ts +31 -9
  256. package/dist/types/excalidraw/actions/actionElementLock.d.ts +63 -19
  257. package/dist/types/excalidraw/actions/actionExport.d.ts +165 -395
  258. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  259. package/dist/types/excalidraw/actions/actionFrame.d.ts +156 -213
  260. package/dist/types/excalidraw/actions/actionGroup.d.ts +77 -33
  261. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +86 -12
  262. package/dist/types/excalidraw/actions/actionLink.d.ts +32 -10
  263. package/dist/types/excalidraw/actions/actionMenu.d.ts +31 -9
  264. package/dist/types/excalidraw/actions/actionProperties.d.ts +100 -40
  265. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +37 -15
  266. package/dist/types/excalidraw/actions/actionStyles.d.ts +31 -9
  267. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  268. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +32 -10
  269. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +35 -14
  270. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +32 -10
  271. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +32 -10
  272. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +35 -14
  273. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  274. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleShowHints.d.ts} +47 -22
  275. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +32 -10
  276. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +33 -11
  277. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +32 -10
  278. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  279. package/dist/types/excalidraw/actions/index.d.ts +3 -2
  280. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  281. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  282. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  283. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  284. package/dist/types/excalidraw/appState.d.ts +51 -27
  285. package/dist/types/excalidraw/clipboard.d.ts +2 -3
  286. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  287. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  288. package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
  289. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  290. package/dist/types/excalidraw/components/App.clipboard.d.ts +31 -0
  291. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  292. package/dist/types/excalidraw/components/App.d.ts +342 -123
  293. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  294. package/dist/types/excalidraw/components/App.duplicate.d.ts +101 -0
  295. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  296. package/dist/types/excalidraw/components/App.modifiers.d.ts +38 -0
  297. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  298. package/dist/types/excalidraw/components/App.selectionTool.d.ts +57 -0
  299. package/dist/types/excalidraw/components/App.text.d.ts +146 -0
  300. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  301. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  302. package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
  303. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  304. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  305. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  306. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  307. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
  308. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  309. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  310. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  311. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  312. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  313. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  314. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  315. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  316. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  317. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  318. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  319. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  320. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  321. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  322. package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
  323. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  324. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  325. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -3
  326. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  327. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  328. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  329. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  330. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  331. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  332. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  333. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  334. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  335. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  336. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  337. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  338. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  339. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  340. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  341. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  342. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  343. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  344. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  345. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  346. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  347. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  348. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  349. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  350. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +2 -1
  351. package/dist/types/excalidraw/components/Toast.d.ts +8 -4
  352. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  353. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  354. package/dist/types/excalidraw/components/Tools.d.ts +151 -0
  355. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  356. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  357. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  358. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  359. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  360. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  361. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -1
  362. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
  363. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  364. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  365. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  366. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  367. package/dist/types/excalidraw/components/icons.d.ts +7 -1
  368. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +10 -4
  369. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  370. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  371. package/dist/types/excalidraw/data/blob.d.ts +201 -156
  372. package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
  373. package/dist/types/excalidraw/data/index.d.ts +6 -7
  374. package/dist/types/excalidraw/data/json.d.ts +109 -78
  375. package/dist/types/excalidraw/data/library.d.ts +1 -1
  376. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  377. package/dist/types/excalidraw/data/restore.d.ts +1 -1
  378. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  379. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  380. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  381. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  382. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  383. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  384. package/dist/types/excalidraw/index.d.ts +33 -8
  385. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  386. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  387. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  388. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  389. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  390. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  391. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
  392. package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
  393. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  394. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  395. package/dist/types/excalidraw/scene/types.d.ts +7 -5
  396. package/dist/types/excalidraw/snapping.d.ts +7 -7
  397. package/dist/types/excalidraw/types.d.ts +601 -72
  398. package/dist/types/excalidraw/viewport.d.ts +302 -0
  399. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +13 -3
  400. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  401. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  402. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  403. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  404. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  405. package/dist/types/math/src/constants.d.ts +0 -1
  406. package/dist/types/math/src/curve.d.ts +23 -13
  407. package/dist/types/math/src/index.d.ts +1 -0
  408. package/dist/types/math/src/pca.d.ts +79 -0
  409. package/dist/types/math/src/point.d.ts +1 -0
  410. package/dist/types/math/src/polygon.d.ts +25 -1
  411. package/dist/types/math/src/segment.d.ts +6 -0
  412. package/dist/types/utils/src/shape.d.ts +2 -2
  413. package/package.json +4 -5
  414. package/dist/dev/chunk-EWKWI3K7.js.map +0 -7
  415. package/dist/dev/chunk-JBODKHIT.js.map +0 -7
  416. package/dist/dev/chunk-URPEKBQ3.js +0 -69
  417. package/dist/dev/chunk-URPEKBQ3.js.map +0 -7
  418. package/dist/dev/locales/ar-SA-AGVJN2FU.js.map +0 -7
  419. package/dist/dev/locales/az-AZ-62IXPX5D.js.map +0 -7
  420. package/dist/dev/locales/bg-BG-UBDZF4KA.js.map +0 -7
  421. package/dist/dev/locales/bn-BD-4TAUVZOD.js.map +0 -7
  422. package/dist/dev/locales/bn-IN-PUGL2LDE.js.map +0 -7
  423. package/dist/dev/locales/ca-ES-GEEW5L7T.js.map +0 -7
  424. package/dist/dev/locales/cs-CZ-LNVE3QM5.js.map +0 -7
  425. package/dist/dev/locales/da-DK-CAYJG7FJ.js.map +0 -7
  426. package/dist/dev/locales/de-CH-GCXOD4LK.js.map +0 -7
  427. package/dist/dev/locales/de-DE-CGDBECYD.js.map +0 -7
  428. package/dist/dev/locales/el-GR-G5QZC24A.js.map +0 -7
  429. package/dist/dev/locales/es-ES-UMEOH76W.js.map +0 -7
  430. package/dist/dev/locales/eu-ES-IWRZXJC5.js.map +0 -7
  431. package/dist/dev/locales/fa-IR-QOYVIIJA.js.map +0 -7
  432. package/dist/dev/locales/fi-FI-BXRW65OA.js.map +0 -7
  433. package/dist/dev/locales/fr-FR-R2QH5VCW.js.map +0 -7
  434. package/dist/dev/locales/gl-ES-4ES3ZADP.js.map +0 -7
  435. package/dist/dev/locales/he-IL-TRQRRYPH.js.map +0 -7
  436. package/dist/dev/locales/hi-IN-U46BOJEC.js.map +0 -7
  437. package/dist/dev/locales/hu-HU-JDULJ6XL.js.map +0 -7
  438. package/dist/dev/locales/id-ID-BLIXNCUT.js.map +0 -7
  439. package/dist/dev/locales/it-IT-6TBW7RUK.js.map +0 -7
  440. package/dist/dev/locales/ja-JP-6HYAQFYX.js.map +0 -7
  441. package/dist/dev/locales/kaa-Z5UP62XJ.js.map +0 -7
  442. package/dist/dev/locales/kab-KAB-Z7STWQKS.js.map +0 -7
  443. package/dist/dev/locales/kk-KZ-BWHY45DX.js.map +0 -7
  444. package/dist/dev/locales/km-KH-HGLNWNRU.js.map +0 -7
  445. package/dist/dev/locales/ko-KR-CO36WKPC.js.map +0 -7
  446. package/dist/dev/locales/ku-TR-AACVIARC.js.map +0 -7
  447. package/dist/dev/locales/lt-LT-CFYYFLDV.js.map +0 -7
  448. package/dist/dev/locales/lv-LV-QCBBOFFU.js.map +0 -7
  449. package/dist/dev/locales/mr-IN-B2CM5GK5.js.map +0 -7
  450. package/dist/dev/locales/my-MM-756BNN36.js.map +0 -7
  451. package/dist/dev/locales/nb-NO-5BLHQI4J.js.map +0 -7
  452. package/dist/dev/locales/nl-NL-225BLGAH.js.map +0 -7
  453. package/dist/dev/locales/nn-NO-4J7MR6GH.js.map +0 -7
  454. package/dist/dev/locales/oc-FR-XCETH7KF.js.map +0 -7
  455. package/dist/dev/locales/pa-IN-32NBAN5L.js.map +0 -7
  456. package/dist/dev/locales/pl-PL-R6OJ54BT.js.map +0 -7
  457. package/dist/dev/locales/pt-BR-7AFGAKGR.js.map +0 -7
  458. package/dist/dev/locales/pt-PT-S6BMW6MY.js.map +0 -7
  459. package/dist/dev/locales/ro-RO-4JVGQHS2.js.map +0 -7
  460. package/dist/dev/locales/ru-RU-IESI752T.js.map +0 -7
  461. package/dist/dev/locales/si-LK-H75E7PKD.js.map +0 -7
  462. package/dist/dev/locales/sk-SK-EUK2NR2F.js.map +0 -7
  463. package/dist/dev/locales/sl-SI-AKW7R5PW.js.map +0 -7
  464. package/dist/dev/locales/sv-SE-QIBOOXLJ.js.map +0 -7
  465. package/dist/dev/locales/ta-IN-LBK2NQ5K.js.map +0 -7
  466. package/dist/dev/locales/th-TH-YJ2E6GVT.js.map +0 -7
  467. package/dist/dev/locales/tr-TR-Y5GO2XJW.js.map +0 -7
  468. package/dist/dev/locales/uk-UA-XYAFHHJW.js.map +0 -7
  469. package/dist/dev/locales/uz-UZ-LF3CBRYE.js.map +0 -7
  470. package/dist/dev/locales/vi-VN-WDPZEUOJ.js.map +0 -7
  471. package/dist/dev/locales/zh-CN-SZ37453H.js.map +0 -7
  472. package/dist/dev/locales/zh-HK-QDQ5QNBC.js.map +0 -7
  473. package/dist/dev/locales/zh-TW-CYU6GFBV.js.map +0 -7
  474. package/dist/prod/chunk-33L4EPXN.js +0 -34
  475. package/dist/prod/chunk-3PELD44J.js +0 -1
  476. package/dist/prod/chunk-DF5Y7EC7.js +0 -12
  477. package/dist/prod/data/image-57VVPCM3.js +0 -1
  478. package/dist/prod/locales/ar-SA-NXDWD63E.js +0 -8
  479. package/dist/prod/locales/az-AZ-MXSORGZV.js +0 -1
  480. package/dist/prod/locales/bg-BG-O6MV2KSF.js +0 -5
  481. package/dist/prod/locales/bn-BD-T2VJNT7N.js +0 -3
  482. package/dist/prod/locales/bn-IN-MMW2ORAC.js +0 -3
  483. package/dist/prod/locales/ca-ES-MKBCGNOG.js +0 -8
  484. package/dist/prod/locales/cs-CZ-V77HGUP7.js +0 -7
  485. package/dist/prod/locales/da-DK-I5RFNTM4.js +0 -2
  486. package/dist/prod/locales/de-CH-WLRDEVBV.js +0 -7
  487. package/dist/prod/locales/de-DE-DTI4WUSC.js +0 -7
  488. package/dist/prod/locales/el-GR-ZXDJ2OS4.js +0 -7
  489. package/dist/prod/locales/en-QI57FMQH.js +0 -1
  490. package/dist/prod/locales/es-ES-DYQHAD43.js +0 -7
  491. package/dist/prod/locales/eu-ES-QDSYU5Y3.js +0 -7
  492. package/dist/prod/locales/fa-IR-26LZG4PM.js +0 -9
  493. package/dist/prod/locales/fi-FI-6YS4KDE4.js +0 -6
  494. package/dist/prod/locales/fr-FR-BRLLPTZC.js +0 -12
  495. package/dist/prod/locales/gl-ES-OKUZTLYG.js +0 -6
  496. package/dist/prod/locales/he-IL-26MGYIU7.js +0 -8
  497. package/dist/prod/locales/hi-IN-Q4ZOGTP2.js +0 -3
  498. package/dist/prod/locales/hu-HU-P2OXPSN5.js +0 -3
  499. package/dist/prod/locales/id-ID-2EIKXYN6.js +0 -8
  500. package/dist/prod/locales/it-IT-4CFKVXI2.js +0 -12
  501. package/dist/prod/locales/ja-JP-MAND2Z4V.js +0 -7
  502. package/dist/prod/locales/kaa-HQRTCXTJ.js +0 -1
  503. package/dist/prod/locales/kab-KAB-JKIKKTGH.js +0 -4
  504. package/dist/prod/locales/kk-KZ-HXQ63ZFC.js +0 -1
  505. package/dist/prod/locales/km-KH-PKL3LSGX.js +0 -7
  506. package/dist/prod/locales/ko-KR-KXLREZX3.js +0 -5
  507. package/dist/prod/locales/ku-TR-MJ4IER3X.js +0 -6
  508. package/dist/prod/locales/lt-LT-H6WFQ6FJ.js +0 -3
  509. package/dist/prod/locales/lv-LV-GOCK6SJW.js +0 -4
  510. package/dist/prod/locales/mr-IN-IXVLDMEQ.js +0 -9
  511. package/dist/prod/locales/my-MM-YG6MYTTD.js +0 -1
  512. package/dist/prod/locales/nb-NO-XGWJISD2.js +0 -8
  513. package/dist/prod/locales/nl-NL-XVDVCPNC.js +0 -13
  514. package/dist/prod/locales/nn-NO-EMX5MJX5.js +0 -4
  515. package/dist/prod/locales/oc-FR-ROEINTVO.js +0 -4
  516. package/dist/prod/locales/pa-IN-ZYN6SUDY.js +0 -4
  517. package/dist/prod/locales/percentages-5DKR754L.js +0 -1
  518. package/dist/prod/locales/pl-PL-6VTG7PHC.js +0 -12
  519. package/dist/prod/locales/pt-BR-5YFKRR5G.js +0 -6
  520. package/dist/prod/locales/pt-PT-GEIXXZ67.js +0 -8
  521. package/dist/prod/locales/ro-RO-E2P6TFZI.js +0 -12
  522. package/dist/prod/locales/ru-RU-YBIIY43T.js +0 -10
  523. package/dist/prod/locales/si-LK-673C2CI2.js +0 -1
  524. package/dist/prod/locales/sk-SK-CKZHQ4AP.js +0 -7
  525. package/dist/prod/locales/sl-SI-557H2GWM.js +0 -6
  526. package/dist/prod/locales/sv-SE-XOPKKDWS.js +0 -8
  527. package/dist/prod/locales/ta-IN-XBH7DQI3.js +0 -6
  528. package/dist/prod/locales/th-TH-TOCWH3R4.js +0 -1
  529. package/dist/prod/locales/tr-TR-GXW6CYY5.js +0 -4
  530. package/dist/prod/locales/uk-UA-IJKTNUDG.js +0 -6
  531. package/dist/prod/locales/uz-UZ-TBZZEA4V.js +0 -1
  532. package/dist/prod/locales/vi-VN-MULSGNVB.js +0 -7
  533. package/dist/prod/locales/zh-CN-MVX3E32U.js +0 -11
  534. package/dist/prod/locales/zh-HK-JNU5RLIE.js +0 -1
  535. package/dist/prod/locales/zh-TW-LENVCA6T.js +0 -9
  536. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  537. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  538. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  539. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  540. package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
  541. package/dist/types/excalidraw/components/shapes.d.ts +0 -263
  542. package/dist/types/excalidraw/cursor.d.ts +0 -5
  543. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  544. package/dist/types/excalidraw/scene/scrollConstraints.d.ts +0 -46
  545. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  546. package/dist/types/utils/src/bbox.d.ts +0 -9
  547. package/dist/types/utils/src/index.d.ts +0 -4
  548. package/dist/types/utils/src/withinBounds.d.ts +0 -19
  549. /package/dist/dev/{chunk-NYLL7DNJ.js.map → chunk-XRXU5XOA.js.map} +0 -0
  550. /package/dist/dev/components/TTDDialog/{CodeMirrorEditor-PY5ZVWKQ.js.map → CodeMirrorEditor-GYLDZZSD.js.map} +0 -0
  551. /package/dist/dev/data/{image-WSL7K3G4.js.map → image-KVOR7M3R.js.map} +0 -0
  552. /package/dist/dev/locales/{en-A3UOWEYW.js.map → en-BC4BNQRX.js.map} +0 -0
  553. /package/dist/dev/locales/{percentages-ZRLRVMSI.js.map → percentages-X2QIQ6XJ.js.map} +0 -0
@@ -0,0 +1 @@
1
+ import"../chunk-SRAX5OIU.js";var r={signUp:"",signIn:"",paste:"\u8CBC\u4E0A",pasteAsPlaintext:"",pasteCharts:"\u8CBC\u4E0A\u5716\u8868",chartType_bar:"",chartType_line:"",chartType_radar:"",chartType_plaintext:"",selectAll:"\u5168\u9078",multiSelect:"\u591A\u91CD\u9078\u53D6",moveCanvas:"\u79FB\u52D5\u756B\u5E03",cut:"\u526A\u4E0B",copy:"\u8907\u88FD",copyAsPng:"\u4EE5 PNG \u683C\u5F0F\u8907\u88FD",copyAsSvg:"\u4EE5 SVG \u683C\u5F0F\u8907\u88FD",copyText:"",copySource:"",convertToCode:"",bringForward:"\u5F80\u4E0A\u4E00\u5C64\u79FB\u52D5",sendToBack:"\u79FB\u5230\u6700\u5E95\u5C64",bringToFront:"\u79FB\u5230\u6700\u4E0A\u5C64",sendBackward:"\u5F80\u4E0B\u4E00\u5C64\u79FB\u52D5",delete:"\u522A\u9664",copyStyles:"\u8907\u88FD\u6A23\u5F0F",pasteStyles:"\u5957\u7528\u6A23\u5F0F",stroke:"\u7B46\u8DE1\u984F\u8272",changeStroke:"",background:"\u586B\u5145\u984F\u8272",changeBackground:"",fill:"\u80CC\u666F\u6A23\u5F0F",strokeWidth:"\u7B46\u8DE1\u5BEC\u5EA6",strokeStyle:"\u7B46\u8DE1\u7DDA\u689D",strokeStyle_solid:"\u5BE6\u7DDA",strokeStyle_dashed:"\u865B\u7DDA\uFF08\u8F03\u5BC6\uFF09",strokeStyle_dotted:"\u865B\u7DDA\uFF08\u8F03\u758F\uFF09",sloppiness:"\u7B46\u8DE1\u98A8\u683C",pressure:"",pressure_constant:"",pressure_variable:"",opacity:"\u900F\u660E\u5EA6",textAlign:"\u6587\u5B57\u5C0D\u9F4A",edges:"\u908A\u89D2\u6A23\u5F0F",sharp:"\u92B3\u89D2",round:"\u5713\u89D2",arrowheads:"\u7BAD\u5634",arrowhead_none:"\u7121\u7BAD\u5634",arrowhead_arrow:"\u666E\u901A\u7BAD\u5634",arrowhead_bar:"\u5E73\u982D\u689D\u72C0",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"\u4E09\u89D2\u7BAD\u5634",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",arrowhead_crowfoot_many:"",arrowhead_crowfoot_one:"",arrowhead_crowfoot_one_or_many:"",arrowhead_cardinality_one:"",arrowhead_cardinality_many:"",arrowhead_cardinality_one_or_many:"",arrowhead_cardinality_exactly_one:"",arrowhead_cardinality_zero_or_one:"",arrowhead_cardinality_zero_or_many:"",more_options:"",cardinality:"",arrowtypes:"",arrowtype_sharp:"",arrowtype_round:"",arrowtype_elbowed:"",fontSize:"\u5B57\u578B\u5927\u5C0F",fontFamily:"\u5B57\u9AD4",addWatermark:"\u52A0\u5165\u300C\u4F7F\u7528 Excalidraw \u88FD\u5716\u300D\u6C34\u5370",handDrawn:"\u624B\u7E6A\u9AD4",normal:"\u96FB\u8166\u5B57\u9AD4",code:"\u7B49\u5BEC\u9AD4",small:"\u7D30",medium:"\u4E2D",large:"\u5927",veryLarge:"\u52C1\u5927",solid:"\u5BE6\u5FC3",hachure:"\u659C\u7DDA",zigzag:"",crossHatch:"\u4EA4\u53C9\u683C\u4ED4",thin:"\u5E7C",bold:"\u7C97",left:"\u9760\u5DE6\u5C0D\u9F4A",center:"\u7F6E\u4E2D\u5C0D\u9F4A",right:"\u9760\u53F3\u5C0D\u9F4A",extraBold:"\u52C1\u7C97",architect:"\u624B\u7E6A\u98A8\u683C",artist:"\u85DD\u8853\u5BB6\u98A8\u683C",cartoonist:"\u5361\u901A\u98A8\u683C",fileTitle:"\u6A94\u6848\u540D\u7A31",colorPicker:"",canvasColors:"",canvasBackground:"\u756B\u5E03\u80CC\u666F\u984F\u8272",drawingCanvas:"\u756B\u5E03",clearCanvas:"",layers:"\u5716\u5C64",actions:"\u52D5\u4F5C",language:"\u{1F30F} \u8A9E\u8A00",liveCollaboration:"",duplicateSelection:"\u88FD\u4F5C\u526F\u672C",untitled:"\u672A\u547D\u540D\u7684\u4F5C\u54C1",name:"",yourName:"\u4F60\u7684\u540D\u7A31",madeWithExcalidraw:"\u4F7F\u7528 Excalidraw \u88FD\u5716",group:"\u5EFA\u7ACB\u7269\u4EF6\u7FA4\u7D44",ungroup:"\u53D6\u6D88\u7269\u4EF6\u7FA4\u7D44",collaborators:"\u5DF2\u9023\u7DDA\u7684\u5354\u4F5C\u8005",you:"",toggleGrid:"",addToLibrary:"\u52A0\u5165\u4F5C\u54C1\u5EAB",removeFromLibrary:"\u5F9E\u4F5C\u54C1\u5EAB\u4E2D\u79FB\u9664",libraryLoadingMessage:"\u6B63\u5728\u8F09\u5165\u4F5C\u54C1\u5EAB\u2026",libraries:"\u700F\u89BD\u4F5C\u54C1\u5EAB",loadingScene:"\u8F09\u5165\u756B\u5E03\u4E2D\u2026",loadScene:"",align:"\u7269\u4EF6\u5C0D\u9F4A",alignTop:"\u6C34\u5E73\u7F6E\u9802",alignBottom:"\u6C34\u5E73\u7F6E\u5E95",alignLeft:"\u5782\u76F4\u9760\u5DE6\u5C0D\u9F4A",alignRight:"\u5782\u76F4\u9760\u53F3\u5C0D\u9F4A",centerVertically:"\u5782\u76F4\u7F6E\u4E2D",centerHorizontally:"\u6C34\u5E73\u7F6E\u4E2D",distributeHorizontally:"\u5DE6\u53F3\u7B49\u8DDD",distributeVertically:"\u4E0A\u4E0B\u7B49\u8DDD",flipHorizontal:"\u5DE6\u53F3\u53CD\u8F49",flipVertical:"\u4E0A\u4E0B\u53CD\u8F49",viewMode:"\u552F\u8B80\u6A21\u5F0F",share:"",showStroke:"",showBackground:"",showFonts:"",toggleTheme:"",theme:"",personalLib:"",excalidrawLib:"",decreaseFontSize:"",increaseFontSize:"",unbindText:"",bindText:"",createContainerFromText:"",link:{edit:"",editEmbed:"",create:"",label:"",labelEmbed:"",empty:"",hint:"",goToElement:""},lineEditor:{edit:"",editArrow:""},polygon:{breakPolygon:"",convertToPolygon:""},elementLock:{lock:"",unlock:"",lockAll:"",unlockAll:""},statusPublished:"",sidebarLock:"",selectAllElementsInFrame:"",removeAllElementsFromFrame:"",eyeDropper:"",textToDiagram:"",prompt:"",followUs:"",discordChat:"",zoomToFitViewport:"",zoomToFitSelection:"",zoomToFit:"",installPWA:"",autoResize:"",imageCropping:"",unCroppedDimension:"",copyElementLink:"",linkToElement:"",wrapSelectionInFrame:"",tab:"",shapeSwitch:"",preferences:"",preferences_toolLock:"",boxSelectionMode:"",boxSelectionContain:"",boxSelectionOverlap:"",arrowBinding:"",midpointSnapping:""},t={title:"",desc:"",notFound:""},a={noItems:"",hint_emptyLibrary:"",hint_emptyPrivateLibrary:"",search:{inputPlaceholder:"",heading:"",noResults:"",clearSearch:""}},i={title:"",noMatch:"",singleResult:"",multipleResults:"",placeholder:"",frames:"",texts:""},l={clearReset:"\u6E05\u7A7A\u756B\u5E03",exportJSON:"",exportImage:"",export:"",copyToClipboard:"",copyLink:"",save:"",saveAs:"",load:"",getShareableLink:"",close:"",selectLanguage:"",scrollBackToContent:"",zoomIn:"",zoomOut:"",resetZoom:"",menu:"",done:"",edit:"",undo:"",redo:"",resetLibrary:"",createNewRoom:"",fullScreen:"",darkMode:"",lightMode:"",systemMode:"",zenMode:"",objectsSnapMode:"",exitZenMode:"",cancel:"",saveLibNames:"",clear:"",remove:"",embed:"",publishLibrary:"",submit:"",confirm:"",embeddableInteractionButton:""},n={clearReset:"\u3010\u203C\uFE0F \u8B66\u544A \u203C\uFE0F \u7121\u6CD5\u5FA9\u539F\u7684\u52D5\u4F5C\u3011\u4F60\u78BA\u5B9A\u8981\u6E05\u7A7A\u5462\u584A\u756B\u5E03\u55CE\uFF1F",couldNotCreateShareableLink:"",couldNotCreateShareableLinkTooBig:"",couldNotLoadInvalidFile:"",importBackendFailed:"",cannotExportEmptyCanvas:"\u7121\u5622\u53EF\u4EE5\u532F\u51FA\u558E\uFF5E\u756B\u5413\u5622\u5148\uFF1F",couldNotCopyToClipboard:"",decryptFailed:"",uploadedSecurly:"",loadSceneOverridePrompt:"",collabStopOverridePrompt:"",errorAddingToLibrary:"",errorRemovingFromLibrary:"",confirmAddLibrary:"",imageDoesNotContainScene:"",cannotRestoreFromImage:"",invalidSceneUrl:"",resetLibrary:"",removeItemsFromsLibrary:"",invalidEncryptionKey:"",collabOfflineWarning:"",localStorageQuotaExceeded:""},s={unsupportedFileType:"",imageInsertError:"",fileTooBig:"",svgImageInsertError:"",failedToFetchImage:"",cannotResolveCollabServer:"",importLibraryError:"",saveLibraryError:"",collabSaveFailed:"",collabSaveFailed_sizeExceeded:"",imageToolNotSupported:"",brave_measure_text_error:{line1:"",line2:"",line3:"",line4:""},libraryElementTypeError:{embeddable:"",iframe:"",image:""},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},d={selection:"",lasso:"",image:"",rectangle:"",diamond:"",ellipse:"",arrow:"",line:"",freedraw:"",text:"",library:"",lock:"",penMode:"",link:"",eraser:"",frame:"",magicframe:"",embeddable:"",laser:"",autoshape:"",bucketfill:"",hand:"",extraTools:"",mermaidToExcalidraw:"",convertElementType:""},c={noRegion:"",tooComplex:""},p={rectangle:"",diamond:"",ellipse:"",arrow:"",line:"",freedraw:"",text:"",image:"",group:"",frame:"",magicframe:"",embeddable:"",selection:"",iframe:""},m={canvasActions:"\u756B\u5E03\u52D5\u4F5C",selectedShapeActions:"",shapes:""},g={dismissSearch:"",canvasPanning:"",linearElement:"",arrowTool:"",arrowBindModifiers:"",freeDraw:"",text:"",embeddable:"",autoshape:"",text_selected:"",text_editing:"",linearElementMulti:"",lockAngle:"",resize:"",resizeImage:"",rotate:"",toggleArrowhead:"",lineEditor_info:"",lineEditor_line_info:"",lineEditor_pointSelected:"",lineEditor_nothingSelected:"",publishLibrary:"",bindTextToElement:"",createFlowchart:"",deepBoxSelect:"",eraserRevert:"",firefox_clipboard_write:"",disableSnapping:"",enterCropEditor:"",leaveCropEditor:""},b={cannotShowPreview:"\u7121\u6CD5\u986F\u793A\u9810\u89BD",canvasTooBig:"\u584A\u756B\u5E03\u592A\u5927\u5566\uFF0C\u7E2E\u7D30\u5572\u5148\u5566\uFF1F",canvasTooBigTip:""},h={headingMain:"",clearCanvasMessage:"\u5982\u679C\u91CD\u65B0\u6574\u7406\u9801\u9762\u90FD\u4FC2\u7747\u5514\u5230\uFF0C\u4F60\u53EF\u4EE5<button>\u6E05\u7A7A\u756B\u5E03</button>",clearCanvasCaveat:"\uFF08\u6CE8\u610F\uFF1A\u5462\u500B\u52D5\u4F5C\u6703\u76F4\u63A5\u4E1F\u68C4\u4F60\u5605\u4F5C\u54C1\uFF0C\u4E26\u4E14\u7121\u6CD5\u5FA9\u539F\uFF09",trackedToSentry:"",openIssueMessage:"",sceneContent:""},u={or:""},y={desc_intro:"",desc_privacy:"",button_startSession:"",button_stopSession:"",desc_inProgressIntro:"",desc_shareLink:"",desc_exitSession:"",shareTitle:""},_={title:""},w={title:"",defaultMessage:""},v={disk_title:"",disk_details:"",disk_button:"",link_title:"",link_details:"",link_button:"",excalidrawplus_description:"",excalidrawplus_button:"",excalidrawplus_exportError:""},S={blog:"",click:"",deepSelect:"",deepBoxSelect:"",createFlowchart:"",navigateFlowchart:"",curvedArrow:"",curvedLine:"",documentation:"",doubleClick:"",drag:"",editor:"",editLineArrowPoints:"",editText:"",github:"",howto:"",or:"",preventBinding:"",tools:"",shortcuts:"",textFinish:"",textNewLine:"",title:"",view:"",zoomToFit:"",zoomToSelection:"",toggleElementLock:"",movePageUpDown:"",movePageLeftRight:"",cropStart:"",cropFinish:""},k={title:""},T={title:"",itemName:"",authorName:"",githubUsername:"",twitterUsername:"",libraryName:"",libraryDesc:"",website:"",placeholder:{authorName:"",libraryName:"",libraryDesc:"",githubHandle:"",twitterHandle:"",website:""},errors:{required:"",website:""},noteDescription:"",noteGuidelines:"",noteLicense:"",noteItems:"",atleastOneLibItem:"",republishWarning:""},x={title:"",content:""},L={resetLibrary:"",removeItemsFromLib:""},f={header:"",label:{withBackground:"",onlySelected:"",darkMode:"",embedScene:"",scale:"",padding:""},tooltip:{embedScene:""},title:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""},button:{exportToPng:"",exportToSvg:"",copyPngToClipboard:""}},C={tooltip:"",link:""},F={angle:"",shapes:"",height:"",scene:"",selected:"",storage:"",fullTitle:"",title:"",generalStats:"",elementProperties:"",total:"",version:"",versionCopy:"",versionNotAvailable:"",width:""},E={addedToLibrary:"",copyStyles:"",copyToClipboard:"",copyToClipboardAsPng:"",copyToClipboardAsSvg:"",fileSaved:"",fileSavedToFilename:"",canvas:"\u756B\u5E03",selection:"",pasteAsSingleElement:"",unableToEmbed:"",unrecognizedLinkFormat:"",elementLinkCopied:""},P={transparent:"",black:"",white:"",red:"",pink:"",grape:"",violet:"",gray:"",blue:"",cyan:"",teal:"",green:"",yellow:"",orange:"",bronze:""},A={app:{center_heading:"",center_heading_line2:"",center_heading_line3:"",center_heading_plus:"",menuHint:""},defaults:{menuHint:"",center_heading:"",toolbarHint:"",helpHint:""}},z={color:"",mostUsedCustomColors:"",colors:"",shades:"",hexCode:"",noShades:"",invalidColor:"",invalidHexLength:"",topPicksTip:"",resetTopPicks:""},M={action:{exportToImage:{title:"",button:"",description:""},saveToDisk:{title:"",button:"",description:""},excalidrawPlus:{title:"",button:"",description:""}},modal:{loadFromFile:{title:"",button:"",description:""},shareableLink:{title:"",button:"",description:""}}},B={title:"",button:"",description:"",syntax:"",preview:"",label:"",inputPlaceholder:"",autoFixAvailable:""},D={error:""},I={inputPlaceholder:"",inputPlaceholderWithMessages:"",generating:"",rateLimitRemaining:"",role:{user:"",assistant:"",system:""},aiBeta:"",label:"",menu:"",newChat:"",deleteChat:"",deleteMessage:"",viewAsMermaid:"",placeholder:{title:"",description:"",hint:""},preview:"",insert:"",retry:"",errors:{promptTooShort:"",promptTooLong:"",generationFailed:"",invalidDiagram:"",fixInMermaid:"",aiRepair:"",requestAborted:"",requestFailed:"",mermaidParseError:""},rateLimit:{messageLimit:"",generalRateLimit:"",messageLimitInputPlaceholder:""},upsellBtnLabel:""},N={placeholder:""},R={badge:{old:""},sceneFonts:"",availableFonts:"",empty:""},H={empty:"",hint:{text:"",followStatus:"",inCall:"",micMuted:"",isSpeaking:""}},O={title:"",shortcuts:{select:"",confirm:"",close:""},recents:"",search:{placeholder:"",noMatch:""},itemNotAvailable:"",shortcutHint:""},U={ctrl:"",option:"",cmd:"",alt:"",escape:"",enter:"",shift:"",spacebar:"",delete:"",mmb:""},W={labels:r,elementLink:t,library:a,search:i,buttons:l,alerts:n,errors:s,toolBar:d,bucketfill:c,element:p,headings:m,hints:g,canvasError:b,errorSplash:h,shareDialog:u,roomDialog:y,errorDialog:_,progressDialog:w,exportDialog:v,helpDialog:S,clearCanvasDialog:k,publishDialog:T,publishSuccessDialog:x,confirmDialog:L,imageExportDialog:f,encrypted:C,stats:F,toast:E,colors:P,welcomeScreen:A,colorPicker:z,overwriteConfirm:M,mermaid:B,ttd:D,chat:I,quickSearch:N,fontList:R,userList:H,commandPalette:O,keys:U};export{n as alerts,c as bucketfill,l as buttons,b as canvasError,I as chat,k as clearCanvasDialog,z as colorPicker,P as colors,O as commandPalette,L as confirmDialog,W as default,p as element,t as elementLink,C as encrypted,_ as errorDialog,h as errorSplash,s as errors,v as exportDialog,R as fontList,m as headings,S as helpDialog,g as hints,f as imageExportDialog,U as keys,r as labels,a as library,B as mermaid,M as overwriteConfirm,w as progressDialog,T as publishDialog,x as publishSuccessDialog,N as quickSearch,y as roomDialog,i as search,u as shareDialog,F as stats,E as toast,d as toolBar,D as ttd,H as userList,A as welcomeScreen};
@@ -0,0 +1,13 @@
1
+ import"../chunk-SRAX5OIU.js";var r={signUp:"",signIn:"",paste:"\u8CBC\u4E0A",pasteAsPlaintext:"\u4EE5\u7D14\u6587\u5B57\u8CBC\u4E0A",pasteCharts:"\u8CBC\u4E0A\u5716\u8868",chartType_bar:"\u9577\u689D\u5716",chartType_line:"\u6298\u7DDA\u5716",chartType_radar:"\u96F7\u9054\u5716",chartType_plaintext:"\u7D14\u6587\u5B57",selectAll:"\u5168\u9078",multiSelect:"\u5C07\u7269\u4EF6\u52A0\u5165\u9078\u53D6\u7BC4\u570D",moveCanvas:"\u79FB\u52D5\u756B\u5E03",cut:"\u526A\u4E0B",copy:"\u8907\u88FD",copyAsPng:"\u4EE5 PNG \u683C\u5F0F\u5132\u5B58\u5230\u526A\u8CBC\u7C3F",copyAsSvg:"\u4EE5 SVG \u683C\u5F0F\u8907\u88FD\u5230\u526A\u8CBC\u7C3F",copyText:"\u4EE5\u6587\u5B57\u683C\u5F0F\u8907\u88FD\u81F3\u526A\u8CBC\u7C3F",copySource:"\u8907\u88FD\u4F86\u6E90\u81F3\u526A\u8CBC\u7C3F",convertToCode:"\u8F49\u63DB\u70BA\u7A0B\u5F0F\u78BC",bringForward:"\u4E0A\u79FB\u4E00\u5C64",sendToBack:"\u79FB\u5230\u6700\u5E95\u5C64",bringToFront:"\u7F6E\u65BC\u6700\u9802\u5C64",sendBackward:"\u5F80\u5F8C\u79FB\u4E00\u5C64",delete:"\u522A\u9664",copyStyles:"\u8907\u88FD\u6A23\u5F0F",pasteStyles:"\u8CBC\u4E0A\u6A23\u5F0F",stroke:"\u7B46\u756B",changeStroke:"\u8B8A\u66F4\u7B46\u756B\u984F\u8272",background:"\u80CC\u666F",changeBackground:"\u8B8A\u66F4\u80CC\u666F\u984F\u8272",fill:"\u586B\u6EFF",strokeWidth:"\u7B46\u8DE1\u5BEC\u5EA6",strokeStyle:"\u7B46\u756B\u6A23\u5F0F",strokeStyle_solid:"\u5BE6\u7DDA",strokeStyle_dashed:"\u865B\u7DDA",strokeStyle_dotted:"\u9EDE\u7DDA",sloppiness:"\u7DDA\u689D\u98A8\u683C",pressure:"\u58D3\u529B",pressure_constant:"\u5E38\u6578",pressure_variable:"\u8B8A\u6578",opacity:"\u900F\u660E\u5EA6",textAlign:"\u6587\u5B57\u5C0D\u9F4A",edges:"\u908A\u7DE3",sharp:"\u5C16\u92B3",round:"\u5E73\u6ED1",arrowheads:"\u7BAD\u982D",arrowhead_none:"\u7121",arrowhead_arrow:"\u7BAD\u982D",arrowhead_bar:"\u689D\u72C0\u7BAD\u982D",arrowhead_circle:"\u5713\u5F62",arrowhead_circle_outline:"\u5713\u5F62\uFF08\u5916\u6846\uFF09",arrowhead_triangle:"\u4E09\u89D2\u5F62",arrowhead_triangle_outline:"\u4E09\u89D2\u5F62\uFF08\u5916\u6846\uFF09",arrowhead_diamond:"\u83F1\u5F62",arrowhead_diamond_outline:"\u83F1\u5F62\uFF08\u5916\u6846\uFF09",arrowhead_crowfoot_many:"\u96DE\u722A\u7B26\u865F\uFF08\u591A\uFF09",arrowhead_crowfoot_one:"\u96DE\u722A\u7B26\u865F\uFF08\u4E00\uFF09",arrowhead_crowfoot_one_or_many:"\u96DE\u722A\u7B26\u865F\uFF08\u4E00\u6216\u591A\uFF09",arrowhead_cardinality_one:"\u57FA\u6578\uFF08\u4E00\uFF09",arrowhead_cardinality_many:"\u57FA\u6578\uFF08\u591A\u500B\uFF09",arrowhead_cardinality_one_or_many:"\u57FA\u6578\uFF08\u4E00\u500B\u6216\u591A\u500B\uFF09",arrowhead_cardinality_exactly_one:"\u57FA\u6578\uFF08\u6070\u597D\u70BA 1\uFF09",arrowhead_cardinality_zero_or_one:"\u57FA\u6578\uFF08\u96F6\u6216\u4E00\uFF09",arrowhead_cardinality_zero_or_many:"\u57FA\u6578\uFF08\u96F6\u6216\u591A\uFF09",more_options:"\u66F4\u591A\u9078\u9805",cardinality:"\u57FA\u6578",arrowtypes:"\u7BAD\u982D\u985E\u578B",arrowtype_sharp:"\u5C16\u92B3\u7BAD\u982D",arrowtype_round:"\u5F4E\u89D2\u7BAD\u982D",arrowtype_elbowed:"\u76F4\u89D2\u7BAD\u982D",fontSize:"\u5B57\u578B\u5927\u5C0F",fontFamily:"\u5B57\u578B\u7CFB\u5217",addWatermark:"\u52A0\u4E0A\u300C\u4EE5 Excalidraw \u88FD\u4F5C\u300D\u6D6E\u6C34\u5370",handDrawn:"\u624B\u5BEB",normal:"\u4E00\u822C",code:"\u4EE3\u78BC",small:"\u5C0F",medium:"\u4E2D",large:"\u5927",veryLarge:"\u7279\u5927",solid:"\u5BE6\u5FC3",hachure:"\u659C\u7DDA\u7B46\u89F8",zigzag:"\uFF3A\u5B57\u5F62",crossHatch:"\u4EA4\u53C9\u7B46\u89F8",thin:"\u7D30",bold:"\u7C97",left:"\u5DE6\u5074",center:"\u7F6E\u4E2D",right:"\u53F3\u5074",extraBold:"\u6975\u7C97",architect:"\u7CBE\u78BA",artist:"\u85DD\u8853",cartoonist:"\u5361\u901A",fileTitle:"\u6A94\u6848\u540D\u7A31",colorPicker:"\u8272\u5F69\u9078\u64C7\u5DE5\u5177",canvasColors:"\u4F7F\u7528\u65BC\u756B\u5E03",canvasBackground:"Canvas \u80CC\u666F",drawingCanvas:"\u7E6A\u5716 canvas",clearCanvas:"\u6E05\u9664\u756B\u5E03",layers:"\u5716\u5C64",actions:"\u52D5\u4F5C",language:"\u8A9E\u8A00",liveCollaboration:"\u5373\u6642\u5354\u4F5C...",duplicateSelection:"\u8907\u88FD",untitled:"\u7121\u6A19\u984C",name:"\u540D\u7A31",yourName:"\u4F60\u7684\u540D\u7A31",madeWithExcalidraw:"\u4EE5 Excalidraw \u88FD\u4F5C",group:"\u5EFA\u7ACB\u7FA4\u7D44",ungroup:"\u53D6\u6D88\u7FA4\u7D44",collaborators:"\u5354\u4F5C\u8005",you:"\u4F60",toggleGrid:"\u5207\u63DB\u7DB2\u683C",addToLibrary:"\u52A0\u5165\u8CC7\u6599\u5EAB",removeFromLibrary:"\u5F9E\u8CC7\u6599\u5EAB\u4E2D\u79FB\u9664",libraryLoadingMessage:"\u8CC7\u6599\u5EAB\u8B80\u53D6\u4E2D\u2026",libraries:"\u700F\u89BD\u8CC7\u6599\u5EAB",loadingScene:"\u5834\u666F\u8B80\u53D6\u4E2D\u2026",loadScene:"\u5F9E\u6A94\u6848\u8F09\u5165\u5834\u666F",align:"\u5C0D\u9F4A",alignTop:"\u5C0D\u9F4A\u9802\u90E8",alignBottom:"\u5C0D\u9F4A\u5E95\u90E8",alignLeft:"\u5C0D\u9F4A\u5DE6\u5074",alignRight:"\u5C0D\u9F4A\u53F3\u5074",centerVertically:"\u5782\u76F4\u7F6E\u4E2D",centerHorizontally:"\u6C34\u5E73\u7F6E\u4E2D",distributeHorizontally:"\u6C34\u5E73\u5206\u5E03",distributeVertically:"\u5782\u76F4\u5206\u5E03",flipHorizontal:"\u6C34\u5E73\u7FFB\u8F49",flipVertical:"\u5782\u76F4\u7FFB\u8F49",viewMode:"\u6AA2\u8996\u6A21\u5F0F",share:"\u5206\u4EAB",showStroke:"\u986F\u793A\u7DDA\u689D\u6AA2\u8272\u5668",showBackground:"\u986F\u793A\u80CC\u666F\u6AA2\u8272\u5668",showFonts:"\u986F\u793A\u5B57\u578B\u9078\u55AE",toggleTheme:"\u5207\u63DB\u6DFA\u8272/\u6DF1\u8272\u4E3B\u984C",theme:"\u4E3B\u984C",personalLib:"\u500B\u4EBA\u8CC7\u6599\u5EAB",excalidrawLib:"Excalidraw \u8CC7\u6599\u5EAB",decreaseFontSize:"\u7E2E\u5C0F\u6587\u5B57",increaseFontSize:"\u653E\u5927\u6587\u5B57",unbindText:"\u53D6\u6D88\u7D81\u5B9A\u6587\u5B57",bindText:"\u7D50\u5408\u6587\u5B57\u81F3\u5BB9\u5668",createContainerFromText:"\u5C07\u6587\u5B57\u5305\u65BC\u5BB9\u5668\u4E2D",link:{edit:"\u7DE8\u8F2F\u9023\u7D50",editEmbed:"\u7DE8\u8F2F\u53EF\u5D4C\u5165\u9023\u7D50",create:"\u65B0\u589E\u9023\u7D50",label:"\u9023\u7D50",labelEmbed:"\u9023\u7D50\u8207\u5D4C\u5165",empty:"\u672A\u8A2D\u5B9A\u9023\u7D50",hint:"\u5728\u6B64\u8F38\u5165\u6216\u8CBC\u4E0A\u9023\u7D50",goToElement:"\u79FB\u81F3\u76EE\u6A19\u5143\u7D20"},lineEditor:{edit:"\u7DE8\u8F2F\u7DDA\u689D",editArrow:"\u7DE8\u8F2F\u7BAD\u982D"},polygon:{breakPolygon:"\u89E3\u9664\u591A\u908A\u5F62",convertToPolygon:"\u8F49\u63DB\u70BA\u591A\u908A\u5F62"},elementLock:{lock:"\u9396\u5B9A",unlock:"\u89E3\u9396",lockAll:"\u5168\u90E8\u9396\u5B9A",unlockAll:"\u5168\u90E8\u89E3\u9396"},statusPublished:"\u5DF2\u767C\u5E03",sidebarLock:"\u5074\u6B04\u7DAD\u6301\u958B\u555F",selectAllElementsInFrame:"\u9078\u53D6\u6846\u67B6\u5167\u7684\u6240\u6709\u5143\u7D20",removeAllElementsFromFrame:"\u5F9E\u6846\u67B6\u5167\u79FB\u9664\u6240\u6709\u5143\u7D20",eyeDropper:"\u5F9E\u756B\u5E03\u4E2D\u9078\u53D6\u984F\u8272",textToDiagram:"\u6587\u5B57\u8F49\u5716\u8868",prompt:"\u63D0\u793A\u8A5E",followUs:"\u8FFD\u8E64\u6211\u5011",discordChat:"Discord \u804A\u5929\u5BA4",zoomToFitViewport:"\u7E2E\u653E\u81F3\u7B26\u5408 viewport",zoomToFitSelection:"\u7E2E\u653E\u81F3\u7B26\u5408\u9078\u53D6\u5340",zoomToFit:"\u7E2E\u653E\u81F3\u986F\u793A\u6240\u6709\u5143\u7D20",installPWA:"\u65BC\u672C\u6A5F\u5B89\u88DD Excalidraw (PWA)",autoResize:"\u555F\u7528\u6587\u5B57\u81EA\u52D5\u7E2E\u653E",imageCropping:"\u5716\u7247\u526A\u88C1",unCroppedDimension:"\u672A\u526A\u88C1\u5C3A\u5BF8",copyElementLink:"\u8907\u88FD\u6B64\u7269\u4EF6\u7684\u9023\u7D50",linkToElement:"\u9023\u7D50\u81F3\u7269\u4EF6",wrapSelectionInFrame:"\u5C07\u9078\u53D6\u5167\u5BB9\u653E\u5165\u6846\u67B6",tab:"Tab",shapeSwitch:"\u5207\u63DB\u5F62\u72C0",preferences:"\u504F\u597D\u8A2D\u5B9A",preferences_toolLock:"\u9396\u5B9A\u5DE5\u5177",boxSelectionMode:"\u9078\u53D6\u65B9\u5F0F",boxSelectionContain:"\u5B8C\u5168\u5305\u8986",boxSelectionOverlap:"\u90E8\u5206\u91CD\u758A",arrowBinding:"\u7BAD\u982D\u9023\u7D50",midpointSnapping:"\u8CBC\u9F4A\u4E2D\u9EDE"},o={title:"\u9023\u7D50\u81F3\u7269\u4EF6",desc:"\u9EDE\u64CA\u756B\u5E03\u4E0A\u7684\u5F62\u72C0\u6216\u8CBC\u4E0A\u9023\u7D50",notFound:"\u7121\u6CD5\u5728\u756B\u5E03\u4E0A\u627E\u5230\u9023\u7D50\u7684\u7269\u4EF6"},a={noItems:"\u5C1A\u672A\u52A0\u5165\u4EFB\u4F55\u7269\u4EF6...",hint_emptyLibrary:"\u9078\u53D6\u756B\u5E03\u4E0A\u7684\u7269\u4EF6\u4EE5\u52A0\u5165\uFF0C\u6216\u5F9E\u4E0B\u65B9\u7684\u516C\u958B\u5132\u5B58\u5EAB\u4E2D\u5B89\u88DD\u8CC7\u6599\u5EAB\u3002",hint_emptyPrivateLibrary:"\u9078\u64C7\u756B\u5E03\u4E0A\u7684\u7269\u4EF6\u4EE5\u5728\u6B64\u52A0\u5165\u3002",search:{inputPlaceholder:"\u641C\u5C0B\u8CC7\u6599\u5EAB",heading:"\u76F8\u7B26\u7684\u8CC7\u6599\u5EAB",noResults:"\u627E\u4E0D\u5230\u76F8\u7B26\u7684\u9805\u76EE...",clearSearch:"\u6E05\u9664\u641C\u5C0B"}},i={title:"\u5728\u756B\u5E03\u4E0A\u5C0B\u627E",noMatch:"\u672A\u627E\u5230\u7B26\u5408\u9805\u76EE\u2026",singleResult:"\u7D50\u679C",multipleResults:"\u7D50\u679C",placeholder:"\u5728\u756B\u5E03\u4E0A\u5C0B\u627E\u6587\u5B57\u2026",frames:"\u6846\u67B6",texts:"\u6587\u5B57"},l={clearReset:"\u91CD\u8A2D\u756B\u5E03",exportJSON:"\u532F\u51FA\u81F3\u6A94\u6848",exportImage:"\u532F\u51FA\u5716\u7247",export:"\u5132\u5B58\u81F3...",copyToClipboard:"\u8907\u88FD\u81F3\u526A\u8CBC\u7C3F",copyLink:"\u8907\u88FD\u9023\u7D50",save:"\u5132\u5B58\u76EE\u524D\u6A94\u6848",saveAs:"\u5132\u5B58\u70BA",load:"\u958B\u555F",getShareableLink:"\u53D6\u5F97\u5171\u4EAB\u9023\u7D50",close:"\u95DC\u9589",selectLanguage:"\u9078\u64C7\u8A9E\u8A00",scrollBackToContent:"\u6372\u52D5\u56DE\u5230\u5167\u5BB9",zoomIn:"\u653E\u5927",zoomOut:"\u7E2E\u5C0F",resetZoom:"\u91CD\u8A2D\u7E2E\u653E",menu:"\u9078\u55AE",done:"\u5B8C\u6210",edit:"\u7DE8\u8F2F",undo:"\u5FA9\u539F",redo:"\u91CD\u505A",resetLibrary:"\u91CD\u8A2D\u8CC7\u6599\u5EAB",createNewRoom:"\u5EFA\u7ACB\u65B0\u5354\u4F5C\u6703\u8B70\u5BA4",fullScreen:"\u5168\u87A2\u5E55",darkMode:"\u6DF1\u8272\u6A21\u5F0F",lightMode:"\u6DFA\u8272\u6A21\u5F0F",systemMode:"\u7CFB\u7D71\u6A21\u5F0F",zenMode:"\u5C08\u6CE8\u6A21\u5F0F",objectsSnapMode:"\u5438\u9644\u81F3\u7269\u4EF6",exitZenMode:"\u96E2\u958B\u5C08\u6CE8\u6A21\u5F0F",cancel:"\u53D6\u6D88",saveLibNames:"\u5132\u5B58\u540D\u7A31\u4E26\u96E2\u958B",clear:"\u6E05\u9664",remove:"\u522A\u9664",embed:"\u5207\u63DB\u5D4C\u5165",publishLibrary:"\u91CD\u65B0\u547D\u540D\u6216\u767C\u5E03",submit:"\u9001\u51FA",confirm:"\u78BA\u8A8D",embeddableInteractionButton:"\u9EDE\u64CA\u4EE5\u4E92\u52D5"},n={clearReset:"\u9019\u5C07\u6703\u6E05\u9664\u6574\u500B canvas\u3002\u4F60\u78BA\u5B9A\u55CE\uFF1F",couldNotCreateShareableLink:"\u7121\u6CD5\u5EFA\u7ACB\u5171\u4EAB\u9023\u7D50\u3002",couldNotCreateShareableLinkTooBig:"\u7121\u6CD5\u5EFA\u7ACB\u5171\u4EAB\u9023\u7D50\uFF1A\u5834\u666F\u592A\u5927",couldNotLoadInvalidFile:"\u7121\u6CD5\u8B80\u53D6\u5931\u6548\u7684\u6A94\u6848\u3002",importBackendFailed:"\u5F8C\u7AEF\u8B80\u53D6\u5931\u6557\u3002",cannotExportEmptyCanvas:"\u7121\u6CD5\u8F38\u51FA\u7A7A\u767D\u7684 canvas\u3002",couldNotCopyToClipboard:"\u7121\u6CD5\u8907\u88FD\u5230\u526A\u8CBC\u7C3F",decryptFailed:"\u7121\u6CD5\u89E3\u5BC6\u8CC7\u6599\u3002",uploadedSecurly:"\u4E0A\u50B3\u5DF2\u901A\u904E end-to-end \u52A0\u5BC6\uFF0CExcalidraw \u4F3A\u670D\u5668\u548C\u7B2C\u4E09\u65B9\u7121\u6CD5\u7686\u8B80\u53D6\u5176\u5167\u5BB9\u3002",loadSceneOverridePrompt:"\u8B80\u53D6\u5916\u90E8\u5716\u6A23\u5C07\u53D6\u4EE3\u76EE\u524D\u7684\u5167\u5BB9\u3002\u662F\u5426\u8981\u7E7C\u7E8C\uFF1F",collabStopOverridePrompt:`\u505C\u6B62\u9023\u7DDA\u5C07\u8986\u84CB\u60A8\u5148\u524D\u65BC\u672C\u6A5F\u5132\u5B58\u7684\u7E6A\u5716\u9032\u5EA6\uFF0C\u662F\u5426\u78BA\u8A8D\uFF1F
2
+
3
+ \uFF08\u5982\u8981\u4FDD\u7559\u539F\u6709\u7684\u672C\u6A5F\u7E6A\u5716\u9032\u5EA6\uFF0C\u76F4\u63A5\u95DC\u9589\u700F\u89BD\u5668\u5206\u9801\u5373\u53EF\u3002\uFF09`,errorAddingToLibrary:"\u7121\u6CD5\u65BC\u6B64\u8CC7\u6599\u5EAB\u52A0\u5165\u9805\u76EE",errorRemovingFromLibrary:"\u7121\u6CD5\u7531\u6B64\u8CC7\u6599\u5EAB\u79FB\u9664\u9805\u76EE",confirmAddLibrary:"\u9019\u5C07\u6703\u5C07 {{numShapes}} \u500B\u5716\u5F62\u52A0\u5165\u4F60\u7684\u8CC7\u6599\u5EAB\uFF0C\u4F60\u78BA\u5B9A\u55CE\uFF1F",imageDoesNotContainScene:"\u6B64\u5716\u6A94\u4E2D\u672A\u5305\u542B\u5834\u666F\u8CC7\u6599\u3002\u8F38\u51FA\u6A94\u6848\u6642\u662F\u5426\u6709\u5305\u542B\u5834\u666F\u8CC7\u6599\uFF1F",cannotRestoreFromImage:"\u7121\u6CD5\u7531\u6B64\u6A94\u6848\u56DE\u5FA9\u5834\u666F\u3002",invalidSceneUrl:"\u7121\u6CD5\u7531\u63D0\u4F9B\u7684 URL \u532F\u5165\u5834\u666F\u3002\u53EF\u80FD\u662F\u767C\u751F\u7570\u5E38\uFF0C\u6216\u672A\u5305\u542B\u6709\u6548\u7684 Excalidraw JSON \u8CC7\u6599\u3002",resetLibrary:"\u9019\u6703\u6E05\u9664\u60A8\u7684\u8CC7\u6599\u5EAB\uFF0C\u662F\u5426\u78BA\u5B9A\uFF1F",removeItemsFromsLibrary:"\u5F9E\u8CC7\u6599\u5EAB\u522A\u9664 {{count}} \u9805\uFF1F",invalidEncryptionKey:"\u52A0\u5BC6\u9375\u5FC5\u9808\u70BA22\u5B57\u5143\u3002\u5373\u6642\u5354\u4F5C\u5DF2\u505C\u7528\u3002",collabOfflineWarning:`\u6C92\u6709\u53EF\u7528\u7684\u7DB2\u8DEF\u9023\u7DDA\u3002
4
+ \u8B8A\u66F4\u7121\u6CD5\u5132\u5B58\uFF01`,localStorageQuotaExceeded:"\u700F\u89BD\u5668\u5132\u5B58\u7A7A\u9593\u5DF2\u6EFF\u3002\u8B8A\u66F4\u5C07\u4E0D\u6703\u88AB\u5132\u5B58\u3002"},s={unsupportedFileType:"\u4E0D\u652F\u63F4\u7684\u6A94\u6848\u985E\u578B\u3002",imageInsertError:"\u7121\u6CD5\u63D2\u5165\u5716\u7247\u3002\u8ACB\u7A0D\u5F8C\u518D\u8A66\u2026",fileTooBig:"\u6A94\u6848\u904E\u5927\u3002\u53EF\u63A5\u53D7\u7684\u6700\u5927\u5C3A\u5BF8\u70BA {{maxSize}} \u3002",svgImageInsertError:"\u7121\u6CD5\u63D2\u5165 SVG \u5716\u7247\u3002\u6B64 SVG \u6A94\u6848\u6709\u554F\u984C\u3002",failedToFetchImage:"\u7121\u6CD5\u7372\u53D6\u5716\u7247\u3002",cannotResolveCollabServer:"\u7121\u6CD5\u9023\u7D50\u81F3 collab \u4F3A\u670D\u5668\u3002\u8ACB\u91CD\u65B0\u6574\u7406\u5F8C\u518D\u8A66\u4E00\u6B21\u3002",importLibraryError:"\u7121\u6CD5\u8F09\u5165\u8CC7\u6599\u5EAB",saveLibraryError:"\u7121\u6CD5\u5C07\u8CC7\u6599\u5EAB\u5B58\u81F3\u5132\u5B58\u5340\u3002\u8ACB\u5C07\u8CC7\u6599\u5EAB\u5B58\u81F3\u672C\u6A5F\u6A94\u6848\u4EE5\u78BA\u4FDD\u4E0D\u6703\u5931\u53BB\u5DF2\u8B8A\u66F4\u7684\u90E8\u5206\u3002",collabSaveFailed:"\u7121\u6CD5\u5132\u5B58\u81F3\u5F8C\u7AEF\u8CC7\u6599\u5EAB\u3002\u82E5\u6B64\u554F\u984C\u6301\u7E8C\u767C\u751F\uFF0C\u8ACB\u5C07\u6A94\u6848\u5132\u5B58\u65BC\u672C\u6A5F\u4EE5\u78BA\u4FDD\u8CC7\u6599\u4E0D\u6703\u907A\u5931\u3002",collabSaveFailed_sizeExceeded:"\u7121\u6CD5\u5132\u5B58\u81F3\u5F8C\u7AEF\u8CC7\u6599\u5EAB\uFF0C\u53EF\u80FD\u7684\u539F\u56E0\u70BA\u756B\u5E03\u5C3A\u5BF8\u904E\u5927\u3002\u8ACB\u5C07\u6A94\u6848\u5132\u5B58\u65BC\u672C\u6A5F\u4EE5\u78BA\u4FDD\u8CC7\u6599\u4E0D\u6703\u907A\u5931\u3002",imageToolNotSupported:"\u5716\u7247\u5DF2\u505C\u7528",brave_measure_text_error:{line1:"\u770B\u8D77\u4F86\u60A8\u958B\u555F\u4E86 Brave \u700F\u89BD\u5668\u7684 <bold>Aggressively Block Fingerprinting</bold> \u8A2D\u5B9A\u3002",line2:"\u9019\u53EF\u80FD\u9020\u6210\u60A8\u756B\u5E03\u4E2D <bold>\u6587\u5B57\u5143\u7D20</bold> \u7684\u7570\u5E38\u3002",line3:"\u6211\u5011\u5F37\u70C8\u5EFA\u8B70\u60A8\u95DC\u9589\u6B64\u8A2D\u5B9A\u3002\u60A8\u53EF\u4EE5\u4F9D\u7167 <link>\u9019\u4E9B\u6B65\u9A5F</link> \u4F86\u9032\u884C\u3002",line4:"\u82E5\u95DC\u9589\u6B64\u8A2D\u5B9A\u4E26\u672A\u4FEE\u5FA9\u6587\u5B57\u5143\u7D20\u7684\u986F\u793A\u554F\u984C\uFF0C\u8ACB\u56DE\u5831\u65BC\u6211\u5011 GitHub \u4E0A\u7684 <issueLink>issue</issueLink>\uFF0C\u6216\u5728 <discordLink>Discord</discordLink> \u4E0A\u544A\u8A34\u6211\u5011\u3002"},libraryElementTypeError:{embeddable:"\u53EF\u5D4C\u5165\u5143\u7D20\u7121\u6CD5\u52A0\u5165\u8CC7\u6599\u5EAB",iframe:"IFrame \u5143\u7D20\u7121\u6CD5\u52A0\u5165\u8CC7\u6599\u5EAB",image:"\u5373\u5C07\u652F\u63F4\u52A0\u5165\u5716\u7247\u81F3\u8CC7\u6599\u5EAB\uFF01"},asyncPasteFailedOnRead:"\u7121\u6CD5\u8CBC\u4E0A\uFF08\u7121\u6CD5\u7531\u7CFB\u7D71\u526A\u8CBC\u7C3F\u8B80\u5165\uFF09",asyncPasteFailedOnParse:"\u7121\u6CD5\u8CBC\u4E0A",copyToSystemClipboardFailed:"\u7121\u6CD5\u8907\u88FD\u81F3\u526A\u8CBC\u7C3F"},c={selection:"\u9078\u53D6",lasso:"\u7E69\u7D22\u9078\u53D6",image:"\u63D2\u5165\u5716\u7247",rectangle:"\u9577\u65B9\u5F62",diamond:"\u83F1\u5F62",ellipse:"\u6A62\u5713",arrow:"\u7BAD\u982D",line:"\u7DDA\u689D",freedraw:"\u7E6A\u5716",text:"\u6587\u5B57",library:"\u8CC7\u6599\u5EAB",lock:"\u53EF\u9023\u7E8C\u4F7F\u7528\u9078\u53D6\u7684\u5DE5\u5177",penMode:"\u7B46\u6A21\u5F0F - \u907F\u514D\u89F8\u6478",link:"\u70BA\u6240\u9078\u7684\u5F62\u72C0\u589E\u52A0\b/\u66F4\u65B0\u9023\u7D50",eraser:"\u6A61\u76AE\u64E6",frame:"\u6846\u67B6\u5DE5\u5177",magicframe:"\u7DDA\u6846\u7A3F\u8F49\u70BA\u7A0B\u5F0F\u78BC",embeddable:"\u5D4C\u5165\u7DB2\u7AD9",laser:"\u96F7\u5C04\u7B46",autoshape:"\u756B\u51FA\u5F62\u72C0",bucketfill:"\u6CB9\u6F06\u6876\u586B\u5145\u5DE5\u5177",hand:"\u624B\u5F62\uFF08\u5E73\u79FB\u5DE5\u5177\uFF09",extraTools:"\u66F4\u591A\u5DE5\u5177",mermaidToExcalidraw:"Mermaid \u81F3 Excalidraw",convertElementType:"\u5207\u63DB\u5F62\u72C0\u985E\u578B"},d={noRegion:"\u627E\u4E0D\u5230\u53EF\u586B\u6EFF\u7684\u5C01\u9589\u5340\u57DF\u3002",tooComplex:"\u5340\u57DF\u592A\u8907\u96DC\uFF0C\u7121\u6CD5\u586B\u5145\u3002"},p={rectangle:"\u77E9\u5F62",diamond:"\u83F1\u5F62",ellipse:"\u6A62\u5713\u5F62",arrow:"\u7BAD\u982D",line:"\u7DDA\u689D",freedraw:"\u81EA\u7531\u7E6A\u5716",text:"\u6587\u5B57",image:"\u5716\u7247",group:"\u7FA4\u7D44",frame:"\u6846\u67B6",magicframe:"\u7DDA\u6846\u7A3F\u8F49\u70BA\u7A0B\u5F0F\u78BC",embeddable:"\u5D4C\u5165\u7DB2\u7AD9",selection:"\u5DF2\u9078\u9805\u76EE",iframe:"IFrame\u6846\u67B6"},m={canvasActions:"canvas \u52D5\u4F5C",selectedShapeActions:"\u9078\u53D6\u5716\u5F62\u52D5\u4F5C",shapes:"\u5F62\u72C0"},u={dismissSearch:"{{shortcut}} \u4EE5\u96B1\u85CF\u641C\u5C0B",canvasPanning:"\u5982\u8981\u79FB\u52D5\u756B\u5E03\uFF0C\u8ACB\u5728\u62D6\u66F3\u6642\u6309\u4F4F {{shortcut_1}} \u6216 {{shortcut_2}}\uFF0C\u6216\u4F7F\u7528\u624B\u5F62\u5DE5\u5177",linearElement:"\u9EDE\u64CA\u4EE5\u7E6A\u88FD\u591A\u9EDE\u66F2\u7DDA\uFF1B\u6216\u62D6\u66F3\u4EE5\u7E6A\u88FD\u76F4\u7DDA",arrowTool:"\u9EDE\u9078\u4EE5\u958B\u59CB\u5EFA\u7ACB\u591A\u9EDE\uFF0C\u62D6\u66F3\u53EF\u5EFA\u7ACB\u55AE\u4E00\u7DDA\u6BB5\u3002\u518D\u6B21\u6309\u4E0B {{shortcut}} \u4EE5\u8B8A\u66F4\u7BAD\u982D\u985E\u578B\u3002",arrowBindModifiers:"\u6309\u4F4F {{shortcut_1}} \u4EE5\u505C\u7528\u7D81\u5B9A\uFF0C\u6216\u6309\u4F4F {{shortcut_2}} \u4EE5\u7D81\u5B9A\u65BC\u56FA\u5B9A\u9EDE",freeDraw:"\u9EDE\u64CA\u4E26\u62D6\u66F3\u4F86\u7E6A\u5716\uFF0C\u653E\u958B\u5373\u7D50\u675F",text:"\u63D0\u793A\uFF1A\u4EA6\u53EF\u4F7F\u7528\u9078\u53D6\u5DE5\u5177\u5728\u4EFB\u4F55\u5730\u65B9\u96D9\u64CA\u4F86\u52A0\u5165\u6587\u5B57",embeddable:"\u9EDE\u64CA\u4E26\u62D6\u79FB\u4EE5\u5EFA\u7ACB\u5D4C\u5165\u7DB2\u7AD9",autoshape:"\u756B\u51FA\u77E9\u5F62\u3001\u5713\u5F62\u3001\u83F1\u5F62\u3001\u76F4\u7DDA\u548C\u7BAD\u982D",text_selected:"\u6309\u5169\u4E0B\u6ED1\u9F20\u6216\u6309 {{shortcut}} \u4EE5\u7DE8\u8F2F\u6587\u5B57",text_editing:"{{shortcut_1}} \u6216 {{shortcut_2}} \u4EE5\u7D50\u675F\u7DE8\u8F2F",linearElementMulti:"\u9EDE\u9078\u6700\u5F8C\u4E00\u500B\u9EDE\uFF0C\u6216\u6309\u4E0B {{shortcut_1}} \u6216 {{shortcut_2}} \u4EE5\u5B8C\u6210",lockAngle:"\u4F60\u53EF\u4EE5\u6309\u4F4F {{shortcut}} \u4EE5\u9396\u5B9A\u89D2\u5EA6",resize:`\u7E2E\u653E\u6642\u6309\u4F4F {{shortcut_1}} \u53EF\u4FDD\u6301\u7B49\u6BD4\u4F8B\uFF0C
5
+ \u6309\u4F4F {{shortcut_2}} \u5247\u53EF\u5F9E\u4E2D\u5FC3\u7E2E\u653E`,resizeImage:`\u6309\u4F4F {{shortcut_1}} \u53EF\u81EA\u7531\u7E2E\u653E\uFF0C
6
+ \u6309\u4F4F {{shortcut_2}} \u5247\u53EF\u5F9E\u4E2D\u5FC3\u7E2E\u653E`,rotate:"\u4F60\u53EF\u4EE5\u5728\u65CB\u8F49\u6642\u6309\u4F4F {{shortcut}} \u4EE5\u9396\u5B9A\u89D2\u5EA6",toggleArrowhead:"\u6309\u5169\u4E0B\u5207\u63DB\u7BAD\u982D",lineEditor_info:"\u6309\u4F4F {{shortcut_1}} \u4E26\u6309\u5169\u4E0B\u6216\u6309\u4E0B {{shortcut_2}} \u4EE5\u7DE8\u8F2F\u9EDE",lineEditor_line_info:"\u6309\u5169\u4E0B\u6216\u6309 {{shortcut}} \u4EE5\u7DE8\u8F2F\u9EDE",lineEditor_pointSelected:`\u6309\u4E0B {{shortcut_1}} \u79FB\u9664\u9EDE\uFF0C
7
+ {{shortcut_2}} \u91CD\u88FD\uFF0C\u6216\u62D6\u66F3\u4EE5\u79FB\u52D5`,lineEditor_nothingSelected:`\u9078\u53D6\u4E00\u500B\u9EDE\u4EE5\u9032\u884C\u7DE8\u8F2F\uFF08\u6309\u4F4F {{shortcut_1}} \u53EF\u591A\u9078\uFF09\uFF0C
8
+ \u6216\u6309\u4F4F {{shortcut_2}} \u4E26\u9EDE\u9078\u4EE5\u65B0\u589E\u9EDE`,publishLibrary:"\u767C\u5E03\u500B\u4EBA\u8CC7\u6599\u5EAB",bindTextToElement:"\u6309\u4E0B {{shortcut}} \u65B0\u589E\u6587\u5B57",createFlowchart:"\u6309\u4E0B {{shortcut}} \u5EFA\u7ACB\u6D41\u7A0B\u5716",deepBoxSelect:"\u6309\u4F4F {{shortcut}} \u4EE5\u9032\u884C\u6DF1\u5EA6\u9078\u53D6\uFF0C\u4E26\u9632\u6B62\u62D6\u66F3",eraserRevert:"\u6309\u4F4F {{shortcut}} \u4EE5\u9084\u539F\u6A19\u8A18\u70BA\u522A\u9664\u7684\u5143\u7D20",firefox_clipboard_write:`\u6B64\u529F\u80FD\u6709\u6A5F\u6703\u900F\u904E\u5C07 "dom.events.asyncClipboard.clipboardItem" \u8A2D\u5B9A\u70BA "true" \u4F86\u958B\u555F\u3002
9
+ \u82E5\u8981\u8B8A\u66F4 Firefox \u700F\u89BD\u5668\u7684\u6B64\u8A2D\u5B9A\u503C\uFF0C\u8ACB\u81F3 "about:config" \u9801\u9762\u3002`,disableSnapping:"\u6309\u4F4F {{shortcut}} \u4EE5\u505C\u7528\u8CBC\u9F4A\uFF08\u81EA\u52D5\u5C0D\u9F4A\uFF09",enterCropEditor:"\u6309\u5169\u4E0B\u5716\u7247\u6216\u6309\u4E0B {{shortcut}} \u4EE5\u88C1\u526A\u5716\u7247",leaveCropEditor:"\u9EDE\u9078\u5716\u7247\u5916\u90E8\uFF0C\u6216\u6309\u4E0B {{shortcut_1}} \u6216 {{shortcut_2}} \u4EE5\u5B8C\u6210\u88C1\u526A"},h={cannotShowPreview:"\u7121\u6CD5\u986F\u793A\u9810\u89BD",canvasTooBig:"\u756B\u5E03\u53EF\u80FD\u904E\u5927",canvasTooBigTip:"\u63D0\u793A\uFF1A\u53EF\u5617\u8A66\u5C07\u6700\u9060\u7684\u5143\u7D20\u79FB\u52D5\u81F3\u8F03\u96C6\u4E2D\u7684\u4F4D\u7F6E"},b={headingMain:"\u767C\u751F\u932F\u8AA4\uFF0C\u5617\u8A66<button>\u91CD\u65B0\u8F09\u5165\u9801\u9762\u3002</button>",clearCanvasMessage:"\u82E5\u91CD\u65B0\u8F09\u5165\u4ECD\u7121\u6CD5\u89E3\u6C7A\u554F\u984C\uFF0C\u5617\u8A66<button>\u6E05\u9664 canvas\u3002</button>",clearCanvasCaveat:"\u6B64\u52D5\u4F5C\u5C07\u9020\u6210\u76EE\u524D\u7684\u4F5C\u54C1\u88AB\u79FB\u9664\u3002",trackedToSentry:"\u6B64\u932F\u8AA4\u8207\u5176\u8B58\u5225\u78BC{{eventId}}\u5C07\u7531\u7CFB\u7D71\u8A18\u9304\u3002",openIssueMessage:"\u6211\u5011\u5C07\u8B39\u614E\u8655\u7406\uFF0C\u4F60\u7684\u4F5C\u54C1\u5167\u5BB9\u4E0D\u6703\u88AB\u5305\u542B\u5728\u932F\u8AA4\u5831\u544A\u4E2D\u3002\u82E5\u4F60\u7684\u4F5C\u54C1\u4E0D\u9700\u4FDD\u6301\u79C1\u5BC6\uFF0C\u8ACB\u8003\u616E\u4F7F\u7528\u6211\u5011\u7684<button>bug tracker\u3002</button>\u8ACB\u5C07\u4E0B\u5217\u8CC7\u8A0A\u8907\u88FD\u8CBC\u4E0A\u81F3 GitHub issue \u4E2D\u3002",sceneContent:"\u4F5C\u54C1\u5167\u5BB9\uFF1A"},g={or:"\u6216"},y={desc_intro:"\u9080\u8ACB\u5176\u4ED6\u4EBA\u4E00\u8D77\u5354\u4F5C",desc_privacy:"\u4E0D\u7528\u64D4\u5FC3\uFF0C\u6B64\u9023\u7DDA\u70BA\u7AEF\u5230\u7AEF\u52A0\u5BC6\u4E14\u5B8C\u5168\u79C1\u6709\uFF0C\u5373\u4F7F\u662F\u6211\u5011\u7684\u4F3A\u670D\u5668\u4E5F\u7121\u6CD5\u770B\u898B\u60A8\u7684\u7E6A\u5716\u3002",button_startSession:"\u958B\u59CB\u9023\u7DDA",button_stopSession:"\u505C\u6B62\u9023\u7DDA",desc_inProgressIntro:"\u5373\u6642\u5354\u4F5C\u9023\u7DDA\u6B63\u5728\u9032\u884C\u4E2D\u3002",desc_shareLink:"\u5C07\u6B64\u9023\u7D50\u5206\u4EAB\u7D66\u6B32\u5354\u4F5C\u7684\u5C0D\u8C61\uFF1A",desc_exitSession:"\u505C\u6B62\u9023\u7DDA\u5C07\u4E2D\u65B7\u4F60\u8207\u5354\u4F5C\u6703\u8B70\u5BA4\u7684\u9023\u7D50\uFF0C\u4F46\u4F60\u4ECD\u53EF\u65BC\u672C\u6A5F\u7DE8\u8F2F\u6B64\u4F5C\u54C1\u3002\u610F\u6307\u505C\u6B62\u9023\u7DDA\u5F8C\u4F60\u7684\u7DE8\u8F2F\u4E0D\u6703\u88AB\u5148\u524D\u5171\u540C\u5354\u4F5C\u7684\u4EBA\u770B\u898B\uFF0C\u4E14\u4ED6\u5011\u53EF\u7E7C\u7E8C\u5171\u540C\u5354\u4F5C\u53E6\u4E00\u500B\u7248\u672C\u3002",shareTitle:"\u52A0\u5165 Excalidraw \u4E0A\u7684\u5373\u6642\u5354\u4F5C\u6703\u8B70\u5BA4"},w={title:"\u932F\u8AA4"},_={title:"\u5132\u5B58\u4E2D",defaultMessage:"\u6B63\u5728\u6E96\u5099\u5132\u5B58..."},S={disk_title:"\u5132\u5B58\u81F3\u786C\u789F",disk_details:"\u5C07\u5834\u666F\u532F\u51FA\u70BA\u53EF\u4F9B\u532F\u5165\u4E4B\u6A94\u6848",disk_button:"\u5132\u5B58\u81F3\u6A94\u6848",link_title:"\u53EF\u5171\u4EAB\u9023\u7D50",link_details:"\u532F\u51FA\u70BA\u552F\u8B80\u9023\u7D50",link_button:"\u532F\u51FA\u70BA\u9023\u7D50",excalidrawplus_description:"\u5C07\u6B64\u5834\u666F\u5132\u5B58\u81F3\u4F60\u7684 Excalidraw+ \u5DE5\u4F5C\u5340",excalidrawplus_button:"\u8F38\u51FA",excalidrawplus_exportError:"\u76EE\u524D\u7121\u6CD5\u8F38\u51FA\u81F3 Excalidraw+"},v={blog:"\u95B1\u8B80\u90E8\u843D\u683C",click:"\u9EDE\u64CA",deepSelect:"\u6DF1\u5EA6\u9078\u53D6",deepBoxSelect:"\u5728\u5BB9\u5668\u5167\u6DF1\u5EA6\u9078\u53D6\u4E26\u907F\u514D\u62D6\u66F3",createFlowchart:"\u7531\u57FA\u672C\u578B\u5EFA\u7ACB\u6D41\u7A0B\u5716",navigateFlowchart:"\u5C0E\u89BD\u6D41\u7A0B\u5716",curvedArrow:"\u66F2\u7BAD\u982D",curvedLine:"\u66F2\u7DDA",documentation:"\u6587\u4EF6",doubleClick:"\u96D9\u64CA",drag:"\u62D6\u66F3",editor:"\u7DE8\u8F2F\u5668",editLineArrowPoints:"\u7DE8\u8F2F\u7DDA/\u7BAD\u982D\u63A7\u5236\u9EDE",editText:"\u7DE8\u8F2F\u6587\u5B57/\u589E\u52A0\u6A19\u7C64",github:"\u767C\u73FE\u7570\u5E38\uFF1F\u56DE\u5831\u554F\u984C",howto:"\u53C3\u7167\u6211\u5011\u7684\u8AAA\u660E",or:"\u6216",preventBinding:"\u907F\u514D\u7BAD\u865F\u9023\u7D50",tools:"\u5DE5\u5177",shortcuts:"\u9375\u76E4\u5FEB\u901F\u9375",textFinish:"\u5B8C\u6210\u7DE8\u8F2F\uFF08\u6587\u5B57\u7DE8\u8F2F\u5668\uFF09",textNewLine:"\u63DB\u884C\uFF08\u6587\u5B57\u7DE8\u8F2F\u5668\uFF09",title:"\u8AAA\u660E",view:"\u6AA2\u8996",zoomToFit:"\u653E\u5927\u81F3\u586B\u6EFF\u756B\u9762",zoomToSelection:"\u7E2E\u653E\u81F3\u9078\u53D6\u5340",toggleElementLock:"\u9396\u5B9A/\u89E3\u9396\u5DF2\u9078\u7684\u9805\u76EE",movePageUpDown:"\u5411\u4E0A/\u4E0B\u79FB\u52D5\u9801\u9762",movePageLeftRight:"\u5411\u5DE6/\u53F3\u79FB\u52D5\u9801\u9762",cropStart:"\u88C1\u5207\u5716\u7247",cropFinish:"\u5B8C\u6210\u5716\u7247\u88C1\u5207"},k={title:"\u6E05\u9664\u756B\u5E03"},x={title:"\u767C\u5E03\u8CC7\u6599\u5EAB",itemName:"\u9805\u76EE\u540D\u7A31",authorName:"\u4F5C\u8005\u540D\u7A31",githubUsername:"GitHub \u5E33\u865F",twitterUsername:"Twitter \u5E33\u865F",libraryName:"\u8CC7\u6599\u5EAB\u540D\u7A31",libraryDesc:"\u8CC7\u6599\u5EAB\u8AAA\u660E",website:"\u7DB2\u7AD9",placeholder:{authorName:"\u60A8\u7684\u540D\u7A31\u6216\u5E33\u865F",libraryName:"\u60A8\u7684\u8CC7\u6599\u5EAB\u540D\u7A31",libraryDesc:"\u63D0\u4F9B\u60A8\u7684\u8CC7\u6599\u5EAB\u8AAA\u660E\u4EE5\u5229\u4ED6\u4EBA\u7406\u89E3\u5176\u7528\u9014",githubHandle:"Github handle\uFF08\u9078\u586B\uFF09\uFF0C\u586B\u5BEB\u5F8C\u60A8\u53EF\u7DE8\u8F2F\u5DF2\u9001\u51FA\u5F85\u5BE9\u67E5\u7684\u8CC7\u6599\u5EAB",twitterHandle:"Twitter \u5E33\u865F\uFF08\u9078\u586B\uFF09\uFF0C\u586B\u5BEB\u5F8C\u82E5\u6211\u5011\u5728 Twitter \u63A8\u5EE3\u6642\u53EF\u63D0\u53CA\u60A8",website:"\u60A8\u500B\u4EBA\u7DB2\u7AD9\u6216\u5176\u4ED6\u7DB2\u7AD9\u7684\u9023\u7D50\uFF08\u9078\u586B\uFF09"},errors:{required:"\u5FC5\u586B",website:"\u8ACB\u8F38\u5165\u6709\u6548\u7684 URL"},noteDescription:"\u9001\u51FA\u60A8\u7684\u8CC7\u6599\u5EAB\u5F8C\u5C07\u88AB\u5305\u542B\u65BC<link>\u516C\u958B\u8CC7\u6599\u5EAB repository</link>\u4EE5\u5229\u4ED6\u4EBA\u5728\u5176\u7E6A\u5716\u4E2D\u4F7F\u7528\u3002",noteGuidelines:"\u8CC7\u6599\u5EAB\u9700\u5148\u7D93\u4EBA\u5DE5\u5BE9\u67E5\u3002\u8ACB\u95B1\u8B80<link>\u8AAA\u660E\u6587\u4EF6</link>\u518D\u9001\u51FA\u3002\u82E5\u9700\u6E9D\u901A\u8207\u4FEE\u6539\u6642\u8981\u900F\u904E GitHub \u5E33\u865F\u4F86\u9032\u884C\uFF0C\u4F46\u4E26\u975E\u5F37\u5236\u9700\u6C42\u3002",noteLicense:"\u9001\u51FA\u5373\u4EE3\u8868\u60A8\u540C\u610F\u6B64\u8CC7\u6599\u5EAB\u5C07\u767C\u5E03\u6642\u4F7F\u7528 <link>MIT \u6388\u6B0A\uFF0C</link>\u7C21\u55AE\u4F86\u8AAA\u662F\u6307\u4EFB\u4F55\u4EBA\u90FD\u80FD\u4E0D\u53D7\u9650\u5236\u7684\u4F7F\u7528\u3002",noteItems:"\u6BCF\u500B\u8CC7\u6599\u5EAB\u9805\u76EE\u90FD\u6709\u7368\u7ACB\u7684\u540D\u7A31\u6545\u53EF\u7BE9\u9078\u3002\u6703\u5305\u542B\u4E0B\u5217\u8CC7\u6599\u5EAB\u9805\u76EE\uFF1A",atleastOneLibItem:"\u8ACB\u9078\u64C7\u81F3\u5C11\u4E00\u9805\u8CC7\u6599\u5EAB\u9805\u76EE",republishWarning:"\u6CE8\u610F\uFF1A\u90E8\u5206\u9078\u53D6\u4E2D\u7684\u7269\u4EF6\u5148\u524D\u5DF2\u767C\u5E03/\u9001\u51FA\u904E\u3002\u5EFA\u8B70\u50C5\u5728\u8981\u66F4\u65B0\u73FE\u5B58\u8CC7\u6599\u5EAB\u6216\u5DF2\u9001\u51FA\u7684\u7269\u4EF6\u6642\u624D\u91CD\u65B0\u9001\u51FA\u9019\u4E9B\u7269\u4EF6\u3002"},T={title:"\u8CC7\u6599\u5EAB\u5DF2\u9001\u51FA",content:"\u611F\u8B1D {{authorName}} \u3002\u60A8\u7684\u8CC7\u6599\u5EAB\u5DF2\u9001\u51FA\u5F85\u5BE9\u67E5\u3002\u60A8\u53EF\u67E5\u770B\u76EE\u524D\u72C0\u614B<link>\u5728\u6B64</link>"},L={resetLibrary:"\u91CD\u8A2D\u8CC7\u6599\u5EAB",removeItemsFromLib:"\u5F9E\u8CC7\u6599\u5EAB\u79FB\u9664\u6240\u9078\u7684\u9805\u76EE"},E={header:"\u532F\u51FA\u5716\u7247",label:{withBackground:"\u80CC\u666F",onlySelected:"\u50C5\u9078\u53D6\u7269\u4EF6",darkMode:"\u6DF1\u8272\u6A21\u5F0F",embedScene:"\u5D4C\u5165\u5834\u666F",scale:"\u7E2E\u653E\u6BD4\u4F8B",padding:"\u5167\u9593\u8DDD"},tooltip:{embedScene:`\u7528\u65BC\u56DE\u5FA9\u5834\u666F\u7684\u5834\u666F\u8CC7\u6599\u6703\u88AB\u5305\u542B\u5728\u8F38\u51FA\u7684 PNG/SVG \u6A94\u6848\u4E2D\u3002
10
+ \u6703\u589E\u52A0\u8F38\u51FA\u7684\u6A94\u6848\u5927\u5C0F\u3002`},title:{exportToPng:"\u8F38\u51FA\u6210 PNG",exportToSvg:"\u8F38\u51FA\u6210 SVG",copyPngToClipboard:"\u8907\u88FD PNG \u81F3\u526A\u8CBC\u7C3F"},button:{exportToPng:"PNG",exportToSvg:"SVG",copyPngToClipboard:"\u8907\u88FD\u81F3\u526A\u8CBC\u7C3F"}},f={tooltip:"\u4F60\u7684\u4F5C\u54C1\u5DF2\u4F7F\u7528 end-to-end \u65B9\u5F0F\u52A0\u5BC6\uFF0CExcalidraw \u7684\u4F3A\u670D\u5668\u4E5F\u7121\u6CD5\u53D6\u5F97\u5176\u5167\u5BB9\u3002",link:"Excalidraw \u7AEF\u5230\u7AEF\u52A0\u5BC6\u7684\u76F8\u95DC\u90E8\u843D\u683C\u6587\u7AE0"},C={angle:"\u89D2\u5EA6",shapes:"\u5F62\u72C0",height:"\u9AD8\u5EA6",scene:"\u5834\u666F",selected:"\u5DF2\u9078",storage:"\u5132\u5B58",fullTitle:"\u756B\u5E03\u8207\u5F62\u72C0\u5C6C\u6027\u8A2D\u5B9A",title:"\u5C6C\u6027",generalStats:"\u4E00\u822C",elementProperties:"\u5F62\u72C0\u5C6C\u6027",total:"\u5408\u8A08",version:"\u7248\u672C",versionCopy:"\u9EDE\u64CA\u8907\u88FD",versionNotAvailable:"\u7121\u6CD5\u53D6\u5F97\u7248\u672C",width:"\u5BEC\u5EA6"},F={addedToLibrary:"\u52A0\u5165\u8CC7\u6599\u5EAB",copyStyles:"\u5DF2\u8907\u88FD\u6A23\u5F0F",copyToClipboard:"\u8907\u88FD\u81F3\u526A\u8CBC\u7C3F\u3002",copyToClipboardAsPng:`\u4EE5 PNG \u683C\u5F0F\u5C07 {{exportSelection}} \u8907\u88FD\u81F3\u526A\u8CBC\u7C3F
11
+ ({{exportColorScheme}})`,copyToClipboardAsSvg:`\u4EE5 SVG \u683C\u5F0F\u5C07 {{exportSelection}} \u8907\u88FD\u81F3\u526A\u8CBC\u7C3F
12
+ ({{exportColorScheme}})`,fileSaved:"\u5DF2\u5132\u5B58\u6A94\u6848\u3002",fileSavedToFilename:"\u5132\u5B58\u70BA {filename}",canvas:"\u756B\u5E03",selection:"\u5DF2\u9078\u9805\u76EE",pasteAsSingleElement:`\u4F7F\u7528 {{shortcut}} \u4EE5\u505A\u70BA\u55AE\u4E00\u7269\u4EF6\u8CBC\u4E0A\uFF0C
13
+ \u6216\u8CBC\u4E0A\u81F3\u73FE\u6709\u7684\u6587\u5B57\u7DE8\u8F2F\u5668`,unableToEmbed:"\u76EE\u524D\u4E0D\u5141\u8A31\u5D4C\u5165\u6B64\u7DB2\u5740\u3002\u60A8\u53EF\u81F3 GitHub \u63D0\u51FA issue \u4EE5\u8981\u6C42\u5C07\u6B64\u7DB2\u5740\u52A0\u5165\u5408\u683C\u540D\u55AE\u3002",unrecognizedLinkFormat:"\u60A8\u5D4C\u5165\u7684\u9023\u7D50\u683C\u5F0F\u4E0D\u7B26\u3002\u8ACB\u5617\u8A66\u8CBC\u5165\u539F\u7DB2\u7AD9\u6240\u63D0\u4F9B\u7684\u300C\u5D4C\u5165\u300D\u5B57\u4E32\u3002",elementLinkCopied:"\u9023\u7D50\u5DF2\u8907\u88FD\u81F3\u526A\u8CBC\u7C3F"},P={transparent:"\u900F\u660E",black:"\u9ED1",white:"\u767D",red:"\u7D05",pink:"\u7C89\u7D05",grape:"\u6DF1\u7D2B",violet:"\u85CD\u7D2B",gray:"\u7070",blue:"\u85CD",cyan:"\u9752",teal:"\u85CD\u7DA0",green:"\u7DA0",yellow:"\u9EC3",orange:"\u6A58",bronze:"\u9285"},A={app:{center_heading:"\u4F60\u7684\u7E6A\u5716\u5DF2\u5132\u5B58\u5728\u700F\u89BD\u5668\u7684\u5132\u5B58\u7A7A\u9593\u4E2D\u3002",center_heading_line2:"\u700F\u89BD\u5668\u5132\u5B58\u7A7A\u9593\u53EF\u80FD\u6703\u610F\u5916\u5730\u88AB\u6E05\u9664\u3002",center_heading_line3:"\u8ACB\u5B9A\u671F\u5C07\u4F5C\u54C1\u5132\u5B58\u70BA\u6A94\u6848\uFF0C\u4EE5\u907F\u514D\u907A\u5931\u3002",center_heading_plus:"\u60A8\u662F\u5426\u662F\u8981\u524D\u5F80 Excalidraw+ \uFF1F",menuHint:"\u8F38\u51FA\u3001\u504F\u597D\u8A2D\u5B9A\u3001\u8A9E\u8A00..."},defaults:{menuHint:"\u8F38\u51FA\u3001\u504F\u597D\u8A2D\u5B9A\u53CA\u5176\u4ED6...",center_heading:"\u5716\u8868\u3002\u88FD\u4F5C\u3002\u8D85\u7C21\u55AE\u3002",toolbarHint:"\u9078\u500B\u5DE5\u5177\u958B\u59CB\u756B\u5716\u5427\uFF01",helpHint:"\u5FEB\u901F\u9375\u8207\u8AAA\u660E"}},M={color:"\u984F\u8272",mostUsedCustomColors:"\u6700\u5E38\u4F7F\u7528\u7684\u81EA\u8A02\u984F\u8272",colors:"\u984F\u8272",shades:"\u6F38\u8B8A\u8272",hexCode:"Hex \u78BC",noShades:"\u6C92\u6709\u6B64\u984F\u8272\u7684\u6F38\u8B8A\u8272",invalidColor:"\u7121\u6548\u984F\u8272",invalidHexLength:"\u5341\u516D\u9032\u4F4D\u4EE3\u78BC\u5FC5\u9808\u70BA 3\u30014\u30016 \u6216 8 \u500B\u5B57\u5143\u3002",topPicksTip:"\u63D0\u793A\uFF1A\u5C07\u4EFB\u610F\u984F\u8272\u62D6\u66F3\u5230\u4F60\u7684\u6536\u85CF\u593E\u4E0A\u5373\u53EF\u56FA\u5B9A\u3002",resetTopPicks:"\u91CD\u8A2D\u70BA\u9810\u8A2D\u9996\u9078"},I={action:{exportToImage:{title:"\u532F\u51FA\u70BA\u5716\u7247",button:"\u532F\u51FA\u70BA\u5716\u7247",description:"\u5C07\u5834\u666F\u532F\u51FA\u70BA\u53EF\u4F9B\u532F\u5165\u7684\u5716\u7247\u6A94\u6848"},saveToDisk:{title:"\u5132\u5B58\u81F3\u786C\u789F",button:"\u5132\u5B58\u81F3\u786C\u789F",description:"\u5C07\u5834\u666F\u532F\u51FA\u70BA\u53EF\u4F9B\u532F\u5165\u7684\u6A94\u6848"},excalidrawPlus:{title:"Excalidraw+",button:"\u532F\u51FA\u81F3 Excalidraw+",description:"\u5C07\u6B64\u5834\u666F\u5132\u5B58\u81F3\u60A8\u7684 Excalidraw+ \u5DE5\u4F5C\u5340"}},modal:{loadFromFile:{title:"\u5F9E\u6A94\u6848\u8F09\u5165",button:"\u5F9E\u6A94\u6848\u8F09\u5165",description:"\u5F9E\u6A94\u6848\u8F09\u5165\u5C07<bold>\u53D6\u4EE3\u60A8\u76EE\u524D\u7684\u5167\u5BB9</bold>\u3002<br></br>\u53EF\u5148\u4F7F\u7528\u4E0B\u65B9\u7684\u9078\u9805\u5099\u4EFD\u60A8\u7684\u7E6A\u5716\u3002"},shareableLink:{title:"\u5F9E\u9023\u7D50\u8F09\u5165",button:"\u53D6\u4EE3\u6211\u7684\u5167\u5BB9",description:"\u8F09\u5165\u5916\u90E8\u7E6A\u5716\u5C07<bold>\u53D6\u4EE3\u60A8\u76EE\u524D\u7684\u5167\u5BB9</bold>\u3002<br></br>\u53EF\u5148\u4F7F\u7528\u4E0B\u65B9\u7684\u9078\u9805\u5099\u4EFD\u60A8\u7684\u7E6A\u5716\u3002"}}},B={title:"Mermaid \u81F3 Excalidraw",button:"\u63D2\u5165",description:"\u76EE\u524D\u50C5\u652F\u63F4 <flowchartLink>Flowchart</flowchartLink> \u3001 <sequenceLink>Sequence</sequenceLink> \u53CA <classLink>Class </classLink> \u5716\u8868\u3002\u5176\u9918\u6A94\u6848\u985E\u578B\u5728 Excalidraw \u5C07\u6703\u4EE5\u5716\u50CF\u5448\u73FE\u3002",syntax:"Mermaid \u8A9E\u6CD5",preview:"\u9810\u89BD",label:"Mermaid",inputPlaceholder:"\u5728\u9019\u88E1\u7DE8\u5BEB Mermaid \u5B9A\u7FA9...",autoFixAvailable:"\u81EA\u52D5\u4FEE\u6B63\u53EF\u7528"},D={error:"\u932F\u8AA4\uFF01"},N={inputPlaceholder:"\u5728\u9019\u88E1\u958B\u59CB\u8F38\u5165\u4F60\u7684\u5716\u8868\u69CB\u60F3...\uFF08{{shortcut}} \u63DB\u884C\uFF09",inputPlaceholderWithMessages:"\u7E7C\u7E8C\u8ABF\u6574\u4F60\u7684\u5716\u8868...",generating:"\u751F\u6210\u4E2D...",rateLimitRemaining:"\u4ECA\u65E5\u5269\u9918 {{count}} \u6B21\u8ACB\u6C42",role:{user:"\u4F60",assistant:"AI \u52A9\u7406",system:"\u7CFB\u7D71"},aiBeta:"AI Beta \u7248",label:"\u5C0D\u8A71",menu:"\u9078\u55AE",newChat:"\u65B0\u7684\u5C0D\u8A71",deleteChat:"\u522A\u9664\u5C0D\u8A71",deleteMessage:"\u522A\u9664\u8A0A\u606F",viewAsMermaid:"\u4EE5 Mermaid \u683C\u5F0F\u6AA2\u8996",placeholder:{title:"\u8B93\u6211\u5011\u958B\u59CB\u8A2D\u8A08\u4F60\u7684\u5716\u8868",description:"\u63CF\u8FF0\u4F60\u60F3\u8981\u5EFA\u7ACB\u7684\u5716\u8868\uFF0C\u6211\u5011\u5C07\u70BA\u4F60\u751F\u6210\u3002",hint:"\u5230\u76EE\u524D\u6211\u5011\u4E86\u89E3\u6D41\u7A0B\u5716\u3001\u5E8F\u5217\u5716\u3001\u985E\u5225\u5716\u3001\u72C0\u614B\u5716\u548C\u5BE6\u9AD4\u95DC\u4FC2\u5716\u3002"},preview:"\u9810\u89BD",insert:"\u63D2\u5165",retry:"\u91CD\u8A66",errors:{promptTooShort:"\u63D0\u793A\u8A5E\u592A\u77ED\uFF08\u81F3\u5C11 {{min}} \u500B\u5B57\u5143\uFF09",promptTooLong:"\u63D0\u793A\u8A5E\u592A\u9577\uFF08\u6700\u591A {{max}} \u500B\u5B57\u5143\uFF09",generationFailed:"\u751F\u6210\u5931\u6557",invalidDiagram:"\u751F\u6210\u7684\u5716\u8868\u8A9E\u6CD5\u7121\u6548 :(\u3002\u4F60\u53EF\u4EE5\u624B\u52D5\u7DE8\u8F2F\u3001\u5617\u8A66\u81EA\u52D5\u4FEE\u5FA9\uFF0C\u6216\u63DB\u500B\u63D0\u793A\u8A5E\u8A66\u8A66\u3002",fixInMermaid:"\u624B\u52D5\u7DE8\u8F2F Mermaid \u2192",aiRepair:"\u91CD\u65B0\u751F\u6210\uFF08\u81EA\u52D5\u4FEE\u5FA9\uFF09\u2192",requestAborted:"\u8ACB\u6C42\u5DF2\u4E2D\u6B62",requestFailed:"\u8ACB\u6C42\u5931\u6557",mermaidParseError:"Mermaid \u8A9E\u6CD5\u932F\u8AA4"},rateLimit:{messageLimit:"\u4F60\u5DF2\u9054\u5230\u514D\u8CBB\u65B9\u6848\u7684 AI \u4F7F\u7528\u4E0A\u9650\u3002\u8ACB\u8A66\u7528 Excalidraw+ \u4EE5\u53D6\u5F97\u66F4\u591A\u984D\u5EA6\uFF0C\u6216\u660E\u5929\u518D\u8A66\u3002",generalRateLimit:"\u5225\u5FC3\u6025\uFF0C\u4F60\u7684\u64CD\u4F5C\u901F\u5EA6\u592A\u5FEB\u4E86\uFF01\u8ACB\u7A0D\u7B49\u7247\u523B\u5F8C\u518D\u8A66\u3002",messageLimitInputPlaceholder:"\u4F60\u5DF2\u9054\u5230\u8A0A\u606F\u4E0A\u9650"},upsellBtnLabel:"\u5347\u7D1A\u81F3 Plus"},z={placeholder:"\u5FEB\u901F\u641C\u5C0B"},G={badge:{old:"\u820A\u7248"},sceneFonts:"\u5728\u6B64\u5834\u666F\u4E2D",availableFonts:"\u53EF\u7528\u5B57\u578B",empty:"\u627E\u4E0D\u5230\u5B57\u578B"},R={empty:"\u627E\u4E0D\u5230\u4F7F\u7528\u8005",hint:{text:"\u9EDE\u64CA\u4F7F\u7528\u8005\u4EE5\u9032\u884C\u8FFD\u8E64",followStatus:"\u60A8\u6B63\u5728\u8FFD\u8E64\u6B64\u4F7F\u7528\u8005",inCall:"\u4F7F\u7528\u8005\u6B63\u5728\u8A9E\u97F3\u901A\u8A71\u4E2D",micMuted:"\u4F7F\u7528\u8005\u7684\u9EA5\u514B\u98A8\u5DF2\u975C\u97F3",isSpeaking:"\u4F7F\u7528\u8005\u8AAA\u8A71\u4E2D"}},H={title:"\u6307\u4EE4\u9762\u677F",shortcuts:{select:"\u9078\u53D6",confirm:"\u78BA\u8A8D",close:"\u95DC\u9589"},recents:"\u6700\u8FD1\u4F7F\u7528",search:{placeholder:"\u641C\u5C0B\u9078\u55AE\u8207\u6307\u4EE4\u4E26\u627E\u51FA\u96B1\u85CF\u529F\u80FD",noMatch:"\u6C92\u6709\u7B26\u5408\u7684\u6307\u4EE4\u2026"},itemNotAvailable:"\u6307\u4EE4\u7121\u6CD5\u4F7F\u7528\u2026",shortcutHint:"\u4F7F\u7528 {{shortcut}} \u958B\u555F\u6307\u4EE4\u9762\u677F"},O={ctrl:"Ctrl",option:"Option",cmd:"Cmd",alt:"Alt",escape:"Esc",enter:"Enter",shift:"Shift",spacebar:"\u7A7A\u767D\u9375",delete:"Delete",mmb:"\u6EFE\u8F2A"},V={labels:r,elementLink:o,library:a,search:i,buttons:l,alerts:n,errors:s,toolBar:c,bucketfill:d,element:p,headings:m,hints:u,canvasError:h,errorSplash:b,shareDialog:g,roomDialog:y,errorDialog:w,progressDialog:_,exportDialog:S,helpDialog:v,clearCanvasDialog:k,publishDialog:x,publishSuccessDialog:T,confirmDialog:L,imageExportDialog:E,encrypted:f,stats:C,toast:F,colors:P,welcomeScreen:A,colorPicker:M,overwriteConfirm:I,mermaid:B,ttd:D,chat:N,quickSearch:z,fontList:G,userList:R,commandPalette:H,keys:O};export{n as alerts,d as bucketfill,l as buttons,h as canvasError,N as chat,k as clearCanvasDialog,M as colorPicker,P as colors,H as commandPalette,L as confirmDialog,V as default,p as element,o as elementLink,f as encrypted,w as errorDialog,b as errorSplash,s as errors,S as exportDialog,G as fontList,m as headings,v as helpDialog,u as hints,E as imageExportDialog,O as keys,r as labels,a as library,B as mermaid,I as overwriteConfirm,_ as progressDialog,x as publishDialog,T as publishSuccessDialog,z as quickSearch,y as roomDialog,i as search,g as shareDialog,C as stats,F as toast,c as toolBar,D as ttd,R as userList,A as welcomeScreen};
@@ -1 +1 @@
1
- import{a,b,c,d}from"./chunk-Z5NKEFVG.js";import"./chunk-ZV7TQH6J.js";import"./chunk-SRAX5OIU.js";export{a as Commands,b as subsetToBase64,c as subsetToBinary,d as toBase64};
1
+ import{a,b,c,d}from"./chunk-Z5NKEFVG.js";import"./chunk-RX4U73MO.js";import"./chunk-SRAX5OIU.js";export{a as Commands,b as subsetToBase64,c as subsetToBinary,d as toBase64};
@@ -1 +1 @@
1
- import{a as r,c as t}from"./chunk-Z5NKEFVG.js";import"./chunk-ZV7TQH6J.js";import"./chunk-SRAX5OIU.js";var s=import.meta.url?new URL(import.meta.url):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async e=>{switch(e.data.command){case r.Subset:let a=await t(e.data.arrayBuffer,e.data.codePoints);self.postMessage(a,{transfer:[a]});break}});export{s as WorkerUrl};
1
+ import{a as r,c as t}from"./chunk-Z5NKEFVG.js";import"./chunk-RX4U73MO.js";import"./chunk-SRAX5OIU.js";var s=import.meta.url?new URL(import.meta.url):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async e=>{switch(e.data.command){case r.Subset:let a=await t(e.data.arrayBuffer,e.data.codePoints);self.postMessage(a,{transfer:[a]});break}});export{s as WorkerUrl};
@@ -0,0 +1,27 @@
1
+ import type { UnsubscribeCallback } from "@excalidraw/excalidraw/types";
2
+ export type AppEventPayloadMap = Record<string, unknown[]>;
3
+ export type AppEventBehavior = {
4
+ cardinality: "once" | "many";
5
+ replay: "none" | "last";
6
+ };
7
+ export type AppEventBehaviorMap<Events extends AppEventPayloadMap> = {
8
+ [K in keyof Events]: AppEventBehavior;
9
+ };
10
+ type AwaitableAppEventKeys<Events extends AppEventPayloadMap, Behavior extends AppEventBehaviorMap<Events>> = {
11
+ [K in keyof Events]: Behavior[K]["cardinality"] extends "once" ? Behavior[K]["replay"] extends "last" ? K : never : never;
12
+ }[keyof Events];
13
+ type AppEventPromiseValue<Args extends any[]> = Args extends [infer Only] ? Only : Args;
14
+ export declare class AppEventBus<Events extends AppEventPayloadMap, Behavior extends AppEventBehaviorMap<Events>> {
15
+ private readonly behavior;
16
+ private readonly emitters;
17
+ private readonly lastPayload;
18
+ private readonly emittedOnce;
19
+ constructor(behavior: Behavior);
20
+ private getEmitter;
21
+ private toPromiseValue;
22
+ on<K extends keyof Events>(name: K, callback: (...args: Events[K]) => void): UnsubscribeCallback;
23
+ on<K extends AwaitableAppEventKeys<Events, Behavior>>(name: K): Promise<AppEventPromiseValue<Events[K]>>;
24
+ emit<K extends keyof Events>(name: K, ...args: Events[K]): void;
25
+ clear(): void;
26
+ }
27
+ export {};
@@ -1,4 +1,5 @@
1
- export declare const applyDarkModeFilter: (color: string) => string;
1
+ export declare const applyDarkModeFilter: (color: string, enable?: boolean) => string;
2
+ export declare const removeDarkModeFilter: (color: string) => string;
2
3
  export type ColorTuple = readonly [string, string, string, string, string];
3
4
  export type ColorPaletteCustom = {
4
5
  [key: string]: ColorTuple | string;
@@ -28,8 +29,16 @@ export declare const COLOR_PALETTE: {
28
29
  };
29
30
  export type ColorPalette = typeof COLOR_PALETTE;
30
31
  export type ColorPickerColor = keyof typeof COLOR_PALETTE;
32
+ /** number of slots in the color-picker top-picks strip — the strip layout is
33
+ * sized for exactly this many swatches, and pick customization (replace /
34
+ * reorder) preserves it */
35
+ export declare const COLOR_TOP_PICKS_SLOTS = 5;
31
36
  export declare const DEFAULT_ELEMENT_STROKE_PICKS: ColorTuple;
32
37
  export declare const DEFAULT_ELEMENT_BACKGROUND_PICKS: ColorTuple;
38
+ export declare const BUCKET_FILL_BACKGROUND_PICKS: ColorTuple;
39
+ export declare const DEFAULT_STICKY_NOTE_BG = "#ffdf6b";
40
+ export declare const STICKY_NOTE_STROKE_PICKS: ColorTuple;
41
+ export declare const STICKY_NOTE_BACKGROUND_PICKS: ColorTuple;
33
42
  export declare const DEFAULT_CANVAS_BACKGROUND_PICKS: ColorTuple;
34
43
  export declare const DEFAULT_ELEMENT_STROKE_COLOR_PALETTE: {
35
44
  readonly red: readonly ["#fff5f5", "#ffc9c9", "#ff8787", "#fa5252", "#e03131"];
@@ -67,12 +76,25 @@ export declare const DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE: {
67
76
  };
68
77
  export declare const getAllColorsSpecificShade: (index: 0 | 1 | 2 | 3 | 4) => ("#fff5f5" | "#ffc9c9" | "#ff8787" | "#fa5252" | "#e03131" | "#fff0f6" | "#fcc2d7" | "#f783ac" | "#e64980" | "#c2255c" | "#f8f0fc" | "#eebefa" | "#da77f2" | "#be4bdb" | "#9c36b5" | "#f3f0ff" | "#d0bfff" | "#9775fa" | "#7950f2" | "#6741d9" | "#e7f5ff" | "#a5d8ff" | "#4dabf7" | "#228be6" | "#1971c2" | "#e3fafc" | "#99e9f2" | "#3bc9db" | "#15aabf" | "#0c8599" | "#e6fcf5" | "#96f2d7" | "#38d9a9" | "#12b886" | "#099268" | "#ebfbee" | "#b2f2bb" | "#69db7c" | "#40c057" | "#2f9e44" | "#fff9db" | "#ffec99" | "#ffd43b" | "#fab005" | "#f08c00" | "#fff4e6" | "#ffd8a8" | "#ffa94d" | "#fd7e14" | "#e8590c")[];
69
78
  export declare const rgbToHex: (r: number, g: number, b: number, a?: number) => string;
79
+ /**
80
+ * @returns the color with its alpha replaced by `alpha` (as #RRGGBBAA), or the
81
+ * input unchanged if it's not a valid color
82
+ */
83
+ export declare const setColorAlpha: (color: string, alpha: number) => string;
70
84
  /**
71
85
  * @returns #RRGGBB or #RRGGBBAA based on color containing non-opaque alpha,
72
86
  * null if not valid color
73
87
  */
74
88
  export declare const colorToHex: (color: string) => string | null;
75
89
  export declare const isTransparent: (color: string) => boolean;
90
+ /**
91
+ * Whether the color is fully opaque (alpha exactly 1).
92
+ *
93
+ * NOT the negation of `isTransparent`, which is true only at alpha 0 — a
94
+ * partial-alpha color (`#RRGGBBAA`, `rgba(…, 0.5)`) is neither transparent
95
+ * (it renders) nor opaque (what's beneath shows through it).
96
+ */
97
+ export declare const isOpaqueColor: (color: string) => boolean;
76
98
  export declare const COLOR_OUTLINE_CONTRAST_THRESHOLD = 240;
77
99
  export declare const isColorDark: (color: string, threshold?: number) => boolean;
78
100
  /**
@@ -1,8 +1,11 @@
1
1
  import type { ExcalidrawElement, FontFamilyValues } from "@excalidraw/element/types";
2
2
  import type { AppProps, AppState, NormalizedZoomValue } from "@excalidraw/excalidraw/types";
3
+ export { DEFAULT_STICKY_NOTE_BG } from "./colors";
3
4
  export declare const supportsResizeObserver: boolean;
4
5
  export declare const APP_NAME = "Excalidraw";
5
6
  export declare const TEXT_AUTOWRAP_THRESHOLD = 36;
7
+ export declare const TEXT_VIEWPORT_PADDING = 20;
8
+ export declare const TEXT_MAX_WRAP_WIDTH = 800;
6
9
  export declare const DRAGGING_THRESHOLD = 10;
7
10
  export declare const MINIMUM_ARROW_SIZE = 20;
8
11
  export declare const LINE_CONFIRM_THRESHOLD = 8;
@@ -52,6 +55,7 @@ export declare enum EVENT {
52
55
  POINTER_MOVE = "pointermove",
53
56
  POINTER_DOWN = "pointerdown",
54
57
  POINTER_UP = "pointerup",
58
+ POINTER_CANCEL = "pointercancel",
55
59
  STATE_CHANGE = "statechange",
56
60
  WHEEL = "wheel",
57
61
  TOUCH_START = "touchstart",
@@ -150,7 +154,53 @@ export declare const FRAME_STYLE: {
150
154
  };
151
155
  export declare const MIN_FONT_SIZE = 1;
152
156
  export declare const DEFAULT_FONT_SIZE = 20;
157
+ export declare const STICKY_NOTE_MIN_FONT_SIZE = 16;
158
+ export declare const STICKY_NOTE_MAX_FONT_SIZE = 512;
159
+ export declare const STICKY_NOTE_FALLBACK_FONT_SIZE = 28;
160
+ export declare const STICKY_NOTE_FONT_STEP = 2;
161
+ export declare const STICKY_NOTE_PADDING = 16;
162
+ /**
163
+ * The creation-date footer: a 20px text row under the label body plus a 12px
164
+ * gap above it, inside the note's bottom padding. Reserved for every note —
165
+ * also when `created` is unknown — so geometry never depends on data
166
+ * availability. The label is chosen by width bucket, never measured, so
167
+ * painting stays measurement-free (the server has no text measurer):
168
+ * `minBodyWidthForYear` is the worst case ("30 May 2026") in the system sans
169
+ * stack at 12px, with margin for wider fallbacks such as DejaVu Sans.
170
+ */
171
+ /**
172
+ * The creation-date footer of a sticky note. The label body ends `height`
173
+ * above the note's bottom padding, and the date's baseline sits
174
+ * `baselineFromBottom` above the note's bottom edge — so the 12px glyphs
175
+ * (~9px above the baseline, ~3px below) end up roughly 11px from the edge
176
+ * with a ~13px gap to the label body above them.
177
+ */
178
+ export declare const STICKY_NOTE_FOOTER: {
179
+ readonly height: 20;
180
+ readonly fontSize: 12;
181
+ readonly fontFamily: "Helvetica, Arial, sans-serif";
182
+ readonly baselineFromBottom: 14;
183
+ readonly opacity: 1;
184
+ readonly minBodyWidthForYear: 80;
185
+ };
186
+ /**
187
+ * outer height → label body height: top + bottom padding + footer. The body
188
+ * is what the label is fitted into; a middle-aligned label is still centered
189
+ * in the whole padded note when it fits (see `computeBoundTextPosition`).
190
+ */
191
+ export declare const STICKY_NOTE_BODY_INSET_Y: number;
192
+ export declare const DEFAULT_STICKY_NOTE_SIZE = 250;
193
+ export declare const STICKY_NOTE_MIN_SIZE = 75;
194
+ export declare const STICKY_NOTE_SHADOW_OFFSET = 3;
195
+ export declare const STICKY_NOTE_SHADOW_OPACITY = 0.16;
196
+ export declare const STICKY_NOTE_EDGE_SHADOW_WIDTH = 0.5;
197
+ export declare const STICKY_NOTE_EDGE_SHADOW_OPACITY = 0.08;
153
198
  export declare const DEFAULT_FONT_FAMILY: FontFamilyValues;
199
+ /** number of slots in the font-picker top-picks strip — pick customization
200
+ * (replace / reorder) preserves it. Must equal `DEFAULT_FONTS.length` in
201
+ * `packages/excalidraw/components/FontPicker/FontPicker.tsx` (enforced by
202
+ * `fontTopPicks.test.ts`) */
203
+ export declare const FONT_TOP_PICKS_SLOTS = 3;
154
204
  export declare const DEFAULT_TEXT_ALIGN = "left";
155
205
  export declare const DEFAULT_VERTICAL_ALIGN = "top";
156
206
  export declare const DEFAULT_VERSION = "{version}";
@@ -226,9 +276,12 @@ export declare const TOUCH_CTX_MENU_TIMEOUT = 500;
226
276
  export declare const TITLE_TIMEOUT = 10000;
227
277
  export declare const VERSION_TIMEOUT = 30000;
228
278
  export declare const SCROLL_TIMEOUT = 100;
279
+ export declare const ZEN_MODE_TRANSITION_DURATION = 250;
229
280
  export declare const ZOOM_STEP = 0.1;
230
281
  export declare const MIN_ZOOM = 0.1;
231
282
  export declare const MAX_ZOOM = 30;
283
+ /** 100% zoom, for computations that have no editor zoom to go by */
284
+ export declare const DEFAULT_ZOOM: AppState["zoom"];
232
285
  export declare const HYPERLINK_TOOLTIP_DELAY = 300;
233
286
  export declare const IDLE_THRESHOLD = 60000;
234
287
  export declare const ACTIVE_THRESHOLD = 3000;
@@ -243,8 +296,7 @@ export declare const LIBRARY_SIDEBAR_WIDTH = 302;
243
296
  export declare const MAX_DECIMALS_FOR_SVG_EXPORT = 2;
244
297
  export declare const EXPORT_SCALES: number[];
245
298
  export declare const DEFAULT_EXPORT_PADDING = 10;
246
- export declare const DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;
247
- export declare const MAX_ALLOWED_FILE_BYTES: number;
299
+ export declare const DEFAULT_IMAGE_OPTIONS: AppProps["imageOptions"];
248
300
  export declare const SVG_NS = "http://www.w3.org/2000/svg";
249
301
  export declare const SVG_DOCUMENT_PREAMBLE = "<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n";
250
302
  export declare const ENCRYPTION_KEY_BITS = 128;
@@ -266,6 +318,7 @@ export declare const TEXT_ALIGN: {
266
318
  RIGHT: string;
267
319
  };
268
320
  export declare const ELEMENT_READY_TO_ERASE_OPACITY = 20;
321
+ export declare const ELEMENT_PENDING_DRAW_SHAPE_OPACITY = 70;
269
322
  export declare const DEFAULT_PROPORTIONAL_RADIUS = 0.25;
270
323
  export declare const DEFAULT_ADAPTIVE_RADIUS = 32;
271
324
  export declare const ROUNDNESS: {
@@ -278,11 +331,12 @@ export declare const ROUGHNESS: {
278
331
  readonly artist: 1;
279
332
  readonly cartoonist: 2;
280
333
  };
281
- export declare const STROKE_WIDTH: {
282
- readonly thin: 1;
283
- readonly bold: 2;
284
- readonly extraBold: 4;
285
- };
334
+ export type StrokeWidthKey = "thin" | "medium" | "bold";
335
+ export declare const STROKE_WIDTH_KEYS: readonly StrokeWidthKey[];
336
+ export declare const STROKE_WIDTH: Readonly<Record<StrokeWidthKey | "extraBold", ExcalidrawElement["strokeWidth"]>>;
337
+ export declare const FREEDRAW_STROKE_WIDTH: Readonly<Record<StrokeWidthKey | "extraBold", ExcalidrawElement["strokeWidth"]>>;
338
+ export declare const getStrokeWidthByKey: (elementType: ExcalidrawElement["type"], strokeWidthKey: StrokeWidthKey) => ExcalidrawElement["strokeWidth"];
339
+ export declare const DEFAULT_ELEMENT_STROKE_WIDTH_KEY: StrokeWidthKey;
286
340
  export declare const DEFAULT_ELEMENT_PROPS: {
287
341
  strokeColor: ExcalidrawElement["strokeColor"];
288
342
  backgroundColor: ExcalidrawElement["backgroundColor"];
@@ -315,8 +369,11 @@ export declare const TOOL_TYPE: {
315
369
  readonly hand: "hand";
316
370
  readonly frame: "frame";
317
371
  readonly magicframe: "magicframe";
372
+ readonly stickynote: "stickynote";
318
373
  readonly embeddable: "embeddable";
319
374
  readonly laser: "laser";
375
+ readonly autoshape: "autoshape";
376
+ readonly bucketfill: "bucketfill";
320
377
  };
321
378
  export declare const EDITOR_LS_KEYS: {
322
379
  readonly OAI_API_KEY: "excalidraw-oai-api-key";
@@ -356,3 +413,5 @@ export declare const BIND_MODE_TIMEOUT = 700;
356
413
  export declare const MOBILE_ACTION_BUTTON_BG: {
357
414
  readonly background: "var(--mobile-action-button-bg)";
358
415
  };
416
+ export declare const DEFAULT_STROKE_STREAMLINE = 0.5;
417
+ export declare const DEFAULT_STROKE_STREAMLINE_PRECISE = 0.2;
@@ -11,5 +11,7 @@ export * from "./random";
11
11
  export * from "./url";
12
12
  export * from "./utils";
13
13
  export * from "./emitter";
14
+ export * from "./appEventBus";
14
15
  export * from "./editorInterface";
16
+ export * from "./versionedSnapshotStore";
15
17
  export { Debug } from "../debug";
@@ -46,6 +46,7 @@ export declare const KEYS: {
46
46
  readonly SUBTRACT: "-";
47
47
  readonly SLASH: "/";
48
48
  readonly A: "a";
49
+ readonly B: "b";
49
50
  readonly C: "c";
50
51
  readonly D: "d";
51
52
  readonly E: "e";
@@ -54,6 +55,7 @@ export declare const KEYS: {
54
55
  readonly H: "h";
55
56
  readonly I: "i";
56
57
  readonly L: "l";
58
+ readonly N: "n";
57
59
  readonly O: "o";
58
60
  readonly P: "p";
59
61
  readonly Q: "q";
@@ -101,6 +103,7 @@ export declare const KeyCodeMap: Map<ValueOf<{
101
103
  readonly SUBTRACT: "-";
102
104
  readonly SLASH: "/";
103
105
  readonly A: "a";
106
+ readonly B: "b";
104
107
  readonly C: "c";
105
108
  readonly D: "d";
106
109
  readonly E: "e";
@@ -109,6 +112,7 @@ export declare const KeyCodeMap: Map<ValueOf<{
109
112
  readonly H: "h";
110
113
  readonly I: "i";
111
114
  readonly L: "l";
115
+ readonly N: "n";
112
116
  readonly O: "o";
113
117
  readonly P: "p";
114
118
  readonly Q: "q";
@@ -6,4 +6,4 @@ export declare const getSizeFromPoints: (points: readonly (GlobalPoint | LocalPo
6
6
  };
7
7
  /** @arg dimension, 0 for rescaling only x, 1 for y */
8
8
  export declare const rescalePoints: <Point extends GlobalPoint | LocalPoint>(dimension: 0 | 1, newSize: number, points: readonly Point[], normalize: boolean) => Point[];
9
- export declare const getGridPoint: (x: number, y: number, gridSize: NullableGridSize) => [number, number];
9
+ export declare const getGridPoint: (x: number, y: number, gridSize: NullableGridSize) => GlobalPoint;
@@ -1,3 +1,10 @@
1
1
  export declare const randomInteger: () => number;
2
2
  export declare const reseed: (seed: number) => void;
3
3
  export declare const randomId: () => string;
4
+ /**
5
+ * Deterministic PRNG (mulberry32) for a given seed: same seed, same
6
+ * sequence — used where a render must be stable across frames and clients
7
+ * (e.g. the sticky note's corner jitter) and roughjs's `Random` is
8
+ * unsuitable (it degenerates for seed 0). Returns numbers in [0, 1).
9
+ */
10
+ export declare const seededRandom: (seed: number) => () => number;
@@ -25,9 +25,7 @@ export declare const debounce: <T extends any[]>(fn: (...args: T) => void, timeo
25
25
  flush(): void;
26
26
  cancel(): void;
27
27
  };
28
- export declare const throttleRAF: <T extends any[]>(fn: (...args: T) => void, opts?: {
29
- trailing?: boolean;
30
- }) => {
28
+ export declare const throttleRAF: <T extends any[]>(fn: (...args: T) => void) => {
31
29
  (...args: T): void;
32
30
  flush(): void;
33
31
  cancel(): void;
@@ -39,48 +37,6 @@ export declare const throttleRAF: <T extends any[]>(fn: (...args: T) => void, op
39
37
  * @returns {number} The tweened value.
40
38
  */
41
39
  export declare const easeOut: (k: number) => number;
42
- /**
43
- * Animates values from `fromValues` to `toValues` using the requestAnimationFrame API.
44
- * Executes the `onStep` callback on each step with the interpolated values.
45
- * Returns a function that can be called to cancel the animation.
46
- *
47
- * @example
48
- * // Example usage:
49
- * const fromValues = { x: 0, y: 0 };
50
- * const toValues = { x: 100, y: 200 };
51
- * const onStep = ({x, y}) => {
52
- * setState(x, y)
53
- * };
54
- * const onCancel = () => {
55
- * console.log("Animation canceled");
56
- * };
57
- *
58
- * const cancelAnimation = easeToValuesRAF({
59
- * fromValues,
60
- * toValues,
61
- * onStep,
62
- * onCancel,
63
- * });
64
- *
65
- * // To cancel the animation:
66
- * cancelAnimation();
67
- */
68
- export declare const easeToValuesRAF: <T extends Record<keyof T, number>, K extends keyof T>({ fromValues, toValues, onStep, duration, interpolateValue, onStart, onEnd, onCancel, }: {
69
- fromValues: T;
70
- toValues: T;
71
- /**
72
- * Interpolate a single value.
73
- * Return undefined to be handled by the default interpolator.
74
- */
75
- interpolateValue?: (fromValue: number, toValue: number,
76
- /** no easing applied */
77
- progress: number, key: K) => number | undefined;
78
- onStep: (values: T) => void;
79
- duration?: number;
80
- onStart?: () => void;
81
- onEnd?: () => void;
82
- onCancel?: () => void;
83
- }) => () => void;
84
40
  export declare const chunk: <T extends any>(array: readonly T[], size: number) => T[][];
85
41
  export declare const selectNode: (node: Element) => void;
86
42
  export declare const removeSelection: () => void;
@@ -95,7 +51,7 @@ export declare const updateActiveTool: (appState: Pick<AppState, "activeTool">,
95
51
  locked?: boolean;
96
52
  fromSelection?: boolean;
97
53
  }) & {
98
- lastActiveToolBeforeEraser?: ActiveTool | null;
54
+ lastActiveTool?: ActiveTool | null;
99
55
  }) => AppState["activeTool"];
100
56
  export declare const isFullScreen: () => boolean;
101
57
  export declare const allowFullScreen: () => Promise<void>;
@@ -131,6 +87,11 @@ export declare const getGlobalCSSVariable: (name: string) => string;
131
87
  * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171
132
88
  */
133
89
  export declare const isRTL: (text: string) => boolean;
90
+ /**
91
+ * Checks whether the text has any RTL character, i.e. whether it may be laid
92
+ * out bidirectionally.
93
+ */
94
+ export declare const hasRTLChars: (text: string) => boolean;
134
95
  export declare const tupleToCoors: (xyTuple: readonly [number, number]) => {
135
96
  x: number;
136
97
  y: number;
@@ -0,0 +1,17 @@
1
+ export type VersionedSnapshot<T> = Readonly<{
2
+ version: number;
3
+ value: T;
4
+ }>;
5
+ export declare class VersionedSnapshotStore<T> {
6
+ private readonly isEqual;
7
+ private version;
8
+ private value;
9
+ private readonly waiters;
10
+ private readonly subscribers;
11
+ constructor(initialValue: T, isEqual?: (prev: T, next: T) => boolean);
12
+ getSnapshot(): VersionedSnapshot<T>;
13
+ set(nextValue: T): boolean;
14
+ update(updater: (prev: T) => T): boolean;
15
+ subscribe(subscriber: (snapshot: VersionedSnapshot<T>) => void): () => void;
16
+ pull(sinceVersion?: number): Promise<VersionedSnapshot<T>>;
17
+ }
@@ -40,7 +40,7 @@ export declare class Scene {
40
40
  elements?: ElementsMapOrArray;
41
41
  includeBoundTextElement?: boolean;
42
42
  includeElementsInFrames?: boolean;
43
- }): NonDeleted<ExcalidrawElement>[];
43
+ }): NonDeletedExcalidrawElement[];
44
44
  getNonDeletedFramesLikes(): readonly NonDeleted<ExcalidrawFrameLikeElement>[];
45
45
  getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
46
46
  getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
@@ -63,14 +63,16 @@ export declare class Scene {
63
63
  triggerUpdate(): void;
64
64
  onUpdate(cb: SceneStateCallback): SceneStateCallbackRemover;
65
65
  destroy(): void;
66
- insertElementAtIndex(element: ExcalidrawElement, index: number): void;
67
- insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
66
+ /** low-level - generally use app.insertNewElements() */
67
+ insertElementsAtIndex(elements: ExcalidrawElement[],
68
+ /** null indicates end of the array */
69
+ index: number | null): void;
70
+ /** low-level - generally use app.insertNewElement() */
68
71
  insertElement: (element: ExcalidrawElement) => void;
69
- insertElements: (elements: ExcalidrawElement[]) => void;
70
72
  getElementIndex(elementId: string): number;
71
73
  getContainerElement: (element: (ExcalidrawElement & {
72
74
  containerId: ExcalidrawElement["id"] | null;
73
- }) | null) => import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | null;
75
+ }) | null) => import("@excalidraw/element/types").ExcalidrawLinearElement | import("@excalidraw/element/types").ExcalidrawSelectionElement | import("@excalidraw/element/types").ExcalidrawRectangleElement | import("@excalidraw/element/types").ExcalidrawStickyNoteElement | import("@excalidraw/element/types").ExcalidrawDiamondElement | import("@excalidraw/element/types").ExcalidrawEllipseElement | import("@excalidraw/element/types").ExcalidrawEmbeddableElement | import("@excalidraw/element/types").ExcalidrawIframeElement | import("@excalidraw/element/types").ExcalidrawImageElement | import("@excalidraw/element/types").ExcalidrawFrameElement | import("@excalidraw/element/types").ExcalidrawMagicFrameElement | import("@excalidraw/element/types").ExcalidrawTextElement | import("@excalidraw/element/types").ExcalidrawFreeDrawElement | null;
74
76
  getElementsFromId: (id: string) => ExcalidrawElement[];
75
77
  mutateElement<TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, options?: {
76
78
  informMutation: boolean;
@@ -1,8 +1,8 @@
1
1
  import type { AppState } from "@excalidraw/excalidraw/types";
2
2
  import type { Scene } from "./Scene";
3
- import type { ExcalidrawElement } from "./types";
3
+ import type { NonDeletedExcalidrawElement } from "./types";
4
4
  export interface Alignment {
5
5
  position: "start" | "center" | "end";
6
6
  axis: "x" | "y";
7
7
  }
8
- export declare const alignElements: (selectedElements: ExcalidrawElement[], alignment: Alignment, scene: Scene, appState: Readonly<AppState>) => ExcalidrawElement[];
8
+ export declare const alignElements: (selectedElements: NonDeletedExcalidrawElement[], alignment: Alignment, scene: Scene, appState: Readonly<AppState>) => NonDeletedExcalidrawElement[];