@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,2 +1,2 @@
1
- import { ExcalidrawElement } from "./types";
1
+ import type { ExcalidrawElement } from "./types";
2
2
  export declare const normalizeElementOrder: (elements: readonly ExcalidrawElement[]) => readonly ExcalidrawElement[];
@@ -1,7 +1,7 @@
1
- import { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, FontFamilyValues, FontString, NonDeletedExcalidrawElement } from "./types";
2
- import { MaybeTransformHandleType } from "./transformHandles";
3
- import { AppState } from "../types";
4
- import { ExtractSetType, MakeBrand } from "../utility-types";
1
+ import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, FontFamilyValues, FontString, NonDeletedExcalidrawElement } from "./types";
2
+ import type { MaybeTransformHandleType } from "./transformHandles";
3
+ import type { AppState } from "../types";
4
+ import type { ExtractSetType, MakeBrand } from "../utility-types";
5
5
  export declare const normalizeText: (text: string) => string;
6
6
  export declare const redrawTextBoundingBox: (textElement: ExcalidrawTextElement, container: ExcalidrawElement | null, elementsMap: ElementsMap, informMutation?: boolean) => void;
7
7
  export declare const bindTextToShapeAfterDuplication: (newElements: ExcalidrawElement[], oldElements: ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
@@ -87,4 +87,5 @@ export declare const FONT_METRICS: Record<number, {
87
87
  export declare const getDefaultLineHeight: (fontFamily: FontFamilyValues) => number & {
88
88
  _brand: "unitlessLineHeight";
89
89
  };
90
+ export declare const getMinTextElementWidth: (font: FontString, lineHeight: ExcalidrawTextElement["lineHeight"]) => number;
90
91
  export {};
@@ -24,12 +24,17 @@ export const redrawTextBoundingBox = (textElement, container, elementsMap, infor
24
24
  angle: container?.angle ?? textElement.angle,
25
25
  };
26
26
  boundTextUpdates.text = textElement.text;
27
- if (container) {
28
- maxWidth = getBoundTextMaxWidth(container, textElement);
27
+ if (container || !textElement.autoResize) {
28
+ maxWidth = container
29
+ ? getBoundTextMaxWidth(container, textElement)
30
+ : textElement.width;
29
31
  boundTextUpdates.text = wrapText(textElement.originalText, getFontString(textElement), maxWidth);
30
32
  }
31
33
  const metrics = measureText(boundTextUpdates.text, getFontString(textElement), textElement.lineHeight);
32
- boundTextUpdates.width = metrics.width;
34
+ // Note: only update width for unwrapped text and bound texts (which always have autoResize set to true)
35
+ if (textElement.autoResize) {
36
+ boundTextUpdates.width = metrics.width;
37
+ }
33
38
  boundTextUpdates.height = metrics.height;
34
39
  if (container) {
35
40
  const maxContainerHeight = getBoundTextMaxHeight(container, textElement);
@@ -661,3 +666,6 @@ export const getDefaultLineHeight = (fontFamily) => {
661
666
  }
662
667
  return DEFAULT_LINE_HEIGHT[DEFAULT_FONT_FAMILY];
663
668
  };
669
+ export const getMinTextElementWidth = (font, lineHeight) => {
670
+ return measureText("", font, lineHeight).width + BOUND_TEXT_PADDING * 2;
671
+ };
@@ -1,16 +1,22 @@
1
- import { ExcalidrawElement, ExcalidrawTextElement } from "./types";
2
- import App from "../components/App";
3
- export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, }: {
1
+ import type { ExcalidrawElement, ExcalidrawTextElement } from "./types";
2
+ import type App from "../components/App";
3
+ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect, }: {
4
4
  id: ExcalidrawElement["id"];
5
- onChange?: ((text: string) => void) | undefined;
5
+ /**
6
+ * textWysiwyg only deals with `originalText`
7
+ *
8
+ * Note: `text`, which can be wrapped and therefore different from `originalText`,
9
+ * is derived from `originalText`
10
+ */
11
+ onChange?: ((nextOriginalText: string) => void) | undefined;
6
12
  onSubmit: (data: {
7
- text: string;
8
13
  viaKeyboard: boolean;
9
- originalText: string;
14
+ nextOriginalText: string;
10
15
  }) => void;
11
16
  getViewportCoords: (x: number, y: number) => [number, number];
12
17
  element: ExcalidrawTextElement;
13
18
  canvas: HTMLCanvasElement;
14
19
  excalidrawContainer: HTMLDivElement | null;
15
20
  app: App;
21
+ autoSelect?: boolean | undefined;
16
22
  }) => void;
@@ -23,7 +23,7 @@ const getTransform = (width, height, angle, appState, maxWidth, maxHeight) => {
23
23
  }
24
24
  return `translate(${translateX}px, ${translateY}px) scale(${zoom.value}) rotate(${degree}deg)`;
25
25
  };
