@dwelle/excalidraw 0.5.0-ca754ef → 0.5.0-cbb5d6b
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 +13 -2
- package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-QSJ4HNO7.js → blockDiagram-91b80b7a-IRJTK6Z5.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-4MYCZKG5.js → c4Diagram-b2a90758-CCPPXFPY.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-BECDVD6R.js → chunk-32FQKC5U.js} +7 -7
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-POWCA5QF.js → chunk-4RQWU7MH.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-Q7SIL7GF.js → chunk-4XTDAI34.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-U6PMUKRO.js → chunk-645MDRFH.js} +6570 -4548
- package/dist/browser/dev/excalidraw-assets-dev/chunk-645MDRFH.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-J5HRUYQR.js → chunk-AKQDHN2W.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/chunk-AKQDHN2W.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-FR3IAB6U.js → chunk-CH3VL6LE.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-EPAK72CK.js → chunk-DAUKRODV.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-U4Z6B5JW.js → chunk-GHBR42PD.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-FRL7WYV2.js → chunk-I6APBPLG.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-J4UG2B64.js → chunk-JT5FK676.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-QZ4FGBZF.js → chunk-LHXEX6AX.js} +28 -28
- package/dist/browser/dev/excalidraw-assets-dev/chunk-LHXEX6AX.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-OH2FVCZF.js → chunk-MTN3FT3I.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-IE752YUC.js → chunk-PTGAFHDE.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-4LATYPUZ.js → chunk-TT3CLKL2.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-EAK3FBDE.js → chunk-VTLDDAKT.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-43KRVI2R.js → classDiagram-30eddba6-EYEUBSFK.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-NDH5IIX2.js → classDiagram-v2-f2df5561-2Q4N2YXH.js} +9 -9
- package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-WIGO3PHP.js → directory-open-01563666-JI732I6L.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-CXEHOJKC.js → directory-open-4ed118d0-FCSLGWX4.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/dist-Y7YU7LF5.js +10 -0
- package/dist/browser/dev/excalidraw-assets-dev/{en-UW5C5KGW.js → en-PSBMWL4S.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-LXI3RBHB.js → erDiagram-47591fe2-YW6WXPKB.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-ZLYQ5POM.js → file-open-002ab408-VGLBX2SD.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-YEWKTXUK.js → file-open-7c801643-HOSRJESM.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-ZRB6VRMQ.js → file-save-3189631c-7UVDDLND.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-6AE2F2MK.js → file-save-745eba88-R4WI6C5N.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-MHX5LMLF.js → flowDiagram-5540d9b9-HMMVJLFR.js} +10 -10
- package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-HXZO64MP.js → flowDiagram-v2-3b53844e-MAKR536R.js} +10 -10
- package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-QJSM73VB.js → flowchart-elk-definition-5fe447d6-K5ZCVETB.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-DIBF4MAD.js → ganttDiagram-9a3bba1f-2ZVU3FTZ.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-AJVGQM3V.js → gitGraphDiagram-96e6b4ee-FZ6FANLP.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{image-ZNQQXS62.css → image-FDQLNM24.css} +39 -16
- package/dist/browser/dev/excalidraw-assets-dev/image-FDQLNM24.css.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{image-GU4Q2RBL.js → image-SS5TMYT4.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-FERKXLKH.js → image-blob-reduce.esm-YXLX3RLK.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-M4VT2O6X.js → infoDiagram-bcd20f53-COYAHIVY.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-RBUJMJGB.js → journeyDiagram-4fe6b3dc-RFNSHLY7.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{katex-U3KW6RMN.js → katex-E3UYSNFK.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-G75STLDF.js → mindmap-definition-f354de21-PLB66GYC.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{pica-QCDDJ4FA.js → pica-FL6WHKHD.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-EYD6GWN6.js → pieDiagram-79897490-UZ3VDZDT.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-VCULRDXW.js → quadrantDiagram-62f64e94-T5FLQQ62.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-TASTTHUI.js → requirementDiagram-05bf5f74-VEHQOUFO.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{roundRect-5GJOYZ3N.js → roundRect-K6N73LBJ.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-2YQACLIX.js → sankeyDiagram-97764748-KLJ7HONA.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-AQAXFV3S.js → sequenceDiagram-acc0e65c-L4ZWSX22.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-EI62FLQG.js → stateDiagram-0ff1cf1a-JZUDOEAH.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-MTSH7UNC.js → stateDiagram-v2-9a9d610d-WHNU7SI7.js} +9 -9
- package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-VQ2VZEWC.js → timeline-definition-fea2a41d-SLLH6X7S.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-VTFIYULE.js → xychartDiagram-ab372869-A7EDAO5Q.js} +4 -4
- package/dist/browser/dev/index.css +38 -15
- package/dist/browser/dev/index.css.map +2 -2
- package/dist/browser/dev/index.js +9 -5
- package/dist/browser/prod/excalidraw-assets/{blockDiagram-91b80b7a-DMU5Q74G.js → blockDiagram-91b80b7a-PRCOUPIS.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{c4Diagram-b2a90758-3XHOZTJB.js → c4Diagram-b2a90758-3DCO4J7M.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-4YLH7JLJ.js → chunk-ANOBCW22.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-Y2INGLO2.js → chunk-BJTCWAK5.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-LAEP4ITC.js → chunk-CFRW7BG7.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-3V3WOPNJ.js → chunk-GTPHSP2D.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-QGPVJN7J.js → chunk-H2YFA6TU.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-TMKJR56I.js → chunk-KCFOWMVC.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-C565KYGG.js → chunk-KVQMCXCA.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-CDMNCDGS.js → chunk-LGOYMPVW.js} +21 -21
- package/dist/browser/prod/excalidraw-assets/{chunk-RFOEVHBG.js → chunk-O4ONYAI6.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-EXNSCTNY.js → chunk-OKMPIZ5M.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-QLNFR4AJ.js → chunk-Q6QP4TRB.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-HIWCQBFA.js → chunk-QR6QYEOB.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/chunk-QYNK5IRK.js +335 -0
- package/dist/browser/prod/excalidraw-assets/{chunk-PDOOBCPS.js → chunk-SBL22DUJ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-2XMXKWJG.js → chunk-V5EOW4RQ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-526DVAV4.js → chunk-W7MPDLSH.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{classDiagram-30eddba6-JWGA2TGA.js → classDiagram-30eddba6-WNQ24D2Y.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{classDiagram-v2-f2df5561-LUELACE2.js → classDiagram-v2-f2df5561-DWS457AE.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{directory-open-01563666-LVSEORCY.js → directory-open-01563666-NXKZ4VWO.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{directory-open-4ed118d0-RFY2TAQG.js → directory-open-4ed118d0-2CQFSTKO.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/dist-M4EC2RVT.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{en-CPU3UVKT.js → en-MPFDZHEH.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{en-R7FEFJGC-UHMLUFK3.js → en-Q552WR7L-QAV42NF3.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{erDiagram-47591fe2-GYXIXW26.js → erDiagram-47591fe2-GEZEODOI.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-open-002ab408-INFZI63D.js → file-open-002ab408-UXKZOBOC.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-open-7c801643-GKUCIQCX.js → file-open-7c801643-SERMWI2Z.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-save-3189631c-ANETLLLV.js → file-save-3189631c-7FEUIB5M.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{file-save-745eba88-Y5LQRZDO.js → file-save-745eba88-QB3HQPRU.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{flowDiagram-5540d9b9-3CJJJFXX.js → flowDiagram-5540d9b9-EWDI4FWB.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-CSN53VTR.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{flowchart-elk-definition-5fe447d6-PDXCITK5.js → flowchart-elk-definition-5fe447d6-EPCYY7UZ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{ganttDiagram-9a3bba1f-6H5RBJF2.js → ganttDiagram-9a3bba1f-5SFDQQ5Y.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{gitGraphDiagram-96e6b4ee-23XJXNXL.js → gitGraphDiagram-96e6b4ee-IK47LK43.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/image-LI7WETXC.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{image-blob-reduce.esm-47YEP2D2.js → image-blob-reduce.esm-44FOF6QQ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{infoDiagram-bcd20f53-T57DUB27.js → infoDiagram-bcd20f53-2DLI3AEB.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{journeyDiagram-4fe6b3dc-V65HNLRJ.js → journeyDiagram-4fe6b3dc-MADFQ4OF.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{katex-GT3FOCX5.js → katex-24OYZMXR.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{mindmap-definition-f354de21-M6IDU4JG.js → mindmap-definition-f354de21-NFTFT2XB.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{pica-ORBFBYLP.js → pica-5IJTZHHE.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{pieDiagram-79897490-JMLERKYB.js → pieDiagram-79897490-AWYHG5OT.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{quadrantDiagram-62f64e94-M2UOBSKJ.js → quadrantDiagram-62f64e94-7R3WNOLE.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{requirementDiagram-05bf5f74-JGVLF3LK.js → requirementDiagram-05bf5f74-WVV4CACM.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{roundRect-B4P3NWN6.js → roundRect-Q7M7LXZP.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{sankeyDiagram-97764748-VRTAW4W2.js → sankeyDiagram-97764748-PGSJS2WP.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{sequenceDiagram-acc0e65c-M4OKLHBU.js → sequenceDiagram-acc0e65c-MVSXHT56.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{stateDiagram-0ff1cf1a-3CPFAEL2.js → stateDiagram-0ff1cf1a-PQJ344ML.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{stateDiagram-v2-9a9d610d-VLI5D4N6.js → stateDiagram-v2-9a9d610d-IKUMEGLC.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{timeline-definition-fea2a41d-MIOJHT22.js → timeline-definition-fea2a41d-4WBSWL7X.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{xychartDiagram-ab372869-SXWWQSYE.js → xychartDiagram-ab372869-RYRNQ54R.js} +1 -1
- package/dist/browser/prod/index.css +1 -1
- package/dist/browser/prod/index.js +15 -15
- package/dist/dev/{en-R7FEFJGC.json → en-Q552WR7L.json} +1 -1
- package/dist/dev/index.css +38 -15
- package/dist/dev/index.css.map +2 -2
- package/dist/dev/index.js +4553 -2591
- package/dist/dev/index.js.map +4 -4
- package/dist/excalidraw/actions/actionAddToLibrary.d.ts +4 -4
- package/dist/excalidraw/actions/actionAddToLibrary.js +4 -3
- package/dist/excalidraw/actions/actionAlign.d.ts +20 -20
- package/dist/excalidraw/actions/actionAlign.js +7 -6
- package/dist/excalidraw/actions/actionBoundText.d.ts +7 -7
- package/dist/excalidraw/actions/actionBoundText.js +8 -4
- package/dist/excalidraw/actions/actionCanvas.d.ts +49 -49
- package/dist/excalidraw/actions/actionCanvas.js +16 -13
- package/dist/excalidraw/actions/actionClipboard.d.ts +24 -24
- package/dist/excalidraw/actions/actionClipboard.js +14 -13
- package/dist/excalidraw/actions/actionDeleteSelected.d.ts +8 -8
- package/dist/excalidraw/actions/actionDeleteSelected.js +6 -3
- package/dist/excalidraw/actions/actionDistribute.d.ts +8 -8
- package/dist/excalidraw/actions/actionDistribute.js +3 -2
- package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +5 -6
- package/dist/excalidraw/actions/actionDuplicateSelection.js +7 -3
- package/dist/excalidraw/actions/actionElementLock.d.ts +8 -8
- package/dist/excalidraw/actions/actionElementLock.js +3 -2
- package/dist/excalidraw/actions/actionExport.d.ts +36 -36
- package/dist/excalidraw/actions/actionExport.js +15 -11
- package/dist/excalidraw/actions/actionFinalize.d.ts +8 -8
- package/dist/excalidraw/actions/actionFinalize.js +9 -5
- package/dist/excalidraw/actions/actionFlip.d.ts +9 -9
- package/dist/excalidraw/actions/actionFlip.js +12 -12
- package/dist/excalidraw/actions/actionFrame.d.ts +14 -169
- package/dist/excalidraw/actions/actionFrame.js +7 -6
- package/dist/excalidraw/actions/actionGroup.d.ts +11 -321
- package/dist/excalidraw/actions/actionGroup.js +9 -11
- package/dist/excalidraw/actions/actionHistory.d.ts +3 -2
- package/dist/excalidraw/actions/actionHistory.js +27 -28
- package/dist/excalidraw/actions/actionLinearEditor.d.ts +2 -2
- package/dist/excalidraw/actions/actionLinearEditor.js +2 -1
- package/dist/excalidraw/actions/actionLink.d.ts +5 -5
- package/dist/excalidraw/actions/actionLink.js +2 -1
- package/dist/excalidraw/actions/actionMenu.d.ts +8 -8
- package/dist/excalidraw/actions/actionMenu.js +4 -3
- package/dist/excalidraw/actions/actionNavigate.d.ts +3 -3
- package/dist/excalidraw/actions/actionNavigate.js +3 -2
- package/dist/excalidraw/actions/actionProperties.d.ts +32 -32
- package/dist/excalidraw/actions/actionProperties.js +18 -13
- package/dist/excalidraw/actions/actionSelectAll.d.ts +4 -4
- package/dist/excalidraw/actions/actionSelectAll.js +2 -1
- package/dist/excalidraw/actions/actionStyles.d.ts +9 -12
- package/dist/excalidraw/actions/actionStyles.js +4 -3
- package/dist/excalidraw/actions/actionToggleGridMode.d.ts +6 -4
- package/dist/excalidraw/actions/actionToggleGridMode.js +6 -2
- package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +4 -4
- package/dist/excalidraw/actions/actionToggleObjectsSnapMode.js +2 -1
- package/dist/excalidraw/actions/actionToggleStats.d.ts +4 -4
- package/dist/excalidraw/actions/actionToggleStats.js +2 -1
- package/dist/excalidraw/actions/actionToggleViewMode.d.ts +4 -4
- package/dist/excalidraw/actions/actionToggleViewMode.js +2 -1
- package/dist/excalidraw/actions/actionToggleZenMode.d.ts +4 -4
- package/dist/excalidraw/actions/actionToggleZenMode.js +2 -1
- package/dist/excalidraw/actions/actionZindex.d.ts +19 -19
- package/dist/excalidraw/actions/actionZindex.js +5 -4
- package/dist/excalidraw/actions/manager.d.ts +3 -3
- package/dist/excalidraw/actions/types.d.ts +4 -4
- package/dist/excalidraw/appState.d.ts +5 -5
- package/dist/excalidraw/change.d.ts +191 -0
- package/dist/excalidraw/change.js +894 -0
- package/dist/excalidraw/components/App.d.ts +22 -8
- package/dist/excalidraw/components/App.js +353 -147
- package/dist/excalidraw/components/CommandPalette/CommandPalette.js +1 -0
- package/dist/excalidraw/components/HelpDialog.js +1 -1
- package/dist/excalidraw/components/Sidebar/Sidebar.d.ts +2 -2
- package/dist/excalidraw/components/Stack.d.ts +2 -2
- package/dist/excalidraw/components/ToolButton.d.ts +1 -0
- package/dist/excalidraw/components/ToolButton.js +1 -1
- package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -1
- package/dist/excalidraw/components/canvases/InteractiveCanvas.js +1 -0
- package/dist/excalidraw/components/hyperlink/Hyperlink.js +3 -3
- package/dist/excalidraw/components/hyperlink/helpers.js +2 -3
- package/dist/excalidraw/components/icons.d.ts +1 -0
- package/dist/excalidraw/components/icons.js +1 -0
- package/dist/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
- package/dist/excalidraw/constants.d.ts +3 -3
- package/dist/excalidraw/constants.js +6 -3
- package/dist/excalidraw/data/reconcile.d.ts +6 -0
- package/dist/excalidraw/data/reconcile.js +49 -0
- package/dist/excalidraw/data/restore.d.ts +3 -3
- package/dist/excalidraw/data/restore.js +6 -7
- package/dist/excalidraw/data/transform.d.ts +1 -1
- package/dist/excalidraw/data/transform.js +4 -3
- package/dist/excalidraw/element/binding.d.ts +50 -9
- package/dist/excalidraw/element/binding.js +712 -155
- package/dist/excalidraw/element/bounds.d.ts +0 -1
- package/dist/excalidraw/element/bounds.js +0 -3
- package/dist/excalidraw/element/collision.d.ts +14 -19
- package/dist/excalidraw/element/collision.js +36 -713
- package/dist/excalidraw/element/embeddable.d.ts +7 -4
- package/dist/excalidraw/element/embeddable.js +72 -18
- package/dist/excalidraw/element/index.d.ts +0 -1
- package/dist/excalidraw/element/index.js +0 -1
- package/dist/excalidraw/element/linearElementEditor.d.ts +11 -11
- package/dist/excalidraw/element/linearElementEditor.js +7 -5
- package/dist/excalidraw/element/mutateElement.d.ts +1 -2
- package/dist/excalidraw/element/newElement.d.ts +1 -1
- package/dist/excalidraw/element/newElement.js +2 -1
- package/dist/excalidraw/element/resizeElements.d.ts +1 -1
- package/dist/excalidraw/element/resizeElements.js +110 -86
- package/dist/excalidraw/element/resizeTest.d.ts +4 -4
- package/dist/excalidraw/element/resizeTest.js +55 -8
- package/dist/excalidraw/element/sizeHelpers.js +3 -0
- package/dist/excalidraw/element/textElement.d.ts +1 -2
- package/dist/excalidraw/element/textElement.js +5 -34
- package/dist/excalidraw/element/transformHandles.d.ts +22 -4
- package/dist/excalidraw/element/transformHandles.js +24 -3
- package/dist/excalidraw/element/typeChecks.d.ts +2 -2
- package/dist/excalidraw/element/types.d.ts +19 -6
- package/dist/excalidraw/errors.d.ts +3 -0
- package/dist/excalidraw/errors.js +3 -0
- package/dist/excalidraw/fractionalIndex.d.ts +40 -0
- package/dist/excalidraw/fractionalIndex.js +241 -0
- package/dist/excalidraw/frame.d.ts +1 -1
- package/dist/excalidraw/groups.d.ts +2 -0
- package/dist/excalidraw/groups.js +17 -0
- package/dist/excalidraw/history.d.ts +34 -46
- package/dist/excalidraw/history.js +100 -167
- package/dist/excalidraw/hooks/useEmitter.d.ts +2 -0
- package/dist/excalidraw/hooks/useEmitter.js +13 -0
- package/dist/excalidraw/index.d.ts +2 -0
- package/dist/excalidraw/index.js +2 -0
- package/dist/excalidraw/locales/en.json +1 -1
- package/dist/excalidraw/renderer/interactiveScene.d.ts +1 -1
- package/dist/excalidraw/renderer/interactiveScene.js +8 -7
- package/dist/excalidraw/renderer/staticScene.js +14 -3
- package/dist/excalidraw/renderer/staticSvgScene.js +10 -0
- package/dist/excalidraw/scene/Scene.d.ts +7 -6
- package/dist/excalidraw/scene/Scene.js +31 -16
- package/dist/excalidraw/scene/export.js +2 -1
- package/dist/excalidraw/scene/types.d.ts +2 -1
- package/dist/excalidraw/store.d.ts +99 -0
- package/dist/excalidraw/store.js +269 -0
- package/dist/excalidraw/types.d.ts +18 -4
- package/dist/excalidraw/utils.d.ts +6 -0
- package/dist/excalidraw/utils.js +7 -0
- package/dist/excalidraw/zindex.d.ts +2 -2
- package/dist/excalidraw/zindex.js +9 -13
- package/dist/prod/{en-R7FEFJGC.json → en-Q552WR7L.json} +1 -1
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +44 -44
- package/dist/utils/collision.d.ts +4 -0
- package/dist/utils/collision.js +48 -0
- package/dist/utils/geometry/geometry.d.ts +71 -0
- package/dist/utils/geometry/geometry.js +674 -0
- package/dist/utils/geometry/shape.d.ts +56 -0
- package/dist/utils/geometry/shape.js +168 -0
- package/history.ts +161 -216
- package/package.json +2 -1
- package/dist/browser/dev/excalidraw-assets-dev/chunk-J5HRUYQR.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/chunk-QZ4FGBZF.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/chunk-U6PMUKRO.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/dist-KCKKSNUY.js +0 -10
- package/dist/browser/dev/excalidraw-assets-dev/image-ZNQQXS62.css.map +0 -7
- package/dist/browser/prod/excalidraw-assets/chunk-46SP2WMF.js +0 -335
- package/dist/browser/prod/excalidraw-assets/dist-F2IUHSJR.js +0 -1
- package/dist/browser/prod/excalidraw-assets/flowDiagram-v2-3b53844e-ETRR4SD3.js +0 -1
- package/dist/browser/prod/excalidraw-assets/image-5SBTIZPN.js +0 -1
- /package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-QSJ4HNO7.js.map → blockDiagram-91b80b7a-IRJTK6Z5.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-4MYCZKG5.js.map → c4Diagram-b2a90758-CCPPXFPY.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-BECDVD6R.js.map → chunk-32FQKC5U.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-POWCA5QF.js.map → chunk-4RQWU7MH.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-Q7SIL7GF.js.map → chunk-4XTDAI34.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-FR3IAB6U.js.map → chunk-CH3VL6LE.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-EPAK72CK.js.map → chunk-DAUKRODV.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-U4Z6B5JW.js.map → chunk-GHBR42PD.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-FRL7WYV2.js.map → chunk-I6APBPLG.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-J4UG2B64.js.map → chunk-JT5FK676.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-OH2FVCZF.js.map → chunk-MTN3FT3I.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-IE752YUC.js.map → chunk-PTGAFHDE.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-4LATYPUZ.js.map → chunk-TT3CLKL2.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-EAK3FBDE.js.map → chunk-VTLDDAKT.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-43KRVI2R.js.map → classDiagram-30eddba6-EYEUBSFK.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-NDH5IIX2.js.map → classDiagram-v2-f2df5561-2Q4N2YXH.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-01563666-WIGO3PHP.js.map → directory-open-01563666-JI732I6L.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{directory-open-4ed118d0-CXEHOJKC.js.map → directory-open-4ed118d0-FCSLGWX4.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{dist-KCKKSNUY.js.map → dist-Y7YU7LF5.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{en-UW5C5KGW.js.map → en-PSBMWL4S.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-LXI3RBHB.js.map → erDiagram-47591fe2-YW6WXPKB.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-open-002ab408-ZLYQ5POM.js.map → file-open-002ab408-VGLBX2SD.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-open-7c801643-YEWKTXUK.js.map → file-open-7c801643-HOSRJESM.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-save-3189631c-ZRB6VRMQ.js.map → file-save-3189631c-7UVDDLND.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{file-save-745eba88-6AE2F2MK.js.map → file-save-745eba88-R4WI6C5N.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-MHX5LMLF.js.map → flowDiagram-5540d9b9-HMMVJLFR.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-HXZO64MP.js.map → flowDiagram-v2-3b53844e-MAKR536R.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-QJSM73VB.js.map → flowchart-elk-definition-5fe447d6-K5ZCVETB.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-DIBF4MAD.js.map → ganttDiagram-9a3bba1f-2ZVU3FTZ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-AJVGQM3V.js.map → gitGraphDiagram-96e6b4ee-FZ6FANLP.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-GU4Q2RBL.js.map → image-SS5TMYT4.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-blob-reduce.esm-FERKXLKH.js.map → image-blob-reduce.esm-YXLX3RLK.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-M4VT2O6X.js.map → infoDiagram-bcd20f53-COYAHIVY.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-RBUJMJGB.js.map → journeyDiagram-4fe6b3dc-RFNSHLY7.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{katex-U3KW6RMN.js.map → katex-E3UYSNFK.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-G75STLDF.js.map → mindmap-definition-f354de21-PLB66GYC.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{pica-QCDDJ4FA.js.map → pica-FL6WHKHD.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-EYD6GWN6.js.map → pieDiagram-79897490-UZ3VDZDT.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-VCULRDXW.js.map → quadrantDiagram-62f64e94-T5FLQQ62.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-TASTTHUI.js.map → requirementDiagram-05bf5f74-VEHQOUFO.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{roundRect-5GJOYZ3N.js.map → roundRect-K6N73LBJ.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-2YQACLIX.js.map → sankeyDiagram-97764748-KLJ7HONA.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-AQAXFV3S.js.map → sequenceDiagram-acc0e65c-L4ZWSX22.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-EI62FLQG.js.map → stateDiagram-0ff1cf1a-JZUDOEAH.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-MTSH7UNC.js.map → stateDiagram-v2-9a9d610d-WHNU7SI7.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-VQ2VZEWC.js.map → timeline-definition-fea2a41d-SLLH6X7S.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-VTFIYULE.js.map → xychartDiagram-ab372869-A7EDAO5Q.js.map} +0 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { ExcalidrawProps } from "../types";
|
|
3
3
|
import { ExcalidrawElement, ExcalidrawIframeLikeElement, IframeData } from "./types";
|
|
4
|
+
import { MarkRequired } from "../utility-types";
|
|
5
|
+
type IframeDataWithSandbox = MarkRequired<IframeData, "sandbox">;
|
|
4
6
|
export declare const createSrcDoc: (body: string) => string;
|
|
5
|
-
export declare const getEmbedLink: (link: string | null | undefined) =>
|
|
7
|
+
export declare const getEmbedLink: (link: string | null | undefined) => IframeDataWithSandbox | null;
|
|
6
8
|
export declare const createPlaceholderEmbeddableLabel: (element: ExcalidrawIframeLikeElement) => ExcalidrawElement;
|
|
7
9
|
export declare const actionSetEmbeddableAsActiveTool: {
|
|
8
10
|
name: "setEmbeddableAsActiveTool";
|
|
@@ -11,8 +13,8 @@ export declare const actionSetEmbeddableAsActiveTool: {
|
|
|
11
13
|
};
|
|
12
14
|
target: string;
|
|
13
15
|
label: string;
|
|
14
|
-
perform: (elements: readonly
|
|
15
|
-
elements: readonly
|
|
16
|
+
perform: (elements: readonly import("./types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => {
|
|
17
|
+
elements: readonly import("./types").OrderedExcalidrawElement[];
|
|
16
18
|
appState: {
|
|
17
19
|
activeTool: {
|
|
18
20
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -165,10 +167,11 @@ export declare const actionSetEmbeddableAsActiveTool: {
|
|
|
165
167
|
userToFollow: import("../types").UserToFollow | null;
|
|
166
168
|
followedBy: Set<import("../types").SocketId>;
|
|
167
169
|
};
|
|
168
|
-
|
|
170
|
+
storeAction: import("../store").StoreActionType;
|
|
169
171
|
};
|
|
170
172
|
} & {
|
|
171
173
|
keyTest?: undefined;
|
|
172
174
|
};
|
|
173
175
|
export declare const maybeParseEmbedSrc: (str: string) => string;
|
|
174
176
|
export declare const embeddableURLValidator: (url: string | null | undefined, validateEmbeddable: ExcalidrawProps["validateEmbeddable"]) => boolean;
|
|
177
|
+
export {};
|
|
@@ -6,6 +6,7 @@ import { newTextElement } from "./newElement";
|
|
|
6
6
|
import { wrapText } from "./textElement";
|
|
7
7
|
import { isIframeElement } from "./typeChecks";
|
|
8
8
|
import { sanitizeHTMLAttribute } from "../data/url";
|
|
9
|
+
import { StoreAction } from "../store";
|
|
9
10
|
const embeddedLinkCache = new Map();
|
|
10
11
|
const RE_YOUTUBE = /^(?:http(?:s)?:\/\/)?(?:www\.)?youtu(?:be\.com|\.be)\/(embed\/|watch\?v=|shorts\/|playlist\?list=|embed\/videoseries\?list=)?([a-zA-Z0-9_-]+)(?:\?t=|&t=|\?start=|&start=)?([a-zA-Z0-9_-]+)?[^\s]*$/;
|
|
11
12
|
const RE_VIMEO = /^(?:http(?:s)?:\/\/)?(?:(?:w){3}\.)?(?:player\.)?vimeo\.com\/(?:video\/)?([^?\s]+)(?:\?.*)?$/;
|
|
@@ -32,7 +33,17 @@ const ALLOWED_DOMAINS = new Set([
|
|
|
32
33
|
"stackblitz.com",
|
|
33
34
|
"val.town",
|
|
34
35
|
"giphy.com",
|
|
35
|
-
|
|
36
|
+
]);
|
|
37
|
+
const ALLOW_SAME_ORIGIN = new Set([
|
|
38
|
+
"youtube.com",
|
|
39
|
+
"youtu.be",
|
|
40
|
+
"vimeo.com",
|
|
41
|
+
"player.vimeo.com",
|
|
42
|
+
"figma.com",
|
|
43
|
+
"twitter.com",
|
|
44
|
+
"x.com",
|
|
45
|
+
"*.simplepdf.eu",
|
|
46
|
+
"stackblitz.com",
|
|
36
47
|
]);
|
|
37
48
|
export const createSrcDoc = (body) => {
|
|
38
49
|
return `<html><body>${body}</body></html>`;
|
|
@@ -45,6 +56,7 @@ export const getEmbedLink = (link) => {
|
|
|
45
56
|
return embeddedLinkCache.get(link);
|
|
46
57
|
}
|
|
47
58
|
const originalLink = link;
|
|
59
|
+
const allowSameOrigin = ALLOW_SAME_ORIGIN.has(matchHostname(link, ALLOW_SAME_ORIGIN) || "");
|
|
48
60
|
let type = "generic";
|
|
49
61
|
let aspectRatio = { w: 560, h: 840 };
|
|
50
62
|
const ytLink = link.match(RE_YOUTUBE);
|
|
@@ -71,8 +83,14 @@ export const getEmbedLink = (link) => {
|
|
|
71
83
|
link,
|
|
72
84
|
intrinsicSize: aspectRatio,
|
|
73
85
|
type,
|
|
86
|
+
sandbox: { allowSameOrigin },
|
|
74
87
|
});
|
|
75
|
-
return {
|
|
88
|
+
return {
|
|
89
|
+
link,
|
|
90
|
+
intrinsicSize: aspectRatio,
|
|
91
|
+
type,
|
|
92
|
+
sandbox: { allowSameOrigin },
|
|
93
|
+
};
|
|
76
94
|
}
|
|
77
95
|
const vimeoLink = link.match(RE_VIMEO);
|
|
78
96
|
if (vimeoLink?.[1]) {
|
|
@@ -89,8 +107,15 @@ export const getEmbedLink = (link) => {
|
|
|
89
107
|
link,
|
|
90
108
|
intrinsicSize: aspectRatio,
|
|
91
109
|
type,
|
|
110
|
+
sandbox: { allowSameOrigin },
|
|
92
111
|
});
|
|
93
|
-
return {
|
|
112
|
+
return {
|
|
113
|
+
link,
|
|
114
|
+
intrinsicSize: aspectRatio,
|
|
115
|
+
type,
|
|
116
|
+
error,
|
|
117
|
+
sandbox: { allowSameOrigin },
|
|
118
|
+
};
|
|
94
119
|
}
|
|
95
120
|
const figmaLink = link.match(RE_FIGMA);
|
|
96
121
|
if (figmaLink) {
|
|
@@ -101,8 +126,14 @@ export const getEmbedLink = (link) => {
|
|
|
101
126
|
link,
|
|
102
127
|
intrinsicSize: aspectRatio,
|
|
103
128
|
type,
|
|
129
|
+
sandbox: { allowSameOrigin },
|
|
104
130
|
});
|
|
105
|
-
return {
|
|
131
|
+
return {
|
|
132
|
+
link,
|
|
133
|
+
intrinsicSize: aspectRatio,
|
|
134
|
+
type,
|
|
135
|
+
sandbox: { allowSameOrigin },
|
|
136
|
+
};
|
|
106
137
|
}
|
|
107
138
|
const valLink = link.match(RE_VALTOWN);
|
|
108
139
|
if (valLink) {
|
|
@@ -112,8 +143,14 @@ export const getEmbedLink = (link) => {
|
|
|
112
143
|
link,
|
|
113
144
|
intrinsicSize: aspectRatio,
|
|
114
145
|
type,
|
|
146
|
+
sandbox: { allowSameOrigin },
|
|
115
147
|
});
|
|
116
|
-
return {
|
|
148
|
+
return {
|
|
149
|
+
link,
|
|
150
|
+
intrinsicSize: aspectRatio,
|
|
151
|
+
type,
|
|
152
|
+
sandbox: { allowSameOrigin },
|
|
153
|
+
};
|
|
117
154
|
}
|
|
118
155
|
if (RE_TWITTER.test(link)) {
|
|
119
156
|
const postId = link.match(RE_TWITTER)[1];
|
|
@@ -126,7 +163,7 @@ export const getEmbedLink = (link) => {
|
|
|
126
163
|
type: "document",
|
|
127
164
|
srcdoc: (theme) => createSrcDoc(`<blockquote class="twitter-tweet" data-dnt="true" data-theme="${theme}"><a href="${safeURL}"></a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>`),
|
|
128
165
|
intrinsicSize: { w: 480, h: 480 },
|
|
129
|
-
sandbox: { allowSameOrigin
|
|
166
|
+
sandbox: { allowSameOrigin },
|
|
130
167
|
};
|
|
131
168
|
embeddedLinkCache.set(originalLink, ret);
|
|
132
169
|
return ret;
|
|
@@ -145,12 +182,23 @@ export const getEmbedLink = (link) => {
|
|
|
145
182
|
</style>
|
|
146
183
|
`),
|
|
147
184
|
intrinsicSize: { w: 550, h: 720 },
|
|
185
|
+
sandbox: { allowSameOrigin },
|
|
148
186
|
};
|
|
149
187
|
embeddedLinkCache.set(link, ret);
|
|
150
188
|
return ret;
|
|
151
189
|
}
|
|
152
|
-
embeddedLinkCache.set(link, {
|
|
153
|
-
|
|
190
|
+
embeddedLinkCache.set(link, {
|
|
191
|
+
link,
|
|
192
|
+
intrinsicSize: aspectRatio,
|
|
193
|
+
type,
|
|
194
|
+
sandbox: { allowSameOrigin },
|
|
195
|
+
});
|
|
196
|
+
return {
|
|
197
|
+
link,
|
|
198
|
+
intrinsicSize: aspectRatio,
|
|
199
|
+
type,
|
|
200
|
+
sandbox: { allowSameOrigin },
|
|
201
|
+
};
|
|
154
202
|
};
|
|
155
203
|
export const createPlaceholderEmbeddableLabel = (element) => {
|
|
156
204
|
let text;
|
|
@@ -201,29 +249,35 @@ export const actionSetEmbeddableAsActiveTool = register({
|
|
|
201
249
|
type: "embeddable",
|
|
202
250
|
}),
|
|
203
251
|
},
|
|
204
|
-
|
|
252
|
+
storeAction: StoreAction.NONE,
|
|
205
253
|
};
|
|
206
254
|
},
|
|
207
255
|
});
|
|
208
|
-
const
|
|
256
|
+
const matchHostname = (url,
|
|
209
257
|
/** using a Set assumes it already contains normalized bare domains */
|
|
210
258
|
allowedHostnames) => {
|
|
211
259
|
try {
|
|
212
260
|
const { hostname } = new URL(url);
|
|
213
261
|
const bareDomain = hostname.replace(/^www\./, "");
|
|
214
|
-
const bareDomainWithFirstSubdomainWildcarded = bareDomain.replace(/^([^.]+)/, "*");
|
|
215
262
|
if (allowedHostnames instanceof Set) {
|
|
216
|
-
|
|
217
|
-
|
|
263
|
+
if (ALLOWED_DOMAINS.has(bareDomain)) {
|
|
264
|
+
return bareDomain;
|
|
265
|
+
}
|
|
266
|
+
const bareDomainWithFirstSubdomainWildcarded = bareDomain.replace(/^([^.]+)/, "*");
|
|
267
|
+
if (ALLOWED_DOMAINS.has(bareDomainWithFirstSubdomainWildcarded)) {
|
|
268
|
+
return bareDomainWithFirstSubdomainWildcarded;
|
|
269
|
+
}
|
|
270
|
+
return null;
|
|
218
271
|
}
|
|
219
|
-
|
|
220
|
-
|
|
272
|
+
const bareAllowedHostname = allowedHostnames.replace(/^www\./, "");
|
|
273
|
+
if (bareDomain === bareAllowedHostname) {
|
|
274
|
+
return bareAllowedHostname;
|
|
221
275
|
}
|
|
222
276
|
}
|
|
223
277
|
catch (error) {
|
|
224
278
|
// ignore
|
|
225
279
|
}
|
|
226
|
-
return
|
|
280
|
+
return null;
|
|
227
281
|
};
|
|
228
282
|
export const maybeParseEmbedSrc = (str) => {
|
|
229
283
|
const twitterMatch = str.match(RE_TWITTER_EMBED);
|
|
@@ -268,12 +322,12 @@ export const embeddableURLValidator = (url, validateEmbeddable) => {
|
|
|
268
322
|
return true;
|
|
269
323
|
}
|
|
270
324
|
}
|
|
271
|
-
else if (
|
|
325
|
+
else if (matchHostname(url, domain)) {
|
|
272
326
|
return true;
|
|
273
327
|
}
|
|
274
328
|
}
|
|
275
329
|
return false;
|
|
276
330
|
}
|
|
277
331
|
}
|
|
278
|
-
return
|
|
332
|
+
return !!matchHostname(url, ALLOWED_DOMAINS);
|
|
279
333
|
};
|
|
@@ -2,7 +2,6 @@ import { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted } from "./ty
|
|
|
2
2
|
export { newElement, newTextElement, updateTextElement, refreshTextDimensions, newLinearElement, newImageElement, duplicateElement, } from "./newElement";
|
|
3
3
|
export { getElementAbsoluteCoords, getElementBounds, getCommonBounds, getDiamondPoints, getArrowheadPoints, getClosestElementBounds, } from "./bounds";
|
|
4
4
|
export { OMIT_SIDES_FOR_MULTIPLE_ELEMENTS, getTransformHandlesFromCoords, getTransformHandles, } from "./transformHandles";
|
|
5
|
-
export { hitTest, isHittingElementBoundingBoxWithoutHittingElement, } from "./collision";
|
|
6
5
|
export { resizeTest, getCursorForResizingElement, getElementWithTransformHandleType, getTransformHandleTypeFromCoords, } from "./resizeTest";
|
|
7
6
|
export { transformElements, getResizeOffsetXY, getResizeArrowDirection, } from "./resizeElements";
|
|
8
7
|
export { dragSelectedElements, getDragOffsetXY, dragNewElement, } from "./dragElements";
|
|
@@ -3,7 +3,6 @@ import { isLinearElementType } from "./typeChecks";
|
|
|
3
3
|
export { newElement, newTextElement, updateTextElement, refreshTextDimensions, newLinearElement, newImageElement, duplicateElement, } from "./newElement";
|
|
4
4
|
export { getElementAbsoluteCoords, getElementBounds, getCommonBounds, getDiamondPoints, getArrowheadPoints, getClosestElementBounds, } from "./bounds";
|
|
5
5
|
export { OMIT_SIDES_FOR_MULTIPLE_ELEMENTS, getTransformHandlesFromCoords, getTransformHandles, } from "./transformHandles";
|
|
6
|
-
export { hitTest, isHittingElementBoundingBoxWithoutHittingElement, } from "./collision";
|
|
7
6
|
export { resizeTest, getCursorForResizingElement, getElementWithTransformHandleType, getTransformHandleTypeFromCoords, } from "./resizeTest";
|
|
8
7
|
export { transformElements, getResizeOffsetXY, getResizeArrowDirection, } from "./resizeElements";
|
|
9
8
|
export { dragSelectedElements, getDragOffsetXY, dragNewElement, } from "./dragElements";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer, ElementsMap,
|
|
2
|
+
import { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer, ElementsMap, NonDeletedSceneElementsMap } from "./types";
|
|
3
3
|
import { Bounds } from "./bounds";
|
|
4
|
-
import { Point, AppState, PointerCoords, InteractiveCanvasAppState } from "../types";
|
|
5
|
-
import
|
|
4
|
+
import { Point, AppState, PointerCoords, InteractiveCanvasAppState, AppClassProperties } from "../types";
|
|
5
|
+
import { Store } from "../store";
|
|
6
6
|
declare const editorMidPointsCache: {
|
|
7
7
|
version: number | null;
|
|
8
8
|
points: (Point | null)[];
|
|
@@ -52,7 +52,7 @@ export declare class LinearElementEditor {
|
|
|
52
52
|
x: number;
|
|
53
53
|
y: number;
|
|
54
54
|
}[]) => void, linearElementEditor: LinearElementEditor, elementsMap: NonDeletedSceneElementsMap): boolean;
|
|
55
|
-
static handlePointerUp(event: PointerEvent, editingLinearElement: LinearElementEditor, appState: AppState,
|
|
55
|
+
static handlePointerUp(event: PointerEvent, editingLinearElement: LinearElementEditor, appState: AppState, app: AppClassProperties): LinearElementEditor;
|
|
56
56
|
static getEditorMidPoints: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => (typeof editorMidPointsCache)["points"];
|
|
57
57
|
static updateEditorMidPointsCache: (element: NonDeleted<ExcalidrawLinearElement>, elementsMap: ElementsMap, appState: InteractiveCanvasAppState) => void;
|
|
58
58
|
static getSegmentMidpointHitCoords: (linearElementEditor: LinearElementEditor, scenePointer: {
|
|
@@ -62,10 +62,10 @@ export declare class LinearElementEditor {
|
|
|
62
62
|
static isSegmentTooShort(element: NonDeleted<ExcalidrawLinearElement>, startPoint: Point, endPoint: Point, zoom: AppState["zoom"]): boolean;
|
|
63
63
|
static getSegmentMidPoint(element: NonDeleted<ExcalidrawLinearElement>, startPoint: Point, endPoint: Point, endPointIndex: number, elementsMap: ElementsMap): readonly [number, number];
|
|
64
64
|
static getSegmentMidPointIndex(linearElementEditor: LinearElementEditor, appState: AppState, midPoint: Point, elementsMap: ElementsMap): number;
|
|
65
|
-
static handlePointerDown(event: React.PointerEvent<HTMLElement>, appState: AppState,
|
|
65
|
+
static handlePointerDown(event: React.PointerEvent<HTMLElement>, appState: AppState, store: Store, scenePointer: {
|
|
66
66
|
x: number;
|
|
67
67
|
y: number;
|
|
68
|
-
}, linearElementEditor: LinearElementEditor,
|
|
68
|
+
}, linearElementEditor: LinearElementEditor, app: AppClassProperties): {
|
|
69
69
|
didAddPoint: boolean;
|
|
70
70
|
hitElement: NonDeleted<ExcalidrawElement> | null;
|
|
71
71
|
linearElementEditor: LinearElementEditor | null;
|
|
@@ -133,13 +133,13 @@ export declare class LinearElementEditor {
|
|
|
133
133
|
isLoading: boolean;
|
|
134
134
|
errorMessage: import("react").ReactNode;
|
|
135
135
|
activeEmbeddable: {
|
|
136
|
-
element: NonDeletedExcalidrawElement;
|
|
136
|
+
element: import("./types").NonDeletedExcalidrawElement;
|
|
137
137
|
state: "hover" | "active";
|
|
138
138
|
} | null;
|
|
139
|
-
draggingElement: NonDeletedExcalidrawElement | null;
|
|
140
|
-
resizingElement: NonDeletedExcalidrawElement | null;
|
|
139
|
+
draggingElement: import("./types").NonDeletedExcalidrawElement | null;
|
|
140
|
+
resizingElement: import("./types").NonDeletedExcalidrawElement | null;
|
|
141
141
|
multiElement: NonDeleted<ExcalidrawLinearElement> | null;
|
|
142
|
-
selectionElement: NonDeletedExcalidrawElement | null;
|
|
142
|
+
selectionElement: import("./types").NonDeletedExcalidrawElement | null;
|
|
143
143
|
isBindingEnabled: boolean;
|
|
144
144
|
startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
|
|
145
145
|
suggestedBindings: import("./binding").SuggestedBinding[];
|
|
@@ -152,7 +152,7 @@ export declare class LinearElementEditor {
|
|
|
152
152
|
};
|
|
153
153
|
editingFrame: string | null;
|
|
154
154
|
elementsToHighlight: NonDeleted<ExcalidrawElement>[] | null;
|
|
155
|
-
editingElement: NonDeletedExcalidrawElement | null;
|
|
155
|
+
editingElement: import("./types").NonDeletedExcalidrawElement | null;
|
|
156
156
|
activeTool: {
|
|
157
157
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
158
158
|
locked: boolean;
|
|
@@ -163,7 +163,8 @@ export class LinearElementEditor {
|
|
|
163
163
|
}
|
|
164
164
|
return false;
|
|
165
165
|
}
|
|
166
|
-
static handlePointerUp(event, editingLinearElement, appState,
|
|
166
|
+
static handlePointerUp(event, editingLinearElement, appState, app) {
|
|
167
|
+
const elementsMap = app.scene.getNonDeletedElementsMap();
|
|
167
168
|
const { elementId, selectedPointsIndices, isDragging, pointerDownState } = editingLinearElement;
|
|
168
169
|
const element = LinearElementEditor.getElement(elementId, elementsMap);
|
|
169
170
|
if (!element) {
|
|
@@ -185,7 +186,7 @@ export class LinearElementEditor {
|
|
|
185
186
|
]);
|
|
186
187
|
}
|
|
187
188
|
const bindingElement = isBindingEnabled(appState)
|
|
188
|
-
? getHoveredElementForBinding(tupleToCoors(LinearElementEditor.getPointAtIndexGlobalCoordinates(element, selectedPoint, elementsMap)),
|
|
189
|
+
? getHoveredElementForBinding(tupleToCoors(LinearElementEditor.getPointAtIndexGlobalCoordinates(element, selectedPoint, elementsMap)), app)
|
|
189
190
|
: null;
|
|
190
191
|
bindings[selectedPoint === 0 ? "startBindingElement" : "endBindingElement"] = bindingElement;
|
|
191
192
|
}
|
|
@@ -313,7 +314,8 @@ export class LinearElementEditor {
|
|
|
313
314
|
}
|
|
314
315
|
return -1;
|
|
315
316
|
}
|
|
316
|
-
static handlePointerDown(event, appState,
|
|
317
|
+
static handlePointerDown(event, appState, store, scenePointer, linearElementEditor, app) {
|
|
318
|
+
const elementsMap = app.scene.getNonDeletedElementsMap();
|
|
317
319
|
const ret = {
|
|
318
320
|
didAddPoint: false,
|
|
319
321
|
hitElement: null,
|
|
@@ -342,7 +344,7 @@ export class LinearElementEditor {
|
|
|
342
344
|
});
|
|
343
345
|
ret.didAddPoint = true;
|
|
344
346
|
}
|
|
345
|
-
|
|
347
|
+
store.shouldCaptureIncrement();
|
|
346
348
|
ret.linearElementEditor = {
|
|
347
349
|
...linearElementEditor,
|
|
348
350
|
pointerDownState: {
|
|
@@ -357,7 +359,7 @@ export class LinearElementEditor {
|
|
|
357
359
|
},
|
|
358
360
|
selectedPointsIndices: [element.points.length - 1],
|
|
359
361
|
lastUncommittedPoint: null,
|
|
360
|
-
endBindingElement: getHoveredElementForBinding(scenePointer,
|
|
362
|
+
endBindingElement: getHoveredElementForBinding(scenePointer, app),
|
|
361
363
|
};
|
|
362
364
|
ret.didAddPoint = true;
|
|
363
365
|
return ret;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExcalidrawElement } from "./types";
|
|
2
2
|
import { Mutable } from "../utility-types";
|
|
3
|
-
type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "version" | "versionNonce">;
|
|
3
|
+
export type ElementUpdate<TElement extends ExcalidrawElement> = Omit<Partial<TElement>, "id" | "version" | "versionNonce" | "updated">;
|
|
4
4
|
export declare const mutateElement: <TElement extends Mutable<ExcalidrawElement>>(element: TElement, updates: ElementUpdate<TElement>, informMutation?: boolean) => TElement;
|
|
5
5
|
export declare const newElementWith: <TElement extends ExcalidrawElement>(element: TElement, updates: ElementUpdate<TElement>) => TElement;
|
|
6
6
|
/**
|
|
@@ -9,4 +9,3 @@ export declare const newElementWith: <TElement extends ExcalidrawElement>(elemen
|
|
|
9
9
|
* NOTE: does not trigger re-render.
|
|
10
10
|
*/
|
|
11
11
|
export declare const bumpVersion: <T extends Mutable<ExcalidrawElement>>(element: T, version?: ExcalidrawElement["version"]) => T;
|
|
12
|
-
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ExcalidrawElement, ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, GroupId, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer, ExcalidrawFrameElement, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawIframeElement, ElementsMap } from "./types";
|
|
2
2
|
import { AppState } from "../types";
|
|
3
3
|
import { MarkOptional, Mutable } from "../utility-types";
|
|
4
|
-
export type ElementConstructorOpts = MarkOptional<Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted" | "updated">, "width" | "height" | "angle" | "groupIds" | "frameId" | "boundElements" | "seed" | "version" | "versionNonce" | "link" | "strokeStyle" | "fillStyle" | "strokeColor" | "backgroundColor" | "roughness" | "strokeWidth" | "roundness" | "locked" | "opacity" | "customData">;
|
|
4
|
+
export type ElementConstructorOpts = MarkOptional<Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted" | "updated">, "width" | "height" | "angle" | "groupIds" | "frameId" | "index" | "boundElements" | "seed" | "version" | "versionNonce" | "link" | "strokeStyle" | "fillStyle" | "strokeColor" | "backgroundColor" | "roughness" | "strokeWidth" | "roundness" | "locked" | "opacity" | "customData">;
|
|
5
5
|
export declare const newElement: (opts: {
|
|
6
6
|
type: ExcalidrawGenericElement["type"];
|
|
7
7
|
} & ElementConstructorOpts) => NonDeleted<ExcalidrawGenericElement>;
|
|
@@ -7,7 +7,7 @@ import { adjustXYWithRotation } from "../math";
|
|
|
7
7
|
import { getResizedElementAbsoluteCoords } from "./bounds";
|
|
8
8
|
import { measureText, normalizeText, wrapText, getBoundTextMaxWidth, getDefaultLineHeight, } from "./textElement";
|
|
9
9
|
import { DEFAULT_ELEMENT_PROPS, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_TEXT_ALIGN, DEFAULT_VERTICAL_ALIGN, VERTICAL_ALIGN, } from "../constants";
|
|
10
|
-
const _newElementBase = (type, { x, y, strokeColor = DEFAULT_ELEMENT_PROPS.strokeColor, backgroundColor = DEFAULT_ELEMENT_PROPS.backgroundColor, fillStyle = DEFAULT_ELEMENT_PROPS.fillStyle, strokeWidth = DEFAULT_ELEMENT_PROPS.strokeWidth, strokeStyle = DEFAULT_ELEMENT_PROPS.strokeStyle, roughness = DEFAULT_ELEMENT_PROPS.roughness, opacity = DEFAULT_ELEMENT_PROPS.opacity, width = 0, height = 0, angle = 0, groupIds = [], frameId = null, roundness = null, boundElements = null, link = null, locked = DEFAULT_ELEMENT_PROPS.locked, ...rest }) => {
|
|
10
|
+
const _newElementBase = (type, { x, y, strokeColor = DEFAULT_ELEMENT_PROPS.strokeColor, backgroundColor = DEFAULT_ELEMENT_PROPS.backgroundColor, fillStyle = DEFAULT_ELEMENT_PROPS.fillStyle, strokeWidth = DEFAULT_ELEMENT_PROPS.strokeWidth, strokeStyle = DEFAULT_ELEMENT_PROPS.strokeStyle, roughness = DEFAULT_ELEMENT_PROPS.roughness, opacity = DEFAULT_ELEMENT_PROPS.opacity, width = 0, height = 0, angle = 0, groupIds = [], frameId = null, index = null, roundness = null, boundElements = null, link = null, locked = DEFAULT_ELEMENT_PROPS.locked, ...rest }) => {
|
|
11
11
|
// assign type to guard against excess properties
|
|
12
12
|
const element = {
|
|
13
13
|
id: rest.id || randomId(),
|
|
@@ -26,6 +26,7 @@ const _newElementBase = (type, { x, y, strokeColor = DEFAULT_ELEMENT_PROPS.strok
|
|
|
26
26
|
opacity,
|
|
27
27
|
groupIds,
|
|
28
28
|
frameId,
|
|
29
|
+
index,
|
|
29
30
|
roundness,
|
|
30
31
|
seed: rest.seed ?? randomInteger(),
|
|
31
32
|
version: rest.version || 1,
|
|
@@ -4,6 +4,6 @@ import { PointerDownState } from "../types";
|
|
|
4
4
|
export declare const normalizeAngle: (angle: number) => number;
|
|
5
5
|
export declare const transformElements: (originalElements: PointerDownState["originalElements"], transformHandleType: MaybeTransformHandleType, selectedElements: readonly NonDeletedExcalidrawElement[], elementsMap: ElementsMap, shouldRotateWithDiscreteAngle: boolean, shouldResizeFromCenter: boolean, shouldMaintainAspectRatio: boolean, pointerX: number, pointerY: number, centerX: number, centerY: number) => boolean;
|
|
6
6
|
export declare const resizeSingleElement: (originalElements: PointerDownState["originalElements"], shouldMaintainAspectRatio: boolean, element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, transformHandleDirection: TransformHandleDirection, shouldResizeFromCenter: boolean, pointerX: number, pointerY: number) => void;
|
|
7
|
-
export declare const resizeMultipleElements: (originalElements: PointerDownState["originalElements"], selectedElements: readonly NonDeletedExcalidrawElement[], elementsMap: ElementsMap, transformHandleType:
|
|
7
|
+
export declare const resizeMultipleElements: (originalElements: PointerDownState["originalElements"], selectedElements: readonly NonDeletedExcalidrawElement[], elementsMap: ElementsMap, transformHandleType: TransformHandleDirection, shouldResizeFromCenter: boolean, shouldMaintainAspectRatio: boolean, pointerX: number, pointerY: number) => void;
|
|
8
8
|
export declare const getResizeOffsetXY: (transformHandleType: MaybeTransformHandleType, selectedElements: NonDeletedExcalidrawElement[], elementsMap: ElementsMap, x: number, y: number) => [number, number];
|
|
9
9
|
export declare const getResizeArrowDirection: (transformHandleType: MaybeTransformHandleType, element: NonDeleted<ExcalidrawLinearElement>) => "origin" | "end";
|