@dwelle/excalidraw 0.5.0-da1c822 → 0.5.0-e56eec7

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 (382) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-RHODGCTM.js → blockDiagram-91b80b7a-NRABZKZA.js} +6 -6
  3. package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-W7NCR7LR.js → c4Diagram-b2a90758-56M32CJD.js} +4 -4
  4. package/dist/browser/dev/excalidraw-assets-dev/{chunk-TKRIVTWP.js → chunk-5EDB2FTV.js} +3 -3
  5. package/dist/browser/dev/excalidraw-assets-dev/{chunk-52OGG53V.js → chunk-6VTJEXQH.js} +3 -3
  6. package/dist/browser/dev/excalidraw-assets-dev/{chunk-J5HRUYQR.js → chunk-AKQDHN2W.js} +2 -2
  7. package/dist/browser/dev/excalidraw-assets-dev/chunk-AKQDHN2W.js.map +7 -0
  8. package/dist/browser/dev/excalidraw-assets-dev/{chunk-GF7VCOUM.js → chunk-C4OL7SRI.js} +3 -3
  9. package/dist/browser/dev/excalidraw-assets-dev/{chunk-BESQLMCW.js → chunk-E47I6Q7O.js} +5 -5
  10. package/dist/browser/dev/excalidraw-assets-dev/{chunk-UETNA2WX.js → chunk-KDIPICHB.js} +6377 -4340
  11. package/dist/browser/dev/excalidraw-assets-dev/chunk-KDIPICHB.js.map +7 -0
  12. package/dist/browser/dev/excalidraw-assets-dev/{chunk-5747M6KP.js → chunk-OH2YDYHX.js} +3 -3
  13. package/dist/browser/dev/excalidraw-assets-dev/{chunk-GPOYIZPX.js → chunk-PXBR5CBM.js} +28 -28
  14. package/dist/browser/dev/excalidraw-assets-dev/chunk-PXBR5CBM.js.map +7 -0
  15. package/dist/browser/dev/excalidraw-assets-dev/{chunk-GCA4S2OA.js → chunk-RTA6DTUV.js} +3 -3
  16. package/dist/browser/dev/excalidraw-assets-dev/{chunk-DQOPSCYA.js → chunk-TTH3BTHQ.js} +3 -3
  17. package/dist/browser/dev/excalidraw-assets-dev/{chunk-B2MHJWXZ.js → chunk-U4N7TEPH.js} +2 -2
  18. package/dist/browser/dev/excalidraw-assets-dev/{chunk-QFS4M5OJ.js → chunk-V3PA4IDR.js} +3 -3
  19. package/dist/browser/dev/excalidraw-assets-dev/{chunk-SLLUETBM.js → chunk-WFT6ZJE6.js} +7 -7
  20. package/dist/browser/dev/excalidraw-assets-dev/{chunk-PPHFJLL7.js → chunk-XZKEYTKS.js} +4 -4
  21. package/dist/browser/dev/excalidraw-assets-dev/{chunk-USLWOHUZ.js → chunk-YC6VTXEO.js} +4 -4
  22. package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-GJGBT4TV.js → classDiagram-30eddba6-EZJVINS6.js} +6 -6
  23. package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-LYWTIPJA.js → classDiagram-v2-f2df5561-XSUIN44A.js} +9 -9
  24. package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-UREMLRIT.js → directory-open-01563666-KOK2HSB6.js} +2 -2
  25. package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-UN3BUDZZ.js → directory-open-4ed118d0-P3Q3CLF3.js} +2 -2
  26. package/dist/browser/dev/excalidraw-assets-dev/dist-O6HOTHQF.js +10 -0
  27. package/dist/browser/dev/excalidraw-assets-dev/{en-UW5C5KGW.js → en-PSBMWL4S.js} +2 -2
  28. package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-Z7U2XW2Y.js → erDiagram-47591fe2-U7FLWOG3.js} +5 -5
  29. package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-4QG336MG.js → file-open-002ab408-EQEHGU2J.js} +2 -2
  30. package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-3QI4ICCL.js → file-open-7c801643-QQT6O7P5.js} +2 -2
  31. package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-TNNERCWV.js → file-save-3189631c-YXX2C7C6.js} +2 -2
  32. package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-JFMH565P.js → file-save-745eba88-7G554KTZ.js} +2 -2
  33. package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-PARVG263.js → flowDiagram-5540d9b9-F2VP4JAA.js} +10 -10
  34. package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-ZJOPVRMB.js → flowDiagram-v2-3b53844e-2WQZZRND.js} +10 -10
  35. package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-ULPNBSZX.js → flowchart-elk-definition-5fe447d6-IW6O2F6C.js} +6 -6
  36. package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-ESSYVTJ4.js → ganttDiagram-9a3bba1f-B5RH7ZAO.js} +3 -3
  37. package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-6V6VVNNP.js → gitGraphDiagram-96e6b4ee-INGQRNLZ.js} +3 -3
  38. package/dist/browser/dev/excalidraw-assets-dev/{image-ZNQQXS62.css → image-FDQLNM24.css} +39 -16
  39. package/dist/browser/dev/excalidraw-assets-dev/image-FDQLNM24.css.map +7 -0
  40. package/dist/browser/dev/excalidraw-assets-dev/{image-3LTGFHLF.js → image-GMAHLVER.js} +6 -6
  41. package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-KTX27DAY.js → image-blob-reduce.esm-OX75MRP3.js} +2 -2
  42. package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-I22FLFX3.js → infoDiagram-bcd20f53-43FMAUOR.js} +3 -3
  43. package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-WAO6F52C.js → journeyDiagram-4fe6b3dc-KFVOUX4I.js} +4 -4
  44. package/dist/browser/dev/excalidraw-assets-dev/{katex-NWA2YFOP.js → katex-A3GRORPB.js} +2 -2
  45. package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-K74IKX4Y.js → mindmap-definition-f354de21-D7S3CRQ4.js} +4 -4
  46. package/dist/browser/dev/excalidraw-assets-dev/{pica-3TH2EGXR.js → pica-ZAD7MTGA.js} +2 -2
  47. package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-DOB2LVE5.js → pieDiagram-79897490-OON2CRZ5.js} +3 -3
  48. package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-MJV2X7WI.js → quadrantDiagram-62f64e94-5APTNVVS.js} +3 -3
  49. package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-H4YM3XN7.js → requirementDiagram-05bf5f74-FM7WZVKU.js} +5 -5
  50. package/dist/browser/dev/excalidraw-assets-dev/{roundRect-4S3QV2NZ.js → roundRect-AYYHVX5X.js} +2 -2
  51. package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-7X74ABAN.js → sankeyDiagram-97764748-5HLEFFGY.js} +3 -3
  52. package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-PPDIJFQP.js → sequenceDiagram-acc0e65c-4ZRSNGPV.js} +4 -4
  53. package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-JVBR7N35.js → stateDiagram-0ff1cf1a-OLTPYRPP.js} +6 -6
  54. package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-QYAJLQJH.js → stateDiagram-v2-9a9d610d-N3XOTAEE.js} +9 -9
  55. package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-GL7U3WDB.js → timeline-definition-fea2a41d-5PDFIYJQ.js} +3 -3
  56. package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-4U4JE4TW.js → xychartDiagram-ab372869-VIWBP45Y.js} +4 -4
  57. package/dist/browser/dev/index.css +38 -15
  58. package/dist/browser/dev/index.css.map +2 -2
  59. package/dist/browser/dev/index.js +9 -5
  60. package/dist/browser/prod/excalidraw-assets/ar-SA-JA6F2FMJ-MVAFRXH2.js +10 -0
  61. package/dist/browser/prod/excalidraw-assets/az-AZ-GVIENQVH-DULWV7IG.js +1 -0
  62. package/dist/browser/prod/excalidraw-assets/bg-BG-YFNNHCEP-TOMMDX7A.js +5 -0
  63. package/dist/browser/prod/excalidraw-assets/{blockDiagram-91b80b7a-BO7MW3VX.js → blockDiagram-91b80b7a-ZBW6LBXS.js} +1 -1
  64. package/dist/browser/prod/excalidraw-assets/bn-BD-LMEIWSRD-U6EPN6XJ.js +5 -0
  65. package/dist/browser/prod/excalidraw-assets/{c4Diagram-b2a90758-VCUPBVHR.js → c4Diagram-b2a90758-GET6IFET.js} +1 -1
  66. package/dist/browser/prod/excalidraw-assets/ca-ES-C2WGCLOT-4Q2376G3.js +8 -0
  67. package/dist/browser/prod/excalidraw-assets/{chunk-O77Z7CWL.js → chunk-2UGPV7X3.js} +1 -1
  68. package/dist/browser/prod/excalidraw-assets/{chunk-B7CDQVNY.js → chunk-364WSJPQ.js} +21 -21
  69. package/dist/browser/prod/excalidraw-assets/{chunk-NM5B2RBP.js → chunk-4FM7RPKW.js} +1 -1
  70. package/dist/browser/prod/excalidraw-assets/{chunk-CVEF66PS.js → chunk-4SHJFNCN.js} +1 -1
  71. package/dist/browser/prod/excalidraw-assets/{chunk-22FVL4I7.js → chunk-6TNDONBF.js} +1 -1
  72. package/dist/browser/prod/excalidraw-assets/{chunk-QLNFR4AJ.js → chunk-BJTCWAK5.js} +1 -1
  73. package/dist/browser/prod/excalidraw-assets/chunk-CKRG5LOX.js +335 -0
  74. package/dist/browser/prod/excalidraw-assets/{chunk-3HZHH3PT.js → chunk-IW42BK4V.js} +1 -1
  75. package/dist/browser/prod/excalidraw-assets/{chunk-4JYQ3563.js → chunk-MRQWXP64.js} +1 -1
  76. package/dist/browser/prod/excalidraw-assets/{chunk-VXFFPRP2.js → chunk-OG2UUKMT.js} +1 -1
  77. package/dist/browser/prod/excalidraw-assets/chunk-Q6QP4TRB.js +11 -0
  78. package/dist/browser/prod/excalidraw-assets/{chunk-V7HUISEN.js → chunk-QBYA3CCP.js} +1 -1
  79. package/dist/browser/prod/excalidraw-assets/{chunk-5PWM36DG.js → chunk-S3O7MXSU.js} +1 -1
  80. package/dist/browser/prod/excalidraw-assets/chunk-SJBOQTFA.js +1 -0
  81. package/dist/browser/prod/excalidraw-assets/{chunk-3VCRCP5J.js → chunk-T7MBBIYG.js} +1 -1
  82. package/dist/browser/prod/excalidraw-assets/{chunk-HPA5W5VE.js → chunk-X7R4RA7C.js} +1 -1
  83. package/dist/browser/prod/excalidraw-assets/{chunk-7UJZVYSR.js → chunk-Y3NNVSMP.js} +1 -1
  84. package/dist/browser/prod/excalidraw-assets/{classDiagram-30eddba6-VXGNM3LI.js → classDiagram-30eddba6-MJ5GZSCE.js} +1 -1
  85. package/dist/browser/prod/excalidraw-assets/{classDiagram-v2-f2df5561-YALTASVE.js → classDiagram-v2-f2df5561-FU5PRXDD.js} +1 -1
  86. package/dist/browser/prod/excalidraw-assets/cs-CZ-F2NDIQMB-4NMYRMO2.js +11 -0
  87. package/dist/browser/prod/excalidraw-assets/da-DK-WBEQB3CJ-6YAF4DNI.js +5 -0
  88. package/dist/browser/prod/excalidraw-assets/de-DE-VEIMCP7R-NSRLPHDI.js +8 -0
  89. package/dist/browser/prod/excalidraw-assets/{directory-open-01563666-JWXY2QSC.js → directory-open-01563666-UG2J4T6L.js} +1 -1
  90. package/dist/browser/prod/excalidraw-assets/{directory-open-4ed118d0-6AL5X37W.js → directory-open-4ed118d0-FGQD6TMW.js} +1 -1
  91. package/dist/browser/prod/excalidraw-assets/dist-LI3DBBWR.js +1 -0
  92. package/dist/browser/prod/excalidraw-assets/el-GR-TKRKG5GQ-6N4GY2DI.js +10 -0
  93. package/dist/browser/prod/excalidraw-assets/{en-CPU3UVKT.js → en-MPFDZHEH.js} +1 -1
  94. package/dist/browser/prod/excalidraw-assets/en-Q552WR7L-QAV42NF3.js +1 -0
  95. package/dist/browser/prod/excalidraw-assets/{erDiagram-47591fe2-GKYANCN7.js → erDiagram-47591fe2-YGAMNOK6.js} +1 -1
  96. package/dist/browser/prod/excalidraw-assets/es-ES-TOLWEZNW-ODY4LX7F.js +9 -0
  97. package/dist/browser/prod/excalidraw-assets/eu-ES-7CDRJQWJ-KF3KSB2X.js +11 -0
  98. package/dist/browser/prod/excalidraw-assets/fa-IR-527E2XGU-WLLGMWYR.js +8 -0
  99. package/dist/browser/prod/excalidraw-assets/fi-FI-NLQ7RQGZ-EZLGQEWF.js +6 -0
  100. package/dist/browser/prod/excalidraw-assets/{file-open-002ab408-3EPJOH45.js → file-open-002ab408-WLX7QPS6.js} +1 -1
  101. package/dist/browser/prod/excalidraw-assets/{file-open-7c801643-QIP6HK4D.js → file-open-7c801643-YB6IH3XI.js} +1 -1
  102. package/dist/browser/prod/excalidraw-assets/{file-save-3189631c-4TQJBQCS.js → file-save-3189631c-MRYCXU63.js} +1 -1
  103. package/dist/browser/prod/excalidraw-assets/{file-save-745eba88-C4L3ZGCC.js → file-save-745eba88-UZEDMFLR.js} +1 -1
  104. package/dist/browser/prod/excalidraw-assets/{flowDiagram-5540d9b9-QBRW5SLP.js → flowDiagram-5540d9b9-V23UQWYJ.js} +1 -1
  105. package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-UDC2ZAFT.js +1 -0
  106. package/dist/browser/prod/excalidraw-assets/{flowchart-elk-definition-5fe447d6-YYO2EYKS.js → flowchart-elk-definition-5fe447d6-N3ISH6AG.js} +1 -1
  107. package/dist/browser/prod/excalidraw-assets/fr-FR-KUHO4FLU-2OW7FE5V.js +9 -0
  108. package/dist/browser/prod/excalidraw-assets/{ganttDiagram-9a3bba1f-3B2DUUUQ.js → ganttDiagram-9a3bba1f-7SAN2TXA.js} +1 -1
  109. package/dist/browser/prod/excalidraw-assets/{gitGraphDiagram-96e6b4ee-G6CKXXWQ.js → gitGraphDiagram-96e6b4ee-EXV6PWXL.js} +1 -1
  110. package/dist/browser/prod/excalidraw-assets/gl-ES-NEXX3VBB-TESFDR6O.js +10 -0
  111. package/dist/browser/prod/excalidraw-assets/he-IL-MED2VGBZ-N4VYRCHF.js +10 -0
  112. package/dist/browser/prod/excalidraw-assets/hi-IN-5V633W7V-4VXVQ6GE.js +4 -0
  113. package/dist/browser/prod/excalidraw-assets/hu-HU-2FOZGVGR-7CHHZRPD.js +7 -0
  114. package/dist/browser/prod/excalidraw-assets/id-ID-I6BOLXTF-ULJRGCTU.js +10 -0
  115. package/dist/browser/prod/excalidraw-assets/image-ZKACJTPS.js +1 -0
  116. package/dist/browser/prod/excalidraw-assets/{image-blob-reduce.esm-5DTGAOOI.js → image-blob-reduce.esm-GOFU5DPX.js} +1 -1
  117. package/dist/browser/prod/excalidraw-assets/{infoDiagram-bcd20f53-WJTZJERL.js → infoDiagram-bcd20f53-LJZ36XP5.js} +1 -1
  118. package/dist/browser/prod/excalidraw-assets/it-IT-WKPQOK4P-C3FTW2QG.js +11 -0
  119. package/dist/browser/prod/excalidraw-assets/ja-JP-VKA4ISRU-EBXFDMUP.js +8 -0
  120. package/dist/browser/prod/excalidraw-assets/{journeyDiagram-4fe6b3dc-JF22KXXQ.js → journeyDiagram-4fe6b3dc-TFRSU2KH.js} +1 -1
  121. package/dist/browser/prod/excalidraw-assets/kaa-IKPRSBNY-URJPWZZH.js +1 -0
  122. package/dist/browser/prod/excalidraw-assets/kab-KAB-IE4PHQTZ-OMISFOMM.js +8 -0
  123. package/dist/browser/prod/excalidraw-assets/{katex-N6R5DPQX.js → katex-HAQKNIIQ.js} +1 -1
  124. package/dist/browser/prod/excalidraw-assets/kk-KZ-MNJT6XSV-56OVE4EH.js +1 -0
  125. package/dist/browser/prod/excalidraw-assets/km-KH-LADGDFXV-KI7V2Z5A.js +11 -0
  126. package/dist/browser/prod/excalidraw-assets/ko-KR-XD7AVF2F-EFYGITKM.js +9 -0
  127. package/dist/browser/prod/excalidraw-assets/ku-TR-4XBHKDQA-U25XLPMW.js +9 -0
  128. package/dist/browser/prod/excalidraw-assets/lt-LT-QC35R4YH-6TDSRONI.js +3 -0
  129. package/dist/browser/prod/excalidraw-assets/lv-LV-GSD5D3BA-KMXM2FQ7.js +7 -0
  130. package/dist/browser/prod/excalidraw-assets/{mindmap-definition-f354de21-7SH5STU3.js → mindmap-definition-f354de21-J3C2WSJB.js} +1 -1
  131. package/dist/browser/prod/excalidraw-assets/mr-IN-KOLSWM7Y-NVYC6JCO.js +13 -0
  132. package/dist/browser/prod/excalidraw-assets/my-MM-M53KMUET-A2ORJJ2D.js +1 -0
  133. package/dist/browser/prod/excalidraw-assets/nb-NO-XXC6U37A-L4O4DGCC.js +10 -0
  134. package/dist/browser/prod/excalidraw-assets/nl-NL-HCCJQEUO-7Q2LV5NM.js +8 -0
  135. package/dist/browser/prod/excalidraw-assets/nn-NO-6P7Z2PI2-TUT2PFEE.js +8 -0
  136. package/dist/browser/prod/excalidraw-assets/oc-FR-JRJKPLNT-SBQHJH7X.js +8 -0
  137. package/dist/browser/prod/excalidraw-assets/pa-IN-LZWLEPIB-7NKOXI65.js +4 -0
  138. package/dist/browser/prod/excalidraw-assets/percentages-UCQDHIQF-Q4IM6ZEB.js +1 -0
  139. package/dist/browser/prod/excalidraw-assets/{pica-KWHN2PJ6.js → pica-ABPXE5C5.js} +1 -1
  140. package/dist/browser/prod/excalidraw-assets/{pieDiagram-79897490-5O5EBEQB.js → pieDiagram-79897490-FMJ3ZAF7.js} +1 -1
  141. package/dist/browser/prod/excalidraw-assets/pl-PL-3WBLCXI2-E2SMTIVM.js +9 -0
  142. package/dist/browser/prod/excalidraw-assets/pt-BR-O3ZPTUNW-RS7M7EKX.js +9 -0
  143. package/dist/browser/prod/excalidraw-assets/pt-PT-7AQTSAFO-AEANJ2UN.js +9 -0
  144. package/dist/browser/prod/excalidraw-assets/{quadrantDiagram-62f64e94-JTY6WOKB.js → quadrantDiagram-62f64e94-YI32TPUI.js} +1 -1
  145. package/dist/browser/prod/excalidraw-assets/{requirementDiagram-05bf5f74-TSFQFY5X.js → requirementDiagram-05bf5f74-UO2ATL3U.js} +1 -1
  146. package/dist/browser/prod/excalidraw-assets/ro-RO-HJ65JYWV-35XNZ4QJ.js +11 -0
  147. package/dist/browser/prod/excalidraw-assets/{roundRect-PUCZURYS.js → roundRect-UKQBLFKQ.js} +1 -1
  148. package/dist/browser/prod/excalidraw-assets/ru-RU-P7ROIYNC-ERPG3GJT.js +9 -0
  149. package/dist/browser/prod/excalidraw-assets/{sankeyDiagram-97764748-7G2R6W67.js → sankeyDiagram-97764748-3RR36435.js} +1 -1
  150. package/dist/browser/prod/excalidraw-assets/{sequenceDiagram-acc0e65c-CTANNZCO.js → sequenceDiagram-acc0e65c-G2Q6J4UN.js} +1 -1
  151. package/dist/browser/prod/excalidraw-assets/si-LK-7ZSWVION-YHKN25MU.js +1 -0
  152. package/dist/browser/prod/excalidraw-assets/sk-SK-NXVBGLYY-IKQZT26E.js +6 -0
  153. package/dist/browser/prod/excalidraw-assets/sl-SI-VFTWOYNP-UPLNMI3E.js +6 -0
  154. package/dist/browser/prod/excalidraw-assets/{stateDiagram-0ff1cf1a-I5COLKZ4.js → stateDiagram-0ff1cf1a-QEYVXCSB.js} +1 -1
  155. package/dist/browser/prod/excalidraw-assets/{stateDiagram-v2-9a9d610d-IIHI3AJN.js → stateDiagram-v2-9a9d610d-3VKD7UYK.js} +1 -1
  156. package/dist/browser/prod/excalidraw-assets/sv-SE-YONBLQNW-ZG4TE7PV.js +10 -0
  157. package/dist/browser/prod/excalidraw-assets/ta-IN-BSETPMLX-FC54FMQJ.js +9 -0
  158. package/dist/browser/prod/excalidraw-assets/th-TH-URTRDITB-K6QQ2PRO.js +2 -0
  159. package/dist/browser/prod/excalidraw-assets/{timeline-definition-fea2a41d-CXTGKWI4.js → timeline-definition-fea2a41d-H4D6IYVJ.js} +1 -1
  160. package/dist/browser/prod/excalidraw-assets/tr-TR-N5SCAVTB-HMUEG6DN.js +7 -0
  161. package/dist/browser/prod/excalidraw-assets/uk-UA-LBCYVSQZ-DEJZCNRZ.js +6 -0
  162. package/dist/browser/prod/excalidraw-assets/vi-VN-POZWLIUU-EY6QFLQV.js +5 -0
  163. package/dist/browser/prod/excalidraw-assets/{xychartDiagram-ab372869-QZGPPHJP.js → xychartDiagram-ab372869-SUXFHV53.js} +1 -1
  164. package/dist/browser/prod/excalidraw-assets/zh-CN-FUF5V3SC-5UIL2T3T.js +10 -0
  165. package/dist/browser/prod/excalidraw-assets/zh-HK-OB4VW42C-3ID2CCZJ.js +1 -0
  166. package/dist/browser/prod/excalidraw-assets/zh-TW-5JPVKOM7-VUPJBABS.js +9 -0
  167. package/dist/browser/prod/index.css +1 -1
  168. package/dist/browser/prod/index.js +128 -1
  169. package/dist/dev/{en-R7FEFJGC.json → en-Q552WR7L.json} +1 -1
  170. package/dist/dev/index.css +38 -15
  171. package/dist/dev/index.css.map +2 -2
  172. package/dist/dev/index.js +4575 -2598
  173. package/dist/dev/index.js.map +4 -4
  174. package/dist/excalidraw/actions/actionAddToLibrary.d.ts +4 -4
  175. package/dist/excalidraw/actions/actionAddToLibrary.js +4 -3
  176. package/dist/excalidraw/actions/actionAlign.d.ts +20 -20
  177. package/dist/excalidraw/actions/actionAlign.js +7 -6
  178. package/dist/excalidraw/actions/actionBoundText.d.ts +7 -7
  179. package/dist/excalidraw/actions/actionBoundText.js +8 -4
  180. package/dist/excalidraw/actions/actionCanvas.d.ts +49 -49
  181. package/dist/excalidraw/actions/actionCanvas.js +16 -13
  182. package/dist/excalidraw/actions/actionClipboard.d.ts +24 -24
  183. package/dist/excalidraw/actions/actionClipboard.js +14 -13
  184. package/dist/excalidraw/actions/actionDeleteSelected.d.ts +8 -8
  185. package/dist/excalidraw/actions/actionDeleteSelected.js +6 -3
  186. package/dist/excalidraw/actions/actionDistribute.d.ts +8 -8
  187. package/dist/excalidraw/actions/actionDistribute.js +3 -2
  188. package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +5 -6
  189. package/dist/excalidraw/actions/actionDuplicateSelection.js +7 -3
  190. package/dist/excalidraw/actions/actionElementLock.d.ts +8 -8
  191. package/dist/excalidraw/actions/actionElementLock.js +3 -2
  192. package/dist/excalidraw/actions/actionExport.d.ts +36 -36
  193. package/dist/excalidraw/actions/actionExport.js +15 -11
  194. package/dist/excalidraw/actions/actionFinalize.d.ts +8 -8
  195. package/dist/excalidraw/actions/actionFinalize.js +9 -5
  196. package/dist/excalidraw/actions/actionFlip.d.ts +9 -9
  197. package/dist/excalidraw/actions/actionFlip.js +10 -9
  198. package/dist/excalidraw/actions/actionFrame.d.ts +14 -169
  199. package/dist/excalidraw/actions/actionFrame.js +7 -6
  200. package/dist/excalidraw/actions/actionGroup.d.ts +11 -321
  201. package/dist/excalidraw/actions/actionGroup.js +9 -11
  202. package/dist/excalidraw/actions/actionHistory.d.ts +3 -2
  203. package/dist/excalidraw/actions/actionHistory.js +27 -28
  204. package/dist/excalidraw/actions/actionLinearEditor.d.ts +2 -2
  205. package/dist/excalidraw/actions/actionLinearEditor.js +2 -1
  206. package/dist/excalidraw/actions/actionLink.d.ts +5 -5
  207. package/dist/excalidraw/actions/actionLink.js +2 -1
  208. package/dist/excalidraw/actions/actionMenu.d.ts +8 -8
  209. package/dist/excalidraw/actions/actionMenu.js +4 -3
  210. package/dist/excalidraw/actions/actionNavigate.d.ts +3 -3
  211. package/dist/excalidraw/actions/actionNavigate.js +3 -2
  212. package/dist/excalidraw/actions/actionProperties.d.ts +32 -32
  213. package/dist/excalidraw/actions/actionProperties.js +18 -13
  214. package/dist/excalidraw/actions/actionSelectAll.d.ts +4 -4
  215. package/dist/excalidraw/actions/actionSelectAll.js +2 -1
  216. package/dist/excalidraw/actions/actionStyles.d.ts +9 -12
  217. package/dist/excalidraw/actions/actionStyles.js +4 -3
  218. package/dist/excalidraw/actions/actionToggleGridMode.d.ts +6 -4
  219. package/dist/excalidraw/actions/actionToggleGridMode.js +6 -2
  220. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +4 -4
  221. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.js +2 -1
  222. package/dist/excalidraw/actions/actionToggleStats.d.ts +4 -4
  223. package/dist/excalidraw/actions/actionToggleStats.js +2 -1
  224. package/dist/excalidraw/actions/actionToggleViewMode.d.ts +4 -4
  225. package/dist/excalidraw/actions/actionToggleViewMode.js +2 -1
  226. package/dist/excalidraw/actions/actionToggleZenMode.d.ts +4 -4
  227. package/dist/excalidraw/actions/actionToggleZenMode.js +2 -1
  228. package/dist/excalidraw/actions/actionZindex.d.ts +19 -19
  229. package/dist/excalidraw/actions/actionZindex.js +5 -4
  230. package/dist/excalidraw/actions/manager.d.ts +3 -3
  231. package/dist/excalidraw/actions/types.d.ts +4 -4
  232. package/dist/excalidraw/appState.d.ts +5 -5
  233. package/dist/excalidraw/change.d.ts +191 -0
  234. package/dist/excalidraw/change.js +894 -0
  235. package/dist/excalidraw/components/App.d.ts +22 -7
  236. package/dist/excalidraw/components/App.js +340 -130
  237. package/dist/excalidraw/components/CommandPalette/CommandPalette.js +1 -0
  238. package/dist/excalidraw/components/HelpDialog.js +1 -1
  239. package/dist/excalidraw/components/Sidebar/Sidebar.d.ts +2 -2
  240. package/dist/excalidraw/components/Stack.d.ts +2 -2
  241. package/dist/excalidraw/components/ToolButton.d.ts +1 -0
  242. package/dist/excalidraw/components/ToolButton.js +1 -1
  243. package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -1
  244. package/dist/excalidraw/components/canvases/InteractiveCanvas.js +1 -0
  245. package/dist/excalidraw/components/hyperlink/Hyperlink.js +3 -3
  246. package/dist/excalidraw/components/hyperlink/helpers.js +2 -3
  247. package/dist/excalidraw/components/icons.d.ts +1 -0
  248. package/dist/excalidraw/components/icons.js +1 -0
  249. package/dist/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  250. package/dist/excalidraw/constants.d.ts +3 -3
  251. package/dist/excalidraw/constants.js +6 -3
  252. package/dist/excalidraw/data/reconcile.d.ts +6 -0
  253. package/dist/excalidraw/data/reconcile.js +49 -0
  254. package/dist/excalidraw/data/restore.d.ts +3 -3
  255. package/dist/excalidraw/data/restore.js +6 -7
  256. package/dist/excalidraw/data/transform.d.ts +1 -1
  257. package/dist/excalidraw/data/transform.js +4 -3
  258. package/dist/excalidraw/data/url.d.ts +1 -0
  259. package/dist/excalidraw/data/url.js +4 -1
  260. package/dist/excalidraw/element/binding.d.ts +64 -9
  261. package/dist/excalidraw/element/binding.js +634 -96
  262. package/dist/excalidraw/element/bounds.d.ts +0 -1
  263. package/dist/excalidraw/element/bounds.js +0 -3
  264. package/dist/excalidraw/element/collision.d.ts +14 -19
  265. package/dist/excalidraw/element/collision.js +36 -713
  266. package/dist/excalidraw/element/embeddable.d.ts +7 -4
  267. package/dist/excalidraw/element/embeddable.js +88 -27
  268. package/dist/excalidraw/element/index.d.ts +0 -1
  269. package/dist/excalidraw/element/index.js +0 -1
  270. package/dist/excalidraw/element/linearElementEditor.d.ts +11 -11
  271. package/dist/excalidraw/element/linearElementEditor.js +7 -5
  272. package/dist/excalidraw/element/mutateElement.d.ts +1 -2
  273. package/dist/excalidraw/element/newElement.d.ts +1 -1
  274. package/dist/excalidraw/element/newElement.js +2 -1
  275. package/dist/excalidraw/element/resizeElements.d.ts +1 -1
  276. package/dist/excalidraw/element/resizeElements.js +110 -86
  277. package/dist/excalidraw/element/resizeTest.d.ts +4 -4
  278. package/dist/excalidraw/element/resizeTest.js +55 -8
  279. package/dist/excalidraw/element/sizeHelpers.js +3 -0
  280. package/dist/excalidraw/element/textElement.d.ts +1 -2
  281. package/dist/excalidraw/element/textElement.js +5 -34
  282. package/dist/excalidraw/element/transformHandles.d.ts +22 -4
  283. package/dist/excalidraw/element/transformHandles.js +24 -3
  284. package/dist/excalidraw/element/typeChecks.d.ts +2 -2
  285. package/dist/excalidraw/element/types.d.ts +19 -6
  286. package/dist/excalidraw/errors.d.ts +3 -0
  287. package/dist/excalidraw/errors.js +3 -0
  288. package/dist/excalidraw/fractionalIndex.d.ts +40 -0
  289. package/dist/excalidraw/fractionalIndex.js +241 -0
  290. package/dist/excalidraw/frame.d.ts +1 -1
  291. package/dist/excalidraw/groups.d.ts +2 -0
  292. package/dist/excalidraw/groups.js +17 -0
  293. package/dist/excalidraw/history.d.ts +34 -46
  294. package/dist/excalidraw/history.js +100 -167
  295. package/dist/excalidraw/hooks/useEmitter.d.ts +2 -0
  296. package/dist/excalidraw/hooks/useEmitter.js +13 -0
  297. package/dist/excalidraw/index.d.ts +2 -0
  298. package/dist/excalidraw/index.js +2 -0
  299. package/dist/excalidraw/locales/en.json +1 -1
  300. package/dist/excalidraw/renderer/interactiveScene.d.ts +1 -1
  301. package/dist/excalidraw/renderer/interactiveScene.js +8 -7
  302. package/dist/excalidraw/renderer/staticScene.js +14 -3
  303. package/dist/excalidraw/renderer/staticSvgScene.js +10 -0
  304. package/dist/excalidraw/scene/Scene.d.ts +7 -6
  305. package/dist/excalidraw/scene/Scene.js +31 -16
  306. package/dist/excalidraw/scene/export.js +2 -1
  307. package/dist/excalidraw/scene/types.d.ts +2 -1
  308. package/dist/excalidraw/store.d.ts +99 -0
  309. package/dist/excalidraw/store.js +269 -0
  310. package/dist/excalidraw/types.d.ts +18 -4
  311. package/dist/excalidraw/utils.d.ts +6 -0
  312. package/dist/excalidraw/utils.js +7 -0
  313. package/dist/excalidraw/zindex.d.ts +2 -2
  314. package/dist/excalidraw/zindex.js +9 -13
  315. package/dist/prod/{en-R7FEFJGC.json → en-Q552WR7L.json} +1 -1
  316. package/dist/prod/index.css +1 -1
  317. package/dist/prod/index.js +44 -44
  318. package/dist/utils/collision.d.ts +4 -0
  319. package/dist/utils/collision.js +48 -0
  320. package/dist/utils/geometry/geometry.d.ts +71 -0
  321. package/dist/utils/geometry/geometry.js +674 -0
  322. package/dist/utils/geometry/shape.d.ts +56 -0
  323. package/dist/utils/geometry/shape.js +168 -0
  324. package/history.ts +161 -216
  325. package/package.json +2 -1
  326. package/dist/browser/dev/excalidraw-assets-dev/chunk-GPOYIZPX.js.map +0 -7
  327. package/dist/browser/dev/excalidraw-assets-dev/chunk-J5HRUYQR.js.map +0 -7
  328. package/dist/browser/dev/excalidraw-assets-dev/chunk-UETNA2WX.js.map +0 -7
  329. package/dist/browser/dev/excalidraw-assets-dev/dist-Y7S5GOTG.js +0 -10
  330. package/dist/browser/dev/excalidraw-assets-dev/image-ZNQQXS62.css.map +0 -7
  331. package/dist/browser/prod/excalidraw-assets/chunk-EEN6AFMH.js +0 -269
  332. package/dist/browser/prod/excalidraw-assets/dist-7FHVDAZ2.js +0 -1
  333. package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-CRHRHP7H.js +0 -1
  334. package/dist/browser/prod/excalidraw-assets/image-VXYNPVOG.js +0 -1
  335. package/dist/browser/prod/excalidraw-assets/image-WE6NA2G6.css +0 -1
  336. /package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-RHODGCTM.js.map → blockDiagram-91b80b7a-NRABZKZA.js.map} +0 -0
  337. /package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-W7NCR7LR.js.map → c4Diagram-b2a90758-56M32CJD.js.map} +0 -0
  338. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-TKRIVTWP.js.map → chunk-5EDB2FTV.js.map} +0 -0
  339. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-52OGG53V.js.map → chunk-6VTJEXQH.js.map} +0 -0
  340. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-GF7VCOUM.js.map → chunk-C4OL7SRI.js.map} +0 -0
  341. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-BESQLMCW.js.map → chunk-E47I6Q7O.js.map} +0 -0
  342. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-5747M6KP.js.map → chunk-OH2YDYHX.js.map} +0 -0
  343. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-GCA4S2OA.js.map → chunk-RTA6DTUV.js.map} +0 -0
  344. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-DQOPSCYA.js.map → chunk-TTH3BTHQ.js.map} +0 -0
  345. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-B2MHJWXZ.js.map → chunk-U4N7TEPH.js.map} +0 -0
  346. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-QFS4M5OJ.js.map → chunk-V3PA4IDR.js.map} +0 -0
  347. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-SLLUETBM.js.map → chunk-WFT6ZJE6.js.map} +0 -0
  348. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-PPHFJLL7.js.map → chunk-XZKEYTKS.js.map} +0 -0
  349. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-USLWOHUZ.js.map → chunk-YC6VTXEO.js.map} +0 -0
  350. /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-GJGBT4TV.js.map → classDiagram-30eddba6-EZJVINS6.js.map} +0 -0
  351. /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-LYWTIPJA.js.map → classDiagram-v2-f2df5561-XSUIN44A.js.map} +0 -0
  352. /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-UREMLRIT.js.map → directory-open-01563666-KOK2HSB6.js.map} +0 -0
  353. /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-UN3BUDZZ.js.map → directory-open-4ed118d0-P3Q3CLF3.js.map} +0 -0
  354. /package/dist/browser/dev/excalidraw-assets-dev/{dist-Y7S5GOTG.js.map → dist-O6HOTHQF.js.map} +0 -0
  355. /package/dist/browser/dev/excalidraw-assets-dev/{en-UW5C5KGW.js.map → en-PSBMWL4S.js.map} +0 -0
  356. /package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-Z7U2XW2Y.js.map → erDiagram-47591fe2-U7FLWOG3.js.map} +0 -0
  357. /package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-4QG336MG.js.map → file-open-002ab408-EQEHGU2J.js.map} +0 -0
  358. /package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-3QI4ICCL.js.map → file-open-7c801643-QQT6O7P5.js.map} +0 -0
  359. /package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-TNNERCWV.js.map → file-save-3189631c-YXX2C7C6.js.map} +0 -0
  360. /package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-JFMH565P.js.map → file-save-745eba88-7G554KTZ.js.map} +0 -0
  361. /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-PARVG263.js.map → flowDiagram-5540d9b9-F2VP4JAA.js.map} +0 -0
  362. /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-ZJOPVRMB.js.map → flowDiagram-v2-3b53844e-2WQZZRND.js.map} +0 -0
  363. /package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-ULPNBSZX.js.map → flowchart-elk-definition-5fe447d6-IW6O2F6C.js.map} +0 -0
  364. /package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-ESSYVTJ4.js.map → ganttDiagram-9a3bba1f-B5RH7ZAO.js.map} +0 -0
  365. /package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-6V6VVNNP.js.map → gitGraphDiagram-96e6b4ee-INGQRNLZ.js.map} +0 -0
  366. /package/dist/browser/dev/excalidraw-assets-dev/{image-3LTGFHLF.js.map → image-GMAHLVER.js.map} +0 -0
  367. /package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-KTX27DAY.js.map → image-blob-reduce.esm-OX75MRP3.js.map} +0 -0
  368. /package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-I22FLFX3.js.map → infoDiagram-bcd20f53-43FMAUOR.js.map} +0 -0
  369. /package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-WAO6F52C.js.map → journeyDiagram-4fe6b3dc-KFVOUX4I.js.map} +0 -0
  370. /package/dist/browser/dev/excalidraw-assets-dev/{katex-NWA2YFOP.js.map → katex-A3GRORPB.js.map} +0 -0
  371. /package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-K74IKX4Y.js.map → mindmap-definition-f354de21-D7S3CRQ4.js.map} +0 -0
  372. /package/dist/browser/dev/excalidraw-assets-dev/{pica-3TH2EGXR.js.map → pica-ZAD7MTGA.js.map} +0 -0
  373. /package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-DOB2LVE5.js.map → pieDiagram-79897490-OON2CRZ5.js.map} +0 -0
  374. /package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-MJV2X7WI.js.map → quadrantDiagram-62f64e94-5APTNVVS.js.map} +0 -0
  375. /package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-H4YM3XN7.js.map → requirementDiagram-05bf5f74-FM7WZVKU.js.map} +0 -0
  376. /package/dist/browser/dev/excalidraw-assets-dev/{roundRect-4S3QV2NZ.js.map → roundRect-AYYHVX5X.js.map} +0 -0
  377. /package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-7X74ABAN.js.map → sankeyDiagram-97764748-5HLEFFGY.js.map} +0 -0
  378. /package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-PPDIJFQP.js.map → sequenceDiagram-acc0e65c-4ZRSNGPV.js.map} +0 -0
  379. /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-JVBR7N35.js.map → stateDiagram-0ff1cf1a-OLTPYRPP.js.map} +0 -0
  380. /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-QYAJLQJH.js.map → stateDiagram-v2-9a9d610d-N3XOTAEE.js.map} +0 -0
  381. /package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-GL7U3WDB.js.map → timeline-definition-fea2a41d-5PDFIYJQ.js.map} +0 -0
  382. /package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-4U4JE4TW.js.map → xychartDiagram-ab372869-VIWBP45Y.js.map} +0 -0
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ColorPicker } from "../components/ColorPicker/ColorPicker";
3
3
  import { handIcon, MoonIcon, SunIcon, TrashIcon, zoomAreaIcon, ZoomInIcon, ZoomOutIcon, ZoomResetIcon, } from "../components/icons";
