@excalidraw/excalidraw 0.17.1-550a388 → 0.17.1-62228e0
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 +18 -2
- package/dist/browser/dev/excalidraw-assets-dev/CascadiaMono-Regular-NWCXRPUG.woff2 +0 -0
- package/dist/browser/dev/excalidraw-assets-dev/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
- package/dist/browser/dev/excalidraw-assets-dev/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
- package/dist/browser/dev/excalidraw-assets-dev/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
- package/dist/browser/dev/excalidraw-assets-dev/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
- package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-ACFH36JV.js → blockDiagram-91b80b7a-H47FTXHA.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-QZ27YR47.js → c4Diagram-b2a90758-NNJK6GKC.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-HO2HMSK7.js → chunk-4KQVEBHW.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-USGV265L.js → chunk-53YI56GV.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-EDFX3S7X.js → chunk-A2WCJI4I.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-IX4V72YG.js → chunk-EFLPX7NE.js} +6 -6
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-MXVETLVM.js → chunk-JYIQCNWV.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-YZIOORVX.js → chunk-LVIQQW6F.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-6U7GQNJT.js → chunk-PXLO3FOU.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-7DACDEY3.js → chunk-TO2AW5PW.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-NJ77ZFNJ.js → chunk-VURILHLY.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-AK7SWNLN.js → chunk-XDYNNNIZ.js} +48 -10
- package/dist/browser/dev/excalidraw-assets-dev/chunk-XDYNNNIZ.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-2T2GU7NF.js → chunk-ZAYGSUHF.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-Z3PH3V2B.js → chunk-ZQR5ML6Y.js} +26 -26
- package/dist/browser/dev/excalidraw-assets-dev/chunk-ZQR5ML6Y.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-RWZVJAQU.js → chunk-ZYC7SDAJ.js} +13172 -7476
- package/dist/browser/dev/excalidraw-assets-dev/chunk-ZYC7SDAJ.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-QSLMH4JW.js → classDiagram-30eddba6-CUYIJICN.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-DY4DYQ5P.js → classDiagram-v2-f2df5561-K6WW6K73.js} +8 -8
- package/dist/browser/dev/excalidraw-assets-dev/{dist-Z46EOVOL.js → dist-DNSPZDOZ.js} +67 -33
- package/dist/browser/dev/excalidraw-assets-dev/dist-DNSPZDOZ.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{en-5TCZHGGJ.js → en-RAFN4KPD.js} +8 -2
- package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-SOOJRTCB.js → erDiagram-47591fe2-XGAD7EEP.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-AHGL4KPK.js → flowDiagram-5540d9b9-B6EOVNNO.js} +9 -9
- package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-56LDZZWY.js → flowDiagram-v2-3b53844e-NUG24FJH.js} +9 -9
- package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-27LUKRI6.js → flowchart-elk-definition-5fe447d6-25Y7PCBL.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-EHGYGNG6.js → ganttDiagram-9a3bba1f-GNL6ZDTC.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-AJQNBDW5.js → gitGraphDiagram-96e6b4ee-HNW52NVO.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{image-OFRRV5MB.css → image-WDHYGKKP.css} +1 -1
- package/dist/browser/dev/excalidraw-assets-dev/image-WDHYGKKP.css.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{image-EDKQZH7Z.js → image-ZNLDWTK3.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-SWLLQVES.js → infoDiagram-bcd20f53-FWEUVFLT.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-7UAVCWOZ.js → journeyDiagram-4fe6b3dc-RZIUI7UG.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-SROW5KGM.js → mindmap-definition-f354de21-GBVN45GU.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-QKCI6NCB.js → pieDiagram-79897490-ECENNII6.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-LNYJZFC5.js → quadrantDiagram-62f64e94-ZMEOFVNL.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-ZZD7ZHFA.js → requirementDiagram-05bf5f74-FHZSFHCR.js} +4 -4
- package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-L75ZZ4UM.js → sankeyDiagram-97764748-VDKIKTA6.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-6PCU7TDK.js → sequenceDiagram-acc0e65c-6JUSPVKX.js} +3 -3
- package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-WM76WOPR.js → stateDiagram-0ff1cf1a-L3AKWENF.js} +5 -5
- package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-N4HZW3O2.js → stateDiagram-v2-9a9d610d-NU3GGMCH.js} +8 -8
- package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-ZHGCAXGP.js → timeline-definition-fea2a41d-JGP7XCHW.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-2DLOVRAZ.js → xychartDiagram-ab372869-HLFHHF2I.js} +3 -3
- package/dist/browser/dev/index.css +668 -191
- package/dist/browser/dev/index.css.map +3 -3
- package/dist/browser/dev/index.js +14529 -9273
- package/dist/browser/dev/index.js.map +4 -4
- package/dist/browser/prod/excalidraw-assets/CascadiaMono-Regular-NWCXRPUG.woff2 +0 -0
- package/dist/browser/prod/excalidraw-assets/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
- package/dist/browser/prod/excalidraw-assets/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
- package/dist/browser/prod/excalidraw-assets/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
- package/dist/browser/prod/excalidraw-assets/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
- package/dist/browser/prod/excalidraw-assets/{blockDiagram-91b80b7a-ONPS22AM.js → blockDiagram-91b80b7a-FVCRVGN5.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{c4Diagram-b2a90758-XMIQY7ZT.js → c4Diagram-b2a90758-56CXO7GA.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-GCHQBOKV.js → chunk-635MQ3CK.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-P5M3G2RP.js → chunk-AIKXYJX3.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-E2YLWFZX.js → chunk-CR7VMNWC.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/chunk-F3JN4YS2.js +61 -0
- package/dist/browser/prod/excalidraw-assets/{chunk-WEYK4A2L.js → chunk-FFF2CSVG.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-R3HAIP6R.js → chunk-G4WDCSPE.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-HFOXJM22.js → chunk-HKZSHFLX.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-XIMFFJTE.js → chunk-IKCDYWMW.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-AHLLBBVJ.js → chunk-L5DS24G6.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-CQJF3C6G.js → chunk-MUNOKHUD.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-CTYINSWT.js → chunk-MXFM2KIK.js} +5 -5
- package/dist/browser/prod/excalidraw-assets/{chunk-NI6SYCUG.js → chunk-QOQYOOQ4.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{chunk-I2PZFXTK.js → chunk-ZTIWFPBM.js} +21 -21
- package/dist/browser/prod/excalidraw-assets/{classDiagram-30eddba6-IEJXXCVX.js → classDiagram-30eddba6-BCUTAUMD.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{classDiagram-v2-f2df5561-7LZDSWOS.js → classDiagram-v2-f2df5561-6SOXSGQ2.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/dist-NLUQPPQQ.js +7 -0
- package/dist/browser/prod/excalidraw-assets/en-SQSS4H2K.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{erDiagram-47591fe2-E5V666CF.js → erDiagram-47591fe2-RE6HB7RM.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{flowDiagram-5540d9b9-GMBRCYVF.js → flowDiagram-5540d9b9-ZNJZBERW.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{flowDiagram-v2-3b53844e-Z4HUWP6B.js → flowDiagram-v2-3b53844e-LY44JLQJ.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{flowchart-elk-definition-5fe447d6-5ZCYTX5N.js → flowchart-elk-definition-5fe447d6-TMTJ6Z7O.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{ganttDiagram-9a3bba1f-WM32OMT5.js → ganttDiagram-9a3bba1f-5O6EA6LX.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{gitGraphDiagram-96e6b4ee-CAKZ2U6E.js → gitGraphDiagram-96e6b4ee-UHYNM5DI.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/image-CMH7O36X.js +1 -0
- package/dist/browser/prod/excalidraw-assets/{infoDiagram-bcd20f53-MUIKXGC4.js → infoDiagram-bcd20f53-BP77NQEH.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{journeyDiagram-4fe6b3dc-NYRV4HK2.js → journeyDiagram-4fe6b3dc-XMGKCMES.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{mindmap-definition-f354de21-MY55DRSM.js → mindmap-definition-f354de21-ZQRRBRWF.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{pieDiagram-79897490-47L6J6L2.js → pieDiagram-79897490-IGXEC2KX.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{quadrantDiagram-62f64e94-DF5C2GDT.js → quadrantDiagram-62f64e94-WTHHDYJL.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{requirementDiagram-05bf5f74-C4IMUBDN.js → requirementDiagram-05bf5f74-MV4OFRVW.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{sankeyDiagram-97764748-YHW7EUST.js → sankeyDiagram-97764748-ZGYUHEJT.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{sequenceDiagram-acc0e65c-H3XEHT32.js → sequenceDiagram-acc0e65c-IBSENK6W.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{stateDiagram-0ff1cf1a-Z5WB6Q3P.js → stateDiagram-0ff1cf1a-DB73XNZH.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{stateDiagram-v2-9a9d610d-T7OZETQC.js → stateDiagram-v2-9a9d610d-2OOBUPNR.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{timeline-definition-fea2a41d-VVC22BWF.js → timeline-definition-fea2a41d-P3NQQVDU.js} +1 -1
- package/dist/browser/prod/excalidraw-assets/{xychartDiagram-ab372869-JAXODQF7.js → xychartDiagram-ab372869-HI3XLK3Y.js} +1 -1
- package/dist/browser/prod/index.css +1 -1
- package/dist/browser/prod/index.js +70 -51
- package/dist/dev/CascadiaMono-Regular-NWCXRPUG.woff2 +0 -0
- package/dist/dev/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
- package/dist/dev/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
- package/dist/dev/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
- package/dist/dev/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
- package/dist/{prod/en-II4GK66F.json → dev/en-HDAPS7XK.json} +41 -9
- package/dist/dev/index.css +668 -191
- package/dist/dev/index.css.map +3 -3
- package/dist/dev/index.js +22026 -16675
- package/dist/dev/index.js.map +4 -4
- package/dist/excalidraw/actions/actionAddToLibrary.d.ts +22 -10
- package/dist/excalidraw/actions/actionAddToLibrary.js +4 -3
- package/dist/excalidraw/actions/actionAlign.d.ts +22 -22
- package/dist/excalidraw/actions/actionAlign.js +7 -6
- package/dist/excalidraw/actions/actionBoundText.d.ts +22 -14
- package/dist/excalidraw/actions/actionBoundText.js +11 -5
- package/dist/excalidraw/actions/actionCanvas.d.ts +124 -76
- package/dist/excalidraw/actions/actionCanvas.js +20 -15
- package/dist/excalidraw/actions/actionClipboard.d.ts +66 -38
- package/dist/excalidraw/actions/actionClipboard.js +14 -13
- package/dist/excalidraw/actions/actionDeleteSelected.d.ts +28 -16
- package/dist/excalidraw/actions/actionDeleteSelected.js +6 -3
- package/dist/excalidraw/actions/actionDistribute.d.ts +10 -10
- package/dist/excalidraw/actions/actionDistribute.js +3 -2
- package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +7 -8
- package/dist/excalidraw/actions/actionDuplicateSelection.js +7 -3
- package/dist/excalidraw/actions/actionElementLock.d.ts +21 -13
- package/dist/excalidraw/actions/actionElementLock.js +3 -2
- package/dist/excalidraw/actions/actionExport.d.ts +87 -51
- package/dist/excalidraw/actions/actionExport.js +15 -11
- package/dist/excalidraw/actions/actionFinalize.d.ts +21 -13
- package/dist/excalidraw/actions/actionFinalize.js +9 -5
- package/dist/excalidraw/actions/actionFlip.d.ts +10 -10
- package/dist/excalidraw/actions/actionFlip.js +12 -12
- package/dist/excalidraw/actions/actionFrame.d.ts +193 -24
- package/dist/excalidraw/actions/actionFrame.js +7 -6
- package/dist/excalidraw/actions/actionGroup.d.ts +28 -20
- package/dist/excalidraw/actions/actionGroup.js +9 -11
- package/dist/excalidraw/actions/actionHistory.d.ts +4 -3
- package/dist/excalidraw/actions/actionHistory.js +27 -28
- package/dist/excalidraw/actions/actionLinearEditor.d.ts +12 -6
- package/dist/excalidraw/actions/actionLinearEditor.js +21 -5
- package/dist/excalidraw/actions/actionLink.d.ts +11 -7
- package/dist/excalidraw/actions/actionLink.js +2 -1
- package/dist/excalidraw/actions/actionMenu.d.ts +26 -14
- package/dist/excalidraw/actions/actionMenu.js +4 -3
- package/dist/excalidraw/actions/actionNavigate.d.ts +16 -8
- package/dist/excalidraw/actions/actionNavigate.js +3 -2
- package/dist/excalidraw/actions/actionProperties.d.ts +272 -62
- package/dist/excalidraw/actions/actionProperties.js +261 -59
- package/dist/excalidraw/actions/actionSelectAll.d.ts +11 -7
- package/dist/excalidraw/actions/actionSelectAll.js +2 -1
- package/dist/excalidraw/actions/actionStyles.d.ts +17 -13
- package/dist/excalidraw/actions/actionStyles.js +7 -5
- package/dist/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
- package/dist/excalidraw/actions/actionTextAutoResize.js +38 -0
- package/dist/excalidraw/actions/actionToggleGridMode.d.ts +13 -7
- package/dist/excalidraw/actions/actionToggleGridMode.js +6 -2
- package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +10 -6
- package/dist/excalidraw/actions/actionToggleObjectsSnapMode.js +2 -1
- package/dist/excalidraw/actions/actionToggleStats.d.ts +11 -6
- package/dist/excalidraw/actions/actionToggleStats.js +6 -4
- package/dist/excalidraw/actions/actionToggleViewMode.d.ts +10 -6
- package/dist/excalidraw/actions/actionToggleViewMode.js +2 -1
- package/dist/excalidraw/actions/actionToggleZenMode.d.ts +10 -6
- package/dist/excalidraw/actions/actionToggleZenMode.js +2 -1
- package/dist/excalidraw/actions/actionZindex.d.ts +23 -19
- package/dist/excalidraw/actions/actionZindex.js +9 -4
- package/dist/excalidraw/actions/manager.d.ts +5 -5
- package/dist/excalidraw/actions/register.d.ts +1 -1
- package/dist/excalidraw/actions/shortcuts.d.ts +2 -2
- package/dist/excalidraw/actions/shortcuts.js +1 -1
- package/dist/excalidraw/actions/types.d.ts +8 -8
- package/dist/excalidraw/align.d.ts +1 -1
- package/dist/excalidraw/analytics.js +9 -7
- package/dist/excalidraw/animated-trail.d.ts +2 -2
- package/dist/excalidraw/appState.d.ts +9 -6
- package/dist/excalidraw/appState.js +8 -3
- package/dist/excalidraw/change.d.ts +191 -0
- package/dist/excalidraw/change.js +901 -0
- package/dist/excalidraw/charts.d.ts +1 -1
- package/dist/excalidraw/clients.d.ts +2 -2
- package/dist/excalidraw/clients.js +1 -1
- package/dist/excalidraw/clipboard.d.ts +3 -3
- package/dist/excalidraw/colors.d.ts +1 -1
- package/dist/excalidraw/components/Actions.d.ts +3 -3
- package/dist/excalidraw/components/Actions.js +10 -7
- package/dist/excalidraw/components/App.d.ts +26 -16
- package/dist/excalidraw/components/App.js +490 -217
- package/dist/excalidraw/components/ButtonIcon.d.ts +15 -0
- package/dist/excalidraw/components/ButtonIcon.js +8 -0
- package/dist/excalidraw/components/ButtonIconSelect.js +2 -3
- package/dist/excalidraw/components/ButtonSeparator.d.ts +2 -0
- package/dist/excalidraw/components/ButtonSeparator.js +7 -0
- package/dist/excalidraw/components/CheckboxItem.js +1 -1
- package/dist/excalidraw/components/ColorPicker/ColorInput.d.ts +1 -1
- package/dist/excalidraw/components/ColorPicker/ColorInput.js +1 -1
- package/dist/excalidraw/components/ColorPicker/ColorPicker.d.ts +4 -4
- package/dist/excalidraw/components/ColorPicker/ColorPicker.js +48 -80
- package/dist/excalidraw/components/ColorPicker/Picker.d.ts +3 -3
- package/dist/excalidraw/components/ColorPicker/Picker.js +1 -1
- package/dist/excalidraw/components/ColorPicker/PickerColorList.d.ts +1 -1
- package/dist/excalidraw/components/ColorPicker/PickerHeading.d.ts +1 -1
- package/dist/excalidraw/components/ColorPicker/ShadeList.d.ts +1 -1
- package/dist/excalidraw/components/ColorPicker/TopPicks.d.ts +1 -1
- package/dist/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +2 -2
- package/dist/excalidraw/components/ColorPicker/colorPickerUtils.js +1 -1
- package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
- package/dist/excalidraw/components/ColorPicker/keyboardNavHandlers.js +1 -1
- package/dist/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -1
- package/dist/excalidraw/components/CommandPalette/CommandPalette.js +33 -18
- package/dist/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -1
- package/dist/excalidraw/components/CommandPalette/types.d.ts +3 -3
- package/dist/excalidraw/components/ConfirmDialog.d.ts +1 -1
- package/dist/excalidraw/components/ContextMenu.d.ts +2 -2
- package/dist/excalidraw/components/ContextMenu.js +2 -2
- package/dist/excalidraw/components/DarkModeToggle.d.ts +1 -1
- package/dist/excalidraw/components/DarkModeToggle.js +3 -1
- package/dist/excalidraw/components/DefaultSidebar.d.ts +2 -2
- package/dist/excalidraw/components/Dialog.js +1 -1
- package/dist/excalidraw/components/DialogActionButton.d.ts +1 -1
- package/dist/excalidraw/components/EyeDropper.d.ts +2 -2
- package/dist/excalidraw/components/FollowMode/FollowMode.d.ts +1 -1
- package/dist/excalidraw/components/FollowMode/FollowMode.js +1 -1
- package/dist/excalidraw/components/FontPicker/FontPicker.d.ts +21 -0
- package/dist/excalidraw/components/FontPicker/FontPicker.js +49 -0
- package/dist/excalidraw/components/FontPicker/FontPickerList.d.ts +25 -0
- package/dist/excalidraw/components/FontPicker/FontPickerList.js +119 -0
- package/dist/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +7 -0
- package/dist/excalidraw/components/FontPicker/FontPickerTrigger.js +13 -0
- package/dist/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +14 -0
- package/dist/excalidraw/components/FontPicker/keyboardNavHandlers.js +38 -0
- package/dist/excalidraw/components/HelpDialog.js +9 -7
- package/dist/excalidraw/components/HintViewer.d.ts +1 -1
- package/dist/excalidraw/components/IconPicker.js +2 -2
- package/dist/excalidraw/components/ImageExportDialog.d.ts +1 -1
- package/dist/excalidraw/components/InitializeApp.d.ts +2 -2
- package/dist/excalidraw/components/JSONExportDialog.d.ts +3 -3
- package/dist/excalidraw/components/LayerUI.d.ts +4 -4
- package/dist/excalidraw/components/LayerUI.js +10 -7
- package/dist/excalidraw/components/LibraryMenu.d.ts +2 -2
- package/dist/excalidraw/components/LibraryMenuBrowseButton.d.ts +1 -1
- package/dist/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
- package/dist/excalidraw/components/LibraryMenuHeaderContent.d.ts +2 -2
- package/dist/excalidraw/components/LibraryMenuItems.d.ts +1 -1
- package/dist/excalidraw/components/LibraryMenuSection.d.ts +5 -4
- package/dist/excalidraw/components/LibraryUnit.d.ts +2 -2
- package/dist/excalidraw/components/LoadingMessage.d.ts +1 -1
- package/dist/excalidraw/components/MagicSettings.js +2 -2
- package/dist/excalidraw/components/MobileMenu.d.ts +3 -3
- package/dist/excalidraw/components/MobileMenu.js +2 -6
- package/dist/excalidraw/components/Modal.d.ts +1 -1
- package/dist/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- package/dist/excalidraw/components/PasteChartDialog.d.ts +1 -1
- package/dist/excalidraw/components/PasteChartDialog.js +1 -1
- package/dist/excalidraw/components/PropertiesPopover.d.ts +15 -0
- package/dist/excalidraw/components/PropertiesPopover.js +31 -0
- package/dist/excalidraw/components/PublishLibrary.d.ts +1 -1
- package/dist/excalidraw/components/QuickSearch.d.ts +9 -0
- package/dist/excalidraw/components/QuickSearch.js +8 -0
- package/dist/excalidraw/components/RadioGroup.d.ts +2 -1
- package/dist/excalidraw/components/RadioGroup.js +1 -1
- package/dist/excalidraw/components/SVGLayer.d.ts +1 -1
- package/dist/excalidraw/components/ScrollableList.d.ts +9 -0
- package/dist/excalidraw/components/ScrollableList.js +8 -0
- package/dist/excalidraw/components/Sidebar/Sidebar.d.ts +2 -2
- package/dist/excalidraw/components/Sidebar/Sidebar.js +1 -1
- package/dist/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -1
- package/dist/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -1
- package/dist/excalidraw/components/Sidebar/SidebarTrigger.d.ts +1 -1
- package/dist/excalidraw/components/Sidebar/common.d.ts +1 -1
- package/dist/excalidraw/components/Stack.d.ts +2 -2
- package/dist/excalidraw/components/Stats/Angle.d.ts +12 -0
- package/dist/excalidraw/components/Stats/Angle.js +52 -0
- package/dist/excalidraw/components/Stats/Collapsible.d.ts +9 -0
- package/dist/excalidraw/components/Stats/Collapsible.js +12 -0
- package/dist/excalidraw/components/Stats/Dimension.d.ts +12 -0
- package/dist/excalidraw/components/Stats/Dimension.js +67 -0
- package/dist/excalidraw/components/Stats/DragInput.d.ts +32 -0
- package/dist/excalidraw/components/Stats/DragInput.js +174 -0
- package/dist/excalidraw/components/Stats/FontSize.d.ts +12 -0
- package/dist/excalidraw/components/Stats/FontSize.js +50 -0
- package/dist/excalidraw/components/Stats/MultiAngle.d.ts +12 -0
- package/dist/excalidraw/components/Stats/MultiAngle.js +66 -0
- package/dist/excalidraw/components/Stats/MultiDimension.d.ts +15 -0
- package/dist/excalidraw/components/Stats/MultiDimension.js +197 -0
- package/dist/excalidraw/components/Stats/MultiFontSize.d.ts +13 -0
- package/dist/excalidraw/components/Stats/MultiFontSize.js +72 -0
- package/dist/excalidraw/components/Stats/MultiPosition.d.ts +15 -0
- package/dist/excalidraw/components/Stats/MultiPosition.js +100 -0
- package/dist/excalidraw/components/Stats/Position.d.ts +13 -0
- package/dist/excalidraw/components/Stats/Position.js +39 -0
- package/dist/excalidraw/components/Stats/index.d.ts +16 -0
- package/dist/excalidraw/components/Stats/index.js +78 -0
- package/dist/excalidraw/components/Stats/utils.d.ts +25 -0
- package/dist/excalidraw/components/Stats/utils.js +158 -0
- package/dist/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +1 -1
- package/dist/excalidraw/components/TTDDialog/MermaidToExcalidraw.js +6 -2
- package/dist/excalidraw/components/TTDDialog/TTDDialog.js +2 -2
- package/dist/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +1 -1
- package/dist/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +1 -1
- package/dist/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +1 -1
- package/dist/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +1 -1
- package/dist/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -1
- package/dist/excalidraw/components/TTDDialog/common.d.ts +5 -5
- package/dist/excalidraw/components/TTDDialog/common.js +3 -7
- package/dist/excalidraw/components/TextField.d.ts +1 -1
- package/dist/excalidraw/components/Toast.d.ts +1 -1
- package/dist/excalidraw/components/ToolButton.d.ts +4 -2
- package/dist/excalidraw/components/ToolButton.js +1 -1
- package/dist/excalidraw/components/Trans.d.ts +1 -1
- package/dist/excalidraw/components/UserList.d.ts +1 -1
- package/dist/excalidraw/components/UserList.js +22 -22
- package/dist/excalidraw/components/canvases/InteractiveCanvas.d.ts +5 -3
- package/dist/excalidraw/components/canvases/InteractiveCanvas.js +5 -2
- package/dist/excalidraw/components/canvases/StaticCanvas.d.ts +2 -2
- package/dist/excalidraw/components/canvases/StaticCanvas.js +3 -2
- package/dist/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +12 -3
- package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +24 -4
- package/dist/excalidraw/components/dropdownMenu/DropdownMenuItem.js +55 -14
- package/dist/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +2 -1
- package/dist/excalidraw/components/dropdownMenu/DropdownMenuItemContent.js +2 -2
- package/dist/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +18 -0
- package/dist/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.js +9 -0
- package/dist/excalidraw/components/dropdownMenu/common.d.ts +1 -1
- package/dist/excalidraw/components/dropdownMenu/common.js +3 -2
- package/dist/excalidraw/components/footer/Footer.d.ts +2 -2
- package/dist/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
- package/dist/excalidraw/components/hyperlink/Hyperlink.js +3 -3
- package/dist/excalidraw/components/hyperlink/helpers.d.ts +3 -3
- package/dist/excalidraw/components/hyperlink/helpers.js +2 -3
- package/dist/excalidraw/components/icons.d.ts +10 -1
- package/dist/excalidraw/components/icons.js +27 -5
- package/dist/excalidraw/components/main-menu/DefaultItems.d.ts +12 -2
- package/dist/excalidraw/components/main-menu/DefaultItems.js +38 -7
- package/dist/excalidraw/components/main-menu/MainMenu.d.ts +12 -3
- package/dist/excalidraw/components/welcome-screen/WelcomeScreen.Center.js +2 -2
- package/dist/excalidraw/components/welcome-screen/WelcomeScreen.Hints.js +3 -3
- package/dist/excalidraw/constants.d.ts +24 -6
- package/dist/excalidraw/constants.js +29 -7
- package/dist/excalidraw/context/ui-appState.d.ts +1 -1
- package/dist/excalidraw/cursor.d.ts +1 -1
- package/dist/excalidraw/data/EditorLocalStorage.d.ts +2 -2
- package/dist/excalidraw/data/blob.d.ts +5 -5
- package/dist/excalidraw/data/filesystem.d.ts +2 -1
- package/dist/excalidraw/data/index.d.ts +4 -4
- package/dist/excalidraw/data/json.d.ts +3 -3
- package/dist/excalidraw/data/library.d.ts +3 -3
- package/dist/excalidraw/data/magic.d.ts +3 -3
- package/dist/excalidraw/data/magic.js +2 -1
- package/dist/excalidraw/data/reconcile.d.ts +6 -0
- package/dist/excalidraw/data/reconcile.js +49 -0
- package/dist/excalidraw/data/resave.d.ts +2 -2
- package/dist/excalidraw/data/restore.d.ts +5 -5
- package/dist/excalidraw/data/restore.js +25 -10
- package/dist/excalidraw/data/transform.d.ts +4 -4
- package/dist/excalidraw/data/transform.js +15 -5
- package/dist/excalidraw/data/types.d.ts +3 -3
- package/dist/excalidraw/data/url.d.ts +1 -0
- package/dist/excalidraw/data/url.js +4 -1
- package/dist/excalidraw/element/ElementCanvasButtons.d.ts +1 -1
- package/dist/excalidraw/element/binding.d.ts +49 -8
- package/dist/excalidraw/element/binding.js +716 -153
- package/dist/excalidraw/element/bounds.d.ts +3 -4
- 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/containerCache.d.ts +1 -1
- package/dist/excalidraw/element/dragElements.d.ts +4 -4
- package/dist/excalidraw/element/dragElements.js +27 -3
- package/dist/excalidraw/element/embeddable.d.ts +15 -8
- package/dist/excalidraw/element/embeddable.js +98 -62
- package/dist/excalidraw/element/image.d.ts +2 -2
- package/dist/excalidraw/element/index.d.ts +2 -3
- package/dist/excalidraw/element/index.js +1 -2
- package/dist/excalidraw/element/linearElementEditor.d.ts +18 -14
- package/dist/excalidraw/element/linearElementEditor.js +12 -7
- package/dist/excalidraw/element/mutateElement.d.ts +4 -5
- package/dist/excalidraw/element/mutateElement.js +5 -3
- package/dist/excalidraw/element/newElement.d.ts +6 -9
- package/dist/excalidraw/element/newElement.js +21 -17
- package/dist/excalidraw/element/resizeElements.d.ts +12 -4
- package/dist/excalidraw/element/resizeElements.js +174 -98
- package/dist/excalidraw/element/resizeTest.d.ts +7 -7
- package/dist/excalidraw/element/resizeTest.js +53 -8
- package/dist/excalidraw/element/showSelectedShapeActions.d.ts +2 -2
- package/dist/excalidraw/element/sizeHelpers.d.ts +2 -2
- package/dist/excalidraw/element/sizeHelpers.js +3 -0
- package/dist/excalidraw/element/sortElements.d.ts +1 -1
- package/dist/excalidraw/element/textElement.d.ts +7 -30
- package/dist/excalidraw/element/textElement.js +68 -144
- package/dist/excalidraw/element/textWysiwyg.d.ts +12 -6
- package/dist/excalidraw/element/textWysiwyg.js +75 -62
- package/dist/excalidraw/element/transformHandles.d.ts +24 -6
- package/dist/excalidraw/element/transformHandles.js +22 -11
- package/dist/excalidraw/element/typeChecks.d.ts +5 -5
- package/dist/excalidraw/element/types.d.ts +33 -10
- package/dist/excalidraw/emitter.d.ts +1 -1
- package/dist/excalidraw/errors.d.ts +3 -0
- package/dist/excalidraw/errors.js +3 -0
- package/dist/excalidraw/fonts/ExcalidrawFont.d.ts +17 -0
- package/dist/excalidraw/fonts/ExcalidrawFont.js +50 -0
- package/dist/excalidraw/fonts/index.d.ts +45 -0
- package/dist/excalidraw/fonts/index.js +202 -0
- package/dist/excalidraw/fonts/metadata.d.ts +34 -0
- package/dist/excalidraw/fonts/metadata.js +90 -0
- package/dist/excalidraw/fractionalIndex.d.ts +40 -0
- package/dist/excalidraw/fractionalIndex.js +239 -0
- package/dist/excalidraw/frame.d.ts +4 -4
- package/dist/excalidraw/gatransforms.d.ts +1 -1
- package/dist/excalidraw/gesture.d.ts +1 -1
- package/dist/excalidraw/groups.d.ts +6 -4
- package/dist/excalidraw/groups.js +17 -0
- package/dist/excalidraw/history.d.ts +35 -47
- package/dist/excalidraw/history.js +100 -167
- package/dist/excalidraw/hooks/useCreatePortalContainer.js +2 -1
- package/dist/excalidraw/hooks/useEmitter.d.ts +2 -0
- package/dist/excalidraw/hooks/useEmitter.js +13 -0
- package/dist/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/excalidraw/i18n.d.ts +1 -1
- package/dist/excalidraw/index.d.ts +4 -2
- package/dist/excalidraw/index.js +5 -3
- package/dist/excalidraw/jotai.d.ts +1 -1
- package/dist/excalidraw/laser-trails.d.ts +3 -2
- package/dist/excalidraw/locales/en.json +41 -9
- package/dist/excalidraw/math.d.ts +4 -2
- package/dist/excalidraw/math.js +6 -0
- package/dist/excalidraw/mermaid.d.ts +2 -0
- package/dist/excalidraw/mermaid.js +28 -0
- package/dist/excalidraw/points.d.ts +1 -1
- package/dist/excalidraw/queue.d.ts +1 -1
- package/dist/excalidraw/renderer/helpers.d.ts +2 -2
- package/dist/excalidraw/renderer/helpers.js +2 -2
- package/dist/excalidraw/renderer/interactiveScene.d.ts +2 -2
- package/dist/excalidraw/renderer/interactiveScene.js +38 -11
- package/dist/excalidraw/renderer/renderElement.d.ts +6 -4
- package/dist/excalidraw/renderer/renderElement.js +81 -61
- package/dist/excalidraw/renderer/renderSnaps.d.ts +1 -1
- package/dist/excalidraw/renderer/renderSnaps.js +2 -1
- package/dist/excalidraw/renderer/staticScene.d.ts +1 -1
- package/dist/excalidraw/renderer/staticScene.js +14 -3
- package/dist/excalidraw/renderer/staticSvgScene.d.ts +4 -4
- package/dist/excalidraw/renderer/staticSvgScene.js +12 -1
- package/dist/excalidraw/scene/Renderer.d.ts +4 -4
- package/dist/excalidraw/scene/Renderer.js +2 -3
- package/dist/excalidraw/scene/Scene.d.ts +22 -12
- package/dist/excalidraw/scene/Scene.js +47 -23
- package/dist/excalidraw/scene/Shape.d.ts +1 -1
- package/dist/excalidraw/scene/ShapeCache.d.ts +4 -4
- package/dist/excalidraw/scene/comparisons.d.ts +2 -2
- package/dist/excalidraw/scene/export.d.ts +3 -2
- package/dist/excalidraw/scene/export.js +40 -29
- package/dist/excalidraw/scene/scroll.d.ts +2 -2
- package/dist/excalidraw/scene/scrollbars.d.ts +3 -3
- package/dist/excalidraw/scene/selection.d.ts +2 -2
- package/dist/excalidraw/scene/types.d.ts +7 -8
- package/dist/excalidraw/scene/zoom.d.ts +1 -1
- package/dist/excalidraw/shapes.d.ts +7 -0
- package/dist/excalidraw/shapes.js +40 -0
- package/dist/excalidraw/snapping.d.ts +4 -4
- package/dist/excalidraw/snapping.js +2 -1
- package/dist/excalidraw/store.d.ts +129 -0
- package/dist/excalidraw/store.js +296 -0
- package/dist/excalidraw/types.d.ts +45 -22
- package/dist/excalidraw/utils.d.ts +20 -4
- package/dist/excalidraw/utils.js +29 -0
- package/dist/excalidraw/zindex.d.ts +4 -4
- package/dist/excalidraw/zindex.js +9 -13
- package/dist/prod/CascadiaMono-Regular-NWCXRPUG.woff2 +0 -0
- package/dist/prod/ComicShanns-Regular-6TOETDFT.woff2 +0 -0
- package/dist/prod/Excalifont-Regular-CPKEUDVM.woff2 +0 -0
- package/dist/prod/LiberationSans-Regular-ZQD73GJM.woff2 +0 -0
- package/dist/prod/Virgil-Regular-YHAB2VGJ.woff2 +0 -0
- package/dist/{dev/en-II4GK66F.json → prod/en-HDAPS7XK.json} +41 -9
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +47 -53
- package/dist/utils/bbox.d.ts +2 -2
- package/dist/utils/collision.d.ts +4 -0
- package/dist/utils/collision.js +48 -0
- package/dist/utils/export.d.ts +4 -3
- package/dist/utils/export.js +2 -1
- 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/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/withinBounds.d.ts +1 -1
- package/history.ts +163 -218
- package/package.json +3 -2
- package/dist/browser/dev/Cascadia-CYPE3OJC.woff2 +0 -0
- package/dist/browser/dev/Virgil-UZN6MUT6.woff2 +0 -0
- package/dist/browser/dev/excalidraw-assets-dev/chunk-AK7SWNLN.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/chunk-RWZVJAQU.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/chunk-Z3PH3V2B.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/dist-Z46EOVOL.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/image-OFRRV5MB.css.map +0 -7
- package/dist/browser/prod/Cascadia-CYPE3OJC.woff2 +0 -0
- package/dist/browser/prod/Virgil-UZN6MUT6.woff2 +0 -0
- package/dist/browser/prod/excalidraw-assets/chunk-LL4GORAM.js +0 -55
- package/dist/browser/prod/excalidraw-assets/dist-PIPZXALV.js +0 -6
- package/dist/browser/prod/excalidraw-assets/en-LROPV2RN.js +0 -1
- package/dist/browser/prod/excalidraw-assets/image-EFCJDJH3.js +0 -1
- package/dist/dev/Cascadia-CYPE3OJC.woff2 +0 -0
- package/dist/dev/Virgil-UZN6MUT6.woff2 +0 -0
- package/dist/excalidraw/components/Stats.d.ts +0 -11
- package/dist/excalidraw/components/Stats.js +0 -13
- package/dist/excalidraw/scene/Fonts.d.ts +0 -21
- package/dist/excalidraw/scene/Fonts.js +0 -72
- package/dist/prod/Cascadia-CYPE3OJC.woff2 +0 -0
- package/dist/prod/Virgil-UZN6MUT6.woff2 +0 -0
- /package/dist/browser/dev/{Assistant-Bold-ZDZZ6JHA.woff2 → excalidraw-assets-dev/Assistant-Bold-ZDZZ6JHA.woff2} +0 -0
- /package/dist/browser/dev/{Assistant-Medium-DZ25RZU3.woff2 → excalidraw-assets-dev/Assistant-Medium-DZ25RZU3.woff2} +0 -0
- /package/dist/browser/dev/{Assistant-Regular-PLF2XOGW.woff2 → excalidraw-assets-dev/Assistant-Regular-PLF2XOGW.woff2} +0 -0
- /package/dist/browser/dev/{Assistant-SemiBold-CZ5MX6FK.woff2 → excalidraw-assets-dev/Assistant-SemiBold-CZ5MX6FK.woff2} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{blockDiagram-91b80b7a-ACFH36JV.js.map → blockDiagram-91b80b7a-H47FTXHA.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{c4Diagram-b2a90758-QZ27YR47.js.map → c4Diagram-b2a90758-NNJK6GKC.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-HO2HMSK7.js.map → chunk-4KQVEBHW.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-USGV265L.js.map → chunk-53YI56GV.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-EDFX3S7X.js.map → chunk-A2WCJI4I.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-IX4V72YG.js.map → chunk-EFLPX7NE.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-MXVETLVM.js.map → chunk-JYIQCNWV.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-YZIOORVX.js.map → chunk-LVIQQW6F.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-6U7GQNJT.js.map → chunk-PXLO3FOU.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-7DACDEY3.js.map → chunk-TO2AW5PW.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-NJ77ZFNJ.js.map → chunk-VURILHLY.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{chunk-2T2GU7NF.js.map → chunk-ZAYGSUHF.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-30eddba6-QSLMH4JW.js.map → classDiagram-30eddba6-CUYIJICN.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{classDiagram-v2-f2df5561-DY4DYQ5P.js.map → classDiagram-v2-f2df5561-K6WW6K73.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{en-5TCZHGGJ.js.map → en-RAFN4KPD.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{erDiagram-47591fe2-SOOJRTCB.js.map → erDiagram-47591fe2-XGAD7EEP.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-5540d9b9-AHGL4KPK.js.map → flowDiagram-5540d9b9-B6EOVNNO.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowDiagram-v2-3b53844e-56LDZZWY.js.map → flowDiagram-v2-3b53844e-NUG24FJH.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{flowchart-elk-definition-5fe447d6-27LUKRI6.js.map → flowchart-elk-definition-5fe447d6-25Y7PCBL.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{ganttDiagram-9a3bba1f-EHGYGNG6.js.map → ganttDiagram-9a3bba1f-GNL6ZDTC.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{gitGraphDiagram-96e6b4ee-AJQNBDW5.js.map → gitGraphDiagram-96e6b4ee-HNW52NVO.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-EDKQZH7Z.js.map → image-ZNLDWTK3.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{infoDiagram-bcd20f53-SWLLQVES.js.map → infoDiagram-bcd20f53-FWEUVFLT.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{journeyDiagram-4fe6b3dc-7UAVCWOZ.js.map → journeyDiagram-4fe6b3dc-RZIUI7UG.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{mindmap-definition-f354de21-SROW5KGM.js.map → mindmap-definition-f354de21-GBVN45GU.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{pieDiagram-79897490-QKCI6NCB.js.map → pieDiagram-79897490-ECENNII6.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{quadrantDiagram-62f64e94-LNYJZFC5.js.map → quadrantDiagram-62f64e94-ZMEOFVNL.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{requirementDiagram-05bf5f74-ZZD7ZHFA.js.map → requirementDiagram-05bf5f74-FHZSFHCR.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{sankeyDiagram-97764748-L75ZZ4UM.js.map → sankeyDiagram-97764748-VDKIKTA6.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{sequenceDiagram-acc0e65c-6PCU7TDK.js.map → sequenceDiagram-acc0e65c-6JUSPVKX.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-0ff1cf1a-WM76WOPR.js.map → stateDiagram-0ff1cf1a-L3AKWENF.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{stateDiagram-v2-9a9d610d-N4HZW3O2.js.map → stateDiagram-v2-9a9d610d-NU3GGMCH.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{timeline-definition-fea2a41d-ZHGCAXGP.js.map → timeline-definition-fea2a41d-JGP7XCHW.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{xychartDiagram-ab372869-2DLOVRAZ.js.map → xychartDiagram-ab372869-HLFHHF2I.js.map} +0 -0
- /package/dist/browser/prod/{Assistant-Bold-ZDZZ6JHA.woff2 → excalidraw-assets/Assistant-Bold-ZDZZ6JHA.woff2} +0 -0
- /package/dist/browser/prod/{Assistant-Medium-DZ25RZU3.woff2 → excalidraw-assets/Assistant-Medium-DZ25RZU3.woff2} +0 -0
- /package/dist/browser/prod/{Assistant-Regular-PLF2XOGW.woff2 → excalidraw-assets/Assistant-Regular-PLF2XOGW.woff2} +0 -0
- /package/dist/browser/prod/{Assistant-SemiBold-CZ5MX6FK.woff2 → excalidraw-assets/Assistant-SemiBold-CZ5MX6FK.woff2} +0 -0
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"group": "Group selection",
|
|
88
88
|
"ungroup": "Ungroup selection",
|
|
89
89
|
"collaborators": "Collaborators",
|
|
90
|
-
"
|
|
90
|
+
"toggleGrid": "Toggle grid",
|
|
91
91
|
"addToLibrary": "Add to library",
|
|
92
92
|
"removeFromLibrary": "Remove from library",
|
|
93
93
|
"libraryLoadingMessage": "Loading library…",
|
|
@@ -109,7 +109,9 @@
|
|
|
109
109
|
"share": "Share",
|
|
110
110
|
"showStroke": "Show stroke color picker",
|
|
111
111
|
"showBackground": "Show background color picker",
|
|
112
|
+
"showFonts": "Show font picker",
|
|
112
113
|
"toggleTheme": "Toggle light/dark theme",
|
|
114
|
+
"theme": "Theme",
|
|
113
115
|
"personalLib": "Personal Library",
|
|
114
116
|
"excalidrawLib": "Excalidraw Library",
|
|
115
117
|
"decreaseFontSize": "Decrease font size",
|
|
@@ -128,7 +130,7 @@
|
|
|
128
130
|
},
|
|
129
131
|
"lineEditor": {
|
|
130
132
|
"edit": "Edit line",
|
|
131
|
-
"
|
|
133
|
+
"editArrow": "Edit arrow"
|
|
132
134
|
},
|
|
133
135
|
"elementLock": {
|
|
134
136
|
"lock": "Lock",
|
|
@@ -147,7 +149,9 @@
|
|
|
147
149
|
"discordChat": "Discord chat",
|
|
148
150
|
"zoomToFitViewport": "Zoom to fit in viewport",
|
|
149
151
|
"zoomToFitSelection": "Zoom to fit selection",
|
|
150
|
-
"zoomToFit": "Zoom to fit all elements"
|
|
152
|
+
"zoomToFit": "Zoom to fit all elements",
|
|
153
|
+
"installPWA": "Install Excalidraw locally (PWA)",
|
|
154
|
+
"autoResize": "Enable text auto-resizing"
|
|
151
155
|
},
|
|
152
156
|
"library": {
|
|
153
157
|
"noItems": "No items added yet...",
|
|
@@ -180,6 +184,7 @@
|
|
|
180
184
|
"fullScreen": "Full screen",
|
|
181
185
|
"darkMode": "Dark mode",
|
|
182
186
|
"lightMode": "Light mode",
|
|
187
|
+
"systemMode": "System mode",
|
|
183
188
|
"zenMode": "Zen mode",
|
|
184
189
|
"objectsSnapMode": "Snap to objects",
|
|
185
190
|
"exitZenMode": "Exit zen mode",
|
|
@@ -266,6 +271,22 @@
|
|
|
266
271
|
"mermaidToExcalidraw": "Mermaid to Excalidraw",
|
|
267
272
|
"magicSettings": "AI settings"
|
|
268
273
|
},
|
|
274
|
+
"element": {
|
|
275
|
+
"rectangle": "Rectangle",
|
|
276
|
+
"diamond": "Diamond",
|
|
277
|
+
"ellipse": "Ellipse",
|
|
278
|
+
"arrow": "Arrow",
|
|
279
|
+
"line": "Line",
|
|
280
|
+
"freedraw": "Freedraw",
|
|
281
|
+
"text": "Text",
|
|
282
|
+
"image": "Image",
|
|
283
|
+
"group": "Group",
|
|
284
|
+
"frame": "Frame",
|
|
285
|
+
"magicframe": "Wireframe to code",
|
|
286
|
+
"embeddable": "Web Embed",
|
|
287
|
+
"selection": "Selection",
|
|
288
|
+
"iframe": "IFrame"
|
|
289
|
+
},
|
|
269
290
|
"headings": {
|
|
270
291
|
"canvasActions": "Canvas actions",
|
|
271
292
|
"selectedShapeActions": "Selected shape actions",
|
|
@@ -439,7 +460,10 @@
|
|
|
439
460
|
"scene": "Scene",
|
|
440
461
|
"selected": "Selected",
|
|
441
462
|
"storage": "Storage",
|
|
442
|
-
"
|
|
463
|
+
"fullTitle": "Stats & Element properties",
|
|
464
|
+
"title": "Stats",
|
|
465
|
+
"generalStats": "General stats",
|
|
466
|
+
"elementProperties": "Element properties",
|
|
443
467
|
"total": "Total",
|
|
444
468
|
"version": "Version",
|
|
445
469
|
"versionCopy": "Click to copy",
|
|
@@ -534,11 +558,19 @@
|
|
|
534
558
|
"syntax": "Mermaid Syntax",
|
|
535
559
|
"preview": "Preview"
|
|
536
560
|
},
|
|
537
|
-
"
|
|
538
|
-
"
|
|
539
|
-
|
|
540
|
-
|
|
561
|
+
"quickSearch": {
|
|
562
|
+
"placeholder": "Quick search"
|
|
563
|
+
},
|
|
564
|
+
"fontList": {
|
|
565
|
+
"badge": {
|
|
566
|
+
"old": "old"
|
|
541
567
|
},
|
|
568
|
+
"sceneFonts": "In this scene",
|
|
569
|
+
"availableFonts": "Available fonts",
|
|
570
|
+
"empty": "No fonts found"
|
|
571
|
+
},
|
|
572
|
+
"userList": {
|
|
573
|
+
"empty": "No users found",
|
|
542
574
|
"hint": {
|
|
543
575
|
"text": "Click on user to follow",
|
|
544
576
|
"followStatus": "You're currently following this user",
|
|
@@ -560,6 +592,6 @@
|
|
|
560
592
|
"noMatch": "No matching commands..."
|
|
561
593
|
},
|
|
562
594
|
"itemNotAvailable": "Command is not available...",
|
|
563
|
-
"shortcutHint": "For Command palette, use {{
|
|
595
|
+
"shortcutHint": "For Command palette, use {{shortcut}}"
|
|
564
596
|
}
|
|
565
597
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Point, Zoom } from "./types";
|
|
2
|
-
import { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./element/types";
|
|
1
|
+
import type { Point, Zoom } from "./types";
|
|
2
|
+
import type { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./element/types";
|
|
3
3
|
export declare const rotate: (x: number, y: number, cx: number, cy: number, angle: number) => [number, number];
|
|
4
4
|
export declare const rotatePoint: (point: readonly [number, number], center: readonly [number, number], angle: number) => [number, number];
|
|
5
5
|
export declare const adjustXYWithRotation: (sides: {
|
|
@@ -28,6 +28,8 @@ export declare const getBezierCurveLength: (element: NonDeleted<ExcalidrawLinear
|
|
|
28
28
|
export declare const mapIntervalToBezierT: (element: NonDeleted<ExcalidrawLinearElement>, endPoint: readonly [number, number], interval: number) => number;
|
|
29
29
|
export declare const arePointsEqual: (p1: readonly [number, number], p2: readonly [number, number]) => boolean;
|
|
30
30
|
export declare const isRightAngle: (angle: number) => boolean;
|
|
31
|
+
export declare const radianToDegree: (r: number) => number;
|
|
32
|
+
export declare const degreeToRadian: (d: number) => number;
|
|
31
33
|
export declare const rangesOverlap: ([a0, a1]: [number, number], [b0, b1]: [number, number]) => boolean;
|
|
32
34
|
export declare const rangeIntersection: (rangeA: [number, number], rangeB: [number, number]) => [number, number] | null;
|
|
33
35
|
export declare const isValueInRange: (value: number, min: number, max: number) => boolean;
|
package/dist/excalidraw/math.js
CHANGED
|
@@ -338,6 +338,12 @@ export const isRightAngle = (angle) => {
|
|
|
338
338
|
// angle, which we can check with modulo after rounding.
|
|
339
339
|
return Math.round((angle / Math.PI) * 10000) % 5000 === 0;
|
|
340
340
|
};
|
|
341
|
+
export const radianToDegree = (r) => {
|
|
342
|
+
return (r * 180) / Math.PI;
|
|
343
|
+
};
|
|
344
|
+
export const degreeToRadian = (d) => {
|
|
345
|
+
return (d / 180) * Math.PI;
|
|
346
|
+
};
|
|
341
347
|
// Given two ranges, return if the two ranges overlap with each other
|
|
342
348
|
// e.g. [1, 3] overlaps with [2, 4] while [1, 3] does not overlap with [4, 5]
|
|
343
349
|
export const rangesOverlap = ([a0, a1], [b0, b1]) => {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** heuristically checks whether the text may be a mermaid diagram definition */
|
|
2
|
+
export const isMaybeMermaidDefinition = (text) => {
|
|
3
|
+
const chartTypes = [
|
|
4
|
+
"flowchart",
|
|
5
|
+
"sequenceDiagram",
|
|
6
|
+
"classDiagram",
|
|
7
|
+
"stateDiagram",
|
|
8
|
+
"stateDiagram-v2",
|
|
9
|
+
"erDiagram",
|
|
10
|
+
"journey",
|
|
11
|
+
"gantt",
|
|
12
|
+
"pie",
|
|
13
|
+
"quadrantChart",
|
|
14
|
+
"requirementDiagram",
|
|
15
|
+
"gitGraph",
|
|
16
|
+
"C4Context",
|
|
17
|
+
"mindmap",
|
|
18
|
+
"timeline",
|
|
19
|
+
"zenuml",
|
|
20
|
+
"sankey",
|
|
21
|
+
"xychart",
|
|
22
|
+
"block",
|
|
23
|
+
];
|
|
24
|
+
const re = new RegExp(`^(?:%%{.*?}%%[\\s\\n]*)?\\b${chartTypes
|
|
25
|
+
.map((x) => `${x}(-beta)?`)
|
|
26
|
+
.join("|")}\\b`);
|
|
27
|
+
return re.test(text.trim());
|
|
28
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StaticCanvasAppState, AppState } from "../types";
|
|
2
|
-
import { StaticCanvasRenderConfig } from "../scene/types";
|
|
1
|
+
import type { StaticCanvasAppState, AppState } from "../types";
|
|
2
|
+
import type { StaticCanvasRenderConfig } from "../scene/types";
|
|
3
3
|
export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke?: boolean) => void;
|
|
4
4
|
export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
|
|
5
5
|
export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, viewBackgroundColor, }: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { THEME_FILTER } from "../constants";
|
|
1
|
+
import { THEME, THEME_FILTER } from "../constants";
|
|
2
2
|
export const fillCircle = (context, cx, cy, radius, stroke = true) => {
|
|
3
3
|
context.beginPath();
|
|
4
4
|
context.arc(cx, cy, radius, 0, Math.PI * 2);
|
|
@@ -15,7 +15,7 @@ export const bootstrapCanvas = ({ canvas, scale, normalizedWidth, normalizedHeig
|
|
|
15
15
|
const context = canvas.getContext("2d");
|
|
16
16
|
context.setTransform(1, 0, 0, 1, 0, 0);
|
|
17
17
|
context.scale(scale, scale);
|
|
18
|
-
if (isExporting && theme ===
|
|
18
|
+
if (isExporting && theme === THEME.DARK) {
|
|
19
19
|
context.filter = THEME_FILTER;
|
|
20
20
|
}
|
|
21
21
|
// Paint background
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
|
|
1
|
+
import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
|
|
2
2
|
/** throttled to animation framerate */
|
|
3
3
|
export declare const renderInteractiveSceneThrottled: {
|
|
4
4
|
(config: InteractiveSceneRenderConfig): void;
|
|
@@ -9,7 +9,7 @@ export declare const renderInteractiveSceneThrottled: {
|
|
|
9
9
|
* Interactive scene is the ui-canvas where we render bounding boxes, selections
|
|
10
10
|
* and other ui stuff.
|
|
11
11
|
*/
|
|
12
|
-
export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, scale, appState, renderConfig, }: InteractiveSceneRenderConfig) => {
|
|
12
|
+
export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }: InteractiveSceneRenderConfig) => {
|
|
13
13
|
atLeastOneVisibleElement: boolean;
|
|
14
14
|
elementsMap: RenderableElementsMap;
|
|
15
15
|
scrollBars?: undefined;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { getElementAbsoluteCoords,
|
|
1
|
+
import { getElementAbsoluteCoords, getTransformHandlesFromCoords, getTransformHandles, getCommonBounds, } from "../element";
|
|
2
2
|
import { roundRect } from "../renderer/roundRect";
|
|
3
3
|
import { getScrollBars, SCROLLBAR_COLOR, SCROLLBAR_WIDTH, } from "../scene/scrollbars";
|
|
4
4
|
import { renderSelectionElement } from "../renderer/renderElement";
|
|
5
5
|
import { getClientColor, renderRemoteCursors } from "../clients";
|
|
6
6
|
import { isSelectedViaGroup, getSelectedGroupIds, getElementsInGroup, selectGroupsFromGivenElements, } from "../groups";
|
|
7
|
-
import {
|
|
7
|
+
import { getOmitSidesForDevice, shouldShowBoundingBox, } from "../element/transformHandles";
|
|
8
8
|
import { arrayToMap, throttleRAF } from "../utils";
|
|
9
9
|
import { DEFAULT_TRANSFORM_HANDLE_SPACING, FRAME_STYLE } from "../constants";
|
|
10
10
|
import { renderSnaps } from "../renderer/renderSnaps";
|
|
11
|
-
import { maxBindingGap } from "../element/
|
|
11
|
+
import { maxBindingGap } from "../element/binding";
|
|
12
12
|
import { LinearElementEditor } from "../element/linearElementEditor";
|
|
13
13
|
import { bootstrapCanvas, fillCircle, getNormalizedCanvasDimensions, } from "./helpers";
|
|
14
14
|
import oc from "open-color";
|
|
15
|
-
import { isFrameLikeElement, isLinearElement } from "../element/typeChecks";
|
|
15
|
+
import { isFrameLikeElement, isLinearElement, isTextElement, } from "../element/typeChecks";
|
|
16
16
|
const renderLinearElementPointHighlight = (context, appState, elementsMap) => {
|
|
17
17
|
const { elementId, hoverPointIndex } = appState.selectedLinearElement;
|
|
18
18
|
if (appState.editingLinearElement?.selectedPointsIndices?.includes(hoverPointIndex)) {
|
|
@@ -124,10 +124,11 @@ const renderBindingHighlightForSuggestedPointBinding = (context, suggestedBindin
|
|
|
124
124
|
fillCircle(context, x, y, threshold);
|
|
125
125
|
});
|
|
126
126
|
};
|
|
127
|
-
const renderSelectionBorder = (context, appState, elementProperties
|
|
127
|
+
const renderSelectionBorder = (context, appState, elementProperties) => {
|
|
128
128
|
const { angle, elementX1, elementY1, elementX2, elementY2, selectionColors, cx, cy, dashed, activeEmbeddable, } = elementProperties;
|
|
129
129
|
const elementWidth = elementX2 - elementX1;
|
|
130
130
|
const elementHeight = elementY2 - elementY1;
|
|
131
|
+
const padding = DEFAULT_TRANSFORM_HANDLE_SPACING * 2;
|
|
131
132
|
const linePadding = padding / appState.zoom.value;
|
|
132
133
|
const lineWidth = 8 / appState.zoom.value;
|
|
133
134
|
const spaceWidth = 4 / appState.zoom.value;
|
|
@@ -264,7 +265,23 @@ const renderTransformHandles = (context, renderConfig, appState, transformHandle
|
|
|
264
265
|
}
|
|
265
266
|
});
|
|
266
267
|
};
|
|
267
|
-
const
|
|
268
|
+
const renderTextBox = (text, context, appState, selectionColor) => {
|
|
269
|
+
context.save();
|
|
270
|
+
const padding = (DEFAULT_TRANSFORM_HANDLE_SPACING * 2) / appState.zoom.value;
|
|
271
|
+
const width = text.width + padding * 2;
|
|
272
|
+
const height = text.height + padding * 2;
|
|
273
|
+
const cx = text.x + width / 2;
|
|
274
|
+
const cy = text.y + height / 2;
|
|
275
|
+
const shiftX = -(width / 2 + padding);
|
|
276
|
+
const shiftY = -(height / 2 + padding);
|
|
277
|
+
context.translate(cx + appState.scrollX, cy + appState.scrollY);
|
|
278
|
+
context.rotate(text.angle);
|
|
279
|
+
context.lineWidth = 1 / appState.zoom.value;
|
|
280
|
+
context.strokeStyle = selectionColor;
|
|
281
|
+
context.strokeRect(shiftX, shiftY, width, height);
|
|
282
|
+
context.restore();
|
|
283
|
+
};
|
|
284
|
+
const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }) => {
|
|
268
285
|
if (canvas === null) {
|
|
269
286
|
return { atLeastOneVisibleElement: false, elementsMap };
|
|
270
287
|
}
|
|
@@ -295,12 +312,18 @@ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selecte
|
|
|
295
312
|
// Paint selection element
|
|
296
313
|
if (appState.selectionElement) {
|
|
297
314
|
try {
|
|
298
|
-
renderSelectionElement(appState.selectionElement, context, appState);
|
|
315
|
+
renderSelectionElement(appState.selectionElement, context, appState, renderConfig.selectionColor);
|
|
299
316
|
}
|
|
300
317
|
catch (error) {
|
|
301
318
|
console.error(error);
|
|
302
319
|
}
|
|
303
320
|
}
|
|
321
|
+
if (appState.editingElement && isTextElement(appState.editingElement)) {
|
|
322
|
+
const textElement = allElementsMap.get(appState.editingElement.id);
|
|
323
|
+
if (textElement && !textElement.autoResize) {
|
|
324
|
+
renderTextBox(textElement, context, appState, renderConfig.selectionColor);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
304
327
|
if (appState.isBindingEnabled) {
|
|
305
328
|
appState.suggestedBindings
|
|
306
329
|
.filter((binding) => binding != null)
|
|
@@ -403,8 +426,12 @@ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selecte
|
|
|
403
426
|
context.translate(appState.scrollX, appState.scrollY);
|
|
404
427
|
if (selectedElements.length === 1) {
|
|
405
428
|
context.fillStyle = oc.white;
|
|
406
|
-
const transformHandles = getTransformHandles(selectedElements[0], appState.zoom, elementsMap, "mouse"
|
|
407
|
-
|
|
429
|
+
const transformHandles = getTransformHandles(selectedElements[0], appState.zoom, elementsMap, "mouse", // when we render we don't know which pointer type so use mouse,
|
|
430
|
+
getOmitSidesForDevice(device));
|
|
431
|
+
if (!appState.viewModeEnabled &&
|
|
432
|
+
showBoundingBox &&
|
|
433
|
+
// do not show transform handles when text is being edited
|
|
434
|
+
!isTextElement(appState.editingElement)) {
|
|
408
435
|
renderTransformHandles(context, renderConfig, appState, transformHandles, selectedElements[0].angle);
|
|
409
436
|
}
|
|
410
437
|
}
|
|
@@ -421,8 +448,8 @@ const _renderInteractiveScene = ({ canvas, elementsMap, visibleElements, selecte
|
|
|
421
448
|
context.lineWidth = lineWidth;
|
|
422
449
|
context.setLineDash(initialLineDash);
|
|
423
450
|
const transformHandles = getTransformHandlesFromCoords([x1, y1, x2, y2, (x1 + x2) / 2, (y1 + y2) / 2], 0, appState.zoom, "mouse", isFrameSelected
|
|
424
|
-
?
|
|
425
|
-
:
|
|
451
|
+
? { ...getOmitSidesForDevice(device), rotation: true }
|
|
452
|
+
: getOmitSidesForDevice(device));
|
|
426
453
|
if (selectedElements.some((element) => !element.locked)) {
|
|
427
454
|
renderTransformHandles(context, renderConfig, appState, transformHandles, 0);
|
|
428
455
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "../element/types";
|
|
1
|
+
import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "../element/types";
|
|
2
2
|
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
3
|
-
import { StaticCanvasRenderConfig, RenderableElementsMap } from "../scene/types";
|
|
4
|
-
import { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure } from "../types";
|
|
3
|
+
import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "../scene/types";
|
|
4
|
+
import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure } from "../types";
|
|
5
5
|
export declare const IMAGE_INVERT_FILTER = "invert(100%) hue-rotate(180deg) saturate(1.25)";
|
|
6
6
|
export declare const getRenderOpacity: (element: ExcalidrawElement, containingFrame: ExcalidrawFrameLikeElement | null, elementsPendingErasure: ElementsPendingErasure) => number;
|
|
7
7
|
export interface ExcalidrawElementWithCanvas {
|
|
@@ -9,15 +9,17 @@ export interface ExcalidrawElementWithCanvas {
|
|
|
9
9
|
canvas: HTMLCanvasElement;
|
|
10
10
|
theme: AppState["theme"];
|
|
11
11
|
scale: number;
|
|
12
|
+
angle: number;
|
|
12
13
|
zoomValue: AppState["zoom"]["value"];
|
|
13
14
|
canvasOffsetX: number;
|
|
14
15
|
canvasOffsetY: number;
|
|
15
16
|
boundTextElementVersion: number | null;
|
|
16
17
|
containingFrameOpacity: number;
|
|
18
|
+
boundTextCanvas: HTMLCanvasElement;
|
|
17
19
|
}
|
|
18
20
|
export declare const DEFAULT_LINK_SIZE = 14;
|
|
19
21
|
export declare const elementWithCanvasCache: WeakMap<ExcalidrawElement, ExcalidrawElementWithCanvas>;
|
|
20
|
-
export declare const renderSelectionElement: (element: NonDeletedExcalidrawElement, context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState) => void;
|
|
22
|
+
export declare const renderSelectionElement: (element: NonDeletedExcalidrawElement, context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState, selectionColor: InteractiveCanvasRenderConfig["selectionColor"]) => void;
|
|
21
23
|
export declare const renderElement: (element: NonDeletedExcalidrawElement, elementsMap: RenderableElementsMap, allElementsMap: NonDeletedSceneElementsMap, rc: RoughCanvas, context: CanvasRenderingContext2D, renderConfig: StaticCanvasRenderConfig, appState: StaticCanvasAppState) => void;
|
|
22
24
|
export declare const pathsCache: WeakMap<ExcalidrawFreeDrawElement, Path2D>;
|
|
23
25
|
export declare function generateFreeDrawShape(element: ExcalidrawFreeDrawElement): Path2D;
|
|
@@ -4,12 +4,13 @@ import { distance, getFontString, isRTL } from "../utils";
|
|
|
4
4
|
import { getCornerRadius, isRightAngle } from "../math";
|
|
5
5
|
import rough from "roughjs/bin/rough";
|
|
6
6
|
import { getDefaultAppState } from "../appState";
|
|
7
|
-
import { BOUND_TEXT_PADDING, ELEMENT_READY_TO_ERASE_OPACITY, FRAME_STYLE, MIME_TYPES, } from "../constants";
|
|
7
|
+
import { BOUND_TEXT_PADDING, ELEMENT_READY_TO_ERASE_OPACITY, FRAME_STYLE, MIME_TYPES, THEME, } from "../constants";
|
|
8
8
|
import { getStroke } from "perfect-freehand";
|
|
9
|
-
import { getBoundTextElement, getContainerCoords, getContainerElement, getLineHeightInPx, getBoundTextMaxHeight, getBoundTextMaxWidth,
|
|
9
|
+
import { getBoundTextElement, getContainerCoords, getContainerElement, getLineHeightInPx, getBoundTextMaxHeight, getBoundTextMaxWidth, } from "../element/textElement";
|
|
10
10
|
import { LinearElementEditor } from "../element/linearElementEditor";
|
|
11
11
|
import { getContainingFrame } from "../frame";
|
|
12
12
|
import { ShapeCache } from "../scene/ShapeCache";
|
|
13
|
+
import { getVerticalOffset } from "../fonts";
|
|
13
14
|
// using a stronger invert (100% vs our regular 93%) and saturate
|
|
14
15
|
// as a temp hack to make images in dark theme look closer to original
|
|
15
16
|
// color scheme (it's still not quite there and the colors look slightly
|
|
@@ -19,12 +20,21 @@ const defaultAppState = getDefaultAppState();
|
|
|
19
20
|
const isPendingImageElement = (element, renderConfig) => isInitializedImageElement(element) &&
|
|
20
21
|
!renderConfig.imageCache.has(element.fileId);
|
|
21
22
|
const shouldResetImageFilter = (element, renderConfig, appState) => {
|
|
22
|
-
return (appState.theme ===
|
|
23
|
+
return (appState.theme === THEME.DARK &&
|
|
23
24
|
isInitializedImageElement(element) &&
|
|
24
25
|
!isPendingImageElement(element, renderConfig) &&
|
|
25
26
|
renderConfig.imageCache.get(element.fileId)?.mimeType !== MIME_TYPES.svg);
|
|
26
27
|
};
|
|
27
|
-
const getCanvasPadding = (element) =>
|
|
28
|
+
const getCanvasPadding = (element) => {
|
|
29
|
+
switch (element.type) {
|
|
30
|
+
case "freedraw":
|
|
31
|
+
return element.strokeWidth * 12;
|
|
32
|
+
case "text":
|
|
33
|
+
return element.fontSize / 2;
|
|
34
|
+
default:
|
|
35
|
+
return 20;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
28
38
|
export const getRenderOpacity = (element, containingFrame, elementsPendingErasure) => {
|
|
29
39
|
// multiplying frame opacity with element opacity to combine them
|
|
30
40
|
// (e.g. frame 50% and element 50% opacity should result in 25% opacity)
|
|
@@ -78,7 +88,7 @@ const generateElementCanvas = (element, elementsMap, zoom, renderConfig, appStat
|
|
|
78
88
|
const { width, height, scale } = cappedElementCanvasSize(element, elementsMap, zoom);
|
|
79
89
|
canvas.width = width;
|
|
80
90
|
canvas.height = height;
|
|
81
|
-
let canvasOffsetX =
|
|
91
|
+
let canvasOffsetX = -100;
|
|
82
92
|
let canvasOffsetY = 0;
|
|
83
93
|
if (isLinearElement(element) || isFreeDrawElement(element)) {
|
|
84
94
|
const [x1, y1] = getElementAbsoluteCoords(element, elementsMap);
|
|
@@ -102,6 +112,45 @@ const generateElementCanvas = (element, elementsMap, zoom, renderConfig, appStat
|
|
|
102
112
|
}
|
|
103
113
|
drawElementOnCanvas(element, rc, context, renderConfig, appState);
|
|
104
114
|
context.restore();
|
|
115
|
+
const boundTextElement = getBoundTextElement(element, elementsMap);
|
|
116
|
+
const boundTextCanvas = document.createElement("canvas");
|
|
117
|
+
const boundTextCanvasContext = boundTextCanvas.getContext("2d");
|
|
118
|
+
if (isArrowElement(element) && boundTextElement) {
|
|
119
|
+
const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, elementsMap);
|
|
120
|
+
// Take max dimensions of arrow canvas so that when canvas is rotated
|
|
121
|
+
// the arrow doesn't get clipped
|
|
122
|
+
const maxDim = Math.max(distance(x1, x2), distance(y1, y2));
|
|
123
|
+
boundTextCanvas.width =
|
|
124
|
+
maxDim * window.devicePixelRatio * scale + padding * scale * 10;
|
|
125
|
+
boundTextCanvas.height =
|
|
126
|
+
maxDim * window.devicePixelRatio * scale + padding * scale * 10;
|
|
127
|
+
boundTextCanvasContext.translate(boundTextCanvas.width / 2, boundTextCanvas.height / 2);
|
|
128
|
+
boundTextCanvasContext.rotate(element.angle);
|
|
129
|
+
boundTextCanvasContext.drawImage(canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);
|
|
130
|
+
const [, , , , boundTextCx, boundTextCy] = getElementAbsoluteCoords(boundTextElement, elementsMap);
|
|
131
|
+
boundTextCanvasContext.rotate(-element.angle);
|
|
132
|
+
const offsetX = (boundTextCanvas.width - canvas.width) / 2;
|
|
133
|
+
const offsetY = (boundTextCanvas.height - canvas.height) / 2;
|
|
134
|
+
const shiftX = boundTextCanvas.width / 2 -
|
|
135
|
+
(boundTextCx - x1) * window.devicePixelRatio * scale -
|
|
136
|
+
offsetX -
|
|
137
|
+
padding * scale;
|
|
138
|
+
const shiftY = boundTextCanvas.height / 2 -
|
|
139
|
+
(boundTextCy - y1) * window.devicePixelRatio * scale -
|
|
140
|
+
offsetY -
|
|
141
|
+
padding * scale;
|
|
142
|
+
boundTextCanvasContext.translate(-shiftX, -shiftY);
|
|
143
|
+
// Clear the bound text area
|
|
144
|
+
boundTextCanvasContext.clearRect(-(boundTextElement.width / 2 + BOUND_TEXT_PADDING) *
|
|
145
|
+
window.devicePixelRatio *
|
|
146
|
+
scale, -(boundTextElement.height / 2 + BOUND_TEXT_PADDING) *
|
|
147
|
+
window.devicePixelRatio *
|
|
148
|
+
scale, (boundTextElement.width + BOUND_TEXT_PADDING * 2) *
|
|
149
|
+
window.devicePixelRatio *
|
|
150
|
+
scale, (boundTextElement.height + BOUND_TEXT_PADDING * 2) *
|
|
151
|
+
window.devicePixelRatio *
|
|
152
|
+
scale);
|
|
153
|
+
}
|
|
105
154
|
return {
|
|
106
155
|
element,
|
|
107
156
|
canvas,
|
|
@@ -112,6 +161,8 @@ const generateElementCanvas = (element, elementsMap, zoom, renderConfig, appStat
|
|
|
112
161
|
canvasOffsetY,
|
|
113
162
|
boundTextElementVersion: getBoundTextElement(element, elementsMap)?.version || null,
|
|
114
163
|
containingFrameOpacity: getContainingFrame(element, elementsMap)?.opacity || 100,
|
|
164
|
+
boundTextCanvas,
|
|
165
|
+
angle: element.angle,
|
|
115
166
|
};
|
|
116
167
|
};
|
|
117
168
|
export const DEFAULT_LINK_SIZE = 14;
|
|
@@ -119,7 +170,7 @@ const IMAGE_PLACEHOLDER_IMG = document.createElement("img");
|
|
|
119
170
|
IMAGE_PLACEHOLDER_IMG.src = `data:${MIME_TYPES.svg},${encodeURIComponent(`<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="image" class="svg-inline--fa fa-image fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#888" d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"></path></svg>`)}`;
|
|
120
171
|
const IMAGE_ERROR_PLACEHOLDER_IMG = document.createElement("img");
|
|
121
172
|
IMAGE_ERROR_PLACEHOLDER_IMG.src = `data:${MIME_TYPES.svg},${encodeURIComponent(`<svg viewBox="0 0 668 668" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48ZM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56ZM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48Z" style="fill:#888;fill-rule:nonzero" transform="matrix(.81709 0 0 .81709 124.825 145.825)"/><path d="M256 8C119.034 8 8 119.033 8 256c0 136.967 111.034 248 248 248s248-111.034 248-248S392.967 8 256 8Zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676ZM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676Z" style="fill:#888;fill-rule:nonzero" transform="matrix(.30366 0 0 .30366 506.822 60.065)"/></svg>`)}`;
|
|
122
|
-
const drawImagePlaceholder = (element, context
|
|
173
|
+
const drawImagePlaceholder = (element, context) => {
|
|
123
174
|
context.fillStyle = "#E7E7E7";
|
|
124
175
|
context.fillRect(0, 0, element.width, element.height);
|
|
125
176
|
const imageMinWidthOrHeight = Math.min(element.width, element.height);
|
|
@@ -176,7 +227,7 @@ const drawElementOnCanvas = (element, rc, context, renderConfig, appState) => {
|
|
|
176
227
|
context.drawImage(img, 0 /* hardcoded for the selection box*/, 0, element.width, element.height);
|
|
177
228
|
}
|
|
178
229
|
else {
|
|
179
|
-
drawImagePlaceholder(element, context
|
|
230
|
+
drawImagePlaceholder(element, context);
|
|
180
231
|
}
|
|
181
232
|
break;
|
|
182
233
|
}
|
|
@@ -224,13 +275,21 @@ const generateElementWithCanvas = (element, elementsMap, renderConfig, appState)
|
|
|
224
275
|
const shouldRegenerateBecauseZoom = prevElementWithCanvas &&
|
|
225
276
|
prevElementWithCanvas.zoomValue !== zoom.value &&
|
|
226
277
|
!appState?.shouldCacheIgnoreZoom;
|
|
227
|
-
const
|
|
278
|
+
const boundTextElement = getBoundTextElement(element, elementsMap);
|
|
279
|
+
const boundTextElementVersion = boundTextElement?.version || null;
|
|
228
280
|
const containingFrameOpacity = getContainingFrame(element, elementsMap)?.opacity || 100;
|
|
229
281
|
if (!prevElementWithCanvas ||
|
|
230
282
|
shouldRegenerateBecauseZoom ||
|
|
231
283
|
prevElementWithCanvas.theme !== appState.theme ||
|
|
232
284
|
prevElementWithCanvas.boundTextElementVersion !== boundTextElementVersion ||
|
|
233
|
-
prevElementWithCanvas.containingFrameOpacity !== containingFrameOpacity
|
|
285
|
+
prevElementWithCanvas.containingFrameOpacity !== containingFrameOpacity ||
|
|
286
|
+
// since we rotate the canvas when copying from cached canvas, we don't
|
|
287
|
+
// regenerate the cached canvas. But we need to in case of labels which are
|
|
288
|
+
// cached alongside the arrow, and we want the labels to remain unrotated
|
|
289
|
+
// with respect to the arrow.
|
|
290
|
+
(isArrowElement(element) &&
|
|
291
|
+
boundTextElement &&
|
|
292
|
+
element.angle !== prevElementWithCanvas.angle)) {
|
|
234
293
|
const elementWithCanvas = generateElementCanvas(element, elementsMap, zoom, renderConfig, appState);
|
|
235
294
|
elementWithCanvasCache.set(element, elementWithCanvas);
|
|
236
295
|
return elementWithCanvas;
|
|
@@ -241,60 +300,21 @@ const drawElementFromCanvas = (elementWithCanvas, context, renderConfig, appStat
|
|
|
241
300
|
const element = elementWithCanvas.element;
|
|
242
301
|
const padding = getCanvasPadding(element);
|
|
243
302
|
const zoom = elementWithCanvas.scale;
|
|
244
|
-
|
|
245
|
-
// Free draw elements will otherwise "shuffle" as the min x and y change
|
|
246
|
-
if (isFreeDrawElement(element)) {
|
|
247
|
-
x1 = Math.floor(x1);
|
|
248
|
-
x2 = Math.ceil(x2);
|
|
249
|
-
y1 = Math.floor(y1);
|
|
250
|
-
y2 = Math.ceil(y2);
|
|
251
|
-
}
|
|
303
|
+
const [x1, y1, x2, y2] = getElementAbsoluteCoords(element, allElementsMap);
|
|
252
304
|
const cx = ((x1 + x2) / 2 + appState.scrollX) * window.devicePixelRatio;
|
|
253
305
|
const cy = ((y1 + y2) / 2 + appState.scrollY) * window.devicePixelRatio;
|
|
254
306
|
context.save();
|
|
255
307
|
context.scale(1 / window.devicePixelRatio, 1 / window.devicePixelRatio);
|
|
256
308
|
const boundTextElement = getBoundTextElement(element, allElementsMap);
|
|
257
309
|
if (isArrowElement(element) && boundTextElement) {
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
maxDim * window.devicePixelRatio * zoom +
|
|
265
|
-
padding * elementWithCanvas.scale * 10;
|
|
266
|
-
tempCanvas.height =
|
|
267
|
-
maxDim * window.devicePixelRatio * zoom +
|
|
268
|
-
padding * elementWithCanvas.scale * 10;
|
|
269
|
-
const offsetX = (tempCanvas.width - elementWithCanvas.canvas.width) / 2;
|
|
270
|
-
const offsetY = (tempCanvas.height - elementWithCanvas.canvas.height) / 2;
|
|
271
|
-
tempCanvasContext.translate(tempCanvas.width / 2, tempCanvas.height / 2);
|
|
272
|
-
tempCanvasContext.rotate(element.angle);
|
|
273
|
-
tempCanvasContext.drawImage(elementWithCanvas.canvas, -elementWithCanvas.canvas.width / 2, -elementWithCanvas.canvas.height / 2, elementWithCanvas.canvas.width, elementWithCanvas.canvas.height);
|
|
274
|
-
const [, , , , boundTextCx, boundTextCy] = getElementAbsoluteCoords(boundTextElement, allElementsMap);
|
|
275
|
-
tempCanvasContext.rotate(-element.angle);
|
|
276
|
-
// Shift the canvas to the center of the bound text element
|
|
277
|
-
const shiftX = tempCanvas.width / 2 -
|
|
278
|
-
(boundTextCx - x1) * window.devicePixelRatio * zoom -
|
|
279
|
-
offsetX -
|
|
280
|
-
padding * zoom;
|
|
281
|
-
const shiftY = tempCanvas.height / 2 -
|
|
282
|
-
(boundTextCy - y1) * window.devicePixelRatio * zoom -
|
|
283
|
-
offsetY -
|
|
284
|
-
padding * zoom;
|
|
285
|
-
tempCanvasContext.translate(-shiftX, -shiftY);
|
|
286
|
-
// Clear the bound text area
|
|
287
|
-
tempCanvasContext.clearRect(-(boundTextElement.width / 2 + BOUND_TEXT_PADDING) *
|
|
288
|
-
window.devicePixelRatio *
|
|
289
|
-
zoom, -(boundTextElement.height / 2 + BOUND_TEXT_PADDING) *
|
|
290
|
-
window.devicePixelRatio *
|
|
291
|
-
zoom, (boundTextElement.width + BOUND_TEXT_PADDING * 2) *
|
|
292
|
-
window.devicePixelRatio *
|
|
293
|
-
zoom, (boundTextElement.height + BOUND_TEXT_PADDING * 2) *
|
|
294
|
-
window.devicePixelRatio *
|
|
295
|
-
zoom);
|
|
310
|
+
const offsetX = (elementWithCanvas.boundTextCanvas.width -
|
|
311
|
+
elementWithCanvas.canvas.width) /
|
|
312
|
+
2;
|
|
313
|
+
const offsetY = (elementWithCanvas.boundTextCanvas.height -
|
|
314
|
+
elementWithCanvas.canvas.height) /
|
|
315
|
+
2;
|
|
296
316
|
context.translate(cx, cy);
|
|
297
|
-
context.drawImage(
|
|
317
|
+
context.drawImage(elementWithCanvas.boundTextCanvas, (-(x2 - x1) / 2) * window.devicePixelRatio - offsetX / zoom - padding, (-(y2 - y1) / 2) * window.devicePixelRatio - offsetY / zoom - padding, elementWithCanvas.boundTextCanvas.width / zoom, elementWithCanvas.boundTextCanvas.height / zoom);
|
|
298
318
|
}
|
|
299
319
|
else {
|
|
300
320
|
// we translate context to element center so that rotation and scale
|
|
@@ -323,7 +343,7 @@ const drawElementFromCanvas = (elementWithCanvas, context, renderConfig, appStat
|
|
|
323
343
|
context.restore();
|
|
324
344
|
// Clear the nested element we appended to the DOM
|
|
325
345
|
};
|
|
326
|
-
export const renderSelectionElement = (element, context, appState) => {
|
|
346
|
+
export const renderSelectionElement = (element, context, appState, selectionColor) => {
|
|
327
347
|
context.save();
|
|
328
348
|
context.translate(element.x + appState.scrollX, element.y + appState.scrollY);
|
|
329
349
|
context.fillStyle = "rgba(0, 0, 200, 0.04)";
|
|
@@ -334,7 +354,7 @@ export const renderSelectionElement = (element, context, appState) => {
|
|
|
334
354
|
const offset = 0.5 / appState.zoom.value;
|
|
335
355
|
context.fillRect(offset, offset, element.width, element.height);
|
|
336
356
|
context.lineWidth = 1 / appState.zoom.value;
|
|
337
|
-
context.strokeStyle =
|
|
357
|
+
context.strokeStyle = selectionColor;
|
|
338
358
|
context.strokeRect(offset, offset, element.width, element.height);
|
|
339
359
|
context.restore();
|
|
340
360
|
};
|
|
@@ -352,7 +372,7 @@ export const renderElement = (element, elementsMap, allElementsMap, rc, context,
|
|
|
352
372
|
// TODO change later to only affect AI frames
|
|
353
373
|
if (isMagicFrameElement(element)) {
|
|
354
374
|
context.strokeStyle =
|
|
355
|
-
appState.theme ===
|
|
375
|
+
appState.theme === THEME.LIGHT ? "#7affd7" : "#1d8264";
|
|
356
376
|
}
|
|
357
377
|
if (FRAME_STYLE.radius && context.roundRect) {
|
|
358
378
|
context.beginPath();
|
|
@@ -386,7 +406,7 @@ export const renderElement = (element, elementsMap, allElementsMap, rc, context,
|
|
|
386
406
|
context.restore();
|
|
387
407
|
}
|
|
388
408
|
else {
|
|
389
|
-
const elementWithCanvas = generateElementWithCanvas(element,
|
|
409
|
+
const elementWithCanvas = generateElementWithCanvas(element, allElementsMap, renderConfig, appState);
|
|
390
410
|
drawElementFromCanvas(elementWithCanvas, context, renderConfig, appState, allElementsMap);
|
|
391
411
|
}
|
|
392
412
|
break;
|
|
@@ -470,7 +490,7 @@ export const renderElement = (element, elementsMap, allElementsMap, rc, context,
|
|
|
470
490
|
// canvases)
|
|
471
491
|
}
|
|
472
492
|
else {
|
|
473
|
-
const elementWithCanvas = generateElementWithCanvas(element,
|
|
493
|
+
const elementWithCanvas = generateElementWithCanvas(element, allElementsMap, renderConfig, appState);
|
|
474
494
|
const currentImageSmoothingStatus = context.imageSmoothingEnabled;
|
|
475
495
|
if (
|
|
476
496
|
// do not disable smoothing during zoom as blurry shapes look better
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { InteractiveCanvasAppState } from "../types";
|
|
1
|
+
import type { InteractiveCanvasAppState } from "../types";
|
|
2
2
|
export declare const renderSnaps: (context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState) => void;
|