@dwelle/excalidraw 0.5.0-3bc80da → 0.5.0-3f1f8dd

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 (427) hide show
  1. package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-AV5QRETN.js → blockDiagram-91b80b7a-ILS6OLW7.js} +6 -6
  2. package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-76KP7R2J.js → c4Diagram-b2a90758-ZOMIZS7C.js} +4 -4
  3. package/dist/browser/dev/excalidraw-assets-dev/{chunk-VC5KAH7K.js → chunk-2NKYQ7YO.js} +7 -7
  4. package/dist/browser/dev/excalidraw-assets-dev/{chunk-5A2HLTCS.js → chunk-6MVAKZD7.js} +3 -3
  5. package/dist/browser/dev/excalidraw-assets-dev/{chunk-ETW42MP7.js → chunk-A3JTYPH7.js} +3 -3
  6. package/dist/browser/dev/excalidraw-assets-dev/{chunk-72BUNPBM.js → chunk-BUWJGA2Q.js} +1814 -1411
  7. package/dist/browser/dev/excalidraw-assets-dev/chunk-BUWJGA2Q.js.map +7 -0
  8. package/dist/browser/dev/excalidraw-assets-dev/{chunk-LQ6UJQPH.js → chunk-F3FIDJD4.js} +38 -16
  9. package/dist/browser/dev/excalidraw-assets-dev/chunk-F3FIDJD4.js.map +7 -0
  10. package/dist/browser/dev/excalidraw-assets-dev/{chunk-EGR52Q6D.js → chunk-FPTNVFSO.js} +3 -3
  11. package/dist/browser/dev/excalidraw-assets-dev/{chunk-NZKR3TXM.js → chunk-HPTO4BUO.js} +28 -28
  12. package/dist/browser/dev/excalidraw-assets-dev/chunk-HPTO4BUO.js.map +7 -0
  13. package/dist/browser/dev/excalidraw-assets-dev/{chunk-RT5XHPGC.js → chunk-JAMLJD7O.js} +3 -3
  14. package/dist/browser/dev/excalidraw-assets-dev/{chunk-7V2SB4RU.js → chunk-LOACNU4P.js} +4 -4
  15. package/dist/browser/dev/excalidraw-assets-dev/{chunk-RC7ANJ5H.js → chunk-QGBZMLTJ.js} +3 -3
  16. package/dist/browser/dev/excalidraw-assets-dev/{chunk-BHIY32T7.js → chunk-RLV4E4WN.js} +3 -3
  17. package/dist/browser/dev/excalidraw-assets-dev/{chunk-ASZRDHCI.js → chunk-SHPKYTPS.js} +5 -5
  18. package/dist/browser/dev/excalidraw-assets-dev/{chunk-ADIHRQXG.js → chunk-WYUX2CK4.js} +4 -4
  19. package/dist/browser/dev/excalidraw-assets-dev/{chunk-LSPV6OUU.js → chunk-YAYXS7DC.js} +2 -2
  20. package/dist/browser/dev/excalidraw-assets-dev/{chunk-AKQDHN2W.js → chunk-YGAE3YWH.js} +5 -3
  21. package/dist/browser/dev/excalidraw-assets-dev/chunk-YGAE3YWH.js.map +7 -0
  22. package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-KKFMJDII.js → classDiagram-30eddba6-YGYWOEDS.js} +6 -6
  23. package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-H6OLRXIM.js → classDiagram-v2-f2df5561-4ZZOSFAG.js} +9 -9
  24. package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-JDTB6SPR.js → directory-open-01563666-QTUC5QKS.js} +2 -2
  25. package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-JL7GGNMJ.js → directory-open-4ed118d0-EAOFXSXO.js} +2 -2
  26. package/dist/browser/dev/excalidraw-assets-dev/dist-V4ZSY6BC.js +10 -0
  27. package/dist/browser/dev/excalidraw-assets-dev/{en-PSBMWL4S.js → en-RSUSLGPV.js} +2 -2
  28. package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-N5L7DKGN.js → erDiagram-47591fe2-JIHVWX3W.js} +5 -5
  29. package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-YDSARWPZ.js → file-open-002ab408-UPAWPTEF.js} +2 -2
  30. package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-EROXTFSX.js → file-open-7c801643-N5N32MHQ.js} +2 -2
  31. package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-TL6V2OEY.js → file-save-3189631c-PRH4NPQ5.js} +2 -2
  32. package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-6WWZFABL.js → file-save-745eba88-5GM4HHWQ.js} +2 -2
  33. package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-VRM36QCA.js → flowDiagram-5540d9b9-6CLLUMWF.js} +10 -10
  34. package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-3CAUSA7W.js → flowDiagram-v2-3b53844e-NBMLQH3M.js} +10 -10
  35. package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-ODK3QXSV.js → flowchart-elk-definition-5fe447d6-UEQSCXLT.js} +6 -6
  36. package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-KKXGBNQI.js → ganttDiagram-9a3bba1f-WK2H7LFS.js} +3 -3
  37. package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-TMH7E2V3.js → gitGraphDiagram-96e6b4ee-KDAA2U2K.js} +3 -3
  38. package/dist/browser/dev/excalidraw-assets-dev/{image-DTHOT6RB.js → image-IPNHMJTL.js} +6 -6
  39. package/dist/browser/dev/excalidraw-assets-dev/{image-FDQLNM24.css → image-JYKIJPJC.css} +11 -14
  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-COPHY4CW.js → image-blob-reduce.esm-LQUP674P.js} +2 -2
  42. package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-VF34AT6C.js → infoDiagram-bcd20f53-JHVEGFM5.js} +3 -3
  43. package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-I4SJ2IBL.js → journeyDiagram-4fe6b3dc-LELHHHNL.js} +4 -4
  44. package/dist/browser/dev/excalidraw-assets-dev/{katex-SVKNABMQ.js → katex-24LMEI2S.js} +2 -2
  45. package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-PZW6XTRC.js → mindmap-definition-f354de21-EIYHHYCX.js} +4 -4
  46. package/dist/browser/dev/excalidraw-assets-dev/{pica-KKOK34SZ.js → pica-AEP6VYOH.js} +2 -2
  47. package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-JATUFGKC.js → pieDiagram-79897490-LKE2EHUL.js} +3 -3
  48. package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-V5FY6DEM.js → quadrantDiagram-62f64e94-HZHJFQUT.js} +3 -3
  49. package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-ZHT5V47S.js → requirementDiagram-05bf5f74-FXXIEN7J.js} +5 -5
  50. package/dist/browser/dev/excalidraw-assets-dev/{roundRect-ZX3RASBO.js → roundRect-5PHKZGUZ.js} +2 -2
  51. package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-ELYQDLSC.js → sankeyDiagram-97764748-KKTB5UYB.js} +3 -3
  52. package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-GEO2ZAH2.js → sequenceDiagram-acc0e65c-KPIADG32.js} +4 -4
  53. package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-BLHQKXOS.js → stateDiagram-0ff1cf1a-IQUWRAPJ.js} +6 -6
  54. package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-XFLTR7I5.js → stateDiagram-v2-9a9d610d-3OAKVFDX.js} +9 -9
  55. package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-6DNHPFX5.js → timeline-definition-fea2a41d-TRDW4746.js} +3 -3
  56. package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-4S5CTHTW.js → xychartDiagram-ab372869-IMLIZWMU.js} +4 -4
  57. package/dist/browser/dev/index.css +10 -13
  58. package/dist/browser/dev/index.css.map +2 -2
  59. package/dist/browser/dev/index.js +5 -5
  60. package/dist/browser/prod/excalidraw-assets/{blockDiagram-91b80b7a-JEM7KGWA.js → blockDiagram-91b80b7a-U252OY5I.js} +1 -1
  61. package/dist/browser/prod/excalidraw-assets/{c4Diagram-b2a90758-MPCOLKKP.js → c4Diagram-b2a90758-PZHH3D6H.js} +1 -1
  62. package/dist/browser/prod/excalidraw-assets/{chunk-U2OTJT7X.js → chunk-2Q2CONEB.js} +1 -1
  63. package/dist/browser/prod/excalidraw-assets/{chunk-6AI4F5QL.js → chunk-673OVD3J.js} +1 -1
  64. package/dist/browser/prod/excalidraw-assets/{chunk-OVXHC22A.js → chunk-6WNOLTTI.js} +1 -1
  65. package/dist/browser/prod/excalidraw-assets/{chunk-HSQV5QPE.js → chunk-74OJXQQW.js} +1 -1
  66. package/dist/browser/prod/excalidraw-assets/{chunk-6EO6NUHK.js → chunk-AFIKGZ5K.js} +1 -1
  67. package/dist/browser/prod/excalidraw-assets/{chunk-722XS4R3.js → chunk-BEIT5EF6.js} +1 -1
  68. package/dist/browser/prod/excalidraw-assets/{chunk-7P65EP4L.js → chunk-BZSIRHFI.js} +1 -1
  69. package/dist/browser/prod/excalidraw-assets/chunk-DIQBR7TD.js +7 -0
  70. package/dist/browser/prod/excalidraw-assets/{chunk-VVPLNHF7.js → chunk-EHJPIGV7.js} +1 -1
  71. package/dist/browser/prod/excalidraw-assets/{chunk-JVAZGNHG.js → chunk-JP7OGUWY.js} +21 -21
  72. package/dist/browser/prod/excalidraw-assets/{chunk-Y5GBBDDT.js → chunk-LJU3KBAH.js} +1 -1
  73. package/dist/browser/prod/excalidraw-assets/chunk-MZQB665Y.js +335 -0
  74. package/dist/browser/prod/excalidraw-assets/{chunk-VMMEDW7P.js → chunk-NN5GPCYQ.js} +1 -1
  75. package/dist/browser/prod/excalidraw-assets/{chunk-ICDT7GZX.js → chunk-PLOZZA4H.js} +1 -1
  76. package/dist/browser/prod/excalidraw-assets/{chunk-BJTCWAK5.js → chunk-SCZE4QLN.js} +2 -2
  77. package/dist/browser/prod/excalidraw-assets/{chunk-Q6QP4TRB.js → chunk-VVOVJRKV.js} +2 -2
  78. package/dist/browser/prod/excalidraw-assets/{classDiagram-30eddba6-L5O4YQR4.js → classDiagram-30eddba6-F55Z2E53.js} +1 -1
  79. package/dist/browser/prod/excalidraw-assets/{classDiagram-v2-f2df5561-FEFNEE7Y.js → classDiagram-v2-f2df5561-BT5JNEDE.js} +1 -1
  80. package/dist/browser/prod/excalidraw-assets/{directory-open-01563666-AYWCK7BJ.js → directory-open-01563666-6YO3OQDX.js} +1 -1
  81. package/dist/browser/prod/excalidraw-assets/{directory-open-4ed118d0-QI47HV3G.js → directory-open-4ed118d0-4LV3RSSM.js} +1 -1
  82. package/dist/browser/prod/excalidraw-assets/dist-4LC2UFYB.js +1 -0
  83. package/dist/browser/prod/excalidraw-assets/{en-MPFDZHEH.js → en-GM5O55AO-LNPCBS7J.js} +1 -1
  84. package/dist/browser/prod/excalidraw-assets/{en-Q552WR7L-QAV42NF3.js → en-SOC7FEW5.js} +1 -1
  85. package/dist/browser/prod/excalidraw-assets/{erDiagram-47591fe2-BI5PYUZN.js → erDiagram-47591fe2-XG2ZEMCB.js} +1 -1
  86. package/dist/browser/prod/excalidraw-assets/{file-open-002ab408-55ZWRNMG.js → file-open-002ab408-A6LI262V.js} +1 -1
  87. package/dist/browser/prod/excalidraw-assets/{file-open-7c801643-HBAOEEFX.js → file-open-7c801643-BBGJO4PI.js} +1 -1
  88. package/dist/browser/prod/excalidraw-assets/{file-save-3189631c-FJ75SUZ7.js → file-save-3189631c-7RDEYICA.js} +1 -1
  89. package/dist/browser/prod/excalidraw-assets/{file-save-745eba88-RAVXYEAW.js → file-save-745eba88-4PPFVJWD.js} +1 -1
  90. package/dist/browser/prod/excalidraw-assets/{flowDiagram-5540d9b9-CYU56524.js → flowDiagram-5540d9b9-2SENIXRT.js} +1 -1
  91. package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-KLBTW5WV.js +1 -0
  92. package/dist/browser/prod/excalidraw-assets/{flowchart-elk-definition-5fe447d6-PECNKVTE.js → flowchart-elk-definition-5fe447d6-TLXFCSNW.js} +1 -1
  93. package/dist/browser/prod/excalidraw-assets/{ganttDiagram-9a3bba1f-CED7COSZ.js → ganttDiagram-9a3bba1f-5JR6PUBI.js} +1 -1
  94. package/dist/browser/prod/excalidraw-assets/{gitGraphDiagram-96e6b4ee-JKIKIQ6K.js → gitGraphDiagram-96e6b4ee-6A6CZ3PI.js} +1 -1
  95. package/dist/browser/prod/excalidraw-assets/image-MFUVVFOH.js +1 -0
  96. package/dist/browser/prod/excalidraw-assets/{image-blob-reduce.esm-JZQK2EOW.js → image-blob-reduce.esm-MLHV7PI7.js} +1 -1
  97. package/dist/browser/prod/excalidraw-assets/{infoDiagram-bcd20f53-FN22PGWX.js → infoDiagram-bcd20f53-AV3OBV2N.js} +1 -1
  98. package/dist/browser/prod/excalidraw-assets/{journeyDiagram-4fe6b3dc-4YOSXQFH.js → journeyDiagram-4fe6b3dc-BLHDTOGZ.js} +1 -1
  99. package/dist/browser/prod/excalidraw-assets/{katex-VZTZSNIY.js → katex-WDF2YXSQ.js} +1 -1
  100. package/dist/browser/prod/excalidraw-assets/{mindmap-definition-f354de21-F3HVRHRH.js → mindmap-definition-f354de21-ZETPFZUU.js} +1 -1
  101. package/dist/browser/prod/excalidraw-assets/{pica-UIPUQYNH.js → pica-EKWSA7DQ.js} +1 -1
  102. package/dist/browser/prod/excalidraw-assets/{pieDiagram-79897490-2EPJDOIF.js → pieDiagram-79897490-YIGOGIGU.js} +1 -1
  103. package/dist/browser/prod/excalidraw-assets/{quadrantDiagram-62f64e94-DOUD6GJY.js → quadrantDiagram-62f64e94-PKU6OGXK.js} +1 -1
  104. package/dist/browser/prod/excalidraw-assets/{requirementDiagram-05bf5f74-6SN5DKRA.js → requirementDiagram-05bf5f74-ZS6DWQXC.js} +1 -1
  105. package/dist/browser/prod/excalidraw-assets/{roundRect-KPNU7DEE.js → roundRect-LMXTT73M.js} +1 -1
  106. package/dist/browser/prod/excalidraw-assets/{sankeyDiagram-97764748-UWC7MPXQ.js → sankeyDiagram-97764748-BAQTPNXW.js} +1 -1
  107. package/dist/browser/prod/excalidraw-assets/{sequenceDiagram-acc0e65c-F6IOZYAD.js → sequenceDiagram-acc0e65c-ZGG6MEZO.js} +1 -1
  108. package/dist/browser/prod/excalidraw-assets/{stateDiagram-0ff1cf1a-BFMFLWOS.js → stateDiagram-0ff1cf1a-FF7QI5F7.js} +1 -1
  109. package/dist/browser/prod/excalidraw-assets/{stateDiagram-v2-9a9d610d-5VQQPAQD.js → stateDiagram-v2-9a9d610d-K3KQFXGQ.js} +1 -1
  110. package/dist/browser/prod/excalidraw-assets/{timeline-definition-fea2a41d-7E3BGOKT.js → timeline-definition-fea2a41d-2A5Y4OLK.js} +1 -1
  111. package/dist/browser/prod/excalidraw-assets/{xychartDiagram-ab372869-THLWKJ2H.js → xychartDiagram-ab372869-RKDU5XOA.js} +1 -1
  112. package/dist/browser/prod/index.css +1 -1
  113. package/dist/browser/prod/index.js +15 -15
  114. package/dist/{prod/en-Q552WR7L.json → dev/en-GM5O55AO.json} +4 -2
  115. package/dist/dev/index.css +10 -13
  116. package/dist/dev/index.css.map +2 -2
  117. package/dist/dev/index.js +1606 -1192
  118. package/dist/dev/index.js.map +4 -4
  119. package/dist/excalidraw/actions/actionAddToLibrary.d.ts +3 -3
  120. package/dist/excalidraw/actions/actionAlign.d.ts +8 -8
  121. package/dist/excalidraw/actions/actionBoundText.d.ts +6 -6
  122. package/dist/excalidraw/actions/actionBoundText.js +3 -1
  123. package/dist/excalidraw/actions/actionCanvas.d.ts +16 -16
  124. package/dist/excalidraw/actions/actionClipboard.d.ts +12 -12
  125. package/dist/excalidraw/actions/actionDeleteSelected.d.ts +5 -5
  126. package/dist/excalidraw/actions/actionDistribute.d.ts +4 -4
  127. package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +3 -3
  128. package/dist/excalidraw/actions/actionElementLock.d.ts +3 -3
  129. package/dist/excalidraw/actions/actionExport.d.ts +12 -12
  130. package/dist/excalidraw/actions/actionFinalize.d.ts +3 -3
  131. package/dist/excalidraw/actions/actionFlip.d.ts +4 -4
  132. package/dist/excalidraw/actions/actionFlip.js +6 -7
  133. package/dist/excalidraw/actions/actionFrame.d.ts +314 -6
  134. package/dist/excalidraw/actions/actionGroup.d.ts +314 -4
  135. package/dist/excalidraw/actions/actionHistory.d.ts +3 -3
  136. package/dist/excalidraw/actions/actionHistory.js +4 -4
  137. package/dist/excalidraw/actions/actionLinearEditor.d.ts +5 -3
  138. package/dist/excalidraw/actions/actionLinearEditor.js +19 -4
  139. package/dist/excalidraw/actions/actionLink.d.ts +1 -1
  140. package/dist/excalidraw/actions/actionMenu.d.ts +3 -3
  141. package/dist/excalidraw/actions/actionNavigate.d.ts +3 -3
  142. package/dist/excalidraw/actions/actionProperties.d.ts +15 -15
  143. package/dist/excalidraw/actions/actionProperties.js +1 -1
  144. package/dist/excalidraw/actions/actionSelectAll.d.ts +2 -2
  145. package/dist/excalidraw/actions/actionStyles.d.ts +5 -2
  146. package/dist/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
  147. package/dist/excalidraw/actions/actionTextAutoResize.js +38 -0
  148. package/dist/excalidraw/actions/actionToggleGridMode.d.ts +2 -2
  149. package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +1 -1
  150. package/dist/excalidraw/actions/actionToggleStats.d.ts +1 -1
  151. package/dist/excalidraw/actions/actionToggleViewMode.d.ts +1 -1
  152. package/dist/excalidraw/actions/actionToggleZenMode.d.ts +1 -1
  153. package/dist/excalidraw/actions/actionZindex.d.ts +8 -4
  154. package/dist/excalidraw/actions/actionZindex.js +4 -0
  155. package/dist/excalidraw/actions/manager.d.ts +3 -3
  156. package/dist/excalidraw/actions/register.d.ts +1 -1
  157. package/dist/excalidraw/actions/shortcuts.d.ts +2 -2
  158. package/dist/excalidraw/actions/types.d.ts +6 -6
  159. package/dist/excalidraw/align.d.ts +1 -1
  160. package/dist/excalidraw/animated-trail.d.ts +2 -2
  161. package/dist/excalidraw/appState.d.ts +1 -1
  162. package/dist/excalidraw/change.d.ts +4 -4
  163. package/dist/excalidraw/change.js +14 -7
  164. package/dist/excalidraw/charts.d.ts +1 -1
  165. package/dist/excalidraw/clients.d.ts +2 -2
  166. package/dist/excalidraw/clients.js +1 -1
  167. package/dist/excalidraw/clipboard.d.ts +3 -3
  168. package/dist/excalidraw/colors.d.ts +1 -1
  169. package/dist/excalidraw/components/Actions.d.ts +3 -3
  170. package/dist/excalidraw/components/Actions.js +9 -6
  171. package/dist/excalidraw/components/App.d.ts +10 -11
  172. package/dist/excalidraw/components/App.js +187 -95
  173. package/dist/excalidraw/components/ButtonIconSelect.js +1 -1
  174. package/dist/excalidraw/components/CheckboxItem.js +1 -1
  175. package/dist/excalidraw/components/ColorPicker/ColorInput.d.ts +1 -1
  176. package/dist/excalidraw/components/ColorPicker/ColorInput.js +1 -1
  177. package/dist/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
  178. package/dist/excalidraw/components/ColorPicker/ColorPicker.js +1 -1
  179. package/dist/excalidraw/components/ColorPicker/Picker.d.ts +3 -3
  180. package/dist/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
  181. package/dist/excalidraw/components/ColorPicker/PickerHeading.d.ts +1 -1
  182. package/dist/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
  183. package/dist/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
  184. package/dist/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +2 -2
  185. package/dist/excalidraw/components/ColorPicker/colorPickerUtils.js +1 -1
  186. package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
  187. package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.js +1 -1
  188. package/dist/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
  189. package/dist/excalidraw/components/CommandPalette/CommandPalette.js +5 -5
  190. package/dist/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -1
  191. package/dist/excalidraw/components/CommandPalette/types.d.ts +3 -3
  192. package/dist/excalidraw/components/ConfirmDialog.d.ts +1 -1
  193. package/dist/excalidraw/components/ContextMenu.d.ts +2 -2
  194. package/dist/excalidraw/components/ContextMenu.js +2 -2
  195. package/dist/excalidraw/components/DarkModeToggle.d.ts +1 -1
  196. package/dist/excalidraw/components/DefaultSidebar.d.ts +2 -2
  197. package/dist/excalidraw/components/Dialog.js +1 -1
  198. package/dist/excalidraw/components/DialogActionButton.d.ts +1 -1
  199. package/dist/excalidraw/components/EyeDropper.d.ts +2 -2
  200. package/dist/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
  201. package/dist/excalidraw/components/FollowMode/FollowMode.js +1 -1
  202. package/dist/excalidraw/components/HintViewer.d.ts +1 -1
  203. package/dist/excalidraw/components/IconPicker.js +2 -2
  204. package/dist/excalidraw/components/ImageExportDialog.d.ts +1 -1
  205. package/dist/excalidraw/components/InitializeApp.d.ts +2 -2
  206. package/dist/excalidraw/components/JSONExportDialog.d.ts +3 -3
  207. package/dist/excalidraw/components/LayerUI.d.ts +4 -4
  208. package/dist/excalidraw/components/LayerUI.js +2 -2
  209. package/dist/excalidraw/components/LibraryMenu.d.ts +2 -2
  210. package/dist/excalidraw/components/LibraryMenuBrowseButton.d.ts +1 -1
  211. package/dist/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
  212. package/dist/excalidraw/components/LibraryMenuHeaderContent.d.ts +2 -2
  213. package/dist/excalidraw/components/LibraryMenuItems.d.ts +1 -1
  214. package/dist/excalidraw/components/LibraryMenuSection.d.ts +5 -4
  215. package/dist/excalidraw/components/LibraryUnit.d.ts +2 -2
  216. package/dist/excalidraw/components/LoadingMessage.d.ts +1 -1
  217. package/dist/excalidraw/components/MagicSettings.js +2 -2
  218. package/dist/excalidraw/components/MobileMenu.d.ts +3 -3
  219. package/dist/excalidraw/components/MobileMenu.js +1 -1
  220. package/dist/excalidraw/components/Modal.d.ts +1 -1
  221. package/dist/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  222. package/dist/excalidraw/components/PasteChartDialog.d.ts +1 -1
  223. package/dist/excalidraw/components/PasteChartDialog.js +1 -1
  224. package/dist/excalidraw/components/PublishLibrary.d.ts +1 -1
  225. package/dist/excalidraw/components/SVGLayer.d.ts +1 -1
  226. package/dist/excalidraw/components/Sidebar/Sidebar.d.ts +2 -2
  227. package/dist/excalidraw/components/Sidebar/Sidebar.js +1 -1
  228. package/dist/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -1
  229. package/dist/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -1
  230. package/dist/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
  231. package/dist/excalidraw/components/Sidebar/common.d.ts +1 -1
  232. package/dist/excalidraw/components/Stack.d.ts +2 -2
  233. package/dist/excalidraw/components/Stats.d.ts +2 -2
  234. package/dist/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +1 -1
  235. package/dist/excalidraw/components/TTDDialog/TTDDialog.js +2 -2
  236. package/dist/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +1 -1
  237. package/dist/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +1 -1
  238. package/dist/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +1 -1
  239. package/dist/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +1 -1
  240. package/dist/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
  241. package/dist/excalidraw/components/TTDDialog/common.d.ts +4 -4
  242. package/dist/excalidraw/components/TextField.d.ts +1 -1
  243. package/dist/excalidraw/components/Toast.d.ts +1 -1
  244. package/dist/excalidraw/components/ToolButton.d.ts +3 -2
  245. package/dist/excalidraw/components/Trans.d.ts +1 -1
  246. package/dist/excalidraw/components/UserList.d.ts +1 -1
  247. package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +5 -3
  248. package/dist/excalidraw/components/canvases/InteractiveCanvas.js +5 -2
  249. package/dist/excalidraw/components/canvases/StaticCanvas.d.ts +2 -2
  250. package/dist/excalidraw/components/canvases/StaticCanvas.js +2 -2
  251. package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.js +2 -2
  252. package/dist/excalidraw/components/footer/Footer.d.ts +2 -2
  253. package/dist/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
  254. package/dist/excalidraw/components/hyperlink/helpers.d.ts +3 -3
  255. package/dist/excalidraw/components/icons.d.ts +3 -2
  256. package/dist/excalidraw/components/icons.js +19 -6
  257. package/dist/excalidraw/constants.d.ts +5 -2
  258. package/dist/excalidraw/constants.js +10 -0
  259. package/dist/excalidraw/context/ui-appState.d.ts +1 -1
  260. package/dist/excalidraw/cursor.d.ts +1 -1
  261. package/dist/excalidraw/data/EditorLocalStorage.d.ts +2 -2
  262. package/dist/excalidraw/data/blob.d.ts +5 -5
  263. package/dist/excalidraw/data/filesystem.d.ts +2 -1
  264. package/dist/excalidraw/data/index.d.ts +4 -4
  265. package/dist/excalidraw/data/json.d.ts +3 -3
  266. package/dist/excalidraw/data/library.d.ts +3 -3
  267. package/dist/excalidraw/data/magic.d.ts +3 -3
  268. package/dist/excalidraw/data/reconcile.d.ts +3 -3
  269. package/dist/excalidraw/data/resave.d.ts +2 -2
  270. package/dist/excalidraw/data/resave.js +1 -1
  271. package/dist/excalidraw/data/restore.d.ts +3 -3
  272. package/dist/excalidraw/data/restore.js +3 -0
  273. package/dist/excalidraw/data/transform.d.ts +3 -3
  274. package/dist/excalidraw/data/types.d.ts +3 -3
  275. package/dist/excalidraw/element/ElementCanvasButtons.d.ts +1 -1
  276. package/dist/excalidraw/element/binding.d.ts +5 -19
  277. package/dist/excalidraw/element/binding.js +109 -90
  278. package/dist/excalidraw/element/bounds.d.ts +3 -3
  279. package/dist/excalidraw/element/collision.d.ts +3 -3
  280. package/dist/excalidraw/element/collision.js +1 -1
  281. package/dist/excalidraw/element/containerCache.d.ts +1 -1
  282. package/dist/excalidraw/element/dragElements.d.ts +4 -4
  283. package/dist/excalidraw/element/dragElements.js +27 -3
  284. package/dist/excalidraw/element/embeddable.d.ts +4 -4
  285. package/dist/excalidraw/element/image.d.ts +2 -2
  286. package/dist/excalidraw/element/index.d.ts +2 -2
  287. package/dist/excalidraw/element/index.js +1 -1
  288. package/dist/excalidraw/element/linearElementEditor.d.ts +4 -4
  289. package/dist/excalidraw/element/mutateElement.d.ts +3 -3
  290. package/dist/excalidraw/element/mutateElement.js +5 -3
  291. package/dist/excalidraw/element/newElement.d.ts +5 -8
  292. package/dist/excalidraw/element/newElement.js +16 -14
  293. package/dist/excalidraw/element/resizeElements.d.ts +4 -4
  294. package/dist/excalidraw/element/resizeElements.js +172 -96
  295. package/dist/excalidraw/element/resizeTest.d.ts +7 -7
  296. package/dist/excalidraw/element/resizeTest.js +53 -8
  297. package/dist/excalidraw/element/showSelectedShapeActions.d.ts +2 -2
  298. package/dist/excalidraw/element/sizeHelpers.d.ts +2 -2
  299. package/dist/excalidraw/element/sortElements.d.ts +1 -1
  300. package/dist/excalidraw/element/textElement.d.ts +5 -4
  301. package/dist/excalidraw/element/textElement.js +11 -3
  302. package/dist/excalidraw/element/textWysiwyg.d.ts +12 -6
  303. package/dist/excalidraw/element/textWysiwyg.js +38 -17
  304. package/dist/excalidraw/element/transformHandles.d.ts +22 -4
  305. package/dist/excalidraw/element/transformHandles.js +22 -11
  306. package/dist/excalidraw/element/typeChecks.d.ts +3 -3
  307. package/dist/excalidraw/element/types.d.ts +11 -4
  308. package/dist/excalidraw/emitter.d.ts +1 -1
  309. package/dist/excalidraw/fractionalIndex.d.ts +1 -1
  310. package/dist/excalidraw/fractionalIndex.js +2 -4
  311. package/dist/excalidraw/frame.d.ts +3 -3
  312. package/dist/excalidraw/gatransforms.d.ts +1 -1
  313. package/dist/excalidraw/gesture.d.ts +1 -1
  314. package/dist/excalidraw/groups.d.ts +4 -3
  315. package/dist/excalidraw/groups.js +3 -0
  316. package/dist/excalidraw/history.d.ts +4 -4
  317. package/dist/excalidraw/hooks/useEmitter.d.ts +1 -1
  318. package/dist/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  319. package/dist/excalidraw/i18n.d.ts +1 -1
  320. package/dist/excalidraw/index.d.ts +1 -1
  321. package/dist/excalidraw/jotai.d.ts +1 -1
  322. package/dist/excalidraw/laser-trails.d.ts +3 -2
  323. package/dist/excalidraw/locales/en.json +4 -2
  324. package/dist/excalidraw/math.d.ts +2 -2
  325. package/dist/excalidraw/mermaid.d.ts +2 -0
  326. package/dist/excalidraw/mermaid.js +28 -0
  327. package/dist/excalidraw/points.d.ts +1 -1
  328. package/dist/excalidraw/queue.d.ts +1 -1
  329. package/dist/excalidraw/renderer/helpers.d.ts +2 -2
  330. package/dist/excalidraw/renderer/interactiveScene.d.ts +2 -2
  331. package/dist/excalidraw/renderer/interactiveScene.js +38 -11
  332. package/dist/excalidraw/renderer/renderElement.d.ts +4 -4
  333. package/dist/excalidraw/renderer/renderElement.js +4 -4
  334. package/dist/excalidraw/renderer/renderSnaps.d.ts +1 -1
  335. package/dist/excalidraw/renderer/staticScene.d.ts +1 -1
  336. package/dist/excalidraw/renderer/staticSvgScene.d.ts +4 -4
  337. package/dist/excalidraw/scene/Fonts.d.ts +2 -4
  338. package/dist/excalidraw/scene/Fonts.js +6 -12
  339. package/dist/excalidraw/scene/Renderer.d.ts +4 -4
  340. package/dist/excalidraw/scene/Renderer.js +2 -3
  341. package/dist/excalidraw/scene/Scene.d.ts +13 -7
  342. package/dist/excalidraw/scene/Scene.js +14 -8
  343. package/dist/excalidraw/scene/Shape.d.ts +1 -1
  344. package/dist/excalidraw/scene/ShapeCache.d.ts +5 -4
  345. package/dist/excalidraw/scene/comparisons.d.ts +2 -2
  346. package/dist/excalidraw/scene/export.d.ts +3 -3
  347. package/dist/excalidraw/scene/export.js +2 -2
  348. package/dist/excalidraw/scene/scroll.d.ts +2 -2
  349. package/dist/excalidraw/scene/scrollbars.d.ts +3 -3
  350. package/dist/excalidraw/scene/selection.d.ts +2 -2
  351. package/dist/excalidraw/scene/types.d.ts +7 -5
  352. package/dist/excalidraw/scene/zoom.d.ts +1 -1
  353. package/dist/excalidraw/snapping.d.ts +4 -4
  354. package/dist/excalidraw/snapping.js +2 -1
  355. package/dist/excalidraw/store.d.ts +34 -4
  356. package/dist/excalidraw/store.js +27 -0
  357. package/dist/excalidraw/types.d.ts +18 -17
  358. package/dist/excalidraw/utils.d.ts +4 -4
  359. package/dist/excalidraw/zindex.d.ts +2 -2
  360. package/dist/{dev/en-Q552WR7L.json → prod/en-GM5O55AO.json} +4 -2
  361. package/dist/prod/index.css +1 -1
  362. package/dist/prod/index.js +41 -41
  363. package/dist/utils/bbox.d.ts +2 -2
  364. package/dist/utils/collision.d.ts +1 -1
  365. package/dist/utils/export.d.ts +1 -1
  366. package/dist/utils/geometry/geometry.d.ts +1 -1
  367. package/dist/utils/geometry/shape.d.ts +1 -1
  368. package/dist/utils/withinBounds.d.ts +1 -1
  369. package/history.ts +4 -4
  370. package/package.json +2 -2
  371. package/dist/browser/dev/excalidraw-assets-dev/chunk-72BUNPBM.js.map +0 -7
  372. package/dist/browser/dev/excalidraw-assets-dev/chunk-AKQDHN2W.js.map +0 -7
  373. package/dist/browser/dev/excalidraw-assets-dev/chunk-LQ6UJQPH.js.map +0 -7
  374. package/dist/browser/dev/excalidraw-assets-dev/chunk-NZKR3TXM.js.map +0 -7
  375. package/dist/browser/dev/excalidraw-assets-dev/dist-QD4SCHJY.js +0 -10
  376. package/dist/browser/dev/excalidraw-assets-dev/image-FDQLNM24.css.map +0 -7
  377. package/dist/browser/prod/excalidraw-assets/chunk-MJ44PPVZ.js +0 -335
  378. package/dist/browser/prod/excalidraw-assets/chunk-W5Q65S7S.js +0 -6
  379. package/dist/browser/prod/excalidraw-assets/dist-5RJKYEVC.js +0 -1
  380. package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-SDQRTWTZ.js +0 -1
  381. package/dist/browser/prod/excalidraw-assets/image-IBX4GOPW.js +0 -1
  382. /package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-AV5QRETN.js.map → blockDiagram-91b80b7a-ILS6OLW7.js.map} +0 -0
  383. /package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-76KP7R2J.js.map → c4Diagram-b2a90758-ZOMIZS7C.js.map} +0 -0
  384. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-VC5KAH7K.js.map → chunk-2NKYQ7YO.js.map} +0 -0
  385. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-5A2HLTCS.js.map → chunk-6MVAKZD7.js.map} +0 -0
  386. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-ETW42MP7.js.map → chunk-A3JTYPH7.js.map} +0 -0
  387. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-EGR52Q6D.js.map → chunk-FPTNVFSO.js.map} +0 -0
  388. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-RT5XHPGC.js.map → chunk-JAMLJD7O.js.map} +0 -0
  389. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-7V2SB4RU.js.map → chunk-LOACNU4P.js.map} +0 -0
  390. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-RC7ANJ5H.js.map → chunk-QGBZMLTJ.js.map} +0 -0
  391. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-BHIY32T7.js.map → chunk-RLV4E4WN.js.map} +0 -0
  392. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-ASZRDHCI.js.map → chunk-SHPKYTPS.js.map} +0 -0
  393. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-ADIHRQXG.js.map → chunk-WYUX2CK4.js.map} +0 -0
  394. /package/dist/browser/dev/excalidraw-assets-dev/{chunk-LSPV6OUU.js.map → chunk-YAYXS7DC.js.map} +0 -0
  395. /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-KKFMJDII.js.map → classDiagram-30eddba6-YGYWOEDS.js.map} +0 -0
  396. /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-H6OLRXIM.js.map → classDiagram-v2-f2df5561-4ZZOSFAG.js.map} +0 -0
  397. /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-JDTB6SPR.js.map → directory-open-01563666-QTUC5QKS.js.map} +0 -0
  398. /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-JL7GGNMJ.js.map → directory-open-4ed118d0-EAOFXSXO.js.map} +0 -0
  399. /package/dist/browser/dev/excalidraw-assets-dev/{dist-QD4SCHJY.js.map → dist-V4ZSY6BC.js.map} +0 -0
  400. /package/dist/browser/dev/excalidraw-assets-dev/{en-PSBMWL4S.js.map → en-RSUSLGPV.js.map} +0 -0
  401. /package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-N5L7DKGN.js.map → erDiagram-47591fe2-JIHVWX3W.js.map} +0 -0
  402. /package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-YDSARWPZ.js.map → file-open-002ab408-UPAWPTEF.js.map} +0 -0
  403. /package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-EROXTFSX.js.map → file-open-7c801643-N5N32MHQ.js.map} +0 -0
  404. /package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-TL6V2OEY.js.map → file-save-3189631c-PRH4NPQ5.js.map} +0 -0
  405. /package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-6WWZFABL.js.map → file-save-745eba88-5GM4HHWQ.js.map} +0 -0
  406. /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-VRM36QCA.js.map → flowDiagram-5540d9b9-6CLLUMWF.js.map} +0 -0
  407. /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-3CAUSA7W.js.map → flowDiagram-v2-3b53844e-NBMLQH3M.js.map} +0 -0
  408. /package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-ODK3QXSV.js.map → flowchart-elk-definition-5fe447d6-UEQSCXLT.js.map} +0 -0
  409. /package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-KKXGBNQI.js.map → ganttDiagram-9a3bba1f-WK2H7LFS.js.map} +0 -0
  410. /package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-TMH7E2V3.js.map → gitGraphDiagram-96e6b4ee-KDAA2U2K.js.map} +0 -0
  411. /package/dist/browser/dev/excalidraw-assets-dev/{image-DTHOT6RB.js.map → image-IPNHMJTL.js.map} +0 -0
  412. /package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-COPHY4CW.js.map → image-blob-reduce.esm-LQUP674P.js.map} +0 -0
  413. /package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-VF34AT6C.js.map → infoDiagram-bcd20f53-JHVEGFM5.js.map} +0 -0
  414. /package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-I4SJ2IBL.js.map → journeyDiagram-4fe6b3dc-LELHHHNL.js.map} +0 -0
  415. /package/dist/browser/dev/excalidraw-assets-dev/{katex-SVKNABMQ.js.map → katex-24LMEI2S.js.map} +0 -0
  416. /package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-PZW6XTRC.js.map → mindmap-definition-f354de21-EIYHHYCX.js.map} +0 -0
  417. /package/dist/browser/dev/excalidraw-assets-dev/{pica-KKOK34SZ.js.map → pica-AEP6VYOH.js.map} +0 -0
  418. /package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-JATUFGKC.js.map → pieDiagram-79897490-LKE2EHUL.js.map} +0 -0
  419. /package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-V5FY6DEM.js.map → quadrantDiagram-62f64e94-HZHJFQUT.js.map} +0 -0
  420. /package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-ZHT5V47S.js.map → requirementDiagram-05bf5f74-FXXIEN7J.js.map} +0 -0
  421. /package/dist/browser/dev/excalidraw-assets-dev/{roundRect-ZX3RASBO.js.map → roundRect-5PHKZGUZ.js.map} +0 -0
  422. /package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-ELYQDLSC.js.map → sankeyDiagram-97764748-KKTB5UYB.js.map} +0 -0
  423. /package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-GEO2ZAH2.js.map → sequenceDiagram-acc0e65c-KPIADG32.js.map} +0 -0
  424. /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-BLHQKXOS.js.map → stateDiagram-0ff1cf1a-IQUWRAPJ.js.map} +0 -0
  425. /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-XFLTR7I5.js.map → stateDiagram-v2-9a9d610d-3OAKVFDX.js.map} +0 -0
  426. /package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-6DNHPFX5.js.map → timeline-definition-fea2a41d-TRDW4746.js.map} +0 -0
  427. /package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-4S5CTHTW.js.map → xychartDiagram-ab372869-IMLIZWMU.js.map} +0 -0
