@dwelle/excalidraw 0.5.0-da1c822 → 0.5.0-e8bcd96

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 (462) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-RHODGCTM.js → blockDiagram-91b80b7a-SWMOP5PL.js} +6 -6
  3. package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-W7NCR7LR.js → c4Diagram-b2a90758-N33A4OZ7.js} +4 -4
  4. package/dist/browser/dev/excalidraw-assets-dev/{chunk-TKRIVTWP.js → chunk-3XV32LTV.js} +3 -3
  5. package/dist/browser/dev/excalidraw-assets-dev/{chunk-B2MHJWXZ.js → chunk-CLMTS5EY.js} +2 -2
  6. package/dist/browser/dev/excalidraw-assets-dev/{chunk-QFS4M5OJ.js → chunk-DIDQ2KEW.js} +3 -3
  7. package/dist/browser/dev/excalidraw-assets-dev/{chunk-5747M6KP.js → chunk-G3PHSEXY.js} +3 -3
  8. package/dist/browser/dev/excalidraw-assets-dev/{chunk-PPHFJLL7.js → chunk-HCMMCBMX.js} +4 -4
  9. package/dist/browser/dev/excalidraw-assets-dev/{chunk-DQOPSCYA.js → chunk-K5QPOXOQ.js} +3 -3
  10. package/dist/browser/dev/excalidraw-assets-dev/{chunk-52OGG53V.js → chunk-KMSH7QAI.js} +3 -3
  11. package/dist/browser/dev/excalidraw-assets-dev/{chunk-SLLUETBM.js → chunk-TVSGJBCZ.js} +7 -7
  12. package/dist/browser/dev/excalidraw-assets-dev/{chunk-GPOYIZPX.js → chunk-UEFQKRSO.js} +28 -28
  13. package/dist/browser/dev/excalidraw-assets-dev/chunk-UEFQKRSO.js.map +7 -0
  14. package/dist/browser/dev/excalidraw-assets-dev/{chunk-BESQLMCW.js → chunk-UONPRRXT.js} +5 -5
  15. package/dist/browser/dev/excalidraw-assets-dev/{chunk-UETNA2WX.js → chunk-V6ITT7XZ.js} +7397 -5320
  16. package/dist/browser/dev/excalidraw-assets-dev/chunk-V6ITT7XZ.js.map +7 -0
  17. package/dist/browser/dev/excalidraw-assets-dev/{chunk-USLWOHUZ.js → chunk-VU32GUMX.js} +4 -4
  18. package/dist/browser/dev/excalidraw-assets-dev/{chunk-GF7VCOUM.js → chunk-WQNNVZHO.js} +3 -3
  19. package/dist/browser/dev/excalidraw-assets-dev/{chunk-GCA4S2OA.js → chunk-WXRCMPEJ.js} +3 -3
  20. package/dist/browser/dev/excalidraw-assets-dev/{chunk-J5HRUYQR.js → chunk-YGAE3YWH.js} +6 -4
  21. package/dist/browser/dev/excalidraw-assets-dev/chunk-YGAE3YWH.js.map +7 -0
  22. package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-GJGBT4TV.js → classDiagram-30eddba6-HGXEWQY2.js} +6 -6
  23. package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-LYWTIPJA.js → classDiagram-v2-f2df5561-ANW5DGKP.js} +9 -9
  24. package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-UREMLRIT.js → directory-open-01563666-67XPRP2W.js} +2 -2
  25. package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-UN3BUDZZ.js → directory-open-4ed118d0-TZOVUMX3.js} +2 -2
  26. package/dist/browser/dev/excalidraw-assets-dev/dist-JWLY7ZTC.js +10 -0
  27. package/dist/browser/dev/excalidraw-assets-dev/{en-UW5C5KGW.js → en-RSUSLGPV.js} +2 -2
  28. package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-Z7U2XW2Y.js → erDiagram-47591fe2-HB4S6KST.js} +5 -5
  29. package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-4QG336MG.js → file-open-002ab408-ODQEDP24.js} +2 -2
  30. package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-3QI4ICCL.js → file-open-7c801643-RPLD6WZI.js} +2 -2
  31. package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-TNNERCWV.js → file-save-3189631c-63VHNBWZ.js} +2 -2
  32. package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-JFMH565P.js → file-save-745eba88-SJSX6XSD.js} +2 -2
  33. package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-PARVG263.js → flowDiagram-5540d9b9-4QMRNUIV.js} +10 -10
  34. package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-ZJOPVRMB.js → flowDiagram-v2-3b53844e-EH5O3NBM.js} +10 -10
  35. package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-ULPNBSZX.js → flowchart-elk-definition-5fe447d6-7HGYBXUA.js} +6 -6
  36. package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-ESSYVTJ4.js → ganttDiagram-9a3bba1f-V5WA3IP4.js} +3 -3
  37. package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-6V6VVNNP.js → gitGraphDiagram-96e6b4ee-6JA3Z4O2.js} +3 -3
  38. package/dist/browser/dev/excalidraw-assets-dev/{image-3LTGFHLF.js → image-GHNRJPTS.js} +6 -6
  39. package/dist/browser/dev/excalidraw-assets-dev/{image-ZNQQXS62.css → image-JYKIJPJC.css} +49 -29
  40. package/dist/browser/dev/excalidraw-assets-dev/image-JYKIJPJC.css.map +7 -0
  41. package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-KTX27DAY.js → image-blob-reduce.esm-QYPUYIZK.js} +2 -2
  42. package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-I22FLFX3.js → infoDiagram-bcd20f53-24MBINO2.js} +3 -3
  43. package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-WAO6F52C.js → journeyDiagram-4fe6b3dc-KJ4YYJII.js} +4 -4
  44. package/dist/browser/dev/excalidraw-assets-dev/{katex-NWA2YFOP.js → katex-INYZI6LE.js} +2 -2
  45. package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-K74IKX4Y.js → mindmap-definition-f354de21-VZEH45PD.js} +4 -4
  46. package/dist/browser/dev/excalidraw-assets-dev/{pica-3TH2EGXR.js → pica-YQGHCBVI.js} +2 -2
  47. package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-DOB2LVE5.js → pieDiagram-79897490-Z2LCRKGQ.js} +3 -3
  48. package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-MJV2X7WI.js → quadrantDiagram-62f64e94-J3AFAFGX.js} +3 -3
  49. package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-H4YM3XN7.js → requirementDiagram-05bf5f74-M474HB6I.js} +5 -5
  50. package/dist/browser/dev/excalidraw-assets-dev/{roundRect-4S3QV2NZ.js → roundRect-ZCXXTYZ4.js} +2 -2
  51. package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-7X74ABAN.js → sankeyDiagram-97764748-TNQP5HMX.js} +3 -3
  52. package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-PPDIJFQP.js → sequenceDiagram-acc0e65c-3NIA26ZM.js} +4 -4
  53. package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-JVBR7N35.js → stateDiagram-0ff1cf1a-V6UXRWCT.js} +6 -6
  54. package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-QYAJLQJH.js → stateDiagram-v2-9a9d610d-7LTZXINB.js} +9 -9
  55. package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-GL7U3WDB.js → timeline-definition-fea2a41d-X4VGA6IX.js} +3 -3
  56. package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-4U4JE4TW.js → xychartDiagram-ab372869-UQCQVK6J.js} +4 -4
  57. package/dist/browser/dev/index.css +48 -28
  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/{blockDiagram-91b80b7a-BO7MW3VX.js → blockDiagram-91b80b7a-2ADOK2UH.js} +1 -1
  61. package/dist/browser/prod/excalidraw-assets/{c4Diagram-b2a90758-VCUPBVHR.js → c4Diagram-b2a90758-XJ3HR543.js} +1 -1
  62. package/dist/browser/prod/excalidraw-assets/{chunk-VXFFPRP2.js → chunk-4X2EVGJW.js} +1 -1
  63. package/dist/browser/prod/excalidraw-assets/{chunk-5PWM36DG.js → chunk-5ARJLPSL.js} +1 -1
  64. package/dist/browser/prod/excalidraw-assets/{chunk-B7CDQVNY.js → chunk-6RDIDVV6.js} +21 -21
  65. package/dist/browser/prod/excalidraw-assets/chunk-AWDUHWKA.js +269 -0
  66. package/dist/browser/prod/excalidraw-assets/{chunk-V7HUISEN.js → chunk-COMJOADH.js} +1 -1
  67. package/dist/browser/prod/excalidraw-assets/{chunk-NM5B2RBP.js → chunk-DHU3NMWJ.js} +1 -1
  68. package/dist/browser/prod/excalidraw-assets/{chunk-4JYQ3563.js → chunk-FKEWZS6G.js} +1 -1
  69. package/dist/browser/prod/excalidraw-assets/{chunk-3VCRCP5J.js → chunk-GID7HY42.js} +1 -1
  70. package/dist/browser/prod/excalidraw-assets/{chunk-7UJZVYSR.js → chunk-H4K7WCAG.js} +1 -1
  71. package/dist/browser/prod/excalidraw-assets/{chunk-3HZHH3PT.js → chunk-PDA7IERE.js} +1 -1
  72. package/dist/browser/prod/excalidraw-assets/{chunk-O77Z7CWL.js → chunk-SCYMUHNO.js} +1 -1
  73. package/dist/browser/prod/excalidraw-assets/{chunk-QLNFR4AJ.js → chunk-SCZE4QLN.js} +2 -2
  74. package/dist/browser/prod/excalidraw-assets/{chunk-HPA5W5VE.js → chunk-Y4AVKYKK.js} +1 -1
  75. package/dist/browser/prod/excalidraw-assets/{chunk-CVEF66PS.js → chunk-YFHFEESB.js} +1 -1
  76. package/dist/browser/prod/excalidraw-assets/{chunk-22FVL4I7.js → chunk-Z4B7QXT2.js} +1 -1
  77. package/dist/browser/prod/excalidraw-assets/{classDiagram-30eddba6-VXGNM3LI.js → classDiagram-30eddba6-RQ6VHNNF.js} +1 -1
  78. package/dist/browser/prod/excalidraw-assets/{classDiagram-v2-f2df5561-YALTASVE.js → classDiagram-v2-f2df5561-TL3XYHL6.js} +1 -1
  79. package/dist/browser/prod/excalidraw-assets/{directory-open-01563666-JWXY2QSC.js → directory-open-01563666-ORBUXLUB.js} +1 -1
  80. package/dist/browser/prod/excalidraw-assets/{directory-open-4ed118d0-6AL5X37W.js → directory-open-4ed118d0-HRBZ4CD4.js} +1 -1
  81. package/dist/browser/prod/excalidraw-assets/dist-IRBESAGJ.js +1 -0
  82. package/dist/browser/prod/excalidraw-assets/{en-CPU3UVKT.js → en-SOC7FEW5.js} +1 -1
  83. package/dist/browser/prod/excalidraw-assets/{erDiagram-47591fe2-GKYANCN7.js → erDiagram-47591fe2-PBCROW3M.js} +1 -1
  84. package/dist/browser/prod/excalidraw-assets/{file-open-002ab408-3EPJOH45.js → file-open-002ab408-SRGK55ER.js} +1 -1
  85. package/dist/browser/prod/excalidraw-assets/{file-open-7c801643-QIP6HK4D.js → file-open-7c801643-IAPRROWG.js} +1 -1
  86. package/dist/browser/prod/excalidraw-assets/{file-save-3189631c-4TQJBQCS.js → file-save-3189631c-LO2KPJNL.js} +1 -1
  87. package/dist/browser/prod/excalidraw-assets/{file-save-745eba88-C4L3ZGCC.js → file-save-745eba88-2DRIRHNX.js} +1 -1
  88. package/dist/browser/prod/excalidraw-assets/{flowDiagram-5540d9b9-QBRW5SLP.js → flowDiagram-5540d9b9-6MWFBLXS.js} +1 -1
  89. package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-CD6XHMHV.js +1 -0
  90. package/dist/browser/prod/excalidraw-assets/{flowchart-elk-definition-5fe447d6-YYO2EYKS.js → flowchart-elk-definition-5fe447d6-4UPGJKHJ.js} +1 -1
  91. package/dist/browser/prod/excalidraw-assets/{ganttDiagram-9a3bba1f-3B2DUUUQ.js → ganttDiagram-9a3bba1f-PDRTJQZH.js} +1 -1
  92. package/dist/browser/prod/excalidraw-assets/{gitGraphDiagram-96e6b4ee-G6CKXXWQ.js → gitGraphDiagram-96e6b4ee-3J3YSPOQ.js} +1 -1
  93. package/dist/browser/prod/excalidraw-assets/image-U235TWVW.css +1 -0
  94. package/dist/browser/prod/excalidraw-assets/image-ZYZR4L6P.js +1 -0
  95. package/dist/browser/prod/excalidraw-assets/{image-blob-reduce.esm-5DTGAOOI.js → image-blob-reduce.esm-XVCS6NNL.js} +1 -1
  96. package/dist/browser/prod/excalidraw-assets/{infoDiagram-bcd20f53-WJTZJERL.js → infoDiagram-bcd20f53-DVJQEG4I.js} +1 -1
  97. package/dist/browser/prod/excalidraw-assets/{journeyDiagram-4fe6b3dc-JF22KXXQ.js → journeyDiagram-4fe6b3dc-ASSTFADN.js} +1 -1
  98. package/dist/browser/prod/excalidraw-assets/{katex-N6R5DPQX.js → katex-RDNZD65H.js} +1 -1
  99. package/dist/browser/prod/excalidraw-assets/{mindmap-definition-f354de21-7SH5STU3.js → mindmap-definition-f354de21-4Y6OYM5B.js} +1 -1
  100. package/dist/browser/prod/excalidraw-assets/{pica-KWHN2PJ6.js → pica-P43LGTW6.js} +1 -1
  101. package/dist/browser/prod/excalidraw-assets/{pieDiagram-79897490-5O5EBEQB.js → pieDiagram-79897490-XJXBVFLX.js} +1 -1
  102. package/dist/browser/prod/excalidraw-assets/{quadrantDiagram-62f64e94-JTY6WOKB.js → quadrantDiagram-62f64e94-PC5DTCKV.js} +1 -1
  103. package/dist/browser/prod/excalidraw-assets/{requirementDiagram-05bf5f74-TSFQFY5X.js → requirementDiagram-05bf5f74-ILVOGHRN.js} +1 -1
  104. package/dist/browser/prod/excalidraw-assets/{roundRect-PUCZURYS.js → roundRect-HU3IUMCJ.js} +1 -1
  105. package/dist/browser/prod/excalidraw-assets/{sankeyDiagram-97764748-7G2R6W67.js → sankeyDiagram-97764748-SC5VBCT5.js} +1 -1
  106. package/dist/browser/prod/excalidraw-assets/{sequenceDiagram-acc0e65c-CTANNZCO.js → sequenceDiagram-acc0e65c-MFG2JCTS.js} +1 -1
  107. package/dist/browser/prod/excalidraw-assets/{stateDiagram-0ff1cf1a-I5COLKZ4.js → stateDiagram-0ff1cf1a-2HXG5RCM.js} +1 -1
  108. package/dist/browser/prod/excalidraw-assets/{stateDiagram-v2-9a9d610d-IIHI3AJN.js → stateDiagram-v2-9a9d610d-PKXRQ3RV.js} +1 -1
  109. package/dist/browser/prod/excalidraw-assets/{timeline-definition-fea2a41d-CXTGKWI4.js → timeline-definition-fea2a41d-LOYYYOFB.js} +1 -1
  110. package/dist/browser/prod/excalidraw-assets/{xychartDiagram-ab372869-QZGPPHJP.js → xychartDiagram-ab372869-LYHM7ECI.js} +1 -1
  111. package/dist/browser/prod/index.css +1 -1
  112. package/dist/browser/prod/index.js +1 -1
  113. package/dist/dev/{en-R7FEFJGC.json → en-GM5O55AO.json} +5 -3
  114. package/dist/dev/index.css +48 -28
  115. package/dist/dev/index.css.map +2 -2
  116. package/dist/dev/index.js +5324 -3292
  117. package/dist/dev/index.js.map +4 -4
  118. package/dist/excalidraw/actions/actionAddToLibrary.d.ts +4 -4
  119. package/dist/excalidraw/actions/actionAddToLibrary.js +4 -3
  120. package/dist/excalidraw/actions/actionAlign.d.ts +22 -22
  121. package/dist/excalidraw/actions/actionAlign.js +7 -6
  122. package/dist/excalidraw/actions/actionBoundText.d.ts +10 -10
  123. package/dist/excalidraw/actions/actionBoundText.js +11 -5
  124. package/dist/excalidraw/actions/actionCanvas.d.ts +52 -52
  125. package/dist/excalidraw/actions/actionCanvas.js +16 -13
  126. package/dist/excalidraw/actions/actionClipboard.d.ts +24 -24
  127. package/dist/excalidraw/actions/actionClipboard.js +14 -13
  128. package/dist/excalidraw/actions/actionDeleteSelected.d.ts +10 -10
  129. package/dist/excalidraw/actions/actionDeleteSelected.js +6 -3
  130. package/dist/excalidraw/actions/actionDistribute.d.ts +10 -10
  131. package/dist/excalidraw/actions/actionDistribute.js +3 -2
  132. package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +7 -8
  133. package/dist/excalidraw/actions/actionDuplicateSelection.js +7 -3
  134. package/dist/excalidraw/actions/actionElementLock.d.ts +9 -9
  135. package/dist/excalidraw/actions/actionElementLock.js +3 -2
  136. package/dist/excalidraw/actions/actionExport.d.ts +37 -37
  137. package/dist/excalidraw/actions/actionExport.js +15 -11
  138. package/dist/excalidraw/actions/actionFinalize.d.ts +9 -9
  139. package/dist/excalidraw/actions/actionFinalize.js +9 -5
  140. package/dist/excalidraw/actions/actionFlip.d.ts +10 -10
  141. package/dist/excalidraw/actions/actionFlip.js +12 -12
  142. package/dist/excalidraw/actions/actionFrame.d.ts +16 -171
  143. package/dist/excalidraw/actions/actionFrame.js +7 -6
  144. package/dist/excalidraw/actions/actionGroup.d.ts +12 -322
  145. package/dist/excalidraw/actions/actionGroup.js +9 -11
  146. package/dist/excalidraw/actions/actionHistory.d.ts +4 -3
  147. package/dist/excalidraw/actions/actionHistory.js +27 -28
  148. package/dist/excalidraw/actions/actionLinearEditor.d.ts +6 -4
  149. package/dist/excalidraw/actions/actionLinearEditor.js +21 -5
  150. package/dist/excalidraw/actions/actionLink.d.ts +5 -5
  151. package/dist/excalidraw/actions/actionLink.js +2 -1
  152. package/dist/excalidraw/actions/actionMenu.d.ts +8 -8
  153. package/dist/excalidraw/actions/actionMenu.js +4 -3
  154. package/dist/excalidraw/actions/actionNavigate.d.ts +4 -4
  155. package/dist/excalidraw/actions/actionNavigate.js +3 -2
  156. package/dist/excalidraw/actions/actionProperties.d.ts +34 -34
  157. package/dist/excalidraw/actions/actionProperties.js +19 -14
  158. package/dist/excalidraw/actions/actionSelectAll.d.ts +5 -5
  159. package/dist/excalidraw/actions/actionSelectAll.js +2 -1
  160. package/dist/excalidraw/actions/actionStyles.d.ts +9 -12
  161. package/dist/excalidraw/actions/actionStyles.js +4 -3
  162. package/dist/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
  163. package/dist/excalidraw/actions/actionTextAutoResize.js +38 -0
  164. package/dist/excalidraw/actions/actionToggleGridMode.d.ts +7 -5
  165. package/dist/excalidraw/actions/actionToggleGridMode.js +6 -2
  166. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +4 -4
  167. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.js +2 -1
  168. package/dist/excalidraw/actions/actionToggleStats.d.ts +4 -4
  169. package/dist/excalidraw/actions/actionToggleStats.js +2 -1
  170. package/dist/excalidraw/actions/actionToggleViewMode.d.ts +4 -4
  171. package/dist/excalidraw/actions/actionToggleViewMode.js +2 -1
  172. package/dist/excalidraw/actions/actionToggleZenMode.d.ts +4 -4
  173. package/dist/excalidraw/actions/actionToggleZenMode.js +2 -1
  174. package/dist/excalidraw/actions/actionZindex.d.ts +23 -19
  175. package/dist/excalidraw/actions/actionZindex.js +9 -4
  176. package/dist/excalidraw/actions/manager.d.ts +5 -5
  177. package/dist/excalidraw/actions/register.d.ts +1 -1
  178. package/dist/excalidraw/actions/shortcuts.d.ts +2 -2
  179. package/dist/excalidraw/actions/types.d.ts +8 -8
  180. package/dist/excalidraw/align.d.ts +1 -1
  181. package/dist/excalidraw/animated-trail.d.ts +2 -2
  182. package/dist/excalidraw/appState.d.ts +6 -6
  183. package/dist/excalidraw/change.d.ts +191 -0
  184. package/dist/excalidraw/change.js +894 -0
  185. package/dist/excalidraw/charts.d.ts +1 -1
  186. package/dist/excalidraw/clients.d.ts +2 -2
  187. package/dist/excalidraw/clients.js +1 -1
  188. package/dist/excalidraw/clipboard.d.ts +3 -3
  189. package/dist/excalidraw/colors.d.ts +1 -1
  190. package/dist/excalidraw/components/Actions.d.ts +3 -3
  191. package/dist/excalidraw/components/Actions.js +8 -5
  192. package/dist/excalidraw/components/App.d.ts +28 -14
  193. package/dist/excalidraw/components/App.js +385 -177
  194. package/dist/excalidraw/components/ColorPicker/ColorInput.d.ts +1 -1
  195. package/dist/excalidraw/components/ColorPicker/ColorInput.js +1 -1
  196. package/dist/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  197. package/dist/excalidraw/components/ColorPicker/ColorPicker.js +1 -1
  198. package/dist/excalidraw/components/ColorPicker/Picker.d.ts +3 -3
  199. package/dist/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  200. package/dist/excalidraw/components/ColorPicker/PickerHeading.d.ts +1 -1
  201. package/dist/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  202. package/dist/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  203. package/dist/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +2 -2
  204. package/dist/excalidraw/components/ColorPicker/colorPickerUtils.js +1 -1
  205. package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
  206. package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.js +1 -1
  207. package/dist/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  208. package/dist/excalidraw/components/CommandPalette/CommandPalette.js +6 -5
  209. package/dist/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -1
  210. package/dist/excalidraw/components/CommandPalette/types.d.ts +3 -3
  211. package/dist/excalidraw/components/ConfirmDialog.d.ts +1 -1
  212. package/dist/excalidraw/components/ContextMenu.d.ts +2 -2
  213. package/dist/excalidraw/components/ContextMenu.js +1 -1
  214. package/dist/excalidraw/components/DarkModeToggle.d.ts +1 -1
  215. package/dist/excalidraw/components/DefaultSidebar.d.ts +2 -2
  216. package/dist/excalidraw/components/DialogActionButton.d.ts +1 -1
  217. package/dist/excalidraw/components/EyeDropper.d.ts +2 -2
  218. package/dist/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  219. package/dist/excalidraw/components/HelpDialog.js +1 -1
  220. package/dist/excalidraw/components/HintViewer.d.ts +1 -1
  221. package/dist/excalidraw/components/ImageExportDialog.d.ts +1 -1
  222. package/dist/excalidraw/components/InitializeApp.d.ts +2 -2
  223. package/dist/excalidraw/components/JSONExportDialog.d.ts +3 -3
  224. package/dist/excalidraw/components/LayerUI.d.ts +4 -4
  225. package/dist/excalidraw/components/LayerUI.js +1 -1
  226. package/dist/excalidraw/components/LibraryMenu.d.ts +2 -2
  227. package/dist/excalidraw/components/LibraryMenuBrowseButton.d.ts +1 -1
  228. package/dist/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  229. package/dist/excalidraw/components/LibraryMenuHeaderContent.d.ts +2 -2
  230. package/dist/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  231. package/dist/excalidraw/components/LibraryMenuSection.d.ts +5 -4
  232. package/dist/excalidraw/components/LibraryUnit.d.ts +2 -2
  233. package/dist/excalidraw/components/LoadingMessage.d.ts +1 -1
  234. package/dist/excalidraw/components/MagicSettings.js +2 -2
  235. package/dist/excalidraw/components/MobileMenu.d.ts +3 -3
  236. package/dist/excalidraw/components/Modal.d.ts +1 -1
  237. package/dist/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  238. package/dist/excalidraw/components/PasteChartDialog.d.ts +1 -1
  239. package/dist/excalidraw/components/PublishLibrary.d.ts +1 -1
  240. package/dist/excalidraw/components/SVGLayer.d.ts +1 -1
  241. package/dist/excalidraw/components/Sidebar/Sidebar.d.ts +2 -2
  242. package/dist/excalidraw/components/Sidebar/Sidebar.js +1 -1
  243. package/dist/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -1
  244. package/dist/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -1
  245. package/dist/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  246. package/dist/excalidraw/components/Sidebar/common.d.ts +1 -1
  247. package/dist/excalidraw/components/Stack.d.ts +2 -2
  248. package/dist/excalidraw/components/Stats.d.ts +2 -2
  249. package/dist/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +1 -1
  250. package/dist/excalidraw/components/TTDDialog/TTDDialog.js +2 -2
  251. package/dist/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +1 -1
  252. package/dist/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +1 -1
  253. package/dist/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +1 -1
  254. package/dist/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +1 -1
  255. package/dist/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  256. package/dist/excalidraw/components/TTDDialog/common.d.ts +4 -4
  257. package/dist/excalidraw/components/TextField.d.ts +1 -1
  258. package/dist/excalidraw/components/Toast.d.ts +1 -1
  259. package/dist/excalidraw/components/ToolButton.d.ts +4 -2
  260. package/dist/excalidraw/components/ToolButton.js +1 -1
  261. package/dist/excalidraw/components/Trans.d.ts +1 -1
  262. package/dist/excalidraw/components/UserList.d.ts +1 -1
  263. package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -2
  264. package/dist/excalidraw/components/canvases/InteractiveCanvas.js +3 -2
  265. package/dist/excalidraw/components/canvases/StaticCanvas.d.ts +2 -2
  266. package/dist/excalidraw/components/canvases/StaticCanvas.js +2 -2
  267. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.js +2 -2
  268. package/dist/excalidraw/components/footer/Footer.d.ts +2 -2
  269. package/dist/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
  270. package/dist/excalidraw/components/hyperlink/Hyperlink.js +3 -3
  271. package/dist/excalidraw/components/hyperlink/helpers.d.ts +3 -3
  272. package/dist/excalidraw/components/hyperlink/helpers.js +2 -3
  273. package/dist/excalidraw/components/icons.d.ts +4 -2
  274. package/dist/excalidraw/components/icons.js +20 -6
  275. package/dist/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  276. package/dist/excalidraw/constants.d.ts +5 -5
  277. package/dist/excalidraw/constants.js +6 -3
  278. package/dist/excalidraw/context/ui-appState.d.ts +1 -1
  279. package/dist/excalidraw/cursor.d.ts +1 -1
  280. package/dist/excalidraw/data/EditorLocalStorage.d.ts +2 -2
  281. package/dist/excalidraw/data/blob.d.ts +5 -5
  282. package/dist/excalidraw/data/filesystem.d.ts +2 -1
  283. package/dist/excalidraw/data/index.d.ts +4 -4
  284. package/dist/excalidraw/data/json.d.ts +3 -3
  285. package/dist/excalidraw/data/library.d.ts +3 -3
  286. package/dist/excalidraw/data/magic.d.ts +3 -3
  287. package/dist/excalidraw/data/reconcile.d.ts +6 -0
  288. package/dist/excalidraw/data/reconcile.js +49 -0
  289. package/dist/excalidraw/data/resave.d.ts +2 -2
  290. package/dist/excalidraw/data/resave.js +1 -1
  291. package/dist/excalidraw/data/restore.d.ts +5 -5
  292. package/dist/excalidraw/data/restore.js +7 -7
  293. package/dist/excalidraw/data/transform.d.ts +4 -4
  294. package/dist/excalidraw/data/transform.js +4 -3
  295. package/dist/excalidraw/data/types.d.ts +3 -3
  296. package/dist/excalidraw/data/url.d.ts +1 -0
  297. package/dist/excalidraw/data/url.js +4 -1
  298. package/dist/excalidraw/element/ElementCanvasButtons.d.ts +1 -1
  299. package/dist/excalidraw/element/binding.d.ts +50 -9
  300. package/dist/excalidraw/element/binding.js +712 -155
  301. package/dist/excalidraw/element/bounds.d.ts +3 -4
  302. package/dist/excalidraw/element/bounds.js +0 -3
  303. package/dist/excalidraw/element/collision.d.ts +14 -19
  304. package/dist/excalidraw/element/collision.js +36 -713
  305. package/dist/excalidraw/element/containerCache.d.ts +1 -1
  306. package/dist/excalidraw/element/dragElements.d.ts +3 -3
  307. package/dist/excalidraw/element/embeddable.d.ts +9 -6
  308. package/dist/excalidraw/element/embeddable.js +88 -27
  309. package/dist/excalidraw/element/image.d.ts +2 -2
  310. package/dist/excalidraw/element/index.d.ts +2 -3
  311. package/dist/excalidraw/element/index.js +1 -2
  312. package/dist/excalidraw/element/linearElementEditor.d.ts +12 -12
  313. package/dist/excalidraw/element/linearElementEditor.js +7 -5
  314. package/dist/excalidraw/element/mutateElement.d.ts +4 -5
  315. package/dist/excalidraw/element/mutateElement.js +5 -3
  316. package/dist/excalidraw/element/newElement.d.ts +4 -9
  317. package/dist/excalidraw/element/newElement.js +17 -14
  318. package/dist/excalidraw/element/resizeElements.d.ts +4 -4
  319. package/dist/excalidraw/element/resizeElements.js +170 -97
  320. package/dist/excalidraw/element/resizeTest.d.ts +7 -7
  321. package/dist/excalidraw/element/resizeTest.js +53 -8
  322. package/dist/excalidraw/element/showSelectedShapeActions.d.ts +2 -2
  323. package/dist/excalidraw/element/sizeHelpers.d.ts +2 -2
  324. package/dist/excalidraw/element/sizeHelpers.js +3 -0
  325. package/dist/excalidraw/element/sortElements.d.ts +1 -1
  326. package/dist/excalidraw/element/textElement.d.ts +5 -6
  327. package/dist/excalidraw/element/textElement.js +13 -37
  328. package/dist/excalidraw/element/textWysiwyg.d.ts +10 -5
  329. package/dist/excalidraw/element/textWysiwyg.js +6 -8
  330. package/dist/excalidraw/element/transformHandles.d.ts +24 -6
  331. package/dist/excalidraw/element/transformHandles.js +22 -11
  332. package/dist/excalidraw/element/typeChecks.d.ts +4 -4
  333. package/dist/excalidraw/element/types.d.ts +30 -10
  334. package/dist/excalidraw/emitter.d.ts +1 -1
  335. package/dist/excalidraw/errors.d.ts +3 -0
  336. package/dist/excalidraw/errors.js +3 -0
  337. package/dist/excalidraw/fractionalIndex.d.ts +40 -0
  338. package/dist/excalidraw/fractionalIndex.js +241 -0
  339. package/dist/excalidraw/frame.d.ts +4 -4
  340. package/dist/excalidraw/gatransforms.d.ts +1 -1
  341. package/dist/excalidraw/gesture.d.ts +1 -1
  342. package/dist/excalidraw/groups.d.ts +5 -3
  343. package/dist/excalidraw/groups.js +17 -0
  344. package/dist/excalidraw/history.d.ts +35 -47
  345. package/dist/excalidraw/history.js +100 -167
  346. package/dist/excalidraw/hooks/useEmitter.d.ts +2 -0
  347. package/dist/excalidraw/hooks/useEmitter.js +13 -0
  348. package/dist/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  349. package/dist/excalidraw/i18n.d.ts +1 -1
  350. package/dist/excalidraw/index.d.ts +3 -1
  351. package/dist/excalidraw/index.js +2 -0
  352. package/dist/excalidraw/jotai.d.ts +1 -1
  353. package/dist/excalidraw/laser-trails.d.ts +3 -2
  354. package/dist/excalidraw/locales/en.json +5 -3
  355. package/dist/excalidraw/math.d.ts +2 -2
  356. package/dist/excalidraw/points.d.ts +1 -1
  357. package/dist/excalidraw/queue.d.ts +1 -1
  358. package/dist/excalidraw/renderer/helpers.d.ts +2 -2
  359. package/dist/excalidraw/renderer/interactiveScene.d.ts +2 -2
  360. package/dist/excalidraw/renderer/interactiveScene.js +8 -7
  361. package/dist/excalidraw/renderer/renderElement.d.ts +3 -3
  362. package/dist/excalidraw/renderer/renderElement.js +2 -2
  363. package/dist/excalidraw/renderer/renderSnaps.d.ts +1 -1
  364. package/dist/excalidraw/renderer/staticScene.d.ts +1 -1
  365. package/dist/excalidraw/renderer/staticScene.js +14 -3
  366. package/dist/excalidraw/renderer/staticSvgScene.d.ts +4 -4
  367. package/dist/excalidraw/renderer/staticSvgScene.js +10 -0
  368. package/dist/excalidraw/scene/Fonts.d.ts +2 -4
  369. package/dist/excalidraw/scene/Fonts.js +6 -12
  370. package/dist/excalidraw/scene/Renderer.d.ts +4 -4
  371. package/dist/excalidraw/scene/Renderer.js +2 -3
  372. package/dist/excalidraw/scene/Scene.d.ts +19 -12
  373. package/dist/excalidraw/scene/Scene.js +44 -23
  374. package/dist/excalidraw/scene/Shape.d.ts +1 -1
  375. package/dist/excalidraw/scene/ShapeCache.d.ts +5 -4
  376. package/dist/excalidraw/scene/comparisons.d.ts +2 -2
  377. package/dist/excalidraw/scene/export.d.ts +3 -3
  378. package/dist/excalidraw/scene/export.js +4 -3
  379. package/dist/excalidraw/scene/scroll.d.ts +2 -2
  380. package/dist/excalidraw/scene/scrollbars.d.ts +3 -3
  381. package/dist/excalidraw/scene/selection.d.ts +2 -2
  382. package/dist/excalidraw/scene/types.d.ts +5 -4
  383. package/dist/excalidraw/scene/zoom.d.ts +1 -1
  384. package/dist/excalidraw/snapping.d.ts +4 -4
  385. package/dist/excalidraw/store.d.ts +99 -0
  386. package/dist/excalidraw/store.js +269 -0
  387. package/dist/excalidraw/types.d.ts +33 -19
  388. package/dist/excalidraw/utils.d.ts +10 -4
  389. package/dist/excalidraw/utils.js +7 -0
  390. package/dist/excalidraw/zindex.d.ts +4 -4
  391. package/dist/excalidraw/zindex.js +9 -13
  392. package/dist/prod/{en-R7FEFJGC.json → en-GM5O55AO.json} +5 -3
  393. package/dist/prod/index.css +1 -1
  394. package/dist/prod/index.js +44 -44
  395. package/dist/utils/bbox.d.ts +2 -2
  396. package/dist/utils/collision.d.ts +4 -0
  397. package/dist/utils/collision.js +48 -0
  398. package/dist/utils/export.d.ts +1 -1
  399. package/dist/utils/geometry/geometry.d.ts +71 -0
  400. package/dist/utils/geometry/geometry.js +674 -0
  401. package/dist/utils/geometry/shape.d.ts +56 -0
  402. package/dist/utils/geometry/shape.js +168 -0
  403. package/dist/utils/withinBounds.d.ts +1 -1
  404. package/history.ts +163 -218
  405. package/package.json +2 -1
  406. package/dist/browser/dev/excalidraw-assets-dev/chunk-GPOYIZPX.js.map +0 -7
  407. package/dist/browser/dev/excalidraw-assets-dev/chunk-J5HRUYQR.js.map +0 -7
  408. package/dist/browser/dev/excalidraw-assets-dev/chunk-UETNA2WX.js.map +0 -7
  409. package/dist/browser/dev/excalidraw-assets-dev/dist-Y7S5GOTG.js +0 -10
  410. package/dist/browser/dev/excalidraw-assets-dev/image-ZNQQXS62.css.map +0 -7
  411. package/dist/browser/prod/excalidraw-assets/chunk-EEN6AFMH.js +0 -269
  412. package/dist/browser/prod/excalidraw-assets/dist-7FHVDAZ2.js +0 -1
  413. package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-CRHRHP7H.js +0 -1
  414. package/dist/browser/prod/excalidraw-assets/image-VXYNPVOG.js +0 -1
  415. package/dist/browser/prod/excalidraw-assets/image-WE6NA2G6.css +0 -1
  416. /package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-RHODGCTM.js.map → blockDiagram-91b80b7a-SWMOP5PL.js.map} +0 -0
  417. /package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-W7NCR7LR.js.map → c4Diagram-b2a90758-N33A4OZ7.js.map} +0 -0
  418. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-TKRIVTWP.js.map → chunk-3XV32LTV.js.map} +0 -0
  419. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-B2MHJWXZ.js.map → chunk-CLMTS5EY.js.map} +0 -0
  420. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-QFS4M5OJ.js.map → chunk-DIDQ2KEW.js.map} +0 -0
  421. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-5747M6KP.js.map → chunk-G3PHSEXY.js.map} +0 -0
  422. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-PPHFJLL7.js.map → chunk-HCMMCBMX.js.map} +0 -0
  423. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-DQOPSCYA.js.map → chunk-K5QPOXOQ.js.map} +0 -0
  424. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-52OGG53V.js.map → chunk-KMSH7QAI.js.map} +0 -0
  425. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-SLLUETBM.js.map → chunk-TVSGJBCZ.js.map} +0 -0
  426. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-BESQLMCW.js.map → chunk-UONPRRXT.js.map} +0 -0
  427. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-USLWOHUZ.js.map → chunk-VU32GUMX.js.map} +0 -0
  428. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-GF7VCOUM.js.map → chunk-WQNNVZHO.js.map} +0 -0
  429. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-GCA4S2OA.js.map → chunk-WXRCMPEJ.js.map} +0 -0
  430. /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-GJGBT4TV.js.map → classDiagram-30eddba6-HGXEWQY2.js.map} +0 -0
  431. /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-LYWTIPJA.js.map → classDiagram-v2-f2df5561-ANW5DGKP.js.map} +0 -0
  432. /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-UREMLRIT.js.map → directory-open-01563666-67XPRP2W.js.map} +0 -0
  433. /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-UN3BUDZZ.js.map → directory-open-4ed118d0-TZOVUMX3.js.map} +0 -0
  434. /package/dist/browser/dev/excalidraw-assets-dev/{dist-Y7S5GOTG.js.map → dist-JWLY7ZTC.js.map} +0 -0
  435. /package/dist/browser/dev/excalidraw-assets-dev/{en-UW5C5KGW.js.map → en-RSUSLGPV.js.map} +0 -0
  436. /package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-Z7U2XW2Y.js.map → erDiagram-47591fe2-HB4S6KST.js.map} +0 -0
  437. /package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-4QG336MG.js.map → file-open-002ab408-ODQEDP24.js.map} +0 -0
  438. /package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-3QI4ICCL.js.map → file-open-7c801643-RPLD6WZI.js.map} +0 -0
  439. /package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-TNNERCWV.js.map → file-save-3189631c-63VHNBWZ.js.map} +0 -0
  440. /package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-JFMH565P.js.map → file-save-745eba88-SJSX6XSD.js.map} +0 -0
  441. /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-PARVG263.js.map → flowDiagram-5540d9b9-4QMRNUIV.js.map} +0 -0
  442. /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-ZJOPVRMB.js.map → flowDiagram-v2-3b53844e-EH5O3NBM.js.map} +0 -0
  443. /package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-ULPNBSZX.js.map → flowchart-elk-definition-5fe447d6-7HGYBXUA.js.map} +0 -0
  444. /package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-ESSYVTJ4.js.map → ganttDiagram-9a3bba1f-V5WA3IP4.js.map} +0 -0
  445. /package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-6V6VVNNP.js.map → gitGraphDiagram-96e6b4ee-6JA3Z4O2.js.map} +0 -0
  446. /package/dist/browser/dev/excalidraw-assets-dev/{image-3LTGFHLF.js.map → image-GHNRJPTS.js.map} +0 -0
  447. /package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-KTX27DAY.js.map → image-blob-reduce.esm-QYPUYIZK.js.map} +0 -0
  448. /package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-I22FLFX3.js.map → infoDiagram-bcd20f53-24MBINO2.js.map} +0 -0
  449. /package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-WAO6F52C.js.map → journeyDiagram-4fe6b3dc-KJ4YYJII.js.map} +0 -0
  450. /package/dist/browser/dev/excalidraw-assets-dev/{katex-NWA2YFOP.js.map → katex-INYZI6LE.js.map} +0 -0
  451. /package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-K74IKX4Y.js.map → mindmap-definition-f354de21-VZEH45PD.js.map} +0 -0
  452. /package/dist/browser/dev/excalidraw-assets-dev/{pica-3TH2EGXR.js.map → pica-YQGHCBVI.js.map} +0 -0
  453. /package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-DOB2LVE5.js.map → pieDiagram-79897490-Z2LCRKGQ.js.map} +0 -0
  454. /package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-MJV2X7WI.js.map → quadrantDiagram-62f64e94-J3AFAFGX.js.map} +0 -0
  455. /package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-H4YM3XN7.js.map → requirementDiagram-05bf5f74-M474HB6I.js.map} +0 -0
  456. /package/dist/browser/dev/excalidraw-assets-dev/{roundRect-4S3QV2NZ.js.map → roundRect-ZCXXTYZ4.js.map} +0 -0
  457. /package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-7X74ABAN.js.map → sankeyDiagram-97764748-TNQP5HMX.js.map} +0 -0
  458. /package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-PPDIJFQP.js.map → sequenceDiagram-acc0e65c-3NIA26ZM.js.map} +0 -0
  459. /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-JVBR7N35.js.map → stateDiagram-0ff1cf1a-V6UXRWCT.js.map} +0 -0
  460. /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-QYAJLQJH.js.map → stateDiagram-v2-9a9d610d-7LTZXINB.js.map} +0 -0
  461. /package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-GL7U3WDB.js.map → timeline-definition-fea2a41d-X4VGA6IX.js.map} +0 -0
  462. /package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-4U4JE4TW.js.map → xychartDiagram-ab372869-UQCQVK6J.js.map} +0 -0