4
4
  import { ToolButton } from "../components/ToolButton";
5
- import { CURSOR_TYPE, MIN_ZOOM, THEME, ZOOM_STEP } from "../constants";
5
+ import { CURSOR_TYPE, MAX_ZOOM, MIN_ZOOM, THEME, ZOOM_STEP, } from "../constants";
6
6
  import { getCommonBounds, getNonDeletedElements } from "../element";
7
7
  import { t } from "../i18n";
8
8
  import { CODES, KEYS } from "../keys";
@@ -16,6 +16,7 @@ import { newElementWith } from "../element/mutateElement";
16
16
  import { getDefaultAppState, isEraserActive, isHandToolActive, } from "../appState";
17
17
  import { DEFAULT_CANVAS_BACKGROUND_PICKS } from "../colors";
18
18
  import { setCursor } from "../cursor";
19
+ import { StoreAction } from "../store";
19
20
  export const actionChangeViewBackgroundColor = register({
20
21
  name: "changeViewBackgroundColor",
21
22
  label: "labels.canvasBackground",
@@ -28,7 +29,9 @@ export const actionChangeViewBackgroundColor = register({
28
29
  perform: (_, appState, value) => {
29
30
  return {
30
31
  appState: { ...appState, ...value },
31
- commitToHistory: !!value.viewBackgroundColor,
32
+ storeAction: !!value.viewBackgroundColor
33
+ ? StoreAction.CAPTURE
34
+ : StoreAction.NONE,
32
35
  };
33
36
  },
34
37
  PanelComponent: ({ elements, appState, updateData, appProps }) => {
@@ -65,7 +68,7 @@ export const actionClearCanvas = register({
65
68
  ? { ...appState.activeTool, type: "selection" }
66
69
  : appState.activeTool,
67
70
  },
68
- commitToHistory: true,
71
+ storeAction: StoreAction.CAPTURE,
69
72
  };
70
73
  },
71
74
  });
@@ -86,10 +89,10 @@ export const actionZoomIn = register({
86
89
  }, appState),
87
90
  userToFollow: null,
88
91
  },
89
- commitToHistory: false,
92
+ storeAction: StoreAction.NONE,
90
93
  };