@@ -1,18 +1,18 @@
1
- import { getElementAbsoluteCoords, OMIT_SIDES_FOR_MULTIPLE_ELEMENTS, getTransformHandlesFromCoords, getTransformHandles, getCommonBounds, } from "../element";
1
+ import { getElementAbsoluteCoords, getTransformHandlesFromCoords, getTransformHandles, getCommonBounds, } from "../element";
2
2
  import { roundRect } from "../renderer/roundRect";
3
3
  import { getScrollBars, SCROLLBAR_COLOR, SCROLLBAR_WIDTH, } from "../scene/scrollbars";
4
4
  import { renderSelectionElement } from "../renderer/renderElement";
5
5
  import { getClientColor, renderRemoteCursors } from "../clients";
6
6
  import { isSelectedViaGroup, getSelectedGroupIds, getElementsInGroup, selectGroupsFromGivenElements, } from "../groups";
7
- import { OMIT_SIDES_FOR_FRAME, shouldShowBoundingBox, } from "../element/transformHandles";
7
+ import { getOmitSidesForDevice, shouldShowBoundingBox, } from "../element/transformHandles";
8
8
  import { arrayToMap, throttleRAF } from "../utils";
9
9
  import { DEFAULT_TRANSFORM_HANDLE_SPACING, FRAME_STYLE } from "../constants";