@@ -361,8 +361,18 @@ export const renderSceneToSvg = (elements, elementsMap, rsvg, svgRoot, files, re
361
361
  .filter((el) => !isIframeLikeElement(el))
362
362
  .forEach((element) => {
363
363
  if (!element.isDeleted) {
364
+ if (isTextElement(element) &&
365
+ element.containerId &&
366
+ elementsMap.has(element.containerId)) {
367
+ // will be rendered with the container
368
+ return;
369
+ }
364
370
  try {
365
371
  renderElementToSvg(element, elementsMap, rsvg, svgRoot, files, element.x + renderConfig.offsetX, element.y + renderConfig.offsetY, renderConfig);
372
+ const boundTextElement = getBoundTextElement(element, elementsMap);
373
+ if (boundTextElement) {
374
+ renderElementToSvg(boundTextElement, elementsMap, rsvg, svgRoot, files, boundTextElement.x + renderConfig.offsetX, boundTextElement.y + renderConfig.offsetY, renderConfig);
375
+ }
366
376
  }
367
377
  catch (error) {
368
378
  console.error(error);
@@ -1,11 +1,9 @@
1
- import { ExcalidrawElement } from "../element/types";
1
+ import type { ExcalidrawElement } from "../element/types";
2
2
  import type Scene from "./Scene";
3
3
  export declare class Fonts {
4
4
  private scene;
5
- private onSceneUpdated;
6
- constructor({ scene, onSceneUpdated, }: {
5
+ constructor({ scene }: {
7
6
  scene: Scene;
8
- onSceneUpdated: () => void;
9
7
  });
10
8
  private static loadedFontFaces;
11
9
  /**
@@ -1,15 +1,11 @@
1
- import { isTextElement, refreshTextDimensions } from "../element";
1
+ import { isTextElement } from "../element";
2
2
  import { newElementWith } from "../element/mutateElement";
3
- import { getContainerElement } from "../element/textElement";
4
- import { isBoundToContainer } from "../element/typeChecks";
5
3
  import { getFontString } from "../utils";
6
4
  import { ShapeCache } from "./ShapeCache";
7
5
  export class Fonts {
8
6
  scene;
9
- onSceneUpdated;
10
- constructor({ scene, onSceneUpdated, }) {
7
+ constructor({ scene }) {
11
8
  this.scene = scene;
12
- this.onSceneUpdated = onSceneUpdated;
13
9
  }
14
10
  // it's ok to track fonts across multiple instances only once, so let's use
15
11
  // a static member to reduce memory footprint
@@ -39,17 +35,15 @@ export class Fonts {
39
35
  }
40
36
  let didUpdate = false;
41
37
  this.scene.mapElements((element) => {
42
- if (isTextElement(element) && !isBoundToContainer(element)) {
43
- ShapeCache.delete(element);
38
+ if (isTextElement(element)) {
44
39
  didUpdate = true;
45
- return newElementWith(element, {
46
- ...refreshTextDimensions(element, getContainerElement(element, this.scene.getNonDeletedElementsMap()), this.scene.getNonDeletedElementsMap()),
47
- });
40
+ ShapeCache.delete(element);
41
+ return newElementWith(element, {}, true);
48
42
  }
49
43
  return element;
50
44
  });
51
45
  if (didUpdate) {
52
- this.onSceneUpdated();
46
+ this.scene.triggerUpdate();
53
47
  }
54
48
  };
55
49
  loadFontsForElements = async (elements) => {
@@ -1,6 +1,6 @@
1
- import { NonDeletedExcalidrawElement } from "../element/types";
2
- import { AppState } from "../types";
3
- import Scene from "./Scene";
1
+ import type { NonDeletedExcalidrawElement } from "../element/types";
2
+ import type { AppState } from "../types";
3
+ import type Scene from "./Scene";
4
4
  export declare class Renderer {
5
5
  private scene;
6
6
  constructor(scene: Scene);
@@ -14,7 +14,7 @@ export declare class Renderer {
14
14
  width: AppState["width"];
15
15
  editingElement: AppState["editingElement"];
16
16
  pendingImageElementId: AppState["pendingImageElementId"];
17
- versionNonce: ReturnType<InstanceType<typeof Scene>["getVersionNonce"]>;
17
+ sceneNonce: ReturnType<InstanceType<typeof Scene>["getSceneNonce"]>;
18
18
  }) => {
19
19
  elementsMap: Map<string, NonDeletedExcalidrawElement> & import("../utility-types").MakeBrand<"NonDeletedElementsMap"> & import("../utility-types").MakeBrand<"RenderableElementsMap">;
20
20
  visibleElements: readonly NonDeletedExcalidrawElement[];
@@ -45,9 +45,8 @@ export class Renderer {
45
45
  return elementsMap;
46
46
  };
47
47
  return memoize(({ zoom, offsetLeft, offsetTop, scrollX, scrollY, height, width, editingElement, pendingImageElementId,
48
- // unused but serves we cache on it to invalidate elements if they
49
- // get mutated
50
- versionNonce: _versionNonce, }) => {
48
+ // cache-invalidation nonce
49
+ sceneNonce: _sceneNonce, }) => {
51
50
  const elements = this.scene.getNonDeletedElements();
52
51
  const elementsMap = getRenderableElements({
53
52
  elements,
@@ -1,6 +1,6 @@
1
- import { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray } from "../element/types";
2
- import { LinearElementEditor } from "../element/linearElementEditor";
3
- import { AppState } from "../types";
1
+ import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "../element/types";
2
+ import type { LinearElementEditor } from "../element/linearElementEditor";
3
+ import type { AppState } from "../types";
4
4
  type ElementIdKey = InstanceType<typeof LinearElementEditor>["elementId"];
5
5
  type ElementKey = ExcalidrawElement | ElementIdKey;
6
6
  type SceneStateCallback = () => void;
@@ -19,11 +19,18 @@ declare class Scene {
19
19
  private frames;
20
20
  private elementsMap;
21
21
  private selectedElementsCache;
22
- private versionNonce;
23
- getElementsMapIncludingDeleted(): Map<string, ExcalidrawElement> & import("../utility-types").MakeBrand<"SceneElementsMap">;
24
- getNonDeletedElementsMap(): Map<string, NonDeletedExcalidrawElement> & import("../utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
25
- getElementsIncludingDeleted(): readonly ExcalidrawElement[];
26
- getNonDeletedElements(): readonly NonDeletedExcalidrawElement[];
22
+ /**
23
+ * Random integer regenerated each scene update.
24
+ *
25
+ * Does not relate to elements versions, it's only a renderer
26
+ * cache-invalidation nonce at the moment.
27
+ */
28
+ private sceneNonce;
29
+ getSceneNonce(): number | undefined;
30
+ getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("../utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
31
+ getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
32
+ getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("../utility-types").MakeBrand<"SceneElementsMap">;
33
+ getNonDeletedElements(): readonly Ordered<NonDeletedExcalidrawElement>[];
27
34
  getFramesIncludingDeleted(): readonly ExcalidrawFrameLikeElement[];
28
35
  getSelectedElements(opts: {
29
36
  selectedElementIds: AppState["selectedElementIds"];
@@ -38,7 +45,6 @@ declare class Scene {
38
45
  }): NonDeleted<ExcalidrawElement>[];
39
46
  getNonDeletedFramesLikes(): readonly NonDeleted<ExcalidrawFrameLikeElement>[];
40
47
  getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
41
- getVersionNonce(): number | undefined;
42
48
  getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
43
49
  /**
44
50
  * A utility method to help with updating all scene elements, with the added
@@ -54,12 +60,13 @@ declare class Scene {
54
60
  */
55
61
  mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
56
62
  replaceAllElements(nextElements: ElementsMapOrArray): void;
57
- informMutation(): void;
58
- addCallback(cb: SceneStateCallback): SceneStateCallbackRemover;
63
+ triggerUpdate(): void;
64
+ onUpdate(cb: SceneStateCallback): SceneStateCallbackRemover;
59
65
  destroy(): void;
60
66
  insertElementAtIndex(element: ExcalidrawElement, index: number): void;
61
67
  insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
62
- addNewElement: (element: ExcalidrawElement) => void;
68
+ insertElement: (element: ExcalidrawElement) => void;
69
+ insertElements: (elements: ExcalidrawElement[]) => void;
63
70
  getElementIndex(elementId: string): number;
64
71
  getContainerElement: (element: (ExcalidrawElement & {
65
72
  containerId: ExcalidrawElement["id"] | null;
@@ -2,7 +2,10 @@ import { isNonDeletedElement } from "../element";
2
2
  import { isFrameLikeElement } from "../element/typeChecks";
3
3
  import { getSelectedElements } from "./selection";
4
4
  import { randomInteger } from "../random";
5
+ import { syncInvalidIndices, syncMovedIndices, validateFractionalIndices, } from "../fractionalIndex";
6
+ import { arrayToMap } from "../utils";
5
7
  import { toBrandedType } from "../utils";
8
+ import { ENV } from "../constants";
6
9
  const getNonDeletedElements = (allElements) => {
7
10
  const elementsMap = new Map();
8
11
  const elements = [];
@@ -59,6 +62,7 @@ class Scene {
59
62
  callbacks = new Set();
60
63
  nonDeletedElements = [];
61
64
  nonDeletedElementsMap = toBrandedType(new Map());
65
+ // ideally all elements within the scene should be wrapped around with `Ordered` type, but right now there is no real benefit doing so
62
66
  elements = [];
63
67
  nonDeletedFramesLikes = [];
64
68
  frames = [];
@@ -68,9 +72,15 @@ class Scene {
68
72
  elements: null,
69
73
  cache: new Map(),
70
74
  };
71
- versionNonce;
72
- getElementsMapIncludingDeleted() {
73
- return this.elementsMap;
75
+ /**
76
+ * Random integer regenerated each scene update.
77
+ *
78
+ * Does not relate to elements versions, it's only a renderer
79
+ * cache-invalidation nonce at the moment.
80
+ */
81
+ sceneNonce;
82
+ getSceneNonce() {
83
+ return this.sceneNonce;
74
84
  }
75
85
  getNonDeletedElementsMap() {
76
86
  return this.nonDeletedElementsMap;
@@ -78,6 +88,9 @@ class Scene {
78
88
  getElementsIncludingDeleted() {
79
89
  return this.elements;
80
90
  }
91
+ getElementsMapIncludingDeleted() {
92
+ return this.elementsMap;
93
+ }
81
94
  getNonDeletedElements() {
82
95
  return this.nonDeletedElements;
83
96
  }
@@ -114,9 +127,6 @@ class Scene {
114
127
  getElement(id) {
115
128
  return this.elementsMap.get(id) || null;
116
129
  }
117
- getVersionNonce() {
118
- return this.versionNonce;
119
- }
120
130
  getNonDeletedElement(id) {
121
131
  const element = this.getElement(id);
122
132
  if (element && isNonDeletedElement(element)) {
@@ -151,12 +161,17 @@ class Scene {
151
161
  return didChange;
152
162
  }
153
163
  replaceAllElements(nextElements) {
154
- this.elements =
155
- // ts doesn't like `Array.isArray` of `instanceof Map`
156
- nextElements instanceof Array
157
- ? nextElements
158
- : Array.from(nextElements.values());
164
+ const _nextElements =
165
+ // ts doesn't like `Array.isArray` of `instanceof Map`
166
+ nextElements instanceof Array
167
+ ? nextElements
168
+ : Array.from(nextElements.values());
159
169
  const nextFrameLikes = [];
170
+ if (import.meta.env.DEV || import.meta.env.MODE === ENV.TEST) {
171
+ // throw on invalid indices in test / dev to potentially detect cases were we forgot to sync moved elements
172
+ validateFractionalIndices(_nextElements.map((x) => x.index));
173
+ }
174
+ this.elements = syncInvalidIndices(_nextElements);
160
175
  this.elementsMap.clear();
161
176
  this.elements.forEach((element) => {
162
177
  if (isFrameLikeElement(element)) {
@@ -170,15 +185,15 @@ class Scene {
170
185
  this.nonDeletedElementsMap = nonDeletedElements.elementsMap;
171
186
  this.frames = nextFrameLikes;
172
187
  this.nonDeletedFramesLikes = getNonDeletedElements(this.frames).elements;
173
- this.informMutation();
188
+ this.triggerUpdate();
174
189
  }
175
- informMutation() {
176
- this.versionNonce = randomInteger();
190
+ triggerUpdate() {
191
+ this.sceneNonce = randomInteger();
177
192
  for (const callback of Array.from(this.callbacks)) {
178
193
  callback();
179
194
  }
180
195
  }
181
- addCallback(cb) {
196
+ onUpdate(cb) {
182
197
  if (this.callbacks.has(cb)) {
183
198
  throw new Error();
184
199
  }
@@ -191,8 +206,8 @@ class Scene {
191
206
  };
192
207
  }
193
208
  destroy() {
194
- this.nonDeletedElements = [];
195
209
  this.elements = [];
210
+ this.nonDeletedElements = [];
196
211
  this.nonDeletedFramesLikes = [];
197
212
  this.frames = [];
198
213
  this.elementsMap.clear();
@@ -217,6 +232,7 @@ class Scene {
217
232
  element,
218
233
  ...this.elements.slice(index),
219
234
  ];
235
+ syncMovedIndices(nextElements, arrayToMap([element]));
220
236
  this.replaceAllElements(nextElements);
221
237
  }
222
238
  insertElementsAtIndex(elements, index) {
@@ -228,15 +244,20 @@ class Scene {
228
244
  ...elements,
229
245
  ...this.elements.slice(index),
230
246
  ];
247
+ syncMovedIndices(nextElements, arrayToMap(elements));
231
248
  this.replaceAllElements(nextElements);
232
249
  }
233
- addNewElement = (element) => {
234
- if (element.frameId) {
235
- this.insertElementAtIndex(element, this.getElementIndex(element.frameId));
236
- }
237
- else {
238
- this.replaceAllElements([...this.elements, element]);
239
- }
250
+ insertElement = (element) => {
251
+ const index = element.frameId
252
+ ? this.getElementIndex(element.frameId)
253
+ : this.elements.length;
254
+ this.insertElementAtIndex(element, index);
255
+ };
256
+ insertElements = (elements) => {
257
+ const index = elements[0].frameId
258
+ ? this.getElementIndex(elements[0].frameId)
259
+ : this.elements.length;
260
+ this.insertElementsAtIndex(elements, index);
240
261
  };
241
262
  getElementIndex(elementId) {
242
263
  return this.elements.findIndex((element) => element.id === elementId);
@@ -1,7 +1,7 @@
1
1
  import type { Drawable, Options } from "roughjs/bin/core";
2
2
  import type { RoughGenerator } from "roughjs/bin/generator";
3
3
  import type { ExcalidrawElement, NonDeletedExcalidrawElement, ExcalidrawSelectionElement } from "../element/types";
4
- import { EmbedsValidationStatus } from "../types";
4
+ import type { EmbedsValidationStatus } from "../types";
5
5
  export declare const generateRoughOptions: (element: ExcalidrawElement, continuousPath?: boolean) => Options;
6
6
  /**
7
7
  * Generates the roughjs shape for given element.
@@ -1,7 +1,8 @@
1
- import { Drawable } from "roughjs/bin/core";
2
- import { ExcalidrawElement } from "../element/types";
3
- import { ElementShape, ElementShapes, StaticCanvasRenderConfig } from "./types";
4
- import { EmbedsValidationStatus } from "../types";
1
+ import type { Drawable } from "roughjs/bin/core";
2
+ import type { ExcalidrawElement } from "../element/types";
3
+ import type { ElementShape, ElementShapes } from "./types";
4
+ import type { EmbedsValidationStatus } from "../types";
5
+ import type { StaticCanvasRenderConfig } from "./types";
5
6
  export declare class ShapeCache {
6
7
  private static rg;
7
8
  private static cache;
@@ -1,5 +1,5 @@
1
- import { NonDeletedExcalidrawElement } from "../element/types";
2
- import { ElementOrToolType } from "../types";
1
+ import type { NonDeletedExcalidrawElement } from "../element/types";
2
+ import type { ElementOrToolType } from "../types";
3
3
  export declare const hasBackground: (type: ElementOrToolType) => boolean;
4
4
  export declare const hasStrokeColor: (type: ElementOrToolType) => boolean;
5
5
  export declare const hasStrokeWidth: (type: ElementOrToolType) => boolean;
@@ -1,6 +1,6 @@
1
- import { ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement, Theme } from "../element/types";
2
- import { Bounds } from "../element/bounds";
3
- import { AppState, BinaryFiles } from "../types";
1
+ import type { ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement, Theme } from "../element/types";
2
+ import type { Bounds } from "../element/bounds";
3
+ import type { AppState, BinaryFiles } from "../types";
4
4
  export type ExportToCanvasData = {
5
5
  elements: readonly NonDeletedExcalidrawElement[];
6
6
  appState?: Partial<Omit<AppState, "offsetTop" | "offsetLeft">>;
@@ -1,5 +1,5 @@
1
1
  import rough from "roughjs/bin/rough";
2
- import { getCommonBounds, getElementAbsoluteCoords, } from "../element/bounds";
2
+ import { getCommonBounds, getElementAbsoluteCoords } from "../element/bounds";
3
3
  import { renderSceneToSvg } from "../renderer/staticSvgScene";
4
4
  import { arrayToMap, distance, getFontString, toBrandedType } from "../utils";
5
5
  import { COLOR_WHITE, DEFAULT_EXPORT_PADDING, DEFAULT_ZOOM_VALUE, FONT_FAMILY, FRAME_STYLE, SVG_NS, THEME, THEME_FILTER, } from "../constants";
@@ -11,6 +11,7 @@ import { getElementsOverlappingFrame, getFrameLikeElements, getFrameLikeTitle, g
11
11
  import { newTextElement } from "../element";
12
12
  import { newElementWith } from "../element/mutateElement";
13
13
  import { isFrameElement, isFrameLikeElement } from "../element/typeChecks";
14
+ import { syncInvalidIndices } from "../fractionalIndex";
14
15
  import { renderStaticScene } from "../renderer/staticScene";
15
16
  const SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;
16
17
  const truncateText = (element, maxWidth) => {
@@ -300,7 +301,7 @@ export const exportToCanvas = async ({ data, config, }) => {
300
301
  canvas,
301
302
  rc: rough.canvas(canvas),
302
303
  elementsMap: toBrandedType(arrayToMap(elementsForRender)),
303
- allElementsMap: toBrandedType(arrayToMap(elements)),
304
+ allElementsMap: toBrandedType(arrayToMap(syncInvalidIndices(elements))),
304
305
  visibleElements: elementsForRender,
305
306
  appState: {
306
307
  ...appState,
@@ -386,7 +387,7 @@ export const exportToSvg = async ({ data, config, }) => {
386
387
  if (import.meta.env.VITE_IS_EXCALIDRAW_NPM_PACKAGE) {
387
388
  assetPath =
388
389
  window.EXCALIDRAW_ASSET_PATH ||
389
- `https://unpkg.com/${import.meta.env.VITE_PKG_NAME}@${import.meta.env.PKG_VERSION}`;
390
+ `https://unpkg.com/${import.meta.env.VITE_PKG_NAME}@${import.meta.env.VITE_PKG_VERSION}`;
390
391
  if (assetPath?.startsWith("/")) {
391
392
  assetPath = assetPath.replace("/", `${window.location.origin}/`);
392
393
  }
@@ -1,5 +1,5 @@
1
- import { AppState, PointerCoords, Zoom } from "../types";
2
- import { ExcalidrawElement } from "../element/types";
1
+ import type { AppState, PointerCoords, Zoom } from "../types";
2
+ import type { ExcalidrawElement } from "../element/types";
3
3
  export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, }: {
4
4
  scenePoint: PointerCoords;
5
5
  viewportDimensions: {
@@ -1,6 +1,6 @@
1
- import { InteractiveCanvasAppState } from "../types";
2
- import { ScrollBars } from "./types";
3
- import { ExcalidrawElement } from "../element/types";
1
+ import type { InteractiveCanvasAppState } from "../types";
2
+ import type { ScrollBars } from "./types";
3
+ import type { ExcalidrawElement } from "../element/types";
4
4
  export declare const SCROLLBAR_MARGIN = 4;
5
5
  export declare const SCROLLBAR_WIDTH = 6;
6
6
  export declare const SCROLLBAR_COLOR = "rgba(0,0,0,0.3)";
@@ -1,5 +1,5 @@
1
- import { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
2
- import { AppState, InteractiveCanvasAppState } from "../types";
1
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
2
+ import type { AppState, InteractiveCanvasAppState } from "../types";
3
3
  /**
4
4
  * Frames and their containing elements are not to be selected at the same time.
5
5
  * Given an array of selected elements, if there are frames and their containing elements
@@ -1,8 +1,8 @@
1
1
  import type { RoughCanvas } from "roughjs/bin/canvas";
2
- import { Drawable } from "roughjs/bin/core";
3
- import { ExcalidrawElement, ExcalidrawTextElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "../element/types";
4
- import { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, UserIdleState } from "../types";
5
- import { MakeBrand } from "../utility-types";
2
+ import type { Drawable } from "roughjs/bin/core";
3
+ import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "../element/types";
4
+ import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, UserIdleState, Device } from "../types";
5
+ import type { MakeBrand } from "../utility-types";
6
6
  export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
7
7
  export type StaticCanvasRenderConfig = {
8
8
  imageCache: AppClassProperties["imageCache"];
@@ -67,6 +67,7 @@ export type InteractiveSceneRenderConfig = {
67
67
  scale: number;
68
68
  appState: InteractiveCanvasAppState;
69
69
  renderConfig: InteractiveCanvasRenderConfig;
70
+ device: Device;
70
71
  callback: (data: RenderInteractiveSceneCallback) => void;
71
72
  };
72
73
  export type SceneScroll = {
@@ -1,4 +1,4 @@
1
- import { AppState, NormalizedZoomValue } from "../types";
1
+ import type { AppState, NormalizedZoomValue } from "../types";
2
2
  export declare const getNormalizedZoom: (zoom: number) => NormalizedZoomValue;
3
3
  export declare const getStateForZoom: ({ viewportX, viewportY, nextZoom, }: {
4
4
  viewportX: number;
@@ -1,7 +1,7 @@
1
- import { Bounds } from "./element/bounds";
2
- import { MaybeTransformHandleType } from "./element/transformHandles";
3
- import { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "./element/types";
4
- import { AppState, KeyboardModifiersObject, Point } from "./types";
1
+ import type { Bounds } from "./element/bounds";
2
+ import type { MaybeTransformHandleType } from "./element/transformHandles";
3
+ import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "./element/types";
4
+ import type { AppState, KeyboardModifiersObject, Point } from "./types";
5
5
  export declare const getSnapDistance: (zoomValue: number) => number;
6
6
  type Vector2D = {
7
7
  x: number;
@@ -0,0 +1,99 @@
1
+ import { AppStateChange, ElementsChange } from "./change";
2
+ import type { OrderedExcalidrawElement } from "./element/types";
3
+ import { Emitter } from "./emitter";
4
+ import type { AppState, ObservedAppState } from "./types";
5
+ export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
6
+ export type StoreActionType = "capture" | "update" | "none";
7
+ export declare const StoreAction: {
8
+ [K in Uppercase<StoreActionType>]: StoreActionType;
9
+ };
10
+ /**
11
+ * Represent an increment to the Store.
12
+ */
13
+ declare class StoreIncrementEvent {
14
+ readonly elementsChange: ElementsChange;
15
+ readonly appStateChange: AppStateChange;
16
+ constructor(elementsChange: ElementsChange, appStateChange: AppStateChange);
17
+ }
18
+ /**
19
+ * Store which captures the observed changes and emits them as `StoreIncrementEvent` events.
20
+ *
21
+ * @experimental this interface is experimental and subject to change.
22
+ */
23
+ export interface IStore {
24
+ onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
25
+ get snapshot(): Snapshot;
26
+ set snapshot(snapshot: Snapshot);
27
+ /**
28
+ * Use to schedule update of the snapshot, useful on updates for which we don't need to calculate increments (i.e. remote updates).
29
+ */
30
+ shouldUpdateSnapshot(): void;
31
+ /**
32
+ * Use to schedule calculation of a store increment.
33
+ */
34
+ shouldCaptureIncrement(): void;
35
+ /**
36
+ * Based on the scheduled operation, either only updates store snapshot or also calculates increment and emits the result as a `StoreIncrementEvent`.
37
+ *
38
+ * @emits StoreIncrementEvent when increment is calculated.
39
+ */
40
+ commit(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): void;
41
+ /**
42
+ * Clears the store instance.
43
+ */
44
+ clear(): void;
45
+ /**
46
+ * Filters out yet uncomitted elements from `nextElements`, which are part of in-progress local async actions (ephemerals) and thus were not yet commited to the snapshot.
47
+ *
48
+ * This is necessary in updates in which we receive reconciled elements, already containing elements which were not yet captured by the local store (i.e. collab).
49
+ */
50
+ filterUncomittedElements(prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>): Map<string, OrderedExcalidrawElement>;
51
+ }
52
+ export declare class Store implements IStore {
53
+ readonly onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
54
+ private scheduledActions;
55
+ private _snapshot;
56
+ get snapshot(): Snapshot;
57
+ set snapshot(snapshot: Snapshot);
58
+ shouldCaptureIncrement: () => void;
59
+ shouldUpdateSnapshot: () => void;
60
+ private scheduleAction;
61
+ commit: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
62
+ captureIncrement: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
63
+ updateSnapshot: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
64
+ filterUncomittedElements: (prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>) => Map<string, OrderedExcalidrawElement>;
65
+ clear: () => void;
66
+ private satisfiesScheduledActionsInvariant;
67
+ }
68
+ export declare class Snapshot {
69
+ readonly elements: Map<string, OrderedExcalidrawElement>;
70
+ readonly appState: ObservedAppState;
71
+ readonly meta: {
72
+ didElementsChange: boolean;
73
+ didAppStateChange: boolean;
74
+ isEmpty?: boolean;
75
+ };
76
+ private constructor();
77
+ static empty(): Snapshot;
78
+ isEmpty(): boolean | undefined;
79
+ /**
80
+ * Efficiently clone the existing snapshot, only if we detected changes.
81
+ *
82
+ * @returns same instance if there are no changes detected, new instance otherwise.
83
+ */
84
+ maybeClone(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): Snapshot;
85
+ private maybeCreateAppStateSnapshot;
86
+ private detectChangedAppState;
87
+ private maybeCreateElementsSnapshot;
88
+ /**
89
+ * Detect if there any changed elements.
90
+ *
91
+ * NOTE: we shouldn't just use `sceneVersionNonce` instead, as we need to call this before the scene updates.
92
+ */
93
+ private detectChangedElements;
94
+ /**
95
+ * Perform structural clone, cloning only elements that changed.
96
+ */
97
+ private createElementsSnapshot;
98
+ }
99
+ export {};