91
94
  },
92
- PanelComponent: ({ updateData }) => (_jsx(ToolButton, { type: "button", className: "zoom-in-button zoom-button", icon: ZoomInIcon, title: `${t("buttons.zoomIn")} — ${getShortcutKey("CtrlOrCmd++")}`, "aria-label": t("buttons.zoomIn"), onClick: () => {
95
+ PanelComponent: ({ updateData, appState }) => (_jsx(ToolButton, { type: "button", className: "zoom-in-button zoom-button", icon: ZoomInIcon, title: `${t("buttons.zoomIn")} — ${getShortcutKey("CtrlOrCmd++")}`, "aria-label": t("buttons.zoomIn"), disabled: appState.zoom.value >= MAX_ZOOM, onClick: () => {
93
96
  updateData(null);
94
97
  } })),
95
98
  keyTest: (event) => (event.code === CODES.EQUAL || event.code === CODES.NUM_ADD) &&
@@ -112,10 +115,10 @@ export const actionZoomOut = register({
112
115
  }, appState),
113
116
  userToFollow: null,
114
117
  },
115
- commitToHistory: false,
118
+ storeAction: StoreAction.NONE,
116
119
  };
117
120
  },
118
- PanelComponent: ({ updateData }) => (_jsx(ToolButton, { type: "button", className: "zoom-out-button zoom-button", icon: ZoomOutIcon, title: `${t("buttons.zoomOut")} — ${getShortcutKey("CtrlOrCmd+-")}`, "aria-label": t("buttons.zoomOut"), onClick: () => {
121
+ PanelComponent: ({ updateData, appState }) => (_jsx(ToolButton, { type: "button", className: "zoom-out-button zoom-button", icon: ZoomOutIcon, title: `${t("buttons.zoomOut")} — ${getShortcutKey("CtrlOrCmd+-")}`, "aria-label": t("buttons.zoomOut"), disabled: appState.zoom.value <= MIN_ZOOM, onClick: () => {
119
122
  updateData(null);
120
123
  } })),
121
124
  keyTest: (event) => (event.code === CODES.MINUS || event.code === CODES.NUM_SUBTRACT) &&
@@ -138,7 +141,7 @@ export const actionResetZoom = register({
138
141
  }, appState),
139
142
  userToFollow: null,
140
143
  },
141
- commitToHistory: false,
144
+ storeAction: StoreAction.NONE,
142
145
  };
143
146
  },
144
147
  PanelComponent: ({ updateData, appState }) => (_jsx(Tooltip, { label: t("buttons.resetZoom"), style: { height: "100%" }, children: _jsxs(ToolButton, { type: "button", className: "reset-zoom-button zoom-button", title: t("buttons.resetZoom"), "aria-label": t("buttons.resetZoom"), onClick: () => {
@@ -171,7 +174,7 @@ export const zoomToFitBounds = ({ bounds, appState, fitToViewport = false, viewp
171
174
  newZoomValue =
172
175
  Math.min(appState.width / commonBoundsWidth, appState.height / commonBoundsHeight) * Math.min(1, Math.max(viewportZoomFactor, 0.1));
173
176
  // Apply clamping to newZoomValue to be between 10% and 3000%
174
- newZoomValue = Math.min(Math.max(newZoomValue, 0.1), 30.0);
177
+ newZoomValue = Math.min(Math.max(newZoomValue, MIN_ZOOM), MAX_ZOOM);
175
178
  let appStateWidth = appState.width;
176
179
  if (appState.openSidebar) {
177
180
  const sidebarDOMElem = document.querySelector(".sidebar");
@@ -207,7 +210,7 @@ export const zoomToFitBounds = ({ bounds, appState, fitToViewport = false, viewp
207
210
  scrollY,
208
211
  zoom: { value: newZoomValue },
209
212
  },
210
- commitToHistory: false,
213
+ storeAction: StoreAction.NONE,
211
214
  };
212
215
  };
213
216
  export const zoomToFit = ({ targetElements, appState, fitToViewport, viewportZoomFactor, }) => {
@@ -303,7 +306,7 @@ export const actionToggleTheme = register({
303
306
  ...appState,
304
307
  theme: value || (appState.theme === THEME.LIGHT ? THEME.DARK : THEME.LIGHT),
305
308
  },
306
- commitToHistory: false,
309
+ storeAction: StoreAction.NONE,
307
310
  };
308
311
  },
309
312
  keyTest: (event) => event.altKey && event.shiftKey && event.code === CODES.D,
@@ -339,7 +342,7 @@ export const actionToggleEraserTool = register({
339
342
  activeEmbeddable: null,
340
343
  activeTool,
341
344
  },
342
- commitToHistory: true,
345
+ storeAction: StoreAction.CAPTURE,
343
346
  };
344
347
  },
345
348
  keyTest: (event) => event.key === KEYS.E,
@@ -376,7 +379,7 @@ export const actionToggleHandTool = register({
376
379
  activeEmbeddable: null,
377
380
  activeTool,
378
381
  },
379
- commitToHistory: true,
382
+ storeAction: StoreAction.CAPTURE,
380
383
  };
381
384
  },
382
385
  keyTest: (event) => !event.altKey && !event[KEYS.CTRL_OR_CMD] && event.key === KEYS.H,
@@ -6,8 +6,8 @@ export declare const actionCopy: {
6
6
  trackEvent: {
7
7
  category: "element";
8
8
  };
9
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, event: ClipboardEvent | null, app: import("../types").AppClassProperties) => Promise<{
10
- commitToHistory: false;
9
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, event: ClipboardEvent | null, app: import("../types").AppClassProperties) => Promise<{
10
+ storeAction: import("../store").StoreActionType;
11
11
  appState: {
12
12
  errorMessage: any;
13
13
  contextMenu: {
@@ -161,7 +161,7 @@ export declare const actionCopy: {
161
161
  followedBy: Set<import("../types").SocketId>;
162
162
  };
163
163
  } | {
164
- commitToHistory: false;
164
+ storeAction: import("../store").StoreActionType;
165
165
  appState?: undefined;
166
166
  }>;
167
167
  keyTest: undefined;
@@ -174,8 +174,8 @@ export declare const actionPaste: {
174
174
  trackEvent: {
175
175
  category: "element";
176
176
  };
177
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, data: any, app: import("../types").AppClassProperties) => Promise<false | {
178
- commitToHistory: false;
177
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, data: any, app: import("../types").AppClassProperties) => Promise<false | {
178
+ storeAction: import("../store").StoreActionType;
179
179
  appState: {
180
180
  errorMessage: string;
181
181
  contextMenu: {
@@ -329,7 +329,7 @@ export declare const actionPaste: {
329
329
  followedBy: Set<import("../types").SocketId>;
330
330
  };
331
331
  } | {
332
- commitToHistory: false;
332
+ storeAction: import("../store").StoreActionType;
333
333
  appState?: undefined;
334
334
  }>;
335
335
  keyTest: undefined;
@@ -343,8 +343,8 @@ export declare const actionCut: {
343
343
  trackEvent: {
344
344
  category: "element";
345
345
  };
346
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, event: ClipboardEvent | null, app: import("../types").AppClassProperties) => false | {
347
- elements: import("../element/types").ExcalidrawElement[];
346
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, event: ClipboardEvent | null, app: import("../types").AppClassProperties) => false | {
347
+ elements: import("../element/types").OrderedExcalidrawElement[];
348
348
  appState: {
349
349
  editingLinearElement: null;
350
350
  contextMenu: {
@@ -497,9 +497,9 @@ export declare const actionCut: {
497
497
  userToFollow: import("../types").UserToFollow | null;
498
498
  followedBy: Set<import("../types").SocketId>;
499
499
  };
500
- commitToHistory: false;
500
+ storeAction: import("../store").StoreActionType;
501
501
  } | {
502
- elements: readonly import("../element/types").ExcalidrawElement[];
502
+ elements: readonly import("../element/types").OrderedExcalidrawElement[];
503
503
  appState: {
504
504
  editingLinearElement: {
505
505
  selectedPointsIndices: number[];
@@ -680,7 +680,7 @@ export declare const actionCut: {
680
680
  userToFollow: import("../types").UserToFollow | null;
681
681
  followedBy: Set<import("../types").SocketId>;
682
682
  };
683
- commitToHistory: true;
683
+ storeAction: import("../store").StoreActionType;
684
684
  } | {
685
685
  elements: import("../element/types").ExcalidrawElement[];
686
686
  appState: {
@@ -828,11 +828,11 @@ export declare const actionCut: {
828
828
  userToFollow: import("../types").UserToFollow | null;
829
829
  followedBy: Set<import("../types").SocketId>;
830
830
  };
831
- commitToHistory: boolean;
831
+ storeAction: import("../store").StoreActionType;
832
832
  };
833
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
833
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
834
834
  } & {
835
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
835
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
836
836
  };
837
837
  export declare const actionCopyAsSvg: {
838
838
  name: "copyAsSvg";
@@ -841,8 +841,8 @@ export declare const actionCopyAsSvg: {
841
841
  trackEvent: {
842
842
  category: "element";
843
843
  };
844
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _data: any, app: import("../types").AppClassProperties) => Promise<{
845
- commitToHistory: false;
844
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _data: any, app: import("../types").AppClassProperties) => Promise<{
845
+ storeAction: import("../store").StoreActionType;
846
846
  appState?: undefined;
847
847
  } | {
848
848
  appState: {
@@ -997,7 +997,7 @@ export declare const actionCopyAsSvg: {
997
997
  userToFollow: import("../types").UserToFollow | null;
998
998
  followedBy: Set<import("../types").SocketId>;
999
999
  };
1000
- commitToHistory: false;
1000
+ storeAction: import("../store").StoreActionType;
1001
1001
  }>;
1002
1002
  predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
1003
1003
  keywords: string[];
@@ -1011,8 +1011,8 @@ export declare const actionCopyAsPng: {
1011
1011
  trackEvent: {
1012
1012
  category: "element";
1013
1013
  };
1014
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _data: any, app: import("../types").AppClassProperties) => Promise<{
1015
- commitToHistory: false;
1014
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _data: any, app: import("../types").AppClassProperties) => Promise<{
1015
+ storeAction: import("../store").StoreActionType;
1016
1016
  appState?: undefined;
1017
1017
  } | {
1018
1018
  appState: {
@@ -1167,13 +1167,13 @@ export declare const actionCopyAsPng: {
1167
1167
  userToFollow: import("../types").UserToFollow | null;
1168
1168
  followedBy: Set<import("../types").SocketId>;
1169
1169
  };
1170
- commitToHistory: false;
1170
+ storeAction: import("../store").StoreActionType;
1171
1171
  }>;
1172
1172
  predicate: (elements: readonly import("../element/types").ExcalidrawElement[]) => boolean;
1173
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
1173
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1174
1174
  keywords: string[];
1175
1175
  } & {
1176
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
1176
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1177
1177
  };
1178
1178
  export declare const copyText: {
1179
1179
  name: "copyText";
@@ -1181,8 +1181,8 @@ export declare const copyText: {
1181
1181
  trackEvent: {
1182
1182
  category: "element";
1183
1183
  };
1184
- perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
1185
- commitToHistory: false;
1184
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
1185
+ storeAction: import("../store").StoreActionType;
1186
1186
  };
1187
1187
  predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
1188
1188
  keywords: string[];
@@ -8,6 +8,7 @@ import { prepareElementsForExport } from "../data/index";
8
8
  import { t } from "../i18n";
9
9
  import { isFirefox } from "../constants";
10
10
  import { DuplicateIcon, cutIcon, pngIcon, svgIcon } from "../components/icons";
11
+ import { StoreAction } from "../store";
11
12
  export const actionCopy = register({
12
13
  name: "copy",
13
14
  label: "labels.copy",
@@ -24,7 +25,7 @@ export const actionCopy = register({
24
25
  }
25
26
  catch (error) {
26
27
  return {
27
- commitToHistory: false,
28
+ storeAction: StoreAction.NONE,
28
29
  appState: {
29
30
  ...appState,
30
31
  errorMessage: error.message,
@@ -32,7 +33,7 @@ export const actionCopy = register({
32
33
  };
33
34
  }
34
35
  return {
35
- commitToHistory: false,
36
+ storeAction: StoreAction.NONE,
36
37
  };
37
38
  },
38
39
  // don't supply a shortcut since we handle this conditionally via onCopy event
@@ -56,7 +57,7 @@ export const actionPaste = register({
56
57
  console.error(`actionPaste ${error.name}: ${error.message}`);
57
58
  if (isFirefox) {
58
59
  return {
59
- commitToHistory: false,
60
+ storeAction: StoreAction.NONE,
60
61
  appState: {
61
62
  ...appState,
62
63
  errorMessage: t("hints.firefox_clipboard_write"),
@@ -64,7 +65,7 @@ export const actionPaste = register({
64
65
  };
65
66
  }
66
67
  return {
67
- commitToHistory: false,
68
+ storeAction: StoreAction.NONE,
68
69
  appState: {
69
70
  ...appState,
70
71
  errorMessage: t("errors.asyncPasteFailedOnRead"),
@@ -77,7 +78,7 @@ export const actionPaste = register({
77
78
  catch (error) {
78
79
  console.error(error);
79
80
  return {
80
- commitToHistory: false,
81
+ storeAction: StoreAction.NONE,
81
82
  appState: {
82
83
  ...appState,
83
84
  errorMessage: t("errors.asyncPasteFailedOnParse"),
@@ -85,7 +86,7 @@ export const actionPaste = register({
85
86
  };
86
87
  }
87
88
  return {
88
- commitToHistory: false,
89
+ storeAction: StoreAction.NONE,
89
90
  };
90
91
  },
91
92
  // don't supply a shortcut since we handle this conditionally via onCopy event
@@ -110,7 +111,7 @@ export const actionCopyAsSvg = register({
110
111
  perform: async (elements, appState, _data, app) => {
111
112
  if (!app.canvas) {
112
113
  return {
113
- commitToHistory: false,
114
+ storeAction: StoreAction.NONE,
114
115
  };
115
116
  }
116
117
  const { exportedElements, exportingFrame } = prepareElementsForExport(elements, appState, true);
@@ -125,7 +126,7 @@ export const actionCopyAsSvg = register({
125
126
  },
126
127
  });
127
128
  return {
128
- commitToHistory: false,
129
+ storeAction: StoreAction.NONE,
129
130
  };
130
131
  }
131
132
  catch (error) {
@@ -135,7 +136,7 @@ export const actionCopyAsSvg = register({
135
136
  ...appState,
136
137
  errorMessage: error.message,
137
138
  },
138
- commitToHistory: false,
139
+ storeAction: StoreAction.NONE,
139
140
  };
140
141
  }
141
142
  },
@@ -152,7 +153,7 @@ export const actionCopyAsPng = register({
152
153
  perform: async (elements, appState, _data, app) => {
153
154
  if (!app.canvas) {
154
155
  return {
155
- commitToHistory: false,
156
+ storeAction: StoreAction.NONE,
156
157
  };
157
158
  }
158
159
  const selectedElements = app.scene.getSelectedElements({
@@ -185,7 +186,7 @@ export const actionCopyAsPng = register({
185
186
  }),
186
187
  },
187
188
  },
188
- commitToHistory: false,
189
+ storeAction: StoreAction.NONE,
189
190
  };
190
191
  }
191
192
  catch (error) {
@@ -195,7 +196,7 @@ export const actionCopyAsPng = register({
195
196
  ...appState,
196
197
  errorMessage: error.message,
197
198
  },
198
- commitToHistory: false,
199
+ storeAction: StoreAction.NONE,
199
200
  };
200
201
  }
201
202
  },
@@ -229,7 +230,7 @@ export const copyText = register({
229
230
  throw new Error(t("errors.copyToSystemClipboardFailed"));
230
231
  }
231
232
  return {
232
- commitToHistory: false,
233
+ storeAction: StoreAction.NONE,
233
234
  };
234
235
  },
235
236
  predicate: (elements, appState, _, app) => {
@@ -10,8 +10,8 @@ export declare const actionDeleteSelected: {
10
10
  category: "element";
11
11
  action: string;
12
12
  };
13
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: import("../types").AppClassProperties) => false | {
14
- elements: ExcalidrawElement[];
13
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: import("../types").AppClassProperties) => false | {
14
+ elements: import("../element/types").OrderedExcalidrawElement[];
15
15
  appState: {
16
16
  editingLinearElement: null;
17
17
  contextMenu: {
@@ -164,9 +164,9 @@ export declare const actionDeleteSelected: {
164
164
  userToFollow: import("../types").UserToFollow | null;
165
165
  followedBy: Set<import("../types").SocketId>;
166
166
  };
167
- commitToHistory: false;
167
+ storeAction: import("../store").StoreActionType;
168
168
  } | {
169
- elements: readonly ExcalidrawElement[];
169
+ elements: readonly import("../element/types").OrderedExcalidrawElement[];
170
170
  appState: {
171
171
  editingLinearElement: {
172
172
  selectedPointsIndices: number[];
@@ -347,7 +347,7 @@ export declare const actionDeleteSelected: {
347
347
  userToFollow: import("../types").UserToFollow | null;
348
348
  followedBy: Set<import("../types").SocketId>;
349
349
  };
350
- commitToHistory: true;
350
+ storeAction: import("../store").StoreActionType;
351
351
  } | {
352
352
  elements: ExcalidrawElement[];
353
353
  appState: {
@@ -495,10 +495,10 @@ export declare const actionDeleteSelected: {
495
495
  userToFollow: import("../types").UserToFollow | null;
496
496
  followedBy: Set<import("../types").SocketId>;
497
497
  };
498
- commitToHistory: boolean;
498
+ storeAction: import("../store").StoreActionType;
499
499
  };
500
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
500
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
501
501
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
502
502
  } & {
503
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
503
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
504
504
  };
@@ -12,6 +12,7 @@ import { fixBindingsAfterDeletion } from "../element/binding";
12
12
  import { isBoundToContainer, isFrameLikeElement } from "../element/typeChecks";
13
13
  import { updateActiveTool } from "../utils";
14
14
  import { TrashIcon } from "../components/icons";
15
+ import { StoreAction } from "../store";
15
16
  const deleteSelectedElements = (elements, appState) => {
16
17
  const framesToBeDeleted = new Set(getSelectedElements(elements.filter((el) => isFrameLikeElement(el)), appState).map((el) => el.id));
17
18
  return {
@@ -82,7 +83,7 @@ export const actionDeleteSelected = register({
82
83
  ...nextAppState,
83
84
  editingLinearElement: null,
84
85
  },
85
- commitToHistory: false,
86
+ storeAction: StoreAction.CAPTURE,
86
87
  };
87
88
  }
88
89
  // We cannot do this inside `movePoint` because it is also called
@@ -108,7 +109,7 @@ export const actionDeleteSelected = register({
108
109
  : [0],
109
110
  },
110
111
  },
111
- commitToHistory: true,
112
+ storeAction: StoreAction.CAPTURE,
112
113
  };
113
114
  }
114
115
  let { elements: nextElements, appState: nextAppState } = deleteSelectedElements(elements, appState);
@@ -122,7 +123,9 @@ export const actionDeleteSelected = register({
122
123
  multiElement: null,
123
124
  activeEmbeddable: null,
124
125
  },
125
- commitToHistory: isSomeElementSelected(getNonDeletedElements(elements), appState),
126
+ storeAction: isSomeElementSelected(getNonDeletedElements(elements), appState)
127
+ ? StoreAction.CAPTURE
128
+ : StoreAction.NONE,
126
129
  };
127
130
  },
128
131
  keyTest: (event, appState, elements) => (event.key === KEYS.BACKSPACE || event.key === KEYS.DELETE) &&
@@ -7,15 +7,15 @@ export declare const distributeHorizontally: {
7
7
  trackEvent: {
8
8
  category: "element";
9
9
  };
10
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
10
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
11
11
  appState: Readonly<AppState>;
12
12
  elements: ExcalidrawElement[];
13
- commitToHistory: true;
13
+ storeAction: import("../store").StoreActionType;
14
14
  };
15
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
15
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
16
16
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
17
17
  } & {
18
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
18
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
19
19
  };
20
20
  export declare const distributeVertically: {
21
21
  name: "distributeVertically";
@@ -23,13 +23,13 @@ export declare const distributeVertically: {
23
23
  trackEvent: {
24
24
  category: "element";
25
25
  };
26
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
26
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
27
27
  appState: Readonly<AppState>;
28
28
  elements: ExcalidrawElement[];
29
- commitToHistory: true;
29
+ storeAction: import("../store").StoreActionType;
30
30
  };
31
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
31
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
32
32
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
33
33
  } & {
34
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
34
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
35
35
  };
@@ -8,6 +8,7 @@ import { updateFrameMembershipOfSelectedElements } from "../frame";
8
8
  import { t } from "../i18n";
9
9
  import { CODES, KEYS } from "../keys";
10
10
  import { isSomeElementSelected } from "../scene";
11
+ import { StoreAction } from "../store";
11
12
  import { arrayToMap, getShortcutKey } from "../utils";
12
13
  import { register } from "./register";
13
14
  const enableActionGroup = (appState, app) => {
@@ -33,7 +34,7 @@ export const distributeHorizontally = register({
33
34
  space: "between",
34
35
  axis: "x",
35
36
  }),
36
- commitToHistory: true,
37
+ storeAction: StoreAction.CAPTURE,
37
38
  };
38
39
  },
39
40
  keyTest: (event) => !event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.H,
@@ -50,7 +51,7 @@ export const distributeVertically = register({
50
51
  space: "between",
51
52
  axis: "y",
52
53
  }),
53
- commitToHistory: true,
54
+ storeAction: StoreAction.CAPTURE,
54
55
  };
55
56
  },
56
57
  keyTest: (event) => !event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.V,
@@ -8,16 +8,15 @@ export declare const actionDuplicateSelection: {
8
8
  trackEvent: {
9
9
  category: "element";
10
10
  };
11
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: import("../types").AppClassProperties) => false | {
12
- commitToHistory: true;
11
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: import("../types").AppClassProperties) => false | {
12
+ storeAction: import("../store").StoreActionType;
13
13
  elements?: readonly ExcalidrawElement[] | null | undefined;
14
- appState?: import("../utility-types").MarkOptional<AppState, "offsetTop" | "offsetLeft" | "width" | "height"> | null | undefined;
14
+ appState?: import("../utility-types").MarkOptional<AppState, "width" | "height" | "offsetTop" | "offsetLeft"> | null | undefined;
15
15
  files?: import("../types").BinaryFiles | null | undefined;
16
- syncHistory?: boolean | undefined;
17
16
  replaceFiles?: boolean | undefined;
18
17
  };
19
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
18
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
20
19
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
21
20
  } & {
22
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
21
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
23
22
  };
@@ -16,6 +16,8 @@ import { normalizeElementOrder } from "../element/sortElements";
16
16
  import { DuplicateIcon } from "../components/icons";
17
17
  import { bindElementsToFramesAfterDuplication, getFrameChildren, } from "../frame";
18
18
  import { excludeElementsInFramesFromSelection, getSelectedElements, } from "../scene/selection";
19
+ import { syncMovedIndices } from "../fractionalIndex";
20
+ import { StoreAction } from "../store";
19
21
  export const actionDuplicateSelection = register({
20
22
  name: "duplicateSelection",
21
23
  label: "labels.duplicateSelection",
@@ -32,12 +34,12 @@ export const actionDuplicateSelection = register({
32
34
  return {
33
35
  elements,
34
36
  appState: ret.appState,
35
- commitToHistory: true,
37
+ storeAction: StoreAction.CAPTURE,
36
38
  };
37
39
  }
38
40
  return {
39
41
  ...duplicateElements(elements, appState),
40
- commitToHistory: true,
42
+ storeAction: StoreAction.CAPTURE,
41
43
  };
42
44
  },
43
45
  keyTest: (event) => event[KEYS.CTRL_OR_CMD] && event.key === KEYS.D,
@@ -51,11 +53,13 @@ const duplicateElements = (elements, appState) => {
51
53
  const newElements = [];
52
54
  const oldElements = [];
53
55
  const oldIdToDuplicatedId = new Map();
56
+ const duplicatedElementsMap = new Map();
54
57
  const duplicateAndOffsetElement = (element) => {
55
58
  const newElement = duplicateElement(appState.editingGroupId, groupIdMap, element, {
56
59
  x: element.x + GRID_SIZE / 2,
57
60
  y: element.y + GRID_SIZE / 2,
58
61
  });
62
+ duplicatedElementsMap.set(newElement.id, newElement);
59
63
  oldIdToDuplicatedId.set(element.id, newElement.id);
60
64
  oldElements.push(element);
61
65
  newElements.push(newElement);
@@ -159,7 +163,7 @@ const duplicateElements = (elements, appState) => {
159
163
  }
160
164
  }
161
165
  // step (3)
162
- const finalElements = finalElementsReversed.reverse();
166
+ const finalElements = syncMovedIndices(finalElementsReversed.reverse(), arrayToMap(newElements));
163
167
  // ---------------------------------------------------------------------------
164
168
  bindTextToShapeAfterDuplication(elementsWithClones, oldElements, oldIdToDuplicatedId);
165
169
  fixBindingsAfterDuplication(elementsWithClones, oldElements, oldIdToDuplicatedId);
@@ -8,8 +8,8 @@ export declare const actionToggleElementLock: {
8
8
  category: "element";
9
9
  };
10
10
  predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
11
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => false | {
12
- elements: ExcalidrawElement[];
11
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => false | {
12
+ elements: import("../element/types").OrderedExcalidrawElement[];
13
13
  appState: {
14
14
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
15
15
  contextMenu: {
@@ -162,11 +162,11 @@ export declare const actionToggleElementLock: {
162
162
  userToFollow: import("../types").UserToFollow | null;
163
163
  followedBy: Set<import("../types").SocketId>;
164
164
  };
165
- commitToHistory: true;
165
+ storeAction: import("../store").StoreActionType;
166
166
  };
167
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
167
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
168
168
  } & {
169
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
169
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
170
170
  };
171
171
  export declare const actionUnlockAllElements: {
172
172
  name: "unlockAllElements";
@@ -177,8 +177,8 @@ export declare const actionUnlockAllElements: {
177
177
  viewMode: false;
178
178
  icon: JSX.Element;
179
179
  predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState) => boolean;
180
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
181
- elements: ExcalidrawElement[];
180
+ perform: (elements: readonly import("../element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
181
+ elements: import("../element/types").OrderedExcalidrawElement[];
182
182
  appState: {
183
183
  selectedElementIds: {
184
184
  [k: string]: true;
@@ -331,7 +331,7 @@ export declare const actionUnlockAllElements: {
331
331
  userToFollow: import("../types").UserToFollow | null;
332
332
  followedBy: Set<import("../types").SocketId>;
333
333
  };
334
- commitToHistory: true;
334
+ storeAction: import("../store").StoreActionType;
335
335
  };
336
336
  label: string;
337
337
  } & {