10
10
  import { renderSnaps } from "../renderer/renderSnaps";
11
- import { maxBindingGap, } from "../element/binding";
11
+ import { maxBindingGap } from "../element/binding";
12
12
  import { LinearElementEditor } from "../element/linearElementEditor";
13
13
  import { bootstrapCanvas, fillCircle, getNormalizedCanvasDimensions, } from "./helpers";
14
14
  import oc from "open-color";
15
- import { isFrameLikeElement, isLinearElement } from "../element/typeChecks";
15
+ import { isFrameLikeElement, isLinearElement, isTextElement, } from "../element/typeChecks";
16
16
  const renderLinearElementPointHighlight = (context, appState, elementsMap) => {
17
17
  const { elementId, hoverPointIndex } = appState.selectedLinearElement;
18
18
  if (appState.editingLinearElement?.selectedPointsIndices?.includes(hoverPointIndex)) {
@@ -124,10 +124,11 @@ const renderBindingHighlightForSuggestedPointBinding = (context, suggestedBindin
124
124
  fillCircle(context, x, y, threshold);
125
125
  });
126
126
  };
127
- const renderSelectionBorder = (context, appState, elementProperties, padding = DEFAULT_TRANSFORM_HANDLE_SPACING * 2) => {
127
+ const renderSelectionBorder = (context, appState, elementProperties) => {
128
128
  const { angle, elementX1, elementY1, elementX2, elementY2, selectionColors, cx, cy, dashed, activeEmbeddable, } = elementProperties;
129
129
  const elementWidth = elementX2 - elementX1;
130
130
  const elementHeight = elementY2 - elementY1;
131
+ const padding = DEFAULT_TRANSFORM_HANDLE_SPACING * 2;
131
132
  const linePadding = padding / appState.zoom.value;
132
133
  const lineWidth = 8 / appState.zoom.value;
133
134
  const spaceWidth = 4 / appState.zoom.value;
@@ -264,7 +265,23 @@ const renderTransformHandles = (context, renderConfig, appState, transformHandle
264
265
  }
265
266
  });