26
- export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, }) => {
26
+ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect = true, }) => {
27
27
  const textPropertiesUpdated = (updatedTextElement, editable) => {
28
28
  if (!editable.style.fontFamily || !editable.style.fontSize) {
29
29
  return false;
@@ -53,8 +53,6 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
53
53
  let maxWidth = updatedTextElement.width;
54
54
  let maxHeight = updatedTextElement.height;
55
55
  let textElementWidth = updatedTextElement.width;
56
- // Set to element height by default since that's
57
- // what is going to be used for unbounded text
58
56
  const textElementHeight = updatedTextElement.height;
59
57
  if (container && updatedTextElement.containerId) {
60
58
  if (isArrowElement(container)) {
@@ -113,6 +111,9 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
113
111
  maxWidth = (appState.width - 8 - viewportX) / appState.zoom.value;
114
112
  textElementWidth = Math.min(textElementWidth, maxWidth);
115
113
  }
114
+ else {
115
+ textElementWidth += 0.5;
116
+ }
116
117
  // Make sure text editor height doesn't go beyond viewport
117
118
  const editorMaxHeight = (appState.height - viewportY) / appState.zoom.value;
118
119
  Object.assign(editable.style, {
@@ -149,7 +150,7 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
149
150
  editable.classList.add("excalidraw-wysiwyg");
150
151
  let whiteSpace = "pre";
151
152
  let wordBreak = "normal";
152
- if (isBoundToContainer(element)) {
153
+ if (isBoundToContainer(element) || !element.autoResize) {
153
154
  whiteSpace = "pre-wrap";
154
155
  wordBreak = "break-word";
155
156
  }
@@ -326,6 +327,11 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
326
327
  // so that we don't need to create separate a callback for event handlers
327
328
  let submittedViaKeyboard = false;
328
329
  const handleSubmit = () => {
330
+ // prevent double submit
331
+ if (isDestroyed) {
332
+ return;
333
+ }
334
+ isDestroyed = true;
329
335
  // cleanup must be run before onSubmit otherwise when app blurs the wysiwyg
330
336
  // it'd get stuck in an infinite loop of blur→onSubmit after we re-focus the
331
337
  // wysiwyg on update
@@ -334,10 +340,8 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
334
340
  if (!updateElement) {
335
341
  return;
336
342
  }
337
- let text = editable.value;
338
343
  const container = getContainerElement(updateElement, app.scene.getNonDeletedElementsMap());
339
344
  if (container) {
340
- text = updateElement.text;
341
345
  if (editable.value.trim()) {
342
346
  const boundTextElementId = getBoundTextElementId(container);
343
347
  if (!boundTextElementId || boundTextElementId !== element.id) {
@@ -361,16 +365,11 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
361
365
  redrawTextBoundingBox(updateElement, container, app.scene.getNonDeletedElementsMap());
362
366
  }
363
367
  onSubmit({
364
- text,
365
368
  viaKeyboard: submittedViaKeyboard,
366
- originalText: editable.value,
369
+ nextOriginalText: editable.value,
367
370
  });
368
371
  };
369
372
  const cleanup = () => {
370
- if (isDestroyed) {
371
- return;
372
- }
373
- isDestroyed = true;
374
373
  // remove events to ensure they don't late-fire
375
374
  editable.onblur = null;
376
375
  editable.oninput = null;
@@ -439,9 +438,24 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
439
438
  // alt-tabbing away
440
439
  window.addEventListener("blur", handleSubmit);
441
440
  }
441
+ else if (event.target instanceof HTMLElement &&
442
+ !event.target.contains(editable) &&
443
+ // Vitest simply ignores stopPropagation, capture-mode, or rAF
444
+ // so without introducing crazier hacks, nothing we can do
445
+ !isTestEnv()) {
446
+ // On mobile, blur event doesn't seem to always fire correctly,
447
+ // so we want to also submit on pointerdown outside the wysiwyg.
448
+ // Done in the next frame to prevent pointerdown from creating a new text
449
+ // immediately (if tools locked) so that users on mobile have chance
450
+ // to submit first (to hide virtual keyboard).
451
+ // Note: revisit if we want to differ this behavior on Desktop
452
+ requestAnimationFrame(() => {
453
+ handleSubmit();
454
+ });
455
+ }
442
456
  };
443
457
  // handle updates of textElement properties of editing element
444
- const unbindUpdate = Scene.getScene(element).addCallback(() => {
458
+ const unbindUpdate = Scene.getScene(element).onUpdate(() => {
445
459
  updateWysiwygStyle();
446
460
  const isColorPickerActive = !!document.activeElement?.closest(".color-picker-content");
447
461
  if (!isColorPickerActive) {
@@ -450,9 +464,11 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
450
464
  });
451
465
  // ---------------------------------------------------------------------------
452
466
  let isDestroyed = false;
453
- // select on init (focusing is done separately inside the bindBlurEvent()
454
- // because we need it to happen *after* the blur event from `pointerdown`)
455
- editable.select();
467
+ if (autoSelect) {
468
+ // select on init (focusing is done separately inside the bindBlurEvent()
469
+ // because we need it to happen *after* the blur event from `pointerdown`)
470
+ editable.select();
471
+ }
456
472
  bindBlurEvent();
457
473
  // reposition wysiwyg in case of canvas is resized. Using ResizeObserver
458
474
  // is preferred so we catch changes from host, where window may not resize.
@@ -466,7 +482,12 @@ export const textWysiwyg = ({ id, onChange, onSubmit, getViewportCoords, element
466
482
  else {
467
483
  window.addEventListener("resize", updateWysiwygStyle);
468
484
  }
469
- window.addEventListener("pointerdown", onPointerDown);
485
+ editable.onpointerdown = (event) => event.stopPropagation();
486
+ // rAF (+ capture to by doubly sure) so we don't catch te pointerdown that
487
+ // triggered the wysiwyg
488
+ requestAnimationFrame(() => {
489
+ window.addEventListener("pointerdown", onPointerDown, { capture: true });
490
+ });
470
491
  window.addEventListener("wheel", stopEvent, {
471
492
  passive: false,
472
493
  capture: true,
@@ -1,6 +1,6 @@
1
- import { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
2
- import { Bounds } from "./bounds";
3
- import { InteractiveCanvasAppState, Zoom } from "../types";
1
+ import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
2
+ import type { Bounds } from "./bounds";
3
+ import type { Device, InteractiveCanvasAppState, Zoom } from "../types";
4
4
  export type TransformHandleDirection = "n" | "s" | "w" | "e" | "nw" | "ne" | "sw" | "se";
5
5
  export type TransformHandleType = TransformHandleDirection | "rotation";
6
6
  export type TransformHandle = Bounds;
@@ -8,6 +8,12 @@ export type TransformHandles = Partial<{
8
8
  [T in TransformHandleType]: TransformHandle;
9
9
  }>;
10
10
  export type MaybeTransformHandleType = TransformHandleType | false;
11
+ export declare const DEFAULT_OMIT_SIDES: {
12
+ e: boolean;
13
+ s: boolean;
14
+ n: boolean;
15
+ w: boolean;
16
+ };
11
17
  export declare const OMIT_SIDES_FOR_MULTIPLE_ELEMENTS: {
12
18
  e: boolean;
13
19
  s: boolean;
@@ -21,6 +27,8 @@ export declare const OMIT_SIDES_FOR_FRAME: {
21
27
  w: boolean;
22
28
  rotation: boolean;
23
29
  };
30
+ export declare const canResizeFromSides: (device: Device) => boolean;
31
+ export declare const getOmitSidesForDevice: (device: Device) => {};
24
32
  export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [number, number, number, number, number, number], angle: number, zoom: Zoom, pointerType: PointerType, omitSides?: {
25
33
  s?: boolean | undefined;
26
34
  e?: boolean | undefined;
@@ -32,5 +40,15 @@ export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [
32
40
  se?: boolean | undefined;
33
41
  rotation?: boolean | undefined;
34
42
  }, margin?: number) => TransformHandles;
35
- export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, elementsMap: ElementsMap, pointerType?: PointerType) => TransformHandles;
43
+ export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, elementsMap: ElementsMap, pointerType?: PointerType, omitSides?: {
44
+ s?: boolean | undefined;
45
+ e?: boolean | undefined;
46
+ w?: boolean | undefined;
47
+ n?: boolean | undefined;
48
+ nw?: boolean | undefined;
49
+ ne?: boolean | undefined;
50
+ sw?: boolean | undefined;
51
+ se?: boolean | undefined;
52
+ rotation?: boolean | undefined;
53
+ }) => TransformHandles;
36
54
  export declare const shouldShowBoundingBox: (elements: readonly NonDeletedExcalidrawElement[], appState: InteractiveCanvasAppState) => boolean;
@@ -1,32 +1,31 @@
1
1
  import { getElementAbsoluteCoords } from "./bounds";
2
2
  import { rotate } from "../math";
3
- import { isTextElement } from ".";
4
3
  import { isFrameLikeElement, isLinearElement } from "./typeChecks";
5
- import { DEFAULT_TRANSFORM_HANDLE_SPACING } from "../constants";
4
+ import { DEFAULT_TRANSFORM_HANDLE_SPACING, isAndroid, isIOS, } from "../constants";
6
5
  const transformHandleSizes = {
7
6
  mouse: 8,
8
7
  pen: 16,
9
8
  touch: 28,
10
9
  };
11
10
  const ROTATION_RESIZE_HANDLE_GAP = 16;
12
- export const OMIT_SIDES_FOR_MULTIPLE_ELEMENTS = {
11
+ export const DEFAULT_OMIT_SIDES = {
13
12
  e: true,
14
13
  s: true,
15
14
  n: true,
16
15
  w: true,
17
16
  };
18
- export const OMIT_SIDES_FOR_FRAME = {
17
+ export const OMIT_SIDES_FOR_MULTIPLE_ELEMENTS = {
19
18
  e: true,
20
19
  s: true,
21
20
  n: true,
22
21
  w: true,
23
- rotation: true,
24
22
  };
25
- const OMIT_SIDES_FOR_TEXT_ELEMENT = {
23
+ export const OMIT_SIDES_FOR_FRAME = {
26
24
  e: true,
27
25
  s: true,
28
26
  n: true,
29
27
  w: true,
28
+ rotation: true,
30
29
  };
31
30
  const OMIT_SIDES_FOR_LINE_SLASH = {
32
31
  e: true,
@@ -46,6 +45,21 @@ const generateTransformHandle = (x, y, width, height, cx, cy, angle) => {
46
45
  const [xx, yy] = rotate(x + width / 2, y + height / 2, cx, cy, angle);
47
46
  return [xx - width / 2, yy - height / 2, width, height];
48
47
  };
48
+ export const canResizeFromSides = (device) => {
49
+ if (device.viewport.isMobile) {
50
+ return false;
51
+ }
52
+ if (device.isTouchScreen && (isAndroid || isIOS)) {
53
+ return false;
54
+ }
55
+ return true;
56
+ };
57
+ export const getOmitSidesForDevice = (device) => {
58
+ if (canResizeFromSides(device)) {
59
+ return DEFAULT_OMIT_SIDES;
60
+ }
61
+ return {};
62
+ };
49
63
  export const getTransformHandlesFromCoords = ([x1, y1, x2, y2, cx, cy], angle, zoom, pointerType, omitSides = {}, margin = 4) => {
50
64
  const size = transformHandleSizes[pointerType];
51
65
  const handleWidth = size / zoom.value;
@@ -98,14 +112,13 @@ export const getTransformHandlesFromCoords = ([x1, y1, x2, y2, cx, cy], angle, z
98
112
  }
99
113
  return transformHandles;
100
114
  };
101
- export const getTransformHandles = (element, zoom, elementsMap, pointerType = "mouse") => {
115
+ export const getTransformHandles = (element, zoom, elementsMap, pointerType = "mouse", omitSides = DEFAULT_OMIT_SIDES) => {
102
116
  // so that when locked element is selected (especially when you toggle lock
103
117
  // via keyboard) the locked element is visually distinct, indicating
104
118
  // you can't move/resize
105
119
  if (element.locked) {
106
120
  return {};
107
121
  }
108
- let omitSides = {};
109
122
  if (element.type === "freedraw" || isLinearElement(element)) {
110
123
  if (element.points.length === 2) {
111
124
  // only check the last point because starting point is always (0,0)
@@ -127,11 +140,9 @@ export const getTransformHandles = (element, zoom, elementsMap, pointerType = "m
127
140
  }
128
141
  }
129
142
  }
130
- else if (isTextElement(element)) {
131
- omitSides = OMIT_SIDES_FOR_TEXT_ELEMENT;
132
- }
133
143
  else if (isFrameLikeElement(element)) {
134
144
  omitSides = {
145
+ ...omitSides,
135
146
  rotation: true,
136
147
  };
137
148
  }
@@ -1,6 +1,6 @@
1
- import { ElementOrToolType } from "../types";
2
- import { MarkNonNullable } from "../utility-types";
3
- import { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement } from "./types";
1
+ import type { ElementOrToolType } from "../types";
2
+ import type { MarkNonNullable } from "../utility-types";
3
+ import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement } from "./types";
4
4
  export declare const isInitializedImageElement: (element: ExcalidrawElement | null) => element is InitializedExcalidrawImageElement;
5
5
  export declare const isImageElement: (element: ExcalidrawElement | null) => element is ExcalidrawImageElement;
6
6
  export declare const isEmbeddableElement: (element: ExcalidrawElement | null | undefined) => element is ExcalidrawEmbeddableElement;
@@ -1,7 +1,7 @@
1
- import { Point } from "../types";
2
- import { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "../constants";
3
- import { MakeBrand, MarkNonNullable, ValueOf } from "../utility-types";
4
- import { MagicCacheData } from "../data/magic";
1
+ import type { Point } from "../types";
2
+ import type { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "../constants";
3
+ import type { MakeBrand, MarkNonNullable, ValueOf } from "../utility-types";
4
+ import type { MagicCacheData } from "../data/magic";
5
5
  export type ChartType = "bar" | "line";
6
6
  export type FillStyle = "hachure" | "cross-hatch" | "solid" | "zigzag";
7
7
  export type FontFamilyKeys = keyof typeof FONT_FAMILY;
@@ -154,6 +154,13 @@ export type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
154
154
  verticalAlign: VerticalAlign;
155
155
  containerId: ExcalidrawGenericElement["id"] | null;
156
156
  originalText: string;
157
+ /**
158
+ * If `true` the width will fit the text. If `false`, the text will
159
+ * wrap to fit the width.
160
+ *
161
+ * @default true
162
+ */
163
+ autoResize: boolean;
157
164
  /**
158
165
  * Unitless line height (aligned to W3C). To get line height in px, multiply
159
166
  * with font size (using `getLineHeightInPx` helper).
@@ -1,4 +1,4 @@
1
- import { UnsubscribeCallback } from "./types";
1
+ import type { UnsubscribeCallback } from "./types";
2
2
  type Subscriber<T extends any[]> = (...payload: T) => void;
3
3
  export declare class Emitter<T extends any[] = []> {
4
4
  subscribers: Subscriber<T>[];
@@ -1,4 +1,4 @@
1
- import { ExcalidrawElement, OrderedExcalidrawElement } from "./element/types";
1
+ import type { ExcalidrawElement, OrderedExcalidrawElement } from "./element/types";
2
2
  /**
3
3
  * Envisioned relation between array order and fractional indices:
4
4
  *
@@ -97,12 +97,10 @@ const getMovedIndicesGroups = (elements, movedElements) => {
97
97
  const indicesGroups = [];
98
98
  let i = 0;
99
99
  while (i < elements.length) {
100
- if (movedElements.has(elements[i].id) &&
101
- !isValidFractionalIndex(elements[i]?.index, elements[i - 1]?.index, elements[i + 1]?.index)) {
100
+ if (movedElements.has(elements[i].id)) {
102
101
  const indicesGroup = [i - 1, i]; // push the lower bound index as the first item
103
102
  while (++i < elements.length) {
104
- if (!(movedElements.has(elements[i].id) &&
105
- !isValidFractionalIndex(elements[i]?.index, elements[i - 1]?.index, elements[i + 1]?.index))) {
103
+ if (!movedElements.has(elements[i].id)) {
106
104
  break;
107
105
  }
108
106
  indicesGroup.push(i);
@@ -1,7 +1,7 @@
1
- import { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./element/types";
2
- import { AppClassProperties, AppState, StaticCanvasAppState } from "./types";
1
+ import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "./element/types";
2
+ import type { AppClassProperties, AppState, StaticCanvasAppState } from "./types";
3
3
  import type { ExcalidrawElementsIncludingDeleted } from "./scene/Scene";
4
- import { ReadonlySetLike } from "./utility-types";
4
+ import type { ReadonlySetLike } from "./utility-types";
5
5
  export declare const bindElementsToFramesAfterDuplication: (nextElements: readonly ExcalidrawElement[], oldElements: readonly ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
6
6
  export declare function isElementIntersectingFrame(element: ExcalidrawElement, frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap): boolean;
7
7
  export declare const getElementsCompletelyInFrame: (elements: readonly ExcalidrawElement[], frame: ExcalidrawFrameLikeElement, elementsMap: ElementsMap) => ExcalidrawElement[];
@@ -1,4 +1,4 @@
1
- import { Line, Direction, Point } from "./ga";
1
+ import type { Line, Direction, Point } from "./ga";
2
2
  /**
3
3
  * TODO: docs
4
4
  */
@@ -1,4 +1,4 @@
1
- import { PointerCoords } from "./types";
1
+ import type { PointerCoords } from "./types";
2
2
  export declare const getCenter: (pointers: Map<number, PointerCoords>) => {
3
3
  x: number;
4
4
  y: number;
@@ -1,6 +1,6 @@
1
- import { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./element/types";
2
- import { AppClassProperties, AppState, InteractiveCanvasAppState } from "./types";
3
- import { Mutable } from "./utility-types";
1
+ import type { GroupId, ExcalidrawElement, NonDeleted, NonDeletedExcalidrawElement, ElementsMapOrArray, ElementsMap } from "./element/types";
2
+ import type { AppClassProperties, AppState, InteractiveCanvasAppState } from "./types";
3
+ import type { Mutable } from "./utility-types";
4
4
  export declare const selectGroup: (groupId: GroupId, appState: InteractiveCanvasAppState, elements: readonly NonDeleted<ExcalidrawElement>[]) => Pick<InteractiveCanvasAppState, "selectedGroupIds" | "selectedElementIds" | "editingGroupId">;
5
5
  export declare const selectGroupsForSelectedElements: {
6
6
  (appState: Pick<AppState, "selectedElementIds" | "editingGroupId">, elements: readonly NonDeletedExcalidrawElement[], prevAppState: InteractiveCanvasAppState, app: AppClassProperties | null): Mutable<Pick<InteractiveCanvasAppState, "selectedGroupIds" | "editingGroupId" | "selectedElementIds">>;
@@ -30,3 +30,4 @@ export declare const removeFromSelectedGroups: (groupIds: ExcalidrawElement["gro
30
30
  export declare const getMaximumGroups: (elements: ExcalidrawElement[], elementsMap: ElementsMap) => ExcalidrawElement[][];
31
31
  export declare const getNonDeletedGroupIds: (elements: ElementsMap) => Set<string>;
32
32
  export declare const elementsAreInSameGroup: (elements: ExcalidrawElement[]) => boolean;
33
+ export declare const isInGroup: (element: NonDeletedExcalidrawElement) => boolean;
@@ -245,3 +245,6 @@ export const elementsAreInSameGroup = (elements) => {
245
245
  }
246
246
  return maxGroup === elements.length;
247
247
  };
248
+ export const isInGroup = (element) => {
249
+ return element.groupIds.length > 0;
250
+ };
@@ -1,8 +1,8 @@
1
- import { AppStateChange, ElementsChange } from "./change";
2
- import { SceneElementsMap } from "./element/types";
1
+ import type { AppStateChange, ElementsChange } from "./change";
2
+ import type { SceneElementsMap } from "./element/types";
3
3
  import { Emitter } from "./emitter";
4
- import { Snapshot } from "./store";
5
- import { AppState } from "./types";
4
+ import type { Snapshot } from "./store";
5
+ import type { AppState } from "./types";
6
6
  export declare class HistoryChangedEvent {
7
7
  readonly isUndoStackEmpty: boolean;
8
8
  readonly isRedoStackEmpty: boolean;
@@ -1,2 +1,2 @@
1
- import { Emitter } from "../emitter";
1
+ import type { Emitter } from "../emitter";
2
2
  export declare const useEmitter: <TEvent extends unknown>(emitter: Emitter<[TEvent]>, initialState: TEvent) => TEvent;
@@ -1,4 +1,4 @@
1
- import { LibraryItem } from "../types";
1
+ import type { LibraryItem } from "../types";
2
2
  export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
3
  export declare const libraryItemSvgsCache: import("jotai").PrimitiveAtom<SvgCache> & {
4
4
  init: SvgCache;
@@ -1,5 +1,5 @@
1
1
  import fallbackLangData from "./locales/en.json";
2
- import { NestedKeyOf } from "./utility-types";
2
+ import type { NestedKeyOf } from "./utility-types";
3
3
  export interface Language {
4
4
  code: string;
5
5
  label: string;
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import "./css/app.scss";
3
3
  import "./css/styles.scss";
4
4
  import "../../public/fonts/fonts.css";
5
- import { ExcalidrawProps } from "./types";
5
+ import type { ExcalidrawProps } from "./types";
6
6
  import Footer from "./components/footer/FooterCenter";
7
7
  import MainMenu from "./components/main-menu/MainMenu";
8
8
  import WelcomeScreen from "./components/welcome-screen/WelcomeScreen";
@@ -1,4 +1,4 @@
1
- import { PrimitiveAtom } from "jotai";
1
+ import type { PrimitiveAtom } from "jotai";
2
2
  export declare const jotaiScope: unique symbol;
3
3
  export declare const jotaiStore: {
4
4
  get: <Value>(atom: import("jotai").Atom<Value>) => Awaited<Value> | undefined;
@@ -1,5 +1,6 @@
1
- import { AnimatedTrail, Trail } from "./animated-trail";
2
- import { AnimationFrameHandler } from "./animation-frame-handler";
1
+ import type { Trail } from "./animated-trail";
2
+ import { AnimatedTrail } from "./animated-trail";
3
+ import type { AnimationFrameHandler } from "./animation-frame-handler";
3
4
  import type App from "./components/App";
4
5
  export declare class LaserTrails implements Trail {
5
6
  private animationFrameHandler;
@@ -129,7 +129,7 @@
129
129
  },
130
130
  "lineEditor": {
131
131
  "edit": "Edit line",
132
- "exit": "Exit line editor"
132
+ "editArrow": "Edit arrow"
133
133
  },
134
134
  "elementLock": {
135
135
  "lock": "Lock",
@@ -148,7 +148,9 @@
148
148
  "discordChat": "Discord chat",
149
149
  "zoomToFitViewport": "Zoom to fit in viewport",
150
150
  "zoomToFitSelection": "Zoom to fit selection",
151
- "zoomToFit": "Zoom to fit all elements"
151
+ "zoomToFit": "Zoom to fit all elements",
152
+ "installPWA": "Install Excalidraw locally (PWA)",
153
+ "autoResize": "Enable text auto-resizing"
152
154
  },
153
155
  "library": {
154
156
  "noItems": "No items added yet...",
@@ -1,5 +1,5 @@
1
- import { Point, Zoom } from "./types";
2
- import { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./element/types";
1
+ import type { Point, Zoom } from "./types";
2
+ import type { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./element/types";
3
3
  export declare const rotate: (x: number, y: number, cx: number, cy: number, angle: number) => [number, number];
4
4
  export declare const rotatePoint: (point: readonly [number, number], center: readonly [number, number], angle: number) => [number, number];
5
5
  export declare const adjustXYWithRotation: (sides: {
@@ -0,0 +1,2 @@
1
+ /** heuristically checks whether the text may be a mermaid diagram definition */
2
+ export declare const isMaybeMermaidDefinition: (text: string) => boolean;
@@ -0,0 +1,28 @@
1
+ /** heuristically checks whether the text may be a mermaid diagram definition */
2
+ export const isMaybeMermaidDefinition = (text) => {
3
+ const chartTypes = [
4
+ "flowchart",
5
+ "sequenceDiagram",
6
+ "classDiagram",
7
+ "stateDiagram",
8
+ "stateDiagram-v2",
9
+ "erDiagram",
10
+ "journey",
11
+ "gantt",
12
+ "pie",
13
+ "quadrantChart",
14
+ "requirementDiagram",
15
+ "gitGraph",
16
+ "C4Context",
17
+ "mindmap",
18
+ "timeline",
19
+ "zenuml",
20
+ "sankey",
21
+ "xychart",
22
+ "block",
23
+ ];
24
+ const re = new RegExp(`^(?:%%{.*?}%%[\\s\\n]*)?\\b${chartTypes
25
+ .map((x) => `${x}(-beta)?`)
26
+ .join("|")}\\b`);
27
+ return re.test(text.trim());
28
+ };
@@ -1,4 +1,4 @@
1
- import { Point } from "./types";
1
+ import type { Point } from "./types";
2
2
  export declare const getSizeFromPoints: (points: readonly Point[]) => {
3
3
  width: number;
4
4
  height: number;
@@ -1,4 +1,4 @@
1
- import { MaybePromise } from "./utility-types";
1
+ import type { MaybePromise } from "./utility-types";
2
2
  type Job<T, TArgs extends unknown[]> = (...args: TArgs) => MaybePromise<T>;
3
3
  export declare class Queue {
4
4
  private jobs;
@@ -1,5 +1,5 @@
1
- import { AppState } from "../types";
2
- import { StaticCanvasRenderConfig } from "../scene/types";
1
+ import type { AppState } from "../types";
2
+ import type { StaticCanvasRenderConfig } from "../scene/types";
3
3
  export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke?: boolean) => void;
4
4
  export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
5
5
  export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, canvasBackgroundColor, }: {
@@ -1,4 +1,4 @@
1
- import { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
1
+ import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
2
2
  /** throttled to animation framerate */
3
3
  export declare const renderInteractiveSceneThrottled: {
4
4
  (config: InteractiveSceneRenderConfig): void;
@@ -9,7 +9,7 @@ export declare const renderInteractiveSceneThrottled: {
9
9
  * Interactive scene is the ui-canvas where we render bounding boxes, selections
10
10
  * and other ui stuff.
11
11
  */
12
- export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, scale, appState, renderConfig, }: InteractiveSceneRenderConfig) => {
12
+ export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }: InteractiveSceneRenderConfig) => {
13
13
  atLeastOneVisibleElement: boolean;
14
14
  elementsMap: RenderableElementsMap;
15
15
  scrollBars?: undefined;