@myoc/excalidraw 0.19.521 → 0.19.522
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.
- package/CHANGELOG.md +227 -8
- package/dist/dev/{chunk-P7I4FGOG.js → chunk-6T5HZJCI.js} +2 -2
- package/dist/dev/chunk-72CYJXY3.js +69 -0
- package/dist/dev/chunk-72CYJXY3.js.map +7 -0
- package/dist/dev/{chunk-MN6E45MP.js → chunk-BCNQXIBK.js} +348 -85
- package/dist/dev/chunk-BCNQXIBK.js.map +7 -0
- package/dist/dev/{chunk-IU2VFRFU.js → chunk-SKCAT7JG.js} +19 -6
- package/dist/dev/chunk-SKCAT7JG.js.map +7 -0
- package/dist/dev/data/{image-ZYGVHYLC.js → image-NFLICJEW.js} +3 -3
- package/dist/dev/index.css +2198 -2250
- package/dist/dev/index.css.map +3 -3
- package/dist/dev/index.js +14897 -11932
- package/dist/dev/index.js.map +4 -4
- package/dist/dev/locales/{ar-SA-NFU76NHO.js → ar-SA-JEFXMY43.js} +69 -29
- package/dist/dev/locales/ar-SA-JEFXMY43.js.map +7 -0
- package/dist/dev/locales/{az-AZ-F7U432OF.js → az-AZ-K5GG7N2H.js} +47 -7
- package/dist/dev/locales/az-AZ-K5GG7N2H.js.map +7 -0
- package/dist/dev/locales/{bg-BG-VMJGHZ3R.js → bg-BG-YUNBCAUF.js} +47 -7
- package/dist/dev/locales/bg-BG-YUNBCAUF.js.map +7 -0
- package/dist/dev/locales/{bn-BD-ABWH5RGF.js → bn-BD-TASJ52R7.js} +47 -7
- package/dist/dev/locales/bn-BD-TASJ52R7.js.map +7 -0
- package/dist/dev/locales/{bn-IN-6FBCHDUY.js → bn-IN-CQJ5XUTI.js} +47 -7
- package/dist/dev/locales/bn-IN-CQJ5XUTI.js.map +7 -0
- package/dist/dev/locales/{ca-ES-UX7K2ENH.js → ca-ES-F62AQUFY.js} +47 -69
- package/dist/dev/locales/ca-ES-F62AQUFY.js.map +7 -0
- package/dist/dev/locales/{cs-CZ-TBYIRH36.js → cs-CZ-YHUNUU6P.js} +47 -69
- package/dist/dev/locales/cs-CZ-YHUNUU6P.js.map +7 -0
- package/dist/dev/locales/{da-DK-KW4TGU6O.js → da-DK-QU24E74Q.js} +47 -69
- package/dist/dev/locales/da-DK-QU24E74Q.js.map +7 -0
- package/dist/dev/locales/{de-CH-QSJHIHEN.js → de-CH-KLWBYLGC.js} +110 -132
- package/dist/dev/locales/de-CH-KLWBYLGC.js.map +7 -0
- package/dist/dev/locales/{de-DE-2WQ5IRPT.js → de-DE-UB755M7G.js} +110 -132
- package/dist/dev/locales/de-DE-UB755M7G.js.map +7 -0
- package/dist/dev/locales/{el-GR-N7JWYMV5.js → el-GR-J2BFDAEA.js} +47 -69
- package/dist/dev/locales/el-GR-J2BFDAEA.js.map +7 -0
- package/dist/dev/locales/{en-25BPHB4T.js → en-RETPDZ4S.js} +4 -2
- package/dist/dev/locales/{es-ES-37LJTLHM.js → es-ES-GL35U3D6.js} +97 -119
- package/dist/dev/locales/es-ES-GL35U3D6.js.map +7 -0
- package/dist/dev/locales/{eu-ES-2IFCUP7K.js → eu-ES-5LL7P4G7.js} +150 -172
- package/dist/dev/locales/eu-ES-5LL7P4G7.js.map +7 -0
- package/dist/dev/locales/{fa-IR-VDT7BNM4.js → fa-IR-2D6AXPSB.js} +52 -74
- package/dist/dev/locales/fa-IR-2D6AXPSB.js.map +7 -0
- package/dist/dev/locales/{fi-FI-HLYF5ISJ.js → fi-FI-WLH5PKEI.js} +47 -69
- package/dist/dev/locales/fi-FI-WLH5PKEI.js.map +7 -0
- package/dist/dev/locales/{fr-FR-5YNPDFPF.js → fr-FR-2OK3WPK2.js} +50 -72
- package/dist/dev/locales/fr-FR-2OK3WPK2.js.map +7 -0
- package/dist/dev/locales/{gl-ES-S56CRRSA.js → gl-ES-EZQPQSMM.js} +47 -69
- package/dist/dev/locales/gl-ES-EZQPQSMM.js.map +7 -0
- package/dist/dev/locales/{he-IL-7GR3BHPZ.js → he-IL-AZ66QXVH.js} +101 -123
- package/dist/dev/locales/he-IL-AZ66QXVH.js.map +7 -0
- package/dist/dev/locales/{hi-IN-AQ7X42V5.js → hi-IN-FLBMKLKL.js} +47 -69
- package/dist/dev/locales/hi-IN-FLBMKLKL.js.map +7 -0
- package/dist/dev/locales/{hu-HU-4HM3N3P3.js → hu-HU-VDOE4ASN.js} +47 -69
- package/dist/dev/locales/hu-HU-VDOE4ASN.js.map +7 -0
- package/dist/dev/locales/{id-ID-P7V2I35Q.js → id-ID-ONDPKYZS.js} +94 -116
- package/dist/dev/locales/id-ID-ONDPKYZS.js.map +7 -0
- package/dist/dev/locales/{it-IT-HUGIPGTB.js → it-IT-VBFSF2PC.js} +50 -72
- package/dist/dev/locales/it-IT-VBFSF2PC.js.map +7 -0
- package/dist/dev/locales/{ja-JP-XFX5V5ZL.js → ja-JP-HYYYQCGH.js} +141 -163
- package/dist/dev/locales/ja-JP-HYYYQCGH.js.map +7 -0
- package/dist/dev/locales/{kaa-X53Z7Q4I.js → kaa-TY3DGTWH.js} +47 -69
- package/dist/dev/locales/kaa-TY3DGTWH.js.map +7 -0
- package/dist/dev/locales/{kab-KAB-GGKAECT5.js → kab-KAB-IY5ZIQCV.js} +47 -69
- package/dist/dev/locales/kab-KAB-IY5ZIQCV.js.map +7 -0
- package/dist/dev/locales/{kk-KZ-Z6R3NY65.js → kk-KZ-XL46CODC.js} +47 -69
- package/dist/dev/locales/kk-KZ-XL46CODC.js.map +7 -0
- package/dist/dev/locales/{km-KH-DGK3UTBI.js → km-KH-SBKIWI6O.js} +47 -69
- package/dist/dev/locales/km-KH-SBKIWI6O.js.map +7 -0
- package/dist/dev/locales/{ko-KR-W7QZK3EC.js → ko-KR-G6PO3BPA.js} +109 -131
- package/dist/dev/locales/ko-KR-G6PO3BPA.js.map +7 -0
- package/dist/dev/locales/{ku-TR-3UJE7FNE.js → ku-TR-DCRJVW6B.js} +47 -69
- package/dist/dev/locales/ku-TR-DCRJVW6B.js.map +7 -0
- package/dist/dev/locales/{lt-LT-OTNQMXF6.js → lt-LT-HMDRWN2A.js} +47 -69
- package/dist/dev/locales/lt-LT-HMDRWN2A.js.map +7 -0
- package/dist/dev/locales/{lv-LV-Y44YX4AK.js → lv-LV-E7XBXM5Z.js} +47 -69
- package/dist/dev/locales/lv-LV-E7XBXM5Z.js.map +7 -0
- package/dist/dev/locales/{mr-IN-MT2HYNUI.js → mr-IN-7HMFEVFE.js} +48 -70
- package/dist/dev/locales/mr-IN-7HMFEVFE.js.map +7 -0
- package/dist/dev/locales/{my-MM-ZBRKQSW3.js → my-MM-L4VSI7TR.js} +47 -69
- package/dist/dev/locales/my-MM-L4VSI7TR.js.map +7 -0
- package/dist/dev/locales/{nb-NO-ZY7DB7O2.js → nb-NO-GBRDJCO7.js} +47 -69
- package/dist/dev/locales/nb-NO-GBRDJCO7.js.map +7 -0
- package/dist/dev/locales/{nl-NL-YLVMYG2H.js → nl-NL-Z3EVTIXJ.js} +52 -74
- package/dist/dev/locales/nl-NL-Z3EVTIXJ.js.map +7 -0
- package/dist/dev/locales/{nn-NO-4SXLBTTQ.js → nn-NO-WCTTYN3P.js} +47 -69
- package/dist/dev/locales/nn-NO-WCTTYN3P.js.map +7 -0
- package/dist/dev/locales/{oc-FR-NMOJCLB4.js → oc-FR-6IH2LZOZ.js} +47 -69
- package/dist/dev/locales/oc-FR-6IH2LZOZ.js.map +7 -0
- package/dist/dev/locales/{pa-IN-G5T3AUSW.js → pa-IN-3KCEDMBE.js} +47 -69
- package/dist/dev/locales/pa-IN-3KCEDMBE.js.map +7 -0
- package/dist/dev/locales/{percentages-ZRLRVMSI.js → percentages-DKKGPYTW.js} +2 -2
- package/dist/dev/locales/{pl-PL-TXUESISZ.js → pl-PL-OFE4QPOR.js} +47 -69
- package/dist/dev/locales/pl-PL-OFE4QPOR.js.map +7 -0
- package/dist/dev/locales/{pt-BR-KEMR6KPT.js → pt-BR-KFYVREQI.js} +94 -116
- package/dist/dev/locales/pt-BR-KFYVREQI.js.map +7 -0
- package/dist/dev/locales/{pt-PT-ZCG2G3PR.js → pt-PT-GZLT46KI.js} +92 -114
- package/dist/dev/locales/pt-PT-GZLT46KI.js.map +7 -0
- package/dist/dev/locales/{ro-RO-MDAUF4EM.js → ro-RO-DKVFNBHO.js} +50 -72
- package/dist/dev/locales/ro-RO-DKVFNBHO.js.map +7 -0
- package/dist/dev/locales/{ru-RU-ZIRVCAVQ.js → ru-RU-6JEBKTLT.js} +50 -72
- package/dist/dev/locales/ru-RU-6JEBKTLT.js.map +7 -0
- package/dist/dev/locales/{si-LK-FPEI3WT5.js → si-LK-6AKNCJA5.js} +47 -69
- package/dist/dev/locales/si-LK-6AKNCJA5.js.map +7 -0
- package/dist/dev/locales/{sk-SK-TZJ3W5LE.js → sk-SK-2ATL6K2E.js} +50 -72
- package/dist/dev/locales/sk-SK-2ATL6K2E.js.map +7 -0
- package/dist/dev/locales/{sl-SI-KIJ3UR57.js → sl-SI-YMMKUPW6.js} +47 -69
- package/dist/dev/locales/sl-SI-YMMKUPW6.js.map +7 -0
- package/dist/dev/locales/{sv-SE-WX2A2Y2N.js → sv-SE-WBMU72M2.js} +88 -110
- package/dist/dev/locales/sv-SE-WBMU72M2.js.map +7 -0
- package/dist/dev/locales/{ta-IN-ECFHL2WQ.js → ta-IN-OVDW7DBM.js} +47 -69
- package/dist/dev/locales/ta-IN-OVDW7DBM.js.map +7 -0
- package/dist/dev/locales/{th-TH-XIGNEM6A.js → th-TH-7L42SH4O.js} +73 -95
- package/dist/dev/locales/th-TH-7L42SH4O.js.map +7 -0
- package/dist/dev/locales/{tr-TR-RCLDMBSM.js → tr-TR-MPDZYTZ2.js} +83 -105
- package/dist/dev/locales/tr-TR-MPDZYTZ2.js.map +7 -0
- package/dist/dev/locales/{uk-UA-2ADII6GR.js → uk-UA-5SVBS74S.js} +66 -88
- package/dist/dev/locales/uk-UA-5SVBS74S.js.map +7 -0
- package/dist/dev/locales/{uz-UZ-COGLAKY3.js → uz-UZ-QYTGSZB2.js} +47 -69
- package/dist/dev/locales/uz-UZ-QYTGSZB2.js.map +7 -0
- package/dist/dev/locales/{vi-VN-QBW5T274.js → vi-VN-KMVP2XW5.js} +47 -69
- package/dist/dev/locales/vi-VN-KMVP2XW5.js.map +7 -0
- package/dist/dev/locales/{zh-CN-WONZCIPT.js → zh-CN-KR2L555J.js} +51 -73
- package/dist/dev/locales/zh-CN-KR2L555J.js.map +7 -0
- package/dist/dev/locales/{zh-HK-AJ2UN7VN.js → zh-HK-VFOCIZQM.js} +47 -69
- package/dist/dev/locales/zh-HK-VFOCIZQM.js.map +7 -0
- package/dist/dev/locales/{zh-TW-O73UCU5T.js → zh-TW-OIQ4BXFH.js} +91 -113
- package/dist/dev/locales/zh-TW-OIQ4BXFH.js.map +7 -0
- package/dist/dev/subset-shared.chunk.js +1 -1
- package/dist/dev/subset-worker.chunk.js +1 -1
- package/dist/prod/chunk-5XKZK2GL.js +1 -0
- package/dist/prod/chunk-66O5T5YX.js +4 -0
- package/dist/prod/chunk-DARW3V66.js +12 -0
- package/dist/prod/{chunk-ZYOK2JIN.js → chunk-SZWH77NQ.js} +1 -1
- package/dist/prod/data/image-AAJBLI3M.js +1 -0
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +20 -111
- package/dist/prod/locales/ar-SA-E6E2KRZ5.js +10 -0
- package/dist/prod/locales/az-AZ-RDMGQYMZ.js +1 -0
- package/dist/prod/locales/bg-BG-CHUVCTEA.js +5 -0
- package/dist/prod/locales/bn-BD-ZMOEPIQW.js +3 -0
- package/dist/prod/locales/bn-IN-OHZAWF5C.js +3 -0
- package/dist/prod/locales/ca-ES-K4A7PUP4.js +8 -0
- package/dist/prod/locales/cs-CZ-RVP6YORC.js +7 -0
- package/dist/prod/locales/da-DK-ENJX4GIQ.js +2 -0
- package/dist/prod/locales/de-CH-VYBKDWRU.js +11 -0
- package/dist/prod/locales/de-DE-6MCXRRVA.js +11 -0
- package/dist/prod/locales/el-GR-WEDZAIPA.js +7 -0
- package/dist/prod/locales/en-RNZ7CUK6.js +1 -0
- package/dist/prod/locales/es-ES-LLEALNRO.js +11 -0
- package/dist/prod/locales/eu-ES-M4Y34NOW.js +8 -0
- package/dist/prod/locales/fa-IR-XSMVGGRV.js +9 -0
- package/dist/prod/locales/fi-FI-K2D3DDUS.js +6 -0
- package/dist/prod/locales/fr-FR-EQKMVJSO.js +12 -0
- package/dist/prod/locales/gl-ES-RCPQTYJV.js +6 -0
- package/dist/prod/locales/he-IL-RHAGKYKH.js +9 -0
- package/dist/prod/locales/hi-IN-3UDCLKHN.js +3 -0
- package/dist/prod/locales/hu-HU-T3REA7IL.js +3 -0
- package/dist/prod/locales/id-ID-KW4N25IN.js +8 -0
- package/dist/prod/locales/it-IT-LJVXK4LO.js +12 -0
- package/dist/prod/locales/ja-JP-GGGK3KPX.js +12 -0
- package/dist/prod/locales/kaa-TSEHAWJR.js +1 -0
- package/dist/prod/locales/kab-KAB-IWXTEINV.js +4 -0
- package/dist/prod/locales/kk-KZ-6GNYSAU7.js +1 -0
- package/dist/prod/locales/km-KH-ILUXSOEW.js +7 -0
- package/dist/prod/locales/ko-KR-FJWHM3OT.js +5 -0
- package/dist/prod/locales/ku-TR-DRDDAECA.js +6 -0
- package/dist/prod/locales/lt-LT-IYFIPPJI.js +3 -0
- package/dist/prod/locales/lv-LV-7F754RSS.js +4 -0
- package/dist/prod/locales/mr-IN-BYRIZ3PC.js +9 -0
- package/dist/prod/locales/my-MM-RBYJSIJ6.js +1 -0
- package/dist/prod/locales/nb-NO-EKTZIYSK.js +8 -0
- package/dist/prod/locales/nl-NL-UECYYIUK.js +13 -0
- package/dist/prod/locales/nn-NO-JPXGIDBA.js +4 -0
- package/dist/prod/locales/oc-FR-4RSIVDPZ.js +4 -0
- package/dist/prod/locales/pa-IN-GPHFXISR.js +4 -0
- package/dist/prod/locales/percentages-Q7USCRWZ.js +1 -0
- package/dist/prod/locales/pl-PL-HKHPAEVK.js +12 -0
- package/dist/prod/locales/pt-BR-UBWN6CKP.js +10 -0
- package/dist/prod/locales/pt-PT-XDY4S4SD.js +12 -0
- package/dist/prod/locales/ro-RO-2B3UXAQO.js +12 -0
- package/dist/prod/locales/ru-RU-EW52HAV3.js +10 -0
- package/dist/prod/locales/si-LK-PIEHI4JX.js +1 -0
- package/dist/prod/locales/sk-SK-TZXYYIFD.js +7 -0
- package/dist/prod/locales/sl-SI-VUDQNDF3.js +6 -0
- package/dist/prod/locales/sv-SE-IJTJRA7S.js +12 -0
- package/dist/prod/locales/ta-IN-Q5PXZT3U.js +6 -0
- package/dist/prod/locales/th-TH-HK66ZQXE.js +1 -0
- package/dist/prod/locales/tr-TR-CLYYPVPL.js +4 -0
- package/dist/prod/locales/uk-UA-YR4OMRYF.js +6 -0
- package/dist/prod/locales/uz-UZ-CY4LSY5Y.js +1 -0
- package/dist/prod/locales/vi-VN-UDAEMEBG.js +7 -0
- package/dist/prod/locales/zh-CN-EGBL23FT.js +11 -0
- package/dist/prod/locales/zh-HK-ZOJEG32A.js +1 -0
- package/dist/prod/locales/zh-TW-TM5HZP7M.js +13 -0
- package/dist/prod/subset-shared.chunk.js +1 -1
- package/dist/prod/subset-worker.chunk.js +1 -1
- package/dist/types/common/src/colors.d.ts +14 -0
- package/dist/types/common/src/constants.d.ts +3 -0
- package/dist/types/common/src/keys.d.ts +2 -0
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/utils.d.ts +1 -1
- package/dist/types/element/src/Scene.d.ts +1 -1
- package/dist/types/element/src/align.d.ts +2 -2
- package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
- package/dist/types/element/src/arrows/focus.d.ts +5 -2
- package/dist/types/element/src/binding.d.ts +17 -8
- package/dist/types/element/src/bounds.d.ts +5 -9
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +1 -1
- package/dist/types/element/src/comparisons.d.ts +4 -4
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- package/dist/types/element/src/distribute.d.ts +2 -2
- package/dist/types/element/src/dragElements.d.ts +27 -0
- package/dist/types/element/src/duplicate.d.ts +3 -3
- package/dist/types/element/src/embeddable.d.ts +2 -2
- package/dist/types/element/src/flowchart.d.ts +7 -7
- package/dist/types/element/src/fractionalIndex.d.ts +2 -2
- package/dist/types/element/src/frame.d.ts +4 -4
- package/dist/types/element/src/groups.d.ts +9 -9
- package/dist/types/element/src/index.d.ts +4 -1
- package/dist/types/element/src/linearElementEditor.d.ts +17 -10
- package/dist/types/element/src/newElement.d.ts +13 -0
- package/dist/types/element/src/renderElement.d.ts +0 -3
- package/dist/types/element/src/resizeElements.d.ts +2 -2
- package/dist/types/element/src/selection.d.ts +5 -5
- package/dist/types/element/src/shape.d.ts +12 -0
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/textElement.d.ts +12 -9
- package/dist/types/element/src/transform.d.ts +2 -2
- package/dist/types/element/src/typeChecks.d.ts +25 -25
- package/dist/types/element/src/types.d.ts +2 -1
- package/dist/types/element/src/zindex.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +24 -8
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +128 -961
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +24 -8
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +38 -13
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +9 -4
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +25 -9
- package/dist/types/excalidraw/actions/actionExport.d.ts +26 -10
- package/dist/types/excalidraw/actions/actionFrame.d.ts +47 -205
- package/dist/types/excalidraw/actions/actionGroup.d.ts +39 -23
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +15 -6
- package/dist/types/excalidraw/actions/actionLink.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionMenu.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionProperties.d.ts +43 -24
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +17 -9
- package/dist/types/excalidraw/actions/actionStyles.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +16 -9
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +16 -9
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +13 -5
- package/dist/types/excalidraw/actions/index.d.ts +1 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +8 -4
- package/dist/types/excalidraw/appState.d.ts +10 -5
- package/dist/types/excalidraw/components/Actions.d.ts +17 -12
- package/dist/types/excalidraw/components/App.arrowText.d.ts +72 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +30 -0
- package/dist/types/excalidraw/components/App.d.ts +384 -60
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
- package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +1 -1
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
- package/dist/types/excalidraw/components/Island.d.ts +7 -0
- package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
- package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
- package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +146 -0
- package/dist/types/excalidraw/components/UserList.d.ts +3 -2
- package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -0
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
- package/dist/types/excalidraw/components/icons.d.ts +4 -1
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/context/tunnels.d.ts +0 -1
- package/dist/types/excalidraw/data/blob.d.ts +14 -6
- package/dist/types/excalidraw/data/index.d.ts +4 -4
- package/dist/types/excalidraw/data/json.d.ts +20 -12
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/index.d.ts +3 -3
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +10 -3
- package/dist/types/excalidraw/scene/Renderer.d.ts +11 -11
- package/dist/types/excalidraw/scene/export.d.ts +3 -3
- package/dist/types/excalidraw/scene/index.d.ts +1 -1
- package/dist/types/excalidraw/scene/types.d.ts +4 -3
- package/dist/types/excalidraw/snapping.d.ts +7 -7
- package/dist/types/excalidraw/types.d.ts +423 -27
- package/dist/types/excalidraw/viewport.d.ts +283 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -3
- package/dist/types/laser-pointer/src/state.d.ts +1 -0
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/polygon.d.ts +25 -1
- package/dist/types/utils/src/export.d.ts +3 -3
- package/package.json +4 -4
- package/dist/dev/chunk-IU2VFRFU.js.map +0 -7
- package/dist/dev/chunk-MN6E45MP.js.map +0 -7
- package/dist/dev/chunk-URPEKBQ3.js +0 -69
- package/dist/dev/chunk-URPEKBQ3.js.map +0 -7
- package/dist/dev/locales/ar-SA-NFU76NHO.js.map +0 -7
- package/dist/dev/locales/az-AZ-F7U432OF.js.map +0 -7
- package/dist/dev/locales/bg-BG-VMJGHZ3R.js.map +0 -7
- package/dist/dev/locales/bn-BD-ABWH5RGF.js.map +0 -7
- package/dist/dev/locales/bn-IN-6FBCHDUY.js.map +0 -7
- package/dist/dev/locales/ca-ES-UX7K2ENH.js.map +0 -7
- package/dist/dev/locales/cs-CZ-TBYIRH36.js.map +0 -7
- package/dist/dev/locales/da-DK-KW4TGU6O.js.map +0 -7
- package/dist/dev/locales/de-CH-QSJHIHEN.js.map +0 -7
- package/dist/dev/locales/de-DE-2WQ5IRPT.js.map +0 -7
- package/dist/dev/locales/el-GR-N7JWYMV5.js.map +0 -7
- package/dist/dev/locales/es-ES-37LJTLHM.js.map +0 -7
- package/dist/dev/locales/eu-ES-2IFCUP7K.js.map +0 -7
- package/dist/dev/locales/fa-IR-VDT7BNM4.js.map +0 -7
- package/dist/dev/locales/fi-FI-HLYF5ISJ.js.map +0 -7
- package/dist/dev/locales/fr-FR-5YNPDFPF.js.map +0 -7
- package/dist/dev/locales/gl-ES-S56CRRSA.js.map +0 -7
- package/dist/dev/locales/he-IL-7GR3BHPZ.js.map +0 -7
- package/dist/dev/locales/hi-IN-AQ7X42V5.js.map +0 -7
- package/dist/dev/locales/hu-HU-4HM3N3P3.js.map +0 -7
- package/dist/dev/locales/id-ID-P7V2I35Q.js.map +0 -7
- package/dist/dev/locales/it-IT-HUGIPGTB.js.map +0 -7
- package/dist/dev/locales/ja-JP-XFX5V5ZL.js.map +0 -7
- package/dist/dev/locales/kaa-X53Z7Q4I.js.map +0 -7
- package/dist/dev/locales/kab-KAB-GGKAECT5.js.map +0 -7
- package/dist/dev/locales/kk-KZ-Z6R3NY65.js.map +0 -7
- package/dist/dev/locales/km-KH-DGK3UTBI.js.map +0 -7
- package/dist/dev/locales/ko-KR-W7QZK3EC.js.map +0 -7
- package/dist/dev/locales/ku-TR-3UJE7FNE.js.map +0 -7
- package/dist/dev/locales/lt-LT-OTNQMXF6.js.map +0 -7
- package/dist/dev/locales/lv-LV-Y44YX4AK.js.map +0 -7
- package/dist/dev/locales/mr-IN-MT2HYNUI.js.map +0 -7
- package/dist/dev/locales/my-MM-ZBRKQSW3.js.map +0 -7
- package/dist/dev/locales/nb-NO-ZY7DB7O2.js.map +0 -7
- package/dist/dev/locales/nl-NL-YLVMYG2H.js.map +0 -7
- package/dist/dev/locales/nn-NO-4SXLBTTQ.js.map +0 -7
- package/dist/dev/locales/oc-FR-NMOJCLB4.js.map +0 -7
- package/dist/dev/locales/pa-IN-G5T3AUSW.js.map +0 -7
- package/dist/dev/locales/pl-PL-TXUESISZ.js.map +0 -7
- package/dist/dev/locales/pt-BR-KEMR6KPT.js.map +0 -7
- package/dist/dev/locales/pt-PT-ZCG2G3PR.js.map +0 -7
- package/dist/dev/locales/ro-RO-MDAUF4EM.js.map +0 -7
- package/dist/dev/locales/ru-RU-ZIRVCAVQ.js.map +0 -7
- package/dist/dev/locales/si-LK-FPEI3WT5.js.map +0 -7
- package/dist/dev/locales/sk-SK-TZJ3W5LE.js.map +0 -7
- package/dist/dev/locales/sl-SI-KIJ3UR57.js.map +0 -7
- package/dist/dev/locales/sv-SE-WX2A2Y2N.js.map +0 -7
- package/dist/dev/locales/ta-IN-ECFHL2WQ.js.map +0 -7
- package/dist/dev/locales/th-TH-XIGNEM6A.js.map +0 -7
- package/dist/dev/locales/tr-TR-RCLDMBSM.js.map +0 -7
- package/dist/dev/locales/uk-UA-2ADII6GR.js.map +0 -7
- package/dist/dev/locales/uz-UZ-COGLAKY3.js.map +0 -7
- package/dist/dev/locales/vi-VN-QBW5T274.js.map +0 -7
- package/dist/dev/locales/zh-CN-WONZCIPT.js.map +0 -7
- package/dist/dev/locales/zh-HK-AJ2UN7VN.js.map +0 -7
- package/dist/dev/locales/zh-TW-O73UCU5T.js.map +0 -7
- package/dist/prod/chunk-3PELD44J.js +0 -1
- package/dist/prod/chunk-3UXKIWVY.js +0 -12
- package/dist/prod/chunk-BNYGVLQX.js +0 -4
- package/dist/prod/data/image-OFIWDJ6Z.js +0 -1
- package/dist/prod/locales/ar-SA-3G7FTBZJ.js +0 -8
- package/dist/prod/locales/az-AZ-HMFZUPFL.js +0 -1
- package/dist/prod/locales/bg-BG-Y7OZ2DXF.js +0 -5
- package/dist/prod/locales/bn-BD-36TGMEAF.js +0 -3
- package/dist/prod/locales/bn-IN-FALW4RB5.js +0 -3
- package/dist/prod/locales/ca-ES-MJRJ6GTN.js +0 -8
- package/dist/prod/locales/cs-CZ-52YM52ZO.js +0 -7
- package/dist/prod/locales/da-DK-QEP42HP6.js +0 -2
- package/dist/prod/locales/de-CH-LGHSGO4X.js +0 -7
- package/dist/prod/locales/de-DE-GHNPPGTN.js +0 -7
- package/dist/prod/locales/el-GR-2UZLGABX.js +0 -7
- package/dist/prod/locales/en-AH5BYWXT.js +0 -1
- package/dist/prod/locales/es-ES-2NUH2FTW.js +0 -7
- package/dist/prod/locales/eu-ES-LW4CGHUU.js +0 -7
- package/dist/prod/locales/fa-IR-U32PFECK.js +0 -9
- package/dist/prod/locales/fi-FI-G7756HAK.js +0 -6
- package/dist/prod/locales/fr-FR-VIEH4DTC.js +0 -12
- package/dist/prod/locales/gl-ES-JWQDRMPC.js +0 -6
- package/dist/prod/locales/he-IL-YYBNMYP4.js +0 -8
- package/dist/prod/locales/hi-IN-4J4RW5AN.js +0 -3
- package/dist/prod/locales/hu-HU-MBXXMHSF.js +0 -3
- package/dist/prod/locales/id-ID-5U764SVL.js +0 -8
- package/dist/prod/locales/it-IT-7BNDK63V.js +0 -12
- package/dist/prod/locales/ja-JP-4SLEHWLA.js +0 -7
- package/dist/prod/locales/kaa-YHCGFUY5.js +0 -1
- package/dist/prod/locales/kab-KAB-LSGAIMUB.js +0 -4
- package/dist/prod/locales/kk-KZ-3YNSB7GZ.js +0 -1
- package/dist/prod/locales/km-KH-7GXC5R4I.js +0 -7
- package/dist/prod/locales/ko-KR-B6Q6YTFE.js +0 -5
- package/dist/prod/locales/ku-TR-FBC7A657.js +0 -6
- package/dist/prod/locales/lt-LT-NTZ3RRBU.js +0 -3
- package/dist/prod/locales/lv-LV-G24LH3KG.js +0 -4
- package/dist/prod/locales/mr-IN-FMZEIYNW.js +0 -9
- package/dist/prod/locales/my-MM-B6EJQIQF.js +0 -1
- package/dist/prod/locales/nb-NO-GEP6ZOEM.js +0 -8
- package/dist/prod/locales/nl-NL-4QUIWSVP.js +0 -13
- package/dist/prod/locales/nn-NO-P32L2VHA.js +0 -4
- package/dist/prod/locales/oc-FR-QRACY6JR.js +0 -4
- package/dist/prod/locales/pa-IN-GBDTCDVG.js +0 -4
- package/dist/prod/locales/percentages-5DKR754L.js +0 -1
- package/dist/prod/locales/pl-PL-2Y6CXCHK.js +0 -12
- package/dist/prod/locales/pt-BR-FKWT7UFL.js +0 -6
- package/dist/prod/locales/pt-PT-6EMD7SCZ.js +0 -8
- package/dist/prod/locales/ro-RO-XERO3Y25.js +0 -12
- package/dist/prod/locales/ru-RU-XKTTT4QL.js +0 -10
- package/dist/prod/locales/si-LK-MGLC5APF.js +0 -1
- package/dist/prod/locales/sk-SK-BMCDJLZC.js +0 -7
- package/dist/prod/locales/sl-SI-LAWKY4LU.js +0 -6
- package/dist/prod/locales/sv-SE-X2ORO3SG.js +0 -8
- package/dist/prod/locales/ta-IN-RZDP4ZDC.js +0 -6
- package/dist/prod/locales/th-TH-GY4Y5ENV.js +0 -1
- package/dist/prod/locales/tr-TR-CT4QTEX3.js +0 -4
- package/dist/prod/locales/uk-UA-XEPSQF3S.js +0 -6
- package/dist/prod/locales/uz-UZ-WM3HHDOU.js +0 -1
- package/dist/prod/locales/vi-VN-RFG3SAMP.js +0 -7
- package/dist/prod/locales/zh-CN-2WGTQQH5.js +0 -11
- package/dist/prod/locales/zh-HK-J64WV2A2.js +0 -1
- package/dist/prod/locales/zh-TW-4JITCNYX.js +0 -9
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +0 -180
- package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
- package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
- package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -12
- package/dist/types/excalidraw/components/shapes.d.ts +0 -270
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
- package/dist/types/excalidraw/scroll.d.ts +0 -46
- /package/dist/dev/{chunk-P7I4FGOG.js.map → chunk-6T5HZJCI.js.map} +0 -0
- /package/dist/dev/data/{image-ZYGVHYLC.js.map → image-NFLICJEW.js.map} +0 -0
- /package/dist/dev/locales/{en-25BPHB4T.js.map → en-RETPDZ4S.js.map} +0 -0
- /package/dist/dev/locales/{percentages-ZRLRVMSI.js.map → percentages-DKKGPYTW.js.map} +0 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import type { SceneBounds } from "@excalidraw/element";
|
|
2
|
+
import type { Bounds } from "@excalidraw/common";
|
|
3
|
+
import type { ExcalidrawElement } from "@excalidraw/element/types";
|
|
4
|
+
import type { AppState, NormalizedZoomValue, Offsets, PointerCoords, ScrollConstraints, ViewportOffsets, Zoom } from "./types";
|
|
5
|
+
/** default rubberband overscroll give for scroll locks, in viewport px */
|
|
6
|
+
export declare const DEFAULT_OVERSCROLL = 150;
|
|
7
|
+
type ZoomOptions = {
|
|
8
|
+
viewportX: number;
|
|
9
|
+
viewportY: number;
|
|
10
|
+
nextZoom: NormalizedZoomValue;
|
|
11
|
+
};
|
|
12
|
+
export type AnimationOptions = {
|
|
13
|
+
duration?: number;
|
|
14
|
+
};
|
|
15
|
+
export type SetViewportRect = {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
width?: number;
|
|
19
|
+
height?: number;
|
|
20
|
+
};
|
|
21
|
+
export type SetViewportOptions = {
|
|
22
|
+
/**
|
|
23
|
+
* what to show in the viewport: an explicit scene-coordinate box/rect,
|
|
24
|
+
* element(s), or an element id / element-link URL.
|
|
25
|
+
*
|
|
26
|
+
* IMPORTANT: if supplying ExcalidrawElement(s), only non-deleted elements
|
|
27
|
+
* that actually exist on the canvas are considered. If you want to navigate
|
|
28
|
+
* to elements that's not on canvas yet, supply their bounds by using
|
|
29
|
+
* `getCommonBounds` (see {@link getCommonBounds}).
|
|
30
|
+
*/
|
|
31
|
+
target: Bounds | SetViewportRect | ExcalidrawElement | readonly ExcalidrawElement[] | string;
|
|
32
|
+
/**
|
|
33
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/object-fit
|
|
34
|
+
*
|
|
35
|
+
* - `scale-down` - zoom out so the target fits the viewport, never zooming past 100%
|
|
36
|
+
* - `contain` - zoom the target so it fills the viewport (may exceed 100%)
|
|
37
|
+
* - `none` - keep the current zoom, only center the target in the viewport
|
|
38
|
+
*/
|
|
39
|
+
fit?: "scale-down" | "contain" | "none";
|
|
40
|
+
lock?: {
|
|
41
|
+
/** constraints panning to the target box */
|
|
42
|
+
scroll?: ScrollConstraints["lockScroll"];
|
|
43
|
+
/** makes the resolved zoom the minimum zoom */
|
|
44
|
+
zoom?: ScrollConstraints["lockZoom"];
|
|
45
|
+
/**
|
|
46
|
+
* Rubberband give past the lock, in viewport px (zoom-independent): how
|
|
47
|
+
* far the user can pan beyond the constraint before snapping back.
|
|
48
|
+
* `true` (default) uses {@link DEFAULT_OVERSCROLL}, `false` disables
|
|
49
|
+
* (rigid lock), a number sets the give explicitly.
|
|
50
|
+
*/
|
|
51
|
+
overscroll?: boolean | number;
|
|
52
|
+
};
|
|
53
|
+
animation?: AnimationOptions | boolean;
|
|
54
|
+
/**
|
|
55
|
+
* CSS-style per-side viewport insets, in viewport pixels
|
|
56
|
+
* (zoom-independent) — static values, editor-UI-derived (`ui`), or a
|
|
57
|
+
* combination. See {@link ViewportOffsets}.
|
|
58
|
+
*/
|
|
59
|
+
offsets?: ViewportOffsets;
|
|
60
|
+
};
|
|
61
|
+
type Viewport = Pick<AppState, "scrollX" | "scrollY" | "zoom">;
|
|
62
|
+
/**
|
|
63
|
+
* Clamps a proposed scroll/zoom against the active lock (`scrollConstraints`).
|
|
64
|
+
* Returns the input scroll/zoom unchanged when there is no lock.
|
|
65
|
+
* `overscroll` (screen px, zoom-independent) is rubberband give past the
|
|
66
|
+
* resting clamp — pass 0 for a hard clamp.
|
|
67
|
+
*/
|
|
68
|
+
export declare const constrainScrollState: (state: Pick<AppState, "scrollX" | "scrollY" | "zoom" | "width" | "height" | "scrollConstraints">, overscroll?: number) => Viewport;
|
|
69
|
+
/**
|
|
70
|
+
* Resolves a focal-point zoom against the active scroll constraints while
|
|
71
|
+
* preserving the current rubberband displacement in screen pixels. This lets
|
|
72
|
+
* zoom and scroll-constraint snap-back compose without either visually
|
|
73
|
+
* cancelling the other.
|
|
74
|
+
*/
|
|
75
|
+
export declare const getViewportForZoomWithScrollConstraints: (opts: ZoomOptions, state: AppState) => Viewport;
|
|
76
|
+
export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fit, minZoom, maxZoom, steppedZoom, }: {
|
|
77
|
+
bounds: SceneBounds;
|
|
78
|
+
canvasOffsets?: Offsets;
|
|
79
|
+
appState: Readonly<AppState>;
|
|
80
|
+
fit?: SetViewportOptions["fit"];
|
|
81
|
+
minZoom?: number;
|
|
82
|
+
maxZoom?: number;
|
|
83
|
+
steppedZoom?: boolean;
|
|
84
|
+
}) => {
|
|
85
|
+
appState: {
|
|
86
|
+
scrollX: number;
|
|
87
|
+
scrollY: number;
|
|
88
|
+
zoom: {
|
|
89
|
+
value: NormalizedZoomValue;
|
|
90
|
+
};
|
|
91
|
+
contextMenu: {
|
|
92
|
+
items: import("./components/ContextMenu").ContextMenuItems;
|
|
93
|
+
top: number;
|
|
94
|
+
left: number;
|
|
95
|
+
} | null;
|
|
96
|
+
showWelcomeScreen: boolean;
|
|
97
|
+
isLoading: boolean;
|
|
98
|
+
myocSimplifiedMode: boolean;
|
|
99
|
+
dontResizeLimitMBs: number;
|
|
100
|
+
hideMainMenus: boolean;
|
|
101
|
+
wheelZoomsOnDefault?: boolean;
|
|
102
|
+
arrangeConfiguration: {
|
|
103
|
+
algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
|
|
104
|
+
gap: number;
|
|
105
|
+
};
|
|
106
|
+
normaliseConfiguration: {
|
|
107
|
+
mode: import("./types").NormaliseMode;
|
|
108
|
+
metric: import("./types").NormaliseMetric;
|
|
109
|
+
};
|
|
110
|
+
errorMessage: React.ReactNode;
|
|
111
|
+
activeEmbeddable: {
|
|
112
|
+
element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
|
|
113
|
+
state: "hover" | "active";
|
|
114
|
+
} | null;
|
|
115
|
+
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
116
|
+
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
117
|
+
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
118
|
+
selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
119
|
+
isBindingEnabled: boolean;
|
|
120
|
+
boxSelectionMode: import("./types").BoxSelectionMode;
|
|
121
|
+
bindingPreference: "enabled" | "disabled";
|
|
122
|
+
isMidpointSnappingEnabled: boolean;
|
|
123
|
+
suggestedBinding: {
|
|
124
|
+
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
125
|
+
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
126
|
+
} | null;
|
|
127
|
+
hoveredArrowTextAnchor: {
|
|
128
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
129
|
+
anchor: "start" | "end" | "label";
|
|
130
|
+
} | null;
|
|
131
|
+
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
132
|
+
frameRendering: {
|
|
133
|
+
enabled: boolean;
|
|
134
|
+
name: boolean;
|
|
135
|
+
outline: boolean;
|
|
136
|
+
clip: boolean;
|
|
137
|
+
};
|
|
138
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
139
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
140
|
+
editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
|
|
141
|
+
activeTool: {
|
|
142
|
+
lastActiveTool: import("./types").ActiveTool | null;
|
|
143
|
+
locked: boolean;
|
|
144
|
+
fromSelection: boolean;
|
|
145
|
+
} & import("./types").ActiveTool;
|
|
146
|
+
preferredSelectionTool: {
|
|
147
|
+
type: "selection" | "lasso";
|
|
148
|
+
initialized: boolean;
|
|
149
|
+
};
|
|
150
|
+
penMode: boolean;
|
|
151
|
+
penDetected: boolean;
|
|
152
|
+
exportBackground: boolean;
|
|
153
|
+
exportEmbedScene: boolean;
|
|
154
|
+
exportWithDarkMode: boolean;
|
|
155
|
+
exportScale: number;
|
|
156
|
+
currentItemStrokeColor: string;
|
|
157
|
+
currentItemBackgroundColor: string;
|
|
158
|
+
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
159
|
+
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
160
|
+
currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
|
|
161
|
+
currentItemRoughness: number;
|
|
162
|
+
currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
|
|
163
|
+
currentItemOpacity: number;
|
|
164
|
+
currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
165
|
+
currentItemFontSize: number;
|
|
166
|
+
currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
|
|
167
|
+
currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
168
|
+
currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
169
|
+
currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
|
|
170
|
+
currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
|
|
171
|
+
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
172
|
+
viewBackgroundColor: string;
|
|
173
|
+
scrollConstraints: ScrollConstraints | null;
|
|
174
|
+
cursorButton: "up" | "down";
|
|
175
|
+
scrolledOutside: boolean;
|
|
176
|
+
name: string | null;
|
|
177
|
+
isResizing: boolean;
|
|
178
|
+
isRotating: boolean;
|
|
179
|
+
openMenu: "canvas" | null;
|
|
180
|
+
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
181
|
+
openSidebar: {
|
|
182
|
+
name: import("./types").SidebarName;
|
|
183
|
+
tab?: import("./types").SidebarTabName;
|
|
184
|
+
} | null;
|
|
185
|
+
openDialog: null | {
|
|
186
|
+
name: "imageExport" | "help" | "jsonExport";
|
|
187
|
+
} | {
|
|
188
|
+
name: "settings";
|
|
189
|
+
} | {
|
|
190
|
+
name: "elementLinkSelector";
|
|
191
|
+
sourceElementId: ExcalidrawElement["id"];
|
|
192
|
+
} | {
|
|
193
|
+
name: "charts";
|
|
194
|
+
data: import("./charts").Spreadsheet;
|
|
195
|
+
rawText: string;
|
|
196
|
+
};
|
|
197
|
+
defaultSidebarDockedPreference: boolean;
|
|
198
|
+
lastPointerDownWith: import("@excalidraw/element/types").PointerType;
|
|
199
|
+
selectedElementIds: Readonly<{
|
|
200
|
+
[id: string]: true;
|
|
201
|
+
}>;
|
|
202
|
+
hoveredElementIds: Readonly<{
|
|
203
|
+
[id: string]: true;
|
|
204
|
+
}>;
|
|
205
|
+
previousSelectedElementIds: {
|
|
206
|
+
[id: string]: true;
|
|
207
|
+
};
|
|
208
|
+
selectedElementsAreBeingDragged: boolean;
|
|
209
|
+
shouldCacheIgnoreZoom: boolean;
|
|
210
|
+
toast: {
|
|
211
|
+
message: React.ReactNode;
|
|
212
|
+
closable?: boolean;
|
|
213
|
+
duration?: number;
|
|
214
|
+
} | null;
|
|
215
|
+
zenModeEnabled: boolean;
|
|
216
|
+
theme: import("@excalidraw/element/types").Theme;
|
|
217
|
+
gridSize: number;
|
|
218
|
+
gridStep: number;
|
|
219
|
+
gridModeEnabled: boolean;
|
|
220
|
+
viewModeEnabled: boolean;
|
|
221
|
+
viewModeOnly: boolean;
|
|
222
|
+
selectedGroupIds: {
|
|
223
|
+
[groupId: string]: boolean;
|
|
224
|
+
};
|
|
225
|
+
editingGroupId: import("@excalidraw/element/types").GroupId | null;
|
|
226
|
+
width: number;
|
|
227
|
+
height: number;
|
|
228
|
+
offsetTop: number;
|
|
229
|
+
offsetLeft: number;
|
|
230
|
+
fileHandle: FileSystemFileHandle | null;
|
|
231
|
+
collaborators: Map<import("./types").SocketId, import("./types").Collaborator>;
|
|
232
|
+
stats: {
|
|
233
|
+
open: boolean;
|
|
234
|
+
panels: number;
|
|
235
|
+
};
|
|
236
|
+
showHyperlinkPopup: false | "info" | "editor";
|
|
237
|
+
selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
|
|
238
|
+
snapLines: readonly import("./snapping").SnapLine[];
|
|
239
|
+
originSnapOffset: {
|
|
240
|
+
x: number;
|
|
241
|
+
y: number;
|
|
242
|
+
} | null;
|
|
243
|
+
objectsSnapModeEnabled: boolean;
|
|
244
|
+
isCropping: boolean;
|
|
245
|
+
croppingElementId: ExcalidrawElement["id"] | null;
|
|
246
|
+
searchMatches: Readonly<{
|
|
247
|
+
focusedId: ExcalidrawElement["id"] | null;
|
|
248
|
+
matches: readonly import("./types").SearchMatch[];
|
|
249
|
+
}> | null;
|
|
250
|
+
activeLockedId: string | null;
|
|
251
|
+
lockedMultiSelections: {
|
|
252
|
+
[groupId: string]: true;
|
|
253
|
+
};
|
|
254
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
255
|
+
colorTopPicks: {
|
|
256
|
+
elementStroke: readonly string[] | null;
|
|
257
|
+
elementBackground: readonly string[] | null;
|
|
258
|
+
bucketFill: readonly string[] | null;
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
captureUpdate: "EVENTUALLY";
|
|
262
|
+
};
|
|
263
|
+
export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
|
|
264
|
+
x: number;
|
|
265
|
+
y: number;
|
|
266
|
+
}) => Bounds;
|
|
267
|
+
export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, offsets, }: {
|
|
268
|
+
scenePoint: PointerCoords;
|
|
269
|
+
viewportDimensions: {
|
|
270
|
+
height: number;
|
|
271
|
+
width: number;
|
|
272
|
+
};
|
|
273
|
+
zoom: Zoom;
|
|
274
|
+
offsets?: Offsets;
|
|
275
|
+
}) => {
|
|
276
|
+
scrollX: number;
|
|
277
|
+
scrollY: number;
|
|
278
|
+
};
|
|
279
|
+
export declare const getScrollToContentState: (elements: readonly ExcalidrawElement[], appState: AppState) => {
|
|
280
|
+
scrollX: number;
|
|
281
|
+
scrollY: number;
|
|
282
|
+
};
|
|
283
|
+
export {};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExcalidrawTextElement } from "@excalidraw/element/types";
|
|
2
2
|
import type App from "../components/App";
|
|
3
3
|
type SubmitHandler = () => void;
|
|
4
|
-
export declare const textWysiwyg: ({
|
|
5
|
-
id: ExcalidrawElement["id"];
|
|
4
|
+
export declare const textWysiwyg: ({ onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect, initialCaretSceneCoords, }: {
|
|
6
5
|
/**
|
|
7
6
|
* textWysiwyg only deals with `originalText`
|
|
8
7
|
*
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { GlobalPoint, LocalPoint, Vector } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* The principal axes of a point set, i.e. the eigen decomposition of its
|
|
4
|
+
* 2x2 covariance matrix.
|
|
5
|
+
*
|
|
6
|
+
* The axes are orthonormal and ordered by variance, so `major` is the
|
|
7
|
+
* direction along which the points spread the most. Together with `centroid`
|
|
8
|
+
* they define a canonical frame: expressing the points in it removes
|
|
9
|
+
* translation and rotation, and dividing by `sqrt(majorVariance)` removes
|
|
10
|
+
* scale.
|
|
11
|
+
*/
|
|
12
|
+
export type PrincipalAxes<Point extends GlobalPoint | LocalPoint> = {
|
|
13
|
+
centroid: Point;
|
|
14
|
+
/** Unit vector along the direction of largest variance. */
|
|
15
|
+
major: Vector;
|
|
16
|
+
/** Unit vector along the direction of smallest variance, normal to major. */
|
|
17
|
+
minor: Vector;
|
|
18
|
+
/** Variance along `major` (the larger eigenvalue, λ₁). */
|
|
19
|
+
majorVariance: number;
|
|
20
|
+
/** Variance along `minor` (the smaller eigenvalue, λ₂). */
|
|
21
|
+
minorVariance: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* A point expressed in a principal axes frame: `u` along the major axis,
|
|
25
|
+
* `v` along the minor axis, both relative to the centroid.
|
|
26
|
+
*/
|
|
27
|
+
export type PrincipalCoords = [u: number, v: number];
|
|
28
|
+
/**
|
|
29
|
+
* Compute the centroid of a point set.
|
|
30
|
+
*/
|
|
31
|
+
export declare function centroid<Point extends GlobalPoint | LocalPoint>(points: readonly Point[]): Point;
|
|
32
|
+
/**
|
|
33
|
+
* Principal component analysis of a 2D point set.
|
|
34
|
+
*
|
|
35
|
+
* Computes the centroid and the eigen decomposition of the covariance matrix
|
|
36
|
+
* [[μ20, μ11], [μ11, μ02]].
|
|
37
|
+
*
|
|
38
|
+
* @param points At least two points; fewer leaves the axes degenerate.
|
|
39
|
+
* @returns The centroid, the orthonormal axes and their variances.
|
|
40
|
+
*/
|
|
41
|
+
export declare function principalAxes<Point extends GlobalPoint | LocalPoint>(points: readonly Point[]): PrincipalAxes<Point>;
|
|
42
|
+
/**
|
|
43
|
+
* Express points in the frame of the given principal axes, making the point
|
|
44
|
+
* cloud rotation, scale and translation invariant.
|
|
45
|
+
*/
|
|
46
|
+
export declare function principalCoords<Point extends GlobalPoint | LocalPoint>(points: readonly Point[], axes: PrincipalAxes<Point>, scale?: number): PrincipalCoords[];
|
|
47
|
+
/**
|
|
48
|
+
* Flip the major axis so that it points toward the denser end of the point
|
|
49
|
+
* cloud, resolving the 180° sign ambiguity of the eigenvector.
|
|
50
|
+
*
|
|
51
|
+
* @returns The axes with `major`/`minor` flipped if needed. Variances are
|
|
52
|
+
* unchanged, as they are invariant to axis sign.
|
|
53
|
+
*/
|
|
54
|
+
export declare function orientPrincipalAxes<Point extends GlobalPoint | LocalPoint>(points: readonly Point[], axes: PrincipalAxes<Point>): PrincipalAxes<Point>;
|
|
55
|
+
/**
|
|
56
|
+
* Ratio of the minor to the major variance in [0, 1]
|
|
57
|
+
*
|
|
58
|
+
* @returns 0 is a perfectly straight stroke, 1 is a stroke with no preferred
|
|
59
|
+
* direction.
|
|
60
|
+
*/
|
|
61
|
+
export declare function elongation<Point extends GlobalPoint | LocalPoint>(axes: PrincipalAxes<Point>): number;
|
|
62
|
+
/**
|
|
63
|
+
* The `order`-th standardized moment of a sample in a rotation and scale
|
|
64
|
+
* invariant way (sandardizing by sigma).
|
|
65
|
+
*
|
|
66
|
+
* @returns 0 for a degenerate (zero variance) sample.
|
|
67
|
+
*/
|
|
68
|
+
export declare function standardizedMoment(values: readonly number[], order: number): number;
|
|
69
|
+
/**
|
|
70
|
+
* Third standardized moment: how lopsided a sample is.
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
export declare function skewness(values: readonly number[]): number;
|
|
74
|
+
/**
|
|
75
|
+
* Fourth standardized moment: how the mass is split between the tails and the
|
|
76
|
+
* middle of a sample. Not excess kurtosis, a normal sample gives 3.
|
|
77
|
+
*
|
|
78
|
+
*/
|
|
79
|
+
export declare function kurtosis(values: readonly number[]): number;
|
|
@@ -3,4 +3,28 @@ export declare function polygon<Point extends GlobalPoint | LocalPoint>(...point
|
|
|
3
3
|
export declare function polygonFromPoints<Point extends GlobalPoint | LocalPoint>(points: Point[]): Polygon<Point>;
|
|
4
4
|
export declare const polygonIncludesPoint: <Point extends LocalPoint | GlobalPoint>(point: Point, polygon: Polygon<Point>) => boolean;
|
|
5
5
|
export declare const polygonIncludesPointNonZero: <Point extends [number, number]>(point: Point, polygon: Point[]) => boolean;
|
|
6
|
-
export declare
|
|
6
|
+
export declare function polygonIsClosed<Point extends LocalPoint | GlobalPoint>(polygon: readonly Point[], tolerance?: number): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* The signed area of a polygon via the shoelace formula. Positive when the
|
|
9
|
+
* vertices wind counter-clockwise in a y-down coordinate system.
|
|
10
|
+
*
|
|
11
|
+
* The polygon may be given open or closed; a closing vertex
|
|
12
|
+
*/
|
|
13
|
+
export declare function polygonSignedArea<Point extends LocalPoint | GlobalPoint>(polygon: readonly Point[], tolerance?: number): number;
|
|
14
|
+
export declare function polygonArea<Point extends LocalPoint | GlobalPoint>(polygon: readonly Point[], tolerance?: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* The convex hull of a point set via Andrew's monotone chain.
|
|
17
|
+
*
|
|
18
|
+
* @returns The hull vertices in counter-clockwise order (y-down), without a
|
|
19
|
+
* repeated closing vertex.
|
|
20
|
+
*/
|
|
21
|
+
export declare function convexHull<Point extends LocalPoint | GlobalPoint>(points: readonly Point[]): Point[];
|
|
22
|
+
/**
|
|
23
|
+
* Drop the points of a convex polygon that only contribute a shallow turn,
|
|
24
|
+
* merging each run of near-collinear points into one.
|
|
25
|
+
*
|
|
26
|
+
* @param polygon A convex polygon, as returned by `convexHull`.
|
|
27
|
+
* @param angleThreshold Minimum accumulated turn (radians) for a vertex to be
|
|
28
|
+
* kept.
|
|
29
|
+
*/
|
|
30
|
+
export declare function simplifyConvexPolygon<Point extends LocalPoint | GlobalPoint>(polygon: readonly Point[], angleThreshold: number): Point[];
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { MIME_TYPES } from "@excalidraw/common";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
3
3
|
import type { AppState, BinaryFiles } from "@excalidraw/excalidraw/types";
|
|
4
4
|
export { MIME_TYPES };
|
|
5
5
|
type ExportOpts = {
|
|
6
|
-
elements: readonly
|
|
6
|
+
elements: readonly NonDeletedExcalidrawElement[];
|
|
7
7
|
appState?: Partial<Omit<AppState, "offsetTop" | "offsetLeft">>;
|
|
8
8
|
files: BinaryFiles | null;
|
|
9
9
|
maxWidthOrHeight?: number;
|
|
10
|
-
exportingFrame?: ExcalidrawFrameLikeElement | null;
|
|
10
|
+
exportingFrame?: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
11
11
|
getDimensions?: (width: number, height: number) => {
|
|
12
12
|
width: number;
|
|
13
13
|
height: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myoc/excalidraw",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.522",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/types/excalidraw/index.d.ts",
|
|
6
6
|
"main": "./dist/prod/index.js",
|
|
@@ -108,9 +108,9 @@
|
|
|
108
108
|
"roughjs": "4.6.4",
|
|
109
109
|
"sass": "1.51.0",
|
|
110
110
|
"tunnel-rat": "0.1.2",
|
|
111
|
-
"@excalidraw/common": "npm:@myoc/common@0.19.
|
|
112
|
-
"@excalidraw/math": "npm:@myoc/math@0.19.
|
|
113
|
-
"@excalidraw/element": "npm:@myoc/element@0.19.
|
|
111
|
+
"@excalidraw/common": "npm:@myoc/common@0.19.522",
|
|
112
|
+
"@excalidraw/math": "npm:@myoc/math@0.19.522",
|
|
113
|
+
"@excalidraw/element": "npm:@myoc/element@0.19.522"
|
|
114
114
|
},
|
|
115
115
|
"devDependencies": {
|
|
116
116
|
"@size-limit/preset-big-lib": "9.0.0",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../locales/en.json"],
|
|
4
|
-
"sourcesContent": ["{\n \"labels\": {\n \"paste\": \"Paste\",\n \"pasteAsPlaintext\": \"Paste as plaintext\",\n \"pasteCharts\": \"Paste charts\",\n \"chartType_bar\": \"Bar chart\",\n \"chartType_line\": \"Line chart\",\n \"chartType_radar\": \"Radar chart\",\n \"chartType_plaintext\": \"Plain text\",\n \"selectAll\": \"Select all\",\n \"multiSelect\": \"Add element to selection\",\n \"moveCanvas\": \"Move canvas\",\n \"cut\": \"Cut\",\n \"copy\": \"Copy\",\n \"copyAsPng\": \"Copy to clipboard as PNG\",\n \"copyAsSvg\": \"Copy to clipboard as SVG\",\n \"copyText\": \"Copy to clipboard as text\",\n \"copySource\": \"Copy source to clipboard\",\n \"convertToCode\": \"Convert to code\",\n \"bringForward\": \"Bring forward\",\n \"sendToBack\": \"Send to back\",\n \"bringToFront\": \"Bring to front\",\n \"sendBackward\": \"Send backward\",\n \"delete\": \"Delete\",\n \"copyStyles\": \"Copy styles\",\n \"pasteStyles\": \"Paste styles\",\n \"stroke\": \"Stroke\",\n \"changeStroke\": \"Change stroke color\",\n \"background\": \"Background\",\n \"changeBackground\": \"Change background color\",\n \"fill\": \"Fill\",\n \"smartZoom\": \"Smart Zoom\",\n \"strokeWidth\": \"Stroke width\",\n \"strokeStyle\": \"Stroke style\",\n \"strokeStyle_solid\": \"Solid\",\n \"strokeStyle_dashed\": \"Dashed\",\n \"strokeStyle_dotted\": \"Dotted\",\n \"sloppiness\": \"Sloppiness\",\n \"pressure\": \"Pressure\",\n \"pressure_constant\": \"Constant\",\n \"pressure_variable\": \"Variable\",\n \"opacity\": \"Opacity\",\n \"textAlign\": \"Text align\",\n \"edges\": \"Edges\",\n \"sharp\": \"Sharp\",\n \"round\": \"Round\",\n \"arrowheads\": \"Arrowheads\",\n \"arrowhead_none\": \"None\",\n \"arrowhead_arrow\": \"Arrow\",\n \"arrowhead_bar\": \"Bar\",\n \"arrowhead_circle\": \"Circle\",\n \"arrowhead_circle_outline\": \"Circle (outline)\",\n \"arrowhead_triangle\": \"Triangle\",\n \"arrowhead_triangle_outline\": \"Triangle (outline)\",\n \"arrowhead_diamond\": \"Diamond\",\n \"arrowhead_diamond_outline\": \"Diamond (outline)\",\n \"arrowhead_crowfoot_many\": \"Crow's foot (many)\",\n \"arrowhead_crowfoot_one\": \"Crow's foot (one)\",\n \"arrowhead_crowfoot_one_or_many\": \"Crow's foot (one or many)\",\n \"arrowhead_cardinality_one\": \"Cardinality (one)\",\n \"arrowhead_cardinality_many\": \"Cardinality (many)\",\n \"arrowhead_cardinality_one_or_many\": \"Cardinality (one or many)\",\n \"arrowhead_cardinality_exactly_one\": \"Cardinality (exactly one)\",\n \"arrowhead_cardinality_zero_or_one\": \"Cardinality (zero or one)\",\n \"arrowhead_cardinality_zero_or_many\": \"Cardinality (zero or many)\",\n \"more_options\": \"More options\",\n \"cardinality\": \"Cardinality\",\n \"arrowtypes\": \"Arrow type\",\n \"arrowtype_sharp\": \"Sharp arrow\",\n \"arrowtype_round\": \"Curved arrow\",\n \"arrowtype_elbowed\": \"Elbow arrow\",\n \"fontSize\": \"Font size\",\n \"fontFamily\": \"Font family\",\n \"addWatermark\": \"Add \\\"Made with Excalidraw\\\"\",\n \"handDrawn\": \"Hand-drawn\",\n \"normal\": \"Normal\",\n \"code\": \"Code\",\n \"small\": \"Small\",\n \"medium\": \"Medium\",\n \"large\": \"Large\",\n \"veryLarge\": \"Very large\",\n \"solid\": \"Solid\",\n \"hachure\": \"Hachure\",\n \"zigzag\": \"Zigzag\",\n \"crossHatch\": \"Cross-hatch\",\n \"thin\": \"Thin\",\n \"bold\": \"Bold\",\n \"left\": \"Left\",\n \"center\": \"Center\",\n \"right\": \"Right\",\n \"extraBold\": \"Extra bold\",\n \"architect\": \"Architect\",\n \"artist\": \"Artist\",\n \"cartoonist\": \"Cartoonist\",\n \"fileTitle\": \"File name\",\n \"colorPicker\": \"Color picker\",\n \"canvasColors\": \"Used on canvas\",\n \"canvasBackground\": \"Canvas background\",\n \"drawingCanvas\": \"Drawing canvas\",\n \"clearCanvas\": \"Clear canvas\",\n \"layers\": \"Layers\",\n \"actions\": \"Actions\",\n \"language\": \"Language\",\n \"liveCollaboration\": \"Live collaboration...\",\n \"duplicateSelection\": \"Duplicate\",\n \"untitled\": \"Untitled\",\n \"name\": \"Name\",\n \"yourName\": \"Your name\",\n \"madeWithExcalidraw\": \"Made with Excalidraw\",\n \"group\": \"Group selection\",\n \"ungroup\": \"Ungroup selection\",\n \"collaborators\": \"Collaborators\",\n \"toggleGrid\": \"Toggle grid\",\n \"loadingScene\": \"Loading scene\u2026\",\n \"loadScene\": \"Load scene from file\",\n \"align\": \"Align\",\n \"alignTop\": \"Align top\",\n \"alignBottom\": \"Align bottom\",\n \"alignLeft\": \"Align left\",\n \"alignRight\": \"Align right\",\n \"centerVertically\": \"Center vertically\",\n \"centerHorizontally\": \"Center horizontally\",\n \"distributeHorizontally\": \"Distribute horizontally\",\n \"distributeVertically\": \"Distribute vertically\",\n \"flipHorizontal\": \"Flip horizontal\",\n \"flipVertical\": \"Flip vertical\",\n \"viewMode\": \"View mode\",\n \"share\": \"Share\",\n \"showStroke\": \"Show stroke color picker\",\n \"showBackground\": \"Show background color picker\",\n \"showFonts\": \"Show font picker\",\n \"toggleTheme\": \"Toggle light/dark theme\",\n \"arrangeElements\": \"Arrange elements\",\n \"normaliseElements\": \"Normalize images\",\n \"theme\": \"Theme\",\n \"decreaseFontSize\": \"Decrease font size\",\n \"increaseFontSize\": \"Increase font size\",\n \"unbindText\": \"Unbind text\",\n \"bindText\": \"Bind text to the container\",\n \"createContainerFromText\": \"Wrap text in a container\",\n \"link\": {\n \"edit\": \"Edit link\",\n \"editEmbed\": \"Edit embeddable link\",\n \"create\": \"Add link\",\n \"label\": \"Link\",\n \"labelEmbed\": \"Link & embed\",\n \"empty\": \"No link is set\",\n \"hint\": \"Type or paste your link here\",\n \"goToElement\": \"Go to target element\"\n },\n \"lineEditor\": {\n \"edit\": \"Edit line\",\n \"editArrow\": \"Edit arrow\"\n },\n \"polygon\": {\n \"breakPolygon\": \"Break polygon\",\n \"convertToPolygon\": \"Convert to polygon\"\n },\n \"elementLock\": {\n \"lock\": \"Lock\",\n \"unlock\": \"Unlock\",\n \"lockAll\": \"Lock all\",\n \"unlockAll\": \"Unlock all\"\n },\n \"sidebarLock\": \"Keep sidebar open\",\n \"selectAllElementsInFrame\": \"Select all elements in frame\",\n \"removeAllElementsFromFrame\": \"Remove all elements from frame\",\n \"eyeDropper\": \"Pick color from canvas\",\n \"textToDiagram\": \"Text to diagram\",\n \"prompt\": \"Prompt\",\n \"followUs\": \"Follow us\",\n \"discordChat\": \"Discord chat\",\n \"zoomToFitViewport\": \"Zoom to fit in viewport\",\n \"zoomToFitSelection\": \"Zoom to fit selection\",\n \"zoomToFit\": \"Zoom to fit all elements\",\n \"installPWA\": \"Install Excalidraw locally (PWA)\",\n \"autoResize\": \"Enable text auto-resizing\",\n \"imageCropping\": \"Image cropping\",\n \"unCroppedDimension\": \"Uncropped dimension\",\n \"copyElementLink\": \"Copy link to object\",\n \"linkToElement\": \"Link to object\",\n \"wrapSelectionInFrame\": \"Wrap selection in frame\",\n \"tab\": \"Tab\",\n \"shapeSwitch\": \"Switch shape\",\n \"preferences\": \"Preferences\",\n \"preferences_toolLock\": \"Tool lock\",\n \"boxSelectionMode\": \"Select on\",\n \"boxSelectionContain\": \"Wrap\",\n \"boxSelectionOverlap\": \"Overlap\",\n \"arrowBinding\": \"Arrow binding\",\n \"midpointSnapping\": \"Snap to midpoints\"\n },\n \"elementLink\": {\n \"title\": \"Link to object\",\n \"desc\": \"Click on a shape on canvas or paste a link.\",\n \"notFound\": \"Linked object wasn't found on canvas.\"\n },\n \"search\": {\n \"title\": \"Find on canvas\",\n \"noMatch\": \"No matches found...\",\n \"singleResult\": \"result\",\n \"multipleResults\": \"results\",\n \"placeholder\": \"Find text on canvas...\",\n \"frames\": \"Frames\",\n \"texts\": \"Texts\"\n },\n \"buttons\": {\n \"clearReset\": \"Reset the canvas\",\n \"exportJSON\": \"Export to file\",\n \"exportImage\": \"Export image...\",\n \"export\": \"Save to...\",\n \"copyToClipboard\": \"Copy to clipboard\",\n \"copyLink\": \"Copy link\",\n \"save\": \"Save to current file\",\n \"saveAs\": \"Save as\",\n \"load\": \"Open\",\n \"getShareableLink\": \"Get shareable link\",\n \"close\": \"Close\",\n \"selectLanguage\": \"Select language\",\n \"scrollBackToContent\": \"Scroll back to content\",\n \"zoomIn\": \"Zoom in\",\n \"zoomOut\": \"Zoom out\",\n \"resetZoom\": \"Reset zoom\",\n \"menu\": \"Menu\",\n \"done\": \"Done\",\n \"edit\": \"Edit\",\n \"undo\": \"Undo\",\n \"redo\": \"Redo\",\n \"createNewRoom\": \"Create new room\",\n \"fullScreen\": \"Full screen\",\n \"darkMode\": \"Dark mode\",\n \"lightMode\": \"Light mode\",\n \"systemMode\": \"System mode\",\n \"zenMode\": \"Zen mode\",\n \"objectsSnapMode\": \"Snap to objects\",\n \"exitZenMode\": \"Exit zen mode\",\n \"cancel\": \"Cancel\",\n \"clear\": \"Clear\",\n \"remove\": \"Remove\",\n \"embed\": \"Toggle embedding\",\n \"submit\": \"Submit\",\n \"confirm\": \"Confirm\",\n \"embeddableInteractionButton\": \"Click to interact\",\n \"smartZoom\": \"Smart Zoom\"\n },\n \"alerts\": {\n \"clearReset\": \"This will clear the whole canvas. Are you sure?\",\n \"couldNotCreateShareableLink\": \"Couldn't create shareable link.\",\n \"couldNotCreateShareableLinkTooBig\": \"Couldn't create shareable link: the scene is too big\",\n \"couldNotLoadInvalidFile\": \"Couldn't load invalid file\",\n \"importBackendFailed\": \"Importing from backend failed.\",\n \"cannotExportEmptyCanvas\": \"Cannot export empty canvas.\",\n \"couldNotCopyToClipboard\": \"Couldn't copy to clipboard.\",\n \"decryptFailed\": \"Couldn't decrypt data.\",\n \"uploadedSecurly\": \"The upload has been secured with end-to-end encryption, which means that Excalidraw server and third parties can't read the content.\",\n \"loadSceneOverridePrompt\": \"Loading external drawing will replace your existing content. Do you wish to continue?\",\n \"collabStopOverridePrompt\": \"Stopping the session will overwrite your previous, locally stored drawing. Are you sure?\\n\\n(If you want to keep your local drawing, simply close the browser tab instead.)\",\n \"imageDoesNotContainScene\": \"This image does not seem to contain any scene data. Have you enabled scene embedding during export?\",\n \"cannotRestoreFromImage\": \"Scene couldn't be restored from this image file\",\n \"invalidSceneUrl\": \"Couldn't import scene from the supplied URL. It's either malformed, or doesn't contain valid Excalidraw JSON data.\",\n \"invalidEncryptionKey\": \"Encryption key must be of 22 characters. Live collaboration is disabled.\",\n \"collabOfflineWarning\": \"No internet connection available.\\nYour changes will not be saved!\",\n \"localStorageQuotaExceeded\": \"Browser storage quota exceeded. Changes will not be saved.\"\n },\n \"errors\": {\n \"unsupportedFileType\": \"Unsupported file type.\",\n \"imageInsertError\": \"Couldn't insert image. Try again later...\",\n \"fileTooBig\": \"File is too big. Maximum allowed size is {{maxSize}}.\",\n \"svgImageInsertError\": \"Couldn't insert SVG image. The SVG markup looks invalid.\",\n \"failedToFetchImage\": \"Failed to fetch image.\",\n \"cannotResolveCollabServer\": \"Couldn't connect to the collab server. Please reload the page and try again.\",\n \"collabSaveFailed\": \"Couldn't save to the backend database. If problems persist, you should save your file locally to ensure you don't lose your work.\",\n \"collabSaveFailed_sizeExceeded\": \"Couldn't save to the backend database, the canvas seems to be too big. You should save the file locally to ensure you don't lose your work.\",\n \"imageToolNotSupported\": \"Images are disabled.\",\n \"brave_measure_text_error\": {\n \"line1\": \"Looks like you are using Brave browser with the <bold>Aggressively Block Fingerprinting</bold> setting enabled.\",\n \"line2\": \"This could result in breaking the <bold>Text Elements</bold> in your drawings.\",\n \"line3\": \"We strongly recommend disabling this setting. You can follow <link>these steps</link> on how to do so.\",\n \"line4\": \"If disabling this setting doesn't fix the display of text elements, please open an <issueLink>issue</issueLink> on our GitHub, or write us on <discordLink>Discord</discordLink>\"\n },\n \"asyncPasteFailedOnRead\": \"Couldn't paste (couldn't read from system clipboard).\",\n \"asyncPasteFailedOnParse\": \"Couldn't paste.\",\n \"copyToSystemClipboardFailed\": \"Couldn't copy to clipboard.\"\n },\n \"toolBar\": {\n \"selection\": \"Selection\",\n \"lasso\": \"Lasso selection\",\n \"image\": \"Insert image\",\n \"rectangle\": \"Rectangle\",\n \"diamond\": \"Diamond\",\n \"ellipse\": \"Ellipse\",\n \"arrow\": \"Arrow\",\n \"line\": \"Line\",\n \"freedraw\": \"Draw\",\n \"text\": \"Text\",\n \"lock-short\": \"Lock Active Tool\",\n \"lock\": \"Keep selected tool active after drawing\",\n \"penMode\": \"Pen mode - prevent touch\",\n \"link\": \"Add / Update link for a selected shape\",\n \"eraser\": \"Eraser\",\n \"frame\": \"Frame tool\",\n \"magicframe\": \"Wireframe to code\",\n \"embeddable\": \"Web Embed\",\n \"laser\": \"Laser pointer\",\n \"hand\": \"Hand (panning tool)\",\n \"extraTools\": \"More tools\",\n \"smartZoom\": \"Smart Zoom\",\n \"convertElementType\": \"Toggle shape type\"\n },\n \"element\": {\n \"rectangle\": \"Rectangle\",\n \"diamond\": \"Diamond\",\n \"ellipse\": \"Ellipse\",\n \"arrow\": \"Arrow\",\n \"line\": \"Line\",\n \"freedraw\": \"Freedraw\",\n \"text\": \"Text\",\n \"image\": \"Image\",\n \"group\": \"Group\",\n \"frame\": \"Frame\",\n \"magicframe\": \"Wireframe to code\",\n \"embeddable\": \"Web Embed\",\n \"selection\": \"Selection\",\n \"iframe\": \"IFrame\"\n },\n \"headings\": {\n \"canvasActions\": \"Canvas actions\",\n \"selectedShapeActions\": \"Selected shape actions\",\n \"shapes\": \"Shapes\"\n },\n \"hints\": {\n \"dismissSearch\": \"{{shortcut}} to dismiss search\",\n \"canvasPanning\": \"To move canvas, hold {{shortcut_1}} or {{shortcut_2}} while dragging, or use the hand tool\",\n \"linearElement\": \"Click to start multiple points, drag for single line\",\n \"arrowTool\": \"Click to start multiple points, drag for single line. Press {{shortcut}} again to change arrow type.\",\n \"arrowBindModifiers\": \"Hold {{shortcut_1}} to disable binding, or {{shortcut_2}} to bind at a fixed point\",\n \"freeDraw\": \"Click and drag, release when you're finished\",\n \"text\": \"Tip: you can also add text by double-clicking anywhere with the selection tool\",\n \"embeddable\": \"Click-drag to create a website embed\",\n \"text_selected\": \"Double-click or press {{shortcut}} to edit text\",\n \"text_editing\": \"Press {{shortcut_1}} or {{shortcut_2}} to finish editing\",\n \"linearElementMulti\": \"Click on last point or press {{shortcut_1}} or {{shortcut_2}} to finish\",\n \"lockAngle\": \"You can constrain angle by holding {{shortcut}}\",\n \"resize\": \"You can constrain proportions by holding {{shortcut_1}} while resizing,\\nhold {{shortcut_2}} to resize from the center\",\n \"resizeImage\": \"You can resize freely by holding {{shortcut_1}},\\nhold {{shortcut_2}} to resize from the center\",\n \"rotate\": \"You can constrain angles by holding {{shortcut}} while rotating\",\n \"lineEditor_info\": \"Hold {{shortcut_1}} and Double-click or press {{shortcut_2}} to edit points\",\n \"lineEditor_line_info\": \"Double-click or press {{shortcut}} to edit points\",\n \"lineEditor_pointSelected\": \"Press {{shortcut_1}} to remove point(s),\\n{{shortcut_2}} to duplicate, or drag to move\",\n \"lineEditor_nothingSelected\": \"Select a point to edit (hold {{shortcut_1}} to select multiple),\\nor hold {{shortcut_2}} and click to add new points\",\n \"bindTextToElement\": \"{{shortcut}} to add text\",\n \"createFlowchart\": \"{{shortcut}} to create a flowchart\",\n \"deepBoxSelect\": \"Hold {{shortcut}} to deep select, and to prevent dragging\",\n \"eraserRevert\": \"Hold {{shortcut}} to revert the elements marked for deletion\",\n \"firefox_clipboard_write\": \"This feature can likely be enabled by setting the \\\"dom.events.asyncClipboard.clipboardItem\\\" flag to \\\"true\\\". To change the browser flags in Firefox, visit the \\\"about:config\\\" page.\",\n \"disableSnapping\": \"Hold {{shortcut}} to disable snapping\",\n \"enterCropEditor\": \"Double click the image or press {{shortcut}} to crop the image\",\n \"leaveCropEditor\": \"Click outside the image or press {{shortcut_1}} or {{shortcut_2}} to finish cropping\"\n },\n \"canvasError\": {\n \"cannotShowPreview\": \"Cannot show preview\",\n \"canvasTooBig\": \"The canvas may be too big.\",\n \"canvasTooBigTip\": \"Tip: try moving the farthest elements a bit closer together.\"\n },\n \"errorSplash\": {\n \"headingMain\": \"Encountered an error. Try <button>reloading the page</button>.\",\n \"clearCanvasMessage\": \"If reloading doesn't work, try <button>clearing the canvas</button>.\",\n \"clearCanvasCaveat\": \" This will result in loss of work \",\n \"trackedToSentry\": \"The error with identifier {{eventId}} was tracked on our system.\",\n \"openIssueMessage\": \"We were very cautious not to include your scene information on the error. If your scene is not private, please consider following up on our <button>bug tracker</button>. Please include information below by copying and pasting into the GitHub issue.\",\n \"sceneContent\": \"Scene content:\"\n },\n \"shareDialog\": {\n \"or\": \"Or\"\n },\n \"roomDialog\": {\n \"desc_intro\": \"Invite people to collaborate on your drawing.\",\n \"desc_privacy\": \"Don't worry, the session is end-to-end encrypted, and fully private. Not even our server can see what you draw.\",\n \"button_startSession\": \"Start session\",\n \"button_stopSession\": \"Stop session\",\n \"desc_inProgressIntro\": \"Live-collaboration session is now in progress.\",\n \"desc_shareLink\": \"Share this link with anyone you want to collaborate with:\",\n \"desc_exitSession\": \"Stopping the session will disconnect you from the room, but you'll be able to continue working with the scene, locally. Note that this won't affect other people, and they'll still be able to collaborate on their version.\",\n \"shareTitle\": \"Join a live collaboration session on Excalidraw\"\n },\n \"errorDialog\": {\n \"title\": \"Error\"\n },\n \"progressDialog\": {\n \"title\": \"Saving\",\n \"defaultMessage\": \"Preparing to save...\"\n },\n \"exportDialog\": {\n \"disk_title\": \"Save to disk\",\n \"disk_details\": \"Export the scene data to a file from which you can import later.\",\n \"disk_button\": \"Save to file\",\n \"link_title\": \"Shareable link\",\n \"link_details\": \"Export as a read-only link.\",\n \"link_button\": \"Export to Link\",\n \"excalidrawplus_description\": \"Save the scene to your Excalidraw+ workspace.\",\n \"excalidrawplus_button\": \"Export\",\n \"excalidrawplus_exportError\": \"Couldn't export to Excalidraw+ at this moment...\"\n },\n \"helpDialog\": {\n \"myoc\": {\n \"showingAll\": \"Showing all controls\",\n \"showingBasic\": \"Showing basic controls\"\n },\n \"blog\": \"Read our blog\",\n \"click\": \"click\",\n \"deepSelect\": \"Deep select\",\n \"deepBoxSelect\": \"Deep select within box, and prevent dragging\",\n \"createFlowchart\": \"Create a flowchart from a generic element\",\n \"navigateFlowchart\": \"Navigate a flowchart\",\n \"curvedArrow\": \"Curved arrow\",\n \"curvedLine\": \"Curved line\",\n \"documentation\": \"Documentation\",\n \"doubleClick\": \"double-click\",\n \"drag\": \"drag\",\n \"editor\": \"Editor\",\n \"editLineArrowPoints\": \"Edit line/arrow points\",\n \"editText\": \"Edit text / add label\",\n \"github\": \"Found an issue? Submit\",\n \"howto\": \"Follow our guides\",\n \"or\": \"or\",\n \"preventBinding\": \"Prevent arrow binding\",\n \"tools\": \"Tools\",\n \"shortcuts\": \"Keyboard shortcuts\",\n \"textFinish\": \"Finish editing (text editor)\",\n \"textNewLine\": \"Add new line (text editor)\",\n \"title\": \"Help\",\n \"view\": \"View\",\n \"smartZoom\": \"Smart Zoom (Fit selection or all elements if none selected)\",\n \"dragToZoom\": \"Drag to zoom\",\n \"zoomToFit\": \"Zoom to fit all elements\",\n \"zoomToSelection\": \"Zoom to selection\",\n \"toggleElementLock\": \"Lock/unlock selection\",\n \"movePageUpDown\": \"Move page up/down\",\n \"movePageLeftRight\": \"Move page left/right\",\n \"cropStart\": \"Crop image\",\n \"cropFinish\": \"Finish image cropping\"\n },\n \"clearCanvasDialog\": {\n \"title\": \"Clear canvas\"\n },\n \"imageExportDialog\": {\n \"header\": \"Export image\",\n \"label\": {\n \"withBackground\": \"Background\",\n \"onlySelected\": \"Only selected\",\n \"darkMode\": \"Dark mode\",\n \"embedScene\": \"Embed scene\",\n \"scale\": \"Scale\",\n \"padding\": \"Padding\"\n },\n \"tooltip\": {\n \"embedScene\": \"Scene data will be saved into the exported PNG/SVG file so that the scene can be restored from it.\\nWill increase exported file size.\"\n },\n \"title\": {\n \"exportToPng\": \"Export to PNG\",\n \"exportToSvg\": \"Export to SVG\",\n \"copyPngToClipboard\": \"Copy PNG to clipboard\"\n },\n \"button\": {\n \"exportToPng\": \"PNG\",\n \"exportToSvg\": \"SVG\",\n \"copyPngToClipboard\": \"Copy to clipboard\"\n }\n },\n \"encrypted\": {\n \"tooltip\": \"Your drawings are end-to-end encrypted so Excalidraw's servers will never see them.\",\n \"link\": \"Blog post on end-to-end encryption in Excalidraw\"\n },\n \"stats\": {\n \"angle\": \"Angle\",\n \"shapes\": \"Shapes\",\n \"height\": \"Height\",\n \"scene\": \"Scene\",\n \"selected\": \"Selected\",\n \"storage\": \"Storage\",\n \"fullTitle\": \"Canvas & Shape properties\",\n \"title\": \"Properties\",\n \"generalStats\": \"General\",\n \"elementProperties\": \"Shape properties\",\n \"total\": \"Total\",\n \"version\": \"Version\",\n \"versionCopy\": \"Click to copy\",\n \"versionNotAvailable\": \"Version not available\",\n \"width\": \"Width\"\n },\n \"toast\": {\n \"copyStyles\": \"Copied styles.\",\n \"copyToClipboard\": \"Copied to clipboard.\",\n \"copyToClipboardAsPng\": \"Copied {{exportSelection}} to clipboard as PNG\\n({{exportColorScheme}})\",\n \"copyToClipboardAsSvg\": \"Copied {{exportSelection}} to clipboard as SVG\\n({{exportColorScheme}})\",\n \"fileSaved\": \"File saved.\",\n \"fileSavedToFilename\": \"Saved to {filename}\",\n \"canvas\": \"canvas\",\n \"selection\": \"selection\",\n \"pasteAsSingleElement\": \"Use {{shortcut}} to paste as a single element,\\nor paste into an existing text editor\",\n \"unableToEmbed\": \"Embedding this url is currently not allowed. Raise an issue on GitHub to request the url whitelisted\",\n \"unrecognizedLinkFormat\": \"The link you embedded does not match the expected format. Please try to paste the 'embed' string provided by the source site\",\n \"elementLinkCopied\": \"Link copied to clipboard\"\n },\n \"colors\": {\n \"transparent\": \"Transparent\",\n \"black\": \"Black\",\n \"white\": \"White\",\n \"red\": \"Red\",\n \"pink\": \"Pink\",\n \"grape\": \"Grape\",\n \"violet\": \"Violet\",\n \"gray\": \"Gray\",\n \"blue\": \"Blue\",\n \"cyan\": \"Cyan\",\n \"teal\": \"Teal\",\n \"green\": \"Green\",\n \"yellow\": \"Yellow\",\n \"orange\": \"Orange\",\n \"bronze\": \"Bronze\"\n },\n \"welcomeScreen\": {\n \"app\": {\n \"center_heading\": \"Your drawings are saved in your browser's storage.\",\n \"center_heading_line2\": \"Browser storage can be cleared unexpectedly.\",\n \"center_heading_line3\": \"Save your work to a file regularly to avoid losing it.\",\n \"center_heading_plus\": \"Did you want to go to the Excalidraw+ instead?\",\n \"menuHint\": \"Export, preferences, languages, ...\"\n },\n \"defaults\": {\n \"menuHint\": \"Export, preferences, and more...\",\n \"center_heading\": \"Diagrams. Made. Simple.\",\n \"toolbarHint\": \"Pick a tool & Start drawing!\",\n \"helpHint\": \"Shortcuts & help\"\n }\n },\n \"colorPicker\": {\n \"color\": \"Color\",\n \"mostUsedCustomColors\": \"Most used custom colors\",\n \"colors\": \"Colors\",\n \"shades\": \"Shades\",\n \"hexCode\": \"Hex code\",\n \"noShades\": \"No shades available for this color\"\n },\n \"overwriteConfirm\": {\n \"action\": {\n \"exportToImage\": {\n \"title\": \"Export as image\",\n \"button\": \"Export as image\",\n \"description\": \"Export the scene data as an image from which you can import later.\"\n },\n \"saveToDisk\": {\n \"title\": \"Save to disk\",\n \"button\": \"Save to disk\",\n \"description\": \"Export the scene data to a file from which you can import later.\"\n },\n \"excalidrawPlus\": {\n \"title\": \"Excalidraw+\",\n \"button\": \"Export to Excalidraw+\",\n \"description\": \"Save the scene to your Excalidraw+ workspace.\"\n }\n },\n \"modal\": {\n \"loadFromFile\": {\n \"title\": \"Load from file\",\n \"button\": \"Load from file\",\n \"description\": \"Loading from a file will <bold>replace your existing content</bold>.<br></br>You can back up your drawing first using one of the options below.\"\n },\n \"shareableLink\": {\n \"title\": \"Load from link\",\n \"button\": \"Replace my content\",\n \"description\": \"Loading external drawing will <bold>replace your existing content</bold>.<br></br>You can back up your drawing first by using one of the options below.\"\n }\n }\n },\n \"quickSearch\": {\n \"placeholder\": \"Quick search\"\n },\n \"fontList\": {\n \"badge\": {\n \"old\": \"old\"\n },\n \"sceneFonts\": \"In this scene\",\n \"availableFonts\": \"Available fonts\",\n \"empty\": \"No fonts found\"\n },\n \"userList\": {\n \"empty\": \"No users found\",\n \"hint\": {\n \"text\": \"Click on user to follow\",\n \"followStatus\": \"You're currently following this user\",\n \"inCall\": \"User is in a voice call\",\n \"micMuted\": \"User's microphone is muted\",\n \"isSpeaking\": \"User is speaking\"\n }\n },\n \"keys\": {\n \"ctrl\": \"Ctrl\",\n \"option\": \"Option\",\n \"cmd\": \"Cmd\",\n \"alt\": \"Alt\",\n \"escape\": \"Esc\",\n \"enter\": \"Enter\",\n \"shift\": \"Shift\",\n \"spacebar\": \"Space\",\n \"delete\": \"Delete\",\n \"mmb\": \"Scroll wheel\"\n }\n}\n"],
|
|
5
|
-
"mappings": ";AACE,aAAU;AAAA,EACR,OAAS;AAAA,EACT,kBAAoB;AAAA,EACpB,aAAe;AAAA,EACf,eAAiB;AAAA,EACjB,gBAAkB;AAAA,EAClB,iBAAmB;AAAA,EACnB,qBAAuB;AAAA,EACvB,WAAa;AAAA,EACb,aAAe;AAAA,EACf,YAAc;AAAA,EACd,KAAO;AAAA,EACP,MAAQ;AAAA,EACR,WAAa;AAAA,EACb,WAAa;AAAA,EACb,UAAY;AAAA,EACZ,YAAc;AAAA,EACd,eAAiB;AAAA,EACjB,cAAgB;AAAA,EAChB,YAAc;AAAA,EACd,cAAgB;AAAA,EAChB,cAAgB;AAAA,EAChB,QAAU;AAAA,EACV,YAAc;AAAA,EACd,aAAe;AAAA,EACf,QAAU;AAAA,EACV,cAAgB;AAAA,EAChB,YAAc;AAAA,EACd,kBAAoB;AAAA,EACpB,MAAQ;AAAA,EACR,WAAa;AAAA,EACb,aAAe;AAAA,EACf,aAAe;AAAA,EACf,mBAAqB;AAAA,EACrB,oBAAsB;AAAA,EACtB,oBAAsB;AAAA,EACtB,YAAc;AAAA,EACd,UAAY;AAAA,EACZ,mBAAqB;AAAA,EACrB,mBAAqB;AAAA,EACrB,SAAW;AAAA,EACX,WAAa;AAAA,EACb,OAAS;AAAA,EACT,OAAS;AAAA,EACT,OAAS;AAAA,EACT,YAAc;AAAA,EACd,gBAAkB;AAAA,EAClB,iBAAmB;AAAA,EACnB,eAAiB;AAAA,EACjB,kBAAoB;AAAA,EACpB,0BAA4B;AAAA,EAC5B,oBAAsB;AAAA,EACtB,4BAA8B;AAAA,EAC9B,mBAAqB;AAAA,EACrB,2BAA6B;AAAA,EAC7B,yBAA2B;AAAA,EAC3B,wBAA0B;AAAA,EAC1B,gCAAkC;AAAA,EAClC,2BAA6B;AAAA,EAC7B,4BAA8B;AAAA,EAC9B,mCAAqC;AAAA,EACrC,mCAAqC;AAAA,EACrC,mCAAqC;AAAA,EACrC,oCAAsC;AAAA,EACtC,cAAgB;AAAA,EAChB,aAAe;AAAA,EACf,YAAc;AAAA,EACd,iBAAmB;AAAA,EACnB,iBAAmB;AAAA,EACnB,mBAAqB;AAAA,EACrB,UAAY;AAAA,EACZ,YAAc;AAAA,EACd,cAAgB;AAAA,EAChB,WAAa;AAAA,EACb,QAAU;AAAA,EACV,MAAQ;AAAA,EACR,OAAS;AAAA,EACT,QAAU;AAAA,EACV,OAAS;AAAA,EACT,WAAa;AAAA,EACb,OAAS;AAAA,EACT,SAAW;AAAA,EACX,QAAU;AAAA,EACV,YAAc;AAAA,EACd,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,OAAS;AAAA,EACT,WAAa;AAAA,EACb,WAAa;AAAA,EACb,QAAU;AAAA,EACV,YAAc;AAAA,EACd,WAAa;AAAA,EACb,aAAe;AAAA,EACf,cAAgB;AAAA,EAChB,kBAAoB;AAAA,EACpB,eAAiB;AAAA,EACjB,aAAe;AAAA,EACf,QAAU;AAAA,EACV,SAAW;AAAA,EACX,UAAY;AAAA,EACZ,mBAAqB;AAAA,EACrB,oBAAsB;AAAA,EACtB,UAAY;AAAA,EACZ,MAAQ;AAAA,EACR,UAAY;AAAA,EACZ,oBAAsB;AAAA,EACtB,OAAS;AAAA,EACT,SAAW;AAAA,EACX,eAAiB;AAAA,EACjB,YAAc;AAAA,EACd,cAAgB;AAAA,EAChB,WAAa;AAAA,EACb,OAAS;AAAA,EACT,UAAY;AAAA,EACZ,aAAe;AAAA,EACf,WAAa;AAAA,EACb,YAAc;AAAA,EACd,kBAAoB;AAAA,EACpB,oBAAsB;AAAA,EACtB,wBAA0B;AAAA,EAC1B,sBAAwB;AAAA,EACxB,gBAAkB;AAAA,EAClB,cAAgB;AAAA,EAChB,UAAY;AAAA,EACZ,OAAS;AAAA,EACT,YAAc;AAAA,EACd,gBAAkB;AAAA,EAClB,WAAa;AAAA,EACb,aAAe;AAAA,EACf,iBAAmB;AAAA,EACnB,mBAAqB;AAAA,EACrB,OAAS;AAAA,EACT,kBAAoB;AAAA,EACpB,kBAAoB;AAAA,EACpB,YAAc;AAAA,EACd,UAAY;AAAA,EACZ,yBAA2B;AAAA,EAC3B,MAAQ;AAAA,IACN,MAAQ;AAAA,IACR,WAAa;AAAA,IACb,QAAU;AAAA,IACV,OAAS;AAAA,IACT,YAAc;AAAA,IACd,OAAS;AAAA,IACT,MAAQ;AAAA,IACR,aAAe;AAAA,EACjB;AAAA,EACA,YAAc;AAAA,IACZ,MAAQ;AAAA,IACR,WAAa;AAAA,EACf;AAAA,EACA,SAAW;AAAA,IACT,cAAgB;AAAA,IAChB,kBAAoB;AAAA,EACtB;AAAA,EACA,aAAe;AAAA,IACb,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,SAAW;AAAA,IACX,WAAa;AAAA,EACf;AAAA,EACA,aAAe;AAAA,EACf,0BAA4B;AAAA,EAC5B,4BAA8B;AAAA,EAC9B,YAAc;AAAA,EACd,eAAiB;AAAA,EACjB,QAAU;AAAA,EACV,UAAY;AAAA,EACZ,aAAe;AAAA,EACf,mBAAqB;AAAA,EACrB,oBAAsB;AAAA,EACtB,WAAa;AAAA,EACb,YAAc;AAAA,EACd,YAAc;AAAA,EACd,eAAiB;AAAA,EACjB,oBAAsB;AAAA,EACtB,iBAAmB;AAAA,EACnB,eAAiB;AAAA,EACjB,sBAAwB;AAAA,EACxB,KAAO;AAAA,EACP,aAAe;AAAA,EACf,aAAe;AAAA,EACf,sBAAwB;AAAA,EACxB,kBAAoB;AAAA,EACpB,qBAAuB;AAAA,EACvB,qBAAuB;AAAA,EACvB,cAAgB;AAAA,EAChB,kBAAoB;AACtB;AACA,kBAAe;AAAA,EACb,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,UAAY;AACd;AACA,aAAU;AAAA,EACR,OAAS;AAAA,EACT,SAAW;AAAA,EACX,cAAgB;AAAA,EAChB,iBAAmB;AAAA,EACnB,aAAe;AAAA,EACf,QAAU;AAAA,EACV,OAAS;AACX;AACA,cAAW;AAAA,EACT,YAAc;AAAA,EACd,YAAc;AAAA,EACd,aAAe;AAAA,EACf,QAAU;AAAA,EACV,iBAAmB;AAAA,EACnB,UAAY;AAAA,EACZ,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,MAAQ;AAAA,EACR,kBAAoB;AAAA,EACpB,OAAS;AAAA,EACT,gBAAkB;AAAA,EAClB,qBAAuB;AAAA,EACvB,QAAU;AAAA,EACV,SAAW;AAAA,EACX,WAAa;AAAA,EACb,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,eAAiB;AAAA,EACjB,YAAc;AAAA,EACd,UAAY;AAAA,EACZ,WAAa;AAAA,EACb,YAAc;AAAA,EACd,SAAW;AAAA,EACX,iBAAmB;AAAA,EACnB,aAAe;AAAA,EACf,QAAU;AAAA,EACV,OAAS;AAAA,EACT,QAAU;AAAA,EACV,OAAS;AAAA,EACT,QAAU;AAAA,EACV,SAAW;AAAA,EACX,6BAA+B;AAAA,EAC/B,WAAa;AACf;AACA,aAAU;AAAA,EACR,YAAc;AAAA,EACd,6BAA+B;AAAA,EAC/B,mCAAqC;AAAA,EACrC,yBAA2B;AAAA,EAC3B,qBAAuB;AAAA,EACvB,yBAA2B;AAAA,EAC3B,yBAA2B;AAAA,EAC3B,eAAiB;AAAA,EACjB,iBAAmB;AAAA,EACnB,yBAA2B;AAAA,EAC3B,0BAA4B;AAAA,EAC5B,0BAA4B;AAAA,EAC5B,wBAA0B;AAAA,EAC1B,iBAAmB;AAAA,EACnB,sBAAwB;AAAA,EACxB,sBAAwB;AAAA,EACxB,2BAA6B;AAC/B;AACA,aAAU;AAAA,EACR,qBAAuB;AAAA,EACvB,kBAAoB;AAAA,EACpB,YAAc;AAAA,EACd,qBAAuB;AAAA,EACvB,oBAAsB;AAAA,EACtB,2BAA6B;AAAA,EAC7B,kBAAoB;AAAA,EACpB,+BAAiC;AAAA,EACjC,uBAAyB;AAAA,EACzB,0BAA4B;AAAA,IAC1B,OAAS;AAAA,IACT,OAAS;AAAA,IACT,OAAS;AAAA,IACT,OAAS;AAAA,EACX;AAAA,EACA,wBAA0B;AAAA,EAC1B,yBAA2B;AAAA,EAC3B,6BAA+B;AACjC;AACA,cAAW;AAAA,EACT,WAAa;AAAA,EACb,OAAS;AAAA,EACT,OAAS;AAAA,EACT,WAAa;AAAA,EACb,SAAW;AAAA,EACX,SAAW;AAAA,EACX,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,UAAY;AAAA,EACZ,MAAQ;AAAA,EACR,cAAc;AAAA,EACd,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,OAAS;AAAA,EACT,YAAc;AAAA,EACd,YAAc;AAAA,EACd,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,YAAc;AAAA,EACd,WAAa;AAAA,EACb,oBAAsB;AACxB;AACA,cAAW;AAAA,EACT,WAAa;AAAA,EACb,SAAW;AAAA,EACX,SAAW;AAAA,EACX,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,UAAY;AAAA,EACZ,MAAQ;AAAA,EACR,OAAS;AAAA,EACT,OAAS;AAAA,EACT,OAAS;AAAA,EACT,YAAc;AAAA,EACd,YAAc;AAAA,EACd,WAAa;AAAA,EACb,QAAU;AACZ;AACA,eAAY;AAAA,EACV,eAAiB;AAAA,EACjB,sBAAwB;AAAA,EACxB,QAAU;AACZ;AACA,YAAS;AAAA,EACP,eAAiB;AAAA,EACjB,eAAiB;AAAA,EACjB,eAAiB;AAAA,EACjB,WAAa;AAAA,EACb,oBAAsB;AAAA,EACtB,UAAY;AAAA,EACZ,MAAQ;AAAA,EACR,YAAc;AAAA,EACd,eAAiB;AAAA,EACjB,cAAgB;AAAA,EAChB,oBAAsB;AAAA,EACtB,WAAa;AAAA,EACb,QAAU;AAAA,EACV,aAAe;AAAA,EACf,QAAU;AAAA,EACV,iBAAmB;AAAA,EACnB,sBAAwB;AAAA,EACxB,0BAA4B;AAAA,EAC5B,4BAA8B;AAAA,EAC9B,mBAAqB;AAAA,EACrB,iBAAmB;AAAA,EACnB,eAAiB;AAAA,EACjB,cAAgB;AAAA,EAChB,yBAA2B;AAAA,EAC3B,iBAAmB;AAAA,EACnB,iBAAmB;AAAA,EACnB,iBAAmB;AACrB;AACA,kBAAe;AAAA,EACb,mBAAqB;AAAA,EACrB,cAAgB;AAAA,EAChB,iBAAmB;AACrB;AACA,kBAAe;AAAA,EACb,aAAe;AAAA,EACf,oBAAsB;AAAA,EACtB,mBAAqB;AAAA,EACrB,iBAAmB;AAAA,EACnB,kBAAoB;AAAA,EACpB,cAAgB;AAClB;AACA,kBAAe;AAAA,EACb,IAAM;AACR;AACA,iBAAc;AAAA,EACZ,YAAc;AAAA,EACd,cAAgB;AAAA,EAChB,qBAAuB;AAAA,EACvB,oBAAsB;AAAA,EACtB,sBAAwB;AAAA,EACxB,gBAAkB;AAAA,EAClB,kBAAoB;AAAA,EACpB,YAAc;AAChB;AACA,kBAAe;AAAA,EACb,OAAS;AACX;AACA,qBAAkB;AAAA,EAChB,OAAS;AAAA,EACT,gBAAkB;AACpB;AACA,mBAAgB;AAAA,EACd,YAAc;AAAA,EACd,cAAgB;AAAA,EAChB,aAAe;AAAA,EACf,YAAc;AAAA,EACd,cAAgB;AAAA,EAChB,aAAe;AAAA,EACf,4BAA8B;AAAA,EAC9B,uBAAyB;AAAA,EACzB,4BAA8B;AAChC;AACA,iBAAc;AAAA,EACZ,MAAQ;AAAA,IACN,YAAc;AAAA,IACd,cAAgB;AAAA,EAClB;AAAA,EACA,MAAQ;AAAA,EACR,OAAS;AAAA,EACT,YAAc;AAAA,EACd,eAAiB;AAAA,EACjB,iBAAmB;AAAA,EACnB,mBAAqB;AAAA,EACrB,aAAe;AAAA,EACf,YAAc;AAAA,EACd,eAAiB;AAAA,EACjB,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,qBAAuB;AAAA,EACvB,UAAY;AAAA,EACZ,QAAU;AAAA,EACV,OAAS;AAAA,EACT,IAAM;AAAA,EACN,gBAAkB;AAAA,EAClB,OAAS;AAAA,EACT,WAAa;AAAA,EACb,YAAc;AAAA,EACd,aAAe;AAAA,EACf,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,WAAa;AAAA,EACb,YAAc;AAAA,EACd,WAAa;AAAA,EACb,iBAAmB;AAAA,EACnB,mBAAqB;AAAA,EACrB,gBAAkB;AAAA,EAClB,mBAAqB;AAAA,EACrB,WAAa;AAAA,EACb,YAAc;AAChB;AACA,wBAAqB;AAAA,EACnB,OAAS;AACX;AACA,wBAAqB;AAAA,EACnB,QAAU;AAAA,EACV,OAAS;AAAA,IACP,gBAAkB;AAAA,IAClB,cAAgB;AAAA,IAChB,UAAY;AAAA,IACZ,YAAc;AAAA,IACd,OAAS;AAAA,IACT,SAAW;AAAA,EACb;AAAA,EACA,SAAW;AAAA,IACT,YAAc;AAAA,EAChB;AAAA,EACA,OAAS;AAAA,IACP,aAAe;AAAA,IACf,aAAe;AAAA,IACf,oBAAsB;AAAA,EACxB;AAAA,EACA,QAAU;AAAA,IACR,aAAe;AAAA,IACf,aAAe;AAAA,IACf,oBAAsB;AAAA,EACxB;AACF;AACA,gBAAa;AAAA,EACX,SAAW;AAAA,EACX,MAAQ;AACV;AACA,YAAS;AAAA,EACP,OAAS;AAAA,EACT,QAAU;AAAA,EACV,QAAU;AAAA,EACV,OAAS;AAAA,EACT,UAAY;AAAA,EACZ,SAAW;AAAA,EACX,WAAa;AAAA,EACb,OAAS;AAAA,EACT,cAAgB;AAAA,EAChB,mBAAqB;AAAA,EACrB,OAAS;AAAA,EACT,SAAW;AAAA,EACX,aAAe;AAAA,EACf,qBAAuB;AAAA,EACvB,OAAS;AACX;AACA,YAAS;AAAA,EACP,YAAc;AAAA,EACd,iBAAmB;AAAA,EACnB,sBAAwB;AAAA,EACxB,sBAAwB;AAAA,EACxB,WAAa;AAAA,EACb,qBAAuB;AAAA,EACvB,QAAU;AAAA,EACV,WAAa;AAAA,EACb,sBAAwB;AAAA,EACxB,eAAiB;AAAA,EACjB,wBAA0B;AAAA,EAC1B,mBAAqB;AACvB;AACA,aAAU;AAAA,EACR,aAAe;AAAA,EACf,OAAS;AAAA,EACT,OAAS;AAAA,EACT,KAAO;AAAA,EACP,MAAQ;AAAA,EACR,OAAS;AAAA,EACT,QAAU;AAAA,EACV,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,OAAS;AAAA,EACT,QAAU;AAAA,EACV,QAAU;AAAA,EACV,QAAU;AACZ;AACA,oBAAiB;AAAA,EACf,KAAO;AAAA,IACL,gBAAkB;AAAA,IAClB,sBAAwB;AAAA,IACxB,sBAAwB;AAAA,IACxB,qBAAuB;AAAA,IACvB,UAAY;AAAA,EACd;AAAA,EACA,UAAY;AAAA,IACV,UAAY;AAAA,IACZ,gBAAkB;AAAA,IAClB,aAAe;AAAA,IACf,UAAY;AAAA,EACd;AACF;AACA,kBAAe;AAAA,EACb,OAAS;AAAA,EACT,sBAAwB;AAAA,EACxB,QAAU;AAAA,EACV,QAAU;AAAA,EACV,SAAW;AAAA,EACX,UAAY;AACd;AACA,uBAAoB;AAAA,EAClB,QAAU;AAAA,IACR,eAAiB;AAAA,MACf,OAAS;AAAA,MACT,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,IACA,YAAc;AAAA,MACZ,OAAS;AAAA,MACT,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,IACA,gBAAkB;AAAA,MAChB,OAAS;AAAA,MACT,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,EACF;AAAA,EACA,OAAS;AAAA,IACP,cAAgB;AAAA,MACd,OAAS;AAAA,MACT,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,IACA,eAAiB;AAAA,MACf,OAAS;AAAA,MACT,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,EACF;AACF;AACA,kBAAe;AAAA,EACb,aAAe;AACjB;AACA,eAAY;AAAA,EACV,OAAS;AAAA,IACP,KAAO;AAAA,EACT;AAAA,EACA,YAAc;AAAA,EACd,gBAAkB;AAAA,EAClB,OAAS;AACX;AACA,eAAY;AAAA,EACV,OAAS;AAAA,EACT,MAAQ;AAAA,IACN,MAAQ;AAAA,IACR,cAAgB;AAAA,IAChB,QAAU;AAAA,IACV,UAAY;AAAA,IACZ,YAAc;AAAA,EAChB;AACF;AACA,WAAQ;AAAA,EACN,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,KAAO;AAAA,EACP,KAAO;AAAA,EACP,QAAU;AAAA,EACV,OAAS;AAAA,EACT,OAAS;AAAA,EACT,UAAY;AAAA,EACZ,QAAU;AAAA,EACV,KAAO;AACT;AA/lBF;AAAA,EACE;AAAA,EA+LA;AAAA,EAKA;AAAA,EASA;AAAA,EAuCA;AAAA,EAmBA;AAAA,EAoBA;AAAA,EAyBA;AAAA,EAgBA;AAAA,EAKA;AAAA,EA6BA;AAAA,EAKA;AAAA,EAQA;AAAA,EAGA;AAAA,EAUA;AAAA,EAGA;AAAA,EAIA;AAAA,EAWA;AAAA,EAuCA;AAAA,EAGA;AAAA,EAwBA;AAAA,EAIA;AAAA,EAiBA;AAAA,EAcA;AAAA,EAiBA;AAAA,EAeA;AAAA,EAQA;AAAA,EA+BA;AAAA,EAGA;AAAA,EAQA;AAAA,EAUA;AAYF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|