266
267
  };
267
- const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selectedElements, scale, appState, renderConfig, }) => {
268
+ const renderTextBox = (text, context, appState, selectionColor) => {
269
+ context.save();
270
+ const padding = (DEFAULT_TRANSFORM_HANDLE_SPACING * 2) / appState.zoom.value;
271
+ const width = text.width + padding * 2;
272
+ const height = text.height + padding * 2;
273
+ const cx = text.x + width / 2;
274
+ const cy = text.y + height / 2;
275
+ const shiftX = -(width / 2 + padding);
276
+ const shiftY = -(height / 2 + padding);
277
+ context.translate(cx + appState.scrollX, cy + appState.scrollY);
278
+ context.rotate(text.angle);
279
+ context.lineWidth = 1 / appState.zoom.value;
280
+ context.strokeStyle = selectionColor;
281
+ context.strokeRect(shiftX, shiftY, width, height);
282
+ context.restore();
283
+ };
284
+ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }) => {
268
285
  if (canvas === null) {
269
286
  return { atLeastOneVisibleElement: false, elementsMap };
270
287
  }
@@ -295,12 +312,18 @@ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selecte
295
312
  // Paint selection element
296
313
  if (appState.selectionElement) {
297
314
  try {
298
- renderSelectionElement(appState.selectionElement, context, appState);
315
+ renderSelectionElement(appState.selectionElement, context, appState, renderConfig.selectionColor);
299
316
  }
300
317
  catch (error) {
301
318
  console.error(error);
302
319
  }
303
320
  }
321
+ if (appState.editingElement && isTextElement(appState.editingElement)) {
322
+ const textElement = allElementsMap.get(appState.editingElement.id);
323
+ if (textElement && !textElement.autoResize) {
324
+ renderTextBox(textElement, context, appState, renderConfig.selectionColor);
325
+ }
326
+ }
304
327
  if (appState.isBindingEnabled) {
305
328
  appState.suggestedBindings
306
329
  .filter((binding) => binding != null)
@@ -403,8 +426,12 @@ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selecte
403
426
  context.translate(appState.scrollX, appState.scrollY);
404
427
  if (selectedElements.length === 1) {
405
428
  context.fillStyle = oc.white;
406
- const transformHandles = getTransformHandles(selectedElements[0], appState.zoom, elementsMap, "mouse");
407
- if (!appState.viewModeEnabled && showBoundingBox) {
429
+ const transformHandles = getTransformHandles(selectedElements[0], appState.zoom, elementsMap, "mouse", // when we render we don't know which pointer type so use mouse,
430
+ getOmitSidesForDevice(device));
431
+ if (!appState.viewModeEnabled &&
432
+ showBoundingBox &&
433
+ // do not show transform handles when text is being edited
434
+ !isTextElement(appState.editingElement)) {
408
435
  renderTransformHandles(context, renderConfig, appState, transformHandles, selectedElements[0].angle);
409
436
  }
410
437
  }
@@ -421,8 +448,8 @@ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selecte
421
448
  context.lineWidth = lineWidth;
422
449
  context.setLineDash(initialLineDash);
423
450
  const transformHandles = getTransformHandlesFromCoords([x1, y1, x2, y2, (x1 + x2) / 2, (y1 + y2) / 2], 0, appState.zoom, "mouse", isFrameSelected
424
- ? OMIT_SIDES_FOR_FRAME
425
- : OMIT_SIDES_FOR_MULTIPLE_ELEMENTS);
451
+ ? { ...getOmitSidesForDevice(device), rotation: true }
452
+ : getOmitSidesForDevice(device));
426
453
  if (selectedElements.some((element) => !element.locked)) {
427
454
  renderTransformHandles(context, renderConfig, appState, transformHandles, 0);
428
455
  }
@@ -1,7 +1,7 @@
1
- import { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "../element/types";
1
+ import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "../element/types";
2
2
  import type { RoughCanvas } from "roughjs/bin/canvas";
3
- import { StaticCanvasRenderConfig, RenderableElementsMap } from "../scene/types";
4
- import { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure } from "../types";
3
+ import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "../scene/types";
4
+ import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure } from "../types";
5
5
  export declare const IMAGE_INVERT_FILTER = "invert(100%) hue-rotate(180deg) saturate(1.25)";
6
6
  export declare const getRenderOpacity: (element: ExcalidrawElement, containingFrame: ExcalidrawFrameLikeElement | null, elementsPendingErasure: ElementsPendingErasure) => number;
7
7
  export interface ExcalidrawElementWithCanvas {
@@ -18,7 +18,7 @@ export interface ExcalidrawElementWithCanvas {
18
18
  export declare const DEFAULT_LINK_SIZE = 14;
19
19
  export declare let elementWithCanvasCache: WeakMap<ExcalidrawElement, ExcalidrawElementWithCanvas>;
20
20
  export declare const clearRenderCache: () => void;
21
- export declare const renderSelectionElement: (element: NonDeletedExcalidrawElement, context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState) => void;
21
+ export declare const renderSelectionElement: (element: NonDeletedExcalidrawElement, context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState, selectionColor: InteractiveCanvasRenderConfig["selectionColor"]) => void;
22
22
  export declare const renderElement: (element: NonDeletedExcalidrawElement, elementsMap: RenderableElementsMap, allElementsMap: NonDeletedSceneElementsMap, rc: RoughCanvas, context: CanvasRenderingContext2D, renderConfig: StaticCanvasRenderConfig, appState: StaticCanvasAppState) => void;
23
23
  export declare let pathsCache: WeakMap<ExcalidrawFreeDrawElement, Path2D>;
24
24
  export declare function generateFreeDrawShape(element: ExcalidrawFreeDrawElement): Path2D;
@@ -119,7 +119,7 @@ const IMAGE_PLACEHOLDER_IMG = document.createElement("img");
119
119
  IMAGE_PLACEHOLDER_IMG.src = `data:${MIME_TYPES.svg},${encodeURIComponent(`<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="image" class="svg-inline--fa fa-image fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#888" d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"></path></svg>`)}`;
120
120
  const IMAGE_ERROR_PLACEHOLDER_IMG = document.createElement("img");
121
121
  IMAGE_ERROR_PLACEHOLDER_IMG.src = `data:${MIME_TYPES.svg},${encodeURIComponent(`<svg viewBox="0 0 668 668" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48ZM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56ZM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48Z" style="fill:#888;fill-rule:nonzero" transform="matrix(.81709 0 0 .81709 124.825 145.825)"/><path d="M256 8C119.034 8 8 119.033 8 256c0 136.967 111.034 248 248 248s248-111.034 248-248S392.967 8 256 8Zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676ZM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676Z" style="fill:#888;fill-rule:nonzero" transform="matrix(.30366 0 0 .30366 506.822 60.065)"/></svg>`)}`;
122
- const drawImagePlaceholder = (element, context, zoomValue) => {
122
+ const drawImagePlaceholder = (element, context) => {
123
123
  context.fillStyle = "#E7E7E7";
124
124
  context.fillRect(0, 0, element.width, element.height);
125
125
  const imageMinWidthOrHeight = Math.min(element.width, element.height);
@@ -176,7 +176,7 @@ const drawElementOnCanvas = (element, rc, context, renderConfig, appState) => {
176
176
  context.drawImage(img, 0 /* hardcoded for the selection box*/, 0, element.width, element.height);
177
177
  }
178
178
  else {
179
- drawImagePlaceholder(element, context, appState.zoom.value);
179
+ drawImagePlaceholder(element, context);
180
180
  }
181
181
  break;
182
182
  }
@@ -327,7 +327,7 @@ const drawElementFromCanvas = (elementWithCanvas, context, renderConfig, appStat
327
327
  context.restore();
328
328
  // Clear the nested element we appended to the DOM
329
329
  };
330
- export const renderSelectionElement = (element, context, appState) => {
330
+ export const renderSelectionElement = (element, context, appState, selectionColor) => {
331
331
  context.save();
332
332
  context.translate(element.x + appState.scrollX, element.y + appState.scrollY);
333
333
  context.fillStyle = "rgba(0, 0, 200, 0.04)";
@@ -338,7 +338,7 @@ export const renderSelectionElement = (element, context, appState) => {
338
338
  const offset = 0.5 / appState.zoom.value;
339
339
  context.fillRect(offset, offset, element.width, element.height);
340
340
  context.lineWidth = 1 / appState.zoom.value;
341
- context.strokeStyle = " rgb(105, 101, 219)";
341
+ context.strokeStyle = selectionColor;
342
342
  context.strokeRect(offset, offset, element.width, element.height);
343
343
  context.restore();
344
344
  };
@@ -1,2 +1,2 @@
1
- import { InteractiveCanvasAppState } from "../types";
1
+ import type { InteractiveCanvasAppState } from "../types";
2
2
  export declare const renderSnaps: (context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState) => void;
@@ -1,4 +1,4 @@
1
- import { StaticSceneRenderConfig } from "../scene/types";
1
+ import type { StaticSceneRenderConfig } from "../scene/types";
2
2
  /** throttled to animation framerate */
3
3
  export declare const renderStaticSceneThrottled: {
4
4
  (config: StaticSceneRenderConfig): void;
@@ -1,5 +1,5 @@
1
- import { RoughSVG } from "roughjs/bin/svg";
2
- import { NonDeletedExcalidrawElement } from "../element/types";
3
- import { RenderableElementsMap, SVGRenderConfig } from "../scene/types";
4
- import { BinaryFiles } from "../types";
1
+ import type { RoughSVG } from "roughjs/bin/svg";
2
+ import type { NonDeletedExcalidrawElement } from "../element/types";
3
+ import type { RenderableElementsMap, SVGRenderConfig } from "../scene/types";
4
+ import type { BinaryFiles } from "../types";
5
5
  export declare const renderSceneToSvg: (elements: readonly NonDeletedExcalidrawElement[], elementsMap: RenderableElementsMap, rsvg: RoughSVG, svgRoot: SVGElement, files: BinaryFiles, renderConfig: SVGRenderConfig) => void;
@@ -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, OrderedExcalidrawElement, Ordered } 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,7 +19,14 @@ declare class Scene {
19
19
  private frames;
20
20
  private elementsMap;
21
21
  private selectedElementsCache;
22
- private versionNonce;
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;
23
30
  getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("../utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
24
31
  getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
25
32
  getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("../utility-types").MakeBrand<"SceneElementsMap">;
@@ -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,8 +60,8 @@ 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;
@@ -72,7 +72,16 @@ class Scene {
72
72
  elements: null,
73
73
  cache: new Map(),
74
74
  };
75
- versionNonce;
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;
84
+ }
76
85
  getNonDeletedElementsMap() {
77
86
  return this.nonDeletedElementsMap;
78
87
  }
@@ -118,9 +127,6 @@ class Scene {
118
127
  getElement(id) {
119
128
  return this.elementsMap.get(id) || null;
120
129
  }
121
- getVersionNonce() {
122
- return this.versionNonce;
123
- }
124
130
  getNonDeletedElement(id) {
125
131
  const element = this.getElement(id);
126
132
  if (element && isNonDeletedElement(element)) {
@@ -179,15 +185,15 @@ class Scene {
179
185
  this.nonDeletedElementsMap = nonDeletedElements.elementsMap;
180
186
  this.frames = nextFrameLikes;
181
187
  this.nonDeletedFramesLikes = getNonDeletedElements(this.frames).elements;
182
- this.informMutation();
188
+ this.triggerUpdate();
183
189
  }
184
- informMutation() {
185
- this.versionNonce = randomInteger();
190
+ triggerUpdate() {
191
+ this.sceneNonce = randomInteger();
186
192
  for (const callback of Array.from(this.callbacks)) {
187
193
  callback();
188
194
  }
189
195
  }
190
- addCallback(cb) {
196
+ onUpdate(cb) {
191
197
  if (this.callbacks.has(cb)) {
192
198
  throw new Error();
193
199
  }
@@ -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";
@@ -387,7 +387,7 @@ export const exportToSvg = async ({ data, config, }) => {
387
387
  if (import.meta.env.VITE_IS_EXCALIDRAW_NPM_PACKAGE) {
388
388
  assetPath =
389
389
  window.EXCALIDRAW_ASSET_PATH ||
390
- `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}`;
391
391
  if (assetPath?.startsWith("/")) {
392
392
  assetPath = assetPath.replace("/", `${window.location.origin}/`);
393
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"];
@@ -34,7 +34,7 @@ export type InteractiveCanvasRenderConfig = {
34
34
  remotePointerUserStates: Map<SocketId, UserIdleState>;
35
35
  remotePointerUsernames: Map<SocketId, string>;
36
36
  remotePointerButton: Map<SocketId, string | undefined>;
37
- selectionColor?: string;
37
+ selectionColor: string;
38
38
  renderScrollbars?: boolean;
39
39
  };
40
40
  export type RenderInteractiveSceneCallback = {
@@ -64,9 +64,11 @@ export type InteractiveSceneRenderConfig = {
64
64
  elementsMap: RenderableElementsMap;
65
65
  visibleElements: readonly NonDeletedExcalidrawElement[];
66
66
  selectedElements: readonly NonDeletedExcalidrawElement[];
67
+ allElementsMap: NonDeletedSceneElementsMap;
67
68
  scale: number;
68
69
  appState: InteractiveCanvasAppState;
69
70
  renderConfig: InteractiveCanvasRenderConfig;
71
+ device: Device;
70
72
  callback: (data: RenderInteractiveSceneCallback) => void;
71
73
  };
72
74
  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;
@@ -835,5 +835,6 @@ export const isActiveToolNonLinearSnappable = (activeToolType) => {
835
835
  activeToolType === TOOL_TYPE.diamond ||
836
836
  activeToolType === TOOL_TYPE.frame ||
837
837
  activeToolType === TOOL_TYPE.magicframe ||
838
- activeToolType === TOOL_TYPE.image);
838
+ activeToolType === TOOL_TYPE.image ||
839
+ activeToolType === TOOL_TYPE.text);
839
840
  };
@@ -1,12 +1,42 @@
1
1
  import { AppStateChange, ElementsChange } from "./change";
2
- import { OrderedExcalidrawElement } from "./element/types";
2
+ import type { OrderedExcalidrawElement } from "./element/types";
3
3
  import { Emitter } from "./emitter";
4
- import { AppState, ObservedAppState } from "./types";
4
+ import type { AppState, ObservedAppState } from "./types";
5
+ import type { ValueOf } from "./utility-types";
5
6
  export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
6
- export type StoreActionType = "capture" | "update" | "none";
7
7
  export declare const StoreAction: {
8
- [K in Uppercase<StoreActionType>]: StoreActionType;
8
+ /**
9
+ * Immediately undoable.
10
+ *
11
+ * Use for updates which should be captured.
12
+ * Should be used for most of the local updates.
13
+ *
14
+ * These updates will _immediately_ make it to the local undo / redo stacks.
15
+ */
16
+ readonly CAPTURE: "capture";
17
+ /**
18
+ * Never undoable.
19
+ *
20
+ * Use for updates which should never be recorded, such as remote updates
21
+ * or scene initialization.
22
+ *
23
+ * These updates will _never_ make it to the local undo / redo stacks.
24
+ */
25
+ readonly UPDATE: "update";
26
+ /**
27
+ * Eventually undoable.
28
+ *
29
+ * Use for updates which should not be captured immediately - likely
30
+ * exceptions which are part of some async multi-step process. Otherwise, all
31
+ * such updates would end up being captured with the next
32
+ * `StoreAction.CAPTURE` - triggered either by the next `updateScene`
33
+ * or internally by the editor.
34
+ *
35
+ * These updates will _eventually_ make it to the local undo / redo stacks.
36
+ */
37
+ readonly NONE: "none";
9
38
  };
39
+ export type StoreActionType = ValueOf<typeof StoreAction>;
10
40
  /**
11
41
  * Represent an increment to the Store.
12
42
  */
@@ -25,8 +25,35 @@ export const getObservedAppState = (appState) => {
25
25
  };
26
26
  const isObservedAppState = (appState) => !!Reflect.get(appState, hiddenObservedAppStateProp);
27
27
  export const StoreAction = {
28
+ /**
29
+ * Immediately undoable.
30
+ *
31
+ * Use for updates which should be captured.
32
+ * Should be used for most of the local updates.
33
+ *
34
+ * These updates will _immediately_ make it to the local undo / redo stacks.
35
+ */
28
36
  CAPTURE: "capture",
37
+ /**
38
+ * Never undoable.
39
+ *
40
+ * Use for updates which should never be recorded, such as remote updates
41
+ * or scene initialization.
42
+ *
43
+ * These updates will _never_ make it to the local undo / redo stacks.
44
+ */
29
45
  UPDATE: "update",
46
+ /**
47
+ * Eventually undoable.
48
+ *
49
+ * Use for updates which should not be captured immediately - likely
50
+ * exceptions which are part of some async multi-step process. Otherwise, all
51
+ * such updates would end up being captured with the next
52
+ * `StoreAction.CAPTURE` - triggered either by the next `updateScene`
53
+ * or internally by the editor.
54
+ *
55
+ * These updates will _eventually_ make it to the local undo / redo stacks.
56
+ */
30
57
  NONE: "none",
31
58
  };
32
59
  /**