@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
|
@@ -1,54 +1,74 @@
|
|
|
1
|
-
import{$ as d1,$a as ec,$b as W1,$c as lb,$d as yc,$e as Yb,$f as p0,A as tn,Aa as y1,Ab as Ht,Ac as Vn,Ad as gb,Ae as kc,Af as ji,B as Hn,Ba as E1,Bb as Pi,Bc as dc,Bd as bb,Be as Pb,Bf as i0,C as rl,Ca as w1,Cb as Di,Cc as xl,Cd as Ui,Ce as tp,Cf as Dc,D as ku,Da as Pu,Db as le,Dc as vl,Dd as pt,De as Or,Df as a0,E as Ws,Ea as rn,Eb as Bu,Ec as Vu,Ed as xb,Ee as Db,Ef as Rc,F as nl,Fa as C1,Fb as pl,Fc as q1,Fd as vb,Fe as Ic,Ff as Nc,G as Je,Ga as T1,Gb as Te,Gc as yl,Gd as yb,Ge as Rb,Gf as l0,H as Go,Ha as S1,Hb as Re,Hc as El,Hd as Kn,He as Il,Hf as Oc,I as kr,Ia as wo,Ib as Mr,Ic as Ku,Id as Nr,Ie as op,If as dr,J as _i,Ja as Du,Jb as O1,Jc as J1,Jd as xc,Je as Nb,Jf as cp,K as e1,Ka as Ko,Kb as _r,Kc as mc,Kd as Eb,Ke as Ob,Kf as s0,L as Iu,La as ll,Lb as F1,Lc as zi,Ld as wb,Le as Fb,Lf as Fc,M as Mu,Ma as Js,Mb as Ri,Mc as he,Md as $,Me as rp,Mf as c0,N as il,Na as Un,Nb as B1,Nc as Q1,Nd as ko,Ne as Mc,Nf as d0,O as t1,Oa as k1,Ob as cr,Oc as wl,Od as Ne,Oe as np,Of as d6,P as o1,Pa as I1,Pb as bt,Pc as eb,Pd as Cb,Pe as ip,Pf as mr,Q as Ir,Qa as Wn,Qb as Ni,Qc as tb,Qd as Yo,Qe as Bb,Qf as te,R as r1,Ra as ot,Rb as z1,Rc as Cl,Rd as dn,Re as zb,Rf as ue,S as Pt,Sa as N,Sb as H1,Sc as $t,Sd as ju,Se as Hb,Sf as Xi,T as Gs,Ta as Ve,Tb as $1,Tc as uc,Td as Tb,Te as $b,Tf as jn,U as n1,Ua as qt,Ub as ln,Uc as pc,Ud as vc,Ue as Ub,Uf as Al,V as i1,Va as sl,Vb as ao,Vc as fc,Vd as Tl,Ve as Wb,Vf as dp,W as a1,Wa as cl,Wb as U1,Wc as ob,Wd as mn,We as Gb,Wf as m0,X as l1,Xa as Qs,Xb as Ar,Xc as rb,Xd as Sb,Xe as _c,Xf as mp,Y as s1,Ya as Ru,Yb as sn,Yc as nb,Yd as kb,Ye as Ml,Yf as up,Z as c1,Za as Nu,Zb as fl,Zc as ib,Zd as Ib,Ze as Vb,Zf as pp,_ as $n,_a as Gn,_b as Jt,_c as ab,_d as Sl,_e as Kb,_f as u0,a as It,aa as m1,ab as M1,ac as hl,ad as lt,ae as Wi,af as Zb,ag as f0,b as Gg,ba as u1,bb as _1,bc as gl,bd as Lr,be as Ec,bf as jb,bg as h0,c as Bn,ca as Vs,cb as A1,cc as cn,cd as hc,ce as wc,cf as Ac,cg as g0,d as Vg,da as Ks,db as Ie,dc as bl,dd as sb,de as Xu,df as Xb,dg as b0,e as Kg,ea as _u,eb as L1,ec as zu,ed as cb,ee as Yn,ef as qb,eg as fp,f as Sr,fa as p1,fb as tc,fc as Hu,fd as db,fe as Mb,ff as ap,fg as qi,g as Bs,ga as f1,gb as oc,gc as $u,gd as Yu,ge as Gi,gf as Yi,gg as m6,h as zs,ha as h1,hb as Ai,hc as Oi,hd as mb,he as Vi,hf as Jb,hg as hp,i as Hs,ia as g1,ib as P1,ic as G1,id as Hi,ie as Ki,if as Qb,ig as gp,j as Yg,ja as b1,jb as Li,jc as V1,jd as Zu,je as _b,jf as e0,jg as be,k as Zg,ka as Ys,kb as dl,kc as K1,kd as ub,ke as Cc,kf as Lc,kg as bp,l as jg,la as on,lb as Dt,lc as Y1,ld as pb,le as qu,lf as t0,lg as Ji,m as Wo,ma as x1,mb as nn,mc as Z1,md as Pr,me as Ju,mf as Zi,mg as x0,n as $s,na as Au,nb as rc,nc as ac,nd as Co,ne as i6,nf as Zn,ng as xp,o as en,oa as v1,ob as D1,oc as Uu,od as Ke,oe as Qu,of as lp,og as Oe,p as Xg,pa as Zs,pb as Ou,pc as lc,pd as gc,pe as kl,pf as _l,pg as v0,q as qg,qa as Lu,qb as sr,qc as Wu,qd as To,qf as a6,qg as xe,r as tl,ra as vo,rb as Fu,rc as j1,rd as n6,rf as l6,rg as Qi,s as ol,sa as al,sb as nc,sc as Gu,sd as $i,sf as s6,sg as Fe,t as zn,ta as yo,tb as rt,tc as fe,td as So,tf as c6,tg as y0,u as Us,ua as js,ub as R1,uc as T,ud as Dr,uf as Pc,ug as Xn,v as Jg,va as Xs,vb as N1,vc as Fi,vd as fb,ve as Ab,vf as o0,vg as Fr,w as Tu,wa as Vo,wb as ic,wc as sc,wd as Rt,we as Lb,wf as sp,wg as Br,x as Qg,xa as qs,xb as ml,xc as Bi,xd as bc,xe as Tc,xf as r0,y as Su,ya as ut,yb as ul,yc as cc,yd as hb,ye as Sc,yf as un,z as De,za as Eo,zb as an,zc as X1,zd as Rr,ze as ep,zf as n0}from"./excalidraw-assets/chunk-LL4GORAM.js";import{a as h,b as E}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{E as Cu}from"./excalidraw-assets/chunk-CTYINSWT.js";import{aa as Wg}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as $g,d as lr,e as Ug,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var H=lr((hI,E0)=>{h();E0.exports=React});var A0=lr(Yc=>{"use strict";h();var w6=H(),C6=Symbol.for("react.element"),T6=Symbol.for("react.fragment"),S6=Object.prototype.hasOwnProperty,k6=w6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,I6={key:!0,ref:!0,__self:!0,__source:!0};function _0(t,e,o){var r,n={},i=null,a=null;o!==void 0&&(i=""+o),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(a=e.ref);for(r in e)S6.call(e,r)&&!I6.hasOwnProperty(r)&&(n[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)n[r]===void 0&&(n[r]=e[r]);return{$$typeof:C6,type:t,key:i,ref:a,props:n,_owner:k6.current}}Yc.Fragment=T6;Yc.jsx=_0;Yc.jsxs=_0});var S=lr((zI,L0)=>{"use strict";h();L0.exports=A0()});var pr=lr((n8,O0)=>{h();O0.exports=ReactDOM});var wh=lr((cW,KE)=>{h();var VE="Expected a function",WE=NaN,yT="[object Symbol]",ET=/^\s+|\s+$/g,wT=/^[-+]0x[0-9a-f]+$/i,CT=/^0b[01]+$/i,TT=/^0o[0-7]+$/i,ST=parseInt,kT=typeof global=="object"&&global&&global.Object===Object&&global,IT=typeof self=="object"&&self&&self.Object===Object&&self,MT=kT||IT||Function("return this")(),_T=Object.prototype,AT=_T.toString,LT=Math.max,PT=Math.min,Eh=function(){return MT.Date.now()};function DT(t,e,o){var r,n,i,a,l,s,c=0,m=!1,d=!1,f=!0;if(typeof t!="function")throw new TypeError(VE);e=GE(e)||0,ym(o)&&(m=!!o.leading,d="maxWait"in o,i=d?LT(GE(o.maxWait)||0,e):i,f="trailing"in o?!!o.trailing:f);function p(I){var A=r,P=n;return r=n=void 0,c=I,a=t.apply(P,A),a}function b(I){return c=I,l=setTimeout(w,e),m?p(I):a}function x(I){var A=I-s,P=I-c,F=e-A;return d?PT(F,i-P):F}function y(I){var A=I-s,P=I-c;return s===void 0||A>=e||A<0||d&&P>=i}function w(){var I=Eh();if(y(I))return k(I);l=setTimeout(w,x(I))}function k(I){return l=void 0,f&&r?p(I):(r=n=void 0,a)}function C(){l!==void 0&&clearTimeout(l),c=0,r=s=n=l=void 0}function M(){return l===void 0?a:k(Eh())}function _(){var I=Eh(),A=y(I);if(r=arguments,n=this,s=I,A){if(l===void 0)return b(s);if(d)return l=setTimeout(w,e),p(s)}return l===void 0&&(l=setTimeout(w,e)),a}return _.cancel=C,_.flush=M,_}function RT(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(VE);return ym(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),DT(t,e,{leading:r,maxWait:e,trailing:n})}function ym(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function NT(t){return!!t&&typeof t=="object"}function OT(t){return typeof t=="symbol"||NT(t)&&AT.call(t)==yT}function GE(t){if(typeof t=="number")return t;if(OT(t))return WE;if(ym(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=ym(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(ET,"");var o=CT.test(t);return o||TT.test(t)?ST(t.slice(2),o?2:8):wT.test(t)?WE:+t}KE.exports=RT});var tw=lr((QE,ew)=>{h();(function(){var t=this,e={};typeof QE<"u"?ew.exports=e:t.fuzzy=e,e.simpleFilter=function(o,r){return r.filter(function(n){return e.test(o,n)})},e.test=function(o,r){return e.match(o,r)!==null},e.match=function(o,r,n){n=n||{};var i=0,a=[],l=r.length,s=0,c=0,m=n.pre||"",d=n.post||"",f=n.caseSensitive&&r||r.toLowerCase(),p;o=n.caseSensitive&&o||o.toLowerCase();for(var b=0;b<l;b++)p=r[b],f[b]===o[i]?(p=m+p+d,i+=1,c+=1+c):c=0,s+=c,a[a.length]=p;return i===o.length?(s=f===o?1/0:s,{rendered:a.join(""),score:s}):null},e.filter=function(o,r,n){return!r||r.length===0?[]:typeof o!="string"?r:(n=n||{},r.reduce(function(i,a,l,s){var c=a;n.extract&&(c=n.extract(a));var m=e.match(o,c,n);return m!=null&&(i[i.length]={string:m.rendered,score:m.score,index:l,original:a}),i},[]).sort(function(i,a){var l=a.score-i.score;return l||i.index-a.index}))}})()});var lw=lr(aw=>{"use strict";h();var Ua=H();function JT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var QT=typeof Object.is=="function"?Object.is:JT,eS=Ua.useState,tS=Ua.useEffect,oS=Ua.useLayoutEffect,rS=Ua.useDebugValue;function nS(t,e){var o=e(),r=eS({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return oS(function(){n.value=o,n.getSnapshot=e,Sh(n)&&i({inst:n})},[t,o,e]),tS(function(){return Sh(n)&&i({inst:n}),t(function(){Sh(n)&&i({inst:n})})},[t]),rS(o),o}function Sh(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!QT(t,o)}catch{return!0}}function iS(t,e){return e()}var aS=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?iS:nS;aw.useSyncExternalStore=Ua.useSyncExternalStore!==void 0?Ua.useSyncExternalStore:aS});var cw=lr((qG,sw)=>{"use strict";h();sw.exports=lw()});var mw=lr(dw=>{"use strict";h();var Cm=H(),lS=cw();function sS(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var cS=typeof Object.is=="function"?Object.is:sS,dS=lS.useSyncExternalStore,mS=Cm.useRef,uS=Cm.useEffect,pS=Cm.useMemo,fS=Cm.useDebugValue;dw.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=mS(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=pS(function(){function s(p){if(!c){if(c=!0,m=p,p=r(p),n!==void 0&&a.hasValue){var b=a.value;if(n(b,p))return d=b}return d=p}if(b=d,cS(m,p))return b;var x=r(p);return n!==void 0&&n(b,x)?b:(m=p,d=x)}var c=!1,m,d,f=o===void 0?null:o;return[function(){return s(e())},f===null?void 0:function(){return s(f())}]},[e,o,r,n]);var l=dS(t,i[0],i[1]);return uS(function(){a.hasValue=!0,a.value=l},[l]),fS(l),l}});var pw=lr((tV,uw)=>{"use strict";h();uw.exports=mw()});h();var wu=v(H(),1);h();var qc=v(H(),1);h();h();h();h();var ft=v(H(),1);h();var u6=0;function w0(t,e){let o=`atom${++u6}`,r={toString:()=>o};return typeof t=="function"?r.read=t:(r.init=t,r.read=n=>n(r),r.write=(n,i,a)=>i(r,typeof a=="function"?a(n(r)):a)),e&&(r.write=e),r}var pn=Symbol(),yp=t=>!!t[pn],Bc=t=>!t[pn].c,Ll=t=>{var e;let{b:o,c:r}=t[pn];r&&(r(),(e=f6.get(o))==null||e())},Hc=(t,e)=>{let o=t[pn].o,r=e[pn].o;return o===r||t===r||yp(o)&&Hc(o,e)},Ep=(t,e)=>{let o={b:t,o:e,c:null},r=new Promise(n=>{o.c=()=>{o.c=null,n()},e.finally(o.c)});return r[pn]=o,r},p6=t=>Ep(t[pn].b,t[pn].o),f6=new WeakMap;var zc=t=>"init"in t,Pl="r",$c="w",Dl="c",Uc="s",C0="h",h6="n",g6="l",b6="a",x6="m",T0=t=>{let e=new WeakMap,o=new WeakMap,r=new Map,n,i;if((E&&E.MODE)!=="production"&&(n=new Set,i=new Set),t)for(let[R,B]of t){let V={v:B,r:0,y:!0,d:new Map};(E&&E.MODE)!=="production"&&(Object.freeze(V),zc(R)||console.warn("Found initial value for derived atom which can cause unexpected behavior",R)),e.set(R,V)}let a=new WeakMap,l=(R,B,V)=>{let Z=a.get(B);Z||(Z=new Map,a.set(B,Z)),V.then(()=>{Z.get(R)===V&&(Z.delete(R),Z.size||a.delete(B))}),Z.set(R,V)},s=R=>{let B=new Set,V=a.get(R);return V&&(a.delete(R),V.forEach((Z,Y)=>{Ll(Z),B.add(Y)})),B},c=new WeakMap,m=R=>{let B=c.get(R);return B||(B=new Map,c.set(R,B)),B},d=(R,B)=>{if(R){let V=m(R),Z=V.get(B);return Z||(Z=d(R.p,B),Z&&"p"in Z&&Bc(Z.p)&&(Z=void 0),Z&&V.set(B,Z)),Z}return e.get(B)},f=(R,B,V)=>{if((E&&E.MODE)!=="production"&&Object.freeze(V),R)m(R).set(B,V);else{let Z=e.get(B);e.set(B,V),r.has(B)||r.set(B,Z)}},p=(R,B=new Map,V)=>{if(!V)return B;let Z=new Map,Y=!1;return V.forEach(j=>{var J;let ne=((J=d(R,j))==null?void 0:J.r)||0;Z.set(j,ne),B.get(j)!==ne&&(Y=!0)}),B.size===Z.size&&!Y?B:Z},b=(R,B,V,Z,Y)=>{let j=d(R,B);if(j){if(Y&&(!("p"in j)||!Hc(j.p,Y)))return j;"p"in j&&Ll(j.p)}let J={v:V,r:j?.r||0,y:!0,d:p(R,j?.d,Z)},ne=!j?.y;return!j||!("v"in j)||!Object.is(j.v,V)?(ne=!0,++J.r,J.d.has(B)&&(J.d=new Map(J.d).set(B,J.r))):J.d!==j.d&&(J.d.size!==j.d.size||!Array.from(J.d.keys()).every(mt=>j.d.has(mt)))&&(ne=!0,Promise.resolve().then(()=>{K(R)})),j&&!ne?j:(f(R,B,J),J)},x=(R,B,V,Z,Y)=>{let j=d(R,B);if(j){if(Y&&(!("p"in j)||!Hc(j.p,Y)))return j;"p"in j&&Ll(j.p)}let J={e:V,r:(j?.r||0)+1,y:!0,d:p(R,j?.d,Z)};return f(R,B,J),J},y=(R,B,V,Z)=>{let Y=d(R,B);if(Y&&"p"in Y){if(Hc(Y.p,V)&&!Bc(Y.p))return Y.y?Y:{...Y,y:!0};Ll(Y.p)}l(R,B,V);let j={p:V,r:(Y?.r||0)+1,y:!0,d:p(R,Y?.d,Z)};return f(R,B,j),j},w=(R,B,V,Z)=>{if(V instanceof Promise){let Y=Ep(V,V.then(j=>{b(R,B,j,Z,Y)}).catch(j=>{if(j instanceof Promise)return yp(j)?j.then(()=>{C(R,B,!0)}):j;x(R,B,j,Z,Y)}));return y(R,B,Y,Z)}return b(R,B,V,Z)},k=(R,B)=>{let V=d(R,B);if(V){let Z={...V,y:!1};f(R,B,Z)}else(E&&E.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",B)},C=(R,B,V)=>{if(!V){let Y=d(R,B);if(Y){if(Y.y&&"p"in Y&&!Bc(Y.p))return Y;if(Y.d.forEach((j,J)=>{if(J!==B)if(!o.has(J))C(R,J);else{let ne=d(R,J);ne&&!ne.y&&C(R,J)}}),Array.from(Y.d).every(([j,J])=>{let ne=d(R,j);return ne&&!("p"in ne)&&ne.r===J}))return Y.y?Y:{...Y,y:!0}}}let Z=new Set;try{let Y=B.read(j=>{Z.add(j);let J=j===B?d(R,j):C(R,j);if(J){if("e"in J)throw J.e;if("p"in J)throw J.p;return J.v}if(zc(j))return j.init;throw new Error("no atom init")});return w(R,B,Y,Z)}catch(Y){if(Y instanceof Promise){let j=yp(Y)&&Bc(Y)?p6(Y):Ep(Y,Y);return y(R,B,j,Z)}return x(R,B,Y,Z)}},M=(R,B)=>C(B,R),_=(R,B)=>{let V=o.get(B);return V||(V=O(R,B)),V},I=(R,B)=>!B.l.size&&(!B.t.size||B.t.size===1&&B.t.has(R)),A=(R,B)=>{let V=o.get(B);V&&I(B,V)&&U(R,B)},P=(R,B)=>{let V=o.get(B);V?.t.forEach(Z=>{Z!==B&&(k(R,Z),P(R,Z))})},F=(R,B,V)=>{let Z=!0,Y=(ne,mt)=>{let tt=C(R,ne);if("e"in tt)throw tt.e;if("p"in tt){if(mt?.unstable_promise)return tt.p.then(()=>{let at=d(R,ne);return at&&"p"in at&&at.p===tt.p?new Promise(He=>setTimeout(He)).then(()=>Y(ne,mt)):Y(ne,mt)});throw(E&&E.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ne),tt.p}if("v"in tt)return tt.v;throw(E&&E.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ne),new Error("no value found")},j=(ne,mt)=>{let tt;if(ne===B){if(!zc(ne))throw new Error("atom not writable");s(ne).forEach(Fs=>{Fs!==R&&w(Fs,ne,mt)});let He=d(R,ne),Xt=w(R,ne,mt);He!==Xt&&P(R,ne)}else tt=F(R,ne,mt);return Z||K(R),tt},J=B.write(Y,j,V);return Z=!1,J},D=(R,B,V)=>{let Z=F(V,R,B);return K(V),Z},W=R=>!!R.write,O=(R,B,V)=>{let Z={t:new Set(V&&[V]),l:new Set};if(o.set(B,Z),(E&&E.MODE)!=="production"&&i.add(B),C(void 0,B).d.forEach((j,J)=>{let ne=o.get(J);ne?ne.t.add(B):J!==B&&O(R,J,B)}),W(B)&&B.onMount){let j=ne=>D(B,ne,R),J=B.onMount(j);R=void 0,J&&(Z.u=J)}return Z},U=(R,B)=>{var V;let Z=(V=o.get(B))==null?void 0:V.u;Z&&Z(),o.delete(B),(E&&E.MODE)!=="production"&&i.delete(B);let Y=d(R,B);Y?("p"in Y&&Ll(Y.p),Y.d.forEach((j,J)=>{if(J!==B){let ne=o.get(J);ne&&(ne.t.delete(B),I(J,ne)&&U(R,J))}})):(E&&E.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",B)},ee=(R,B,V,Z)=>{let Y=new Set(V.d.keys());Z?.forEach((j,J)=>{if(Y.has(J)){Y.delete(J);return}let ne=o.get(J);ne&&(ne.t.delete(B),I(J,ne)&&U(R,J))}),Y.forEach(j=>{let J=o.get(j);J?J.t.add(B):o.has(B)&&O(R,j,B)})},K=R=>{if(R){m(R).forEach((V,Z)=>{let Y=e.get(Z);if(V!==Y){let j=o.get(Z);j?.l.forEach(J=>J(R))}});return}for(;r.size;){let B=Array.from(r);r.clear(),B.forEach(([V,Z])=>{let Y=d(void 0,V);if(Y&&Y.d!==Z?.d&&ee(void 0,V,Y,Z?.d),Z&&!Z.y&&Y?.y)return;let j=o.get(V);j?.l.forEach(J=>J())})}(E&&E.MODE)!=="production"&&n.forEach(B=>B())},pe=R=>{m(R).forEach((V,Z)=>{let Y=e.get(Z);(!Y||V.r>Y.r||V.y!==Y.y||V.r===Y.r&&V.d!==Y.d)&&(e.set(Z,V),V.d!==Y?.d&&ee(R,Z,V,Y?.d))})},me=(R,B)=>{B&&pe(B),K(void 0)},ce=(R,B,V)=>{let Y=_(V,R).l;return Y.add(B),()=>{Y.delete(B),A(V,R)}},oe=(R,B)=>{for(let[V,Z]of R)zc(V)&&(w(B,V,Z),P(B,V));K(B)};return(E&&E.MODE)!=="production"?{[Pl]:M,[$c]:D,[Dl]:me,[Uc]:ce,[C0]:oe,[h6]:R=>(n.add(R),()=>{n.delete(R)}),[g6]:()=>i.values(),[b6]:R=>e.get(R),[x6]:R=>o.get(R)}:{[Pl]:M,[$c]:D,[Dl]:me,[Uc]:ce,[C0]:oe}},S0=t=>{let e=T0(t),o=a=>{let l=e[Pl](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,s)=>{let c=e[Pl](a);"e"in c?s(c.e):"p"in c?l(c.p.then(()=>r(a))):l(c.v)});return{get:o,asyncGet:r,set:(a,l)=>e[$c](a,l),sub:(a,l)=>e[Uc](a,l),SECRET_INTERNAL_store:e}},k0=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:T0(t)}),vp=new Map,wp=t=>(vp.has(t)||vp.set(t,(0,ft.createContext)(k0())),vp.get(t)),Wc=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,ft.useState)({});(0,ft.useEffect)(()=>{let c=l.current;c.w&&(c.s[Dl](null,i),delete i.p,c.v=i)},[i]);let l=(0,ft.useRef)();if(!l.current){let c=k0(e,r);if(n){let m=0;c.w=d=>{a(f=>{let p=m?f:{p:f};return d(p),p})},c.v=i,c.r=d=>{++m,d(),--m}}l.current=c}let s=wp(o);return(0,ft.createElement)(s.Provider,{value:l.current},t)};function $e(t,e){return w0(t,e)}function Rl(t,e){let o=wp(e),r=(0,ft.useContext)(o),{s:n,v:i}=r,a=f=>{let p=n[Pl](t,f);if((E&&E.MODE)!=="production"&&!p.y)throw new Error("should not be invalidated");if("e"in p)throw p.e;if("p"in p)throw p.p;if("v"in p)return p.v;throw new Error("no atom value")},[[l,s,c],m]=(0,ft.useReducer)((f,p)=>{let b=a(p);return Object.is(f[1],b)&&f[2]===t?f:[p,b,t]},i,f=>{let p=a(f);return[f,p,t]}),d=s;return c!==t&&(m(l),d=a(l)),(0,ft.useEffect)(()=>{let{v:f}=r;f&&n[Dl](t,f);let p=n[Uc](t,m,f);return m(f),p},[n,t,r]),(0,ft.useEffect)(()=>{n[Dl](t,l)}),(0,ft.useDebugValue)(d),d}function zr(t,e){let o=wp(e),{s:r,w:n}=(0,ft.useContext)(o);return(0,ft.useCallback)(a=>{if((E&&E.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=s=>r[$c](t,a,s);return n?n(l):l()},[r,n,t])}function Ee(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[Rl(t,e),zr(t,e)]}var v6=v(H(),1),Pe=Symbol(),Ut=S0();var y6=$g({"./locales/ar-SA.json":()=>import("./excalidraw-assets/ar-SA-MV5ZQ2W5.js"),"./locales/az-AZ.json":()=>import("./excalidraw-assets/az-AZ-BK6PNAXT.js"),"./locales/bg-BG.json":()=>import("./excalidraw-assets/bg-BG-GCTBXIHZ.js"),"./locales/bn-BD.json":()=>import("./excalidraw-assets/bn-BD-QTMQMM2A.js"),"./locales/ca-ES.json":()=>import("./excalidraw-assets/ca-ES-CJKR7U4D.js"),"./locales/cs-CZ.json":()=>import("./excalidraw-assets/cs-CZ-E6RD7VRF.js"),"./locales/da-DK.json":()=>import("./excalidraw-assets/da-DK-GA7WAOB4.js"),"./locales/de-DE.json":()=>import("./excalidraw-assets/de-DE-WQGVYODE.js"),"./locales/el-GR.json":()=>import("./excalidraw-assets/el-GR-JRKZ7DCA.js"),"./locales/en.json":()=>import("./excalidraw-assets/en-LROPV2RN.js"),"./locales/es-ES.json":()=>import("./excalidraw-assets/es-ES-NNAEPTPN.js"),"./locales/eu-ES.json":()=>import("./excalidraw-assets/eu-ES-UXVZRSMJ.js"),"./locales/fa-IR.json":()=>import("./excalidraw-assets/fa-IR-FFXQODN6.js"),"./locales/fi-FI.json":()=>import("./excalidraw-assets/fi-FI-FVRWY4PK.js"),"./locales/fr-FR.json":()=>import("./excalidraw-assets/fr-FR-YRAHLNH4.js"),"./locales/gl-ES.json":()=>import("./excalidraw-assets/gl-ES-O3MFXO2J.js"),"./locales/he-IL.json":()=>import("./excalidraw-assets/he-IL-UQHONTOV.js"),"./locales/hi-IN.json":()=>import("./excalidraw-assets/hi-IN-QGM3FMHS.js"),"./locales/hu-HU.json":()=>import("./excalidraw-assets/hu-HU-FW4UHMDU.js"),"./locales/id-ID.json":()=>import("./excalidraw-assets/id-ID-QOMISFYK.js"),"./locales/it-IT.json":()=>import("./excalidraw-assets/it-IT-NXPSTWVC.js"),"./locales/ja-JP.json":()=>import("./excalidraw-assets/ja-JP-Z7I24KT4.js"),"./locales/kaa.json":()=>import("./excalidraw-assets/kaa-TXMSCJDQ.js"),"./locales/kab-KAB.json":()=>import("./excalidraw-assets/kab-KAB-RJXRUTDO.js"),"./locales/kk-KZ.json":()=>import("./excalidraw-assets/kk-KZ-JXPULSST.js"),"./locales/km-KH.json":()=>import("./excalidraw-assets/km-KH-WRGO6AYW.js"),"./locales/ko-KR.json":()=>import("./excalidraw-assets/ko-KR-GAYOVASS.js"),"./locales/ku-TR.json":()=>import("./excalidraw-assets/ku-TR-DJF4NWRZ.js"),"./locales/lt-LT.json":()=>import("./excalidraw-assets/lt-LT-QQGY3S4X.js"),"./locales/lv-LV.json":()=>import("./excalidraw-assets/lv-LV-H55DY45V.js"),"./locales/mr-IN.json":()=>import("./excalidraw-assets/mr-IN-QYT2ELER.js"),"./locales/my-MM.json":()=>import("./excalidraw-assets/my-MM-RRPBSH5R.js"),"./locales/nb-NO.json":()=>import("./excalidraw-assets/nb-NO-AMX3MAHH.js"),"./locales/nl-NL.json":()=>import("./excalidraw-assets/nl-NL-LZSLKN37.js"),"./locales/nn-NO.json":()=>import("./excalidraw-assets/nn-NO-WWXPMJY7.js"),"./locales/oc-FR.json":()=>import("./excalidraw-assets/oc-FR-GPZCMCGX.js"),"./locales/pa-IN.json":()=>import("./excalidraw-assets/pa-IN-L5H3H4OA.js"),"./locales/percentages.json":()=>import("./excalidraw-assets/percentages-L6Y3A3ZS.js"),"./locales/pl-PL.json":()=>import("./excalidraw-assets/pl-PL-SYTLCLU7.js"),"./locales/pt-BR.json":()=>import("./excalidraw-assets/pt-BR-BJOSVXBP.js"),"./locales/pt-PT.json":()=>import("./excalidraw-assets/pt-PT-QHWDKICL.js"),"./locales/ro-RO.json":()=>import("./excalidraw-assets/ro-RO-AVSXCJHH.js"),"./locales/ru-RU.json":()=>import("./excalidraw-assets/ru-RU-5Z6AY4FG.js"),"./locales/si-LK.json":()=>import("./excalidraw-assets/si-LK-OMROCHR3.js"),"./locales/sk-SK.json":()=>import("./excalidraw-assets/sk-SK-TLXIBWPH.js"),"./locales/sl-SI.json":()=>import("./excalidraw-assets/sl-SI-JELDMWCI.js"),"./locales/sv-SE.json":()=>import("./excalidraw-assets/sv-SE-2FAONS47.js"),"./locales/ta-IN.json":()=>import("./excalidraw-assets/ta-IN-XN7DVSDK.js"),"./locales/th-TH.json":()=>import("./excalidraw-assets/th-TH-VCIYWJPR.js"),"./locales/tr-TR.json":()=>import("./excalidraw-assets/tr-TR-6QL6T7SM.js"),"./locales/uk-UA.json":()=>import("./excalidraw-assets/uk-UA-Y6YRBHAO.js"),"./locales/vi-VN.json":()=>import("./excalidraw-assets/vi-VN-34I6LTAE.js"),"./locales/zh-CN.json":()=>import("./excalidraw-assets/zh-CN-IGKEMUHO.js"),"./locales/zh-HK.json":()=>import("./excalidraw-assets/zh-HK-MDAU5TWB.js"),"./locales/zh-TW.json":()=>import("./excalidraw-assets/zh-TW-DOGEFI3C.js")});var E6=85,ur={code:"en",label:"English"},ta=[ur,...[{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",rtl:!0},{code:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438"},{code:"ca-ES",label:"Catal\xE0"},{code:"cs-CZ",label:"\u010Cesky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC"},{code:"es-ES",label:"Espa\xF1ol"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Fran\xE7ais"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",rtl:!0},{code:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4"},{code:"ku-TR",label:"Kurd\xEE"},{code:"lt-LT",label:"Lietuvi\u0173"},{code:"lv-LV",label:"Latvie\u0161u"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokm\xE5l"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Portugu\xEAs Brasileiro"},{code:"pt-PT",label:"Portugu\xEAs"},{code:"ro-RO",label:"Rom\xE2n\u0103"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{code:"sk-SK",label:"Sloven\u010Dina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Sloven\u0161\u010Dina"},{code:"tr-TR",label:"T\xFCrk\xE7e"},{code:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{code:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587"},{code:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587"},{code:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t"},{code:"mr-IN",label:"\u092E\u0930\u093E\u0920\u0940"}].filter(t=>Wg[t.code]>=E6).sort((t,e)=>t.label>e.label?1:-1)],Vc="__test__";E.DEV&&ta.unshift({code:Vc,label:"test language"},{code:`${Vc}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var ea=ur,Gc={},Kc=async t=>{if(ea=t,document.documentElement.dir=ea.rtl?"rtl":"ltr",document.documentElement.lang=ea.code,t.code.startsWith(Vc))Gc={};else try{Gc=await y6(`./locales/${ea.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),Gc=Cu}Ut.set(M0,t.code)},Hr=()=>ea,I0=(t,e)=>{for(let o=0;o<e.length;++o){let r=e[o];if(t[r]===void 0)return;t=t[r]}if(typeof t=="string")return t},g=(t,e,o)=>{if(ea.code.startsWith(Vc))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=I0(Gc,r)||I0(Cu,r)||o;if(n===void 0){let i=`Can't find translation for ${t}`;if(E.PROD)return console.warn(i),"";throw new Error(i)}if(e)for(let i in e)n=n.replace(`{{${i}}}`,String(e[i]));return n},M0=$e(ur.code),xt=()=>{let t=Rl(M0,Pe);return{t:g,langCode:t}};var jc=v(H(),1);h();var P0=v(H(),1);var Zc=v(S(),1),M6=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(P0.default.useRef(Date.now()).current%1600);return(0,Zc.jsx)("div",{className:"Spinner",children:(0,Zc.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,Zc.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Nt=M6;h();function D0(t){var e,o,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(o=D0(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function z(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=D0(e))&&(r&&(r+=" "),r+=o);return r}var oa=v(S(),1),Xc=({delay:t,theme:e})=>{let[o,r]=(0,jc.useState)(!!t);return(0,jc.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,oa.jsxs)("div",{className:z("LoadingMessage",{"LoadingMessage--dark":e===Je.DARK}),children:[(0,oa.jsx)("div",{children:(0,oa.jsx)(Nt,{})}),(0,oa.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var N0=v(S(),1),R0=t=>{let[e,o]=(0,qc.useState)(!0);return(0,qc.useEffect)(()=>{let r=async()=>{await Kc(n),o(!1)},n=ta.find(i=>i.code===t.langCode)||ur;r()},[t.langCode]),e?(0,N0.jsx)(Xc,{theme:t.theme}):t.children};h();var Tt=v(H(),1),hu=v(pr(),1);h();h();h();var Zo=v(H(),1);var Io=v(S(),1),se=Zo.default.forwardRef((t,e)=>{let{id:o}=Mt(),r=Zo.default.useRef(null);Zo.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,Zo.useState)(!1),l=(0,Zo.useRef)(!0),s=async m=>{let d="onClick"in t&&t.onClick?.(m);if(Li(d))try{a(!0),await d}catch(f){if(f instanceof Ki)console.warn(f);else throw f}finally{l.current&&a(!1)}};(0,Zo.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let c=(0,Zo.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let m=t.type==="icon"?"button":t.type;return(0,Io.jsxs)("button",{className:z("ToolIcon_type_button",n,t.className,t.visible&&!t.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!t.hidden,"ToolIcon--selected":t.selected,"ToolIcon--plain":t.type==="icon"}),style:t.style,"data-testid":t["data-testid"],hidden:t.hidden,title:t.title,"aria-label":t["aria-label"],type:m,onClick:s,ref:r,disabled:i||t.isLoading,children:[(t.icon||t.label)&&(0,Io.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true",children:[t.icon||t.label,t.keyBindingLabel&&(0,Io.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Io.jsx)(Nt,{})]}),t.showAriaLabel&&(0,Io.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Io.jsx)(Nt,{})]}),t.children]})}return(0,Io.jsxs)("label",{className:z("ToolIcon",t.className),title:t.title,onPointerDown:m=>{c.current=m.pointerType||null,t.onPointerDown?.({pointerType:m.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{c.current=null})},children:[(0,Io.jsx)("input",{className:`ToolIcon_type_radio ${n}`,type:"radio",name:t.name,"aria-label":t["aria-label"],"aria-keyshortcuts":t["aria-keyshortcuts"],"data-testid":t["data-testid"],id:`${o}-${t.id}`,onChange:()=>{t.onChange?.({pointerType:c.current})},checked:t.checked,ref:r}),(0,Io.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Io.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});se.defaultProps={visible:!0,className:"",size:"medium"};se.displayName="ToolButton";h();var Qt=v(H(),1);var u=v(S(),1),jo=t=>"var(--icon-fill-color)",F0=t=>t===Je.LIGHT?It.white:"#1e1e1e",L=(t,e=512)=>{let{width:o=512,height:r=o,mirror:n,style:i,...a}=typeof e=="number"?{width:e}:e;return(0,u.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:z({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,u.jsx)("path",{fill:"currentColor",d:t}):t})},Q={width:24,height:24,fill:"none",strokeWidth:2,stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},de={width:20,height:20,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},y8=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,u.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,u.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,u.jsx)("path",{d:"M7.5 8a2.5 2.5 0 0 1 0 -5a4.8 8 0 0 1 4.5 5a4.8 8 0 0 1 4.5 -5a2.5 2.5 0 0 1 0 5"})]}),Q),Jc=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,u.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,u.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,u.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,u.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),Q),B0=L((0,u.jsxs)("svg",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,u.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),Q),z0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,u.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,u.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),Q),H0=L((0,u.jsxs)("svg",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,u.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,u.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),Q),qn=L((0,u.jsxs)("g",{children:[(0,u.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,u.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,u.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,u.jsx)("path",{stroke:"none",d:"M6.399 9.561V5.175c0-.93.401-1.823 1.116-2.48a3.981 3.981 0 0 1 2.693-1.028c1.01 0 1.98.37 2.694 1.027.715.658 1.116 1.55 1.116 2.481",fill:"#fff"})}),(0,u.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,u.jsx)("path",{stroke:"none",d:"M5.149 9.561v1.25h2.5v-1.25h-2.5Zm5.06-7.894V.417v1.25Zm2.559 3.508v1.25h2.5v-1.25h-2.5ZM7.648 8.51V5.175h-2.5V8.51h2.5Zm0-3.334c0-.564.243-1.128.713-1.561L6.668 1.775c-.959.883-1.52 2.104-1.52 3.4h2.5Zm.713-1.561a2.732 2.732 0 0 1 1.847-.697v-2.5c-1.31 0-2.585.478-3.54 1.358L8.36 3.614Zm1.847-.697c.71 0 1.374.26 1.847.697l1.694-1.839a5.231 5.231 0 0 0-3.54-1.358v2.5Zm1.847.697c.47.433.713.997.713 1.561h2.5c0-1.296-.56-2.517-1.52-3.4l-1.693 1.839Z",fill:"currentColor"})})]}),de),ra=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M13.542 8.542H6.458a2.5 2.5 0 0 0-2.5 2.5v3.75a2.5 2.5 0 0 0 2.5 2.5h7.084a2.5 2.5 0 0 0 2.5-2.5v-3.75a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,u.jsx)("path",{d:"M10 13.958a1.042 1.042 0 1 0 0-2.083 1.042 1.042 0 0 0 0 2.083Z"}),(0,u.jsx)("path",{d:"M6.667 8.333V5.417C6.667 3.806 8.159 2.5 10 2.5c1.841 0 3.333 1.306 3.333 2.917v2.916"})]}),de),$0=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{d:"M38.5 83.5c-14-2-17.833-10.473-21-22.5C14.333 48.984 12 22 12 12.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,u.jsx)("path",{d:"M12.005 10.478c1.92 3.495 3.838 7 7.905 14.423m-7.905-14.423c3.11 5.683 6.23 11.368 7.905 14.423m0 0c-3.68.226-7.35.455-13.91.85m13.91-.85c-5.279.33-10.566.647-13.91.85m0 0c1.936-4.931 3.882-9.86 6.005-15.273M6 25.75c2.069-5.257 4.135-10.505 6.005-15.272",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:41,height:94,fill:"none"}),U0=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{d:"M18.026 1.232c-5.268 13.125-5.548 33.555 3.285 42.311 8.823 8.75 33.31 12.304 42.422 13.523",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m72.181 59.247-13.058-10-2.948 13.62 16.006-3.62Z",fill:"currentColor"}),(0,u.jsx)("path",{d:"M72.181 59.247c-3.163-2.429-6.337-4.856-13.058-10m13.058 10c-5.145-3.936-10.292-7.882-13.058-10m0 0c-.78 3.603-1.563 7.196-2.948 13.62m2.948-13.62c-1.126 5.168-2.24 10.346-2.948 13.62m0 0c5.168-1.166 10.334-2.343 16.006-3.62m-16.006 3.62c5.51-1.248 11.01-2.495 16.006-3.62",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:85,height:71,fill:"none"}),W0=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{d:"M1 77c14-2 31.833-11.973 35-24 3.167-12.016-6-35-9.5-43.5",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"}),(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m24.165 1.093-2.132 16.309 13.27-4.258-11.138-12.05Z",fill:"currentColor"}),(0,u.jsx)("path",{d:"M24.165 1.093c-.522 3.953-1.037 7.916-2.132 16.309m2.131-16.309c-.835 6.424-1.68 12.854-2.13 16.308m0 0c3.51-1.125 7.013-2.243 13.27-4.257m-13.27 4.257c5.038-1.608 10.08-3.232 13.27-4.257m0 0c-3.595-3.892-7.197-7.777-11.14-12.05m11.14 12.05c-3.837-4.148-7.667-8.287-11.14-12.05",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round"})]}),{width:38,height:78,fill:"none"}),E8=L((0,u.jsx)("g",{fill:"currentColor",children:(0,u.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),{width:40,height:40,fill:"none"}),G0=L((0,u.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M6 6l4.153 11.793a0.365 .365 0 0 0 .331 .207a0.366 .366 0 0 0 .332 -.207l2.184 -4.793l4.787 -1.994a0.355 .355 0 0 0 .213 -.323a0.355 .355 0 0 0 -.213 -.323l-11.787 -4.36z"}),(0,u.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),V0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),Q),K0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M10.5 20.4l-6.9 -6.9c-.781 -.781 -.781 -2.219 0 -3l6.9 -6.9c.781 -.781 2.219 -.781 3 0l6.9 6.9c.781 .781 .781 2.219 0 3l-6.9 6.9c-.781 .781 -2.219 .781 -3 0z"})]}),Q),Y0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),Q),Z0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,u.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,u.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),Q),j0=L((0,u.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),de),X0=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,u.jsx)("path",{d:"M16 7h4"}),(0,u.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),Q),na=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{clipRule:"evenodd",d:"m7.643 15.69 7.774-7.773a2.357 2.357 0 1 0-3.334-3.334L4.31 12.357a3.333 3.333 0 0 0-.977 2.357v1.953h1.953c.884 0 1.732-.352 2.357-.977Z"}),(0,u.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),de),q0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,u.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,u.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,u.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,u.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),Q),J0=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M12.5 6.667h.01"}),(0,u.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z"}),(0,u.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,u.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),de),Q0=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M19 20h-10.5l-4.21 -4.3a1 1 0 0 1 0 -1.41l10 -10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41l-9.2 9.3"}),(0,u.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),Q),Cp=L((0,u.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),de),Tp=L((0,u.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),de),ex=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M21 21l-6 -6"}),(0,u.jsx)("path",{d:"M3.268 12.043a7.017 7.017 0 0 0 6.634 4.957a7.012 7.012 0 0 0 7.043 -6.131a7 7 0 0 0 -5.314 -7.672a7.021 7.021 0 0 0 -8.241 4.403"}),(0,u.jsx)("path",{d:"M3 4v4h4"})]}),Q),Xo=L((0,u.jsx)("path",{strokeWidth:"1.25",d:"M3.333 5.833h13.334M8.333 9.167v5M11.667 9.167v5M4.167 5.833l.833 10c0 .92.746 1.667 1.667 1.667h6.666c.92 0 1.667-.746 1.667-1.667l.833-10M7.5 5.833v-2.5c0-.46.373-.833.833-.833h3.334c.46 0 .833.373.833.833v2.5"}),de),tx=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,u.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),de),Nl=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M14.375 6.458H8.958a2.5 2.5 0 0 0-2.5 2.5v5.417a2.5 2.5 0 0 0 2.5 2.5h5.417a2.5 2.5 0 0 0 2.5-2.5V8.958a2.5 2.5 0 0 0-2.5-2.5Z"}),(0,u.jsx)("path",{clipRule:"evenodd",d:"M11.667 3.125c.517 0 .986.21 1.325.55.34.338.55.807.55 1.325v1.458H8.333c-.485 0-.927.185-1.26.487-.343.312-.57.75-.609 1.24l-.005 5.357H5a1.87 1.87 0 0 1-1.326-.55 1.87 1.87 0 0 1-.549-1.325V5c0-.518.21-.987.55-1.326.338-.34.807-.549 1.325-.549h6.667Z"})]}),de),Qc=L((0,u.jsx)("path",{clipRule:"evenodd",d:"M10 2.5h.328a6.25 6.25 0 0 0 6.6 10.372A7.5 7.5 0 1 1 10 2.493V2.5Z",stroke:"currentColor"}),de),ed=L((0,u.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,u.jsx)("path",{d:"M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM10 4.167V2.5M14.167 5.833l1.166-1.166M15.833 10H17.5M14.167 14.167l1.166 1.166M10 15.833V17.5M5.833 14.167l-1.166 1.166M5 10H3.333M5.833 5.833 4.667 4.667"})}),de),td=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,u.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,u.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),Q),Jn=L((0,u.jsx)("path",{strokeWidth:"1.25",d:"M3.333 14.167v1.666c0 .92.747 1.667 1.667 1.667h10c.92 0 1.667-.746 1.667-1.667v-1.666M5.833 9.167 10 13.333l4.167-4.166M10 3.333v10"}),de),ia=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,u.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,u.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),ox=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,u.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,u.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),od=L((0,u.jsx)("path",{strokeWidth:"1.25",d:"M9.167 5.833H5.833c-1.254 0-2.5 1.282-2.5 2.5v5.834c0 1.283 1.252 2.5 2.5 2.5h5.834c1.251 0 2.5-1.25 2.5-2.5v-3.334M8.333 11.667l8.334-8.334M12.5 3.333h4.167V7.5"}),de),rx=L((0,u.jsx)("path",{d:"M7.5 15.833c-3.583 1.167-3.583-2.083-5-2.5m10 4.167v-2.917c0-.833.083-1.166-.417-1.666 2.334-.25 4.584-1.167 4.584-5a3.833 3.833 0 0 0-1.084-2.667 3.5 3.5 0 0 0-.083-2.667s-.917-.25-2.917 1.084a10.25 10.25 0 0 0-5.166 0C5.417 2.333 4.5 2.583 4.5 2.583a3.5 3.5 0 0 0-.083 2.667 3.833 3.833 0 0 0-1.084 2.667c0 3.833 2.25 4.75 4.584 5-.5.5-.5 1-.417 1.666V17.5",strokeWidth:"1.25"}),de),nx=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M7.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM12.5 10.833a.833.833 0 1 0 0-1.666.833.833 0 0 0 0 1.666ZM6.25 6.25c2.917-.833 4.583-.833 7.5 0M5.833 13.75c2.917.833 5.417.833 8.334 0"}),(0,u.jsx)("path",{d:"M12.917 14.167c0 .833 1.25 2.5 1.666 2.5 1.25 0 2.361-1.39 2.917-2.5.556-1.39.417-4.861-1.25-9.584-1.214-.846-2.5-1.116-3.75-1.25l-.833 2.084M7.083 14.167c0 .833-1.13 2.5-1.526 2.5-1.191 0-2.249-1.39-2.778-2.5-.529-1.39-.397-4.861 1.19-9.584 1.157-.846 2.318-1.116 3.531-1.25l.833 2.084"})]}),de),ix=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,u.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),Q),ax=L((0,u.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Ol=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M8.333 11.667a2.917 2.917 0 0 0 4.167 0l3.333-3.334a2.946 2.946 0 1 0-4.166-4.166l-.417.416"}),(0,u.jsx)("path",{d:"M11.667 8.333a2.917 2.917 0 0 0-4.167 0l-3.333 3.334a2.946 2.946 0 0 0 4.166 4.166l.417-.416"})]}),de),lx=L("M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z",{width:448,height:512}),sx=L("M252 54L203 8a28 27 0 00-20-8H28C12 0 0 12 0 27v195c0 15 12 26 28 26h204c15 0 28-11 28-26V73a28 27 0 00-8-19zM130 213c-21 0-37-16-37-36 0-19 16-35 37-35 20 0 37 16 37 35 0 20-17 36-37 36zm56-169v56c0 4-4 6-7 6H44c-4 0-7-2-7-6V42c0-4 3-7 7-7h133l4 2 3 2a7 7 0 012 5z M296 201l87 95-188 205-78 9c-10 1-19-8-18-20l9-84zm141-14l-41-44a31 31 0 00-46 0l-38 41 87 95 38-42c13-14 13-36 0-50z",{width:448,height:512}),aa=L((0,u.jsx)("path",{d:"m9.257 6.351.183.183H15.819c.34 0 .727.182 1.051.506.323.323.505.708.505 1.05v5.819c0 .316-.183.7-.52 1.035-.337.338-.723.522-1.037.522H4.182c-.352 0-.74-.181-1.058-.5-.318-.318-.499-.705-.499-1.057V5.182c0-.351.181-.736.5-1.054.32-.321.71-.503 1.057-.503H6.53l2.726 2.726Z",strokeWidth:"1.25"}),de),w8=L("M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z",{width:384,height:512}),cx=L("M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"),rd=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z"}),(0,u.jsx)("path",{d:"M13.737 9.737c2.299 -2.3 3.23 -5.095 2.081 -6.245c-1.15 -1.15 -3.945 -.217 -6.244 2.082c-2.3 2.299 -3.231 5.095 -2.082 6.244c1.15 1.15 3.946 .218 6.245 -2.081z"}),(0,u.jsx)("path",{d:"M7.492 11.818c.362 .362 .768 .676 1.208 .934l6.895 4.047c1.078 .557 2.255 -.075 3.692 -1.512c1.437 -1.437 2.07 -2.614 1.512 -3.692c-.372 -.718 -1.72 -3.017 -4.047 -6.895a6.015 6.015 0 0 0 -.934 -1.208"})]}),Q),nd=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M15 8h.01"}),(0,u.jsx)("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),(0,u.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,u.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,u.jsx)("path",{d:"M19 16v6"}),(0,u.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),Q),dx=L("M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z",{width:512,height:512}),C8=L("M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),T8=L("M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z",{width:448,height:512}),mx=L("M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"),S8=L("M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"),Sp=L((0,u.jsx)("path",{d:"M7.5 10.833 4.167 7.5 7.5 4.167M4.167 7.5h9.166a3.333 3.333 0 0 1 0 6.667H12.5",strokeWidth:"1.25"}),de),kp=L((0,u.jsx)("path",{d:"M12.5 10.833 15.833 7.5 12.5 4.167M15.833 7.5H6.667a3.333 3.333 0 1 0 0 6.667H7.5",strokeWidth:"1.25"}),de),ux=L("M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z",{mirror:!0}),px=L((0,u.jsx)("path",{d:"M5 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM15 17.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM7.25 8.917l5.5-2.834M7.25 11.083l5.5 2.834",strokeWidth:"1.5"}),de),k8=L("M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"),I8=L("M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6c-1.11 0-2-.9-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3c1.1 0 2 .89 2 2z",{width:24,height:24}),M8=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M8 9h-1a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-8a2 2 0 0 0 -2 -2h-1"}),(0,u.jsx)("path",{d:"M12 14v-11"}),(0,u.jsx)("path",{d:"M9 6l3 -3l3 3"})]}),Q),_8=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{fill:"currentColor",d:"M40 5.6v6.1l-4.1.7c-8.9 1.4-16.5 6.9-20.6 15C13 32 10.9 43 12.4 43c.4 0 2.4-1.3 4.4-3 5-3.9 12.1-7 18.2-7.7l5-.6v12.8l11.2-11.3L62.5 22 51.2 10.8 40-.5v6.1zm10.2 22.6L44 34.5v-6.8l-6.9.6c-3.9.3-9.8 1.7-13.2 3.1-3.5 1.4-6.5 2.4-6.7 2.2-.9-1 3-7.5 6.4-10.8C28 18.6 34.4 16 40.1 16c3.7 0 3.9-.1 3.9-3.2V9.5l6.2 6.3 6.3 6.2-6.3 6.2z"}),(0,u.jsx)("path",{stroke:"currentColor",fill:"currentColor",d:"M0 36v20h48v-6.2c0-6 0-6.1-2-4.3-1.1 1-2 2.9-2 4.2V52H4V34c0-17.3-.1-18-2-18s-2 .7-2 20z"})]}),{width:64,height:64}),A8=L((0,u.jsx)("path",{stroke:"currentColor",strokeWidth:"40",fill:"currentColor",d:"M148 560a318 318 0 0 0 522 110 316 316 0 0 0 0-450 316 316 0 0 0-450 0c-11 11-21 22-30 34v4h47c25 0 46 21 46 46s-21 45-46 45H90c-13 0-25-6-33-14-9-9-14-20-14-33V156c0-25 20-45 45-45s45 20 45 45v32l1 1a401 401 0 0 1 623 509l212 212a42 42 0 0 1-59 59L698 757A401 401 0 0 1 65 570a42 42 0 0 1 83-10z"}),{width:1024}),Ip=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.622-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.767-.622-1.39-1.39-1.39Z",fill:"currentColor"}),(0,u.jsx)("path",{d:"M12.5 12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Mp=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.944 12.5H12.5v1.389a1.389 1.389 0 0 1-1.389 1.389H5.556a1.389 1.389 0 0 1-1.39-1.39V8.334a1.389 1.389 0 0 1 1.39-1.389h1.388",fill:"currentColor"}),(0,u.jsx)("path",{d:"M13.889 4.167H8.333c-.767 0-1.389.621-1.389 1.389v5.555c0 .767.622 1.389 1.39 1.389h5.555c.767 0 1.389-.622 1.389-1.389V5.556c0-.768-.622-1.39-1.39-1.39Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),_p=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M8.775 6.458h2.45a2.316 2.316 0 0 1 2.317 2.316v2.452a2.316 2.316 0 0 1-2.316 2.316H8.774a2.316 2.316 0 0 1-2.317-2.316V8.774a2.316 2.316 0 0 1 2.317-2.316Z",fill:"currentColor"}),(0,u.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316ZM12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Ap=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",children:[(0,u.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,u.jsx)("path",{d:"M5.441 9.792h2.451a2.316 2.316 0 0 1 2.316 2.316v2.45a2.316 2.316 0 0 1-2.316 2.317h-2.45a2.316 2.316 0 0 1-2.317-2.316v-2.451a2.316 2.316 0 0 1 2.316-2.316Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,u.jsx)("mask",{id:"SendToBackIcon",fill:"#fff",children:(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z"})}),(0,u.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.167 5.833v2.06a2.941 2.941 0 0 0 2.94 2.94h2.06v.393a2.941 2.941 0 0 1-2.941 2.94h-.393v-2.058a2.941 2.941 0 0 0-2.94-2.941h-2.06v-.393a2.941 2.941 0 0 1 2.942-2.94h.392Z",fill:"currentColor"}),(0,u.jsx)("path",{d:"M9.167 5.833h1.25v-1.25h-1.25v1.25Zm5 5h1.25v-1.25h-1.25v1.25Zm-3.334 3.334h-1.25v1.25h1.25v-1.25Zm-5-5h-1.25v1.25h1.25v-1.25Zm2.084-3.334v2.06h2.5v-2.06h-2.5Zm0 2.06a4.191 4.191 0 0 0 4.19 4.19v-2.5a1.691 1.691 0 0 1-1.69-1.69h-2.5Zm4.19 4.19h2.06v-2.5h-2.06v2.5Zm.81-1.25v.393h2.5v-.393h-2.5Zm0 .393c0 .933-.758 1.69-1.691 1.69v2.5a4.191 4.191 0 0 0 4.19-4.19h-2.5Zm-1.691 1.69h-.393v2.5h.393v-2.5Zm.857 1.25v-2.058h-2.5v2.059h2.5Zm0-2.058a4.191 4.191 0 0 0-4.19-4.191v2.5c.933 0 1.69.757 1.69 1.69h2.5Zm-4.19-4.191h-2.06v2.5h2.06v-2.5Zm-.81 1.25v-.393h-2.5v.393h2.5Zm0-.393c0-.934.758-1.69 1.692-1.69v-2.5a4.191 4.191 0 0 0-4.192 4.19h2.5Zm1.692-1.69h.392v-2.5h-.392v2.5Z",fill:"currentColor",mask:"url(#SendToBackIcon)"}),(0,u.jsx)("path",{d:"M12.108 3.125h2.45a2.316 2.316 0 0 1 2.317 2.316v2.451a2.316 2.316 0 0 1-2.316 2.316h-2.451a2.316 2.316 0 0 1-2.316-2.316v-2.45a2.316 2.316 0 0 1 2.316-2.317Z",stroke:"currentColor",strokeWidth:"1.25"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Lp=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v7.083c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V8.125c0-.92-.746-1.667-1.666-1.667ZM6.875 6.458h-.417c-.92 0-1.666.747-1.666 1.667v3.75c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667v-3.75c0-.92-.747-1.667-1.667-1.667Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Pp=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M6.875 3.125h-.417c-.92 0-1.666.746-1.666 1.667v7.083c0 .92.746 1.667 1.666 1.667h.417c.92 0 1.667-.746 1.667-1.667V4.792c0-.92-.747-1.667-1.667-1.667ZM13.542 5.817h-.417c-.92 0-1.667.747-1.667 1.667v4.391c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667V7.484c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Dp=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M15.208 4.792H8.125c-.92 0-1.667.746-1.667 1.666v.417c0 .92.747 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM12.516 11.458H8.125c-.92 0-1.667.746-1.667 1.667v.417c0 .92.747 1.666 1.667 1.666h4.391c.92 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Rp=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M11.875 4.792H4.792c-.92 0-1.667.746-1.667 1.666v.417c0 .92.746 1.667 1.667 1.667h7.083c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666ZM11.683 11.458H7.292c-.92 0-1.667.746-1.667 1.667v.417c0 .92.746 1.666 1.667 1.666h4.39c.921 0 1.667-.746 1.667-1.666v-.417c0-.92-.746-1.667-1.666-1.667Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),fx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M14.375 10.208v-.416c0-.92-.746-1.667-1.667-1.667H7.292c-.92 0-1.667.746-1.667 1.667v.416c0 .92.746 1.667 1.667 1.667h5.416c.92 0 1.667-.746 1.667-1.667Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),hx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M10.208 5.625h-.416c-.92 0-1.667.746-1.667 1.667v5.416c0 .92.746 1.667 1.667 1.667h.416c.92 0 1.667-.746 1.667-1.667V7.292c0-.92-.746-1.667-1.667-1.667Z"})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Np=L((0,u.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M6.875 4.792h-.417c-.92 0-1.666.746-1.666 1.666v7.084c0 .92.746 1.666 1.666 1.666h.417c.92 0 1.667-.746 1.667-1.666V6.458c0-.92-.747-1.666-1.667-1.666ZM13.542 6.458h-.417c-.92 0-1.667.747-1.667 1.667v3.75c0 .92.746 1.667 1.667 1.667h.417c.92 0 1.666-.746 1.666-1.667v-3.75c0-.92-.746-1.667-1.666-1.667Z"})]}),de),Op=L((0,u.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,u.jsx)("path",{d:"M4.792 13.125v.417c0 .92.746 1.666 1.666 1.666h7.084c.92 0 1.666-.746 1.666-1.666v-.417c0-.92-.746-1.667-1.666-1.667H6.458c-.92 0-1.666.746-1.666 1.667ZM6.458 6.458v.417c0 .92.747 1.667 1.667 1.667h3.75c.92 0 1.667-.747 1.667-1.667v-.417c0-.92-.746-1.666-1.667-1.666h-3.75c-.92 0-1.667.746-1.667 1.666Z"})]}),de),id=L((0,u.jsxs)("g",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,u.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,u.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,u.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),Q),L8=L("M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"),P8=L("M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"),Mo=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,u.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),D8=L("M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z",{mirror:!0}),R8=L("M11.553 22.894a.998.998 0 00.894 0s3.037-1.516 5.465-4.097C19.616 16.987 21 14.663 21 12V5a1 1 0 00-.649-.936l-8-3a.998.998 0 00-.702 0l-8 3A1 1 0 003 5v7c0 2.663 1.384 4.987 3.088 6.797 2.428 2.581 5.465 4.097 5.465 4.097zm-1.303-8.481l6.644-6.644a.856.856 0 111.212 1.212l-7.25 7.25a.856.856 0 01-1.212 0l-3.75-3.75a.856.856 0 111.212-1.212l3.144 3.144z",{width:24}),N8=L("M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z",{width:384,height:512}),Fp=Qt.default.memo(({theme:t})=>L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{d:"M25 26H111V111H25",fill:jo(t)}),(0,u.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:jo(t),strokeWidth:"2"}),(0,u.jsx)("path",{d:"M100 100H160V160H100",fill:jo(t)}),(0,u.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:jo(t),strokeWidth:"2"}),(0,u.jsxs)("g",{fill:F0(t),stroke:jo(t),strokeWidth:"6",children:[(0,u.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),Bp=Qt.default.memo(({theme:t})=>L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{d:"M25 26H111V111H25",fill:jo(t)}),(0,u.jsx)("path",{d:"M25 111C25 80.2068 25 49.4135 25 26M25 26C48.6174 26 72.2348 26 111 26H25ZM25 26C53.3671 26 81.7343 26 111 26H25ZM111 26C111 52.303 111 78.606 111 111V26ZM111 26C111 51.2947 111 76.5893 111 111V26ZM111 111C87.0792 111 63.1585 111 25 111H111ZM111 111C87.4646 111 63.9293 111 25 111H111ZM25 111C25 81.1514 25 51.3028 25 26V111Z",stroke:jo(t),strokeWidth:"2"}),(0,u.jsx)("path",{d:"M100 100H160V160H100",fill:jo(t)}),(0,u.jsx)("path",{d:"M100 160C100 144.106 100 128.211 100 100M100 100C117.706 100 135.412 100 160 100H100ZM100 100C114.214 100 128.428 100 160 100H100ZM160 100C160 120.184 160 140.369 160 160V100ZM160 100C160 113.219 160 126.437 160 160V100ZM160 160C145.534 160 131.068 160 100 160H160ZM160 160C143.467 160 126.934 160 100 160H160ZM100 160C100 143.661 100 127.321 100 100V160Z",stroke:jo(t),strokeWidth:"2"}),(0,u.jsxs)("g",{fill:F0(t),stroke:jo(t),strokeWidth:"6",children:[(0,u.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,u.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),gx=L((0,u.jsx)("g",{strokeWidth:1.25,children:(0,u.jsx)("path",{d:"M5.879 2.625h8.242a3.27 3.27 0 0 1 3.254 3.254v8.242a3.27 3.27 0 0 1-3.254 3.254H5.88a3.27 3.27 0 0 1-3.254-3.254V5.88A3.27 3.27 0 0 1 5.88 2.626l-.001-.001ZM4.518 16.118l7.608-12.83m.198 13.934 5.051-9.897M2.778 9.675l9.348-6.387m-7.608 12.83 12.857-8.793"})}),de),bx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,u.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,u.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.25"})}),(0,u.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,u.jsx)("path",{d:"M2.258 15.156 15.156 2.258M7.324 20.222 20.222 7.325m-20.444 5.35L12.675-.222m-8.157 18.34L17.416 5.22",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})]}),de),xx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("g",{clipPath:"url(#a)",children:[(0,u.jsx)("path",{d:"M5.879 2.625h8.242a3.254 3.254 0 0 1 3.254 3.254v8.242a3.254 3.254 0 0 1-3.254 3.254H5.88a3.254 3.254 0 0 1-3.254-3.254V5.88a3.254 3.254 0 0 1 3.254-3.254Z",stroke:"currentColor",strokeWidth:"1.25"}),(0,u.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,u.jsx)("path",{d:"M2.426 15.044 15.044 2.426M7.383 20 20 7.383M0 12.617 12.617 0m-7.98 17.941L17.256 5.324m-2.211 12.25L2.426 4.956M20 12.617 7.383 0m5.234 20L0 7.383m17.941 7.98L5.324 2.745",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,u.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,u.jsx)("path",{d:"M14.121 2H5.88A3.879 3.879 0 0 0 2 5.879v8.242A3.879 3.879 0 0 0 5.879 18h8.242A3.879 3.879 0 0 0 18 14.121V5.88A3.879 3.879 0 0 0 14.121 2Z",fill:"currentColor"})})]}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),vx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("g",{clipPath:"url(#a)",children:(0,u.jsx)("path",{d:"M4.91 2.625h10.18a2.284 2.284 0 0 1 2.285 2.284v10.182a2.284 2.284 0 0 1-2.284 2.284H4.909a2.284 2.284 0 0 1-2.284-2.284V4.909a2.284 2.284 0 0 1 2.284-2.284Z",stroke:"currentColor",strokeWidth:"1.25"})}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...de,fill:"currentColor"}),zp=L((0,u.jsx)(u.Fragment,{children:(0,u.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),de),yx=L((0,u.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),de),Ex=L((0,u.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),de),O8=Qt.default.memo(({theme:t})=>L((0,u.jsx)("path",{d:"M6 10H34",stroke:jo(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),wx=L((0,u.jsxs)("g",{strokeWidth:"2",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M5 12h2"}),(0,u.jsx)("path",{d:"M17 12h2"}),(0,u.jsx)("path",{d:"M11 12h2"})]}),Q),Cx=L((0,u.jsxs)("g",{strokeWidth:"2",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 12v.01"}),(0,u.jsx)("path",{d:"M8 12v.01"}),(0,u.jsx)("path",{d:"M12 12v.01"}),(0,u.jsx)("path",{d:"M16 12v.01"}),(0,u.jsx)("path",{d:"M20 12v.01"})]}),Q),Tx=L((0,u.jsx)("path",{d:"M2.5 12.038c1.655-.885 5.9-3.292 8.568-4.354 2.668-1.063.101 2.821 1.32 3.104 1.218.283 5.112-1.814 5.112-1.814",strokeWidth:"1.25"}),de),Sx=L((0,u.jsx)("path",{d:"M2.5 12.563c1.655-.886 5.9-3.293 8.568-4.355 2.668-1.062.101 2.822 1.32 3.105 1.218.283 5.112-1.814 5.112-1.814m-13.469 2.23c2.963-1.586 6.13-5.62 7.468-4.998 1.338.623-1.153 4.11-.132 5.595 1.02 1.487 6.133-1.43 6.133-1.43",strokeWidth:"1.25"}),de),kx=L((0,u.jsx)("path",{d:"M2.5 11.936c1.737-.879 8.627-5.346 10.42-5.268 1.795.078-.418 5.138.345 5.736.763.598 3.53-1.789 4.235-2.147M2.929 9.788c1.164-.519 5.47-3.28 6.987-3.114 1.519.165 1 3.827 2.121 4.109 1.122.281 3.839-2.016 4.606-2.42",strokeWidth:"1.25"}),de),Ix=L((0,u.jsxs)("svg",{strokeWidth:"1.5",children:[(0,u.jsx)("path",{d:"M3.33334 9.99998V6.66665C3.33334 6.04326 3.33403 4.9332 3.33539 3.33646C4.95233 3.33436 6.06276 3.33331 6.66668 3.33331H10"}),(0,u.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,u.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,u.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,u.jsx)("path",{d:"M16.6667 10V10.01"}),(0,u.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,u.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,u.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,u.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,u.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,u.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,u.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),de),Mx=L((0,u.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,u.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,u.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,u.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,u.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,u.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,u.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,u.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,u.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,u.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,u.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,u.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),Q),_x=L((0,u.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),Ax=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,u.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,u.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),Hp=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,u.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,u.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),Lx=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,u.jsx)("path",{d:"M26 10L6 10"}),(0,u.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),Px=Qt.default.memo(({flip:t=!1})=>L((0,u.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,u.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),Dx=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,u.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,u.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),Rx=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,u.jsx)("path",{d:"M6,9.5H27"}),(0,u.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),Nx=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,u.jsx)("path",{d:"M6,9.5H20"}),(0,u.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),Ox=Qt.default.memo(({flip:t=!1})=>L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,u.jsx)("path",{d:"M6,9.5H20"}),(0,u.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),Fx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("g",{clipPath:"url(#a)",children:(0,u.jsx)("path",{d:"M14.167 6.667a3.333 3.333 0 0 0-3.334-3.334H9.167a3.333 3.333 0 0 0 0 6.667h1.666a3.333 3.333 0 0 1 0 6.667H9.167a3.333 3.333 0 0 1-3.334-3.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Bx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("g",{clipPath:"url(#a)",children:(0,u.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),zx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("g",{clipPath:"url(#a)",children:(0,u.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Hx=L((0,u.jsx)(u.Fragment,{children:(0,u.jsx)("path",{d:"m1.667 3.333 6.666 13.334M8.333 3.333 1.667 16.667M11.667 3.333v13.334h6.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),de),$p=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M3 7v-2h13v2"}),(0,u.jsx)("path",{d:"M10 5v14"}),(0,u.jsx)("path",{d:"M12 19h-4"}),(0,u.jsx)("path",{d:"M15 13v-1h6v1"}),(0,u.jsx)("path",{d:"M18 12v7"}),(0,u.jsx)("path",{d:"M17 19h2"})]}),Q),$x=L((0,u.jsx)(u.Fragment,{children:(0,u.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,u.jsx)("path",{d:"M5.833 16.667v-10a3.333 3.333 0 0 1 3.334-3.334h1.666a3.333 3.333 0 0 1 3.334 3.334v10M5.833 10.833h8.334"})})}),de),Ux=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,u.jsx)("path",{d:"M5.833 6.667 2.5 10l3.333 3.333M14.167 6.667 17.5 10l-3.333 3.333M11.667 3.333 8.333 16.667"})}),(0,u.jsx)("defs",{children:(0,u.jsx)("clipPath",{id:"a",children:(0,u.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Wx=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,u.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,u.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),Q),Gx=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,u.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,u.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),Q),Vx=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,u.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,u.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),Q),Kx=Qt.default.memo(({theme:t})=>L((0,u.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,u.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),Q)),Yx=Qt.default.memo(({theme:t})=>L((0,u.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,u.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),Q)),Zx=Qt.default.memo(({theme:t})=>L((0,u.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,u.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,u.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),Q)),jx=L((0,u.jsx)("path",{d:"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z",fill:"currentColor"}),{width:640,height:512}),F8=L((0,u.jsx)("path",{d:"M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z"})),ad=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,u.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,u.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,u.jsx)("path",{d:"M17 7.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2h.208a6 6 0 0 1 -5.012 -2.7a69.74 69.74 0 0 1 -.196 -.3c-.312 -.479 -1.407 -2.388 -3.286 -5.728a1.5 1.5 0 0 1 .536 -2.022a1.867 1.867 0 0 1 2.28 .28l1.47 1.47"})]}),Q),Up=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,u.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,u.jsx)("path",{d:"M12 4l0 12"})]}),Q),ld=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"}),(0,u.jsx)("path",{d:"M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"})]}),Q),Xx=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M7 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,u.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,u.jsx)("path",{d:"M9.15 14.85l8.85 -10.85"}),(0,u.jsx)("path",{d:"M6 4l8.85 10.85"})]}),Q),qx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,u.jsx)("path",{d:"M12 17l0 .01"}),(0,u.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),B8=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M7 4v16l13 -8z"})]}),Q),z8=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z",strokeWidth:"0",fill:"currentColor"})]}),Q),H8=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),Q),Jx=L((0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M10.24 3.957l-8.422 14.06a1.989 1.989 0 0 0 1.7 2.983h16.845a1.989 1.989 0 0 0 1.7 -2.983l-8.423 -14.06a1.989 1.989 0 0 0 -3.4 0z"}),(0,u.jsx)("path",{d:"M12 9v4"}),(0,u.jsx)("path",{d:"M12 17h.01"})]}),Q),Qx=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M11 7l6 6"}),(0,u.jsx)("path",{d:"M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4z"})]}),Q),e2=L((0,u.jsxs)("g",{strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,u.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,u.jsx)("path",{d:"M4 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z"})]}),Q),sd=L((0,u.jsxs)("g",{strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 7l16 0"}),(0,u.jsx)("path",{d:"M4 17l16 0"}),(0,u.jsx)("path",{d:"M7 4l0 16"}),(0,u.jsx)("path",{d:"M17 4l0 16"})]}),Q),cd=L((0,u.jsx)("path",{fill:"currentColor",d:"M407.48,111.18C335.587,108.103 269.573,152.338 245.08,220C220.587,152.338 154.573,108.103 82.68,111.18C80.285,168.229 107.577,222.632 154.74,254.82C178.908,271.419 193.35,298.951 193.27,328.27L193.27,379.13L296.9,379.13L296.9,328.27C296.816,298.953 311.255,271.42 335.42,254.82C382.596,222.644 409.892,168.233 407.48,111.18Z"})),la=L((0,u.jsxs)("g",{strokeWidth:"1.25",children:[(0,u.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,u.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,u.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),de),dd=L((0,u.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,u.jsx)("path",{clipRule:"evenodd",d:"m9.644 13.69 7.774-7.773a2.357 2.357 0 0 0-3.334-3.334l-7.773 7.774L8 12l1.643 1.69Z"}),(0,u.jsx)("path",{d:"m13.25 3.417 3.333 3.333M10 10l2-2M5 15l3-3M2.156 17.894l1-1M5.453 19.029l-.144-1.407M2.377 11.887l.866 1.118M8.354 17.273l-1.194-.758M.953 14.652l1.408.13"})]}),20),sa=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,u.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,u.jsx)("path",{d:"M15 6l3 3"}),(0,u.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,u.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),Q),$8=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,u.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,u.jsx)("path",{d:"M15 6l3 3"}),(0,u.jsx)("path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"}),(0,u.jsx)("path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"})]}),Q),Fl=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,u.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,u.jsx)("path",{d:"M6 7.63c-1.391 -.236 -2.787 .395 -3.534 1.689a3.474 3.474 0 0 0 1.271 4.745l4.263 2.514l6 -3.348"}),(0,u.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,u.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,u.jsx)("path",{d:"M18 16.302c1.391 .236 2.787 -.395 3.534 -1.689a3.474 3.474 0 0 0 -1.271 -4.745l-4.308 -2.514l-5.955 3.42"})]}),Q),t2=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,u.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,u.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,u.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),Q),ca=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,u.jsx)("path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6"})]}),Q),o2=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,u.jsx)("path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87"}),(0,u.jsx)("path",{d:"M3 3l18 18"})]}),Q),r2=L((0,u.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,u.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,u.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,u.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,u.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,u.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),Q),n2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M15.5 13a3.5 3.5 0 0 0 -3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8"}),(0,u.jsx)("path",{d:"M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1 -7 0v-1.8"}),(0,u.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,u.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,u.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,u.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),Q),md=L((0,u.jsxs)("g",{strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,u.jsx)("path",{d:"M21 21l-6 -6"})]}),Q),i2=L((0,u.jsxs)("g",{strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M20.984 12.53a9 9 0 1 0 -7.552 8.355"}),(0,u.jsx)("path",{d:"M12 7v5l3 3"}),(0,u.jsx)("path",{d:"M19 16l-2 3h4l-2 3"})]}),Q),a2=L((0,u.jsxs)("g",{strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M9 2m0 3a3 3 0 0 1 3 -3h0a3 3 0 0 1 3 3v5a3 3 0 0 1 -3 3h0a3 3 0 0 1 -3 -3z"}),(0,u.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,u.jsx)("path",{d:"M8 21l8 0"}),(0,u.jsx)("path",{d:"M12 17l0 4"})]}),Q),l2=L((0,u.jsxs)("g",{strokeWidth:1.5,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M3 3l18 18"}),(0,u.jsx)("path",{d:"M9 5a3 3 0 0 1 6 0v5a3 3 0 0 1 -.13 .874m-2 2a3 3 0 0 1 -3.87 -2.872v-1"}),(0,u.jsx)("path",{d:"M5 10a7 7 0 0 0 10.846 5.85m2 -2a6.967 6.967 0 0 0 1.152 -3.85"}),(0,u.jsx)("path",{d:"M8 21l8 0"}),(0,u.jsx)("path",{d:"M12 17l0 4"})]}),Q),ud=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"})]}),Q),s2=L((0,u.jsxs)("g",{children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M8 8m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z"}),(0,u.jsx)("path",{d:"M12 20v.01"}),(0,u.jsx)("path",{d:"M16 20v.01"}),(0,u.jsx)("path",{d:"M8 20v.01"}),(0,u.jsx)("path",{d:"M4 20v.01"}),(0,u.jsx)("path",{d:"M4 16v.01"}),(0,u.jsx)("path",{d:"M4 12v.01"}),(0,u.jsx)("path",{d:"M4 8v.01"}),(0,u.jsx)("path",{d:"M4 4v.01"}),(0,u.jsx)("path",{d:"M8 4v.01"}),(0,u.jsx)("path",{d:"M12 4v.01"}),(0,u.jsx)("path",{d:"M16 4v.01"}),(0,u.jsx)("path",{d:"M20 4v.01"}),(0,u.jsx)("path",{d:"M20 8v.01"}),(0,u.jsx)("path",{d:"M20 12v.01"}),(0,u.jsx)("path",{d:"M20 16v.01"}),(0,u.jsx)("path",{d:"M20 20v.01"})]}),Q),c2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M5 3v18"}),(0,u.jsx)("path",{d:"M19 21v-18"}),(0,u.jsx)("path",{d:"M5 7h14"}),(0,u.jsx)("path",{d:"M5 15h14"}),(0,u.jsx)("path",{d:"M8 13v4"}),(0,u.jsx)("path",{d:"M11 13v4"}),(0,u.jsx)("path",{d:"M16 13v4"}),(0,u.jsx)("path",{d:"M14 5v4"}),(0,u.jsx)("path",{d:"M11 5v4"}),(0,u.jsx)("path",{d:"M8 5v4"}),(0,u.jsx)("path",{d:"M3 21h18"})]}),Q),d2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M3 12l18 0"}),(0,u.jsx)("path",{d:"M7 16l10 0l-10 5l0 -5"}),(0,u.jsx)("path",{d:"M7 8l10 0l-10 -5l0 5"})]}),Q),m2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M12 3l0 18"}),(0,u.jsx)("path",{d:"M16 7l0 10l5 0l-5 -10"}),(0,u.jsx)("path",{d:"M8 7l0 10l-5 0l5 -10"})]}),Q),Wp=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M5 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z"}),(0,u.jsx)("path",{d:"M19 6h1a2 2 0 0 1 2 2a5 5 0 0 1 -5 5l-5 0v2"}),(0,u.jsx)("path",{d:"M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"})]}),Q),pd=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M15 15m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"}),(0,u.jsx)("path",{d:"M22 22l-3 -3"}),(0,u.jsx)("path",{d:"M6 18h-1a2 2 0 0 1 -2 -2v-1"}),(0,u.jsx)("path",{d:"M3 11v-1"}),(0,u.jsx)("path",{d:"M3 6v-1a2 2 0 0 1 2 -2h1"}),(0,u.jsx)("path",{d:"M10 3h1"}),(0,u.jsx)("path",{d:"M15 3h1a2 2 0 0 1 2 2v1"})]}),Q),u2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,u.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,u.jsx)("path",{d:"M4 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75"}),(0,u.jsx)("path",{d:"M10 15l2 6l2 -6"}),(0,u.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"})]}),Q),p2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,u.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,u.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"}),(0,u.jsx)("path",{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"}),(0,u.jsx)("path",{d:"M11 21v-6l3 6v-6"})]}),Q),f2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M4 13v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a2 2 0 0 0 6 0v-8a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v8a8 8 0 0 1 -16 0"}),(0,u.jsx)("path",{d:"M4 8l5 0"}),(0,u.jsx)("path",{d:"M15 8l4 0"})]}),Q),h2=L((0,u.jsxs)("g",{strokeWidth:1.25,children:[(0,u.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,u.jsx)("path",{d:"M3 14c.83 .642 2.077 1.017 3.5 1c1.423 .017 2.67 -.358 3.5 -1c.83 -.642 2.077 -1.017 3.5 -1c1.423 -.017 2.67 .358 3.5 1"}),(0,u.jsx)("path",{d:"M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,u.jsx)("path",{d:"M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,u.jsx)("path",{d:"M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z"}),(0,u.jsx)("path",{d:"M16.746 16.726a3 3 0 1 0 .252 -5.555"})]}),Q);var b2=v(S(),1),_6=(t,e)=>{let o=new Set(xe(t.filter(r=>Te(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?ue(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?ue(r,{isDeleted:!0}):bt(r)&&e.selectedElementIds[r.containerId]?ue(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},g2=(t,e)=>{if(t.editingGroupId){let o=pt(be(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},Bl=$({name:"deleteSelectedElements",label:"labels.delete",icon:Xo,trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:s,endBindingElement:c}=e.editingLinearElement,m=r.scene.getNonDeletedElementsMap(),d=he.getElement(a,m);if(!d||l==null)return!1;if(d.points.length<2){let p=t.map(x=>x.id===d.id?ue(x,{isDeleted:!0}):x),b=g2(e,p);return{elements:p,appState:{...b,editingLinearElement:null},commitToHistory:!1}}let f={startBindingElement:l?.includes(0)?null:s,endBindingElement:l?.includes(d.points.length-1)?null:c};return he.deletePoints(d,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...f,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},commitToHistory:!0}}let{elements:n,appState:i}=_6(t,e);return zi(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=g2(i,n),{elements:n,appState:{...i,activeTool:ot(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},commitToHistory:Oe(be(t),e)}},keyTest:(t,e,o)=>(t.key===T.BACKSPACE||t.key===T.DELETE)&&!t[T.CTRL_OR_CMD],PanelComponent:({elements:t,appState:e,updateData:o})=>(0,b2.jsx)(se,{type:"button",icon:Xo,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:Oe(be(t),e)})});h();h();var Gp=(t,e)=>t.frameId===e||t.id===e,v2=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=Ie(o||xe(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++a<t.length;){let s=t[a];l.get(s.id)?(n.length&&(r=r.concat(n),n=[]),r.push(a),i=a+1):s.isDeleted&&i===a?(i=a+1,n.push(a)):n=[]}return r},A6=t=>{let e=0;return t.reduce((o,r,n)=>(n>0&&t[n-1]!==r-1&&(e=++e),(o[e]||(o[e]=[])).push(r),o),[])},x2=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=ao.getScene(t).getElement(t.containerId);if(r)return e.indexOf(r)}else return e.indexOf(t);else{let r=t.boundElements?.find(n=>n.type!=="arrow")?.id;if(r){if(o==="left")return e.indexOf(t);let n=ao.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},L6=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{Gp(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},P6=(t,e,o,r,n)=>{let i=e[o],a=d=>d.isDeleted?!1:n?d.frameId===n:t.editingGroupId?d.groupIds.includes(t.editingGroupId):!0,l=r==="left"?Nu(e,d=>a(d),Math.max(0,o-1)):Ru(e,d=>a(d),o+1),s=e[l];if(!s)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===s?.groupIds.join(""))return x2(s,e,r)??l;if(!s?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(s.frameId||Te(s))){let d=L6(e,s.frameId||s.id);return r==="left"?e.indexOf(d[0]):e.indexOf(d[d.length-1])}if(!s.groupIds.length)return x2(s,e,r)??l;let c=t.editingGroupId?s.groupIds[s.groupIds.indexOf(t.editingGroupId)-1]:s.groupIds[s.groupIds.length-1],m=pt(e,c);return m.length?r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1]):l},y2=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o[n.id]=n,o},{}),E2=(t,e,o)=>{let r=v2(t,e),n=y2(t,r),i=A6(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>Te(t[l])).map(l=>t[l].id));return i.forEach((l,s)=>{let c=l[0],m=l[l.length-1],d=o==="left"?c:m,f=l.some(k=>{let C=t[k];return C.frameId&&a.has(C.frameId)})?null:t[d]?.frameId,p=P6(e,t,d,o,f);if(p===-1||d===p)return;let b=o==="left"?t.slice(0,p):t.slice(0,c),x=t.slice(c,m+1),y=o==="left"?t.slice(p,c):t.slice(m+1,p+1),w=o==="left"?t.slice(m+1):t.slice(p+1);t=o==="left"?[...b,...x,...y,...w]:[...b,...y,...x,...w]}),t.map(l=>n[l.id]?Xi(l):l)},w2=(t,e,o,r,n)=>{let i=v2(t,e,n),a=y2(t,i),l=[],s,c;if(o==="left"){if(r)s=Ru(t,p=>Gp(p,r));else if(e.editingGroupId){let p=pt(t,e.editingGroupId);if(!p.length)return t;s=t.indexOf(p[0])}else s=0;c=i[i.length-1]}else{if(r)c=Nu(t,p=>Gp(p,r));else if(e.editingGroupId){let p=pt(t,e.editingGroupId);if(!p.length)return t;c=t.indexOf(p[p.length-1])}else c=t.length-1;s=i[0]}s===-1&&(s=0);for(let p=s;p<c+1;p++)i.includes(p)||l.push(t[p]);let m=Object.values(a).map(p=>Xi(p)),d=t.slice(0,s),f=t.slice(c+1);return o==="left"?[...d,...m,...l,...f]:[...d,...l,...m,...f]};function C2(t,e,o,r){let n=Ie(xe(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let c of t)n.has(c.id)&&Te(c)&&a.add(c.id);for(let c of t)if(n.has(c.id))if(Te(c)||c.frameId&&a.has(c.frameId))i.regularElements.push(c);else if(!c.frameId)i.regularElements.push(c);else{let m=i.frameChildren.get(c.frameId)||[];m.push(c),i.frameChildren.set(c.frameId,m)}let l=t,s=Array.from(i.frameChildren.entries());for(let[c,m]of s)l=r(t,e,o,c,m);return r(l,e,o,null,i.regularElements)}var T2=(t,e)=>E2(t,e,"left"),S2=(t,e)=>E2(t,e,"right"),k2=(t,e)=>C2(t,e,"left",w2),I2=(t,e)=>C2(t,e,"right",w2);var zl=v(S(),1),Vp=$({name:"sendBackward",label:"labels.sendBackward",icon:Mp,trackEvent:{category:"element"},perform:(t,e)=>({elements:T2(t,e),appState:e,commitToHistory:!0}),keyPriority:40,keyTest:t=>t[T.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,zl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${N("CtrlOrCmd+[")}`,children:Mp})}),Kp=$({name:"bringForward",label:"labels.bringForward",icon:Ip,trackEvent:{category:"element"},perform:(t,e)=>({elements:S2(t,e),appState:e,commitToHistory:!0}),keyPriority:40,keyTest:t=>t[T.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,zl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${N("CtrlOrCmd+]")}`,children:Ip})}),Yp=$({name:"sendToBack",label:"labels.sendToBack",icon:Ap,trackEvent:{category:"element"},perform:(t,e)=>({elements:k2(t,e),appState:e,commitToHistory:!0}),keyTest:t=>Wo?t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_LEFT:t[T.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,zl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${Wo?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")}`,children:Ap})}),Zp=$({name:"bringToFront",label:"labels.bringToFront",icon:_p,trackEvent:{category:"element"},perform:(t,e)=>({elements:I2(t,e),appState:e,commitToHistory:!0}),keyTest:t=>Wo?t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_RIGHT:t[T.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,zl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${Wo?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")}`,children:_p})});h();var jp=$({name:"selectAll",label:"labels.selectAll",icon:s2,trackEvent:{category:"canvas"},viewMode:!1,perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=Ji(t.filter(i=>!i.isDeleted&&!(le(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...Rt({editingGroupId:null,selectedElementIds:n},be(t),e,r),selectedLinearElement:Object.keys(n).length===1&&Re(t[0])?new he(t[0]):null},commitToHistory:!0}},keyTest:t=>t[T.CTRL_OR_CMD]&&t.key===T.A});h();h();var D6=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],s=[];for(let c of i.slice(1))c.groupIds?.join("")===a?l.push(c):s.push(c);return s.length?[...l,...r(s)]:l},n=new Map;return e.forEach((i,a)=>{if(!n.has(i.id))if(i.groupIds?.length){let l=i.groupIds[i.groupIds.length-1],s=e.slice(a).filter(c=>{let m=c?.groupIds?.some(d=>d===l);return m&&n.set(c.id,!0),m});for(let c of r(s))o.add(c)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},R6=t=>{let e=L1(t),o=t.slice(),r=new Set;return o.forEach((n,i)=>{n&&(n.boundElements?.length?(r.add(n),o[i]=null,n.boundElements.forEach(a=>{let l=e.get(a.id);l&&a.type==="text"&&(r.add(l[0]),o[l[1]]=null)})):n.type==="text"&&n.containerId&&e.get(n.containerId)?.[0].boundElements?.find(l=>l.id===n.id)||(r.add(n),o[i]=null))}),r.size!==t.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),t):[...r]},M2=t=>R6(D6(t));var _2=v(S(),1),Xp=$({name:"duplicateSelection",label:"labels.duplicateSelection",icon:Nl,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getNonDeletedElementsMap();if(e.editingLinearElement){let i=he.duplicateSelectedPoints(e,n);return i?{elements:t,appState:i.appState,commitToHistory:!0}:!1}return{...N6(t,e),commitToHistory:!0}},keyTest:t=>t[T.CTRL_OR_CMD]&&t.key===T.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,_2.jsx)(se,{type:"button",icon:Nl,title:`${g("labels.duplicateSelection")} \u2014 ${N("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:Oe(be(t),e)})}),N6=(t,e)=>{let o=M2(t),r=new Map,n=[],i=[],a=new Map,l=w=>{let k=Ec(e.editingGroupId,r,w,{x:w.x+Ir/2,y:w.y+Ir/2});return a.set(w.id,k.id),i.push(w),n.push(k),k},s=Ie(xe(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),c=new Map,m=w=>{for(let k of w)c.set(k.id,!0);return w},d=[],f=-1;for(;++f<o.length;){let w=o[f];if(c.get(w.id))continue;let k=lt(w,Ie(t)),C=Te(w);if(s.get(w.id)){if(w.groupIds.length||k||C){let M=hb(e,w);if(M){let _=pt(o,M).flatMap(I=>Te(I)?[...un(t,I.id),I]:[I]);d.push(...m([..._,..._.map(I=>l(I))]));continue}if(k){d.push(...m([w,k,l(w),l(k)]));continue}if(C){let _=un(o,w.id);d.push(...m([..._,w,..._.map(I=>l(I)),l(w)]));continue}}(!w.frameId||!s.has(w.frameId))&&d.push(...m([w,l(w)]))}else d.push(...m([w]))}let p=[],b=new Map;for(f=d.length;--f>=0;){let w=d[f];b.get(w.id)||(b.set(w.id,!0),p.push(w))}let x=p.reverse();uc(d,i,a),mc(d,i,a),Pc(x,i,a);let y=Ji(n);return{elements:x,appState:{...e,...Rt({editingGroupId:e.editingGroupId,selectedElementIds:y.reduce((w,k)=>(bt(k)||(w[k.id]=!0),w),{})},be(x),e,null)}}};h();h();var O6=["ai"],ve=(t,e,o,r)=>{try{if(typeof window>"u"||E.VITE_WORKER_ID||E.PROD||!O6.includes(t))return;E.PROD||console.info("trackEvent",{category:t,action:e,label:o,value:r}),window.sa_event&&window.sa_event(e,{category:t,label:o,value:r})}catch(n){console.error("error during analytics",n)}};h();var da=v(S(),1),fr=t=>(0,da.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,da.jsx)("button",{onClick:o=>t.onClick(e.value,o),className:z({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,da.jsxs)("label",{className:z({active:t.value===e.value}),title:e.text,children:[(0,da.jsx)("input",{type:"radio",name:t.group,onChange:()=>t.onChange(e.value),checked:t.value===e.value,"data-testid":e.testId}),e.icon]},e.text))});h();h();var fd=v(S(),1),A2=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=Bs),e==="elementBackground"&&(n=zs),e==="canvasBackground"&&(n=Hs),r&&(n=r),n?(0,fd.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,fd.jsx)("button",{className:z("color-picker__button",{active:i===o,"is-transparent":i==="transparent"||!i}),style:{"--swatch-color":i},type:"button",title:i,onClick:()=>t(i),"data-testid":`color-top-pick-${i}`,children:(0,fd.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var hn=v(H(),1);h();var hd=v(H(),1);h();var fn=({palette:t,color:e})=>{for(let[o,r]of Object.entries(t))if(Array.isArray(r)){let n=r.indexOf(e);if(n>-1)return{colorName:o,shade:n}}else if(r===e)return{colorName:o,shade:null};return null},Hl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),qp=({color:t,palette:e})=>!Object.values(e).flat().includes(t),P2=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return qp({color:l,palette:o})}),i=new Map;return n.forEach(a=>{let l=a[r[e]];i.has(l)?i.set(l,i.get(l)+1):i.set(l,1)}),[...i.entries()].sort((a,l)=>l[1]-a[1]).map(a=>a[0]).slice(0,Gg)},_o=$e(null),L2=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",D2=(t,e)=>{if(e){let i=new Option().style;if(i.color=t,i.color){let a=i.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(","),l=parseInt(a[0]),s=parseInt(a[1]),c=parseInt(a[2]);return L2(l,s,c)}}if(t==="transparent")return"black";let o=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);return L2(o,r,n)};h();var R2=v(S(),1),F6=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,R2.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:D2(t,o)},children:[r&&"\u21E7",e]}),ma=F6;var $r=v(S(),1),N2=({hex:t,onChange:e,palette:o})=>{let r=fn({color:t||"transparent",palette:o}),[n,i]=Ee(_o),a=(0,hd.useRef)(null);if((0,hd.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:s}=r,c=o[l];if(Array.isArray(c))return(0,$r.jsx)("div",{className:"color-picker-content--default shades",children:c.map((m,d)=>(0,$r.jsxs)("button",{ref:d===s&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:z("color-picker__button color-picker__button--large",{active:d===s}),"aria-label":"Shade",title:`${l} - ${d+1}`,style:m?{"--swatch-color":m}:void 0,onClick:()=>{e(m),i("shades")},children:[(0,$r.jsx)("div",{className:"color-picker__button-outline"}),(0,$r.jsx)(ma,{color:m,keyLabel:d+1,isShade:!0})]},d))})}return(0,$r.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,$r.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,$r.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:g("colorPicker.noShades")})]})};h();var gd=v(H(),1);var ua=v(S(),1),B6=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=fn({color:e||"transparent",palette:t}),[a,l]=Ee(_o),s=(0,gd.useRef)(null);return(0,gd.useEffect)(()=>{s.current&&a==="baseColors"&&s.current.focus()},[i?.colorName,a]),(0,ua.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([c,m],d)=>{let f=(Array.isArray(m)?m[n]:m)||"transparent",p=Hl[d],b=g(`colors.${c.replace(/\d+/,"")}`,null,"");return(0,ua.jsxs)("button",{ref:i?.colorName===c?s:void 0,tabIndex:-1,type:"button",className:z("color-picker__button color-picker__button--large",{active:i?.colorName===c,"is-transparent":f==="transparent"||!f}),onClick:()=>{o(f),l("baseColors")},title:`${b}${f.startsWith("#")?` ${f}`:""} \u2014 ${p}`,"aria-label":`${b} \u2014 ${p}`,style:f?{"--swatch-color":f}:void 0,"data-testid":`color-${c}`,children:[(0,ua.jsx)("div",{className:"color-picker__button-outline"}),(0,ua.jsx)(ma,{color:f,keyLabel:p})]},c)})})},O2=B6;h();var bd=v(H(),1);var pa=v(S(),1),F2=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Ee(_o),a=(0,bd.useRef)(null);return(0,bd.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,pa.jsx)("div",{className:"color-picker-content--default",children:t.map((l,s)=>(0,pa.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:z("color-picker__button color-picker__button--large",{active:e===l,"is-transparent":l==="transparent"||!l}),onClick:()=>{o(l),i("custom")},title:l,"aria-label":r,style:{"--swatch-color":l},children:[(0,pa.jsx)("div",{className:"color-picker__button-outline"}),(0,pa.jsx)(ma,{color:l,keyLabel:s+1,isCustomColor:!0})]},s))})};h();var Jp=(t,e,o)=>{let r=Math.ceil(o/Bn);switch(e=e??-1,t){case"ArrowLeft":{let n=e-1;return n<0?o-1:n}case"ArrowRight":return(e+1)%o;case"ArrowDown":{let n=e+Bn;return n>=o?e%Bn:n}case"ArrowUp":{let n=e-Bn,i=n<0?Bn*r+n:n;return i>=o?void 0:i}}},z6=({e:t,colorObj:e,onChange:o,palette:r,customColors:n,setActiveColorPickerSection:i,activeShade:a})=>{if(e?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(t.code)&&t.shiftKey){let l=Number(t.code.slice(-1))-1;return o(r[e.colorName][l]),i("shades"),!0}if(["1","2","3","4","5"].includes(t.key)&&n[Number(t.key)-1])return o(n[Number(t.key)-1]),i("custom"),!0;if(Hl.includes(t.key)){let l=Hl.indexOf(t.key),s=Object.keys(r)[l],c=r[s],m=Array.isArray(c)?c[a]:c;return o(m),i("baseColors"),!0}return!1},B2=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:s,onEyeDropperToggle:c,onEscape:m})=>{if(t[T.CTRL_OR_CMD])return!1;if(t.key===T.ESCAPE)return m(t),!0;if(t.key===T.ALT)return c(!0),!0;if(t.key===T.I)return c(),!0;let d=fn({color:r,palette:o});if(t.key===T.TAB){let f={custom:!!i.length,baseColors:!0,shades:d?.shade!=null,hex:!0},p=Object.entries(f).reduce((k,[C,M])=>(M&&k.push(C),k),[]),b=p.indexOf(e),x=t.shiftKey?-1:1,y=b+x>p.length-1?0:b+x<0?p.length-1:b+x,w=p[y];return w&&a(w),w==="custom"?n(i[0]):w==="baseColors"&&(Object.entries(o).find(([C,M])=>Array.isArray(M)?M.includes(r):M===r?C:null)||n(Sr.black)),t.preventDefault(),t.stopPropagation(),!0}if(z6({e:t,colorObj:d,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s}))return!0;if(e==="shades"&&d){let{shade:f}=d,p=Jp(t.key,f,Bn);if(p!==void 0)return n(o[d.colorName][p]),!0}if(e==="baseColors"&&d){let{colorName:f}=d,p=Object.keys(o),b=p.indexOf(f),x=Jp(t.key,b,p.length);if(x!==void 0){let y=p[x],w=o[y];return n(Array.isArray(w)?w[s]:w),!0}}if(e==="custom"){let f=i.indexOf(r),p=Jp(t.key,f,i.length);if(p!==void 0){let b=i[p];return n(b),!0}}return!1};h();var z2=v(S(),1),H6=({children:t})=>(0,z2.jsx)("div",{className:"color-picker__heading",children:t}),fa=H6;var po=v(S(),1),H2=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:s,onEscape:c})=>{let[m]=hn.default.useState(()=>r==="canvasBackground"?[]:P2(n,r,i)),[d,f]=Ee(_o),p=fn({color:t,palette:i});(0,hn.useEffect)(()=>{if(!d){let w=qp({color:t,palette:i}),k=w&&!m.includes(t);f(k?"hex":w?"custom":p?.shade!=null?"shades":"baseColors")}},[d,t,i,f,p,m]);let[b,x]=(0,hn.useState)(p?.shade??(r==="elementBackground"?Kg:Vg));(0,hn.useEffect)(()=>{p?.shade!=null&&x(p.shade);let w=k=>{k.key===T.ALT&&s(!1)};return document.addEventListener("keyup",w,{capture:!0}),()=>{document.removeEventListener("keyup",w,{capture:!0})}},[p,s]);let y=hn.default.useRef(null);return(0,po.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,po.jsxs)("div",{ref:y,onKeyDown:w=>{B2({event:w,activeColorPickerSection:d,palette:i,color:t,onChange:e,onEyeDropperToggle:s,customColors:m,setActiveColorPickerSection:f,updateData:a,activeShade:b,onEscape:c})&&(w.preventDefault(),w.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!m.length&&(0,po.jsxs)("div",{children:[(0,po.jsx)(fa,{children:g("colorPicker.mostUsedCustomColors")}),(0,po.jsx)(F2,{colors:m,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,po.jsxs)("div",{children:[(0,po.jsx)(fa,{children:g("colorPicker.colors")}),(0,po.jsx)(O2,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,po.jsxs)("div",{children:[(0,po.jsx)(fa,{children:g("colorPicker.shades")}),(0,po.jsx)(N2,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function ye(){return ye=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(t[r]=o[r])}return t},ye.apply(this,arguments)}var we=v(H());h();function vt(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var $2=v(H());function $6(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function Qp(...t){return e=>t.forEach(o=>$6(o,e))}function Ot(...t){return(0,$2.useCallback)(Qp(...t),t)}h();var qo=v(H());function gr(t,e=[]){let o=[];function r(i,a){let l=(0,qo.createContext)(a),s=o.length;o=[...o,a];function c(d){let{scope:f,children:p,...b}=d,x=f?.[t][s]||l,y=(0,qo.useMemo)(()=>b,Object.values(b));return(0,qo.createElement)(x.Provider,{value:y},p)}function m(d,f){let p=f?.[t][s]||l,b=(0,qo.useContext)(p);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${d}\` must be used within \`${i}\``)}return c.displayName=i+"Provider",[c,m]}let n=()=>{let i=o.map(a=>(0,qo.createContext)(a));return function(l){let s=l?.[t]||i;return(0,qo.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:s}}),[l,s])}};return n.scopeName=t,[r,U6(n,...e)]}function U6(...t){let e=t[0];if(t.length===1)return e;let o=()=>{let r=t.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(i){let a=r.reduce((l,{useScope:s,scopeName:c})=>{let d=s(i)[`__scope${c}`];return{...l,...d}},{});return(0,qo.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var ht=v(H());h();var ha=v(H()),U2=v(pr());h();var nt=v(H());var gn=(0,nt.forwardRef)((t,e)=>{let{children:o,...r}=t,n=nt.Children.toArray(o),i=n.find(G6);if(i){let a=i.props.children,l=n.map(s=>s===i?nt.Children.count(a)>1?nt.Children.only(null):(0,nt.isValidElement)(a)?a.props.children:null:s);return(0,nt.createElement)(ef,ye({},r,{ref:e}),(0,nt.isValidElement)(a)?(0,nt.cloneElement)(a,void 0,l):null)}return(0,nt.createElement)(ef,ye({},r,{ref:e}),o)});gn.displayName="Slot";var ef=(0,nt.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,nt.isValidElement)(o)?(0,nt.cloneElement)(o,{...V6(r,o.props),ref:Qp(e,o.ref)}):nt.Children.count(o)>1?nt.Children.only(null):null});ef.displayName="SlotClone";var W6=({children:t})=>(0,nt.createElement)(nt.Fragment,null,t);function G6(t){return(0,nt.isValidElement)(t)&&t.type===W6}function V6(t,e){let o={...e};for(let r in e){let n=t[r],i=e[r];/^on[A-Z]/.test(r)?n&&i?o[r]=(...l)=>{i(...l),n(...l)}:n&&(o[r]=n):r==="style"?o[r]={...n,...i}:r==="className"&&(o[r]=[n,i].filter(Boolean).join(" "))}return{...t,...o}}var K6=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],st=K6.reduce((t,e)=>{let o=(0,ha.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?gn:e;return(0,ha.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,ha.createElement)(l,ye({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function W2(t,e){t&&(0,U2.flushSync)(()=>t.dispatchEvent(e))}h();var ga=v(H());function eo(t){let e=(0,ga.useRef)(t);return(0,ga.useEffect)(()=>{e.current=t}),(0,ga.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var G2=v(H());function V2(t,e=globalThis?.document){let o=eo(t);(0,G2.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var tf="dismissableLayer.update",Y6="dismissableLayer.pointerDownOutside",Z6="dismissableLayer.focusOutside",K2,j6=(0,ht.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Z2=(0,ht.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:s,...c}=t,m=(0,ht.useContext)(j6),[d,f]=(0,ht.useState)(null),p=(o=d?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,ht.useState)({}),x=Ot(e,P=>f(P)),y=Array.from(m.layers),[w]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),k=y.indexOf(w),C=d?y.indexOf(d):-1,M=m.layersWithOutsidePointerEventsDisabled.size>0,_=C>=k,I=X6(P=>{let F=P.target,D=[...m.branches].some(W=>W.contains(F));!_||D||(i?.(P),l?.(P),P.defaultPrevented||s?.())},p),A=q6(P=>{let F=P.target;[...m.branches].some(W=>W.contains(F))||(a?.(P),l?.(P),P.defaultPrevented||s?.())},p);return V2(P=>{C===m.layers.size-1&&(n?.(P),!P.defaultPrevented&&s&&(P.preventDefault(),s()))},p),(0,ht.useEffect)(()=>{if(d)return r&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(K2=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(d)),m.layers.add(d),Y2(),()=>{r&&m.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=K2)}},[d,p,r,m]),(0,ht.useEffect)(()=>()=>{d&&(m.layers.delete(d),m.layersWithOutsidePointerEventsDisabled.delete(d),Y2())},[d,m]),(0,ht.useEffect)(()=>{let P=()=>b({});return document.addEventListener(tf,P),()=>document.removeEventListener(tf,P)},[]),(0,ht.createElement)(st.div,ye({},c,{ref:x,style:{pointerEvents:M?_?"auto":"none":void 0,...t.style},onFocusCapture:vt(t.onFocusCapture,A.onFocusCapture),onBlurCapture:vt(t.onBlurCapture,A.onBlurCapture),onPointerDownCapture:vt(t.onPointerDownCapture,I.onPointerDownCapture)}))});function X6(t,e=globalThis?.document){let o=eo(t),r=(0,ht.useRef)(!1),n=(0,ht.useRef)(()=>{});return(0,ht.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let c=function(){j2(Y6,o,s,{discrete:!0})},s={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=c,e.addEventListener("click",n.current,{once:!0})):c()}r.current=!1},a=window.setTimeout(()=>{e.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),e.removeEventListener("pointerdown",i),e.removeEventListener("click",n.current)}},[e,o]),{onPointerDownCapture:()=>r.current=!0}}function q6(t,e=globalThis?.document){let o=eo(t),r=(0,ht.useRef)(!1);return(0,ht.useEffect)(()=>{let n=i=>{i.target&&!r.current&&j2(Z6,o,{originalEvent:i},{discrete:!1})};return e.addEventListener("focusin",n),()=>e.removeEventListener("focusin",n)},[e,o]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Y2(){let t=new CustomEvent(tf);document.dispatchEvent(t)}function j2(t,e,o,{discrete:r}){let n=o.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:o});e&&n.addEventListener(t,e,{once:!0}),r?W2(n,i):n.dispatchEvent(i)}h();var q2=v(H()),of=0;function J2(){(0,q2.useEffect)(()=>{var t,e;let o=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(t=o[0])!==null&&t!==void 0?t:X2()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:X2()),of++,()=>{of===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),of--}},[])}function X2(){let t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",t}h();var lo=v(H());var rf="focusScope.autoFocusOnMount",nf="focusScope.autoFocusOnUnmount",Q2={bubbles:!1,cancelable:!0};var rv=(0,lo.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,s]=(0,lo.useState)(null),c=eo(n),m=eo(i),d=(0,lo.useRef)(null),f=Ot(e,x=>s(x)),p=(0,lo.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,lo.useEffect)(()=>{if(r){let x=function(w){if(p.paused||!l)return;let k=w.target;l.contains(k)?d.current=k:Qn(d.current,{select:!0})},y=function(w){p.paused||!l||l.contains(w.relatedTarget)||Qn(d.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",y),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",y)}}},[r,l,p.paused]),(0,lo.useEffect)(()=>{if(l){tv.add(p);let x=document.activeElement;if(!l.contains(x)){let w=new CustomEvent(rf,Q2);l.addEventListener(rf,c),l.dispatchEvent(w),w.defaultPrevented||(J6(r4(nv(l)),{select:!0}),document.activeElement===x&&Qn(l))}return()=>{l.removeEventListener(rf,c),setTimeout(()=>{let w=new CustomEvent(nf,Q2);l.addEventListener(nf,m),l.dispatchEvent(w),w.defaultPrevented||Qn(x??document.body,{select:!0}),l.removeEventListener(nf,m),tv.remove(p)},0)}}},[l,c,m,p]);let b=(0,lo.useCallback)(x=>{if(!o&&!r||p.paused)return;let y=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,w=document.activeElement;if(y&&w){let k=x.currentTarget,[C,M]=Q6(k);C&&M?!x.shiftKey&&w===M?(x.preventDefault(),o&&Qn(C,{select:!0})):x.shiftKey&&w===C&&(x.preventDefault(),o&&Qn(M,{select:!0})):w===k&&x.preventDefault()}},[o,r,p.paused]);return(0,lo.createElement)(st.div,ye({tabIndex:-1},a,{ref:f,onKeyDown:b}))});function J6(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(Qn(r,{select:e}),document.activeElement!==o)return}function Q6(t){let e=nv(t),o=ev(e,t),r=ev(e.reverse(),t);return[o,r]}function nv(t){let e=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{let n=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||n?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function ev(t,e){for(let o of t)if(!e4(o,{upTo:e}))return o}function e4(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function t4(t){return t instanceof HTMLInputElement&&"select"in t}function Qn(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&t4(t)&&e&&t.select()}}var tv=o4();function o4(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=ov(t,e),t.unshift(e)},remove(e){var o;t=ov(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function ov(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function r4(t){return t.filter(e=>e.tagName!=="A")}h();var xd=v(H());h();var iv=v(H()),Ao=globalThis?.document?iv.useLayoutEffect:()=>{};var n4=xd.useId||(()=>{}),i4=0;function ba(t){let[e,o]=xd.useState(n4());return Ao(()=>{t||o(r=>r??String(i4++))},[t]),t||(e?`radix-${e}`:"")}h();var Ye=v(H());h();h();h();function ti(t){return t.split("-")[0]}function Ul(t){return t.split("-")[1]}function va(t){return["top","bottom"].includes(ti(t))?"x":"y"}function lf(t){return t==="y"?"height":"width"}function av(t,e,o){let{reference:r,floating:n}=t,i=r.x+r.width/2-n.width/2,a=r.y+r.height/2-n.height/2,l=va(e),s=lf(l),c=r[s]/2-n[s]/2,m=l==="x",d;switch(ti(e)){case"top":d={x:i,y:r.y-n.height};break;case"bottom":d={x:i,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-n.width,y:a};break;default:d={x:r.x,y:r.y}}switch(Ul(e)){case"start":d[l]-=c*(o&&m?-1:1);break;case"end":d[l]+=c*(o&&m?-1:1)}return d}var dv=async(t,e,o)=>{let{placement:r="bottom",strategy:n="absolute",middleware:i=[],platform:a}=o,l=await(a.isRTL==null?void 0:a.isRTL(e)),s=await a.getElementRects({reference:t,floating:e,strategy:n}),{x:c,y:m}=av(s,r,l),d=r,f={},p=0;for(let b=0;b<i.length;b++){let{name:x,fn:y}=i[b],{x:w,y:k,data:C,reset:M}=await y({x:c,y:m,initialPlacement:r,placement:d,strategy:n,middlewareData:f,rects:s,platform:a,elements:{reference:t,floating:e}});c=w??c,m=k??m,f={...f,[x]:{...f[x],...C}},M&&p<=50&&(p++,typeof M=="object"&&(M.placement&&(d=M.placement),M.rects&&(s=M.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):M.rects),{x:c,y:m}=av(s,d,l)),b=-1)}return{x:c,y:m,placement:d,strategy:n,middlewareData:f}};function mv(t){return typeof t!="number"?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(t):{top:t,right:t,bottom:t,left:t}}function $l(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function xa(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:s}=t,{boundary:c="clippingAncestors",rootBoundary:m="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=e,b=mv(p),x=l[f?d==="floating"?"reference":"floating":d],y=$l(await i.getClippingRect({element:(o=await(i.isElement==null?void 0:i.isElement(x)))==null||o?x:x.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:c,rootBoundary:m,strategy:s})),w=$l(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:d==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:s}):a[d]);return{top:y.top-w.top+b.top,bottom:w.bottom-y.bottom+b.bottom,left:y.left-w.left+b.left,right:w.right-y.right+b.right}}var a4=Math.min,ei=Math.max;function af(t,e,o){return ei(t,a4(e,o))}var yd=t=>({name:"arrow",options:t,async fn(e){let{element:o,padding:r=0}=t??{},{x:n,y:i,placement:a,rects:l,platform:s}=e;if(o==null)return{};let c=mv(r),m={x:n,y:i},d=va(a),f=Ul(a),p=lf(d),b=await s.getDimensions(o),x=d==="y"?"top":"left",y=d==="y"?"bottom":"right",w=l.reference[p]+l.reference[d]-m[d]-l.floating[p],k=m[d]-l.reference[d],C=await(s.getOffsetParent==null?void 0:s.getOffsetParent(o)),M=C?d==="y"?C.clientHeight||0:C.clientWidth||0:0;M===0&&(M=l.floating[p]);let _=w/2-k/2,I=c[x],A=M-b[p]-c[y],P=M/2-b[p]/2+_,F=af(I,P,A),D=(f==="start"?c[x]:c[y])>0&&P!==F&&l.reference[p]<=l.floating[p];return{[d]:m[d]-(D?P<I?I-P:A-P:0),data:{[d]:F,centerOffset:P-F}}}}),l4={left:"right",right:"left",bottom:"top",top:"bottom"};function vd(t){return t.replace(/left|right|bottom|top/g,e=>l4[e])}function s4(t,e,o){o===void 0&&(o=!1);let r=Ul(t),n=va(t),i=lf(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=vd(a)),{main:a,cross:vd(a)}}var c4={start:"end",end:"start"};function lv(t){return t.replace(/start|end/g,e=>c4[e])}var uv=["top","right","bottom","left"],Q_=uv.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var sf=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var o;let{placement:r,middlewareData:n,rects:i,initialPlacement:a,platform:l,elements:s}=e,{mainAxis:c=!0,crossAxis:m=!0,fallbackPlacements:d,fallbackStrategy:f="bestFit",flipAlignment:p=!0,...b}=t,x=ti(r),y=d||(x===a||!p?[vd(a)]:function(P){let F=vd(P);return[lv(P),F,lv(F)]}(a)),w=[a,...y],k=await xa(e,b),C=[],M=((o=n.flip)==null?void 0:o.overflows)||[];if(c&&C.push(k[x]),m){let{main:P,cross:F}=s4(r,i,await(l.isRTL==null?void 0:l.isRTL(s.floating)));C.push(k[P],k[F])}if(M=[...M,{placement:r,overflows:C}],!C.every(P=>P<=0)){var _,I;let P=((_=(I=n.flip)==null?void 0:I.index)!=null?_:0)+1,F=w[P];if(F)return{data:{index:P,overflows:M},reset:{placement:F}};let D="bottom";switch(f){case"bestFit":{var A;let W=(A=M.map(O=>[O,O.overflows.filter(U=>U>0).reduce((U,ee)=>U+ee,0)]).sort((O,U)=>O[1]-U[1])[0])==null?void 0:A[0].placement;W&&(D=W);break}case"initialPlacement":D=a}if(r!==D)return{reset:{placement:D}}}return{}}}};function sv(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function cv(t){return uv.some(e=>t[e]>=0)}var cf=function(t){let{strategy:e="referenceHidden",...o}=t===void 0?{}:t;return{name:"hide",async fn(r){let{rects:n}=r;switch(e){case"referenceHidden":{let i=sv(await xa(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:cv(i)}}}case"escaped":{let i=sv(await xa(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:cv(i)}}}default:return{}}}}},df=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){let{x:o,y:r}=e,n=await async function(i,a){let{placement:l,platform:s,elements:c}=i,m=await(s.isRTL==null?void 0:s.isRTL(c.floating)),d=ti(l),f=Ul(l),p=va(l)==="x",b=["left","top"].includes(d)?-1:1,x=m&&p?-1:1,y=typeof a=="function"?a(i):a,{mainAxis:w,crossAxis:k,alignmentAxis:C}=typeof y=="number"?{mainAxis:y,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...y};return f&&typeof C=="number"&&(k=f==="end"?-1*C:C),p?{x:k*x,y:w*b}:{x:w*b,y:k*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function pv(t){return t==="x"?"y":"x"}var mf=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){let{x:o,y:r,placement:n}=e,{mainAxis:i=!0,crossAxis:a=!1,limiter:l={fn:y=>{let{x:w,y:k}=y;return{x:w,y:k}}},...s}=t,c={x:o,y:r},m=await xa(e,s),d=va(ti(n)),f=pv(d),p=c[d],b=c[f];if(i){let y=d==="y"?"bottom":"right";p=af(p+m[d==="y"?"top":"left"],p,p-m[y])}if(a){let y=f==="y"?"bottom":"right";b=af(b+m[f==="y"?"top":"left"],b,b-m[y])}let x=l.fn({...e,[d]:p,[f]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},uf=function(t){return t===void 0&&(t={}),{options:t,fn(e){let{x:o,y:r,placement:n,rects:i,middlewareData:a}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=t,m={x:o,y:r},d=va(n),f=pv(d),p=m[d],b=m[f],x=typeof l=="function"?l({...i,placement:n}):l,y=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(s){let _=d==="y"?"height":"width",I=i.reference[d]-i.floating[_]+y.mainAxis,A=i.reference[d]+i.reference[_]-y.mainAxis;p<I?p=I:p>A&&(p=A)}if(c){var w,k,C,M;let _=d==="y"?"width":"height",I=["top","left"].includes(ti(n)),A=i.reference[f]-i.floating[_]+(I&&(w=(k=a.offset)==null?void 0:k[f])!=null?w:0)+(I?0:y.crossAxis),P=i.reference[f]+i.reference[_]+(I?0:(C=(M=a.offset)==null?void 0:M[f])!=null?C:0)-(I?y.crossAxis:0);b<A?b=A:b>P&&(b=P)}return{[d]:p,[f]:b}}}},pf=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){let{placement:o,rects:r,platform:n,elements:i}=e,{apply:a,...l}=t,s=await xa(e,l),c=ti(o),m=Ul(o),d,f;c==="top"||c==="bottom"?(d=c,f=m===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(f=c,d=m==="end"?"top":"bottom");let p=ei(s.left,0),b=ei(s.right,0),x=ei(s.top,0),y=ei(s.bottom,0),w={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||y!==0?x+y:ei(s.top,s.bottom)):s[d]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(p!==0||b!==0?p+b:ei(s.left,s.right)):s[f])},k=await n.getDimensions(i.floating);a?.({...e,...w});let C=await n.getDimensions(i.floating);return k.width!==C.width||k.height!==C.height?{reset:{rects:!0}}:{}}}};function vv(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Gr(t){if(t==null)return window;if(!vv(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function Gl(t){return Gr(t).getComputedStyle(t)}function Ur(t){return vv(t)?"":t?(t.nodeName||"").toLowerCase():""}function yv(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function br(t){return t instanceof Gr(t).HTMLElement}function xn(t){return t instanceof Gr(t).Element}function hf(t){return typeof ShadowRoot>"u"?!1:t instanceof Gr(t).ShadowRoot||t instanceof ShadowRoot}function Cd(t){let{overflow:e,overflowX:o,overflowY:r}=Gl(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function d4(t){return["table","td","th"].includes(Ur(t))}function fv(t){let e=/firefox/i.test(yv()),o=Gl(t);return o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].includes(o.willChange)||e&&o.willChange==="filter"||e&&!!o.filter&&o.filter!=="none"}function Ev(){return!/^((?!chrome|android).)*safari/i.test(yv())}var hv=Math.min,Wl=Math.max,Ed=Math.round;function Wr(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),s=1,c=1;e&&br(t)&&(s=t.offsetWidth>0&&Ed(l.width)/t.offsetWidth||1,c=t.offsetHeight>0&&Ed(l.height)/t.offsetHeight||1);let m=xn(t)?Gr(t):window,d=!Ev()&&o,f=(l.left+(d&&(r=(n=m.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/s,p=(l.top+(d&&(i=(a=m.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/c,b=l.width/s,x=l.height/c;return{width:b,height:x,top:p,right:f+b,bottom:p+x,left:f,x:f,y:p}}function bn(t){return(e=t,(e instanceof Gr(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function Td(t){return xn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function wv(t){return Wr(bn(t)).left+Td(t).scrollLeft}function m4(t,e,o){let r=br(e),n=bn(e),i=Wr(t,r&&function(s){let c=Wr(s);return Ed(c.width)!==s.offsetWidth||Ed(c.height)!==s.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Ur(e)!=="body"||Cd(n))&&(a=Td(e)),br(e)){let s=Wr(e,!0);l.x=s.x+e.clientLeft,l.y=s.y+e.clientTop}else n&&(l.x=wv(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function Cv(t){return Ur(t)==="html"?t:t.assignedSlot||t.parentNode||(hf(t)?t.host:null)||bn(t)}function gv(t){return br(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function ff(t){let e=Gr(t),o=gv(t);for(;o&&d4(o)&&getComputedStyle(o).position==="static";)o=gv(o);return o&&(Ur(o)==="html"||Ur(o)==="body"&&getComputedStyle(o).position==="static"&&!fv(o))?e:o||function(r){let n=Cv(r);for(hf(n)&&(n=n.host);br(n)&&!["html","body"].includes(Ur(n));){if(fv(n))return n;n=n.parentNode}return null}(t)||e}function bv(t){if(br(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Wr(t);return{width:e.width,height:e.height}}function Tv(t){let e=Cv(t);return["html","body","#document"].includes(Ur(e))?t.ownerDocument.body:br(e)&&Cd(e)?e:Tv(e)}function wd(t,e){var o;e===void 0&&(e=[]);let r=Tv(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Gr(r),a=n?[i].concat(i.visualViewport||[],Cd(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(wd(a))}function xv(t,e,o){return e==="viewport"?$l(function(r,n){let i=Gr(r),a=bn(r),l=i.visualViewport,s=a.clientWidth,c=a.clientHeight,m=0,d=0;if(l){s=l.width,c=l.height;let f=Ev();(f||!f&&n==="fixed")&&(m=l.offsetLeft,d=l.offsetTop)}return{width:s,height:c,x:m,y:d}}(t,o)):xn(e)?function(r,n){let i=Wr(r,!1,n==="fixed"),a=i.top+r.clientTop,l=i.left+r.clientLeft;return{top:a,left:l,x:l,y:a,right:l+r.clientWidth,bottom:a+r.clientHeight,width:r.clientWidth,height:r.clientHeight}}(e,o):$l(function(r){var n;let i=bn(r),a=Td(r),l=(n=r.ownerDocument)==null?void 0:n.body,s=Wl(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),c=Wl(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),m=-a.scrollLeft+wv(r),d=-a.scrollTop;return Gl(l||i).direction==="rtl"&&(m+=Wl(i.clientWidth,l?l.clientWidth:0)-s),{width:s,height:c,x:m,y:d}}(bn(t)))}function u4(t){let e=wd(t),o=["absolute","fixed"].includes(Gl(t).position)&&br(t)?ff(t):t;return xn(o)?e.filter(r=>xn(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&hf(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Ur(r)!=="body"):[]}var p4={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?u4(e):[].concat(o),r],a=i[0],l=i.reduce((s,c)=>{let m=xv(e,c,n);return s.top=Wl(m.top,s.top),s.right=hv(m.right,s.right),s.bottom=hv(m.bottom,s.bottom),s.left=Wl(m.left,s.left),s},xv(e,a,n));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:o,strategy:r}=t,n=br(o),i=bn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Ur(o)!=="body"||Cd(i))&&(a=Td(o)),br(o))){let s=Wr(o,!0);l.x=s.x+o.clientLeft,l.y=s.y+o.clientTop}return{...e,x:e.x-a.scrollLeft+l.x,y:e.y-a.scrollTop+l.y}},isElement:xn,getDimensions:bv,getOffsetParent:ff,getDocumentElement:bn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:m4(e,ff(o),r),floating:{...bv(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Gl(t).direction==="rtl"};function Sv(t,e,o,r){r===void 0&&(r={});let{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:l=!1}=r,s=n&&!l,c=i&&!l,m=s||c?[...xn(t)?wd(t):[],...wd(e)]:[];m.forEach(b=>{s&&b.addEventListener("scroll",o,{passive:!0}),c&&b.addEventListener("resize",o)});let d,f=null;if(a){let b=!0;f=new ResizeObserver(()=>{b||o(),b=!1}),xn(t)&&!l&&f.observe(t),f.observe(e)}let p=l?Wr(t):null;return l&&function b(){let x=Wr(t);!p||x.x===p.x&&x.y===p.y&&x.width===p.width&&x.height===p.height||o(),p=x,d=requestAnimationFrame(b)}(),o(),()=>{var b;m.forEach(x=>{s&&x.removeEventListener("scroll",o),c&&x.removeEventListener("resize",o)}),(b=f)==null||b.disconnect(),f=null,l&&cancelAnimationFrame(d)}}var kv=(t,e,o)=>dv(t,e,{platform:p4,...o});var Ft=v(H()),Sd=v(H()),Iv=v(pr()),gf=typeof document<"u"?Sd.useLayoutEffect:Sd.useEffect;function bf(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let o,r,n;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(o=t.length,o!=e.length)return!1;for(r=o;r--!==0;)if(!bf(t[r],e[r]))return!1;return!0}if(n=Object.keys(t),o=n.length,o!==Object.keys(e).length)return!1;for(r=o;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,n[r]))return!1;for(r=o;r--!==0;){let i=n[r];if(!(i==="_owner"&&t.$$typeof)&&!bf(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function f4(t){let e=Ft.useRef(t);return gf(()=>{e.current=t}),e}function Mv(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=Ft.useRef(null),a=Ft.useRef(null),l=f4(n),s=Ft.useRef(null),[c,m]=Ft.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[d,f]=Ft.useState(e);bf(d?.map(C=>{let{options:M}=C;return M}),e?.map(C=>{let{options:M}=C;return M}))||f(e);let p=Ft.useCallback(()=>{!i.current||!a.current||kv(i.current,a.current,{middleware:d,placement:o,strategy:r}).then(C=>{b.current&&Iv.flushSync(()=>{m(C)})})},[d,o,r]);gf(()=>{b.current&&p()},[p]);let b=Ft.useRef(!1);gf(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=Ft.useCallback(()=>{if(typeof s.current=="function"&&(s.current(),s.current=null),i.current&&a.current)if(l.current){let C=l.current(i.current,a.current,p);s.current=C}else p()},[p,l]),y=Ft.useCallback(C=>{i.current=C,x()},[x]),w=Ft.useCallback(C=>{a.current=C,x()},[x]),k=Ft.useMemo(()=>({reference:i,floating:a}),[]);return Ft.useMemo(()=>({...c,update:p,refs:k,reference:y,floating:w}),[c,p,k,y,w])}var _v=t=>{let{element:e,padding:o}=t;function r(n){return Object.prototype.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){return r(e)?e.current!=null?yd({element:e.current,padding:o}).fn(n):{}:e?yd({element:e,padding:o}).fn(n):{}}}};h();var Vl=v(H());var h4=(0,Vl.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,Vl.createElement)(st.svg,ye({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,Vl.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),Av=h4;h();var Lv=v(H());function Pv(t){let[e,o]=(0,Lv.useState)(void 0);return Ao(()=>{if(t){o({width:t.offsetWidth,height:t.offsetHeight});let r=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;let i=n[0],a,l;if("borderBoxSize"in i){let s=i.borderBoxSize,c=Array.isArray(s)?s[0]:s;a=c.inlineSize,l=c.blockSize}else a=t.offsetWidth,l=t.offsetHeight;o({width:a,height:l})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else o(void 0)},[t]),e}var Dv="Popper",[xf,vf]=gr(Dv),[g4,Rv]=xf(Dv),b4=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,Ye.useState)(null);return(0,Ye.createElement)(g4,{scope:e,anchor:r,onAnchorChange:n},o)},x4="PopperAnchor",v4=(0,Ye.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=Rv(x4,o),a=(0,Ye.useRef)(null),l=Ot(e,a);return(0,Ye.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,Ye.createElement)(st.div,ye({},n,{ref:l}))}),kd="PopperContent",[y4,E4]=xf(kd),[w4,C4]=xf(kd,{hasParent:!1,positionUpdateFns:new Set}),T4=(0,Ye.forwardRef)((t,e)=>{var o,r,n,i,a,l,s,c;let{__scopePopper:m,side:d="bottom",sideOffset:f=0,align:p="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:y=[],collisionPadding:w=0,sticky:k="partial",hideWhenDetached:C=!1,avoidCollisions:M=!0,onPlaced:_,...I}=t,A=Rv(kd,m),[P,F]=(0,Ye.useState)(null),D=Ot(e,Mi=>F(Mi)),[W,O]=(0,Ye.useState)(null),U=Pv(W),ee=(o=U?.width)!==null&&o!==void 0?o:0,K=(r=U?.height)!==null&&r!==void 0?r:0,pe=d+(p!=="center"?"-"+p:""),me=typeof w=="number"?w:{top:0,right:0,bottom:0,left:0,...w},ce=Array.isArray(y)?y:[y],oe=ce.length>0,R={padding:me,boundary:ce.filter(_4),altBoundary:oe},{reference:B,floating:V,strategy:Z,x:Y,y:j,placement:J,middlewareData:ne,update:mt}=Mv({strategy:"fixed",placement:pe,whileElementsMounted:Sv,middleware:[A4(),df({mainAxis:f+K,alignmentAxis:b}),M?mf({mainAxis:!0,crossAxis:!1,limiter:k==="partial"?uf():void 0,...R}):void 0,W?_v({element:W,padding:x}):void 0,M?sf({...R}):void 0,pf({...R,apply:({elements:Mi,availableWidth:o6,availableHeight:r6})=>{Mi.floating.style.setProperty("--radix-popper-available-width",`${o6}px`),Mi.floating.style.setProperty("--radix-popper-available-height",`${r6}px`)}}),L4({arrowWidth:ee,arrowHeight:K}),C?cf({strategy:"referenceHidden"}):void 0].filter(M4)});Ao(()=>{B(A.anchor)},[B,A.anchor]);let tt=Y!==null&&j!==null,[at,He]=Nv(J),Xt=eo(_);Ao(()=>{tt&&Xt?.()},[tt,Xt]);let Fs=(n=ne.arrow)===null||n===void 0?void 0:n.x,q5=(i=ne.arrow)===null||i===void 0?void 0:i.y,J5=((a=ne.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[Q5,e6]=(0,Ye.useState)();Ao(()=>{P&&e6(window.getComputedStyle(P).zIndex)},[P]);let{hasParent:t6,positionUpdateFns:Ii}=C4(kd,m),el=!t6;(0,Ye.useLayoutEffect)(()=>{if(!el)return Ii.add(mt),()=>{Ii.delete(mt)}},[el,Ii,mt]),Ao(()=>{el&&tt&&Array.from(Ii).reverse().forEach(Mi=>requestAnimationFrame(Mi))},[el,tt,Ii]);let Hg={"data-side":at,"data-align":He,...I,ref:D,style:{...I.style,animation:tt?void 0:"none",opacity:(l=ne.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,Ye.createElement)("div",{ref:V,"data-radix-popper-content-wrapper":"",style:{position:Z,left:0,top:0,transform:tt?`translate3d(${Math.round(Y)}px, ${Math.round(j)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:Q5,"--radix-popper-transform-origin":[(s=ne.transformOrigin)===null||s===void 0?void 0:s.x,(c=ne.transformOrigin)===null||c===void 0?void 0:c.y].join(" ")},dir:t.dir},(0,Ye.createElement)(y4,{scope:m,placedSide:at,onArrowChange:O,arrowX:Fs,arrowY:q5,shouldHideArrow:J5},el?(0,Ye.createElement)(w4,{scope:m,hasParent:!0,positionUpdateFns:Ii},(0,Ye.createElement)(st.div,Hg)):(0,Ye.createElement)(st.div,Hg)))}),S4="PopperArrow",k4={top:"bottom",right:"left",bottom:"top",left:"right"},I4=(0,Ye.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=E4(S4,r),a=k4[i.placedSide];return(0,Ye.createElement)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0}},(0,Ye.createElement)(Av,ye({},n,{ref:o,style:{...n.style,display:"block"}})))});function M4(t){return t!==void 0}function _4(t){return t!==null}var A4=()=>({name:"anchorCssProperties",fn(t){let{rects:e,elements:o}=t,{width:r,height:n}=e.reference;return o.floating.style.setProperty("--radix-popper-anchor-width",`${r}px`),o.floating.style.setProperty("--radix-popper-anchor-height",`${n}px`),{}}}),L4=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:s,middlewareData:c}=e,d=((o=c.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,f=d?0:t.arrowWidth,p=d?0:t.arrowHeight,[b,x]=Nv(l),y={start:"0%",center:"50%",end:"100%"}[x],w=((r=(n=c.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+f/2,k=((i=(a=c.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+p/2,C="",M="";return b==="bottom"?(C=d?y:`${w}px`,M=`${-p}px`):b==="top"?(C=d?y:`${w}px`,M=`${s.floating.height+p}px`):b==="right"?(C=`${-p}px`,M=d?y:`${k}px`):b==="left"&&(C=`${s.floating.width+p}px`,M=d?y:`${k}px`),{data:{x:C,y:M}}}});function Nv(t){let[e,o="center"]=t.split("-");return[e,o]}var Ov=b4,Fv=v4,Bv=T4,zv=I4;h();var Id=v(H()),Hv=v(pr());var $v=(0,Id.forwardRef)((t,e)=>{var o;let{container:r=globalThis==null||(o=globalThis.document)===null||o===void 0?void 0:o.body,...n}=t;return r?Hv.default.createPortal((0,Id.createElement)(st.div,ye({},n,{ref:e})),r):null});h();var Wt=v(H()),Uv=v(pr());function P4(t,e){return(0,Wt.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var ya=t=>{let{present:e,children:o}=t,r=D4(e),n=typeof o=="function"?o({present:r.isPresent}):Wt.Children.only(o),i=Ot(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Wt.cloneElement)(n,{ref:i}):null};ya.displayName="Presence";function D4(t){let[e,o]=(0,Wt.useState)(),r=(0,Wt.useRef)({}),n=(0,Wt.useRef)(t),i=(0,Wt.useRef)("none"),a=t?"mounted":"unmounted",[l,s]=P4(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Wt.useEffect)(()=>{let c=Md(r.current);i.current=l==="mounted"?c:"none"},[l]),Ao(()=>{let c=r.current,m=n.current;if(m!==t){let f=i.current,p=Md(c);t?s("MOUNT"):p==="none"||c?.display==="none"?s("UNMOUNT"):s(m&&f!==p?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,s]),Ao(()=>{if(e){let c=d=>{let p=Md(r.current).includes(d.animationName);d.target===e&&p&&(0,Uv.flushSync)(()=>s("ANIMATION_END"))},m=d=>{d.target===e&&(i.current=Md(r.current))};return e.addEventListener("animationstart",m),e.addEventListener("animationcancel",c),e.addEventListener("animationend",c),()=>{e.removeEventListener("animationstart",m),e.removeEventListener("animationcancel",c),e.removeEventListener("animationend",c)}}else s("ANIMATION_END")},[e,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Wt.useCallback)(c=>{c&&(r.current=getComputedStyle(c)),o(c)},[])}}function Md(t){return t?.animationName||"none"}h();var vn=v(H());function Ea({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=R4({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=eo(o),s=(0,vn.useCallback)(c=>{if(i){let d=typeof c=="function"?c(t):c;d!==t&&l(d)}else n(c)},[i,t,n,l]);return[a,s]}function R4({defaultProp:t,onChange:e}){let o=(0,vn.useState)(t),[r]=o,n=(0,vn.useRef)(r),i=eo(e);return(0,vn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var N4=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},wa=new WeakMap,_d=new WeakMap,Ad={},yf=0,Wv=function(t){return t&&(t.host||Wv(t.parentNode))},O4=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=Wv(o);return r&&t.contains(r)?r:(console.error("aria-hidden",o,"in not contained inside",t,". Doing nothing"),null)}).filter(function(o){return!!o})},F4=function(t,e,o,r){var n=O4(e,Array.isArray(t)?t:[t]);Ad[o]||(Ad[o]=new WeakMap);var i=Ad[o],a=[],l=new Set,s=new Set(n),c=function(d){!d||l.has(d)||(l.add(d),c(d.parentNode))};n.forEach(c);var m=function(d){!d||s.has(d)||Array.prototype.forEach.call(d.children,function(f){if(l.has(f))m(f);else{var p=f.getAttribute(r),b=p!==null&&p!=="false",x=(wa.get(f)||0)+1,y=(i.get(f)||0)+1;wa.set(f,x),i.set(f,y),a.push(f),x===1&&b&&_d.set(f,!0),y===1&&f.setAttribute(o,"true"),b||f.setAttribute(r,"true")}})};return m(e),l.clear(),yf++,function(){a.forEach(function(d){var f=wa.get(d)-1,p=i.get(d)-1;wa.set(d,f),i.set(d,p),f||(_d.has(d)||d.removeAttribute(r),_d.delete(d)),p||d.removeAttribute(o)}),yf--,yf||(wa=new WeakMap,wa=new WeakMap,_d=new WeakMap,Ad={})}},Gv=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||N4(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),F4(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var xr=function(){return xr=Object.assign||function(e){for(var o,r=1,n=arguments.length;r<n;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},xr.apply(this,arguments)};function Vv(t,e){var o={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(o[r[n]]=t[r[n]]);return o}function Kv(t,e,o){if(o||arguments.length===2)for(var r=0,n=e.length,i;r<n;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return t.concat(i||Array.prototype.slice.call(e))}var Rd=v(H());h();var Gt=v(H());h();var oi="right-scroll-bar-position",ri="width-before-scroll-bar",Ef="with-scroll-bars-hidden",wf="--removed-body-scroll-bar-size";h();h();function Yv(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var Zv=v(H());function jv(t,e){var o=(0,Zv.useState)(function(){return{value:t,callback:e,facade:{get current(){return o.value},set current(r){var n=o.value;n!==r&&(o.value=r,o.callback(r,n))}}}})[0];return o.callback=e,o.facade}h();function Cf(t,e){return jv(e||null,function(o){return t.forEach(function(r){return Yv(r,o)})})}h();h();h();var Ca=function(){return Ca=Object.assign||function(e){for(var o,r=1,n=arguments.length;r<n;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},Ca.apply(this,arguments)};function Xv(t,e){var o={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(o[r[n]]=t[r[n]]);return o}h();function B4(t){return t}function z4(t,e){e===void 0&&(e=B4);var o=[],r=!1,n={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return o.length?o[o.length-1]:t},useMedium:function(i){var a=e(i,r);return o.push(a),function(){o=o.filter(function(l){return l!==a})}},assignSyncMedium:function(i){for(r=!0;o.length;){var a=o;o=[],a.forEach(i)}o={push:function(l){return i(l)},filter:function(){return o}}},assignMedium:function(i){r=!0;var a=[];if(o.length){var l=o;o=[],l.forEach(i),a=o}var s=function(){var m=a;a=[],m.forEach(i)},c=function(){return Promise.resolve().then(s)};c(),o={push:function(m){a.push(m),c()},filter:function(m){return a=a.filter(m),o}}}};return n}function Tf(t){t===void 0&&(t={});var e=z4(null);return e.options=Ca({async:!0,ssr:!1},t),e}h();var qv=v(H()),Jv=function(t){var e=t.sideCar,o=Xv(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=e.read();if(!r)throw new Error("Sidecar medium not found");return qv.createElement(r,Ca({},o))};Jv.isSideCarExport=!0;function Sf(t,e){return t.useMedium(e),Jv}var Ld=Tf();var kf=function(){},Kl=Gt.forwardRef(function(t,e){var o=Gt.useRef(null),r=Gt.useState({onScrollCapture:kf,onWheelCapture:kf,onTouchMoveCapture:kf}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,s=t.className,c=t.removeScrollBar,m=t.enabled,d=t.shards,f=t.sideCar,p=t.noIsolation,b=t.inert,x=t.allowPinchZoom,y=t.as,w=y===void 0?"div":y,k=Vv(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),C=f,M=Cf([o,e]),_=xr(xr({},k),n);return Gt.createElement(Gt.Fragment,null,m&&Gt.createElement(C,{sideCar:Ld,removeScrollBar:c,shards:d,noIsolation:p,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?Gt.cloneElement(Gt.Children.only(l),xr(xr({},_),{ref:M})):Gt.createElement(w,xr({},_,{className:s,ref:M}),l))});Kl.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Kl.classNames={fullWidth:ri,zeroRight:oi};h();h();var Ze=v(H());h();h();var Pd=v(H());h();h();h();var ty=v(H());h();h();var Qv;var ey=function(){if(Qv)return Qv;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function H4(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=ey();return e&&t.setAttribute("nonce",e),t}function $4(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function U4(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var If=function(){var t=0,e=null;return{add:function(o){t==0&&(e=H4())&&($4(e,o),U4(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Mf=function(){var t=If();return function(e,o){ty.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var Yl=function(){var t=Mf(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var W4={left:0,top:0,right:0,gap:0},_f=function(t){return parseInt(t||"",10)||0},G4=function(t){var e=window.getComputedStyle(document.body),o=e[t==="padding"?"paddingLeft":"marginLeft"],r=e[t==="padding"?"paddingTop":"marginTop"],n=e[t==="padding"?"paddingRight":"marginRight"];return[_f(o),_f(r),_f(n)]},Af=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return W4;var e=G4(t),o=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-o+e[2]-e[0])}};var V4=Yl(),K4=function(t,e,o,r){var n=t.left,i=t.top,a=t.right,l=t.gap;return o===void 0&&(o="margin"),`
|
|
2
|
-
|
|
3
|
-
overflow: hidden `).concat(r,`;
|
|
4
|
-
|
|
1
|
+
import{$ as MS,$a as kt,$b as d2,$c as Rd,$d as rT,$e as zT,$f as $d,$g as IC,$h as gv,$i as gI,A as bx,Aa as op,Ab as fo,Ac as b2,Ad as Gx,Ae as ST,Af as Np,Ag as Ci,Ah as Qp,Ai as aI,B as SS,Ba as np,Bb as kx,Bc as Ne,Bd as Wx,Be as TT,Bf as rv,Bg as Kp,Bh as Bs,Bi as df,C as xx,Ca as Sn,Cb as mp,Cc as R,Cd as Kx,Ce as CT,Cf as Re,Cg as EC,Ch as ef,Ci as Kn,D as ut,Da as ip,Db as Ut,Dc as Cs,Dd as Yx,De as IT,Df as eC,Dg as wC,Dh as tf,Di as xv,E as aa,Ea as Vt,Eb as i2,Ec as pp,Ed as $2,Ee as Cp,Ef as Bd,Eg as re,Eh as Qo,Ei as lI,F as rl,Fa as Vo,Fb as a2,Fc as Is,Fd as H2,Fe as Ip,Ff as tC,Fg as Jo,Fh as W,Fi as mf,G as hd,Ga as GS,Gb as up,Gc as fp,Gd as Vx,Ge as Ms,Gf as rC,Gg as pt,Gh as OC,Gi as sI,H as vx,Ha as vd,Hb as Td,Hc as x2,Hd as Xx,He as _p,Hf as zd,Hg as SC,Hh as fv,Hi as cI,I as Xu,Ia as po,Ib as Cd,Ic as gp,Id as Ep,Ie as Ps,If as Xt,Ig as _n,Ih as yl,Ii as L7,J as ol,Ja as WS,Jb as da,Jc as v2,Jd as Zo,Je as Nd,Jf as Op,Jg as Fs,Jh as FC,Ji as va,K as Be,Ka as KS,Kb as Fr,Kc as y2,Kd as Zx,Ke as _T,Kf as Fp,Kg as Yp,Kh as zs,Ki as me,L as wn,La as Cx,Lb as dl,Lc as E2,Ld as qx,Le as Ls,Lf as Bp,Lg as nv,Lh as BC,Li as Pe,M as gs,Ma as sa,Mb as vs,Mc as ml,Md as U2,Me as AT,Mf as Si,Mg as iv,Mh as zC,Mi as vv,N as hs,Na as YS,Nb as he,Nc as _s,Nd as G2,Ne as kT,Nf as oC,Ng as Vp,Nh as $C,Ni as wl,O as Zu,Oa as VS,Ob as Mx,Oc as w2,Od as W2,Oe as MT,Of as zp,Og as av,Oh as HC,Oi as Vd,P as yx,Pa as XS,Pb as Id,Pc as S2,Pd as K2,Pe as Ap,Pf as nC,Pg as lv,Ph as UC,Pi as yv,Q as qu,Qa as Wn,Qb as He,Qc as T2,Qd as jx,Qe as PT,Qf as $p,Qg as TC,Qh as GC,Qi as dI,R as TS,Ra as il,Rb as Qe,Rc as C2,Rd as Y2,Re as LT,Rf as Hp,Rg as sv,Rh as rf,Ri as uf,S as bd,Sa as eo,Sb as Br,Sc as hp,Sd as V2,Se as RT,Sf as iC,Sg as _7,Sh as Kd,Si as mI,T as CS,Ta as al,Tb as l2,Tc as I2,Td as X2,Te as kp,Tf as Ve,Tg as cv,Th as WC,Ti as uI,U as IS,Ua as ap,Ub as vi,Uc as Dx,Ud as Z2,Ue as DT,Uf as bl,Ug as Hd,Uh as KC,Ui as pf,V as xi,Va as ll,Vb as s2,Vc as Nx,Vd as q2,Ve as NT,Vf as Up,Vh as YC,Vi as Ev,W as _S,Wa as ZS,Wb as yi,Wc as _2,Wd as j2,We as OT,Wf as aC,Wh as VC,Wi as wv,X as kr,Xa as qS,Xb as c2,Xc as Cn,Xd as J2,Xe as FT,Xf as lC,Xh as XC,Xi as Sv,Y as ju,Ya as sl,Yb as go,Yc as A2,Yd as Q2,Ye as ev,Yf as sC,Yh as of,Yi as pI,Z as AS,Za as Ht,Zb as Sr,Zc as Pd,Zd as eT,Ze as Mp,Zf as cC,Zh as ZC,Zi as ff,_ as kS,_a as X,_b as ys,_c as Ld,_d as tT,_e as BT,_f as Ds,_g as CC,_h as qC,_i as fI,a as j,aa as PS,ab as to,ac as m2,ad as bp,ae as Jx,af as $T,ag as dC,ah as Xp,ai as $s,aj as hI,b as P,ba as LS,bb as yd,bc as u2,bd as ul,be as oT,bf as HT,bg as mC,bh as Zp,bi as jC,bj as bI,c as q,ca as RS,cb as Ed,cc as ma,cd as As,ce as nT,cf as UT,cg as uC,ch as dv,ci as JC,cj as xI,d as Or,da as nl,db as lp,dc as Es,dd as k2,de as iT,df as GT,dg as ho,dh as qp,di as QC,dj as vI,e as pS,ea as Ju,eb as Ix,ec as p2,ed as Ox,ee as aT,ef as WT,eg as lt,eh as _C,ei as nf,ej as Tv,f as el,fa as Ex,fb as _x,fc as f2,fd as xp,fe as lT,ff as KT,fg as Gp,fh as mv,fi as eI,fj as Gs,g as fS,ga as DS,gb as cl,gc as Po,gd as M2,ge as sT,gf as YT,gg as qo,gh as Ii,gi as Hs,gj as R7,h as gS,ha as NS,hb as sp,hc as ua,hd as P2,he as cT,hf as VT,hg as ov,hh as AC,hi as El,hj as Cv,i as hi,ia as Qu,ib as jS,ic as Xo,id as L2,ie as dT,if as Rs,ig as Ns,ih as jp,ii as hv,ij as Iv,j as Gu,ja as ep,jb as JS,jc as g2,jd as Dd,je as mT,jf as XT,jg as jo,jh as kC,ji as Yd,jj as We,k as Wu,ka as wx,kb as QS,kc as Tn,kd as R2,ke as uT,kf as ZT,kg as Ti,kh as Ud,ki as A7,kj as _v,l as Ku,la as OS,lb as Le,lc as Ei,ld as D2,le as pl,lf as qT,lg as pC,lh as uv,li as k7,lj as Ws,m as hS,ma as FS,mb as e2,mc as pa,md as ks,me as pT,mf as Pp,mg as Mr,mh as MC,mi as M7,mj as yI,n as bS,na as BS,nb as t2,nc as _d,nd as N2,ne as fT,nf as jT,ng as Wp,nh as PC,ni as P7,nj as Av,o as xS,oa as zS,ob as wd,oc as ro,od as vp,oe as gT,of as wi,og as fC,oh as LC,oi as af,oj as ft,p as En,pa as $S,pb as r2,pc as h2,pd as yp,pe as hT,pf as JT,pg as In,ph as vl,pi as tI,pj as EI,q as Yu,qa as tp,qb as cp,qc as ws,qd as O2,qe as bT,qf as fl,qg as gC,qh as _i,qi as bv,qj as Oe,r as bi,ra as la,rb as bs,rc as Ss,rd as F2,re as xT,rf as Lp,rg as hC,rh as ha,ri as rI,rj as gf,s as vS,sa as HS,sb as o2,sc as Ad,sd as Fx,se as vT,sf as gl,sg as Os,sh as pv,si as xa,sj as gt,t as yS,ta as Sx,tb as xs,tc as kd,td as Bx,te as yT,tf as Rp,tg as Gt,th as RC,ti as oI,tj as wI,u as ES,ua as US,ub as Sd,uc as fa,ud as B2,ue as wp,uf as Od,ug as bC,uh as Jp,ui as Us,uj as Sl,v as fd,va as rp,vb as gr,vc as Md,vd as z2,ve as ET,vf as tv,vg as xC,vh as Gd,vi as nI,vj as Ai,w as gd,wa as Tx,wb as ca,wc as Px,wd as zx,we as Sp,wf as QT,wg as vC,wh as ba,wi as lf,wj as ki,x as tl,xa as Ko,xb as dp,xc as Lx,xd as $x,xe as Qx,xf as Fd,xg as xl,xh as DC,xi as iI,y as Vu,ya as xd,yb as n2,yc as Rx,yd as Hx,ye as Tp,yf as hl,yg as yC,yh as NC,yi as sf,z as wS,za as Yo,zb as Ax,zc as Ts,zd as Ux,ze as wT,zf as Dp,zg as ga,zh as Wd,zi as cf}from"./excalidraw-assets/chunk-F3JN4YS2.js";import{a as v,b as _}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{H as hx}from"./excalidraw-assets/chunk-MXFM2KIK.js";import{aa as uS}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as dS,d as ia,e as mS,f as w}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var Vn=ia((XH,RI)=>{v();RI.exports=ReactDOM});var m0=ia((Bae,x5)=>{v();var b5="Expected a function",g5=NaN,zF="[object Symbol]",$F=/^\s+|\s+$/g,HF=/^[-+]0x[0-9a-f]+$/i,UF=/^0b[01]+$/i,GF=/^0o[0-7]+$/i,WF=parseInt,KF=typeof global=="object"&&global&&global.Object===Object&&global,YF=typeof self=="object"&&self&&self.Object===Object&&self,VF=KF||YF||Function("return this")(),XF=Object.prototype,ZF=XF.toString,qF=Math.max,jF=Math.min,d0=function(){return VF.Date.now()};function JF(e,t,r){var o,i,a,s,c,d,p=0,f=!1,m=!1,g=!0;if(typeof e!="function")throw new TypeError(b5);t=h5(t)||0,Wg(r)&&(f=!!r.leading,m="maxWait"in r,a=m?qF(h5(r.maxWait)||0,t):a,g="trailing"in r?!!r.trailing:g);function h(L){var F=o,D=i;return o=i=void 0,p=L,s=e.apply(D,F),s}function b(L){return p=L,c=setTimeout(k,t),f?h(L):s}function y(L){var F=L-d,D=L-p,V=t-F;return m?jF(V,a-D):V}function T(L){var F=L-d,D=L-p;return d===void 0||F>=t||F<0||m&&D>=a}function k(){var L=d0();if(T(L))return I(L);c=setTimeout(k,y(L))}function I(L){return c=void 0,g&&o?h(L):(o=i=void 0,s)}function A(){c!==void 0&&clearTimeout(c),p=0,o=d=i=c=void 0}function O(){return c===void 0?s:I(d0())}function z(){var L=d0(),F=T(L);if(o=arguments,i=this,d=L,F){if(c===void 0)return b(d);if(m)return c=setTimeout(k,t),h(d)}return c===void 0&&(c=setTimeout(k,t)),s}return z.cancel=A,z.flush=O,z}function QF(e,t,r){var o=!0,i=!0;if(typeof e!="function")throw new TypeError(b5);return Wg(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),JF(e,t,{leading:o,maxWait:t,trailing:i})}function Wg(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function eB(e){return!!e&&typeof e=="object"}function tB(e){return typeof e=="symbol"||eB(e)&&ZF.call(e)==zF}function h5(e){if(typeof e=="number")return e;if(tB(e))return g5;if(Wg(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Wg(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace($F,"");var r=UF.test(e);return r||GF.test(e)?WF(e.slice(2),r?2:8):HF.test(e)?g5:+e}x5.exports=QF});var _5=ia((C5,I5)=>{v();(function(){var e=this,t={};typeof C5<"u"?I5.exports=t:e.fuzzy=t,t.simpleFilter=function(r,o){return o.filter(function(i){return t.test(r,i)})},t.test=function(r,o){return t.match(r,o)!==null},t.match=function(r,o,i){i=i||{};var a=0,s=[],c=o.length,d=0,p=0,f=i.pre||"",m=i.post||"",g=i.caseSensitive&&o||o.toLowerCase(),h;r=i.caseSensitive&&r||r.toLowerCase();for(var b=0;b<c;b++)h=o[b],g[b]===r[a]?(h=f+h+m,a+=1,p+=1+p):p=0,d+=p,s[s.length]=h;return a===r.length?(d=g===r?1/0:d,{rendered:s.join(""),score:d}):null},t.filter=function(r,o,i){return!o||o.length===0?[]:typeof r!="string"?o:(i=i||{},o.reduce(function(a,s,c,d){var p=s;i.extract&&(p=i.extract(s));var f=t.match(r,p,i);return f!=null&&(a[a.length]={string:f.rendered,score:f.score,index:c,original:s}),a},[]).sort(function(a,s){var c=s.score-a.score;return c||a.index-s.index}))}})()});var L5=ia(P5=>{"use strict";v();var Rc=j();function bB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var xB=typeof Object.is=="function"?Object.is:bB,vB=Rc.useState,yB=Rc.useEffect,EB=Rc.useLayoutEffect,wB=Rc.useDebugValue;function SB(e,t){var r=t(),o=vB({inst:{value:r,getSnapshot:t}}),i=o[0].inst,a=o[1];return EB(function(){i.value=r,i.getSnapshot=t,f0(i)&&a({inst:i})},[e,r,t]),yB(function(){return f0(i)&&a({inst:i}),e(function(){f0(i)&&a({inst:i})})},[e]),wB(r),r}function f0(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!xB(e,r)}catch{return!0}}function TB(e,t){return t()}var CB=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?TB:SB;P5.useSyncExternalStore=Rc.useSyncExternalStore!==void 0?Rc.useSyncExternalStore:CB});var D5=ia((yse,R5)=>{"use strict";v();R5.exports=L5()});var O5=ia(N5=>{"use strict";v();var Vg=j(),IB=D5();function _B(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var AB=typeof Object.is=="function"?Object.is:_B,kB=IB.useSyncExternalStore,MB=Vg.useRef,PB=Vg.useEffect,LB=Vg.useMemo,RB=Vg.useDebugValue;N5.useSyncExternalStoreWithSelector=function(e,t,r,o,i){var a=MB(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=LB(function(){function d(h){if(!p){if(p=!0,f=h,h=o(h),i!==void 0&&s.hasValue){var b=s.value;if(i(b,h))return m=b}return m=h}if(b=m,AB(f,h))return b;var y=o(h);return i!==void 0&&i(b,y)?b:(f=h,m=y)}var p=!1,f,m,g=r===void 0?null:r;return[function(){return d(t())},g===null?void 0:function(){return d(g())}]},[t,r,o,i]);var c=kB(e,a[0],a[1]);return PB(function(){s.hasValue=!0,s.value=c},[c]),RB(c),c}});var B5=ia((Tse,F5)=>{"use strict";v();F5.exports=O5()});var wM=ia((Hc,zm)=>{v();(function(){var e,t="4.17.21",r=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",p=1,f=2,m=4,g=1,h=2,b=1,y=2,T=4,k=8,I=16,A=32,O=64,z=128,L=256,F=512,D=30,V="...",G=800,Q=16,de=1,K=2,se=3,be=1/0,_e=9007199254740991,nt=17976931348623157e292,Ee=NaN,ue=4294967295,U=ue-1,Y=ue>>>1,oe=[["ary",z],["bind",b],["bindKey",y],["curry",k],["curryRight",I],["flip",F],["partial",A],["partialRight",O],["rearg",L]],ie="[object Arguments]",le="[object Array]",ce="[object AsyncFunction]",pe="[object Boolean]",ye="[object Date]",Tt="[object DOMException]",xt="[object Error]",Nt="[object Function]",yt="[object GeneratorFunction]",Jt="[object Map]",qr="[object Number]",ai="[object Null]",nr="[object Object]",eu="[object Promise]",Vh="[object Proxy]",Ua="[object RegExp]",yr="[object Set]",hn="[object String]",Ga="[object Symbol]",Xi="[object Undefined]",Wa="[object WeakMap]",Xh="[object WeakSet]",Jc="[object ArrayBuffer]",ts="[object DataView]",Zh="[object Float32Array]",qh="[object Float64Array]",jh="[object Int8Array]",Jh="[object Int16Array]",Qh="[object Int32Array]",eb="[object Uint8Array]",tb="[object Uint8ClampedArray]",rb="[object Uint16Array]",ob="[object Uint32Array]",XP=/\b__p \+= '';/g,ZP=/\b(__p \+=) '' \+/g,qP=/(__e\(.*?\)|\b__t\)) \+\n'';/g,NE=/&(?:amp|lt|gt|quot|#39);/g,OE=/[&<>"']/g,jP=RegExp(NE.source),JP=RegExp(OE.source),QP=/<%-([\s\S]+?)%>/g,eL=/<%([\s\S]+?)%>/g,FE=/<%=([\s\S]+?)%>/g,tL=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rL=/^\w*$/,oL=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,nb=/[\\^$.*+?()[\]{}|]/g,nL=RegExp(nb.source),ib=/^\s+/,iL=/\s/,aL=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,lL=/\{\n\/\* \[wrapped with (.+)\] \*/,sL=/,? & /,cL=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,dL=/[()=,{}\[\]\/\s]/,mL=/\\(\\)?/g,uL=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,BE=/\w*$/,pL=/^[-+]0x[0-9a-f]+$/i,fL=/^0b[01]+$/i,gL=/^\[object .+?Constructor\]$/,hL=/^0o[0-7]+$/i,bL=/^(?:0|[1-9]\d*)$/,xL=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,tu=/($^)/,vL=/['\n\r\u2028\u2029\\]/g,ru="\\ud800-\\udfff",yL="\\u0300-\\u036f",EL="\\ufe20-\\ufe2f",wL="\\u20d0-\\u20ff",zE=yL+EL+wL,$E="\\u2700-\\u27bf",HE="a-z\\xdf-\\xf6\\xf8-\\xff",SL="\\xac\\xb1\\xd7\\xf7",TL="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",CL="\\u2000-\\u206f",IL=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",UE="A-Z\\xc0-\\xd6\\xd8-\\xde",GE="\\ufe0e\\ufe0f",WE=SL+TL+CL+IL,ab="['\u2019]",_L="["+ru+"]",KE="["+WE+"]",ou="["+zE+"]",YE="\\d+",AL="["+$E+"]",VE="["+HE+"]",XE="[^"+ru+WE+YE+$E+HE+UE+"]",lb="\\ud83c[\\udffb-\\udfff]",kL="(?:"+ou+"|"+lb+")",ZE="[^"+ru+"]",sb="(?:\\ud83c[\\udde6-\\uddff]){2}",cb="[\\ud800-\\udbff][\\udc00-\\udfff]",rs="["+UE+"]",qE="\\u200d",jE="(?:"+VE+"|"+XE+")",ML="(?:"+rs+"|"+XE+")",JE="(?:"+ab+"(?:d|ll|m|re|s|t|ve))?",QE="(?:"+ab+"(?:D|LL|M|RE|S|T|VE))?",ew=kL+"?",tw="["+GE+"]?",PL="(?:"+qE+"(?:"+[ZE,sb,cb].join("|")+")"+tw+ew+")*",LL="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",RL="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rw=tw+ew+PL,DL="(?:"+[AL,sb,cb].join("|")+")"+rw,NL="(?:"+[ZE+ou+"?",ou,sb,cb,_L].join("|")+")",OL=RegExp(ab,"g"),FL=RegExp(ou,"g"),db=RegExp(lb+"(?="+lb+")|"+NL+rw,"g"),BL=RegExp([rs+"?"+VE+"+"+JE+"(?="+[KE,rs,"$"].join("|")+")",ML+"+"+QE+"(?="+[KE,rs+jE,"$"].join("|")+")",rs+"?"+jE+"+"+JE,rs+"+"+QE,RL,LL,YE,DL].join("|"),"g"),zL=RegExp("["+qE+ru+zE+GE+"]"),$L=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,HL=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],UL=-1,At={};At[Zh]=At[qh]=At[jh]=At[Jh]=At[Qh]=At[eb]=At[tb]=At[rb]=At[ob]=!0,At[ie]=At[le]=At[Jc]=At[pe]=At[ts]=At[ye]=At[xt]=At[Nt]=At[Jt]=At[qr]=At[nr]=At[Ua]=At[yr]=At[hn]=At[Wa]=!1;var Ct={};Ct[ie]=Ct[le]=Ct[Jc]=Ct[ts]=Ct[pe]=Ct[ye]=Ct[Zh]=Ct[qh]=Ct[jh]=Ct[Jh]=Ct[Qh]=Ct[Jt]=Ct[qr]=Ct[nr]=Ct[Ua]=Ct[yr]=Ct[hn]=Ct[Ga]=Ct[eb]=Ct[tb]=Ct[rb]=Ct[ob]=!0,Ct[xt]=Ct[Nt]=Ct[Wa]=!1;var GL={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},WL={"&":"&","<":"<",">":">",'"':""","'":"'"},KL={"&":"&","<":"<",">":">",""":'"',"'":"'"},YL={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},VL=parseFloat,XL=parseInt,ow=typeof global=="object"&&global&&global.Object===Object&&global,ZL=typeof self=="object"&&self&&self.Object===Object&&self,Er=ow||ZL||Function("return this")(),mb=typeof Hc=="object"&&Hc&&!Hc.nodeType&&Hc,Ka=mb&&typeof zm=="object"&&zm&&!zm.nodeType&&zm,nw=Ka&&Ka.exports===mb,ub=nw&&ow.process,Fo=function(){try{var $=Ka&&Ka.require&&Ka.require("util").types;return $||ub&&ub.binding&&ub.binding("util")}catch{}}(),iw=Fo&&Fo.isArrayBuffer,aw=Fo&&Fo.isDate,lw=Fo&&Fo.isMap,sw=Fo&&Fo.isRegExp,cw=Fo&&Fo.isSet,dw=Fo&&Fo.isTypedArray;function Co($,J,Z){switch(Z.length){case 0:return $.call(J);case 1:return $.call(J,Z[0]);case 2:return $.call(J,Z[0],Z[1]);case 3:return $.call(J,Z[0],Z[1],Z[2])}return $.apply(J,Z)}function qL($,J,Z,ve){for(var Fe=-1,ct=$==null?0:$.length;++Fe<ct;){var pr=$[Fe];J(ve,pr,Z(pr),$)}return ve}function Bo($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve&&J($[Z],Z,$)!==!1;);return $}function jL($,J){for(var Z=$==null?0:$.length;Z--&&J($[Z],Z,$)!==!1;);return $}function mw($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve;)if(!J($[Z],Z,$))return!1;return!0}function Zi($,J){for(var Z=-1,ve=$==null?0:$.length,Fe=0,ct=[];++Z<ve;){var pr=$[Z];J(pr,Z,$)&&(ct[Fe++]=pr)}return ct}function nu($,J){var Z=$==null?0:$.length;return!!Z&&os($,J,0)>-1}function pb($,J,Z){for(var ve=-1,Fe=$==null?0:$.length;++ve<Fe;)if(Z(J,$[ve]))return!0;return!1}function Ot($,J){for(var Z=-1,ve=$==null?0:$.length,Fe=Array(ve);++Z<ve;)Fe[Z]=J($[Z],Z,$);return Fe}function qi($,J){for(var Z=-1,ve=J.length,Fe=$.length;++Z<ve;)$[Fe+Z]=J[Z];return $}function fb($,J,Z,ve){var Fe=-1,ct=$==null?0:$.length;for(ve&&ct&&(Z=$[++Fe]);++Fe<ct;)Z=J(Z,$[Fe],Fe,$);return Z}function JL($,J,Z,ve){var Fe=$==null?0:$.length;for(ve&&Fe&&(Z=$[--Fe]);Fe--;)Z=J(Z,$[Fe],Fe,$);return Z}function gb($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve;)if(J($[Z],Z,$))return!0;return!1}var QL=hb("length");function eR($){return $.split("")}function tR($){return $.match(cL)||[]}function uw($,J,Z){var ve;return Z($,function(Fe,ct,pr){if(J(Fe,ct,pr))return ve=ct,!1}),ve}function iu($,J,Z,ve){for(var Fe=$.length,ct=Z+(ve?1:-1);ve?ct--:++ct<Fe;)if(J($[ct],ct,$))return ct;return-1}function os($,J,Z){return J===J?pR($,J,Z):iu($,pw,Z)}function rR($,J,Z,ve){for(var Fe=Z-1,ct=$.length;++Fe<ct;)if(ve($[Fe],J))return Fe;return-1}function pw($){return $!==$}function fw($,J){var Z=$==null?0:$.length;return Z?xb($,J)/Z:Ee}function hb($){return function(J){return J==null?e:J[$]}}function bb($){return function(J){return $==null?e:$[J]}}function gw($,J,Z,ve,Fe){return Fe($,function(ct,pr,Et){Z=ve?(ve=!1,ct):J(Z,ct,pr,Et)}),Z}function oR($,J){var Z=$.length;for($.sort(J);Z--;)$[Z]=$[Z].value;return $}function xb($,J){for(var Z,ve=-1,Fe=$.length;++ve<Fe;){var ct=J($[ve]);ct!==e&&(Z=Z===e?ct:Z+ct)}return Z}function vb($,J){for(var Z=-1,ve=Array($);++Z<$;)ve[Z]=J(Z);return ve}function nR($,J){return Ot(J,function(Z){return[Z,$[Z]]})}function hw($){return $&&$.slice(0,yw($)+1).replace(ib,"")}function Io($){return function(J){return $(J)}}function yb($,J){return Ot(J,function(Z){return $[Z]})}function Qc($,J){return $.has(J)}function bw($,J){for(var Z=-1,ve=$.length;++Z<ve&&os(J,$[Z],0)>-1;);return Z}function xw($,J){for(var Z=$.length;Z--&&os(J,$[Z],0)>-1;);return Z}function iR($,J){for(var Z=$.length,ve=0;Z--;)$[Z]===J&&++ve;return ve}var aR=bb(GL),lR=bb(WL);function sR($){return"\\"+YL[$]}function cR($,J){return $==null?e:$[J]}function ns($){return zL.test($)}function dR($){return $L.test($)}function mR($){for(var J,Z=[];!(J=$.next()).done;)Z.push(J.value);return Z}function Eb($){var J=-1,Z=Array($.size);return $.forEach(function(ve,Fe){Z[++J]=[Fe,ve]}),Z}function vw($,J){return function(Z){return $(J(Z))}}function ji($,J){for(var Z=-1,ve=$.length,Fe=0,ct=[];++Z<ve;){var pr=$[Z];(pr===J||pr===d)&&($[Z]=d,ct[Fe++]=Z)}return ct}function au($){var J=-1,Z=Array($.size);return $.forEach(function(ve){Z[++J]=ve}),Z}function uR($){var J=-1,Z=Array($.size);return $.forEach(function(ve){Z[++J]=[ve,ve]}),Z}function pR($,J,Z){for(var ve=Z-1,Fe=$.length;++ve<Fe;)if($[ve]===J)return ve;return-1}function fR($,J,Z){for(var ve=Z+1;ve--;)if($[ve]===J)return ve;return ve}function is($){return ns($)?hR($):QL($)}function bn($){return ns($)?bR($):eR($)}function yw($){for(var J=$.length;J--&&iL.test($.charAt(J)););return J}var gR=bb(KL);function hR($){for(var J=db.lastIndex=0;db.test($);)++J;return J}function bR($){return $.match(db)||[]}function xR($){return $.match(BL)||[]}var vR=function $(J){J=J==null?Er:Ji.defaults(Er.Object(),J,Ji.pick(Er,HL));var Z=J.Array,ve=J.Date,Fe=J.Error,ct=J.Function,pr=J.Math,Et=J.Object,wb=J.RegExp,yR=J.String,zo=J.TypeError,lu=Z.prototype,ER=ct.prototype,as=Et.prototype,su=J["__core-js_shared__"],cu=ER.toString,ht=as.hasOwnProperty,wR=0,Ew=function(){var n=/[^.]+$/.exec(su&&su.keys&&su.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),du=as.toString,SR=cu.call(Et),TR=Er._,CR=wb("^"+cu.call(ht).replace(nb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),mu=nw?J.Buffer:e,Qi=J.Symbol,uu=J.Uint8Array,ww=mu?mu.allocUnsafe:e,pu=vw(Et.getPrototypeOf,Et),Sw=Et.create,Tw=as.propertyIsEnumerable,fu=lu.splice,Cw=Qi?Qi.isConcatSpreadable:e,ed=Qi?Qi.iterator:e,Ya=Qi?Qi.toStringTag:e,gu=function(){try{var n=ja(Et,"defineProperty");return n({},"",{}),n}catch{}}(),IR=J.clearTimeout!==Er.clearTimeout&&J.clearTimeout,_R=ve&&ve.now!==Er.Date.now&&ve.now,AR=J.setTimeout!==Er.setTimeout&&J.setTimeout,hu=pr.ceil,bu=pr.floor,Sb=Et.getOwnPropertySymbols,kR=mu?mu.isBuffer:e,Iw=J.isFinite,MR=lu.join,PR=vw(Et.keys,Et),fr=pr.max,Dr=pr.min,LR=ve.now,RR=J.parseInt,_w=pr.random,DR=lu.reverse,Tb=ja(J,"DataView"),td=ja(J,"Map"),Cb=ja(J,"Promise"),ls=ja(J,"Set"),rd=ja(J,"WeakMap"),od=ja(Et,"create"),xu=rd&&new rd,ss={},NR=Ja(Tb),OR=Ja(td),FR=Ja(Cb),BR=Ja(ls),zR=Ja(rd),vu=Qi?Qi.prototype:e,nd=vu?vu.valueOf:e,Aw=vu?vu.toString:e;function C(n){if(Yt(n)&&!$e(n)&&!(n instanceof Je)){if(n instanceof $o)return n;if(ht.call(n,"__wrapped__"))return k1(n)}return new $o(n)}var cs=function(){function n(){}return function(l){if(!$t(l))return{};if(Sw)return Sw(l);n.prototype=l;var u=new n;return n.prototype=e,u}}();function yu(){}function $o(n,l){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}C.templateSettings={escape:QP,evaluate:eL,interpolate:FE,variable:"",imports:{_:C}},C.prototype=yu.prototype,C.prototype.constructor=C,$o.prototype=cs(yu.prototype),$o.prototype.constructor=$o;function Je(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ue,this.__views__=[]}function $R(){var n=new Je(this.__wrapped__);return n.__actions__=so(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=so(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=so(this.__views__),n}function HR(){if(this.__filtered__){var n=new Je(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function UR(){var n=this.__wrapped__.value(),l=this.__dir__,u=$e(n),x=l<0,S=u?n.length:0,M=e6(0,S,this.__views__),N=M.start,B=M.end,H=B-N,ee=x?B:N-1,te=this.__iteratees__,ae=te.length,fe=0,we=Dr(H,this.__takeCount__);if(!u||!x&&S==H&&we==H)return Jw(n,this.__actions__);var ke=[];e:for(;H--&&fe<we;){ee+=l;for(var Ge=-1,Me=n[ee];++Ge<ae;){var je=te[Ge],tt=je.iteratee,ko=je.type,Qr=tt(Me);if(ko==K)Me=Qr;else if(!Qr){if(ko==de)continue e;break e}}ke[fe++]=Me}return ke}Je.prototype=cs(yu.prototype),Je.prototype.constructor=Je;function Va(n){var l=-1,u=n==null?0:n.length;for(this.clear();++l<u;){var x=n[l];this.set(x[0],x[1])}}function GR(){this.__data__=od?od(null):{},this.size=0}function WR(n){var l=this.has(n)&&delete this.__data__[n];return this.size-=l?1:0,l}function KR(n){var l=this.__data__;if(od){var u=l[n];return u===s?e:u}return ht.call(l,n)?l[n]:e}function YR(n){var l=this.__data__;return od?l[n]!==e:ht.call(l,n)}function VR(n,l){var u=this.__data__;return this.size+=this.has(n)?0:1,u[n]=od&&l===e?s:l,this}Va.prototype.clear=GR,Va.prototype.delete=WR,Va.prototype.get=KR,Va.prototype.has=YR,Va.prototype.set=VR;function li(n){var l=-1,u=n==null?0:n.length;for(this.clear();++l<u;){var x=n[l];this.set(x[0],x[1])}}function XR(){this.__data__=[],this.size=0}function ZR(n){var l=this.__data__,u=Eu(l,n);if(u<0)return!1;var x=l.length-1;return u==x?l.pop():fu.call(l,u,1),--this.size,!0}function qR(n){var l=this.__data__,u=Eu(l,n);return u<0?e:l[u][1]}function jR(n){return Eu(this.__data__,n)>-1}function JR(n,l){var u=this.__data__,x=Eu(u,n);return x<0?(++this.size,u.push([n,l])):u[x][1]=l,this}li.prototype.clear=XR,li.prototype.delete=ZR,li.prototype.get=qR,li.prototype.has=jR,li.prototype.set=JR;function si(n){var l=-1,u=n==null?0:n.length;for(this.clear();++l<u;){var x=n[l];this.set(x[0],x[1])}}function QR(){this.size=0,this.__data__={hash:new Va,map:new(td||li),string:new Va}}function eD(n){var l=Ru(this,n).delete(n);return this.size-=l?1:0,l}function tD(n){return Ru(this,n).get(n)}function rD(n){return Ru(this,n).has(n)}function oD(n,l){var u=Ru(this,n),x=u.size;return u.set(n,l),this.size+=u.size==x?0:1,this}si.prototype.clear=QR,si.prototype.delete=eD,si.prototype.get=tD,si.prototype.has=rD,si.prototype.set=oD;function Xa(n){var l=-1,u=n==null?0:n.length;for(this.__data__=new si;++l<u;)this.add(n[l])}function nD(n){return this.__data__.set(n,s),this}function iD(n){return this.__data__.has(n)}Xa.prototype.add=Xa.prototype.push=nD,Xa.prototype.has=iD;function xn(n){var l=this.__data__=new li(n);this.size=l.size}function aD(){this.__data__=new li,this.size=0}function lD(n){var l=this.__data__,u=l.delete(n);return this.size=l.size,u}function sD(n){return this.__data__.get(n)}function cD(n){return this.__data__.has(n)}function dD(n,l){var u=this.__data__;if(u instanceof li){var x=u.__data__;if(!td||x.length<r-1)return x.push([n,l]),this.size=++u.size,this;u=this.__data__=new si(x)}return u.set(n,l),this.size=u.size,this}xn.prototype.clear=aD,xn.prototype.delete=lD,xn.prototype.get=sD,xn.prototype.has=cD,xn.prototype.set=dD;function kw(n,l){var u=$e(n),x=!u&&Qa(n),S=!u&&!x&&na(n),M=!u&&!x&&!S&&ps(n),N=u||x||S||M,B=N?vb(n.length,yR):[],H=B.length;for(var ee in n)(l||ht.call(n,ee))&&!(N&&(ee=="length"||S&&(ee=="offset"||ee=="parent")||M&&(ee=="buffer"||ee=="byteLength"||ee=="byteOffset")||ui(ee,H)))&&B.push(ee);return B}function Mw(n){var l=n.length;return l?n[Ob(0,l-1)]:e}function mD(n,l){return Du(so(n),Za(l,0,n.length))}function uD(n){return Du(so(n))}function Ib(n,l,u){(u!==e&&!vn(n[l],u)||u===e&&!(l in n))&&ci(n,l,u)}function id(n,l,u){var x=n[l];(!(ht.call(n,l)&&vn(x,u))||u===e&&!(l in n))&&ci(n,l,u)}function Eu(n,l){for(var u=n.length;u--;)if(vn(n[u][0],l))return u;return-1}function pD(n,l,u,x){return ea(n,function(S,M,N){l(x,S,u(S),N)}),x}function Pw(n,l){return n&&Un(l,wr(l),n)}function fD(n,l){return n&&Un(l,mo(l),n)}function ci(n,l,u){l=="__proto__"&&gu?gu(n,l,{configurable:!0,enumerable:!0,value:u,writable:!0}):n[l]=u}function _b(n,l){for(var u=-1,x=l.length,S=Z(x),M=n==null;++u<x;)S[u]=M?e:lx(n,l[u]);return S}function Za(n,l,u){return n===n&&(u!==e&&(n=n<=u?n:u),l!==e&&(n=n>=l?n:l)),n}function Ho(n,l,u,x,S,M){var N,B=l&p,H=l&f,ee=l&m;if(u&&(N=S?u(n,x,S,M):u(n)),N!==e)return N;if(!$t(n))return n;var te=$e(n);if(te){if(N=r6(n),!B)return so(n,N)}else{var ae=Nr(n),fe=ae==Nt||ae==yt;if(na(n))return t1(n,B);if(ae==nr||ae==ie||fe&&!S){if(N=H||fe?{}:y1(n),!B)return H?KD(n,fD(N,n)):WD(n,Pw(N,n))}else{if(!Ct[ae])return S?n:{};N=o6(n,ae,B)}}M||(M=new xn);var we=M.get(n);if(we)return we;M.set(n,N),Z1(n)?n.forEach(function(Me){N.add(Ho(Me,l,u,Me,n,M))}):V1(n)&&n.forEach(function(Me,je){N.set(je,Ho(Me,l,u,je,n,M))});var ke=ee?H?Vb:Yb:H?mo:wr,Ge=te?e:ke(n);return Bo(Ge||n,function(Me,je){Ge&&(je=Me,Me=n[je]),id(N,je,Ho(Me,l,u,je,n,M))}),N}function gD(n){var l=wr(n);return function(u){return Lw(u,n,l)}}function Lw(n,l,u){var x=u.length;if(n==null)return!x;for(n=Et(n);x--;){var S=u[x],M=l[S],N=n[S];if(N===e&&!(S in n)||!M(N))return!1}return!0}function Rw(n,l,u){if(typeof n!="function")throw new zo(i);return ud(function(){n.apply(e,u)},l)}function ad(n,l,u,x){var S=-1,M=nu,N=!0,B=n.length,H=[],ee=l.length;if(!B)return H;u&&(l=Ot(l,Io(u))),x?(M=pb,N=!1):l.length>=r&&(M=Qc,N=!1,l=new Xa(l));e:for(;++S<B;){var te=n[S],ae=u==null?te:u(te);if(te=x||te!==0?te:0,N&&ae===ae){for(var fe=ee;fe--;)if(l[fe]===ae)continue e;H.push(te)}else M(l,ae,x)||H.push(te)}return H}var ea=a1(Hn),Dw=a1(kb,!0);function hD(n,l){var u=!0;return ea(n,function(x,S,M){return u=!!l(x,S,M),u}),u}function wu(n,l,u){for(var x=-1,S=n.length;++x<S;){var M=n[x],N=l(M);if(N!=null&&(B===e?N===N&&!Ao(N):u(N,B)))var B=N,H=M}return H}function bD(n,l,u,x){var S=n.length;for(u=Ue(u),u<0&&(u=-u>S?0:S+u),x=x===e||x>S?S:Ue(x),x<0&&(x+=S),x=u>x?0:j1(x);u<x;)n[u++]=l;return n}function Nw(n,l){var u=[];return ea(n,function(x,S,M){l(x,S,M)&&u.push(x)}),u}function Ar(n,l,u,x,S){var M=-1,N=n.length;for(u||(u=i6),S||(S=[]);++M<N;){var B=n[M];l>0&&u(B)?l>1?Ar(B,l-1,u,x,S):qi(S,B):x||(S[S.length]=B)}return S}var Ab=l1(),Ow=l1(!0);function Hn(n,l){return n&&Ab(n,l,wr)}function kb(n,l){return n&&Ow(n,l,wr)}function Su(n,l){return Zi(l,function(u){return pi(n[u])})}function qa(n,l){l=ra(l,n);for(var u=0,x=l.length;n!=null&&u<x;)n=n[Gn(l[u++])];return u&&u==x?n:e}function Fw(n,l,u){var x=l(n);return $e(n)?x:qi(x,u(n))}function jr(n){return n==null?n===e?Xi:ai:Ya&&Ya in Et(n)?QD(n):u6(n)}function Mb(n,l){return n>l}function xD(n,l){return n!=null&&ht.call(n,l)}function vD(n,l){return n!=null&&l in Et(n)}function yD(n,l,u){return n>=Dr(l,u)&&n<fr(l,u)}function Pb(n,l,u){for(var x=u?pb:nu,S=n[0].length,M=n.length,N=M,B=Z(M),H=1/0,ee=[];N--;){var te=n[N];N&&l&&(te=Ot(te,Io(l))),H=Dr(te.length,H),B[N]=!u&&(l||S>=120&&te.length>=120)?new Xa(N&&te):e}te=n[0];var ae=-1,fe=B[0];e:for(;++ae<S&&ee.length<H;){var we=te[ae],ke=l?l(we):we;if(we=u||we!==0?we:0,!(fe?Qc(fe,ke):x(ee,ke,u))){for(N=M;--N;){var Ge=B[N];if(!(Ge?Qc(Ge,ke):x(n[N],ke,u)))continue e}fe&&fe.push(ke),ee.push(we)}}return ee}function ED(n,l,u,x){return Hn(n,function(S,M,N){l(x,u(S),M,N)}),x}function ld(n,l,u){l=ra(l,n),n=T1(n,l);var x=n==null?n:n[Gn(Go(l))];return x==null?e:Co(x,n,u)}function Bw(n){return Yt(n)&&jr(n)==ie}function wD(n){return Yt(n)&&jr(n)==Jc}function SD(n){return Yt(n)&&jr(n)==ye}function sd(n,l,u,x,S){return n===l?!0:n==null||l==null||!Yt(n)&&!Yt(l)?n!==n&&l!==l:TD(n,l,u,x,sd,S)}function TD(n,l,u,x,S,M){var N=$e(n),B=$e(l),H=N?le:Nr(n),ee=B?le:Nr(l);H=H==ie?nr:H,ee=ee==ie?nr:ee;var te=H==nr,ae=ee==nr,fe=H==ee;if(fe&&na(n)){if(!na(l))return!1;N=!0,te=!1}if(fe&&!te)return M||(M=new xn),N||ps(n)?b1(n,l,u,x,S,M):jD(n,l,H,u,x,S,M);if(!(u&g)){var we=te&&ht.call(n,"__wrapped__"),ke=ae&&ht.call(l,"__wrapped__");if(we||ke){var Ge=we?n.value():n,Me=ke?l.value():l;return M||(M=new xn),S(Ge,Me,u,x,M)}}return fe?(M||(M=new xn),JD(n,l,u,x,S,M)):!1}function CD(n){return Yt(n)&&Nr(n)==Jt}function Lb(n,l,u,x){var S=u.length,M=S,N=!x;if(n==null)return!M;for(n=Et(n);S--;){var B=u[S];if(N&&B[2]?B[1]!==n[B[0]]:!(B[0]in n))return!1}for(;++S<M;){B=u[S];var H=B[0],ee=n[H],te=B[1];if(N&&B[2]){if(ee===e&&!(H in n))return!1}else{var ae=new xn;if(x)var fe=x(ee,te,H,n,l,ae);if(!(fe===e?sd(te,ee,g|h,x,ae):fe))return!1}}return!0}function zw(n){if(!$t(n)||l6(n))return!1;var l=pi(n)?CR:gL;return l.test(Ja(n))}function ID(n){return Yt(n)&&jr(n)==Ua}function _D(n){return Yt(n)&&Nr(n)==yr}function AD(n){return Yt(n)&&$u(n.length)&&!!At[jr(n)]}function $w(n){return typeof n=="function"?n:n==null?uo:typeof n=="object"?$e(n)?Gw(n[0],n[1]):Uw(n):sS(n)}function Rb(n){if(!md(n))return PR(n);var l=[];for(var u in Et(n))ht.call(n,u)&&u!="constructor"&&l.push(u);return l}function kD(n){if(!$t(n))return m6(n);var l=md(n),u=[];for(var x in n)x=="constructor"&&(l||!ht.call(n,x))||u.push(x);return u}function Db(n,l){return n<l}function Hw(n,l){var u=-1,x=co(n)?Z(n.length):[];return ea(n,function(S,M,N){x[++u]=l(S,M,N)}),x}function Uw(n){var l=Zb(n);return l.length==1&&l[0][2]?w1(l[0][0],l[0][1]):function(u){return u===n||Lb(u,n,l)}}function Gw(n,l){return jb(n)&&E1(l)?w1(Gn(n),l):function(u){var x=lx(u,n);return x===e&&x===l?sx(u,n):sd(l,x,g|h)}}function Tu(n,l,u,x,S){n!==l&&Ab(l,function(M,N){if(S||(S=new xn),$t(M))MD(n,l,N,u,Tu,x,S);else{var B=x?x(Qb(n,N),M,N+"",n,l,S):e;B===e&&(B=M),Ib(n,N,B)}},mo)}function MD(n,l,u,x,S,M,N){var B=Qb(n,u),H=Qb(l,u),ee=N.get(H);if(ee){Ib(n,u,ee);return}var te=M?M(B,H,u+"",n,l,N):e,ae=te===e;if(ae){var fe=$e(H),we=!fe&&na(H),ke=!fe&&!we&&ps(H);te=H,fe||we||ke?$e(B)?te=B:Qt(B)?te=so(B):we?(ae=!1,te=t1(H,!0)):ke?(ae=!1,te=r1(H,!0)):te=[]:pd(H)||Qa(H)?(te=B,Qa(B)?te=J1(B):(!$t(B)||pi(B))&&(te=y1(H))):ae=!1}ae&&(N.set(H,te),S(te,H,x,M,N),N.delete(H)),Ib(n,u,te)}function Ww(n,l){var u=n.length;if(u)return l+=l<0?u:0,ui(l,u)?n[l]:e}function Kw(n,l,u){l.length?l=Ot(l,function(M){return $e(M)?function(N){return qa(N,M.length===1?M[0]:M)}:M}):l=[uo];var x=-1;l=Ot(l,Io(Ae()));var S=Hw(n,function(M,N,B){var H=Ot(l,function(ee){return ee(M)});return{criteria:H,index:++x,value:M}});return oR(S,function(M,N){return GD(M,N,u)})}function PD(n,l){return Yw(n,l,function(u,x){return sx(n,x)})}function Yw(n,l,u){for(var x=-1,S=l.length,M={};++x<S;){var N=l[x],B=qa(n,N);u(B,N)&&cd(M,ra(N,n),B)}return M}function LD(n){return function(l){return qa(l,n)}}function Nb(n,l,u,x){var S=x?rR:os,M=-1,N=l.length,B=n;for(n===l&&(l=so(l)),u&&(B=Ot(n,Io(u)));++M<N;)for(var H=0,ee=l[M],te=u?u(ee):ee;(H=S(B,te,H,x))>-1;)B!==n&&fu.call(B,H,1),fu.call(n,H,1);return n}function Vw(n,l){for(var u=n?l.length:0,x=u-1;u--;){var S=l[u];if(u==x||S!==M){var M=S;ui(S)?fu.call(n,S,1):zb(n,S)}}return n}function Ob(n,l){return n+bu(_w()*(l-n+1))}function RD(n,l,u,x){for(var S=-1,M=fr(hu((l-n)/(u||1)),0),N=Z(M);M--;)N[x?M:++S]=n,n+=u;return N}function Fb(n,l){var u="";if(!n||l<1||l>_e)return u;do l%2&&(u+=n),l=bu(l/2),l&&(n+=n);while(l);return u}function Ke(n,l){return ex(S1(n,l,uo),n+"")}function DD(n){return Mw(fs(n))}function ND(n,l){var u=fs(n);return Du(u,Za(l,0,u.length))}function cd(n,l,u,x){if(!$t(n))return n;l=ra(l,n);for(var S=-1,M=l.length,N=M-1,B=n;B!=null&&++S<M;){var H=Gn(l[S]),ee=u;if(H==="__proto__"||H==="constructor"||H==="prototype")return n;if(S!=N){var te=B[H];ee=x?x(te,H,B):e,ee===e&&(ee=$t(te)?te:ui(l[S+1])?[]:{})}id(B,H,ee),B=B[H]}return n}var Xw=xu?function(n,l){return xu.set(n,l),n}:uo,OD=gu?function(n,l){return gu(n,"toString",{configurable:!0,enumerable:!1,value:dx(l),writable:!0})}:uo;function FD(n){return Du(fs(n))}function Uo(n,l,u){var x=-1,S=n.length;l<0&&(l=-l>S?0:S+l),u=u>S?S:u,u<0&&(u+=S),S=l>u?0:u-l>>>0,l>>>=0;for(var M=Z(S);++x<S;)M[x]=n[x+l];return M}function BD(n,l){var u;return ea(n,function(x,S,M){return u=l(x,S,M),!u}),!!u}function Cu(n,l,u){var x=0,S=n==null?x:n.length;if(typeof l=="number"&&l===l&&S<=Y){for(;x<S;){var M=x+S>>>1,N=n[M];N!==null&&!Ao(N)&&(u?N<=l:N<l)?x=M+1:S=M}return S}return Bb(n,l,uo,u)}function Bb(n,l,u,x){var S=0,M=n==null?0:n.length;if(M===0)return 0;l=u(l);for(var N=l!==l,B=l===null,H=Ao(l),ee=l===e;S<M;){var te=bu((S+M)/2),ae=u(n[te]),fe=ae!==e,we=ae===null,ke=ae===ae,Ge=Ao(ae);if(N)var Me=x||ke;else ee?Me=ke&&(x||fe):B?Me=ke&&fe&&(x||!we):H?Me=ke&&fe&&!we&&(x||!Ge):we||Ge?Me=!1:Me=x?ae<=l:ae<l;Me?S=te+1:M=te}return Dr(M,U)}function Zw(n,l){for(var u=-1,x=n.length,S=0,M=[];++u<x;){var N=n[u],B=l?l(N):N;if(!u||!vn(B,H)){var H=B;M[S++]=N===0?0:N}}return M}function qw(n){return typeof n=="number"?n:Ao(n)?Ee:+n}function _o(n){if(typeof n=="string")return n;if($e(n))return Ot(n,_o)+"";if(Ao(n))return Aw?Aw.call(n):"";var l=n+"";return l=="0"&&1/n==-be?"-0":l}function ta(n,l,u){var x=-1,S=nu,M=n.length,N=!0,B=[],H=B;if(u)N=!1,S=pb;else if(M>=r){var ee=l?null:ZD(n);if(ee)return au(ee);N=!1,S=Qc,H=new Xa}else H=l?[]:B;e:for(;++x<M;){var te=n[x],ae=l?l(te):te;if(te=u||te!==0?te:0,N&&ae===ae){for(var fe=H.length;fe--;)if(H[fe]===ae)continue e;l&&H.push(ae),B.push(te)}else S(H,ae,u)||(H!==B&&H.push(ae),B.push(te))}return B}function zb(n,l){return l=ra(l,n),n=T1(n,l),n==null||delete n[Gn(Go(l))]}function jw(n,l,u,x){return cd(n,l,u(qa(n,l)),x)}function Iu(n,l,u,x){for(var S=n.length,M=x?S:-1;(x?M--:++M<S)&&l(n[M],M,n););return u?Uo(n,x?0:M,x?M+1:S):Uo(n,x?M+1:0,x?S:M)}function Jw(n,l){var u=n;return u instanceof Je&&(u=u.value()),fb(l,function(x,S){return S.func.apply(S.thisArg,qi([x],S.args))},u)}function $b(n,l,u){var x=n.length;if(x<2)return x?ta(n[0]):[];for(var S=-1,M=Z(x);++S<x;)for(var N=n[S],B=-1;++B<x;)B!=S&&(M[S]=ad(M[S]||N,n[B],l,u));return ta(Ar(M,1),l,u)}function Qw(n,l,u){for(var x=-1,S=n.length,M=l.length,N={};++x<S;){var B=x<M?l[x]:e;u(N,n[x],B)}return N}function Hb(n){return Qt(n)?n:[]}function Ub(n){return typeof n=="function"?n:uo}function ra(n,l){return $e(n)?n:jb(n,l)?[n]:A1(mt(n))}var zD=Ke;function oa(n,l,u){var x=n.length;return u=u===e?x:u,!l&&u>=x?n:Uo(n,l,u)}var e1=IR||function(n){return Er.clearTimeout(n)};function t1(n,l){if(l)return n.slice();var u=n.length,x=ww?ww(u):new n.constructor(u);return n.copy(x),x}function Gb(n){var l=new n.constructor(n.byteLength);return new uu(l).set(new uu(n)),l}function $D(n,l){var u=l?Gb(n.buffer):n.buffer;return new n.constructor(u,n.byteOffset,n.byteLength)}function HD(n){var l=new n.constructor(n.source,BE.exec(n));return l.lastIndex=n.lastIndex,l}function UD(n){return nd?Et(nd.call(n)):{}}function r1(n,l){var u=l?Gb(n.buffer):n.buffer;return new n.constructor(u,n.byteOffset,n.length)}function o1(n,l){if(n!==l){var u=n!==e,x=n===null,S=n===n,M=Ao(n),N=l!==e,B=l===null,H=l===l,ee=Ao(l);if(!B&&!ee&&!M&&n>l||M&&N&&H&&!B&&!ee||x&&N&&H||!u&&H||!S)return 1;if(!x&&!M&&!ee&&n<l||ee&&u&&S&&!x&&!M||B&&u&&S||!N&&S||!H)return-1}return 0}function GD(n,l,u){for(var x=-1,S=n.criteria,M=l.criteria,N=S.length,B=u.length;++x<N;){var H=o1(S[x],M[x]);if(H){if(x>=B)return H;var ee=u[x];return H*(ee=="desc"?-1:1)}}return n.index-l.index}function n1(n,l,u,x){for(var S=-1,M=n.length,N=u.length,B=-1,H=l.length,ee=fr(M-N,0),te=Z(H+ee),ae=!x;++B<H;)te[B]=l[B];for(;++S<N;)(ae||S<M)&&(te[u[S]]=n[S]);for(;ee--;)te[B++]=n[S++];return te}function i1(n,l,u,x){for(var S=-1,M=n.length,N=-1,B=u.length,H=-1,ee=l.length,te=fr(M-B,0),ae=Z(te+ee),fe=!x;++S<te;)ae[S]=n[S];for(var we=S;++H<ee;)ae[we+H]=l[H];for(;++N<B;)(fe||S<M)&&(ae[we+u[N]]=n[S++]);return ae}function so(n,l){var u=-1,x=n.length;for(l||(l=Z(x));++u<x;)l[u]=n[u];return l}function Un(n,l,u,x){var S=!u;u||(u={});for(var M=-1,N=l.length;++M<N;){var B=l[M],H=x?x(u[B],n[B],B,u,n):e;H===e&&(H=n[B]),S?ci(u,B,H):id(u,B,H)}return u}function WD(n,l){return Un(n,qb(n),l)}function KD(n,l){return Un(n,x1(n),l)}function _u(n,l){return function(u,x){var S=$e(u)?qL:pD,M=l?l():{};return S(u,n,Ae(x,2),M)}}function ds(n){return Ke(function(l,u){var x=-1,S=u.length,M=S>1?u[S-1]:e,N=S>2?u[2]:e;for(M=n.length>3&&typeof M=="function"?(S--,M):e,N&&Jr(u[0],u[1],N)&&(M=S<3?e:M,S=1),l=Et(l);++x<S;){var B=u[x];B&&n(l,B,x,M)}return l})}function a1(n,l){return function(u,x){if(u==null)return u;if(!co(u))return n(u,x);for(var S=u.length,M=l?S:-1,N=Et(u);(l?M--:++M<S)&&x(N[M],M,N)!==!1;);return u}}function l1(n){return function(l,u,x){for(var S=-1,M=Et(l),N=x(l),B=N.length;B--;){var H=N[n?B:++S];if(u(M[H],H,M)===!1)break}return l}}function YD(n,l,u){var x=l&b,S=dd(n);function M(){var N=this&&this!==Er&&this instanceof M?S:n;return N.apply(x?u:this,arguments)}return M}function s1(n){return function(l){l=mt(l);var u=ns(l)?bn(l):e,x=u?u[0]:l.charAt(0),S=u?oa(u,1).join(""):l.slice(1);return x[n]()+S}}function ms(n){return function(l){return fb(aS(iS(l).replace(OL,"")),n,"")}}function dd(n){return function(){var l=arguments;switch(l.length){case 0:return new n;case 1:return new n(l[0]);case 2:return new n(l[0],l[1]);case 3:return new n(l[0],l[1],l[2]);case 4:return new n(l[0],l[1],l[2],l[3]);case 5:return new n(l[0],l[1],l[2],l[3],l[4]);case 6:return new n(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new n(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var u=cs(n.prototype),x=n.apply(u,l);return $t(x)?x:u}}function VD(n,l,u){var x=dd(n);function S(){for(var M=arguments.length,N=Z(M),B=M,H=us(S);B--;)N[B]=arguments[B];var ee=M<3&&N[0]!==H&&N[M-1]!==H?[]:ji(N,H);if(M-=ee.length,M<u)return p1(n,l,Au,S.placeholder,e,N,ee,e,e,u-M);var te=this&&this!==Er&&this instanceof S?x:n;return Co(te,this,N)}return S}function c1(n){return function(l,u,x){var S=Et(l);if(!co(l)){var M=Ae(u,3);l=wr(l),u=function(B){return M(S[B],B,S)}}var N=n(l,u,x);return N>-1?S[M?l[N]:N]:e}}function d1(n){return mi(function(l){var u=l.length,x=u,S=$o.prototype.thru;for(n&&l.reverse();x--;){var M=l[x];if(typeof M!="function")throw new zo(i);if(S&&!N&&Lu(M)=="wrapper")var N=new $o([],!0)}for(x=N?x:u;++x<u;){M=l[x];var B=Lu(M),H=B=="wrapper"?Xb(M):e;H&&Jb(H[0])&&H[1]==(z|k|A|L)&&!H[4].length&&H[9]==1?N=N[Lu(H[0])].apply(N,H[3]):N=M.length==1&&Jb(M)?N[B]():N.thru(M)}return function(){var ee=arguments,te=ee[0];if(N&&ee.length==1&&$e(te))return N.plant(te).value();for(var ae=0,fe=u?l[ae].apply(this,ee):te;++ae<u;)fe=l[ae].call(this,fe);return fe}})}function Au(n,l,u,x,S,M,N,B,H,ee){var te=l&z,ae=l&b,fe=l&y,we=l&(k|I),ke=l&F,Ge=fe?e:dd(n);function Me(){for(var je=arguments.length,tt=Z(je),ko=je;ko--;)tt[ko]=arguments[ko];if(we)var Qr=us(Me),Mo=iR(tt,Qr);if(x&&(tt=n1(tt,x,S,we)),M&&(tt=i1(tt,M,N,we)),je-=Mo,we&&je<ee){var er=ji(tt,Qr);return p1(n,l,Au,Me.placeholder,u,tt,er,B,H,ee-je)}var yn=ae?u:this,gi=fe?yn[n]:n;return je=tt.length,B?tt=p6(tt,B):ke&&je>1&&tt.reverse(),te&&H<je&&(tt.length=H),this&&this!==Er&&this instanceof Me&&(gi=Ge||dd(gi)),gi.apply(yn,tt)}return Me}function m1(n,l){return function(u,x){return ED(u,n,l(x),{})}}function ku(n,l){return function(u,x){var S;if(u===e&&x===e)return l;if(u!==e&&(S=u),x!==e){if(S===e)return x;typeof u=="string"||typeof x=="string"?(u=_o(u),x=_o(x)):(u=qw(u),x=qw(x)),S=n(u,x)}return S}}function Wb(n){return mi(function(l){return l=Ot(l,Io(Ae())),Ke(function(u){var x=this;return n(l,function(S){return Co(S,x,u)})})})}function Mu(n,l){l=l===e?" ":_o(l);var u=l.length;if(u<2)return u?Fb(l,n):l;var x=Fb(l,hu(n/is(l)));return ns(l)?oa(bn(x),0,n).join(""):x.slice(0,n)}function XD(n,l,u,x){var S=l&b,M=dd(n);function N(){for(var B=-1,H=arguments.length,ee=-1,te=x.length,ae=Z(te+H),fe=this&&this!==Er&&this instanceof N?M:n;++ee<te;)ae[ee]=x[ee];for(;H--;)ae[ee++]=arguments[++B];return Co(fe,S?u:this,ae)}return N}function u1(n){return function(l,u,x){return x&&typeof x!="number"&&Jr(l,u,x)&&(u=x=e),l=fi(l),u===e?(u=l,l=0):u=fi(u),x=x===e?l<u?1:-1:fi(x),RD(l,u,x,n)}}function Pu(n){return function(l,u){return typeof l=="string"&&typeof u=="string"||(l=Wo(l),u=Wo(u)),n(l,u)}}function p1(n,l,u,x,S,M,N,B,H,ee){var te=l&k,ae=te?N:e,fe=te?e:N,we=te?M:e,ke=te?e:M;l|=te?A:O,l&=~(te?O:A),l&T||(l&=~(b|y));var Ge=[n,l,S,we,ae,ke,fe,B,H,ee],Me=u.apply(e,Ge);return Jb(n)&&C1(Me,Ge),Me.placeholder=x,I1(Me,n,l)}function Kb(n){var l=pr[n];return function(u,x){if(u=Wo(u),x=x==null?0:Dr(Ue(x),292),x&&Iw(u)){var S=(mt(u)+"e").split("e"),M=l(S[0]+"e"+(+S[1]+x));return S=(mt(M)+"e").split("e"),+(S[0]+"e"+(+S[1]-x))}return l(u)}}var ZD=ls&&1/au(new ls([,-0]))[1]==be?function(n){return new ls(n)}:px;function f1(n){return function(l){var u=Nr(l);return u==Jt?Eb(l):u==yr?uR(l):nR(l,n(l))}}function di(n,l,u,x,S,M,N,B){var H=l&y;if(!H&&typeof n!="function")throw new zo(i);var ee=x?x.length:0;if(ee||(l&=~(A|O),x=S=e),N=N===e?N:fr(Ue(N),0),B=B===e?B:Ue(B),ee-=S?S.length:0,l&O){var te=x,ae=S;x=S=e}var fe=H?e:Xb(n),we=[n,l,u,x,S,te,ae,M,N,B];if(fe&&d6(we,fe),n=we[0],l=we[1],u=we[2],x=we[3],S=we[4],B=we[9]=we[9]===e?H?0:n.length:fr(we[9]-ee,0),!B&&l&(k|I)&&(l&=~(k|I)),!l||l==b)var ke=YD(n,l,u);else l==k||l==I?ke=VD(n,l,B):(l==A||l==(b|A))&&!S.length?ke=XD(n,l,u,x):ke=Au.apply(e,we);var Ge=fe?Xw:C1;return I1(Ge(ke,we),n,l)}function g1(n,l,u,x){return n===e||vn(n,as[u])&&!ht.call(x,u)?l:n}function h1(n,l,u,x,S,M){return $t(n)&&$t(l)&&(M.set(l,n),Tu(n,l,e,h1,M),M.delete(l)),n}function qD(n){return pd(n)?e:n}function b1(n,l,u,x,S,M){var N=u&g,B=n.length,H=l.length;if(B!=H&&!(N&&H>B))return!1;var ee=M.get(n),te=M.get(l);if(ee&&te)return ee==l&&te==n;var ae=-1,fe=!0,we=u&h?new Xa:e;for(M.set(n,l),M.set(l,n);++ae<B;){var ke=n[ae],Ge=l[ae];if(x)var Me=N?x(Ge,ke,ae,l,n,M):x(ke,Ge,ae,n,l,M);if(Me!==e){if(Me)continue;fe=!1;break}if(we){if(!gb(l,function(je,tt){if(!Qc(we,tt)&&(ke===je||S(ke,je,u,x,M)))return we.push(tt)})){fe=!1;break}}else if(!(ke===Ge||S(ke,Ge,u,x,M))){fe=!1;break}}return M.delete(n),M.delete(l),fe}function jD(n,l,u,x,S,M,N){switch(u){case ts:if(n.byteLength!=l.byteLength||n.byteOffset!=l.byteOffset)return!1;n=n.buffer,l=l.buffer;case Jc:return!(n.byteLength!=l.byteLength||!M(new uu(n),new uu(l)));case pe:case ye:case qr:return vn(+n,+l);case xt:return n.name==l.name&&n.message==l.message;case Ua:case hn:return n==l+"";case Jt:var B=Eb;case yr:var H=x&g;if(B||(B=au),n.size!=l.size&&!H)return!1;var ee=N.get(n);if(ee)return ee==l;x|=h,N.set(n,l);var te=b1(B(n),B(l),x,S,M,N);return N.delete(n),te;case Ga:if(nd)return nd.call(n)==nd.call(l)}return!1}function JD(n,l,u,x,S,M){var N=u&g,B=Yb(n),H=B.length,ee=Yb(l),te=ee.length;if(H!=te&&!N)return!1;for(var ae=H;ae--;){var fe=B[ae];if(!(N?fe in l:ht.call(l,fe)))return!1}var we=M.get(n),ke=M.get(l);if(we&&ke)return we==l&&ke==n;var Ge=!0;M.set(n,l),M.set(l,n);for(var Me=N;++ae<H;){fe=B[ae];var je=n[fe],tt=l[fe];if(x)var ko=N?x(tt,je,fe,l,n,M):x(je,tt,fe,n,l,M);if(!(ko===e?je===tt||S(je,tt,u,x,M):ko)){Ge=!1;break}Me||(Me=fe=="constructor")}if(Ge&&!Me){var Qr=n.constructor,Mo=l.constructor;Qr!=Mo&&"constructor"in n&&"constructor"in l&&!(typeof Qr=="function"&&Qr instanceof Qr&&typeof Mo=="function"&&Mo instanceof Mo)&&(Ge=!1)}return M.delete(n),M.delete(l),Ge}function mi(n){return ex(S1(n,e,L1),n+"")}function Yb(n){return Fw(n,wr,qb)}function Vb(n){return Fw(n,mo,x1)}var Xb=xu?function(n){return xu.get(n)}:px;function Lu(n){for(var l=n.name+"",u=ss[l],x=ht.call(ss,l)?u.length:0;x--;){var S=u[x],M=S.func;if(M==null||M==n)return S.name}return l}function us(n){var l=ht.call(C,"placeholder")?C:n;return l.placeholder}function Ae(){var n=C.iteratee||mx;return n=n===mx?$w:n,arguments.length?n(arguments[0],arguments[1]):n}function Ru(n,l){var u=n.__data__;return a6(l)?u[typeof l=="string"?"string":"hash"]:u.map}function Zb(n){for(var l=wr(n),u=l.length;u--;){var x=l[u],S=n[x];l[u]=[x,S,E1(S)]}return l}function ja(n,l){var u=cR(n,l);return zw(u)?u:e}function QD(n){var l=ht.call(n,Ya),u=n[Ya];try{n[Ya]=e;var x=!0}catch{}var S=du.call(n);return x&&(l?n[Ya]=u:delete n[Ya]),S}var qb=Sb?function(n){return n==null?[]:(n=Et(n),Zi(Sb(n),function(l){return Tw.call(n,l)}))}:fx,x1=Sb?function(n){for(var l=[];n;)qi(l,qb(n)),n=pu(n);return l}:fx,Nr=jr;(Tb&&Nr(new Tb(new ArrayBuffer(1)))!=ts||td&&Nr(new td)!=Jt||Cb&&Nr(Cb.resolve())!=eu||ls&&Nr(new ls)!=yr||rd&&Nr(new rd)!=Wa)&&(Nr=function(n){var l=jr(n),u=l==nr?n.constructor:e,x=u?Ja(u):"";if(x)switch(x){case NR:return ts;case OR:return Jt;case FR:return eu;case BR:return yr;case zR:return Wa}return l});function e6(n,l,u){for(var x=-1,S=u.length;++x<S;){var M=u[x],N=M.size;switch(M.type){case"drop":n+=N;break;case"dropRight":l-=N;break;case"take":l=Dr(l,n+N);break;case"takeRight":n=fr(n,l-N);break}}return{start:n,end:l}}function t6(n){var l=n.match(lL);return l?l[1].split(sL):[]}function v1(n,l,u){l=ra(l,n);for(var x=-1,S=l.length,M=!1;++x<S;){var N=Gn(l[x]);if(!(M=n!=null&&u(n,N)))break;n=n[N]}return M||++x!=S?M:(S=n==null?0:n.length,!!S&&$u(S)&&ui(N,S)&&($e(n)||Qa(n)))}function r6(n){var l=n.length,u=new n.constructor(l);return l&&typeof n[0]=="string"&&ht.call(n,"index")&&(u.index=n.index,u.input=n.input),u}function y1(n){return typeof n.constructor=="function"&&!md(n)?cs(pu(n)):{}}function o6(n,l,u){var x=n.constructor;switch(l){case Jc:return Gb(n);case pe:case ye:return new x(+n);case ts:return $D(n,u);case Zh:case qh:case jh:case Jh:case Qh:case eb:case tb:case rb:case ob:return r1(n,u);case Jt:return new x;case qr:case hn:return new x(n);case Ua:return HD(n);case yr:return new x;case Ga:return UD(n)}}function n6(n,l){var u=l.length;if(!u)return n;var x=u-1;return l[x]=(u>1?"& ":"")+l[x],l=l.join(u>2?", ":" "),n.replace(aL,`{
|
|
2
|
+
/* [wrapped with `+l+`] */
|
|
3
|
+
`)}function i6(n){return $e(n)||Qa(n)||!!(Cw&&n&&n[Cw])}function ui(n,l){var u=typeof n;return l=l??_e,!!l&&(u=="number"||u!="symbol"&&bL.test(n))&&n>-1&&n%1==0&&n<l}function Jr(n,l,u){if(!$t(u))return!1;var x=typeof l;return(x=="number"?co(u)&&ui(l,u.length):x=="string"&&l in u)?vn(u[l],n):!1}function jb(n,l){if($e(n))return!1;var u=typeof n;return u=="number"||u=="symbol"||u=="boolean"||n==null||Ao(n)?!0:rL.test(n)||!tL.test(n)||l!=null&&n in Et(l)}function a6(n){var l=typeof n;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?n!=="__proto__":n===null}function Jb(n){var l=Lu(n),u=C[l];if(typeof u!="function"||!(l in Je.prototype))return!1;if(n===u)return!0;var x=Xb(u);return!!x&&n===x[0]}function l6(n){return!!Ew&&Ew in n}var s6=su?pi:gx;function md(n){var l=n&&n.constructor,u=typeof l=="function"&&l.prototype||as;return n===u}function E1(n){return n===n&&!$t(n)}function w1(n,l){return function(u){return u==null?!1:u[n]===l&&(l!==e||n in Et(u))}}function c6(n){var l=Bu(n,function(x){return u.size===c&&u.clear(),x}),u=l.cache;return l}function d6(n,l){var u=n[1],x=l[1],S=u|x,M=S<(b|y|z),N=x==z&&u==k||x==z&&u==L&&n[7].length<=l[8]||x==(z|L)&&l[7].length<=l[8]&&u==k;if(!(M||N))return n;x&b&&(n[2]=l[2],S|=u&b?0:T);var B=l[3];if(B){var H=n[3];n[3]=H?n1(H,B,l[4]):B,n[4]=H?ji(n[3],d):l[4]}return B=l[5],B&&(H=n[5],n[5]=H?i1(H,B,l[6]):B,n[6]=H?ji(n[5],d):l[6]),B=l[7],B&&(n[7]=B),x&z&&(n[8]=n[8]==null?l[8]:Dr(n[8],l[8])),n[9]==null&&(n[9]=l[9]),n[0]=l[0],n[1]=S,n}function m6(n){var l=[];if(n!=null)for(var u in Et(n))l.push(u);return l}function u6(n){return du.call(n)}function S1(n,l,u){return l=fr(l===e?n.length-1:l,0),function(){for(var x=arguments,S=-1,M=fr(x.length-l,0),N=Z(M);++S<M;)N[S]=x[l+S];S=-1;for(var B=Z(l+1);++S<l;)B[S]=x[S];return B[l]=u(N),Co(n,this,B)}}function T1(n,l){return l.length<2?n:qa(n,Uo(l,0,-1))}function p6(n,l){for(var u=n.length,x=Dr(l.length,u),S=so(n);x--;){var M=l[x];n[x]=ui(M,u)?S[M]:e}return n}function Qb(n,l){if(!(l==="constructor"&&typeof n[l]=="function")&&l!="__proto__")return n[l]}var C1=_1(Xw),ud=AR||function(n,l){return Er.setTimeout(n,l)},ex=_1(OD);function I1(n,l,u){var x=l+"";return ex(n,n6(x,f6(t6(x),u)))}function _1(n){var l=0,u=0;return function(){var x=LR(),S=Q-(x-u);if(u=x,S>0){if(++l>=G)return arguments[0]}else l=0;return n.apply(e,arguments)}}function Du(n,l){var u=-1,x=n.length,S=x-1;for(l=l===e?x:l;++u<l;){var M=Ob(u,S),N=n[M];n[M]=n[u],n[u]=N}return n.length=l,n}var A1=c6(function(n){var l=[];return n.charCodeAt(0)===46&&l.push(""),n.replace(oL,function(u,x,S,M){l.push(S?M.replace(mL,"$1"):x||u)}),l});function Gn(n){if(typeof n=="string"||Ao(n))return n;var l=n+"";return l=="0"&&1/n==-be?"-0":l}function Ja(n){if(n!=null){try{return cu.call(n)}catch{}try{return n+""}catch{}}return""}function f6(n,l){return Bo(oe,function(u){var x="_."+u[0];l&u[1]&&!nu(n,x)&&n.push(x)}),n.sort()}function k1(n){if(n instanceof Je)return n.clone();var l=new $o(n.__wrapped__,n.__chain__);return l.__actions__=so(n.__actions__),l.__index__=n.__index__,l.__values__=n.__values__,l}function g6(n,l,u){(u?Jr(n,l,u):l===e)?l=1:l=fr(Ue(l),0);var x=n==null?0:n.length;if(!x||l<1)return[];for(var S=0,M=0,N=Z(hu(x/l));S<x;)N[M++]=Uo(n,S,S+=l);return N}function h6(n){for(var l=-1,u=n==null?0:n.length,x=0,S=[];++l<u;){var M=n[l];M&&(S[x++]=M)}return S}function b6(){var n=arguments.length;if(!n)return[];for(var l=Z(n-1),u=arguments[0],x=n;x--;)l[x-1]=arguments[x];return qi($e(u)?so(u):[u],Ar(l,1))}var x6=Ke(function(n,l){return Qt(n)?ad(n,Ar(l,1,Qt,!0)):[]}),v6=Ke(function(n,l){var u=Go(l);return Qt(u)&&(u=e),Qt(n)?ad(n,Ar(l,1,Qt,!0),Ae(u,2)):[]}),y6=Ke(function(n,l){var u=Go(l);return Qt(u)&&(u=e),Qt(n)?ad(n,Ar(l,1,Qt,!0),e,u):[]});function E6(n,l,u){var x=n==null?0:n.length;return x?(l=u||l===e?1:Ue(l),Uo(n,l<0?0:l,x)):[]}function w6(n,l,u){var x=n==null?0:n.length;return x?(l=u||l===e?1:Ue(l),l=x-l,Uo(n,0,l<0?0:l)):[]}function S6(n,l){return n&&n.length?Iu(n,Ae(l,3),!0,!0):[]}function T6(n,l){return n&&n.length?Iu(n,Ae(l,3),!0):[]}function C6(n,l,u,x){var S=n==null?0:n.length;return S?(u&&typeof u!="number"&&Jr(n,l,u)&&(u=0,x=S),bD(n,l,u,x)):[]}function M1(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var S=u==null?0:Ue(u);return S<0&&(S=fr(x+S,0)),iu(n,Ae(l,3),S)}function P1(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var S=x-1;return u!==e&&(S=Ue(u),S=u<0?fr(x+S,0):Dr(S,x-1)),iu(n,Ae(l,3),S,!0)}function L1(n){var l=n==null?0:n.length;return l?Ar(n,1):[]}function I6(n){var l=n==null?0:n.length;return l?Ar(n,be):[]}function _6(n,l){var u=n==null?0:n.length;return u?(l=l===e?1:Ue(l),Ar(n,l)):[]}function A6(n){for(var l=-1,u=n==null?0:n.length,x={};++l<u;){var S=n[l];x[S[0]]=S[1]}return x}function R1(n){return n&&n.length?n[0]:e}function k6(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var S=u==null?0:Ue(u);return S<0&&(S=fr(x+S,0)),os(n,l,S)}function M6(n){var l=n==null?0:n.length;return l?Uo(n,0,-1):[]}var P6=Ke(function(n){var l=Ot(n,Hb);return l.length&&l[0]===n[0]?Pb(l):[]}),L6=Ke(function(n){var l=Go(n),u=Ot(n,Hb);return l===Go(u)?l=e:u.pop(),u.length&&u[0]===n[0]?Pb(u,Ae(l,2)):[]}),R6=Ke(function(n){var l=Go(n),u=Ot(n,Hb);return l=typeof l=="function"?l:e,l&&u.pop(),u.length&&u[0]===n[0]?Pb(u,e,l):[]});function D6(n,l){return n==null?"":MR.call(n,l)}function Go(n){var l=n==null?0:n.length;return l?n[l-1]:e}function N6(n,l,u){var x=n==null?0:n.length;if(!x)return-1;var S=x;return u!==e&&(S=Ue(u),S=S<0?fr(x+S,0):Dr(S,x-1)),l===l?fR(n,l,S):iu(n,pw,S,!0)}function O6(n,l){return n&&n.length?Ww(n,Ue(l)):e}var F6=Ke(D1);function D1(n,l){return n&&n.length&&l&&l.length?Nb(n,l):n}function B6(n,l,u){return n&&n.length&&l&&l.length?Nb(n,l,Ae(u,2)):n}function z6(n,l,u){return n&&n.length&&l&&l.length?Nb(n,l,e,u):n}var $6=mi(function(n,l){var u=n==null?0:n.length,x=_b(n,l);return Vw(n,Ot(l,function(S){return ui(S,u)?+S:S}).sort(o1)),x});function H6(n,l){var u=[];if(!(n&&n.length))return u;var x=-1,S=[],M=n.length;for(l=Ae(l,3);++x<M;){var N=n[x];l(N,x,n)&&(u.push(N),S.push(x))}return Vw(n,S),u}function tx(n){return n==null?n:DR.call(n)}function U6(n,l,u){var x=n==null?0:n.length;return x?(u&&typeof u!="number"&&Jr(n,l,u)?(l=0,u=x):(l=l==null?0:Ue(l),u=u===e?x:Ue(u)),Uo(n,l,u)):[]}function G6(n,l){return Cu(n,l)}function W6(n,l,u){return Bb(n,l,Ae(u,2))}function K6(n,l){var u=n==null?0:n.length;if(u){var x=Cu(n,l);if(x<u&&vn(n[x],l))return x}return-1}function Y6(n,l){return Cu(n,l,!0)}function V6(n,l,u){return Bb(n,l,Ae(u,2),!0)}function X6(n,l){var u=n==null?0:n.length;if(u){var x=Cu(n,l,!0)-1;if(vn(n[x],l))return x}return-1}function Z6(n){return n&&n.length?Zw(n):[]}function q6(n,l){return n&&n.length?Zw(n,Ae(l,2)):[]}function j6(n){var l=n==null?0:n.length;return l?Uo(n,1,l):[]}function J6(n,l,u){return n&&n.length?(l=u||l===e?1:Ue(l),Uo(n,0,l<0?0:l)):[]}function Q6(n,l,u){var x=n==null?0:n.length;return x?(l=u||l===e?1:Ue(l),l=x-l,Uo(n,l<0?0:l,x)):[]}function e4(n,l){return n&&n.length?Iu(n,Ae(l,3),!1,!0):[]}function t4(n,l){return n&&n.length?Iu(n,Ae(l,3)):[]}var r4=Ke(function(n){return ta(Ar(n,1,Qt,!0))}),o4=Ke(function(n){var l=Go(n);return Qt(l)&&(l=e),ta(Ar(n,1,Qt,!0),Ae(l,2))}),n4=Ke(function(n){var l=Go(n);return l=typeof l=="function"?l:e,ta(Ar(n,1,Qt,!0),e,l)});function i4(n){return n&&n.length?ta(n):[]}function a4(n,l){return n&&n.length?ta(n,Ae(l,2)):[]}function l4(n,l){return l=typeof l=="function"?l:e,n&&n.length?ta(n,e,l):[]}function rx(n){if(!(n&&n.length))return[];var l=0;return n=Zi(n,function(u){if(Qt(u))return l=fr(u.length,l),!0}),vb(l,function(u){return Ot(n,hb(u))})}function N1(n,l){if(!(n&&n.length))return[];var u=rx(n);return l==null?u:Ot(u,function(x){return Co(l,e,x)})}var s4=Ke(function(n,l){return Qt(n)?ad(n,l):[]}),c4=Ke(function(n){return $b(Zi(n,Qt))}),d4=Ke(function(n){var l=Go(n);return Qt(l)&&(l=e),$b(Zi(n,Qt),Ae(l,2))}),m4=Ke(function(n){var l=Go(n);return l=typeof l=="function"?l:e,$b(Zi(n,Qt),e,l)}),u4=Ke(rx);function p4(n,l){return Qw(n||[],l||[],id)}function f4(n,l){return Qw(n||[],l||[],cd)}var g4=Ke(function(n){var l=n.length,u=l>1?n[l-1]:e;return u=typeof u=="function"?(n.pop(),u):e,N1(n,u)});function O1(n){var l=C(n);return l.__chain__=!0,l}function h4(n,l){return l(n),n}function Nu(n,l){return l(n)}var b4=mi(function(n){var l=n.length,u=l?n[0]:0,x=this.__wrapped__,S=function(M){return _b(M,n)};return l>1||this.__actions__.length||!(x instanceof Je)||!ui(u)?this.thru(S):(x=x.slice(u,+u+(l?1:0)),x.__actions__.push({func:Nu,args:[S],thisArg:e}),new $o(x,this.__chain__).thru(function(M){return l&&!M.length&&M.push(e),M}))});function x4(){return O1(this)}function v4(){return new $o(this.value(),this.__chain__)}function y4(){this.__values__===e&&(this.__values__=q1(this.value()));var n=this.__index__>=this.__values__.length,l=n?e:this.__values__[this.__index__++];return{done:n,value:l}}function E4(){return this}function w4(n){for(var l,u=this;u instanceof yu;){var x=k1(u);x.__index__=0,x.__values__=e,l?S.__wrapped__=x:l=x;var S=x;u=u.__wrapped__}return S.__wrapped__=n,l}function S4(){var n=this.__wrapped__;if(n instanceof Je){var l=n;return this.__actions__.length&&(l=new Je(this)),l=l.reverse(),l.__actions__.push({func:Nu,args:[tx],thisArg:e}),new $o(l,this.__chain__)}return this.thru(tx)}function T4(){return Jw(this.__wrapped__,this.__actions__)}var C4=_u(function(n,l,u){ht.call(n,u)?++n[u]:ci(n,u,1)});function I4(n,l,u){var x=$e(n)?mw:hD;return u&&Jr(n,l,u)&&(l=e),x(n,Ae(l,3))}function _4(n,l){var u=$e(n)?Zi:Nw;return u(n,Ae(l,3))}var A4=c1(M1),k4=c1(P1);function M4(n,l){return Ar(Ou(n,l),1)}function P4(n,l){return Ar(Ou(n,l),be)}function L4(n,l,u){return u=u===e?1:Ue(u),Ar(Ou(n,l),u)}function F1(n,l){var u=$e(n)?Bo:ea;return u(n,Ae(l,3))}function B1(n,l){var u=$e(n)?jL:Dw;return u(n,Ae(l,3))}var R4=_u(function(n,l,u){ht.call(n,u)?n[u].push(l):ci(n,u,[l])});function D4(n,l,u,x){n=co(n)?n:fs(n),u=u&&!x?Ue(u):0;var S=n.length;return u<0&&(u=fr(S+u,0)),Hu(n)?u<=S&&n.indexOf(l,u)>-1:!!S&&os(n,l,u)>-1}var N4=Ke(function(n,l,u){var x=-1,S=typeof l=="function",M=co(n)?Z(n.length):[];return ea(n,function(N){M[++x]=S?Co(l,N,u):ld(N,l,u)}),M}),O4=_u(function(n,l,u){ci(n,u,l)});function Ou(n,l){var u=$e(n)?Ot:Hw;return u(n,Ae(l,3))}function F4(n,l,u,x){return n==null?[]:($e(l)||(l=l==null?[]:[l]),u=x?e:u,$e(u)||(u=u==null?[]:[u]),Kw(n,l,u))}var B4=_u(function(n,l,u){n[u?0:1].push(l)},function(){return[[],[]]});function z4(n,l,u){var x=$e(n)?fb:gw,S=arguments.length<3;return x(n,Ae(l,4),u,S,ea)}function $4(n,l,u){var x=$e(n)?JL:gw,S=arguments.length<3;return x(n,Ae(l,4),u,S,Dw)}function H4(n,l){var u=$e(n)?Zi:Nw;return u(n,zu(Ae(l,3)))}function U4(n){var l=$e(n)?Mw:DD;return l(n)}function G4(n,l,u){(u?Jr(n,l,u):l===e)?l=1:l=Ue(l);var x=$e(n)?mD:ND;return x(n,l)}function W4(n){var l=$e(n)?uD:FD;return l(n)}function K4(n){if(n==null)return 0;if(co(n))return Hu(n)?is(n):n.length;var l=Nr(n);return l==Jt||l==yr?n.size:Rb(n).length}function Y4(n,l,u){var x=$e(n)?gb:BD;return u&&Jr(n,l,u)&&(l=e),x(n,Ae(l,3))}var V4=Ke(function(n,l){if(n==null)return[];var u=l.length;return u>1&&Jr(n,l[0],l[1])?l=[]:u>2&&Jr(l[0],l[1],l[2])&&(l=[l[0]]),Kw(n,Ar(l,1),[])}),Fu=_R||function(){return Er.Date.now()};function X4(n,l){if(typeof l!="function")throw new zo(i);return n=Ue(n),function(){if(--n<1)return l.apply(this,arguments)}}function z1(n,l,u){return l=u?e:l,l=n&&l==null?n.length:l,di(n,z,e,e,e,e,l)}function $1(n,l){var u;if(typeof l!="function")throw new zo(i);return n=Ue(n),function(){return--n>0&&(u=l.apply(this,arguments)),n<=1&&(l=e),u}}var ox=Ke(function(n,l,u){var x=b;if(u.length){var S=ji(u,us(ox));x|=A}return di(n,x,l,u,S)}),H1=Ke(function(n,l,u){var x=b|y;if(u.length){var S=ji(u,us(H1));x|=A}return di(l,x,n,u,S)});function U1(n,l,u){l=u?e:l;var x=di(n,k,e,e,e,e,e,l);return x.placeholder=U1.placeholder,x}function G1(n,l,u){l=u?e:l;var x=di(n,I,e,e,e,e,e,l);return x.placeholder=G1.placeholder,x}function W1(n,l,u){var x,S,M,N,B,H,ee=0,te=!1,ae=!1,fe=!0;if(typeof n!="function")throw new zo(i);l=Wo(l)||0,$t(u)&&(te=!!u.leading,ae="maxWait"in u,M=ae?fr(Wo(u.maxWait)||0,l):M,fe="trailing"in u?!!u.trailing:fe);function we(er){var yn=x,gi=S;return x=S=e,ee=er,N=n.apply(gi,yn),N}function ke(er){return ee=er,B=ud(je,l),te?we(er):N}function Ge(er){var yn=er-H,gi=er-ee,cS=l-yn;return ae?Dr(cS,M-gi):cS}function Me(er){var yn=er-H,gi=er-ee;return H===e||yn>=l||yn<0||ae&&gi>=M}function je(){var er=Fu();if(Me(er))return tt(er);B=ud(je,Ge(er))}function tt(er){return B=e,fe&&x?we(er):(x=S=e,N)}function ko(){B!==e&&e1(B),ee=0,x=H=S=B=e}function Qr(){return B===e?N:tt(Fu())}function Mo(){var er=Fu(),yn=Me(er);if(x=arguments,S=this,H=er,yn){if(B===e)return ke(H);if(ae)return e1(B),B=ud(je,l),we(H)}return B===e&&(B=ud(je,l)),N}return Mo.cancel=ko,Mo.flush=Qr,Mo}var Z4=Ke(function(n,l){return Rw(n,1,l)}),q4=Ke(function(n,l,u){return Rw(n,Wo(l)||0,u)});function j4(n){return di(n,F)}function Bu(n,l){if(typeof n!="function"||l!=null&&typeof l!="function")throw new zo(i);var u=function(){var x=arguments,S=l?l.apply(this,x):x[0],M=u.cache;if(M.has(S))return M.get(S);var N=n.apply(this,x);return u.cache=M.set(S,N)||M,N};return u.cache=new(Bu.Cache||si),u}Bu.Cache=si;function zu(n){if(typeof n!="function")throw new zo(i);return function(){var l=arguments;switch(l.length){case 0:return!n.call(this);case 1:return!n.call(this,l[0]);case 2:return!n.call(this,l[0],l[1]);case 3:return!n.call(this,l[0],l[1],l[2])}return!n.apply(this,l)}}function J4(n){return $1(2,n)}var Q4=zD(function(n,l){l=l.length==1&&$e(l[0])?Ot(l[0],Io(Ae())):Ot(Ar(l,1),Io(Ae()));var u=l.length;return Ke(function(x){for(var S=-1,M=Dr(x.length,u);++S<M;)x[S]=l[S].call(this,x[S]);return Co(n,this,x)})}),nx=Ke(function(n,l){var u=ji(l,us(nx));return di(n,A,e,l,u)}),K1=Ke(function(n,l){var u=ji(l,us(K1));return di(n,O,e,l,u)}),eN=mi(function(n,l){return di(n,L,e,e,e,l)});function tN(n,l){if(typeof n!="function")throw new zo(i);return l=l===e?l:Ue(l),Ke(n,l)}function rN(n,l){if(typeof n!="function")throw new zo(i);return l=l==null?0:fr(Ue(l),0),Ke(function(u){var x=u[l],S=oa(u,0,l);return x&&qi(S,x),Co(n,this,S)})}function oN(n,l,u){var x=!0,S=!0;if(typeof n!="function")throw new zo(i);return $t(u)&&(x="leading"in u?!!u.leading:x,S="trailing"in u?!!u.trailing:S),W1(n,l,{leading:x,maxWait:l,trailing:S})}function nN(n){return z1(n,1)}function iN(n,l){return nx(Ub(l),n)}function aN(){if(!arguments.length)return[];var n=arguments[0];return $e(n)?n:[n]}function lN(n){return Ho(n,m)}function sN(n,l){return l=typeof l=="function"?l:e,Ho(n,m,l)}function cN(n){return Ho(n,p|m)}function dN(n,l){return l=typeof l=="function"?l:e,Ho(n,p|m,l)}function mN(n,l){return l==null||Lw(n,l,wr(l))}function vn(n,l){return n===l||n!==n&&l!==l}var uN=Pu(Mb),pN=Pu(function(n,l){return n>=l}),Qa=Bw(function(){return arguments}())?Bw:function(n){return Yt(n)&&ht.call(n,"callee")&&!Tw.call(n,"callee")},$e=Z.isArray,fN=iw?Io(iw):wD;function co(n){return n!=null&&$u(n.length)&&!pi(n)}function Qt(n){return Yt(n)&&co(n)}function gN(n){return n===!0||n===!1||Yt(n)&&jr(n)==pe}var na=kR||gx,hN=aw?Io(aw):SD;function bN(n){return Yt(n)&&n.nodeType===1&&!pd(n)}function xN(n){if(n==null)return!0;if(co(n)&&($e(n)||typeof n=="string"||typeof n.splice=="function"||na(n)||ps(n)||Qa(n)))return!n.length;var l=Nr(n);if(l==Jt||l==yr)return!n.size;if(md(n))return!Rb(n).length;for(var u in n)if(ht.call(n,u))return!1;return!0}function vN(n,l){return sd(n,l)}function yN(n,l,u){u=typeof u=="function"?u:e;var x=u?u(n,l):e;return x===e?sd(n,l,e,u):!!x}function ix(n){if(!Yt(n))return!1;var l=jr(n);return l==xt||l==Tt||typeof n.message=="string"&&typeof n.name=="string"&&!pd(n)}function EN(n){return typeof n=="number"&&Iw(n)}function pi(n){if(!$t(n))return!1;var l=jr(n);return l==Nt||l==yt||l==ce||l==Vh}function Y1(n){return typeof n=="number"&&n==Ue(n)}function $u(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=_e}function $t(n){var l=typeof n;return n!=null&&(l=="object"||l=="function")}function Yt(n){return n!=null&&typeof n=="object"}var V1=lw?Io(lw):CD;function wN(n,l){return n===l||Lb(n,l,Zb(l))}function SN(n,l,u){return u=typeof u=="function"?u:e,Lb(n,l,Zb(l),u)}function TN(n){return X1(n)&&n!=+n}function CN(n){if(s6(n))throw new Fe(o);return zw(n)}function IN(n){return n===null}function _N(n){return n==null}function X1(n){return typeof n=="number"||Yt(n)&&jr(n)==qr}function pd(n){if(!Yt(n)||jr(n)!=nr)return!1;var l=pu(n);if(l===null)return!0;var u=ht.call(l,"constructor")&&l.constructor;return typeof u=="function"&&u instanceof u&&cu.call(u)==SR}var ax=sw?Io(sw):ID;function AN(n){return Y1(n)&&n>=-_e&&n<=_e}var Z1=cw?Io(cw):_D;function Hu(n){return typeof n=="string"||!$e(n)&&Yt(n)&&jr(n)==hn}function Ao(n){return typeof n=="symbol"||Yt(n)&&jr(n)==Ga}var ps=dw?Io(dw):AD;function kN(n){return n===e}function MN(n){return Yt(n)&&Nr(n)==Wa}function PN(n){return Yt(n)&&jr(n)==Xh}var LN=Pu(Db),RN=Pu(function(n,l){return n<=l});function q1(n){if(!n)return[];if(co(n))return Hu(n)?bn(n):so(n);if(ed&&n[ed])return mR(n[ed]());var l=Nr(n),u=l==Jt?Eb:l==yr?au:fs;return u(n)}function fi(n){if(!n)return n===0?n:0;if(n=Wo(n),n===be||n===-be){var l=n<0?-1:1;return l*nt}return n===n?n:0}function Ue(n){var l=fi(n),u=l%1;return l===l?u?l-u:l:0}function j1(n){return n?Za(Ue(n),0,ue):0}function Wo(n){if(typeof n=="number")return n;if(Ao(n))return Ee;if($t(n)){var l=typeof n.valueOf=="function"?n.valueOf():n;n=$t(l)?l+"":l}if(typeof n!="string")return n===0?n:+n;n=hw(n);var u=fL.test(n);return u||hL.test(n)?XL(n.slice(2),u?2:8):pL.test(n)?Ee:+n}function J1(n){return Un(n,mo(n))}function DN(n){return n?Za(Ue(n),-_e,_e):n===0?n:0}function mt(n){return n==null?"":_o(n)}var NN=ds(function(n,l){if(md(l)||co(l)){Un(l,wr(l),n);return}for(var u in l)ht.call(l,u)&&id(n,u,l[u])}),Q1=ds(function(n,l){Un(l,mo(l),n)}),Uu=ds(function(n,l,u,x){Un(l,mo(l),n,x)}),ON=ds(function(n,l,u,x){Un(l,wr(l),n,x)}),FN=mi(_b);function BN(n,l){var u=cs(n);return l==null?u:Pw(u,l)}var zN=Ke(function(n,l){n=Et(n);var u=-1,x=l.length,S=x>2?l[2]:e;for(S&&Jr(l[0],l[1],S)&&(x=1);++u<x;)for(var M=l[u],N=mo(M),B=-1,H=N.length;++B<H;){var ee=N[B],te=n[ee];(te===e||vn(te,as[ee])&&!ht.call(n,ee))&&(n[ee]=M[ee])}return n}),$N=Ke(function(n){return n.push(e,h1),Co(eS,e,n)});function HN(n,l){return uw(n,Ae(l,3),Hn)}function UN(n,l){return uw(n,Ae(l,3),kb)}function GN(n,l){return n==null?n:Ab(n,Ae(l,3),mo)}function WN(n,l){return n==null?n:Ow(n,Ae(l,3),mo)}function KN(n,l){return n&&Hn(n,Ae(l,3))}function YN(n,l){return n&&kb(n,Ae(l,3))}function VN(n){return n==null?[]:Su(n,wr(n))}function XN(n){return n==null?[]:Su(n,mo(n))}function lx(n,l,u){var x=n==null?e:qa(n,l);return x===e?u:x}function ZN(n,l){return n!=null&&v1(n,l,xD)}function sx(n,l){return n!=null&&v1(n,l,vD)}var qN=m1(function(n,l,u){l!=null&&typeof l.toString!="function"&&(l=du.call(l)),n[l]=u},dx(uo)),jN=m1(function(n,l,u){l!=null&&typeof l.toString!="function"&&(l=du.call(l)),ht.call(n,l)?n[l].push(u):n[l]=[u]},Ae),JN=Ke(ld);function wr(n){return co(n)?kw(n):Rb(n)}function mo(n){return co(n)?kw(n,!0):kD(n)}function QN(n,l){var u={};return l=Ae(l,3),Hn(n,function(x,S,M){ci(u,l(x,S,M),x)}),u}function e8(n,l){var u={};return l=Ae(l,3),Hn(n,function(x,S,M){ci(u,S,l(x,S,M))}),u}var t8=ds(function(n,l,u){Tu(n,l,u)}),eS=ds(function(n,l,u,x){Tu(n,l,u,x)}),r8=mi(function(n,l){var u={};if(n==null)return u;var x=!1;l=Ot(l,function(M){return M=ra(M,n),x||(x=M.length>1),M}),Un(n,Vb(n),u),x&&(u=Ho(u,p|f|m,qD));for(var S=l.length;S--;)zb(u,l[S]);return u});function o8(n,l){return tS(n,zu(Ae(l)))}var n8=mi(function(n,l){return n==null?{}:PD(n,l)});function tS(n,l){if(n==null)return{};var u=Ot(Vb(n),function(x){return[x]});return l=Ae(l),Yw(n,u,function(x,S){return l(x,S[0])})}function i8(n,l,u){l=ra(l,n);var x=-1,S=l.length;for(S||(S=1,n=e);++x<S;){var M=n==null?e:n[Gn(l[x])];M===e&&(x=S,M=u),n=pi(M)?M.call(n):M}return n}function a8(n,l,u){return n==null?n:cd(n,l,u)}function l8(n,l,u,x){return x=typeof x=="function"?x:e,n==null?n:cd(n,l,u,x)}var rS=f1(wr),oS=f1(mo);function s8(n,l,u){var x=$e(n),S=x||na(n)||ps(n);if(l=Ae(l,4),u==null){var M=n&&n.constructor;S?u=x?new M:[]:$t(n)?u=pi(M)?cs(pu(n)):{}:u={}}return(S?Bo:Hn)(n,function(N,B,H){return l(u,N,B,H)}),u}function c8(n,l){return n==null?!0:zb(n,l)}function d8(n,l,u){return n==null?n:jw(n,l,Ub(u))}function m8(n,l,u,x){return x=typeof x=="function"?x:e,n==null?n:jw(n,l,Ub(u),x)}function fs(n){return n==null?[]:yb(n,wr(n))}function u8(n){return n==null?[]:yb(n,mo(n))}function p8(n,l,u){return u===e&&(u=l,l=e),u!==e&&(u=Wo(u),u=u===u?u:0),l!==e&&(l=Wo(l),l=l===l?l:0),Za(Wo(n),l,u)}function f8(n,l,u){return l=fi(l),u===e?(u=l,l=0):u=fi(u),n=Wo(n),yD(n,l,u)}function g8(n,l,u){if(u&&typeof u!="boolean"&&Jr(n,l,u)&&(l=u=e),u===e&&(typeof l=="boolean"?(u=l,l=e):typeof n=="boolean"&&(u=n,n=e)),n===e&&l===e?(n=0,l=1):(n=fi(n),l===e?(l=n,n=0):l=fi(l)),n>l){var x=n;n=l,l=x}if(u||n%1||l%1){var S=_w();return Dr(n+S*(l-n+VL("1e-"+((S+"").length-1))),l)}return Ob(n,l)}var h8=ms(function(n,l,u){return l=l.toLowerCase(),n+(u?nS(l):l)});function nS(n){return cx(mt(n).toLowerCase())}function iS(n){return n=mt(n),n&&n.replace(xL,aR).replace(FL,"")}function b8(n,l,u){n=mt(n),l=_o(l);var x=n.length;u=u===e?x:Za(Ue(u),0,x);var S=u;return u-=l.length,u>=0&&n.slice(u,S)==l}function x8(n){return n=mt(n),n&&JP.test(n)?n.replace(OE,lR):n}function v8(n){return n=mt(n),n&&nL.test(n)?n.replace(nb,"\\$&"):n}var y8=ms(function(n,l,u){return n+(u?"-":"")+l.toLowerCase()}),E8=ms(function(n,l,u){return n+(u?" ":"")+l.toLowerCase()}),w8=s1("toLowerCase");function S8(n,l,u){n=mt(n),l=Ue(l);var x=l?is(n):0;if(!l||x>=l)return n;var S=(l-x)/2;return Mu(bu(S),u)+n+Mu(hu(S),u)}function T8(n,l,u){n=mt(n),l=Ue(l);var x=l?is(n):0;return l&&x<l?n+Mu(l-x,u):n}function C8(n,l,u){n=mt(n),l=Ue(l);var x=l?is(n):0;return l&&x<l?Mu(l-x,u)+n:n}function I8(n,l,u){return u||l==null?l=0:l&&(l=+l),RR(mt(n).replace(ib,""),l||0)}function _8(n,l,u){return(u?Jr(n,l,u):l===e)?l=1:l=Ue(l),Fb(mt(n),l)}function A8(){var n=arguments,l=mt(n[0]);return n.length<3?l:l.replace(n[1],n[2])}var k8=ms(function(n,l,u){return n+(u?"_":"")+l.toLowerCase()});function M8(n,l,u){return u&&typeof u!="number"&&Jr(n,l,u)&&(l=u=e),u=u===e?ue:u>>>0,u?(n=mt(n),n&&(typeof l=="string"||l!=null&&!ax(l))&&(l=_o(l),!l&&ns(n))?oa(bn(n),0,u):n.split(l,u)):[]}var P8=ms(function(n,l,u){return n+(u?" ":"")+cx(l)});function L8(n,l,u){return n=mt(n),u=u==null?0:Za(Ue(u),0,n.length),l=_o(l),n.slice(u,u+l.length)==l}function R8(n,l,u){var x=C.templateSettings;u&&Jr(n,l,u)&&(l=e),n=mt(n),l=Uu({},l,x,g1);var S=Uu({},l.imports,x.imports,g1),M=wr(S),N=yb(S,M),B,H,ee=0,te=l.interpolate||tu,ae="__p += '",fe=wb((l.escape||tu).source+"|"+te.source+"|"+(te===FE?uL:tu).source+"|"+(l.evaluate||tu).source+"|$","g"),we="//# sourceURL="+(ht.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++UL+"]")+`
|
|
4
|
+
`;n.replace(fe,function(Me,je,tt,ko,Qr,Mo){return tt||(tt=ko),ae+=n.slice(ee,Mo).replace(vL,sR),je&&(B=!0,ae+=`' +
|
|
5
|
+
__e(`+je+`) +
|
|
6
|
+
'`),Qr&&(H=!0,ae+=`';
|
|
7
|
+
`+Qr+`;
|
|
8
|
+
__p += '`),tt&&(ae+=`' +
|
|
9
|
+
((__t = (`+tt+`)) == null ? '' : __t) +
|
|
10
|
+
'`),ee=Mo+Me.length,Me}),ae+=`';
|
|
11
|
+
`;var ke=ht.call(l,"variable")&&l.variable;if(!ke)ae=`with (obj) {
|
|
12
|
+
`+ae+`
|
|
13
|
+
}
|
|
14
|
+
`;else if(dL.test(ke))throw new Fe(a);ae=(H?ae.replace(XP,""):ae).replace(ZP,"$1").replace(qP,"$1;"),ae="function("+(ke||"obj")+`) {
|
|
15
|
+
`+(ke?"":`obj || (obj = {});
|
|
16
|
+
`)+"var __t, __p = ''"+(B?", __e = _.escape":"")+(H?`, __j = Array.prototype.join;
|
|
17
|
+
function print() { __p += __j.call(arguments, '') }
|
|
18
|
+
`:`;
|
|
19
|
+
`)+ae+`return __p
|
|
20
|
+
}`;var Ge=lS(function(){return ct(M,we+"return "+ae).apply(e,N)});if(Ge.source=ae,ix(Ge))throw Ge;return Ge}function D8(n){return mt(n).toLowerCase()}function N8(n){return mt(n).toUpperCase()}function O8(n,l,u){if(n=mt(n),n&&(u||l===e))return hw(n);if(!n||!(l=_o(l)))return n;var x=bn(n),S=bn(l),M=bw(x,S),N=xw(x,S)+1;return oa(x,M,N).join("")}function F8(n,l,u){if(n=mt(n),n&&(u||l===e))return n.slice(0,yw(n)+1);if(!n||!(l=_o(l)))return n;var x=bn(n),S=xw(x,bn(l))+1;return oa(x,0,S).join("")}function B8(n,l,u){if(n=mt(n),n&&(u||l===e))return n.replace(ib,"");if(!n||!(l=_o(l)))return n;var x=bn(n),S=bw(x,bn(l));return oa(x,S).join("")}function z8(n,l){var u=D,x=V;if($t(l)){var S="separator"in l?l.separator:S;u="length"in l?Ue(l.length):u,x="omission"in l?_o(l.omission):x}n=mt(n);var M=n.length;if(ns(n)){var N=bn(n);M=N.length}if(u>=M)return n;var B=u-is(x);if(B<1)return x;var H=N?oa(N,0,B).join(""):n.slice(0,B);if(S===e)return H+x;if(N&&(B+=H.length-B),ax(S)){if(n.slice(B).search(S)){var ee,te=H;for(S.global||(S=wb(S.source,mt(BE.exec(S))+"g")),S.lastIndex=0;ee=S.exec(te);)var ae=ee.index;H=H.slice(0,ae===e?B:ae)}}else if(n.indexOf(_o(S),B)!=B){var fe=H.lastIndexOf(S);fe>-1&&(H=H.slice(0,fe))}return H+x}function $8(n){return n=mt(n),n&&jP.test(n)?n.replace(NE,gR):n}var H8=ms(function(n,l,u){return n+(u?" ":"")+l.toUpperCase()}),cx=s1("toUpperCase");function aS(n,l,u){return n=mt(n),l=u?e:l,l===e?dR(n)?xR(n):tR(n):n.match(l)||[]}var lS=Ke(function(n,l){try{return Co(n,e,l)}catch(u){return ix(u)?u:new Fe(u)}}),U8=mi(function(n,l){return Bo(l,function(u){u=Gn(u),ci(n,u,ox(n[u],n))}),n});function G8(n){var l=n==null?0:n.length,u=Ae();return n=l?Ot(n,function(x){if(typeof x[1]!="function")throw new zo(i);return[u(x[0]),x[1]]}):[],Ke(function(x){for(var S=-1;++S<l;){var M=n[S];if(Co(M[0],this,x))return Co(M[1],this,x)}})}function W8(n){return gD(Ho(n,p))}function dx(n){return function(){return n}}function K8(n,l){return n==null||n!==n?l:n}var Y8=d1(),V8=d1(!0);function uo(n){return n}function mx(n){return $w(typeof n=="function"?n:Ho(n,p))}function X8(n){return Uw(Ho(n,p))}function Z8(n,l){return Gw(n,Ho(l,p))}var q8=Ke(function(n,l){return function(u){return ld(u,n,l)}}),j8=Ke(function(n,l){return function(u){return ld(n,u,l)}});function ux(n,l,u){var x=wr(l),S=Su(l,x);u==null&&!($t(l)&&(S.length||!x.length))&&(u=l,l=n,n=this,S=Su(l,wr(l)));var M=!($t(u)&&"chain"in u)||!!u.chain,N=pi(n);return Bo(S,function(B){var H=l[B];n[B]=H,N&&(n.prototype[B]=function(){var ee=this.__chain__;if(M||ee){var te=n(this.__wrapped__),ae=te.__actions__=so(this.__actions__);return ae.push({func:H,args:arguments,thisArg:n}),te.__chain__=ee,te}return H.apply(n,qi([this.value()],arguments))})}),n}function J8(){return Er._===this&&(Er._=TR),this}function px(){}function Q8(n){return n=Ue(n),Ke(function(l){return Ww(l,n)})}var e7=Wb(Ot),t7=Wb(mw),r7=Wb(gb);function sS(n){return jb(n)?hb(Gn(n)):LD(n)}function o7(n){return function(l){return n==null?e:qa(n,l)}}var n7=u1(),i7=u1(!0);function fx(){return[]}function gx(){return!1}function a7(){return{}}function l7(){return""}function s7(){return!0}function c7(n,l){if(n=Ue(n),n<1||n>_e)return[];var u=ue,x=Dr(n,ue);l=Ae(l),n-=ue;for(var S=vb(x,l);++u<n;)l(u);return S}function d7(n){return $e(n)?Ot(n,Gn):Ao(n)?[n]:so(A1(mt(n)))}function m7(n){var l=++wR;return mt(n)+l}var u7=ku(function(n,l){return n+l},0),p7=Kb("ceil"),f7=ku(function(n,l){return n/l},1),g7=Kb("floor");function h7(n){return n&&n.length?wu(n,uo,Mb):e}function b7(n,l){return n&&n.length?wu(n,Ae(l,2),Mb):e}function x7(n){return fw(n,uo)}function v7(n,l){return fw(n,Ae(l,2))}function y7(n){return n&&n.length?wu(n,uo,Db):e}function E7(n,l){return n&&n.length?wu(n,Ae(l,2),Db):e}var w7=ku(function(n,l){return n*l},1),S7=Kb("round"),T7=ku(function(n,l){return n-l},0);function C7(n){return n&&n.length?xb(n,uo):0}function I7(n,l){return n&&n.length?xb(n,Ae(l,2)):0}return C.after=X4,C.ary=z1,C.assign=NN,C.assignIn=Q1,C.assignInWith=Uu,C.assignWith=ON,C.at=FN,C.before=$1,C.bind=ox,C.bindAll=U8,C.bindKey=H1,C.castArray=aN,C.chain=O1,C.chunk=g6,C.compact=h6,C.concat=b6,C.cond=G8,C.conforms=W8,C.constant=dx,C.countBy=C4,C.create=BN,C.curry=U1,C.curryRight=G1,C.debounce=W1,C.defaults=zN,C.defaultsDeep=$N,C.defer=Z4,C.delay=q4,C.difference=x6,C.differenceBy=v6,C.differenceWith=y6,C.drop=E6,C.dropRight=w6,C.dropRightWhile=S6,C.dropWhile=T6,C.fill=C6,C.filter=_4,C.flatMap=M4,C.flatMapDeep=P4,C.flatMapDepth=L4,C.flatten=L1,C.flattenDeep=I6,C.flattenDepth=_6,C.flip=j4,C.flow=Y8,C.flowRight=V8,C.fromPairs=A6,C.functions=VN,C.functionsIn=XN,C.groupBy=R4,C.initial=M6,C.intersection=P6,C.intersectionBy=L6,C.intersectionWith=R6,C.invert=qN,C.invertBy=jN,C.invokeMap=N4,C.iteratee=mx,C.keyBy=O4,C.keys=wr,C.keysIn=mo,C.map=Ou,C.mapKeys=QN,C.mapValues=e8,C.matches=X8,C.matchesProperty=Z8,C.memoize=Bu,C.merge=t8,C.mergeWith=eS,C.method=q8,C.methodOf=j8,C.mixin=ux,C.negate=zu,C.nthArg=Q8,C.omit=r8,C.omitBy=o8,C.once=J4,C.orderBy=F4,C.over=e7,C.overArgs=Q4,C.overEvery=t7,C.overSome=r7,C.partial=nx,C.partialRight=K1,C.partition=B4,C.pick=n8,C.pickBy=tS,C.property=sS,C.propertyOf=o7,C.pull=F6,C.pullAll=D1,C.pullAllBy=B6,C.pullAllWith=z6,C.pullAt=$6,C.range=n7,C.rangeRight=i7,C.rearg=eN,C.reject=H4,C.remove=H6,C.rest=tN,C.reverse=tx,C.sampleSize=G4,C.set=a8,C.setWith=l8,C.shuffle=W4,C.slice=U6,C.sortBy=V4,C.sortedUniq=Z6,C.sortedUniqBy=q6,C.split=M8,C.spread=rN,C.tail=j6,C.take=J6,C.takeRight=Q6,C.takeRightWhile=e4,C.takeWhile=t4,C.tap=h4,C.throttle=oN,C.thru=Nu,C.toArray=q1,C.toPairs=rS,C.toPairsIn=oS,C.toPath=d7,C.toPlainObject=J1,C.transform=s8,C.unary=nN,C.union=r4,C.unionBy=o4,C.unionWith=n4,C.uniq=i4,C.uniqBy=a4,C.uniqWith=l4,C.unset=c8,C.unzip=rx,C.unzipWith=N1,C.update=d8,C.updateWith=m8,C.values=fs,C.valuesIn=u8,C.without=s4,C.words=aS,C.wrap=iN,C.xor=c4,C.xorBy=d4,C.xorWith=m4,C.zip=u4,C.zipObject=p4,C.zipObjectDeep=f4,C.zipWith=g4,C.entries=rS,C.entriesIn=oS,C.extend=Q1,C.extendWith=Uu,ux(C,C),C.add=u7,C.attempt=lS,C.camelCase=h8,C.capitalize=nS,C.ceil=p7,C.clamp=p8,C.clone=lN,C.cloneDeep=cN,C.cloneDeepWith=dN,C.cloneWith=sN,C.conformsTo=mN,C.deburr=iS,C.defaultTo=K8,C.divide=f7,C.endsWith=b8,C.eq=vn,C.escape=x8,C.escapeRegExp=v8,C.every=I4,C.find=A4,C.findIndex=M1,C.findKey=HN,C.findLast=k4,C.findLastIndex=P1,C.findLastKey=UN,C.floor=g7,C.forEach=F1,C.forEachRight=B1,C.forIn=GN,C.forInRight=WN,C.forOwn=KN,C.forOwnRight=YN,C.get=lx,C.gt=uN,C.gte=pN,C.has=ZN,C.hasIn=sx,C.head=R1,C.identity=uo,C.includes=D4,C.indexOf=k6,C.inRange=f8,C.invoke=JN,C.isArguments=Qa,C.isArray=$e,C.isArrayBuffer=fN,C.isArrayLike=co,C.isArrayLikeObject=Qt,C.isBoolean=gN,C.isBuffer=na,C.isDate=hN,C.isElement=bN,C.isEmpty=xN,C.isEqual=vN,C.isEqualWith=yN,C.isError=ix,C.isFinite=EN,C.isFunction=pi,C.isInteger=Y1,C.isLength=$u,C.isMap=V1,C.isMatch=wN,C.isMatchWith=SN,C.isNaN=TN,C.isNative=CN,C.isNil=_N,C.isNull=IN,C.isNumber=X1,C.isObject=$t,C.isObjectLike=Yt,C.isPlainObject=pd,C.isRegExp=ax,C.isSafeInteger=AN,C.isSet=Z1,C.isString=Hu,C.isSymbol=Ao,C.isTypedArray=ps,C.isUndefined=kN,C.isWeakMap=MN,C.isWeakSet=PN,C.join=D6,C.kebabCase=y8,C.last=Go,C.lastIndexOf=N6,C.lowerCase=E8,C.lowerFirst=w8,C.lt=LN,C.lte=RN,C.max=h7,C.maxBy=b7,C.mean=x7,C.meanBy=v7,C.min=y7,C.minBy=E7,C.stubArray=fx,C.stubFalse=gx,C.stubObject=a7,C.stubString=l7,C.stubTrue=s7,C.multiply=w7,C.nth=O6,C.noConflict=J8,C.noop=px,C.now=Fu,C.pad=S8,C.padEnd=T8,C.padStart=C8,C.parseInt=I8,C.random=g8,C.reduce=z4,C.reduceRight=$4,C.repeat=_8,C.replace=A8,C.result=i8,C.round=S7,C.runInContext=$,C.sample=U4,C.size=K4,C.snakeCase=k8,C.some=Y4,C.sortedIndex=G6,C.sortedIndexBy=W6,C.sortedIndexOf=K6,C.sortedLastIndex=Y6,C.sortedLastIndexBy=V6,C.sortedLastIndexOf=X6,C.startCase=P8,C.startsWith=L8,C.subtract=T7,C.sum=C7,C.sumBy=I7,C.template=R8,C.times=c7,C.toFinite=fi,C.toInteger=Ue,C.toLength=j1,C.toLower=D8,C.toNumber=Wo,C.toSafeInteger=DN,C.toString=mt,C.toUpper=N8,C.trim=O8,C.trimEnd=F8,C.trimStart=B8,C.truncate=z8,C.unescape=$8,C.uniqueId=m7,C.upperCase=H8,C.upperFirst=cx,C.each=F1,C.eachRight=B1,C.first=R1,ux(C,function(){var n={};return Hn(C,function(l,u){ht.call(C.prototype,u)||(n[u]=l)}),n}(),{chain:!1}),C.VERSION=t,Bo(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){C[n].placeholder=C}),Bo(["drop","take"],function(n,l){Je.prototype[n]=function(u){u=u===e?1:fr(Ue(u),0);var x=this.__filtered__&&!l?new Je(this):this.clone();return x.__filtered__?x.__takeCount__=Dr(u,x.__takeCount__):x.__views__.push({size:Dr(u,ue),type:n+(x.__dir__<0?"Right":"")}),x},Je.prototype[n+"Right"]=function(u){return this.reverse()[n](u).reverse()}}),Bo(["filter","map","takeWhile"],function(n,l){var u=l+1,x=u==de||u==se;Je.prototype[n]=function(S){var M=this.clone();return M.__iteratees__.push({iteratee:Ae(S,3),type:u}),M.__filtered__=M.__filtered__||x,M}}),Bo(["head","last"],function(n,l){var u="take"+(l?"Right":"");Je.prototype[n]=function(){return this[u](1).value()[0]}}),Bo(["initial","tail"],function(n,l){var u="drop"+(l?"":"Right");Je.prototype[n]=function(){return this.__filtered__?new Je(this):this[u](1)}}),Je.prototype.compact=function(){return this.filter(uo)},Je.prototype.find=function(n){return this.filter(n).head()},Je.prototype.findLast=function(n){return this.reverse().find(n)},Je.prototype.invokeMap=Ke(function(n,l){return typeof n=="function"?new Je(this):this.map(function(u){return ld(u,n,l)})}),Je.prototype.reject=function(n){return this.filter(zu(Ae(n)))},Je.prototype.slice=function(n,l){n=Ue(n);var u=this;return u.__filtered__&&(n>0||l<0)?new Je(u):(n<0?u=u.takeRight(-n):n&&(u=u.drop(n)),l!==e&&(l=Ue(l),u=l<0?u.dropRight(-l):u.take(l-n)),u)},Je.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Je.prototype.toArray=function(){return this.take(ue)},Hn(Je.prototype,function(n,l){var u=/^(?:filter|find|map|reject)|While$/.test(l),x=/^(?:head|last)$/.test(l),S=C[x?"take"+(l=="last"?"Right":""):l],M=x||/^find/.test(l);S&&(C.prototype[l]=function(){var N=this.__wrapped__,B=x?[1]:arguments,H=N instanceof Je,ee=B[0],te=H||$e(N),ae=function(je){var tt=S.apply(C,qi([je],B));return x&&fe?tt[0]:tt};te&&u&&typeof ee=="function"&&ee.length!=1&&(H=te=!1);var fe=this.__chain__,we=!!this.__actions__.length,ke=M&&!fe,Ge=H&&!we;if(!M&&te){N=Ge?N:new Je(this);var Me=n.apply(N,B);return Me.__actions__.push({func:Nu,args:[ae],thisArg:e}),new $o(Me,fe)}return ke&&Ge?n.apply(this,B):(Me=this.thru(ae),ke?x?Me.value()[0]:Me.value():Me)})}),Bo(["pop","push","shift","sort","splice","unshift"],function(n){var l=lu[n],u=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",x=/^(?:pop|shift)$/.test(n);C.prototype[n]=function(){var S=arguments;if(x&&!this.__chain__){var M=this.value();return l.apply($e(M)?M:[],S)}return this[u](function(N){return l.apply($e(N)?N:[],S)})}}),Hn(Je.prototype,function(n,l){var u=C[l];if(u){var x=u.name+"";ht.call(ss,x)||(ss[x]=[]),ss[x].push({name:l,func:u})}}),ss[Au(e,y).name]=[{name:"wrapper",func:e}],Je.prototype.clone=$R,Je.prototype.reverse=HR,Je.prototype.value=UR,C.prototype.at=b4,C.prototype.chain=x4,C.prototype.commit=v4,C.prototype.next=y4,C.prototype.plant=w4,C.prototype.reverse=S4,C.prototype.toJSON=C.prototype.valueOf=C.prototype.value=T4,C.prototype.first=C.prototype.head,ed&&(C.prototype[ed]=E4),C},Ji=vR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Er._=Ji,define(function(){return Ji})):Ka?((Ka.exports=Ji)._=Ji,mb._=Ji):Er._=Ji}).call(Hc)});v();var Yh=w(j(),1);v();var Af=w(j(),1);v();v();v();v();var tr=w(j(),1);v();var D7=0;function SI(e,t){let r=`atom${++D7}`,o={toString:()=>r};return typeof e=="function"?o.read=e:(o.init=e,o.read=i=>i(o),o.write=(i,a,s)=>a(o,typeof s=="function"?s(i(o)):s)),t&&(o.write=t),o}var ya=Symbol(),Mv=e=>!!e[ya],hf=e=>!e[ya].c,Xd=e=>{var t;let{b:r,c:o}=e[ya];o&&(o(),(t=O7.get(r))==null||t())},xf=(e,t)=>{let r=e[ya].o,o=t[ya].o;return r===o||e===o||Mv(r)&&xf(r,t)},Pv=(e,t)=>{let r={b:e,o:t,c:null},o=new Promise(i=>{r.c=()=>{r.c=null,i()},t.finally(r.c)});return o[ya]=r,o},N7=e=>Pv(e[ya].b,e[ya].o),O7=new WeakMap;var bf=e=>"init"in e,Zd="r",vf="w",qd="c",yf="s",TI="h",F7="n",B7="l",z7="a",$7="m",CI=e=>{let t=new WeakMap,r=new WeakMap,o=new Map,i,a;if((_&&_.MODE)!=="production"&&(i=new Set,a=new Set),e)for(let[U,Y]of e){let oe={v:Y,r:0,y:!0,d:new Map};(_&&_.MODE)!=="production"&&(Object.freeze(oe),bf(U)||console.warn("Found initial value for derived atom which can cause unexpected behavior",U)),t.set(U,oe)}let s=new WeakMap,c=(U,Y,oe)=>{let ie=s.get(Y);ie||(ie=new Map,s.set(Y,ie)),oe.then(()=>{ie.get(U)===oe&&(ie.delete(U),ie.size||s.delete(Y))}),ie.set(U,oe)},d=U=>{let Y=new Set,oe=s.get(U);return oe&&(s.delete(U),oe.forEach((ie,le)=>{Xd(ie),Y.add(le)})),Y},p=new WeakMap,f=U=>{let Y=p.get(U);return Y||(Y=new Map,p.set(U,Y)),Y},m=(U,Y)=>{if(U){let oe=f(U),ie=oe.get(Y);return ie||(ie=m(U.p,Y),ie&&"p"in ie&&hf(ie.p)&&(ie=void 0),ie&&oe.set(Y,ie)),ie}return t.get(Y)},g=(U,Y,oe)=>{if((_&&_.MODE)!=="production"&&Object.freeze(oe),U)f(U).set(Y,oe);else{let ie=t.get(Y);t.set(Y,oe),o.has(Y)||o.set(Y,ie)}},h=(U,Y=new Map,oe)=>{if(!oe)return Y;let ie=new Map,le=!1;return oe.forEach(ce=>{var pe;let ye=((pe=m(U,ce))==null?void 0:pe.r)||0;ie.set(ce,ye),Y.get(ce)!==ye&&(le=!0)}),Y.size===ie.size&&!le?Y:ie},b=(U,Y,oe,ie,le)=>{let ce=m(U,Y);if(ce){if(le&&(!("p"in ce)||!xf(ce.p,le)))return ce;"p"in ce&&Xd(ce.p)}let pe={v:oe,r:ce?.r||0,y:!0,d:h(U,ce?.d,ie)},ye=!ce?.y;return!ce||!("v"in ce)||!Object.is(ce.v,oe)?(ye=!0,++pe.r,pe.d.has(Y)&&(pe.d=new Map(pe.d).set(Y,pe.r))):pe.d!==ce.d&&(pe.d.size!==ce.d.size||!Array.from(pe.d.keys()).every(Tt=>ce.d.has(Tt)))&&(ye=!0,Promise.resolve().then(()=>{be(U)})),ce&&!ye?ce:(g(U,Y,pe),pe)},y=(U,Y,oe,ie,le)=>{let ce=m(U,Y);if(ce){if(le&&(!("p"in ce)||!xf(ce.p,le)))return ce;"p"in ce&&Xd(ce.p)}let pe={e:oe,r:(ce?.r||0)+1,y:!0,d:h(U,ce?.d,ie)};return g(U,Y,pe),pe},T=(U,Y,oe,ie)=>{let le=m(U,Y);if(le&&"p"in le){if(xf(le.p,oe)&&!hf(le.p))return le.y?le:{...le,y:!0};Xd(le.p)}c(U,Y,oe);let ce={p:oe,r:(le?.r||0)+1,y:!0,d:h(U,le?.d,ie)};return g(U,Y,ce),ce},k=(U,Y,oe,ie)=>{if(oe instanceof Promise){let le=Pv(oe,oe.then(ce=>{b(U,Y,ce,ie,le)}).catch(ce=>{if(ce instanceof Promise)return Mv(ce)?ce.then(()=>{A(U,Y,!0)}):ce;y(U,Y,ce,ie,le)}));return T(U,Y,le,ie)}return b(U,Y,oe,ie)},I=(U,Y)=>{let oe=m(U,Y);if(oe){let ie={...oe,y:!1};g(U,Y,ie)}else(_&&_.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",Y)},A=(U,Y,oe)=>{if(!oe){let le=m(U,Y);if(le){if(le.y&&"p"in le&&!hf(le.p))return le;if(le.d.forEach((ce,pe)=>{if(pe!==Y)if(!r.has(pe))A(U,pe);else{let ye=m(U,pe);ye&&!ye.y&&A(U,pe)}}),Array.from(le.d).every(([ce,pe])=>{let ye=m(U,ce);return ye&&!("p"in ye)&&ye.r===pe}))return le.y?le:{...le,y:!0}}}let ie=new Set;try{let le=Y.read(ce=>{ie.add(ce);let pe=ce===Y?m(U,ce):A(U,ce);if(pe){if("e"in pe)throw pe.e;if("p"in pe)throw pe.p;return pe.v}if(bf(ce))return ce.init;throw new Error("no atom init")});return k(U,Y,le,ie)}catch(le){if(le instanceof Promise){let ce=Mv(le)&&hf(le)?N7(le):Pv(le,le);return T(U,Y,ce,ie)}return y(U,Y,le,ie)}},O=(U,Y)=>A(Y,U),z=(U,Y)=>{let oe=r.get(Y);return oe||(oe=de(U,Y)),oe},L=(U,Y)=>!Y.l.size&&(!Y.t.size||Y.t.size===1&&Y.t.has(U)),F=(U,Y)=>{let oe=r.get(Y);oe&&L(Y,oe)&&K(U,Y)},D=(U,Y)=>{let oe=r.get(Y);oe?.t.forEach(ie=>{ie!==Y&&(I(U,ie),D(U,ie))})},V=(U,Y,oe)=>{let ie=!0,le=(ye,Tt)=>{let xt=A(U,ye);if("e"in xt)throw xt.e;if("p"in xt){if(Tt?.unstable_promise)return xt.p.then(()=>{let Nt=m(U,ye);return Nt&&"p"in Nt&&Nt.p===xt.p?new Promise(yt=>setTimeout(yt)).then(()=>le(ye,Tt)):le(ye,Tt)});throw(_&&_.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ye),xt.p}if("v"in xt)return xt.v;throw(_&&_.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",ye),new Error("no value found")},ce=(ye,Tt)=>{let xt;if(ye===Y){if(!bf(ye))throw new Error("atom not writable");d(ye).forEach(qr=>{qr!==U&&k(qr,ye,Tt)});let yt=m(U,ye),Jt=k(U,ye,Tt);yt!==Jt&&D(U,ye)}else xt=V(U,ye,Tt);return ie||be(U),xt},pe=Y.write(le,ce,oe);return ie=!1,pe},G=(U,Y,oe)=>{let ie=V(oe,U,Y);return be(oe),ie},Q=U=>!!U.write,de=(U,Y,oe)=>{let ie={t:new Set(oe&&[oe]),l:new Set};if(r.set(Y,ie),(_&&_.MODE)!=="production"&&a.add(Y),A(void 0,Y).d.forEach((ce,pe)=>{let ye=r.get(pe);ye?ye.t.add(Y):pe!==Y&&de(U,pe,Y)}),Q(Y)&&Y.onMount){let ce=ye=>G(Y,ye,U),pe=Y.onMount(ce);U=void 0,pe&&(ie.u=pe)}return ie},K=(U,Y)=>{var oe;let ie=(oe=r.get(Y))==null?void 0:oe.u;ie&&ie(),r.delete(Y),(_&&_.MODE)!=="production"&&a.delete(Y);let le=m(U,Y);le?("p"in le&&Xd(le.p),le.d.forEach((ce,pe)=>{if(pe!==Y){let ye=r.get(pe);ye&&(ye.t.delete(Y),L(pe,ye)&&K(U,pe))}})):(_&&_.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",Y)},se=(U,Y,oe,ie)=>{let le=new Set(oe.d.keys());ie?.forEach((ce,pe)=>{if(le.has(pe)){le.delete(pe);return}let ye=r.get(pe);ye&&(ye.t.delete(Y),L(pe,ye)&&K(U,pe))}),le.forEach(ce=>{let pe=r.get(ce);pe?pe.t.add(Y):r.has(Y)&&de(U,ce,Y)})},be=U=>{if(U){f(U).forEach((oe,ie)=>{let le=t.get(ie);if(oe!==le){let ce=r.get(ie);ce?.l.forEach(pe=>pe(U))}});return}for(;o.size;){let Y=Array.from(o);o.clear(),Y.forEach(([oe,ie])=>{let le=m(void 0,oe);if(le&&le.d!==ie?.d&&se(void 0,oe,le,ie?.d),ie&&!ie.y&&le?.y)return;let ce=r.get(oe);ce?.l.forEach(pe=>pe())})}(_&&_.MODE)!=="production"&&i.forEach(Y=>Y())},_e=U=>{f(U).forEach((oe,ie)=>{let le=t.get(ie);(!le||oe.r>le.r||oe.y!==le.y||oe.r===le.r&&oe.d!==le.d)&&(t.set(ie,oe),oe.d!==le?.d&&se(U,ie,oe,le?.d))})},nt=(U,Y)=>{Y&&_e(Y),be(void 0)},Ee=(U,Y,oe)=>{let le=z(oe,U).l;return le.add(Y),()=>{le.delete(Y),F(oe,U)}},ue=(U,Y)=>{for(let[oe,ie]of U)bf(oe)&&(k(Y,oe,ie),D(Y,oe));be(Y)};return(_&&_.MODE)!=="production"?{[Zd]:O,[vf]:G,[qd]:nt,[yf]:Ee,[TI]:ue,[F7]:U=>(i.add(U),()=>{i.delete(U)}),[B7]:()=>a.values(),[z7]:U=>t.get(U),[$7]:U=>r.get(U)}:{[Zd]:O,[vf]:G,[qd]:nt,[yf]:Ee,[TI]:ue}},II=e=>{let t=CI(e),r=s=>{let c=t[Zd](s);if("e"in c)throw c.e;if(!("p"in c))return c.v},o=s=>new Promise((c,d)=>{let p=t[Zd](s);"e"in p?d(p.e):"p"in p?c(p.p.then(()=>o(s))):c(p.v)});return{get:r,asyncGet:o,set:(s,c)=>t[vf](s,c),sub:(s,c)=>t[yf](s,c),SECRET_INTERNAL_store:t}},_I=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:CI(e)}),kv=new Map,Lv=e=>(kv.has(e)||kv.set(e,(0,tr.createContext)(_I())),kv.get(e)),Ef=({children:e,initialValues:t,scope:r,unstable_createStore:o,unstable_enableVersionedWrite:i})=>{let[a,s]=(0,tr.useState)({});(0,tr.useEffect)(()=>{let p=c.current;p.w&&(p.s[qd](null,a),delete a.p,p.v=a)},[a]);let c=(0,tr.useRef)();if(!c.current){let p=_I(t,o);if(i){let f=0;p.w=m=>{s(g=>{let h=f?g:{p:g};return m(h),h})},p.v=a,p.r=m=>{++f,m(),--f}}c.current=p}let d=Lv(r);return(0,tr.createElement)(d.Provider,{value:c.current},e)};function wt(e,t){return SI(e,t)}function jd(e,t){let r=Lv(t),o=(0,tr.useContext)(r),{s:i,v:a}=o,s=g=>{let h=i[Zd](e,g);if((_&&_.MODE)!=="production"&&!h.y)throw new Error("should not be invalidated");if("e"in h)throw h.e;if("p"in h)throw h.p;if("v"in h)return h.v;throw new Error("no atom value")},[[c,d,p],f]=(0,tr.useReducer)((g,h)=>{let b=s(h);return Object.is(g[1],b)&&g[2]===e?g:[h,b,e]},a,g=>{let h=s(g);return[g,h,e]}),m=d;return p!==e&&(f(c),m=s(c)),(0,tr.useEffect)(()=>{let{v:g}=o;g&&i[qd](e,g);let h=i[yf](e,f,g);return f(g),h},[i,e,o]),(0,tr.useEffect)(()=>{i[qd](e,c)}),(0,tr.useDebugValue)(m),m}function Mi(e,t){let r=Lv(t),{s:o,w:i}=(0,tr.useContext)(r);return(0,tr.useCallback)(s=>{if((_&&_.MODE)!=="production"&&!("write"in e))throw new Error("not writable atom");let c=d=>o[vf](e,s,d);return i?i(c):c()},[o,i,e])}function Xe(e,t){return"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope),[jd(e,t),Mi(e,t)]}var H7=w(j(),1),dt=Symbol(),zr=II();var U7=dS({"./locales/ar-SA.json":()=>import("./excalidraw-assets/ar-SA-MV5ZQ2W5.js"),"./locales/az-AZ.json":()=>import("./excalidraw-assets/az-AZ-BK6PNAXT.js"),"./locales/bg-BG.json":()=>import("./excalidraw-assets/bg-BG-GCTBXIHZ.js"),"./locales/bn-BD.json":()=>import("./excalidraw-assets/bn-BD-QTMQMM2A.js"),"./locales/ca-ES.json":()=>import("./excalidraw-assets/ca-ES-CJKR7U4D.js"),"./locales/cs-CZ.json":()=>import("./excalidraw-assets/cs-CZ-E6RD7VRF.js"),"./locales/da-DK.json":()=>import("./excalidraw-assets/da-DK-GA7WAOB4.js"),"./locales/de-DE.json":()=>import("./excalidraw-assets/de-DE-WQGVYODE.js"),"./locales/el-GR.json":()=>import("./excalidraw-assets/el-GR-JRKZ7DCA.js"),"./locales/en.json":()=>import("./excalidraw-assets/en-SQSS4H2K.js"),"./locales/es-ES.json":()=>import("./excalidraw-assets/es-ES-NNAEPTPN.js"),"./locales/eu-ES.json":()=>import("./excalidraw-assets/eu-ES-UXVZRSMJ.js"),"./locales/fa-IR.json":()=>import("./excalidraw-assets/fa-IR-FFXQODN6.js"),"./locales/fi-FI.json":()=>import("./excalidraw-assets/fi-FI-FVRWY4PK.js"),"./locales/fr-FR.json":()=>import("./excalidraw-assets/fr-FR-YRAHLNH4.js"),"./locales/gl-ES.json":()=>import("./excalidraw-assets/gl-ES-O3MFXO2J.js"),"./locales/he-IL.json":()=>import("./excalidraw-assets/he-IL-UQHONTOV.js"),"./locales/hi-IN.json":()=>import("./excalidraw-assets/hi-IN-QGM3FMHS.js"),"./locales/hu-HU.json":()=>import("./excalidraw-assets/hu-HU-FW4UHMDU.js"),"./locales/id-ID.json":()=>import("./excalidraw-assets/id-ID-QOMISFYK.js"),"./locales/it-IT.json":()=>import("./excalidraw-assets/it-IT-NXPSTWVC.js"),"./locales/ja-JP.json":()=>import("./excalidraw-assets/ja-JP-Z7I24KT4.js"),"./locales/kaa.json":()=>import("./excalidraw-assets/kaa-TXMSCJDQ.js"),"./locales/kab-KAB.json":()=>import("./excalidraw-assets/kab-KAB-RJXRUTDO.js"),"./locales/kk-KZ.json":()=>import("./excalidraw-assets/kk-KZ-JXPULSST.js"),"./locales/km-KH.json":()=>import("./excalidraw-assets/km-KH-WRGO6AYW.js"),"./locales/ko-KR.json":()=>import("./excalidraw-assets/ko-KR-GAYOVASS.js"),"./locales/ku-TR.json":()=>import("./excalidraw-assets/ku-TR-DJF4NWRZ.js"),"./locales/lt-LT.json":()=>import("./excalidraw-assets/lt-LT-QQGY3S4X.js"),"./locales/lv-LV.json":()=>import("./excalidraw-assets/lv-LV-H55DY45V.js"),"./locales/mr-IN.json":()=>import("./excalidraw-assets/mr-IN-QYT2ELER.js"),"./locales/my-MM.json":()=>import("./excalidraw-assets/my-MM-RRPBSH5R.js"),"./locales/nb-NO.json":()=>import("./excalidraw-assets/nb-NO-AMX3MAHH.js"),"./locales/nl-NL.json":()=>import("./excalidraw-assets/nl-NL-LZSLKN37.js"),"./locales/nn-NO.json":()=>import("./excalidraw-assets/nn-NO-WWXPMJY7.js"),"./locales/oc-FR.json":()=>import("./excalidraw-assets/oc-FR-GPZCMCGX.js"),"./locales/pa-IN.json":()=>import("./excalidraw-assets/pa-IN-L5H3H4OA.js"),"./locales/percentages.json":()=>import("./excalidraw-assets/percentages-L6Y3A3ZS.js"),"./locales/pl-PL.json":()=>import("./excalidraw-assets/pl-PL-SYTLCLU7.js"),"./locales/pt-BR.json":()=>import("./excalidraw-assets/pt-BR-BJOSVXBP.js"),"./locales/pt-PT.json":()=>import("./excalidraw-assets/pt-PT-QHWDKICL.js"),"./locales/ro-RO.json":()=>import("./excalidraw-assets/ro-RO-AVSXCJHH.js"),"./locales/ru-RU.json":()=>import("./excalidraw-assets/ru-RU-5Z6AY4FG.js"),"./locales/si-LK.json":()=>import("./excalidraw-assets/si-LK-OMROCHR3.js"),"./locales/sk-SK.json":()=>import("./excalidraw-assets/sk-SK-TLXIBWPH.js"),"./locales/sl-SI.json":()=>import("./excalidraw-assets/sl-SI-JELDMWCI.js"),"./locales/sv-SE.json":()=>import("./excalidraw-assets/sv-SE-2FAONS47.js"),"./locales/ta-IN.json":()=>import("./excalidraw-assets/ta-IN-XN7DVSDK.js"),"./locales/th-TH.json":()=>import("./excalidraw-assets/th-TH-VCIYWJPR.js"),"./locales/tr-TR.json":()=>import("./excalidraw-assets/tr-TR-6QL6T7SM.js"),"./locales/uk-UA.json":()=>import("./excalidraw-assets/uk-UA-Y6YRBHAO.js"),"./locales/vi-VN.json":()=>import("./excalidraw-assets/vi-VN-34I6LTAE.js"),"./locales/zh-CN.json":()=>import("./excalidraw-assets/zh-CN-IGKEMUHO.js"),"./locales/zh-HK.json":()=>import("./excalidraw-assets/zh-HK-MDAU5TWB.js"),"./locales/zh-TW.json":()=>import("./excalidraw-assets/zh-TW-DOGEFI3C.js")});var G7=85,Yn={code:"en",label:"English"},Ys=[Yn,...[{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",rtl:!0},{code:"bg-BG",label:"\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438"},{code:"ca-ES",label:"Catal\xE0"},{code:"cs-CZ",label:"\u010Cesky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC"},{code:"es-ES",label:"Espa\xF1ol"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"\u0641\u0627\u0631\u0633\u06CC",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Fran\xE7ais"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"\u05E2\u05D1\u05E8\u05D9\u05EA",rtl:!0},{code:"hi-IN",label:"\u0939\u093F\u0928\u094D\u0926\u0940"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"\u049A\u0430\u0437\u0430\u049B \u0442\u0456\u043B\u0456"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4"},{code:"ku-TR",label:"Kurd\xEE"},{code:"lt-LT",label:"Lietuvi\u0173"},{code:"lv-LV",label:"Latvie\u0161u"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokm\xE5l"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Portugu\xEAs Brasileiro"},{code:"pt-PT",label:"Portugu\xEAs"},{code:"ro-RO",label:"Rom\xE2n\u0103"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{code:"sk-SK",label:"Sloven\u010Dina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Sloven\u0161\u010Dina"},{code:"tr-TR",label:"T\xFCrk\xE7e"},{code:"uk-UA",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{code:"zh-CN",label:"\u7B80\u4F53\u4E2D\u6587"},{code:"zh-TW",label:"\u7E41\u9AD4\u4E2D\u6587"},{code:"vi-VN",label:"Ti\u1EBFng Vi\u1EC7t"},{code:"mr-IN",label:"\u092E\u0930\u093E\u0920\u0940"}].filter(e=>uS[e.code]>=G7).sort((e,t)=>e.label>t.label?1:-1)],Sf="__test__";_.DEV&&Ys.unshift({code:Sf,label:"test language"},{code:`${Sf}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Ks=Yn,wf={},Tf=async e=>{if(Ks=e,document.documentElement.dir=Ks.rtl?"rtl":"ltr",document.documentElement.lang=Ks.code,e.code.startsWith(Sf))wf={};else try{wf=await U7(`./locales/${Ks.code}.json`)}catch(t){console.error(`Failed to load language ${e.code}:`,t.message),wf=hx}zr.set(kI,e.code)},Pi=()=>Ks,AI=(e,t)=>{for(let r=0;r<t.length;++r){let o=t[r];if(e[o]===void 0)return;e=e[o]}if(typeof e=="string")return e},E=(e,t,r)=>{if(Ks.code.startsWith(Sf))return`\u202A[[${t?`${e}(${JSON.stringify(t).slice(1,-1)})`:e}]]\u202C`;let o=e.split("."),i=AI(wf,o)||AI(hx,o)||r;if(i===void 0){let a=`Can't find translation for ${e}`;if(_.PROD)return console.warn(a),"";throw new Error(a)}if(t)for(let a in t)i=i.replace(`{{${a}}}`,String(t[a]));return i},kI=wt(Yn.code),ir=()=>{let e=jd(kI,dt);return{t:E,langCode:e}};var If=w(j(),1);v();var MI=w(j(),1);var Cf=w(P(),1),W7=({size:e="1em",circleWidth:t=8,synchronized:r=!1})=>{let i=-(MI.default.useRef(Date.now()).current%1600);return(0,Cf.jsx)("div",{className:"Spinner",children:(0,Cf.jsx)("svg",{viewBox:"0 0 100 100",style:{width:e,height:e,"--spinner-delay":r?`${i}ms`:0},children:(0,Cf.jsx)("circle",{cx:"50",cy:"50",r:50-t/2,strokeWidth:t,fill:"none",strokeMiterlimit:"10"})})})},Pr=W7;var Vs=w(P(),1),_f=({delay:e,theme:t})=>{let[r,o]=(0,If.useState)(!!e);return(0,If.useEffect)(()=>{if(!e)return;let i=setTimeout(()=>{o(!1)},e);return()=>clearTimeout(i)},[e]),r?null:(0,Vs.jsxs)("div",{className:q("LoadingMessage",{"LoadingMessage--dark":t===Be.DARK}),children:[(0,Vs.jsx)("div",{children:(0,Vs.jsx)(Pr,{})}),(0,Vs.jsx)("div",{className:"LoadingMessage-text",children:E("labels.loadingScene")})]})};var LI=w(P(),1),PI=e=>{let[t,r]=(0,Af.useState)(!0);return(0,Af.useEffect)(()=>{let o=async()=>{await Tf(i),r(!1)},i=Ys.find(a=>a.code===e.langCode)||Yn;o()},[e.langCode]),t?(0,LI.jsx)(_f,{theme:e.theme}):e.children};v();var ur=w(j(),1),zh=w(Vn(),1);v();v();v();var An=w(j(),1);var en=w(P(),1),Ce=An.default.forwardRef((e,t)=>{let{id:r}=ar(),o=An.default.useRef(null);An.default.useImperativeHandle(t,()=>o.current);let i=`ToolIcon_size_${e.size}`,[a,s]=(0,An.useState)(!1),c=(0,An.useRef)(!0),d=async f=>{let m="onClick"in e&&e.onClick?.(f);if(xs(m))try{s(!0),await m}catch(g){if(g instanceof Es)console.warn(g);else throw g}finally{c.current&&s(!1)}};(0,An.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let p=(0,An.useRef)(null);if(e.type==="button"||e.type==="icon"||e.type==="submit"){let f=e.type==="icon"?"button":e.type;return(0,en.jsxs)("button",{className:q("ToolIcon_type_button",i,e.className,e.visible&&!e.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!e.hidden,"ToolIcon--selected":e.selected,"ToolIcon--plain":e.type==="icon"}),style:e.style,"data-testid":e["data-testid"],hidden:e.hidden,title:e.title,"aria-label":e["aria-label"],type:f,onClick:d,ref:o,disabled:a||e.isLoading||!!e.disabled,children:[(e.icon||e.label)&&(0,en.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!e.disabled,children:[e.icon||e.label,e.keyBindingLabel&&(0,en.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel}),e.isLoading&&(0,en.jsx)(Pr,{})]}),e.showAriaLabel&&(0,en.jsxs)("div",{className:"ToolIcon__label",children:[e["aria-label"]," ",a&&(0,en.jsx)(Pr,{})]}),e.children]})}return(0,en.jsxs)("label",{className:q("ToolIcon",e.className),title:e.title,onPointerDown:f=>{p.current=f.pointerType||null,e.onPointerDown?.({pointerType:f.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{p.current=null})},children:[(0,en.jsx)("input",{className:`ToolIcon_type_radio ${i}`,type:"radio",name:e.name,"aria-label":e["aria-label"],"aria-keyshortcuts":e["aria-keyshortcuts"],"data-testid":e["data-testid"],id:`${r}-${e.id}`,onChange:()=>{e.onChange?.({pointerType:p.current})},checked:e.checked,ref:o}),(0,en.jsxs)("div",{className:"ToolIcon__icon",children:[e.icon,e.keyBindingLabel&&(0,en.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel})]})]})});Ce.defaultProps={visible:!0,className:"",size:"medium"};Ce.displayName="ToolButton";var NI=w(P(),1),K7=(e,t)=>{let r=new Set(Oe(e.filter(o=>He(o)),t).map(o=>o.id));return{elements:e.map(o=>t.selectedElementIds[o.id]?Pe(o,{isDeleted:!0}):o.frameId&&r.has(o.frameId)?Pe(o,{isDeleted:!0}):Sr(o)&&t.selectedElementIds[o.containerId]?Pe(o,{isDeleted:!0}):o),appState:{...t,selectedElementIds:{},selectedGroupIds:{}}}},DI=(e,t)=>{if(e.editingGroupId){let r=Gt(We(t),e.editingGroupId);if(r.length)return{...e,selectedElementIds:{[r[0].id]:!0}}}return e},Jd=re({name:"deleteSelectedElements",label:"labels.delete",icon:Cn,trackEvent:{category:"element",action:"delete"},perform:(e,t,r,o)=>{if(t.editingLinearElement){let{elementId:s,selectedPointsIndices:c,startBindingElement:d,endBindingElement:p}=t.editingLinearElement,f=o.scene.getNonDeletedElementsMap(),m=Re.getElement(s,f);if(!m||c==null)return!1;if(m.points.length<2){let h=e.map(y=>y.id===m.id?Pe(y,{isDeleted:!0}):y),b=DI(t,h);return{elements:h,appState:{...b,editingLinearElement:null},storeAction:W.CAPTURE}}let g={startBindingElement:c?.includes(0)?null:d,endBindingElement:c?.includes(m.points.length-1)?null:p};return Re.deletePoints(m,c),{elements:e,appState:{...t,editingLinearElement:{...t.editingLinearElement,...g,selectedPointsIndices:c?.[0]>0?[c[0]-1]:[0]}},storeAction:W.CAPTURE}}let{elements:i,appState:a}=K7(e,t);return Np(i,e.filter(({id:s})=>t.selectedElementIds[s])),a=DI(a,i),{elements:i,appState:{...a,activeTool:Ht(t,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:ft(We(e),t)?W.CAPTURE:W.NONE}},keyTest:(e,t,r)=>(e.key===R.BACKSPACE||e.key===R.DELETE)&&!e[R.CTRL_OR_CMD],PanelComponent:({elements:e,appState:t,updateData:r})=>(0,NI.jsx)(Ce,{type:"button",icon:Cn,title:E("labels.delete"),"aria-label":E("labels.delete"),onClick:()=>r(null),visible:ft(We(e),t)})});v();v();var Rv=(e,t)=>e.frameId===t||e.id===t,FI=(e,t,r)=>{let o=[],i=[],a=null,s=-1,c=Le(r||Oe(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++s<e.length;){let d=e[s];c.get(d.id)?(i.length&&(o=o.concat(i),i=[]),o.push(s),a=s+1):d.isDeleted&&a===s?(a=s+1,i.push(s)):i=[]}return o},Y7=e=>{let t=0;return e.reduce((r,o,i)=>(i>0&&e[i-1]!==o-1&&(t=++t),(r[t]||(r[t]=[])).push(o),r),[])},OI=(e,t,r)=>{if("containerId"in e&&e.containerId)if(r==="left"){let o=Xo.getScene(e).getElement(e.containerId);if(o)return t.indexOf(o)}else return t.indexOf(e);else{let o=e.boundElements?.find(i=>i.type!=="arrow")?.id;if(o){if(r==="left")return t.indexOf(e);let i=Xo.getScene(e).getElement(o);if(i)return t.indexOf(i)}}},V7=(e,t)=>{let r=-1,o=-1;return e.forEach((i,a)=>{Rv(i,t)&&(r===-1&&(r=a),o=a)}),r===-1?[]:e.slice(r,o+1)},X7=(e,t,r,o,i)=>{let a=t[r],s=m=>m.isDeleted?!1:i?m.frameId===i:e.editingGroupId?m.groupIds.includes(e.editingGroupId):!0,c=o==="left"?_x(t,m=>s(m),Math.max(0,r-1)):Ix(t,m=>s(m),r+1),d=t[c];if(!d)return-1;if(e.editingGroupId){if(a?.groupIds.join("")===d?.groupIds.join(""))return OI(d,t,o)??c;if(!d?.groupIds.includes(e.editingGroupId))return-1}if(!i&&(d.frameId||He(d))){let m=V7(t,d.frameId||d.id);return o==="left"?t.indexOf(m[0]):t.indexOf(m[m.length-1])}if(!d.groupIds.length)return OI(d,t,o)??c;let p=e.editingGroupId?d.groupIds[d.groupIds.indexOf(e.editingGroupId)-1]:d.groupIds[d.groupIds.length-1],f=Gt(t,p);return f.length?o==="left"?t.indexOf(f[0]):t.indexOf(f[f.length-1]):c},BI=(e,t)=>t.reduce((r,o)=>{let i=e[o];return r.set(i.id,i),r},new Map),zI=(e,t,r)=>{let o=FI(e,t),i=BI(e,o),a=Y7(o);r==="right"&&(a=a.reverse());let s=new Set(o.filter(c=>He(e[c])).map(c=>e[c].id));return a.forEach((c,d)=>{let p=c[0],f=c[c.length-1],m=r==="left"?p:f,g=c.some(I=>{let A=e[I];return A.frameId&&s.has(A.frameId)})?null:e[m]?.frameId,h=X7(t,e,m,r,g);if(h===-1||m===h)return;let b=r==="left"?e.slice(0,h):e.slice(0,p),y=e.slice(p,f+1),T=r==="left"?e.slice(h,p):e.slice(f+1,h+1),k=r==="left"?e.slice(f+1):e.slice(h+1);e=r==="left"?[...b,...y,...T,...k]:[...b,...T,...y,...k]}),Po(e,i),e},$I=(e,t,r,o,i)=>{let a=FI(e,t,i),s=BI(e,a),c=[],d,p;if(r==="left"){if(o)d=Ix(e,b=>Rv(b,o));else if(t.editingGroupId){let b=Gt(e,t.editingGroupId);if(!b.length)return e;d=e.indexOf(b[0])}else d=0;p=a[a.length-1]}else{if(o)p=_x(e,b=>Rv(b,o));else if(t.editingGroupId){let b=Gt(e,t.editingGroupId);if(!b.length)return e;p=e.indexOf(b[b.length-1])}else p=e.length-1;d=a[0]}d===-1&&(d=0);for(let b=d;b<p+1;b++)a.includes(b)||c.push(e[b]);let f=Array.from(s.values()),m=e.slice(0,d),g=e.slice(p+1),h=r==="left"?[...m,...f,...c,...g]:[...m,...c,...f,...g];return Po(h,s),h};function HI(e,t,r,o){let i=Le(Oe(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),a={regularElements:[],frameChildren:new Map},s=new Set;for(let p of e)i.has(p.id)&&He(p)&&s.add(p.id);for(let p of e)if(i.has(p.id))if(He(p)||p.frameId&&s.has(p.frameId))a.regularElements.push(p);else if(!p.frameId)a.regularElements.push(p);else{let f=a.frameChildren.get(p.frameId)||[];f.push(p),a.frameChildren.set(p.frameId,f)}let c=e,d=Array.from(a.frameChildren.entries());for(let[p,f]of d)c=o(e,t,r,p,f);return o(c,t,r,null,a.regularElements)}var UI=(e,t)=>zI(e,t,"left"),GI=(e,t)=>zI(e,t,"right"),WI=(e,t)=>HI(e,t,"left",$I),KI=(e,t)=>HI(e,t,"right",$I);var Qd=w(P(),1),Dv=re({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:$x,trackEvent:{category:"element"},perform:(e,t)=>({elements:UI(e,t),appState:t,storeAction:W.CAPTURE}),keyPriority:40,keyTest:e=>e[R.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Ne.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,Qd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendBackward")} \u2014 ${X("CtrlOrCmd+[")}`,children:$x})}),Nv=re({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:zx,trackEvent:{category:"element"},perform:(e,t)=>({elements:GI(e,t),appState:t,storeAction:W.CAPTURE}),keyPriority:40,keyTest:e=>e[R.CTRL_OR_CMD]&&!e.shiftKey&&e.code===Ne.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,Qd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.bringForward")} \u2014 ${X("CtrlOrCmd+]")}`,children:zx})}),Ov=re({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:Ux,trackEvent:{category:"element"},perform:(e,t)=>({elements:WI(e,t),appState:t,storeAction:W.CAPTURE}),keyTest:e=>En?e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.BRACKET_LEFT:e[R.CTRL_OR_CMD]&&e.shiftKey&&e.code===Ne.BRACKET_LEFT,PanelComponent:({updateData:e,appState:t})=>(0,Qd.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendToBack")} \u2014 ${En?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")}`,children:Ux})}),Fv=re({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:Hx,trackEvent:{category:"element"},perform:(e,t)=>({elements:KI(e,t),appState:t,storeAction:W.CAPTURE}),keyTest:e=>En?e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.BRACKET_RIGHT:e[R.CTRL_OR_CMD]&&e.shiftKey&&e.code===Ne.BRACKET_RIGHT,PanelComponent:({updateData:e,appState:t})=>(0,Qd.jsx)("button",{type:"button",className:"zIndexButton",onClick:r=>e(null),title:`${E("labels.bringToFront")} \u2014 ${En?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")}`,children:Hx})});v();var Bv=re({name:"selectAll",label:"labels.selectAll",icon:DT,trackEvent:{category:"canvas"},viewMode:!1,perform:(e,t,r,o)=>{if(t.editingLinearElement)return!1;let i=Ws(e.filter(a=>!a.isDeleted&&!(he(a)&&a.containerId)&&!a.locked)).reduce((a,s)=>(a[s.id]=!0,a),{});return{appState:{...t,...Mr({editingGroupId:null,selectedElementIds:i},We(e),t,o),selectedLinearElement:Object.keys(i).length===1&&Qe(e[0])?new Re(e[0]):null},storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.A});v();v();var Z7=e=>{let t=e.slice(),r=new Set,o=a=>{let s=a[0]?.groupIds?.join(""),c=[a[0]],d=[];for(let p of a.slice(1))p.groupIds?.join("")===s?c.push(p):d.push(p);return d.length?[...c,...o(d)]:c},i=new Map;return t.forEach((a,s)=>{if(!i.has(a.id))if(a.groupIds?.length){let c=a.groupIds[a.groupIds.length-1],d=t.slice(s).filter(p=>{let f=p?.groupIds?.some(m=>m===c);return f&&i.set(p.id,!0),f});for(let p of o(d))r.add(p)}else r.add(a)}),r.size!==e.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),e):[...r]},q7=e=>{let t=e2(e),r=e.slice(),o=new Set;return r.forEach((i,a)=>{i&&(i.boundElements?.length?(o.add(i),r[a]=null,i.boundElements.forEach(s=>{let c=t.get(s.id);c&&s.type==="text"&&(o.add(c[0]),r[c[1]]=null)})):i.type==="text"&&i.containerId&&t.get(i.containerId)?.[0].boundElements?.find(c=>c.id===i.id)||(o.add(i),r[a]=null))}),o.size!==e.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),e):[...o]},YI=e=>q7(Z7(e));var VI=w(P(),1),zv=re({name:"duplicateSelection",label:"labels.duplicateSelection",icon:Pd,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getNonDeletedElementsMap();if(t.editingLinearElement){let a=Re.duplicateSelectedPoints(t,i);return a?{elements:e,appState:a.appState,storeAction:W.CAPTURE}:!1}return{...j7(e,t),storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.D,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,VI.jsx)(Ce,{type:"button",icon:Pd,title:`${E("labels.duplicateSelection")} \u2014 ${X("CtrlOrCmd+D")}`,"aria-label":E("labels.duplicateSelection"),onClick:()=>r(null),visible:ft(We(e),t)})}),j7=(e,t)=>{let r=YI(e),o=new Map,i=[],a=[],s=new Map,c=new Map,d=I=>{let A=ef(t.editingGroupId,o,I,{x:I.x+xi/2,y:I.y+xi/2});return c.set(A.id,A),s.set(I.id,A.id),a.push(I),i.push(A),A},p=Le(Oe(r,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f=new Map,m=I=>{for(let A of I)f.set(A.id,!0);return I},g=[],h=-1;for(;++h<r.length;){let I=r[h];if(f.get(I.id))continue;let A=Ve(I,Le(e)),O=He(I);if(p.get(I.id)){if(I.groupIds.length||A||O){let z=fC(t,I);if(z){let L=Gt(r,z).flatMap(F=>He(F)?[...xa(e,F.id),F]:[F]);g.push(...m([...L,...L.map(F=>d(F))]));continue}if(A){g.push(...m([I,A,d(I),d(A)]));continue}if(O){let L=xa(r,I.id);g.push(...m([...L,I,...L.map(F=>d(F)),d(I)]));continue}}(!I.frameId||!p.has(I.frameId))&&g.push(...m([I,d(I)]))}else g.push(...m([I]))}let b=[],y=new Map;for(h=g.length;--h>=0;){let I=g[h];y.get(I.id)||(y.set(I.id,!0),b.push(I))}let T=Po(b.reverse(),Le(i));Op(g,a,s),Dp(g,a,s),af(T,a,s);let k=Ws(i);return{elements:T,appState:{...t,...Mr({editingGroupId:t.editingGroupId,selectedElementIds:k.reduce((I,A)=>(Sr(A)||(I[A.id]=!0),I),{})},We(T),t,null)}}};v();var on=w(j(),1);v();var J7=new Set(["command_palette"]),ze=(e,t,r,o)=>{try{if(typeof window>"u"||_.VITE_WORKER_ID||_.VITE_APP_ENABLE_TRACKING!=="true"||!J7.has(e)||_.DEV)return;_.PROD||console.info("trackEvent",{category:e,action:t,label:r,value:o}),window.sa_event&&window.sa_event(t,{category:e,label:r,value:o})}catch(i){console.error("error during analytics",i)}};v();v();var XI=w(j(),1);var ZI=w(P(),1),kf=(0,XI.forwardRef)((e,t)=>{let{title:r,className:o,testId:i,active:a,standalone:s,icon:c,onClick:d}=e;return(0,ZI.jsx)("button",{type:"button",ref:t,title:r,"data-testid":i,className:q(o,{standalone:s,active:a}),onClick:d,children:c},r)});var Xs=w(P(),1),kn=e=>(0,Xs.jsx)("div",{className:"buttonList",children:e.options.map(t=>e.type==="button"?(0,Xs.jsx)(kf,{icon:t.icon,title:t.text,testId:t.testId,active:t.active??e.value===t.value,onClick:r=>e.onClick(t.value,r)},t.text):(0,Xs.jsxs)("label",{className:q({active:e.value===t.value}),title:t.text,children:[(0,Xs.jsx)("input",{type:"radio",name:e.group,onChange:()=>e.onChange(t.value),checked:e.value===t.value,"data-testid":t.testId}),t.icon]},t.text))});v();v();var Mf=w(P(),1),qI=({onChange:e,type:t,activeColor:r,topPicks:o})=>{let i;return t==="elementStroke"&&(i=Gu),t==="elementBackground"&&(i=Wu),t==="canvasBackground"&&(i=Ku),o&&(i=o),i?(0,Mf.jsx)("div",{className:"color-picker__top-picks",children:i.map(a=>(0,Mf.jsx)("button",{className:q("color-picker__button",{active:a===r,"is-transparent":a==="transparent"||!a}),style:{"--swatch-color":a},type:"button",title:a,onClick:()=>e(a),"data-testid":`color-top-pick-${a}`,children:(0,Mf.jsx)("div",{className:"color-picker__button-outline"})},a))}):(console.error("Invalid type for TopPicks"),null)};v();var jI=w(P(),1),Pf=()=>(0,jI.jsx)("div",{style:{width:1,height:"1rem",backgroundColor:"var(--default-border-color)",margin:"0 auto"}});v();var wa=w(j(),1);v();var Lf=w(j(),1);v();var Ea=({palette:e,color:t})=>{for(let[r,o]of Object.entries(e))if(Array.isArray(o)){let i=o.indexOf(t);if(i>-1)return{colorName:r,shade:i}}else if(o===t)return{colorName:r,shade:null};return null},em=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),$v=({color:e,palette:t})=>!Object.values(t).flat().includes(e),QI=(e,t,r)=>{let o={elementBackground:"backgroundColor",elementStroke:"strokeColor"},i=e.filter(s=>{if(s.isDeleted)return!1;let c=s[o[t]];return $v({color:c,palette:r})}),a=new Map;return i.forEach(s=>{let c=s[o[t]];a.has(c)?a.set(c,a.get(c)+1):a.set(c,1)}),[...a.entries()].sort((s,c)=>c[1]-s[1]).map(s=>s[0]).slice(0,pS)},tn=wt(null),JI=(e,t,r)=>(e*299+t*587+r*114)/1e3>=160?"black":"white",e_=(e,t)=>{if(t){let a=new Option().style;if(a.color=e,a.color){let s=a.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(","),c=parseInt(s[0]),d=parseInt(s[1]),p=parseInt(s[2]);return JI(c,d,p)}}if(e==="transparent")return"black";let r=parseInt(e.substring(1,3),16),o=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return JI(r,o,i)};v();var t_=w(P(),1),Q7=({color:e,keyLabel:t,isCustomColor:r=!1,isShade:o=!1})=>(0,t_.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:e_(e,r)},children:[o&&"\u21E7",t]}),Zs=Q7;var Li=w(P(),1),r_=({hex:e,onChange:t,palette:r})=>{let o=Ea({color:e||"transparent",palette:r}),[i,a]=Xe(tn),s=(0,Lf.useRef)(null);if((0,Lf.useEffect)(()=>{s.current&&i==="shades"&&s.current.focus()},[o,i]),o){let{colorName:c,shade:d}=o,p=r[c];if(Array.isArray(p))return(0,Li.jsx)("div",{className:"color-picker-content--default shades",children:p.map((f,m)=>(0,Li.jsxs)("button",{ref:m===d&&i==="shades"?s:void 0,tabIndex:-1,type:"button",className:q("color-picker__button color-picker__button--large",{active:m===d}),"aria-label":"Shade",title:`${c} - ${m+1}`,style:f?{"--swatch-color":f}:void 0,onClick:()=>{t(f),a("shades")},children:[(0,Li.jsx)("div",{className:"color-picker__button-outline"}),(0,Li.jsx)(Zs,{color:f,keyLabel:m+1,isShade:!0})]},m))})}return(0,Li.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Li.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Li.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:E("colorPicker.noShades")})]})};v();var Rf=w(j(),1);var qs=w(P(),1),eO=({palette:e,color:t,onChange:r,label:o,activeShade:i})=>{let a=Ea({color:t||"transparent",palette:e}),[s,c]=Xe(tn),d=(0,Rf.useRef)(null);return(0,Rf.useEffect)(()=>{d.current&&s==="baseColors"&&d.current.focus()},[a?.colorName,s]),(0,qs.jsx)("div",{className:"color-picker-content--default",children:Object.entries(e).map(([p,f],m)=>{let g=(Array.isArray(f)?f[i]:f)||"transparent",h=em[m],b=E(`colors.${p.replace(/\d+/,"")}`,null,"");return(0,qs.jsxs)("button",{ref:a?.colorName===p?d:void 0,tabIndex:-1,type:"button",className:q("color-picker__button color-picker__button--large",{active:a?.colorName===p,"is-transparent":g==="transparent"||!g}),onClick:()=>{r(g),c("baseColors")},title:`${b}${g.startsWith("#")?` ${g}`:""} \u2014 ${h}`,"aria-label":`${b} \u2014 ${h}`,style:g?{"--swatch-color":g}:void 0,"data-testid":`color-${p}`,children:[(0,qs.jsx)("div",{className:"color-picker__button-outline"}),(0,qs.jsx)(Zs,{color:g,keyLabel:h})]},p)})})},o_=eO;v();var Df=w(j(),1);var js=w(P(),1),n_=({colors:e,color:t,onChange:r,label:o})=>{let[i,a]=Xe(tn),s=(0,Df.useRef)(null);return(0,Df.useEffect)(()=>{s.current&&s.current.focus()},[t,i]),(0,js.jsx)("div",{className:"color-picker-content--default",children:e.map((c,d)=>(0,js.jsxs)("button",{ref:t===c?s:void 0,tabIndex:-1,type:"button",className:q("color-picker__button color-picker__button--large",{active:t===c,"is-transparent":c==="transparent"||!c}),onClick:()=>{r(c),a("custom")},title:c,"aria-label":o,style:{"--swatch-color":c},children:[(0,js.jsx)("div",{className:"color-picker__button-outline"}),(0,js.jsx)(Zs,{color:c,keyLabel:d+1,isCustomColor:!0})]},d))})};v();var Hv=(e,t,r)=>{let o=Math.ceil(r/el);switch(t=t??-1,e){case"ArrowLeft":{let i=t-1;return i<0?r-1:i}case"ArrowRight":return(t+1)%r;case"ArrowDown":{let i=t+el;return i>=r?t%el:i}case"ArrowUp":{let i=t-el,a=i<0?el*o+i:i;return a>=r?void 0:a}}},tO=({e,colorObj:t,onChange:r,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s})=>{if(t?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(e.code)&&e.shiftKey){let c=Number(e.code.slice(-1))-1;return r(o[t.colorName][c]),a("shades"),!0}if(["1","2","3","4","5"].includes(e.key)&&i[Number(e.key)-1])return r(i[Number(e.key)-1]),a("custom"),!0;if(em.includes(e.key)){let c=em.indexOf(e.key),d=Object.keys(o)[c],p=o[d],f=Array.isArray(p)?p[s]:p;return r(f),a("baseColors"),!0}return!1},i_=({event:e,activeColorPickerSection:t,palette:r,color:o,onChange:i,customColors:a,setActiveColorPickerSection:s,updateData:c,activeShade:d,onEyeDropperToggle:p,onEscape:f})=>{if(e[R.CTRL_OR_CMD])return!1;if(e.key===R.ESCAPE)return f(e),!0;if(e.key===R.ALT)return p(!0),!0;if(e.key===R.I)return p(),!0;let m=Ea({color:o,palette:r});if(e.key===R.TAB){let g={custom:!!a.length,baseColors:!0,shades:m?.shade!=null,hex:!0},h=Object.entries(g).reduce((I,[A,O])=>(O&&I.push(A),I),[]),b=h.indexOf(t),y=e.shiftKey?-1:1,T=b+y>h.length-1?0:b+y<0?h.length-1:b+y,k=h[T];return k&&s(k),k==="custom"?i(a[0]):k==="baseColors"&&(Object.entries(r).find(([A,O])=>Array.isArray(O)?O.includes(o):O===o?A:null)||i(hi.black)),e.preventDefault(),e.stopPropagation(),!0}if(tO({e,colorObj:m,onChange:i,palette:r,customColors:a,setActiveColorPickerSection:s,activeShade:d}))return!0;if(t==="shades"&&m){let{shade:g}=m,h=Hv(e.key,g,el);if(h!==void 0)return i(r[m.colorName][h]),!0}if(t==="baseColors"&&m){let{colorName:g}=m,h=Object.keys(r),b=h.indexOf(g),y=Hv(e.key,b,h.length);if(y!==void 0){let T=h[y],k=r[T];return i(Array.isArray(k)?k[d]:k),!0}}if(t==="custom"){let g=a.indexOf(o),h=Hv(e.key,g,a.length);if(h!==void 0){let b=a[h];return i(b),!0}}return!1};v();var a_=w(P(),1),rO=({children:e})=>(0,a_.jsx)("div",{className:"color-picker__heading",children:e}),Js=rO;var Lo=w(P(),1),l_=({color:e,onChange:t,label:r,type:o,elements:i,palette:a,updateData:s,children:c,onEyeDropperToggle:d,onEscape:p})=>{let[f]=wa.default.useState(()=>o==="canvasBackground"?[]:QI(i,o,a)),[m,g]=Xe(tn),h=Ea({color:e,palette:a});(0,wa.useEffect)(()=>{if(!m){let k=$v({color:e,palette:a}),I=k&&!f.includes(e);g(I?"hex":k?"custom":h?.shade!=null?"shades":"baseColors")}},[m,e,a,g,h,f]);let[b,y]=(0,wa.useState)(h?.shade??(o==="elementBackground"?gS:fS));(0,wa.useEffect)(()=>{h?.shade!=null&&y(h.shade);let k=I=>{I.key===R.ALT&&d(!1)};return document.addEventListener("keyup",k,{capture:!0}),()=>{document.removeEventListener("keyup",k,{capture:!0})}},[h,d]);let T=wa.default.useRef(null);return(0,Lo.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":E("labels.colorPicker"),children:(0,Lo.jsxs)("div",{ref:T,onKeyDown:k=>{i_({event:k,activeColorPickerSection:m,palette:a,color:e,onChange:t,onEyeDropperToggle:d,customColors:f,setActiveColorPickerSection:g,updateData:s,activeShade:b,onEscape:p})&&(k.preventDefault(),k.stopPropagation())},className:"color-picker-content properties-content",tabIndex:-1,children:[!!f.length&&(0,Lo.jsxs)("div",{children:[(0,Lo.jsx)(Js,{children:E("colorPicker.mostUsedCustomColors")}),(0,Lo.jsx)(n_,{colors:f,color:e,label:E("colorPicker.mostUsedCustomColors"),onChange:t})]}),(0,Lo.jsxs)("div",{children:[(0,Lo.jsx)(Js,{children:E("colorPicker.colors")}),(0,Lo.jsx)(o_,{color:e,label:r,palette:a,onChange:t,activeShade:b})]}),(0,Lo.jsxs)("div",{children:[(0,Lo.jsx)(Js,{children:E("colorPicker.shades")}),(0,Lo.jsx)(r_,{hex:e,onChange:t,palette:a})]}),c]})})};v();v();function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},Ye.apply(this,arguments)}var Ze=w(j());v();function lr(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}v();var s_=w(j());function oO(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Uv(...e){return t=>e.forEach(r=>oO(r,t))}function Lr(...e){return(0,s_.useCallback)(Uv(...e),e)}v();var Pn=w(j());function Xn(e,t=[]){let r=[];function o(a,s){let c=(0,Pn.createContext)(s),d=r.length;r=[...r,s];function p(m){let{scope:g,children:h,...b}=m,y=g?.[e][d]||c,T=(0,Pn.useMemo)(()=>b,Object.values(b));return(0,Pn.createElement)(y.Provider,{value:T},h)}function f(m,g){let h=g?.[e][d]||c,b=(0,Pn.useContext)(h);if(b)return b;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${a}\``)}return p.displayName=a+"Provider",[p,f]}let i=()=>{let a=r.map(s=>(0,Pn.createContext)(s));return function(c){let d=c?.[e]||a;return(0,Pn.useMemo)(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return i.scopeName=e,[o,nO(i,...t)]}function nO(...e){let t=e[0];if(e.length===1)return t;let r=()=>{let o=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(a){let s=o.reduce((c,{useScope:d,scopeName:p})=>{let m=d(a)[`__scope${p}`];return{...c,...m}},{});return(0,Pn.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}v();var rr=w(j());v();var Qs=w(j()),c_=w(Vn());v();var Wt=w(j());var Sa=(0,Wt.forwardRef)((e,t)=>{let{children:r,...o}=e,i=Wt.Children.toArray(r),a=i.find(aO);if(a){let s=a.props.children,c=i.map(d=>d===a?Wt.Children.count(s)>1?Wt.Children.only(null):(0,Wt.isValidElement)(s)?s.props.children:null:d);return(0,Wt.createElement)(Gv,Ye({},o,{ref:t}),(0,Wt.isValidElement)(s)?(0,Wt.cloneElement)(s,void 0,c):null)}return(0,Wt.createElement)(Gv,Ye({},o,{ref:t}),r)});Sa.displayName="Slot";var Gv=(0,Wt.forwardRef)((e,t)=>{let{children:r,...o}=e;return(0,Wt.isValidElement)(r)?(0,Wt.cloneElement)(r,{...lO(o,r.props),ref:Uv(t,r.ref)}):Wt.Children.count(r)>1?Wt.Children.only(null):null});Gv.displayName="SlotClone";var iO=({children:e})=>(0,Wt.createElement)(Wt.Fragment,null,e);function aO(e){return(0,Wt.isValidElement)(e)&&e.type===iO}function lO(e,t){let r={...t};for(let o in t){let i=e[o],a=t[o];/^on[A-Z]/.test(o)?i&&a?r[o]=(...c)=>{a(...c),i(...c)}:i&&(r[o]=i):o==="style"?r[o]={...i,...a}:o==="className"&&(r[o]=[i,a].filter(Boolean).join(" "))}return{...e,...r}}var sO=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],Zt=sO.reduce((e,t)=>{let r=(0,Qs.forwardRef)((o,i)=>{let{asChild:a,...s}=o,c=a?Sa:t;return(0,Qs.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,Qs.createElement)(c,Ye({},s,{ref:i}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function d_(e,t){e&&(0,c_.flushSync)(()=>e.dispatchEvent(t))}v();var ec=w(j());function oo(e){let t=(0,ec.useRef)(e);return(0,ec.useEffect)(()=>{t.current=e}),(0,ec.useMemo)(()=>(...r)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...r)},[])}v();var m_=w(j());function u_(e,t=globalThis?.document){let r=oo(e);(0,m_.useEffect)(()=>{let o=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[r,t])}var Wv="dismissableLayer.update",cO="dismissableLayer.pointerDownOutside",dO="dismissableLayer.focusOutside",p_,mO=(0,rr.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),g_=(0,rr.forwardRef)((e,t)=>{var r;let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:c,onDismiss:d,...p}=e,f=(0,rr.useContext)(mO),[m,g]=(0,rr.useState)(null),h=(r=m?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,b]=(0,rr.useState)({}),y=Lr(t,D=>g(D)),T=Array.from(f.layers),[k]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),I=T.indexOf(k),A=m?T.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,z=A>=I,L=uO(D=>{let V=D.target,G=[...f.branches].some(Q=>Q.contains(V));!z||G||(a?.(D),c?.(D),D.defaultPrevented||d?.())},h),F=pO(D=>{let V=D.target;[...f.branches].some(Q=>Q.contains(V))||(s?.(D),c?.(D),D.defaultPrevented||d?.())},h);return u_(D=>{A===f.layers.size-1&&(i?.(D),!D.defaultPrevented&&d&&(D.preventDefault(),d()))},h),(0,rr.useEffect)(()=>{if(m)return o&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(p_=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),f_(),()=>{o&&f.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=p_)}},[m,h,o,f]),(0,rr.useEffect)(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),f_())},[m,f]),(0,rr.useEffect)(()=>{let D=()=>b({});return document.addEventListener(Wv,D),()=>document.removeEventListener(Wv,D)},[]),(0,rr.createElement)(Zt.div,Ye({},p,{ref:y,style:{pointerEvents:O?z?"auto":"none":void 0,...e.style},onFocusCapture:lr(e.onFocusCapture,F.onFocusCapture),onBlurCapture:lr(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:lr(e.onPointerDownCapture,L.onPointerDownCapture)}))});function uO(e,t=globalThis?.document){let r=oo(e),o=(0,rr.useRef)(!1),i=(0,rr.useRef)(()=>{});return(0,rr.useEffect)(()=>{let a=c=>{if(c.target&&!o.current){let p=function(){h_(cO,r,d,{discrete:!0})},d={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=p,t.addEventListener("click",i.current,{once:!0})):p()}o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",a),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>o.current=!0}}function pO(e,t=globalThis?.document){let r=oo(e),o=(0,rr.useRef)(!1);return(0,rr.useEffect)(()=>{let i=a=>{a.target&&!o.current&&h_(dO,r,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function f_(){let e=new CustomEvent(Wv);document.dispatchEvent(e)}function h_(e,t,r,{discrete:o}){let i=r.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),o?d_(i,a):i.dispatchEvent(a)}v();var x_=w(j()),Kv=0;function v_(){(0,x_.useEffect)(()=>{var e,t;let r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=r[0])!==null&&e!==void 0?e:b_()),document.body.insertAdjacentElement("beforeend",(t=r[1])!==null&&t!==void 0?t:b_()),Kv++,()=>{Kv===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),Kv--}},[])}function b_(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}v();var bo=w(j());var Yv="focusScope.autoFocusOnMount",Vv="focusScope.autoFocusOnUnmount",y_={bubbles:!1,cancelable:!0};var T_=(0,bo.forwardRef)((e,t)=>{let{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=e,[c,d]=(0,bo.useState)(null),p=oo(i),f=oo(a),m=(0,bo.useRef)(null),g=Lr(t,y=>d(y)),h=(0,bo.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,bo.useEffect)(()=>{if(o){let y=function(k){if(h.paused||!c)return;let I=k.target;c.contains(I)?m.current=I:Tl(m.current,{select:!0})},T=function(k){h.paused||!c||c.contains(k.relatedTarget)||Tl(m.current,{select:!0})};return document.addEventListener("focusin",y),document.addEventListener("focusout",T),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",T)}}},[o,c,h.paused]),(0,bo.useEffect)(()=>{if(c){w_.add(h);let y=document.activeElement;if(!c.contains(y)){let k=new CustomEvent(Yv,y_);c.addEventListener(Yv,p),c.dispatchEvent(k),k.defaultPrevented||(fO(vO(C_(c)),{select:!0}),document.activeElement===y&&Tl(c))}return()=>{c.removeEventListener(Yv,p),setTimeout(()=>{let k=new CustomEvent(Vv,y_);c.addEventListener(Vv,f),c.dispatchEvent(k),k.defaultPrevented||Tl(y??document.body,{select:!0}),c.removeEventListener(Vv,f),w_.remove(h)},0)}}},[c,p,f,h]);let b=(0,bo.useCallback)(y=>{if(!r&&!o||h.paused)return;let T=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,k=document.activeElement;if(T&&k){let I=y.currentTarget,[A,O]=gO(I);A&&O?!y.shiftKey&&k===O?(y.preventDefault(),r&&Tl(A,{select:!0})):y.shiftKey&&k===A&&(y.preventDefault(),r&&Tl(O,{select:!0})):k===I&&y.preventDefault()}},[r,o,h.paused]);return(0,bo.createElement)(Zt.div,Ye({tabIndex:-1},s,{ref:g,onKeyDown:b}))});function fO(e,{select:t=!1}={}){let r=document.activeElement;for(let o of e)if(Tl(o,{select:t}),document.activeElement!==r)return}function gO(e){let t=C_(e),r=E_(t,e),o=E_(t.reverse(),e);return[r,o]}function C_(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let i=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||i?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function E_(e,t){for(let r of e)if(!hO(r,{upTo:t}))return r}function hO(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function bO(e){return e instanceof HTMLInputElement&&"select"in e}function Tl(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&bO(e)&&t&&e.select()}}var w_=xO();function xO(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=S_(e,t),e.unshift(t)},remove(t){var r;e=S_(e,t),(r=e[0])===null||r===void 0||r.resume()}}}function S_(e,t){let r=[...e],o=r.indexOf(t);return o!==-1&&r.splice(o,1),r}function vO(e){return e.filter(t=>t.tagName!=="A")}v();var Nf=w(j());v();var I_=w(j()),rn=globalThis?.document?I_.useLayoutEffect:()=>{};var yO=Nf.useId||(()=>{}),EO=0;function tc(e){let[t,r]=Nf.useState(yO());return rn(()=>{e||r(o=>o??String(EO++))},[e]),e||(t?`radix-${t}`:"")}v();var Mt=w(j());v();v();v();function Il(e){return e.split("-")[0]}function rm(e){return e.split("-")[1]}function oc(e){return["top","bottom"].includes(Il(e))?"x":"y"}function Zv(e){return e==="y"?"height":"width"}function __(e,t,r){let{reference:o,floating:i}=e,a=o.x+o.width/2-i.width/2,s=o.y+o.height/2-i.height/2,c=oc(t),d=Zv(c),p=o[d]/2-i[d]/2,f=c==="x",m;switch(Il(t)){case"top":m={x:a,y:o.y-i.height};break;case"bottom":m={x:a,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:s};break;case"left":m={x:o.x-i.width,y:s};break;default:m={x:o.x,y:o.y}}switch(rm(t)){case"start":m[c]-=p*(r&&f?-1:1);break;case"end":m[c]+=p*(r&&f?-1:1)}return m}var P_=async(e,t,r)=>{let{placement:o="bottom",strategy:i="absolute",middleware:a=[],platform:s}=r,c=await(s.isRTL==null?void 0:s.isRTL(t)),d=await s.getElementRects({reference:e,floating:t,strategy:i}),{x:p,y:f}=__(d,o,c),m=o,g={},h=0;for(let b=0;b<a.length;b++){let{name:y,fn:T}=a[b],{x:k,y:I,data:A,reset:O}=await T({x:p,y:f,initialPlacement:o,placement:m,strategy:i,middlewareData:g,rects:d,platform:s,elements:{reference:e,floating:t}});p=k??p,f=I??f,g={...g,[y]:{...g[y],...A}},O&&h<=50&&(h++,typeof O=="object"&&(O.placement&&(m=O.placement),O.rects&&(d=O.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:i}):O.rects),{x:p,y:f}=__(d,m,c)),b=-1)}return{x:p,y:f,placement:m,strategy:i,middlewareData:g}};function L_(e){return typeof e!="number"?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(e):{top:e,right:e,bottom:e,left:e}}function tm(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function rc(e,t){var r;t===void 0&&(t={});let{x:o,y:i,platform:a,rects:s,elements:c,strategy:d}=e,{boundary:p="clippingAncestors",rootBoundary:f="viewport",elementContext:m="floating",altBoundary:g=!1,padding:h=0}=t,b=L_(h),y=c[g?m==="floating"?"reference":"floating":m],T=tm(await a.getClippingRect({element:(r=await(a.isElement==null?void 0:a.isElement(y)))==null||r?y:y.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:p,rootBoundary:f,strategy:d})),k=tm(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({rect:m==="floating"?{...s.floating,x:o,y:i}:s.reference,offsetParent:await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),strategy:d}):s[m]);return{top:T.top-k.top+b.top,bottom:k.bottom-T.bottom+b.bottom,left:T.left-k.left+b.left,right:k.right-T.right+b.right}}var wO=Math.min,Cl=Math.max;function Xv(e,t,r){return Cl(e,wO(t,r))}var Ff=e=>({name:"arrow",options:e,async fn(t){let{element:r,padding:o=0}=e??{},{x:i,y:a,placement:s,rects:c,platform:d}=t;if(r==null)return{};let p=L_(o),f={x:i,y:a},m=oc(s),g=rm(s),h=Zv(m),b=await d.getDimensions(r),y=m==="y"?"top":"left",T=m==="y"?"bottom":"right",k=c.reference[h]+c.reference[m]-f[m]-c.floating[h],I=f[m]-c.reference[m],A=await(d.getOffsetParent==null?void 0:d.getOffsetParent(r)),O=A?m==="y"?A.clientHeight||0:A.clientWidth||0:0;O===0&&(O=c.floating[h]);let z=k/2-I/2,L=p[y],F=O-b[h]-p[T],D=O/2-b[h]/2+z,V=Xv(L,D,F),G=(g==="start"?p[y]:p[T])>0&&D!==V&&c.reference[h]<=c.floating[h];return{[m]:f[m]-(G?D<L?L-D:F-D:0),data:{[m]:V,centerOffset:D-V}}}}),SO={left:"right",right:"left",bottom:"top",top:"bottom"};function Of(e){return e.replace(/left|right|bottom|top/g,t=>SO[t])}function TO(e,t,r){r===void 0&&(r=!1);let o=rm(e),i=oc(e),a=Zv(i),s=i==="x"?o===(r?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(s=Of(s)),{main:s,cross:Of(s)}}var CO={start:"end",end:"start"};function A_(e){return e.replace(/start|end/g,t=>CO[t])}var R_=["top","right","bottom","left"],yK=R_.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);var qv=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var r;let{placement:o,middlewareData:i,rects:a,initialPlacement:s,platform:c,elements:d}=t,{mainAxis:p=!0,crossAxis:f=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",flipAlignment:h=!0,...b}=e,y=Il(o),T=m||(y===s||!h?[Of(s)]:function(D){let V=Of(D);return[A_(D),V,A_(V)]}(s)),k=[s,...T],I=await rc(t,b),A=[],O=((r=i.flip)==null?void 0:r.overflows)||[];if(p&&A.push(I[y]),f){let{main:D,cross:V}=TO(o,a,await(c.isRTL==null?void 0:c.isRTL(d.floating)));A.push(I[D],I[V])}if(O=[...O,{placement:o,overflows:A}],!A.every(D=>D<=0)){var z,L;let D=((z=(L=i.flip)==null?void 0:L.index)!=null?z:0)+1,V=k[D];if(V)return{data:{index:D,overflows:O},reset:{placement:V}};let G="bottom";switch(g){case"bestFit":{var F;let Q=(F=O.map(de=>[de,de.overflows.filter(K=>K>0).reduce((K,se)=>K+se,0)]).sort((de,K)=>de[1]-K[1])[0])==null?void 0:F[0].placement;Q&&(G=Q);break}case"initialPlacement":G=s}if(o!==G)return{reset:{placement:G}}}return{}}}};function k_(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function M_(e){return R_.some(t=>e[t]>=0)}var jv=function(e){let{strategy:t="referenceHidden",...r}=e===void 0?{}:e;return{name:"hide",async fn(o){let{rects:i}=o;switch(t){case"referenceHidden":{let a=k_(await rc(o,{...r,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:M_(a)}}}case"escaped":{let a=k_(await rc(o,{...r,altBoundary:!0}),i.floating);return{data:{escapedOffsets:a,escaped:M_(a)}}}default:return{}}}}},Jv=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:r,y:o}=t,i=await async function(a,s){let{placement:c,platform:d,elements:p}=a,f=await(d.isRTL==null?void 0:d.isRTL(p.floating)),m=Il(c),g=rm(c),h=oc(c)==="x",b=["left","top"].includes(m)?-1:1,y=f&&h?-1:1,T=typeof s=="function"?s(a):s,{mainAxis:k,crossAxis:I,alignmentAxis:A}=typeof T=="number"?{mainAxis:T,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...T};return g&&typeof A=="number"&&(I=g==="end"?-1*A:A),h?{x:I*y,y:k*b}:{x:k*b,y:I*y}}(t,e);return{x:r+i.x,y:o+i.y,data:i}}}};function D_(e){return e==="x"?"y":"x"}var Qv=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:o,placement:i}=t,{mainAxis:a=!0,crossAxis:s=!1,limiter:c={fn:T=>{let{x:k,y:I}=T;return{x:k,y:I}}},...d}=e,p={x:r,y:o},f=await rc(t,d),m=oc(Il(i)),g=D_(m),h=p[m],b=p[g];if(a){let T=m==="y"?"bottom":"right";h=Xv(h+f[m==="y"?"top":"left"],h,h-f[T])}if(s){let T=g==="y"?"bottom":"right";b=Xv(b+f[g==="y"?"top":"left"],b,b-f[T])}let y=c.fn({...t,[m]:h,[g]:b});return{...y,data:{x:y.x-r,y:y.y-o}}}}},ey=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:r,y:o,placement:i,rects:a,middlewareData:s}=t,{offset:c=0,mainAxis:d=!0,crossAxis:p=!0}=e,f={x:r,y:o},m=oc(i),g=D_(m),h=f[m],b=f[g],y=typeof c=="function"?c({...a,placement:i}):c,T=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(d){let z=m==="y"?"height":"width",L=a.reference[m]-a.floating[z]+T.mainAxis,F=a.reference[m]+a.reference[z]-T.mainAxis;h<L?h=L:h>F&&(h=F)}if(p){var k,I,A,O;let z=m==="y"?"width":"height",L=["top","left"].includes(Il(i)),F=a.reference[g]-a.floating[z]+(L&&(k=(I=s.offset)==null?void 0:I[g])!=null?k:0)+(L?0:T.crossAxis),D=a.reference[g]+a.reference[z]+(L?0:(A=(O=s.offset)==null?void 0:O[g])!=null?A:0)-(L?T.crossAxis:0);b<F?b=F:b>D&&(b=D)}return{[m]:h,[g]:b}}}},ty=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){let{placement:r,rects:o,platform:i,elements:a}=t,{apply:s,...c}=e,d=await rc(t,c),p=Il(r),f=rm(r),m,g;p==="top"||p==="bottom"?(m=p,g=f===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?"start":"end")?"left":"right"):(g=p,m=f==="end"?"top":"bottom");let h=Cl(d.left,0),b=Cl(d.right,0),y=Cl(d.top,0),T=Cl(d.bottom,0),k={availableHeight:o.floating.height-(["left","right"].includes(r)?2*(y!==0||T!==0?y+T:Cl(d.top,d.bottom)):d[m]),availableWidth:o.floating.width-(["top","bottom"].includes(r)?2*(h!==0||b!==0?h+b:Cl(d.left,d.right)):d[g])},I=await i.getDimensions(a.floating);s?.({...t,...k});let A=await i.getDimensions(a.floating);return I.width!==A.width||I.height!==A.height?{reset:{rects:!0}}:{}}}};function $_(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Ni(e){if(e==null)return window;if(!$_(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function nm(e){return Ni(e).getComputedStyle(e)}function Ri(e){return $_(e)?"":e?(e.nodeName||"").toLowerCase():""}function H_(){let e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function Zn(e){return e instanceof Ni(e).HTMLElement}function Ca(e){return e instanceof Ni(e).Element}function oy(e){return typeof ShadowRoot>"u"?!1:e instanceof Ni(e).ShadowRoot||e instanceof ShadowRoot}function $f(e){let{overflow:t,overflowX:r,overflowY:o}=nm(e);return/auto|scroll|overlay|hidden/.test(t+o+r)}function IO(e){return["table","td","th"].includes(Ri(e))}function N_(e){let t=/firefox/i.test(H_()),r=nm(e);return r.transform!=="none"||r.perspective!=="none"||r.contain==="paint"||["transform","perspective"].includes(r.willChange)||t&&r.willChange==="filter"||t&&!!r.filter&&r.filter!=="none"}function U_(){return!/^((?!chrome|android).)*safari/i.test(H_())}var O_=Math.min,om=Math.max,Bf=Math.round;function Di(e,t,r){var o,i,a,s;t===void 0&&(t=!1),r===void 0&&(r=!1);let c=e.getBoundingClientRect(),d=1,p=1;t&&Zn(e)&&(d=e.offsetWidth>0&&Bf(c.width)/e.offsetWidth||1,p=e.offsetHeight>0&&Bf(c.height)/e.offsetHeight||1);let f=Ca(e)?Ni(e):window,m=!U_()&&r,g=(c.left+(m&&(o=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?o:0))/d,h=(c.top+(m&&(a=(s=f.visualViewport)==null?void 0:s.offsetTop)!=null?a:0))/p,b=c.width/d,y=c.height/p;return{width:b,height:y,top:h,right:g+b,bottom:h+y,left:g,x:g,y:h}}function Ta(e){return(t=e,(t instanceof Ni(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function Hf(e){return Ca(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function G_(e){return Di(Ta(e)).left+Hf(e).scrollLeft}function _O(e,t,r){let o=Zn(t),i=Ta(t),a=Di(e,o&&function(d){let p=Di(d);return Bf(p.width)!==d.offsetWidth||Bf(p.height)!==d.offsetHeight}(t),r==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(o||!o&&r!=="fixed")if((Ri(t)!=="body"||$f(i))&&(s=Hf(t)),Zn(t)){let d=Di(t,!0);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else i&&(c.x=G_(i));return{x:a.left+s.scrollLeft-c.x,y:a.top+s.scrollTop-c.y,width:a.width,height:a.height}}function W_(e){return Ri(e)==="html"?e:e.assignedSlot||e.parentNode||(oy(e)?e.host:null)||Ta(e)}function F_(e){return Zn(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function ry(e){let t=Ni(e),r=F_(e);for(;r&&IO(r)&&getComputedStyle(r).position==="static";)r=F_(r);return r&&(Ri(r)==="html"||Ri(r)==="body"&&getComputedStyle(r).position==="static"&&!N_(r))?t:r||function(o){let i=W_(o);for(oy(i)&&(i=i.host);Zn(i)&&!["html","body"].includes(Ri(i));){if(N_(i))return i;i=i.parentNode}return null}(e)||t}function B_(e){if(Zn(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=Di(e);return{width:t.width,height:t.height}}function K_(e){let t=W_(e);return["html","body","#document"].includes(Ri(t))?e.ownerDocument.body:Zn(t)&&$f(t)?t:K_(t)}function zf(e,t){var r;t===void 0&&(t=[]);let o=K_(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=Ni(o),s=i?[a].concat(a.visualViewport||[],$f(o)?o:[]):o,c=t.concat(s);return i?c:c.concat(zf(s))}function z_(e,t,r){return t==="viewport"?tm(function(o,i){let a=Ni(o),s=Ta(o),c=a.visualViewport,d=s.clientWidth,p=s.clientHeight,f=0,m=0;if(c){d=c.width,p=c.height;let g=U_();(g||!g&&i==="fixed")&&(f=c.offsetLeft,m=c.offsetTop)}return{width:d,height:p,x:f,y:m}}(e,r)):Ca(t)?function(o,i){let a=Di(o,!1,i==="fixed"),s=a.top+o.clientTop,c=a.left+o.clientLeft;return{top:s,left:c,x:c,y:s,right:c+o.clientWidth,bottom:s+o.clientHeight,width:o.clientWidth,height:o.clientHeight}}(t,r):tm(function(o){var i;let a=Ta(o),s=Hf(o),c=(i=o.ownerDocument)==null?void 0:i.body,d=om(a.scrollWidth,a.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),p=om(a.scrollHeight,a.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),f=-s.scrollLeft+G_(o),m=-s.scrollTop;return nm(c||a).direction==="rtl"&&(f+=om(a.clientWidth,c?c.clientWidth:0)-d),{width:d,height:p,x:f,y:m}}(Ta(e)))}function AO(e){let t=zf(e),r=["absolute","fixed"].includes(nm(e).position)&&Zn(e)?ry(e):e;return Ca(r)?t.filter(o=>Ca(o)&&function(i,a){let s=a.getRootNode==null?void 0:a.getRootNode();if(i.contains(a))return!0;if(s&&oy(s)){let c=a;do{if(c&&i===c)return!0;c=c.parentNode||c.host}while(c)}return!1}(o,r)&&Ri(o)!=="body"):[]}var kO={getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:o,strategy:i}=e,a=[...r==="clippingAncestors"?AO(t):[].concat(r),o],s=a[0],c=a.reduce((d,p)=>{let f=z_(t,p,i);return d.top=om(f.top,d.top),d.right=O_(f.right,d.right),d.bottom=O_(f.bottom,d.bottom),d.left=om(f.left,d.left),d},z_(t,s,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:r,strategy:o}=e,i=Zn(r),a=Ta(r);if(r===a)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((i||!i&&o!=="fixed")&&((Ri(r)!=="body"||$f(a))&&(s=Hf(r)),Zn(r))){let d=Di(r,!0);c.x=d.x+r.clientLeft,c.y=d.y+r.clientTop}return{...t,x:t.x-s.scrollLeft+c.x,y:t.y-s.scrollTop+c.y}},isElement:Ca,getDimensions:B_,getOffsetParent:ry,getDocumentElement:Ta,getElementRects:e=>{let{reference:t,floating:r,strategy:o}=e;return{reference:_O(t,ry(r),o),floating:{...B_(r),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>nm(e).direction==="rtl"};function Y_(e,t,r,o){o===void 0&&(o={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:s=!0,animationFrame:c=!1}=o,d=i&&!c,p=a&&!c,f=d||p?[...Ca(e)?zf(e):[],...zf(t)]:[];f.forEach(b=>{d&&b.addEventListener("scroll",r,{passive:!0}),p&&b.addEventListener("resize",r)});let m,g=null;if(s){let b=!0;g=new ResizeObserver(()=>{b||r(),b=!1}),Ca(e)&&!c&&g.observe(e),g.observe(t)}let h=c?Di(e):null;return c&&function b(){let y=Di(e);!h||y.x===h.x&&y.y===h.y&&y.width===h.width&&y.height===h.height||r(),h=y,m=requestAnimationFrame(b)}(),r(),()=>{var b;f.forEach(y=>{d&&y.removeEventListener("scroll",r),p&&y.removeEventListener("resize",r)}),(b=g)==null||b.disconnect(),g=null,c&&cancelAnimationFrame(m)}}var V_=(e,t,r)=>P_(e,t,{platform:kO,...r});var Rr=w(j()),Uf=w(j()),X_=w(Vn()),ny=typeof document<"u"?Uf.useLayoutEffect:Uf.useEffect;function iy(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let r,o,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(o=r;o--!==0;)if(!iy(e[o],t[o]))return!1;return!0}if(i=Object.keys(e),r=i.length,r!==Object.keys(t).length)return!1;for(o=r;o--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[o]))return!1;for(o=r;o--!==0;){let a=i[o];if(!(a==="_owner"&&e.$$typeof)&&!iy(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function MO(e){let t=Rr.useRef(e);return ny(()=>{t.current=e}),t}function Z_(e){let{middleware:t,placement:r="bottom",strategy:o="absolute",whileElementsMounted:i}=e===void 0?{}:e,a=Rr.useRef(null),s=Rr.useRef(null),c=MO(i),d=Rr.useRef(null),[p,f]=Rr.useState({x:null,y:null,strategy:o,placement:r,middlewareData:{}}),[m,g]=Rr.useState(t);iy(m?.map(A=>{let{options:O}=A;return O}),t?.map(A=>{let{options:O}=A;return O}))||g(t);let h=Rr.useCallback(()=>{!a.current||!s.current||V_(a.current,s.current,{middleware:m,placement:r,strategy:o}).then(A=>{b.current&&X_.flushSync(()=>{f(A)})})},[m,r,o]);ny(()=>{b.current&&h()},[h]);let b=Rr.useRef(!1);ny(()=>(b.current=!0,()=>{b.current=!1}),[]);let y=Rr.useCallback(()=>{if(typeof d.current=="function"&&(d.current(),d.current=null),a.current&&s.current)if(c.current){let A=c.current(a.current,s.current,h);d.current=A}else h()},[h,c]),T=Rr.useCallback(A=>{a.current=A,y()},[y]),k=Rr.useCallback(A=>{s.current=A,y()},[y]),I=Rr.useMemo(()=>({reference:a,floating:s}),[]);return Rr.useMemo(()=>({...p,update:h,refs:I,reference:T,floating:k}),[p,h,I,T,k])}var q_=e=>{let{element:t,padding:r}=e;function o(i){return Object.prototype.hasOwnProperty.call(i,"current")}return{name:"arrow",options:e,fn(i){return o(t)?t.current!=null?Ff({element:t.current,padding:r}).fn(i):{}:t?Ff({element:t,padding:r}).fn(i):{}}}};v();var im=w(j());var PO=(0,im.forwardRef)((e,t)=>{let{children:r,width:o=10,height:i=5,...a}=e;return(0,im.createElement)(Zt.svg,Ye({},a,{ref:t,width:o,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),e.asChild?r:(0,im.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),j_=PO;v();var J_=w(j());function Q_(e){let[t,r]=(0,J_.useState)(void 0);return rn(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let o=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;let a=i[0],s,c;if("borderBoxSize"in a){let d=a.borderBoxSize,p=Array.isArray(d)?d[0]:d;s=p.inlineSize,c=p.blockSize}else s=e.offsetWidth,c=e.offsetHeight;r({width:s,height:c})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else r(void 0)},[e]),t}var eA="Popper",[ay,ly]=Xn(eA),[LO,tA]=ay(eA),RO=e=>{let{__scopePopper:t,children:r}=e,[o,i]=(0,Mt.useState)(null);return(0,Mt.createElement)(LO,{scope:t,anchor:o,onAnchorChange:i},r)},DO="PopperAnchor",NO=(0,Mt.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:o,...i}=e,a=tA(DO,r),s=(0,Mt.useRef)(null),c=Lr(t,s);return(0,Mt.useEffect)(()=>{a.onAnchorChange(o?.current||s.current)}),o?null:(0,Mt.createElement)(Zt.div,Ye({},i,{ref:c}))}),Gf="PopperContent",[OO,FO]=ay(Gf),[BO,zO]=ay(Gf,{hasParent:!1,positionUpdateFns:new Set}),$O=(0,Mt.forwardRef)((e,t)=>{var r,o,i,a,s,c,d,p;let{__scopePopper:f,side:m="bottom",sideOffset:g=0,align:h="center",alignOffset:b=0,arrowPadding:y=0,collisionBoundary:T=[],collisionPadding:k=0,sticky:I="partial",hideWhenDetached:A=!1,avoidCollisions:O=!0,onPlaced:z,...L}=e,F=tA(Gf,f),[D,V]=(0,Mt.useState)(null),G=Lr(t,Xi=>V(Xi)),[Q,de]=(0,Mt.useState)(null),K=Q_(Q),se=(r=K?.width)!==null&&r!==void 0?r:0,be=(o=K?.height)!==null&&o!==void 0?o:0,_e=m+(h!=="center"?"-"+h:""),nt=typeof k=="number"?k:{top:0,right:0,bottom:0,left:0,...k},Ee=Array.isArray(T)?T:[T],ue=Ee.length>0,U={padding:nt,boundary:Ee.filter(KO),altBoundary:ue},{reference:Y,floating:oe,strategy:ie,x:le,y:ce,placement:pe,middlewareData:ye,update:Tt}=Z_({strategy:"fixed",placement:_e,whileElementsMounted:Y_,middleware:[YO(),Jv({mainAxis:g+be,alignmentAxis:b}),O?Qv({mainAxis:!0,crossAxis:!1,limiter:I==="partial"?ey():void 0,...U}):void 0,Q?q_({element:Q,padding:y}):void 0,O?qv({...U}):void 0,ty({...U,apply:({elements:Xi,availableWidth:Wa,availableHeight:Xh})=>{Xi.floating.style.setProperty("--radix-popper-available-width",`${Wa}px`),Xi.floating.style.setProperty("--radix-popper-available-height",`${Xh}px`)}}),VO({arrowWidth:se,arrowHeight:be}),A?jv({strategy:"referenceHidden"}):void 0].filter(WO)});rn(()=>{Y(F.anchor)},[Y,F.anchor]);let xt=le!==null&&ce!==null,[Nt,yt]=rA(pe),Jt=oo(z);rn(()=>{xt&&Jt?.()},[xt,Jt]);let qr=(i=ye.arrow)===null||i===void 0?void 0:i.x,ai=(a=ye.arrow)===null||a===void 0?void 0:a.y,nr=((s=ye.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[eu,Vh]=(0,Mt.useState)();rn(()=>{D&&Vh(window.getComputedStyle(D).zIndex)},[D]);let{hasParent:Ua,positionUpdateFns:yr}=zO(Gf,f),hn=!Ua;(0,Mt.useLayoutEffect)(()=>{if(!hn)return yr.add(Tt),()=>{yr.delete(Tt)}},[hn,yr,Tt]),rn(()=>{hn&&xt&&Array.from(yr).reverse().forEach(Xi=>requestAnimationFrame(Xi))},[hn,xt,yr]);let Ga={"data-side":Nt,"data-align":yt,...L,ref:G,style:{...L.style,animation:xt?void 0:"none",opacity:(c=ye.hide)!==null&&c!==void 0&&c.referenceHidden?0:void 0}};return(0,Mt.createElement)("div",{ref:oe,"data-radix-popper-content-wrapper":"",style:{position:ie,left:0,top:0,transform:xt?`translate3d(${Math.round(le)}px, ${Math.round(ce)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:eu,"--radix-popper-transform-origin":[(d=ye.transformOrigin)===null||d===void 0?void 0:d.x,(p=ye.transformOrigin)===null||p===void 0?void 0:p.y].join(" ")},dir:e.dir},(0,Mt.createElement)(OO,{scope:f,placedSide:Nt,onArrowChange:de,arrowX:qr,arrowY:ai,shouldHideArrow:nr},hn?(0,Mt.createElement)(BO,{scope:f,hasParent:!0,positionUpdateFns:yr},(0,Mt.createElement)(Zt.div,Ga)):(0,Mt.createElement)(Zt.div,Ga)))}),HO="PopperArrow",UO={top:"bottom",right:"left",bottom:"top",left:"right"},GO=(0,Mt.forwardRef)(function(t,r){let{__scopePopper:o,...i}=t,a=FO(HO,o),s=UO[a.placedSide];return(0,Mt.createElement)("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0}},(0,Mt.createElement)(j_,Ye({},i,{ref:r,style:{...i.style,display:"block"}})))});function WO(e){return e!==void 0}function KO(e){return e!==null}var YO=()=>({name:"anchorCssProperties",fn(e){let{rects:t,elements:r}=e,{width:o,height:i}=t.reference;return r.floating.style.setProperty("--radix-popper-anchor-width",`${o}px`),r.floating.style.setProperty("--radix-popper-anchor-height",`${i}px`),{}}}),VO=e=>({name:"transformOrigin",options:e,fn(t){var r,o,i,a,s;let{placement:c,rects:d,middlewareData:p}=t,m=((r=p.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,g=m?0:e.arrowWidth,h=m?0:e.arrowHeight,[b,y]=rA(c),T={start:"0%",center:"50%",end:"100%"}[y],k=((o=(i=p.arrow)===null||i===void 0?void 0:i.x)!==null&&o!==void 0?o:0)+g/2,I=((a=(s=p.arrow)===null||s===void 0?void 0:s.y)!==null&&a!==void 0?a:0)+h/2,A="",O="";return b==="bottom"?(A=m?T:`${k}px`,O=`${-h}px`):b==="top"?(A=m?T:`${k}px`,O=`${d.floating.height+h}px`):b==="right"?(A=`${-h}px`,O=m?T:`${I}px`):b==="left"&&(A=`${d.floating.width+h}px`,O=m?T:`${I}px`),{data:{x:A,y:O}}}});function rA(e){let[t,r="center"]=e.split("-");return[t,r]}var oA=RO,nA=NO,iA=$O,aA=GO;v();var Wf=w(j()),lA=w(Vn());var sA=(0,Wf.forwardRef)((e,t)=>{var r;let{container:o=globalThis==null||(r=globalThis.document)===null||r===void 0?void 0:r.body,...i}=e;return o?lA.default.createPortal((0,Wf.createElement)(Zt.div,Ye({},i,{ref:t})),o):null});v();var $r=w(j()),cA=w(Vn());function XO(e,t){return(0,$r.useReducer)((r,o)=>{let i=t[r][o];return i??r},e)}var nc=e=>{let{present:t,children:r}=e,o=ZO(t),i=typeof r=="function"?r({present:o.isPresent}):$r.Children.only(r),a=Lr(o.ref,i.ref);return typeof r=="function"||o.isPresent?(0,$r.cloneElement)(i,{ref:a}):null};nc.displayName="Presence";function ZO(e){let[t,r]=(0,$r.useState)(),o=(0,$r.useRef)({}),i=(0,$r.useRef)(e),a=(0,$r.useRef)("none"),s=e?"mounted":"unmounted",[c,d]=XO(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,$r.useEffect)(()=>{let p=Kf(o.current);a.current=c==="mounted"?p:"none"},[c]),rn(()=>{let p=o.current,f=i.current;if(f!==e){let g=a.current,h=Kf(p);e?d("MOUNT"):h==="none"||p?.display==="none"?d("UNMOUNT"):d(f&&g!==h?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),rn(()=>{if(t){let p=m=>{let h=Kf(o.current).includes(m.animationName);m.target===t&&h&&(0,cA.flushSync)(()=>d("ANIMATION_END"))},f=m=>{m.target===t&&(a.current=Kf(o.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:(0,$r.useCallback)(p=>{p&&(o.current=getComputedStyle(p)),r(p)},[])}}function Kf(e){return e?.animationName||"none"}v();var Ia=w(j());function ic({prop:e,defaultProp:t,onChange:r=()=>{}}){let[o,i]=qO({defaultProp:t,onChange:r}),a=e!==void 0,s=a?e:o,c=oo(r),d=(0,Ia.useCallback)(p=>{if(a){let m=typeof p=="function"?p(e):p;m!==e&&c(m)}else i(p)},[a,e,i,c]);return[s,d]}function qO({defaultProp:e,onChange:t}){let r=(0,Ia.useState)(e),[o]=r,i=(0,Ia.useRef)(o),a=oo(t);return(0,Ia.useEffect)(()=>{i.current!==o&&(a(o),i.current=o)},[o,i,a]),r}v();var jO=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ac=new WeakMap,Yf=new WeakMap,Vf={},sy=0,dA=function(e){return e&&(e.host||dA(e.parentNode))},JO=function(e,t){return t.map(function(r){if(e.contains(r))return r;var o=dA(r);return o&&e.contains(o)?o:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},QO=function(e,t,r,o){var i=JO(t,Array.isArray(e)?e:[e]);Vf[r]||(Vf[r]=new WeakMap);var a=Vf[r],s=[],c=new Set,d=new Set(i),p=function(m){!m||c.has(m)||(c.add(m),p(m.parentNode))};i.forEach(p);var f=function(m){!m||d.has(m)||Array.prototype.forEach.call(m.children,function(g){if(c.has(g))f(g);else try{var h=g.getAttribute(o),b=h!==null&&h!=="false",y=(ac.get(g)||0)+1,T=(a.get(g)||0)+1;ac.set(g,y),a.set(g,T),s.push(g),y===1&&b&&Yf.set(g,!0),T===1&&g.setAttribute(r,"true"),b||g.setAttribute(o,"true")}catch(k){console.error("aria-hidden: cannot operate on ",g,k)}})};return f(t),c.clear(),sy++,function(){s.forEach(function(m){var g=ac.get(m)-1,h=a.get(m)-1;ac.set(m,g),a.set(m,h),g||(Yf.has(m)||m.removeAttribute(o),Yf.delete(m)),h||m.removeAttribute(r)}),sy--,sy||(ac=new WeakMap,ac=new WeakMap,Yf=new WeakMap,Vf={})}},mA=function(e,t,r){r===void 0&&(r="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),i=t||jO(e);return i?(o.push.apply(o,Array.from(i.querySelectorAll("[aria-live]"))),QO(o,i,r,"aria-hidden")):function(){return null}};v();v();v();var xo=function(){return xo=Object.assign||function(t){for(var r,o=1,i=arguments.length;o<i;o++){r=arguments[o];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},xo.apply(this,arguments)};function Xf(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,o=Object.getOwnPropertySymbols(e);i<o.length;i++)t.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(r[o[i]]=e[o[i]]);return r}function uA(e,t,r){if(r||arguments.length===2)for(var o=0,i=t.length,a;o<i;o++)(a||!(o in t))&&(a||(a=Array.prototype.slice.call(t,0,o)),a[o]=t[o]);return e.concat(a||Array.prototype.slice.call(t))}var Qf=w(j());v();var Hr=w(j());v();var _l="right-scroll-bar-position",Al="width-before-scroll-bar",cy="with-scroll-bars-hidden",dy="--removed-body-scroll-bar-size";v();v();function Zf(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}v();var pA=w(j());function fA(e,t){var r=(0,pA.useState)(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(o){var i=r.value;i!==o&&(r.value=o,r.callback(o,i))}}}})[0];return r.callback=t,r.facade}v();var qf=w(j());var e9=typeof window<"u"?qf.useLayoutEffect:qf.useEffect,gA=new WeakMap;function my(e,t){var r=fA(t||null,function(o){return e.forEach(function(i){return Zf(i,o)})});return e9(function(){var o=gA.get(r);if(o){var i=new Set(o),a=new Set(e),s=r.current;i.forEach(function(c){a.has(c)||Zf(c,null)}),a.forEach(function(c){i.has(c)||Zf(c,s)})}gA.set(r,e)},[e]),r}v();v();v();function t9(e){return e}function r9(e,t){t===void 0&&(t=t9);var r=[],o=!1,i={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(a){var s=t(a,o);return r.push(s),function(){r=r.filter(function(c){return c!==s})}},assignSyncMedium:function(a){for(o=!0;r.length;){var s=r;r=[],s.forEach(a)}r={push:function(c){return a(c)},filter:function(){return r}}},assignMedium:function(a){o=!0;var s=[];if(r.length){var c=r;r=[],c.forEach(a),s=r}var d=function(){var f=s;s=[],f.forEach(a)},p=function(){return Promise.resolve().then(d)};p(),r={push:function(f){s.push(f),p()},filter:function(f){return s=s.filter(f),r}}}};return i}function uy(e){e===void 0&&(e={});var t=r9(null);return t.options=xo({async:!0,ssr:!1},e),t}v();var hA=w(j()),bA=function(e){var t=e.sideCar,r=Xf(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return hA.createElement(o,xo({},r))};bA.isSideCarExport=!0;function py(e,t){return e.useMedium(t),bA}var jf=uy();var fy=function(){},am=Hr.forwardRef(function(e,t){var r=Hr.useRef(null),o=Hr.useState({onScrollCapture:fy,onWheelCapture:fy,onTouchMoveCapture:fy}),i=o[0],a=o[1],s=e.forwardProps,c=e.children,d=e.className,p=e.removeScrollBar,f=e.enabled,m=e.shards,g=e.sideCar,h=e.noIsolation,b=e.inert,y=e.allowPinchZoom,T=e.as,k=T===void 0?"div":T,I=Xf(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),A=g,O=my([r,t]),z=xo(xo({},I),i);return Hr.createElement(Hr.Fragment,null,f&&Hr.createElement(A,{sideCar:jf,removeScrollBar:p,shards:m,noIsolation:h,inert:b,setCallbacks:a,allowPinchZoom:!!y,lockRef:r}),s?Hr.cloneElement(Hr.Children.only(c),xo(xo({},z),{ref:O})):Hr.createElement(k,xo({},z,{className:d,ref:O}),c))});am.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};am.classNames={fullWidth:Al,zeroRight:_l};v();v();var Pt=w(j());v();v();var sc=w(j());v();v();v();var yA=w(j());v();v();var xA;var vA=function(){if(xA)return xA;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function o9(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=vA();return t&&e.setAttribute("nonce",t),e}function n9(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function i9(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var gy=function(){var e=0,t=null;return{add:function(r){e==0&&(t=o9())&&(n9(t,r),i9(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}};var hy=function(){var e=gy();return function(t,r){yA.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}};var lm=function(){var e=hy(),t=function(r){var o=r.styles,i=r.dynamic;return e(o,i),null};return t};v();var a9={left:0,top:0,right:0,gap:0},by=function(e){return parseInt(e||"",10)||0},l9=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],o=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[by(r),by(o),by(i)]},xy=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return a9;var t=l9(e),r=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-r+t[2]-t[0])}};var s9=lm(),lc="data-scroll-locked",c9=function(e,t,r,o){var i=e.left,a=e.top,s=e.right,c=e.gap;return r===void 0&&(r="margin"),`
|
|
21
|
+
.`.concat(cy,` {
|
|
22
|
+
overflow: hidden `).concat(o,`;
|
|
23
|
+
padding-right: `).concat(c,"px ").concat(o,`;
|
|
5
24
|
}
|
|
6
|
-
body {
|
|
7
|
-
overflow: hidden `).concat(
|
|
25
|
+
body[`).concat(lc,`] {
|
|
26
|
+
overflow: hidden `).concat(o,`;
|
|
8
27
|
overscroll-behavior: contain;
|
|
9
|
-
`).concat([
|
|
10
|
-
padding-left: `.concat(
|
|
11
|
-
padding-top: `).concat(
|
|
12
|
-
padding-right: `).concat(
|
|
28
|
+
`).concat([t&&"position: relative ".concat(o,";"),r==="margin"&&`
|
|
29
|
+
padding-left: `.concat(i,`px;
|
|
30
|
+
padding-top: `).concat(a,`px;
|
|
31
|
+
padding-right: `).concat(s,`px;
|
|
13
32
|
margin-left:0;
|
|
14
33
|
margin-top:0;
|
|
15
|
-
margin-right: `).concat(
|
|
16
|
-
`),
|
|
34
|
+
margin-right: `).concat(c,"px ").concat(o,`;
|
|
35
|
+
`),r==="padding"&&"padding-right: ".concat(c,"px ").concat(o,";")].filter(Boolean).join(""),`
|
|
17
36
|
}
|
|
18
37
|
|
|
19
|
-
.`).concat(
|
|
20
|
-
right: `).concat(
|
|
38
|
+
.`).concat(_l,` {
|
|
39
|
+
right: `).concat(c,"px ").concat(o,`;
|
|
21
40
|
}
|
|
22
41
|
|
|
23
|
-
.`).concat(
|
|
24
|
-
margin-right: `).concat(
|
|
42
|
+
.`).concat(Al,` {
|
|
43
|
+
margin-right: `).concat(c,"px ").concat(o,`;
|
|
25
44
|
}
|
|
26
45
|
|
|
27
|
-
.`).concat(
|
|
28
|
-
right: 0 `).concat(
|
|
46
|
+
.`).concat(_l," .").concat(_l,` {
|
|
47
|
+
right: 0 `).concat(o,`;
|
|
29
48
|
}
|
|
30
49
|
|
|
31
|
-
.`).concat(
|
|
32
|
-
margin-right: 0 `).concat(
|
|
50
|
+
.`).concat(Al," .").concat(Al,` {
|
|
51
|
+
margin-right: 0 `).concat(o,`;
|
|
33
52
|
}
|
|
34
53
|
|
|
35
|
-
body {
|
|
36
|
-
`).concat(
|
|
54
|
+
body[`).concat(lc,`] {
|
|
55
|
+
`).concat(dy,": ").concat(c,`px;
|
|
37
56
|
}
|
|
38
|
-
`)},
|
|
39
|
-
.block-interactivity-`.concat(
|
|
40
|
-
.allow-interactivity-`).concat(
|
|
41
|
-
`)},tC=0,Ta=[];function sy(t){var e=Ze.useRef([]),o=Ze.useRef([0,0]),r=Ze.useRef(),n=Ze.useState(tC++)[0],i=Ze.useState(function(){return Yl()})[0],a=Ze.useRef(t);Ze.useEffect(function(){a.current=t},[t]),Ze.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=Kv([t.lockRef.current],(t.shards||[]).map(ly),!0).filter(Boolean);return x.forEach(function(y){return y.classList.add("allow-interactivity-".concat(n))}),function(){document.body.classList.remove("block-interactivity-".concat(n)),x.forEach(function(y){return y.classList.remove("allow-interactivity-".concat(n))})}}},[t.inert,t.lockRef.current,t.shards]);var l=Ze.useCallback(function(x,y){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var w=Dd(x),k=o.current,C="deltaX"in x?x.deltaX:k[0]-w[0],M="deltaY"in x?x.deltaY:k[1]-w[1],_,I=x.target,A=Math.abs(C)>Math.abs(M)?"h":"v";if("touches"in x&&A==="h"&&I.type==="range")return!1;var P=Df(A,I);if(!P)return!0;if(P?_=A:(_=A==="v"?"h":"v",P=Df(A,I)),!P)return!1;if(!r.current&&"changedTouches"in x&&(C||M)&&(r.current=_),!_)return!0;var F=r.current||_;return iy(F,y,x,F==="h"?C:M,!0)},[]),s=Ze.useCallback(function(x){var y=x;if(!(!Ta.length||Ta[Ta.length-1]!==i)){var w="deltaY"in y?ay(y):Dd(y),k=e.current.filter(function(_){return _.name===y.type&&_.target===y.target&&Q4(_.delta,w)})[0];if(k&&k.should){y.cancelable&&y.preventDefault();return}if(!k){var C=(a.current.shards||[]).map(ly).filter(Boolean).filter(function(_){return _.contains(y.target)}),M=C.length>0?l(y,C[0]):!a.current.noIsolation;M&&y.cancelable&&y.preventDefault()}}},[]),c=Ze.useCallback(function(x,y,w,k){var C={name:x,delta:y,target:w,should:k};e.current.push(C),setTimeout(function(){e.current=e.current.filter(function(M){return M!==C})},1)},[]),m=Ze.useCallback(function(x){o.current=Dd(x),r.current=void 0},[]),d=Ze.useCallback(function(x){c(x.type,ay(x),x.target,l(x,t.lockRef.current))},[]),f=Ze.useCallback(function(x){c(x.type,Dd(x),x.target,l(x,t.lockRef.current))},[]);Ze.useEffect(function(){return Ta.push(i),t.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",s,ni),document.addEventListener("touchmove",s,ni),document.addEventListener("touchstart",m,ni),function(){Ta=Ta.filter(function(x){return x!==i}),document.removeEventListener("wheel",s,ni),document.removeEventListener("touchmove",s,ni),document.removeEventListener("touchstart",m,ni)}},[]);var p=t.removeScrollBar,b=t.inert;return Ze.createElement(Ze.Fragment,null,b?Ze.createElement(i,{styles:eC(n)}):null,p?Ze.createElement(Lf,{gapMode:"margin"}):null)}var cy=Sf(Ld,sy);var dy=Rd.forwardRef(function(t,e){return Rd.createElement(Kl,xr({},t,{ref:e,sideCar:cy}))});dy.classNames=Kl.classNames;var Rf=dy;var my="Popover",[uy,HL]=gr(my,[vf]),Nd=vf(),[oC,Sa]=uy(my),rC=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=Nd(e),s=(0,we.useRef)(null),[c,m]=(0,we.useState)(!1),[d=!1,f]=Ea({prop:r,defaultProp:n,onChange:i});return(0,we.createElement)(Ov,l,(0,we.createElement)(oC,{scope:e,contentId:ba(),triggerRef:s,open:d,onOpenChange:f,onOpenToggle:(0,we.useCallback)(()=>f(p=>!p),[f]),hasCustomAnchor:c,onCustomAnchorAdd:(0,we.useCallback)(()=>m(!0),[]),onCustomAnchorRemove:(0,we.useCallback)(()=>m(!1),[]),modal:a},o))};var nC="PopoverTrigger",iC=(0,we.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Sa(nC,o),i=Nd(o),a=Ot(e,n.triggerRef),l=(0,we.createElement)(st.button,ye({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":hy(n.open)},r,{ref:a,onClick:vt(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,we.createElement)(Fv,ye({asChild:!0},i),l)}),py="PopoverPortal",[aC,lC]=uy(py,{forceMount:void 0}),sC=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=Sa(py,e);return(0,we.createElement)(aC,{scope:e,forceMount:o},(0,we.createElement)(ya,{present:o||i.open},(0,we.createElement)($v,{asChild:!0,container:n},r)))},jl="PopoverContent",cC=(0,we.forwardRef)((t,e)=>{let o=lC(jl,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=Sa(jl,t.__scopePopover);return(0,we.createElement)(ya,{present:r||i.open},i.modal?(0,we.createElement)(dC,ye({},n,{ref:e})):(0,we.createElement)(mC,ye({},n,{ref:e})))}),dC=(0,we.forwardRef)((t,e)=>{let o=Sa(jl,t.__scopePopover),r=(0,we.useRef)(null),n=Ot(e,r),i=(0,we.useRef)(!1);return(0,we.useEffect)(()=>{let a=r.current;if(a)return Gv(a)},[]),(0,we.createElement)(Rf,{as:gn,allowPinchZoom:!0},(0,we.createElement)(fy,ye({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:vt(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:vt(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,s=l.button===0&&l.ctrlKey===!0,c=l.button===2||s;i.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:vt(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),mC=(0,we.forwardRef)((t,e)=>{let o=Sa(jl,t.__scopePopover),r=(0,we.useRef)(!1);return(0,we.createElement)(fy,ye({},t,{ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var i;if((i=t.onCloseAutoFocus)===null||i===void 0||i.call(t,n),!n.defaultPrevented){var a;r.current||(a=o.triggerRef.current)===null||a===void 0||a.focus(),n.preventDefault()}r.current=!1},onInteractOutside:n=>{var i,a;(i=t.onInteractOutside)===null||i===void 0||i.call(t,n),n.defaultPrevented||(r.current=!0);let l=n.target;((a=o.triggerRef.current)===null||a===void 0?void 0:a.contains(l))&&n.preventDefault()}}))}),fy=(0,we.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:c,onInteractOutside:m,...d}=t,f=Sa(jl,o),p=Nd(o);return J2(),(0,we.createElement)(rv,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,we.createElement)(Z2,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:m,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1)},(0,we.createElement)(Bv,ye({"data-state":hy(f.open),role:"dialog",id:f.contentId},p,d,{ref:e,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var uC=(0,we.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Nd(o);return(0,we.createElement)(zv,ye({},n,r,{ref:e}))});function hy(t){return t?"open":"closed"}var Od=rC;var Fd=iC,gy=sC,Bd=cC;var by=uC;h();var Jo=v(H(),1);h();var $d=v(H(),1),Ey=v(pr(),1);h();var Nf=v(H(),1),Of=Nf.default.createContext(null),ke=()=>Nf.default.useContext(Of);h();var Xl=v(H(),1);var zd=t=>{let[e,o]=(0,Xl.useState)(null),r=Me(),{theme:n}=ke(),{container:i}=Mt();return(0,Xl.useLayoutEffect)(()=>{e&&(e.className="",e.classList.add("excalidraw",...t?.className?.split(/\s+/)||[]),e.classList.toggle("excalidraw--mobile",r.editor.isMobile),e.classList.toggle("theme--dark",n==="dark"))},[e,n,r.editor.isMobile,t?.className]),(0,Xl.useLayoutEffect)(()=>{let a=t?.parentSelector?i?.querySelector(t.parentSelector):document.body;if(!a)return;let l=document.createElement("div");return a.appendChild(l),o(l),()=>{a.removeChild(l)}},[i,t?.parentSelector]),e};h();var vy=v(H(),1);function ka(t,e,o){(0,vy.useEffect)(()=>{function r(n){let i=n;if(!t.current)return;let a=o?.(i,t.current);if(a===!0)return;if(a===!1)return e(i);t.current.contains(i.target)||!document.documentElement.contains(i.target)||i.target.closest("[data-radix-portal]")||i.target===document.documentElement&&document.body.style.pointerEvents==="none"||i.target.closest("[data-prevent-outside-click]")||e(i)}return document.addEventListener("pointerdown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("pointerdown",r),document.removeEventListener("touchstart",r)}},[t,e,o])}h();var yy=v(H(),1),Hd=t=>{let e=(0,yy.useRef)(t);return Object.assign(e.current,t),e.current};var Cy=v(S(),1),yn=$e(null),wy=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=zd({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=ke(),a=En(),l=so(),s=xe(a,i),c=Hd({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:s}),{container:m}=Mt();(0,$d.useEffect)(()=>{let f=d.current;if(!f||!l.canvas||!n)return;let p=!1,b=l.canvas.getContext("2d"),x=({clientX:I,clientY:A})=>{let P=b.getImageData((I-i.offsetLeft)*window.devicePixelRatio,(A-i.offsetTop)*window.devicePixelRatio,1,1).data;return jg(P[0],P[1],P[2])},y=({clientX:I,clientY:A,altKey:P})=>{f.style.top=`${A+20}px`,f.style.left=`${I+20}px`;let F=x({clientX:I,clientY:A});p&&c.onChange(r,F,c.selectedElements,{altKey:P}),f.style.background=F},w=()=>{c.onCancel()},k=(I,A)=>{c.onSelect(I,A)},C=I=>{p=!0,I.stopImmediatePropagation()},M=I=>{p=!1,m?.focus(),I.stopImmediatePropagation(),I.preventDefault(),k(x(I),I)},_=I=>{I.key===T.ESCAPE&&(I.preventDefault(),I.stopImmediatePropagation(),w())};return n.tabIndex=-1,n.focus(),y({clientX:c.app.lastViewportPosition.x,clientY:c.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",_),n.addEventListener("pointerdown",C),n.addEventListener("pointerup",M),window.addEventListener("pointermove",y,{passive:!0}),window.addEventListener("blur",w),()=>{p=!1,n.removeEventListener("keydown",_),n.removeEventListener("pointerdown",C),n.removeEventListener("pointerup",M),window.removeEventListener("pointermove",y),window.removeEventListener("blur",w)}},[c,l.canvas,n,r,m,i.offsetLeft,i.offsetTop]);let d=(0,$d.useRef)(null);return ka(d,()=>{t()},f=>!!f.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,Ey.createPortal)((0,Cy.jsx)("div",{ref:d,className:"excalidraw-eye-dropper-preview"}),n):null};var vr=v(S(),1),Ty=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=Me(),[i,a]=(0,Jo.useState)(t),[l,s]=Ee(_o);(0,Jo.useEffect)(()=>{a(t)},[t]);let c=(0,Jo.useCallback)(b=>{let x=b.toLowerCase(),y=Sy(x);y&&e(y),a(x)},[e]),m=(0,Jo.useRef)(null),d=(0,Jo.useRef)(null);(0,Jo.useEffect)(()=>{m.current&&m.current.focus()},[l]);let[f,p]=Ee(yn,Pe);return(0,Jo.useEffect)(()=>()=>{p(null)},[p]),(0,vr.jsxs)("div",{className:"color-picker__input-label",children:[(0,vr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,vr.jsx)("input",{ref:l==="hex"?m:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{c(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>s("hex"),onKeyDown:b=>{b.key!==T.TAB&&(b.key===T.ESCAPE&&d.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,vr.jsxs)(vr.Fragment,{children:[(0,vr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,vr.jsx)("div",{ref:d,className:z("excalidraw-eye-dropper-trigger",{selected:f}),onClick:()=>p(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${T.I.toLocaleUpperCase()} or ${N("Alt")} `,children:Qx})]})]})};var Iy=v(H(),1);var _t=v(S(),1),ky=t=>{let e=new Option().style;return e.color=t,!!e.color},Sy=t=>Gn(t)?t:ky(`#${t}`)?`#${t}`:ky(t)?t:null,pC=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Sr,updateData:a})=>{let[,l]=Ee(_o),[s,c]=Ee(yn,Pe),{container:m}=Mt(),d=Me(),f=(0,_t.jsxs)("div",{children:[(0,_t.jsx)(fa,{children:g("colorPicker.hexCode")}),(0,_t.jsx)(Ty,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),p=(0,Iy.useRef)(null),b=()=>{p.current?.querySelector(".color-picker-content")?.focus()};return(0,_t.jsx)(gy,{container:m,children:(0,_t.jsxs)(Bd,{ref:p,className:"focus-visible-none","data-prevent-outside-click":!0,onFocusOutside:x=>{b(),x.preventDefault()},onPointerDownOutside:x=>{s&&x.preventDefault()},onCloseAutoFocus:x=>{x.stopPropagation(),x.preventDefault(),m&&!S1(document.activeElement)&&m.focus(),a({openPopup:null}),l(null)},side:d.editor.isMobile&&!d.viewport.isLandscape?"bottom":"right",align:d.editor.isMobile&&!d.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-layerUI)",backgroundColor:"var(--popup-bg-color)",maxWidth:"208px",maxHeight:window.innerHeight,padding:"12px",borderRadius:"8px",boxSizing:"border-box",overflowY:"auto",boxShadow:"0px 7px 14px rgba(0, 0, 0, 0.05), 0px 0px 3.12708px rgba(0, 0, 0, 0.0798), 0px 0px 0.931014px rgba(0, 0, 0, 0.1702)"},children:[i?(0,_t.jsx)(H2,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{c(y=>x?(y=y||{keepOpenOnAlt:!0,onSelect:o,colorPickerType:t},y.keepOpenOnAlt=!0,y):x===!1||y?null:{keepOpenOnAlt:!1,onSelect:o,colorPickerType:t})},onEscape:x=>{s?c(null):wo(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:f}):f,(0,_t.jsx)(by,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},fC=({label:t,color:e,type:o})=>(0,_t.jsx)(Fd,{type:"button",className:z("color-picker__button active-color",{"is-transparent":e==="transparent"||!e}),"aria-label":t,style:e?{"--swatch-color":e}:void 0,title:o==="elementStroke"?g("labels.showStroke"):g("labels.showBackground"),children:(0,_t.jsx)("div",{className:"color-picker__button-outline"})}),ql=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Sr,topPicks:a,updateData:l,appState:s})=>(0,_t.jsx)("div",{children:(0,_t.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,_t.jsx)(A2,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,_t.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,_t.jsxs)(Od,{open:s.openPopup===t,onOpenChange:c=>{l({openPopup:c?t:null})},children:[(0,_t.jsx)(fC,{color:e,label:r,type:t}),s.openPopup===t&&(0,_t.jsx)(pC,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var Cn=v(H(),1);h();var wn=v(H(),1);var My=v(pr(),1);var _y=v(S(),1),Ud=({children:t,left:e,top:o,onCloseRequest:r,fitInViewport:n=!1,offsetLeft:i=0,offsetTop:a=0,viewportWidth:l=window.innerWidth,viewportHeight:s=window.innerHeight})=>{let c=(0,wn.useRef)(null);(0,wn.useEffect)(()=>{let d=c.current;if(!d)return;d.contains(document.activeElement)||d.focus();let f=p=>{if(p.key===T.TAB){let b=dl(d),{activeElement:x}=document,y=b.findIndex(w=>w===x);x===d?(p.shiftKey?b[b.length-1]?.focus():b[0].focus(),p.preventDefault(),p.stopImmediatePropagation()):y===0&&p.shiftKey?(b[b.length-1]?.focus(),p.preventDefault(),p.stopImmediatePropagation()):y===b.length-1&&!p.shiftKey&&(b[0]?.focus(),p.preventDefault(),p.stopImmediatePropagation())}};return d.addEventListener("keydown",f),()=>d.removeEventListener("keydown",f)},[]);let m=(0,wn.useRef)(null);return(0,wn.useLayoutEffect)(()=>{if(n&&c.current&&o!=null&&e!=null){let d=c.current,{width:f,height:p}=d.getBoundingClientRect();if(m.current?.top===o&&m.current?.left===e)return;m.current={top:o,left:e},f>=l?(d.style.width=`${l}px`,d.style.left="0px",d.style.overflowX="scroll"):e+f-i>l?d.style.left=`${l-f-10}px`:d.style.left=`${e}px`,p>=s?(d.style.height=`${s-20}px`,d.style.top="10px",d.style.overflowY="scroll"):o+p-a>s?d.style.top=`${s-p}px`:d.style.top=`${o}px`}},[o,e,n,l,s,i,a]),(0,wn.useEffect)(()=>{if(r){let d=f=>{c.current?.contains(f.target)||(0,My.unstable_batchedUpdates)(()=>r(f))};return document.addEventListener("pointerdown",d,!1),()=>document.removeEventListener("pointerdown",d,!1)}},[r]),(0,_y.jsx)("div",{className:"popover",ref:c,tabIndex:-1,children:t})};var to=v(S(),1);function hC({options:t,value:e,label:o,onChange:r,onClose:n}){let i=Cn.default.useRef(),a=Cn.default.useRef(),l=Cn.default.useRef(null);return Cn.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,to.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:c=>{let m=t.find(d=>d.keyBinding===c.key.toLowerCase());if(!(c.metaKey||c.altKey||c.ctrlKey)&&m){let d=t.indexOf(m);l.current.children[d].focus(),c.preventDefault()}else if(c.key===T.TAB)setTimeout(()=>{let d=a.current,f=document.activeElement;d!==f&&n()},0);else if(Fi(c.key)){let{activeElement:d}=document,f=Hr().rtl,p=Array.prototype.indexOf.call(l.current.children,d);if(p!==-1){let b=t.length,x=p;switch(c.key){case(f?T.ARROW_LEFT:T.ARROW_RIGHT):case T.ARROW_DOWN:{x=(p+1)%b;break}case(f?T.ARROW_RIGHT:T.ARROW_LEFT):case T.ARROW_UP:{x=(b+p-1)%b;break}}l.current.children[x].focus()}c.preventDefault()}else(c.key===T.ESCAPE||c.key===T.ENTER)&&(c.preventDefault(),n());c.nativeEvent.stopImmediatePropagation(),c.stopPropagation()},children:(0,to.jsx)("div",{className:"picker-content",ref:l,children:t.map((c,m)=>(0,to.jsxs)("button",{className:z("picker-option",{active:e===c.value}),onClick:d=>{d.currentTarget.focus(),r(c.value)},title:`${c.text} ${c.keyBinding&&`\u2014 ${c.keyBinding.toUpperCase()}`}`,"aria-label":c.text||"none","aria-keyshortcuts":c.keyBinding||void 0,ref:d=>{d&&m===0&&(i.current=d),d&&c.value===e&&(a.current=d)},onFocus:()=>{r(c.value)},children:[c.icon,c.keyBinding&&(0,to.jsx)("span",{className:"picker-keybinding",children:c.keyBinding})]},c.text))})})}function Ff({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=Cn.default.useState(!1),l=Cn.default.useRef(null),s=Hr().rtl;return(0,to.jsxs)("div",{children:[(0,to.jsx)("button",{name:n,className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(c=>c.value===t)?.icon}),(0,to.jsx)(Cn.default.Suspense,{fallback:"",children:i?(0,to.jsxs)(to.Fragment,{children:[(0,to.jsx)(Ud,{onCloseRequest:c=>c.target!==l.current&&a(!1),...s?{right:5.5}:{left:-5.5},children:(0,to.jsx)(hC,{options:o.filter(c=>c.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,to.jsx)("div",{className:"picker-triangle"})]}):null})]})}var ae=v(S(),1),Ly=.1,fo=(t,e,o,r=!1)=>{let n=Ie(xe(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},co=function(t,e,o,r,n){let i=e.editingElement,a=be(t),l=null;return i&&(l=o(i)),l||(Oe(a,e)?l=v0(r===!0?a:a.filter(c=>r(c)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},gC=(t,e)=>bt(e)?e:te(e,{x:t.textAlign==="left"?t.x:t.x+(t.width-e.width)/(t.textAlign==="center"?2:1),y:t.y+(t.height-e.height)/2},!1),Bf=(t,e,o,r,n)=>{let i=new Set;return{elements:fo(t,e,a=>{if(le(a)){let l=r(a);i.add(l);let s=ue(a,{fontSize:l});return $t(s,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),s=gC(a,s),s}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},commitToHistory:!0}},bC=$({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:fo(t,e,r=>bl(r.type)?ue(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},commitToHistory:!!o.currentItemStrokeColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,ae.jsx)(ql,{topPicks:Bs,palette:Yg,type:"elementStroke",label:g("labels.stroke"),color:co(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),xC=$({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:fo(t,e,r=>ue(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},commitToHistory:!!o.currentItemBackgroundColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,ae.jsx)(ql,{topPicks:zs,palette:Zg,type:"elementBackground",label:g("labels.background"),color:co(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),vC=$({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(t,e,o,r)=>(ve("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:fo(t,e,n=>ue(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=xe(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.fill")}),(0,ae.jsx)(fr,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${N("Alt-Click")})`,icon:n?gx:bx,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:xx,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:vx,testId:"fill-solid"}],value:co(t,e,i=>i.fillStyle,i=>i.hasOwnProperty("fillStyle"),i=>i?null:e.currentItemFillStyle),onClick:(i,a)=>{let l=a.altKey&&i==="hachure"&&r.every(s=>s.fillStyle==="hachure")?"zigzag":i;o(l)}})]})}}),yC=$({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:fo(t,e,r=>ue(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.strokeWidth")}),(0,ae.jsx)(fr,{group:"stroke-width",options:[{value:js.thin,text:g("labels.thin"),icon:zp,testId:"strokeWidth-thin"},{value:js.bold,text:g("labels.bold"),icon:yx,testId:"strokeWidth-bold"},{value:js.extraBold,text:g("labels.extraBold"),icon:Ex,testId:"strokeWidth-extraBold"}],value:co(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),EC=$({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:fo(t,e,r=>ue(r,{seed:$1(),roughness:o})),appState:{...e,currentItemRoughness:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.sloppiness")}),(0,ae.jsx)(fr,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:Tx},{value:1,text:g("labels.artist"),icon:Sx},{value:2,text:g("labels.cartoonist"),icon:kx}],value:co(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),AD=$({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:fo(t,e,r=>ue(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.strokeStyle")}),(0,ae.jsx)(fr,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:zp},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:wx},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:Cx}],value:co(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),wC=$({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(t,e,o)=>({elements:fo(t,e,r=>ue(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ae.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,ae.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:co(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),CC=$({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(t,e,o,r)=>Bf(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.fontSize")}),(0,ae.jsx)(fr,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:Fx,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:Bx,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:zx,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:Hx,testId:"fontSize-veryLarge"}],value:co(t,e,n=>{if(le(n))return n.fontSize;let i=lt(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>le(n)||lt(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||kr),onChange:n=>o(n)})]})}),zf=$({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:$p,trackEvent:!1,perform:(t,e,o,r)=>Bf(t,e,r,n=>Math.round(1/(1+Ly)*n.fontSize)),keyTest:t=>t[T.CTRL_OR_CMD]&&t.shiftKey&&(t.key===T.CHEVRON_LEFT||t.key===T.COMMA)}),Hf=$({name:"increaseFontSize",label:"labels.increaseFontSize",icon:$p,trackEvent:!1,perform:(t,e,o,r)=>Bf(t,e,r,n=>Math.round(n.fontSize*(1+Ly))),keyTest:t=>t[T.CTRL_OR_CMD]&&t.shiftKey&&(t.key===T.CHEVRON_RIGHT||t.key===T.PERIOD)}),TC=$({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:fo(t,e,n=>{if(le(n)){let i=ue(n,{fontFamily:o,lineHeight:Pr(o)});return $t(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:nl.Virgil,text:g("labels.handDrawn"),icon:na,testId:"font-family-virgil"},{value:nl.Helvetica,text:g("labels.normal"),icon:$x,testId:"font-family-normal"},{value:nl.Cascadia,text:g("labels.code"),icon:Ux,testId:"font-family-code"}];return(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.fontFamily")}),(0,ae.jsx)(fr,{group:"font-family",options:n,value:co(t,e,i=>{if(le(i))return i.fontFamily;let a=lt(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>le(i)||lt(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||_i),onChange:i=>o(i)})]})}}),SC=$({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(t,e,o,r)=>({elements:fo(t,e,n=>{if(le(n)){let i=ue(n,{textAlign:o});return $t(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.textAlign")}),(0,ae.jsx)(fr,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:Wx,testId:"align-left"},{value:"center",text:g("labels.center"),icon:Gx,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:Vx,testId:"align-right"}],value:co(t,e,i=>{if(le(i))return i.textAlign;let a=lt(i,n);return a?a.textAlign:null},i=>le(i)||lt(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),kC=$({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:fo(t,e,n=>{if(le(n)){let i=ue(n,{verticalAlign:o});return $t(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,ae.jsx)("fieldset",{children:(0,ae.jsx)(fr,{group:"text-align",options:[{value:vo.TOP,text:g("labels.alignTop"),icon:(0,ae.jsx)(Kx,{theme:e.theme}),testId:"align-top"},{value:vo.MIDDLE,text:g("labels.centerVertically"),icon:(0,ae.jsx)(Zx,{theme:e.theme}),testId:"align-middle"},{value:vo.BOTTOM,text:g("labels.alignBottom"),icon:(0,ae.jsx)(Yx,{theme:e.theme}),testId:"align-bottom"}],value:co(t,e,n=>{if(le(n)&&n.containerId)return n.verticalAlign;let i=lt(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>le(n)||lt(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:vo.MIDDLE),onChange:n=>o(n)})})}),LD=$({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(t,e,o)=>({elements:fo(t,e,r=>ue(r,{roundness:o==="round"?{type:Ni(r.type)?yo.ADAPTIVE_RADIUS:yo.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=Qi(be(t),e).some(i=>i.roundness?.type===yo.LEGACY);return(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.edges")}),(0,ae.jsx)(fr,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:Ix},{value:"round",text:g("labels.round"),icon:Mx}],value:co(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),Ay=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:_x},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,ae.jsx)(Ax,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,ae.jsx)(Px,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,ae.jsx)(Hp,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,ae.jsx)(Hp,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,ae.jsx)(Lx,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,ae.jsx)(Dx,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,ae.jsx)(Rx,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,ae.jsx)(Nx,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,ae.jsx)(Ox,{flip:t}),keyBinding:null,showInPicker:!1}],PD=$({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(t,e,o)=>({elements:fo(t,e,r=>{if(Re(r)){let{position:n,type:i}=o;if(n==="start")return ue(r,{startArrowhead:i});if(n==="end")return ue(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Hr().rtl;return(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.arrowheads")}),(0,ae.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,ae.jsx)(Ff,{label:"arrowhead_start",options:Ay(!r),value:co(t,e,n=>Re(n)&&Oi(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,ae.jsx)(Ff,{label:"arrowhead_end",group:"arrowheads",options:Ay(!!r),value:co(t,e,n=>Re(n)&&Oi(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var Py=v(H(),1),Dy=v(S(),1),Ia=()=>{let t=document.querySelector(".excalidraw-tooltip");if(t)return t;let e=document.createElement("div");return document.body.appendChild(e),e.classList.add("excalidraw-tooltip"),e},$f=(t,e,o="bottom")=>{let r=t.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight,a=5,l=e.left+e.width/2-r.width/2;l<0?l=a:l+r.width>=n&&(l=n-r.width-a);let s;o==="bottom"?(s=e.top+e.height+a,s+r.height>=i&&(s=e.top-r.height-a)):(s=e.top-r.height-a,s<0&&(s=e.top+e.height+a)),Object.assign(t.style,{top:`${s}px`,left:`${l}px`})},IC=(t,e,o,r)=>{e.classList.add("excalidraw-tooltip--visible"),e.style.minWidth=r?"50ch":"10ch",e.style.maxWidth=r?"50ch":"15ch",e.textContent=o;let n=t.getBoundingClientRect();$f(e,n)},ho=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,Py.useEffect)(()=>()=>Ia().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,Dy.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>IC(i.currentTarget,Ia(),e,o),onPointerLeave:()=>Ia().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var ai=v(S(),1),MC=$({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.changeViewBackgroundColor&&!e.viewModeEnabled,perform:(t,e,o)=>({appState:{...e,...o},commitToHistory:!!o.viewBackgroundColor}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,ai.jsx)(ql,{palette:null,topPicks:Hs,label:g("labels.canvasBackground"),type:"canvasBackground",color:e.viewBackgroundColor,onChange:n=>o({viewBackgroundColor:n}),"data-testid":"canvas-background-picker",elements:t,appState:e,updateData:o})}),Vr=$({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:Xo,trackEvent:{category:"canvas"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.clearCanvas&&!e.viewModeEnabled,perform:(t,e,o,r)=>(r.imageCache.clear(),{elements:t.map(n=>ue(n,{isDeleted:!0})),appState:{...$i(),files:{},theme:e.theme,penMode:e.penMode,penDetected:e.penDetected,exportBackground:e.exportBackground,exportEmbedScene:e.exportEmbedScene,gridSize:e.gridSize,showStats:e.showStats,pasteDialog:e.pasteDialog,activeTool:e.activeTool.type==="image"?{...e.activeTool,type:"selection"}:e.activeTool},commitToHistory:!0})}),Wd=$({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Cp,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Br({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Fr(e.zoom.value+$n)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t})=>(0,ai.jsx)(se,{type:"button",className:"zoom-in-button zoom-button",icon:Cp,title:`${g("buttons.zoomIn")} \u2014 ${N("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.EQUAL||t.code===fe.NUM_ADD)&&(t[T.CTRL_OR_CMD]||t.shiftKey)}),Gd=$({name:"zoomOut",label:"buttons.zoomOut",icon:Tp,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Br({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Fr(e.zoom.value-$n)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t})=>(0,ai.jsx)(se,{type:"button",className:"zoom-out-button zoom-button",icon:Tp,title:`${g("buttons.zoomOut")} \u2014 ${N("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.MINUS||t.code===fe.NUM_SUBTRACT)&&(t[T.CTRL_OR_CMD]||t.shiftKey)}),_C=$({name:"resetZoom",label:"buttons.resetZoom",icon:ex,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Br({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Fr(1)},e),userToFollow:null},commitToHistory:!1}),PanelComponent:({updateData:t,appState:e})=>(0,ai.jsx)(ho,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,ai.jsxs)(se,{type:"button",className:"reset-zoom-button zoom-button",title:g("buttons.resetZoom"),"aria-label":g("buttons.resetZoom"),onClick:()=>{t(null)},children:[(e.zoom.value*100).toFixed(0),"%"]})}),keyTest:t=>(t.code===fe.ZERO||t.code===fe.NUM_ZERO)&&(t[T.CTRL_OR_CMD]||t.shiftKey)}),AC=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,s=i-r,c=e.height/s,m=Math.min(l,c),d=Math.floor(m/$n)*$n;return Math.min(Math.max(d,d1),1)},Ry=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,s=(n+a)/2,c=(i+l)/2,m,d,f;if(o){let p=a-n,b=l-i;m=Math.min(e.width/p,e.height/b)*Math.min(1,Math.max(r,.1)),m=Math.min(Math.max(m,.1),30);let x=e.width;if(e.openSidebar){let w=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+w:e.width-w}d=x/2*(1/m)-s,f=e.height/2*(1/m)-c}else{m=AC(t,{width:e.width,height:e.height});let p=y0({scenePoint:{x:s,y:c},viewportDimensions:{width:e.width,height:e.height},zoom:{value:m}});d=p.scrollX,f=p.scrollY}return{appState:{...e,scrollX:d,scrollY:f,zoom:{value:m}},commitToHistory:!1}},Jl=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ke(be(t));return Ry({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},nR=$({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:pd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return Jl({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===fe.TWO&&t.shiftKey&&!t.altKey&&!t[T.CTRL_OR_CMD]}),iR=$({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:pd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return Jl({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===fe.THREE&&t.shiftKey&&!t.altKey&&!t[T.CTRL_OR_CMD]}),LC=$({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:pd,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>Jl({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===fe.ONE&&t.shiftKey&&!t.altKey&&!t[T.CTRL_OR_CMD]}),ii=$({name:"toggleTheme",label:(t,e)=>e.theme==="dark"?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:t=>t.theme===Je.LIGHT?Qc:ed,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===Je.LIGHT?Je.DARK:Je.LIGHT)},commitToHistory:!1}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===fe.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),aR=$({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return So(e)?o=ot(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=ot(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},commitToHistory:!0}},keyTest:t=>t.key===T.E}),Ny=$({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:ad,viewMode:!1,perform:(t,e,o,r)=>{let n;return Dr(e)?n=ot(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=ot(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),Ne(r.interactiveCanvas,De.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},commitToHistory:!0}},keyTest:t=>!t.altKey&&!t[T.CTRL_OR_CMD]&&t.key===T.H});h();var Oy=v(S(),1),Lo=$({name:"finalize",label:"",trackEvent:!1,perform:(t,e,o,{interactiveCanvas:r,focusContainer:n,scene:i})=>{let a=i.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:d,startBindingElement:f,endBindingElement:p}=e.editingLinearElement,b=he.getElement(d,a);if(b)return _r(b)&&dc(b,f,p,a),{elements:b.points.length<2||jn(b)?t.filter(x=>x.id!==b.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null},commitToHistory:!0}}let l=t,s=e.pendingImageElementId&&i.getElement(e.pendingImageElementId);s&&te(s,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&n();let c=e.multiElement?e.multiElement:e.editingElement?.type==="freedraw"?e.editingElement:null;if(c){if(c.type!=="freedraw"&&e.lastPointerDownWith!=="touch"){let{points:f,lastCommittedPoint:p}=c;(!p||f[f.length-1]!==p)&&te(c,{points:c.points.slice(0,-1)})}jn(c)&&(l=l.filter(f=>f.id!==c.id));let d=fl(c.points,e.zoom.value);if((c.type==="line"||c.type==="freedraw")&&d){let f=c.points,p=f[0];te(c,{points:f.map((b,x)=>x===f.length-1?[p[0],p[1]]:b)})}if(_r(c)&&!d&&c.points.length>1){let[f,p]=he.getPointAtIndexGlobalCoordinates(c,-1,Ie(t));vl(c,e,ao.getScene(c),{x:f,y:p},a)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!c)&&ko(r);let m;return e.activeTool.type==="eraser"?m=ot(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=ot(e,{type:"selection"}),{elements:l,appState:{...e,cursorButton:"up",activeTool:(e.activeTool.locked||e.activeTool.type==="freedraw")&&c?e.activeTool:m,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:c&&!e.activeTool.locked&&e.activeTool.type!=="freedraw"?{...e.selectedElementIds,[c.id]:!0}:e.selectedElementIds,selectedLinearElement:c&&Re(c)?new he(c):e.selectedLinearElement,pendingImageElementId:null},commitToHistory:e.activeTool.type==="freedraw"}},keyTest:(t,e)=>t.key===T.ESCAPE&&(e.editingLinearElement!==null||!e.draggingElement&&e.multiElement===null)||(t.key===T.ESCAPE||t.key===T.ENTER)&&e.multiElement!==null,PanelComponent:({appState:t,updateData:e,data:o})=>(0,Oy.jsx)(se,{type:"button",icon:mx,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var Fy=v(H(),1);var Ql=v(S(),1),By=t=>{let{id:e}=Mt(),[o,r]=(0,Fy.useState)(t.value),n=a=>{t.ignoreFocus||_1(a.target);let l=a.target.value;l!==t.value&&t.onChange(l)},i=a=>{if(a.key===T.ENTER){if(a.preventDefault(),a.nativeEvent.isComposing||a.keyCode===229)return;a.currentTarget.blur()}};return(0,Ql.jsxs)("div",{className:"ProjectName",children:[(0,Ql.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,Ql.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var Ma=v(S(),1),Hy=t=>{let e=t.title||(t.value==="dark"?g("buttons.lightMode"):g("buttons.darkMode"));return(0,Ma.jsx)(se,{type:"icon",icon:t.value===Je.LIGHT?zy.MOON:zy.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===Je.DARK?Je.LIGHT:Je.DARK),"data-testid":"toggle-dark-mode"})},zy={SUN:(0,Ma.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ma.jsx)("path",{fill:"currentColor",d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"})}),MOON:(0,Ma.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ma.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})};h();var li=(t,{selectedElementIds:e},o)=>{t=be(t);let r=o&&Oe(t,{selectedElementIds:e}),n=null,i=r?xe(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&Te(i[0])?(n=i[0],i=Fc(t,n)):i.length>1&&(i=xe(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:sr(i)}},si=async(t,e,o,r,{exportBackground:n,exportPadding:i=on,viewBackgroundColor:a,name:l=o.name||y1,fileHandle:s=null,exportingFrame:c=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let d=Ac(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:c});if(t==="svg")return qu(d.then(f=>new Blob([f.outerHTML],{type:Pt.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:s});if(t==="clipboard-svg"){let f=await d.then(p=>p.outerHTML);try{await Zi(f)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let m=jb(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:c});if(t==="png"){let d=Or(m);return o.exportEmbedScene&&(d=d.then(f=>import("./excalidraw-assets/image-EFCJDJH3.js").then(({encodePngMetadata:p})=>p({blob:f,metadata:rp(e,o,r,"local")})))),qu(d,{description:"Export to PNG",name:l,extension:"png",fileHandle:s})}else if(t==="clipboard")try{let d=Or(m);await t0(d)}catch(d){throw console.warn(d),d.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):en&&d.name==="TypeError"?new Error(`${g("alerts.couldNotCopyToClipboard")}
|
|
57
|
+
`)},EA=function(){var e=parseInt(document.body.getAttribute(lc)||"0",10);return isFinite(e)?e:0},d9=function(){sc.useEffect(function(){return document.body.setAttribute(lc,(EA()+1).toString()),function(){var e=EA()-1;e<=0?document.body.removeAttribute(lc):document.body.setAttribute(lc,e.toString())}},[])},vy=function(e){var t=e.noRelative,r=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;d9();var a=sc.useMemo(function(){return xy(i)},[i]);return sc.createElement(s9,{styles:c9(a,!t,i,r?"":"!important")})};v();var yy=!1;if(typeof window<"u")try{sm=Object.defineProperty({},"passive",{get:function(){return yy=!0,!0}}),window.addEventListener("test",sm,sm),window.removeEventListener("test",sm,sm)}catch{yy=!1}var sm,kl=yy?{passive:!1}:!1;v();var m9=function(e){return e.tagName==="TEXTAREA"},wA=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!m9(e)&&r[t]==="visible")},u9=function(e){return wA(e,"overflowY")},p9=function(e){return wA(e,"overflowX")},Ey=function(e,t){var r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=SA(e,r);if(o){var i=TA(e,r),a=i[1],s=i[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==document.body);return!1},f9=function(e){var t=e.scrollTop,r=e.scrollHeight,o=e.clientHeight;return[t,r,o]},g9=function(e){var t=e.scrollLeft,r=e.scrollWidth,o=e.clientWidth;return[t,r,o]},SA=function(e,t){return e==="v"?u9(t):p9(t)},TA=function(e,t){return e==="v"?f9(t):g9(t)},h9=function(e,t){return e==="h"&&t==="rtl"?-1:1},CA=function(e,t,r,o,i){var a=h9(e,window.getComputedStyle(t).direction),s=a*o,c=r.target,d=t.contains(c),p=!1,f=s>0,m=0,g=0;do{var h=TA(e,c),b=h[0],y=h[1],T=h[2],k=y-T-a*b;(b||k)&&SA(e,c)&&(m+=k,g+=b),c=c.parentNode}while(!d&&c!==document.body||d&&(t.contains(c)||t===c));return(f&&(i&&m===0||!i&&s>m)||!f&&(i&&g===0||!i&&-s>g))&&(p=!0),p};var Jf=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},IA=function(e){return[e.deltaX,e.deltaY]},_A=function(e){return e&&"current"in e?e.current:e},b9=function(e,t){return e[0]===t[0]&&e[1]===t[1]},x9=function(e){return`
|
|
58
|
+
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
59
|
+
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
60
|
+
`)},v9=0,cc=[];function AA(e){var t=Pt.useRef([]),r=Pt.useRef([0,0]),o=Pt.useRef(),i=Pt.useState(v9++)[0],a=Pt.useState(function(){return lm()})[0],s=Pt.useRef(e);Pt.useEffect(function(){s.current=e},[e]),Pt.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=uA([e.lockRef.current],(e.shards||[]).map(_A),!0).filter(Boolean);return y.forEach(function(T){return T.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(T){return T.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var c=Pt.useCallback(function(y,T){if("touches"in y&&y.touches.length===2)return!s.current.allowPinchZoom;var k=Jf(y),I=r.current,A="deltaX"in y?y.deltaX:I[0]-k[0],O="deltaY"in y?y.deltaY:I[1]-k[1],z,L=y.target,F=Math.abs(A)>Math.abs(O)?"h":"v";if("touches"in y&&F==="h"&&L.type==="range")return!1;var D=Ey(F,L);if(!D)return!0;if(D?z=F:(z=F==="v"?"h":"v",D=Ey(F,L)),!D)return!1;if(!o.current&&"changedTouches"in y&&(A||O)&&(o.current=z),!z)return!0;var V=o.current||z;return CA(V,T,y,V==="h"?A:O,!0)},[]),d=Pt.useCallback(function(y){var T=y;if(!(!cc.length||cc[cc.length-1]!==a)){var k="deltaY"in T?IA(T):Jf(T),I=t.current.filter(function(z){return z.name===T.type&&z.target===T.target&&b9(z.delta,k)})[0];if(I&&I.should){T.cancelable&&T.preventDefault();return}if(!I){var A=(s.current.shards||[]).map(_A).filter(Boolean).filter(function(z){return z.contains(T.target)}),O=A.length>0?c(T,A[0]):!s.current.noIsolation;O&&T.cancelable&&T.preventDefault()}}},[]),p=Pt.useCallback(function(y,T,k,I){var A={name:y,delta:T,target:k,should:I};t.current.push(A),setTimeout(function(){t.current=t.current.filter(function(O){return O!==A})},1)},[]),f=Pt.useCallback(function(y){r.current=Jf(y),o.current=void 0},[]),m=Pt.useCallback(function(y){p(y.type,IA(y),y.target,c(y,e.lockRef.current))},[]),g=Pt.useCallback(function(y){p(y.type,Jf(y),y.target,c(y,e.lockRef.current))},[]);Pt.useEffect(function(){return cc.push(a),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:g}),document.addEventListener("wheel",d,kl),document.addEventListener("touchmove",d,kl),document.addEventListener("touchstart",f,kl),function(){cc=cc.filter(function(y){return y!==a}),document.removeEventListener("wheel",d,kl),document.removeEventListener("touchmove",d,kl),document.removeEventListener("touchstart",f,kl)}},[]);var h=e.removeScrollBar,b=e.inert;return Pt.createElement(Pt.Fragment,null,b?Pt.createElement(a,{styles:x9(i)}):null,h?Pt.createElement(vy,{gapMode:"margin"}):null)}var kA=py(jf,AA);var MA=Qf.forwardRef(function(e,t){return Qf.createElement(am,xo({},e,{ref:t,sideCar:kA}))});MA.classNames=am.classNames;var wy=MA;var PA="Popover",[LA,iX]=Xn(PA,[ly]),eg=ly(),[y9,dc]=LA(PA),E9=e=>{let{__scopePopover:t,children:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,c=eg(t),d=(0,Ze.useRef)(null),[p,f]=(0,Ze.useState)(!1),[m=!1,g]=ic({prop:o,defaultProp:i,onChange:a});return(0,Ze.createElement)(oA,c,(0,Ze.createElement)(y9,{scope:t,contentId:tc(),triggerRef:d,open:m,onOpenChange:g,onOpenToggle:(0,Ze.useCallback)(()=>g(h=>!h),[g]),hasCustomAnchor:p,onCustomAnchorAdd:(0,Ze.useCallback)(()=>f(!0),[]),onCustomAnchorRemove:(0,Ze.useCallback)(()=>f(!1),[]),modal:s},r))};var w9="PopoverTrigger",S9=(0,Ze.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=dc(w9,r),a=eg(r),s=Lr(t,i.triggerRef),c=(0,Ze.createElement)(Zt.button,Ye({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":NA(i.open)},o,{ref:s,onClick:lr(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?c:(0,Ze.createElement)(nA,Ye({asChild:!0},a),c)}),RA="PopoverPortal",[T9,C9]=LA(RA,{forceMount:void 0}),I9=e=>{let{__scopePopover:t,forceMount:r,children:o,container:i}=e,a=dc(RA,t);return(0,Ze.createElement)(T9,{scope:t,forceMount:r},(0,Ze.createElement)(nc,{present:r||a.open},(0,Ze.createElement)(sA,{asChild:!0,container:i},o)))},cm="PopoverContent",_9=(0,Ze.forwardRef)((e,t)=>{let r=C9(cm,e.__scopePopover),{forceMount:o=r.forceMount,...i}=e,a=dc(cm,e.__scopePopover);return(0,Ze.createElement)(nc,{present:o||a.open},a.modal?(0,Ze.createElement)(A9,Ye({},i,{ref:t})):(0,Ze.createElement)(k9,Ye({},i,{ref:t})))}),A9=(0,Ze.forwardRef)((e,t)=>{let r=dc(cm,e.__scopePopover),o=(0,Ze.useRef)(null),i=Lr(t,o),a=(0,Ze.useRef)(!1);return(0,Ze.useEffect)(()=>{let s=o.current;if(s)return mA(s)},[]),(0,Ze.createElement)(wy,{as:Sa,allowPinchZoom:!0},(0,Ze.createElement)(DA,Ye({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:lr(e.onCloseAutoFocus,s=>{var c;s.preventDefault(),a.current||(c=r.triggerRef.current)===null||c===void 0||c.focus()}),onPointerDownOutside:lr(e.onPointerDownOutside,s=>{let c=s.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,p=c.button===2||d;a.current=p},{checkForDefaultPrevented:!1}),onFocusOutside:lr(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})))}),k9=(0,Ze.forwardRef)((e,t)=>{let r=dc(cm,e.__scopePopover),o=(0,Ze.useRef)(!1);return(0,Ze.createElement)(DA,Ye({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var a;if((a=e.onCloseAutoFocus)===null||a===void 0||a.call(e,i),!i.defaultPrevented){var s;o.current||(s=r.triggerRef.current)===null||s===void 0||s.focus(),i.preventDefault()}o.current=!1},onInteractOutside:i=>{var a,s;(a=e.onInteractOutside)===null||a===void 0||a.call(e,i),i.defaultPrevented||(o.current=!0);let c=i.target;((s=r.triggerRef.current)===null||s===void 0?void 0:s.contains(c))&&i.preventDefault()}}))}),DA=(0,Ze.forwardRef)((e,t)=>{let{__scopePopover:r,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onInteractOutside:f,...m}=e,g=dc(cm,r),h=eg(r);return v_(),(0,Ze.createElement)(T_,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:a},(0,Ze.createElement)(g_,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onDismiss:()=>g.onOpenChange(!1)},(0,Ze.createElement)(iA,Ye({"data-state":NA(g.open),role:"dialog",id:g.contentId},h,m,{ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var M9=(0,Ze.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=eg(r);return(0,Ze.createElement)(aA,Ye({},i,o,{ref:t}))});function NA(e){return e?"open":"closed"}var mc=E9;var uc=S9,OA=I9,tg=_9;var rg=M9;var XA=w(j(),1);v();var Ln=w(j(),1);v();var ng=w(j(),1),zA=w(Vn(),1);v();var Sy=w(j(),1),Ty=Sy.default.createContext(null),it=()=>Sy.default.useContext(Ty);v();var mm=w(j(),1);var og=e=>{let[t,r]=(0,mm.useState)(null),o=rt(),{theme:i}=it(),{container:a}=ar();return(0,mm.useLayoutEffect)(()=>{t&&(t.className="",t.classList.add("excalidraw",...e?.className?.split(/\s+/)||[]),t.classList.toggle("excalidraw--mobile",o.editor.isMobile),t.classList.toggle("theme--dark",i===Be.DARK))},[t,i,o.editor.isMobile,e?.className]),(0,mm.useLayoutEffect)(()=>{let s=e?.parentSelector?a?.querySelector(e.parentSelector):document.body;if(!s)return;let c=document.createElement("div");return s.appendChild(c),r(c),()=>{s.removeChild(c)}},[a,e?.parentSelector]),t};v();var FA=w(j(),1);function pc(e,t,r){(0,FA.useEffect)(()=>{function o(i){let a=i;if(!e.current)return;let s=r?.(a,e.current);if(s===!0)return;if(s===!1)return t(a);e.current.contains(a.target)||!document.documentElement.contains(a.target)||a.target.closest("[data-radix-portal]")||a.target===document.documentElement&&document.body.style.pointerEvents==="none"||a.target.closest("[data-prevent-outside-click]")||t(a)}return document.addEventListener("pointerdown",o),document.addEventListener("touchstart",o),()=>{document.removeEventListener("pointerdown",o),document.removeEventListener("touchstart",o)}},[e,t,r])}v();var BA=w(j(),1),fc=e=>{let t=(0,BA.useRef)(e);return Object.assign(t.current,e),t.current};var HA=w(P(),1),_a=wt(null),$A=({onCancel:e,onChange:t,onSelect:r,colorPickerType:o})=>{let i=og({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),a=it(),s=Aa(),c=Tr(),d=Oe(s,a),p=fc({app:c,onCancel:e,onChange:t,onSelect:r,selectedElements:d}),{container:f}=ar();(0,ng.useEffect)(()=>{let g=m.current;if(!g||!c.canvas||!i)return;let h=!1,b=c.canvas.getContext("2d"),y=({clientX:L,clientY:F})=>{let D=b.getImageData((L-a.offsetLeft)*window.devicePixelRatio,(F-a.offsetTop)*window.devicePixelRatio,1,1).data;return xS(D[0],D[1],D[2])},T=({clientX:L,clientY:F,altKey:D})=>{g.style.top=`${F+20}px`,g.style.left=`${L+20}px`;let V=y({clientX:L,clientY:F});h&&p.onChange(o,V,p.selectedElements,{altKey:D}),g.style.background=V},k=()=>{p.onCancel()},I=(L,F)=>{p.onSelect(L,F)},A=L=>{h=!0,L.stopImmediatePropagation()},O=L=>{h=!1,f?.focus(),L.stopImmediatePropagation(),L.preventDefault(),I(y(L),L)},z=L=>{L.key===R.ESCAPE&&(L.preventDefault(),L.stopImmediatePropagation(),k())};return i.tabIndex=-1,i.focus(),T({clientX:p.app.lastViewportPosition.x,clientY:p.app.lastViewportPosition.y,altKey:!1}),i.addEventListener("keydown",z),i.addEventListener("pointerdown",A),i.addEventListener("pointerup",O),window.addEventListener("pointermove",T,{passive:!0}),window.addEventListener("blur",k),()=>{h=!1,i.removeEventListener("keydown",z),i.removeEventListener("pointerdown",A),i.removeEventListener("pointerup",O),window.removeEventListener("pointermove",T),window.removeEventListener("blur",k)}},[p,c.canvas,i,o,f,a.offsetLeft,a.offsetTop]);let m=(0,ng.useRef)(null);return pc(m,()=>{e()},g=>!!g.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),i?(0,zA.createPortal)((0,HA.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),i):null};var qn=w(P(),1),UA=({color:e,onChange:t,label:r,colorPickerType:o})=>{let i=rt(),[a,s]=(0,Ln.useState)(e),[c,d]=Xe(tn);(0,Ln.useEffect)(()=>{s(e)},[e]);let p=(0,Ln.useCallback)(b=>{let y=b.toLowerCase(),T=GA(y);T&&t(T),s(y)},[t]),f=(0,Ln.useRef)(null),m=(0,Ln.useRef)(null);(0,Ln.useEffect)(()=>{f.current&&f.current.focus()},[c]);let[g,h]=Xe(_a,dt);return(0,Ln.useEffect)(()=>()=>{h(null)},[h]),(0,qn.jsxs)("div",{className:"color-picker__input-label",children:[(0,qn.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,qn.jsx)("input",{ref:c==="hex"?f:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":r,onChange:b=>{p(b.target.value)},value:(a||"").replace(/^#/,""),onBlur:()=>{s(e)},tabIndex:-1,onFocus:()=>d("hex"),onKeyDown:b=>{b.key!==R.TAB&&(b.key===R.ESCAPE&&m.current?.focus(),b.stopPropagation())}}),!i.editor.isMobile&&(0,qn.jsxs)(qn.Fragment,{children:[(0,qn.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,qn.jsx)("div",{ref:m,className:q("excalidraw-eye-dropper-trigger",{selected:g}),onClick:()=>h(b=>b?null:{keepOpenOnAlt:!1,onSelect:y=>t(y),colorPickerType:o}),title:`${E("labels.eyeDropper")} \u2014 ${R.I.toLocaleUpperCase()} or ${X("Alt")} `,children:CT})]})]})};v();var YA=w(j(),1);v();var WA=w(j(),1);var KA=w(P(),1),hr=WA.default.forwardRef(({children:e,padding:t,className:r,style:o},i)=>(0,KA.jsx)("div",{className:q("Island",r),style:{"--padding":t,...o},ref:i,children:e}));var gc=w(P(),1),ig=YA.default.forwardRef(({className:e,container:t,children:r,style:o,onClose:i,onKeyDown:a,onFocusOutside:s,onPointerLeave:c,onPointerDownOutside:d},p)=>{let f=rt();return(0,gc.jsx)(OA,{container:t,children:(0,gc.jsxs)(tg,{ref:p,className:q("focus-visible-none",e),"data-prevent-outside-click":!0,side:f.editor.isMobile&&!f.viewport.isLandscape?"bottom":"right",align:f.editor.isMobile&&!f.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-popup)"},onPointerLeave:c,onKeyDown:a,onFocusOutside:s,onPointerDownOutside:d,onCloseAutoFocus:m=>{m.stopPropagation(),m.preventDefault(),t&&!XS(document.activeElement)&&t.focus(),i()},children:[(0,gc.jsx)(hr,{padding:3,style:o,children:r}),(0,gc.jsx)(rg,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})});var Ur=w(P(),1),VA=e=>{let t=new Option().style;return t.color=e,!!t.color},GA=e=>cl(e)?e:VA(`#${e}`)?`#${e}`:VA(e)?e:null,P9=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=hi,updateData:s})=>{let{container:c}=ar(),[,d]=Xe(tn),[p,f]=Xe(_a,dt),m=(0,Ur.jsxs)("div",{children:[(0,Ur.jsx)(Js,{children:E("colorPicker.hexCode")}),(0,Ur.jsx)(UA,{color:t,label:o,onChange:b=>{r(b)},colorPickerType:e})]}),g=(0,XA.useRef)(null),h=()=>{g.current?.querySelector(".color-picker-content")?.focus()};return(0,Ur.jsx)(ig,{container:c,style:{maxWidth:"208px"},onFocusOutside:b=>{h(),b.preventDefault()},onPointerDownOutside:b=>{p&&b.preventDefault()},onClose:()=>{s({openPopup:null}),d(null)},children:a?(0,Ur.jsx)(l_,{palette:a,color:t,onChange:b=>{r(b)},onEyeDropperToggle:b=>{f(y=>b?(y=y||{keepOpenOnAlt:!0,onSelect:r,colorPickerType:e},y.keepOpenOnAlt=!0,y):b===!1||y?null:{keepOpenOnAlt:!1,onSelect:r,colorPickerType:e})},onEscape:b=>{p?f(null):s({openPopup:null})},label:o,type:e,elements:i,updateData:s,children:m}):m})},L9=({label:e,color:t,type:r})=>(0,Ur.jsx)(uc,{type:"button",className:q("color-picker__button active-color properties-trigger",{"is-transparent":t==="transparent"||!t}),"aria-label":e,style:t?{"--swatch-color":t}:void 0,title:r==="elementStroke"?E("labels.showStroke"):E("labels.showBackground"),children:(0,Ur.jsx)("div",{className:"color-picker__button-outline"})}),um=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=hi,topPicks:s,updateData:c,appState:d})=>(0,Ur.jsx)("div",{children:(0,Ur.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Ur.jsx)(qI,{activeColor:t,onChange:r,type:e,topPicks:s}),(0,Ur.jsx)(Pf,{}),(0,Ur.jsxs)(mc,{open:d.openPopup===e,onOpenChange:p=>{c({openPopup:p?e:null})},children:[(0,Ur.jsx)(L9,{color:t,label:o,type:e}),d.openPopup===e&&(0,Ur.jsx)(P9,{type:e,color:t,onChange:r,label:o,elements:i,palette:a,updateData:c})]})]})});v();var Ma=w(j(),1);v();var ka=w(j(),1);var ZA=w(Vn(),1);var qA=w(P(),1),ag=({children:e,left:t,top:r,onCloseRequest:o,fitInViewport:i=!1,offsetLeft:a=0,offsetTop:s=0,viewportWidth:c=window.innerWidth,viewportHeight:d=window.innerHeight})=>{let p=(0,ka.useRef)(null);(0,ka.useEffect)(()=>{let m=p.current;if(!m)return;m.contains(document.activeElement)||m.focus();let g=h=>{if(h.key===R.TAB){let b=Sd(m),{activeElement:y}=document,T=b.findIndex(k=>k===y);y===m?(h.shiftKey?b[b.length-1]?.focus():b[0].focus(),h.preventDefault(),h.stopImmediatePropagation()):T===0&&h.shiftKey?(b[b.length-1]?.focus(),h.preventDefault(),h.stopImmediatePropagation()):T===b.length-1&&!h.shiftKey&&(b[0]?.focus(),h.preventDefault(),h.stopImmediatePropagation())}};return m.addEventListener("keydown",g),()=>m.removeEventListener("keydown",g)},[]);let f=(0,ka.useRef)(null);return(0,ka.useLayoutEffect)(()=>{if(i&&p.current&&r!=null&&t!=null){let m=p.current,{width:g,height:h}=m.getBoundingClientRect();if(f.current?.top===r&&f.current?.left===t)return;f.current={top:r,left:t},g>=c?(m.style.width=`${c}px`,m.style.left="0px",m.style.overflowX="scroll"):t+g-a>c?m.style.left=`${c-g-10}px`:m.style.left=`${t}px`,h>=d?(m.style.height=`${d-20}px`,m.style.top="10px",m.style.overflowY="scroll"):r+h-s>d?m.style.top=`${d-h}px`:m.style.top=`${r}px`}},[r,t,i,c,d,a,s]),(0,ka.useEffect)(()=>{if(o){let m=g=>{p.current?.contains(g.target)||(0,ZA.unstable_batchedUpdates)(()=>o(g))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[o]),(0,qA.jsx)("div",{className:"popover",ref:p,tabIndex:-1,children:e})};var no=w(P(),1);function R9({options:e,value:t,label:r,onChange:o,onClose:i}){let a=Ma.default.useRef(),s=Ma.default.useRef(),c=Ma.default.useRef(null);return Ma.default.useEffect(()=>{s.current?s.current.focus():c.current&&c.current.focus()},[]),(0,no.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":r,onKeyDown:p=>{let f=e.find(m=>m.keyBinding===p.key.toLowerCase());if(!(p.metaKey||p.altKey||p.ctrlKey)&&f){let m=e.indexOf(f);c.current.children[m].focus(),p.preventDefault()}else if(p.key===R.TAB)setTimeout(()=>{let m=s.current,g=document.activeElement;m!==g&&i()},0);else if(Cs(p.key)){let{activeElement:m}=document,g=Pi().rtl,h=Array.prototype.indexOf.call(c.current.children,m);if(h!==-1){let b=e.length,y=h;switch(p.key){case(g?R.ARROW_LEFT:R.ARROW_RIGHT):case R.ARROW_DOWN:{y=(h+1)%b;break}case(g?R.ARROW_RIGHT:R.ARROW_LEFT):case R.ARROW_UP:{y=(b+h-1)%b;break}}c.current.children[y].focus()}p.preventDefault()}else(p.key===R.ESCAPE||p.key===R.ENTER)&&(p.preventDefault(),i());p.nativeEvent.stopImmediatePropagation(),p.stopPropagation()},children:(0,no.jsx)("div",{className:"picker-content",ref:c,children:e.map((p,f)=>(0,no.jsxs)("button",{type:"button",className:q("picker-option",{active:t===p.value}),onClick:m=>{m.currentTarget.focus(),o(p.value)},title:`${p.text} ${p.keyBinding&&`\u2014 ${p.keyBinding.toUpperCase()}`}`,"aria-label":p.text||"none","aria-keyshortcuts":p.keyBinding||void 0,ref:m=>{m&&f===0&&(a.current=m),m&&p.value===t&&(s.current=m)},onFocus:()=>{o(p.value)},children:[p.icon,p.keyBinding&&(0,no.jsx)("span",{className:"picker-keybinding",children:p.keyBinding})]},p.text))})})}function Cy({value:e,label:t,options:r,onChange:o,group:i=""}){let[a,s]=Ma.default.useState(!1),c=Ma.default.useRef(null),d=Pi().rtl;return(0,no.jsxs)("div",{children:[(0,no.jsx)("button",{name:i,type:"button",className:a?"active":"","aria-label":t,onClick:()=>s(!a),ref:c,children:r.find(p=>p.value===e)?.icon}),(0,no.jsx)(Ma.default.Suspense,{fallback:"",children:a?(0,no.jsxs)(no.Fragment,{children:[(0,no.jsx)(ag,{onCloseRequest:p=>p.target!==c.current&&s(!1),...d?{right:5.5}:{left:-5.5},children:(0,no.jsx)(R9,{options:r.filter(p=>p.showInPicker!==!1),value:e,label:t,onChange:o,onClose:()=>{s(!1),c.current?.focus()}})}),(0,no.jsx)("div",{className:"picker-triangle"})]}):null})]})}v();var bc=w(j(),1);v();var br=w(j(),1);v();var jA=w(j(),1);var sg=w(P(),1),lg=jA.default.forwardRef(({className:e,placeholder:t,onChange:r},o)=>(0,sg.jsxs)("div",{className:q("QuickSearch__wrapper",e),children:[Ap,(0,sg.jsx)("input",{ref:o,className:"QuickSearch__input",type:"text",placeholder:t,onChange:i=>r(i.target.value.trim().toLowerCase())})]}));v();var JA=w(j(),1);var Iy=w(P(),1),cg=({className:e,placeholder:t,children:r})=>{let o=!JA.Children.count(r);return(0,Iy.jsx)("div",{className:q("ScrollableList__wrapper",e),role:"menu",children:o?(0,Iy.jsx)("div",{className:"empty",children:t}):r})};v();var dg=w(P(),1),QA=({children:e,className:t="",style:r,title:o})=>(0,dg.jsxs)("div",{className:`dropdown-menu-group ${t}`,style:r,children:[o&&(0,dg.jsx)("p",{className:"dropdown-menu-group-title",children:o}),e]}),pm=QA;QA.displayName="DropdownMenuGroup";v();var hg=w(j(),1);v();var mg=w(j(),1);var _y=mg.default.createContext({}),ug=(e="",t=!1,r=!1)=>`dropdown-menu-item dropdown-menu-item-base ${e}
|
|
61
|
+
${t?"dropdown-menu-item--selected":""} ${r?"dropdown-menu-item--hovered":""}`.trim(),pg=(e,t)=>{let r=(0,mg.useContext)(_y);return ca(e,o=>{let i=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});t?.(i),i.defaultPrevented||r.onSelect?.(i)})};v();var Pa=w(P(),1),D9=({textStyle:e,icon:t,shortcut:r,children:o})=>{let i=rt();return(0,Pa.jsxs)(Pa.Fragment,{children:[t&&(0,Pa.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Pa.jsx)("div",{style:e,className:"dropdown-menu-item__text",children:o}),r&&!i.editor.isMobile&&(0,Pa.jsx)("div",{className:"dropdown-menu-item__shortcut",children:r})]})},fg=D9;var gg=w(P(),1),Ay=({icon:e,value:t,order:r,children:o,shortcut:i,className:a,hovered:s,selected:c,textStyle:d,onSelect:p,onClick:f,...m})=>{let g=pg(f,p),h=(0,hg.useRef)(null);return(0,hg.useEffect)(()=>{s&&(r===0?h.current?.scrollIntoView({block:"end"}):h.current?.scrollIntoView({block:"nearest"}))},[s,r]),(0,gg.jsx)("button",{...m,ref:h,value:t,onClick:g,className:ug(a,c,s),title:m.title??m["aria-label"],children:(0,gg.jsx)(fg,{textStyle:d,icon:e,shortcut:i,children:o})})};Ay.displayName="DropdownMenuItem";var hc={GREEN:"green",RED:"red",BLUE:"blue"},bg=({type:e=hc.BLUE,children:t})=>{let{theme:r}=jn(),o={display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:9,fontFamily:"Cascadia, monospace",border:r===Be.LIGHT?"1.5px solid white":"none"};switch(e){case hc.GREEN:Object.assign(o,{backgroundColor:"var(--background-color-badge)",color:"var(--color-badge)"});break;case hc.RED:Object.assign(o,{backgroundColor:"pink",color:"darkred"});break;case hc.BLUE:default:Object.assign(o,{background:"var(--color-promo)",color:"var(--color-surface-lowest)"})}return(0,gg.jsx)("div",{className:"DropDownMenuItemBadge",style:o,children:t})};bg.displayName="DropdownMenuItemBadge";Ay.Badge=bg;var vo=Ay;v();var ek=({event:e,inputRef:t,hoveredFont:r,filteredFonts:o,onClose:i,onSelect:a,onHover:s})=>{if(!e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key.toLowerCase()===R.F)return t.current?.focus(),!0;if(e.key===R.ESCAPE)return i(),!0;if(e.key===R.ENTER)return r?.value&&a(r.value),!0;if(e.key===R.ARROW_DOWN)return r?.next?s(r.next.value):o[0]?.value&&s(o[0].value),!0;if(e.key===R.ARROW_UP)return r?.prev?s(r.prev.value):o[o.length-1]?.value&&s(o[o.length-1].value),!0};var Oi=w(P(),1),tk=br.default.memo(({selectedFontFamily:e,hoveredFontFamily:t,onSelect:r,onHover:o,onLeave:i,onOpen:a,onClose:s})=>{let{container:c}=ar(),{fonts:d}=Tr(),{showDeprecatedFonts:p}=Jn(),[f,m]=(0,br.useState)(""),g=(0,br.useRef)(null),h=(0,br.useMemo)(()=>Array.from(vl.registered.entries()).filter(([D,{metadata:V}])=>!V.serverSide).map(([D,{metadata:V,fontFaces:G}])=>{let Q={value:D,icon:V.icon,text:G[0].fontFace.family};return V.deprecated&&Object.assign(Q,{deprecated:V.deprecated,badge:{type:hc.RED,placeholder:E("fontList.badge.old")}}),Q}).sort((D,V)=>D.text.toLowerCase()>V.text.toLowerCase()?1:-1),[]),b=(0,br.useMemo)(()=>new Set(d.sceneFamilies),[e]),y=(0,br.useMemo)(()=>h.filter(D=>b.has(D.value)),[h,b]),T=(0,br.useMemo)(()=>h.filter(D=>!b.has(D.value)&&(p||!D.deprecated)),[h,b,p]),k=(0,br.useMemo)(()=>t2([...y,...T].filter(D=>D.text?.toLowerCase().includes(f))),[y,T,f]),I=(0,br.useMemo)(()=>{let D;return t?D=k.find(V=>V.value===t):e&&(D=k.find(V=>V.value===e)),!D&&f&&(k[0]?.value?o(k[0].value):i()),D},[t,e,f,k,o,i]),A=(0,br.useCallback)(D=>{ek({event:D,inputRef:g,hoveredFont:I,filteredFonts:k,onSelect:r,onHover:o,onClose:s})&&(D.preventDefault(),D.stopPropagation())},[I,k,r,o,s]);(0,br.useEffect)(()=>(a(),()=>{s()}),[]);let O=(0,br.useMemo)(()=>k.filter(D=>b.has(D.value)),[k,b]),z=(0,br.useMemo)(()=>k.filter(D=>!b.has(D.value)),[k,b]),L=(D,V)=>(0,Oi.jsxs)(vo,{icon:D.icon,value:D.value,order:V,textStyle:{fontFamily:il({fontFamily:D.value})},hovered:D.value===I?.value,selected:D.value===e,tabIndex:D.value===e?0:-1,onClick:G=>{r(Number(G.currentTarget.value))},onMouseMove:()=>{I?.value!==D.value&&o(D.value)},children:[D.text,D.badge&&(0,Oi.jsx)(bg,{type:D.badge.type,children:D.badge.placeholder})]},D.value),F=[];return O.length&&F.push((0,Oi.jsx)(pm,{title:E("fontList.sceneFonts"),children:O.map(L)},"group_1")),z.length&&F.push((0,Oi.jsx)(pm,{title:E("fontList.availableFonts"),children:z.map((D,V)=>L(D,V+O.length))},"group_2")),(0,Oi.jsxs)(ig,{className:"properties-content",container:c,style:{width:"15rem"},onClose:s,onPointerLeave:i,onKeyDown:A,children:[(0,Oi.jsx)(lg,{ref:g,placeholder:E("quickSearch.placeholder"),onChange:al(m,20)}),(0,Oi.jsx)(cg,{className:"dropdown-menu fonts manual-hover",placeholder:E("fontList.empty"),children:F.length?F:null})]})},(e,t)=>e.selectedFontFamily===t.selectedFontFamily&&e.hoveredFontFamily===t.hoveredFontFamily);v();var rk=w(j(),1);var xg=w(P(),1),ok=({selectedFontFamily:e})=>{let t=(0,rk.useMemo)(()=>!!(e&&!nk(e)),[e]);return(0,xg.jsx)(uc,{asChild:!0,children:(0,xg.jsx)("div",{children:(0,xg.jsx)(kf,{standalone:!0,icon:I2,title:E("labels.showFonts"),className:"properties-trigger",testId:"font-family-show-fonts",active:t,onClick:()=>{}})})})};var La=w(P(),1),ik=[{value:ol.Excalifont,icon:hp,text:E("labels.handDrawn"),testId:"font-family-handrawn"},{value:ol.Nunito,icon:pT,text:E("labels.normal"),testId:"font-family-normal"},{value:ol["Comic Shanns"],icon:fT,text:E("labels.code"),testId:"font-family-code"}],N9=new Set(ik.map(e=>e.value)),nk=e=>e?N9.has(e):!1,ak=bc.default.memo(({isOpened:e,selectedFontFamily:t,hoveredFontFamily:r,onSelect:o,onHover:i,onLeave:a,onPopupChange:s})=>{let c=(0,bc.useMemo)(()=>ik,[]),d=(0,bc.useCallback)(p=>{p&&o(p)},[o]);return(0,La.jsxs)("div",{role:"dialog","aria-modal":"true",className:"FontPicker__container",children:[(0,La.jsx)(kn,{type:"button",options:c,value:t,onClick:d}),(0,La.jsx)(Pf,{}),(0,La.jsxs)(mc,{open:e,onOpenChange:s,children:[(0,La.jsx)(ok,{selectedFontFamily:t}),e&&(0,La.jsx)(tk,{selectedFontFamily:t,hoveredFontFamily:r,onSelect:d,onHover:i,onLeave:a,onOpen:()=>s(!0),onClose:()=>s(!1)})]})]})},(e,t)=>e.isOpened===t.isOpened&&e.selectedFontFamily===t.selectedFontFamily&&e.hoveredFontFamily===t.hoveredFontFamily);var Ie=w(P(),1),sk=.1,yo=(e,t,r,o=!1)=>{let i=Le(Oe(e,t,{includeBoundTextElement:o}));return e.map(a=>i.get(a.id)||a.id===t.editingElement?.id?r(a):a)},Eo=function(e,t,r,o,i){let a=t.editingElement,s=We(e),c=null;return a&&(c=r(a)),c||(ft(s,t)?c=EI(o===!0?s:s.filter(p=>o(p)),t,r)??(typeof i=="function"?i(!0):i):c=typeof i=="function"?i(!1):i),c},O9=(e,t)=>Sr(t)||!t.autoResize?t:me(t,{x:e.textAlign==="left"?e.x:e.x+(e.width-t.width)/(e.textAlign==="center"?2:1),y:e.y+(e.height-t.height)/2},!1),ky=(e,t,r,o,i)=>{let a=new Set;return{elements:yo(e,t,s=>{if(he(s)){let c=o(s);a.add(c);let d=Pe(s,{fontSize:c});return Xt(d,r.scene.getContainerElement(s),r.scene.getNonDeletedElementsMap()),d=O9(s,d),d}return s},!0),appState:{...t,currentItemFontSize:a.size===1?[...a][0]:i??t.currentItemFontSize},storeAction:W.CAPTURE}},F9=re({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemStrokeColor&&{elements:yo(e,t,o=>Md(o.type)?Pe(o,{strokeColor:r.currentItemStrokeColor}):o,!0)},appState:{...t,...r},storeAction:r.currentItemStrokeColor?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Ie.jsxs)(Ie.Fragment,{children:[(0,Ie.jsx)("h3",{"aria-hidden":"true",children:E("labels.stroke")}),(0,Ie.jsx)(um,{topPicks:Gu,palette:hS,type:"elementStroke",label:E("labels.stroke"),color:Eo(e,t,i=>i.strokeColor,!0,t.currentItemStrokeColor),onChange:i=>r({currentItemStrokeColor:i}),elements:e,appState:t,updateData:r})]})}),B9=re({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemBackgroundColor&&{elements:yo(e,t,o=>Pe(o,{backgroundColor:r.currentItemBackgroundColor}))},appState:{...t,...r},storeAction:r.currentItemBackgroundColor?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Ie.jsxs)(Ie.Fragment,{children:[(0,Ie.jsx)("h3",{"aria-hidden":"true",children:E("labels.background")}),(0,Ie.jsx)(um,{topPicks:Wu,palette:bS,type:"elementBackground",label:E("labels.background"),color:Eo(e,t,i=>i.backgroundColor,!0,t.currentItemBackgroundColor),onChange:i=>r({currentItemBackgroundColor:i}),elements:e,appState:t,updateData:r})]})}),z9=re({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(e,t,r,o)=>(ze("element","changeFillStyle",`${r} (${o.device.editor.isMobile?"mobile":"desktop"})`),{elements:yo(e,t,i=>Pe(i,{fillStyle:r})),appState:{...t,currentItemFillStyle:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Oe(e,t),i=o.length>0&&o.every(a=>a.fillStyle==="zigzag");return(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.fill")}),(0,Ie.jsx)(kn,{type:"button",options:[{value:"hachure",text:`${i?E("labels.zigzag"):E("labels.hachure")} (${X("Alt-Click")})`,icon:i?U2:G2,active:i?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:E("labels.crossHatch"),icon:W2,testId:"fill-cross-hatch"},{value:"solid",text:E("labels.solid"),icon:K2,testId:"fill-solid"}],value:Eo(e,t,a=>a.fillStyle,a=>a.hasOwnProperty("fillStyle"),a=>a?null:t.currentItemFillStyle),onClick:(a,s)=>{let c=s.altKey&&a==="hachure"&&o.every(d=>d.fillStyle==="hachure")?"zigzag":a;r(c)}})]})}}),$9=re({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(e,t,r)=>({elements:yo(e,t,o=>Pe(o,{strokeWidth:r})),appState:{...t,currentItemStrokeWidth:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.strokeWidth")}),(0,Ie.jsx)(kn,{group:"stroke-width",options:[{value:op.thin,text:E("labels.thin"),icon:jx,testId:"strokeWidth-thin"},{value:op.bold,text:E("labels.bold"),icon:Y2,testId:"strokeWidth-bold"},{value:op.extraBold,text:E("labels.extraBold"),icon:V2,testId:"strokeWidth-extraBold"}],value:Eo(e,t,o=>o.strokeWidth,o=>o.hasOwnProperty("strokeWidth"),o=>o?null:t.currentItemStrokeWidth),onChange:o=>r(o)})]})}),H9=re({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(e,t,r)=>({elements:yo(e,t,o=>Pe(o,{seed:u2(),roughness:r})),appState:{...t,currentItemRoughness:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.sloppiness")}),(0,Ie.jsx)(kn,{group:"sloppiness",options:[{value:0,text:E("labels.architect"),icon:q2},{value:1,text:E("labels.artist"),icon:j2},{value:2,text:E("labels.cartoonist"),icon:J2}],value:Eo(e,t,o=>o.roughness,o=>o.hasOwnProperty("roughness"),o=>o?null:t.currentItemRoughness),onChange:o=>r(o)})]})}),bj=re({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(e,t,r)=>({elements:yo(e,t,o=>Pe(o,{strokeStyle:r})),appState:{...t,currentItemStrokeStyle:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.strokeStyle")}),(0,Ie.jsx)(kn,{group:"strokeStyle",options:[{value:"solid",text:E("labels.strokeStyle_solid"),icon:jx},{value:"dashed",text:E("labels.strokeStyle_dashed"),icon:X2},{value:"dotted",text:E("labels.strokeStyle_dotted"),icon:Z2}],value:Eo(e,t,o=>o.strokeStyle,o=>o.hasOwnProperty("strokeStyle"),o=>o?null:t.currentItemStrokeStyle),onChange:o=>r(o)})]})}),U9=re({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(e,t,r)=>({elements:yo(e,t,o=>Pe(o,{opacity:r}),!0),appState:{...t,currentItemOpacity:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Ie.jsxs)("label",{className:"control-label",children:[E("labels.opacity"),(0,Ie.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:o=>r(+o.target.value),value:Eo(e,t,o=>o.opacity,!0,t.currentItemOpacity)??void 0})]})}),G9=re({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(e,t,r,o)=>ky(e,t,o,()=>r,r),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.fontSize")}),(0,Ie.jsx)(kn,{group:"font-size",options:[{value:16,text:E("labels.small"),icon:cT,testId:"fontSize-small"},{value:20,text:E("labels.medium"),icon:dT,testId:"fontSize-medium"},{value:28,text:E("labels.large"),icon:mT,testId:"fontSize-large"},{value:36,text:E("labels.veryLarge"),icon:uT,testId:"fontSize-veryLarge"}],value:Eo(e,t,i=>{if(he(i))return i.fontSize;let a=Ve(i,o.scene.getNonDeletedElementsMap());return a?a.fontSize:null},i=>he(i)||Ve(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:t.currentItemFontSize||gs),onChange:i=>r(i)})]})}),My=re({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:pl,trackEvent:!1,perform:(e,t,r,o)=>ky(e,t,o,i=>Math.round(1/(1+sk)*i.fontSize)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_LEFT||e.key===R.COMMA)}),Py=re({name:"increaseFontSize",label:"labels.increaseFontSize",icon:pl,trackEvent:!1,perform:(e,t,r,o)=>ky(e,t,o,i=>Math.round(i.fontSize*(1+sk))),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_RIGHT||e.key===R.PERIOD)}),W9=re({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(e,t,r,o)=>{let{cachedElements:i,resetAll:a,resetContainers:s,...c}=r;if(a)return{elements:yo(e,t,y=>{let T=i?.get(y.id);return T?Pe(y,{...T}):y},!0),appState:{...t,...c},storeAction:W.UPDATE};let{currentItemFontFamily:d,currentHoveredFontFamily:p}=r,f=W.NONE,m,g=!1;if(d)m=d,f=W.CAPTURE;else if(p){m=p,f=W.NONE;let b=Oe(e,t,{includeBoundTextElement:!0}).filter(y=>he(y));if(b.length>200)g=!0;else{let y=0,T=0;for(;y<b.length&&T<5e3;){let k=b[y];T+=k?.originalText.length||0,y++}T>5e3&&(g=!0)}}let h={appState:{...t,...c},storeAction:f};if(m&&!g){let b=new Map,y=new Set,T=!1,k=Array.from(vl.loadedFontsCache.values()),I=Object.entries(ol).find(([z,L])=>L===m)?.[0];p&&I&&k.some(z=>z.startsWith(I))&&(T=!0),Object.assign(h,{elements:yo(e,t,z=>{if(he(z)&&(z.fontFamily!==m||d)){let L=Pe(z,{fontFamily:m,lineHeight:_i(m)}),F=i?.get(z.containerId||"")||{},D=o.scene.getContainerElement(z);return s&&D&&F&&me(D,{...F},!1),T||(y=new Set([...y,...Array.from(L.originalText)])),b.set(L,D),L}return z},!0)});let A=`10px ${il({fontFamily:m})}`,O=Array.from(y.values()).join();if(T||window.document.fonts.check(A,O))for(let[z,L]of b)Xt(z,L,o.scene.getNonDeletedElementsMap(),!1);else window.document.fonts.load(A,O).then(z=>{for(let[L,F]of b){let D=o.scene.getElement(L.id),V=F?o.scene.getElement(F.id):null;D&&Xt(D,V,o.scene.getNonDeletedElementsMap(),!1)}o.fonts.onLoaded(z)})}return h},PanelComponent:({elements:e,appState:t,app:r,updateData:o})=>{let i=(0,on.useRef)(new Map),a=(0,on.useRef)(null),[s,c]=(0,on.useState)({}),d=(0,on.useRef)(!0),p=(0,on.useMemo)(()=>{let f=(m,g)=>Eo(m,t,h=>{if(he(h))return h.fontFamily;let b=Ve(h,g);return b?b.fontFamily:null},h=>he(h)||Ve(h,g)!==null,h=>h?null:t.currentItemFontFamily||hs);return s.openPopup==="fontFamily"&&t.openPopup==="fontFamily"?f(Array.from(i.current?.values()??[]),i.current):!s.openPopup&&t.openPopup!=="fontFamily"?f(e,r.scene.getNonDeletedElementsMap()):a.current},[s.openPopup,t,e,r.scene]);return(0,on.useEffect)(()=>{a.current=p},[p]),(0,on.useEffect)(()=>{Object.keys(s).length&&(o(s),c({}))},[s]),(0,on.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.fontFamily")}),(0,Ie.jsx)(ak,{isOpened:t.openPopup==="fontFamily",selectedFontFamily:p,hoveredFontFamily:t.currentHoveredFontFamily,onSelect:f=>{c({openPopup:null,currentHoveredFontFamily:null,currentItemFontFamily:f}),i.current.clear()},onHover:f=>{c({currentHoveredFontFamily:f,cachedElements:new Map(i.current),resetContainers:!0})},onLeave:()=>{c({currentHoveredFontFamily:null,cachedElements:new Map(i.current),resetAll:!0})},onPopupChange:f=>{if(f){i.current.clear();let{editingElement:m}=t;if(m?.type==="text"){let g=r.scene.getElement(m.id);i.current.set(m.id,Pe(g||m,{},!0))}else{let g=Oe(e,t,{includeBoundTextElement:!0});for(let h of g)i.current.set(h.id,Pe(h,{},!0))}c({openPopup:"fontFamily"})}else{let m={openPopup:null,currentHoveredFontFamily:null,cachedElements:new Map(i.current),resetAll:!0};d.current?o({...s,...m}):c(m),i.current.clear()}}})]})}}),K9=re({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(e,t,r,o)=>({elements:yo(e,t,i=>{if(he(i)){let a=Pe(i,{textAlign:r});return Xt(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t,currentItemTextAlign:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>{let i=o.scene.getNonDeletedElementsMap();return(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.textAlign")}),(0,Ie.jsx)(kn,{group:"text-align",options:[{value:"left",text:E("labels.left"),icon:gT,testId:"align-left"},{value:"center",text:E("labels.center"),icon:hT,testId:"align-horizontal-center"},{value:"right",text:E("labels.right"),icon:bT,testId:"align-right"}],value:Eo(e,t,a=>{if(he(a))return a.textAlign;let s=Ve(a,i);return s?s.textAlign:null},a=>he(a)||Ve(a,i)!==null,a=>a?null:t.currentItemTextAlign),onChange:a=>r(a)})]})}}),Y9=re({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:yo(e,t,i=>{if(he(i)){let a=Pe(i,{verticalAlign:r});return Xt(a,o.scene.getContainerElement(i),o.scene.getNonDeletedElementsMap()),a}return i},!0),appState:{...t},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Ie.jsx)("fieldset",{children:(0,Ie.jsx)(kn,{group:"text-align",options:[{value:Ko.TOP,text:E("labels.alignTop"),icon:(0,Ie.jsx)(xT,{theme:t.theme}),testId:"align-top"},{value:Ko.MIDDLE,text:E("labels.centerVertically"),icon:(0,Ie.jsx)(yT,{theme:t.theme}),testId:"align-middle"},{value:Ko.BOTTOM,text:E("labels.alignBottom"),icon:(0,Ie.jsx)(vT,{theme:t.theme}),testId:"align-bottom"}],value:Eo(e,t,i=>{if(he(i)&&i.containerId)return i.verticalAlign;let a=Ve(i,o.scene.getNonDeletedElementsMap());return a?a.verticalAlign:null},i=>he(i)||Ve(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:Ko.MIDDLE),onChange:i=>r(i)})})}),xj=re({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(e,t,r)=>({elements:yo(e,t,o=>Pe(o,{roundness:r==="round"?{type:ys(o.type)?Yo.ADAPTIVE_RADIUS:Yo.PROPORTIONAL_RADIUS}:null})),appState:{...t,currentItemRoundness:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let i=gf(We(e),t).some(a=>a.roundness?.type===Yo.LEGACY);return(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.edges")}),(0,Ie.jsx)(kn,{group:"edges",options:[{value:"sharp",text:E("labels.sharp"),icon:Q2},{value:"round",text:E("labels.round"),icon:eT}],value:Eo(e,t,a=>i?null:a.roundness?"round":"sharp",a=>a.hasOwnProperty("roundness"),a=>a?null:t.currentItemRoundness),onChange:a=>r(a)})]})}}),lk=e=>[{value:null,text:E("labels.arrowhead_none"),keyBinding:"q",icon:tT},{value:"arrow",text:E("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,Ie.jsx)(rT,{flip:e})},{value:"bar",text:E("labels.arrowhead_bar"),keyBinding:"e",icon:(0,Ie.jsx)(nT,{flip:e})},{value:"dot",text:E("labels.arrowhead_circle"),keyBinding:null,icon:(0,Ie.jsx)(Jx,{flip:e}),showInPicker:!1},{value:"circle",text:E("labels.arrowhead_circle"),keyBinding:"r",icon:(0,Ie.jsx)(Jx,{flip:e}),showInPicker:!1},{value:"circle_outline",text:E("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,Ie.jsx)(oT,{flip:e}),showInPicker:!1},{value:"triangle",text:E("labels.arrowhead_triangle"),icon:(0,Ie.jsx)(iT,{flip:e}),keyBinding:"t"},{value:"triangle_outline",text:E("labels.arrowhead_triangle_outline"),icon:(0,Ie.jsx)(aT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond",text:E("labels.arrowhead_diamond"),icon:(0,Ie.jsx)(lT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:E("labels.arrowhead_diamond_outline"),icon:(0,Ie.jsx)(sT,{flip:e}),keyBinding:null,showInPicker:!1}],vj=re({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(e,t,r)=>({elements:yo(e,t,o=>{if(Qe(o)){let{position:i,type:a}=r;if(i==="start")return Pe(o,{startArrowhead:a});if(i==="end")return Pe(o,{endArrowhead:a})}return o}),appState:{...t,[r.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:r.type},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Pi().rtl;return(0,Ie.jsxs)("fieldset",{children:[(0,Ie.jsx)("legend",{children:E("labels.arrowheads")}),(0,Ie.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,Ie.jsx)(Cy,{label:"arrowhead_start",options:lk(!o),value:Eo(e,t,i=>Qe(i)&&Ts(i.type)?i.startArrowhead:t.currentItemStartArrowhead,!0,t.currentItemStartArrowhead),onChange:i=>r({position:"start",type:i})}),(0,Ie.jsx)(Cy,{label:"arrowhead_end",group:"arrowheads",options:lk(!!o),value:Eo(e,t,i=>Qe(i)&&Ts(i.type)?i.endArrowhead:t.currentItemEndArrowhead,!0,t.currentItemEndArrowhead),onChange:i=>r({position:"end",type:i})})]})]})}});v();v();var ck=w(j(),1),dk=w(P(),1),xc=()=>{let e=document.querySelector(".excalidraw-tooltip");if(e)return e;let t=document.createElement("div");return document.body.appendChild(t),t.classList.add("excalidraw-tooltip"),t},Ly=(e,t,r="bottom")=>{let o=e.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,s=5,c=t.left+t.width/2-o.width/2;c<0?c=s:c+o.width>=i&&(c=i-o.width-s);let d;r==="bottom"?(d=t.top+t.height+s,d+o.height>=a&&(d=t.top-o.height-s)):(d=t.top-o.height-s,d<0&&(d=t.top+t.height+s)),Object.assign(e.style,{top:`${d}px`,left:`${c}px`})},V9=(e,t,r,o)=>{t.classList.add("excalidraw-tooltip--visible"),t.style.minWidth=o?"50ch":"10ch",t.style.maxWidth=o?"50ch":"15ch",t.textContent=r;let i=e.getBoundingClientRect();Ly(t,i)},Ro=({children:e,label:t,long:r=!1,style:o,disabled:i})=>((0,ck.useEffect)(()=>()=>xc().classList.remove("excalidraw-tooltip--visible"),[]),i?null:(0,dk.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:a=>V9(a.currentTarget,xc(),t,r),onPointerLeave:()=>xc().classList.remove("excalidraw-tooltip--visible"),style:o,children:e}));var Pl=w(P(),1),X9=re({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.changeViewBackgroundColor&&!t.viewModeEnabled,perform:(e,t,r)=>({appState:{...t,...r},storeAction:r.viewBackgroundColor?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Pl.jsx)(um,{palette:null,topPicks:Ku,label:E("labels.canvasBackground"),type:"canvasBackground",color:t.viewBackgroundColor,onChange:i=>r({viewBackgroundColor:i}),"data-testid":"canvas-background-picker",elements:e,appState:t,updateData:r})}),Fi=re({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:Cn,trackEvent:{category:"canvas"},predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.clearCanvas&&!t.viewModeEnabled,perform:(e,t,r,o)=>(o.imageCache.clear(),{elements:e.map(i=>Pe(i,{isDeleted:!0})),appState:{...Ns(),files:{},theme:t.theme,penMode:t.penMode,penDetected:t.penDetected,exportBackground:t.exportBackground,exportEmbedScene:t.exportEmbedScene,gridSize:t.gridSize,stats:t.stats,pasteDialog:t.pasteDialog,activeTool:t.activeTool.type==="image"?{...t.activeTool,type:"selection"}:t.activeTool},storeAction:W.CAPTURE})}),vg=re({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Dx,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...ki({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Ai(t.zoom.value+nl)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Pl.jsx)(Ce,{type:"button",className:"zoom-in-button zoom-button",icon:Dx,title:`${E("buttons.zoomIn")} \u2014 ${X("CtrlOrCmd++")}`,"aria-label":E("buttons.zoomIn"),disabled:t.zoom.value>=Ex,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.EQUAL||e.code===Ne.NUM_ADD)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),yg=re({name:"zoomOut",label:"buttons.zoomOut",icon:Nx,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...ki({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Ai(t.zoom.value-nl)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Pl.jsx)(Ce,{type:"button",className:"zoom-out-button zoom-button",icon:Nx,title:`${E("buttons.zoomOut")} \u2014 ${X("CtrlOrCmd+-")}`,"aria-label":E("buttons.zoomOut"),disabled:t.zoom.value<=Ju,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.MINUS||e.code===Ne.NUM_SUBTRACT)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),Z9=re({name:"resetZoom",label:"buttons.resetZoom",icon:_2,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...ki({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Ai(1)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Pl.jsx)(Ro,{label:E("buttons.resetZoom"),style:{height:"100%"},children:(0,Pl.jsxs)(Ce,{type:"button",className:"reset-zoom-button zoom-button",title:E("buttons.resetZoom"),"aria-label":E("buttons.resetZoom"),onClick:()=>{e(null)},children:[(t.zoom.value*100).toFixed(0),"%"]})}),keyTest:e=>(e.code===Ne.ZERO||e.code===Ne.NUM_ZERO)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),q9=(e,t)=>{let[r,o,i,a]=e,s=i-r,c=t.width/s,d=a-o,p=t.height/d,f=Math.min(c,p),m=Math.floor(f/nl)*nl;return Math.min(Math.max(m,Ju),1)},mk=({bounds:e,appState:t,fitToViewport:r=!1,viewportZoomFactor:o=.7})=>{let[i,a,s,c]=e,d=(i+s)/2,p=(a+c)/2,f,m,g;if(r){let h=s-i,b=c-a;f=Math.min(t.width/h,t.height/b)*Math.min(1,Math.max(o,.1)),f=Math.min(Math.max(f,Ju),Ex);let y=t.width;if(t.openSidebar){let k=document.querySelector(".sidebar")?.offsetWidth??0;y=document.documentElement.getAttribute("dir")==="rtl"?t.width+k:t.width-k}m=y/2*(1/f)-d,g=t.height/2*(1/f)-p}else{f=q9(e,{width:t.width,height:t.height});let h=wI({scenePoint:{x:d,y:p},viewportDimensions:{width:t.width,height:t.height},zoom:{value:f}});m=h.scrollX,g=h.scrollY}return{appState:{...t,scrollX:m,scrollY:g,zoom:{value:f}},storeAction:W.NONE}},fm=({targetElements:e,appState:t,fitToViewport:r,viewportZoomFactor:o})=>{let i=lt(We(e));return mk({bounds:i,appState:t,fitToViewport:r,viewportZoomFactor:o})},Yj=re({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:Mp,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return fm({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!1})},keyTest:e=>e.code===Ne.TWO&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),Vj=re({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:Mp,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return fm({targetElements:i.length?i:e,appState:{...t,userToFollow:null},fitToViewport:!0})},keyTest:e=>e.code===Ne.THREE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),j9=re({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:Mp,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>fm({targetElements:e,appState:{...t,userToFollow:null},fitToViewport:!1}),keyTest:e=>e.code===Ne.ONE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),Ml=re({name:"toggleTheme",label:(e,t)=>t.theme===Be.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:e=>e.theme===Be.LIGHT?Ld:Rd,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r)=>({appState:{...t,theme:r||(t.theme===Be.LIGHT?Be.DARK:Be.LIGHT)},storeAction:W.NONE}),keyTest:e=>e.altKey&&e.shiftKey&&e.code===Ne.D,predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.toggleTheme}),Xj=re({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(e,t)=>{let r;return jo(t)?r=Ht(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):r=Ht(t,{type:"eraser",lastActiveToolBeforeEraser:t.activeTool}),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:r},storeAction:W.CAPTURE}},keyTest:e=>e.key===R.E}),uk=re({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:Sp,viewMode:!1,perform:(e,t,r,o)=>{let i;return Ti(t)?i=Ht(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(i=Ht(t,{type:"hand",lastActiveToolBeforeEraser:t.activeTool}),pt(o.interactiveCanvas,ut.GRAB)),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:i},storeAction:W.CAPTURE}},keyTest:e=>!e.altKey&&!e[R.CTRL_OR_CMD]&&e.key===R.H});v();var pk=w(P(),1),nn=re({name:"finalize",label:"",trackEvent:!1,perform:(e,t,r,o)=>{let{interactiveCanvas:i,focusContainer:a,scene:s}=o,c=s.getNonDeletedElementsMap();if(t.editingLinearElement){let{elementId:g,startBindingElement:h,endBindingElement:b}=t.editingLinearElement,y=Re.getElement(g,c);if(y)return vi(y)&&Lp(y,h,b,c),{elements:y.points.length<2||wl(y)?e.filter(T=>T.id!==y.id):void 0,appState:{...t,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:W.CAPTURE}}let d=e,p=t.pendingImageElementId&&s.getElement(t.pendingImageElementId);p&&me(p,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&a();let f=t.multiElement?t.multiElement:t.editingElement?.type==="freedraw"?t.editingElement:null;if(f){if(f.type!=="freedraw"&&t.lastPointerDownWith!=="touch"){let{points:h,lastCommittedPoint:b}=f;(!b||h[h.length-1]!==b)&&me(f,{points:f.points.slice(0,-1)})}wl(f)&&(d=d.filter(h=>h.id!==f.id));let g=_d(f.points,t.zoom.value);if((f.type==="line"||f.type==="freedraw")&&g){let h=f.points,b=h[0];me(f,{points:h.map((y,T)=>T===h.length-1?[b[0],b[1]]:y)})}if(vi(f)&&!g&&f.points.length>1){let[h,b]=Re.getPointAtIndexGlobalCoordinates(f,-1,Le(e));Od(f,t,{x:h,y:b},c)}}(!t.activeTool.locked&&t.activeTool.type!=="freedraw"||!f)&&Jo(i);let m;return t.activeTool.type==="eraser"?m=Ht(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=Ht(t,{type:"selection"}),{elements:d,appState:{...t,cursorButton:"up",activeTool:(t.activeTool.locked||t.activeTool.type==="freedraw")&&f?t.activeTool:m,activeEmbeddable:null,draggingElement:null,multiElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:f&&!t.activeTool.locked&&t.activeTool.type!=="freedraw"?{...t.selectedElementIds,[f.id]:!0}:t.selectedElementIds,selectedLinearElement:f&&Qe(f)?new Re(f):t.selectedLinearElement,pendingImageElementId:null},storeAction:W.CAPTURE}},keyTest:(e,t)=>e.key===R.ESCAPE&&(t.editingLinearElement!==null||!t.draggingElement&&t.multiElement===null)||(e.key===R.ESCAPE||e.key===R.ENTER)&&t.multiElement!==null,PanelComponent:({appState:e,updateData:t,data:r})=>(0,pk.jsx)(Ce,{type:"button",icon:F2,title:E("buttons.done"),"aria-label":E("buttons.done"),onClick:t,visible:e.multiElement!=null,size:r?.size||"medium"})});v();v();var fk=w(j(),1);var gm=w(P(),1),gk=e=>{let{id:t}=ar(),[r,o]=(0,fk.useState)(e.value),i=s=>{e.ignoreFocus||JS(s.target);let c=s.target.value;c!==e.value&&e.onChange(c)},a=s=>{if(s.key===R.ENTER){if(s.preventDefault(),s.nativeEvent.isComposing||s.keyCode===229)return;s.currentTarget.blur()}};return(0,gm.jsxs)("div",{className:"ProjectName",children:[(0,gm.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${e.label}:`}),(0,gm.jsx)("input",{type:"text",className:"TextInput",onBlur:i,onKeyDown:a,id:`${t}-filename`,value:r,onChange:s=>o(s.target.value)})]})};v();var vc=w(P(),1),bk=e=>{let t=e.title||(e.value===Be.DARK?E("buttons.lightMode"):E("buttons.darkMode"));return(0,vc.jsx)(Ce,{type:"icon",icon:e.value===Be.LIGHT?hk.MOON:hk.SUN,title:t,"aria-label":t,onClick:()=>e.onChange(e.value===Be.DARK?Be.LIGHT:Be.DARK),"data-testid":"toggle-dark-mode"})},hk={SUN:(0,vc.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,vc.jsx)("path",{fill:"currentColor",d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"})}),MOON:(0,vc.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,vc.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})};v();var Ll=(e,{selectedElementIds:t},r)=>{e=We(e);let o=r&&ft(e,{selectedElementIds:t}),i=null,a=o?Oe(e,{selectedElementIds:t},{includeBoundTextElement:!0}):e;return o&&(a.length===1&&He(a[0])?(i=a[0],a=mf(e,i)):a.length>1&&(a=Oe(e,{selectedElementIds:t},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:i,exportedElements:fo(a)}},Rl=async(e,t,r,o,{exportBackground:i,exportPadding:a=la,viewBackgroundColor:s,name:c=r.name||GS,fileHandle:d=null,exportingFrame:p=null})=>{if(t.length===0)throw new Error(E("alerts.cannotExportEmptyCanvas"));if(e==="svg"||e==="clipboard-svg"){let m=of(t,{exportBackground:i,exportWithDarkMode:r.exportWithDarkMode,viewBackgroundColor:s,exportPadding:a,exportScale:r.exportScale,exportEmbedScene:r.exportEmbedScene&&e==="svg"},o,{exportingFrame:p});if(e==="svg")return nv(m.then(g=>new Blob([g.outerHTML],{type:kr.svg})),{description:"Export to SVG",name:c,extension:r.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:d});if(e==="clipboard-svg"){let g=await m.then(h=>h.outerHTML);try{await Hs(g)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return}}let f=XC(t,r,o,{exportBackground:i,viewBackgroundColor:s,exportPadding:a,exportingFrame:p});if(e==="png"){let m=Ii(f);return r.exportEmbedScene&&(m=m.then(g=>import("./excalidraw-assets/image-CMH7O36X.js").then(({encodePngMetadata:h})=>h({blob:g,metadata:iv(t,r,o,"local")})))),nv(m,{description:"Export to PNG",name:c,extension:"png",fileHandle:d})}else if(e==="clipboard")try{let m=Ii(f);await eI(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):bi&&m.name==="TypeError"?new Error(`${E("alerts.couldNotCopyToClipboard")}
|
|
42
62
|
|
|
43
|
-
${g("hints.firefox_clipboard_write")}`):new Error(g("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};h();var $y=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=Ab(a);if(!a||!Lb(l))throw new Error("fileHandle should exist and should be of type svg or png when resaving");e={...e,exportEmbedScene:!0};let{exportedElements:s,exportingFrame:c}=li(t,e,!1);return await si(l,s,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:c}),{fileHandle:a}};h();var es=v(S(),1),ci=({children:t,checked:e,onChange:o,className:r})=>(0,es.jsxs)("div",{className:z("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,es.jsx)("button",{className:"Checkbox-box",role:"checkbox","aria-checked":e,children:ax}),(0,es.jsx)("div",{className:"Checkbox-label",children:t})]});var mo=v(S(),1),Uf=$({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,mo.jsx)(By,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),Uy=$({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},commitToHistory:!1}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=be(t),i=Oe(r,e)?xe(r,e):r;return(0,mo.jsx)(mo.Fragment,{children:Ys.map(a=>{let[l,s]=Xb(i,on,a),c=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${s})`;return(0,mo.jsx)(se,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:c,"aria-label":c,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),Wf=$({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,mo.jsx)(ci,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),Vd=$({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,mo.jsxs)(ci,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,mo.jsx)(ho,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,mo.jsx)("div",{className:"excalidraw-tooltip-icon",children:ux})})]})}),Kd=$({name:"saveToActiveFile",label:"buttons.save",icon:Jn,trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.saveToActiveFile&&!!e.fileHandle&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{let n=!!e.fileHandle;try{let{fileHandle:i}=Tc(e.fileHandle)?await $y(t,e,r.files,r.getName()):await Mc(t,e,r.files,r.getName());return{commitToHistory:!1,appState:{...e,fileHandle:i,toast:n?{message:i?.name?g("toast.fileSavedToFilename").replace("{filename}",`"${i.name}"`):g("toast.fileSaved")}:null}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{commitToHistory:!1}}},keyTest:t=>t.key===T.S&&t[T.CTRL_OR_CMD]&&!t.shiftKey}),ts=$({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:Jn,viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await Mc(t,{...e,fileHandle:null},r.files,r.getName());return{commitToHistory:!1,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{commitToHistory:!1}}},keyTest:t=>t.key===T.S&&t.shiftKey&&t[T.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,mo.jsx)(se,{type:"button",icon:sx,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:Me().editor.isMobile,hidden:!Vi,onClick:()=>t(null),"data-testid":"save-as-button"})}),_a=$({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.loadScene&&!e.viewModeEnabled,perform:async(t,e,o,r)=>{try{let{elements:n,appState:i,files:a}=await np(e,t);return{elements:n,appState:i,files:a,commitToHistory:!0}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,commitToHistory:!1}}},keyTest:t=>t[T.CTRL_OR_CMD]&&t.key===T.O}),Wy=$({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,mo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,mo.jsx)(Hy,{value:t.exportWithDarkMode?Je.DARK:Je.LIGHT,onChange:o=>{e(o===Je.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var Gy="{}",Gf=$({name:"copyStyles",label:"labels.copyStyles",icon:Wp,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&cr(i)){let a=lt(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(Gy=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},commitToHistory:!1}},keyTest:t=>t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.C}),Vf=$({name:"pasteStyles",label:"labels.pasteStyles",icon:Wp,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(Gy),i=n[0],a=n[1];if(!B1(i))return{elements:t,commitToHistory:!1};let l=xe(t,e,{includeBoundTextElement:!0}),s=l.map(c=>c.id);return{elements:t.map(c=>{if(s.includes(c.id)){let m=i;if(le(c)&&c.containerId&&(m=a),!m)return c;let d=ue(c,{backgroundColor:m?.backgroundColor,strokeWidth:m?.strokeWidth,strokeColor:m?.strokeColor,strokeStyle:m?.strokeStyle,fillStyle:m?.fillStyle,opacity:m?.opacity,roughness:m?.roughness,roundness:m.roundness?z1(m.roundness.type,c)?m.roundness:H1(c):null});if(le(d)){let f=m.fontSize||kr,p=m.fontFamily||_i;d=ue(d,{fontSize:f,fontFamily:p,textAlign:m.textAlign||e1,lineHeight:m.lineHeight||Pr(p)});let b=null;d.containerId&&(b=l.find(x=>le(d)&&x.id===d.containerId)||null),$t(d,b,r.scene.getNonDeletedElementsMap())}return d.type==="arrow"&&Mr(m)&&(d=ue(d,{startArrowhead:m.startArrowhead,endArrowhead:m.endArrowhead})),Te(c)&&(d=ue(d,{roundness:null,backgroundColor:"transparent"})),d}return c}),commitToHistory:!0}},keyTest:t=>t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V});h();var Kf=v(S(),1),PC=$({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},commitToHistory:!1}),PanelComponent:({appState:t,updateData:e})=>(0,Kf.jsx)(se,{type:"button",icon:td,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),DC=$({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},commitToHistory:!1}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Kf.jsx)(se,{visible:qi(e,be(t)),type:"button",icon:cx,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),di=$({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:ox,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(t,e,o,{focusContainer:r})=>(e.openDialog?.name==="help"&&r(),{appState:{...e,openDialog:e.openDialog?.name==="help"?null:{name:"help"}},commitToHistory:!1}),keyTest:t=>t.key===T.QUESTION_MARK});h();var mi=v(S(),1),RC=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Ui(n,o),!0))return!0}return!1},Vy=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!RC(r)},Yf=$({name:"group",label:"labels.group",icon:t=>(0,mi.jsx)(Fp,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});if(n.length<2)return{appState:e,elements:t,commitToHistory:!1};let i=Rr(e);if(i.length===1){let x=i[0],y=new Set(pt(t,x).map(C=>C.id)),w=new Set(n.map(C=>C.id));if(new Set([...Array.from(y),...Array.from(w)]).size===y.size)return{appState:e,elements:t,commitToHistory:!1}}let a=[...t];new Set(n.map(x=>x.frameId)).size>1&&r0(n).forEach((y,w)=>{Nc(y,r.scene.getNonDeletedElementsMap())});let s=ln(),c=Ie(n);a=a.map(x=>c.get(x.id)?ue(x,{groupIds:vb(x.groupIds,s,e.editingGroupId)}):x);let m=pt(a,s),d=m[m.length-1],f=a.lastIndexOf(d),p=a.slice(f+1);return a=[...a.slice(0,f).filter(x=>!Ui(x,s)),...m,...p],{appState:{...e,...fb(s,{...e,selectedGroupIds:{}},be(a))},elements:a,commitToHistory:!0}},predicate:(t,e,o,r)=>Vy(t,e,r),keyTest:t=>!t.shiftKey&&t[T.CTRL_OR_CMD]&&t.key===T.G,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mi.jsx)(se,{hidden:!Vy(t,e,r),type:"button",icon:(0,mi.jsx)(Fp,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${N("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:Oe(be(t),e)})}),Zf=$({name:"ungroup",label:"labels.ungroup",icon:t=>(0,mi.jsx)(Bp,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=Rr(e),i=Ie(t);if(n.length===0)return{appState:e,elements:t,commitToHistory:!1};let a=[...t],l=[];a=a.map(f=>{bt(f)&&l.push(f.id);let p=yb(f.groupIds,e.selectedGroupIds);return p.length===f.groupIds.length?f:ue(f,{groupIds:p})});let s=Rt(e,be(a),e,null),c=r.scene.getSelectedElements(e),m=new Set(c.filter(f=>f.frameId).map(f=>f.frameId));return n0(t).filter(f=>m.has(f.id)).forEach(f=>{f&&(a=Oc(a,ji(a,f,e,i),f,r))}),s.selectedElementIds=Object.entries(s.selectedElementIds).reduce((f,[p,b])=>(b&&!l.includes(p)&&(f[p]=!0),f),{}),{appState:{...e,...s},elements:a,commitToHistory:!0}},keyTest:t=>t.shiftKey&&t[T.CTRL_OR_CMD]&&t.key===T.G.toUpperCase(),predicate:(t,e)=>Rr(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,mi.jsx)(se,{type:"button",hidden:Rr(e).length===0,icon:(0,mi.jsx)(Bp,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${N("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:Oe(be(t),e)})});h();h();h();var Yd=(t,e,o,r,n,i,a)=>{t.beginPath(),t.moveTo(e+i,o),t.lineTo(e+r-i,o),t.quadraticCurveTo(e+r,o,e+r,o+i),t.lineTo(e+r,o+n-i),t.quadraticCurveTo(e+r,o+n,e+r-i,o+n),t.lineTo(e+i,o+n),t.quadraticCurveTo(e,o+n,e,o+n-i),t.lineTo(e,o+i),t.quadraticCurveTo(e,o,e+i,o),t.closePath(),t.fill(),a&&(t.strokeStyle=a),t.stroke()};h();function NC(t){let e=0;if(t.length===0)return e;for(let o=0;o<t.length;o++){let r=t.charCodeAt(o);e=(e<<5)-e+r}return e}var ui=(t,e)=>`hsl(${Math.abs(NC(e?.id||t))%37*10}, 100%, 83%)`,Ky=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()},Yy=({context:t,renderConfig:e,appState:o,normalizedWidth:r,normalizedHeight:n})=>{for(let[i,a]of e.remotePointerViewportCoords){let{x:l,y:s}=a,c=o.collaborators.get(i);l-=o.offsetLeft,s-=o.offsetTop;let m=11,d=14,f=l<0||l>r-m||s<0||s>n-d;l=Math.max(l,0),l=Math.min(l,r-m),s=Math.max(s,0),s=Math.min(s,n-d);let p=ui(i,c);t.save(),t.strokeStyle=p,t.fillStyle=p;let b=e.remotePointerUserStates.get(i),x=f||b==="idle"||b==="away";x&&(t.globalAlpha=.3),e.remotePointerButton.get(i)==="down"&&(t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=3,t.strokeStyle="#ffffff88",t.stroke(),t.closePath(),t.beginPath(),t.arc(l,s,15,0,2*Math.PI,!1),t.lineWidth=1,t.strokeStyle=p,t.stroke(),t.closePath());let y=o.theme===Je.DARK?"#2f6330":o1,w=c?.isSpeaking;w&&(t.fillStyle=y,t.strokeStyle=y,t.lineWidth=10,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill()),t.fillStyle=il,t.strokeStyle=il,t.lineWidth=6,t.lineJoin="round",t.beginPath(),t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.stroke(),t.fill(),t.fillStyle=p,t.strokeStyle=p,t.lineWidth=2,t.lineJoin="round",t.beginPath(),x?(t.moveTo(l-1,s-1),t.lineTo(l-1,s+15),t.lineTo(l+5,s+10),t.lineTo(l+12,s+9),t.closePath(),t.fill()):(t.moveTo(l,s),t.lineTo(l+0,s+14),t.lineTo(l+4,s+9),t.lineTo(l+11,s+8),t.closePath(),t.fill(),t.stroke());let k=e.remotePointerUsernames.get(i)||"";if(!f&&k){t.font="600 12px sans-serif";let C=(w?l+0:l)+m/2,M=(w?s+0:s)+d+2,_=5,I=3,A=t.measureText(k),P=A.actualBoundingBoxDescent+A.actualBoundingBoxAscent,F=Math.max(P,12),D=C-1,W=M-1,O=A.width+2+_*2+2,U=F+2+I*2+2;if(t.roundRect?(t.beginPath(),t.roundRect(D,W,O,U,8),t.fillStyle=p,t.fill(),t.strokeStyle=il,t.stroke(),w&&(t.beginPath(),t.roundRect(D-2,W-2,O+4,U+4,8),t.strokeStyle=y,t.stroke())):Yd(t,D,W,O,U,8,il),t.fillStyle=t1,t.fillText(k,C+_+1,M+I+A.actualBoundingBoxAscent+Math.floor((F-P)/2)+2),w){t.fillStyle=y;let ee=8,K=8,pe=5;t.fillRect(D+O+K,W+(U/2-ee/2),2,ee),t.fillRect(D+O+K+pe,W+(U/2-ee*2/2),2,ee*2),t.fillRect(D+O+K+pe*2,W+(U/2-ee/2),2,ee)}}t.restore(),t.closePath()}};h();var Zy=v(H(),1);var jf=v(S(),1),Xf=({color:t,onClick:e,name:o,src:r,className:n})=>{let i=Ky(o),[a,l]=(0,Zy.useState)(!1),s=!a&&r,c=s?void 0:{background:t};return(0,jf.jsx)("div",{className:z("Avatar",n),style:c,onClick:e,children:s?(0,jf.jsx)("img",{className:"Avatar-img",src:r,alt:i,referrerPolicy:"no-referrer",onError:()=>l(!0)}):i})};var Vt=v(S(),1),OC=$({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(t,e,o)=>!o.socketId||e.userToFollow?.socketId===o.socketId||o.isCurrentUser?{appState:{...e,userToFollow:null},commitToHistory:!1}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},commitToHistory:!1},PanelComponent:({updateData:t,data:e,appState:o})=>{let{socketId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=ui(r,n),s=z({"is-followed":a,"is-current-user":n.isCurrentUser===!0,"is-speaking":n.isSpeaking,"is-in-call":n.isInCall,"is-muted":n.isMuted}),c=n.isInCall?n.isSpeaking?(0,Vt.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:g("userList.hint.isSpeaking"),children:[(0,Vt.jsx)("div",{}),(0,Vt.jsx)("div",{}),(0,Vt.jsx)("div",{})]}):n.isMuted?(0,Vt.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:g("userList.hint.micMuted"),children:l2}):(0,Vt.jsx)("div",{title:g("userList.hint.inCall"),children:a2}):null;return i?(0,Vt.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${s}`,style:{"--avatar-size":"1.5rem"},onClick:()=>t(n),children:[(0,Vt.jsx)(Xf,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,className:s}),(0,Vt.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,Vt.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[a&&(0,Vt.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:g("userList.hint.followStatus"),children:ca}),c]})]}):(0,Vt.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${s}`,children:[(0,Vt.jsx)(Xf,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,className:s}),c&&(0,Vt.jsx)("div",{className:"UserList__collaborator-status-icon",children:c})]})}});h();var qf=$({name:"addToLibrary",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let i of qs)if(n.some(a=>a.type===i))return{commitToHistory:!1,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:ln(),status:"unpublished",elements:n.map(Wi),created:Date.now()},...i])).then(()=>({commitToHistory:!1,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({commitToHistory:!1,appState:{...e,errorMessage:i.message}}))},label:"labels.addToLibrary"});h();h();var jy=(t,e,o)=>{let r=Kn(t,e),n=To(t);return r.flatMap(i=>{let a=FC(i,n,o);return i.map(l=>ue(l,{x:l.x+a.x,y:l.y+a.y}))})},FC=(t,e,{axis:o,position:r})=>{let n=To(t),[i,a]=o==="x"?["minX","maxX"]:["minY","maxY"],l={x:0,y:0};return r==="start"?{...l,[o]:e[i]-n[i]}:r==="end"?{...l,[o]:e[a]-n[a]}:{...l,[o]:(e[i]+e[a])/2-(n[i]+n[a])/2}};var pi=v(S(),1),Po=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>Te(i))},Aa=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=Ie(t),a=jy(n,i,r),l=Ie(a);return dr(t.map(s=>l.get(s.id)||s),e,o)},BC=$({name:"alignTop",label:"labels.alignTop",icon:Lp,trackEvent:{category:"element"},predicate:Po,perform:(t,e,o,r)=>({appState:e,elements:Aa(t,e,r,{position:"start",axis:"y"}),commitToHistory:!0}),keyTest:t=>t[T.CTRL_OR_CMD]&&t.shiftKey&&t.key===T.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,pi.jsx)(se,{hidden:!Po(t,e,null,r),type:"button",icon:Lp,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${N("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:Oe(be(t),e)})}),zC=$({name:"alignBottom",label:"labels.alignBottom",icon:Pp,trackEvent:{category:"element"},predicate:Po,perform:(t,e,o,r)=>({appState:e,elements:Aa(t,e,r,{position:"end",axis:"y"}),commitToHistory:!0}),keyTest:t=>t[T.CTRL_OR_CMD]&&t.shiftKey&&t.key===T.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,pi.jsx)(se,{hidden:!Po(t,e,null,r),type:"button",icon:Pp,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${N("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:Oe(be(t),e)})}),HC=$({name:"alignLeft",label:"labels.alignLeft",icon:Dp,trackEvent:{category:"element"},predicate:Po,perform:(t,e,o,r)=>({appState:e,elements:Aa(t,e,r,{position:"start",axis:"x"}),commitToHistory:!0}),keyTest:t=>t[T.CTRL_OR_CMD]&&t.shiftKey&&t.key===T.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,pi.jsx)(se,{hidden:!Po(t,e,null,r),type:"button",icon:Dp,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${N("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:Oe(be(t),e)})}),$C=$({name:"alignRight",label:"labels.alignRight",icon:Rp,trackEvent:{category:"element"},predicate:Po,perform:(t,e,o,r)=>({appState:e,elements:Aa(t,e,r,{position:"end",axis:"x"}),commitToHistory:!0}),keyTest:t=>t[T.CTRL_OR_CMD]&&t.shiftKey&&t.key===T.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,pi.jsx)(se,{hidden:!Po(t,e,null,r),type:"button",icon:Rp,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${N("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:Oe(be(t),e)})}),UC=$({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Np,trackEvent:{category:"element"},predicate:Po,perform:(t,e,o,r)=>({appState:e,elements:Aa(t,e,r,{position:"center",axis:"y"}),commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,pi.jsx)(se,{hidden:!Po(t,e,null,r),type:"button",icon:Np,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:Oe(be(t),e)})}),WC=$({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:Op,trackEvent:{category:"element"},predicate:Po,perform:(t,e,o,r)=>({appState:e,elements:Aa(t,e,r,{position:"center",axis:"x"}),commitToHistory:!0}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,pi.jsx)(se,{hidden:!Po(t,e,null,r),type:"button",icon:Op,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:Oe(be(t),e)})});h();h();var Xy=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=To(t),s=Kn(t,e).map(f=>[f,To(f)]).sort((f,p)=>f[1][n]-p[1][n]),c=0;for(let f of s)c+=f[1][a];let m=(l[a]-c)/(s.length-1);if(m<0){let f=s.findIndex(y=>y[1][r]===l[r]),p=s.findIndex(y=>y[1][i]===l[i]),b=(s[p][1][n]-s[f][1][n])/(s.length-1),x=s[f][1][n];return s.flatMap(([y,w],k)=>{let C={x:0,y:0};return k!==f&&k!==p&&(x+=b,C[o.axis]=x-w[n]),y.map(M=>ue(M,{x:M.x+C.x,y:M.y+C.y}))})}let d=l[r];return s.flatMap(([f,p])=>{let b={x:0,y:0};return b[o.axis]=d-p[r],d+=m,d+=p[a],f.map(x=>ue(x,{x:x.x+b.x,y:x.y+b.y}))})};var Jf=v(S(),1),qy=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>Te(r))},Jy=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=Xy(n,o.scene.getNonDeletedElementsMap(),r),a=Ie(i);return dr(t.map(l=>a.get(l.id)||l),e,o)},GC=$({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:Jy(t,e,r,{space:"between",axis:"x"}),commitToHistory:!0}),keyTest:t=>!t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Jf.jsx)(se,{hidden:!qy(e,r),type:"button",icon:fx,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${N("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:Oe(be(t),e)})}),VC=$({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:Jy(t,e,r,{space:"between",axis:"y"}),commitToHistory:!0}),keyTest:t=>!t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,Jf.jsx)(se,{hidden:!qy(e,r),type:"button",icon:hx,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${N("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:Oe(be(t),e)})});h();var Qf=$({name:"flipHorizontal",label:"labels.flipHorizontal",icon:m2,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:dr(Qy(t,r.scene.getNonDeletedElementsMap(),e,"horizontal"),e,r),appState:e,commitToHistory:!0}),keyTest:t=>t.shiftKey&&t.code===fe.H}),eh=$({name:"flipVertical",label:"labels.flipVertical",icon:d2,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:dr(Qy(t,r.scene.getNonDeletedElementsMap(),e,"vertical"),e,r),appState:e,commitToHistory:!0}),keyTest:t=>t.shiftKey&&t.code===fe.V&&!t[T.CTRL_OR_CMD]}),Qy=(t,e,o,r)=>{let n=xe(be(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),i=KC(n,t,e,o,r),a=Ie(i);return t.map(l=>a.get(l.id)||l)},KC=(t,e,o,r,n)=>{let{minX:i,minY:a,maxX:l,maxY:s}=To(t);return p0(o,t,o,"nw",!0,n==="horizontal"?l:i,n==="horizontal"?a:s),Vn(r)?xl(t,e,o):yl(t,o),t};h();var La=$({name:"copy",label:"labels.copy",icon:Nl,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await Qb(n,r.files,o)}catch(i){return{commitToHistory:!1,appState:{...e,errorMessage:i.message}}}return{commitToHistory:!1}},keyTest:void 0}),th=$({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n;try{n=await e0()}catch(i){return i.name==="AbortError"||i.name==="NotAllowedError"?!1:(console.error(`actionPaste ${i.name}: ${i.message}`),en?{commitToHistory:!1,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{commitToHistory:!1,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(Jb({types:n}))}catch(i){return console.error(i),{commitToHistory:!1,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{commitToHistory:!1}},keyTest:void 0}),Zd=$({name:"cut",label:"labels.cut",icon:Xx,trackEvent:{category:"element"},perform:(t,e,o,r)=>(La.perform(t,e,o,r),Bl.perform(t,e,null,r)),keyTest:t=>t[T.CTRL_OR_CMD]&&t.key===T.X}),jd=$({name:"copyAsSvg",label:"labels.copyAsSvg",icon:u2,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{commitToHistory:!1};let{exportedElements:n,exportingFrame:i}=li(t,e,!0);try{return await si("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{commitToHistory:!1}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},commitToHistory:!1}}},predicate:t=>ap&&t.length>0,keywords:["svg","clipboard","copy"]}),Xd=$({name:"copyAsPng",label:"labels.copyAsPng",icon:p2,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{commitToHistory:!1};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=li(t,e,!0);try{return await si("clipboard",i,e,r.files,{...e,exportingFrame:a,name:r.getName()}),{appState:{...e,toast:{message:g("toast.copyToClipboardAsPng",{exportSelection:n.length?g("toast.selection"):g("toast.canvas"),exportColorScheme:e.exportWithDarkMode?g("buttons.darkMode"):g("buttons.lightMode")})}},commitToHistory:!1}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},commitToHistory:!1}}},predicate:t=>Yi&&t.length>0,keyTest:t=>t.code===fe.C&&t.altKey&&t.shiftKey,keywords:["png","clipboard","copy"]}),qd=$({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(t,e,o,r)=>{let i=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).reduce((a,l)=>(le(l)&&a.push(l.text),a),[]).join(`
|
|
63
|
+
${E("hints.firefox_clipboard_write")}`):new Error(E("alerts.couldNotCopyToClipboard"))}else throw new Error("Unsupported export type")};v();var xk=async(e,t,r,o)=>{let{exportBackground:i,viewBackgroundColor:a,fileHandle:s}=t,c=CC(s);if(!s||!IC(c))throw new Error("fileHandle should exist and should be of type svg or png when resaving");t={...t,exportEmbedScene:!0};let{exportedElements:d,exportingFrame:p}=Ll(e,t,!1);return await Rl(c,d,t,r,{exportBackground:i,viewBackgroundColor:a,name:o,fileHandle:s,exportingFrame:p}),{fileHandle:s}};v();var hm=w(P(),1),Dl=({children:e,checked:t,onChange:r,className:o})=>(0,hm.jsxs)("div",{className:q("Checkbox",o,{"is-checked":t}),onClick:i=>{r(!t,i),i.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,hm.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":t,children:L2}),(0,hm.jsx)("div",{className:"Checkbox-label",children:e})]});var wo=w(P(),1),Ry=re({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(e,t,r)=>({appState:{...t,name:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t,appProps:r,data:o,app:i})=>(0,wo.jsx)(gk,{label:E("labels.fileTitle"),value:i.getName(),onChange:a=>t(a),ignoreFocus:o?.ignoreFocus??!1})}),vk=re({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(e,t,r)=>({appState:{...t,exportScale:r},storeAction:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=We(e),a=ft(o,t)?Oe(o,t):o;return(0,wo.jsx)(wo.Fragment,{children:tp.map(s=>{let[c,d]=ZC(a,la,s),p=`${E("imageExportDialog.label.scale")} ${s}x (${c}x${d})`;return(0,wo.jsx)(Ce,{size:"small",type:"radio",icon:`${s}x`,name:"export-canvas-scale",title:p,"aria-label":p,id:"export-canvas-scale",checked:s===t.exportScale,onChange:()=>r(s)},s)})})}}),Dy=re({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(e,t,r)=>({appState:{...t,exportBackground:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,wo.jsx)(Dl,{checked:e.exportBackground,onChange:r=>t(r),children:E("imageExportDialog.label.withBackground")})}),Eg=re({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(e,t,r)=>({appState:{...t,exportEmbedScene:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,wo.jsxs)(Dl,{checked:e.exportEmbedScene,onChange:r=>t(r),children:[E("imageExportDialog.label.embedScene"),(0,wo.jsx)(Ro,{label:E("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,wo.jsx)("div",{className:"excalidraw-tooltip-icon",children:B2})})]})}),wg=re({name:"saveToActiveFile",label:"buttons.save",icon:ul,trackEvent:{category:"export"},predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.saveToActiveFile&&!!t.fileHandle&&!t.viewModeEnabled,perform:async(e,t,r,o)=>{let i=!!t.fileHandle;try{let{fileHandle:a}=Xp(t.fileHandle)?await xk(e,t,o.files,o.getName()):await Vp(e,t,o.files,o.getName());return{storeAction:W.NONE,appState:{...t,fileHandle:a,toast:i?{message:a?.name?E("toast.fileSavedToFilename").replace("{filename}",`"${a.name}"`):E("toast.fileSaved")}:null}}}catch(a){return a?.name!=="AbortError"?console.error(a):console.warn(a),{storeAction:W.NONE}}},keyTest:e=>e.key===R.S&&e[R.CTRL_OR_CMD]&&!e.shiftKey}),bm=re({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:ul,viewMode:!0,trackEvent:{category:"export"},perform:async(e,t,r,o)=>{try{let{fileHandle:i}=await Vp(e,{...t,fileHandle:null},o.files,o.getName());return{storeAction:W.NONE,appState:{...t,openDialog:null,fileHandle:i,toast:{message:E("toast.fileSaved")}}}}catch(i){return i?.name!=="AbortError"?console.error(i):console.warn(i),{storeAction:W.NONE}}},keyTest:e=>e.key===R.S&&e.shiftKey&&e[R.CTRL_OR_CMD],PanelComponent:({updateData:e})=>(0,wo.jsx)(Ce,{type:"button",icon:D2,title:E("buttons.saveAs"),"aria-label":E("buttons.saveAs"),showAriaLabel:rt().editor.isMobile,hidden:!Fs,onClick:()=>e(null),"data-testid":"save-as-button"})}),yc=re({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(e,t,r,o)=>!!o.props.UIOptions.canvasActions.loadScene&&!t.viewModeEnabled,perform:async(e,t,r,o)=>{try{let{elements:i,appState:a,files:s}=await av(t,e);return{elements:i,appState:a,files:s,storeAction:W.CAPTURE}}catch(i){return i?.name==="AbortError"?(console.warn(i),!1):{elements:e,appState:{...t,errorMessage:i.message},files:o.files,storeAction:W.NONE}}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.O}),yk=re({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(e,t,r)=>({appState:{...t,exportWithDarkMode:r},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,wo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,wo.jsx)(bk,{value:e.exportWithDarkMode?Be.DARK:Be.LIGHT,onChange:r=>{t(r===Be.DARK)},title:E("imageExportDialog.label.darkMode")})})});v();var Ek="{}",Ny=re({name:"copyStyles",label:"labels.copyStyles",icon:ev,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=[],a=e.find(s=>t.selectedElementIds[s.id]);if(i.push(a),a&&go(a)){let s=Ve(a,o.scene.getNonDeletedElementsMap());i.push(s)}return a&&(Ek=JSON.stringify(i)),{appState:{...t,toast:{message:E("toast.copyStyles")}},storeAction:W.NONE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.C}),Oy=re({name:"pasteStyles",label:"labels.pasteStyles",icon:ev,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=JSON.parse(Ek),a=i[0],s=i[1];if(!c2(a))return{elements:e,storeAction:W.NONE};let c=Oe(e,t,{includeBoundTextElement:!0}),d=c.map(p=>p.id);return{elements:e.map(p=>{if(d.includes(p.id)){let f=a;if(he(p)&&p.containerId&&(f=s),!f)return p;let m=Pe(p,{backgroundColor:f?.backgroundColor,strokeWidth:f?.strokeWidth,strokeColor:f?.strokeColor,strokeStyle:f?.strokeStyle,fillStyle:f?.fillStyle,opacity:f?.opacity,roughness:f?.roughness,roundness:f.roundness?d2(f.roundness.type,p)?f.roundness:m2(p):null});if(he(m)){let g=f.fontSize||gs,h=f.fontFamily||hs;m=Pe(m,{fontSize:g,fontFamily:h,textAlign:f.textAlign||Zu,lineHeight:f.lineHeight||_i(h)});let b=null;m.containerId&&(b=c.find(y=>he(m)&&y.id===m.containerId)||null),Xt(m,b,o.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&Br(f)&&(m=Pe(m,{startArrowhead:f.startArrowhead,endArrowhead:f.endArrowhead})),He(p)&&(m=Pe(m,{roundness:null,backgroundColor:"transparent"})),m}return p}),storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V});v();var Fy=w(P(),1),J9=re({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="canvas"?null:"canvas"},storeAction:W.NONE}),PanelComponent:({appState:e,updateData:t})=>(0,Fy.jsx)(Ce,{type:"button",icon:bp,"aria-label":E("buttons.menu"),onClick:t,selected:e.openMenu==="canvas"})}),Q9=re({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(e,t)=>({appState:{...t,openMenu:t.openMenu==="shape"?null:"shape"},storeAction:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Fy.jsx)(Ce,{visible:Gs(t,We(e)),type:"button",icon:N2,"aria-label":E("buttons.edit"),onClick:r,selected:t.openMenu==="shape"})}),Nl=re({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:k2,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(e,t,r,{focusContainer:o})=>(t.openDialog?.name==="help"&&o(),{appState:{...t,openDialog:t.openDialog?.name==="help"?null:{name:"help"}},storeAction:W.NONE}),keyTest:e=>e.key===R.QUESTION_MARK});v();var Ol=w(P(),1),eF=e=>{if(e.length>=2){let t=e[0].groupIds;for(let r of t)if(e.reduce((o,i)=>o&&Os(i,r),!0))return!0}return!1},wk=(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});return o.length>=2&&!eF(o)},By=re({name:"group",label:"labels.group",icon:e=>(0,Ol.jsx)(Zx,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});if(i.length<2)return{appState:t,elements:e,storeAction:W.NONE};let a=In(t);if(a.length===1){let T=a[0],k=new Set(Gt(e,T).map(O=>O.id)),I=new Set(i.map(O=>O.id));if(new Set([...Array.from(k),...Array.from(I)]).size===k.size)return{appState:t,elements:e,storeAction:W.NONE}}let s=[...e];new Set(i.map(T=>T.frameId)).size>1&&rI(i).forEach((k,I)=>{cf(k,o.scene.getNonDeletedElementsMap())});let d=ma(),p=Le(i);s=s.map(T=>p.get(T.id)?Pe(T,{groupIds:xC(T.groupIds,d,t.editingGroupId)}):T);let f=Gt(s,d),m=f[f.length-1],g=s.lastIndexOf(m),h=s.slice(g+1),b=s.slice(0,g).filter(T=>!Os(T,d)),y=Po([...b,...f,...h],Le(f));return{appState:{...t,...pC(d,{...t,selectedGroupIds:{}},We(s))},elements:y,storeAction:W.CAPTURE}},predicate:(e,t,r,o)=>wk(e,t,o),keyTest:e=>!e.shiftKey&&e[R.CTRL_OR_CMD]&&e.key===R.G,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Ol.jsx)(Ce,{hidden:!wk(e,t,o),type:"button",icon:(0,Ol.jsx)(Zx,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.group")} \u2014 ${X("CtrlOrCmd+G")}`,"aria-label":E("labels.group"),visible:ft(We(e),t)})}),zy=re({name:"ungroup",label:"labels.ungroup",icon:e=>(0,Ol.jsx)(qx,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=In(t),a=Le(e);if(i.length===0)return{appState:t,elements:e,storeAction:W.NONE};let s=[...e],c=[];s=s.map(g=>{Sr(g)&&c.push(g.id);let h=vC(g.groupIds,t.selectedGroupIds);return h.length===g.groupIds.length?g:Pe(g,{groupIds:h})});let d=Mr(t,We(s),t,null),p=o.scene.getSelectedElements(t),f=new Set(p.filter(g=>g.frameId).map(g=>g.frameId));return oI(e).filter(g=>f.has(g.id)).forEach(g=>{g&&(s=df(s,Us(s,g,t,a),g,o))}),d.selectedElementIds=Object.entries(d.selectedElementIds).reduce((g,[h,b])=>(b&&!c.includes(h)&&(g[h]=!0),g),{}),{appState:{...t,...d},elements:s,storeAction:W.CAPTURE}},keyTest:e=>e.shiftKey&&e[R.CTRL_OR_CMD]&&e.key===R.G.toUpperCase(),predicate:(e,t)=>In(t).length>0,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Ol.jsx)(Ce,{type:"button",hidden:In(t).length===0,icon:(0,Ol.jsx)(qx,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.ungroup")} \u2014 ${X("CtrlOrCmd+Shift+G")}`,"aria-label":E("labels.ungroup"),visible:ft(We(e),t)})});v();v();v();var Sg=(e,t,r,o,i,a,s)=>{e.beginPath(),e.moveTo(t+a,r),e.lineTo(t+o-a,r),e.quadraticCurveTo(t+o,r,t+o,r+a),e.lineTo(t+o,r+i-a),e.quadraticCurveTo(t+o,r+i,t+o-a,r+i),e.lineTo(t+a,r+i),e.quadraticCurveTo(t,r+i,t,r+i-a),e.lineTo(t,r+a),e.quadraticCurveTo(t,r,t+a,r),e.closePath(),e.fill(),s&&(e.strokeStyle=s),e.stroke()};v();function tF(e){let t=0;if(e.length===0)return t;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);t=(t<<5)-t+o}return t}var Fl=(e,t)=>`hsl(${Math.abs(tF(t?.id||e))%37*10}, 100%, 83%)`,Sk=e=>{let t=e?.trim()?.codePointAt(0);return(t?String.fromCodePoint(t):"?").toUpperCase()},Tk=({context:e,renderConfig:t,appState:r,normalizedWidth:o,normalizedHeight:i})=>{for(let[a,s]of t.remotePointerViewportCoords){let{x:c,y:d}=s,p=r.collaborators.get(a);c-=r.offsetLeft,d-=r.offsetTop;let f=11,m=14,g=c<0||c>o-f||d<0||d>i-m;c=Math.max(c,0),c=Math.min(c,o-f),d=Math.max(d,0),d=Math.min(d,i-m);let h=Fl(a,p);e.save(),e.strokeStyle=h,e.fillStyle=h;let b=t.remotePointerUserStates.get(a),y=g||b==="idle"||b==="away";y&&(e.globalAlpha=.3),t.remotePointerButton.get(a)==="down"&&(e.beginPath(),e.arc(c,d,15,0,2*Math.PI,!1),e.lineWidth=3,e.strokeStyle="#ffffff88",e.stroke(),e.closePath(),e.beginPath(),e.arc(c,d,15,0,2*Math.PI,!1),e.lineWidth=1,e.strokeStyle=h,e.stroke(),e.closePath());let T=r.theme===Be.DARK?"#2f6330":IS,k=p?.isSpeaking;k&&(e.fillStyle=T,e.strokeStyle=T,e.lineWidth=10,e.lineJoin="round",e.beginPath(),e.moveTo(c,d),e.lineTo(c+0,d+14),e.lineTo(c+4,d+9),e.lineTo(c+11,d+8),e.closePath(),e.stroke(),e.fill()),e.fillStyle=bd,e.strokeStyle=bd,e.lineWidth=6,e.lineJoin="round",e.beginPath(),e.moveTo(c,d),e.lineTo(c+0,d+14),e.lineTo(c+4,d+9),e.lineTo(c+11,d+8),e.closePath(),e.stroke(),e.fill(),e.fillStyle=h,e.strokeStyle=h,e.lineWidth=2,e.lineJoin="round",e.beginPath(),y?(e.moveTo(c-1,d-1),e.lineTo(c-1,d+15),e.lineTo(c+5,d+10),e.lineTo(c+12,d+9),e.closePath(),e.fill()):(e.moveTo(c,d),e.lineTo(c+0,d+14),e.lineTo(c+4,d+9),e.lineTo(c+11,d+8),e.closePath(),e.fill(),e.stroke());let I=t.remotePointerUsernames.get(a)||"";if(!g&&I){e.font="600 12px sans-serif";let A=(k?c+0:c)+f/2,O=(k?d+0:d)+m+2,z=5,L=3,F=e.measureText(I),D=F.actualBoundingBoxDescent+F.actualBoundingBoxAscent,V=Math.max(D,12),G=A-1,Q=O-1,de=F.width+2+z*2+2,K=V+2+L*2+2;if(e.roundRect?(e.beginPath(),e.roundRect(G,Q,de,K,8),e.fillStyle=h,e.fill(),e.strokeStyle=bd,e.stroke(),k&&(e.beginPath(),e.roundRect(G-2,Q-2,de+4,K+4,8),e.strokeStyle=T,e.stroke())):Sg(e,G,Q,de,K,8,bd),e.fillStyle=CS,e.fillText(I,A+z+1,O+L+F.actualBoundingBoxAscent+Math.floor((V-D)/2)+2),k){e.fillStyle=T;let se=8,be=8,_e=5;e.fillRect(G+de+be,Q+(K/2-se/2),2,se),e.fillRect(G+de+be+_e,Q+(K/2-se*2/2),2,se*2),e.fillRect(G+de+be+_e*2,Q+(K/2-se/2),2,se)}}e.restore(),e.closePath()}};v();var Ck=w(j(),1);var $y=w(P(),1),Hy=({color:e,onClick:t,name:r,src:o,className:i})=>{let a=Sk(r),[s,c]=(0,Ck.useState)(!1),d=!s&&o,p=d?void 0:{background:e};return(0,$y.jsx)("div",{className:q("Avatar",i),style:p,onClick:t,children:d?(0,$y.jsx)("img",{className:"Avatar-img",src:o,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var Gr=w(P(),1),rF=re({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(e,t,r)=>!r.socketId||t.userToFollow?.socketId===r.socketId||r.isCurrentUser?{appState:{...t,userToFollow:null},storeAction:W.NONE}:{appState:{...t,userToFollow:{socketId:r.socketId,username:r.username||""},openMenu:t.openMenu==="canvas"?null:t.openMenu},storeAction:W.NONE},PanelComponent:({updateData:e,data:t,appState:r})=>{let{socketId:o,collaborator:i,withName:a,isBeingFollowed:s}=t,c=Fl(o,i),d=q({"is-followed":s,"is-current-user":i.isCurrentUser===!0,"is-speaking":i.isSpeaking,"is-in-call":i.isInCall,"is-muted":i.isMuted}),p=i.isInCall?i.isSpeaking?(0,Gr.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:E("userList.hint.isSpeaking"),children:[(0,Gr.jsx)("div",{}),(0,Gr.jsx)("div",{}),(0,Gr.jsx)("div",{})]}):i.isMuted?(0,Gr.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:E("userList.hint.micMuted"),children:RT}):(0,Gr.jsx)("div",{title:E("userList.hint.inCall"),children:LT}):null;return a?(0,Gr.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${d}`,style:{"--avatar-size":"1.5rem"},onClick:()=>e(i),children:[(0,Gr.jsx)(Hy,{color:c,onClick:()=>{},name:i.username||"",src:i.avatarUrl,className:d}),(0,Gr.jsx)("div",{className:"UserList__collaborator-name",children:i.username}),(0,Gr.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[s&&(0,Gr.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:E("userList.hint.followStatus"),children:Ls}),p]})]}):(0,Gr.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${d}`,children:[(0,Gr.jsx)(Hy,{color:c,onClick:()=>{e(i)},name:i.username||"",src:i.avatarUrl,className:d}),p&&(0,Gr.jsx)("div",{className:"UserList__collaborator-status-icon",children:p})]})}});v();var Uy=re({name:"addToLibrary",trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let a of ip)if(i.some(s=>s.type===a))return{storeAction:W.NONE,appState:{...t,errorMessage:E(`errors.libraryElementTypeError.${a}`)}};return o.library.getLatestLibrary().then(a=>o.library.setLibrary([{id:ma(),status:"unpublished",elements:i.map(Bs),created:Date.now()},...a])).then(()=>({storeAction:W.NONE,appState:{...t,toast:{message:E("toast.addedToLibrary")}}})).catch(a=>({storeAction:W.NONE,appState:{...t,errorMessage:a.message}}))},label:"labels.addToLibrary"});v();v();var Ik=(e,t,r)=>{let o=xl(e,t),i=qo(e);return o.flatMap(a=>{let s=oF(a,i,r);return a.map(c=>Pe(c,{x:c.x+s.x,y:c.y+s.y}))})},oF=(e,t,{axis:r,position:o})=>{let i=qo(e),[a,s]=r==="x"?["minX","maxX"]:["minY","maxY"],c={x:0,y:0};return o==="start"?{...c,[r]:t[a]-i[a]}:o==="end"?{...c,[r]:t[s]-i[s]}:{...c,[r]:(t[a]+t[s])/2-(i[a]+i[s])/2}};var Bl=w(P(),1),an=(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>1&&!i.some(a=>He(a))},Ec=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Le(e),s=Ik(i,a,o),c=Le(s);return Kn(e.map(d=>c.get(d.id)||d),t,r)},nF=re({name:"alignTop",label:"labels.alignTop",icon:Gx,trackEvent:{category:"element"},predicate:an,perform:(e,t,r,o)=>({appState:t,elements:Ec(e,t,o,{position:"start",axis:"y"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_UP,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Bl.jsx)(Ce,{hidden:!an(e,t,null,o),type:"button",icon:Gx,onClick:()=>r(null),title:`${E("labels.alignTop")} \u2014 ${X("CtrlOrCmd+Shift+Up")}`,"aria-label":E("labels.alignTop"),visible:ft(We(e),t)})}),iF=re({name:"alignBottom",label:"labels.alignBottom",icon:Wx,trackEvent:{category:"element"},predicate:an,perform:(e,t,r,o)=>({appState:t,elements:Ec(e,t,o,{position:"end",axis:"y"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_DOWN,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Bl.jsx)(Ce,{hidden:!an(e,t,null,o),type:"button",icon:Wx,onClick:()=>r(null),title:`${E("labels.alignBottom")} \u2014 ${X("CtrlOrCmd+Shift+Down")}`,"aria-label":E("labels.alignBottom"),visible:ft(We(e),t)})}),aF=re({name:"alignLeft",label:"labels.alignLeft",icon:Kx,trackEvent:{category:"element"},predicate:an,perform:(e,t,r,o)=>({appState:t,elements:Ec(e,t,o,{position:"start",axis:"x"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_LEFT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Bl.jsx)(Ce,{hidden:!an(e,t,null,o),type:"button",icon:Kx,onClick:()=>r(null),title:`${E("labels.alignLeft")} \u2014 ${X("CtrlOrCmd+Shift+Left")}`,"aria-label":E("labels.alignLeft"),visible:ft(We(e),t)})}),lF=re({name:"alignRight",label:"labels.alignRight",icon:Yx,trackEvent:{category:"element"},predicate:an,perform:(e,t,r,o)=>({appState:t,elements:Ec(e,t,o,{position:"end",axis:"x"}),storeAction:W.CAPTURE}),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&e.key===R.ARROW_RIGHT,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Bl.jsx)(Ce,{hidden:!an(e,t,null,o),type:"button",icon:Yx,onClick:()=>r(null),title:`${E("labels.alignRight")} \u2014 ${X("CtrlOrCmd+Shift+Right")}`,"aria-label":E("labels.alignRight"),visible:ft(We(e),t)})}),sF=re({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Vx,trackEvent:{category:"element"},predicate:an,perform:(e,t,r,o)=>({appState:t,elements:Ec(e,t,o,{position:"center",axis:"y"}),storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Bl.jsx)(Ce,{hidden:!an(e,t,null,o),type:"button",icon:Vx,onClick:()=>r(null),title:E("labels.centerVertically"),"aria-label":E("labels.centerVertically"),visible:ft(We(e),t)})}),cF=re({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:Xx,trackEvent:{category:"element"},predicate:an,perform:(e,t,r,o)=>({appState:t,elements:Ec(e,t,o,{position:"center",axis:"x"}),storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Bl.jsx)(Ce,{hidden:!an(e,t,null,o),type:"button",icon:Xx,onClick:()=>r(null),title:E("labels.centerHorizontally"),"aria-label":E("labels.centerHorizontally"),visible:ft(We(e),t)})});v();v();var _k=(e,t,r)=>{let[o,i,a,s]=r.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],c=qo(e),d=xl(e,t).map(g=>[g,qo(g)]).sort((g,h)=>g[1][i]-h[1][i]),p=0;for(let g of d)p+=g[1][s];let f=(c[s]-p)/(d.length-1);if(f<0){let g=d.findIndex(T=>T[1][o]===c[o]),h=d.findIndex(T=>T[1][a]===c[a]),b=(d[h][1][i]-d[g][1][i])/(d.length-1),y=d[g][1][i];return d.flatMap(([T,k],I)=>{let A={x:0,y:0};return I!==g&&I!==h&&(y+=b,A[r.axis]=y-k[i]),T.map(O=>Pe(O,{x:O.x+A.x,y:O.y+A.y}))})}let m=c[o];return d.flatMap(([g,h])=>{let b={x:0,y:0};return b[r.axis]=m-h[o],m+=f,m+=h[s],g.map(y=>Pe(y,{x:y.x+b.x,y:y.y+b.y}))})};var Gy=w(P(),1),Ak=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length>1&&!r.some(o=>He(o))},kk=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=_k(i,r.scene.getNonDeletedElementsMap(),o),s=Le(a);return Kn(e.map(c=>s.get(c.id)||c),t,r)},dF=re({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:kk(e,t,o,{space:"between",axis:"x"}),storeAction:W.CAPTURE}),keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.H,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gy.jsx)(Ce,{hidden:!Ak(t,o),type:"button",icon:$2,onClick:()=>r(null),title:`${E("labels.distributeHorizontally")} \u2014 ${X("Alt+H")}`,"aria-label":E("labels.distributeHorizontally"),visible:ft(We(e),t)})}),mF=re({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:kk(e,t,o,{space:"between",axis:"y"}),storeAction:W.CAPTURE}),keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V,PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gy.jsx)(Ce,{hidden:!Ak(t,o),type:"button",icon:H2,onClick:()=>r(null),title:`${E("labels.distributeVertically")} \u2014 ${X("Alt+V")}`,"aria-label":E("labels.distributeVertically"),visible:ft(We(e),t)})});v();var Wy=re({name:"flipHorizontal",label:"labels.flipHorizontal",icon:FT,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Kn(Mk(e,o.scene.getNonDeletedElementsMap(),t,"horizontal",o),t,o),appState:t,storeAction:W.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.H}),Ky=re({name:"flipVertical",label:"labels.flipVertical",icon:OT,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Kn(Mk(e,o.scene.getNonDeletedElementsMap(),t,"vertical",o),t,o),appState:t,storeAction:W.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.V&&!e[R.CTRL_OR_CMD]}),Mk=(e,t,r,o,i)=>{let a=Oe(We(e),r,{includeBoundTextElement:!0,includeElementsInFrames:!0}),s=uF(a,t,r,o,i),c=Le(s);return e.map(d=>c.get(d.id)||d)},uF=(e,t,r,o,i)=>{let{minX:a,minY:s,maxX:c,maxY:d}=qo(e);return gI(t,e,t,"nw",!0,!0,o==="horizontal"?c:a,o==="horizontal"?s:d),gl(e.filter(Qe),t,fl(r),[]),e};v();var wc=re({name:"copy",label:"labels.copy",icon:Pd,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await JC(i,o.files,r)}catch(a){return{storeAction:W.NONE,appState:{...t,errorMessage:a.message}}}return{storeAction:W.NONE}},keyTest:void 0}),Yy=re({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i;try{i=await QC()}catch(a){return a.name==="AbortError"||a.name==="NotAllowedError"?!1:(console.error(`actionPaste ${a.name}: ${a.message}`),bi?{storeAction:W.NONE,appState:{...t,errorMessage:E("hints.firefox_clipboard_write")}}:{storeAction:W.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnRead")}})}try{o.pasteFromClipboard(jC({types:i}))}catch(a){return console.error(a),{storeAction:W.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnParse")}}}return{storeAction:W.NONE}},keyTest:void 0}),Tg=re({name:"cut",label:"labels.cut",icon:wT,trackEvent:{category:"element"},perform:(e,t,r,o)=>(wc.perform(e,t,r,o),Jd.perform(e,t,null,o)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.X}),Cg=re({name:"copyAsSvg",label:"labels.copyAsSvg",icon:BT,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:W.NONE};let{exportedElements:i,exportingFrame:a}=Ll(e,t,!0);try{return await Rl("clipboard-svg",i,t,o.files,{...t,exportingFrame:a,name:o.getName()}),{storeAction:W.NONE}}catch(s){return console.error(s),{appState:{...t,errorMessage:s.message},storeAction:W.NONE}}},predicate:e=>gv&&e.length>0,keywords:["svg","clipboard","copy"]}),Ig=re({name:"copyAsPng",label:"labels.copyAsPng",icon:zT,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:W.NONE};let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:a,exportingFrame:s}=Ll(e,t,!0);try{return await Rl("clipboard",a,t,o.files,{...t,exportingFrame:s,name:o.getName()}),{appState:{...t,toast:{message:E("toast.copyToClipboardAsPng",{exportSelection:i.length?E("toast.selection"):E("toast.canvas"),exportColorScheme:t.exportWithDarkMode?E("buttons.darkMode"):E("buttons.lightMode")})}},storeAction:W.NONE}}catch(c){return console.error(c),{appState:{...t,errorMessage:c.message},storeAction:W.NONE}}},predicate:e=>$s&&e.length>0,keyTest:e=>e.code===Ne.C&&e.altKey&&e.shiftKey,keywords:["png","clipboard","copy"]}),_g=re({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(e,t,r,o)=>{let a=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).reduce((s,c)=>(he(c)&&s.push(c.text),s),[]).join(`
|
|
44
64
|
|
|
45
|
-
`);try{Zi(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{commitToHistory:!1}},predicate:(t,e,o,r)=>ap&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(le),keywords:["text","clipboard","copy"]});h();var Jd=$({name:"gridMode",label:"labels.showGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:Ir,objectsSnapModeEnabled:!1},commitToHistory:!1}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",keyTest:t=>t[T.CTRL_OR_CMD]&&t.code===fe.QUOTE});h();var Pa=$({name:"zenMode",label:"buttons.zenMode",icon:h2,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},commitToHistory:!1}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",keyTest:t=>!t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.Z});h();var oh=$({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:f2,viewMode:!1,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},commitToHistory:!1}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",keyTest:t=>!t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.S});h();var Tn=$({name:"stats",label:"stats.title",icon:c2,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},commitToHistory:!1}},checked:t=>t.showStats,keyTest:t=>!t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.SLASH});h();var rh=$({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>cr(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=lt(a,i);if(l){let{width:s,height:c}=fc(l.originalText,Ko(l),l.lineHeight),m=tb(a.id);eb(a.id);let{x:d,y:f}=pc(a,l,i);te(l,{containerId:null,width:s,height:c,text:l.originalText,x:d,y:f}),te(a,{boundElements:a.boundElements?.filter(p=>p.id!==l.id),height:m||a.height})}}),{elements:t,appState:e,commitToHistory:!0}}}),nh=$({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);if(n.length===2){let i=le(n[0])||le(n[1]),a;if(Ri(n[0])?a=n[0]:Ri(n[1])&&(a=n[1]),i&&a&<(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;le(n[0])&&Ri(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),te(i,{containerId:a.id,verticalAlign:vo.MIDDLE,textAlign:al.CENTER}),te(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return $t(i,a,r.scene.getNonDeletedElementsMap()),wl(a.id,l),{elements:YC(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},commitToHistory:!0}}}),YC=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===o.id);r.splice(n,1);let i=r.findIndex(a=>a.id===e.id);return r.splice(i+1,0,o),r},ZC=(t,e,o)=>{let r=t.slice(),n=r.findIndex(a=>a.id===e.id);r.splice(n,1);let i=r.findIndex(a=>a.id===o.id);return r.splice(i,0,e),r},eE=$({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>le(a));return n.length>0&&i},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=t.slice(),a={};for(let l of n)if(le(l)){let s=dn({type:"rectangle",backgroundColor:e.currentItemBackgroundColor,boundElements:[...l.boundElements||[],{id:l.id,type:"text"}],angle:l.angle,fillStyle:e.currentItemFillStyle,strokeColor:e.currentItemStrokeColor,roughness:e.currentItemRoughness,strokeWidth:e.currentItemStrokeWidth,strokeStyle:e.currentItemStrokeStyle,roundness:e.currentItemRoundness==="round"?{type:Ni("rectangle")?yo.ADAPTIVE_RADIUS:yo.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-Lu,y:l.y-Lu,width:Hi(l.width,"rectangle"),height:Hi(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let c=l.boundElements.filter(d=>d.type==="arrow").map(d=>d.id);i.filter(d=>c.includes(d.id)).forEach(d=>{let f=d.startBinding,p=d.endBinding;f?.elementId===l.id&&(f={...f,elementId:s.id}),p?.elementId===l.id&&(p={...p,elementId:s.id}),(f||p)&&te(d,{startBinding:f,endBinding:p},!1)})}te(l,{containerId:s.id,verticalAlign:vo.MIDDLE,boundElements:null,textAlign:al.CENTER},!1),$t(l,s,r.scene.getNonDeletedElementsMap()),i=ZC([...i,s],s,l),a[s.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},commitToHistory:!0}}});h();h();var Qo=v(H(),1);var Kr=v(S(),1),lh=320,tE=85,ih=5,jC=42,XC=500,ah=!1,Qd=new Map,oE=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=Da(),l=Sn(),s=t.link||"",[c,m]=(0,Qo.useState)(s),d=(0,Qo.useRef)(null),f=a.showHyperlinkPopup==="editor",p=(0,Qo.useCallback)(()=>{if(!d.current)return;let k=Nr(d.current.value)||null;if(!t.link&&k&&ve("hyperlink","create"),Ht(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!k){te(t,{link:null}),i(t,!1);return}if(!Gi(k,l.validateEmbeddable))k&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&Qd.set(t.id,t.link),te(t,{link:k}),i(t,!1);else{let{width:C,height:M}=t,_=Yn(k);_?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let I=_?_.intrinsicSize.w/_.intrinsicSize.h:1,A=Qd.get(t.id)!==t.link;te(t,{...A?{width:_?.type==="video"?C>M?C:M*I:C,height:_?.type==="video"&&C>M?C/I:M}:{},link:k}),i(t,!0),Qd.has(t.id)&&Qd.delete(t.id)}}else te(t,{link:k})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,Qo.useLayoutEffect)(()=>()=>{p()},[p]),(0,Qo.useEffect)(()=>{let k=null,C=M=>{if(f)return;k&&clearTimeout(k),JC(t,e,a,[M.clientX,M.clientY])&&(k=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},XC))};return window.addEventListener("pointermove",C,!1),()=>{window.removeEventListener("pointermove",C,!1),k&&clearTimeout(k)}},[a,t,f,o,e]);let b=(0,Qo.useCallback)(()=>{ve("hyperlink","delete"),te(t,{link:null}),f&&(d.current.value=""),o({showHyperlinkPopup:!1})},[o,t,f]),x=()=>{ve("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:y,y:w}=rE(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,Kr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${w}px`,left:`${y}px`,width:lh,padding:ih},onClick:()=>{!t.link&&!f&&o({showHyperlinkPopup:"editor"})},children:[f?(0,Kr.jsx)("input",{className:z("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:d,value:c,onChange:k=>m(k.target.value),autoFocus:!0,onKeyDown:k=>{k.stopPropagation(),k[T.CTRL_OR_CMD]&&k.key===T.K&&k.preventDefault(),(k.key===T.ENTER||k.key===T.ESCAPE)&&(p(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,Kr.jsx)("a",{href:Nr(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:xc(t.link)?"_self":"_blank",onClick:k=>{if(t.link&&r){let C=oc("excalidraw-link",k.nativeEvent);r({...t,link:Nr(t.link)},C),C.defaultPrevented&&k.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,Kr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,Kr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!f&&(0,Kr.jsx)(se,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:na}),s&&!Ht(t)&&(0,Kr.jsx)(se,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:Xo})]})]})},rE=(t,e,o)=>{let[r,n]=Co(t,o),{x:i,y:a}=qt({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-lh/2,s=a-e.offsetTop-tE;return{x:l,y:s}},sh=(t,e)=>{let o=xe(t,e);return o[0]?.link?Ht(o[0])?"labels.link.editEmbed":"labels.link.edit":Ht(o[0])?"labels.link.createEmbed":"labels.link.create"},os=null,nE=(t,e,o)=>{os&&clearTimeout(os),os=window.setTimeout(()=>qC(t,e,o),m1)},qC=(t,e,o)=>{if(!t.link)return;let r=Ia();r.classList.add("excalidraw-tooltip--visible"),r.style.maxWidth="20rem",r.textContent=t.link;let[n,i,a,l]=Co(t,o),[s,c,m,d]=Wb([n,i,a,l],t.angle,e),f=qt({sceneX:s,sceneY:c},e);$f(r,{left:f.x,top:f.y,width:m,height:d},"top"),ve("hyperlink","tooltip","link-icon"),ah=!0},iE=()=>{os&&clearTimeout(os),ah&&(ah=!1,Ia().classList.remove("excalidraw-tooltip--visible"))},JC=(t,e,o,[r,n])=>{let{x:i,y:a}=Ve({clientX:r,clientY:n},o),l=15/o.zoom.value;if(j1(t,e,[i,a],l,null))return!1;let[s,c,m]=Co(t,e);if(i>=s&&i<=m&&a>=c-tE&&a<=c)return!1;let{x:d,y:f}=rE(t,o,e);return!(r>=d-l&&r<=d+lh+ih*2+l&&n>=f-l&&n<=f+l+ih*2+jC)};var aE=v(S(),1),rs=$({name:"hyperlink",label:(t,e)=>sh(t,e),icon:Ol,perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},commitToHistory:!0},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[T.CTRL_OR_CMD]&&t.key===T.K,predicate:(t,e)=>xe(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=xe(t,e);return(0,aE.jsx)(se,{type:"button",icon:Ol,"aria-label":g(sh(t,e)),title:`${Ht(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${N("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var ch=t=>t.every(e=>!e.locked),dh=$({name:"toggleElementLock",label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!Te(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":ch(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(t,e)=>{let o=xe(e,t);return ch(o)?ra:qn},trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>0&&!n.some(i=>i.locked&&i.frameId)},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!n.length)return!1;let i=ch(n),a=Ie(n);return{elements:t.map(l=>a.has(l.id)?ue(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},commitToHistory:!0}},keyTest:(t,e,o,r)=>t.key.toLocaleLowerCase()===T.L&&t[T.CTRL_OR_CMD]&&t.shiftKey&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1}).length>0}),lE=$({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:qn,predicate:(t,e)=>xe(t,e).length===0&&t.some(r=>r.locked),perform:(t,e)=>{let o=t.filter(r=>r.locked);return{elements:t.map(r=>r.locked?ue(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},commitToHistory:!0}},label:"labels.elementLock.unlockAll"});h();h();var Oo=v(H(),1);h();var Em=v(H(),1);h();var em=v(H(),1),sE=()=>{let[t,e]=(0,em.useState)(null),o=(0,em.useCallback)(r=>e(r),[]);return[t,o]};h();var cE=v(H(),1);var dE=v(S(),1),Bt=cE.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,dE.jsx)("div",{className:z("Island",o),style:{"--padding":e,...r},ref:n,children:t}));h();var mE=v(pr(),1);var uE=v(H(),1),ns=v(S(),1),pE=t=>{let{closeOnClickOutside:e=!0}=t,o=zd({className:"excalidraw-modal-container"}),r=(0,uE.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!o)return null;let n=i=>{i.key===T.ESCAPE&&(i.nativeEvent.stopImmediatePropagation(),i.stopPropagation(),t.onCloseRequest())};return(0,mE.createPortal)((0,ns.jsxs)("div",{className:z("Modal",t.className,{"animations-disabled":r.current}),role:"dialog","aria-modal":"true",onKeyDown:n,"aria-labelledby":t.labelledBy,"data-prevent-outside-click":!0,children:[(0,ns.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,ns.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var bo=v(H(),1);h();var Na=v(H(),1);h();var tm=v(H(),1);var mh=$e(new Map),fE=async t=>await _l({elements:t,appState:{exportBackground:!1,viewBackgroundColor:Sr.white},files:null,renderEmbeddables:!1}),hE=(t,e,o)=>{let[r,n]=(0,tm.useState)();return(0,tm.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await fE(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await fE(e);n(i)})()},[t,e,o,n]),r},om=()=>{let[t]=Ee(mh,Pe);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};h();var Do=class{subscribers=[];on(...e){let o=e.flat().filter(r=>typeof r=="function");return this.subscribers.push(...o),()=>this.off(o)}once(...e){let o=e.flat().filter(n=>typeof n=="function");o.push(()=>r());let r=this.on(...o);return r}off(...e){let o=e.flat();this.subscribers=this.subscribers.filter(r=>!o.includes(r))}trigger(...e){for(let o of this.subscribers)o(...e);return this}clear(){this.subscribers=[]}};h();var rm=class{jobs=[];running=!1;tick(){if(this.running)return;let e=this.jobs.shift();e?(this.running=!0,e.promise.resolve(ml(e.jobFactory,...e.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(e,...o){let r=ec();return this.jobs.push({jobFactory:e,promise:r,args:o}),this.tick(),r}};var bE=new Do,fi=$e({status:"loaded",isInitialized:!1,libraryItems:[]}),is=t=>sr(t),QC=(t,e)=>!t.find(o=>o.elements.length!==e.elements.length?!1:o.elements.every((r,n)=>r.id===e.elements[n].id&&r.versionNonce===e.elements[n].versionNonce)),xE=(t,e)=>{let o=[];for(let r of e)QC(t,r)&&o.push(r);return[...o,...t]},vE=(t,e)=>{let o=Ie(e),r={deletedItems:new Map,addedItems:new Map};for(let i of t)o.has(i.id)||r.deletedItems.set(i.id,i);let n=Ie(t);for(let i of e)n.has(i.id)||r.addedItems.set(i.id,i);return r},uh=class{currLibraryItems=[];prevLibraryItems=is(this.currLibraryItems);app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Ut.set(fi,e=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:e.isInitialized}));else{Ut.set(fi,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let e=this.prevLibraryItems;this.prevLibraryItems=is(this.currLibraryItems);let o=is(this.currLibraryItems);this.app.props.onLibraryChange?.(o),bE.trigger(vE(e,o),o)}catch(e){console.error(e)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Ut.set(mh,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async e=>{try{let o=await(this.getLastUpdateTask()||this.currLibraryItems);this.updateQueue.length>0?e(this.getLatestLibrary()):e(is(o))}catch{return e(this.currLibraryItems)}});updateLibrary=async({libraryItems:e,prompt:o=!1,merge:r=!1,openLibraryMenu:n=!1,defaultStatus:i="unpublished"})=>(n&&this.app.setState({openSidebar:{name:Vo.name,tab:Xs}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let s=await(typeof e=="function"&&!(e instanceof Blob)?e(this.currLibraryItems):e),c;s instanceof Blob?c=await tp(s,i):c=kl(s,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:c.length}))?(o&&this.app.focusContainer(),a(r?xE(this.currLibraryItems,c):c)):l(new Ki)}catch(s){l(s)}})));setLibrary=e=>{let o=new Promise(async(r,n)=>{try{await this.getLastUpdateTask(),typeof e=="function"&&(e=e(this.currLibraryItems)),this.currLibraryItems=is(await e),r(this.currLibraryItems)}catch(i){n(i)}}).catch(r=>{if(r.name==="AbortError")return console.warn("Library update aborted by user"),this.currLibraryItems;throw r}).finally(()=>{this.updateQueue=this.updateQueue.filter(r=>r!==o),this.notifyListeners()});return this.updateQueue.push(o),this.notifyListeners(),o}},yE=uh,am=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=p=>t.slice(p*o,p*o+o).reduce((x,y)=>{let{height:w}=To(y.elements);return Math.max(x,w)},0),i=p=>{let b=0,x=0,y=0;for(let w of t){if(b%o===0&&(x=0),x===p){let{width:k}=To(w.elements);y=Math.max(y,k)}b++,x++}return y},a=0,l=0,s=0,c=0,m=0,d=0,f=0;for(let p of t){m&&m%o===0&&(l+=s+50,a=0,d=0,f++),d===0&&(s=n(f)),c=i(d);let{minX:b,minY:x,width:y,height:w}=To(p.elements),k=(c-y)/2,C=(s-w)/2;r.push(...p.elements.map(M=>({...M,x:M.x+a+k-b,y:M.y+l+C-x}))),a+=c+50,m++,d++}return r},ph=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(Ks.addLibrary)||new URLSearchParams(window.location.search).get(Vs.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},Ra=class t{static queue=new rm;static async getLibraryItems(e,o,r=!0){let n=()=>new Promise(async(i,a)=>{try{let l=await e.load({source:o});i(kl(l?.libraryItems||[],"published"))}catch(l){a(l)}});return r?t.queue.push(n):n()}static run=async(e,o)=>{let r=new t(e);return t.queue.push(()=>o(r))};adapter;constructor(e){this.adapter=e}getLibraryItems(e){return t.getLibraryItems(this.adapter,e,!1)}},as=0,nm=0,im=t=>gp(t.map(e=>`${e.id}:${hp(e.elements)}`).sort().join()),gE=async(t,e)=>{try{return nm++,await Ra.run(t,async o=>{let r=Ie(await o.getLibraryItems("save"));for(let[l]of e.deletedItems)r.delete(l);let n=[];for(let[l,s]of e.addedItems)r.has(l)?r.set(l,s):n.push(s);let i=n.concat(Array.from(r.values())),a=im(i);return a!==as&&await t.save({libraryItems:i}),as=a,i})}finally{nm--}},eT=t=>{let{excalidrawAPI:e}=t,o=(0,Na.useRef)(t);o.current=t;let r=(0,Na.useRef)(!1);(0,Na.useEffect)(()=>{if(!e)return;r.current=!1;let n=async({libraryUrl:l,idToken:s})=>{let c=new Promise(async(d,f)=>{try{let b=await(await fetch(decodeURIComponent(l))).blob();d(b)}catch(p){f(p)}}),m=s!==e.id;await(m&&document.hidden?new Promise(d=>{window.addEventListener("focus",()=>d(),{once:!0})}):null);try{await e.updateLibrary({libraryItems:c,prompt:m,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(d){throw d}finally{if(window.location.hash.includes(Ks.addLibrary)){let d=new URLSearchParams(window.location.hash.slice(1));d.delete(Ks.addLibrary),window.history.replaceState({},ol,`#${d.toString()}`)}else if(window.location.search.includes(Vs.addLibrary)){let d=new URLSearchParams(window.location.search);d.delete(Vs.addLibrary),window.history.replaceState({},ol,`?${d.toString()}`)}}},i=l=>{l.preventDefault();let s=ph();s&&(l.stopImmediatePropagation(),window.history.replaceState({},"",l.oldURL),n(s))},a=ph();if(a&&n(a),"getInitialLibraryItems"in o.current&&o.current.getInitialLibraryItems&&(console.warn("useHandleLibrar `opts.getInitialLibraryItems` is deprecated. Use `opts.adapter` instead."),Promise.resolve(o.current.getInitialLibraryItems()).then(l=>{e.updateLibrary({libraryItems:l,merge:!0})}).catch(l=>{console.error(`UseHandeLibrary getInitialLibraryItems failed: ${l?.message}`)})),"adapter"in o.current&&o.current.adapter){let l=o.current.adapter,s=o.current.migrationAdapter,c=ec();s?c.resolve(ml(s.load).then(async m=>{let d=null;try{if(!m)return Ra.getLibraryItems(l,"load");d=kl(m.libraryItems||[],"published");let f=await gE(l,vE([],d));try{await s.clear()}catch(p){console.error(`couldn't delete legacy library data: ${p.message}`)}return f}catch(f){return console.error(`couldn't migrate legacy library data: ${f.message}`),d}}).catch(m=>(console.error(`error during library migration: ${m.message}`),Ra.getLibraryItems(l,"load")))):c.resolve(ml(Ra.getLibraryItems,l,"load")),e.updateLibrary({libraryItems:c.then(m=>{let d=m||[];return as=im(d),d}),merge:!0}).finally(()=>{r.current=!0})}return window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}},[e]),(0,Na.useEffect)(()=>{let n=bE.on(async(a,l)=>{let s=r.current,c="adapter"in o.current&&o.current.adapter||null;try{c&&as!==im(l)&&await gE(c,a)}catch(m){console.error(`couldn't persist library update: ${m.message}`,a),s&&o.current.excalidrawAPI&&o.current.excalidrawAPI.updateScene({appState:{errorMessage:g("errors.saveLibraryError")}})}}),i=a=>{nm&&A1(a)};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i),n(),as=0,nm=0}},[])};h();var Kt=v(H(),1);h();var fh=v(H(),1);var hh=v(S(),1),tT=(0,fh.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,hh.jsx)("div",{className:z("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),oT=(0,fh.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,hh.jsx)("div",{className:z("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),At={Row:tT,Col:oT};h();h();var wE=v(S(),1),rT=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,wE.jsx)("a",{className:"library-menu-browse-button",href:`${E.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${r}&useHash=true&token=${e}&theme=${t}&version=${Zs.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},EE=rT;var sm=v(S(),1),lm=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,sm.jsxs)("div",{className:z("library-menu-control-buttons",i),style:r,children:[(0,sm.jsx)(EE,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var Ha=v(H(),1);h();var ls=v(H(),1);var nT=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,iT=/{{([\w-]+)}}/,aT=/<([\w-]+)>/,lT=/<\/([\w-]+)>/,sT=(t,e)=>{let o=[{name:"",children:[]}];return t.split(nT).filter(Boolean).forEach(r=>{let n=r.match(aT),i=r.match(lT),a=r.match(iT);if(n!==null){let l=n[1];e.hasOwnProperty(l)?o.push({name:l,children:[]}):console.warn(`Trans: missed to pass in prop ${l} for interpolating ${t}`)}else if(i!==null)if(i[1]===o[o.length-1].name){let s=o.pop(),c=ls.default.createElement(ls.default.Fragment,{},...s.children),m=e[s.name];typeof m=="function"&&o[o.length-1].children.push(m(c))}else console.warn(`Trans: unexpected end tag ${r} for interpolating ${t}`);else if(a!==null){let l=a[1];e.hasOwnProperty(l)?o[o.length-1].children.push(e[l]):console.warn(`Trans: key ${l} not in props for interpolating ${t}`)}else o[o.length-1].children.push(r)}),o.length!==1&&console.warn(`Trans: stack not empty for interpolating ${t}`),o[0].children},cT=({i18nKey:t,children:e,...o})=>{let{t:r}=xt();return ls.default.createElement(ls.default.Fragment,{},...sT(r(t),o))},oo=cT;h();h();var hi=v(S(),1),dT=({label:t,onClick:e,className:o,children:r,actionType:n,type:i="button",isLoading:a,...l})=>{let s=n?`Dialog__action-button--${n}`:"";return(0,hi.jsxs)("button",{className:z("Dialog__action-button",s,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,hi.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,hi.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,hi.jsx)("div",{style:{position:"absolute",inset:0},children:(0,hi.jsx)(Nt,{})})]})},Oa=dT;var Fa=v(S(),1),mT=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,s=_e(),c=zr(Ba,Pe),{container:m}=Mt();return(0,Fa.jsxs)(Qe,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,Fa.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Fa.jsx)(Oa,{label:i,onClick:()=>{s({openMenu:null}),c(!1),o(),m?.focus()}}),(0,Fa.jsx)(Oa,{label:n,onClick:()=>{s({openMenu:null}),c(!1),e(),m?.focus()},actionType:"danger"})]})]})},cm=mT;h();var go=v(H(),1);h();var uo=class{static has(e){try{return!!window.localStorage.getItem(e)}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),!1}}static get(e){try{let o=window.localStorage.getItem(e);return o?JSON.parse(o):null}catch(o){return console.warn(`localStorage.getItem error: ${o.message}`),null}}static set=(e,o)=>{try{return window.localStorage.setItem(e,JSON.stringify(o)),!0}catch(r){return console.warn(`localStorage.setItem error: ${r.message}`),!1}};static delete=e=>{try{window.localStorage.removeItem(e)}catch(o){console.warn(`localStorage.removeItem error: ${o.message}`)}}};var re=v(S(),1),uT=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=I1(t,6),a=document.createElement("canvas");a.width=i[0].length*128+(i[0].length+1)*(r*2)-r*2,a.height=i.length*128+(i.length+1)*(r*2)-r*2;let l=a.getContext("2d");l.fillStyle=It.white,l.fillRect(0,0,a.width,a.height);for(let[s,c]of t.entries()){let m=await Zn({elements:c.elements,files:null,maxWidthOrHeight:128}),{width:d,height:f}=m,p=Math.floor(s/6)*(128+r*2),b=s%6*(128+r*2);l.drawImage(m,b+(128-d)/2+r,p+(128-f)/2+r),l.lineWidth=n,l.strokeStyle=It.gray[4],l.strokeRect(b+r/2,p+r/2,128+r,128+r)}return await Il(new File([await Or(a)],"preview",{type:Pt.png}),{outputType:Pt.jpg,maxWidthOrHeight:5e3})},pT=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,go.useRef)(null),a=(0,go.useRef)(null);return(0,go.useEffect)(()=>{let l=i.current;l&&(async()=>{let s=await _l({elements:t.elements,appState:{...e,viewBackgroundColor:It.white,exportBackground:!0},files:null});l.innerHTML=s.outerHTML})()},[t.elements,e]),(0,re.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,re.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,re.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,re.jsx)(se,{"aria-label":g("buttons.remove"),type:"button",icon:Mo,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,re.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,re.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,re.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,re.jsx)("span",{style:{fontWeight:500,color:It.gray[6]},children:g("publishDialog.itemName")}),(0,re.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,re.jsx)("input",{type:"text",ref:a,style:{width:"80%",padding:"0.2rem"},defaultValue:t.name,placeholder:"Item name",onChange:l=>{r(l.target.value,o)}})]}),(0,re.jsx)("span",{className:"error",children:t.error})]})]})},fT=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,s]=(0,go.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[c,m]=(0,go.useState)(!1);(0,go.useEffect)(()=>{let C=uo.get(Eo.PUBLISH_LIBRARY);C&&s(C)},[]);let[d,f]=(0,go.useState)(e.slice());(0,go.useEffect)(()=>{f(e.slice())},[e]);let p=C=>{s({...l,[C.target.name]:C.target.value})},b=async C=>{C.preventDefault(),m(!0);let M=[],_=!1;if(d.forEach(W=>{let O="";W.name||(O=g("publishDialog.errors.required"),_=!0),M.push({...W,error:O})}),_){f(M),m(!1);return}let I=await uT(d),A={type:n1.excalidrawLibrary,version:Zs.excalidrawLibrary,source:i1,libraryItems:d},P=JSON.stringify(A,null,2),F=new Blob([P],{type:"application/json"}),D=new FormData;D.append("excalidrawLib",F),D.append("previewImage",I),D.append("previewImageType",I.type),D.append("title",l.name),D.append("authorName",l.authorName),D.append("githubHandle",l.githubHandle),D.append("name",l.name),D.append("description",l.description),D.append("twitterHandle",l.twitterHandle),D.append("website",l.website),fetch(`${E.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:D}).then(W=>W.ok?W.json().then(({url:O})=>{uo.delete(Eo.PUBLISH_LIBRARY),r({url:O,authorName:l.authorName,items:d})}):W.json().catch(()=>{throw new Error(W.statusText||"something went wrong")}).then(O=>{throw new Error(O.message||W.statusText||"something went wrong")}),W=>{console.error(W),n(W),m(!1)}).catch(W=>{console.error(W),n(W),m(!1)})},x=()=>{let C=[];return d.forEach((M,_)=>{C.push((0,re.jsx)("div",{className:"single-library-item-wrapper",children:(0,re.jsx)(pT,{libItem:M,appState:o,index:_,onChange:(I,A)=>{let P=d.slice();P[A].name=I,f(P)},onRemove:a})},_))}),(0,re.jsx)("div",{className:"selected-library-items",children:C})},y=(0,go.useCallback)(()=>{i(d),uo.set(Eo.PUBLISH_LIBRARY,l),t()},[d,t,i,l]),w=!!e.length,k=e.some(C=>C.status==="published");return(0,re.jsx)(Qe,{onCloseRequest:y,title:g("publishDialog.title"),className:"publish-library",children:w?(0,re.jsxs)("form",{onSubmit:b,children:[(0,re.jsx)("div",{className:"publish-library-note",children:(0,re.jsx)(oo,{i18nKey:"publishDialog.noteDescription",link:C=>(0,re.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,re.jsx)("span",{className:"publish-library-note",children:(0,re.jsx)(oo,{i18nKey:"publishDialog.noteGuidelines",link:C=>(0,re.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,re.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),k&&(0,re.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,re.jsxs)("div",{className:"publish-library__fields",children:[(0,re.jsxs)("label",{children:[(0,re.jsxs)("div",{children:[(0,re.jsx)("span",{children:g("publishDialog.libraryName")}),(0,re.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,re.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:p,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,re.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,re.jsxs)("div",{children:[(0,re.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,re.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,re.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:p,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,re.jsxs)("label",{children:[(0,re.jsxs)("div",{children:[(0,re.jsx)("span",{children:g("publishDialog.authorName")}),(0,re.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,re.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:p,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,re.jsxs)("label",{children:[(0,re.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,re.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:p,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,re.jsxs)("label",{children:[(0,re.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,re.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:p,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,re.jsxs)("label",{children:[(0,re.jsx)("span",{children:g("publishDialog.website")}),(0,re.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:p,placeholder:g("publishDialog.placeholder.website")})]}),(0,re.jsx)("span",{className:"publish-library-note",children:(0,re.jsx)(oo,{i18nKey:"publishDialog.noteLicense",link:C=>(0,re.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:C})})})]}),(0,re.jsxs)("div",{className:"publish-library__buttons",children:[(0,re.jsx)(Oa,{label:g("buttons.cancel"),onClick:y,"data-testid":"cancel-clear-canvas-button"}),(0,re.jsx)(Oa,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:c})]})]}):(0,re.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},CE=fT;h();h();var kE=v(S(),1),TE=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=Me(),a=z(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,kE.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},SE=TE;TE.displayName="DropdownMenuTrigger";h();h();var dm=v(H(),1);var gh=dm.default.createContext({}),mm=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),um=(t,e)=>{let o=(0,dm.useContext)(gh);return nn(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var kn=v(S(),1),hT=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,kn.jsxs)(kn.Fragment,{children:[(0,kn.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,kn.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,kn.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},pm=hT;var fm=v(S(),1),bh=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=um(a.onClick,e);return(0,fm.jsx)("button",{...a,onClick:l,type:"button",className:mm(n,i),title:a.title??a["aria-label"],children:(0,fm.jsx)(pm,{icon:t,shortcut:r,children:o})})};bh.displayName="DropdownMenuItem";var IE=({children:t})=>(0,fm.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",background:"pink",borderRadius:6,fontSize:9,color:"black",fontFamily:"Cascadia, monospace"},children:t});IE.displayName="DropdownMenuItemBadge";bh.Badge=IE;var Ro=bh;h();var AE=v(S(),1),ME=()=>(0,AE.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),_E=ME;ME.displayName="DropdownMenuSeparator";h();var hm=v(S(),1),LE=({children:t,className:e="",style:o,title:r})=>(0,hm.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,hm.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),PE=LE;LE.displayName="DropdownMenuGroup";h();var gm=v(H(),1);var ss=v(S(),1),DE=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=Me(),a=(0,gm.useRef)(null),l=Hd({onClickOutside:e});ka(a,()=>{l.onClickOutside?.()}),(0,gm.useEffect)(()=>{let c=d=>{d.key===T.ESCAPE&&(d.stopImmediatePropagation(),l.onClickOutside?.())},m={capture:!0};return document.addEventListener("keydown",c,m),()=>{document.removeEventListener("keydown",c,m)}},[l]);let s=z(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,ss.jsx)(gh.Provider,{value:{onSelect:r},children:(0,ss.jsx)("div",{ref:a,className:s,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,ss.jsx)(At.Col,{className:"dropdown-menu-container",children:t}):(0,ss.jsx)(Bt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};DE.displayName="DropdownMenuContent";var RE=DE;h();var xh=v(S(),1),NE=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let s=um(l.onClick,n);return(0,xh.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:mm(i,a),title:l.title??l["aria-label"],onClick:s,children:(0,xh.jsx)(pm,{icon:t,shortcut:e,children:r})})},za=NE;NE.displayName="DropdownMenuItemLink";h();var FE=v(S(),1),gT=({children:t,className:e="",selected:o,...r})=>(0,FE.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),OE=gT;h();var cs=v(H(),1),BE=t=>{let e=cs.default.Children.toArray(t).find(o=>cs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},zE=t=>{let e=cs.default.Children.toArray(t).find(o=>cs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var bm=v(S(),1),Yr=({children:t,open:e})=>{let o=BE(t),r=zE(t);return(0,bm.jsxs)(bm.Fragment,{children:[o,e&&r]})};Yr.Trigger=SE;Yr.Content=RE;Yr.Item=Ro;Yr.ItemLink=za;Yr.ItemCustom=OE;Yr.Group=PE;Yr.Separator=_E;var Le=Yr;Yr.displayName="DropdownMenu";var yt=v(S(),1),bT=(t,e)=>t.filter(o=>e.includes(o.id)),xT=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[s]=Ee(fi,Pe),[c,m]=Ee(Ba,Pe),d=()=>{let D=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),W=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,yt.jsx)(cm,{onConfirm:()=>{e.length?r():n(),p(!1)},onCancel:()=>{p(!1)},title:W,children:(0,yt.jsx)("p",{children:D})})},[f,p]=(0,Ha.useState)(!1),b=!!e.length,x=b?s.libraryItems.filter(D=>e.includes(D.id)):s.libraryItems,y=b?g("buttons.remove"):g("buttons.resetLibrary"),[w,k]=(0,Ha.useState)(!1),[C,M]=(0,Ha.useState)(null),_=(0,Ha.useCallback)(()=>(0,yt.jsxs)(Qe,{onCloseRequest:()=>M(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,yt.jsx)("p",{children:(0,yt.jsx)(oo,{i18nKey:"publishSuccessDialog.content",authorName:C.authorName,link:D=>(0,yt.jsx)("a",{href:C?.url,target:"_blank",rel:"noopener noreferrer",children:D})})}),(0,yt.jsx)(se,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>M(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[M,C]),I=(D,W)=>{k(!1),M({url:D.url,authorName:D.authorName});let O=W.slice();O.forEach(U=>{e.includes(U.id)&&(U.status="published")}),o.setLibrary(O)},A=async()=>{try{await o.updateLibrary({libraryItems:Cc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(D){if(D?.name==="AbortError"){console.warn(D);return}t({errorMessage:g("errors.importLibraryError")})}},P=async()=>{let D=b?x:await o.getLatestLibrary();Bb(D).catch(Qs).catch(W=>{t({errorMessage:W.message})})},F=()=>(0,yt.jsxs)(Le,{open:c,children:[(0,yt.jsx)(Le.Trigger,{onToggle:()=>m(!c),children:z0}),(0,yt.jsxs)(Le.Content,{onClickOutside:()=>m(!1),onSelect:()=>m(!1),className:"library-menu",children:[!b&&(0,yt.jsx)(Le.Item,{onSelect:A,icon:aa,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,yt.jsx)(Le.Item,{onSelect:P,icon:Jn,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,yt.jsx)(Le.Item,{onSelect:()=>p(!0),icon:Xo,children:y}),b&&(0,yt.jsx)(Le.Item,{icon:jx,onSelect:()=>k(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,yt.jsxs)("div",{className:z("library-menu-dropdown-container",l),children:[F(),e.length>0&&(0,yt.jsx)("div",{className:"library-actions-counter",children:e.length}),f&&d(),w&&(0,yt.jsx)(CE,{onClose:()=>k(!1),libraryItems:bT(s.libraryItems,e),appState:a,onSuccess:D=>I(D,s.libraryItems),onError:D=>window.alert(D),updateItemsInStorage:()=>o.setLibrary(s.libraryItems),onRemove:D=>i(e.filter(W=>W!==D))}),C&&_()]})},vh=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=so(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=om(),a=ke(),l=_e(),[s]=Ee(fi,Pe),c=async d=>{let f=d.filter(p=>!t.includes(p.id));r.setLibrary(f).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,yt.jsx)(xT,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>c(s.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var $a=v(H(),1);h();var In=v(H(),1);var gi=v(S(),1),HE=(0,In.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let s=(0,In.useRef)(null),c=hE(t,e,l);(0,In.useEffect)(()=>{let b=s.current;if(b)return c&&(b.innerHTML=c.outerHTML),()=>{b.innerHTML=""}},[c]);let[m,d]=(0,In.useState)(!1),f=Me().editor.isMobile,p=o&&(0,gi.jsx)("div",{className:"library-unit__adder",children:B0});return(0,gi.jsxs)("div",{className:z("library-unit",{"library-unit__active":e,"library-unit--hover":e&&m,"library-unit--selected":n,"library-unit--skeleton":!c}),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[(0,gi.jsx)("div",{className:z("library-unit__dragger",{"library-unit__pulse":!!o}),ref:s,draggable:!!e,onClick:e||o?b=>{t&&b.shiftKey?i(t,b):r(t)}:void 0,onDragStart:b=>{if(!t){b.preventDefault();return}d(!1),a(t,b)}}),p,t&&e&&(m||f||n)&&(0,gi.jsx)(ci,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),$E=()=>(0,gi.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var xm=v(H(),1);function vT(){return[!1,(0,xm.useCallback)(e=>e(),[])]}var UE=xm.default.useTransition||vT;var bi=v(S(),1),yh=({children:t})=>(0,bi.jsx)("div",{className:"library-menu-items-container__grid",children:t}),vm=(0,$a.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=UE(),[s,c]=(0,$a.useState)(0);return(0,$a.useEffect)(()=>{s<t.length&&l(()=>{c(s+a)})},[s,t.length,l,a]),(0,bi.jsx)(bi.Fragment,{children:t.map((m,d)=>d<s?(0,bi.jsx)(HE,{elements:m?.elements,isPending:!m?.id&&!!m?.elements,onClick:n,svgCache:i,id:m?.id,selected:r(m.id),onToggle:e,onDrag:o},m?.id??d):(0,bi.jsx)($E,{},d))})});h();var YE=v(H(),1);var ZE=v(wh(),1),FT=$e(0),jE=t=>{let[e,o]=Ee(FT);return(0,YE.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,ZE.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var je=v(S(),1),BT=17,zT=64;function Ch({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:s,selectedItems:c}){let m=(0,Kt.useRef)(null),d=jE(m);(0,Kt.useEffect)(()=>{d>0&&m.current?.scrollTo(0,d)},[]);let{svgCache:f}=om(),p=(0,Kt.useMemo)(()=>e.filter(D=>D.status!=="published"),[e]),b=(0,Kt.useMemo)(()=>e.filter(D=>D.status==="published"),[e]),x=!e.length&&!n.length,y=!n.length&&!p.length&&!b.length,[w,k]=(0,Kt.useState)(null),C=(0,Kt.useCallback)((D,W)=>{let O=!c.includes(D),U=[...p,...b];if(O){if(W.shiftKey&&w){let ee=U.findIndex(ce=>ce.id===w),K=U.findIndex(ce=>ce.id===D);if(ee===-1||K===-1){s([...c,D]);return}let pe=Ie(c),me=U.reduce((ce,oe,R)=>((R>=ee&&R<=K||pe.has(oe.id))&&ce.push(oe.id),ce),[]);s(me)}else s([...c,D]);k(D)}else k(null),s(c.filter(ee=>ee!==D))},[w,s,b,c,p]),M=(0,Kt.useCallback)(D=>{let W;return c.includes(D)?W=e.filter(O=>c.includes(O.id)):W=e.filter(O=>O.id===D),W.map(O=>({...O,elements:wc(O.elements,{randomizeSeed:!0})}))},[e,c]),_=(0,Kt.useCallback)((D,W)=>{W.dataTransfer.setData(Pt.excalidrawlib,ip(M(D)))},[M]),I=(0,Kt.useCallback)(D=>D?c.includes(D):!1,[c]),A=(0,Kt.useCallback)(()=>{o(n)},[n,o]),P=(0,Kt.useCallback)(D=>{D&&r(M(D))},[M,r]),F=f.size>=e.length?zT:BT;return(0,je.jsxs)("div",{className:"library-menu-items-container",style:n.length||p.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!y&&(0,je.jsx)(vh,{selectedItems:c,onSelectItems:s,className:"library-menu-dropdown-container--in-heading"}),(0,je.jsxs)(At.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:m,children:[(0,je.jsxs)(je.Fragment,{children:[!y&&(0,je.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,je.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,je.jsx)(Nt,{})}),!n.length&&!p.length?(0,je.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,je.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,je.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,je.jsxs)(yh,{children:[n.length>0&&(0,je.jsx)(vm,{itemsRenderedPerBatch:F,items:[{id:null,elements:n}],onItemSelectToggle:C,onItemDrag:_,onClick:A,isItemSelected:I,svgCache:f}),(0,je.jsx)(vm,{itemsRenderedPerBatch:F,items:p,onItemSelectToggle:C,onItemDrag:_,onClick:P,isItemSelected:I,svgCache:f})]})]}),(0,je.jsxs)(je.Fragment,{children:[(b.length>0||n.length>0||p.length>0)&&(0,je.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,je.jsx)(yh,{children:(0,je.jsx)(vm,{itemsRenderedPerBatch:F,items:b,onItemSelectToggle:C,onItemDrag:_,onClick:P,isItemSelected:I,svgCache:f})}):p.length>0?(0,je.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:g("library.noItems")}):null]}),x&&(0,je.jsx)(lm,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,je.jsx)(vh,{selectedItems:c,onSelectItems:s})})]})]})}var No=v(S(),1),Ba=$e(!1),XE=({children:t})=>(0,No.jsx)("div",{className:"layer-ui__library",children:t}),HT=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:s,onSelectItems:c})=>{let[m]=Ee(fi,Pe),d=(0,bo.useCallback)(b=>{(async(y,w)=>{ve("element","addToLibrary","ui");for(let C of qs)if(y.some(M=>M.type===C))return r({errorMessage:g(`errors.libraryElementTypeError.${C}`)});let k=[{status:"unpublished",elements:y,id:ln(),created:Date.now()},...w];o(),i.setLibrary(k).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,m.libraryItems)},[o,i,r,m.libraryItems]),f=(0,bo.useMemo)(()=>m.libraryItems,[m]);if(m.status==="loading"&&!m.isInitialized)return(0,No.jsx)(XE,{children:(0,No.jsx)("div",{className:"layer-ui__library-message",children:(0,No.jsxs)("div",{children:[(0,No.jsx)(Nt,{size:"2em"}),(0,No.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let p=m.libraryItems.length>0||e.length>0;return(0,No.jsxs)(XE,{children:[(0,No.jsx)(Ch,{isLoading:m.status==="loading",libraryItems:f,onAddToLibrary:d,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:c,selectedItems:s}),p&&(0,No.jsx)(lm,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},$T=(t,e)=>{let o=()=>xe(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,bo.useRef)(o()),n=(0,bo.useRef)(t),i=(0,bo.useRef)(e);return(!Dt(t.selectedElementIds,n.current.selectedElementIds)||!Dt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},qE=()=>{let{library:t,id:e,onInsertElements:o}=so(),r=Sn(),n=ke(),i=_e(),a=En(),[l,s]=(0,bo.useState)([]),c=(0,bo.useMemo)(()=>t,[t]),m=$T(n,a),d=(0,bo.useCallback)(p=>{o(am(p))},[o]),f=(0,bo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,No.jsx)(HT,{pendingElements:m,onInsertLibraryItems:d,onAddToLibrary:f,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:c,id:e,theme:n.theme,selectedItems:l,onSelectItems:s})};var Mn=v(S(),1);function UT(t){if(t&&typeof t=="number")return t;switch(t){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var Qe=t=>{let[e,o]=sE(),[r]=(0,Em.useState)(document.activeElement),{id:n}=Mt(),i=Me().viewport.isMobile;(0,Em.useEffect)(()=>{if(!e)return;let c=dl(e);setTimeout(()=>{c.length>0&&t.autofocus!==!1&&(c[1]||c[0]).focus()});let m=d=>{if(d.key===T.TAB){let f=dl(e),{activeElement:p}=document,b=f.findIndex(x=>x===p);b===0&&d.shiftKey?(f[f.length-1].focus(),d.preventDefault()):b===f.length-1&&!d.shiftKey&&(f[0].focus(),d.preventDefault())}};return e.addEventListener("keydown",m),()=>e.removeEventListener("keydown",m)},[e,t.autofocus]);let a=_e(),l=zr(Ba,Pe),s=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,Mn.jsx)(pE,{className:z("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:UT(t.size),onCloseRequest:s,closeOnClickOutside:t.closeOnClickOutside,children:(0,Mn.jsxs)(Bt,{ref:o,children:[t.title&&(0,Mn.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,Mn.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),i&&(0,Mn.jsx)("button",{className:"Dialog__close",onClick:s,title:g("buttons.close"),"aria-label":g("buttons.close"),children:Mo}),(0,Mn.jsx)("div",{className:"Dialog__content",children:t.children})]})})};h();var Er=v(H(),1);h();var JE=v(S(),1),yr=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,JE.jsx)("button",{onClick:nn(i.onClick,a=>{e()}),type:t,className:z("excalidraw-button",n,{selected:o}),...i,children:r});var xi=v(S(),1),wm=(0,Er.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...s},c)=>{let m=(0,Er.useRef)(null);(0,Er.useImperativeHandle)(c,()=>m.current),(0,Er.useLayoutEffect)(()=>{i&&m.current?.select()},[i]);let[d,f]=(0,Er.useState)(!1);return(0,xi.jsxs)("div",{className:z("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{m.current?.focus()},children:[(0,xi.jsx)("div",{className:"ExcTextField__label",children:e}),(0,xi.jsxs)("div",{className:z("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,xi.jsx)("input",{className:z({"is-redacted":"value"in s&&s.value&&l&&!d}),readOnly:n,value:"value"in s?s.value:void 0,defaultValue:"defaultValue"in s?s.defaultValue:void 0,placeholder:r,ref:m,onChange:p=>t?.(p.target.value),onKeyDown:a}),l&&(0,xi.jsx)(yr,{onSelect:()=>f(!d),style:{border:0,userSelect:"none"},children:d?o2:ca})]})]})});h();var WT={toggleTheme:[N("Shift+Alt+D")],saveScene:[N("CtrlOrCmd+S")],loadScene:[N("CtrlOrCmd+O")],clearCanvas:[N("CtrlOrCmd+Delete")],imageExport:[N("CtrlOrCmd+Shift+E")],commandPalette:[N("CtrlOrCmd+Shift+P"),N("CtrlOrCmd+/")],cut:[N("CtrlOrCmd+X")],copy:[N("CtrlOrCmd+C")],paste:[N("CtrlOrCmd+V")],copyStyles:[N("CtrlOrCmd+Alt+C")],pasteStyles:[N("CtrlOrCmd+Alt+V")],selectAll:[N("CtrlOrCmd+A")],deleteSelectedElements:[N("Delete")],duplicateSelection:[N("CtrlOrCmd+D"),N(`Alt+${g("helpDialog.drag")}`)],sendBackward:[N("CtrlOrCmd+[")],bringForward:[N("CtrlOrCmd+]")],sendToBack:[Wo?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")],bringToFront:[Wo?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")],copyAsPng:[N("Shift+Alt+C")],copyAsSvg:[],group:[N("CtrlOrCmd+G")],ungroup:[N("CtrlOrCmd+Shift+G")],gridMode:[N("CtrlOrCmd+'")],zenMode:[N("Alt+Z")],objectsSnapMode:[N("Alt+S")],stats:[N("Alt+/")],addToLibrary:[],flipHorizontal:[N("Shift+H")],flipVertical:[N("Shift+V")],viewMode:[N("Alt+R")],hyperlink:[N("CtrlOrCmd+K")],toggleElementLock:[N("CtrlOrCmd+Shift+L")],resetZoom:[N("CtrlOrCmd+0")],zoomOut:[N("CtrlOrCmd+-")],zoomIn:[N("CtrlOrCmd++")],zoomToFitSelection:[N("Shift+3")],zoomToFit:[N("Shift+1")],zoomToFitSelectionInViewport:[N("Shift+2")],toggleEraserTool:[N("E")],toggleHandTool:[N("H")],setFrameAsActiveTool:[N("F")],saveFileToDisk:[N("CtrlOrCmd+S")],saveToActiveFile:[N("CtrlOrCmd+S")],toggleShortcuts:[N("?")]},Et=(t,e=0)=>{let o=WT[t];return o&&o.length>0?o[e]||o[0]:""};var Lw=v(tw(),1);h();var GT="\\u0300-\\u036f",VT="\\ufe20-\\ufe2f",KT="\\u20d0-\\u20ff",YT=GT+VT+KT,ZT=`[${YT}]`,jT=RegExp(ZT,"g"),XT=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,qT={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"E",\u00E6:"e",\u00DE:"T",\u00FE:"t",\u00DF:"s",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"I",\u0133:"i",\u0152:"E",\u0153:"e",\u0149:"n",\u017F:"s"},Th=t=>t.replace(XT,e=>qT[e]||e).replace(jT,"");h();var ow=v(S(),1),_n=({icon:t})=>(0,ow.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var ds=[{icon:G0,value:"selection",key:T.V,numericKey:T[1],fillable:!0},{icon:V0,value:"rectangle",key:T.R,numericKey:T[2],fillable:!0},{icon:K0,value:"diamond",key:T.D,numericKey:T[3],fillable:!0},{icon:Y0,value:"ellipse",key:T.O,numericKey:T[4],fillable:!0},{icon:Z0,value:"arrow",key:T.A,numericKey:T[5],fillable:!0},{icon:j0,value:"line",key:T.L,numericKey:T[6],fillable:!0},{icon:na,value:"freedraw",key:[T.P,T.X],numericKey:T[7],fillable:!1},{icon:q0,value:"text",key:T.T,numericKey:T[8],fillable:!1},{icon:J0,value:"image",key:null,numericKey:T[9],fillable:!1},{icon:Q0,value:"eraser",key:T.E,numericKey:T[0],fillable:!1}],rw=t=>ds.find((o,r)=>o.numericKey!=null&&t===o.numericKey.toString()||o.key&&(typeof o.key=="string"?o.key===t:o.key.includes(t)))?.value||null;h();var Cw=v(H(),1);h();var Tm=v(H(),1);h();var ms=v(H());h();h();var nw=t=>{let e,o=new Set,r=(s,c)=>{let m=typeof s=="function"?s(e):s;if(!Object.is(m,e)){let d=e;e=c??(typeof m!="object"||m===null)?m:Object.assign({},e,m),o.forEach(f=>f(e,d))}},n=()=>e,l={setState:r,getState:n,subscribe:s=>(o.add(s),()=>o.delete(s)),destroy:()=>{(E?E.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),o.clear()}};return e=t(r,n,l),l},iw=t=>t?nw(t):nw;var gw=v(H(),1),bw=v(pw(),1),{useDebugValue:hS}=gw.default,{useSyncExternalStoreWithSelector:gS}=bw.default,fw=!1;function bS(t,e=t.getState,o){(E?E.MODE:void 0)!=="production"&&o&&!fw&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),fw=!0);let r=gS(t.subscribe,t.getState,t.getServerState||t.getState,e,o);return hS(r),r}var hw=t=>{(E?E.MODE:void 0)!=="production"&&typeof t!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let e=typeof t=="function"?iw(t):t,o=(r,n)=>bS(e,r,n);return Object.assign(o,e),o},xw=t=>t?hw(t):hw;var vw,yw,Ew=typeof window<"u"&&((vw=window.document)!=null&&vw.createElement||((yw=window.navigator)==null?void 0:yw.product)==="ReactNative")?ms.default.useLayoutEffect:ms.default.useEffect;function er(){let t=xw(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return Ew(()=>{o(n=>({version:n.version+1}))},[]),Ew(()=>(o(({current:n})=>({current:[...n,e]})),()=>o(({current:n})=>({current:n.filter(i=>i!==e)}))),[e,r]),null},Out:()=>{let e=t(o=>o.current);return ms.default.createElement(ms.default.Fragment,null,e)}}}var kh=Tm.default.createContext(null),We=()=>Tm.default.useContext(kh),ww=()=>Tm.default.useMemo(()=>({MainMenuTunnel:er(),WelcomeScreenMenuHintTunnel:er(),WelcomeScreenToolbarHintTunnel:er(),WelcomeScreenHelpHintTunnel:er(),WelcomeScreenCenterTunnel:er(),FooterCenterTunnel:er(),DefaultSidebarTriggerTunnel:er(),DefaultSidebarTabTriggersTunnel:er(),OverwriteConfirmDialogTunnel:er(),TTDDialogTriggerTunnel:er(),jotaiScope:Symbol()}),[]);var ie=v(S(),1),Ih=(t,e)=>{let o=e[0]?.type||null;for(let r of e)if(r.type!==o){o=null;break}return bl(t.activeTool.type)&&t.activeTool.type!=="image"&&o!=="image"&&o!=="frame"&&o!=="magicframe"||e.some(r=>bl(r.type))},Mh=(t,e)=>cn(t.activeTool.type)||e.some(o=>cn(o.type)),Sm=({appState:t,elementsMap:e,renderAction:o})=>{let r=Qi(e,t),n=!1;r.length===2&&(cr(r[0])||cr(r[1]))&&(n=!0);let i=!!t.editingElement,a=Me(),l=document.documentElement.getAttribute("dir")==="rtl",s=cn(t.activeTool.type)&&!Gn(t.currentItemBackgroundColor)||r.some(m=>cn(m.type)&&!Gn(m.backgroundColor)),c=r.length===1||n;return(0,ie.jsxs)("div",{className:"panelColumn",children:[(0,ie.jsx)("div",{children:Ih(t,r)&&o("changeStrokeColor")}),Mh(t,r)&&(0,ie.jsx)("div",{children:o("changeBackgroundColor")}),s&&o("changeFillStyle"),(zu(t.activeTool.type)||r.some(m=>zu(m.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(m=>m.type==="freedraw"))&&o("changeStrokeShape"),(Hu(t.activeTool.type)||r.some(m=>Hu(m.type)))&&(0,ie.jsxs)(ie.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),($u(t.activeTool.type)||r.some(m=>$u(m.type)))&&(0,ie.jsx)(ie.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(le))&&(0,ie.jsxs)(ie.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||db(r,e))&&o("changeTextAlign")]}),cb(r,e)&&o("changeVerticalAlign"),(Oi(t.activeTool.type)||r.some(m=>Oi(m.type)))&&(0,ie.jsx)(ie.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,ie.jsxs)("fieldset",{children:[(0,ie.jsx)("legend",{children:g("labels.layers")}),(0,ie.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringToFront"),o("bringForward")]})]}),r.length>1&&!n&&(0,ie.jsxs)("fieldset",{children:[(0,ie.jsx)("legend",{children:g("labels.align")}),(0,ie.jsxs)("div",{className:"buttonList",children:[l?(0,ie.jsxs)(ie.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,ie.jsxs)(ie.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,ie.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,ie.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[o("alignTop"),o("alignVerticallyCentered"),o("alignBottom"),r.length>2&&o("distributeVertically")]})]})]}),!i&&r.length>0&&(0,ie.jsxs)("fieldset",{children:[(0,ie.jsx)("legend",{children:g("labels.actions")}),(0,ie.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),c&&o("hyperlink")]})]})]})},km=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,Cw.useState)(!1),a=t.type==="frame",l=t.type==="laser",s=t.type==="embeddable",{TTDDialogTriggerTunnel:c}=We();return(0,ie.jsxs)(ie.Fragment,{children:[ds.map(({value:m,icon:d,key:f,numericKey:p,fillable:b},x)=>{if(r.tools?.[m]===!1)return null;let y=g(`toolBar.${m}`),w=f&&rn(typeof f=="string"?f:f[0]),k=w?`${w} ${g("helpDialog.or")} ${p}`:`${p}`;return(0,ie.jsx)(se,{className:z("Shape",{fillable:b}),type:"radio",icon:d,checked:t.type===m,name:"editor-current-shape",title:`${rn(y)} \u2014 ${k}`,keyBindingLabel:p||w,"aria-label":rn(y),"aria-keyshortcuts":k,"data-testid":`toolbar-${m}`,onPointerDown:({pointerType:C})=>{!e.penDetected&&C==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:C})=>{e.activeTool.type!==m&&ve("toolbar",m,"ui"),m==="image"?o.setActiveTool({type:m,insertOnCanvasDirectly:C!=="mouse"}):o.setActiveTool({type:m})}},m)}),(0,ie.jsx)("div",{className:"App-toolbar__divider"}),(0,ie.jsxs)(Le,{open:n,children:[(0,ie.jsxs)(Le.Trigger,{className:z("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":a||s||l&&!o.props.isCollaborating}),onToggle:()=>i(!n),title:g("toolBar.extraTools"),children:[e2,o.props.aiEnabled!==!1&&(0,ie.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"pink",color:"black",bottom:3,right:4},children:"AI"})]}),(0,ie.jsxs)(Le.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,ie.jsx)(Le.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:sd,shortcut:T.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,ie.jsx)(Le.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:tx,"data-testid":"toolbar-embeddable",selected:s,children:g("toolBar.embeddable")}),(0,ie.jsx)(Le.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:dd,"data-testid":"toolbar-laser",selected:l,shortcut:T.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,ie.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,ie.jsx)(c.Out,{}),(0,ie.jsx)(Le.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:cd,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsxs)(Le.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:sa,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,ie.jsx)(Le.Item.Badge,{children:"AI"})]}),(0,ie.jsx)(Le.Item,{onSelect:()=>{ve("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Fl,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},Tw=({renderAction:t,zoom:e})=>(0,ie.jsx)(At.Col,{gap:1,className:"zoom-actions",children:(0,ie.jsxs)(At.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),Sw=({renderAction:t,className:e})=>(0,ie.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,ie.jsx)("div",{className:"undo-button-container",children:(0,ie.jsx)(ho,{label:g("buttons.undo"),children:t("undo")})}),(0,ie.jsx)("div",{className:"redo-button-container",children:(0,ie.jsxs)(ho,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),kw=({actionManager:t,showExitZenModeBtn:e})=>(0,ie.jsx)("button",{className:z("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(Pa),children:g("buttons.exitZenMode")}),Iw=({renderAction:t,className:e})=>(0,ie.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var Mw=v(H(),1),_h=t=>{let e=(0,Mw.useRef)({userFn:t});return e.current.userFn=t,e.current.stableFn||(e.current.stableFn=(...o)=>e.current.userFn(...o)),e.current.stableFn};h();var Im=v(S(),1),vi=$e(null),_w=()=>{let[t,e]=Ee(vi,Pe),o=St();return t&&t==="clearCanvas"?(0,Im.jsx)(cm,{onConfirm:()=>{o.executeAction(Vr),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,Im.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};var Ah={};Ug(Ah,{toggleTheme:()=>xS});h();var xS={...ii,category:"App",label:"Toggle theme",perform:({actionManager:t})=>{t.executeAction(ii,"commandPalette")}};var Ue=v(S(),1),vS=$e(null),ct={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},yS=t=>{switch(t){case ct.app:return 1;case ct.export:return 2;case ct.editor:return 3;case ct.tools:return 4;case ct.elements:return 5;case ct.links:return 6;default:return 10}},Mm=({shortcut:t,className:e,children:o})=>{let r=t.split(/(?<!\+)(?:\+)/g);return(0,Ue.jsxs)("div",{className:z("shortcut",e),children:[r.map(n=>(0,Ue.jsx)("div",{className:"shortcut-wrapper",children:(0,Ue.jsx)("div",{className:"shortcut-key",children:n})},n)),(0,Ue.jsx)("div",{className:"shortcut-desc",children:o})]})},Pw=t=>!t.altKey&&t[T.CTRL_OR_CMD]&&(t.shiftKey&&t.key.toLowerCase()===T.P||t.key===T.SLASH),xK=Object.assign(t=>{let e=ke(),o=_e();return(0,Oo.useEffect)(()=>{let r=n=>{Pw(n)&&(n.preventDefault(),n.stopPropagation(),o(i=>({openDialog:i.openDialog?.name==="commandPalette"?null:{name:"commandPalette"}})))};return window.addEventListener("keydown",r,{capture:!0}),()=>window.removeEventListener("keydown",r,{capture:!0})},[o]),e.openDialog?.name!=="commandPalette"?null:(0,Ue.jsx)(ES,{...t})},{defaultItems:Ah});function ES({customCommandPaletteItems:t}){let e=so(),o=ke(),r=_e(),n=Sn(),i=St(),[a,l]=Ee(vS),[s,c]=(0,Oo.useState)(null),m=(0,Oo.useRef)(null);(0,Oo.useEffect)(()=>{if(!o||!e.scene||!i)return;let _=F=>{let D="";return F.label&&(typeof F.label=="function"?D=g(F.label(e.scene.getNonDeletedElements(),o,e)):D=g(F.label)),D},I=F=>typeof F.icon=="function"?F.icon(o,e.scene.getNonDeletedElements()):F.icon,A=[],P=(F,D,W)=>{let O={label:_(F),icon:I(F),category:D,shortcut:Et(F.name),keywords:F.keywords,predicate:F.predicate,viewMode:F.viewMode,perform:()=>{i.executeAction(F,"commandPalette")}};return W?W(O,F):O};if(o&&e.scene&&i){let F=[i.actions.group,i.actions.ungroup,i.actions.cut,i.actions.copy,i.actions.deleteSelectedElements,i.actions.copyStyles,i.actions.pasteStyles,i.actions.sendBackward,i.actions.sendToBack,i.actions.bringForward,i.actions.bringToFront,i.actions.alignTop,i.actions.alignBottom,i.actions.alignLeft,i.actions.alignRight,i.actions.alignVerticallyCentered,i.actions.alignHorizontallyCentered,i.actions.duplicateSelection,i.actions.flipHorizontal,i.actions.flipVertical,i.actions.zoomToFitSelection,i.actions.zoomToFitSelectionInViewport,i.actions.increaseFontSize,i.actions.decreaseFontSize,i.actions.toggleLinearEditor,rs].map(K=>P(K,ct.elements,(pe,me)=>({...pe,predicate:me.predicate?me.predicate:(ce,oe,R,B)=>xe(ce,oe).length>0}))),D=[i.actions.toggleHandTool,i.actions.setFrameAsActiveTool].map(K=>P(K,ct.tools)),W=[i.actions.undo,i.actions.redo,i.actions.zoomIn,i.actions.zoomOut,i.actions.resetZoom,i.actions.zoomToFit,i.actions.zenMode,i.actions.viewMode,i.actions.objectsSnapMode,i.actions.toggleShortcuts,i.actions.selectAll,i.actions.toggleElementLock,i.actions.unlockAllElements,i.actions.stats].map(K=>P(K,ct.editor)),O=[i.actions.saveToActiveFile,i.actions.saveFileToDisk,i.actions.copyAsPng,i.actions.copyAsSvg].map(K=>P(K,ct.export));A=[...F,...W,{label:_(Vr),icon:I(Vr),shortcut:Et(Vr.name),category:ct.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Ut.set(vi,"clearCanvas")}},{label:g("buttons.exportImage"),category:ct.export,icon:nd,shortcut:Et("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{r({openDialog:{name:"imageExport"}})}},...O];let U=[{label:g("toolBar.library"),category:ct.app,icon:Jc,viewMode:!1,perform:()=>{o.openSidebar?r({openSidebar:null}):r({openSidebar:{name:Vo.name,tab:Vo.defaultTab}})}},{label:g("labels.changeStroke"),keywords:["color","outline"],category:ct.elements,icon:rd,viewMode:!1,predicate:(K,pe)=>{let me=xe(K,pe);return me.length>0&&Ih(pe,me)},perform:()=>{r(K=>({openMenu:K.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:g("labels.changeBackground"),keywords:["color","fill"],icon:rd,category:ct.elements,viewMode:!1,predicate:(K,pe)=>{let me=xe(K,pe);return me.length>0&&Mh(pe,me)},perform:()=>{r(K=>({openMenu:K.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:g("labels.canvasBackground"),keywords:["color"],icon:rd,category:ct.editor,viewMode:!1,perform:()=>{r(K=>({openMenu:K.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...ds.reduce((K,pe)=>{let{value:me,icon:ce,key:oe,numericKey:R}=pe;if(n.UIOptions.tools?.[me]===!1)return K;let V=oe&&rn(typeof oe=="string"?oe:oe[0])||R,Z={label:g(`toolBar.${me}`),category:ct.tools,shortcut:V,icon:ce,keywords:["toolbar"],viewMode:!1,perform:({event:Y})=>{me==="image"?e.setActiveTool({type:me,insertOnCanvasDirectly:Y.type==="keydown"}):e.setActiveTool({type:me})}};return K.push(Z),K},[]),...D,{label:g("toolBar.lock"),category:ct.tools,icon:o.activeTool.locked?ra:qn,shortcut:T.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{e.toggleLock()}},{label:`${g("labels.textToDiagram")}...`,category:ct.tools,icon:n2,viewMode:!1,predicate:n.aiEnabled,perform:()=>{r(K=>({...K,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${g("toolBar.mermaidToExcalidraw")}...`,category:ct.tools,icon:cd,viewMode:!1,predicate:n.aiEnabled,perform:()=>{r(K=>({...K,openDialog:{name:"ttd",tab:"mermaid"}}))}}],ee=[...A,...U,...t||[]].map(K=>({...K,icon:K.icon||ud,order:K.order??yS(K.category),haystack:`${Th(K.label)} ${K.keywords?.join(" ")||""}`}));c(ee),l(ee.find(K=>K.label===a?.label)??null)}},[e,n,o,i,c,a?.label,l,r,t]);let[d,f]=(0,Oo.useState)(""),[p,b]=(0,Oo.useState)(null),[x,y]=(0,Oo.useState)({}),w=_=>{r({openDialog:null},_),f("")},k=(_,I)=>{o.openDialog?.name==="commandPalette"&&(I.stopPropagation(),I.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),w(()=>{_.perform({actionManager:i,event:I}),l(_),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},C=_h(_=>_.viewMode===!1&&o.viewModeEnabled?!1:typeof _.predicate=="function"?_.predicate(e.scene.getNonDeletedElements(),o,n,e):_.predicate===void 0||_.predicate),M=_h(_=>{let I=wo(_.target)||Pw(_)||_.key===T.ESCAPE;if(I&&_.key!==T.ARROW_UP&&_.key!==T.ARROW_DOWN&&_.key!==T.ENTER)return;let A=Object.values(x).flat(),P=a&&!d&&C(a);if(_.key===T.ARROW_UP){_.preventDefault();let F=A.findIndex(O=>O.label===p?.label);if(P){if(F===0){b(a);return}if(p===a){let O=A[A.length-1];O&&b(O);return}}let D;F===-1?D=A.length-1:D=F===0?A.length-1:(F-1)%A.length;let W=A[D];W&&b(W);return}if(_.key===T.ARROW_DOWN){_.preventDefault();let F=A.findIndex(O=>O.label===p?.label);if(P){if(!p||F===A.length-1){b(a);return}if(p===a){let O=A[0];O&&b(O);return}}let D=(F+1)%A.length,W=A[D];W&&b(W);return}if(_.key===T.ENTER&&p&&setTimeout(()=>{k(p,_)}),!I){if(_.stopPropagation(),/^[a-zA-Z0-9]$/.test(_.key)){m?.current?.focus();return}_.preventDefault()}});return(0,Oo.useEffect)(()=>(window.addEventListener("keydown",M,{capture:!0}),()=>window.removeEventListener("keydown",M,{capture:!0})),[M]),(0,Oo.useEffect)(()=>{if(!s)return;let _=F=>{let D={};for(let W of F)D[W.category]?D[W.category].push(W):D[W.category]=[W];return D},I=s.filter(C).sort((F,D)=>F.order-D.order),A=!d&&a&&C(a);if(!d){y(_(A?I.filter(F=>F.label!==a?.label):I)),b(A?a:I[0]||null);return}let P=Th(d.replace(/[<>-_| ]/g,""));I=Lw.default.filter(P,I,{extract:F=>F.haystack}).sort((F,D)=>D.score-F.score).map(F=>F.original),y(_(I)),b(I[0]??null)},[d,s,C,a]),(0,Ue.jsxs)(Qe,{onCloseRequest:()=>w(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,Ue.jsx)(wm,{value:d,placeholder:g("commandPalette.search.placeholder"),onChange:_=>{f(_)},selectOnRender:!0,ref:m}),!e.device.viewport.isMobile&&(0,Ue.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,Ue.jsx)(Mm,{shortcut:"\u2191\u2193",children:g("commandPalette.shortcuts.select")}),(0,Ue.jsx)(Mm,{shortcut:"\u21B5",children:g("commandPalette.shortcuts.confirm")}),(0,Ue.jsx)(Mm,{shortcut:N("Esc"),children:g("commandPalette.shortcuts.close")})]}),(0,Ue.jsxs)("div",{className:"commands",children:[a&&!d&&(0,Ue.jsxs)("div",{className:"command-category",children:[(0,Ue.jsxs)("div",{className:"command-category-title",children:[g("commandPalette.recents"),(0,Ue.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:i2})]}),(0,Ue.jsx)(Aw,{command:a,isSelected:a.label===p?.label,onClick:_=>k(a,_),disabled:!C(a),onMouseMove:()=>b(a),showShortcut:!e.device.viewport.isMobile,appState:o})]}),Object.keys(x).length>0?Object.keys(x).map((_,I)=>(0,Ue.jsxs)("div",{className:"command-category",children:[(0,Ue.jsx)("div",{className:"command-category-title",children:_}),x[_].map(A=>(0,Ue.jsx)(Aw,{command:A,isSelected:A.label===p?.label,onClick:P=>k(A,P),onMouseMove:()=>b(A),showShortcut:!e.device.viewport.isMobile,appState:o},A.label))]},_)):s?(0,Ue.jsxs)("div",{className:"no-match",children:[(0,Ue.jsx)("div",{className:"icon",children:md})," ",g("commandPalette.search.noMatch")]}):null]})]})}var Aw=({command:t,isSelected:e,disabled:o,onMouseMove:r,onClick:n,showShortcut:i,appState:a})=>{let l=()=>{};return(0,Ue.jsxs)("div",{className:z("command-item",{"item-selected":e,"item-disabled":o}),ref:s=>{e&&!o&&s?.scrollIntoView?.({block:"nearest"})},onClick:o?l:n,onMouseMove:o?l:r,title:o?g("commandPalette.itemNotAvailable"):"",children:[(0,Ue.jsxs)("div",{className:"name",children:[t.icon&&(0,Ue.jsx)(_n,{icon:typeof t.icon=="function"?t.icon(a):t.icon}),t.label]}),i&&t.shortcut&&(0,Ue.jsx)(Mm,{shortcut:t.shortcut})]})};var Lh=$({name:"toggleLinearEditor",category:ct.elements,label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0];return e.editingLinearElement?.elementId===r?.id?"labels.lineEditor.exit":"labels.lineEditor.edit"},trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return!!(n.length===1&&Re(n[0]))},perform(t,e,o,r){let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0})[0],i=e.editingLinearElement?.elementId===n.id?null:new he(n);return{appState:{...e,editingLinearElement:i},commitToHistory:!1}}});h();var Ph=v(S(),1),Dw=(t,e,o)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let n=o();if(n===null)return{commitToHistory:!1};let i=Ie(t),a=n.elements,l=Ie(a),s=t.filter(m=>!l.has(m.id)),c=a.map(m=>ue(i.get(m.id)||m,m)).concat(s.map(m=>ue(m,{isDeleted:!0})));return zi(c,s),{elements:c,appState:{...e,...n.appState},commitToHistory:!1,syncHistory:!0}}return{commitToHistory:!1}},Rw=t=>({name:"undo",label:"buttons.undo",icon:Sp,trackEvent:{category:"history"},viewMode:!1,perform:(e,o)=>Dw(e,o,()=>t.undoOnce()),keyTest:e=>e[T.CTRL_OR_CMD]&&e.key.toLowerCase()===T.Z&&!e.shiftKey,PanelComponent:({updateData:e,data:o})=>(0,Ph.jsx)(se,{type:"button",icon:Sp,"aria-label":g("buttons.undo"),onClick:e,size:o?.size||"medium"}),commitToHistory:()=>!1}),Nw=t=>({name:"redo",label:"buttons.redo",icon:kp,trackEvent:{category:"history"},viewMode:!1,perform:(e,o)=>Dw(e,o,()=>t.redoOnce()),keyTest:e=>e[T.CTRL_OR_CMD]&&e.shiftKey&&e.key.toLowerCase()===T.Z||$s&&e.ctrlKey&&!e.shiftKey&&e.key===T.Y,PanelComponent:({updateData:e,data:o})=>(0,Ph.jsx)(se,{type:"button",icon:kp,"aria-label":g("buttons.redo"),onClick:e,size:o?.size||"medium"}),commitToHistory:()=>!1});h();var Ow=v(S(),1),Dh=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&ve(t.trackEvent.category,t.trackEvent.action||t.name,`${e} (${n.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},_m=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(e,o,r,n){this.updater=i=>{if(Li(i))i.then(a=>e(a));else return e(i)},this.getAppState=o,this.getElementsIncludingDeleted=r,this.app=n}registerAction(e){this.actions[e.name]=e}registerAll(e){e.forEach(o=>this.registerAction(o))}handleKeyDown(e){let o=this.app.props.UIOptions.canvasActions,r=Object.values(this.actions).sort((s,c)=>(c.keyPriority||0)-(s.keyPriority||0)).filter(s=>(s.name in o?o[s.name]:!0)&&s.keyTest&&s.keyTest(e,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(r.length!==1)return r.length>1&&console.warn("Canceling as multiple actions match this shortcut",r),!1;let n=r[0];if(this.getAppState().viewModeEnabled&&n.viewMode!==!0)return!1;let i=this.getElementsIncludingDeleted(),a=this.getAppState(),l=null;return Dh(n,"keyboard",a,i,this.app,null),e.preventDefault(),e.stopPropagation(),this.updater(r[0].perform(i,a,l,this.app)),!0}executeAction(e,o="api",r=null){let n=this.getElementsIncludingDeleted(),i=this.getAppState();Dh(e,o,i,n,this.app,r),this.updater(e.perform(n,i,r,this.app))}renderAction=(e,o)=>{let r=this.app.props.UIOptions.canvasActions;if(this.actions[e]&&"PanelComponent"in this.actions[e]&&(!(e in r)||r[e])){let n=this.actions[e],i=n.PanelComponent;i.displayName="PanelComponent";let a=this.getElementsIncludingDeleted(),l=this.getAppState(),s=c=>{Dh(n,"ui",l,a,this.app,c),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),c,this.app))};return(0,Ow.jsx)(i,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:s,appProps:this.app.props,app:this.app,data:o})}return null};isActionEnabled=e=>{let o=this.getElementsIncludingDeleted(),r=this.getAppState();return!e.predicate||e.predicate(o,r,this.app.props,this.app)}};h();var Rh=t=>{let e=Array.from(t.values());return{x:Fw(e,o=>o.x)/e.length,y:Fw(e,o=>o.y)/e.length}},Nh=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),Fw=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var wS=t=>({selectedElementIds:t.selectedElementIds,selectedGroupIds:t.selectedGroupIds,viewBackgroundColor:t.viewBackgroundColor,editingLinearElement:t.editingLinearElement,editingGroupId:t.editingGroupId,name:t.name}),Oh=class{elementCache=new Map;recording=!0;stateHistory=[];redoStack=[];lastEntry=null;hydrateHistoryEntry({appState:e,elements:o}){return{appState:JSON.parse(e),elements:o.map(r=>{let n=this.elementCache.get(r.id)?.get(r.versionNonce);if(!n)throw new Error(`Element not found: ${r.id}:${r.versionNonce}`);return n})}}dehydrateHistoryEntry({appState:e,elements:o}){return{appState:JSON.stringify(e),elements:o.map(r=>{this.elementCache.has(r.id)||this.elementCache.set(r.id,new Map);let n=this.elementCache.get(r.id);return n.has(r.versionNonce)||n.set(r.versionNonce,Wi(r)),{id:r.id,versionNonce:r.versionNonce}})}}getSnapshotForTest(){return{recording:this.recording,stateHistory:this.stateHistory.map(e=>this.hydrateHistoryEntry(e)),redoStack:this.redoStack.map(e=>this.hydrateHistoryEntry(e))}}clear(){this.stateHistory.length=0,this.redoStack.length=0,this.lastEntry=null,this.elementCache.clear()}generateEntry=(e,o)=>this.dehydrateHistoryEntry({appState:wS(e),elements:o.reduce((r,n)=>{if(Re(n)&&e.multiElement&&e.multiElement.id===n.id){if(e.multiElement&&e.multiElement.id===n.id&&n.points.length<2)return r;r.push({...n,points:n.lastCommittedPoint!==n.points[n.points.length-1]?n.points.slice(0,-1):n.points})}else r.push(n);return r},[])});shouldCreateEntry(e){let{lastEntry:o}=this;if(!o||e.elements.length!==o.elements.length)return!0;for(let n=e.elements.length-1;n>-1;n--){let i=e.elements[n],a=o.elements[n];if(!i||!a||i.id!==a.id||i.versionNonce!==a.versionNonce)return!0}let r;for(r in e.appState)if(!(r==="editingLinearElement"&&e.appState[r]?.elementId===o.appState[r]?.elementId)&&!(r==="selectedElementIds"||r==="selectedGroupIds")&&e.appState[r]!==o.appState[r])return!0;return!1}pushEntry(e,o){let r=this.generateEntry(e,o),n=this.hydrateHistoryEntry(r);if(n){if(!this.shouldCreateEntry(n))return;this.stateHistory.push(r),this.lastEntry=n,this.clearRedoStack()}}clearRedoStack(){this.redoStack.splice(0,this.redoStack.length)}redoOnce(){if(this.redoStack.length===0)return null;let e=this.redoStack.pop();return e!==void 0?(this.stateHistory.push(e),this.hydrateHistoryEntry(e)):null}undoOnce(){if(this.stateHistory.length===1)return null;let e=this.stateHistory.pop(),o=this.stateHistory[this.stateHistory.length-1];return e!==void 0?(this.redoStack.push(e),this.hydrateHistoryEntry(o)):null}setCurrentState(e,o){this.lastEntry=this.hydrateHistoryEntry(this.generateEntry(e,o))}resumeRecording(){this.recording=!0}record(e,o){this.recording&&(this.pushEntry(e,o),this.recording=!1)}},Bw=Oh;h();var zw=v(H(),1),Zr=v(S(),1),ro="separator",Hw=zw.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=Da(),a=En(),l=e.reduce((s,c)=>(c&&(c===ro||!c.predicate||c.predicate(a,i,t.app.props,t.app))&&s.push(c),s),[]);return(0,Zr.jsx)(Ud,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Zr.jsx)("ul",{className:"context-menu",onContextMenu:s=>s.preventDefault(),children:l.map((s,c)=>{if(s===ro)return!l[c-1]||l[c-1]===ro?null:(0,Zr.jsx)("hr",{className:"context-menu-item-separator"},c);let m=s.name,d="";return s.label&&(typeof s.label=="function"?d=g(s.label(a,i,t.app)):d=g(s.label)),(0,Zr.jsx)("li",{"data-testid":m,onClick:()=>{n(()=>{t.executeAction(s,"contextMenu")})},children:(0,Zr.jsxs)("button",{className:z("context-menu-item",{dangerous:m==="deleteSelectedElements",checkmark:s.checked?.(i)}),children:[(0,Zr.jsx)("div",{className:"context-menu-item__label",children:d}),(0,Zr.jsx)("kbd",{className:"context-menu-item__shortcut",children:m?Et(m):""})]})},c)})})})});h();var q3=v(H(),1);h();var Am=v(H(),1);var Wa=v(S(),1),$w=({children:t,onClose:e})=>{let[o,r]=(0,Am.useState)(!!t),{container:n}=Mt(),i=Am.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,Wa.jsx)(Wa.Fragment,{children:o&&(0,Wa.jsx)(Qe,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,Wa.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var xo=v(H(),1);h();var us=v(S(),1),Uw=function({onChange:t,value:e,choices:o,name:r}){return(0,us.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,us.jsxs)("div",{className:z("RadioGroup__choice",{active:n.value===e}),children:[(0,us.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value)}),n.label]},n.label))})};h();var Fh=v(S(),1),ps=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,Fh.jsx)("div",{className:z("Switch",{toggled:o,disabled:n}),children:(0,Fh.jsx)("input",{name:e,id:e,title:t,type:"checkbox",checked:o,disabled:n,onChange:()=>r(!o),onKeyDown:i=>{i.key===" "&&r(!o)}})});h();var Lm=v(H(),1);var Ga=v(S(),1),wr=(0,Lm.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:s},c)=>{let[m,d]=(0,Lm.useState)(!1),f=async p=>{let b=o?.(p);if(Li(b))try{d(!0),await b}catch(x){if(x instanceof Ki)console.warn(x);else throw x}finally{d(!1)}};return(0,Ga.jsx)("button",{className:z("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},s),onClick:f,type:"button","aria-label":r,ref:c,disabled:m,children:(0,Ga.jsxs)("div",{className:"ExcButton__contents",children:[m&&(0,Ga.jsx)(Nt,{}),e&&(0,Ga.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Se=v(S(),1),CS="filter"in document.createElement("canvas").getContext("2d"),TS=()=>(0,Se.jsxs)("div",{children:[(0,Se.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Se.jsx)("p",{children:(0,Se.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Se.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),SS=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=Oe(e,t),[l,s]=(0,xo.useState)(i),[c,m]=(0,xo.useState)(a),[d,f]=(0,xo.useState)(t.exportBackground),[p,b]=(0,xo.useState)(t.exportWithDarkMode),[x,y]=(0,xo.useState)(t.exportEmbedScene),[w,k]=(0,xo.useState)(t.exportScale),C=(0,xo.useRef)(null),[M,_]=(0,xo.useState)(null),{exportedElements:I,exportingFrame:A}=li(e,t,c);return(0,xo.useEffect)(()=>{let P=C.current;if(!P)return;let F=P.offsetWidth,D=P.offsetHeight;F&&Zn({elements:I,appState:{...t,name:l,exportBackground:d,exportWithDarkMode:p,exportScale:w,exportEmbedScene:x},files:o,exportPadding:on,maxWidthOrHeight:Math.max(F,D),exportingFrame:A}).then(W=>(_(null),Or(W).then(()=>{P.replaceChildren(W)}).catch(O=>{throw O.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):O}))).catch(W=>{console.error(W),_(W)})},[t,o,I,A,l,d,p,w,x]),(0,Se.jsxs)("div",{className:"ImageExportModal",children:[(0,Se.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Se.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Se.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:C,children:M&&(0,Se.jsx)(TS,{})}),(0,Se.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Vi&&(0,Se.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:P=>{s(P.target.value),r.executeAction(Uf,"ui",P.target.value)}})})]}),(0,Se.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Se.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Se.jsx)(fs,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Se.jsx)(ps,{name:"exportOnlySelected",checked:c,onChange:P=>{m(P)}})}),(0,Se.jsx)(fs,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Se.jsx)(ps,{name:"exportBackgroundSwitch",checked:d,onChange:P=>{f(P),r.executeAction(Wf,"ui",P)}})}),CS&&(0,Se.jsx)(fs,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Se.jsx)(ps,{name:"exportDarkModeSwitch",checked:p,onChange:P=>{b(P),r.executeAction(Wy,"ui",P)}})}),(0,Se.jsx)(fs,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Se.jsx)(ps,{name:"exportEmbedSwitch",checked:x,onChange:P=>{y(P),r.executeAction(Vd,"ui",P)}})}),(0,Se.jsx)(fs,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Se.jsx)(Uw,{name:"exportScale",value:w,onChange:P=>{k(P),r.executeAction(Uy,"ui",P)},choices:Ys.map(P=>({value:P,label:`${P}\xD7`}))})}),(0,Se.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Se.jsx)(wr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(Gs.png,I,{exportingFrame:A}),icon:Up,children:g("imageExportDialog.button.exportToPng")}),(0,Se.jsx)(wr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(Gs.svg,I,{exportingFrame:A}),icon:Up,children:g("imageExportDialog.button.exportToSvg")}),(Yi||en)&&(0,Se.jsx)(wr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(Gs.clipboard,I,{exportingFrame:A}),icon:ld,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},fs=({label:t,children:e,tooltip:o,name:r})=>(0,Se.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Se.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Se.jsx)(ho,{label:o,long:!0,children:qx})]}),(0,Se.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),Ww=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:s}]=(0,xo.useState)(()=>({appStateSnapshot:sr(e),elementsSnapshot:sr(t)}));return(0,Se.jsx)(Qe,{onCloseRequest:i,size:"wide",title:!1,children:(0,Se.jsx)(SS,{elementsSnapshot:s,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var Gw=v(S(),1),Pm=({children:t,side:e,className:o})=>(0,Gw.jsx)("div",{className:z("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var Bh=v(S(),1),kS=({appState:t,isMobile:e,device:o,app:r})=>{let{activeTool:n,isResizing:i,isRotating:a,lastPointerDownWith:l}=t,s=t.multiElement!==null;if(t.openSidebar&&!o.editor.canFitSidebar)return null;if(So(t))return g("hints.eraserRevert");if(n.type==="arrow"||n.type==="line")return s?g("hints.linearElementMulti"):g("hints.linearElement");if(n.type==="freedraw")return g("hints.freeDraw");if(n.type==="text")return g("hints.text");if(n.type==="embeddable")return g("hints.embeddable");if(t.activeTool.type==="image"&&t.pendingImageElementId)return g("hints.placeImage");let c=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&c.length===1){let m=c[0];return Re(m)&&m.points.length===2?g("hints.lockAngle"):an(m)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(c.length===1&&le(c[0]))return g("hints.text_selected");if(t.editingElement&&le(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!c.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!c.length&&!e)return g("hints.canvasPanning");if(c.length===1){if(Re(c[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&Ri(c[0]))return g("hints.bindTextToElement")}}return null},Dm=({appState:t,isMobile:e,device:o,app:r})=>{let n=kS({appState:t,isMobile:e,device:o,app:r});return n?(n=N(n),(0,Bh.jsx)("div",{className:"HintViewer",children:(0,Bh.jsx)("span",{children:n})})):null};h();var hs=v(S(),1),IS="medium",Vw={CHECKED:ra,UNCHECKED:qn},Rm=t=>(0,hs.jsxs)("label",{className:z("ToolIcon ToolIcon__lock",`ToolIcon_size_${IS}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,hs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-lock"}),(0,hs.jsx)("div",{className:"ToolIcon__icon",children:t.checked?Vw.CHECKED:Vw.UNCHECKED})]});h();h();var yi=v(S(),1),An=({heading:t,children:e,...o})=>{let{id:r}=Mt(),n=(0,yi.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,yi.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,yi.jsxs)(yi.Fragment,{children:[n,e]})})};h();var tr=4,Cr=6,Kw="rgba(0,0,0,0.3)",Yw=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ke(t),s=e/r.zoom.value,c=o/r.zoom.value,m=e-s,d=o-c,f={top:parseInt(sl("sat"))||0,bottom:parseInt(sl("sab"))||0,left:parseInt(sl("sal"))||0,right:parseInt(sl("sar"))||0},p=Hr().rtl,b=-r.scrollX+m/2+f.left,x=-r.scrollY+d/2+f.top,y=b+s-f.right,w=x+c-f.bottom,k=Math.min(n,b),C=Math.min(i,x),M=Math.max(a,y),_=Math.max(l,w);return{horizontal:b===k&&y===M?null:{x:Math.max(f.left,tr)+(b-k)/(M-k)*e,y:o-Cr-Math.max(tr,f.bottom),width:(y-b)/(M-k)*e-Math.max(tr*2,f.left+f.right),height:Cr},vertical:x===C&&w===_?null:{x:p?Math.max(f.left,tr):e-Cr-Math.max(f.right,tr),y:(x-C)/(_-C)*o+Math.max(f.top,tr),width:Cr,height:(w-x)/(_-C)*o-Math.max(tr*2,f.top+f.bottom)}}},zh=(t,e,o)=>{let[r,n]=[t.horizontal,t.vertical].map(a=>a!=null&&a.x<=e&&e<=a.x+a.width&&a.y<=o&&o<=a.y+a.height);return{isOverEither:r||n,isOverHorizontal:r,isOverVertical:n}};h();var gs=v(S(),1),MS="medium",Nm=t=>t.penDetected?(0,gs.jsxs)("label",{className:z("ToolIcon ToolIcon__penMode",`ToolIcon_size_${MS}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,gs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,gs.jsx)("div",{className:"ToolIcon__icon",children:X0})]}):null;h();var ge=v(S(),1),Om=t=>{let e=Ke(t.elements),o=Qi(t.elements,t.appState),r=Ke(o);return(0,ge.jsx)("div",{className:"Stats",children:(0,ge.jsxs)(Bt,{padding:2,children:[(0,ge.jsx)("div",{className:"close",onClick:t.onClose,children:Mo}),(0,ge.jsx)("h3",{children:g("stats.title")}),(0,ge.jsx)("table",{children:(0,ge.jsxs)("tbody",{children:[(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.scene")})}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.elements")}),(0,ge.jsx)("td",{children:t.elements.length})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.width")}),(0,ge.jsx)("td",{children:Math.round(e[2])-Math.round(e[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.height")}),(0,ge.jsx)("td",{children:Math.round(e[3])-Math.round(e[1])})]}),o.length===1&&(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.element")})}),o.length>1&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)("tr",{children:(0,ge.jsx)("th",{colSpan:2,children:g("stats.selected")})}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.elements")}),(0,ge.jsx)("td",{children:o.length})]})]}),o.length>0&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:"x"}),(0,ge.jsx)("td",{children:Math.round(r[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:"y"}),(0,ge.jsx)("td",{children:Math.round(r[1])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.width")}),(0,ge.jsx)("td",{children:Math.round(r[2]-r[0])})]}),(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.height")}),(0,ge.jsx)("td",{children:Math.round(r[3]-r[1])})]})]}),o.length===1&&(0,ge.jsxs)("tr",{children:[(0,ge.jsx)("td",{children:g("stats.angle")}),(0,ge.jsx)("td",{children:`${Math.round(o[0].angle*180/Math.PI)}\xB0`})]}),t.renderCustomStats?.(t.elements,t.appState)]})})]})})};h();var Zw=v(S(),1),Fm=t=>(0,Zw.jsx)(se,{className:z("Shape",{fillable:!1}),type:"radio",icon:ad,name:"editor-current-shape",checked:t.checked,title:`${t.title} \u2014 H`,keyBindingLabel:t.isMobile?void 0:T.H.toLocaleUpperCase(),"aria-label":`${t.title} \u2014 H`,"aria-keyshortcuts":T.H,"data-testid":"toolbar-hand",onChange:()=>t.onChange?.()});var Be=v(S(),1),jw=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:s,renderSidebars:c,device:m,renderWelcomeScreen:d,UIOptions:f,app:p})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:y}=We(),w=()=>(0,Be.jsxs)(Pm,{side:"top",className:"App-top-bar",children:[d&&(0,Be.jsx)(b.Out,{}),(0,Be.jsx)(An,{heading:"shapes",children:C=>(0,Be.jsx)(At.Col,{gap:4,align:"center",children:(0,Be.jsxs)(At.Row,{gap:1,className:"App-toolbar-container",children:[(0,Be.jsxs)(Bt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[C,(0,Be.jsx)(At.Row,{gap:1,children:(0,Be.jsx)(km,{appState:t,activeTool:t.activeTool,UIOptions:f,app:p})})]}),l&&l(!0,t),(0,Be.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,Be.jsx)(y.Out,{}),(0,Be.jsx)(Nm,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,Be.jsx)(Rm,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,Be.jsx)(Fm,{checked:Dr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,Be.jsx)(Dm,{appState:t,isMobile:!0,device:m,app:p})]}),k=()=>t.viewModeEnabled?(0,Be.jsx)("div",{className:"App-toolbar-content",children:(0,Be.jsx)(x.Out,{})}):(0,Be.jsxs)("div",{className:"App-toolbar-content",children:[(0,Be.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,Be.jsxs)(Be.Fragment,{children:[c(),!t.viewModeEnabled&&w(),!t.openMenu&&t.showStats&&(0,Be.jsx)(Om,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(Tn)},renderCustomStats:s}),(0,Be.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:Cr+tr*2,marginLeft:Cr+tr*2,marginRight:Cr+tr*2},children:(0,Be.jsxs)(Bt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&qi(t,e)?(0,Be.jsx)(An,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,Be.jsx)(Sm,{appState:t,elementsMap:p.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,Be.jsxs)("footer",{className:"App-toolbar",children:[k(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,Be.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(C=>({...Xn(e,C)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var Pn=v(H(),1);var Ln=v(S(),1),Xw=t=>{let e=(0,Pn.useRef)(null),[o,r]=(0,Pn.useState)(null);return(0,Pn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=qb(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await Ac(n,{exportBackground:!1,viewBackgroundColor:It.white},null),i.querySelector(".style-fonts")?.remove(),a.replaceChildren(),a.appendChild(i),t.selected&&a.parentNode.focus()))(),()=>{a.replaceChildren()}},[t.spreadsheet,t.chartType,t.selected]),(0,Ln.jsx)("button",{className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,Ln.jsx)("div",{ref:e})})},qw=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=so(),n=Pn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),ve("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,Ln.jsx)(Qe,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Ln.jsxs)("div",{className:"container",children:[(0,Ln.jsx)(Xw,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,Ln.jsx)(Xw,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var Jw=v(H(),1);var G=v(S(),1),_S=()=>(0,G.jsxs)("div",{className:"HelpDialog__header",children:[(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.documentation"),(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:od})]}),(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.blog"),(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:od})]}),(0,G.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[g("helpDialog.github"),(0,G.jsx)("div",{className:"HelpDialog__link-icon",children:od})]})]}),AS=t=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)("h3",{children:t.title}),(0,G.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),Hh=t=>(0,G.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,G.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,G.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*LS(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var PS=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),q=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,G.jsx)(DS,{children:PS(a)},a)));return(0,G.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,G.jsx)("div",{children:t}),(0,G.jsx)("div",{className:"HelpDialog__key-container",children:[...LS(r,o?g("helpDialog.or"):null)]})]})},DS=t=>(0,G.jsx)("kbd",{className:"HelpDialog__key",...t}),Qw=({onClose:t})=>{let e=Jw.default.useCallback(()=>{t&&t()},[t]);return(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)(Qe,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,G.jsx)(_S,{}),(0,G.jsxs)(AS,{title:g("helpDialog.shortcuts"),children:[(0,G.jsxs)(Hh,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,G.jsx)(q,{label:g("toolBar.hand"),shortcuts:[T.H]}),(0,G.jsx)(q,{label:g("toolBar.selection"),shortcuts:[T.V,T[1]]}),(0,G.jsx)(q,{label:g("toolBar.rectangle"),shortcuts:[T.R,T[2]]}),(0,G.jsx)(q,{label:g("toolBar.diamond"),shortcuts:[T.D,T[3]]}),(0,G.jsx)(q,{label:g("toolBar.ellipse"),shortcuts:[T.O,T[4]]}),(0,G.jsx)(q,{label:g("toolBar.arrow"),shortcuts:[T.A,T[5]]}),(0,G.jsx)(q,{label:g("toolBar.line"),shortcuts:[T.L,T[6]]}),(0,G.jsx)(q,{label:g("toolBar.freedraw"),shortcuts:[T.P,T[7]]}),(0,G.jsx)(q,{label:g("toolBar.text"),shortcuts:[T.T,T[8]]}),(0,G.jsx)(q,{label:g("toolBar.image"),shortcuts:[T[9]]}),(0,G.jsx)(q,{label:g("toolBar.eraser"),shortcuts:[T.E,T[0]]}),(0,G.jsx)(q,{label:g("toolBar.frame"),shortcuts:[T.F]}),(0,G.jsx)(q,{label:g("toolBar.laser"),shortcuts:[T.K]}),(0,G.jsx)(q,{label:g("labels.eyeDropper"),shortcuts:[T.I,"Shift+S","Shift+G"]}),(0,G.jsx)(q,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[N("CtrlOrCmd+Enter")]}),(0,G.jsx)(q,{label:g("helpDialog.editText"),shortcuts:[N("Enter")]}),(0,G.jsx)(q,{label:g("helpDialog.textNewLine"),shortcuts:[N("Enter"),N("Shift+Enter")]}),(0,G.jsx)(q,{label:g("helpDialog.textFinish"),shortcuts:[N("Esc"),N("CtrlOrCmd+Enter")]}),(0,G.jsx)(q,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,G.jsx)(q,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,G.jsx)(q,{label:g("toolBar.lock"),shortcuts:[T.Q]}),(0,G.jsx)(q,{label:g("helpDialog.preventBinding"),shortcuts:[N("CtrlOrCmd")]}),(0,G.jsx)(q,{label:g("toolBar.link"),shortcuts:[N("CtrlOrCmd+K")]})]}),(0,G.jsxs)(Hh,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,G.jsx)(q,{label:g("buttons.zoomIn"),shortcuts:[N("CtrlOrCmd++")]}),(0,G.jsx)(q,{label:g("buttons.zoomOut"),shortcuts:[N("CtrlOrCmd+-")]}),(0,G.jsx)(q,{label:g("buttons.resetZoom"),shortcuts:[N("CtrlOrCmd+0")]}),(0,G.jsx)(q,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,G.jsx)(q,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,G.jsx)(q,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,G.jsx)(q,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,G.jsx)(q,{label:g("buttons.zenMode"),shortcuts:[N("Alt+Z")]}),(0,G.jsx)(q,{label:g("buttons.objectsSnapMode"),shortcuts:[N("Alt+S")]}),(0,G.jsx)(q,{label:g("labels.showGrid"),shortcuts:[N("CtrlOrCmd+'")]}),(0,G.jsx)(q,{label:g("labels.viewMode"),shortcuts:[N("Alt+R")]}),(0,G.jsx)(q,{label:g("labels.toggleTheme"),shortcuts:[N("Alt+Shift+D")]}),(0,G.jsx)(q,{label:g("stats.title"),shortcuts:[N("Alt+/")]}),(0,G.jsx)(q,{label:g("commandPalette.title"),shortcuts:[Et("commandPalette"),Et("commandPalette",1)]})]}),(0,G.jsxs)(Hh,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,G.jsx)(q,{label:g("labels.moveCanvas"),shortcuts:[N(`Space+${g("helpDialog.drag")}`),N(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,G.jsx)(q,{label:g("buttons.clearReset"),shortcuts:[N("CtrlOrCmd+Delete")]}),(0,G.jsx)(q,{label:g("labels.delete"),shortcuts:[N("Delete")]}),(0,G.jsx)(q,{label:g("labels.cut"),shortcuts:[N("CtrlOrCmd+X")]}),(0,G.jsx)(q,{label:g("labels.copy"),shortcuts:[N("CtrlOrCmd+C")]}),(0,G.jsx)(q,{label:g("labels.paste"),shortcuts:[N("CtrlOrCmd+V")]}),(0,G.jsx)(q,{label:g("labels.pasteAsPlaintext"),shortcuts:[N("CtrlOrCmd+Shift+V")]}),(0,G.jsx)(q,{label:g("labels.selectAll"),shortcuts:[N("CtrlOrCmd+A")]}),(0,G.jsx)(q,{label:g("labels.multiSelect"),shortcuts:[N(`Shift+${g("helpDialog.click")}`)]}),(0,G.jsx)(q,{label:g("helpDialog.deepSelect"),shortcuts:[N(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,G.jsx)(q,{label:g("helpDialog.deepBoxSelect"),shortcuts:[N(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(Yi||en)&&(0,G.jsx)(q,{label:g("labels.copyAsPng"),shortcuts:[N("Shift+Alt+C")]}),(0,G.jsx)(q,{label:g("labels.copyStyles"),shortcuts:[N("CtrlOrCmd+Alt+C")]}),(0,G.jsx)(q,{label:g("labels.pasteStyles"),shortcuts:[N("CtrlOrCmd+Alt+V")]}),(0,G.jsx)(q,{label:g("labels.sendToBack"),shortcuts:[Wo?N("CtrlOrCmd+Alt+["):N("CtrlOrCmd+Shift+[")]}),(0,G.jsx)(q,{label:g("labels.bringToFront"),shortcuts:[Wo?N("CtrlOrCmd+Alt+]"):N("CtrlOrCmd+Shift+]")]}),(0,G.jsx)(q,{label:g("labels.sendBackward"),shortcuts:[N("CtrlOrCmd+[")]}),(0,G.jsx)(q,{label:g("labels.bringForward"),shortcuts:[N("CtrlOrCmd+]")]}),(0,G.jsx)(q,{label:g("labels.alignTop"),shortcuts:[N("CtrlOrCmd+Shift+Up")]}),(0,G.jsx)(q,{label:g("labels.alignBottom"),shortcuts:[N("CtrlOrCmd+Shift+Down")]}),(0,G.jsx)(q,{label:g("labels.alignLeft"),shortcuts:[N("CtrlOrCmd+Shift+Left")]}),(0,G.jsx)(q,{label:g("labels.alignRight"),shortcuts:[N("CtrlOrCmd+Shift+Right")]}),(0,G.jsx)(q,{label:g("labels.duplicateSelection"),shortcuts:[N("CtrlOrCmd+D"),N(`Alt+${g("helpDialog.drag")}`)]}),(0,G.jsx)(q,{label:g("helpDialog.toggleElementLock"),shortcuts:[N("CtrlOrCmd+Shift+L")]}),(0,G.jsx)(q,{label:g("buttons.undo"),shortcuts:[N("CtrlOrCmd+Z")]}),(0,G.jsx)(q,{label:g("buttons.redo"),shortcuts:$s?[N("CtrlOrCmd+Y"),N("CtrlOrCmd+Shift+Z")]:[N("CtrlOrCmd+Shift+Z")]}),(0,G.jsx)(q,{label:g("labels.group"),shortcuts:[N("CtrlOrCmd+G")]}),(0,G.jsx)(q,{label:g("labels.ungroup"),shortcuts:[N("CtrlOrCmd+Shift+G")]}),(0,G.jsx)(q,{label:g("labels.flipHorizontal"),shortcuts:[N("Shift+H")]}),(0,G.jsx)(q,{label:g("labels.flipVertical"),shortcuts:[N("Shift+V")]}),(0,G.jsx)(q,{label:g("labels.showStroke"),shortcuts:[N("S")]}),(0,G.jsx)(q,{label:g("labels.showBackground"),shortcuts:[N("G")]}),(0,G.jsx)(q,{label:g("labels.decreaseFontSize"),shortcuts:[N("CtrlOrCmd+Shift+<")]}),(0,G.jsx)(q,{label:g("labels.increaseFontSize"),shortcuts:[N("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var Dn=v(H(),1);var zt=v(S(),1),RS=4,NS=8,OS=({shouldWrap:t,children:e,username:o})=>t?(0,zt.jsx)(ho,{label:o||"Unknown user",children:e}):(0,zt.jsx)(Dn.default.Fragment,{children:e}),$h=({actionManager:t,collaborator:e,socketId:o,withName:r=!1,shouldWrapWithTooltip:n=!1,isBeingFollowed:i})=>{let a={socketId:o,collaborator:e,withName:r,isBeingFollowed:i},l=t.renderAction("goToCollaborator",a);return(0,zt.jsx)(OS,{username:e.username,shouldWrap:n,children:l},o)},FS=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],Bm=Dn.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=St(),i=new Map;o.forEach((y,w)=>{let k=y.id||w;i.set(k,{...y,socketId:w})});let a=Array.from(i.values()).filter(y=>y.username?.trim()),[l,s]=Dn.default.useState(""),c=Dn.default.useRef(null);(0,Dn.useLayoutEffect)(()=>{if(c.current){let y=k=>{let C=Math.max(1,Math.min(8,Math.floor(k/38)));d(C)};if(y(c.current.clientWidth),!tl)return;let w=new ResizeObserver(k=>{for(let C of k){let{width:M}=C.contentRect;y(M)}});return w.observe(c.current),()=>{w.disconnect()}}},[]);let[m,d]=Dn.default.useState(RS),p=l.trim().toLowerCase()?a.filter(y=>y.username?.toLowerCase().includes(l)):a,x=a.slice(0,m-1).map(y=>$h({actionManager:n,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===r}));return e?(0,zt.jsx)("div",{className:z("UserList UserList_mobile",t),children:a.map(y=>$h({actionManager:n,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===r}))}):(0,zt.jsx)("div",{className:"UserList-wrapper",ref:c,children:(0,zt.jsxs)("div",{className:z("UserList",t),style:{"--max-avatars":m},children:[x,a.length>m-1&&(0,zt.jsxs)(Od,{onOpenChange:y=>{y||s("")},children:[(0,zt.jsxs)(Fd,{className:"UserList__more",children:["+",a.length-m+1]}),(0,zt.jsx)(Bd,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,zt.jsxs)(Bt,{style:{overflow:"hidden"},children:[a.length>=NS&&(0,zt.jsxs)("div",{className:"UserList__search-wrapper",children:[md,(0,zt.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:y=>{s(y.target.value)}})]}),(0,zt.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[p.length===0&&(0,zt.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,zt.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),p.map(y=>$h({actionManager:n,collaborator:y,socketId:y.socketId,withName:!0,isBeingFollowed:y.socketId===r}))]})]})})]})]})})},(t,e)=>{if(t.collaborators.size!==e.collaborators.size||t.mobile!==e.mobile||t.className!==e.className||t.userToFollow!==e.userToFollow)return!1;let o=e.collaborators.keys();for(let[r,n]of t.collaborators){let i=e.collaborators.get(r);if(!i||r!==o.next().value||!Dt(n,i,FS))return!1}return!0});h();var t3=v(H(),1);h();var e3=v(S(),1),Uh=({children:t,color:e})=>(0,e3.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":It[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":It[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":It[e][9]},children:t});var kt=v(S(),1),BS=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:s}=i;return(0,kt.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,kt.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,kt.jsxs)(Uh,{color:"lime",children:[(0,kt.jsx)("div",{className:"Card-icon",children:dx}),(0,kt.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,kt.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!Vi&&n.renderAction("changeProjectName")]}),(0,kt.jsx)(se,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(ts,"ui")}})]}),s&&(0,kt.jsxs)(Uh,{color:"pink",children:[(0,kt.jsx)("div",{className:"Card-icon",children:Ol}),(0,kt.jsx)("h2",{children:g("exportDialog.link_title")}),(0,kt.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,kt.jsx)(se,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{ve("export","link",`ui (${P1()})`),await s(t,e,r),l()}catch(c){o({errorMessage:c.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},o3=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=t3.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,kt.jsx)(kt.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,kt.jsx)(Qe,{onCloseRequest:l,title:g("buttons.export"),children:(0,kt.jsx)(BS,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var n3=v(S(),1),r3=t=>(0,n3.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:ia});var no=v(S(),1),i3=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=We(),a=Me(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,no.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,no.jsx)("div",{className:z("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,no.jsx)(At.Col,{gap:2,children:(0,no.jsxs)(An,{heading:"canvasActions",children:[(0,no.jsx)(Tw,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,no.jsx)(Sw,{renderAction:e.renderAction,className:z("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,no.jsx)(Iw,{renderAction:e.renderAction,className:z("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,no.jsx)(n.Out,{}),(0,no.jsx)("div",{className:z("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,no.jsxs)("div",{style:{position:"relative"},children:[r&&(0,no.jsx)(i.Out,{}),(0,no.jsx)(r3,{onClick:()=>e.executeAction(di)})]})}),(0,no.jsx)(kw,{actionManager:e,showExitZenModeBtn:o})]})},a3=i3;i3.displayName="Footer";h();var wt=v(H(),1);h();var l3=v(H(),1),zm=l3.default.createContext({});h();var s3=v(H(),1);var Ei=v(S(),1),Wh=({children:t,className:e})=>{let o=Me(),r=(0,s3.useContext)(zm),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,Ei.jsxs)("div",{className:z("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,Ei.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,Ei.jsx)(ho,{label:g("labels.sidebarLock"),children:(0,Ei.jsx)(yr,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:H0})}),(0,Ei.jsx)(yr,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:Mo})]})]})};Wh.displayName="SidebarHeader";h();var wi=v(S(),1),Gh=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let s=_e(),c=ke();return(0,wi.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,wi.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:m=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let d=m.target.checked;s({openSidebar:d?{name:t,tab:e}:null}),i?.(d)},checked:c.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,wi.jsxs)("div",{className:z("sidebar-trigger",a),style:l,children:[o&&(0,wi.jsx)("div",{children:o}),n&&(0,wi.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};Gh.displayName="SidebarTrigger";h();h();var Lt=v(H());h();var Ge=v(H());h();var or=v(H());function c3(t){let e=t+"CollectionProvider",[o,r]=gr(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=p=>{let{scope:b,children:x}=p,y=or.default.useRef(null),w=or.default.useRef(new Map).current;return or.default.createElement(n,{scope:b,itemMap:w,collectionRef:y},x)},l=t+"CollectionSlot",s=or.default.forwardRef((p,b)=>{let{scope:x,children:y}=p,w=i(l,x),k=Ot(b,w.collectionRef);return or.default.createElement(gn,{ref:k},y)}),c=t+"CollectionItemSlot",m="data-radix-collection-item",d=or.default.forwardRef((p,b)=>{let{scope:x,children:y,...w}=p,k=or.default.useRef(null),C=Ot(b,k),M=i(c,x);return or.default.useEffect(()=>(M.itemMap.set(k,{ref:k,...w}),()=>void M.itemMap.delete(k))),or.default.createElement(gn,{[m]:"",ref:C},y)});function f(p){let b=i(t+"CollectionConsumer",p);return or.default.useCallback(()=>{let y=b.collectionRef.current;if(!y)return[];let w=Array.from(y.querySelectorAll(`[${m}]`));return Array.from(b.itemMap.values()).sort((M,_)=>w.indexOf(M.ref.current)-w.indexOf(_.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:s,ItemSlot:d},f,r]}h();var bs=v(H()),zS=(0,bs.createContext)(void 0);function Hm(t){let e=(0,bs.useContext)(zS);return t||e||"ltr"}var Vh="rovingFocusGroup.onEntryFocus",HS={bubbles:!1,cancelable:!0},Yh="RovingFocusGroup",[Kh,d3,$S]=c3(Yh),[US,Zh]=gr(Yh,[$S]),[WS,GS]=US(Yh),VS=(0,Ge.forwardRef)((t,e)=>(0,Ge.createElement)(Kh.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ge.createElement)(Kh.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ge.createElement)(KS,ye({},t,{ref:e}))))),KS=(0,Ge.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:s,onEntryFocus:c,...m}=t,d=(0,Ge.useRef)(null),f=Ot(e,d),p=Hm(i),[b=null,x]=Ea({prop:a,defaultProp:l,onChange:s}),[y,w]=(0,Ge.useState)(!1),k=eo(c),C=d3(o),M=(0,Ge.useRef)(!1),[_,I]=(0,Ge.useState)(0);return(0,Ge.useEffect)(()=>{let A=d.current;if(A)return A.addEventListener(Vh,k),()=>A.removeEventListener(Vh,k)},[k]),(0,Ge.createElement)(WS,{scope:o,orientation:r,dir:p,loop:n,currentTabStopId:b,onItemFocus:(0,Ge.useCallback)(A=>x(A),[x]),onItemShiftTab:(0,Ge.useCallback)(()=>w(!0),[]),onFocusableItemAdd:(0,Ge.useCallback)(()=>I(A=>A+1),[]),onFocusableItemRemove:(0,Ge.useCallback)(()=>I(A=>A-1),[])},(0,Ge.createElement)(st.div,ye({tabIndex:y||_===0?-1:0,"data-orientation":r},m,{ref:f,style:{outline:"none",...t.style},onMouseDown:vt(t.onMouseDown,()=>{M.current=!0}),onFocus:vt(t.onFocus,A=>{let P=!M.current;if(A.target===A.currentTarget&&P&&!y){let F=new CustomEvent(Vh,HS);if(A.currentTarget.dispatchEvent(F),!F.defaultPrevented){let D=C().filter(K=>K.focusable),W=D.find(K=>K.active),O=D.find(K=>K.id===b),ee=[W,O,...D].filter(Boolean).map(K=>K.ref.current);m3(ee)}}M.current=!1}),onBlur:vt(t.onBlur,()=>w(!1))})))}),YS="RovingFocusGroupItem",ZS=(0,Ge.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=ba(),s=i||l,c=GS(YS,o),m=c.currentTabStopId===s,d=d3(o),{onFocusableItemAdd:f,onFocusableItemRemove:p}=c;return(0,Ge.useEffect)(()=>{if(r)return f(),()=>p()},[r,f,p]),(0,Ge.createElement)(Kh.ItemSlot,{scope:o,id:s,focusable:r,active:n},(0,Ge.createElement)(st.span,ye({tabIndex:m?0:-1,"data-orientation":c.orientation},a,{ref:e,onMouseDown:vt(t.onMouseDown,b=>{r?c.onItemFocus(s):b.preventDefault()}),onFocus:vt(t.onFocus,()=>c.onItemFocus(s)),onKeyDown:vt(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){c.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=qS(b,c.orientation,c.dir);if(x!==void 0){b.preventDefault();let w=d().filter(k=>k.focusable).map(k=>k.ref.current);if(x==="last")w.reverse();else if(x==="prev"||x==="next"){x==="prev"&&w.reverse();let k=w.indexOf(b.currentTarget);w=c.loop?JS(w,k+1):w.slice(k+1)}setTimeout(()=>m3(w))}})})))}),jS={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function XS(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function qS(t,e,o){let r=XS(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return jS[r]}function m3(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function JS(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var u3=VS,p3=ZS;var f3="Tabs",[QS,oJ]=gr(f3,[Zh]),h3=Zh(),[ek,jh]=QS(f3),tk=(0,Lt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:s="automatic",...c}=t,m=Hm(l),[d,f]=Ea({prop:r,onChange:n,defaultProp:i});return(0,Lt.createElement)(ek,{scope:o,baseId:ba(),value:d,onValueChange:f,orientation:a,dir:m,activationMode:s},(0,Lt.createElement)(st.div,ye({dir:m,"data-orientation":a},c,{ref:e})))}),ok="TabsList",rk=(0,Lt.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=jh(ok,o),a=h3(o);return(0,Lt.createElement)(u3,ye({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,Lt.createElement)(st.div,ye({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),nk="TabsTrigger",ik=(0,Lt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=jh(nk,o),l=h3(o),s=g3(a.baseId,r),c=b3(a.baseId,r),m=r===a.value;return(0,Lt.createElement)(p3,ye({asChild:!0},l,{focusable:!n,active:m}),(0,Lt.createElement)(st.button,ye({type:"button",role:"tab","aria-selected":m,"aria-controls":c,"data-state":m?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:s},i,{ref:e,onMouseDown:vt(t.onMouseDown,d=>{!n&&d.button===0&&d.ctrlKey===!1?a.onValueChange(r):d.preventDefault()}),onKeyDown:vt(t.onKeyDown,d=>{[" ","Enter"].includes(d.key)&&a.onValueChange(r)}),onFocus:vt(t.onFocus,()=>{let d=a.activationMode!=="manual";!m&&!n&&d&&a.onValueChange(r)})})))}),ak="TabsContent",lk=(0,Lt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=jh(ak,o),s=g3(l.baseId,r),c=b3(l.baseId,r),m=r===l.value,d=(0,Lt.useRef)(m);return(0,Lt.useEffect)(()=>{let f=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(f)},[]),(0,Lt.createElement)(ya,{present:n||m},({present:f})=>(0,Lt.createElement)(st.div,ye({"data-state":m?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":s,hidden:!f,id:c,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:d.current?"0s":void 0}}),f&&i))});function g3(t,e){return`${t}-trigger-${e}`}function b3(t,e){return`${t}-content-${e}`}var $m=tk,Um=rk,Wm=ik,Gm=lk;var x3=v(S(),1),Xh=({children:t,...e})=>(0,x3.jsx)(Um,{className:"sidebar-triggers",...e,children:t});Xh.displayName="SidebarTabTriggers";h();var qh=v(S(),1),Jh=({children:t,tab:e,onSelect:o,...r})=>(0,qh.jsx)(Wm,{value:e,asChild:!0,onSelect:o,children:(0,qh.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});Jh.displayName="SidebarTabTrigger";h();var v3=v(S(),1),Qh=({children:t,...e})=>{let o=ke(),r=_e();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,v3.jsx)($m,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};Qh.displayName="SidebarTabs";h();var y3=v(S(),1),eg=({tab:t,children:e,...o})=>(0,y3.jsx)(Gm,{...o,value:t,"data-testid":t,children:e});eg.displayName="SidebarTab";var tg=v(S(),1),w3=v(H(),1),xs=$e(!1),E3=(0,wt.forwardRef)(({name:t,children:e,onDock:o,docked:r,className:n,...i},a)=>{E.DEV&&o&&r==null&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let l=_e(),s=zr(xs,Pe);(0,wt.useLayoutEffect)(()=>(s(!!r),()=>{s(!1)}),[s,r]);let c=(0,wt.useRef)({});c.current.onCloseRequest=()=>{l({openSidebar:null})},c.current.onDock=p=>o?.(p),c.current=Ai(c.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let m=(0,wt.useRef)(null);(0,wt.useImperativeHandle)(a,()=>m.current);let d=Me(),f=(0,wt.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return ka(m,(0,wt.useCallback)(p=>{p.target.closest(".sidebar-trigger")||(!r||!d.editor.canFitSidebar)&&f()},[f,r,d.editor.canFitSidebar])),(0,wt.useEffect)(()=>{let p=b=>{b.key===T.ESCAPE&&(!r||!d.editor.canFitSidebar)&&f()};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}},[f,r,d.editor.canFitSidebar]),(0,tg.jsx)(Bt,{...i,className:z("sidebar",{"sidebar--docked":r},n),ref:m,children:(0,tg.jsx)(zm.Provider,{value:c.current,children:e})})});E3.displayName="SidebarInner";var jr=Object.assign((0,wt.forwardRef)((t,e)=>{let o=ke(),{onStateChange:r}=t,n=(0,wt.useRef)(o.openSidebar);(0,wt.useEffect)(()=>{(!o.openSidebar&&n?.current?.name===t.name||o.openSidebar?.name===t.name&&n?.current?.name!==t.name||n.current?.name===t.name)&&o.openSidebar!==n.current&&r?.(o.openSidebar?.name!==t.name?null:o.openSidebar),n.current=o.openSidebar},[o.openSidebar,r,t.name]);let[i,a]=(0,wt.useState)(!1);return(0,wt.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,w3.createElement)(E3,{...t,ref:e,key:t.name}):null}),{Header:Wh,TabTriggers:Xh,TabTrigger:Jh,Tabs:Qh,Tab:eg,Trigger:Gh});jr.displayName="Sidebar";h();var rg={};Ug(rg,{ChangeCanvasBackground:()=>L3,ClearCanvas:()=>_3,CommandPalette:()=>I3,Export:()=>P3,Help:()=>M3,LiveCollaborationTrigger:()=>R3,LoadScene:()=>T3,SaveAsImage:()=>k3,SaveToActiveFile:()=>S3,Socials:()=>D3,ToggleTheme:()=>A3});h();h();var og=$e({active:!1});async function C3({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{Ut.set(og,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}var it=v(S(),1),T3=()=>{let{t}=xt(),e=St(),o=En();return e.isActionEnabled(_a)?(0,it.jsx)(Ro,{icon:aa,onSelect:async()=>{(!o.length||await C3({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,it.jsx)(oo,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,it.jsx)("strong",{children:n}),br:()=>(0,it.jsx)("br",{})})}))&&e.executeAction(_a)},"data-testid":"load-button",shortcut:Et("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};T3.displayName="LoadScene";var S3=()=>{let{t}=xt(),e=St();return e.isActionEnabled(Kd)?(0,it.jsx)(Ro,{shortcut:Et("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(Kd),icon:lx,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};S3.displayName="SaveToActiveFile";var k3=()=>{let t=_e(),{t:e}=xt();return(0,it.jsx)(Ro,{icon:nd,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:Et("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};k3.displayName="SaveAsImage";var I3=()=>{let t=_e(),{t:e}=xt();return(0,it.jsx)(Ro,{icon:ud,"data-testid":"command-palette-button",onSelect:()=>t({openDialog:{name:"commandPalette"}}),shortcut:Et("commandPalette"),"aria-label":e("commandPalette.title"),children:e("commandPalette.title")})};I3.displayName="CommandPalette";var M3=()=>{let{t}=xt(),e=St();return(0,it.jsx)(Ro,{"data-testid":"help-menu-item",icon:ia,onSelect:()=>e.executeAction(di),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};M3.displayName="Help";var _3=()=>{let{t}=xt(),e=zr(vi,Pe);return St().isActionEnabled(Vr)?(0,it.jsx)(Ro,{icon:Xo,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};_3.displayName="ClearCanvas";var A3=()=>{let{t}=xt(),e=ke(),o=St();return o.isActionEnabled(ii)?(0,it.jsx)(Ro,{onSelect:r=>(r.preventDefault(),o.executeAction(ii)),icon:e.theme==="dark"?ed:Qc,"data-testid":"toggle-dark-mode",shortcut:Et("toggleTheme"),"aria-label":e.theme==="dark"?t("buttons.lightMode"):t("buttons.darkMode"),children:e.theme==="dark"?t("buttons.lightMode"):t("buttons.darkMode")}):null};A3.displayName="ToggleTheme";var L3=()=>{let{t}=xt(),e=ke(),o=St(),r=Sn();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,it.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,it.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,it.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};L3.displayName="ChangeCanvasBackground";var P3=()=>{let{t}=xt(),e=_e();return(0,it.jsx)(Ro,{icon:Jn,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};P3.displayName="Export";var D3=()=>{let{t}=xt();return(0,it.jsxs)(it.Fragment,{children:[(0,it.jsx)(za,{icon:rx,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,it.jsx)(za,{icon:ix,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,it.jsx)(za,{icon:nx,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};D3.displayName="Socials";var R3=({onSelect:t,isCollaborating:e})=>{let{t:o}=xt();return(0,it.jsx)(Ro,{"data-testid":"collab-button",icon:id,className:z({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};R3.displayName="LiveCollaborationTrigger";h();var Vm=v(H(),1);var N3=v(S(),1),Xr=(t,e)=>{let o=$e(0),r=n=>{let{jotaiScope:i}=We(),[,a]=Ee(o,i),l=(0,Vm.useRef)({preferHost:!1,counter:0});return(0,Vm.useLayoutEffect)(()=>{let s=l.current;return a(c=>{let m=c+1;return s.counter=m,m}),()=>{a(c=>{let m=c-1;return s.counter=m,m||(s.preferHost=!1),m})}},[a]),n.__fallback||(l.current.preferHost=!0),!l.current.counter&&n.__fallback&&l.current.preferHost||l.current.counter>1&&n.__fallback?null:(0,N3.jsx)(e,{...n})};return r.displayName=t,r};var qr=v(S(),1),sk=Object.assign(Xr("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=We(),r=Me(),n=ke(),i=_e(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,qr.jsx)(o.In,{children:(0,qr.jsxs)(Le,{open:n.openMenu==="canvas",children:[(0,qr.jsx)(Le.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:td}),(0,qr.jsxs)(Le.Content,{onClickOutside:a,onSelect:nn(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,qr.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,qr.jsx)("legend",{children:g("labels.collaborators")}),(0,qr.jsx)(Bm,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:Le.Trigger,Item:Le.Item,ItemLink:Le.ItemLink,ItemCustom:Le.ItemCustom,Group:Le.Group,Separator:Le.Separator,DefaultItems:rg}),io=sk;h();h();var Jr=v(S(),1),Km=({title:t,children:e,actionLabel:o,onClick:r})=>(0,Jr.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Jr.jsx)("h4",{children:t}),(0,Jr.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,Jr.jsx)(wr,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),ck=()=>{let{t}=xt(),e=St(),o=_e();return(0,Jr.jsx)(Km,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(Vd,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},dk=()=>{let{t}=xt(),e=St();return(0,Jr.jsx)(Km,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(ts,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},ng=Object.assign(({children:t})=>(0,Jr.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:ck,SaveToDisk:dk});var Fo=v(S(),1),Ym=Object.assign(Xr("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=We(),[o,r]=Ee(og,Pe);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Fo.jsx)(e.In,{children:(0,Fo.jsx)(Qe,{onCloseRequest:n,title:!1,size:916,children:(0,Fo.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Fo.jsx)("h3",{children:o.title}),(0,Fo.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Fo.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:Jx}),(0,Fo.jsx)("div",{children:o.description}),(0,Fo.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Fo.jsx)(wr,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Fo.jsx)(ng,{children:t})]})})})}),{Actions:ng,Action:Km});h();var Bo=v(S(),1),B3=v(H(),1),O3=Xr("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=We();return(0,Bo.jsx)(e.In,{children:(0,Bo.jsx)(jr.Trigger,{...t,className:"default-sidebar-trigger",name:Vo.name})})});O3.displayName="DefaultSidebarTrigger";var F3=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=We();return(0,Bo.jsx)(o.In,{children:(0,Bo.jsx)(jr.TabTriggers,{...e,children:t})})};F3.displayName="DefaultTabTriggers";var Zm=Object.assign(Xr("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=ke(),a=_e(),{DefaultSidebarTabTriggersTunnel:l}=We();return(0,B3.createElement)(jr,{...n,name:"default",key:"default",className:z("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:nn(o,s=>{a({defaultSidebarDockedPreference:s})})},(0,Bo.jsxs)(jr.Tabs,{children:[(0,Bo.jsxs)(jr.Header,{children:[n.__fallback&&(0,Bo.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:g("toolBar.library")}),(0,Bo.jsx)(l.Out,{})]}),(0,Bo.jsx)(jr.Tab,{tab:Xs,children:(0,Bo.jsx)(qE,{})}),t]}))}),{Trigger:O3,TabTriggers:F3});h();var vs=v(S(),1),mk="small",z3=t=>(0,vs.jsxs)("label",{className:z("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${mk}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,vs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title,"data-testid":"toolbar-LaserPointer"}),(0,vs.jsx)("div",{className:"ToolIcon__icon",children:dd})]});h();var ag=v(H(),1);h();var H3=v(S(),1),Va=t=>(0,H3.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var ig=v(H(),1);var U3=v(S(),1),$3=t=>{let e=_e(),o=(0,ig.useRef)(null),r=(0,ig.useRef)(0);return(0,U3.jsx)($m,{ref:o,className:"ttd-dialog-tabs-root",value:t.tab,onValueChange:n=>{if(!n)return;let i=o.current?.closest(".Modal__content");if(i){let a=i.offsetHeight||0;a>r.current&&(r.current=a,i.style.minHeight=`min(${r.current}px, 100%)`)}t.dialog==="settings"&&Ou(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&Ou(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};$3.displayName="TTDDialogTabs";var jm=$3;h();var W3=v(S(),1),Ka=({tab:t,children:e,...o})=>(0,W3.jsx)(Gm,{...o,value:t,children:e});Ka.displayName="TTDDialogTab";var gt=v(S(),1),G3=t=>{let[e,o]=(0,ag.useState)(t.openAIKey||""),[r,n]=(0,ag.useState)(t.isPersisted),i=ke(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,gt.jsx)(Qe,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,gt.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,gt.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",color:"#000",background:"pink"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,gt.jsx)(jm,{dialog:"settings",tab:i.openDialog.tab,children:(0,gt.jsxs)(Ka,{tab:"diagram-to-code",children:[(0,gt.jsxs)(Va,{children:["For the diagram-to-code feature we use"," ",(0,gt.jsx)(_n,{icon:Fl}),"OpenAI."]}),(0,gt.jsxs)(Va,{children:["While the OpenAI API is in beta, its use is strictly limited \u2014 as such we require you use your own API key. You can create an"," ",(0,gt.jsx)("a",{href:"https://platform.openai.com/login?launch",rel:"noopener noreferrer",target:"_blank",children:"OpenAI account"}),", add a small credit (5 USD minimum), and"," ",(0,gt.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,gt.jsx)(Va,{children:"Your OpenAI key does not leave the browser, and you can also set your own limit in your OpenAI account dashboard if needed."}),(0,gt.jsx)(wm,{isRedacted:!0,value:e,placeholder:"Paste your API key here",label:"OpenAI API key",onChange:l=>{o(l),t.onChange(l.trim(),r)},selectOnRender:!0,onKeyDown:l=>l.key===T.ENTER&&a()}),(0,gt.jsx)(Va,{children:"By default, your API token is not persisted anywhere so you'll need to insert it again after reload. But, you can persist locally in your browser below."}),(0,gt.jsx)(ci,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,gt.jsxs)(Va,{children:["Once API key is set, you can use the ",(0,gt.jsx)(_n,{icon:sa})," ","tool to wrap your elements in a frame that will then allow you to turn it into code. This dialog can be accessed using the"," ",(0,gt.jsx)("b",{children:"AI Settings"})," ",(0,gt.jsx)(_n,{icon:Fl}),"."]}),(0,gt.jsx)(wr,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var rr=v(H(),1);h();var uk=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},Xm=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){uk({canvasRef:t,setError:r});return}try{let l=await e.api,s;try{s=await l.parseMermaidToExcalidraw(o,{fontSize:kr})}catch{s=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:kr})}let{elements:c,files:m}=s;r(null),n.current={elements:Es(c,{regenerateIds:!0}),files:m};let d=await Zn({elements:n.current.elements,files:n.current.files,exportPadding:on,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await Or(d)}catch(f){throw f.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):f}a.style.background="var(--default-bg-color)",i.replaceChildren(d)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},ys=t=>{uo.set(Eo.MERMAID_TO_EXCALIDRAW,t)},qm=({app:t,data:e,text:o,shouldSaveMermaidDataToStorage:r})=>{let{elements:n,files:i}=e.current;n.length&&(t.addElementsFromPasteOrLibrary({elements:n,files:i,position:"center",fitToContent:!0}),t.setOpenDialog(null),r&&o&&ys(o))};h();var V3=v(S(),1),Jm=({children:t})=>(0,V3.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var Tr=v(S(),1),Ya=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,Tr.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,Tr.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,Tr.jsx)("label",{children:t}),i?.()]}),e,(0,Tr.jsxs)("div",{className:z("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,Tr.jsxs)(yr,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,Tr.jsxs)("div",{className:z({invisible:n}),children:[o?.label,o?.icon&&(0,Tr.jsx)("span",{children:o.icon})]}),n&&(0,Tr.jsx)(Nt,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var ws=v(H(),1);var K3=v(S(),1),Qm=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,ws.useRef)(null),i=(0,ws.useRef)(r);return i.current=r,(0,ws.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=s=>{s[T.CTRL_OR_CMD]&&s.key===T.ENTER&&(s.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,K3.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var Nn=v(S(),1),pk=({error:t})=>(0,Nn.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,Nn.jsx)("p",{children:t})]}),eu=({error:t,canvasRef:e,loaded:o})=>(0,Nn.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,Nn.jsx)(pk,{error:t.message}),o?(0,Nn.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,Nn.jsx)(Nt,{size:"2rem"})]});h();var Cs=v(S(),1),tu=()=>(0,Cs.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Cs.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:N("CtrlOrCmd")}),(0,Cs.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:N("Enter")})]});var Yt=v(S(),1),fk=`flowchart TD
|
|
65
|
+
`);try{Hs(a)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return{storeAction:W.NONE}},predicate:(e,t,r,o)=>gv&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).some(he),keywords:["text","clipboard","copy"]});v();var Ag=re({name:"gridMode",icon:WT,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.gridSize},perform(e,t){return{appState:{...t,gridSize:this.checked(t)?null:xi,objectsSnapModeEnabled:!1},storeAction:W.NONE}},checked:e=>e.gridSize!==null,predicate:(e,t,r)=>typeof r.gridModeEnabled>"u",keyTest:e=>e[R.CTRL_OR_CMD]&&e.code===Ne.QUOTE});v();var Sc=re({name:"zenMode",label:"buttons.zenMode",icon:HT,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.zenModeEnabled},perform(e,t){return{appState:{...t,zenModeEnabled:!this.checked(t)},storeAction:W.NONE}},checked:e=>e.zenModeEnabled,predicate:(e,t,r)=>typeof r.zenModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.Z});v();var Vy=re({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:$T,viewMode:!1,trackEvent:{category:"canvas",predicate:e=>!e.objectsSnapModeEnabled},perform(e,t){return{appState:{...t,objectsSnapModeEnabled:!this.checked(t),gridSize:null},storeAction:W.NONE}},checked:e=>e.objectsSnapModeEnabled,predicate:(e,t,r)=>typeof r.objectsSnapModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.S});v();var Tc=re({name:"stats",label:"stats.fullTitle",icon:NT,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},keywords:["edit","attributes","customize"],perform(e,t){return{appState:{...t,stats:{...t.stats,open:!this.checked(t)}},storeAction:W.NONE}},checked:e=>e.stats.open,keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.SLASH});v();var Xy=re({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>o.scene.getSelectedElements(t).some(a=>go(a)),perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=o.scene.getNonDeletedElementsMap();return i.forEach(s=>{let c=Ve(s,a);if(c){let{width:d,height:p}=Si(c.originalText,eo(c),c.lineHeight),f=rC(s.id);tC(s.id);let{x:m,y:g}=Bp(s,c,a);me(c,{containerId:null,width:d,height:p,text:c.originalText,x:m,y:g}),me(s,{boundElements:s.boundElements?.filter(h=>h.id!==c.id),height:f||s.height})}}),{elements:e,appState:t,storeAction:W.CAPTURE}}}),Zy=re({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);if(i.length===2){let a=he(i[0])||he(i[1]),s;if(yi(i[0])?s=i[0]:yi(i[1])&&(s=i[1]),a&&s&&Ve(s,o.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a,s;he(i[0])&&yi(i[1])?(a=i[0],s=i[1]):(a=i[1],s=i[0]),me(a,{containerId:s.id,verticalAlign:Ko.MIDDLE,textAlign:xd.CENTER,autoResize:!0}),me(s,{boundElements:(s.boundElements||[]).concat({type:"text",id:a.id})});let c=s.height;return Xt(a,s,o.scene.getNonDeletedElementsMap()),Bd(s.id,c),{elements:pF(e,s,a),appState:{...t,selectedElementIds:{[s.id]:!0}},storeAction:W.CAPTURE}}}),pF=(e,t,r)=>{let o=e.slice(),i=o.findIndex(s=>s.id===r.id);o.splice(i,1);let a=o.findIndex(s=>s.id===t.id);return o.splice(a+1,0,r),Po(o,Le([t,r])),o},fF=(e,t,r)=>{let o=e.slice(),i=o.findIndex(s=>s.id===t.id);o.splice(i,1);let a=o.findIndex(s=>s.id===r.id);return o.splice(a,0,t),Po(o,Le([t,r])),o},Pk=re({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=i.every(s=>he(s));return i.length>0&&a},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=e.slice(),s={};for(let c of i)if(he(c)){let d=ha({type:"rectangle",backgroundColor:t.currentItemBackgroundColor,boundElements:[...c.boundElements||[],{id:c.id,type:"text"}],angle:c.angle,fillStyle:t.currentItemFillStyle,strokeColor:t.currentItemStrokeColor,roughness:t.currentItemRoughness,strokeWidth:t.currentItemStrokeWidth,strokeStyle:t.currentItemStrokeStyle,roundness:t.currentItemRoundness==="round"?{type:ys("rectangle")?Yo.ADAPTIVE_RADIUS:Yo.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:c.x-Tx,y:c.y-Tx,width:Ds(c.width,"rectangle"),height:Ds(c.height,"rectangle"),groupIds:c.groupIds,frameId:c.frameId});if(c.boundElements?.length){let p=c.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);a.filter(m=>p.includes(m.id)).forEach(m=>{let g=m.startBinding,h=m.endBinding;g?.elementId===c.id&&(g={...g,elementId:d.id}),h?.elementId===c.id&&(h={...h,elementId:d.id}),(g||h)&&me(m,{startBinding:g,endBinding:h},!1)})}me(c,{containerId:d.id,verticalAlign:Ko.MIDDLE,boundElements:null,textAlign:xd.CENTER,autoResize:!0},!1),Xt(c,d,o.scene.getNonDeletedElementsMap()),a=fF([...a,d],d,c),s[d.id]=!0}return{elements:a,appState:{...t,selectedElementIds:s},storeAction:W.CAPTURE}}});v();v();var Rn=w(j(),1);var Bi=w(P(),1),Jy=320,Lk=85,qy=5,gF=42,hF=500,jy=!1,kg=new Map,Rk=({element:e,elementsMap:t,setAppState:r,onLinkOpen:o,setToast:i,updateEmbedValidationStatus:a})=>{let s=jn(),c=Jn(),d=e.link||"",[p,f]=(0,Rn.useState)(d),m=(0,Rn.useRef)(null),g=s.showHyperlinkPopup==="editor",h=(0,Rn.useCallback)(()=>{if(!m.current)return;let I=Ci(m.current.value)||null;if(!e.link&&I&&ze("hyperlink","create"),Fr(e)){if(s.activeEmbeddable?.element===e&&r({activeEmbeddable:null}),!I){me(e,{link:null}),a(e,!1);return}if(!zs(I,c.validateEmbeddable))I&&i({message:E("toast.unableToEmbed"),closable:!0}),e.link&&kg.set(e.id,e.link),me(e,{link:I}),a(e,!1);else{let{width:A,height:O}=e,z=yl(I);z?.error instanceof URIError&&i({message:E("toast.unrecognizedLinkFormat"),closable:!0});let L=z?z.intrinsicSize.w/z.intrinsicSize.h:1,F=kg.get(e.id)!==e.link;me(e,{...F?{width:z?.type==="video"?A>O?A:O*L:A,height:z?.type==="video"&&A>O?A/L:O}:{},link:I}),a(e,!0),kg.has(e.id)&&kg.delete(e.id)}}else me(e,{link:I})},[e,i,c.validateEmbeddable,s.activeEmbeddable,r,a]);(0,Rn.useLayoutEffect)(()=>()=>{h()},[h]),(0,Rn.useEffect)(()=>{let I=null,A=O=>{if(g)return;I&&clearTimeout(I),xF(e,t,s,[O.clientX,O.clientY])&&(I=window.setTimeout(()=>{r({showHyperlinkPopup:!1})},hF))};return window.addEventListener("pointermove",A,!1),()=>{window.removeEventListener("pointermove",A,!1),I&&clearTimeout(I)}},[s,e,g,r,t]);let b=(0,Rn.useCallback)(()=>{ze("hyperlink","delete"),me(e,{link:null}),g&&(m.current.value=""),r({showHyperlinkPopup:!1})},[r,e,g]),y=()=>{ze("hyperlink","edit","popup-ui"),r({showHyperlinkPopup:"editor"})},{x:T,y:k}=Dk(e,s,t);return s.contextMenu||s.draggingElement||s.resizingElement||s.isRotating||s.openMenu||s.viewModeEnabled?null:(0,Bi.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${k}px`,left:`${T}px`,width:Jy,padding:qy},onClick:()=>{!e.link&&!g&&r({showHyperlinkPopup:"editor"})},children:[g?(0,Bi.jsx)("input",{className:q("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:p,onChange:I=>f(I.target.value),autoFocus:!0,onKeyDown:I=>{I.stopPropagation(),I[R.CTRL_OR_CMD]&&I.key===R.K&&I.preventDefault(),(I.key===R.ENTER||I.key===R.ESCAPE)&&(h(),r({showHyperlinkPopup:"info"}))}}):e.link?(0,Bi.jsx)("a",{href:Ci(e.link||""),className:"excalidraw-hyperlinkContainer-link",target:Kp(e.link)?"_self":"_blank",onClick:I=>{if(e.link&&o){let A=cp("excalidraw-link",I.nativeEvent);o({...e,link:Ci(e.link)},A),A.defaultPrevented&&I.preventDefault()}},rel:"noopener noreferrer",children:e.link}):(0,Bi.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:E("labels.link.empty")}),(0,Bi.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!g&&(0,Bi.jsx)(Ce,{type:"button",title:E("buttons.edit"),"aria-label":E("buttons.edit"),label:E("buttons.edit"),onClick:y,className:"excalidraw-hyperlinkContainer--edit",icon:hp}),d&&!Fr(e)&&(0,Bi.jsx)(Ce,{type:"button",title:E("buttons.remove"),"aria-label":E("buttons.remove"),label:E("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:Cn})]})]})},Dk=(e,t,r)=>{let[o,i]=ho(e,r),{x:a,y:s}=to({sceneX:o+e.width/2,sceneY:i},t),c=a-t.offsetLeft-Jy/2,d=s-t.offsetTop-Lk;return{x:c,y:d}},Qy=(e,t)=>{let r=Oe(e,t);return r[0]?.link?Fr(r[0])?"labels.link.editEmbed":"labels.link.edit":Fr(r[0])?"labels.link.createEmbed":"labels.link.create"},xm=null,Nk=(e,t,r)=>{xm&&clearTimeout(xm),xm=window.setTimeout(()=>bF(e,t,r),DS)},bF=(e,t,r)=>{if(!e.link)return;let o=xc();o.classList.add("excalidraw-tooltip--visible"),o.style.maxWidth="20rem",o.textContent=e.link;let[i,a,s,c]=ho(e,r),[d,p,f,m]=UC([i,a,s,c],e.angle,t),g=to({sceneX:d,sceneY:p},t);Ly(o,{left:g.x,top:g.y,width:f,height:m},"top"),ze("hyperlink","tooltip","link-icon"),jy=!0},Ok=()=>{xm&&clearTimeout(xm),jy&&(jy=!1,xc().classList.remove("excalidraw-tooltip--visible"))},xF=(e,t,r,[o,i])=>{let{x:a,y:s}=kt({clientX:o,clientY:i},r),c=15/r.zoom.value;if(XT(a,s,e,t))return!1;let[d,p,f]=ho(e,t);if(a>=d&&a<=f&&s>=p-Lk&&s<=p)return!1;let{x:m,y:g}=Dk(e,r,t);return!(o>=m-c&&o<=m+Jy+qy*2+c&&i>=g-c&&i<=g+c+qy*2+gF)};var Fk=w(P(),1),vm=re({name:"hyperlink",label:(e,t)=>Qy(e,t),icon:Dd,perform:(e,t)=>t.showHyperlinkPopup==="editor"?!1:{elements:e,appState:{...t,showHyperlinkPopup:"editor",openMenu:null},storeAction:W.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.K,predicate:(e,t)=>Oe(e,t).length===1,PanelComponent:({elements:e,appState:t,updateData:r})=>{let o=Oe(e,t);return(0,Fk.jsx)(Ce,{type:"button",icon:Dd,"aria-label":E(Qy(e,t)),title:`${Fr(e[0])?E("labels.link.labelEmbed"):E("labels.link.label")} - ${X("CtrlOrCmd+K")}`,onClick:()=>r(null),selected:o.length===1&&!!o[0].link})}});v();var e0=e=>e.every(t=>!t.locked),t0=re({name:"toggleElementLock",label:(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return o.length===1&&!He(o[0])?o[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":e0(o)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(e,t)=>{let r=Oe(t,e);return e0(r)?_s:ml},trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>0&&!i.some(a=>a.locked&&a.frameId)},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!i.length)return!1;let a=e0(i),s=Le(i);return{elements:e.map(c=>s.has(c.id)?Pe(c,{locked:a}):c),appState:{...t,selectedLinearElement:a?null:t.selectedLinearElement},storeAction:W.CAPTURE}},keyTest:(e,t,r,o)=>e.key.toLocaleLowerCase()===R.L&&e[R.CTRL_OR_CMD]&&e.shiftKey&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1}).length>0}),Bk=re({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:ml,predicate:(e,t)=>Oe(e,t).length===0&&e.some(o=>o.locked),perform:(e,t)=>{let r=e.filter(o=>o.locked);return{elements:e.map(o=>o.locked?Pe(o,{locked:!1}):o),appState:{...t,selectedElementIds:Object.fromEntries(r.map(o=>[o.id,!0]))},storeAction:W.CAPTURE}},label:"labels.elementLock.unlockAll"});v();v();var cn=w(j(),1);v();var Kg=w(j(),1);v();var Mg=w(j(),1),zk=()=>{let[e,t]=(0,Mg.useState)(null),r=(0,Mg.useCallback)(o=>t(o),[]);return[e,r]};v();var $k=w(Vn(),1);var Hk=w(j(),1),ym=w(P(),1),Uk=e=>{let{closeOnClickOutside:t=!0}=e,r=og({className:"excalidraw-modal-container"}),o=(0,Hk.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!r)return null;let i=a=>{a.key===R.ESCAPE&&(a.nativeEvent.stopImmediatePropagation(),a.stopPropagation(),e.onCloseRequest())};return(0,$k.createPortal)((0,ym.jsxs)("div",{className:q("Modal",e.className,{"animations-disabled":o.current}),role:"dialog","aria-modal":"true",onKeyDown:i,"aria-labelledby":e.labelledBy,"data-prevent-outside-click":!0,children:[(0,ym.jsx)("div",{className:"Modal__background",onClick:t?e.onCloseRequest:void 0}),(0,ym.jsx)("div",{className:"Modal__content",style:{"--max-width":`${e.maxWidth}px`},tabIndex:0,children:e.children})]}),r)};v();var No=w(j(),1);v();var Ic=w(j(),1);v();var Pg=w(j(),1);var r0=wt(new Map),Gk=async e=>await Yd({elements:e,appState:{exportBackground:!1,viewBackgroundColor:hi.white},files:null,renderEmbeddables:!1}),Wk=(e,t,r)=>{let[o,i]=(0,Pg.useState)();return(0,Pg.useEffect)(()=>{if(t)if(e){let a=r.get(e);a?i(a):(async()=>{let s=await Gk(t);s.querySelector(".style-fonts")?.remove(),s&&(r.set(e,s),i(s))})()}else(async()=>{let a=await Gk(t);i(a)})()},[e,t,r,i]),o},Lg=()=>{let[e]=Xe(r0,dt);return{clearLibraryCache:()=>e.clear(),deleteItemsFromLibraryCache:o=>{o.forEach(i=>e.delete(i))},svgCache:e}};v();var Rg=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Td(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...r){let o=sp();return this.jobs.push({jobFactory:t,promise:o,args:r}),this.tick(),o}};var Yk=new Qo,zl=wt({status:"loaded",isInitialized:!1,libraryItems:[]}),Em=e=>fo(e),vF=(e,t)=>!e.find(r=>r.elements.length!==t.elements.length?!1:r.elements.every((o,i)=>o.id===t.elements[i].id&&o.versionNonce===t.elements[i].versionNonce)),Vk=(e,t)=>{let r=[];for(let o of t)vF(e,o)&&r.push(o);return[...r,...e]},Xk=(e,t)=>{let r=Le(t),o={deletedItems:new Map,addedItems:new Map};for(let a of e)r.has(a.id)||o.deletedItems.set(a.id,a);let i=Le(e);for(let a of t)i.has(a.id)||o.addedItems.set(a.id,a);return o},o0=class{currLibraryItems=[];prevLibraryItems=Em(this.currLibraryItems);app;constructor(t){this.app=t}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)zr.set(zl,t=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:t.isInitialized}));else{zr.set(zl,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let t=this.prevLibraryItems;this.prevLibraryItems=Em(this.currLibraryItems);let r=Em(this.currLibraryItems);this.app.props.onLibraryChange?.(r),Yk.trigger(Xk(t,r),r)}catch(t){console.error(t)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],zr.set(r0,new Map)};resetLibrary=()=>this.setLibrary([]);getLatestLibrary=()=>new Promise(async t=>{try{let r=await(this.getLastUpdateTask()||this.currLibraryItems);this.updateQueue.length>0?t(this.getLatestLibrary()):t(Em(r))}catch{return t(this.currLibraryItems)}});updateLibrary=async({libraryItems:t,prompt:r=!1,merge:o=!1,openLibraryMenu:i=!1,defaultStatus:a="unpublished"})=>(i&&this.app.setState({openSidebar:{name:Sn.name,tab:np}}),this.setLibrary(()=>new Promise(async(s,c)=>{try{let d=await(typeof t=="function"&&!(t instanceof Blob)?t(this.currLibraryItems):t),p;d instanceof Blob?p=await mv(d,a):p=Hd(d,a),!r||window.confirm(E("alerts.confirmAddLibrary",{numShapes:p.length}))?(r&&this.app.focusContainer(),s(o?Vk(this.currLibraryItems,p):p)):c(new Es)}catch(d){c(d)}})));setLibrary=t=>{let r=new Promise(async(o,i)=>{try{await this.getLastUpdateTask(),typeof t=="function"&&(t=t(this.currLibraryItems)),this.currLibraryItems=Em(await t),o(this.currLibraryItems)}catch(a){i(a)}}).catch(o=>{if(o.name==="AbortError")return console.warn("Library update aborted by user"),this.currLibraryItems;throw o}).finally(()=>{this.updateQueue=this.updateQueue.filter(o=>o!==r),this.notifyListeners()});return this.updateQueue.push(r),this.notifyListeners(),r}},Zk=o0,Og=e=>{let r=Math.ceil(Math.sqrt(e.length)),o=[],i=h=>e.slice(h*r,h*r+r).reduce((y,T)=>{let{height:k}=qo(T.elements);return Math.max(y,k)},0),a=h=>{let b=0,y=0,T=0;for(let k of e){if(b%r===0&&(y=0),y===h){let{width:I}=qo(k.elements);T=Math.max(T,I)}b++,y++}return T},s=0,c=0,d=0,p=0,f=0,m=0,g=0;for(let h of e){f&&f%r===0&&(c+=d+50,s=0,m=0,g++),m===0&&(d=i(g)),p=a(m);let{minX:b,minY:y,width:T,height:k}=qo(h.elements),I=(p-T)/2,A=(d-k)/2;o.push(...h.elements.map(O=>({...O,x:O.x+s+I-b,y:O.y+c+A-y}))),s+=p+50,f++,m++}return o},n0=()=>{let e=new URLSearchParams(window.location.hash.slice(1)).get(ep.addLibrary)||new URLSearchParams(window.location.search).get(Qu.addLibrary),t=e?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return e?{libraryUrl:e,idToken:t}:null},Cc=class e{static queue=new Rg;static async getLibraryItems(t,r,o=!0){let i=()=>new Promise(async(a,s)=>{try{let c=await t.load({source:r});a(Hd(c?.libraryItems||[],"published"))}catch(c){s(c)}});return o?e.queue.push(i):i()}static run=async(t,r)=>{let o=new e(t);return e.queue.push(()=>r(o))};adapter;constructor(t){this.adapter=t}getLibraryItems(t){return e.getLibraryItems(this.adapter,t,!1)}},wm=0,Dg=0,Ng=e=>Iv(e.map(t=>`${t.id}:${Cv(t.elements)}`).sort().join()),Kk=async(e,t)=>{try{return Dg++,await Cc.run(e,async r=>{let o=Le(await r.getLibraryItems("save"));for(let[c]of t.deletedItems)o.delete(c);let i=[];for(let[c,d]of t.addedItems)o.has(c)?o.set(c,d):i.push(d);let a=i.concat(Array.from(o.values())),s=Ng(a);return s!==wm&&await e.save({libraryItems:a}),wm=s,a})}finally{Dg--}},yF=e=>{let{excalidrawAPI:t}=e,r=(0,Ic.useRef)(e);r.current=e;let o=(0,Ic.useRef)(!1);(0,Ic.useEffect)(()=>{if(!t)return;o.current=!1;let i=async({libraryUrl:c,idToken:d})=>{let p=new Promise(async(m,g)=>{try{let b=await(await fetch(decodeURIComponent(c))).blob();m(b)}catch(h){g(h)}}),f=d!==t.id;await(f&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await t.updateLibrary({libraryItems:p,prompt:f,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(ep.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(ep.addLibrary),window.history.replaceState({},gd,`#${m.toString()}`)}else if(window.location.search.includes(Qu.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(Qu.addLibrary),window.history.replaceState({},gd,`?${m.toString()}`)}}},a=c=>{c.preventDefault();let d=n0();d&&(c.stopImmediatePropagation(),window.history.replaceState({},"",c.oldURL),i(d))},s=n0();if(s&&i(s),"getInitialLibraryItems"in r.current&&r.current.getInitialLibraryItems&&(console.warn("useHandleLibrar `opts.getInitialLibraryItems` is deprecated. Use `opts.adapter` instead."),Promise.resolve(r.current.getInitialLibraryItems()).then(c=>{t.updateLibrary({libraryItems:c,merge:!0})}).catch(c=>{console.error(`UseHandeLibrary getInitialLibraryItems failed: ${c?.message}`)})),"adapter"in r.current&&r.current.adapter){let c=r.current.adapter,d=r.current.migrationAdapter,p=sp();d?p.resolve(Td(d.load).then(async f=>{let m=null;try{if(!f)return Cc.getLibraryItems(c,"load");m=Hd(f.libraryItems||[],"published");let g=await Kk(c,Xk([],m));try{await d.clear()}catch(h){console.error(`couldn't delete legacy library data: ${h.message}`)}return g}catch(g){return console.error(`couldn't migrate legacy library data: ${g.message}`),m}}).catch(f=>(console.error(`error during library migration: ${f.message}`),Cc.getLibraryItems(c,"load")))):p.resolve(Td(Cc.getLibraryItems,c,"load")),t.updateLibrary({libraryItems:p.then(f=>{let m=f||[];return wm=Ng(m),m}),merge:!0}).finally(()=>{o.current=!0})}return window.addEventListener("hashchange",a),()=>{window.removeEventListener("hashchange",a)}},[t]),(0,Ic.useEffect)(()=>{let i=Yk.on(async(s,c)=>{let d=o.current,p="adapter"in r.current&&r.current.adapter||null;try{p&&wm!==Ng(c)&&await Kk(p,s)}catch(f){console.error(`couldn't persist library update: ${f.message}`,s),d&&r.current.excalidrawAPI&&r.current.excalidrawAPI.updateScene({appState:{errorMessage:E("errors.saveLibraryError")}})}}),a=s=>{Dg&&QS(s)};return window.addEventListener("beforeunload",a),()=>{window.removeEventListener("beforeunload",a),i(),wm=0,Dg=0}},[])};v();var Wr=w(j(),1);v();var i0=w(j(),1);var a0=w(P(),1),EF=(0,i0.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,a0.jsx)("div",{className:q("Stack Stack_horizontal",i),style:{"--gap":t,alignItems:r,justifyContent:o,...a},ref:s,children:e})),wF=(0,i0.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,a0.jsx)("div",{className:q("Stack Stack_vertical",i),style:{"--gap":t,justifyItems:r,justifyContent:o,...a},ref:s,children:e})),Cr={Row:EF,Col:wF};v();v();var jk=w(P(),1),SF=({theme:e,id:t,libraryReturnUrl:r})=>{let o=r||window.location.origin+window.location.pathname;return(0,jk.jsx)("a",{className:"library-menu-browse-button",href:`${_.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${o}&useHash=true&token=${t}&theme=${e}&version=${rp.excalidrawLibrary}`,target:"_excalidraw_libraries",children:E("labels.libraries")})},qk=SF;var Bg=w(P(),1),Fg=({libraryReturnUrl:e,theme:t,id:r,style:o,children:i,className:a})=>(0,Bg.jsxs)("div",{className:q("library-menu-control-buttons",a),style:o,children:[(0,Bg.jsx)(qk,{id:r,libraryReturnUrl:e,theme:t}),i]});v();var Pc=w(j(),1);v();var Sm=w(j(),1);var TF=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,CF=/{{([\w-]+)}}/,IF=/<([\w-]+)>/,_F=/<\/([\w-]+)>/,AF=(e,t)=>{let r=[{name:"",children:[]}];return e.split(TF).filter(Boolean).forEach(o=>{let i=o.match(IF),a=o.match(_F),s=o.match(CF);if(i!==null){let c=i[1];t.hasOwnProperty(c)?r.push({name:c,children:[]}):console.warn(`Trans: missed to pass in prop ${c} for interpolating ${e}`)}else if(a!==null)if(a[1]===r[r.length-1].name){let d=r.pop(),p=Sm.default.createElement(Sm.default.Fragment,{},...d.children),f=t[d.name];typeof f=="function"&&r[r.length-1].children.push(f(p))}else console.warn(`Trans: unexpected end tag ${o} for interpolating ${e}`);else if(s!==null){let c=s[1];t.hasOwnProperty(c)?r[r.length-1].children.push(t[c]):console.warn(`Trans: key ${c} not in props for interpolating ${e}`)}else r[r.length-1].children.push(o)}),r.length!==1&&console.warn(`Trans: stack not empty for interpolating ${e}`),r[0].children},kF=({i18nKey:e,children:t,...r})=>{let{t:o}=ir();return Sm.default.createElement(Sm.default.Fragment,{},...AF(o(e),r))},io=kF;v();v();var $l=w(P(),1),MF=({label:e,onClick:t,className:r,children:o,actionType:i,type:a="button",isLoading:s,...c})=>{let d=i?`Dialog__action-button--${i}`:"";return(0,$l.jsxs)("button",{className:q("Dialog__action-button",d,r),type:a,"aria-label":e,onClick:t,...c,children:[o&&(0,$l.jsx)("div",{style:s?{visibility:"hidden"}:{},children:o}),(0,$l.jsx)("div",{style:s?{visibility:"hidden"}:{},children:e}),s&&(0,$l.jsx)("div",{style:{position:"absolute",inset:0},children:(0,$l.jsx)(Pr,{})})]})},_c=MF;var Ac=w(P(),1),PF=e=>{let{onConfirm:t,onCancel:r,children:o,confirmText:i=E("buttons.confirm"),cancelText:a=E("buttons.cancel"),className:s="",...c}=e,d=ot(),p=Mi(kc,dt),{container:f}=ar();return(0,Ac.jsxs)(Ft,{onCloseRequest:r,size:"small",...c,className:`confirm-dialog ${s}`,children:[o,(0,Ac.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ac.jsx)(_c,{label:a,onClick:()=>{d({openMenu:null}),p(!1),r(),f?.focus()}}),(0,Ac.jsx)(_c,{label:i,onClick:()=>{d({openMenu:null}),p(!1),t(),f?.focus()},actionType:"danger"})]})]})},zg=PF;v();var Do=w(j(),1);v();var So=class{static has(t){try{return!!window.localStorage.getItem(t)}catch(r){return console.warn(`localStorage.getItem error: ${r.message}`),!1}}static get(t){try{let r=window.localStorage.getItem(t);return r?JSON.parse(r):null}catch(r){return console.warn(`localStorage.getItem error: ${r.message}`),null}}static set=(t,r)=>{try{return window.localStorage.setItem(t,JSON.stringify(r)),!0}catch(o){return console.warn(`localStorage.setItem error: ${o.message}`),!1}};static delete=t=>{try{window.localStorage.removeItem(t)}catch(r){console.warn(`localStorage.removeItem error: ${r.message}`)}}};var Se=w(P(),1),LF=async e=>{let o=Math.round(8),i=Math.max(Math.round(128/64),2),a=qS(e,6),s=document.createElement("canvas");s.width=a[0].length*128+(a[0].length+1)*(o*2)-o*2,s.height=a.length*128+(a.length+1)*(o*2)-o*2;let c=s.getContext("2d");c.fillStyle=Or.white,c.fillRect(0,0,s.width,s.height);for(let[d,p]of e.entries()){let f=await El({elements:p.elements,files:null,maxWidthOrHeight:128}),{width:m,height:g}=f,h=Math.floor(d/6)*(128+o*2),b=d%6*(128+o*2);c.drawImage(f,b+(128-m)/2+o,h+(128-g)/2+o),c.lineWidth=i,c.strokeStyle=Or.gray[4],c.strokeRect(b+o/2,h+o/2,128+o,128+o)}return await Ud(new File([await Ii(s)],"preview",{type:kr.png}),{outputType:kr.jpg,maxWidthOrHeight:5e3})},RF=({libItem:e,appState:t,index:r,onChange:o,onRemove:i})=>{let a=(0,Do.useRef)(null),s=(0,Do.useRef)(null);return(0,Do.useEffect)(()=>{let c=a.current;c&&(async()=>{let d=await Yd({elements:e.elements,appState:{...t,viewBackgroundColor:Or.white,exportBackground:!0},files:null});c.innerHTML=d.outerHTML})()},[e.elements,t]),(0,Se.jsxs)("div",{className:"single-library-item",children:[e.status==="published"&&(0,Se.jsx)("span",{className:"single-library-item-status",children:E("labels.statusPublished")}),(0,Se.jsx)("div",{ref:a,className:"single-library-item__svg"}),(0,Se.jsx)(Ce,{"aria-label":E("buttons.remove"),type:"button",icon:Zo,className:"single-library-item--remove",onClick:i.bind(null,e.id),title:E("buttons.remove")}),(0,Se.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,Se.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,Se.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,Se.jsx)("span",{style:{fontWeight:500,color:Or.gray[6]},children:E("publishDialog.itemName")}),(0,Se.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Se.jsx)("input",{type:"text",ref:s,style:{width:"80%",padding:"0.2rem"},defaultValue:e.name,placeholder:"Item name",onChange:c=>{o(c.target.value,r)}})]}),(0,Se.jsx)("span",{className:"error",children:e.error})]})]})},DF=({onClose:e,libraryItems:t,appState:r,onSuccess:o,onError:i,updateItemsInStorage:a,onRemove:s})=>{let[c,d]=(0,Do.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[p,f]=(0,Do.useState)(!1);(0,Do.useEffect)(()=>{let A=So.get(Vo.PUBLISH_LIBRARY);A&&d(A)},[]);let[m,g]=(0,Do.useState)(t.slice());(0,Do.useEffect)(()=>{g(t.slice())},[t]);let h=A=>{d({...c,[A.target.name]:A.target.value})},b=async A=>{A.preventDefault(),f(!0);let O=[],z=!1;if(m.forEach(Q=>{let de="";Q.name||(de=E("publishDialog.errors.required"),z=!0),O.push({...Q,error:de})}),z){g(O),f(!1);return}let L=await LF(m),F={type:AS.excalidrawLibrary,version:rp.excalidrawLibrary,source:kS,libraryItems:m},D=JSON.stringify(F,null,2),V=new Blob([D],{type:"application/json"}),G=new FormData;G.append("excalidrawLib",V),G.append("previewImage",L),G.append("previewImageType",L.type),G.append("title",c.name),G.append("authorName",c.authorName),G.append("githubHandle",c.githubHandle),G.append("name",c.name),G.append("description",c.description),G.append("twitterHandle",c.twitterHandle),G.append("website",c.website),fetch(`${_.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:G}).then(Q=>Q.ok?Q.json().then(({url:de})=>{So.delete(Vo.PUBLISH_LIBRARY),o({url:de,authorName:c.authorName,items:m})}):Q.json().catch(()=>{throw new Error(Q.statusText||"something went wrong")}).then(de=>{throw new Error(de.message||Q.statusText||"something went wrong")}),Q=>{console.error(Q),i(Q),f(!1)}).catch(Q=>{console.error(Q),i(Q),f(!1)})},y=()=>{let A=[];return m.forEach((O,z)=>{A.push((0,Se.jsx)("div",{className:"single-library-item-wrapper",children:(0,Se.jsx)(RF,{libItem:O,appState:r,index:z,onChange:(L,F)=>{let D=m.slice();D[F].name=L,g(D)},onRemove:s})},z))}),(0,Se.jsx)("div",{className:"selected-library-items",children:A})},T=(0,Do.useCallback)(()=>{a(m),So.set(Vo.PUBLISH_LIBRARY,c),e()},[m,e,a,c]),k=!!t.length,I=t.some(A=>A.status==="published");return(0,Se.jsx)(Ft,{onCloseRequest:T,title:E("publishDialog.title"),className:"publish-library",children:k?(0,Se.jsxs)("form",{onSubmit:b,children:[(0,Se.jsx)("div",{className:"publish-library-note",children:(0,Se.jsx)(io,{i18nKey:"publishDialog.noteDescription",link:A=>(0,Se.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:A})})}),(0,Se.jsx)("span",{className:"publish-library-note",children:(0,Se.jsx)(io,{i18nKey:"publishDialog.noteGuidelines",link:A=>(0,Se.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:A})})}),(0,Se.jsx)("div",{className:"publish-library-note",children:E("publishDialog.noteItems")}),I&&(0,Se.jsx)("span",{className:"publish-library-note publish-library-warning",children:E("publishDialog.republishWarning")}),y(),(0,Se.jsxs)("div",{className:"publish-library__fields",children:[(0,Se.jsxs)("label",{children:[(0,Se.jsxs)("div",{children:[(0,Se.jsx)("span",{children:E("publishDialog.libraryName")}),(0,Se.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Se.jsx)("input",{type:"text",name:"name",required:!0,value:c.name,onChange:h,placeholder:E("publishDialog.placeholder.libraryName")})]}),(0,Se.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,Se.jsxs)("div",{children:[(0,Se.jsx)("span",{children:E("publishDialog.libraryDesc")}),(0,Se.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Se.jsx)("textarea",{name:"description",rows:4,required:!0,value:c.description,onChange:h,placeholder:E("publishDialog.placeholder.libraryDesc")})]}),(0,Se.jsxs)("label",{children:[(0,Se.jsxs)("div",{children:[(0,Se.jsx)("span",{children:E("publishDialog.authorName")}),(0,Se.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Se.jsx)("input",{type:"text",name:"authorName",required:!0,value:c.authorName,onChange:h,placeholder:E("publishDialog.placeholder.authorName")})]}),(0,Se.jsxs)("label",{children:[(0,Se.jsx)("span",{children:E("publishDialog.githubUsername")}),(0,Se.jsx)("input",{type:"text",name:"githubHandle",value:c.githubHandle,onChange:h,placeholder:E("publishDialog.placeholder.githubHandle")})]}),(0,Se.jsxs)("label",{children:[(0,Se.jsx)("span",{children:E("publishDialog.twitterUsername")}),(0,Se.jsx)("input",{type:"text",name:"twitterHandle",value:c.twitterHandle,onChange:h,placeholder:E("publishDialog.placeholder.twitterHandle")})]}),(0,Se.jsxs)("label",{children:[(0,Se.jsx)("span",{children:E("publishDialog.website")}),(0,Se.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:E("publishDialog.errors.website"),value:c.website,onChange:h,placeholder:E("publishDialog.placeholder.website")})]}),(0,Se.jsx)("span",{className:"publish-library-note",children:(0,Se.jsx)(io,{i18nKey:"publishDialog.noteLicense",link:A=>(0,Se.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:A})})})]}),(0,Se.jsxs)("div",{className:"publish-library__buttons",children:[(0,Se.jsx)(_c,{label:E("buttons.cancel"),onClick:T,"data-testid":"cancel-clear-canvas-button"}),(0,Se.jsx)(_c,{type:"submit",label:E("buttons.submit"),actionType:"primary",isLoading:p})]})]}):(0,Se.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:E("publishDialog.atleastOneLibItem")})})},Jk=DF;v();v();var t5=w(P(),1),Qk=({className:e="",children:t,onToggle:r,title:o,...i})=>{let a=rt(),s=q(`dropdown-menu-button ${e}`,"zen-mode-transition",{"dropdown-menu-button--mobile":a.editor.isMobile}).trim();return(0,t5.jsx)("button",{"data-prevent-outside-click":!0,className:s,onClick:r,type:"button","data-testid":"dropdown-menu-button",title:o,...i,children:t})},e5=Qk;Qk.displayName="DropdownMenuTrigger";v();var n5=w(P(),1),r5=()=>(0,n5.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),o5=r5;r5.displayName="DropdownMenuSeparator";v();var $g=w(j(),1);var Tm=w(P(),1),i5=({children:e,onClickOutside:t,className:r="",onSelect:o,style:i})=>{let a=rt(),s=(0,$g.useRef)(null),c=fc({onClickOutside:t});pc(s,()=>{c.onClickOutside?.()}),(0,$g.useEffect)(()=>{let p=m=>{m.key===R.ESCAPE&&(m.stopImmediatePropagation(),c.onClickOutside?.())},f={capture:!0};return document.addEventListener("keydown",p,f),()=>{document.removeEventListener("keydown",p,f)}},[c]);let d=q(`dropdown-menu ${r}`,{"dropdown-menu--mobile":a.editor.isMobile}).trim();return(0,Tm.jsx)(_y.Provider,{value:{onSelect:o},children:(0,Tm.jsx)("div",{ref:s,className:d,style:i,"data-testid":"dropdown-menu",children:a.editor.isMobile?(0,Tm.jsx)(Cr.Col,{className:"dropdown-menu-container",children:e}):(0,Tm.jsx)(hr,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:e})})})};i5.displayName="DropdownMenuContent";var a5=i5;v();var l0=w(P(),1),l5=({icon:e,shortcut:t,href:r,children:o,onSelect:i,className:a="",selected:s,...c})=>{let d=pg(c.onClick,i);return(0,l0.jsx)("a",{...c,href:r,target:"_blank",rel:"noreferrer",className:ug(a,s),title:c.title??c["aria-label"],onClick:d,children:(0,l0.jsx)(fg,{icon:e,shortcut:t,children:o})})},Mc=l5;l5.displayName="DropdownMenuItemLink";v();var c5=w(P(),1),NF=({children:e,className:t="",selected:r,...o})=>(0,c5.jsx)("div",{...o,className:`dropdown-menu-item-base dropdown-menu-item-custom ${t} ${r?"dropdown-menu-item--selected":""}`.trim(),children:e}),s5=NF;v();var Cm=w(j(),1),d5=e=>{let t=Cm.default.Children.toArray(e).find(r=>Cm.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuTrigger");return t||null},m5=e=>{let t=Cm.default.Children.toArray(e).find(r=>Cm.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuContent");return t||null};var Hg=w(P(),1),zi=({children:e,open:t})=>{let r=d5(e),o=m5(e);return(0,Hg.jsxs)(Hg.Fragment,{children:[r,t&&o]})};zi.Trigger=e5;zi.Content=a5;zi.Item=vo;zi.ItemLink=Mc;zi.ItemCustom=s5;zi.Group=pm;zi.Separator=o5;var st=zi;zi.displayName="DropdownMenu";var sr=w(P(),1),OF=(e,t)=>e.filter(r=>t.includes(r.id)),FF=({setAppState:e,selectedItems:t,library:r,onRemoveFromLibrary:o,resetLibrary:i,onSelectItems:a,appState:s,className:c})=>{let[d]=Xe(zl,dt),[p,f]=Xe(kc,dt),m=()=>{let G=t.length?E("alerts.removeItemsFromsLibrary",{count:t.length}):E("alerts.resetLibrary"),Q=t.length?E("confirmDialog.removeItemsFromLib"):E("confirmDialog.resetLibrary");return(0,sr.jsx)(zg,{onConfirm:()=>{t.length?o():i(),h(!1)},onCancel:()=>{h(!1)},title:Q,children:(0,sr.jsx)("p",{children:G})})},[g,h]=(0,Pc.useState)(!1),b=!!t.length,y=b?d.libraryItems.filter(G=>t.includes(G.id)):d.libraryItems,T=b?E("buttons.remove"):E("buttons.resetLibrary"),[k,I]=(0,Pc.useState)(!1),[A,O]=(0,Pc.useState)(null),z=(0,Pc.useCallback)(()=>(0,sr.jsxs)(Ft,{onCloseRequest:()=>O(null),title:E("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,sr.jsx)("p",{children:(0,sr.jsx)(io,{i18nKey:"publishSuccessDialog.content",authorName:A.authorName,link:G=>(0,sr.jsx)("a",{href:A?.url,target:"_blank",rel:"noopener noreferrer",children:G})})}),(0,sr.jsx)(Ce,{type:"button",title:E("buttons.close"),"aria-label":E("buttons.close"),label:E("buttons.close"),onClick:()=>O(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[O,A]),L=(G,Q)=>{I(!1),O({url:G.url,authorName:G.authorName});let de=Q.slice();de.forEach(K=>{t.includes(K.id)&&(K.status="published")}),r.setLibrary(de)},F=async()=>{try{await r.updateLibrary({libraryItems:Yp({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(G){if(G?.name==="AbortError"){console.warn(G);return}e({errorMessage:E("errors.importLibraryError")})}},D=async()=>{let G=b?y:await r.getLatestLibrary();TC(G).catch(lp).catch(Q=>{e({errorMessage:Q.message})})},V=()=>(0,sr.jsxs)(st,{open:p,children:[(0,sr.jsx)(st.Trigger,{onToggle:()=>f(!p),children:y2}),(0,sr.jsxs)(st.Content,{onClickOutside:()=>f(!1),onSelect:()=>f(!1),className:"library-menu",children:[!b&&(0,sr.jsx)(st.Item,{onSelect:F,icon:ks,"data-testid":"lib-dropdown--load",children:E("buttons.load")}),!!y.length&&(0,sr.jsx)(st.Item,{onSelect:D,icon:ul,"data-testid":"lib-dropdown--export",children:E("buttons.export")}),!!y.length&&(0,sr.jsx)(st.Item,{onSelect:()=>h(!0),icon:Cn,children:T}),b&&(0,sr.jsx)(st.Item,{icon:ET,onSelect:()=>I(!0),"data-testid":"lib-dropdown--remove",children:E("buttons.publishLibrary")})]})]});return(0,sr.jsxs)("div",{className:q("library-menu-dropdown-container",c),children:[V(),t.length>0&&(0,sr.jsx)("div",{className:"library-actions-counter",children:t.length}),g&&m(),k&&(0,sr.jsx)(Jk,{onClose:()=>I(!1),libraryItems:OF(d.libraryItems,t),appState:s,onSuccess:G=>L(G,d.libraryItems),onError:G=>window.alert(G),updateItemsInStorage:()=>r.setLibrary(d.libraryItems),onRemove:G=>a(t.filter(Q=>Q!==G))}),A&&z()]})},s0=({selectedItems:e,onSelectItems:t,className:r})=>{let{library:o}=Tr(),{clearLibraryCache:i,deleteItemsFromLibraryCache:a}=Lg(),s=it(),c=ot(),[d]=Xe(zl,dt),p=async m=>{let g=m.filter(h=>!e.includes(h.id));o.setLibrary(g).catch(()=>{c({errorMessage:E("alerts.errorRemovingFromLibrary")})}),a(e),t([])};return(0,sr.jsx)(FF,{appState:s,setAppState:c,selectedItems:e,onSelectItems:t,library:o,onRemoveFromLibrary:()=>p(d.libraryItems),resetLibrary:()=>{o.resetLibrary(),i()},className:r})};v();var Lc=w(j(),1);v();var Ra=w(j(),1);var Hl=w(P(),1),u5=(0,Ra.memo)(({id:e,elements:t,isPending:r,onClick:o,selected:i,onToggle:a,onDrag:s,svgCache:c})=>{let d=(0,Ra.useRef)(null),p=Wk(e,t,c);(0,Ra.useEffect)(()=>{let b=d.current;if(b)return p&&(b.innerHTML=p.outerHTML),()=>{b.innerHTML=""}},[p]);let[f,m]=(0,Ra.useState)(!1),g=rt().editor.isMobile,h=r&&(0,Hl.jsx)("div",{className:"library-unit__adder",children:v2});return(0,Hl.jsxs)("div",{className:q("library-unit",{"library-unit__active":t,"library-unit--hover":t&&f,"library-unit--selected":i,"library-unit--skeleton":!p}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,Hl.jsx)("div",{className:q("library-unit__dragger",{"library-unit__pulse":!!r}),ref:d,draggable:!!t,onClick:t||r?b=>{e&&b.shiftKey?a(e,b):o(e)}:void 0,onDragStart:b=>{if(!e){b.preventDefault();return}m(!1),s(e,b)}}),h,e&&t&&(f||g||i)&&(0,Hl.jsx)(Dl,{checked:i,onChange:(b,y)=>a(e,y),className:"library-unit__checkbox"})]})}),p5=()=>(0,Hl.jsx)("div",{className:"library-unit library-unit--skeleton"});v();var Ug=w(j(),1);function BF(){return[!1,(0,Ug.useCallback)(t=>t(),[])]}var f5=Ug.default.useTransition||BF;var Ul=w(P(),1),c0=({children:e})=>(0,Ul.jsx)("div",{className:"library-menu-items-container__grid",children:e}),Gg=(0,Lc.memo)(({items:e,onItemSelectToggle:t,onItemDrag:r,isItemSelected:o,onClick:i,svgCache:a,itemsRenderedPerBatch:s})=>{let[,c]=f5(),[d,p]=(0,Lc.useState)(0);return(0,Lc.useEffect)(()=>{d<e.length&&c(()=>{p(d+s)})},[d,e.length,c,s]),(0,Ul.jsx)(Ul.Fragment,{children:e.map((f,m)=>m<d?(0,Ul.jsx)(u5,{elements:f?.elements,isPending:!f?.id&&!!f?.elements,onClick:i,svgCache:a,id:f?.id,selected:o(f.id),onToggle:t,onDrag:r},f?.id??m):(0,Ul.jsx)(p5,{},m))})});v();var v5=w(j(),1);var y5=w(m0(),1),rB=wt(0),E5=e=>{let[t,r]=Xe(rB);return(0,v5.useEffect)(()=>{let{current:o}=e;if(!o)return;let i=(0,y5.default)(()=>{let{scrollTop:a}=o;r(a)},200);return o.addEventListener("scroll",i),()=>{i.cancel(),o.removeEventListener("scroll",i)}},[e,r]),t};var Lt=w(P(),1),oB=17,nB=64;function u0({isLoading:e,libraryItems:t,onAddToLibrary:r,onInsertLibraryItems:o,pendingElements:i,theme:a,id:s,libraryReturnUrl:c,onSelectItems:d,selectedItems:p}){let f=(0,Wr.useRef)(null),m=E5(f);(0,Wr.useEffect)(()=>{m>0&&f.current?.scrollTo(0,m)},[]);let{svgCache:g}=Lg(),h=(0,Wr.useMemo)(()=>t.filter(G=>G.status!=="published"),[t]),b=(0,Wr.useMemo)(()=>t.filter(G=>G.status==="published"),[t]),y=!t.length&&!i.length,T=!i.length&&!h.length&&!b.length,[k,I]=(0,Wr.useState)(null),A=(0,Wr.useCallback)((G,Q)=>{let de=!p.includes(G),K=[...h,...b];if(de){if(Q.shiftKey&&k){let se=K.findIndex(Ee=>Ee.id===k),be=K.findIndex(Ee=>Ee.id===G);if(se===-1||be===-1){d([...p,G]);return}let _e=Le(p),nt=K.reduce((Ee,ue,U)=>((U>=se&&U<=be||_e.has(ue.id))&&Ee.push(ue.id),Ee),[]);d(nt)}else d([...p,G]);I(G)}else I(null),d(p.filter(se=>se!==G))},[k,d,b,p,h]),O=(0,Wr.useCallback)(G=>{let Q;return p.includes(G)?Q=t.filter(de=>p.includes(de.id)):Q=t.filter(de=>de.id===G),Q.map(de=>({...de,elements:tf(de.elements,{randomizeSeed:!0})}))},[t,p]),z=(0,Wr.useCallback)((G,Q)=>{Q.dataTransfer.setData(kr.excalidrawlib,lv(O(G)))},[O]),L=(0,Wr.useCallback)(G=>G?p.includes(G):!1,[p]),F=(0,Wr.useCallback)(()=>{r(i)},[i,r]),D=(0,Wr.useCallback)(G=>{G&&o(O(G))},[O,o]),V=g.size>=t.length?nB:oB;return(0,Lt.jsxs)("div",{className:"library-menu-items-container",style:i.length||h.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!T&&(0,Lt.jsx)(s0,{selectedItems:p,onSelectItems:d,className:"library-menu-dropdown-container--in-heading"}),(0,Lt.jsxs)(Cr.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:f,children:[(0,Lt.jsxs)(Lt.Fragment,{children:[!T&&(0,Lt.jsx)("div",{className:"library-menu-items-container__header",children:E("labels.personalLib")}),e&&(0,Lt.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Lt.jsx)(Pr,{})}),!i.length&&!h.length?(0,Lt.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Lt.jsx)("div",{className:"library-menu-items__no-items__label",children:E("library.noItems")}),(0,Lt.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?E("library.hint_emptyPrivateLibrary"):E("library.hint_emptyLibrary")})]}):(0,Lt.jsxs)(c0,{children:[i.length>0&&(0,Lt.jsx)(Gg,{itemsRenderedPerBatch:V,items:[{id:null,elements:i}],onItemSelectToggle:A,onItemDrag:z,onClick:F,isItemSelected:L,svgCache:g}),(0,Lt.jsx)(Gg,{itemsRenderedPerBatch:V,items:h,onItemSelectToggle:A,onItemDrag:z,onClick:D,isItemSelected:L,svgCache:g})]})]}),(0,Lt.jsxs)(Lt.Fragment,{children:[(b.length>0||i.length>0||h.length>0)&&(0,Lt.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:E("labels.excalidrawLib")}),b.length>0?(0,Lt.jsx)(c0,{children:(0,Lt.jsx)(Gg,{itemsRenderedPerBatch:V,items:b,onItemSelectToggle:A,onItemDrag:z,onClick:D,isItemSelected:L,svgCache:g})}):h.length>0?(0,Lt.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:E("library.noItems")}):null]}),y&&(0,Lt.jsx)(Fg,{style:{padding:"16px 0",width:"100%"},id:s,libraryReturnUrl:c,theme:a,children:(0,Lt.jsx)(s0,{selectedItems:p,onSelectItems:d})})]})]})}var ln=w(P(),1),kc=wt(!1),w5=({children:e})=>(0,ln.jsx)("div",{className:"layer-ui__library",children:e}),iB=({onInsertLibraryItems:e,pendingElements:t,onAddToLibrary:r,setAppState:o,libraryReturnUrl:i,library:a,id:s,theme:c,selectedItems:d,onSelectItems:p})=>{let[f]=Xe(zl,dt),m=(0,No.useCallback)(b=>{(async(T,k)=>{ze("element","addToLibrary","ui");for(let A of ip)if(T.some(O=>O.type===A))return o({errorMessage:E(`errors.libraryElementTypeError.${A}`)});let I=[{status:"unpublished",elements:T,id:ma(),created:Date.now()},...k];r(),a.setLibrary(I).catch(()=>{o({errorMessage:E("alerts.errorAddingToLibrary")})})})(b,f.libraryItems)},[r,a,o,f.libraryItems]),g=(0,No.useMemo)(()=>f.libraryItems,[f]);if(f.status==="loading"&&!f.isInitialized)return(0,ln.jsx)(w5,{children:(0,ln.jsx)("div",{className:"layer-ui__library-message",children:(0,ln.jsxs)("div",{children:[(0,ln.jsx)(Pr,{size:"2em"}),(0,ln.jsx)("span",{children:E("labels.libraryLoadingMessage")})]})})});let h=f.libraryItems.length>0||t.length>0;return(0,ln.jsxs)(w5,{children:[(0,ln.jsx)(u0,{isLoading:f.status==="loading",libraryItems:g,onAddToLibrary:m,onInsertLibraryItems:e,pendingElements:t,id:s,libraryReturnUrl:i,theme:c,onSelectItems:p,selectedItems:d}),h&&(0,ln.jsx)(Fg,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:s,libraryReturnUrl:i,theme:c})]})},aB=(e,t)=>{let r=()=>Oe(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}),o=(0,No.useRef)(r()),i=(0,No.useRef)(e),a=(0,No.useRef)(t);return(!gr(e.selectedElementIds,i.current.selectedElementIds)||!gr(t,a.current))&&(o.current=r(),i.current=e,a.current=t),o.current},S5=()=>{let{library:e,id:t,onInsertElements:r}=Tr(),o=Jn(),i=it(),a=ot(),s=Aa(),[c,d]=(0,No.useState)([]),p=(0,No.useMemo)(()=>e,[e]),f=aB(i,s),m=(0,No.useCallback)(h=>{r(Og(h))},[r]),g=(0,No.useCallback)(()=>{a({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[a]);return(0,ln.jsx)(iB,{pendingElements:f,onInsertLibraryItems:m,onAddToLibrary:g,setAppState:a,libraryReturnUrl:o.libraryReturnUrl,library:p,id:t,theme:i.theme,selectedItems:c,onSelectItems:d})};var Da=w(P(),1);function lB(e){if(e&&typeof e=="number")return e;switch(e){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var Ft=e=>{let[t,r]=zk(),[o]=(0,Kg.useState)(document.activeElement),{id:i}=ar(),a=rt().viewport.isMobile;(0,Kg.useEffect)(()=>{if(!t)return;let p=Sd(t);setTimeout(()=>{p.length>0&&e.autofocus!==!1&&(p[1]||p[0]).focus()});let f=m=>{if(m.key===R.TAB){let g=Sd(t),{activeElement:h}=document,b=g.findIndex(y=>y===h);b===0&&m.shiftKey?(g[g.length-1].focus(),m.preventDefault()):b===g.length-1&&!m.shiftKey&&(g[0].focus(),m.preventDefault())}};return t.addEventListener("keydown",f),()=>t.removeEventListener("keydown",f)},[t,e.autofocus]);let s=ot(),c=Mi(kc,dt),d=()=>{s({openMenu:null}),c(!1),o.focus(),e.onCloseRequest()};return(0,Da.jsx)(Uk,{className:q("Dialog",e.className,{"Dialog--fullscreen":a}),labelledBy:"dialog-title",maxWidth:lB(e.size),onCloseRequest:d,closeOnClickOutside:e.closeOnClickOutside,children:(0,Da.jsxs)(hr,{ref:r,children:[e.title&&(0,Da.jsx)("h2",{id:`${i}-dialog-title`,className:"Dialog__title",children:(0,Da.jsx)("span",{className:"Dialog__titleContent",children:e.title})}),a&&(0,Da.jsx)("button",{className:"Dialog__close",onClick:d,title:E("buttons.close"),"aria-label":E("buttons.close"),type:"button",children:Zo}),(0,Da.jsx)("div",{className:"Dialog__content",children:e.children})]})})};v();var ei=w(j(),1);v();var T5=w(P(),1),Qn=({type:e="button",onSelect:t,selected:r,children:o,className:i="",...a})=>(0,T5.jsx)("button",{onClick:ca(a.onClick,s=>{t()}),type:e,className:q("excalidraw-button",i,{selected:r}),...a,children:o});var Gl=w(P(),1),Yg=(0,ei.forwardRef)(({onChange:e,label:t,fullWidth:r,placeholder:o,readonly:i,selectOnRender:a,onKeyDown:s,isRedacted:c=!1,...d},p)=>{let f=(0,ei.useRef)(null);(0,ei.useImperativeHandle)(p,()=>f.current),(0,ei.useLayoutEffect)(()=>{a&&f.current?.select()},[a]);let[m,g]=(0,ei.useState)(!1);return(0,Gl.jsxs)("div",{className:q("ExcTextField",{"ExcTextField--fullWidth":r}),onClick:()=>{f.current?.focus()},children:[(0,Gl.jsx)("div",{className:"ExcTextField__label",children:t}),(0,Gl.jsxs)("div",{className:q("ExcTextField__input",{"ExcTextField__input--readonly":i}),children:[(0,Gl.jsx)("input",{className:q({"is-redacted":"value"in d&&d.value&&c&&!m}),readOnly:i,value:"value"in d?d.value:void 0,defaultValue:"defaultValue"in d?d.defaultValue:void 0,placeholder:o,ref:f,onChange:h=>e?.(h.target.value),onKeyDown:s}),c&&(0,Gl.jsx)(Qn,{onSelect:()=>g(!m),style:{border:0,userSelect:"none"},children:m?AT:Ls})]})]})});v();var sB={toggleTheme:[X("Shift+Alt+D")],saveScene:[X("CtrlOrCmd+S")],loadScene:[X("CtrlOrCmd+O")],clearCanvas:[X("CtrlOrCmd+Delete")],imageExport:[X("CtrlOrCmd+Shift+E")],commandPalette:[X("CtrlOrCmd+/"),X("CtrlOrCmd+Shift+P")],cut:[X("CtrlOrCmd+X")],copy:[X("CtrlOrCmd+C")],paste:[X("CtrlOrCmd+V")],copyStyles:[X("CtrlOrCmd+Alt+C")],pasteStyles:[X("CtrlOrCmd+Alt+V")],selectAll:[X("CtrlOrCmd+A")],deleteSelectedElements:[X("Delete")],duplicateSelection:[X("CtrlOrCmd+D"),X(`Alt+${E("helpDialog.drag")}`)],sendBackward:[X("CtrlOrCmd+[")],bringForward:[X("CtrlOrCmd+]")],sendToBack:[En?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")],bringToFront:[En?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")],copyAsPng:[X("Shift+Alt+C")],copyAsSvg:[],group:[X("CtrlOrCmd+G")],ungroup:[X("CtrlOrCmd+Shift+G")],gridMode:[X("CtrlOrCmd+'")],zenMode:[X("Alt+Z")],objectsSnapMode:[X("Alt+S")],stats:[X("Alt+/")],addToLibrary:[],flipHorizontal:[X("Shift+H")],flipVertical:[X("Shift+V")],viewMode:[X("Alt+R")],hyperlink:[X("CtrlOrCmd+K")],toggleElementLock:[X("CtrlOrCmd+Shift+L")],resetZoom:[X("CtrlOrCmd+0")],zoomOut:[X("CtrlOrCmd+-")],zoomIn:[X("CtrlOrCmd++")],zoomToFitSelection:[X("Shift+3")],zoomToFit:[X("Shift+1")],zoomToFitSelectionInViewport:[X("Shift+2")],toggleEraserTool:[X("E")],toggleHandTool:[X("H")],setFrameAsActiveTool:[X("F")],saveFileToDisk:[X("CtrlOrCmd+S")],saveToActiveFile:[X("CtrlOrCmd+S")],toggleShortcuts:[X("?")]},cr=(e,t=0)=>{let r=sB[e];return r&&r.length>0?r[t]||r[0]:""};var r3=w(_5(),1);v();var cB="\\u0300-\\u036f",dB="\\ufe20-\\ufe2f",mB="\\u20d0-\\u20ff",uB=cB+dB+mB,pB=`[${uB}]`,fB=RegExp(pB,"g"),gB=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,hB={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"E",\u00E6:"e",\u00DE:"T",\u00FE:"t",\u00DF:"s",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"I",\u0133:"i",\u0152:"E",\u0153:"e",\u0149:"n",\u017F:"s"},p0=e=>e.replace(gB,t=>hB[t]||t).replace(fB,"");v();var A5=w(P(),1),sn=({icon:e})=>(0,A5.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:e});v();var X5=w(j(),1);v();var Xg=w(j(),1);v();var Im=w(j());v();v();var k5=e=>{let t,r=new Set,o=(f,m)=>{let g=typeof f=="function"?f(t):f;if(!Object.is(g,t)){let h=t;t=m??(typeof g!="object"||g===null)?g:Object.assign({},t,g),r.forEach(b=>b(t,h))}},i=()=>t,d={setState:o,getState:i,getInitialState:()=>p,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(_?_.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},p=t=e(o,i,d);return d},M5=e=>e?k5(e):k5;var H5=w(j(),1),U5=w(B5(),1),{useDebugValue:DB}=H5.default,{useSyncExternalStoreWithSelector:NB}=U5.default,z5=!1,OB=e=>e;function FB(e,t=OB,r){(_?_.MODE:void 0)!=="production"&&r&&!z5&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),z5=!0);let o=NB(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return DB(o),o}var $5=e=>{(_?_.MODE:void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let t=typeof e=="function"?M5(e):e,r=(o,i)=>FB(t,o,i);return Object.assign(r,t),r},G5=e=>e?$5(e):$5;var W5,K5,Y5=typeof window<"u"&&((W5=window.document)!=null&&W5.createElement||((K5=window.navigator)==null?void 0:K5.product)==="ReactNative")?Im.default.useLayoutEffect:Im.default.useEffect;function Dn(){let e=G5(t=>({current:new Array,version:0,set:t}));return{In:({children:t})=>{let r=e(i=>i.set),o=e(i=>i.version);return Y5(()=>{r(i=>({version:i.version+1}))},[]),Y5(()=>(r(({current:i})=>({current:[...i,t]})),()=>r(({current:i})=>({current:i.filter(a=>a!==t)}))),[t,o]),null},Out:()=>{let t=e(r=>r.current);return Im.default.createElement(Im.default.Fragment,null,t)}}}var g0=Xg.default.createContext(null),It=()=>Xg.default.useContext(g0),V5=()=>Xg.default.useMemo(()=>({MainMenuTunnel:Dn(),WelcomeScreenMenuHintTunnel:Dn(),WelcomeScreenToolbarHintTunnel:Dn(),WelcomeScreenHelpHintTunnel:Dn(),WelcomeScreenCenterTunnel:Dn(),FooterCenterTunnel:Dn(),DefaultSidebarTriggerTunnel:Dn(),DefaultSidebarTabTriggersTunnel:Dn(),OverwriteConfirmDialogTunnel:Dn(),TTDDialogTriggerTunnel:Dn(),jotaiScope:Symbol()}),[]);var Te=w(P(),1),h0=(e,t)=>{let r=t[0]?.type||null;for(let o of t)if(o.type!==r){r=null;break}return Md(e.activeTool.type)&&e.activeTool.type!=="image"&&r!=="image"&&r!=="frame"&&r!=="magicframe"||t.some(o=>Md(o.type))},b0=(e,t)=>fa(e.activeTool.type)||t.some(r=>fa(r.type)),Zg=({appState:e,elementsMap:t,renderAction:r})=>{let o=gf(t,e),i=!1;o.length===2&&(go(o[0])||go(o[1]))&&(i=!0);let a=!!e.editingElement,s=rt(),c=document.documentElement.getAttribute("dir")==="rtl",d=fa(e.activeTool.type)&&!cl(e.currentItemBackgroundColor)||o.some(m=>fa(m.type)&&!cl(m.backgroundColor)),p=o.length===1||i,f=!e.editingLinearElement&&o.length===1&&Qe(o[0]);return(0,Te.jsxs)("div",{className:"panelColumn",children:[(0,Te.jsx)("div",{children:h0(e,o)&&r("changeStrokeColor")}),b0(e,o)&&(0,Te.jsx)("div",{children:r("changeBackgroundColor")}),d&&r("changeFillStyle"),(Px(e.activeTool.type)||o.some(m=>Px(m.type)))&&r("changeStrokeWidth"),(e.activeTool.type==="freedraw"||o.some(m=>m.type==="freedraw"))&&r("changeStrokeShape"),(Lx(e.activeTool.type)||o.some(m=>Lx(m.type)))&&(0,Te.jsxs)(Te.Fragment,{children:[r("changeStrokeStyle"),r("changeSloppiness")]}),(Rx(e.activeTool.type)||o.some(m=>Rx(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeRoundness")}),(e.activeTool.type==="text"||o.some(he))&&(0,Te.jsxs)(Te.Fragment,{children:[r("changeFontFamily"),r("changeFontSize"),(e.activeTool.type==="text"||sC(o,t))&&r("changeTextAlign")]}),lC(o,t)&&r("changeVerticalAlign"),(Ts(e.activeTool.type)||o.some(m=>Ts(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeArrowhead")}),r("changeOpacity"),(0,Te.jsxs)("fieldset",{children:[(0,Te.jsx)("legend",{children:E("labels.layers")}),(0,Te.jsxs)("div",{className:"buttonList",children:[r("sendToBack"),r("sendBackward"),r("bringForward"),r("bringToFront")]})]}),o.length>1&&!i&&(0,Te.jsxs)("fieldset",{children:[(0,Te.jsx)("legend",{children:E("labels.align")}),(0,Te.jsxs)("div",{className:"buttonList",children:[c?(0,Te.jsxs)(Te.Fragment,{children:[r("alignRight"),r("alignHorizontallyCentered"),r("alignLeft")]}):(0,Te.jsxs)(Te.Fragment,{children:[r("alignLeft"),r("alignHorizontallyCentered"),r("alignRight")]}),o.length>2&&r("distributeHorizontally"),(0,Te.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,Te.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[r("alignTop"),r("alignVerticallyCentered"),r("alignBottom"),o.length>2&&r("distributeVertically")]})]})]}),!a&&o.length>0&&(0,Te.jsxs)("fieldset",{children:[(0,Te.jsx)("legend",{children:E("labels.actions")}),(0,Te.jsxs)("div",{className:"buttonList",children:[!s.editor.isMobile&&r("duplicateSelection"),!s.editor.isMobile&&r("deleteSelectedElements"),r("group"),r("ungroup"),p&&r("hyperlink"),f&&r("toggleLinearEditor")]})]})]})},qg=({activeTool:e,appState:t,app:r,UIOptions:o})=>{let[i,a]=(0,X5.useState)(!1),s=e.type==="frame",c=e.type==="laser",d=e.type==="embeddable",{TTDDialogTriggerTunnel:p}=It();return(0,Te.jsxs)(Te.Fragment,{children:[Pp.map(({value:f,icon:m,key:g,numericKey:h,fillable:b},y)=>{if(o.tools?.[f]===!1)return null;let T=E(`toolBar.${f}`),k=g&&sa(typeof g=="string"?g:g[0]),I=k?`${k} ${E("helpDialog.or")} ${h}`:`${h}`;return(0,Te.jsx)(Ce,{className:q("Shape",{fillable:b}),type:"radio",icon:m,checked:e.type===f,name:"editor-current-shape",title:`${sa(T)} \u2014 ${I}`,keyBindingLabel:h||k,"aria-label":sa(T),"aria-keyshortcuts":I,"data-testid":`toolbar-${f}`,onPointerDown:({pointerType:A})=>{!t.penDetected&&A==="pen"&&r.togglePenMode(!0)},onChange:({pointerType:A})=>{t.activeTool.type!==f&&ze("toolbar",f,"ui"),f==="image"?r.setActiveTool({type:f,insertOnCanvasDirectly:A!=="mouse"}):r.setActiveTool({type:f})}},f)}),(0,Te.jsx)("div",{className:"App-toolbar__divider"}),(0,Te.jsxs)(st,{open:i,children:[(0,Te.jsxs)(st.Trigger,{className:q("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":s||d||c&&!r.props.isCollaborating}),onToggle:()=>a(!i),title:E("toolBar.extraTools"),children:[IT,r.props.aiEnabled!==!1&&(0,Te.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:8,fontFamily:"Cascadia, monospace",position:"absolute",background:"var(--color-promo)",color:"var(--color-surface-lowest)",bottom:3,right:4},children:"AI"})]}),(0,Te.jsxs)(st.Content,{onClickOutside:()=>a(!1),onSelect:()=>a(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"frame"}),icon:Cp,shortcut:R.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:s,children:E("toolBar.frame")}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"embeddable"}),icon:A2,"data-testid":"toolbar-embeddable",selected:d,children:E("toolBar.embeddable")}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"laser"}),icon:_p,"data-testid":"toolbar-laser",selected:c,shortcut:R.K.toLocaleUpperCase(),children:E("toolBar.laser")}),(0,Te.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),r.props.aiEnabled!==!1&&(0,Te.jsx)(p.Out,{}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:Ip,"data-testid":"toolbar-embeddable",children:E("toolBar.mermaidToExcalidraw")}),r.props.aiEnabled!==!1&&(0,Te.jsxs)(Te.Fragment,{children:[(0,Te.jsxs)(st.Item,{onSelect:()=>r.onMagicframeToolSelect(),icon:Ps,"data-testid":"toolbar-magicframe",children:[E("toolBar.magicframe"),(0,Te.jsx)(st.Item.Badge,{children:"AI"})]}),(0,Te.jsx)(st.Item,{onSelect:()=>{ze("ai","open-settings","d2c"),r.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Nd,"data-testid":"toolbar-magicSettings",children:E("toolBar.magicSettings")})]})]})]})]})},Z5=({renderAction:e,zoom:t})=>(0,Te.jsx)(Cr.Col,{gap:1,className:"zoom-actions",children:(0,Te.jsxs)(Cr.Row,{align:"center",children:[e("zoomOut"),e("resetZoom"),e("zoomIn")]})}),q5=({renderAction:e,className:t})=>(0,Te.jsxs)("div",{className:`undo-redo-buttons ${t}`,children:[(0,Te.jsx)("div",{className:"undo-button-container",children:(0,Te.jsx)(Ro,{label:E("buttons.undo"),children:e("undo")})}),(0,Te.jsx)("div",{className:"redo-button-container",children:(0,Te.jsxs)(Ro,{label:E("buttons.redo"),children:[" ",e("redo")]})})]}),j5=({actionManager:e,showExitZenModeBtn:t})=>(0,Te.jsx)("button",{type:"button",className:q("disable-zen-mode",{"disable-zen-mode--visible":t}),onClick:()=>e.executeAction(Sc),children:E("buttons.exitZenMode")}),J5=({renderAction:e,className:t})=>(0,Te.jsx)("div",{className:`finalize-button ${t}`,children:e("finalize",{size:"small"})});v();var Q5=w(j(),1),x0=e=>{let t=(0,Q5.useRef)({userFn:e});return t.current.userFn=e,t.current.stableFn||(t.current.stableFn=(...r)=>t.current.userFn(...r)),t.current.stableFn};v();var jg=w(P(),1),Wl=wt(null),e3=()=>{let[e,t]=Xe(Wl,dt),r=xr();return e&&e==="clearCanvas"?(0,jg.jsx)(zg,{onConfirm:()=>{r.executeAction(Fi),t(null)},onCancel:()=>t(null),title:E("clearCanvasDialog.title"),children:(0,jg.jsxs)("p",{className:"clear-canvas__content",children:[" ",E("alerts.clearReset")]})}):null};var v0={};mS(v0,{toggleTheme:()=>BB});v();var BB={...Ml,category:"App",label:"Toggle theme",perform:({actionManager:e})=>{e.executeAction(Ml,"commandPalette")}};var St=w(P(),1),zB=wt(null),qt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},$B=e=>{switch(e){case qt.app:return 1;case qt.export:return 2;case qt.editor:return 3;case qt.tools:return 4;case qt.elements:return 5;case qt.links:return 6;default:return 10}},Jg=({shortcut:e,className:t,children:r})=>{let o=e.replace("++","+$").split("+");return(0,St.jsxs)("div",{className:q("shortcut",t),children:[o.map((i,a)=>(0,St.jsx)("div",{className:"shortcut-wrapper",children:(0,St.jsx)("div",{className:"shortcut-key",children:i==="$"?"+":i})},i)),(0,St.jsx)("div",{className:"shortcut-desc",children:r})]})},o3=e=>!e.altKey&&e[R.CTRL_OR_CMD]&&(e.shiftKey&&e.key.toLowerCase()===R.P||e.key===R.SLASH),Hce=Object.assign(e=>{let t=it(),r=ot();return(0,cn.useEffect)(()=>{let o=i=>{o3(i)&&(i.preventDefault(),i.stopPropagation(),r(a=>{let s=a.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return s&&ze("command_palette","open","shortcut"),{openDialog:s}}))};return window.addEventListener("keydown",o,{capture:!0}),()=>window.removeEventListener("keydown",o,{capture:!0})},[r]),t.openDialog?.name!=="commandPalette"?null:(0,St.jsx)(HB,{...e})},{defaultItems:v0});function HB({customCommandPaletteItems:e}){let t=Tr(),r=it(),o=ot(),i=Jn(),a=xr(),[s,c]=Xe(zB),[d,p]=(0,cn.useState)(null),f=(0,cn.useRef)(null),m=fc({uiAppState:r,customCommandPaletteItems:e,appProps:i});(0,cn.useEffect)(()=>{let{uiAppState:L,customCommandPaletteItems:F,appProps:D}=m,V=K=>{let se="";return K.label&&(typeof K.label=="function"?se=E(K.label(t.scene.getNonDeletedElements(),L,t)):se=E(K.label)),se},G=K=>typeof K.icon=="function"?K.icon(L,t.scene.getNonDeletedElements()):K.icon,Q=[],de=(K,se,be)=>{let _e={label:V(K),icon:G(K),category:se,shortcut:cr(K.name),keywords:K.keywords,predicate:K.predicate,viewMode:K.viewMode,perform:()=>{a.executeAction(K,"commandPalette")}};return be?be(_e,K):_e};if(L&&t.scene&&a){let K=[a.actions.group,a.actions.ungroup,a.actions.cut,a.actions.copy,a.actions.deleteSelectedElements,a.actions.copyStyles,a.actions.pasteStyles,a.actions.bringToFront,a.actions.bringForward,a.actions.sendBackward,a.actions.sendToBack,a.actions.alignTop,a.actions.alignBottom,a.actions.alignLeft,a.actions.alignRight,a.actions.alignVerticallyCentered,a.actions.alignHorizontallyCentered,a.actions.duplicateSelection,a.actions.flipHorizontal,a.actions.flipVertical,a.actions.zoomToFitSelection,a.actions.zoomToFitSelectionInViewport,a.actions.increaseFontSize,a.actions.decreaseFontSize,a.actions.toggleLinearEditor,vm].map(ue=>de(ue,qt.elements,(U,Y)=>({...U,predicate:Y.predicate?Y.predicate:(oe,ie,le,ce)=>Oe(oe,ie).length>0}))),se=[a.actions.toggleHandTool,a.actions.setFrameAsActiveTool].map(ue=>de(ue,qt.tools)),be=[a.actions.undo,a.actions.redo,a.actions.zoomIn,a.actions.zoomOut,a.actions.resetZoom,a.actions.zoomToFit,a.actions.zenMode,a.actions.viewMode,a.actions.gridMode,a.actions.objectsSnapMode,a.actions.toggleShortcuts,a.actions.selectAll,a.actions.toggleElementLock,a.actions.unlockAllElements,a.actions.stats].map(ue=>de(ue,qt.editor)),_e=[a.actions.saveToActiveFile,a.actions.saveFileToDisk,a.actions.copyAsPng,a.actions.copyAsSvg].map(ue=>de(ue,qt.export));Q=[...K,...be,{label:V(Fi),icon:G(Fi),shortcut:cr(Fi.name),category:qt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{zr.set(Wl,"clearCanvas")}},{label:E("buttons.exportImage"),category:qt.export,icon:yp,shortcut:cr("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{o({openDialog:{name:"imageExport"}})}},..._e];let nt=[{label:E("toolBar.library"),category:qt.app,icon:gp,viewMode:!1,perform:()=>{L.openSidebar?o({openSidebar:null}):o({openSidebar:{name:Sn.name,tab:Sn.defaultTab}})}},{label:E("labels.changeStroke"),keywords:["color","outline"],category:qt.elements,icon:vp,viewMode:!1,predicate:(ue,U)=>{let Y=Oe(ue,U);return Y.length>0&&h0(U,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:E("labels.changeBackground"),keywords:["color","fill"],icon:vp,category:qt.elements,viewMode:!1,predicate:(ue,U)=>{let Y=Oe(ue,U);return Y.length>0&&b0(U,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:E("labels.canvasBackground"),keywords:["color"],icon:vp,category:qt.editor,viewMode:!1,perform:()=>{o(ue=>({openMenu:ue.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...Pp.reduce((ue,U)=>{let{value:Y,icon:oe,key:ie,numericKey:le}=U;if(D.UIOptions.tools?.[Y]===!1)return ue;let pe=ie&&sa(typeof ie=="string"?ie:ie[0])||le,ye={label:E(`toolBar.${Y}`),category:qt.tools,shortcut:pe,icon:oe,keywords:["toolbar"],viewMode:!1,perform:({event:Tt})=>{Y==="image"?t.setActiveTool({type:Y,insertOnCanvasDirectly:Tt.type==="keydown"}):t.setActiveTool({type:Y})}};return ue.push(ye),ue},[]),...se,{label:E("toolBar.lock"),category:qt.tools,icon:L.activeTool.locked?_s:ml,shortcut:R.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{t.toggleLock()}},{label:`${E("labels.textToDiagram")}...`,category:qt.tools,icon:MT,viewMode:!1,predicate:D.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${E("toolBar.mermaidToExcalidraw")}...`,category:qt.tools,icon:Ip,viewMode:!1,predicate:D.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"mermaid"}}))}}],Ee=[...Q,...nt,...F||[]].map(ue=>({...ue,icon:ue.icon||kp,order:ue.order??$B(ue.category),haystack:`${p0(ue.label.toLocaleLowerCase())} ${ue.keywords?.join(" ")||""}`}));p(Ee),c(Ee.find(ue=>ue.label===s?.label)??null)}},[m,t,a,p,s?.label,c,o]);let[g,h]=(0,cn.useState)(""),[b,y]=(0,cn.useState)(null),[T,k]=(0,cn.useState)({}),I=L=>{o({openDialog:null},L),h("")},A=(L,F)=>{r.openDialog?.name==="commandPalette"&&(F.stopPropagation(),F.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),I(()=>{L.perform({actionManager:a,event:F}),c(L),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},O=x0(L=>L.viewMode===!1&&r.viewModeEnabled?!1:typeof L.predicate=="function"?L.predicate(t.scene.getNonDeletedElements(),r,i,t):L.predicate===void 0||L.predicate),z=x0(L=>{let F=Wn(L.target)||o3(L)||L.key===R.ESCAPE;if(F&&L.key!==R.ARROW_UP&&L.key!==R.ARROW_DOWN&&L.key!==R.ENTER)return;let D=Object.values(T).flat(),V=s&&!g&&O(s);if(L.key===R.ARROW_UP){L.preventDefault();let G=D.findIndex(K=>K.label===b?.label);if(V){if(G===0){y(s);return}if(b===s){let K=D[D.length-1];K&&y(K);return}}let Q;G===-1?Q=D.length-1:Q=G===0?D.length-1:(G-1)%D.length;let de=D[Q];de&&y(de);return}if(L.key===R.ARROW_DOWN){L.preventDefault();let G=D.findIndex(K=>K.label===b?.label);if(V){if(!b||G===D.length-1){y(s);return}if(b===s){let K=D[0];K&&y(K);return}}let Q=(G+1)%D.length,de=D[Q];de&&y(de);return}if(L.key===R.ENTER&&b&&setTimeout(()=>{A(b,L)}),!F){if(L.stopPropagation(),/^[a-zA-Z0-9]$/.test(L.key)){f?.current?.focus();return}L.preventDefault()}});return(0,cn.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,cn.useEffect)(()=>{if(!d)return;let L=G=>{let Q={};for(let de of G)Q[de.category]?Q[de.category].push(de):Q[de.category]=[de];return Q},F=d.filter(O).sort((G,Q)=>G.order-Q.order),D=!g&&s&&O(s);if(!g){k(L(D?F.filter(G=>G.label!==s?.label):F)),y(D?s:F[0]||null);return}let V=p0(g.toLocaleLowerCase().replace(/[<>_| -]/g,""));F=r3.default.filter(V,F,{extract:G=>G.haystack}).sort((G,Q)=>Q.score-G.score).map(G=>G.original),k(L(F)),y(F[0]??null)},[g,d,O,s]),(0,St.jsxs)(Ft,{onCloseRequest:()=>I(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,St.jsx)(Yg,{value:g,placeholder:E("commandPalette.search.placeholder"),onChange:L=>{h(L)},selectOnRender:!0,ref:f}),!t.device.viewport.isMobile&&(0,St.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,St.jsx)(Jg,{shortcut:"\u2191\u2193",children:E("commandPalette.shortcuts.select")}),(0,St.jsx)(Jg,{shortcut:"\u21B5",children:E("commandPalette.shortcuts.confirm")}),(0,St.jsx)(Jg,{shortcut:X("Esc"),children:E("commandPalette.shortcuts.close")})]}),(0,St.jsxs)("div",{className:"commands",children:[s&&!g&&(0,St.jsxs)("div",{className:"command-category",children:[(0,St.jsxs)("div",{className:"command-category-title",children:[E("commandPalette.recents"),(0,St.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:PT})]}),(0,St.jsx)(t3,{command:s,isSelected:s.label===b?.label,onClick:L=>A(s,L),disabled:!O(s),onMouseMove:()=>y(s),showShortcut:!t.device.viewport.isMobile,appState:r})]}),Object.keys(T).length>0?Object.keys(T).map((L,F)=>(0,St.jsxs)("div",{className:"command-category",children:[(0,St.jsx)("div",{className:"command-category-title",children:L}),T[L].map(D=>(0,St.jsx)(t3,{command:D,isSelected:D.label===b?.label,onClick:V=>A(D,V),onMouseMove:()=>y(D),showShortcut:!t.device.viewport.isMobile,appState:r},D.label))]},L)):d?(0,St.jsxs)("div",{className:"no-match",children:[(0,St.jsx)("div",{className:"icon",children:Ap})," ",E("commandPalette.search.noMatch")]}):null]})]})}var t3=({command:e,isSelected:t,disabled:r,onMouseMove:o,onClick:i,showShortcut:a,appState:s})=>{let c=()=>{};return(0,St.jsxs)("div",{className:q("command-item",{"item-selected":t,"item-disabled":r}),ref:d=>{t&&!r&&d?.scrollIntoView?.({block:"nearest"})},onClick:r?c:i,onMouseMove:r?c:o,title:r?E("commandPalette.itemNotAvailable"):"",children:[(0,St.jsxs)("div",{className:"name",children:[e.icon&&(0,St.jsx)(sn,{icon:typeof e.icon=="function"?e.icon(s):e.icon}),e.label]}),a&&e.shortcut&&(0,St.jsx)(Jg,{shortcut:e.shortcut})]})};var n3=w(P(),1),y0=re({name:"toggleLinearEditor",category:qt.elements,label:(e,t,r)=>r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds})[0]?.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit",keywords:["line"],trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return!!(!t.editingLinearElement&&i.length===1&&Qe(i[0]))},perform(e,t,r,o){let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0})[0],a=t.editingLinearElement?.elementId===i.id?null:new Re(i);return{appState:{...t,editingLinearElement:a},storeAction:W.CAPTURE}},PanelComponent:({appState:e,updateData:t,app:r})=>{let o=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds})[0],i=E(o.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,n3.jsx)(Ce,{type:"button",icon:KT,title:i,"aria-label":i,onClick:()=>t(null)})}});v();v();var Kl=class{constructor(t=!0,r=!0){this.isUndoStackEmpty=t;this.isRedoStackEmpty=r}},_m=class e{onHistoryChangedEmitter=new Qo;undoStack=[];redoStack=[];get isUndoStackEmpty(){return this.undoStack.length===0}get isRedoStackEmpty(){return this.redoStack.length===0}clear(){this.undoStack.length=0,this.redoStack.length=0}record(t,r){let o=E0.create(r,t);o.isEmpty()||(this.undoStack.push(o.inverse()),o.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new Kl(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(t,r,o){return this.perform(t,r,o,()=>e.pop(this.undoStack),i=>e.push(this.redoStack,i,t))}redo(t,r,o){return this.perform(t,r,o,()=>e.pop(this.redoStack),i=>e.push(this.undoStack,i,t))}perform(t,r,o,i,a){try{let s=i();if(s===null)return;let c=t,d=r,p=!1;for(;s;){try{[c,d,p]=s.applyTo(c,d,o)}finally{a(s)}if(p)break;s=i()}return[c,d]}finally{this.onHistoryChangedEmitter.trigger(new Kl(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(t){if(!t.length)return null;let r=t.pop();return r!==void 0?r:null}static push(t,r,o){let i=r.inverse().applyLatestChanges(o);return t.push(i)}},E0=class e{constructor(t,r){this.appStateChange=t;this.elementsChange=r}static create(t,r){return new e(t,r)}inverse(){return new e(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(t,r,o){let[i,a]=this.elementsChange.applyTo(t,o.elements),[s,c]=this.appStateChange.applyTo(r,i);return[i,s,a||c]}applyLatestChanges(t){let r=this.elementsChange.applyLatestChanges(t);return e.create(this.appStateChange,r)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};v();var Qg=w(j(),1),w0=(e,t)=>{let[r,o]=(0,Qg.useState)(t);return(0,Qg.useEffect)(()=>{let i=e.on(a=>{o(a)});return()=>{i()}},[e]),r};var S0=w(P(),1),i3=(e,t)=>{if(!e.multiElement&&!e.resizingElement&&!e.editingElement&&!e.draggingElement){let r=t();if(!r)return{storeAction:W.NONE};let[o,i]=r,a=Array.from(o.values());return{appState:i,elements:a,storeAction:W.UPDATE}}return{storeAction:W.NONE}},a3=(e,t)=>({name:"undo",label:"buttons.undo",icon:Fx,trackEvent:{category:"history"},viewMode:!1,perform:(r,o)=>i3(o,()=>e.undo(Le(r),o,t.snapshot)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.key.toLowerCase()===R.Z&&!r.shiftKey,PanelComponent:({updateData:r,data:o})=>{let{isUndoStackEmpty:i}=w0(e.onHistoryChangedEmitter,new Kl(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,S0.jsx)(Ce,{type:"button",icon:Fx,"aria-label":E("buttons.undo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-undo"})}}),l3=(e,t)=>({name:"redo",label:"buttons.redo",icon:Bx,trackEvent:{category:"history"},viewMode:!1,perform:(r,o)=>i3(o,()=>e.redo(Le(r),o,t.snapshot)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.shiftKey&&r.key.toLowerCase()===R.Z||Yu&&r.ctrlKey&&!r.shiftKey&&r.key===R.Y,PanelComponent:({updateData:r,data:o})=>{let{isRedoStackEmpty:i}=w0(e.onHistoryChangedEmitter,new Kl(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,S0.jsx)(Ce,{type:"button",icon:Bx,"aria-label":E("buttons.redo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-redo"})}});v();var s3=w(P(),1),T0=(e,t,r,o,i,a)=>{if(e.trackEvent)try{typeof e.trackEvent=="object"&&(!e.trackEvent.predicate||e.trackEvent.predicate(r,o,a))&&ze(e.trackEvent.category,e.trackEvent.action||e.name,`${t} (${i.device.editor.isMobile?"mobile":"desktop"})`)}catch(s){console.error("error while logging action:",s)}},eh=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(t,r,o,i){this.updater=a=>{if(xs(a))a.then(s=>t(s));else return t(a)},this.getAppState=r,this.getElementsIncludingDeleted=o,this.app=i}registerAction(t){this.actions[t.name]=t}registerAll(t){t.forEach(r=>this.registerAction(r))}handleKeyDown(t){let r=this.app.props.UIOptions.canvasActions,o=Object.values(this.actions).sort((d,p)=>(p.keyPriority||0)-(d.keyPriority||0)).filter(d=>(d.name in r?r[d.name]:!0)&&d.keyTest&&d.keyTest(t,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(o.length!==1)return o.length>1&&console.warn("Canceling as multiple actions match this shortcut",o),!1;let i=o[0];if(this.getAppState().viewModeEnabled&&i.viewMode!==!0)return!1;let a=this.getElementsIncludingDeleted(),s=this.getAppState(),c=null;return T0(i,"keyboard",s,a,this.app,null),t.preventDefault(),t.stopPropagation(),this.updater(o[0].perform(a,s,c,this.app)),!0}executeAction(t,r="api",o=null){let i=this.getElementsIncludingDeleted(),a=this.getAppState();T0(t,r,a,i,this.app,o),this.updater(t.perform(i,a,o,this.app))}renderAction=(t,r)=>{let o=this.app.props.UIOptions.canvasActions;if(this.actions[t]&&"PanelComponent"in this.actions[t]&&(!(t in o)||o[t])){let i=this.actions[t],a=i.PanelComponent;a.displayName="PanelComponent";let s=this.getElementsIncludingDeleted(),c=this.getAppState(),d=p=>{T0(i,"ui",c,s,this.app,p),this.updater(i.perform(this.getElementsIncludingDeleted(),this.getAppState(),p,this.app))};return(0,s3.jsx)(a,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:d,appProps:this.app.props,app:this.app,data:r})}return null};isActionEnabled=t=>{let r=this.getElementsIncludingDeleted(),o=this.getAppState();return!t.predicate||t.predicate(r,o,this.app.props,this.app)}};v();var C0=e=>{let t=Array.from(e.values());return{x:c3(t,r=>r.x)/t.length,y:c3(t,r=>r.y)/t.length}},I0=([e,t])=>Math.hypot(e.x-t.x,e.y-t.y),c3=(e,t)=>e.reduce((r,o)=>r+t(o),0);v();var d3=w(j(),1),$i=w(P(),1),Kr="separator",m3=d3.default.memo(({actionManager:e,items:t,top:r,left:o,onClose:i})=>{let a=jn(),s=Aa(),c=t.reduce((d,p)=>(p&&(p===Kr||!p.predicate||p.predicate(s,a,e.app.props,e.app))&&d.push(p),d),[]);return(0,$i.jsx)(ag,{onCloseRequest:()=>{i()},top:r,left:o,fitInViewport:!0,offsetLeft:a.offsetLeft,offsetTop:a.offsetTop,viewportWidth:a.width,viewportHeight:a.height,children:(0,$i.jsx)("ul",{className:"context-menu",onContextMenu:d=>d.preventDefault(),children:c.map((d,p)=>{if(d===Kr)return!c[p-1]||c[p-1]===Kr?null:(0,$i.jsx)("hr",{className:"context-menu-item-separator"},p);let f=d.name,m="";return d.label&&(typeof d.label=="function"?m=E(d.label(s,a,e.app)):m=E(d.label)),(0,$i.jsx)("li",{"data-testid":f,onClick:()=>{i(()=>{e.executeAction(d,"contextMenu")})},children:(0,$i.jsxs)("button",{type:"button",className:q("context-menu-item",{dangerous:f==="deleteSelectedElements",checkmark:d.checked?.(a)}),children:[(0,$i.jsx)("div",{className:"context-menu-item__label",children:m}),(0,$i.jsx)("kbd",{className:"context-menu-item__shortcut",children:f?cr(f):""})]})},p)})})})});v();var YM=w(j(),1);v();var th=w(j(),1);var Dc=w(P(),1),u3=({children:e,onClose:t})=>{let[r,o]=(0,th.useState)(!!e),{container:i}=ar(),a=th.default.useCallback(()=>{o(!1),t&&t(),i?.focus()},[t,i]);return(0,Dc.jsx)(Dc.Fragment,{children:r&&(0,Dc.jsx)(Ft,{size:"small",onCloseRequest:a,title:E("errorDialog.title"),children:(0,Dc.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:e})})})};v();var Oo=w(j(),1);v();var Am=w(P(),1),rh=function({onChange:e,value:t,choices:r,name:o}){return(0,Am.jsx)("div",{className:"RadioGroup",children:r.map(i=>(0,Am.jsxs)("div",{className:q("RadioGroup__choice",{active:i.value===t}),title:i.ariaLabel,children:[(0,Am.jsx)("input",{name:o,type:"radio",checked:i.value===t,onChange:()=>e(i.value),"aria-label":i.ariaLabel}),i.label]},String(i.value)))})};v();var _0=w(P(),1),km=({title:e,name:t,checked:r,onChange:o,disabled:i=!1})=>(0,_0.jsx)("div",{className:q("Switch",{toggled:r,disabled:i}),children:(0,_0.jsx)("input",{name:t,id:t,title:e,type:"checkbox",checked:r,disabled:i,onChange:()=>o(!r),onKeyDown:a=>{a.key===" "&&o(!r)}})});v();var oh=w(j(),1);var Nc=w(P(),1),ti=(0,oh.forwardRef)(({children:e,icon:t,onClick:r,label:o,variant:i="filled",color:a="primary",size:s="medium",fullWidth:c,className:d},p)=>{let[f,m]=(0,oh.useState)(!1),g=async h=>{let b=r?.(h);if(xs(b))try{m(!0),await b}catch(y){if(y instanceof Es)console.warn(y);else throw y}finally{m(!1)}};return(0,Nc.jsx)("button",{className:q("ExcButton",`ExcButton--color-${a}`,`ExcButton--variant-${i}`,`ExcButton--size-${s}`,{"ExcButton--fullWidth":c},d),onClick:g,type:"button","aria-label":o,ref:p,disabled:f,children:(0,Nc.jsxs)("div",{className:"ExcButton__contents",children:[f&&(0,Nc.jsx)(Pr,{}),t&&(0,Nc.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:t}),i!=="icon"&&(e??o)]})})});var et=w(P(),1),UB="filter"in document.createElement("canvas").getContext("2d"),GB=()=>(0,et.jsxs)("div",{children:[(0,et.jsx)("h3",{children:E("canvasError.cannotShowPreview")}),(0,et.jsx)("p",{children:(0,et.jsx)("span",{children:E("canvasError.canvasTooBig")})}),(0,et.jsxs)("em",{children:["(",E("canvasError.canvasTooBigTip"),")"]})]}),WB=({appStateSnapshot:e,elementsSnapshot:t,files:r,actionManager:o,onExportImage:i,name:a})=>{let s=ft(t,e),[c,d]=(0,Oo.useState)(a),[p,f]=(0,Oo.useState)(s),[m,g]=(0,Oo.useState)(e.exportBackground),[h,b]=(0,Oo.useState)(e.exportWithDarkMode),[y,T]=(0,Oo.useState)(e.exportEmbedScene),[k,I]=(0,Oo.useState)(e.exportScale),A=(0,Oo.useRef)(null),[O,z]=(0,Oo.useState)(null),{exportedElements:L,exportingFrame:F}=Ll(t,e,p);return(0,Oo.useEffect)(()=>{let D=A.current;if(!D)return;let V=D.offsetWidth,G=D.offsetHeight;V&&El({elements:L,appState:{...e,name:c,exportBackground:m,exportWithDarkMode:h,exportScale:k,exportEmbedScene:y},files:r,exportPadding:la,maxWidthOrHeight:Math.max(V,G),exportingFrame:F}).then(Q=>(z(null),Ii(Q).then(()=>{D.replaceChildren(Q)}).catch(de=>{throw de.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):de}))).catch(Q=>{console.error(Q),z(Q)})},[e,r,L,F,c,m,h,k,y]),(0,et.jsxs)("div",{className:"ImageExportModal",children:[(0,et.jsx)("h3",{children:E("imageExportDialog.header")}),(0,et.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,et.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:A,children:O&&(0,et.jsx)(GB,{})}),(0,et.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Fs&&(0,et.jsx)("input",{type:"text",className:"TextInput",value:c,style:{width:"30ch"},onChange:D=>{d(D.target.value),o.executeAction(Ry,"ui",D.target.value)}})})]}),(0,et.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,et.jsx)("h3",{children:E("imageExportDialog.header")}),s&&(0,et.jsx)(Mm,{label:E("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,et.jsx)(km,{name:"exportOnlySelected",checked:p,onChange:D=>{f(D)}})}),(0,et.jsx)(Mm,{label:E("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,et.jsx)(km,{name:"exportBackgroundSwitch",checked:m,onChange:D=>{g(D),o.executeAction(Dy,"ui",D)}})}),UB&&(0,et.jsx)(Mm,{label:E("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,et.jsx)(km,{name:"exportDarkModeSwitch",checked:h,onChange:D=>{b(D),o.executeAction(yk,"ui",D)}})}),(0,et.jsx)(Mm,{label:E("imageExportDialog.label.embedScene"),tooltip:E("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,et.jsx)(km,{name:"exportEmbedSwitch",checked:y,onChange:D=>{T(D),o.executeAction(Eg,"ui",D)}})}),(0,et.jsx)(Mm,{label:E("imageExportDialog.label.scale"),name:"exportScale",children:(0,et.jsx)(rh,{name:"exportScale",value:k,onChange:D=>{I(D),o.executeAction(vk,"ui",D)},choices:tp.map(D=>({value:D,label:`${D}\xD7`}))})}),(0,et.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,et.jsx)(ti,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToPng"),onClick:()=>i(ju.png,L,{exportingFrame:F}),icon:Qx,children:E("imageExportDialog.button.exportToPng")}),(0,et.jsx)(ti,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToSvg"),onClick:()=>i(ju.svg,L,{exportingFrame:F}),icon:Qx,children:E("imageExportDialog.button.exportToSvg")}),($s||bi)&&(0,et.jsx)(ti,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.copyPngToClipboard"),onClick:()=>i(ju.clipboard,L,{exportingFrame:F}),icon:Tp,children:E("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Mm=({label:e,children:t,tooltip:r,name:o})=>(0,et.jsxs)("div",{className:"ImageExportModal__settings__setting",title:e,children:[(0,et.jsxs)("label",{htmlFor:o,className:"ImageExportModal__settings__setting__label",children:[e,r&&(0,et.jsx)(Ro,{label:r,long:!0,children:ST})]}),(0,et.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:t})]}),p3=({elements:e,appState:t,files:r,actionManager:o,onExportImage:i,onCloseRequest:a,name:s})=>{let[{appStateSnapshot:c,elementsSnapshot:d}]=(0,Oo.useState)(()=>({appStateSnapshot:fo(t),elementsSnapshot:fo(e)}));return(0,et.jsx)(Ft,{onCloseRequest:a,size:"wide",title:!1,children:(0,et.jsx)(WB,{elementsSnapshot:d,appStateSnapshot:c,files:r,actionManager:o,onExportImage:i,name:s})})};v();var f3=w(P(),1),nh=({children:e,side:t,className:r})=>(0,f3.jsx)("div",{className:q("FixedSideContainer",`FixedSideContainer_side_${t}`,r),children:e});v();var A0=w(P(),1),KB=({appState:e,isMobile:t,device:r,app:o})=>{let{activeTool:i,isResizing:a,isRotating:s,lastPointerDownWith:c}=e,d=e.multiElement!==null;if(e.openSidebar&&!r.editor.canFitSidebar)return null;if(jo(e))return E("hints.eraserRevert");if(i.type==="arrow"||i.type==="line")return d?E("hints.linearElementMulti"):E("hints.linearElement");if(i.type==="freedraw")return E("hints.freeDraw");if(i.type==="text")return E("hints.text");if(i.type==="embeddable")return E("hints.embeddable");if(e.activeTool.type==="image"&&e.pendingImageElementId)return E("hints.placeImage");let p=o.scene.getSelectedElements(e);if(a&&c==="mouse"&&p.length===1){let f=p[0];return Qe(f)&&f.points.length===2?E("hints.lockAngle"):da(f)?E("hints.resizeImage"):E("hints.resize")}if(s&&c==="mouse")return E("hints.rotate");if(p.length===1&&he(p[0]))return E("hints.text_selected");if(e.editingElement&&he(e.editingElement))return E("hints.text_editing");if(i.type==="selection"){if(e.draggingElement?.type==="selection"&&!p.length&&!e.editingElement&&!e.editingLinearElement)return E("hints.deepBoxSelect");if(e.gridSize&&e.draggingElement)return E("hints.disableSnapping");if(!p.length&&!t)return E("hints.canvasPanning");if(p.length===1){if(Qe(p[0]))return e.editingLinearElement?e.editingLinearElement.selectedPointsIndices?E("hints.lineEditor_pointSelected"):E("hints.lineEditor_nothingSelected"):E("hints.lineEditor_info");if(!e.draggingElement&&yi(p[0]))return E("hints.bindTextToElement")}}return null},ih=({appState:e,isMobile:t,device:r,app:o})=>{let i=KB({appState:e,isMobile:t,device:r,app:o});return i?(i=X(i),(0,A0.jsx)("div",{className:"HintViewer",children:(0,A0.jsx)("span",{children:i})})):null};v();var Pm=w(P(),1),YB="medium",g3={CHECKED:_s,UNCHECKED:ml},ah=e=>(0,Pm.jsxs)("label",{className:q("ToolIcon ToolIcon__lock",`ToolIcon_size_${YB}`,{"is-mobile":e.isMobile}),title:`${e.title} \u2014 Q`,children:[(0,Pm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title,"data-testid":"toolbar-lock"}),(0,Pm.jsx)("div",{className:"ToolIcon__icon",children:e.checked?g3.CHECKED:g3.UNCHECKED})]});v();v();var Yl=w(P(),1),Na=({heading:e,children:t,...r})=>{let{id:o}=ar(),i=(0,Yl.jsx)("h2",{className:"visually-hidden",id:`${o}-${e}-title`,children:E(`headings.${e}`)});return(0,Yl.jsx)("section",{...r,"aria-labelledby":`${o}-${e}-title`,children:typeof t=="function"?t(i):(0,Yl.jsxs)(Yl.Fragment,{children:[i,t]})})};v();var Nn=4,ri=6,h3="rgba(0,0,0,0.3)",b3=(e,t,r,o)=>{if(!e.length)return{horizontal:null,vertical:null};let[i,a,s,c]=lt(e),d=t/o.zoom.value,p=r/o.zoom.value,f=t-d,m=r-p,g={top:parseInt(yd("sat"))||0,bottom:parseInt(yd("sab"))||0,left:parseInt(yd("sal"))||0,right:parseInt(yd("sar"))||0},h=Pi().rtl,b=-o.scrollX+f/2+g.left,y=-o.scrollY+m/2+g.top,T=b+d-g.right,k=y+p-g.bottom,I=Math.min(i,b),A=Math.min(a,y),O=Math.max(s,T),z=Math.max(c,k);return{horizontal:b===I&&T===O?null:{x:Math.max(g.left,Nn)+(b-I)/(O-I)*t,y:r-ri-Math.max(Nn,g.bottom),width:(T-b)/(O-I)*t-Math.max(Nn*2,g.left+g.right),height:ri},vertical:y===A&&k===z?null:{x:h?Math.max(g.left,Nn):t-ri-Math.max(g.right,Nn),y:(y-A)/(z-A)*r+Math.max(g.top,Nn),width:ri,height:(k-y)/(z-A)*r-Math.max(Nn*2,g.top+g.bottom)}}},k0=(e,t,r)=>{let[o,i]=[e.horizontal,e.vertical].map(s=>s!=null&&s.x<=t&&t<=s.x+s.width&&s.y<=r&&r<=s.y+s.height);return{isOverEither:o||i,isOverHorizontal:o,isOverVertical:i}};v();var Lm=w(P(),1),VB="medium",lh=e=>e.penDetected?(0,Lm.jsxs)("label",{className:q("ToolIcon ToolIcon__penMode",`ToolIcon_size_${VB}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Lm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Lm.jsx)("div",{className:"ToolIcon__icon",children:C2})]}):null;v();var x3=w(P(),1),sh=e=>(0,x3.jsx)(Ce,{className:q("Shape",{fillable:!1}),type:"radio",icon:Sp,name:"editor-current-shape",checked:e.checked,title:`${e.title} \u2014 H`,keyBindingLabel:e.isMobile?void 0:R.H.toLocaleUpperCase(),"aria-label":`${e.title} \u2014 H`,"aria-keyshortcuts":R.H,"data-testid":"toolbar-hand",onChange:()=>e.onChange?.()});var bt=w(P(),1),v3=({appState:e,elements:t,actionManager:r,setAppState:o,onLockToggle:i,onHandToolToggle:a,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:d,renderSidebars:p,device:f,renderWelcomeScreen:m,UIOptions:g,app:h})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:y,DefaultSidebarTriggerTunnel:T}=It(),k=()=>(0,bt.jsxs)(nh,{side:"top",className:"App-top-bar",children:[m&&(0,bt.jsx)(b.Out,{}),(0,bt.jsx)(Na,{heading:"shapes",children:A=>(0,bt.jsx)(Cr.Col,{gap:4,align:"center",children:(0,bt.jsxs)(Cr.Row,{gap:1,className:"App-toolbar-container",children:[(0,bt.jsxs)(hr,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[A,(0,bt.jsx)(Cr.Row,{gap:1,children:(0,bt.jsx)(qg,{appState:e,activeTool:e.activeTool,UIOptions:g,app:h})})]}),c&&c(!0,e),(0,bt.jsxs)("div",{className:"mobile-misc-tools-container",children:[!e.viewModeEnabled&&(0,bt.jsx)(T.Out,{}),(0,bt.jsx)(lh,{checked:e.penMode,onChange:()=>s(null),title:E("toolBar.penMode"),isMobile:!0,penDetected:e.penDetected}),(0,bt.jsx)(ah,{checked:e.activeTool.locked,onChange:i,title:E("toolBar.lock"),isMobile:!0}),(0,bt.jsx)(sh,{checked:Ti(e),onChange:()=>a(),title:E("toolBar.hand"),isMobile:!0})]})]})})}),(0,bt.jsx)(ih,{appState:e,isMobile:!0,device:f,app:h})]}),I=()=>e.viewModeEnabled?(0,bt.jsx)("div",{className:"App-toolbar-content",children:(0,bt.jsx)(y.Out,{})}):(0,bt.jsxs)("div",{className:"App-toolbar-content",children:[(0,bt.jsx)(y.Out,{}),r.renderAction("toggleEditMenu"),r.renderAction("undo"),r.renderAction("redo"),r.renderAction(e.multiElement?"finalize":"duplicateSelection"),r.renderAction("deleteSelectedElements")]});return(0,bt.jsxs)(bt.Fragment,{children:[p(),!e.viewModeEnabled&&k(),(0,bt.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:ri+Nn*2,marginLeft:ri+Nn*2,marginRight:ri+Nn*2},children:(0,bt.jsxs)(hr,{padding:0,children:[e.openMenu==="shape"&&!e.viewModeEnabled&&Gs(e,t)?(0,bt.jsx)(Na,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,bt.jsx)(Zg,{appState:e,elementsMap:h.scene.getNonDeletedElementsMap(),renderAction:r.renderAction})}):null,(0,bt.jsxs)("footer",{className:"App-toolbar",children:[I(),e.scrolledOutside&&!e.openMenu&&!e.openSidebar&&(0,bt.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(A=>({...Sl(t,A)}))},children:E("buttons.scrollBackToContent")})]})]})})]})};v();var Fa=w(j(),1);var Oa=w(P(),1),y3=e=>{let t=(0,Fa.useRef)(null),[r,o]=(0,Fa.useState)(null);return(0,Fa.useLayoutEffect)(()=>{if(!e.spreadsheet)return;let i=qC(e.chartType,e.spreadsheet,0,0);o(i);let a,s=t.current;return(async()=>(a=await of(i,{exportBackground:!1,viewBackgroundColor:Or.white},null),a.querySelector(".style-fonts")?.remove(),s.replaceChildren(),s.appendChild(a),e.selected&&s.parentNode.focus()))(),()=>{s.replaceChildren()}},[e.spreadsheet,e.chartType,e.selected]),(0,Oa.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{r&&e.onClick(e.chartType,r)},children:(0,Oa.jsx)("div",{ref:t})})},E3=({setAppState:e,appState:t,onClose:r})=>{let{onInsertElements:o}=Tr(),i=Fa.default.useCallback(()=>{r&&r()},[r]),a=(s,c)=>{o(c),ze("paste","chart",s),e({currentChartType:s,pasteDialog:{shown:!1,data:null}})};return(0,Oa.jsx)(Ft,{size:"small",onCloseRequest:i,title:E("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,Oa.jsxs)("div",{className:"container",children:[(0,Oa.jsx)(y3,{chartType:"bar",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="bar",onClick:a}),(0,Oa.jsx)(y3,{chartType:"line",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="line",onClick:a})]})})};v();var w3=w(j(),1);var ne=w(P(),1),XB=()=>(0,ne.jsxs)("div",{className:"HelpDialog__header",children:[(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:Ox}),E("helpDialog.documentation")]}),(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:Ox}),E("helpDialog.blog")]}),(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:xp}),E("helpDialog.github")]}),(0,ne.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,ne.jsx)("div",{className:"HelpDialog__link-icon",children:GT}),"YouTube"]})]}),ZB=e=>(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)("h3",{children:e.title}),(0,ne.jsx)("div",{className:"HelpDialog__islands-container",children:e.children})]}),M0=e=>(0,ne.jsxs)("div",{className:`HelpDialog__island ${e.className}`,children:[(0,ne.jsx)("h4",{className:"HelpDialog__island-title",children:e.caption}),(0,ne.jsx)("div",{className:"HelpDialog__island-content",children:e.children})]});function*qB(e,t){let r=!0;for(let o of e)r||(yield t),r=!1,yield o}var jB=e=>e.replace(/\b[a-z]\b/,t=>t.toUpperCase()),xe=({label:e,shortcuts:t,isOr:r=!0})=>{let o=t.map(i=>(i.endsWith("++")?[...i.slice(0,-2).split("+"),"+"]:i.split("+")).map(s=>(0,ne.jsx)(JB,{children:jB(s)},s)));return(0,ne.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,ne.jsx)("div",{children:e}),(0,ne.jsx)("div",{className:"HelpDialog__key-container",children:[...qB(o,r?E("helpDialog.or"):null)]})]})},JB=e=>(0,ne.jsx)("kbd",{className:"HelpDialog__key",...e}),S3=({onClose:e})=>{let t=w3.default.useCallback(()=>{e&&e()},[e]);return(0,ne.jsx)(ne.Fragment,{children:(0,ne.jsxs)(Ft,{onCloseRequest:t,title:E("helpDialog.title"),className:"HelpDialog",children:[(0,ne.jsx)(XB,{}),(0,ne.jsxs)(ZB,{title:E("helpDialog.shortcuts"),children:[(0,ne.jsxs)(M0,{className:"HelpDialog__island--tools",caption:E("helpDialog.tools"),children:[(0,ne.jsx)(xe,{label:E("toolBar.hand"),shortcuts:[R.H]}),(0,ne.jsx)(xe,{label:E("toolBar.selection"),shortcuts:[R.V,R[1]]}),(0,ne.jsx)(xe,{label:E("toolBar.rectangle"),shortcuts:[R.R,R[2]]}),(0,ne.jsx)(xe,{label:E("toolBar.diamond"),shortcuts:[R.D,R[3]]}),(0,ne.jsx)(xe,{label:E("toolBar.ellipse"),shortcuts:[R.O,R[4]]}),(0,ne.jsx)(xe,{label:E("toolBar.arrow"),shortcuts:[R.A,R[5]]}),(0,ne.jsx)(xe,{label:E("toolBar.line"),shortcuts:[R.L,R[6]]}),(0,ne.jsx)(xe,{label:E("toolBar.freedraw"),shortcuts:[R.P,R[7]]}),(0,ne.jsx)(xe,{label:E("toolBar.text"),shortcuts:[R.T,R[8]]}),(0,ne.jsx)(xe,{label:E("toolBar.image"),shortcuts:[R[9]]}),(0,ne.jsx)(xe,{label:E("toolBar.eraser"),shortcuts:[R.E,R[0]]}),(0,ne.jsx)(xe,{label:E("toolBar.frame"),shortcuts:[R.F]}),(0,ne.jsx)(xe,{label:E("toolBar.laser"),shortcuts:[R.K]}),(0,ne.jsx)(xe,{label:E("labels.eyeDropper"),shortcuts:[R.I,"Shift+S","Shift+G"]}),(0,ne.jsx)(xe,{label:E("helpDialog.editLineArrowPoints"),shortcuts:[X("CtrlOrCmd+Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.editText"),shortcuts:[X("Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.textNewLine"),shortcuts:[X("Enter"),X("Shift+Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.textFinish"),shortcuts:[X("Esc"),X("CtrlOrCmd+Enter")]}),(0,ne.jsx)(xe,{label:E("helpDialog.curvedArrow"),shortcuts:["A",E("helpDialog.click"),E("helpDialog.click"),E("helpDialog.click")],isOr:!1}),(0,ne.jsx)(xe,{label:E("helpDialog.curvedLine"),shortcuts:["L",E("helpDialog.click"),E("helpDialog.click"),E("helpDialog.click")],isOr:!1}),(0,ne.jsx)(xe,{label:E("toolBar.lock"),shortcuts:[R.Q]}),(0,ne.jsx)(xe,{label:E("helpDialog.preventBinding"),shortcuts:[X("CtrlOrCmd")]}),(0,ne.jsx)(xe,{label:E("toolBar.link"),shortcuts:[X("CtrlOrCmd+K")]})]}),(0,ne.jsxs)(M0,{className:"HelpDialog__island--view",caption:E("helpDialog.view"),children:[(0,ne.jsx)(xe,{label:E("buttons.zoomIn"),shortcuts:[X("CtrlOrCmd++")]}),(0,ne.jsx)(xe,{label:E("buttons.zoomOut"),shortcuts:[X("CtrlOrCmd+-")]}),(0,ne.jsx)(xe,{label:E("buttons.resetZoom"),shortcuts:[X("CtrlOrCmd+0")]}),(0,ne.jsx)(xe,{label:E("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,ne.jsx)(xe,{label:E("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,ne.jsx)(xe,{label:E("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,ne.jsx)(xe,{label:E("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,ne.jsx)(xe,{label:E("buttons.zenMode"),shortcuts:[X("Alt+Z")]}),(0,ne.jsx)(xe,{label:E("buttons.objectsSnapMode"),shortcuts:[X("Alt+S")]}),(0,ne.jsx)(xe,{label:E("labels.toggleGrid"),shortcuts:[X("CtrlOrCmd+'")]}),(0,ne.jsx)(xe,{label:E("labels.viewMode"),shortcuts:[X("Alt+R")]}),(0,ne.jsx)(xe,{label:E("labels.toggleTheme"),shortcuts:[X("Alt+Shift+D")]}),(0,ne.jsx)(xe,{label:E("stats.fullTitle"),shortcuts:[X("Alt+/")]}),(0,ne.jsx)(xe,{label:E("commandPalette.title"),shortcuts:bi?[cr("commandPalette")]:[cr("commandPalette"),cr("commandPalette",1)]})]}),(0,ne.jsxs)(M0,{className:"HelpDialog__island--editor",caption:E("helpDialog.editor"),children:[(0,ne.jsx)(xe,{label:E("labels.moveCanvas"),shortcuts:[X(`Space+${E("helpDialog.drag")}`),X(`Wheel+${E("helpDialog.drag")}`)],isOr:!0}),(0,ne.jsx)(xe,{label:E("buttons.clearReset"),shortcuts:[X("CtrlOrCmd+Delete")]}),(0,ne.jsx)(xe,{label:E("labels.delete"),shortcuts:[X("Delete")]}),(0,ne.jsx)(xe,{label:E("labels.cut"),shortcuts:[X("CtrlOrCmd+X")]}),(0,ne.jsx)(xe,{label:E("labels.copy"),shortcuts:[X("CtrlOrCmd+C")]}),(0,ne.jsx)(xe,{label:E("labels.paste"),shortcuts:[X("CtrlOrCmd+V")]}),(0,ne.jsx)(xe,{label:E("labels.pasteAsPlaintext"),shortcuts:[X("CtrlOrCmd+Shift+V")]}),(0,ne.jsx)(xe,{label:E("labels.selectAll"),shortcuts:[X("CtrlOrCmd+A")]}),(0,ne.jsx)(xe,{label:E("labels.multiSelect"),shortcuts:[X(`Shift+${E("helpDialog.click")}`)]}),(0,ne.jsx)(xe,{label:E("helpDialog.deepSelect"),shortcuts:[X(`CtrlOrCmd+${E("helpDialog.click")}`)]}),(0,ne.jsx)(xe,{label:E("helpDialog.deepBoxSelect"),shortcuts:[X(`CtrlOrCmd+${E("helpDialog.drag")}`)]}),($s||bi)&&(0,ne.jsx)(xe,{label:E("labels.copyAsPng"),shortcuts:[X("Shift+Alt+C")]}),(0,ne.jsx)(xe,{label:E("labels.copyStyles"),shortcuts:[X("CtrlOrCmd+Alt+C")]}),(0,ne.jsx)(xe,{label:E("labels.pasteStyles"),shortcuts:[X("CtrlOrCmd+Alt+V")]}),(0,ne.jsx)(xe,{label:E("labels.sendToBack"),shortcuts:[En?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")]}),(0,ne.jsx)(xe,{label:E("labels.bringToFront"),shortcuts:[En?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")]}),(0,ne.jsx)(xe,{label:E("labels.sendBackward"),shortcuts:[X("CtrlOrCmd+[")]}),(0,ne.jsx)(xe,{label:E("labels.bringForward"),shortcuts:[X("CtrlOrCmd+]")]}),(0,ne.jsx)(xe,{label:E("labels.alignTop"),shortcuts:[X("CtrlOrCmd+Shift+Up")]}),(0,ne.jsx)(xe,{label:E("labels.alignBottom"),shortcuts:[X("CtrlOrCmd+Shift+Down")]}),(0,ne.jsx)(xe,{label:E("labels.alignLeft"),shortcuts:[X("CtrlOrCmd+Shift+Left")]}),(0,ne.jsx)(xe,{label:E("labels.alignRight"),shortcuts:[X("CtrlOrCmd+Shift+Right")]}),(0,ne.jsx)(xe,{label:E("labels.duplicateSelection"),shortcuts:[X("CtrlOrCmd+D"),X(`Alt+${E("helpDialog.drag")}`)]}),(0,ne.jsx)(xe,{label:E("helpDialog.toggleElementLock"),shortcuts:[X("CtrlOrCmd+Shift+L")]}),(0,ne.jsx)(xe,{label:E("buttons.undo"),shortcuts:[X("CtrlOrCmd+Z")]}),(0,ne.jsx)(xe,{label:E("buttons.redo"),shortcuts:Yu?[X("CtrlOrCmd+Y"),X("CtrlOrCmd+Shift+Z")]:[X("CtrlOrCmd+Shift+Z")]}),(0,ne.jsx)(xe,{label:E("labels.group"),shortcuts:[X("CtrlOrCmd+G")]}),(0,ne.jsx)(xe,{label:E("labels.ungroup"),shortcuts:[X("CtrlOrCmd+Shift+G")]}),(0,ne.jsx)(xe,{label:E("labels.flipHorizontal"),shortcuts:[X("Shift+H")]}),(0,ne.jsx)(xe,{label:E("labels.flipVertical"),shortcuts:[X("Shift+V")]}),(0,ne.jsx)(xe,{label:E("labels.showStroke"),shortcuts:[X("S")]}),(0,ne.jsx)(xe,{label:E("labels.showBackground"),shortcuts:[X("G")]}),(0,ne.jsx)(xe,{label:E("labels.showFonts"),shortcuts:[X("Shift+F")]}),(0,ne.jsx)(xe,{label:E("labels.decreaseFontSize"),shortcuts:[X("CtrlOrCmd+Shift+<")]}),(0,ne.jsx)(xe,{label:E("labels.increaseFontSize"),shortcuts:[X("CtrlOrCmd+Shift+>")]})]})]})]})})};v();var Vl=w(j(),1);var Ir=w(P(),1),QB=4,ez=8,tz=({shouldWrap:e,children:t,username:r})=>e?(0,Ir.jsx)(Ro,{label:r||"Unknown user",children:t}):(0,Ir.jsx)(Ir.Fragment,{children:t}),P0=({actionManager:e,collaborator:t,socketId:r,withName:o=!1,shouldWrapWithTooltip:i=!1,isBeingFollowed:a})=>{let s={socketId:r,collaborator:t,withName:o,isBeingFollowed:a},c=e.renderAction("goToCollaborator",s);return(0,Ir.jsx)(tz,{username:t.username,shouldWrap:i,children:c},r)},rz=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],ch=Vl.default.memo(({className:e,mobile:t,collaborators:r,userToFollow:o})=>{let i=xr(),a=new Map;r.forEach((y,T)=>{let k=y.id||T;a.set(k,{...y,socketId:T})});let s=Array.from(a.values()).filter(y=>y.username?.trim()),[c,d]=Vl.default.useState(""),p=s.filter(y=>y.username?.toLowerCase().includes(c)),f=Vl.default.useRef(null);(0,Vl.useLayoutEffect)(()=>{if(f.current){let y=k=>{let I=Math.max(1,Math.min(8,Math.floor(k/38)));g(I)};if(y(f.current.clientWidth),!fd)return;let T=new ResizeObserver(k=>{for(let I of k){let{width:A}=I.contentRect;y(A)}});return T.observe(f.current),()=>{T.disconnect()}}},[]);let[m,g]=Vl.default.useState(QB),b=s.slice(0,m-1).map(y=>P0({actionManager:i,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===o}));return t?(0,Ir.jsx)("div",{className:q("UserList UserList_mobile",e),children:s.map(y=>P0({actionManager:i,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===o}))}):(0,Ir.jsx)("div",{className:"UserList__wrapper",ref:f,children:(0,Ir.jsxs)("div",{className:q("UserList",e),style:{"--max-avatars":m},children:[b,s.length>m-1&&(0,Ir.jsxs)(mc,{children:[(0,Ir.jsxs)(uc,{className:"UserList__more",children:["+",s.length-m+1]}),(0,Ir.jsx)(tg,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,Ir.jsxs)(hr,{padding:2,children:[s.length>=ez&&(0,Ir.jsx)(lg,{placeholder:E("quickSearch.placeholder"),onChange:d}),(0,Ir.jsx)(cg,{className:"dropdown-menu UserList__collaborators",placeholder:E("userList.empty"),children:p.length>0?[(0,Ir.jsx)("div",{className:"hint",children:E("userList.hint.text")}),p.map(y=>P0({actionManager:i,collaborator:y,socketId:y.socketId,withName:!0,isBeingFollowed:y.socketId===o}))]:[]}),(0,Ir.jsx)(rg,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})]})]})})},(e,t)=>{if(e.collaborators.size!==t.collaborators.size||e.mobile!==t.mobile||e.className!==t.className||e.userToFollow!==t.userToFollow)return!1;let r=t.collaborators.keys();for(let[o,i]of e.collaborators){let a=t.collaborators.get(o);if(!a||o!==r.next().value||!gr(i,a,rz))return!1}return!0});v();var C3=w(j(),1);v();var T3=w(P(),1),L0=({children:e,color:t})=>(0,T3.jsx)("div",{className:"Card",style:{"--card-color":t==="primary"?"var(--color-primary)":Or[t][7],"--card-color-darker":t==="primary"?"var(--color-primary-darker)":Or[t][8],"--card-color-darkest":t==="primary"?"var(--color-primary-darkest)":Or[t][9]},children:e});var vr=w(P(),1),oz=({elements:e,appState:t,setAppState:r,files:o,actionManager:i,exportOpts:a,canvas:s,onCloseRequest:c})=>{let{onExportToBackend:d}=a;return(0,vr.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,vr.jsxs)("div",{className:"ExportDialog-cards",children:[a.saveFileToDisk&&(0,vr.jsxs)(L0,{color:"lime",children:[(0,vr.jsx)("div",{className:"Card-icon",children:O2}),(0,vr.jsx)("h2",{children:E("exportDialog.disk_title")}),(0,vr.jsxs)("div",{className:"Card-details",children:[E("exportDialog.disk_details"),!Fs&&i.renderAction("changeProjectName")]}),(0,vr.jsx)(Ce,{className:"Card-button",type:"button",title:E("exportDialog.disk_button"),"aria-label":E("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{i.executeAction(bm,"ui")}})]}),d&&(0,vr.jsxs)(L0,{color:"pink",children:[(0,vr.jsx)("div",{className:"Card-icon",children:Dd}),(0,vr.jsx)("h2",{children:E("exportDialog.link_title")}),(0,vr.jsx)("div",{className:"Card-details",children:E("exportDialog.link_details")}),(0,vr.jsx)(Ce,{className:"Card-button",type:"button",title:E("exportDialog.link_button"),"aria-label":E("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{ze("export","link",`ui (${o2()})`),await d(e,t,o),c()}catch(p){r({errorMessage:p.message})}}})]}),a.renderCustomUI&&a.renderCustomUI(e,t,o,s)]})})},I3=({elements:e,appState:t,files:r,actionManager:o,exportOpts:i,canvas:a,setAppState:s})=>{let c=C3.default.useCallback(()=>{s({openDialog:null})},[s]);return(0,vr.jsx)(vr.Fragment,{children:t.openDialog?.name==="jsonExport"&&(0,vr.jsx)(Ft,{onCloseRequest:c,title:E("buttons.export"),children:(0,vr.jsx)(oz,{elements:e,appState:t,setAppState:s,files:r,actionManager:o,onCloseRequest:c,exportOpts:i,canvas:a})})})};v();v();var A3=w(P(),1),_3=e=>(0,A3.jsx)("button",{className:"help-icon",onClick:e.onClick,type:"button",title:`${E("helpDialog.title")} \u2014 ?`,"aria-label":E("helpDialog.title"),children:As});var ao=w(P(),1),k3=({appState:e,actionManager:t,showExitZenModeBtn:r,renderWelcomeScreen:o})=>{let{FooterCenterTunnel:i,WelcomeScreenHelpHintTunnel:a}=It(),s=rt(),c=!e.viewModeEnabled&&e.multiElement&&s.isTouchScreen;return(0,ao.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,ao.jsx)("div",{className:q("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled}),children:(0,ao.jsx)(Cr.Col,{gap:2,children:(0,ao.jsxs)(Na,{heading:"canvasActions",children:[(0,ao.jsx)(Z5,{renderAction:t.renderAction,zoom:e.zoom}),!e.viewModeEnabled&&(0,ao.jsx)(q5,{renderAction:t.renderAction,className:q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":e.zenModeEnabled})}),c&&(0,ao.jsx)(J5,{renderAction:t.renderAction,className:q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled})})]})})}),(0,ao.jsx)(i.Out,{}),(0,ao.jsx)("div",{className:q("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:(0,ao.jsxs)("div",{style:{position:"relative"},children:[o&&(0,ao.jsx)(a.Out,{}),(0,ao.jsx)(_3,{onClick:()=>t.executeAction(Nl)})]})}),(0,ao.jsx)(j5,{actionManager:t,showExitZenModeBtn:r})]})},M3=k3;k3.displayName="Footer";v();var dr=w(j(),1);v();var P3=w(j(),1),dh=P3.default.createContext({});v();var L3=w(j(),1);var Xl=w(P(),1),R0=({children:e,className:t})=>{let r=rt(),o=(0,L3.useContext)(dh),i=!!(r.editor.canFitSidebar&&o.shouldRenderDockButton);return(0,Xl.jsxs)("div",{className:q("sidebar__header",t),"data-testid":"sidebar-header",children:[e,(0,Xl.jsxs)("div",{className:"sidebar__header__buttons",children:[i&&(0,Xl.jsx)(Ro,{label:E("labels.sidebarLock"),children:(0,Xl.jsx)(Qn,{onSelect:()=>o.onDock?.(!o.docked),selected:!!o.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":E("labels.sidebarLock"),children:E2})}),(0,Xl.jsx)(Qn,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:o.onCloseRequest,"aria-label":E("buttons.close"),children:Zo})]})]})};R0.displayName="SidebarHeader";v();var Zl=w(P(),1),D0=({name:e,tab:t,icon:r,title:o,children:i,onToggle:a,className:s,style:c})=>{let d=ot(),p=it();return(0,Zl.jsxs)("label",{title:o,className:"sidebar-trigger__label-element",children:[(0,Zl.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:f=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let m=f.target.checked;d({openSidebar:m?{name:e,tab:t}:null}),a?.(m)},checked:p.openSidebar?.name===e,"aria-label":o,"aria-keyshortcuts":"0"}),(0,Zl.jsxs)("div",{className:q("sidebar-trigger",s),style:c,children:[r&&(0,Zl.jsx)("div",{children:r}),i&&(0,Zl.jsx)("div",{className:"sidebar-trigger__label",children:i})]})]})};D0.displayName="SidebarTrigger";v();v();var _r=w(j());v();var _t=w(j());v();var On=w(j());function R3(e){let t=e+"CollectionProvider",[r,o]=Xn(t),[i,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=h=>{let{scope:b,children:y}=h,T=On.default.useRef(null),k=On.default.useRef(new Map).current;return On.default.createElement(i,{scope:b,itemMap:k,collectionRef:T},y)},c=e+"CollectionSlot",d=On.default.forwardRef((h,b)=>{let{scope:y,children:T}=h,k=a(c,y),I=Lr(b,k.collectionRef);return On.default.createElement(Sa,{ref:I},T)}),p=e+"CollectionItemSlot",f="data-radix-collection-item",m=On.default.forwardRef((h,b)=>{let{scope:y,children:T,...k}=h,I=On.default.useRef(null),A=Lr(b,I),O=a(p,y);return On.default.useEffect(()=>(O.itemMap.set(I,{ref:I,...k}),()=>void O.itemMap.delete(I))),On.default.createElement(Sa,{[f]:"",ref:A},T)});function g(h){let b=a(e+"CollectionConsumer",h);return On.default.useCallback(()=>{let T=b.collectionRef.current;if(!T)return[];let k=Array.from(T.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((O,z)=>k.indexOf(O.ref.current)-k.indexOf(z.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:s,Slot:d,ItemSlot:m},g,o]}v();var Rm=w(j()),nz=(0,Rm.createContext)(void 0);function mh(e){let t=(0,Rm.useContext)(nz);return e||t||"ltr"}var N0="rovingFocusGroup.onEntryFocus",iz={bubbles:!1,cancelable:!0},F0="RovingFocusGroup",[O0,D3,az]=R3(F0),[lz,B0]=Xn(F0,[az]),[sz,cz]=lz(F0),dz=(0,_t.forwardRef)((e,t)=>(0,_t.createElement)(O0.Provider,{scope:e.__scopeRovingFocusGroup},(0,_t.createElement)(O0.Slot,{scope:e.__scopeRovingFocusGroup},(0,_t.createElement)(mz,Ye({},e,{ref:t}))))),mz=(0,_t.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:o,loop:i=!1,dir:a,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:p,...f}=e,m=(0,_t.useRef)(null),g=Lr(t,m),h=mh(a),[b=null,y]=ic({prop:s,defaultProp:c,onChange:d}),[T,k]=(0,_t.useState)(!1),I=oo(p),A=D3(r),O=(0,_t.useRef)(!1),[z,L]=(0,_t.useState)(0);return(0,_t.useEffect)(()=>{let F=m.current;if(F)return F.addEventListener(N0,I),()=>F.removeEventListener(N0,I)},[I]),(0,_t.createElement)(sz,{scope:r,orientation:o,dir:h,loop:i,currentTabStopId:b,onItemFocus:(0,_t.useCallback)(F=>y(F),[y]),onItemShiftTab:(0,_t.useCallback)(()=>k(!0),[]),onFocusableItemAdd:(0,_t.useCallback)(()=>L(F=>F+1),[]),onFocusableItemRemove:(0,_t.useCallback)(()=>L(F=>F-1),[])},(0,_t.createElement)(Zt.div,Ye({tabIndex:T||z===0?-1:0,"data-orientation":o},f,{ref:g,style:{outline:"none",...e.style},onMouseDown:lr(e.onMouseDown,()=>{O.current=!0}),onFocus:lr(e.onFocus,F=>{let D=!O.current;if(F.target===F.currentTarget&&D&&!T){let V=new CustomEvent(N0,iz);if(F.currentTarget.dispatchEvent(V),!V.defaultPrevented){let G=A().filter(be=>be.focusable),Q=G.find(be=>be.active),de=G.find(be=>be.id===b),se=[Q,de,...G].filter(Boolean).map(be=>be.ref.current);N3(se)}}O.current=!1}),onBlur:lr(e.onBlur,()=>k(!1))})))}),uz="RovingFocusGroupItem",pz=(0,_t.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:o=!0,active:i=!1,tabStopId:a,...s}=e,c=tc(),d=a||c,p=cz(uz,r),f=p.currentTabStopId===d,m=D3(r),{onFocusableItemAdd:g,onFocusableItemRemove:h}=p;return(0,_t.useEffect)(()=>{if(o)return g(),()=>h()},[o,g,h]),(0,_t.createElement)(O0.ItemSlot,{scope:r,id:d,focusable:o,active:i},(0,_t.createElement)(Zt.span,Ye({tabIndex:f?0:-1,"data-orientation":p.orientation},s,{ref:t,onMouseDown:lr(e.onMouseDown,b=>{o?p.onItemFocus(d):b.preventDefault()}),onFocus:lr(e.onFocus,()=>p.onItemFocus(d)),onKeyDown:lr(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){p.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let y=hz(b,p.orientation,p.dir);if(y!==void 0){b.preventDefault();let k=m().filter(I=>I.focusable).map(I=>I.ref.current);if(y==="last")k.reverse();else if(y==="prev"||y==="next"){y==="prev"&&k.reverse();let I=k.indexOf(b.currentTarget);k=p.loop?bz(k,I+1):k.slice(I+1)}setTimeout(()=>N3(k))}})})))}),fz={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function gz(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function hz(e,t,r){let o=gz(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return fz[o]}function N3(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function bz(e,t){return e.map((r,o)=>e[(t+o)%e.length])}var O3=dz,F3=pz;var B3="Tabs",[xz,hge]=Xn(B3,[B0]),z3=B0(),[vz,z0]=xz(B3),yz=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,onValueChange:i,defaultValue:a,orientation:s="horizontal",dir:c,activationMode:d="automatic",...p}=e,f=mh(c),[m,g]=ic({prop:o,onChange:i,defaultProp:a});return(0,_r.createElement)(vz,{scope:r,baseId:tc(),value:m,onValueChange:g,orientation:s,dir:f,activationMode:d},(0,_r.createElement)(Zt.div,Ye({dir:f,"data-orientation":s},p,{ref:t})))}),Ez="TabsList",wz=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,loop:o=!0,...i}=e,a=z0(Ez,r),s=z3(r);return(0,_r.createElement)(O3,Ye({asChild:!0},s,{orientation:a.orientation,dir:a.dir,loop:o}),(0,_r.createElement)(Zt.div,Ye({role:"tablist","aria-orientation":a.orientation},i,{ref:t})))}),Sz="TabsTrigger",Tz=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,disabled:i=!1,...a}=e,s=z0(Sz,r),c=z3(r),d=$3(s.baseId,o),p=H3(s.baseId,o),f=o===s.value;return(0,_r.createElement)(F3,Ye({asChild:!0},c,{focusable:!i,active:f}),(0,_r.createElement)(Zt.button,Ye({type:"button",role:"tab","aria-selected":f,"aria-controls":p,"data-state":f?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:d},a,{ref:t,onMouseDown:lr(e.onMouseDown,m=>{!i&&m.button===0&&m.ctrlKey===!1?s.onValueChange(o):m.preventDefault()}),onKeyDown:lr(e.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&s.onValueChange(o)}),onFocus:lr(e.onFocus,()=>{let m=s.activationMode!=="manual";!f&&!i&&m&&s.onValueChange(o)})})))}),Cz="TabsContent",Iz=(0,_r.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,forceMount:i,children:a,...s}=e,c=z0(Cz,r),d=$3(c.baseId,o),p=H3(c.baseId,o),f=o===c.value,m=(0,_r.useRef)(f);return(0,_r.useEffect)(()=>{let g=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(g)},[]),(0,_r.createElement)(nc,{present:i||f},({present:g})=>(0,_r.createElement)(Zt.div,Ye({"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:p,tabIndex:0},s,{ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0}}),g&&a))});function $3(e,t){return`${e}-trigger-${t}`}function H3(e,t){return`${e}-content-${t}`}var uh=yz,ph=wz,fh=Tz,gh=Iz;var U3=w(P(),1),$0=({children:e,...t})=>(0,U3.jsx)(ph,{className:"sidebar-triggers",...t,children:e});$0.displayName="SidebarTabTriggers";v();var H0=w(P(),1),U0=({children:e,tab:t,onSelect:r,...o})=>(0,H0.jsx)(fh,{value:t,asChild:!0,onSelect:r,children:(0,H0.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...o,children:e})});U0.displayName="SidebarTabTrigger";v();var G3=w(P(),1),G0=({children:e,...t})=>{let r=it(),o=ot();if(!r.openSidebar)return null;let{name:i}=r.openSidebar;return(0,G3.jsx)(uh,{className:"sidebar-tabs-root",value:r.openSidebar.tab,onValueChange:a=>o(s=>({...s,openSidebar:{...s.openSidebar,name:i,tab:a}})),...t,children:e})};G0.displayName="SidebarTabs";v();var W3=w(P(),1),W0=({tab:e,children:t,...r})=>(0,W3.jsx)(gh,{...r,value:e,"data-testid":e,children:t});W0.displayName="SidebarTab";var K0=w(P(),1),Y3=w(j(),1),Dm=wt(!1),K3=(0,dr.forwardRef)(({name:e,children:t,onDock:r,docked:o,className:i,...a},s)=>{_.DEV&&r&&o==null&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let c=ot(),d=Mi(Dm,dt);(0,dr.useLayoutEffect)(()=>(d(!!o),()=>{d(!1)}),[d,o]);let p=(0,dr.useRef)({});p.current.onCloseRequest=()=>{c({openSidebar:null})},p.current.onDock=h=>r?.(h),p.current=bs(p.current,{docked:o,shouldRenderDockButton:!!r&&o!=null});let f=(0,dr.useRef)(null);(0,dr.useImperativeHandle)(s,()=>f.current);let m=rt(),g=(0,dr.useCallback)(()=>{document.querySelector(".Dialog")||c({openSidebar:null})},[c]);return pc(f,(0,dr.useCallback)(h=>{h.target.closest(".sidebar-trigger")||(!o||!m.editor.canFitSidebar)&&g()},[g,o,m.editor.canFitSidebar])),(0,dr.useEffect)(()=>{let h=b=>{b.key===R.ESCAPE&&(!o||!m.editor.canFitSidebar)&&g()};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[g,o,m.editor.canFitSidebar]),(0,K0.jsx)(hr,{...a,className:q("sidebar",{"sidebar--docked":o},i),ref:f,children:(0,K0.jsx)(dh.Provider,{value:p.current,children:t})})});K3.displayName="SidebarInner";var Hi=Object.assign((0,dr.forwardRef)((e,t)=>{let r=it(),{onStateChange:o}=e,i=(0,dr.useRef)(r.openSidebar);(0,dr.useEffect)(()=>{(!r.openSidebar&&i?.current?.name===e.name||r.openSidebar?.name===e.name&&i?.current?.name!==e.name||i.current?.name===e.name)&&r.openSidebar!==i.current&&o?.(r.openSidebar?.name!==e.name?null:r.openSidebar),i.current=r.openSidebar},[r.openSidebar,o,e.name]);let[a,s]=(0,dr.useState)(!1);return(0,dr.useLayoutEffect)(()=>(s(!0),()=>s(!1)),[]),a&&r.openSidebar?.name===e.name?(0,Y3.createElement)(K3,{...e,ref:t,key:e.name}):null}),{Header:R0,TabTriggers:$0,TabTrigger:U0,Tabs:G0,Tab:W0,Trigger:D0});Hi.displayName="Sidebar";v();var V0={};mS(V0,{ChangeCanvasBackground:()=>oM,ClearCanvas:()=>tM,CommandPalette:()=>Q3,Export:()=>nM,Help:()=>eM,LiveCollaborationTrigger:()=>aM,LoadScene:()=>q3,SaveAsImage:()=>J3,SaveToActiveFile:()=>j3,Socials:()=>iM,ToggleTheme:()=>rM});v();v();var Y0=wt({active:!1});async function V3({title:e,description:t,actionLabel:r,color:o}){return new Promise(i=>{zr.set(Y0,{active:!0,onConfirm:()=>i(!0),onClose:()=>i(!1),onReject:()=>i(!1),title:e,description:t,actionLabel:r,color:o})})}v();var Ui=w(P(),1),X3=({value:e,shortcut:t,onChange:r,choices:o,children:i,name:a})=>{let s=rt();return(0,Ui.jsxs)(Ui.Fragment,{children:[(0,Ui.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,Ui.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:a,children:i}),(0,Ui.jsx)(rh,{name:a,value:e,onChange:r,choices:o})]}),t&&!s.editor.isMobile&&(0,Ui.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:t})]})};X3.displayName="DropdownMenuItemContentRadio";var Z3=X3;var Bt=w(P(),1),q3=()=>{let{t:e}=ir(),t=xr(),r=Aa();return t.isActionEnabled(yc)?(0,Bt.jsx)(vo,{icon:ks,onSelect:async()=>{(!r.length||await V3({title:e("overwriteConfirm.modal.loadFromFile.title"),actionLabel:e("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,Bt.jsx)(io,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:i=>(0,Bt.jsx)("strong",{children:i}),br:()=>(0,Bt.jsx)("br",{})})}))&&t.executeAction(yc)},"data-testid":"load-button",shortcut:cr("loadScene"),"aria-label":e("buttons.load"),children:e("buttons.load")}):null};q3.displayName="LoadScene";var j3=()=>{let{t:e}=ir(),t=xr();return t.isActionEnabled(wg)?(0,Bt.jsx)(vo,{shortcut:cr("saveScene"),"data-testid":"save-button",onSelect:()=>t.executeAction(wg),icon:R2,"aria-label":`${e("buttons.save")}`,children:`${e("buttons.save")}`}):null};j3.displayName="SaveToActiveFile";var J3=()=>{let e=ot(),{t}=ir();return(0,Bt.jsx)(vo,{icon:yp,"data-testid":"image-export-button",onSelect:()=>e({openDialog:{name:"imageExport"}}),shortcut:cr("imageExport"),"aria-label":t("buttons.exportImage"),children:t("buttons.exportImage")})};J3.displayName="SaveAsImage";var Q3=e=>{let t=ot(),{t:r}=ir();return(0,Bt.jsx)(vo,{icon:kp,"data-testid":"command-palette-button",onSelect:()=>{ze("command_palette","open","menu"),t({openDialog:{name:"commandPalette"}})},shortcut:cr("commandPalette"),"aria-label":r("commandPalette.title"),className:e?.className,children:r("commandPalette.title")})};Q3.displayName="CommandPalette";var eM=()=>{let{t:e}=ir(),t=xr();return(0,Bt.jsx)(vo,{"data-testid":"help-menu-item",icon:As,onSelect:()=>t.executeAction(Nl),shortcut:"?","aria-label":e("helpDialog.title"),children:e("helpDialog.title")})};eM.displayName="Help";var tM=()=>{let{t:e}=ir(),t=Mi(Wl,dt);return xr().isActionEnabled(Fi)?(0,Bt.jsx)(vo,{icon:Cn,onSelect:()=>t("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":e("buttons.clearReset"),children:e("buttons.clearReset")}):null};tM.displayName="ClearCanvas";var rM=e=>{let{t}=ir(),r=it(),o=xr(),i=cr("toggleTheme");return o.isActionEnabled(Ml)?e?.allowSystemTheme?(0,Bt.jsx)(Z3,{name:"theme",value:e.theme,onChange:a=>e.onSelect(a),choices:[{value:Be.LIGHT,label:Rd,ariaLabel:`${t("buttons.lightMode")} - ${i}`},{value:Be.DARK,label:Ld,ariaLabel:`${t("buttons.darkMode")} - ${i}`},{value:"system",label:UT,ariaLabel:t("buttons.systemMode")}],children:t("labels.theme")}):(0,Bt.jsx)(vo,{onSelect:a=>{if(a.preventDefault(),e?.onSelect)e.onSelect(r.theme===Be.DARK?Be.LIGHT:Be.DARK);else return o.executeAction(Ml)},icon:r.theme===Be.DARK?Rd:Ld,"data-testid":"toggle-dark-mode",shortcut:i,"aria-label":r.theme===Be.DARK?t("buttons.lightMode"):t("buttons.darkMode"),children:r.theme===Be.DARK?t("buttons.lightMode"):t("buttons.darkMode")}):null};rM.displayName="ToggleTheme";var oM=()=>{let{t:e}=ir(),t=it(),r=xr(),o=Jn();return t.viewModeEnabled||!o.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,Bt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,Bt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:e("labels.canvasBackground")}),(0,Bt.jsx)("div",{style:{padding:"0 0.625rem"},children:r.renderAction("changeViewBackgroundColor")})]})};oM.displayName="ChangeCanvasBackground";var nM=()=>{let{t:e}=ir(),t=ot();return(0,Bt.jsx)(vo,{icon:ul,onSelect:()=>{t({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":e("buttons.export"),children:e("buttons.export")})};nM.displayName="Export";var iM=()=>{let{t:e}=ir();return(0,Bt.jsxs)(Bt.Fragment,{children:[(0,Bt.jsx)(Mc,{icon:xp,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,Bt.jsx)(Mc,{icon:P2,href:"https://x.com/excalidraw","aria-label":"X",children:e("labels.followUs")}),(0,Bt.jsx)(Mc,{icon:M2,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:e("labels.discordChat")})]})};iM.displayName="Socials";var aM=({onSelect:e,isCollaborating:t})=>{let{t:r}=ir();return(0,Bt.jsx)(vo,{"data-testid":"collab-button",icon:Ep,className:q({"active-collab":t}),onSelect:e,children:r("labels.liveCollaboration")})};aM.displayName="LiveCollaborationTrigger";v();var hh=w(j(),1);var lM=w(P(),1),Gi=(e,t)=>{let r=wt(0),o=i=>{let{jotaiScope:a}=It(),[,s]=Xe(r,a),c=(0,hh.useRef)({preferHost:!1,counter:0});return(0,hh.useLayoutEffect)(()=>{let d=c.current;return s(p=>{let f=p+1;return d.counter=f,f}),()=>{s(p=>{let f=p-1;return d.counter=f,f||(d.preferHost=!1),f})}},[s]),i.__fallback||(c.current.preferHost=!0),!c.current.counter&&i.__fallback&&c.current.preferHost||c.current.counter>1&&i.__fallback?null:(0,lM.jsx)(t,{...i})};return o.displayName=e,o};var Wi=w(P(),1),_z=Object.assign(Gi("MainMenu",({children:e,onSelect:t})=>{let{MainMenuTunnel:r}=It(),o=rt(),i=it(),a=ot(),s=o.editor.isMobile?void 0:()=>a({openMenu:null});return(0,Wi.jsx)(r.In,{children:(0,Wi.jsxs)(st,{open:i.openMenu==="canvas",children:[(0,Wi.jsx)(st.Trigger,{onToggle:()=>{a({openMenu:i.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:bp}),(0,Wi.jsxs)(st.Content,{onClickOutside:s,onSelect:ca(t,()=>{a({openMenu:null})}),children:[e,o.editor.isMobile&&i.collaborators.size>0&&(0,Wi.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Wi.jsx)("legend",{children:E("labels.collaborators")}),(0,Wi.jsx)(ch,{mobile:!0,collaborators:i.collaborators,userToFollow:i.userToFollow?.socketId||null})]})]})]})})}),{Trigger:st.Trigger,Item:st.Item,ItemLink:st.ItemLink,ItemCustom:st.ItemCustom,Group:st.Group,Separator:st.Separator,DefaultItems:V0}),lo=_z;v();v();var Ki=w(P(),1),bh=({title:e,children:t,actionLabel:r,onClick:o})=>(0,Ki.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Ki.jsx)("h4",{children:e}),(0,Ki.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:t}),(0,Ki.jsx)(ti,{variant:"outlined",color:"muted",label:r,size:"large",fullWidth:!0,onClick:o})]}),Az=()=>{let{t:e}=ir(),t=xr(),r=ot();return(0,Ki.jsx)(bh,{title:e("overwriteConfirm.action.exportToImage.title"),actionLabel:e("overwriteConfirm.action.exportToImage.button"),onClick:()=>{t.executeAction(Eg,"ui",!0),r({openDialog:{name:"imageExport"}})},children:e("overwriteConfirm.action.exportToImage.description")})},kz=()=>{let{t:e}=ir(),t=xr();return(0,Ki.jsx)(bh,{title:e("overwriteConfirm.action.saveToDisk.title"),actionLabel:e("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{t.executeAction(bm,"ui")},children:e("overwriteConfirm.action.saveToDisk.description")})},X0=Object.assign(({children:e})=>(0,Ki.jsx)("div",{className:"OverwriteConfirm__Actions",children:e}),{ExportToImage:Az,SaveToDisk:kz});var dn=w(P(),1),xh=Object.assign(Gi("OverwriteConfirmDialog",({children:e})=>{let{OverwriteConfirmDialogTunnel:t}=It(),[r,o]=Xe(Y0,dt);if(!r.active)return null;let i=()=>{r.onClose(),o(s=>({...s,active:!1}))},a=()=>{r.onConfirm(),o(s=>({...s,active:!1}))};return(0,dn.jsx)(t.In,{children:(0,dn.jsx)(Ft,{onCloseRequest:i,title:!1,size:916,children:(0,dn.jsxs)("div",{className:"OverwriteConfirm",children:[(0,dn.jsx)("h3",{children:r.title}),(0,dn.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${r.color}`,children:[(0,dn.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:TT}),(0,dn.jsx)("div",{children:r.description}),(0,dn.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,dn.jsx)(ti,{color:r.color,size:"large",label:r.actionLabel,onClick:a})]}),(0,dn.jsx)(X0,{children:e})]})})})}),{Actions:X0,Action:bh});v();var mn=w(P(),1),dM=w(j(),1),sM=Gi("DefaultSidebarTrigger",e=>{let{DefaultSidebarTriggerTunnel:t}=It();return(0,mn.jsx)(t.In,{children:(0,mn.jsx)(Hi.Trigger,{...e,className:"default-sidebar-trigger",name:Sn.name})})});sM.displayName="DefaultSidebarTrigger";var cM=({children:e,...t})=>{let{DefaultSidebarTabTriggersTunnel:r}=It();return(0,mn.jsx)(r.In,{children:(0,mn.jsx)(Hi.TabTriggers,{...t,children:e})})};cM.displayName="DefaultTabTriggers";var vh=Object.assign(Gi("DefaultSidebar",({children:e,className:t,onDock:r,docked:o,...i})=>{let a=it(),s=ot(),{DefaultSidebarTabTriggersTunnel:c}=It();return(0,dM.createElement)(Hi,{...i,name:"default",key:"default",className:q("default-sidebar",t),docked:o??a.defaultSidebarDockedPreference,onDock:r===!1||!r&&o!=null?void 0:ca(r,d=>{s({defaultSidebarDockedPreference:d})})},(0,mn.jsxs)(Hi.Tabs,{children:[(0,mn.jsxs)(Hi.Header,{children:[i.__fallback&&(0,mn.jsx)("div",{style:{color:"var(--color-primary)",fontSize:"1.2em",fontWeight:"bold",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",paddingRight:"1em"},children:E("toolBar.library")}),(0,mn.jsx)(c.Out,{})]}),(0,mn.jsx)(Hi.Tab,{tab:np,children:(0,mn.jsx)(S5,{})}),e]}))}),{Trigger:sM,TabTriggers:cM});v();var Nm=w(P(),1),Mz="small",mM=e=>(0,Nm.jsxs)("label",{className:q("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${Mz}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Nm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title,"data-testid":"toolbar-LaserPointer"}),(0,Nm.jsx)("div",{className:"ToolIcon__icon",children:_p})]});v();var q0=w(j(),1);v();var uM=w(P(),1),Oc=e=>(0,uM.jsx)("p",{className:"excalidraw__paragraph",style:e.style,children:e.children});v();var Z0=w(j(),1);var fM=w(P(),1),pM=e=>{let t=ot(),r=(0,Z0.useRef)(null),o=(0,Z0.useRef)(0);return(0,fM.jsx)(uh,{ref:r,className:"ttd-dialog-tabs-root",value:e.tab,onValueChange:i=>{if(!i)return;let a=r.current?.closest(".Modal__content");if(a){let s=a.offsetHeight||0;s>o.current&&(o.current=s,a.style.minHeight=`min(${o.current}px, 100%)`)}e.dialog==="settings"&&Ax(["text-to-diagram","diagram-to-code"],i)?t({openDialog:{name:e.dialog,tab:i,source:"settings"}}):e.dialog==="ttd"&&Ax(["text-to-diagram","mermaid"],i)&&t({openDialog:{name:e.dialog,tab:i}})},children:e.children})};pM.displayName="TTDDialogTabs";var yh=pM;v();var gM=w(P(),1),Fc=({tab:e,children:t,...r})=>(0,gM.jsx)(gh,{...r,value:e,children:t});Fc.displayName="TTDDialogTab";var or=w(P(),1),hM=e=>{let[t,r]=(0,q0.useState)(e.openAIKey||""),[o,i]=(0,q0.useState)(e.isPersisted),a=it(),s=()=>{e.onConfirm(t.trim(),o)};return a.openDialog?.name!=="settings"?null:(0,or.jsx)(Ft,{onCloseRequest:()=>{e.onClose(),e.onConfirm(t.trim(),o)},title:(0,or.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,or.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"0.1rem 0.5rem",marginLeft:"1rem",fontSize:14,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"Experimental"})]}),className:"MagicSettings",autofocus:!1,children:(0,or.jsx)(yh,{dialog:"settings",tab:a.openDialog.tab,children:(0,or.jsxs)(Fc,{tab:"diagram-to-code",children:[(0,or.jsxs)(Oc,{children:["For the diagram-to-code feature we use"," ",(0,or.jsx)(sn,{icon:Nd}),"OpenAI."]}),(0,or.jsxs)(Oc,{children:["While the OpenAI API is in beta, its use is strictly limited \u2014 as such we require you use your own API key. You can create an"," ",(0,or.jsx)("a",{href:"https://platform.openai.com/login?launch",rel:"noopener noreferrer",target:"_blank",children:"OpenAI account"}),", add a small credit (5 USD minimum), and"," ",(0,or.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,or.jsx)(Oc,{children:"Your OpenAI key does not leave the browser, and you can also set your own limit in your OpenAI account dashboard if needed."}),(0,or.jsx)(Yg,{isRedacted:!0,value:t,placeholder:"Paste your API key here",label:"OpenAI API key",onChange:c=>{r(c),e.onChange(c.trim(),o)},selectOnRender:!0,onKeyDown:c=>c.key===R.ENTER&&s()}),(0,or.jsx)(Oc,{children:"By default, your API token is not persisted anywhere so you'll need to insert it again after reload. But, you can persist locally in your browser below."}),(0,or.jsx)(Dl,{checked:o,onChange:i,children:"Persist API key in browser storage"}),(0,or.jsxs)(Oc,{children:["Once API key is set, you can use the ",(0,or.jsx)(sn,{icon:Ps})," ","tool to wrap your elements in a frame that will then allow you to turn it into code. This dialog can be accessed using the"," ",(0,or.jsx)("b",{children:"AI Settings"})," ",(0,or.jsx)(sn,{icon:Nd}),"."]}),(0,or.jsx)(ti,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:s})]})})})};v();v();var Fn=w(j(),1);v();var Pz=({canvasRef:e,setError:t})=>{let r=e.current;if(!r)return;let o=r.parentElement;o&&(o.style.background="",t(null),r.replaceChildren())},Eh=async({canvasRef:e,mermaidToExcalidrawLib:t,mermaidDefinition:r,setError:o,data:i})=>{let a=e.current,s=a?.parentElement;if(!(!a||!s)){if(!r){Pz({canvasRef:e,setError:o});return}try{let c=await t.api,d;try{d=await c.parseMermaidToExcalidraw(r)}catch{d=await c.parseMermaidToExcalidraw(r.replace(/"/g,"'"))}let{elements:p,files:f}=d;o(null),i.current={elements:Bc(p,{regenerateIds:!0}),files:f};let m=await El({elements:i.current.elements,files:i.current.files,exportPadding:la,maxWidthOrHeight:Math.max(s.offsetWidth,s.offsetHeight)*window.devicePixelRatio});try{await Ii(m)}catch(g){throw g.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):g}s.style.background="var(--default-bg-color)",a.replaceChildren(m)}catch(c){throw s.style.background="var(--default-bg-color)",r&&o(c),c}}},Om=e=>{So.set(Vo.MERMAID_TO_EXCALIDRAW,e)},wh=({app:e,data:t,text:r,shouldSaveMermaidDataToStorage:o})=>{let{elements:i,files:a}=t.current;i.length&&(e.addElementsFromPasteOrLibrary({elements:i,files:a,position:"center",fitToContent:!0}),e.setOpenDialog(null),o&&r&&Om(r))};v();var bM=w(P(),1),Sh=({children:e})=>(0,bM.jsx)("div",{className:"ttd-dialog-panels",children:e});v();var oi=w(P(),1),zc=({label:e,children:t,panelAction:r,panelActionDisabled:o=!1,onTextSubmitInProgess:i,renderTopRight:a,renderSubmitShortcut:s,renderBottomRight:c})=>(0,oi.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,oi.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,oi.jsx)("label",{children:e}),a?.()]}),t,(0,oi.jsxs)("div",{className:q("ttd-dialog-panel-button-container",{invisible:!r}),style:{display:"flex",alignItems:"center"},children:[(0,oi.jsxs)(Qn,{className:"ttd-dialog-panel-button",onSelect:r?r.action:()=>{},disabled:o||i,children:[(0,oi.jsxs)("div",{className:q({invisible:i}),children:[r?.label,r?.icon&&(0,oi.jsx)("span",{children:r.icon})]}),i&&(0,oi.jsx)(Pr,{})]}),!o&&!i&&s?.(),c?.()]})]});v();var Fm=w(j(),1);var xM=w(P(),1),Th=({input:e,placeholder:t,onChange:r,onKeyboardSubmit:o})=>{let i=(0,Fm.useRef)(null),a=(0,Fm.useRef)(o);return a.current=o,(0,Fm.useEffect)(()=>{if(!a.current)return;let s=i.current;if(s){let c=d=>{d[R.CTRL_OR_CMD]&&d.key===R.ENTER&&(d.preventDefault(),a.current?.())};return s.addEventListener("keydown",c),()=>{s.removeEventListener("keydown",c)}}},[]),(0,xM.jsx)("textarea",{className:"ttd-dialog-input",onChange:r,value:e,placeholder:t,autoFocus:!0,ref:i})};v();var za=w(P(),1),Lz=({error:e})=>(0,za.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,za.jsx)("p",{children:e})]}),Ch=({error:e,canvasRef:t,loaded:r})=>(0,za.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[e&&(0,za.jsx)(Lz,{error:e.message}),r?(0,za.jsx)("div",{ref:t,style:{opacity:e?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,za.jsx)(Pr,{size:"2rem"})]});v();var Bm=w(P(),1),Ih=()=>(0,Bm.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Bm.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("CtrlOrCmd")}),(0,Bm.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("Enter")})]});var Yr=w(P(),1),Rz=`flowchart TD
|
|
46
66
|
A[Christmas] -->|Get money| B(Go shopping)
|
|
47
67
|
B --> C{Let me think}
|
|
48
68
|
C -->|One| D[Laptop]
|
|
49
69
|
C -->|Two| E[iPhone]
|
|
50
|
-
C -->|Three| F[Car]`,
|
|
51
|
-
TTD mermaid definition render errror: ${D.message}`,"color: yellow"),ve("ai","mermaid parse failed","ttd"),_(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(I){let A=I.message;(!A||A==="Failed to fetch")&&(A="Request failed"),_(new Error(A))}finally{f(!1)}},y=(0,nr.useRef)(x);y.current=x;let[w,k]=(0,nr.useState)({loaded:!1,api:import("./excalidraw-assets/dist-PIPZXALV.js")});(0,nr.useEffect)(()=>{(async()=>{await w.api,k(A=>({...A,loaded:!0}))})()},[w.api]);let C=(0,nr.useRef)({elements:[],files:null}),[M,_]=(0,nr.useState)(null);return(0,Xe.jsx)(Qe,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,Xe.jsxs)(jm,{dialog:"ttd",tab:t,children:["__fallback"in e&&e.__fallback?(0,Xe.jsx)("p",{className:"dialog-mermaid-title",children:g("mermaid.title")}):(0,Xe.jsxs)(lg,{children:[(0,Xe.jsx)(ou,{tab:"text-to-diagram",children:(0,Xe.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,Xe.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"pink",color:"#000"},children:"AI Beta"})]})}),(0,Xe.jsx)(ou,{tab:"mermaid",children:"Mermaid"})]}),(0,Xe.jsx)(Ka,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Xe.jsx)(Z3,{mermaidToExcalidrawLib:w})}),!("__fallback"in e)&&(0,Xe.jsxs)(Ka,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Xe.jsx)("div",{className:"ttd-dialog-desc",children:"Currently we use Mermaid as a middle step, so you'll get best results if you describe a diagram, workflow, flow chart, and similar."}),(0,Xe.jsxs)(Jm,{children:[(0,Xe.jsx)(Ya,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:la},onTextSubmitInProgess:d,panelActionDisabled:c.length>Za||p?.rateLimitRemaining===0,renderTopRight:()=>p?(0,Xe.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:p.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[p.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Xe.jsx)(tu,{}),renderBottomRight:()=>{if(typeof i?.generatedResponse=="string")return(0,Xe.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof i?.generatedResponse=="string"&&(ys(i.generatedResponse),r({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Xe.jsx)(_n,{icon:la})]});let I=c.length/Za;return I>.8?(0,Xe.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:I>1?"var(--color-danger)":void 0},children:["Length: ",c.length,"/",Za]}):null},children:(0,Xe.jsx)(Qm,{onChange:m,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{y.current()}})}),(0,Xe.jsx)(Ya,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),qm({app:o,data:C})},label:"Insert",icon:la},children:(0,Xe.jsx)(eu,{canvasRef:n,error:M,loaded:w.loaded})})]})]})]})})});var X=v(S(),1),vk=({UIOptions:t})=>(0,X.jsxs)(io,{__fallback:!0,children:[(0,X.jsx)(io.DefaultItems.LoadScene,{}),(0,X.jsx)(io.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,X.jsx)(io.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,X.jsx)(io.DefaultItems.SaveAsImage,{}),(0,X.jsx)(io.DefaultItems.Help,{}),(0,X.jsx)(io.DefaultItems.ClearCanvas,{}),(0,X.jsx)(io.Separator,{}),(0,X.jsx)(io.Group,{title:"Excalidraw links",children:(0,X.jsx)(io.DefaultItems.Socials,{})}),(0,X.jsx)(io.Separator,{}),(0,X.jsx)(io.DefaultItems.ToggleTheme,{}),(0,X.jsx)(io.DefaultItems.ChangeCanvasBackground,{})]}),yk=()=>(0,X.jsxs)(Ym,{__fallback:!0,children:[(0,X.jsx)(Ym.Actions.SaveToDisk,{}),(0,X.jsx)(Ym.Actions.ExportToImage,{})]}),Ek=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,showExitZenModeBtn:c,renderTopRightUI:m,renderCustomStats:d,UIOptions:f,onExportImage:p,renderWelcomeScreen:b,children:x,app:y,isCollaborating:w,openAIKey:k,isOpenAIKeyPersisted:C,onOpenAIAPIKeyChange:M,onMagicSettingsConfirm:_})=>{let I=Me(),A=ww(),[P,F]=Ee(yn,Pe),D=()=>f.canvasActions.export?(0,X.jsx)(o3,{elements:n,appState:e,files:o,actionManager:t,exportOpts:f.canvasActions.export,canvas:i,setAppState:r}):null,W=()=>!f.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,X.jsx)(Ww,{elements:n,appState:e,files:o,actionManager:t,onExportImage:p,onCloseRequest:()=>r({openDialog:null}),name:y.getName()}),O=()=>(0,X.jsxs)("div",{style:{position:"relative"},children:[(0,X.jsx)(A.MainMenuTunnel.Out,{}),b&&(0,X.jsx)(A.WelcomeScreenMenuHintTunnel.Out,{})]}),U=()=>(0,X.jsx)(An,{heading:"selectedShapeActions",className:z("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,X.jsx)(Bt,{className:Ws.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,X.jsx)(Sm,{appState:e,elementsMap:y.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),ee=()=>{let ce=qi(e,n);return(0,X.jsx)(Pm,{side:"top",children:(0,X.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,X.jsxs)(At.Col,{gap:6,className:z("App-menu_top__left"),children:[O(),ce&&U()]}),!e.viewModeEnabled&&(0,X.jsx)(An,{heading:"shapes",className:"shapes-section",children:oe=>(0,X.jsxs)("div",{style:{position:"relative"},children:[b&&(0,X.jsx)(A.WelcomeScreenToolbarHintTunnel.Out,{}),(0,X.jsx)(At.Col,{gap:4,align:"start",children:(0,X.jsxs)(At.Row,{gap:1,className:z("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,X.jsxs)(Bt,{padding:1,className:z("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,X.jsx)(Dm,{appState:e,isMobile:I.editor.isMobile,device:I,app:y}),oe,(0,X.jsxs)(At.Row,{gap:1,children:[(0,X.jsx)(Nm,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>s(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,X.jsx)(Rm,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,X.jsx)("div",{className:"App-toolbar__divider"}),(0,X.jsx)(Fm,{checked:Dr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,X.jsx)(km,{appState:e,activeTool:e.activeTool,UIOptions:f,app:y})]})]}),w&&(0,X.jsx)(Bt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,X.jsx)(z3,{title:g("toolBar.laser"),checked:e.activeTool.type===ut.laser,onChange:()=>y.setActiveTool({type:ut.laser}),isMobile:!0})})]})})]})}),(0,X.jsxs)("div",{className:z("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,X.jsx)(Bm,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),m?.(I.editor.isMobile,e),!e.viewModeEnabled&&(!pe||e.openSidebar?.name!==Vo.name)&&(0,X.jsx)(A.DefaultSidebarTriggerTunnel.Out,{})]})]})})},K=()=>(0,X.jsx)(Zm,{__fallback:!0,onDock:ce=>{ve("sidebar",`toggleDock (${ce?"dock":"undock"})`,`(${I.editor.isMobile?"mobile":"desktop"})`)}}),pe=Rl(xs,Pe),me=(0,X.jsxs)(X.Fragment,{children:[x,(0,X.jsx)(vk,{UIOptions:f}),(0,X.jsx)(Zm.Trigger,{__fallback:!0,icon:Jc,title:rn(g("toolBar.library")),onToggle:ce=>{ce&&ve("sidebar",`${Vo.name} (open)`,`button (${I.editor.isMobile?"mobile":"desktop"})`)},tab:Vo.defaultTab,children:g("toolBar.library")}),(0,X.jsx)(yk,{}),e.openDialog?.name==="ttd"&&(0,X.jsx)(dg,{__fallback:!0}),e.isLoading&&(0,X.jsx)(Xc,{delay:250}),e.errorMessage&&(0,X.jsx)($w,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),P&&!I.editor.isMobile&&(0,X.jsx)(wy,{colorPickerType:P.colorPickerType,onCancel:()=>{F(null)},onChange:(ce,oe,R,{altKey:B})=>{if(!(ce!=="elementBackground"&&ce!=="elementStroke"))if(R.length){for(let V of R)te(V,{[B&&P.swapPreviewOnAlt?ce==="elementBackground"?"strokeColor":"backgroundColor":ce==="elementBackground"?"backgroundColor":"strokeColor"]:oe},!1),mr.delete(V);ao.getScene(R[0])?.informMutation()}else r(ce==="elementBackground"?{currentItemBackgroundColor:oe}:{currentItemStrokeColor:oe})},onSelect:(ce,oe)=>{F(R=>R?.keepOpenOnAlt&&oe.altKey?R:null),P?.onSelect?.(ce,oe)}}),e.openDialog?.name==="help"&&(0,X.jsx)(Qw,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,X.jsx)(G3,{openAIKey:k,isPersisted:C,onChange:M,onConfirm:(ce,oe)=>{let R=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{_(ce,oe,R)})},onClose:()=>{r({openDialog:null})}}),(0,X.jsx)(_w,{}),(0,X.jsx)(A.OverwriteConfirmDialogTunnel.Out,{}),W(),D(),e.pasteDialog.shown&&(0,X.jsx)(qw,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),I.editor.isMobile&&(0,X.jsx)(jw,{app:y,appState:e,elements:n,actionManager:t,renderJSONExportDialog:D,renderImageExportDialog:W,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,renderTopRightUI:m,renderCustomStats:d,renderSidebars:K,device:I,renderWelcomeScreen:b,UIOptions:f}),!I.editor.isMobile&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&pe&&I.editor.canFitSidebar?{width:`calc(100% - ${b1}px)`}:{},children:[b&&(0,X.jsx)(A.WelcomeScreenCenterTunnel.Out,{}),ee(),(0,X.jsx)(a3,{appState:e,actionManager:t,showExitZenModeBtn:c,renderWelcomeScreen:b}),e.showStats&&(0,X.jsx)(Om,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(Tn)},renderCustomStats:d}),e.scrolledOutside&&(0,X.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(ce=>({...Xn(n,ce)}))},children:g("buttons.scrollBackToContent")})]}),K()]})]});return(0,X.jsx)(Of.Provider,{value:e,children:(0,X.jsx)(Wc,{scope:A.jotaiScope,children:(0,X.jsx)(kh.Provider,{value:A,children:me})})})},X3=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},wk=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return Dt(X3(r),X3(a),{selectedElementIds:Dt,selectedGroupIds:Dt})&&Dt(n,l)},J3=q3.default.memo(Ek,wk);h();var ja=v(H(),1);var Ts=v(S(),1),Ck=5e3,Q3=({message:t,onClose:e,closable:o=!1,duration:r=Ck,style:n})=>{let i=(0,ja.useRef)(0),a=r!==1/0,l=(0,ja.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,ja.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,Ts.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,Ts.jsx)("p",{className:"Toast__message",children:t}),o&&(0,Ts.jsx)(se,{icon:Mo,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var mg=$({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:ca,viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},commitToHistory:!1}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",keyTest:t=>!t[T.CTRL_OR_CMD]&&t.altKey&&t.code===fe.R});var z5=v(wh(),1);h();var ru=class t{scene;onSceneUpdated;constructor({scene:e,onSceneUpdated:o}){this.scene=e,this.onSceneUpdated=o}static loadedFontFaces=new Set;onFontsLoaded=e=>{if(e.every(r=>{let n=`${r.family}-${r.style}-${r.weight}`;return t.loadedFontFaces.has(n)?!0:(t.loadedFontFaces.add(n),!1)}))return!1;let o=!1;this.scene.mapElements(r=>le(r)&&!bt(r)?(mr.delete(r),o=!0,ue(r,{...Sb(r,Lr(r,this.scene.getNonDeletedElementsMap()),this.scene.getNonDeletedElementsMap())})):r),o&&this.onSceneUpdated()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>le(r)).map(r=>r.fontFamily))].map(r=>{let n=Ko({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var e5=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&Te(o[0])},t5=$({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(Te(n)){let i=un(be(t),n.id).filter(a=>!(a.type==="text"&&a.containerId));return{elements:t,appState:{...e,selectedElementIds:i.reduce((a,l)=>(a[l.id]=!0,a),{})},commitToHistory:!1}}return{elements:t,appState:e,commitToHistory:!1}},predicate:(t,e,o,r)=>e5(e,r)}),o5=$({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return Te(n)?{elements:l0(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},commitToHistory:!0}:{elements:t,appState:e,commitToHistory:!1}},predicate:(t,e,o,r)=>e5(e,r)}),Pre=$({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},commitToHistory:!1}),checked:t=>t.frameRendering.enabled}),Dre=$({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:sd,viewMode:!1,perform:(t,e,o,r)=>{let n=ot(e,{type:"frame"});return Yo(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:ot(e,{type:"frame"})},commitToHistory:!1}},keyTest:t=>!t[T.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===T.F});h();var Tk=8,r5=99999,nu=t=>Tk/t,zo=class t{static referenceSnapPoints=null;static visibleGaps=null;static setReferenceSnapPoints=e=>{t.referenceSnapPoints=e};static getReferenceSnapPoints=()=>t.referenceSnapPoints;static setVisibleGaps=e=>{t.visibleGaps=e};static getVisibleGaps=()=>t.visibleGaps;static destroy=()=>{t.referenceSnapPoints=null,t.visibleGaps=null}},Qr=({event:t,appState:e,selectedElements:o})=>t?e.objectsSnapModeEnabled&&!t[T.CTRL_OR_CMD]||!e.objectsSnapModeEnabled&&t[T.CTRL_OR_CMD]&&e.gridSize===null:o.length===1&&o[0].type==="arrow"?!1:e.objectsSnapModeEnabled,Sk=(t,e,o=.01)=>Math.abs(t-e)<=o,Ss=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,s,c,m,d,f]=Co(a,e);n&&(l+=n.x,c+=n.x,d+=n.x,s+=n.y,m+=n.y,f+=n.y);let p=(c-l)/2,b=(m-s)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=Ar([l,s+b],[d,f],a.angle),y=Ar([l+p,s],[d,f],a.angle),w=Ar([c,s+b],[d,f],a.angle),k=Ar([l+p,m],[d,f],a.angle);i=o?[x,y,w,k]:[x,y,w,k,[d,f]]}else{let x=Ar([l,s],[d,f],a.angle),y=Ar([c,s],[d,f],a.angle),w=Ar([l,m],[d,f],a.angle),k=Ar([c,m],[d,f],a.angle);i=o?[x,y,w,k]:[x,y,w,k,[d,f]]}}else if(t.length>1){let[a,l,s,c]=gc(t,n??{x:0,y:0}),m=s-a,d=c-l,f=[a,l],p=[s,l],b=[a,c],x=[s,c],y=[a+m/2,l+d/2];i=o?[f,p,b,x]:[f,p,b,x,y]}return i.map(a=>[et(a[0]),et(a[1])])},a5=(t,e,o,r)=>{let n=e.filter(i=>Te(i)).map(i=>i.id);return xp(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},l5=(t,e,o,r)=>{let n=a5(t,e,o,r),i=Kn(n,r).filter(d=>!(d.length===1&&bt(d[0]))).map(d=>Ke(d).map(f=>et(f))),a=i.sort((d,f)=>d[0]-f[0]),l=[],s=0;e:for(let d=0;d<a.length;d++){let f=a[d];for(let p=d+1;p<a.length;p++){if(++s>r5)break e;let b=a[p],[,x,y,w]=f,[k,C,,M]=b;y<k&&hl([x,w],[C,M])&&l.push({startBounds:f,endBounds:b,startSide:[[y,x],[y,w]],endSide:[[k,C],[k,M]],length:k-y,overlap:gl([x,w],[C,M])})}}let c=i.sort((d,f)=>d[1]-f[1]),m=[];s=0;e:for(let d=0;d<c.length;d++){let f=c[d];for(let p=d+1;p<c.length;p++){if(++s>r5)break e;let b=c[p],[x,,y,w]=f,[k,C,M]=b;w<C&&hl([x,y],[k,M])&&m.push({startBounds:f,endBounds:b,startSide:[[x,w],[y,w]],endSide:[[k,C],[M,C]],length:C-w,overlap:gl([x,y],[k,M])})}}return{horizontalGaps:l,verticalGaps:m}},n5=(t,e,o,r,n,i,a)=>{if(!Qr({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=zo.getVisibleGaps();if(l){let{horizontalGaps:s,verticalGaps:c}=l,[m,d,f,p]=gc(t,e).map(y=>et(y)),b=(m+f)/2,x=(d+p)/2;for(let y of s){if(!hl([d,p],y.overlap))continue;let w=y.startSide[0][0]+y.length/2,k=et(w-b);if(y.length>f-m&&Math.abs(k)<=a.x){Math.abs(k)<a.x&&(n.length=0),a.x=Math.abs(k);let D={type:"gap",direction:"center_horizontal",gap:y,offset:k};n.push(D);continue}let[,,M]=y.endBounds,_=m-M,I=et(y.length-_);if(Math.abs(I)<=a.x){Math.abs(I)<a.x&&(n.length=0),a.x=Math.abs(I);let D={type:"gap",direction:"side_right",gap:y,offset:I};n.push(D);continue}let[A,,,]=y.startBounds,P=A-f,F=et(P-y.length);if(Math.abs(F)<=a.x){Math.abs(F)<a.x&&(n.length=0),a.x=Math.abs(F);let D={type:"gap",direction:"side_left",gap:y,offset:F};n.push(D);continue}}for(let y of c){if(!hl([m,f],y.overlap))continue;let w=y.startSide[0][1]+y.length/2,k=et(w-x);if(y.length>p-d&&Math.abs(k)<=a.y){Math.abs(k)<a.y&&(i.length=0),a.y=Math.abs(k);let D={type:"gap",direction:"center_vertical",gap:y,offset:k};i.push(D);continue}let[,M,,]=y.startBounds,_=M-p,I=et(_-y.length);if(Math.abs(I)<=a.y){Math.abs(I)<a.y&&(i.length=0),a.y=Math.abs(I);let D={type:"gap",direction:"side_top",gap:y,offset:I};i.push(D);continue}let[,,,A]=y.endBounds,P=et(d-A),F=y.length-P;if(Math.abs(F)<=a.y){Math.abs(F)<a.y&&(i.length=0),a.y=Math.abs(F);let D={type:"gap",direction:"side_bottom",gap:y,offset:F};i.push(D);continue}}}},s5=(t,e,o,r)=>{let n=a5(t,e,o,r);return Kn(n,r).filter(i=>!(i.length===1&&bt(i[0]))).flatMap(i=>Ss(i,r))},Xa=(t,e,o,r,n,i,a)=>{if(!Qr({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=zo.getReferenceSnapPoints();if(l)for(let s of e)for(let c of l){let m=c[0]-s[0],d=c[1]-s[1];Math.abs(m)<=a.x&&(Math.abs(m)<a.x&&(n.length=0),n.push({type:"point",points:[s,c],offset:m}),a.x=Math.abs(m)),Math.abs(d)<=a.y&&(Math.abs(d)<a.y&&(i.length=0),i.push({type:"point",points:[s,c],offset:d}),a.y=Math.abs(d))}},c5=(t,e,o,r,n)=>{let i=xe(t,o);if(!Qr({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=et(e.x),e.y=et(e.y);let a=[],l=[],s=nu(o.zoom.value),c={x:s,y:s},m=Ss(i,n,{dragOffset:e});Xa(i,m,o,r,a,l,c),n5(i,e,o,r,a,l,c);let d={x:a[0]?.offset??0,y:l[0]?.offset??0};c.x=0,c.y=0,a.length=0,l.length=0;let f={x:et(e.x+d.x),y:et(e.y+d.y)};Xa(i,Ss(i,n,{dragOffset:f}),o,r,a,l,c),n5(i,f,o,r,a,l,c);let p=ug(a,l),b=Ik(i,f,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:d,snapLines:[...p,...b]}},et=t=>Math.round(t*10**6)/10**6,i5=t=>{let e=new Map;for(let o of t){let r=o.join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},ug=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=et(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[et(a[0]),et(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=et(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[et(a[0]),et(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:i5(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:i5(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},kk=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[et(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},Ik=(t,e,o)=>{let[r,n,i,a]=gc(t,e),l=[];for(let s of o){let[c,m,d,f]=s.gap.startBounds,[p,b,x,y]=s.gap.endBounds,w=gl([n,a],s.gap.overlap),k=gl([r,i],s.gap.overlap);switch(s.direction){case"center_horizontal":{if(w){let C=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[s.gap.startSide[0][0],C],[r,C]]},{type:"gap",direction:"horizontal",points:[[i,C],[s.gap.endSide[0][0],C]]})}break}case"center_vertical":{if(k){let C=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[C,s.gap.startSide[0][1]],[C,n]]},{type:"gap",direction:"vertical",points:[[C,a],[C,s.gap.endSide[0][1]]]})}break}case"side_right":{if(w){let C=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[d,C],[p,C]]},{type:"gap",direction:"horizontal",points:[[x,C],[r,C]]})}break}case"side_left":{if(w){let C=(w[0]+w[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,C],[c,C]]},{type:"gap",direction:"horizontal",points:[[d,C],[p,C]]})}break}case"side_top":{if(k){let C=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[C,a],[C,m]]},{type:"gap",direction:"vertical",points:[[C,f],[C,b]]})}break}case"side_bottom":{if(k){let C=(k[0]+k[1])/2;l.push({type:"gap",direction:"vertical",points:[[C,f],[C,b]]},{type:"gap",direction:"vertical",points:[[C,y],[C,n]]})}break}}}return kk(l.map(s=>({...s,points:s.points.map(c=>[et(c[0]),et(c[1])])})))},d5=(t,e,o,r,n,i)=>{if(!Qr({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!Sk(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,s,c]=Ke(e);i&&(i.includes("e")?s+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(c+=n.y));let m=[];if(i)switch(i){case"e":{m.push([s,l],[s,c]);break}case"w":{m.push([a,l],[a,c]);break}case"n":{m.push([a,l],[s,l]);break}case"s":{m.push([a,c],[s,c]);break}case"ne":{m.push([s,l]);break}case"nw":{m.push([a,l]);break}case"se":{m.push([s,c]);break}case"sw":{m.push([a,c]);break}}let d=nu(o.zoom.value),f={x:d,y:d},p=[],b=[];Xa(e,m,o,r,p,b,f);let x={x:p[0]?.offset??0,y:b[0]?.offset??0};f.x=0,f.y=0,p.length=0,b.length=0;let[y,w,k,C]=Ke(t).map(I=>et(I));Xa(t,[[y,w],[y,C],[k,w],[k,C]],o,r,p,b,f);let _=ug(p,b);return{snapOffset:x,snapLines:_}},m5=(t,e,o,r,n,i)=>{if(!Qr({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=nu(e.zoom.value),s={x:l,y:l},c=[],m=[];Xa([t],a,e,o,c,m,s);let d={x:c[0]?.offset??0,y:m[0]?.offset??0};s.x=0,s.y=0,c.length=0,m.length=0;let f=Ss([t],i,{boundingBoxCorners:!0,omitCenter:!0});Xa([t],f,e,o,c,m,s);let p=ug(c,m);return{snapOffset:d,snapLines:p}},u5=(t,e,o,r,n)=>{if(!Qr({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=xp(t,[],e,n),a=nu(e.zoom.value),l={x:a,y:a},s=[],c=[];for(let m of i){let d=Ss([m],n);for(let f of d){let p=f[0]-o.x;Math.abs(p)<=Math.abs(l.x)&&(Math.abs(p)<Math.abs(l.x)&&(c.length=0),c.push({type:"pointer",points:[f,[f[0],o.y]],direction:"vertical"}),l.x=p);let b=f[1]-o.y;Math.abs(b)<=Math.abs(l.y)&&(Math.abs(b)<Math.abs(l.y)&&(s.length=0),s.push({type:"pointer",points:[f,[o.x,f[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:c.length>0?c[0].points[0][0]-o.x:0,y:s.length>0?s[0].points[0][1]-o.y:0},snapLines:[...c,...s]}},p5=t=>t===ut.rectangle||t===ut.ellipse||t===ut.diamond||t===ut.frame||t===ut.magicframe||t===ut.image;h();var Zt=v(S(),1),Mk=()=>(0,Zt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Zt.jsx)("p",{children:(0,Zt.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,Zt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Zt.jsx)("p",{children:(0,Zt.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,Zt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Zt.jsx)("p",{children:(0,Zt.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,Zt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,Zt.jsx)("p",{children:(0,Zt.jsx)(oo,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,Zt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,Zt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),f5=Mk;h();var iu={width:100,height:0},On=100,_k=(t,e,o)=>{let r=mn({x:0,y:0,textAlign:al.CENTER,verticalAlign:vo.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),$t(r,t,o),[t,r]},h5=(t,e,o,r,n)=>{let i,a;if(Object.assign(t,{startBinding:t?.startBinding||null,endBinding:t.endBinding||null}),e){let m=e?.width??On,d=e?.height??On,f;e.id&&(f=r.getElement(e.id),f||console.error(`No element for start binding with id ${e.id} found`));let p=e.x||t.x-m,b=e.y||t.y-d/2,x=f?f.type:e.type;if(x){if(x==="text"){let y="";f&&f.type==="text"?y=f.text:e.type==="text"&&(y=e.text),y||console.error(`No text found for start binding text element for ${t.id}`),i=mn({x:p,y:b,type:"text",...f,...e,text:y}),Object.assign(i,{x:e.x||t.x-i.width,y:e.y||t.y-i.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{i=dn({x:p,y:b,width:m,height:d,...f,...e,type:x});break}default:rc(t,`Unhandled element start type "${e.type}"`,!0)}Vu(t,i,"start",n)}}if(o){let m=o?.height??On,d=o?.width??On,f;o.id&&(f=r.getElement(o.id),f||console.error(`No element for end binding with id ${o.id} found`));let p=o.x||t.x+t.width,b=o.y||t.y-m/2,x=f?f.type:o.type;if(x){if(x==="text"){let y="";f&&f.type==="text"?y=f.text:o.type==="text"&&(y=o.text),y||console.error(`No text found for end binding text element for ${t.id}`),a=mn({x:p,y:b,type:"text",...f,...o,text:y}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=dn({x:p,y:b,width:d,height:m,...f,...o,type:x});break}default:rc(t,`Unhandled element end type "${x}"`,!0)}Vu(t,a,"end",n)}}let l=t.points.length-1,s=.5,c=sr(t.points);return t.points[l][0]>t.points[l-1][0]&&(c[0][0]=s,c[l][0]-=s),t.points[l][0]<t.points[l-1][0]&&(c[0][0]=-s,c[l][0]+=s),t.points[l][1]>t.points[l-1][1]&&(c[0][1]=s,c[l][1]-=s),t.points[l][1]<t.points[l-1][1]&&(c[0][1]=-s,c[l][1]+=s),Object.assign(t,{points:c}),{linearElement:t,startBoundElement:i,endBoundElement:a}},pg=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>Array.from(this.excalidrawElements.values());getElementsMap=()=>ic(this.excalidrawElements);getElement=e=>this.excalidrawElements.get(e)},Es=(t,e)=>{if(!t)return[];let o=sr(t),r=new pg,n=new Map,i=new Map;for(let l of o){let s,c=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:ln()}),l.type){case"rectangle":case"ellipse":case"diamond":{let d=l?.label?.text&&l.width===void 0?0:l?.width||On,f=l?.label?.text&&l.height===void 0?0:l?.height||On;s=dn({...l,width:d,height:f});break}case"line":{let d=l.width||iu.width,f=l.height||iu.height;s=Sl({width:d,height:f,points:[[0,0],[d,f]],...l});break}case"arrow":{let d=l.width||iu.width,f=l.height||iu.height;s=Sl({width:d,height:f,endArrowhead:"arrow",points:[[0,0],[d,f]],...l}),Object.assign(s,U1(s.points));break}case"text":{let d=l?.fontFamily||_i,f=l?.fontSize||kr,p=l?.lineHeight||Pr(d),b=l.text??"",x=Cl(b),y=fc(x,Ko({fontFamily:d,fontSize:f}),p);s=mn({width:y.width,height:y.height,fontFamily:d,fontSize:f,...l});break}case"image":{s=yc({width:l?.width||On,height:l?.height||On,...l});break}case"frame":{s=vc({x:0,y:0,...l});break}case"magicframe":{s=Tl({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{s=l;break}default:s=l,rc(l,`Unhandled element type "${l.type}"`,!0)}r.getElement(s.id)?console.error(`Duplicate id found for ${s.id}`):(r.add(s),n.set(s.id,l),c&&i.set(c,s.id))}let a=r.getElementsMap();for(let[l,s]of n){let c=r.getElement(l);switch(s.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(s.label?.text){let[m,d]=_k(c,s?.label,a);if(r.add(m),r.add(d),m.type==="arrow"){let f=s.type==="arrow"?s?.start:void 0,p=s.type==="arrow"?s?.end:void 0;if(f&&f.id){let w=i.get(f.id);w&&Object.assign(f,{id:w})}if(p&&p.id){let w=i.get(p.id);w&&Object.assign(p,{id:w})}let{linearElement:b,startBoundElement:x,endBoundElement:y}=h5(m,f,p,r,a);m=b,r.add(b),r.add(x),r.add(y)}}else switch(s.type){case"arrow":{let{start:m,end:d}=s;if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}if(d&&d.id){let x=i.get(d.id);Object.assign(d,{id:x})}let{linearElement:f,startBoundElement:p,endBoundElement:b}=h5(c,m,d,r,a);r.add(f),r.add(p),r.add(b);break}}break}}}for(let[l,s]of n){if(s.type!=="frame"&&s.type!=="magicframe")continue;let c=r.getElement(l);if(!c)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let m=[];s.children.forEach(k=>{let C=i.get(k);if(!C)throw new Error(`Element with ${k} wasn't mapped correctly`);let M=r.getElement(C);if(!M)throw new Error(`Frame element with id ${C} doesn't exist`);Object.assign(M,{frameId:c.id}),M?.boundElements?.forEach(_=>{let I=r.getElement(_.id);if(!I)throw new Error(`Bound element with id ${_.id} doesn't exist`);Object.assign(I,{frameId:c.id}),m.push(I)}),m.push(M)});let[d,f,p,b]=Ke(m),x=10;d=d-x,f=f-x,p=p+x,b=b+x;let y=Math.max(c?.width,p-d),w=Math.max(c?.height,b-f);Object.assign(c,{x:d,y:f,width:y,height:w})}return r.getElements()};h();h();var qa=v(H(),1);h();var fg=v(pr(),1),g5=v(H(),1);var qe=t=>e=>{(0,fg.unstable_batchedUpdates)(t,e)},au=t=>Js(e=>{(0,fg.unstable_batchedUpdates)(t,e)}),lu=(()=>{let t;try{let o=g5.version.split(".");t=Number(o[0])>17}catch{t=!1}let e=!1;return()=>window.EXCALIDRAW_THROTTLE_RENDER===!0?t?!0:(e||(e=!0,console.warn("Excalidraw: render throttling is disabled on React versions < 18.")),!1):!1})();h();h();var Ak="#ff6b6b",Lk="#ff0000",b5=1,x5=2,v5=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme==="light"||e.zenModeEnabled?Ak:Lk,r=(e.zenModeEnabled?b5*1.5:b5)/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY);for(let n of e.snapLines)n.type==="pointer"?(t.lineWidth=r,t.strokeStyle=o,Dk(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,Rk(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,Pk(n,t,e));t.restore()},Pk=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Ho(r,n,e)}for(let r of t.points)y5(r,o,e)},Dk=(t,e,o)=>{y5(t.points[0],o,e),o.zenModeEnabled||Ho(t.points[0],t.points[1],e)},y5=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?x5*1.5:x5)/o.zoom.value;r.beginPath(),r.moveTo(t-n,e-n),r.lineTo(t+n,e+n),r.moveTo(t+n,e-n),r.lineTo(t-n,e+n),r.stroke(),r.restore()},Ho=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},Rk=(t,e,o,r,n)=>{let i=8/r.zoom.value,a=i/2,l=i/4;if(o==="horizontal"){let s=[(t[0]+e[0])/2,t[1]];r.zenModeEnabled||Ho([t[0],t[1]-i],[t[0],t[1]+i],n),Ho([s[0]-l,s[1]-a],[s[0]-l,s[1]+a],n),Ho([s[0]+l,s[1]-a],[s[0]+l,s[1]+a],n),r.zenModeEnabled||(Ho([e[0],e[1]-i],[e[0],e[1]+i],n),Ho(t,e,n))}else{let s=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Ho([t[0]-i,t[1]],[t[0]+i,t[1]],n),Ho([s[0]-a,s[1]-l],[s[0]+a,s[1]-l],n),Ho([s[0]-a,s[1]+l],[s[0]+a,s[1]+l],n),r.zenModeEnabled||(Ho([e[0]-i,e[1]],[e[0]+i,e[1]],n),Ho(t,e,n))}};var Nk=(t,e,o)=>{let{elementId:r,hoverPointIndex:n}=e.selectedLinearElement;if(e.editingLinearElement?.selectedPointsIndices?.includes(n))return;let i=he.getElement(r,o);if(!i)return;let a=he.getPointAtIndexGlobalCoordinates(i,n,o);t.save(),t.translate(e.scrollX,e.scrollY),gg(a,t,e),t.restore()},gg=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",Ml(e,t[0],t[1],he.POINT_HANDLE_SIZE/o.zoom.value,!1)},ks=(t,e,o,r,n,i,a,l,s=!1,c=0)=>{t.save(),t.translate(i,a),t.rotate(l),s&&t.fillRect(e-i,o-a,r,n),c&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,c),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},Ok=(t,e,o,r,n,i)=>{t.save(),t.translate(r,n),t.rotate(i),t.beginPath(),t.moveTo(0,o/2),t.lineTo(e/2,0),t.lineTo(0,-o/2),t.lineTo(-e/2,0),t.closePath(),t.stroke(),t.restore()},su=(t,e,o,r,n,i=!1)=>{t.strokeStyle="#5e5ad8",t.setLineDash([]),t.fillStyle="rgba(255, 255, 255, 0.9)",n?t.fillStyle="rgba(134, 131, 226, 0.9)":i&&(t.fillStyle="rgba(177, 151, 252, 0.7)"),Ml(t,o[0],o[1],r/e.zoom.value,!i)},Fk=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},Bk=(t,e,o)=>{let[r,n,i,a]=Co(e,o),l=i-r,s=a-n,c=Gu(e,l,s),m=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=c-m;let d=m/2+c/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":ks(t,r-d,n-d,l+d*2,s+d*2,r+l/2,n+s/2,e.angle);break;case"diamond":let f=Math.hypot(l,s),p=d*f/s,b=d*f/l;Ok(t,l+p*2,s+b*2,r+l/2,n+s/2,e.angle);break;case"ellipse":Fk(t,l+d*2,s+d*2,r+l/2,n+s/2,e.angle);break}},zk=(t,e,o)=>{let[r,n,i]=e,a=Gu(i,i.width,i.height);t.strokeStyle="rgba(0,0,0,0)",t.fillStyle="rgba(0,0,0,.05)",(n==="both"?[0,-1]:n==="start"?[0]:[-1]).forEach(s=>{let[c,m]=he.getPointAtIndexGlobalCoordinates(r,s,o);Ml(t,c,m,a)})},w5=(t,e,o,r=Mu*2)=>{let{angle:n,elementX1:i,elementY1:a,elementX2:l,elementY2:s,selectionColors:c,cx:m,cy:d,dashed:f,activeEmbeddable:p}=o,b=l-i,x=s-a,y=r/e.zoom.value,w=8/e.zoom.value,k=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(p?4:1)/e.zoom.value;let C=c.length;for(let M=0;M<C;++M)t.strokeStyle=c[M],f&&t.setLineDash([w,k+(w+k)*(C-1)]),t.lineDashOffset=(w+k)*M,ks(t,i-y,a-y,b+y*2,x+y*2,m,d,n);t.restore()},Hk=(t,e,o,r)=>{let n=Array.isArray(o)?zk:Bk;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},$k=(t,e,o,r)=>{let[n,i,a,l]=Co(o,r),s=a-n,c=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=Go.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),ks(t,n,i,s,c,n+s/2,i+c/2,o.angle,!1,Go.radius/e.zoom.value),t.restore()},Uk=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[s,c,m,d]=Ke(l);return{angle:0,elementX1:s,elementX2:m,elementY1:c,elementY2:d,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:s+(m-s)/2,cy:c+(d-c)/2,activeEmbeddable:!1}},a=l=>{let s=pt(o,l);return i(s)};Object.entries(gb(n,e)).filter(([l,s])=>s).map(([l,s])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>w5(t,e,l))},hg=(t,e,o,r)=>{if(!e.selectedLinearElement)return;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=1/e.zoom.value;let n=he.getPointsGlobalCoordinates(o,r),{POINT_HANDLE_SIZE:i}=he,a=e.editingLinearElement?i:i/2;n.forEach((s,c)=>{let m=!!e.editingLinearElement?.selectedPointsIndices?.includes(c);su(t,e,s,a,m)}),he.getEditorMidPoints(o,r,e).filter(s=>s!==null).forEach(s=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&he.arePointsEqual(s,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(su(t,e,s,a,!1),gg(s,t,e)):(gg(s,t,e),su(t,e,s,a,!1)):(e.editingLinearElement||n.length===2)&&su(t,e,s,i/2,!1,!0)}),t.restore()},E5=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,s,c,m]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?Ml(t,l+c/2,s+m/2,c/2):t.roundRect?(t.beginPath(),t.roundRect(l,s,c,m,2/o.zoom.value),t.fill(),t.stroke()):ks(t,l,s,c,m,l+c/2,s+m/2,n,!0),t.restore()}})},C5=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,scale:n,appState:i,renderConfig:a})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[l,s]=Vb(t,n),c=Kb({canvas:t,scale:n,normalizedWidth:l,normalizedHeight:s});c.save(),c.scale(i.zoom.value,i.zoom.value);let m;if(o.forEach(p=>{i.editingLinearElement?.elementId===p.id&&p&&(m=p)}),m&&hg(c,i,m,e),i.selectionElement)try{d0(i.selectionElement,c,i)}catch(p){console.error(p)}i.isBindingEnabled&&i.suggestedBindings.filter(p=>p!=null).forEach(p=>{Hk(c,i,p,e)}),i.frameToHighlight&&$k(c,i,i.frameToHighlight,e),i.elementsToHighlight&&Uk(c,i,i.elementsToHighlight);let d=r.some(p=>Te(p));if(r.length===1&&i.editingLinearElement?.elementId===r[0].id&&hg(c,i,r[0],e),i.selectedLinearElement&&i.selectedLinearElement.hoverPointIndex>=0&&Nk(c,i,e),!i.multiElement&&!i.editingLinearElement){let p=ac(r,i);r.length===1&&Re(r[0])&&i.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&hg(c,i,r[0],e);let x=a.selectionColor||It.black;if(p){let y=Ie(r),w=[];for(let C of e.values()){let M=[];y.has(C.id)&&!bc(i,C)&&M.push(x);let _=a.remoteSelectedElementIds.get(C.id);if(_&&M.push(..._.map(I=>ui(I,i.collaborators.get(I)))),M.length){let[I,A,P,F,D,W]=Co(C,e,!0);w.push({angle:C.angle,elementX1:I,elementY1:A,elementX2:P,elementY2:F,selectionColors:M,dashed:!!_,cx:D,cy:W,activeEmbeddable:i.activeEmbeddable?.element===C&&i.activeEmbeddable.state==="active"})}}let k=C=>{let M=pt(e,C),[_,I,A,P]=Ke(M);w.push({angle:0,elementX1:_,elementX2:A,elementY1:I,elementY2:P,selectionColors:[It.black],dashed:!0,cx:_+(A-_)/2,cy:I+(P-I)/2,activeEmbeddable:!1})};for(let C of Rr(i))k(C);i.editingGroupId&&k(i.editingGroupId),w.forEach(C=>w5(c,i,C))}if(c.save(),c.translate(i.scrollX,i.scrollY),r.length===1){c.fillStyle=It.white;let y=Z1(r[0],i.zoom,e,"mouse");!i.viewModeEnabled&&p&&E5(c,a,i,y,r[0].angle)}else if(r.length>1&&!i.isRotating){let y=Mu*2/i.zoom.value;c.fillStyle=It.white;let[w,k,C,M]=Ke(r),_=c.getLineDash();c.setLineDash([2/i.zoom.value]);let I=c.lineWidth;c.lineWidth=1/i.zoom.value,c.strokeStyle=x,ks(c,w-y,k-y,C-w+y*2,M-k+y*2,(w+C)/2,(k+M)/2,0),c.lineWidth=I,c.setLineDash(_);let A=Y1([w,k,C,M,(w+C)/2,(k+M)/2],0,i.zoom,"mouse",d?K1:V1);r.some(P=>!P.locked)&&E5(c,a,i,A,0)}c.restore()}v5(c,i),c.restore(),Yy({context:c,renderConfig:a,appState:i,normalizedWidth:l,normalizedHeight:s});let f;return a.renderScrollbars&&(f=Yw(o,l,s,i),c.save(),c.fillStyle=Kw,c.strokeStyle="rgba(255,255,255,0.8)",[f.horizontal,f.vertical].forEach(p=>{p&&Yd(c,p.x,p.y,p.width,p.height,Cr/2)}),c.restore()),{scrollBars:f,atLeastOneVisibleElement:o.length>0,elementsMap:e}},bg=Js(t=>{let e=C5(t);t.callback?.(e)},{trailing:!0}),T5=(t,e)=>{if(e){bg(t);return}let o=C5(t);return t.callback(o),o};var k5=v(S(),1),Wk=t=>{let e=(0,qa.useRef)(!1);return(0,qa.useEffect)(()=>{if(!e.current){e.current=!0;return}let o=new Map,r=new Map,n=new Map,i=new Map,a=new Map;t.appState.collaborators.forEach((s,c)=>{if(s.selectedElementIds)for(let m of Object.keys(s.selectedElementIds))n.has(m)||n.set(m,[]),n.get(m).push(c);!s.pointer||s.pointer.renderCursor===!1||(s.username&&i.set(c,s.username),s.userState&&a.set(c,s.userState),r.set(c,qt({sceneX:s.pointer.x,sceneY:s.pointer.y},t.appState)),o.set(c,s.button))});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";T5({canvas:t.canvas,elementsMap:t.elementsMap,visibleElements:t.visibleElements,selectedElements:t.selectedElements,scale:window.devicePixelRatio,appState:t.appState,renderConfig:{remotePointerViewportCoords:r,remotePointerButton:o,remoteSelectedElementIds:n,remotePointerUsernames:i,remotePointerUserStates:a,selectionColor:l,renderScrollbars:!1},callback:t.renderInteractiveSceneCallback},lu())}),(0,k5.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?De.GRAB:De.AUTO},width:t.appState.width*t.scale,height:t.appState.height*t.scale,ref:t.handleCanvasRef,onContextMenu:t.onContextMenu,onPointerMove:t.onPointerMove,onPointerUp:t.onPointerUp,onPointerCancel:t.onPointerCancel,onTouchMove:t.onTouchMove,onPointerDown:t.onPointerDown,onDoubleClick:t.appState.viewModeEnabled?void 0:t.onDoubleClick,children:g("labels.drawingCanvas")})},S5=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,editingGroupId:t.editingGroupId,editingLinearElement:t.editingLinearElement,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,selectionElement:t.selectionElement,selectedGroupIds:t.selectedGroupIds,selectedLinearElement:t.selectedLinearElement,multiElement:t.multiElement,isBindingEnabled:t.isBindingEnabled,suggestedBindings:t.suggestedBindings,isRotating:t.isRotating,elementsToHighlight:t.elementsToHighlight,collaborators:t.collaborators,activeEmbeddable:t.activeEmbeddable,snapLines:t.snapLines,zenModeEnabled:t.zenModeEnabled}),Gk=(t,e)=>t.selectionNonce!==e.selectionNonce||t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements||t.selectedElements!==e.selectedElements?!1:Dt(S5(t.appState),S5(e.appState)),xg=qa.default.memo(Wk,Gk);h();var Ci=v(H(),1);var M5=v(S(),1),Vk=t=>{let e=(0,Ci.useRef)(null),o=(0,Ci.useRef)(!1);return(0,Ci.useEffect)(()=>{let r=e.current;if(!r)return;let n=t.canvas;o.current||(o.current=!0,r.replaceChildren(n),n.classList.add("excalidraw__canvas","static"));let i=`${t.appState.width}px`,a=`${t.appState.height}px`;n.style.width!==i&&(n.style.width=i),n.style.height!==a&&(n.style.height=a);let l=t.appState.width*t.scale,s=t.appState.height*t.scale;n.width!==l&&(n.width=l),n.height!==s&&(n.height=s),Zb({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},lu())}),(0,M5.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},I5=t=>({zoom:t.zoom,scrollX:t.scrollX,scrollY:t.scrollY,width:t.width,height:t.height,viewModeEnabled:t.viewModeEnabled,offsetLeft:t.offsetLeft,offsetTop:t.offsetTop,theme:t.theme,pendingImageElementId:t.pendingImageElementId,shouldCacheIgnoreZoom:t.shouldCacheIgnoreZoom,viewBackgroundColor:t.viewBackgroundColor,exportScale:t.exportScale,selectedElementsAreBeingDragged:t.selectedElementsAreBeingDragged,gridSize:t.gridSize,frameRendering:t.frameRendering,selectedElementIds:t.selectedElementIds,frameToHighlight:t.frameToHighlight,editingGroupId:t.editingGroupId}),Kk=(t,e)=>t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:Dt(I5(t.appState),I5(e.appState))&&Dt(t.renderConfig,e.renderConfig),vg=Ci.default.memo(Vk,Kk);h();var Is=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s,height:c,width:m})=>{let d=[];for(let f of r.values())Al(f,m,c,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s},r)&&d.push(f);return d},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=ic(new Map);for(let l of r)an(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return D1(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:c,editingElement:m,pendingImageElementId:d,versionNonce:f})=>{let p=this.scene.getNonDeletedElements(),b=o({elements:p,editingElement:m,pendingImageElementId:d}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:c});return{elementsMap:b,visibleElements:x}})})();destroy(){bg.cancel(),Yb.cancel(),this.getRenderableElements.clear()}};h();var cu=v(H(),1);var yg=v(S(),1),_5=({trails:t})=>{let e=(0,cu.useRef)(null);return(0,cu.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,yg.jsx)("div",{className:"SVGLayer",children:(0,yg.jsx)("svg",{ref:e})})};h();var A5=v(S(),1),Yk=5,Zk=(t,e,o)=>{let[r,n]=Co(t,o),{x:i,y:a}=qt({sceneX:r+t.width,sceneY:n},e),l=i-e.offsetLeft+10,s=a-e.offsetTop;return{x:l,y:s}},Eg=({children:t,element:e,elementsMap:o})=>{let r=Da();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=Zk(e,r,o);return(0,A5.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:Yk},children:t})};h();var jk=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
|
|
70
|
+
C -->|Three| F[Car]`,vM=al(Om,300),Dz=({mermaidToExcalidrawLib:e})=>{let[t,r]=(0,Fn.useState)(()=>So.get(Vo.MERMAID_TO_EXCALIDRAW)||Rz),o=(0,Fn.useDeferredValue)(t.trim()),[i,a]=(0,Fn.useState)(null),s=(0,Fn.useRef)(null),c=(0,Fn.useRef)({elements:[],files:null}),d=Tr();(0,Fn.useEffect)(()=>{Eh({canvasRef:s,data:c,mermaidToExcalidrawLib:e,setError:a,mermaidDefinition:o}).catch(f=>{r2()&&console.error("Failed to parse mermaid definition",f)}),vM(o)},[o,e]),(0,Fn.useEffect)(()=>()=>{vM.flush()},[]);let p=()=>{wh({app:d,data:c,text:t,shouldSaveMermaidDataToStorage:!0})};return(0,Yr.jsxs)(Yr.Fragment,{children:[(0,Yr.jsx)("div",{className:"ttd-dialog-desc",children:(0,Yr.jsx)(io,{i18nKey:"mermaid.description",flowchartLink:f=>(0,Yr.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:f}),sequenceLink:f=>(0,Yr.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:f}),classLink:f=>(0,Yr.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:f})})}),(0,Yr.jsxs)(Sh,{children:[(0,Yr.jsx)(zc,{label:E("mermaid.syntax"),children:(0,Yr.jsx)(Th,{input:t,placeholder:"Write Mermaid diagram defintion here...",onChange:f=>r(f.target.value),onKeyboardSubmit:()=>{p()}})}),(0,Yr.jsx)(zc,{label:E("mermaid.preview"),panelAction:{action:()=>{p()},label:E("mermaid.button"),icon:Ms},renderSubmitShortcut:()=>(0,Yr.jsx)(Ih,{}),children:(0,Yr.jsx)(Ch,{canvasRef:s,loaded:e.loaded,error:i})})]})]})},yM=Dz;var Bn=w(j(),1);v();var EM=w(P(),1),j0=({children:e,...t})=>(0,EM.jsx)(ph,{className:"ttd-dialog-triggers",...t,children:e});j0.displayName="TTDDialogTabTriggers";v();var J0=w(P(),1),_h=({children:e,tab:t,onSelect:r,...o})=>(0,J0.jsx)(fh,{value:t,asChild:!0,onSelect:r,children:(0,J0.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...o,children:e})});_h.displayName="TTDDialogTabTrigger";var Rt=w(P(),1),Q0=3,$c=1e3,Nz=wt(null),Oz=wt(null),eE=e=>{let t=it();return t.openDialog?.name!=="ttd"?null:(0,Rt.jsx)(Fz,{...e,tab:t.openDialog.tab})},Fz=Gi("TTDDialogBase",({tab:e,...t})=>{let r=Tr(),o=ot(),i=(0,Bn.useRef)(null),[a,s]=Xe(Oz),[c,d]=(0,Bn.useState)(a?.prompt??""),p=c.trim(),f=L=>{d(L.target.value),s(F=>({generatedResponse:F?.generatedResponse??null,prompt:L.target.value}))},[m,g]=(0,Bn.useState)(!1),[h,b]=Xe(Nz),y=async()=>{if(p.length>$c||p.length<Q0||m||h?.rateLimitRemaining===0||"__fallback"in t){p.length<Q0&&z(new Error(`Prompt is too short (min ${Q0} characters)`)),p.length>$c&&z(new Error(`Prompt is too long (max ${$c} characters)`));return}try{g(!0),ze("ai","generate","ttd");let{generatedResponse:L,error:F,rateLimit:D,rateLimitRemaining:V}=await t.onTextSubmit(p);if(typeof L=="string"&&s(G=>({generatedResponse:L,prompt:G?.prompt??null})),kx(D)&&kx(V)&&b({rateLimit:D,rateLimitRemaining:V}),F){z(F);return}if(!L){z(new Error("Generation failed"));return}try{await Eh({canvasRef:i,data:A,mermaidToExcalidrawLib:k,setError:z,mermaidDefinition:L}),ze("ai","mermaid parse success","ttd")}catch(G){console.info(`%cTTD mermaid render errror: ${G.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
71
|
+
TTD mermaid definition render errror: ${G.message}`,"color: yellow"),ze("ai","mermaid parse failed","ttd"),z(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(L){let F=L.message;(!F||F==="Failed to fetch")&&(F="Request failed"),z(new Error(F))}finally{g(!1)}},T=(0,Bn.useRef)(y);T.current=y;let[k,I]=(0,Bn.useState)({loaded:!1,api:import("./excalidraw-assets/dist-NLUQPPQQ.js")});(0,Bn.useEffect)(()=>{(async()=>{await k.api,I(F=>({...F,loaded:!0}))})()},[k.api]);let A=(0,Bn.useRef)({elements:[],files:null}),[O,z]=(0,Bn.useState)(null);return(0,Rt.jsx)(Ft,{className:"ttd-dialog",onCloseRequest:()=>{r.setOpenDialog(null)},size:1200,title:!1,...t,autofocus:!1,children:(0,Rt.jsxs)(yh,{dialog:"ttd",tab:e,children:["__fallback"in t&&t.__fallback?(0,Rt.jsx)("p",{className:"dialog-mermaid-title",children:E("mermaid.title")}):(0,Rt.jsxs)(j0,{children:[(0,Rt.jsx)(_h,{tab:"text-to-diagram",children:(0,Rt.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[E("labels.textToDiagram"),(0,Rt.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"1px 6px",marginLeft:"10px",fontSize:10,borderRadius:"12px",background:"var(--color-promo)",color:"var(--color-surface-lowest)"},children:"AI Beta"})]})}),(0,Rt.jsx)(_h,{tab:"mermaid",children:"Mermaid"})]}),(0,Rt.jsx)(Fc,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Rt.jsx)(yM,{mermaidToExcalidrawLib:k})}),!("__fallback"in t)&&(0,Rt.jsxs)(Fc,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Rt.jsx)("div",{className:"ttd-dialog-desc",children:"Currently we use Mermaid as a middle step, so you'll get best results if you describe a diagram, workflow, flow chart, and similar."}),(0,Rt.jsxs)(Sh,{children:[(0,Rt.jsx)(zc,{label:E("labels.prompt"),panelAction:{action:y,label:"Generate",icon:Ms},onTextSubmitInProgess:m,panelActionDisabled:p.length>$c||h?.rateLimitRemaining===0,renderTopRight:()=>h?(0,Rt.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:h.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[h.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Rt.jsx)(Ih,{}),renderBottomRight:()=>{if(typeof a?.generatedResponse=="string")return(0,Rt.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof a?.generatedResponse=="string"&&(Om(a.generatedResponse),o({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Rt.jsx)(sn,{icon:Ms})]});let L=p.length/$c;return L>.8?(0,Rt.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:L>1?"var(--color-danger)":void 0},children:["Length: ",p.length,"/",$c]}):null},children:(0,Rt.jsx)(Th,{onChange:f,input:c,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{T.current()}})}),(0,Rt.jsx)(zc,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),wh({app:r,data:A})},label:"Insert",icon:Ms},children:(0,Rt.jsx)(Ch,{canvasRef:i,error:O,loaded:k.loaded})})]})]})]})})});v();var ii=w(j(),1);var GM=w(wM(),1);v();v();var ni=w(j(),1);v();var SM=.01,To=(e,t)=>!(t==="height"&&he(e)||t==="width"&&he(e)||t==="angle"&&He(e)),Kt=(e,t)=>{let r=e+t/2;return r-r%t},Uc=(e,t,r)=>Object.keys(e).map(o=>({original:(r??t).get(o),latest:t.get(o)})).filter(o=>o.original!==void 0&&o.latest!==void 0),Bz=(e,t,r,o,i,a,s)=>({x:e+(r-i)/2+(i-r)/2*Math.cos(s)+(o-a)/2*Math.sin(s),y:t+(o-a)/2+(i-r)/2*Math.sin(s)+(a-o)/2*Math.cos(s)}),Gc=(e,t,r,o,i,a=!0)=>{let s=i.get(o.id);if(!s)return;let c={},d=Ve(s,i);if(d){let p=Hp(eo(d),d.lineHeight),f=zp(d.fontSize,d.lineHeight);e=Math.max(e,p),t=Math.max(t,f)}if(me(s,{...Bz(s.x,s.y,s.width,s.height,e,t,s.angle),width:e,height:t,...ff(o,e,t,!0)},a),$m(s,i,{newSize:{width:e,height:t}}),d&&(c={fontSize:d.fontSize},r)){let p={...s,width:e,height:t};c={fontSize:fI(d,i,$d(p,d))?.size??d.fontSize}}d&&c&&me(d,{fontSize:c.fontSize}),Fp(s,i,"e",r)},ql=(e,t,r,o,i,a=!0)=>{let s=o.get(r.id);if(!s)return;let[c,d]=[r.x+r.width/2,r.y+r.height/2],[p,f]=Tn(r.x,r.y,c,d,r.angle),m=e-p,g=t-f,[h,b]=Tn(e,t,c+m,d+g,-r.angle);me(s,{x:h,y:b},a),$m(s,o);let y=Ve(r,i);if(y){let T=o.get(y.id);T&&me(T,{x:y.x+m,y:y.y+g},a)}},Wc=(e,t)=>{let o=In(t).map(i=>Gt(e,i).reduce((a,s)=>(a[s.id]=!0,a),{}));return e.filter(i=>!ga(i)).forEach(i=>{o.push({[i.id]:!0})}),o},$m=(e,t,r)=>{Qe(e)?gl([e],t,!0,[]):hl(e,t,r)};var Kc=w(P(),1),zz=({label:e,icon:t,dragInputCallback:r,value:o,elements:i,editable:a=!0,shouldKeepAspectRatio:s,property:c,scene:d,appState:p})=>{let f=Tr(),m=(0,ni.useRef)(null),g=(0,ni.useRef)(null),[h,b]=(0,ni.useState)(o.toString()),y=(0,ni.useRef)(null);y.current||(y.current={originalAppState:fo(p),originalElements:i,lastUpdatedValue:h,updatePending:!1}),(0,ni.useEffect)(()=>{let I=o.toString();b(I),y.current.lastUpdatedValue=I},[o]);let T=(I,A,O)=>{if(!y.current.updatePending)return!1;y.current.updatePending=!1;let z=Number(I);if(isNaN(z)){b(o.toString());return}let L=Number(z.toFixed(2)),F=Number(o);(isNaN(F)||Math.abs(L-F)>=SM)&&(y.current.lastUpdatedValue=I,r({accumulatedChange:0,instantChange:0,originalElements:A,originalElementsMap:f.scene.getNonDeletedElementsMap(),shouldKeepAspectRatio:s,shouldChangeByStepSize:!1,nextValue:L,property:c,scene:d,originalAppState:O}),f.syncActionResult({storeAction:W.CAPTURE}))},k=(0,ni.useRef)(T);return k.current=T,(0,ni.useEffect)(()=>{let I=m.current;return()=>{let A=I?.value;A&&k.current(A,y.current.originalElements,y.current.originalAppState)}},[a]),a?(0,Kc.jsxs)("div",{className:q("drag-input-container",!a&&"disabled"),"data-testid":e,children:[(0,Kc.jsx)("div",{className:"drag-input-label",ref:g,onPointerDown:I=>{if(m.current&&a){let A=Number(m.current.value);isNaN(A)&&(A=0);let O=null,z=f.scene.getNonDeletedElements().reduce((G,Q)=>(G.set(Q.id,Bs(Q)),G),new Map),L=i.map(G=>z.get(G.id)),F=fo(p),D=null;document.body.classList.add("excalidraw-cursor-resize");let V=G=>{if(D||(D=0),O&&z!==null&&L!==null&&D!==null){let Q=G.clientX-O.x;D+=Q,r({accumulatedChange:D,instantChange:Q,originalElements:L,originalElementsMap:z,shouldKeepAspectRatio:s,shouldChangeByStepSize:G.shiftKey,property:c,scene:d,originalAppState:F})}O={x:G.clientX,y:G.clientY}};window.addEventListener("pointermove",V,!1),window.addEventListener("pointerup",()=>{window.removeEventListener("pointermove",V,!1),f.syncActionResult({storeAction:W.CAPTURE}),O=null,D=null,L=null,z=null,document.body.classList.remove("excalidraw-cursor-resize")},!1)}},onPointerEnter:()=>{g.current&&(g.current.style.cursor="ew-resize")},children:t?(0,Kc.jsx)(sn,{icon:t}):e}),(0,Kc.jsx)("input",{className:"drag-input",autoComplete:"off",spellCheck:"false",onKeyDown:I=>{if(a){let A=I.target;A instanceof HTMLInputElement&&I.key===R.ENTER&&(T(A.value,i,p),f.focusContainer())}},ref:m,value:h,onChange:I=>{y.current.updatePending=!0,b(I.target.value)},onFocus:I=>{I.target.select(),y.current.originalElements=i,y.current.originalAppState=fo(p)},onBlur:I=>{h?a&&T(I.target.value,y.current.originalElements,y.current.originalAppState):b(o.toString())},disabled:!a})]}):null},Vr=zz;var CM=w(P(),1),TM=10,$z=e=>e.type==="image",Hz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldKeepAspectRatio:o,shouldChangeByStepSize:i,nextValue:a,property:s,scene:c})=>{let d=c.getNonDeletedElementsMap(),p=t[0];if(p){let f=o||$z(p),m=p.width/p.height;if(a!==void 0){let T=Math.max(s==="width"?a:f?a*m:p.width,po),k=Math.max(s==="height"?a:f?a/m:p.height,po);Gc(T,k,f,p,d);return}let g=s==="width"?e:0,h=s==="height"?e:0,b=Math.max(0,p.width+g);s==="width"&&(i?b=Kt(b,TM):b=Math.round(b));let y=Math.max(0,p.height+h);s==="height"&&(i?y=Kt(y,TM):y=Math.round(y)),f&&(s==="width"?y=Math.round(b/m*100)/100:b=Math.round(y*m*100)/100),y=Math.max(po,y),b=Math.max(po,b),Gc(b,y,f,p,d)}},Uz=({property:e,element:t,scene:r,appState:o})=>{let i=Math.round((e==="width"?t.width:t.height)*100)/100;return(0,CM.jsx)(Vr,{label:e==="width"?"W":"H",elements:[t],dragInputCallback:Hz,value:i,editable:To(t,e),scene:r,appState:o,property:e})},tE=Uz;v();var _M=w(P(),1),Gz=15,Wz=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=t[0];if(s){let c=a.get(s.id);if(!c)return;if(o!==void 0){let h=Ss(o);me(c,{angle:h}),$m(c,a);let b=Ve(c,a);b&&!Br(c)&&me(b,{angle:h});return}let d=Math.round(ws(s.angle)*100)/100,p=Math.round(e),f=(d+p)%360;r&&(f=Kt(f,Gz)),f=f<0?f+360:f;let m=Ss(f);me(c,{angle:m}),$m(c,a);let g=Ve(c,a);g&&!Br(c)&&me(g,{angle:m})}},Kz=({element:e,scene:t,appState:r,property:o})=>(0,_M.jsx)(Vr,{label:"A",icon:wp,value:Math.round(ws(e.angle)%360*100)/100,elements:[e],dragInputCallback:Wz,editable:To(e,"angle"),scene:t,appState:r,property:o}),IM=Kz;v();var MM=w(P(),1),AM=4,Yz=4,Vz=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=t[0];if(s){let c=a.get(s.id);if(!c||!he(c))return;let d;if(o!==void 0)d=Math.max(Math.round(o),AM);else if(s.type==="text"){let p=Math.round(s.fontSize),f=Math.round(e);d=Math.max(p+f,AM),r&&(d=Kt(d,Yz))}d&&(me(c,{fontSize:d}),Xt(c,i.getContainerElement(c),i.getNonDeletedElementsMap()))}},Xz=({element:e,scene:t,appState:r,property:o})=>{let i=he(e)?e:go(e)?Ve(e,t.getNonDeletedElementsMap()):null;return i?(0,MM.jsx)(Vr,{label:"F",value:Math.round(i.fontSize*10)/10,elements:[i],dragInputCallback:Vz,icon:pl,appState:r,scene:t,property:o}):null},kM=Xz;v();var LM=w(j(),1);var RM=w(P(),1),Yc=10,Zz=(e,t,r,o)=>{let i=o.x-e,a=o.y-t,s=o.width*r,c=o.height*r,d=e+i*r,p=t+a*r;return{width:s,height:c,x:d,y:p,...ff(o,s,c,!1),...he(o)?{fontSize:o.fontSize*r}:{}}},qz=(e,t,r,o,i,a,s,c)=>{let d=Zz(e,t,o,a);me(i,d,!1);let p=Ve(a,c);if(p){let f=p.fontSize*o;hl(i,s,{newSize:{width:d.width,height:d.height}});let m=s.get(p.id);m&&he(m)&&(me(m,{fontSize:f},!1),Fp(i,s,r==="width"?"e":"s",!0))}},PM=(e,t,r,o,i,a,s,c,d,p)=>{a==="width"?t=Math.round(e/o*100)/100:e=Math.round(t*o*100)/100;let f=t/r;for(let m=0;m<c.length;m++){let g=c[m],h=s[m];qz(i[0],i[1],a,f,h,g,d,p)}},jz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,originalAppState:o,shouldChangeByStepSize:i,nextValue:a,scene:s,property:c})=>{let d=s.getNonDeletedElementsMap(),p=Wc(t,o);if(a!==void 0){for(let g of p){let h=Uc(g,d,r);if(h.length>1){let b=h.map(V=>V.latest),y=h.map(V=>V.original),[T,k,I,A]=lt(y),O=I-T,z=A-k,L=O/z,F=Math.max(po,c==="width"?Math.max(0,a):O),D=Math.max(po,c==="height"?Math.max(0,a):z);PM(F,D,z,L,[T,k],c,b,y,d,r)}else{let[b]=h,y=b?.latest,T=b?.original;if(y&&T&&To(y,c)){let k=c==="width"?Math.max(0,a):y.width;c==="width"&&(i?k=Kt(k,Yc):k=Math.round(k));let I=c==="height"?Math.max(0,a):y.height;c==="height"&&(i?I=Kt(I,Yc):I=Math.round(I)),k=Math.max(po,k),I=Math.max(po,I),Gc(k,I,!1,T,d,!1)}}}s.triggerUpdate();return}let f=c==="width"?e:0,m=c==="height"?e:0;for(let g of p){let h=Uc(g,d,r);if(h.length>1){let b=h.map(V=>V.latest),y=h.map(V=>V.original),[T,k,I,A]=lt(y),O=I-T,z=A-k,L=O/z,F=Math.max(0,O+f);c==="width"&&(i?F=Kt(F,Yc):F=Math.round(F));let D=Math.max(0,z+m);c==="height"&&(i?D=Kt(D,Yc):D=Math.round(D)),F=Math.max(po,F),D=Math.max(po,D),PM(F,D,z,L,[T,k],c,b,y,d,r)}else{let[b]=h,y=b?.latest,T=b?.original;if(y&&T&&To(y,c)){let k=Math.max(0,T.width+f);c==="width"&&(i?k=Kt(k,Yc):k=Math.round(k));let I=Math.max(0,T.height+m);c==="height"&&(i?I=Kt(I,Yc):I=Math.round(I)),k=Math.max(po,k),I=Math.max(po,I),Gc(k,I,!1,T,d)}}}s.triggerUpdate()},Jz=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,LM.useMemo)(()=>o.map(p=>{let f=Uc(p,r);if(f.length>1){let[g,h,b,y]=lt(f.map(T=>T.latest));return Math.round((e==="width"?b-g:y-h)*100)/100}let[m]=f;return Math.round((e==="width"?m.latest.width:m.latest.height)*100)/100}),[r,o,e]),c=new Set(s).size===1?Math.round(s[0]*100)/100:"Mixed",d=s.length>0;return(0,RM.jsx)(Vr,{label:e==="width"?"W":"H",elements:t,dragInputCallback:jz,value:c,editable:d,appState:a,property:e,scene:i})},rE=Jz;v();var NM=w(P(),1),Qz=15,e$=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,property:i,scene:a})=>{let s=a.getNonDeletedElementsMap(),c=t.map(p=>s.get(p.id)).filter(p=>p&&!ga(p)&&To(p,i)),d=t.filter(p=>!ga(p)&&To(p,i));if(o!==void 0){let p=Ss(o);for(let f of c){if(!f)continue;me(f,{angle:p},!1);let m=Ve(f,s);m&&!Br(f)&&me(m,{angle:p},!1)}a.triggerUpdate();return}for(let p=0;p<c.length;p++){let f=c[p];if(!f)continue;let m=d[p],g=Math.round(ws(m.angle)*100)/100,h=Math.round(e),b=(g+h)%360;r&&(b=Kt(b,Qz)),b=b<0?b+360:b;let y=Ss(b);me(f,{angle:y},!1);let T=Ve(f,s);T&&!Br(f)&&me(T,{angle:y},!1)}a.triggerUpdate()},t$=({elements:e,scene:t,appState:r,property:o})=>{let i=e.filter(d=>!ga(d)&&To(d,"angle")),a=i.map(d=>Math.round(ws(d.angle)%360*100)/100),s=new Set(a).size===1?a[0]:"Mixed",c=i.some(d=>To(d,"angle"));return(0,NM.jsx)(Vr,{label:"A",icon:wp,value:s,elements:e,dragInputCallback:e$,editable:c,appState:r,scene:t,property:o})},DM=t$;v();var BM=w(P(),1),OM=4,r$=4,o$=(e,t)=>e.reduce((r,o)=>{if(!o||ga(o))return r;if(he(o))return r.push(o),r;if(go(o)){let i=Ve(o,t);if(i)return r.push(i),r}return r},[]),n$=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=t.map(d=>a.get(d.id)),c;if(o){c=Math.max(Math.round(o),OM);for(let d of s)me(d,{fontSize:c},!1),Xt(d,i.getContainerElement(d),a,!1);i.triggerUpdate()}else{let d=t;for(let p=0;p<s.length;p++){let f=s[p],m=d[p],g=Math.round(m.fontSize),h=Math.round(e),b=Math.max(g+h,OM);r&&(b=Kt(b,r$)),me(f,{fontSize:b},!1),Xt(f,i.getContainerElement(f),a,!1)}i.triggerUpdate()}},i$=({elements:e,scene:t,appState:r,property:o,elementsMap:i})=>{let a=o$(e,i);if(!a.length)return null;let s=a.map(p=>Math.round(p.fontSize*10)/10),c=new Set(s).size===1?s[0]:"Mixed",d=s.length>0;return(0,BM.jsx)(Vr,{label:"F",icon:pl,elements:a,dragInputCallback:n$,value:c,editable:d,scene:t,property:o,appState:r})},FM=i$;v();var $M=w(P(),1),zM=10,a$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s})=>{let c=s.getNonDeletedElementsMap(),d=t[0],[p,f]=[d.x+d.width/2,d.y+d.height/2],[m,g]=Tn(d.x,d.y,p,f,d.angle);if(i!==void 0){ql(a==="x"?i:m,a==="y"?i:g,d,c,r);return}let h=a==="x"?e:0,b=a==="y"?e:0,y=a==="x"?Math.round(o?Kt(d.x+h,zM):m+h):m,T=a==="y"?Math.round(o?Kt(d.y+b,zM):g+b):g;ql(y,T,d,c,r)},l$=({property:e,element:t,elementsMap:r,scene:o,appState:i})=>{let[a,s]=Tn(t.x,t.y,t.x+t.width/2,t.y+t.height/2,t.angle),c=Math.round((e==="x"?a:s)*100)/100;return(0,$M.jsx)(Vr,{label:e==="x"?"X":"Y",elements:[t],dragInputCallback:a$,value:c,property:e,scene:o,appState:i})},oE=l$;v();var HM=w(j(),1);var UM=w(P(),1),s$=10,c$=(e,t,r,o,i,a,s)=>{for(let c=0;c<o.length;c++){let d=i[c],[p,f]=[d.x+d.width/2,d.y+d.height/2],[m,g]=Tn(d.x,d.y,p,f,d.angle),h=e==="x"?Math.round(m+t):m,b=e==="y"?Math.round(g+r):g;ql(h,b,d,a,s,!1)}},d$=(e,t,r,o,i,a)=>{let[s,c,,]=lt(r),d=e-s,p=t-c;for(let f=0;f<r.length;f++){let m=r[f],g=o.get(m.id);if(g&&(!he(g)||!g.containerId)){let[h,b]=[g.x+g.width/2,g.y+g.height/2],[y,T]=Tn(g.x,g.y,h,b,g.angle);ql(y+d,T+p,m,o,i,!1)}}},m$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s,originalAppState:c})=>{let d=s.getNonDeletedElementsMap();if(i!==void 0){for(let g of Wc(t,c)){let h=Uc(g,d,r);if(h.length>1){let[b,y,,]=lt(h.map(I=>I.latest));d$(a==="x"?i:b,a==="y"?i:y,h.map(I=>I.original),d,r,s)}else{let b=h[0]?.original,y=h[0]?.latest;if(b&&y&&To(y,a)){let[T,k]=[b.x+b.width/2,b.y+b.height/2],[I,A]=Tn(b.x,b.y,T,k,b.angle);ql(a==="x"?i:I,a==="y"?i:A,b,d,r,!1)}}}s.triggerUpdate();return}let p=o?Kt(e,s$):e;c$(a,a==="x"?p:0,a==="y"?p:0,t,t,d,r),s.triggerUpdate()},u$=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,HM.useMemo)(()=>o.map(d=>{let p=Object.keys(d).map(y=>r.get(y)).filter(y=>y!==void 0);if(p.length>1){let[y,T]=lt(p);return Math.round((e==="x"?y:T)*100)/100}let[f]=p,[m,g]=[f.x+f.width/2,f.y+f.height/2],[h,b]=Tn(f.x,f.y,m,g,f.angle);return Math.round((e==="x"?h:b)*100)/100}),[o,r,e]),c=new Set(s).size===1?s[0]:"Mixed";return(0,UM.jsx)(Vr,{label:e==="x"?"X":"Y",elements:t,dragInputCallback:m$,value:c,property:e,scene:i,appState:a})},nE=u$;v();var Yi=w(P(),1),p$=({label:e,open:t,openTrigger:r,children:o})=>(0,Yi.jsxs)(Yi.Fragment,{children:[(0,Yi.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},onClick:r,children:[e,(0,Yi.jsx)(sn,{icon:t?VT:YT})]}),t&&(0,Yi.jsx)(Yi.Fragment,{children:o})]}),iE=p$;var De=w(P(),1),f$=50,WM=e=>{let t=jn(),r=e.scene.getSceneNonce()||1,o=e.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return(0,De.jsx)(g$,{...e,appState:t,sceneNonce:r,selectedElements:o})},g$=(0,ii.memo)(({scene:e,onClose:t,renderCustomStats:r,selectedElements:o,appState:i,sceneNonce:a})=>{let s=e.getNonDeletedElements(),c=e.getNonDeletedElementsMap(),d=ot(),p=o.length===1?o[0]:null,f=o.length>1?o:null,[m,g]=(0,ii.useState)({width:0,height:0}),h=(0,ii.useMemo)(()=>(0,GM.throttle)(y=>{let T=lt(y);g({width:Math.round(T[2])-Math.round(T[0]),height:Math.round(T[3])-Math.round(T[1])})},f$),[]);(0,ii.useEffect)(()=>{h(s)},[a,s,h]),(0,ii.useEffect)(()=>()=>h.cancel(),[h]);let b=(0,ii.useMemo)(()=>Wc(o,i),[o,i]);return(0,De.jsx)("div",{className:"Stats",children:(0,De.jsxs)(hr,{padding:3,children:[(0,De.jsxs)("div",{className:"title",children:[(0,De.jsx)("h2",{children:E("stats.title")}),(0,De.jsx)("div",{className:"close",onClick:t,children:Zo})]}),(0,De.jsx)(iE,{label:(0,De.jsx)("h3",{children:E("stats.generalStats")}),open:!!(i.stats.panels&vd.generalStats),openTrigger:()=>d(y=>({...y,stats:{open:!0,panels:y.stats.panels^vd.generalStats}})),children:(0,De.jsx)("table",{children:(0,De.jsxs)("tbody",{children:[(0,De.jsx)("tr",{children:(0,De.jsx)("th",{colSpan:2,children:E("stats.scene")})}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:E("stats.elements")}),(0,De.jsx)("td",{children:s.length})]}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:E("stats.width")}),(0,De.jsx)("td",{children:m.width})]}),(0,De.jsxs)("tr",{children:[(0,De.jsx)("td",{children:E("stats.height")}),(0,De.jsx)("td",{children:m.height})]}),r?.(s,i)]})})}),o.length>0&&(0,De.jsx)("div",{id:"elementStats",style:{marginTop:12},children:(0,De.jsxs)(iE,{label:(0,De.jsx)("h3",{children:E("stats.elementProperties")}),open:!!(i.stats.panels&vd.elementProperties),openTrigger:()=>d(y=>({...y,stats:{open:!0,panels:y.stats.panels^vd.elementProperties}})),children:[p&&(0,De.jsxs)("div",{className:"sectionContent",children:[(0,De.jsx)("div",{className:"elementType",children:E(`element.${p.type}`)}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(oE,{element:p,property:"x",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(oE,{element:p,property:"y",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(tE,{property:"width",element:p,scene:e,appState:i}),(0,De.jsx)(tE,{property:"height",element:p,scene:e,appState:i}),(0,De.jsx)(IM,{property:"angle",element:p,scene:e,appState:i}),(0,De.jsx)(kM,{property:"fontSize",element:p,scene:e,appState:i})]})]}),f&&(0,De.jsxs)("div",{className:"sectionContent",children:[yC(f)&&(0,De.jsx)("div",{className:"elementType",children:E("element.group")}),(0,De.jsxs)("div",{className:"elementsCount",children:[(0,De.jsx)("div",{children:E("stats.elements")}),(0,De.jsx)("div",{children:o.length})]}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(nE,{property:"x",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(nE,{property:"y",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(rE,{property:"width",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(rE,{property:"height",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(DM,{property:"angle",elements:f,scene:e,appState:i}),(0,De.jsx)(FM,{property:"fontSize",elements:f,scene:e,appState:i,elementsMap:c})]})]})]})})]})})},(e,t)=>e.sceneNonce===t.sceneNonce&&e.selectedElements===t.selectedElements&&e.appState.stats.panels===t.appState.stats.panels);var ge=w(P(),1),h$=({UIOptions:e})=>(0,ge.jsxs)(lo,{__fallback:!0,children:[(0,ge.jsx)(lo.DefaultItems.LoadScene,{}),(0,ge.jsx)(lo.DefaultItems.SaveToActiveFile,{}),e.canvasActions.export&&(0,ge.jsx)(lo.DefaultItems.Export,{}),e.canvasActions.saveAsImage&&(0,ge.jsx)(lo.DefaultItems.SaveAsImage,{}),(0,ge.jsx)(lo.DefaultItems.Help,{}),(0,ge.jsx)(lo.DefaultItems.ClearCanvas,{}),(0,ge.jsx)(lo.Separator,{}),(0,ge.jsx)(lo.Group,{title:"Excalidraw links",children:(0,ge.jsx)(lo.DefaultItems.Socials,{})}),(0,ge.jsx)(lo.Separator,{}),(0,ge.jsx)(lo.DefaultItems.ToggleTheme,{}),(0,ge.jsx)(lo.DefaultItems.ChangeCanvasBackground,{})]}),b$=()=>(0,ge.jsxs)(xh,{__fallback:!0,children:[(0,ge.jsx)(xh.Actions.SaveToDisk,{}),(0,ge.jsx)(xh.Actions.ExportToImage,{})]}),x$=({actionManager:e,appState:t,files:r,setAppState:o,elements:i,canvas:a,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,showExitZenModeBtn:p,renderTopRightUI:f,renderCustomStats:m,UIOptions:g,onExportImage:h,renderWelcomeScreen:b,children:y,app:T,isCollaborating:k,openAIKey:I,isOpenAIKeyPersisted:A,onOpenAIAPIKeyChange:O,onMagicSettingsConfirm:z})=>{let L=rt(),F=V5(),[D,V]=Xe(_a,dt),G=()=>g.canvasActions.export?(0,ge.jsx)(I3,{elements:i,appState:t,files:r,actionManager:e,exportOpts:g.canvasActions.export,canvas:a,setAppState:o}):null,Q=()=>!g.canvasActions.saveAsImage||t.openDialog?.name!=="imageExport"?null:(0,ge.jsx)(p3,{elements:i,appState:t,files:r,actionManager:e,onExportImage:h,onCloseRequest:()=>o({openDialog:null}),name:T.getName()}),de=()=>(0,ge.jsxs)("div",{style:{position:"relative"},children:[(0,ge.jsx)(F.MainMenuTunnel.Out,{}),b&&(0,ge.jsx)(F.WelcomeScreenMenuHintTunnel.Out,{})]}),K=()=>(0,ge.jsx)(Na,{heading:"selectedShapeActions",className:q("selected-shape-actions zen-mode-transition",{"transition-left":t.zenModeEnabled}),children:(0,ge.jsx)(hr,{className:Xu.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${t.height-166}px`},children:(0,ge.jsx)(Zg,{appState:t,elementsMap:T.scene.getNonDeletedElementsMap(),renderAction:e.renderAction})})}),se=()=>{let Ee=Gs(t,i),ue=t.stats.open&&!t.zenModeEnabled&&!t.viewModeEnabled;return(0,ge.jsx)(nh,{side:"top",children:(0,ge.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,ge.jsxs)(Cr.Col,{gap:6,className:q("App-menu_top__left"),children:[de(),Ee&&K()]}),!t.viewModeEnabled&&(0,ge.jsx)(Na,{heading:"shapes",className:"shapes-section",children:U=>(0,ge.jsxs)("div",{style:{position:"relative"},children:[b&&(0,ge.jsx)(F.WelcomeScreenToolbarHintTunnel.Out,{}),(0,ge.jsx)(Cr.Col,{gap:4,align:"start",children:(0,ge.jsxs)(Cr.Row,{gap:1,className:q("App-toolbar-container",{"zen-mode":t.zenModeEnabled}),children:[(0,ge.jsxs)(hr,{padding:1,className:q("App-toolbar",{"zen-mode":t.zenModeEnabled}),children:[(0,ge.jsx)(ih,{appState:t,isMobile:L.editor.isMobile,device:L,app:T}),U,(0,ge.jsxs)(Cr.Row,{gap:1,children:[(0,ge.jsx)(lh,{zenModeEnabled:t.zenModeEnabled,checked:t.penMode,onChange:()=>d(null),title:E("toolBar.penMode"),penDetected:t.penDetected}),(0,ge.jsx)(ah,{checked:t.activeTool.locked,onChange:s,title:E("toolBar.lock")}),(0,ge.jsx)("div",{className:"App-toolbar__divider"}),(0,ge.jsx)(sh,{checked:Ti(t),onChange:()=>c(),title:E("toolBar.hand"),isMobile:!0}),(0,ge.jsx)(qg,{appState:t,activeTool:t.activeTool,UIOptions:g,app:T})]})]}),k&&(0,ge.jsx)(hr,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,ge.jsx)(mM,{title:E("toolBar.laser"),checked:t.activeTool.type===Vt.laser,onChange:()=>T.setActiveTool({type:Vt.laser}),isMobile:!0})})]})})]})}),(0,ge.jsxs)("div",{className:q("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:[t.collaborators.size>0&&(0,ge.jsx)(ch,{collaborators:t.collaborators,userToFollow:t.userToFollow?.socketId||null}),f?.(L.editor.isMobile,t),!t.viewModeEnabled&&(!_e||t.openSidebar?.name!==Sn.name)&&(0,ge.jsx)(F.DefaultSidebarTriggerTunnel.Out,{}),ue&&(0,ge.jsx)(WM,{scene:T.scene,onClose:()=>{e.executeAction(Tc)},renderCustomStats:m})]})]})})},be=()=>(0,ge.jsx)(vh,{__fallback:!0,onDock:Ee=>{ze("sidebar",`toggleDock (${Ee?"dock":"undock"})`,`(${L.editor.isMobile?"mobile":"desktop"})`)}}),_e=jd(Dm,dt),nt=(0,ge.jsxs)(ge.Fragment,{children:[y,(0,ge.jsx)(h$,{UIOptions:g}),(0,ge.jsx)(vh.Trigger,{__fallback:!0,icon:gp,title:sa(E("toolBar.library")),onToggle:Ee=>{Ee&&ze("sidebar",`${Sn.name} (open)`,`button (${L.editor.isMobile?"mobile":"desktop"})`)},tab:Sn.defaultTab,children:E("toolBar.library")}),(0,ge.jsx)(b$,{}),t.openDialog?.name==="ttd"&&(0,ge.jsx)(eE,{__fallback:!0}),t.isLoading&&(0,ge.jsx)(_f,{delay:250}),t.errorMessage&&(0,ge.jsx)(u3,{onClose:()=>o({errorMessage:null}),children:t.errorMessage}),D&&!L.editor.isMobile&&(0,ge.jsx)($A,{colorPickerType:D.colorPickerType,onCancel:()=>{V(null)},onChange:(Ee,ue,U,{altKey:Y})=>{if(!(Ee!=="elementBackground"&&Ee!=="elementStroke"))if(U.length){for(let oe of U)me(oe,{[Y&&D.swapPreviewOnAlt?Ee==="elementBackground"?"strokeColor":"backgroundColor":Ee==="elementBackground"?"backgroundColor":"strokeColor"]:ue},!1),va.delete(oe);Xo.getScene(U[0])?.triggerUpdate()}else o(Ee==="elementBackground"?{currentItemBackgroundColor:ue}:{currentItemStrokeColor:ue})},onSelect:(Ee,ue)=>{V(U=>U?.keepOpenOnAlt&&ue.altKey?U:null),D?.onSelect?.(Ee,ue)}}),t.openDialog?.name==="help"&&(0,ge.jsx)(S3,{onClose:()=>{o({openDialog:null})}}),t.openDialog?.name==="settings"&&(0,ge.jsx)(hM,{openAIKey:I,isPersisted:A,onChange:O,onConfirm:(Ee,ue)=>{let U=t.openDialog?.name==="settings"?t.openDialog?.source:"settings";o({openDialog:null},()=>{z(Ee,ue,U)})},onClose:()=>{o({openDialog:null})}}),(0,ge.jsx)(e3,{}),(0,ge.jsx)(F.OverwriteConfirmDialogTunnel.Out,{}),Q(),G(),t.pasteDialog.shown&&(0,ge.jsx)(E3,{setAppState:o,appState:t,onClose:()=>o({pasteDialog:{shown:!1,data:null}})}),L.editor.isMobile&&(0,ge.jsx)(v3,{app:T,appState:t,elements:i,actionManager:e,renderJSONExportDialog:G,renderImageExportDialog:Q,setAppState:o,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,renderTopRightUI:f,renderCustomStats:m,renderSidebars:be,device:L,renderWelcomeScreen:b,UIOptions:g}),!L.editor.isMobile&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsxs)("div",{className:"layer-ui__wrapper",style:t.openSidebar&&_e&&L.editor.canFitSidebar?{width:`calc(100% - ${$S}px)`}:{},children:[b&&(0,ge.jsx)(F.WelcomeScreenCenterTunnel.Out,{}),se(),(0,ge.jsx)(M3,{appState:t,actionManager:e,showExitZenModeBtn:p,renderWelcomeScreen:b}),t.scrolledOutside&&(0,ge.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(Ee=>({...Sl(i,Ee)}))},children:E("buttons.scrollBackToContent")})]}),be()]})]});return(0,ge.jsx)(Ty.Provider,{value:t,children:(0,ge.jsx)(Ef,{scope:F.jotaiScope,children:(0,ge.jsx)(g0.Provider,{value:F,children:nt})})})},KM=e=>{let{suggestedBindings:t,startBoundElement:r,cursorButton:o,scrollX:i,scrollY:a,...s}=e;return s},v$=(e,t)=>{if(e.children!==t.children)return!1;let{canvas:r,appState:o,...i}=e,{canvas:a,appState:s,...c}=t;return gr(KM(o),KM(s),{selectedElementIds:gr,selectedGroupIds:gr})&&gr(i,c)},VM=YM.default.memo(x$,v$);v();var Vc=w(j(),1);var Hm=w(P(),1),y$=5e3,XM=({message:e,onClose:t,closable:r=!1,duration:o=y$,style:i})=>{let a=(0,Vc.useRef)(0),s=o!==1/0,c=(0,Vc.useCallback)(()=>{s&&(a.current=window.setTimeout(()=>t(),o))},[t,o,s]);return(0,Vc.useEffect)(()=>{if(s)return c(),()=>clearTimeout(a.current)},[c,e,o,s]),(0,Hm.jsxs)("div",{className:"Toast",onMouseEnter:s?()=>clearTimeout(a?.current):void 0,onMouseLeave:s?c:void 0,style:i,children:[(0,Hm.jsx)("p",{className:"Toast__message",children:e}),r&&(0,Hm.jsx)(Ce,{icon:Zo,"aria-label":"close",type:"icon",onClick:t,className:"close"})]})};v();var aE=re({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:Ls,viewMode:!0,trackEvent:{category:"canvas",predicate:e=>!e.viewModeEnabled},perform(e,t){return{appState:{...t,viewModeEnabled:!this.checked(t)},storeAction:W.NONE}},checked:e=>e.viewModeEnabled,predicate:(e,t,r)=>typeof r.viewModeEnabled>"u",keyTest:e=>!e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.R});var OP=w(m0(),1);v();var ZM=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length===1&&He(r[0])},qM=re({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t).at(0)||null;if(He(i)){let a=xa(We(e),i.id).filter(s=>!(s.type==="text"&&s.containerId));return{elements:e,appState:{...t,selectedElementIds:a.reduce((s,c)=>(s[c.id]=!0,s),{})},storeAction:W.CAPTURE}}return{elements:e,appState:t,storeAction:W.NONE}},predicate:(e,t,r,o)=>ZM(t,o)}),jM=re({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t).at(0)||null;return He(i)?{elements:aI(e,i),appState:{...t,selectedElementIds:{[i.id]:!0}},storeAction:W.CAPTURE}:{elements:e,appState:t,storeAction:W.NONE}},predicate:(e,t,r,o)=>ZM(t,o)}),WEe=re({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>({elements:e,appState:{...t,frameRendering:{...t.frameRendering,enabled:!t.frameRendering.enabled}},storeAction:W.NONE}),checked:e=>e.frameRendering.enabled}),KEe=re({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:Cp,viewMode:!1,perform:(e,t,r,o)=>{let i=Ht(t,{type:"frame"});return _n(o.interactiveCanvas,{...t,activeTool:i}),{elements:e,appState:{...t,activeTool:Ht(t,{type:"frame"})},storeAction:W.NONE}},keyTest:e=>!e[R.CTRL_OR_CMD]&&!e.shiftKey&&!e.altKey&&e.key.toLocaleLowerCase()===R.F});v();var E$=8,JM=99999,Ah=e=>E$/e,un=class e{static referenceSnapPoints=null;static visibleGaps=null;static setReferenceSnapPoints=t=>{e.referenceSnapPoints=t};static getReferenceSnapPoints=()=>e.referenceSnapPoints;static setVisibleGaps=t=>{e.visibleGaps=t};static getVisibleGaps=()=>e.visibleGaps;static destroy=()=>{e.referenceSnapPoints=null,e.visibleGaps=null}},Vi=({event:e,appState:t,selectedElements:r})=>e?t.objectsSnapModeEnabled&&!e[R.CTRL_OR_CMD]||!t.objectsSnapModeEnabled&&e[R.CTRL_OR_CMD]&&t.gridSize===null:r.length===1&&r[0].type==="arrow"?!1:t.objectsSnapModeEnabled,w$=(e,t,r=.01)=>Math.abs(e-t)<=r,Um=(e,t,{omitCenter:r,boundingBoxCorners:o,dragOffset:i}={omitCenter:!1,boundingBoxCorners:!1})=>{let a=[];if(e.length===1){let s=e[0],[c,d,p,f,m,g]=ho(s,t);i&&(c+=i.x,p+=i.x,m+=i.x,d+=i.y,f+=i.y,g+=i.y);let h=(p-c)/2,b=(f-d)/2;if((s.type==="diamond"||s.type==="ellipse")&&!o){let y=Ei([c,d+b],[m,g],s.angle),T=Ei([c+h,d],[m,g],s.angle),k=Ei([p,d+b],[m,g],s.angle),I=Ei([c+h,f],[m,g],s.angle);a=r?[y,T,k,I]:[y,T,k,I,[m,g]]}else{let y=Ei([c,d],[m,g],s.angle),T=Ei([p,d],[m,g],s.angle),k=Ei([c,f],[m,g],s.angle),I=Ei([p,f],[m,g],s.angle);a=r?[y,T,k,I]:[y,T,k,I,[m,g]]}}else if(e.length>1){let[s,c,d,p]=Gp(e,i??{x:0,y:0}),f=d-s,m=p-c,g=[s,c],h=[d,c],b=[s,p],y=[d,p],T=[s+f/2,c+m/2];a=r?[g,h,b,y]:[g,h,b,y,T]}return a.map(s=>[zt(s[0]),zt(s[1])])},tP=(e,t,r,o)=>{let i=t.filter(a=>He(a)).map(a=>a.id);return Av(e,t,r,o).filter(a=>!(a.frameId&&i.includes(a.frameId)))},rP=(e,t,r,o)=>{let i=tP(e,t,r,o),a=xl(i,o).filter(m=>!(m.length===1&&Sr(m[0]))).map(m=>lt(m).map(g=>zt(g))),s=a.sort((m,g)=>m[0]-g[0]),c=[],d=0;e:for(let m=0;m<s.length;m++){let g=s[m];for(let h=m+1;h<s.length;h++){if(++d>JM)break e;let b=s[h],[,y,T,k]=g,[I,A,,O]=b;T<I&&Ad([y,k],[A,O])&&c.push({startBounds:g,endBounds:b,startSide:[[T,y],[T,k]],endSide:[[I,A],[I,O]],length:I-T,overlap:kd([y,k],[A,O])})}}let p=a.sort((m,g)=>m[1]-g[1]),f=[];d=0;e:for(let m=0;m<p.length;m++){let g=p[m];for(let h=m+1;h<p.length;h++){if(++d>JM)break e;let b=p[h],[y,,T,k]=g,[I,A,O]=b;k<A&&Ad([y,T],[I,O])&&f.push({startBounds:g,endBounds:b,startSide:[[y,k],[T,k]],endSide:[[I,A],[O,A]],length:A-k,overlap:kd([y,T],[I,O])})}}return{horizontalGaps:c,verticalGaps:f}},QM=(e,t,r,o,i,a,s)=>{if(!Vi({appState:r,event:o,selectedElements:e}))return[];if(e.length===0)return[];let c=un.getVisibleGaps();if(c){let{horizontalGaps:d,verticalGaps:p}=c,[f,m,g,h]=Gp(e,t).map(T=>zt(T)),b=(f+g)/2,y=(m+h)/2;for(let T of d){if(!Ad([m,h],T.overlap))continue;let k=T.startSide[0][0]+T.length/2,I=zt(k-b);if(T.length>g-f&&Math.abs(I)<=s.x){Math.abs(I)<s.x&&(i.length=0),s.x=Math.abs(I);let G={type:"gap",direction:"center_horizontal",gap:T,offset:I};i.push(G);continue}let[,,O]=T.endBounds,z=f-O,L=zt(T.length-z);if(Math.abs(L)<=s.x){Math.abs(L)<s.x&&(i.length=0),s.x=Math.abs(L);let G={type:"gap",direction:"side_right",gap:T,offset:L};i.push(G);continue}let[F,,,]=T.startBounds,D=F-g,V=zt(D-T.length);if(Math.abs(V)<=s.x){Math.abs(V)<s.x&&(i.length=0),s.x=Math.abs(V);let G={type:"gap",direction:"side_left",gap:T,offset:V};i.push(G);continue}}for(let T of p){if(!Ad([f,g],T.overlap))continue;let k=T.startSide[0][1]+T.length/2,I=zt(k-y);if(T.length>h-m&&Math.abs(I)<=s.y){Math.abs(I)<s.y&&(a.length=0),s.y=Math.abs(I);let G={type:"gap",direction:"center_vertical",gap:T,offset:I};a.push(G);continue}let[,O,,]=T.startBounds,z=O-h,L=zt(z-T.length);if(Math.abs(L)<=s.y){Math.abs(L)<s.y&&(a.length=0),s.y=Math.abs(L);let G={type:"gap",direction:"side_top",gap:T,offset:L};a.push(G);continue}let[,,,F]=T.endBounds,D=zt(m-F),V=T.length-D;if(Math.abs(V)<=s.y){Math.abs(V)<s.y&&(a.length=0),s.y=Math.abs(V);let G={type:"gap",direction:"side_bottom",gap:T,offset:V};a.push(G);continue}}}},oP=(e,t,r,o)=>{let i=tP(e,t,r,o);return xl(i,o).filter(a=>!(a.length===1&&Sr(a[0]))).flatMap(a=>Um(a,o))},Xc=(e,t,r,o,i,a,s)=>{if(!Vi({appState:r,event:o,selectedElements:e})||e.length===0&&t.length===0)return[];let c=un.getReferenceSnapPoints();if(c)for(let d of t)for(let p of c){let f=p[0]-d[0],m=p[1]-d[1];Math.abs(f)<=s.x&&(Math.abs(f)<s.x&&(i.length=0),i.push({type:"point",points:[d,p],offset:f}),s.x=Math.abs(f)),Math.abs(m)<=s.y&&(Math.abs(m)<s.y&&(a.length=0),a.push({type:"point",points:[d,p],offset:m}),s.y=Math.abs(m))}},nP=(e,t,r,o,i)=>{let a=Oe(e,r);if(!Vi({appState:r,event:o,selectedElements:a})||a.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};t.x=zt(t.x),t.y=zt(t.y);let s=[],c=[],d=Ah(r.zoom.value),p={x:d,y:d},f=Um(a,i,{dragOffset:t});Xc(a,f,r,o,s,c,p),QM(a,t,r,o,s,c,p);let m={x:s[0]?.offset??0,y:c[0]?.offset??0};p.x=0,p.y=0,s.length=0,c.length=0;let g={x:zt(t.x+m.x),y:zt(t.y+m.y)};Xc(a,Um(a,i,{dragOffset:g}),r,o,s,c,p),QM(a,g,r,o,s,c,p);let h=lE(s,c),b=T$(a,g,[...s,...c].filter(y=>y.type==="gap"));return{snapOffset:m,snapLines:[...h,...b]}},zt=e=>Math.round(e*10**6)/10**6,eP=e=>{let t=new Map;for(let r of e){let o=r.join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},lE=(e,t)=>{let r={},o={};if(e.length>0){for(let i of e)if(i.type==="point"){let a=zt(i.points[0][0]);r[a]||(r[a]=[]),r[a].push(...i.points.map(s=>[zt(s[0]),zt(s[1])]))}}if(t.length>0){for(let i of t)if(i.type==="point"){let a=zt(i.points[0][1]);o[a]||(o[a]=[]),o[a].push(...i.points.map(s=>[zt(s[0]),zt(s[1])]))}}return Object.entries(r).map(([i,a])=>({type:"points",points:eP(a.map(s=>[Number(i),s[1]]).sort((s,c)=>s[1]-c[1]))})).concat(Object.entries(o).map(([i,a])=>({type:"points",points:eP(a.map(s=>[s[0],Number(i)]).sort((s,c)=>s[0]-c[0]))})))},S$=e=>{let t=new Map;for(let r of e){let o=r.points.flat().map(i=>[zt(i)]).join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},T$=(e,t,r)=>{let[o,i,a,s]=Gp(e,t),c=[];for(let d of r){let[p,f,m,g]=d.gap.startBounds,[h,b,y,T]=d.gap.endBounds,k=kd([i,s],d.gap.overlap),I=kd([o,a],d.gap.overlap);switch(d.direction){case"center_horizontal":{if(k){let A=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[d.gap.startSide[0][0],A],[o,A]]},{type:"gap",direction:"horizontal",points:[[a,A],[d.gap.endSide[0][0],A]]})}break}case"center_vertical":{if(I){let A=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[A,d.gap.startSide[0][1]],[A,i]]},{type:"gap",direction:"vertical",points:[[A,s],[A,d.gap.endSide[0][1]]]})}break}case"side_right":{if(k){let A=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[m,A],[h,A]]},{type:"gap",direction:"horizontal",points:[[y,A],[o,A]]})}break}case"side_left":{if(k){let A=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[a,A],[p,A]]},{type:"gap",direction:"horizontal",points:[[m,A],[h,A]]})}break}case"side_top":{if(I){let A=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[A,s],[A,f]]},{type:"gap",direction:"vertical",points:[[A,g],[A,b]]})}break}case"side_bottom":{if(I){let A=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[A,g],[A,b]]},{type:"gap",direction:"vertical",points:[[A,T],[A,i]]})}break}}}return S$(c.map(d=>({...d,points:d.points.map(p=>[zt(p[0]),zt(p[1])])})))},iP=(e,t,r,o,i,a)=>{if(!Vi({event:o,selectedElements:e,appState:r})||e.length===0||e.length===1&&!w$(e[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[s,c,d,p]=lt(t);a&&(a.includes("e")?d+=i.x:a.includes("w")&&(s+=i.x),a.includes("n")?c+=i.y:a.includes("s")&&(p+=i.y));let f=[];if(a)switch(a){case"e":{f.push([d,c],[d,p]);break}case"w":{f.push([s,c],[s,p]);break}case"n":{f.push([s,c],[d,c]);break}case"s":{f.push([s,p],[d,p]);break}case"ne":{f.push([d,c]);break}case"nw":{f.push([s,c]);break}case"se":{f.push([d,p]);break}case"sw":{f.push([s,p]);break}}let m=Ah(r.zoom.value),g={x:m,y:m},h=[],b=[];Xc(t,f,r,o,h,b,g);let y={x:h[0]?.offset??0,y:b[0]?.offset??0};g.x=0,g.y=0,h.length=0,b.length=0;let[T,k,I,A]=lt(e).map(L=>zt(L));Xc(e,[[T,k],[T,A],[I,k],[I,A]],r,o,h,b,g);let z=lE(h,b);return{snapOffset:y,snapLines:z}},aP=(e,t,r,o,i,a)=>{if(!Vi({event:r,selectedElements:[e],appState:t}))return{snapOffset:{x:0,y:0},snapLines:[]};let s=[[o.x+i.x,o.y+i.y]],c=Ah(t.zoom.value),d={x:c,y:c},p=[],f=[];Xc([e],s,t,r,p,f,d);let m={x:p[0]?.offset??0,y:f[0]?.offset??0};d.x=0,d.y=0,p.length=0,f.length=0;let g=Um([e],a,{boundingBoxCorners:!0,omitCenter:!0});Xc([e],g,t,r,p,f,d);let h=lE(p,f);return{snapOffset:m,snapLines:h}},lP=(e,t,r,o,i)=>{if(!Vi({event:o,selectedElements:[],appState:t}))return{originOffset:{x:0,y:0},snapLines:[]};let a=Av(e,[],t,i),s=Ah(t.zoom.value),c={x:s,y:s},d=[],p=[];for(let f of a){let m=Um([f],i);for(let g of m){let h=g[0]-r.x;Math.abs(h)<=Math.abs(c.x)&&(Math.abs(h)<Math.abs(c.x)&&(p.length=0),p.push({type:"pointer",points:[g,[g[0],r.y]],direction:"vertical"}),c.x=h);let b=g[1]-r.y;Math.abs(b)<=Math.abs(c.y)&&(Math.abs(b)<Math.abs(c.y)&&(d.length=0),d.push({type:"pointer",points:[g,[r.x,g[1]]],direction:"horizontal"}),c.y=b)}}return{originOffset:{x:p.length>0?p[0].points[0][0]-r.x:0,y:d.length>0?d[0].points[0][1]-r.y:0},snapLines:[...p,...d]}},sP=e=>e===Vt.rectangle||e===Vt.ellipse||e===Vt.diamond||e===Vt.frame||e===Vt.magicframe||e===Vt.image||e===Vt.text;v();var Xr=w(P(),1),C$=()=>(0,Xr.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Xr.jsx)("p",{children:(0,Xr.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line1",bold:e=>(0,Xr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,Xr.jsx)("p",{children:(0,Xr.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line2",bold:e=>(0,Xr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,Xr.jsx)("p",{children:(0,Xr.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line3",link:e=>(0,Xr.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:e})})}),(0,Xr.jsx)("p",{children:(0,Xr.jsx)(io,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:e=>(0,Xr.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:e}),discordLink:e=>(0,Xr.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[e,"."]})})})]}),cP=C$;v();var kh={width:100,height:0},$a=100,I$=(e,t,r)=>{let o=ba({x:0,y:0,textAlign:xd.CENTER,verticalAlign:Ko.MIDDLE,...t,containerId:e.id,strokeColor:t.strokeColor||e.strokeColor});return Object.assign(e,{boundElements:(e.boundElements||[]).concat({type:"text",id:o.id})}),Xt(o,e,r),[e,o]},dP=(e,t,r,o,i)=>{let a,s;if(Object.assign(e,{startBinding:e?.startBinding||null,endBinding:e.endBinding||null}),t){let f=t?.width??$a,m=t?.height??$a,g;t.id&&(g=o.getElement(t.id),g||console.error(`No element for start binding with id ${t.id} found`));let h=t.x||e.x-f,b=t.y||e.y-m/2,y=g?g.type:t.type;if(y){if(y==="text"){let T="";g&&g.type==="text"?T=g.text:t.type==="text"&&(T=t.text),T||console.error(`No text found for start binding text element for ${e.id}`),a=ba({x:h,y:b,type:"text",...g,...t,text:T}),Object.assign(a,{x:t.x||e.x-a.width,y:t.y||e.y-a.height/2})}else switch(y){case"rectangle":case"ellipse":case"diamond":{a=ha({x:h,y:b,width:f,height:m,...g,...t,type:y});break}default:dp(e,`Unhandled element start type "${t.type}"`,!0)}tv(e,a,"start",i)}}if(r){let f=r?.height??$a,m=r?.width??$a,g;r.id&&(g=o.getElement(r.id),g||console.error(`No element for end binding with id ${r.id} found`));let h=r.x||e.x+e.width,b=r.y||e.y-f/2,y=g?g.type:r.type;if(y){if(y==="text"){let T="";g&&g.type==="text"?T=g.text:r.type==="text"&&(T=r.text),T||console.error(`No text found for end binding text element for ${e.id}`),s=ba({x:h,y:b,type:"text",...g,...r,text:T}),Object.assign(s,{y:r.y||e.y-s.height/2})}else switch(y){case"rectangle":case"ellipse":case"diamond":{s=ha({x:h,y:b,width:m,height:f,...g,...r,type:y});break}default:dp(e,`Unhandled element end type "${y}"`,!0)}tv(e,s,"end",i)}}if(e.points.length<2)return{linearElement:e,startBoundElement:a,endBoundElement:s};let c=e.points.length-1,d=.5,p=fo(e.points);return e.points[c][0]>e.points[c-1][0]&&(p[0][0]=d,p[c][0]-=d),e.points[c][0]<e.points[c-1][0]&&(p[0][0]=-d,p[c][0]+=d),e.points[c][1]>e.points[c-1][1]&&(p[0][1]=d,p[c][1]-=d),e.points[c][1]<e.points[c-1][1]&&(p[0][1]=-d,p[c][1]+=d),Object.assign(e,{points:p}),{linearElement:e,startBoundElement:a,endBoundElement:s}},sE=class{excalidrawElements=new Map;add=t=>{t&&this.excalidrawElements.set(t.id,t)};getElements=()=>ua(Array.from(this.excalidrawElements.values()));getElementsMap=()=>up(Le(this.getElements()));getElement=t=>this.excalidrawElements.get(t)},Bc=(e,t)=>{if(!e)return[];let r=fo(e),o=new sE,i=new Map,a=new Map;for(let c of r){let d,p=c.id;switch(t?.regenerateIds!==!1&&Object.assign(c,{id:ma()}),c.type){case"rectangle":case"ellipse":case"diamond":{let m=c?.label?.text&&c.width===void 0?0:c?.width||$a,g=c?.label?.text&&c.height===void 0?0:c?.height||$a;d=ha({...c,width:m,height:g});break}case"line":{let m=c.width||kh.width,g=c.height||kh.height;d=Wd({width:m,height:g,points:[[0,0],[m,g]],...c});break}case"arrow":{let m=c.width||kh.width,g=c.height||kh.height;d=Wd({width:m,height:g,endArrowhead:"arrow",points:[[0,0],[m,g]],...c}),Object.assign(d,g2(d.points));break}case"text":{let m=c?.fontFamily||hs,g=c?.fontSize||gs,h=c?.lineHeight||_i(m),b=c.text??"",y=zd(b),T=Si(y,eo({fontFamily:m,fontSize:g}),h);d=ba({width:T.width,height:T.height,fontFamily:m,fontSize:g,...c});break}case"image":{d=Qp({width:c?.width||$a,height:c?.height||$a,...c});break}case"frame":{d=Jp({x:0,y:0,...c});break}case"magicframe":{d=Gd({x:0,y:0,...c});break}case"freedraw":case"iframe":case"embeddable":{d=c;break}default:d=c,dp(c,`Unhandled element type "${c.type}"`,!0)}o.getElement(d.id)?console.error(`Duplicate id found for ${d.id}`):(o.add(d),i.set(d.id,c),p&&a.set(p,d.id))}let s=o.getElementsMap();for(let[c,d]of i){let p=o.getElement(c);switch(d.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(d.label?.text){let[f,m]=I$(p,d?.label,s);if(o.add(f),o.add(m),f.type==="arrow"){let g=d.type==="arrow"?d?.start:void 0,h=d.type==="arrow"?d?.end:void 0;if(g&&g.id){let k=a.get(g.id);k&&Object.assign(g,{id:k})}if(h&&h.id){let k=a.get(h.id);k&&Object.assign(h,{id:k})}let{linearElement:b,startBoundElement:y,endBoundElement:T}=dP(f,g,h,o,s);f=b,o.add(b),o.add(y),o.add(T)}}else switch(d.type){case"arrow":{let{start:f,end:m}=d;if(f&&f.id){let y=a.get(f.id);Object.assign(f,{id:y})}if(m&&m.id){let y=a.get(m.id);Object.assign(m,{id:y})}let{linearElement:g,startBoundElement:h,endBoundElement:b}=dP(p,f,m,o,s);o.add(g),o.add(h),o.add(b);break}}break}}}for(let[c,d]of i){if(d.type!=="frame"&&d.type!=="magicframe")continue;let p=o.getElement(c);if(!p)throw new Error(`Excalidraw element with id ${c} doesn't exist`);let f=[];d.children.forEach(I=>{let A=a.get(I);if(!A)throw new Error(`Element with ${I} wasn't mapped correctly`);let O=o.getElement(A);if(!O)throw new Error(`Frame element with id ${A} doesn't exist`);Object.assign(O,{frameId:p.id}),O?.boundElements?.forEach(z=>{let L=o.getElement(z.id);if(!L)throw new Error(`Bound element with id ${z.id} doesn't exist`);Object.assign(L,{frameId:p.id}),f.push(L)}),f.push(O)});let[m,g,h,b]=lt(f),y=10;m=m-y,g=g-y,h=h+y,b=b+y;let T=Math.max(p?.width,h-m),k=Math.max(p?.height,b-g);Object.assign(p,{x:m,y:g,width:T,height:k})}return o.getElements()};v();v();var Zc=w(j(),1);v();var cE=w(Vn(),1),mP=w(j(),1);var Dt=e=>t=>{(0,cE.unstable_batchedUpdates)(e,t)},Mh=e=>ap(t=>{(0,cE.unstable_batchedUpdates)(e,t)}),Ph=(()=>{let e;try{let r=mP.version.split(".");e=Number(r[0])>17}catch{e=!1}let t=!1;return()=>window.EXCALIDRAW_THROTTLE_RENDER===!0?e?!0:(t||(t=!0,console.warn("Excalidraw: render throttling is disabled on React versions < 18.")),!1):!1})();v();v();var _$="#ff6b6b",A$="#ff0000",uP=1,pP=2,fP=(e,t)=>{if(!t.snapLines.length)return;let r=t.theme===Be.LIGHT||t.zenModeEnabled?_$:A$,o=(t.zenModeEnabled?uP*1.5:uP)/t.zoom.value;e.save(),e.translate(t.scrollX,t.scrollY);for(let i of t.snapLines)i.type==="pointer"?(e.lineWidth=o,e.strokeStyle=r,M$(i,e,t)):i.type==="gap"?(e.lineWidth=o,e.strokeStyle=r,P$(i.points[0],i.points[1],i.direction,t,e)):i.type==="points"&&(e.lineWidth=o,e.strokeStyle=r,k$(i,e,t));e.restore()},k$=(e,t,r)=>{if(!r.zenModeEnabled){let o=e.points[0],i=e.points[e.points.length-1];pn(o,i,t)}for(let o of e.points)gP(o,r,t)},M$=(e,t,r)=>{gP(e.points[0],r,t),r.zenModeEnabled||pn(e.points[0],e.points[1],t)},gP=([e,t],r,o)=>{o.save();let i=(r.zenModeEnabled?pP*1.5:pP)/r.zoom.value;o.beginPath(),o.moveTo(e-i,t-i),o.lineTo(e+i,t+i),o.moveTo(e+i,t-i),o.lineTo(e-i,t+i),o.stroke(),o.restore()},pn=(e,t,r)=>{r.beginPath(),r.lineTo(...e),r.lineTo(...t),r.stroke()},P$=(e,t,r,o,i)=>{let a=8/o.zoom.value,s=a/2,c=a/4;if(r==="horizontal"){let d=[(e[0]+t[0])/2,e[1]];o.zenModeEnabled||pn([e[0],e[1]-a],[e[0],e[1]+a],i),pn([d[0]-c,d[1]-s],[d[0]-c,d[1]+s],i),pn([d[0]+c,d[1]-s],[d[0]+c,d[1]+s],i),o.zenModeEnabled||(pn([t[0],t[1]-a],[t[0],t[1]+a],i),pn(e,t,i))}else{let d=[e[0],(e[1]+t[1])/2];o.zenModeEnabled||pn([e[0]-a,e[1]],[e[0]+a,e[1]],i),pn([d[0]-s,d[1]-c],[d[0]+s,d[1]-c],i),pn([d[0]-s,d[1]+c],[d[0]+s,d[1]+c],i),o.zenModeEnabled||(pn([t[0]-a,t[1]],[t[0]+a,t[1]],i),pn(e,t,i))}};var L$=(e,t,r)=>{let{elementId:o,hoverPointIndex:i}=t.selectedLinearElement;if(t.editingLinearElement?.selectedPointsIndices?.includes(i))return;let a=Re.getElement(o,r);if(!a)return;let s=Re.getPointAtIndexGlobalCoordinates(a,i,r);e.save(),e.translate(t.scrollX,t.scrollY),mE(s,e,t),e.restore()},mE=(e,t,r)=>{t.fillStyle="rgba(105, 101, 219, 0.4)",Kd(t,e[0],e[1],Re.POINT_HANDLE_SIZE/r.zoom.value,!1)},Gm=(e,t,r,o,i,a,s,c,d=!1,p=0)=>{e.save(),e.translate(a,s),e.rotate(c),d&&e.fillRect(t-a,r-s,o,i),p&&e.roundRect?(e.beginPath(),e.roundRect(t-a,r-s,o,i,p),e.stroke(),e.closePath()):e.strokeRect(t-a,r-s,o,i),e.restore()},R$=(e,t,r,o,i,a)=>{e.save(),e.translate(o,i),e.rotate(a),e.beginPath(),e.moveTo(0,r/2),e.lineTo(t/2,0),e.lineTo(0,-r/2),e.lineTo(-t/2,0),e.closePath(),e.stroke(),e.restore()},Lh=(e,t,r,o,i,a=!1)=>{e.strokeStyle="#5e5ad8",e.setLineDash([]),e.fillStyle="rgba(255, 255, 255, 0.9)",i?e.fillStyle="rgba(134, 131, 226, 0.9)":a&&(e.fillStyle="rgba(177, 151, 252, 0.7)"),Kd(e,r[0],r[1],o/t.zoom.value,!a)},D$=(e,t,r,o,i,a)=>{e.beginPath(),e.ellipse(o,i,t/2,r/2,a,0,Math.PI*2),e.stroke()},N$=(e,t,r)=>{let[o,i,a,s]=ho(t,r),c=a-o,d=s-i,p=rv(t,c,d),f=4;e.strokeStyle="rgba(0,0,0,.05)",e.lineWidth=p-f;let m=f/2+p/2;switch(t.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Gm(e,o-m,i-m,c+m*2,d+m*2,o+c/2,i+d/2,t.angle);break;case"diamond":let g=Math.hypot(c,d),h=m*g/d,b=m*g/c;R$(e,c+h*2,d+b*2,o+c/2,i+d/2,t.angle);break;case"ellipse":D$(e,c+m*2,d+m*2,o+c/2,i+d/2,t.angle);break}},O$=(e,t,r)=>{let[o,i,a]=t,s=rv(a,a.width,a.height);e.strokeStyle="rgba(0,0,0,0)",e.fillStyle="rgba(0,0,0,.05)",(i==="both"?[0,-1]:i==="start"?[0]:[-1]).forEach(d=>{let[p,f]=Re.getPointAtIndexGlobalCoordinates(o,d,r);Kd(e,p,f,s)})},bP=(e,t,r)=>{let{angle:o,elementX1:i,elementY1:a,elementX2:s,elementY2:c,selectionColors:d,cx:p,cy:f,dashed:m,activeEmbeddable:g}=r,h=s-i,b=c-a,T=qu*2/t.zoom.value,k=8/t.zoom.value,I=4/t.zoom.value;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=(g?4:1)/t.zoom.value;let A=d.length;for(let O=0;O<A;++O)e.strokeStyle=d[O],m&&e.setLineDash([k,I+(k+I)*(A-1)]),e.lineDashOffset=(k+I)*O,Gm(e,i-T,a-T,h+T*2,b+T*2,p,f,o);e.restore()},F$=(e,t,r,o)=>{let i=Array.isArray(r)?O$:N$;e.save(),e.translate(t.scrollX,t.scrollY),i(e,r,o),e.restore()},B$=(e,t,r,o)=>{let[i,a,s,c]=ho(r,o),d=s-i,p=c-a;e.strokeStyle="rgb(0,118,255)",e.lineWidth=wn.strokeWidth/t.zoom.value,e.save(),e.translate(t.scrollX,t.scrollY),Gm(e,i,a,d,p,i+d/2,a+p/2,r.angle,!1,wn.radius/t.zoom.value),e.restore()},z$=(e,t,r)=>{let o=r.filter(c=>c.groupIds.length===0),i=r.filter(c=>c.groupIds.length>0),a=c=>{let[d,p,f,m]=lt(c);return{angle:0,elementX1:d,elementX2:f,elementY1:p,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:d+(f-d)/2,cy:p+(m-p)/2,activeEmbeddable:!1}},s=c=>{let d=Gt(r,c);return a(d)};Object.entries(gC(i,t)).filter(([c,d])=>d).map(([c,d])=>c).map(c=>s(c)).concat(o.map(c=>a([c]))).forEach(c=>bP(e,t,c))},dE=(e,t,r,o)=>{if(!t.selectedLinearElement)return;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=1/t.zoom.value;let i=Re.getPointsGlobalCoordinates(r,o),{POINT_HANDLE_SIZE:a}=Re,s=t.editingLinearElement?a:a/2;i.forEach((d,p)=>{let f=!!t.editingLinearElement?.selectedPointsIndices?.includes(p);Lh(e,t,d,s,f)}),Re.getEditorMidPoints(r,o,t).filter(d=>d!==null).forEach(d=>{t?.selectedLinearElement?.segmentMidPointHoveredCoords&&Re.arePointsEqual(d,t.selectedLinearElement.segmentMidPointHoveredCoords)?t.editingLinearElement?(Lh(e,t,d,s,!1),mE(d,e,t)):(mE(d,e,t),Lh(e,t,d,s,!1)):(t.editingLinearElement||i.length===2)&&Lh(e,t,d,a/2,!1,!0)}),e.restore()},hP=(e,t,r,o,i)=>{Object.keys(o).forEach(a=>{let s=o[a];if(s!==void 0){let[c,d,p,f]=s;e.save(),e.lineWidth=1/r.zoom.value,t.selectionColor&&(e.strokeStyle=t.selectionColor),a==="rotation"?Kd(e,c+p/2,d+f/2,p/2):e.roundRect?(e.beginPath(),e.roundRect(c,d,p,f,2/r.zoom.value),e.fill(),e.stroke()):Gm(e,c,d,p,f,c+p/2,d+f/2,i,!0),e.restore()}})},$$=(e,t,r,o)=>{t.save();let i=qu*2/r.zoom.value,a=e.width+i*2,s=e.height+i*2,c=e.x+a/2,d=e.y+s/2,p=-(a/2+i),f=-(s/2+i);t.translate(c+r.scrollX,d+r.scrollY),t.rotate(e.angle),t.lineWidth=1/r.zoom.value,t.strokeStyle=o,t.strokeRect(p,f,a,s),t.restore()},xP=({canvas:e,elementsMap:t,visibleElements:r,selectedElements:o,allElementsMap:i,scale:a,appState:s,renderConfig:c,device:d})=>{if(e===null)return{atLeastOneVisibleElement:!1,elementsMap:t};let[p,f]=WC(e,a),m=KC({canvas:e,scale:a,normalizedWidth:p,normalizedHeight:f});m.save(),m.scale(s.zoom.value,s.zoom.value);let g;if(r.forEach(y=>{s.editingLinearElement?.elementId===y.id&&y&&(g=y)}),g&&dE(m,s,g,t),s.selectionElement)try{cI(s.selectionElement,m,s,c.selectionColor)}catch(y){console.error(y)}if(s.editingElement&&he(s.editingElement)){let y=i.get(s.editingElement.id);y&&!y.autoResize&&$$(y,m,s,c.selectionColor)}s.isBindingEnabled&&s.suggestedBindings.filter(y=>y!=null).forEach(y=>{F$(m,s,y,t)}),s.frameToHighlight&&B$(m,s,s.frameToHighlight,t),s.elementsToHighlight&&z$(m,s,s.elementsToHighlight);let h=o.some(y=>He(y));if(o.length===1&&s.editingLinearElement?.elementId===o[0].id&&dE(m,s,o[0],t),s.selectedLinearElement&&s.selectedLinearElement.hoverPointIndex>=0&&L$(m,s,t),!s.multiElement&&!s.editingLinearElement){let y=pf(o,s);o.length===1&&Qe(o[0])&&s.selectedLinearElement?.elementId===o[0].id&&!o[0].locked&&dE(m,s,o[0],t);let k=c.selectionColor||Or.black;if(y){let I=Le(o),A=[];for(let z of t.values()){let L=[];I.has(z.id)&&!Wp(s,z)&&L.push(k);let F=c.remoteSelectedElementIds.get(z.id);if(F&&L.push(...F.map(D=>Fl(D,s.collaborators.get(D)))),L.length){let[D,V,G,Q,de,K]=ho(z,t,!0);A.push({angle:z.angle,elementX1:D,elementY1:V,elementX2:G,elementY2:Q,selectionColors:L,dashed:!!F,cx:de,cy:K,activeEmbeddable:s.activeEmbeddable?.element===z&&s.activeEmbeddable.state==="active"})}}let O=z=>{let L=Gt(t,z),[F,D,V,G]=lt(L);A.push({angle:0,elementX1:F,elementX2:V,elementY1:D,elementY2:G,selectionColors:[Or.black],dashed:!0,cx:F+(V-F)/2,cy:D+(G-D)/2,activeEmbeddable:!1})};for(let z of In(s))O(z);s.editingGroupId&&O(s.editingGroupId),A.forEach(z=>bP(m,s,z))}if(m.save(),m.translate(s.scrollX,s.scrollY),o.length===1){m.fillStyle=Or.white;let I=uI(o[0],s.zoom,t,"mouse",uf(d));!s.viewModeEnabled&&y&&!he(s.editingElement)&&hP(m,c,s,I,o[0].angle)}else if(o.length>1&&!s.isRotating){let I=qu*2/s.zoom.value;m.fillStyle=Or.white;let[A,O,z,L]=lt(o),F=m.getLineDash();m.setLineDash([2/s.zoom.value]);let D=m.lineWidth;m.lineWidth=1/s.zoom.value,m.strokeStyle=k,Gm(m,A-I,O-I,z-A+I*2,L-O+I*2,(A+z)/2,(O+L)/2,0),m.lineWidth=D,m.setLineDash(F);let V=mI([A,O,z,L,(A+z)/2,(O+L)/2],0,s.zoom,"mouse",h?{...uf(d),rotation:!0}:uf(d));o.some(G=>!G.locked)&&hP(m,c,s,V,0)}m.restore()}fP(m,s),m.restore(),Tk({context:m,renderConfig:c,appState:s,normalizedWidth:p,normalizedHeight:f});let b;return c.renderScrollbars&&(b=b3(r,p,f,s),m.save(),m.fillStyle=h3,m.strokeStyle="rgba(255,255,255,0.8)",[b.horizontal,b.vertical].forEach(y=>{y&&Sg(m,y.x,y.y,y.width,y.height,ri/2)}),m.restore()),{scrollBars:b,atLeastOneVisibleElement:r.length>0,elementsMap:t}},uE=ap(e=>{let t=xP(e);e.callback?.(t)},{trailing:!0}),vP=(e,t)=>{if(t){uE(e);return}let r=xP(e);return e.callback(r),r};var EP=w(P(),1),H$=e=>{let t=(0,Zc.useRef)(!1);return(0,Zc.useEffect)(()=>{if(!t.current){t.current=!0;return}let r=new Map,o=new Map,i=new Map,a=new Map,s=new Map;e.appState.collaborators.forEach((d,p)=>{if(d.selectedElementIds)for(let f of Object.keys(d.selectedElementIds))i.has(f)||i.set(f,[]),i.get(f).push(p);!d.pointer||d.pointer.renderCursor===!1||(d.username&&a.set(p,d.username),d.userState&&s.set(p,d.userState),o.set(p,to({sceneX:d.pointer.x,sceneY:d.pointer.y},e.appState)),r.set(p,d.button))});let c=e.containerRef?.current&&getComputedStyle(e.containerRef.current).getPropertyValue("--color-selection")||"#6965db";vP({canvas:e.canvas,elementsMap:e.elementsMap,visibleElements:e.visibleElements,selectedElements:e.selectedElements,allElementsMap:e.allElementsMap,scale:window.devicePixelRatio,appState:e.appState,renderConfig:{remotePointerViewportCoords:o,remotePointerButton:r,remoteSelectedElementIds:i,remotePointerUsernames:a,remotePointerUserStates:s,selectionColor:c,renderScrollbars:!1},device:e.device,callback:e.renderInteractiveSceneCallback},Ph())}),(0,EP.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:e.appState.width,height:e.appState.height,cursor:e.appState.viewModeEnabled?ut.GRAB:ut.AUTO},width:e.appState.width*e.scale,height:e.appState.height*e.scale,ref:e.handleCanvasRef,onContextMenu:e.onContextMenu,onPointerMove:e.onPointerMove,onPointerUp:e.onPointerUp,onPointerCancel:e.onPointerCancel,onTouchMove:e.onTouchMove,onPointerDown:e.onPointerDown,onDoubleClick:e.appState.viewModeEnabled?void 0:e.onDoubleClick,children:E("labels.drawingCanvas")})},yP=e=>({zoom:e.zoom,scrollX:e.scrollX,scrollY:e.scrollY,width:e.width,height:e.height,viewModeEnabled:e.viewModeEnabled,editingGroupId:e.editingGroupId,editingLinearElement:e.editingLinearElement,selectedElementIds:e.selectedElementIds,frameToHighlight:e.frameToHighlight,offsetLeft:e.offsetLeft,offsetTop:e.offsetTop,theme:e.theme,pendingImageElementId:e.pendingImageElementId,selectionElement:e.selectionElement,selectedGroupIds:e.selectedGroupIds,selectedLinearElement:e.selectedLinearElement,multiElement:e.multiElement,isBindingEnabled:e.isBindingEnabled,suggestedBindings:e.suggestedBindings,isRotating:e.isRotating,elementsToHighlight:e.elementsToHighlight,collaborators:e.collaborators,activeEmbeddable:e.activeEmbeddable,snapLines:e.snapLines,zenModeEnabled:e.zenModeEnabled,editingElement:e.editingElement}),U$=(e,t)=>e.selectionNonce!==t.selectionNonce||e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements||e.selectedElements!==t.selectedElements?!1:gr(yP(e.appState),yP(t.appState)),pE=Zc.default.memo(H$,U$);v();var jl=w(j(),1);var SP=w(P(),1),G$=e=>{let t=(0,jl.useRef)(null),r=(0,jl.useRef)(!1);return(0,jl.useEffect)(()=>{let o=t.current;if(!o)return;let i=e.canvas;r.current||(r.current=!0,o.replaceChildren(i),i.classList.add("excalidraw__canvas","static"));let a=`${e.appState.width}px`,s=`${e.appState.height}px`;i.style.width!==a&&(i.style.width=a),i.style.height!==s&&(i.style.height=s);let c=e.appState.width*e.scale,d=e.appState.height*e.scale;i.width!==c&&(i.width=c),i.height!==d&&(i.height=d),VC({canvas:i,rc:e.rc,scale:e.scale,elementsMap:e.elementsMap,allElementsMap:e.allElementsMap,visibleElements:e.visibleElements,appState:e.appState,renderConfig:e.renderConfig},Ph())}),(0,SP.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:t})},wP=e=>({zoom:e.zoom,scrollX:e.scrollX,scrollY:e.scrollY,width:e.width,height:e.height,viewModeEnabled:e.viewModeEnabled,offsetLeft:e.offsetLeft,offsetTop:e.offsetTop,theme:e.theme,pendingImageElementId:e.pendingImageElementId,shouldCacheIgnoreZoom:e.shouldCacheIgnoreZoom,viewBackgroundColor:e.viewBackgroundColor,exportScale:e.exportScale,selectedElementsAreBeingDragged:e.selectedElementsAreBeingDragged,gridSize:e.gridSize,frameRendering:e.frameRendering,selectedElementIds:e.selectedElementIds,frameToHighlight:e.frameToHighlight,editingGroupId:e.editingGroupId,currentHoveredFontFamily:e.currentHoveredFontFamily}),W$=(e,t)=>e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements?!1:gr(wP(e.appState),wP(t.appState))&&gr(e.renderConfig,t.renderConfig),fE=jl.default.memo(G$,W$);v();var Wm=class{scene;constructor(t){this.scene=t}getRenderableElements=(()=>{let t=({elementsMap:o,zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d,height:p,width:f})=>{let m=[];for(let g of o.values())Vd(g,f,p,{zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d},o)&&m.push(g);return m},r=({elements:o,editingElement:i,pendingImageElementId:a})=>{let s=up(new Map);for(let c of o)da(c)&&a===c.id||(!i||i.type!=="text"||c.id!==i.id)&&s.set(c.id,c);return s};return n2(({zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:p,editingElement:f,pendingImageElementId:m,sceneNonce:g})=>{let h=this.scene.getNonDeletedElements(),b=r({elements:h,editingElement:f,pendingImageElementId:m}),y=t({elementsMap:b,zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:p});return{elementsMap:b,visibleElements:y}})})();destroy(){uE.cancel(),YC.cancel(),this.getRenderableElements.clear()}};v();var Rh=w(j(),1);var gE=w(P(),1),TP=({trails:e})=>{let t=(0,Rh.useRef)(null);return(0,Rh.useEffect)(()=>{if(t.current)for(let r of e)r.start(t.current);return()=>{for(let r of e)r.stop()}},e),(0,gE.jsx)("div",{className:"SVGLayer",children:(0,gE.jsx)("svg",{ref:t})})};v();var CP=w(P(),1),K$=5,Y$=(e,t,r)=>{let[o,i]=ho(e,r),{x:a,y:s}=to({sceneX:o+e.width,sceneY:i},t),c=a-t.offsetLeft+10,d=s-t.offsetTop;return{x:c,y:d}},hE=({children:e,element:t,elementsMap:r})=>{let o=jn();if(o.contextMenu||o.draggingElement||o.resizingElement||o.isRotating||o.openMenu||o.viewModeEnabled)return null;let{x:i,y:a}=Y$(t,o,r);return(0,CP.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${a}px`,left:`${i}px`,padding:K$},children:e})};v();var V$=`You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.
|
|
52
72
|
Your role is to transform low-fidelity wireframes into working front-end HTML code.
|
|
53
73
|
|
|
54
74
|
YOU MUST FOLLOW FOLLOWING RULES:
|
|
@@ -68,13 +88,13 @@ If the wireframes, diagrams, or text is unclear or unreadable, refer to provided
|
|
|
68
88
|
|
|
69
89
|
Your goal is a production-ready prototype that brings the wireframes to life.
|
|
70
90
|
|
|
71
|
-
Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function L5({image:t,apiKey:e,text:o,theme:r="light"}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:jk},{role:"user",content:[{type:"image_url",image_url:{url:t,detail:"high"}},{type:"text",text:`Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${r} theme. What follows are the wireframe's text annotations (if any)...`},{type:"text",text:o}]}]},i,a=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(n)});return a.ok?i={...await a.json(),ok:!0}:i={...await a.json(),ok:!1},i}h();var Ms=v(S(),1),Xk="small",du=t=>(0,Ms.jsxs)("label",{className:z("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${Xk}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Ms.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Ms.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var Ti=v(S(),1),qk=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,Ti.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,Ti.jsxs)("div",{className:"follow-mode__badge",children:[(0,Ti.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Ti.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,Ti.jsx)("button",{onClick:r,className:"follow-mode__disconnect-btn",children:Mo})]})}),P5=qk;h();var mu=class{targets=new WeakMap;rafIds=new WeakMap;register(e,o){this.targets.set(e,{callback:o,stopped:!0})}start(e){let o=this.targets.get(e);o&&(this.rafIds.has(e)||(this.targets.set(e,{...o,stopped:!1}),this.scheduleFrame(e)))}stop(e){let o=this.targets.get(e);o&&!o.stopped&&this.targets.set(e,{...o,stopped:!0}),this.cancelFrame(e)}constructFrame(e){return o=>{let r=this.targets.get(e);if(!r)return;let n=this.onFrame(r,o);!r.stopped&&!n?this.scheduleFrame(e):this.cancelFrame(e)}}scheduleFrame(e){let o=requestAnimationFrame(this.constructFrame(e));this.rafIds.set(e,o)}cancelFrame(e){if(this.rafIds.has(e)){let o=this.rafIds.get(e);cancelAnimationFrame(o)}this.rafIds.delete(e)}onFrame(e,o){return e.callback(o)??!1}};h();h();function Jk(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var Qk={};Jk(Qk,"LaserPointer",()=>As);function dt([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function _s([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function Ct([t,e,o],r){return[t*r,e*r,o*r]}function Ja([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function jt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function eI(t,e,o){return dt(t,Ct(_s(e,t),o))}function D5(t,e,o){return Math.atan2(o[1]-t[1],o[0]-t[0])-Math.atan2(e[1]-t[1],e[0]-t[0])}function R5(t){return Math.atan2(Math.sin(t),Math.cos(t))}function N5([t,e]){return Math.sqrt(t**2+e**2)}function Qa([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function tI(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=Qa(t[o-1],t[o]);return e+=Qa(t[t.length-2],t[t.length-1]),e}var oI=(t,e,o)=>Math.max(e,Math.min(o,t));function rI(t,e,o){let r=Qa(e,o);if(r===0)return Qa(t,e);let n=oI(((t[0]-e[0])*(o[0]-e[0])+(t[1]-e[1])*(o[1]-e[1]))/r**2,0,1),i=[e[0]+n*(o[0]-e[0]),e[1]+n*(o[1]-e[1]),t[2]];return Qa(i,t)}function uu(t,e){if(e===0||t.length<=2)return t;let o=t[0],r=t[t.length-1],[n,i]=t.reduce(([a,l],s,c)=>{let m=rI(s,o,r);return m>a?[m,c]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...uu([o,...t.slice(1,i),a],e).slice(0,-1),a,...uu([a,...t.slice(i,-1),r],e).slice(1)]}else return[o,r]}var As=class t{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:e=>e>35?.5:1,maxTailLength:50}}constructor(e){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},t.defaults,e)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(e){let o=this.originalPoints[this.originalPoints.length-1];if(!(o&&o[0]===e[0]&&o[1]===e[1])){if(this.originalPoints.push(e),this.isFresh){this.isFresh=!1,this.stablePoints.push(e);return}this.options.streamline>0&&(e=eI(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),tI(this.tailPoints)>t.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&this.options.simplifyPhase=="tail")throw new Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(e,o,r,n,i){return(e??this.options.size)*this.options.sizeMapping({pressure:o,runningLength:i,currentIndex:r,totalLength:n})}getStrokeOutline(e){if(this.isFresh)return[];let o=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&this.options.simplifyPhase==="input"&&(o=uu(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let A=o[0],P=this.getSize(e,A[2],0,r,0);if(P<.5)return[];let F=[];for(let D=0;D<=Math.PI*2;D+=Math.PI/16)F.push(dt(A,Ct(jt([1,0,0],D),P)));return F.push(dt(A,Ct([1,0,0],this.getSize(e,A[2],0,r,0)))),F}if(r===2){let A=o[0],P=o[1],F=this.getSize(e,A[2],0,r,0),D=this.getSize(e,P[2],0,r,0);if(F<.5||D<.5)return[];let W=[],O=D5(A,[A[0],A[1]-100,A[2]],P);for(let U=O;U<=Math.PI+O;U+=Math.PI/16)W.push(dt(A,Ct(jt([1,0,0],U),F)));for(let U=Math.PI+O;U<=Math.PI*2+O;U+=Math.PI/16)W.push(dt(P,Ct(jt([1,0,0],U),D)));return W.push(W[0]),W}let n=[],i=[],a=0,l=0,s=0,c=0;for(let A=1;A<r-1;A++){let P=o[A-1],F=o[A],D=o[A+1],W=F[2],O=Qa(P,F);c+=O,a=l+(O-l)*.2;let U=this.getSize(e,W,A,r,c);if(U===0){s=A+1;continue}let ee=Ja(_s(P,F)),K=Ja(_s(D,F)),pe=jt(ee,Math.PI/2),me=jt(ee,-Math.PI/2),ce=jt(K,Math.PI/2),oe=jt(K,-Math.PI/2),R=dt(F,Ct(pe,U)),B=dt(F,Ct(me,U)),V=dt(F,Ct(ce,U)),Z=dt(F,Ct(oe,U)),Y=dt(pe,oe),j=dt(me,ce),J=dt(F,Ct(N5(Y)===0?ee:Ja(Y),U)),ne=dt(F,Ct(N5(j)===0?K:Ja(j),U)),mt=R5(D5(F,P,D)),tt=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(mt)<tt){let at=Math.abs(R5(Math.PI-mt));if(at===0)continue;if(mt<0){i.push(B,ne);for(let He=0;He<=at;He+=at/4)n.push(dt(F,jt(Ct(pe,U),He)));for(let He=at;He>=0;He-=at/4)i.push(dt(F,jt(Ct(pe,U),He)));i.push(ne,V)}else{n.push(R,J);for(let He=0;He<=at;He+=at/4)i.push(dt(F,jt(Ct(pe,-U),-He)));for(let He=at;He>=0;He-=at/4)n.push(dt(F,jt(Ct(pe,-U),-He)));n.push(J,Z)}}else n.push(J),i.push(ne);l=a}if(s>=r-2)if(this.options.keepHead){let A=o[r-1],P=[];for(let F=0;F<=Math.PI*2;F+=Math.PI/16)P.push(dt(A,Ct(jt([1,0,0],F),this.options.size)));return P.push(dt(A,Ct([1,0,0],this.options.size))),P}else return[];let m=o[s],d=o[s+1],f=o[r-2],p=o[r-1],b=Ja(_s(d,m)),x=Ja(_s(f,p)),y=jt(b,-Math.PI/2),w=jt(x,Math.PI/2),k=this.getSize(e,m[2],0,r,0),C=[],M=this.options.keepHead?this.options.size:this.getSize(e,f[2],r-2,r,c),_=[];if(k>1){for(let A=0;A<=Math.PI;A+=Math.PI/16)C.unshift(dt(m,jt(Ct(y,k),-A)));C.unshift(dt(m,Ct(y,-k)))}else C.push(m);for(let A=0;A<=Math.PI*3;A+=Math.PI/16)_.push(dt(p,jt(Ct(w,-M),-A)));let I=[...C,...n,..._.reverse(),...i.reverse()];return C.length>0&&I.push(C[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?uu(I,this.options.simplify):I}};var Si=class{constructor(e,o,r){this.animationFrameHandler=e;this.app=o;this.options=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.trailElement=document.createElementNS(v1,"path")}currentTrail;pastTrails=[];container;trailElement;get hasCurrentTrail(){return!!this.currentTrail}hasLastPoint(e,o){if(this.currentTrail){let r=this.currentTrail.originalPoints.length;return this.currentTrail.originalPoints[r-1][0]===e&&this.currentTrail.originalPoints[r-1][1]===o}return!1}start(e){e&&(this.container=e),this.trailElement.parentNode!==this.container&&this.container&&this.container.appendChild(this.trailElement),this.animationFrameHandler.start(this)}stop(){this.animationFrameHandler.stop(this),this.trailElement.parentNode===this.container&&this.container?.removeChild(this.trailElement)}startPath(e,o){this.currentTrail=new As(this.options),this.currentTrail.addPoint([e,o,performance.now()]),this.update()}addPointToPath(e,o){this.currentTrail&&(this.currentTrail.addPoint([e,o,performance.now()]),this.update())}endPath(){this.currentTrail&&(this.currentTrail.close(),this.currentTrail.options.keepHead=!1,this.pastTrails.push(this.currentTrail),this.currentTrail=void 0,this.update())}update(){this.start()}onFrame(){let e=[];for(let r of this.pastTrails)e.push(this.drawTrail(r,this.app.state));if(this.currentTrail){let r=this.drawTrail(this.currentTrail,this.app.state);e.push(r)}this.pastTrails=this.pastTrails.filter(r=>r.getStrokeOutline().length!==0),e.length===0&&this.stop();let o=e.join(" ").trim();this.trailElement.setAttribute("d",o),this.trailElement.setAttribute("fill",(this.options.fill??(()=>"black"))(this))}drawTrail(e,o){let r=e.getStrokeOutline(e.options.size/o.zoom.value).map(([n,i])=>{let a=qt({sceneX:n,sceneY:i},o);return[a.x,a.y]});return R1(r,!0)}};h();var pu=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Si(e,o,{...this.getTrailOptions(),fill:()=>Su})}localTrail;collabTrails=new Map;container;getTrailOptions(){return{simplify:0,streamline:.4,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/1e3),i=(50-Math.min(50,e.totalLength-e.currentIndex))/50;return Math.min(Un(i),Un(n))}}}startPath(e,o){this.localTrail.startPath(e,o)}addPointToPath(e,o){this.localTrail.addPointToPath(e,o)}endPath(){this.localTrail.endPath()}start(e){this.container=e,this.animationFrameHandler.start(this),this.localTrail.start(e)}stop(){this.animationFrameHandler.stop(this),this.localTrail.stop()}onFrame(){this.updateCollabTrails()}updateCollabTrails(){if(!(!this.container||this.app.state.collaborators.size===0)){for(let[e,o]of this.app.state.collaborators.entries()){let r;this.collabTrails.has(e)?r=this.collabTrails.get(e):(r=new Si(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>o.pointer?.laserColor||ui(e,o)}),r.start(this.container),this.collabTrails.set(e,r)),o.pointer&&o.pointer.tool==="laser"&&(o.button==="down"&&!r.hasCurrentTrail&&r.startPath(o.pointer.x,o.pointer.y),o.button==="down"&&r.hasCurrentTrail&&!r.hasLastPoint(o.pointer.x,o.pointer.y)&&r.addPointToPath(o.pointer.x,o.pointer.y),o.button==="up"&&r.hasCurrentTrail&&(r.addPointToPath(o.pointer.x,o.pointer.y),r.endPath()))}for(let e of this.collabTrails.keys())this.app.state.collaborators.has(e)||(this.collabTrails.get(e).stop(),this.collabTrails.delete(e))}}};h();var nI=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,s=t*(a.value-1)/2,c=e*(a.value-1)/2;return t>n&&a.value!==1&&(s=n*(a.value-1)/2),e>i&&a.value!==1&&(c=i*(a.value-1)/2),`translate(${s}px, ${c}px) scale(${a.value}) rotate(${l}deg)`},O5=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l})=>{let s=(O,U)=>{if(!U.style.fontFamily||!U.style.fontSize)return!1;let ee=U.style.fontFamily.replace(/"/g,"");return Du({fontFamily:O.fontFamily})!==ee||`${O.fontSize}px`!==U.style.fontSize},c=()=>{let O=l.state,U=ao.getScene(n)?.getElement(t);if(!U)return;let{textAlign:ee,verticalAlign:K}=U,pe=l.scene.getNonDeletedElementsMap();if(U&&le(U)){let me=U.x,ce=U.y,oe=Lr(U,l.scene.getNonDeletedElementsMap()),R=U.width,B=U.height,V=U.width,Z=U.height;if(oe&&U.containerId){if(Mr(oe)){let Xt=he.getBoundTextElementPosition(oe,U,pe);me=Xt.x,ce=Xt.y}let at=s(U,m),He;if(at?He=wl(oe.id,oe.height):(He=Q1[oe.id],He||(He=wl(oe.id,oe.height))),R=Zu(oe,U),B=ub(oe,U),!Mr(oe)&&Z>B){let Xt=Hi(Z,oe.type);te(oe,{height:Xt});return}else if(!Mr(oe)&&oe.height>He.height&&Z<B){let Xt=Hi(Z,oe.type);te(oe,{height:Xt})}else{let{y:Xt}=pc(oe,U,pe);ce=Xt}}let[Y,j]=r(me,ce),J=m.selectionStart,ne=m.selectionEnd,mt=m.value.length;if(J===ne&&ne!==mt){let at=mt-ne;m.selectionStart=m.value.length-at,m.selectionEnd=m.value.length-at}oe||(R=(O.width-8-Y)/O.zoom.value,V=Math.min(V,R));let tt=(O.height-j)/O.zoom.value;Object.assign(m.style,{font:Ko(U),lineHeight:U.lineHeight,width:`${V}px`,height:`${Z}px`,left:`${Y}px`,top:`${j}px`,transform:nI(V,Z,sb(U,oe),O,R,tt),textAlign:ee,verticalAlign:K,color:U.strokeColor,opacity:U.opacity/100,filter:"var(--theme-filter)",maxHeight:`${tt}px`}),m.scrollTop=0,tc()&&(m.style.fontFamily=Du(U)),te(U,{x:me,y:ce})}},m=document.createElement("textarea");m.dir="auto",m.tabIndex=0,m.dataset.type="wysiwyg",m.wrap="off",m.classList.add("excalidraw-wysiwyg");let d="pre",f="normal";bt(n)&&(d="pre-wrap",f="break-word"),Object.assign(m.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,padding:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:f,whiteSpace:d,overflowWrap:"break-word",boxSizing:"content-box"}),m.value=n.originalText,c(),e&&(m.onpaste=async O=>{let U=await Lc(O,!0);if(!U.text)return;let ee=Cl(U.text);if(!ee)return;let K=Lr(n,l.scene.getNonDeletedElementsMap()),pe=Ko({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(K){let me=lt(K,l.scene.getNonDeletedElementsMap()),ce=ib(`${m.value}${ee}`,pe,Zu(K,me)),oe=nb(ce,pe);m.style.width=`${oe}px`}},m.oninput=()=>{e(Cl(m.value))}),m.onkeydown=O=>{if(!O.shiftKey&&Wd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(Wd),c();else if(!O.shiftKey&&Gd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(Gd),c();else if(zf.keyTest(O))l.actionManager.executeAction(zf);else if(Hf.keyTest(O))l.actionManager.executeAction(Hf);else if(O.key===T.ESCAPE)O.preventDefault(),M=!0,_();else if(O.key===T.ENTER&&O[T.CTRL_OR_CMD]){if(O.preventDefault(),O.isComposing||O.keyCode===229)return;M=!0,_()}else if(O.key===T.TAB||O[T.CTRL_OR_CMD]&&(O.code===fe.BRACKET_LEFT||O.code===fe.BRACKET_RIGHT)){if(O.preventDefault(),O.isComposing)return;O.shiftKey||O.code===fe.BRACKET_LEFT?w():y(),m.dispatchEvent(new Event("input"))}};let p=4,b=" ".repeat(p),x=new RegExp(`^ {1,${p}}`),y=()=>{let{selectionStart:O,selectionEnd:U}=m,ee=k(),K=m.value;ee.forEach(pe=>{let me=K.slice(0,pe),ce=K.slice(pe);K=`${me}${b}${ce}`}),m.value=K,m.selectionStart=O+p,m.selectionEnd=U+p*ee.length},w=()=>{let{selectionStart:O,selectionEnd:U}=m,ee=k(),K=[],pe=m.value;ee.forEach(me=>{let ce=pe.slice(me,me+p).match(x);if(ce){let oe=pe.slice(0,me),R=pe.slice(me+ce[0].length);pe=`${oe}${R}`,K.push(me)}}),m.value=pe,K.length&&(O>K[K.length-1]?m.selectionStart=Math.max(O-p,K[K.length-1]):m.selectionStart=O,m.selectionEnd=Math.max(m.selectionStart,U-p*K.length))},k=()=>{let{selectionStart:O,selectionEnd:U,value:ee}=m,K=ee.slice(0,O).match(/[^\n]*$/)[0].length;return O=O-K,ee.slice(O,U).split(`
|
|
72
|
-
`).reduce((me,ce,oe,R)=>me.concat(oe?me[oe-1]+R[oe-1].length+1:O),[]).reverse()},C=O=>{O.preventDefault(),O.stopPropagation()},M=!1,_=()=>{I();let O=ao.getScene(n)?.getElement(n.id);if(!O)return;let U=m.value,ee=Lr(O,l.scene.getNonDeletedElementsMap());if(ee){if(U=O.text,m.value.trim()){let K=lb(ee);!K||K!==n.id?te(ee,{boundElements:(ee.boundElements||[]).concat({type:"text",id:n.id})}):Mr(ee)&&Xi(ee)}else te(ee,{boundElements:ee.boundElements?.filter(K=>!le(K))});$t(O,ee,l.scene.getNonDeletedElementsMap())}o({text:U,viaKeyboard:M,originalText:m.value})},I=()=>{D||(D=!0,m.onblur=null,m.oninput=null,m.onkeydown=null,W&&W.disconnect(),window.removeEventListener("resize",c),window.removeEventListener("wheel",C,!0),window.removeEventListener("pointerdown",P),window.removeEventListener("pointerup",A),window.removeEventListener("blur",_),window.removeEventListener("beforeunload",_),F(),m.remove())},A=O=>{window.removeEventListener("pointerup",A);let U=O?.target,ee=U instanceof HTMLElement&&U.classList.contains("active-color");setTimeout(()=>{if(m.onblur=_,ee){let K=(me,ce)=>{me.find(R=>R.removedNodes.length>0&&R.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{m.focus()}),ce.disconnect())};new MutationObserver(K).observe(document.querySelector(".excalidraw-container"),{childList:!0})}ee||m.focus()})},P=O=>{let U=O.target instanceof HTMLElement&&O.target.classList.contains("active-color");((O.target instanceof HTMLElement||O.target instanceof SVGElement)&&O.target.closest(`.${Ws.SHAPE_ACTIONS_MENU}`)&&!wo(O.target)||U)&&(m.onblur=null,window.addEventListener("pointerup",A),window.addEventListener("blur",_))},F=ao.getScene(n).addCallback(()=>{c(),!!document.activeElement?.closest(".color-picker-content")||m.focus()}),D=!1;m.select(),A();let W=null;i&&"ResizeObserver"in window?(W=new window.ResizeObserver(()=>{c()}),W.observe(i)):window.addEventListener("resize",c),window.addEventListener("pointerdown",P),window.addEventListener("wheel",C,{passive:!1,capture:!0}),window.addEventListener("beforeunload",_),a?.querySelector(".excalidraw-textEditorContainer").appendChild(m)};var Ce=v(S(),1),H5=Tt.default.createContext(null),$5=Tt.default.createContext(null),U5={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},Ig=Tt.default.createContext(U5);Ig.displayName="DeviceContext";var Mg=Tt.default.createContext({container:null,id:null});Mg.displayName="ExcalidrawContainerContext";var _g=Tt.default.createContext([]);_g.displayName="ExcalidrawElementsContext";var Ag=Tt.default.createContext({...$i(),width:0,height:0,offsetLeft:0,offsetTop:0});Ag.displayName="ExcalidrawAppStateContext";var Lg=Tt.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});Lg.displayName="ExcalidrawSetAppStateContext";var Pg=Tt.default.createContext(null);Pg.displayName="ExcalidrawActionManagerContext";var so=()=>(0,Tt.useContext)(H5),Sn=()=>(0,Tt.useContext)($5),Me=()=>(0,Tt.useContext)(Ig),Mt=()=>(0,Tt.useContext)(Mg),En=()=>(0,Tt.useContext)(_g),Da=()=>(0,Tt.useContext)(Ag),_e=()=>(0,Tt.useContext)(Lg),St=()=>(0,Tt.useContext)(Pg),Ls=!1,wg=0,ki=!1,Ps=!1,Cg=!1,Tg={horizontal:null,vertical:null},Fn=0,Ds=!1,Sg=new Map,fu=!1,F5=0,B5=!1,Rs=null,Ae={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},kg=class t extends Tt.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=U5;excalidrawContainerRef=Tt.default.createRef();scene;renderer;fonts;resizeObserver;nearestScrollableContainer;library;libraryItemsFromStorage;id;history;excalidrawContainerValue;files={};imageCache=new Map;iFrameRefs=new Map;embedsValidationStatus=new Map;initializedEmbeds=new Set;elementsPendingErasure=new Set;hitLinkElement;lastPointerDownEvent=null;lastPointerUpEvent=null;lastPointerMoveEvent=null;lastViewportPosition={x:0,y:0};animationFrameHandler=new mu;laserTrails=new pu(this.animationFrameHandler,this);eraserTrail=new Si(this.animationFrameHandler,this,{streamline:.2,size:5,keepHead:!0,sizeMapping:e=>{let n=Math.max(0,1-(performance.now()-e.pressure)/200),i=(10-Math.min(10,e.totalLength-e.currentIndex))/10;return Math.min(Un(i),Un(n))},fill:()=>this.state.theme===Je.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new Do;onPointerDownEmitter=new Do;onPointerUpEmitter=new Do;onUserFollowEmitter=new Do;onScrollChangeEmitter=new Do;missingPointerEventCleanupEmitter=new Do;onRemoveEventListenersEmitter=new Do;constructor(e){super(e);let o=$i(),{excalidrawAPI:r,viewModeEnabled:n=!1,zenModeEnabled:i=!1,gridModeEnabled:a=!1,objectsSnapModeEnabled:l=!1,theme:s=o.theme,name:c=`${g("labels.untitled")}-${Pu()}`}=e;if(this.state={...o,theme:s,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:n,zenModeEnabled:i,objectsSnapModeEnabled:l,gridSize:a?Ir:null,name:c,width:window.innerWidth,height:window.innerHeight},this.id=w1(),this.library=new yE(this),this.actionManager=new _m(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new ao,this.canvas=document.createElement("canvas"),this.rc=E1.canvas(this.canvas),this.renderer=new Is(this.scene),r){let m={updateScene:this.updateScene,updateLibrary:this.library.updateLibrary,addFiles:this.addFiles,resetScene:this.resetScene,getSceneElementsIncludingDeleted:this.getSceneElementsIncludingDeleted,history:{clear:this.resetHistory},scrollToContent:this.scrollToContent,getSceneElements:this.getSceneElements,getAppState:()=>this.state,getFiles:()=>this.files,getName:this.getName,registerAction:d=>{this.actionManager.registerAction(d)},refresh:this.refresh,setToast:this.setToast,id:this.id,setActiveTool:this.setActiveTool,setCursor:this.setCursor,resetCursor:this.resetCursor,updateFrameRendering:this.updateFrameRendering,toggleSidebar:this.toggleSidebar,onChange:d=>this.onChangeEmitter.on(d),onPointerDown:d=>this.onPointerDownEmitter.on(d),onPointerUp:d=>this.onPointerUpEmitter.on(d),onScrollChange:d=>this.onScrollChangeEmitter.on(d),onUserFollow:d=>this.onUserFollowEmitter.on(d)};typeof r=="function"?r(m):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new ru({scene:this.scene,onSceneUpdated:this.onSceneUpdated}),this.history=new Bw,this.actionManager.registerAll(wb),this.actionManager.registerAction(Rw(this.history)),this.actionManager.registerAction(Nw(this.history))}onWindowMessage(e){if(e.origin!=="https://player.vimeo.com"&&e.origin!=="https://www.youtube.com")return;let o=null;try{o=JSON.parse(e.data)}catch{}if(o)switch(e.origin){case"https://player.vimeo.com":if(o.method==="paused"){let r=null,n=document.body.querySelectorAll("iframe.excalidraw__embeddable");if(!n)break;for(let i of n)i.contentWindow===e.source&&(r=i.contentWindow);r?.postMessage(JSON.stringify({method:o.value?"play":"pause",value:!0}),"*")}break;case"https://www.youtube.com":if(o.event==="infoDelivery"&&o.info&&o.id&&typeof o.info.playerState=="number"){let r=o.id,n=o.info.playerState;Object.values(rl).includes(n)&&Sg.set(r,n)}break}}cacheEmbeddableRef(e,o){o&&this.iFrameRefs.set(e.id,o)}getHTMLIFrameElement(e){return this.iFrameRefs.get(e.id)}handleEmbeddableCenterClick(e){if(this.state.activeEmbeddable?.element===e&&this.state.activeEmbeddable?.state==="active"||(setTimeout(()=>{this.setState({activeEmbeddable:{element:e,state:"active"},selectedElementIds:{[e.id]:!0},draggingElement:null,selectionElement:null})},100),Pi(e)))return;let o=this.getHTMLIFrameElement(e);if(o?.contentWindow){if(o.src.includes("youtube")){let r=Sg.get(e.id);switch(r||(Sg.set(e.id,rl.UNSTARTED),o.contentWindow.postMessage(JSON.stringify({event:"listening",id:e.id}),"*")),r){case rl.PLAYING:case rl.BUFFERING:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*");break;default:o.contentWindow?.postMessage(JSON.stringify({event:"command",func:"playVideo",args:""}),"*")}}o.src.includes("player.vimeo.com")&&o.contentWindow.postMessage(JSON.stringify({method:"paused"}),"*")}}isIframeLikeElementCenter(e,o,r,n){return e&&!o.altKey&&!o.shiftKey&&!o.metaKey&&!o.ctrlKey&&(this.state.activeEmbeddable?.element!==e||this.state.activeEmbeddable?.state==="hover"||!this.state.activeEmbeddable)&&r>=e.x+e.width/3&&r<=e.x+2*e.width/3&&n>=e.y+e.height/3&&n<=e.y+2*e.height/3}updateEmbedValidationStatus=(e,o)=>{this.embedsValidationStatus.set(e.id,o),mr.delete(e)};updateEmbeddables=()=>{let e=new Set,o=!1;this.scene.getNonDeletedElements().filter(r=>{if(Ht(r)){if(e.add(r.id),!this.embedsValidationStatus.has(r.id)){o=!0;let n=Gi(r.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(r,n)}}else Pi(r)&&e.add(r.id);return!1}),o&&this.scene.informMutation(),this.iFrameRefs.forEach((r,n)=>{e.has(n)||this.iFrameRefs.delete(n)})};renderEmbeddables(){let e=this.state.zoom.value,o=this.state.width,r=this.state.height,n=this.scene.getNonDeletedElements().filter(i=>Ht(i)&&this.embedsValidationStatus.get(i.id)===!0||Pi(i));return(0,Ce.jsx)(Ce.Fragment,{children:n.map(i=>{let{x:a,y:l}=qt({sceneX:i.x,sceneY:i.y},this.state),s=Al(i,o,r,this.state,this.scene.getNonDeletedElementsMap()),c=this.initializedEmbeds.has(i.id);if(s&&!c&&this.initializedEmbeds.add(i.id),!(s||c))return null;let d;if(Pi(i)){d=null;let b=(i.customData?.generationData??this.magicGenerations.get(i.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(b.status==="done"){let x=b.html;d={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>x}}else if(b.status==="pending")d={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>Xu(`
|
|
91
|
+
Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function IP({image:e,apiKey:t,text:r,theme:o=Be.LIGHT}){let i={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:V$},{role:"user",content:[{type:"image_url",image_url:{url:e,detail:"high"}},{type:"text",text:`Above is the reference wireframe. Please make a new website based on these and return just the HTML file. Also, please make it for the ${o} theme. What follows are the wireframe's text annotations (if any)...`},{type:"text",text:r}]}]},a,s=await fetch("https://api.openai.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify(i)});return s.ok?a={...await s.json(),ok:!0}:a={...await s.json(),ok:!1},a}v();var Km=w(P(),1),X$="small",Dh=e=>(0,Km.jsxs)("label",{className:q("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${X$}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Km.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Km.jsx)("div",{className:"ToolIcon__icon",children:e.icon})]});v();var Jl=w(P(),1),Z$=({height:e,width:t,userToFollow:r,onDisconnect:o})=>(0,Jl.jsx)("div",{className:"follow-mode",style:{width:t,height:e},children:(0,Jl.jsxs)("div",{className:"follow-mode__badge",children:[(0,Jl.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Jl.jsx)("span",{className:"follow-mode__badge__username",title:r.username,children:r.username})]}),(0,Jl.jsx)("button",{type:"button",onClick:o,className:"follow-mode__disconnect-btn",children:Zo})]})}),_P=Z$;v();var Nh=class{targets=new WeakMap;rafIds=new WeakMap;register(t,r){this.targets.set(t,{callback:r,stopped:!0})}start(t){let r=this.targets.get(t);r&&(this.rafIds.has(t)||(this.targets.set(t,{...r,stopped:!1}),this.scheduleFrame(t)))}stop(t){let r=this.targets.get(t);r&&!r.stopped&&this.targets.set(t,{...r,stopped:!0}),this.cancelFrame(t)}constructFrame(t){return r=>{let o=this.targets.get(t);if(!o)return;let i=this.onFrame(o,r);!o.stopped&&!i?this.scheduleFrame(t):this.cancelFrame(t)}}scheduleFrame(t){let r=requestAnimationFrame(this.constructFrame(t));this.rafIds.set(t,r)}cancelFrame(t){if(this.rafIds.has(t)){let r=this.rafIds.get(t);cancelAnimationFrame(r)}this.rafIds.delete(t)}onFrame(t,r){return t.callback(r)??!1}};v();v();function q$(e,t,r,o){Object.defineProperty(e,t,{get:r,set:o,enumerable:!0,configurable:!0})}var j$={};q$(j$,"LaserPointer",()=>Vm);function jt([e,t,r],[o,i,a]){return[e+o,t+i,r+a]}function Ym([e,t,r],[o,i,a]){return[e-o,t-i,r-a]}function mr([e,t,r],o){return[e*o,t*o,r*o]}function qc([e,t,r]){return[e/Math.sqrt(e**2+t**2),t/Math.sqrt(e**2+t**2),r]}function Zr([e,t,r],o){return[Math.cos(o)*e-Math.sin(o)*t,Math.sin(o)*e+Math.cos(o)*t,r]}function J$(e,t,r){return jt(e,mr(Ym(t,e),r))}function AP(e,t,r){return Math.atan2(r[1]-e[1],r[0]-e[0])-Math.atan2(t[1]-e[1],t[0]-e[0])}function kP(e){return Math.atan2(Math.sin(e),Math.cos(e))}function MP([e,t]){return Math.sqrt(e**2+t**2)}function jc([e,t],[r,o]){return Math.sqrt((r-e)**2+(o-t)**2)}function Q$(e){if(e.length<2)return 0;let t=0;for(let r=1;r<=e.length-1;r++)t+=jc(e[r-1],e[r]);return t+=jc(e[e.length-2],e[e.length-1]),t}var eH=(e,t,r)=>Math.max(t,Math.min(r,e));function tH(e,t,r){let o=jc(t,r);if(o===0)return jc(e,t);let i=eH(((e[0]-t[0])*(r[0]-t[0])+(e[1]-t[1])*(r[1]-t[1]))/o**2,0,1),a=[t[0]+i*(r[0]-t[0]),t[1]+i*(r[1]-t[1]),e[2]];return jc(a,e)}function Oh(e,t){if(t===0||e.length<=2)return e;let r=e[0],o=e[e.length-1],[i,a]=e.reduce(([s,c],d,p)=>{let f=tH(d,r,o);return f>s?[f,p]:[s,c]},[0,-1]);if(i>=t){let s=e[a];return[...Oh([r,...e.slice(1,a),s],t).slice(0,-1),s,...Oh([s,...e.slice(a,-1),o],t).slice(1)]}else return[r,o]}var Vm=class e{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:t=>t>35?.5:1,maxTailLength:50}}constructor(t){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},e.defaults,t)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(t){let r=this.originalPoints[this.originalPoints.length-1];if(!(r&&r[0]===t[0]&&r[1]===t[1])){if(this.originalPoints.push(t),this.isFresh){this.isFresh=!1,this.stablePoints.push(t);return}this.options.streamline>0&&(t=J$(this.lastPoint,t,1-this.options.streamline)),this.tailPoints.push(t),Q$(this.tailPoints)>e.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&this.options.simplifyPhase=="tail")throw new Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(t,r,o,i,a){return(t??this.options.size)*this.options.sizeMapping({pressure:r,runningLength:a,currentIndex:o,totalLength:i})}getStrokeOutline(t){if(this.isFresh)return[];let r=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&this.options.simplifyPhase==="input"&&(r=Oh(r,this.options.simplify));let o=r.length;if(o===0)return[];if(o===1){let F=r[0],D=this.getSize(t,F[2],0,o,0);if(D<.5)return[];let V=[];for(let G=0;G<=Math.PI*2;G+=Math.PI/16)V.push(jt(F,mr(Zr([1,0,0],G),D)));return V.push(jt(F,mr([1,0,0],this.getSize(t,F[2],0,o,0)))),V}if(o===2){let F=r[0],D=r[1],V=this.getSize(t,F[2],0,o,0),G=this.getSize(t,D[2],0,o,0);if(V<.5||G<.5)return[];let Q=[],de=AP(F,[F[0],F[1]-100,F[2]],D);for(let K=de;K<=Math.PI+de;K+=Math.PI/16)Q.push(jt(F,mr(Zr([1,0,0],K),V)));for(let K=Math.PI+de;K<=Math.PI*2+de;K+=Math.PI/16)Q.push(jt(D,mr(Zr([1,0,0],K),G)));return Q.push(Q[0]),Q}let i=[],a=[],s=0,c=0,d=0,p=0;for(let F=1;F<o-1;F++){let D=r[F-1],V=r[F],G=r[F+1],Q=V[2],de=jc(D,V);p+=de,s=c+(de-c)*.2;let K=this.getSize(t,Q,F,o,p);if(K===0){d=F+1;continue}let se=qc(Ym(D,V)),be=qc(Ym(G,V)),_e=Zr(se,Math.PI/2),nt=Zr(se,-Math.PI/2),Ee=Zr(be,Math.PI/2),ue=Zr(be,-Math.PI/2),U=jt(V,mr(_e,K)),Y=jt(V,mr(nt,K)),oe=jt(V,mr(Ee,K)),ie=jt(V,mr(ue,K)),le=jt(_e,ue),ce=jt(nt,Ee),pe=jt(V,mr(MP(le)===0?se:qc(le),K)),ye=jt(V,mr(MP(ce)===0?be:qc(ce),K)),Tt=kP(AP(V,D,G)),xt=e.constants.cornerDetectionMaxAngle/180*Math.PI*e.constants.cornerDetectionVariance(s);if(Math.abs(Tt)<xt){let Nt=Math.abs(kP(Math.PI-Tt));if(Nt===0)continue;if(Tt<0){a.push(Y,ye);for(let yt=0;yt<=Nt;yt+=Nt/4)i.push(jt(V,Zr(mr(_e,K),yt)));for(let yt=Nt;yt>=0;yt-=Nt/4)a.push(jt(V,Zr(mr(_e,K),yt)));a.push(ye,oe)}else{i.push(U,pe);for(let yt=0;yt<=Nt;yt+=Nt/4)a.push(jt(V,Zr(mr(_e,-K),-yt)));for(let yt=Nt;yt>=0;yt-=Nt/4)i.push(jt(V,Zr(mr(_e,-K),-yt)));i.push(pe,ie)}}else i.push(pe),a.push(ye);c=s}if(d>=o-2)if(this.options.keepHead){let F=r[o-1],D=[];for(let V=0;V<=Math.PI*2;V+=Math.PI/16)D.push(jt(F,mr(Zr([1,0,0],V),this.options.size)));return D.push(jt(F,mr([1,0,0],this.options.size))),D}else return[];let f=r[d],m=r[d+1],g=r[o-2],h=r[o-1],b=qc(Ym(m,f)),y=qc(Ym(g,h)),T=Zr(b,-Math.PI/2),k=Zr(y,Math.PI/2),I=this.getSize(t,f[2],0,o,0),A=[],O=this.options.keepHead?this.options.size:this.getSize(t,g[2],o-2,o,p),z=[];if(I>1){for(let F=0;F<=Math.PI;F+=Math.PI/16)A.unshift(jt(f,Zr(mr(T,I),-F)));A.unshift(jt(f,mr(T,-I)))}else A.push(f);for(let F=0;F<=Math.PI*3;F+=Math.PI/16)z.push(jt(h,Zr(mr(k,-O),-F)));let L=[...A,...i,...z.reverse(),...a.reverse()];return A.length>0&&L.push(A[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Oh(L,this.options.simplify):L}};var Ql=class{constructor(t,r,o){this.animationFrameHandler=t;this.app=r;this.options=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.trailElement=document.createElementNS(US,"path")}currentTrail;pastTrails=[];container;trailElement;get hasCurrentTrail(){return!!this.currentTrail}hasLastPoint(t,r){if(this.currentTrail){let o=this.currentTrail.originalPoints.length;return this.currentTrail.originalPoints[o-1][0]===t&&this.currentTrail.originalPoints[o-1][1]===r}return!1}start(t){t&&(this.container=t),this.trailElement.parentNode!==this.container&&this.container&&this.container.appendChild(this.trailElement),this.animationFrameHandler.start(this)}stop(){this.animationFrameHandler.stop(this),this.trailElement.parentNode===this.container&&this.container?.removeChild(this.trailElement)}startPath(t,r){this.currentTrail=new Vm(this.options),this.currentTrail.addPoint([t,r,performance.now()]),this.update()}addPointToPath(t,r){this.currentTrail&&(this.currentTrail.addPoint([t,r,performance.now()]),this.update())}endPath(){this.currentTrail&&(this.currentTrail.close(),this.currentTrail.options.keepHead=!1,this.pastTrails.push(this.currentTrail),this.currentTrail=void 0,this.update())}update(){this.start()}onFrame(){let t=[];for(let o of this.pastTrails)t.push(this.drawTrail(o,this.app.state));if(this.currentTrail){let o=this.drawTrail(this.currentTrail,this.app.state);t.push(o)}this.pastTrails=this.pastTrails.filter(o=>o.getStrokeOutline().length!==0),t.length===0&&this.stop();let r=t.join(" ").trim();this.trailElement.setAttribute("d",r),this.trailElement.setAttribute("fill",(this.options.fill??(()=>"black"))(this))}drawTrail(t,r){let o=t.getStrokeOutline(t.options.size/r.zoom.value).map(([i,a])=>{let s=to({sceneX:i,sceneY:a},r);return[s.x,s.y]});return i2(o,!0)}};v();var Fh=class{constructor(t,r){this.animationFrameHandler=t;this.app=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Ql(t,r,{...this.getTrailOptions(),fill:()=>xx})}localTrail;collabTrails=new Map;container;getTrailOptions(){return{simplify:0,streamline:.4,sizeMapping:t=>{let i=Math.max(0,1-(performance.now()-t.pressure)/1e3),a=(50-Math.min(50,t.totalLength-t.currentIndex))/50;return Math.min(ll(a),ll(i))}}}startPath(t,r){this.localTrail.startPath(t,r)}addPointToPath(t,r){this.localTrail.addPointToPath(t,r)}endPath(){this.localTrail.endPath()}start(t){this.container=t,this.animationFrameHandler.start(this),this.localTrail.start(t)}stop(){this.animationFrameHandler.stop(this),this.localTrail.stop()}onFrame(){this.updateCollabTrails()}updateCollabTrails(){if(!(!this.container||this.app.state.collaborators.size===0)){for(let[t,r]of this.app.state.collaborators.entries()){let o;this.collabTrails.has(t)?o=this.collabTrails.get(t):(o=new Ql(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>r.pointer?.laserColor||Fl(t,r)}),o.start(this.container),this.collabTrails.set(t,o)),r.pointer&&r.pointer.tool==="laser"&&(r.button==="down"&&!o.hasCurrentTrail&&o.startPath(r.pointer.x,r.pointer.y),r.button==="down"&&o.hasCurrentTrail&&!o.hasLastPoint(r.pointer.x,r.pointer.y)&&o.addPointToPath(r.pointer.x,r.pointer.y),r.button==="up"&&o.hasCurrentTrail&&(o.addPointToPath(r.pointer.x,r.pointer.y),o.endPath()))}for(let t of this.collabTrails.keys())this.app.state.collaborators.has(t)||(this.collabTrails.get(t).stop(),this.collabTrails.delete(t))}}};v();var rH=(e,t,r,o,i,a)=>{let{zoom:s}=o,c=180*r/Math.PI,d=e*(s.value-1)/2,p=t*(s.value-1)/2;return e>i&&s.value!==1&&(d=i*(s.value-1)/2),t>a&&s.value!==1&&(p=a*(s.value-1)/2),`translate(${d}px, ${p}px) scale(${s.value}) rotate(${c}deg)`},PP=({id:e,onChange:t,onSubmit:r,getViewportCoords:o,element:i,canvas:a,excalidrawContainer:s,app:c,autoSelect:d=!0})=>{let p=(K,se)=>{if(!se.style.fontFamily||!se.style.fontSize)return!1;let be=se.style.fontFamily.replace(/"/g,"");return il({fontFamily:K.fontFamily})!==be||`${K.fontSize}px`!==se.style.fontSize},f=()=>{let K=c.state,se=Xo.getScene(i)?.getElement(e);if(!se)return;let{textAlign:be,verticalAlign:_e}=se,nt=c.scene.getNonDeletedElementsMap();if(se&&he(se)){let Ee=se.x,ue=se.y,U=bl(se,c.scene.getNonDeletedElementsMap()),Y=se.width,oe=se.height,ie=se.width,le=se.height;if(U&&se.containerId){if(Br(U)){let nr=Re.getBoundTextElementPosition(U,se,nt);Ee=nr.x,ue=nr.y}let qr=p(se,m),ai;if(qr?ai=Bd(U.id,U.height):(ai=eC[U.id],ai||(ai=Bd(U.id,U.height))),ie=$d(U,se),le=dC(U,se),!Br(U)&&oe>le){let nr=Ds(oe,U.type);me(U,{height:nr});return}else if(!Br(U)&&U.height>ai.height&&oe<le){let nr=Ds(oe,U.type);me(U,{height:nr})}else{let{y:nr}=Bp(U,se,nt);ue=nr}}let[ce,pe]=o(Ee,ue),ye=m.selectionStart,Tt=m.selectionEnd,xt=m.value.length;if(ye===Tt&&Tt!==xt){let qr=xt-Tt;m.selectionStart=m.value.length-qr,m.selectionEnd=m.value.length-qr}U?Y+=.5:(ie=(K.width-8-ce)/K.zoom.value,Y=Math.min(Y,ie)),oe*=1.05;let Nt=eo(se),yt=vS?0:Math.ceil(se.fontSize/2),Jt=(K.height-pe)/K.zoom.value;Object.assign(m.style,{font:Nt,lineHeight:se.lineHeight,width:`${Y}px`,height:`${oe}px`,left:`${ce-yt}px`,top:`${pe}px`,transform:rH(Y,oe,aC(se,U),K,ie,Jt),padding:`0 ${yt}px`,textAlign:be,verticalAlign:_e,color:se.strokeColor,opacity:se.opacity/100,filter:"var(--theme-filter)",maxHeight:`${Jt}px`}),m.scrollTop=0,wd()&&(m.style.fontFamily=il(se)),me(se,{x:Ee,y:ue})}},m=document.createElement("textarea");m.dir="auto",m.tabIndex=0,m.dataset.type="wysiwyg",m.wrap="off",m.classList.add("excalidraw-wysiwyg");let g="pre",h="normal";(Sr(i)||!i.autoResize)&&(g="pre-wrap",h="break-word"),Object.assign(m.style,{position:"absolute",display:"inline-block",minHeight:"1em",backfaceVisibility:"hidden",margin:0,border:0,outline:0,resize:"none",background:"transparent",overflow:"hidden",zIndex:"var(--zIndex-wysiwyg)",wordBreak:h,whiteSpace:g,overflowWrap:"break-word",boxSizing:"content-box"}),m.value=i.originalText,f(),t&&(m.onpaste=async K=>{let se=await nf(K,!0);if(!se.text)return;let be=zd(se.text);if(!be)return;let _e=bl(i,c.scene.getNonDeletedElementsMap()),nt=eo({fontSize:c.state.currentItemFontSize,fontFamily:c.state.currentItemFontFamily});if(_e){let Ee=Ve(_e,c.scene.getNonDeletedElementsMap()),ue=$p(`${m.value}${be}`,nt,$d(_e,Ee)),U=nC(ue,nt,!0);m.style.width=`${U}px`}},m.oninput=()=>{t(zd(m.value))}),m.onkeydown=K=>{if(!K.shiftKey&&vg.keyTest(K))K.preventDefault(),c.actionManager.executeAction(vg),f();else if(!K.shiftKey&&yg.keyTest(K))K.preventDefault(),c.actionManager.executeAction(yg),f();else if(My.keyTest(K))c.actionManager.executeAction(My);else if(Py.keyTest(K))c.actionManager.executeAction(Py);else if(K.key===R.ESCAPE)K.preventDefault(),z=!0,L();else if(K.key===R.ENTER&&K[R.CTRL_OR_CMD]){if(K.preventDefault(),K.isComposing||K.keyCode===229)return;z=!0,L()}else if(K.key===R.TAB||K[R.CTRL_OR_CMD]&&(K.code===Ne.BRACKET_LEFT||K.code===Ne.BRACKET_RIGHT)){if(K.preventDefault(),K.isComposing)return;K.shiftKey||K.code===Ne.BRACKET_LEFT?I():k(),m.dispatchEvent(new Event("input"))}};let b=4,y=" ".repeat(b),T=new RegExp(`^ {1,${b}}`),k=()=>{let{selectionStart:K,selectionEnd:se}=m,be=A(),_e=m.value;be.forEach(nt=>{let Ee=_e.slice(0,nt),ue=_e.slice(nt);_e=`${Ee}${y}${ue}`}),m.value=_e,m.selectionStart=K+b,m.selectionEnd=se+b*be.length},I=()=>{let{selectionStart:K,selectionEnd:se}=m,be=A(),_e=[],nt=m.value;be.forEach(Ee=>{let ue=nt.slice(Ee,Ee+b).match(T);if(ue){let U=nt.slice(0,Ee),Y=nt.slice(Ee+ue[0].length);nt=`${U}${Y}`,_e.push(Ee)}}),m.value=nt,_e.length&&(K>_e[_e.length-1]?m.selectionStart=Math.max(K-b,_e[_e.length-1]):m.selectionStart=K,m.selectionEnd=Math.max(m.selectionStart,se-b*_e.length))},A=()=>{let{selectionStart:K,selectionEnd:se,value:be}=m,_e=be.slice(0,K).match(/[^\n]*$/)[0].length;return K=K-_e,be.slice(K,se).split(`
|
|
92
|
+
`).reduce((Ee,ue,U,Y)=>Ee.concat(U?Ee[U-1]+Y[U-1].length+1:K),[]).reverse()},O=K=>{K.target instanceof HTMLCanvasElement&&(K.preventDefault(),K.stopPropagation())},z=!1,L=()=>{if(Q)return;Q=!0,F();let K=Xo.getScene(i)?.getElement(i.id);if(!K)return;let se=bl(K,c.scene.getNonDeletedElementsMap());if(se){if(m.value.trim()){let be=iC(se);!be||be!==i.id?me(se,{boundElements:(se.boundElements||[]).concat({type:"text",id:i.id})}):Br(se)&&vv(se)}else me(se,{boundElements:se.boundElements?.filter(be=>!he(be))});Xt(K,se,c.scene.getNonDeletedElementsMap())}r({viaKeyboard:z,nextOriginalText:m.value})},F=()=>{m.onblur=null,m.oninput=null,m.onkeydown=null,de&&de.disconnect(),window.removeEventListener("resize",f),window.removeEventListener("wheel",O,!0),window.removeEventListener("pointerdown",V),window.removeEventListener("pointerup",D),window.removeEventListener("blur",L),window.removeEventListener("beforeunload",L),G(),m.remove()},D=K=>{window.removeEventListener("pointerup",D);let se=K?.target,be=se instanceof HTMLElement&&se.classList.contains("properties-trigger");setTimeout(()=>{m.onblur=L,be||m.focus()})},V=K=>{let se=K?.target,be=se instanceof HTMLElement&&se.classList.contains("properties-trigger");(K.target instanceof HTMLElement||K.target instanceof SVGElement)&&K.target.closest(`.${Xu.SHAPE_ACTIONS_MENU}`)&&!Wn(K.target)||be?(m.onblur=null,window.addEventListener("pointerup",D),window.addEventListener("blur",L)):K.target instanceof HTMLElement&&K.target instanceof HTMLCanvasElement&&!wd()&&requestAnimationFrame(()=>{L()})},G=Xo.getScene(i).onUpdate(()=>{f(),!!document.activeElement?.closest(".properties-content")||m.focus()}),Q=!1;d&&m.select(),D();let de=null;a&&"ResizeObserver"in window?(de=new window.ResizeObserver(()=>{f()}),de.observe(a)):window.addEventListener("resize",f),m.onpointerdown=K=>K.stopPropagation(),requestAnimationFrame(()=>{window.addEventListener("pointerdown",V,{capture:!0})}),window.addEventListener("wheel",O,{passive:!1,capture:!0}),window.addEventListener("beforeunload",L),s?.querySelector(".excalidraw-textEditorContainer").appendChild(m)};v();var LP=re({name:"autoResize",label:"labels.autoResize",icon:null,trackEvent:{category:"element"},predicate:(e,t,r,o)=>{let i=Oe(e,t);return i.length===1&&he(i[0])&&!i[0].autoResize},perform:(e,t,r,o)=>{let i=Oe(e,t);return{appState:t,elements:e.map(a=>{if(a.id===i[0].id&&he(a)){let s=Si(a.originalText,eo(a),a.lineHeight);return Pe(a,{autoResize:!0,width:s.width,height:s.height,text:a.originalText})}return a}),storeAction:W.CAPTURE}}});v();var RP=e=>{let t=["flowchart","sequenceDiagram","classDiagram","stateDiagram","stateDiagram-v2","erDiagram","journey","gantt","pie","quadrantChart","requirementDiagram","gitGraph","C4Context","mindmap","timeline","zenuml","sankey","xychart","block"];return new RegExp(`^(?:%%{.*?}%%[\\s\\n]*)?\\b${t.map(o=>`${o}(-beta)?`).join("|")}\\b`).test(e.trim())};var qe=w(P(),1),FP=ur.default.createContext(null),BP=ur.default.createContext(null),zP={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},wE=ur.default.createContext(zP);wE.displayName="DeviceContext";var SE=ur.default.createContext({container:null,id:null});SE.displayName="ExcalidrawContainerContext";var TE=ur.default.createContext([]);TE.displayName="ExcalidrawElementsContext";var CE=ur.default.createContext({...Ns(),width:0,height:0,offsetLeft:0,offsetTop:0});CE.displayName="ExcalidrawAppStateContext";var IE=ur.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});IE.displayName="ExcalidrawSetAppStateContext";var _E=ur.default.createContext(null);_E.displayName="ExcalidrawActionManagerContext";var Tr=()=>(0,ur.useContext)(FP),Jn=()=>(0,ur.useContext)(BP),rt=()=>(0,ur.useContext)(wE),ar=()=>(0,ur.useContext)(SE),Aa=()=>(0,ur.useContext)(TE),jn=()=>(0,ur.useContext)(CE),ot=()=>(0,ur.useContext)(IE),xr=()=>(0,ur.useContext)(_E),Xm=!1,bE=0,es=!1,Zm=!1,xE=!1,vE={horizontal:null,vertical:null},Ha=0,qm=!1,yE=new Map,Bh=!1,DP=0,NP=!1,jm=null,at={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},EE=class e extends ur.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=zP;excalidrawContainerRef=ur.default.createRef();scene;fonts;renderer;resizeObserver;nearestScrollableContainer;library;libraryItemsFromStorage;id;store;history;excalidrawContainerValue;files={};imageCache=new Map;iFrameRefs=new Map;embedsValidationStatus=new Map;initializedEmbeds=new Set;elementsPendingErasure=new Set;hitLinkElement;lastPointerDownEvent=null;lastPointerUpEvent=null;lastPointerMoveEvent=null;lastViewportPosition={x:0,y:0};animationFrameHandler=new Nh;laserTrails=new Fh(this.animationFrameHandler,this);eraserTrail=new Ql(this.animationFrameHandler,this,{streamline:.2,size:5,keepHead:!0,sizeMapping:t=>{let i=Math.max(0,1-(performance.now()-t.pressure)/200),a=(10-Math.min(10,t.totalLength-t.currentIndex))/10;return Math.min(ll(a),ll(i))},fill:()=>this.state.theme===Be.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new Qo;onPointerDownEmitter=new Qo;onPointerUpEmitter=new Qo;onUserFollowEmitter=new Qo;onScrollChangeEmitter=new Qo;missingPointerEventCleanupEmitter=new Qo;onRemoveEventListenersEmitter=new Qo;constructor(t){super(t);let r=Ns(),{excalidrawAPI:o,viewModeEnabled:i=!1,zenModeEnabled:a=!1,gridModeEnabled:s=!1,objectsSnapModeEnabled:c=!1,theme:d=r.theme,name:p=`${E("labels.untitled")}-${Cx()}`}=t;if(this.state={...r,theme:d,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:i,zenModeEnabled:a,objectsSnapModeEnabled:c,gridSize:s?xi:null,name:p,width:window.innerWidth,height:window.innerHeight},this.id=KS(),this.library=new Zk(this),this.actionManager=new eh(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new Xo,this.canvas=document.createElement("canvas"),this.rc=WS.canvas(this.canvas),this.renderer=new Wm(this.scene),this.store=new OC,this.history=new _m,o){let f={updateScene:this.updateScene,updateLibrary:this.library.updateLibrary,addFiles:this.addFiles,resetScene:this.resetScene,getSceneElementsIncludingDeleted:this.getSceneElementsIncludingDeleted,history:{clear:this.resetHistory},scrollToContent:this.scrollToContent,getSceneElements:this.getSceneElements,getAppState:()=>this.state,getFiles:()=>this.files,getName:this.getName,registerAction:m=>{this.actionManager.registerAction(m)},refresh:this.refresh,setToast:this.setToast,id:this.id,setActiveTool:this.setActiveTool,setCursor:this.setCursor,resetCursor:this.resetCursor,updateFrameRendering:this.updateFrameRendering,toggleSidebar:this.toggleSidebar,onChange:m=>this.onChangeEmitter.on(m),onPointerDown:m=>this.onPointerDownEmitter.on(m),onPointerUp:m=>this.onPointerUpEmitter.on(m),onScrollChange:m=>this.onScrollChangeEmitter.on(m),onUserFollow:m=>this.onUserFollowEmitter.on(m)};typeof o=="function"?o(f):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new vl({scene:this.scene}),this.history=new _m,this.actionManager.registerAll(wC),this.actionManager.registerAction(a3(this.history,this.store)),this.actionManager.registerAction(l3(this.history,this.store))}onWindowMessage(t){if(t.origin!=="https://player.vimeo.com"&&t.origin!=="https://www.youtube.com")return;let r=null;try{r=JSON.parse(t.data)}catch{}if(r)switch(t.origin){case"https://player.vimeo.com":if(r.method==="paused"){let o=null,i=document.body.querySelectorAll("iframe.excalidraw__embeddable");if(!i)break;for(let a of i)a.contentWindow===t.source&&(o=a.contentWindow);o?.postMessage(JSON.stringify({method:r.value?"play":"pause",value:!0}),"*")}break;case"https://www.youtube.com":if(r.event==="infoDelivery"&&r.info&&r.id&&typeof r.info.playerState=="number"){let o=r.id,i=r.info.playerState;Object.values(hd).includes(i)&&yE.set(o,i)}break}}cacheEmbeddableRef(t,r){r&&this.iFrameRefs.set(t.id,r)}getHTMLIFrameElement(t){return this.iFrameRefs.get(t.id)}handleEmbeddableCenterClick(t){if(this.state.activeEmbeddable?.element===t&&this.state.activeEmbeddable?.state==="active"||(setTimeout(()=>{this.setState({activeEmbeddable:{element:t,state:"active"},selectedElementIds:{[t.id]:!0},draggingElement:null,selectionElement:null})},100),dl(t)))return;let r=this.getHTMLIFrameElement(t);if(r?.contentWindow){if(r.src.includes("youtube")){let o=yE.get(t.id);switch(o||(yE.set(t.id,hd.UNSTARTED),r.contentWindow.postMessage(JSON.stringify({event:"listening",id:t.id}),"*")),o){case hd.PLAYING:case hd.BUFFERING:r.contentWindow?.postMessage(JSON.stringify({event:"command",func:"pauseVideo",args:""}),"*");break;default:r.contentWindow?.postMessage(JSON.stringify({event:"command",func:"playVideo",args:""}),"*")}}r.src.includes("player.vimeo.com")&&r.contentWindow.postMessage(JSON.stringify({method:"paused"}),"*")}}isIframeLikeElementCenter(t,r,o,i){return t&&!r.altKey&&!r.shiftKey&&!r.metaKey&&!r.ctrlKey&&(this.state.activeEmbeddable?.element!==t||this.state.activeEmbeddable?.state==="hover"||!this.state.activeEmbeddable)&&o>=t.x+t.width/3&&o<=t.x+2*t.width/3&&i>=t.y+t.height/3&&i<=t.y+2*t.height/3}updateEmbedValidationStatus=(t,r)=>{this.embedsValidationStatus.set(t.id,r),va.delete(t)};updateEmbeddables=()=>{let t=new Set,r=!1;this.scene.getNonDeletedElements().filter(o=>{if(Fr(o)){if(t.add(o.id),!this.embedsValidationStatus.has(o.id)){r=!0;let i=zs(o.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(o,i)}}else dl(o)&&t.add(o.id);return!1}),r&&this.scene.triggerUpdate(),this.iFrameRefs.forEach((o,i)=>{t.has(i)||this.iFrameRefs.delete(i)})};renderEmbeddables(){let t=this.state.zoom.value,r=this.state.width,o=this.state.height,i=this.scene.getNonDeletedElements().filter(a=>Fr(a)&&this.embedsValidationStatus.get(a.id)===!0||dl(a));return(0,qe.jsx)(qe.Fragment,{children:i.map(a=>{let{x:s,y:c}=to({sceneX:a.x,sceneY:a.y},this.state),d=Vd(a,r,o,this.state,this.scene.getNonDeletedElementsMap()),p=this.initializedEmbeds.has(a.id);if(d&&!p&&this.initializedEmbeds.add(a.id),!(d||p))return null;let m;if(dl(a)){m=null;let b=(a.customData?.generationData??this.magicGenerations.get(a.id))||{status:"error",message:"No generation data",code:"ERR_NO_GENERATION_DATA"};if(b.status==="done"){let y=b.html;m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>y}}else if(b.status==="pending")m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>fv(`
|
|
73
93
|
<style>
|
|
74
94
|
html, body {
|
|
75
95
|
width: 100%;
|
|
76
96
|
height: 100%;
|
|
77
|
-
color: ${this.state.theme===
|
|
97
|
+
color: ${this.state.theme===Be.DARK?"white":"black"};
|
|
78
98
|
}
|
|
79
99
|
body {
|
|
80
100
|
display: flex;
|
|
@@ -141,7 +161,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
|
|
|
141
161
|
</svg>
|
|
142
162
|
</div>
|
|
143
163
|
<div>Generating...</div>
|
|
144
|
-
`)};else{let
|
|
164
|
+
`)};else{let y;b.code==="ERR_GENERATION_INTERRUPTED"?y="Generation was interrupted...":y=b.message||"Generation failed",m={intrinsicSize:{w:a.width,h:a.height},type:"document",srcdoc:()=>fv(`
|
|
145
165
|
<style>
|
|
146
166
|
html, body {
|
|
147
167
|
height: 100%;
|
|
@@ -151,7 +171,7 @@ Please output JUST THE HTML file containing your best attempt at implementing th
|
|
|
151
171
|
flex-direction: column;
|
|
152
172
|
align-items: center;
|
|
153
173
|
justify-content: center;
|
|
154
|
-
color: ${
|
|
174
|
+
color: ${hi.red[3]};
|
|
155
175
|
}
|
|
156
176
|
h1, h3 {
|
|
157
177
|
margin-top: 0;
|
|
@@ -159,26 +179,15 @@ Please output JUST THE HTML file containing your best attempt at implementing th
|
|
|
159
179
|
}
|
|
160
180
|
</style>
|
|
161
181
|
<h1>Error!</h1>
|
|
162
|
-
<h3>${
|
|
163
|
-
`)}}}else d=Yn(Eb(i.link||""));let f=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",p=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,Ce.jsx)("div",{className:z("excalidraw__embeddable-container",{"is-hovered":p}),style:{transform:s?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:s?"block":"none",opacity:c0(i,Dc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${W1(Math.min(i.width,i.height),i)}px`},children:(0,Ce.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:s?`${i.width}px`:0,height:s?`${i.height}px`:0,transform:s?`rotate(${i.angle}rad)`:"none",pointerEvents:f?Hn.enabled:Hn.disabled},children:[p&&(0,Ce.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,Ce.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ht(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,Ce.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,b),className:"excalidraw__embeddable",srcDoc:d?.type==="document"?d.srcdoc(this.state.theme):void 0,src:d?.type!=="document"?d?.link??"":void 0,scrolling:"no",referrerPolicy:"no-referrer-when-downgrade",title:"Excalidraw Embedded Content",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,sandbox:"allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads"})})]})},i.id)})})}getFrameNameDOMId=e=>`${this.id}-frame-name-${e.id}`;frameNameBoundsCache={get:e=>{let o=this.frameNameBoundsCache._cache.get(e.id);if(!o||o.zoom!==this.state.zoom.value||o.versionNonce!==e.versionNonce){let r=document.getElementById(this.getFrameNameDOMId(e));if(r){let n=r.getBoundingClientRect(),i=Ve({clientX:n.x,clientY:n.y},this.state),a=Ve({clientX:n.right,clientY:n.bottom},this.state);return o={x:i.x,y:i.y,width:a.x-i.x,height:a.y-i.y,angle:0,zoom:this.state.zoom.value,versionNonce:e.versionNonce},this.frameNameBoundsCache._cache.set(e.id,o),o}return null}return o},_cache:new Map};renderFrameNames=()=>{if(!this.state.frameRendering.enabled||!this.state.frameRendering.name)return null;let e=this.state.theme==="dark",o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(Bu(n)?o++:r++,!Al(n,this.canvas.width/window.devicePixelRatio,this.canvas.height/window.devicePixelRatio,{offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,zoom:this.state.zoom},this.scene.getNonDeletedElementsMap()))return null;let{x:i,y:a}=qt({sceneX:n.x,sceneY:n.y},this.state),l=6,s=()=>{te(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},c,m=s0(n,Bu(n)?o:r);if(n.id===this.state.editingFrame){let d=m;c=(0,Ce.jsx)("input",{autoFocus:!0,value:d,onChange:f=>{te(n,{name:f.target.value})},onFocus:f=>f.target.select(),onBlur:()=>s(),onKeyDown:f=>{(f.key===T.ESCAPE||f.key===T.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:e?u1:"none",zIndex:2,border:"none",display:"block",padding:`${l}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${l}px, ${l}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-i-l}px`},size:d.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else c=m;return(0,Ce.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+Go.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:Go.nameFontSize,color:e?Go.nameColorDarkTheme:Go.nameColorLightTheme,lineHeight:Go.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:De.MOVE,pointerEvents:this.state.viewModeEnabled?Hn.disabled:Hn.enabled},onPointerDown:d=>this.handleCanvasPointerDown(d),onWheel:d=>this.handleWheel(d),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:c},n.id)})};toggleOverscrollBehavior(e){document.documentElement.style.overscrollBehaviorX=e.type==="pointerenter"?"none":"auto"}render(){let e=this.scene.getSelectedElements(this.state),{renderTopRightUI:o,renderCustomStats:r}=this.props,n=this.scene.getVersionNonce(),{elementsMap:i,visibleElements:a}=this.renderer.getRenderableElements({versionNonce:n,zoom:this.state.zoom,offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,height:this.state.height,width:this.state.width,editingElement:this.state.editingElement,pendingImageElementId:this.state.pendingImageElementId}),l=this.scene.getNonDeletedElementsMap(),s=!(this.state.editingElement&&Re(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!le(this.state.editingElement)),c=e[0];return(0,Ce.jsx)("div",{className:z("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":s?Hn.disabled:Hn.enabled},ref:this.excalidrawContainerRef,onDrop:this.handleAppOnDrop,tabIndex:0,onKeyDown:this.props.handleKeyboardGlobally?void 0:this.onKeyDown,onPointerEnter:this.toggleOverscrollBehavior,onPointerLeave:this.toggleOverscrollBehavior,children:(0,Ce.jsx)(H5.Provider,{value:this,children:(0,Ce.jsx)($5.Provider,{value:this.props,children:(0,Ce.jsx)(Mg.Provider,{value:this.excalidrawContainerValue,children:(0,Ce.jsx)(Ig.Provider,{value:this.device,children:(0,Ce.jsx)(Lg.Provider,{value:this.setAppState,children:(0,Ce.jsx)(Ag.Provider,{value:this.state,children:(0,Ce.jsxs)(_g.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,Ce.jsxs)(Pg.Provider,{value:this.actionManager,children:[(0,Ce.jsx)(J3,{canvas:this.canvas,appState:this.state,files:this.files,setAppState:this.setAppState,actionManager:this.actionManager,elements:this.scene.getNonDeletedElements(),onLockToggle:this.toggleLock,onPenModeToggle:this.togglePenMode,onHandToolToggle:this.onHandToolToggle,langCode:Hr().code,renderTopRightUI:o,renderCustomStats:r,showExitZenModeBtn:typeof this.props?.zenModeEnabled>"u"&&this.state.zenModeEnabled,UIOptions:this.props.UIOptions,onExportImage:this.onExportImage,renderWelcomeScreen:!this.state.isLoading&&this.state.showWelcomeScreen&&this.state.activeTool.type==="selection"&&!this.state.zenModeEnabled&&!this.scene.getElementsIncludingDeleted().length,app:this,isCollaborating:this.props.isCollaborating,openAIKey:this.OPENAI_KEY,isOpenAIKeyPersisted:this.OPENAI_KEY_IS_PERSISTED,onOpenAIAPIKeyChange:this.onOpenAIKeyChange,onMagicSettingsConfirm:this.onMagicSettingsConfirm,children:this.props.children}),(0,Ce.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,Ce.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,Ce.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,Ce.jsx)(_5,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,Ce.jsx)(oE,{element:c,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},c.id),this.props.aiEnabled!==!1&&e.length===1&&pl(c)&&(0,Ce.jsx)(Eg,{element:c,elementsMap:i,children:(0,Ce.jsx)(du,{title:g("labels.convertToCode"),icon:sa,checked:!1,onChange:()=>this.onMagicFrameGenerate(c,"button")})}),e.length===1&&Pi(c)&&c.customData?.generationData?.status==="done"&&(0,Ce.jsxs)(Eg,{element:c,elementsMap:i,children:[(0,Ce.jsx)(du,{title:g("labels.copySource"),icon:ld,checked:!1,onChange:()=>this.onIframeSrcCopy(c)}),(0,Ce.jsx)(du,{title:"Enter fullscreen",icon:t2,checked:!1,onChange:()=>{let m=this.getHTMLIFrameElement(c);if(m)try{m.requestFullscreen(),this.setState({activeEmbeddable:{element:c,state:"active"},selectedElementIds:{[c.id]:!0},draggingElement:null,selectionElement:null})}catch(d){console.warn(d),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,Ce.jsx)(Q3,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,Ce.jsx)(Hw,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:m=>{this.setState({contextMenu:null},()=>{this.focusContainer(),m?.()})}}),(0,Ce.jsx)(vg,{canvas:this.canvas,rc:this.rc,elementsMap:i,allElementsMap:l,visibleElements:a,versionNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderConfig:{imageCache:this.imageCache,isExporting:!1,renderGrid:!0,canvasBackgroundColor:this.state.viewBackgroundColor,embedsValidationStatus:this.embedsValidationStatus,elementsPendingErasure:this.elementsPendingErasure}}),(0,Ce.jsx)(xg,{containerRef:this.excalidrawContainerRef,canvas:this.interactiveCanvas,elementsMap:i,visibleElements:a,selectedElements:e,versionNonce:n,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderInteractiveSceneCallback:this.renderInteractiveSceneCallback,handleCanvasRef:this.handleInteractiveCanvasRef,onContextMenu:this.handleCanvasContextMenu,onPointerMove:this.handleCanvasPointerMove,onPointerUp:this.handleCanvasPointerUp,onPointerCancel:this.removePointer,onTouchMove:this.handleTouchMove,onPointerDown:this.handleCanvasPointerDown,onDoubleClick:this.handleCanvasDoubleClick}),this.state.userToFollow&&(0,Ce.jsx)(P5,{width:this.state.width,height:this.state.height,userToFollow:this.state.userToFollow,onDisconnect:this.maybeUnfollowRemoteUser}),this.renderFrameNames()]}),this.renderEmbeddables()]})})})})})})})})}focusContainer=()=>{this.excalidrawContainerRef.current?.focus()};getSceneElementsIncludingDeleted=()=>this.scene.getElementsIncludingDeleted();getSceneElements=()=>this.scene.getNonDeletedElements();onInsertElements=e=>{this.addElementsFromPasteOrLibrary({elements:e,position:"center",files:null})};onExportImage=async(e,o,r)=>{ve("export",e,"ui");let n=await si(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(Qs).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&Tc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?te(e,{customData:{generationData:void 0}},!1):te(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.onSceneUpdated()};getTextFromElements(e){return e.reduce((r,n)=>(le(n)&&r.push(n.text),r),[]).join(`
|
|
182
|
+
<h3>${y}</h3>
|
|
183
|
+
`)}}}else m=yl(EC(a.link||""));let g=this.state.activeEmbeddable?.element===a&&this.state.activeEmbeddable?.state==="active",h=this.state.activeEmbeddable?.element===a&&this.state.activeEmbeddable?.state==="hover";return(0,qe.jsx)("div",{className:q("excalidraw__embeddable-container",{"is-hovered":h}),style:{transform:d?`translate(${s-this.state.offsetLeft}px, ${c-this.state.offsetTop}px) scale(${t})`:"none",display:d?"block":"none",opacity:sI(a,lf(a,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${h2(Math.min(a.width,a.height),a)}px`},children:(0,qe.jsxs)("div",{className:"excalidraw__embeddable-container__inner",style:{width:d?`${a.width}px`:0,height:d?`${a.height}px`:0,transform:d?`rotate(${a.angle}rad)`:"none",pointerEvents:g?rl.enabled:rl.disabled},children:[h&&(0,qe.jsx)("div",{className:"excalidraw__embeddable-hint",children:E("buttons.embeddableInteractionButton")}),(0,qe.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${a.strokeWidth}px`},children:(Fr(a)?this.props.renderEmbeddable?.(a,this.state):null)??(0,qe.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(a,b),className:"excalidraw__embeddable",srcDoc:m?.type==="document"?m.srcdoc(this.state.theme):void 0,src:m?.type!=="document"?m?.link??"":void 0,scrolling:"no",referrerPolicy:"no-referrer-when-downgrade",title:"Excalidraw Embedded Content",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,sandbox:`${m?.sandbox?.allowSameOrigin?"allow-same-origin":""} allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-downloads`})})]})},a.id)})})}getFrameNameDOMId=t=>`${this.id}-frame-name-${t.id}`;frameNameBoundsCache={get:t=>{let r=this.frameNameBoundsCache._cache.get(t.id);if(!r||r.zoom!==this.state.zoom.value||r.versionNonce!==t.versionNonce){let o=document.getElementById(this.getFrameNameDOMId(t));if(o){let i=o.getBoundingClientRect(),a=kt({clientX:i.x,clientY:i.y},this.state),s=kt({clientX:i.right,clientY:i.bottom},this.state);return r={x:a.x,y:a.y,width:s.x-a.x,height:s.y-a.y,angle:0,zoom:this.state.zoom.value,versionNonce:t.versionNonce},this.frameNameBoundsCache._cache.set(t.id,r),r}return null}return r},_cache:new Map};renderFrameNames=()=>{if(!this.state.frameRendering.enabled||!this.state.frameRendering.name)return null;let t=this.state.theme===Be.DARK,r=0,o=0;return this.scene.getNonDeletedFramesLikes().map(i=>{if(Mx(i)?r++:o++,!Vd(i,this.canvas.width/window.devicePixelRatio,this.canvas.height/window.devicePixelRatio,{offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,zoom:this.state.zoom},this.scene.getNonDeletedElementsMap()))return null;let{x:a,y:s}=to({sceneX:i.x,sceneY:i.y},this.state),c=6,d=()=>{me(i,{name:i.name?.trim()||null}),this.setState({editingFrame:null})},p,f=lI(i,Mx(i)?r:o);if(i.id===this.state.editingFrame){let m=f;p=(0,qe.jsx)("input",{autoFocus:!0,value:m,onChange:g=>{me(i,{name:g.target.value})},onFocus:g=>g.target.select(),onBlur:()=>d(),onKeyDown:g=>{(g.key===R.ESCAPE||g.key===R.ENTER)&&d()},style:{background:this.state.viewBackgroundColor,filter:t?NS:"none",zIndex:2,border:"none",display:"block",padding:`${c}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${c}px, ${c}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-a-c}px`},size:m.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else p=f;return(0,qe.jsx)("div",{id:this.getFrameNameDOMId(i),style:{position:"absolute",bottom:`${this.state.height+wn.nameOffsetY-s+this.state.offsetTop}px`,left:`${a-this.state.offsetLeft}px`,zIndex:2,fontSize:wn.nameFontSize,color:t?wn.nameColorDarkTheme:wn.nameColorLightTheme,lineHeight:wn.nameLineHeight,width:"max-content",maxWidth:`${i.width}px`,overflow:i.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:ut.MOVE,pointerEvents:this.state.viewModeEnabled?rl.disabled:rl.enabled},onPointerDown:m=>this.handleCanvasPointerDown(m),onWheel:m=>this.handleWheel(m),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:i.id})},children:p},i.id)})};toggleOverscrollBehavior(t){document.documentElement.style.overscrollBehaviorX=t.type==="pointerenter"?"none":"auto"}render(){let t=this.scene.getSelectedElements(this.state),{renderTopRightUI:r,renderCustomStats:o}=this.props,i=this.scene.getSceneNonce(),{elementsMap:a,visibleElements:s}=this.renderer.getRenderableElements({sceneNonce:i,zoom:this.state.zoom,offsetLeft:this.state.offsetLeft,offsetTop:this.state.offsetTop,scrollX:this.state.scrollX,scrollY:this.state.scrollY,height:this.state.height,width:this.state.width,editingElement:this.state.editingElement,pendingImageElementId:this.state.pendingImageElementId}),c=this.scene.getNonDeletedElementsMap(),d=!(this.state.editingElement&&Qe(this.state.editingElement))&&(this.state.selectionElement||this.state.draggingElement||this.state.resizingElement||this.state.activeTool.type==="laser"&&this.state.cursorButton==="down"||this.state.editingElement&&!he(this.state.editingElement)),p=t[0];return(0,qe.jsx)("div",{className:q("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":d?rl.disabled:rl.enabled},ref:this.excalidrawContainerRef,onDrop:this.handleAppOnDrop,tabIndex:0,onKeyDown:this.props.handleKeyboardGlobally?void 0:this.onKeyDown,onPointerEnter:this.toggleOverscrollBehavior,onPointerLeave:this.toggleOverscrollBehavior,children:(0,qe.jsx)(FP.Provider,{value:this,children:(0,qe.jsx)(BP.Provider,{value:this.props,children:(0,qe.jsx)(SE.Provider,{value:this.excalidrawContainerValue,children:(0,qe.jsx)(wE.Provider,{value:this.device,children:(0,qe.jsx)(IE.Provider,{value:this.setAppState,children:(0,qe.jsx)(CE.Provider,{value:this.state,children:(0,qe.jsxs)(TE.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,qe.jsxs)(_E.Provider,{value:this.actionManager,children:[(0,qe.jsx)(VM,{canvas:this.canvas,appState:this.state,files:this.files,setAppState:this.setAppState,actionManager:this.actionManager,elements:this.scene.getNonDeletedElements(),onLockToggle:this.toggleLock,onPenModeToggle:this.togglePenMode,onHandToolToggle:this.onHandToolToggle,langCode:Pi().code,renderTopRightUI:r,renderCustomStats:o,showExitZenModeBtn:typeof this.props?.zenModeEnabled>"u"&&this.state.zenModeEnabled,UIOptions:this.props.UIOptions,onExportImage:this.onExportImage,renderWelcomeScreen:!this.state.isLoading&&this.state.showWelcomeScreen&&this.state.activeTool.type==="selection"&&!this.state.zenModeEnabled&&!this.scene.getElementsIncludingDeleted().length,app:this,isCollaborating:this.props.isCollaborating,openAIKey:this.OPENAI_KEY,isOpenAIKeyPersisted:this.OPENAI_KEY_IS_PERSISTED,onOpenAIAPIKeyChange:this.onOpenAIKeyChange,onMagicSettingsConfirm:this.onMagicSettingsConfirm,children:this.props.children}),(0,qe.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,qe.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,qe.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,qe.jsx)(TP,{trails:[this.laserTrails,this.eraserTrail]}),t.length===1&&this.state.showHyperlinkPopup&&(0,qe.jsx)(Rk,{element:p,elementsMap:c,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},p.id),this.props.aiEnabled!==!1&&t.length===1&&Id(p)&&(0,qe.jsx)(hE,{element:p,elementsMap:a,children:(0,qe.jsx)(Dh,{title:E("labels.convertToCode"),icon:Ps,checked:!1,onChange:()=>this.onMagicFrameGenerate(p,"button")})}),t.length===1&&dl(p)&&p.customData?.generationData?.status==="done"&&(0,qe.jsxs)(hE,{element:p,elementsMap:a,children:[(0,qe.jsx)(Dh,{title:E("labels.copySource"),icon:Tp,checked:!1,onChange:()=>this.onIframeSrcCopy(p)}),(0,qe.jsx)(Dh,{title:"Enter fullscreen",icon:_T,checked:!1,onChange:()=>{let f=this.getHTMLIFrameElement(p);if(f)try{f.requestFullscreen(),this.setState({activeEmbeddable:{element:p,state:"active"},selectedElementIds:{[p.id]:!0},draggingElement:null,selectionElement:null})}catch(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,qe.jsx)(XM,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,qe.jsx)(m3,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:f=>{this.setState({contextMenu:null},()=>{this.focusContainer(),f?.()})}}),(0,qe.jsx)(fE,{canvas:this.canvas,rc:this.rc,elementsMap:a,allElementsMap:c,visibleElements:s,sceneNonce:i,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,renderConfig:{imageCache:this.imageCache,isExporting:!1,renderGrid:!0,canvasBackgroundColor:this.state.viewBackgroundColor,embedsValidationStatus:this.embedsValidationStatus,elementsPendingErasure:this.elementsPendingErasure}}),(0,qe.jsx)(pE,{containerRef:this.excalidrawContainerRef,canvas:this.interactiveCanvas,elementsMap:a,visibleElements:s,allElementsMap:c,selectedElements:t,sceneNonce:i,selectionNonce:this.state.selectionElement?.versionNonce,scale:window.devicePixelRatio,appState:this.state,device:this.device,renderInteractiveSceneCallback:this.renderInteractiveSceneCallback,handleCanvasRef:this.handleInteractiveCanvasRef,onContextMenu:this.handleCanvasContextMenu,onPointerMove:this.handleCanvasPointerMove,onPointerUp:this.handleCanvasPointerUp,onPointerCancel:this.removePointer,onTouchMove:this.handleTouchMove,onPointerDown:this.handleCanvasPointerDown,onDoubleClick:this.handleCanvasDoubleClick}),this.state.userToFollow&&(0,qe.jsx)(_P,{width:this.state.width,height:this.state.height,userToFollow:this.state.userToFollow,onDisconnect:this.maybeUnfollowRemoteUser}),this.renderFrameNames()]}),this.renderEmbeddables()]})})})})})})})})}focusContainer=()=>{this.excalidrawContainerRef.current?.focus()};getSceneElementsIncludingDeleted=()=>this.scene.getElementsIncludingDeleted();getSceneElements=()=>this.scene.getNonDeletedElements();onInsertElements=t=>{this.addElementsFromPasteOrLibrary({elements:t,position:"center",files:null})};onExportImage=async(t,r,o)=>{ze("export",t,"ui");let i=await Rl(t,r,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:o.exportingFrame}).catch(lp).catch(a=>{console.error(a),this.setState({errorMessage:a.message})});this.state.exportEmbedScene&&i&&Xp(i)&&this.setState({fileHandle:i})};magicGenerations=new Map;updateMagicGeneration=({frameElement:t,data:r})=>{r.status==="pending"?me(t,{customData:{generationData:void 0}},!1):me(t,{customData:{generationData:r}},!1),this.magicGenerations.set(t.id,r),this.triggerRender()};getTextFromElements(t){return t.reduce((o,i)=>(he(i)&&o.push(i.text),o),[]).join(`
|
|
164
184
|
|
|
165
|
-
`)}async onMagicFrameGenerate(e,o){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),ve("ai","generate (missing key)","d2c");return}let r=Fc(this.scene.getNonDeletedElements(),e).filter(d=>!pl(d));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),ve("ai","generate (no-children)","d2c")):this.setActiveTool({type:"magicframe"});return}let n=this.insertIframeElement({sceneX:e.x+e.width+30,sceneY:e.y,width:e.width,height:e.height});if(!n)return;this.updateMagicGeneration({frameElement:n,data:{status:"pending"}}),this.setState({selectedElementIds:{[n.id]:!0}});let i=await lp({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await Ic(i),l=this.getTextFromElements(r);ve("ai","generate (start)","d2c");let s=await L5({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!s.ok){ve("ai","generate (failed)","d2c"),console.error(s.error),this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:s.error?.message||"Unknown error during generation"}});return}if(ve("ai","generate (success)","d2c"),s.choices[0].message.content==null){this.updateMagicGeneration({frameElement:n,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let c=s.choices[0].message.content,m=c.slice(c.indexOf("<!DOCTYPE html>"),c.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:m}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(Zi(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=uo.get(Eo.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=uo.has(Eo.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=uo.set(Eo.OAI_API_KEY,e);this.OPENAI_KEY_IS_PERSISTED=r}else this.OPENAI_KEY_IS_PERSISTED=!1};onMagicSettingsConfirm=(e,o,r)=>{if(this.OPENAI_KEY=e||null,this.onOpenAIKeyChange(this.OPENAI_KEY,o),r==="settings")return;let n=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});e?n.length?this.onMagicframeToolSelect():this.setActiveTool({type:"magicframe"}):pl(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),ve("ai","tool-select (missing key)","d2c");return}let e=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(e.length===0)this.setActiveTool({type:ut.magicframe}),ve("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&pl(e[0])&&e[0];if(!o&&e.some(n=>Te(n)||n.frameId)){this.setActiveTool({type:ut.magicframe});return}ve("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ke(e),s=50;r=Tl({...Go,x:n-s,y:i-s,width:a-n+s*2,height:l-i+s*2,opacity:100,locked:!1}),this.scene.addNewElement(r);for(let c of e)te(c,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{Ut.set(yn,{swapPreviewOnAlt:!0,colorPickerType:e==="stroke"?"elementStroke":"elementBackground",onSelect:(o,r)=>{let n=e==="background"&&r.altKey||e==="stroke"&&!r.altKey;!this.scene.getSelectedElements(this.state).length||this.state.activeTool.type!=="selection"?n?this.syncActionResult({appState:{...this.state,currentItemStrokeColor:o},commitToHistory:!0}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},commitToHistory:!0}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?ue(a,{[n?"strokeColor":"backgroundColor"]:o}):a)})},keepOpenOnAlt:!1})};syncActionResult=qe(e=>{if(this.unmounted||e===!1)return;let o=null;if(e.elements&&(e.elements.forEach(r=>{this.state.editingElement?.id===r.id&&this.state.editingElement!==r&&bp(r)&&(o=r)}),this.scene.replaceAllElements(e.elements),e.commitToHistory&&this.history.resumeRecording()),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.commitToHistory&&this.history.resumeRecording();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||Je.LIGHT,l=e?.appState?.name??this.state.name,s=e?.appState?.errorMessage??this.state.errorMessage;typeof this.props.viewModeEnabled<"u"&&(r=this.props.viewModeEnabled),typeof this.props.zenModeEnabled<"u"&&(n=this.props.zenModeEnabled),typeof this.props.gridModeEnabled<"u"&&(i=this.props.gridModeEnabled?Ir:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(c=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:s}),()=>{e.syncHistory&&this.history.setCurrentState(this.state,this.scene.getElementsIncludingDeleted())})}});onBlur=qe(()=>{ki=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetScene=qe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...$i(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),this.resetHistory()});initializeScene=async()=>{"launchQueue"in window&&"LaunchParams"in window&&window.launchQueue.setConsumer(async r=>{if(!r.files.length)return;let n=r.files[0],i=await n.getFile();this.loadFileToCanvas(new File([i],i.name||"",{type:i.type}),n)}),this.props.theme&&this.setState({theme:this.props.theme}),this.state.isLoading||this.setState({isLoading:!0});let e=null;try{e=await this.props.initialData||null,e?.libraryItems&&this.library.updateLibrary({libraryItems:e.libraryItems,merge:!0}).catch(r=>{console.error(r)})}catch(r){console.error(r),e={appState:{errorMessage:r.message||"Encountered an error during importing or restoring scene data"}}}let o=Qu(e,null,null,{repairBindings:!0});o.appState={...o.appState,theme:this.props.theme||o.appState.theme,openSidebar:o.appState?.openSidebar||this.state.openSidebar,activeTool:o.appState.activeTool.type==="image"?{...o.appState.activeTool,type:"selection"}:o.appState.activeTool,isLoading:!1,toast:this.state.toast},e?.scrollToContent&&(o.appState={...o.appState,...Xn(o.elements,{...o.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.fonts.loadFontsForElements(o.elements),this.resetHistory(),this.syncActionResult({...o,commitToHistory:!0})};isMobileBreakpoint=(e,o)=>e<p1||o<h1&&e<f1;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=Ai(n,{isLandscape:o>r,isMobile:this.isMobileBreakpoint(o,r)});return n!==i?(this.device={...this.device,viewport:i},!0):!1};refreshEditorBreakpoints=()=>{let e=this.excalidrawContainerRef.current;if(!e)return;let{width:o,height:r}=e.getBoundingClientRect(),n=this.props.UIOptions.dockedSidebarBreakpoint!=null?this.props.UIOptions.dockedSidebarBreakpoint:g1,i=this.device.editor,a=Ai(i,{isMobile:this.isMobileBreakpoint(o,r),canFitSidebar:o>n});return i!==a?(this.device={...this.device,editor:a},!0):!1};async componentDidMount(){if(this.unmounted=!1,this.excalidrawContainerValue.container=this.excalidrawContainerRef.current,E.MODE===ku.TEST||E.DEV){let o=this.setState.bind(this);Object.defineProperties(window.h,{state:{configurable:!0,get:()=>this.state},setState:{configurable:!0,value:(...r)=>this.setState(...r)},app:{configurable:!0,value:this},history:{configurable:!0,value:this.history}})}this.scene.addCallback(this.onSceneUpdated),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),tc()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),tl&&this.excalidrawContainerRef.current&&(this.resizeObserver=new ResizeObserver(()=>{this.refreshEditorBreakpoints(),this.updateDOMRect()}),this.resizeObserver?.observe(this.excalidrawContainerRef.current)),new URLSearchParams(window.location.search.slice(1)).has("web-share-target")?this.restoreFileFromShare():this.updateDOMRect(this.initializeScene),qg()&&!pb()&&this.setState({errorMessage:(0,Ce.jsx)(f5,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new ao,this.renderer=new Is(this.scene),this.files={},this.imageCache.clear(),this.resizeObserver?.disconnect(),this.unmounted=!0,this.removeEventListeners(),this.scene.destroy(),this.library.destroy(),this.laserTrails.stop(),this.eraserTrail.stop(),this.onChangeEmitter.clear(),mr.destroy(),zo.destroy(),clearTimeout(Fn),Oe.clearCache(),Rt.clearCache(),Fn=0,document.documentElement.style.overscrollBehaviorX=""}onResize=qe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>mr.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),tl||this.refreshEditorBreakpoints(),this.setState({})});onFullscreenChange=()=>{!document.fullscreenElement&&this.state.activeEmbeddable?.state==="active"&&this.setState({activeEmbeddable:null})};removeEventListeners(){this.onRemoveEventListenersEmitter.trigger()}addEventListeners(){this.removeEventListeners(),this.props.handleKeyboardGlobally&&this.onRemoveEventListenersEmitter.once(rt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(rt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),rt(window,"message",this.onWindowMessage,!1),rt(document,"pointerup",this.removePointer),rt(document,"copy",this.onCopy),rt(document,"keyup",this.onKeyUp,{passive:!0}),rt(document,"mousemove",this.updateCurrentCursorPosition),rt(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),rt(document,"gesturestart",this.onGestureStart,!1),rt(document,"gesturechange",this.onGestureChange,!1),rt(document,"gestureend",this.onGestureEnd,!1),rt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(rt(document,"fullscreenchange",this.onFullscreenChange),rt(document,"paste",this.pasteFromClipboard),rt(document,"cut",this.onCut),rt(window,"resize",this.onResize,!1),rt(window,"unload",this.onUnload,!1),rt(window,"blur",this.onBlur,!1),rt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),rt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(rt(M1(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=this.scene.getNonDeletedElementsMap();!this.state.showWelcomeScreen&&!r.length&&this.setState({showWelcomeScreen:!0}),e.UIOptions.dockedSidebarBreakpoint!==this.props.UIOptions.dockedSidebarBreakpoint&&this.refreshEditorBreakpoints(),o.userToFollow&&!this.state.collaborators.has(o.userToFollow.socketId)&&this.maybeUnfollowRemoteUser(),(o.zoom.value!==this.state.zoom.value||o.scrollX!==this.state.scrollX||o.scrollY!==this.state.scrollY)&&(this.props?.onScrollChange?.(this.state.scrollX,this.state.scrollY,this.state.zoom),this.onScrollChangeEmitter.trigger(this.state.scrollX,this.state.scrollY,this.state.zoom)),o.userToFollow!==this.state.userToFollow&&(o.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:o.userToFollow,action:"UNFOLLOW"}),this.state.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:this.state.userToFollow,action:"FOLLOW"})),Object.keys(this.state.selectedElementIds).length&&So(this.state)&&this.setState({activeTool:ot(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&Cb(this.interactiveCanvas,this.state.theme),o.activeTool.type==="selection"&&this.state.activeTool.type!=="selection"&&this.state.showHyperlinkPopup&&this.setState({showHyperlinkPopup:!1}),e.langCode!==this.props.langCode&&this.updateLanguage(),So(o)&&!So(this.state)&&this.eraserTrail.endPath(),e.viewModeEnabled!==this.props.viewModeEnabled&&this.setState({viewModeEnabled:!!this.props.viewModeEnabled}),o.viewModeEnabled!==this.state.viewModeEnabled&&(this.addEventListeners(),this.deselectElements()),e.zenModeEnabled!==this.props.zenModeEnabled&&this.setState({zenModeEnabled:!!this.props.zenModeEnabled}),e.theme!==this.props.theme&&this.props.theme&&this.setState({theme:this.props.theme}),e.gridModeEnabled!==this.props.gridModeEnabled&&this.setState({gridSize:this.props.gridModeEnabled?Ir:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme==="dark"),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(Lo)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:a}=o;o.activeTool!==this.state.activeTool&&a!=null&&Vn(this.state)&&_r(a,!1)&&vl(a,this.state,this.scene,cl(he.getPointAtIndexGlobalCoordinates(a,-1,n)),n),this.history.record(this.state,r),this.state.isLoading||(this.props.onChange?.(r,this.state,this.files),this.onChangeEmitter.trigger(r,this.state,this.files))}renderInteractiveSceneCallback=({atLeastOneVisibleElement:e,scrollBars:o,elementsMap:r})=>{o&&(Tg=o);let n=le(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=ll(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},c1);onCut=qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||wo(e.target)||(this.actionManager.executeAction(Zd,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||wo(e.target)||(this.actionManager.executeAction(La,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){Ls=!1}onTouchStart=e=>{if(Xg&&e.preventDefault(),!Ls){Ls=!0,clearTimeout(wg),wg=window.setTimeout(t.resetTapTwice,l1);return}if(Ls&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),Ls=!1,clearTimeout(wg)}e.touches.length===2&&this.setState({selectedElementIds:Fe({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:Fe(this.state.previousSelectedElementIds,this.state)}):Ae.pointers.clear()};pasteFromClipboard=qe(async e=>{let o=!!fu,r=document.activeElement,n=this.excalidrawContainerRef.current?.contains(r);if(e&&!n)return;let i=document.elementFromPoint(this.lastViewportPosition.x,this.lastViewportPosition.y);if(e&&(!(i instanceof HTMLCanvasElement)||wo(r)))return;let{x:a,y:l}=Ve({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),s=e?.clipboardData?.files[0],c=await Lc(e,o);if(!s&&!o){if(c.mixedContent)return this.addElementsFromMixedContentPaste(c.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(c.text){let m=c.text.trim();m.startsWith("<svg")&&m.endsWith("</svg>")&&(s=op(m))}}if(Sc(s)&&!c.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let m=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(m,s),this.initializeImageDimensions(m),this.setState({selectedElementIds:Fe({[m.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(c,e)===!1)return}catch(m){console.error(m)}if(c.errorMessage)this.setState({errorMessage:c.errorMessage});else if(c.spreadsheet&&!o)this.setState({pasteDialog:{data:c.spreadsheet,shown:!0}});else if(c.elements){let m=c.programmaticAPI?Es(c.elements):c.elements;this.addElementsFromPasteOrLibrary({elements:m,files:c.files||null,position:"cursor",retainSeed:o})}else if(c.text){let m=N1(c.text).split(/\n+/).map(f=>f.trim()).filter(Boolean),d=m.map(f=>Mb(f)).filter(f=>Gi(f,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(f)||Yn(f)?.type==="video"));if(!fu&&d.length>0&&d.length===m.length){let f=[];for(let p of d){let b=f[f.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:Nr(p)});x&&f.push(x)}f.length&&this.setState({selectedElementIds:Object.fromEntries(f.map(p=>[p.id,!0]))});return}this.addTextFromPaste(c.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=Ju(e.elements,null,void 0),[r,n,i,a]=Ke(o),l=Wn(r,i)/2,s=Wn(n,a)/2,c=typeof e.position=="object"?e.position.clientX:e.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,m=typeof e.position=="object"?e.position.clientY:e.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:d,y:f}=Ve({clientX:c,clientY:m},this.state),p=d-l,b=f-s,[x,y]=Jt(p,b,this.state.gridSize),w=wc(o.map(_=>ue(_,{x:_.x+x-r,y:_.y+y-n})),{randomizeSeed:!e.retainSeed}),k=[...this.scene.getElementsIncludingDeleted(),...w],C=this.getTopLayerFrameAtSceneCoords({x:d,y:f});if(C){let _=a0(w,C);Rc(k,_,C)}this.scene.replaceAllElements(k),w.forEach(_=>{if(le(_)&&bt(_)){let I=Lr(_,this.scene.getElementsMapIncludingDeleted());$t(_,I,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.history.resumeRecording();let M=Ji(w);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Ut.get(xs)?this.state.openSidebar:null,...Rt({editingGroupId:null,selectedElementIds:M.reduce((_,I)=>(bt(I)||(_[I.id]=!0),_),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(w,{fitToContent:!0})};async addElementsFromMixedContentPaste(e,{isPlainPaste:o,sceneX:r,sceneY:n}){if(!o&&e.some(i=>i.type==="imageUrl")&&this.isToolSupported("image")){let i=e.filter(d=>d.type==="imageUrl").map(d=>d.value),a=await Promise.all(i.map(async d=>{try{return{file:await Nb(d)}}catch(f){let p=f.message;return f.cause==="FETCH_ERROR"?p=g("errors.failedToFetchImage"):f.cause==="UNSUPPORTED"&&(p=g("errors.unsupportedFileType")),{errorMessage:p}}})),l=n,s=!1,c={};for(let d of a)if(d.file){let f=this.createImageElement({sceneX:r,sceneY:l}),p=await this.insertImageElement(f,d.file);p&&(s||(s=!0,l-=p.height/2),te(p,{y:l},!1),l=f.y+f.height+25,c[f.id]=!0)}this.setState({selectedElementIds:Fe(c,this.state)});let m=a.find(d=>!!d.errorMessage);m&&m.errorMessage&&this.setState({errorMessage:m.errorMessage})}else{let i=e.filter(a=>a.type==="text");i.length&&this.addTextFromPaste(i.map(a=>a.value).join(`
|
|
185
|
+
`)}async onMagicFrameGenerate(t,r){if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"generation"}}),ze("ai","generate (missing key)","d2c");return}let o=mf(this.scene.getNonDeletedElements(),t).filter(m=>!Id(m));if(!o.length){r==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),ze("ai","generate (no-children)","d2c")):this.setActiveTool({type:"magicframe"});return}let i=this.insertIframeElement({sceneX:t.x+t.width+30,sceneY:t.y,width:t.width,height:t.height});if(!i)return;this.updateMagicGeneration({frameElement:i,data:{status:"pending"}}),this.setState({selectedElementIds:{[i.id]:!0}});let a=await hv({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:t,files:this.files}),s=await jp(a),c=this.getTextFromElements(o);ze("ai","generate (start)","d2c");let d=await IP({image:s,apiKey:this.OPENAI_KEY,text:c,theme:this.state.theme});if(!d.ok){ze("ai","generate (failed)","d2c"),console.error(d.error),this.updateMagicGeneration({frameElement:i,data:{status:"error",code:"ERR_OAI",message:d.error?.message||"Unknown error during generation"}});return}if(ze("ai","generate (success)","d2c"),d.choices[0].message.content==null){this.updateMagicGeneration({frameElement:i,data:{status:"error",code:"ERR_OAI",message:"Nothing genereated :("}});return}let p=d.choices[0].message.content,f=p.slice(p.indexOf("<!DOCTYPE html>"),p.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:i,data:{status:"done",html:f}})}onIframeSrcCopy(t){t.customData?.generationData?.status==="done"&&(Hs(t.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=So.get(Vo.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=So.has(Vo.OAI_API_KEY)||!1;onOpenAIKeyChange=(t,r)=>{if(this.OPENAI_KEY=t||null,r){let o=So.set(Vo.OAI_API_KEY,t);this.OPENAI_KEY_IS_PERSISTED=o}else this.OPENAI_KEY_IS_PERSISTED=!1};onMagicSettingsConfirm=(t,r,o)=>{if(this.OPENAI_KEY=t||null,this.onOpenAIKeyChange(this.OPENAI_KEY,r),o==="settings")return;let i=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});t?i.length?this.onMagicframeToolSelect():this.setActiveTool({type:"magicframe"}):Id(i[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),ze("ai","tool-select (missing key)","d2c");return}let t=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds});if(t.length===0)this.setActiveTool({type:Vt.magicframe}),ze("ai","tool-select (empty-selection)","d2c");else{let r=t.length===1&&Id(t[0])&&t[0];if(!r&&t.some(i=>He(i)||i.frameId)){this.setActiveTool({type:Vt.magicframe});return}ze("ai","tool-select (existing selection)","d2c");let o;if(r)o=r;else{let[i,a,s,c]=lt(t),d=50;o=Gd({...wn,x:i-d,y:a-d,width:s-i+d*2,height:c-a+d*2,opacity:100,locked:!1}),this.scene.insertElement(o);for(let p of t)me(p,{frameId:o.id});this.setState({selectedElementIds:{[o.id]:!0}})}this.onMagicFrameGenerate(o,"upstream")}};openEyeDropper=({type:t})=>{zr.set(_a,{swapPreviewOnAlt:!0,colorPickerType:t==="stroke"?"elementStroke":"elementBackground",onSelect:(r,o)=>{let i=t==="background"&&o.altKey||t==="stroke"&&!o.altKey;!this.scene.getSelectedElements(this.state).length||this.state.activeTool.type!=="selection"?i?this.syncActionResult({appState:{...this.state,currentItemStrokeColor:r},storeAction:W.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:r},storeAction:W.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(s=>this.state.selectedElementIds[s.id]?Pe(s,{[i?"strokeColor":"backgroundColor"]:r}):s),storeAction:W.CAPTURE})},keepOpenOnAlt:!1})};syncActionResult=Dt(t=>{if(this.unmounted||t===!1)return;t.storeAction===W.UPDATE?this.store.shouldUpdateSnapshot():t.storeAction===W.CAPTURE&&this.store.shouldCaptureIncrement();let r=!1,o=null;if(t.elements&&(t.elements.forEach(i=>{this.state.editingElement?.id===i.id&&this.state.editingElement!==i&&_v(i)&&(o=i)}),this.scene.replaceAllElements(t.elements),r=!0),t.files&&(this.files=t.replaceFiles?t.files:{...this.files,...t.files},this.addNewImagesToImageCache()),t.appState||o||this.state.contextMenu){let i=t?.appState?.viewModeEnabled||!1,a=t?.appState?.zenModeEnabled||!1,s=t?.appState?.gridSize||null,c=t?.appState?.theme||this.props.theme||Be.LIGHT,d=t?.appState?.name??this.state.name,p=t?.appState?.errorMessage??this.state.errorMessage;typeof this.props.viewModeEnabled<"u"&&(i=this.props.viewModeEnabled),typeof this.props.zenModeEnabled<"u"&&(a=this.props.zenModeEnabled),typeof this.props.gridModeEnabled<"u"&&(s=this.props.gridModeEnabled?xi:null),o=o||t.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(f=>Object.assign(t.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:i,zenModeEnabled:a,gridSize:s,theme:c,name:d,errorMessage:p})),r=!0}!r&&t.storeAction!==W.NONE&&this.scene.triggerUpdate()});onBlur=Dt(()=>{es=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=t=>{t.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Dt(t=>{this.scene.replaceAllElements([]),this.setState(r=>({...Ns(),isLoading:t?.resetLoadingState?!1:r.isLoading,theme:this.state.theme})),this.resetStore(),this.resetHistory()});initializeScene=async()=>{"launchQueue"in window&&"LaunchParams"in window&&window.launchQueue.setConsumer(async o=>{if(!o.files.length)return;let i=o.files[0],a=await i.getFile();this.loadFileToCanvas(new File([a],a.name||"",{type:a.type}),i)}),this.props.theme&&this.setState({theme:this.props.theme}),this.state.isLoading||this.setState({isLoading:!0});let t=null;try{typeof this.props.initialData=="function"?t=await this.props.initialData()||null:t=await this.props.initialData||null,t?.libraryItems&&this.library.updateLibrary({libraryItems:t.libraryItems,merge:!0}).catch(o=>{console.error(o)})}catch(o){console.error(o),t={appState:{errorMessage:o.message||"Encountered an error during importing or restoring scene data"}}}let r=cv(t,null,null,{repairBindings:!0});r.appState={...r.appState,theme:this.props.theme||r.appState.theme,openSidebar:r.appState?.openSidebar||this.state.openSidebar,activeTool:r.appState.activeTool.type==="image"?{...r.appState.activeTool,type:"selection"}:r.appState.activeTool,isLoading:!1,toast:this.state.toast},t?.scrollToContent&&(r.appState={...r.appState,...Sl(r.elements,{...r.appState,width:this.state.width,height:this.state.height,offsetTop:this.state.offsetTop,offsetLeft:this.state.offsetLeft})}),this.resetStore(),this.resetHistory(),this.syncActionResult({...r,storeAction:W.UPDATE}),this.fonts.load()};isMobileBreakpoint=(t,r)=>t<OS||r<BS&&t<FS;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:r,clientHeight:o}=document.body,i=this.device.viewport,a=bs(i,{isLandscape:r>o,isMobile:this.isMobileBreakpoint(r,o)});return i!==a?(this.device={...this.device,viewport:a},!0):!1};refreshEditorBreakpoints=()=>{let t=this.excalidrawContainerRef.current;if(!t)return;let{width:r,height:o}=t.getBoundingClientRect(),i=this.props.UIOptions.dockedSidebarBreakpoint!=null?this.props.UIOptions.dockedSidebarBreakpoint:zS,a=this.device.editor,s=bs(a,{isMobile:this.isMobileBreakpoint(r,o),canFitSidebar:r>i});return a!==s?(this.device={...this.device,editor:s},!0):!1};async componentDidMount(){if(this.unmounted=!1,this.excalidrawContainerValue.container=this.excalidrawContainerRef.current,_.MODE===vx.TEST||_.DEV){let r=this.setState.bind(this);Object.defineProperties(window.h,{state:{configurable:!0,get:()=>this.state},setState:{configurable:!0,value:(...o)=>this.setState(...o)},app:{configurable:!0,value:this},history:{configurable:!0,value:this.history},store:{configurable:!0,value:this.store},fonts:{configurable:!0,value:this.fonts}})}this.store.onStoreIncrementEmitter.on(r=>{this.history.record(r.elementsChange,r.appStateChange)}),this.scene.onUpdate(this.triggerRender),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),wd()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),fd&&this.excalidrawContainerRef.current&&(this.resizeObserver=new ResizeObserver(()=>{this.refreshEditorBreakpoints(),this.updateDOMRect()}),this.resizeObserver?.observe(this.excalidrawContainerRef.current)),new URLSearchParams(window.location.search.slice(1)).has("web-share-target")?this.restoreFileFromShare():this.updateDOMRect(this.initializeScene),ES()&&!mC()&&this.setState({errorMessage:(0,qe.jsx)(cP,{})})}componentWillUnmount(){window.launchQueue?.setConsumer(()=>{}),this.renderer.destroy(),this.scene.destroy(),this.scene=new Xo,this.fonts=new vl({scene:this.scene}),this.renderer=new Wm(this.scene),this.files={},this.imageCache.clear(),this.resizeObserver?.disconnect(),this.unmounted=!0,this.removeEventListeners(),this.library.destroy(),this.laserTrails.stop(),this.eraserTrail.stop(),this.onChangeEmitter.clear(),this.store.onStoreIncrementEmitter.clear(),va.destroy(),un.destroy(),clearTimeout(Ha),ft.clearCache(),Mr.clearCache(),Ha=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Dt(()=>{this.scene.getElementsIncludingDeleted().forEach(t=>va.delete(t)),this.refreshViewportBreakpoints(),this.updateDOMRect(),fd||this.refreshEditorBreakpoints(),this.setState({})});onFullscreenChange=()=>{!document.fullscreenElement&&this.state.activeEmbeddable?.state==="active"&&this.setState({activeEmbeddable:null})};removeEventListeners(){this.onRemoveEventListenersEmitter.trigger()}addEventListeners(){this.removeEventListeners(),this.props.handleKeyboardGlobally&&this.onRemoveEventListenersEmitter.once(Ut(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(Ut(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),Ut(window,"message",this.onWindowMessage,!1),Ut(document,"pointerup",this.removePointer),Ut(document,"copy",this.onCopy),Ut(document,"keyup",this.onKeyUp,{passive:!0}),Ut(document,"pointermove",this.updateCurrentCursorPosition),Ut(document.fonts,"loadingdone",t=>{let r=t.fontfaces;this.fonts.onLoaded(r)}),Ut(document,"gesturestart",this.onGestureStart,!1),Ut(document,"gesturechange",this.onGestureChange,!1),Ut(document,"gestureend",this.onGestureEnd,!1),Ut(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null),this.triggerRender(!0)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(Ut(document,"fullscreenchange",this.onFullscreenChange),Ut(document,"paste",this.pasteFromClipboard),Ut(document,"cut",this.onCut),Ut(window,"resize",this.onResize,!1),Ut(window,"unload",this.onUnload,!1),Ut(window,"blur",this.onBlur,!1),Ut(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),Ut(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(Ut(jS(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(t,r){this.updateEmbeddables();let o=this.scene.getElementsIncludingDeleted(),i=this.scene.getElementsMapIncludingDeleted(),a=this.scene.getNonDeletedElementsMap();!this.state.showWelcomeScreen&&!o.length&&this.setState({showWelcomeScreen:!0}),t.UIOptions.dockedSidebarBreakpoint!==this.props.UIOptions.dockedSidebarBreakpoint&&this.refreshEditorBreakpoints(),r.userToFollow&&!this.state.collaborators.has(r.userToFollow.socketId)&&this.maybeUnfollowRemoteUser(),(r.zoom.value!==this.state.zoom.value||r.scrollX!==this.state.scrollX||r.scrollY!==this.state.scrollY)&&(this.props?.onScrollChange?.(this.state.scrollX,this.state.scrollY,this.state.zoom),this.onScrollChangeEmitter.trigger(this.state.scrollX,this.state.scrollY,this.state.zoom)),r.userToFollow!==this.state.userToFollow&&(r.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:r.userToFollow,action:"UNFOLLOW"}),this.state.userToFollow&&this.onUserFollowEmitter.trigger({userToFollow:this.state.userToFollow,action:"FOLLOW"})),Object.keys(this.state.selectedElementIds).length&&jo(this.state)&&this.setState({activeTool:Ht(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&r.theme!==this.state.theme&&SC(this.interactiveCanvas,this.state.theme),r.activeTool.type==="selection"&&this.state.activeTool.type!=="selection"&&this.state.showHyperlinkPopup&&this.setState({showHyperlinkPopup:!1}),t.langCode!==this.props.langCode&&this.updateLanguage(),jo(r)&&!jo(this.state)&&this.eraserTrail.endPath(),t.viewModeEnabled!==this.props.viewModeEnabled&&this.setState({viewModeEnabled:!!this.props.viewModeEnabled}),r.viewModeEnabled!==this.state.viewModeEnabled&&(this.addEventListeners(),this.deselectElements()),t.zenModeEnabled!==this.props.zenModeEnabled&&this.setState({zenModeEnabled:!!this.props.zenModeEnabled}),t.theme!==this.props.theme&&this.props.theme&&this.setState({theme:this.props.theme}),t.gridModeEnabled!==this.props.gridModeEnabled&&this.setState({gridSize:this.props.gridModeEnabled?xi:null}),this.excalidrawContainerRef.current?.classList.toggle("theme--dark",this.state.theme===Be.DARK),this.state.editingLinearElement&&!this.state.selectedElementIds[this.state.editingLinearElement.elementId]&&setTimeout(()=>{this.state.editingLinearElement&&this.actionManager.executeAction(nn)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:c}=r;r.activeTool!==this.state.activeTool&&c!=null&&fl(this.state)&&vi(c,!1)&&Od(c,this.state,Ed(Re.getPointAtIndexGlobalCoordinates(c,-1,a)),this.scene.getNonDeletedElementsMap()),this.store.commit(i,this.state),this.state.isLoading||(this.props.onChange?.(o,this.state,this.files),this.onChangeEmitter.trigger(o,this.state,this.files))}renderInteractiveSceneCallback=({atLeastOneVisibleElement:t,scrollBars:r,elementsMap:o})=>{r&&(vE=r);let i=he(this.state.editingElement)?!1:!t&&o.size>0;this.state.scrolledOutside!==i&&this.setState({scrolledOutside:i}),this.scheduleImageRefresh()};onScroll=al(()=>{let{offsetTop:t,offsetLeft:r}=this.getCanvasOffsets();this.setState(o=>o.offsetLeft===r&&o.offsetTop===t?null:{offsetTop:t,offsetLeft:r})},RS);onCut=Dt(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Wn(t.target)||(this.actionManager.executeAction(Tg,"keyboard",t),t.preventDefault(),t.stopPropagation())});onCopy=Dt(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Wn(t.target)||(this.actionManager.executeAction(wc,"keyboard",t),t.preventDefault(),t.stopPropagation())});static resetTapTwice(){Xm=!1}onTouchStart=t=>{if(yS&&t.preventDefault(),!Xm){Xm=!0,clearTimeout(bE),bE=window.setTimeout(e.resetTapTwice,PS);return}if(Xm&&t.touches.length===1){let r=t.touches[0];this.handleCanvasDoubleClick({clientX:r.clientX,clientY:r.clientY}),Xm=!1,clearTimeout(bE)}t.touches.length===2&&this.setState({selectedElementIds:gt({},this.state),activeEmbeddable:null})};onTouchEnd=t=>{this.resetContextMenuTimer(),t.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:gt(this.state.previousSelectedElementIds,this.state)}):at.pointers.clear()};pasteFromClipboard=Dt(async t=>{let r=!!Bh,o=document.activeElement,i=this.excalidrawContainerRef.current?.contains(o);if(t&&!i)return;let a=document.elementFromPoint(this.lastViewportPosition.x,this.lastViewportPosition.y);if(t&&(!(a instanceof HTMLCanvasElement)||Wn(o)))return;let{x:s,y:c}=kt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),d=t?.clipboardData?.files[0],p=await nf(t,r);if(!d&&!r){if(p.mixedContent)return this.addElementsFromMixedContentPaste(p.mixedContent,{isPlainPaste:r,sceneX:s,sceneY:c});if(p.text){let f=p.text.trim();f.startsWith("<svg")&&f.endsWith("</svg>")&&(d=uv(f))}}if(Zp(d)&&!p.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:E("errors.imageToolNotSupported")});return}let f=this.createImageElement({sceneX:s,sceneY:c});this.insertImageElement(f,d),this.initializeImageDimensions(f),this.setState({selectedElementIds:gt({[f.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(p,t)===!1)return}catch(f){console.error(f)}if(p.errorMessage)this.setState({errorMessage:p.errorMessage});else if(p.spreadsheet&&!r)this.setState({pasteDialog:{data:p.spreadsheet,shown:!0}});else if(p.elements){let f=p.programmaticAPI?Bc(p.elements):p.elements;this.addElementsFromPasteOrLibrary({elements:f,files:p.files||null,position:"cursor",retainSeed:r})}else if(p.text){if(p.text&&RP(p.text)){let g=await import("./excalidraw-assets/dist-NLUQPPQQ.js");try{let{elements:h,files:b}=await g.parseMermaidToExcalidraw(p.text),y=Bc(h,{regenerateIds:!0});this.addElementsFromPasteOrLibrary({elements:y,files:b,position:"cursor"});return}catch(h){console.warn(`parsing pasted text as mermaid definition failed: ${h.message}`)}}let f=a2(p.text).split(/\n+/).map(g=>g.trim()).filter(Boolean),m=f.map(g=>FC(g)).filter(g=>zs(g,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(g)||yl(g)?.type==="video"));if(!Bh&&m.length>0&&m.length===f.length){let g=[];for(let h of m){let b=g[g.length-1],y=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:s,sceneY:c,link:Ci(h)});y&&g.push(y)}g.length&&this.setState({selectedElementIds:Object.fromEntries(g.map(h=>[h.id,!0]))});return}this.addTextFromPaste(p.text,r)}this.setActiveTool({type:"selection"}),t?.preventDefault()});addElementsFromPasteOrLibrary=t=>{let r=sv(t.elements,null,void 0),[o,i,a,s]=lt(r),c=sl(o,a)/2,d=sl(i,s)/2,p=typeof t.position=="object"?t.position.clientX:t.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,f=typeof t.position=="object"?t.position.clientY:t.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:m,y:g}=kt({clientX:p,clientY:f},this.state),h=m-c,b=g-d,[y,T]=ro(h,b,this.state.gridSize),k=tf(r.map(L=>Pe(L,{x:L.x+y-o,y:L.y+T-i})),{randomizeSeed:!t.retainSeed}),A=[...this.scene.getElementsIncludingDeleted(),...k];Po(A,Le(k));let O=this.getTopLayerFrameAtSceneCoords({x:m,y:g});if(O){let L=iI(k,O);sf(A,L,O)}this.scene.replaceAllElements(A),k.forEach(L=>{if(he(L)&&Sr(L)){let F=bl(L,this.scene.getElementsMapIncludingDeleted());Xt(L,F,this.scene.getElementsMapIncludingDeleted())}}),t.files&&(this.files={...this.files,...t.files}),this.store.shouldCaptureIncrement();let z=Ws(k);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&zr.get(Dm)?this.state.openSidebar:null,...Mr({editingGroupId:null,selectedElementIds:z.reduce((L,F)=>(Sr(F)||(L[F.id]=!0),L),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{t.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),t.fitToContent&&this.scrollToContent(k,{fitToContent:!0})};async addElementsFromMixedContentPaste(t,{isPlainPaste:r,sceneX:o,sceneY:i}){if(!r&&t.some(a=>a.type==="imageUrl")&&this.isToolSupported("image")){let a=t.filter(m=>m.type==="imageUrl").map(m=>m.value),s=await Promise.all(a.map(async m=>{try{return{file:await MC(m)}}catch(g){let h=g.message;return g.cause==="FETCH_ERROR"?h=E("errors.failedToFetchImage"):g.cause==="UNSUPPORTED"&&(h=E("errors.unsupportedFileType")),{errorMessage:h}}})),c=i,d=!1,p={};for(let m of s)if(m.file){let g=this.createImageElement({sceneX:o,sceneY:c}),h=await this.insertImageElement(g,m.file);h&&(d||(d=!0,c-=h.height/2),me(h,{y:c},!1),c=g.y+g.height+25,p[g.id]=!0)}this.setState({selectedElementIds:gt(p,this.state)});let f=s.find(m=>!!m.errorMessage);f&&f.errorMessage&&this.setState({errorMessage:f.errorMessage})}else{let a=t.filter(s=>s.type==="text");a.length&&this.addTextFromPaste(a.map(s=>s.value).join(`
|
|
166
186
|
|
|
167
|
-
`),
|
|
168
|
-
`),c=s.reduce((d,f,p)=>{let b=f.trim(),x=Pr(i.fontFamily);if(b.length){let y=this.getTopLayerFrameAtSceneCoords({x:r,y:l}),w=mn({...i,x:r,y:l,text:b,lineHeight:x,frameId:y?y.id:null});d.push(w),l+=w.height+a}else s[p-1]?.trim()&&(l+=ob(i.fontSize,x)+a);return d},[]);if(c.length===0)return;let m=c[0].frameId;m?this.scene.insertElementsAtIndex(c,this.scene.getElementIndex(m)):this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),...c]),this.setState({selectedElementIds:Fe(Object.fromEntries(c.map(d=>[d.id,!0])),this.state)}),!o&&c.length>1&&B5===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:N("CtrlOrCmd+Shift+V")}),duration:5e3}),B5=!0),this.history.resumeRecording()}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{Fn&&this.resetContextMenuTimer(),Ae.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||ve("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...ot(this.state,o.activeTool.locked?{type:"selection"}:o.activeTool),locked:!o.activeTool.locked}}))};updateFrameRendering=e=>{this.setState(o=>{let r=typeof e=="function"?e(o.frameRendering):e;return{frameRendering:{enabled:r?.enabled??o.frameRendering.enabled,clip:r?.clip??o.frameRendering.clip,name:r?.name??o.frameRendering.name,outline:r?.outline??o.frameRendering.outline}}})};togglePenMode=e=>{this.setState(o=>({penMode:e??!o.penMode,penDetected:!0}))};onHandToolToggle=()=>{this.actionManager.executeAction(Ny)};zoomCanvas=e=>{this.setState({...Br({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Fr(e)},this.state)})};cancelInProgressAnimation=null;scrollToContent=(e=this.scene.getNonDeletedElements(),o)=>{this.cancelInProgressAnimation?.();let r=Array.isArray(e)?e:[e],n=this.state.zoom,i=this.state.scrollX,a=this.state.scrollY;if(o?.fitToContent||o?.fitToViewport){let{appState:l}=Jl({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=Xn(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,s=this.state.scrollY,c=this.state.zoom.value,m=k1({fromValues:{scrollX:l,scrollY:s,zoom:c},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(d,f,p,b)=>{if(b==="zoom")return d*Math.pow(f/d,Un(p))},onStep:({scrollX:d,scrollY:f,zoom:p})=>{this.setState({scrollX:d,scrollY:f,zoom:{value:p}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:o?.duration??500});this.cancelInProgressAnimation=()=>{m(),this.cancelInProgressAnimation=null}}else this.setState({scrollX:i,scrollY:a,zoom:n})};maybeUnfollowRemoteUser=()=>{this.state.userToFollow&&this.setState({userToFollow:null})};translateCanvas=e=>{this.cancelInProgressAnimation?.(),this.maybeUnfollowRemoteUser(),this.setState(e)};setToast=e=>{this.setState({toast:e})};restoreFileFromShare=async()=>{try{let e=await caches.open("web-share-target"),o=await e.match("shared-file");if(o){let r=await o.blob(),n=new File([r],r.name||"",{type:r.type});this.loadFileToCanvas(n,null),await e.delete("shared-file"),window.history.replaceState(null,ol,window.location.pathname)}}catch(e){this.setState({errorMessage:e.message})}};addFiles=qe(e=>{let o=e.reduce((r,n)=>(r.set(n.id,n),r),new Map);this.files={...this.files,...Object.fromEntries(o)},this.scene.getNonDeletedElements().forEach(r=>{ul(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),mr.delete(r))}),this.scene.informMutation(),this.addNewImagesToImageCache()});updateScene=qe(e=>{e.commitToHistory&&this.history.resumeRecording(),e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(e.elements),e.collaborators&&this.setState({collaborators:e.collaborators})});onSceneUpdated=()=>{this.setState({})};toggleSidebar=({name:e,tab:o,force:r})=>{let n;r===void 0?n=this.state.openSidebar?.name===e&&this.state.openSidebar?.tab===o?null:e:n=r?e:null;let i=n?{name:n}:null;return i&&o&&(i.tab=o),this.setState({openSidebar:i}),!!n};updateCurrentCursorPosition=qe(e=>{this.lastViewportPosition.x=e.clientX,this.lastViewportPosition.y=e.clientY});onKeyDown=qe(e=>{if("Proxy"in window&&(!e.shiftKey&&/^[A-Z]$/.test(e.key)||e.shiftKey&&/^[a-z]$/.test(e.key))&&(e=new Proxy(e,{get(i,a){let l=i[a];return typeof l=="function"?l.bind(i):a==="key"?e.shiftKey?i.key.toUpperCase():i.key.toLowerCase():l}})),e[T.CTRL_OR_CMD]&&e.key===T.P&&!e.shiftKey&&!e.altKey){this.setToast({message:g("commandPalette.shortcutHint",{shortcutOne:Et("commandPalette"),shortcutTwo:Et("commandPalette",1)})}),e.preventDefault();return}if(e[T.CTRL_OR_CMD]&&e.key.toLowerCase()===T.V&&(fu=e.shiftKey,clearTimeout(F5),F5=window.setTimeout(()=>{fu=!1},100)),e[T.CTRL_OR_CMD]&&wo(e.target)&&(e.code===fe.MINUS||e.code===fe.EQUAL)){e.preventDefault();return}if(wo(e.target)&&e.key!==T.ESCAPE||Fi(e.key)&&T1(e.target))return;if(e.key===T.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(e.key.toLowerCase()===T.E&&e.shiftKey&&e[T.CTRL_OR_CMD]){e.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(e.key===T.PAGE_UP||e.key===T.PAGE_DOWN){let i=(e.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;e.key===T.PAGE_DOWN&&(i=-i),e.shiftKey?this.translateCanvas(a=>({scrollX:a.scrollX+i})):this.translateCanvas(a=>({scrollY:a.scrollY+i}))}if(this.actionManager.handleKeyDown(e)||this.state.viewModeEnabled)return;if(e[T.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Fi(e.key)){let i=this.state.gridSize&&(e.shiftKey?Tu:this.state.gridSize)||(e.shiftKey?Jg:Tu),a=0,l=0;e.key===T.ARROW_LEFT?a=-i:e.key===T.ARROW_RIGHT?a=i:e.key===T.ARROW_UP?l=-i:e.key===T.ARROW_DOWN&&(l=i);let s=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});s.forEach(c=>{te(c,{x:c.x+a,y:c.y+l}),Ku(c,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:s})}),this.maybeSuggestBindingForAll(s),e.preventDefault()}else if(e.key===T.ENTER){let i=this.scene.getSelectedElements(this.state);if(i.length===1){let a=i[0];if(e[T.CTRL_OR_CMD])Re(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.history.resumeRecording(),this.setState({editingLinearElement:new he(a)}));else if(le(a)||mb(a)){let l;le(a)||(l=a);let s=hc(a,this.state,this.scene.getNonDeletedElementsMap()),c=s.x,m=s.y;this.startTextEditing({sceneX:c,sceneY:m,container:l}),e.preventDefault();return}else Te(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=rw(e.key);i?(this.state.activeTool.type!==i&&ve("toolbar",i,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:i}),e.stopPropagation()):e.key===T.Q&&(this.toggleLock("keyboard"),e.stopPropagation())}if(e.key===T.SPACE&&Ae.pointers.size===0&&(ki=!0,Ne(this.interactiveCanvas,De.GRAB),e.preventDefault()),(e.key===T.G||e.key===T.S)&&!e.altKey&&!e[T.CTRL_OR_CMD]){let i=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!i.length)return;e.key===T.G&&(cn(this.state.activeTool.type)||i.some(a=>cn(a.type)))&&(this.setState({openPopup:"elementBackground"}),e.stopPropagation()),e.key===T.S&&(this.setState({openPopup:"elementStroke"}),e.stopPropagation())}if(e.key===T.K&&!e.altKey&&!e[T.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}e[T.CTRL_OR_CMD]&&(e.key===T.BACKSPACE||e.key===T.DELETE)&&Ut.set(vi,"clearCanvas");let o=e.key.toLocaleLowerCase(),r=o===T.S&&e.shiftKey,n=e.key===T.I||o===T.G&&e.shiftKey;(r||n)&&this.openEyeDropper({type:r?"stroke":"background"})});onWheel=qe(e=>{!(e.target instanceof HTMLCanvasElement)&&e.ctrlKey&&e.preventDefault()});onKeyUp=qe(e=>{if(e.key===T.SPACE&&(this.state.viewModeEnabled?Ne(this.interactiveCanvas,De.GRAB):this.state.activeTool.type==="selection"?ko(this.interactiveCanvas):(Yo(this.interactiveCanvas,this.state),this.setState({selectedElementIds:Fe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),ki=!1),!e[T.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Fi(e.key)){let o=this.scene.getSelectedElements(this.state),r=this.scene.getNonDeletedElementsMap();Vn(this.state)?xl(o,this.scene.getNonDeletedElements(),r):yl(o,r),this.setState({suggestedBindings:[]})}});isToolSupported=e=>this.props.UIOptions.tools?.[e]!==!1;setActiveTool=e=>{if(!this.isToolSupported(e.type)){console.warn(`"${e.type}" tool is disabled via "UIOptions.canvasActions.tools.${e.type}"`);return}let o=ot(this.state,e);o.type==="hand"?Ne(this.interactiveCanvas,De.GRAB):ki||Yo(this.interactiveCanvas,this.state),C1(document.activeElement)&&this.focusContainer(),O1(o.type)||this.setState({suggestedBindings:[]}),o.type==="image"&&this.onImageAction({insertOnCanvasDirectly:(e.type==="image"&&e.insertOnCanvasDirectly)??!1}),this.setState(r=>{let n={snapLines:r.snapLines.length?[]:r.snapLines,originSnapOffset:null,activeEmbeddable:null};return o.type!=="selection"?{...r,activeTool:o,selectedElementIds:Fe({},r),selectedGroupIds:Fe({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{Ne(this.interactiveCanvas,e)};resetCursor=()=>{ko(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>Ae.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${Pu()}`;onGestureStart=qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:Fe({},this.state),activeEmbeddable:null}),Ae.initialScale=this.state.zoom.value});onGestureChange=qe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=Ae.initialScale;o&&this.setState(r=>({...Br({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Fr(o*e.scale)},r)}))});onGestureEnd=qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:Fe(this.state.previousSelectedElementIds,this.state)}),Ae.initialScale=null});handleTextWysiwyg(e,{isExistingElement:o=!1}){let r=this.scene.getElementsMapIncludingDeleted(),n=(i,a,l)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(s=>s.id===e.id&&le(s)?kb(s,Lr(s,r),r,{text:i,isDeleted:l,originalText:a}):s)])};O5({id:e.id,canvas:this.canvas,getViewportCoords:(i,a)=>{let{x:l,y:s}=qt({sceneX:i,sceneY:a},this.state);return[l-this.state.offsetLeft,s-this.state.offsetTop]},onChange:qe(i=>{n(i,i,!1),bp(e)&&Ku(e,r)}),onSubmit:qe(({text:i,viaKeyboard:a,originalText:l})=>{let s=!i.trim();if(n(i,l,s),!s&&a){let c=e.containerId?e.containerId:e.id;this.setState(m=>({selectedElementIds:Fe({...m.selectedElementIds,[c]:!0},m)}))}s&&zi(this.scene.getNonDeletedElements(),[e]),(!s||o)&&this.history.resumeRecording(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&Yo(this.interactiveCanvas,this.state),this.focusContainer()}),element:e,excalidrawContainer:this.excalidrawContainerRef.current,app:this}),this.deselectElements(),n(e.text,e.originalText,!1)}deselectElements(){this.setState({selectedElementIds:Fe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&le(r)&&!r.isDeleted?r:null}getElementAtPosition(e,o,r){let n=this.getElementsAtPosition(e,o,r?.includeBoundTextElement,r?.includeLockedElements);if(n.length>1){if(r?.preferSelected){for(let a=n.length-1;a>-1;a--)if(this.state.selectedElementIds[n[a].id])return n[a]}let i=n[n.length-1];return lc(i,this.state,this.frameNameBoundsCache,e,o,this.scene.getNonDeletedElementsMap())?n[n.length-2]:i}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(l=>(n||!l.locked)&&(r||!(le(l)&&l.containerId))),a=this.scene.getNonDeletedElementsMap();return G1(i,l=>Uu(l,this.state,this.frameNameBoundsCache,e,o,a)).filter(l=>{let s=Dc(l,a);return s&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?sp({x:e,y:o},s,a):!0})}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n})=>{let i=!1,a=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&a&&(lt(n,this.scene.getNonDeletedElementsMap())||(i=!0));let l=null,s=this.scene.getSelectedElements(this.state);s.length===1?le(s[0])?l=s[0]:n?l=lt(s[0],this.scene.getNonDeletedElementsMap()):l=this.getTextElementAtPosition(e,o):l=this.getTextElementAtPosition(e,o);let c=l?.fontFamily||this.state.currentItemFontFamily,m=l?.lineHeight||Pr(c),d=this.state.currentItemFontSize;if(!l&&i&&n&&!Mr(n)){let x=ab(Ko({fontSize:d,fontFamily:c}),m),y=rb(d,m),w=Math.max(n.height,y),k=Math.max(n.width,x);te(n,{height:w,width:k}),e=n.x+k/2,o=n.y+w/2,a&&(a=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let f=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),p=l||mn({x:a?a.elementCenterX:e,y:a?a.elementCenterY:o,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:"",fontSize:d,fontFamily:c,textAlign:a?"center":this.state.currentItemTextAlign,verticalAlign:a?vo.MIDDLE:Iu,containerId:i?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:m,angle:n?.angle??0,frameId:f?f.id:null});if(!l&&i&&n&&te(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:p.id})}),this.setState({editingElement:p}),!l)if(n&&i){let b=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(p,b+1)}else this.scene.addNewElement(p);this.setState({editingElement:p}),this.handleTextWysiwyg(p,{isExistingElement:!!l})};handleCanvasDoubleClick=e=>{if(this.state.multiElement||this.state.activeTool.type!=="selection")return;let o=this.scene.getSelectedElements(this.state);if(o.length===1&&Re(o[0])&&e[T.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.history.resumeRecording(),this.setState({editingLinearElement:new he(o[0])});return}ko(this.interactiveCanvas);let{x:r,y:n}=Ve(e,this.state);if(Rr(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&xb(a,this.state.selectedGroupIds);if(l){this.setState(s=>({...s,...Rt({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),s,this)}));return}}if(ko(this.interactiveCanvas),!e[T.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(Di(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=Yu(this.scene.getNonDeletedElements(),this.state,r,n,this.scene.getNonDeletedElementsMap());if(l&&(cr(l)||!Gn(l.backgroundColor)||Wu(l,this.state,this.frameNameBoundsCache,[r,n],this.scene.getNonDeletedElementsMap()))){let s=hc(l,this.state,this.scene.getNonDeletedElementsMap());r=s.x,n=s.y}this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:l})}};getElementLinkAtPosition=(e,o)=>{let r=this.scene.getNonDeletedElements().slice().reverse(),n=1/0;return r.find((i,a)=>(o&&i.id===o.id&&(n=a),i.link&&a<=n&&_c(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=sn(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>zn||!o&&r!==0)return;let n=Ve(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=_c(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=Ve(this.lastPointerUpEvent,this.state),s=_c(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&s){let c=this.hitLinkElement.link;if(c){c=Nr(c);let m;if(this.props.onLinkOpen&&(m=oc("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:c},m)),!m?.defaultPrevented){let d=xc(c)?"_self":"_blank",f=window.open(void 0,d,"noopener noreferrer");f&&(f.opener=null,f.location=c)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>sp(e,n,o));return r.length?r[r.length-1]:null};handleCanvasPointerMove=e=>{this.savePointer(e.clientX,e.clientY,this.state.cursorButton),this.lastPointerMoveEvent=e.nativeEvent,Ae.pointers.has(e.pointerId)&&Ae.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=Ae.initialScale;if(Ae.pointers.size===2&&Ae.lastCenter&&o&&Ae.initialDistance){let f=Rh(Ae.pointers),p=f.x-Ae.lastCenter.x,b=f.y-Ae.lastCenter.y;Ae.lastCenter=f;let x=Nh(Array.from(Ae.pointers.values())),y=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/Ae.initialDistance,w=y?Fr(o*y):this.state.zoom.value;this.setState(k=>{let C=Br({viewportX:f.x,viewportY:f.y,nextZoom:w},k);this.translateCanvas({zoom:C.zoom,scrollX:C.scrollX+p/w,scrollY:C.scrollY+b/w,shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else Ae.lastCenter=Ae.initialDistance=Ae.initialScale=null;if(ki||Ps||Cg||Dr(this.state))return;let n=zh(Tg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?ko(this.interactiveCanvas):Yo(this.interactiveCanvas,this.state));let i=Ve(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&p5(this.state.activeTool.type)){let{originOffset:f,snapLines:p}=u5(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=nc(b.snapLines,p),y=b.originSnapOffset?nc(b.originSnapOffset,f):f;return b.snapLines===x&&b.originSnapOffset===y?null:{snapLines:x,originSnapOffset:y}})}else this.state.draggingElement||this.setState(f=>f.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let f=he.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());f&&f!==this.state.editingLinearElement&&(0,hu.flushSync)(()=>{this.setState({editingLinearElement:f})}),f?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,hu.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(F1(this.state.activeTool.type)){let{draggingElement:f}=this.state;_r(f,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(f,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:f}=this.state,{x:p,y:b}=f,{points:x,lastCommittedPoint:y}=f,w=x[x.length-1];if(Yo(this.interactiveCanvas,this.state),w===y)sn(a-p,l-b,w[0],w[1])>=Us?te(f,{points:[...x,[a-p,l-b]]}):Ne(this.interactiveCanvas,De.POINTER);else if(x.length>2&&y&&sn(a-p,l-b,y[0],y[1])<Us)Ne(this.interactiveCanvas,De.POINTER),te(f,{points:x.slice(0,-1)});else{let[k,C]=Jt(a,l,e[T.CTRL_OR_CMD]?null:this.state.gridSize),[M,_]=f?.lastCommittedPoint??[0,0],I=k-p-M,A=C-b-_;cc(e)&&({width:I,height:A}=dp(M+p,_+b,k,C)),fl(x,this.state.zoom.value)&&Ne(this.interactiveCanvas,De.POINTER),te(f,{points:[...x.slice(0,-1),[M+I,_+A]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let c=this.scene.getNonDeletedElements(),m=this.scene.getSelectedElements(this.state);if(m.length===1&&!n&&!this.state.editingLinearElement){let f=mp(c,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap());if(f&&f.transformHandleType){Ne(this.interactiveCanvas,pp(f));return}}else if(m.length>1&&!n){let f=up(Ke(m),a,l,this.state.zoom,e.pointerType);if(f){Ne(this.interactiveCanvas,pp({transformHandleType:f}));return}}let d=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,d),!So(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(Ne(this.interactiveCanvas,De.POINTER),nE(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(iE(),d&&(d.link||Ht(d))&&this.state.selectedElementIds[d.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?Ne(this.interactiveCanvas,le(d)?De.TEXT:De.CROSSHAIR):this.state.viewModeEnabled?Ne(this.interactiveCanvas,De.GRAB):n?Ne(this.interactiveCanvas,De.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[T.CTRL_OR_CMD]?Ne(this.interactiveCanvas,De.AUTO):(d||this.isHittingCommonBoundingBoxOfSelectedElements(i,m))&&!d?.locked&&(d&&Di(d)&&this.isIframeLikeElementCenter(d,e,a,l)?(Ne(this.interactiveCanvas,De.POINTER),this.setState({activeEmbeddable:{element:d,state:"hover"}})):(Ne(this.interactiveCanvas,De.MOVE),this.state.activeEmbeddable?.state==="hover"&&this.setState({activeEmbeddable:null})))))};handleEraser=(e,o,r)=>{this.eraserTrail.addPointToPath(r.x,r.y);let n=!1,i=new Set,a=this.scene.getNonDeletedElements(),l=f=>{for(let p of f){if(p.locked)return;if(e.altKey?this.elementsPendingErasure.delete(p.id)&&(n=!0):this.elementsPendingErasure.has(p.id)||(n=!0,this.elementsPendingErasure.add(p.id)),n&&p.groupIds?.length){let b=p.groupIds.at(-1);if(!i.has(b)){i.add(b);let x=pt(a,b);for(let y of x)e.altKey?this.elementsPendingErasure.delete(y.id):this.elementsPendingErasure.add(y.id)}}}},s=sn(o.lastCoords.x,o.lastCoords.y,r.x,r.y),c=10/this.state.zoom.value,m={...o.lastCoords},d=0;for(;d<=s;){let f=this.getElementsAtPosition(m.x,m.y);if(l(f),d===s)break;d=Math.min(d+c,s);let p=d/s,b=(1-p)*m.x+p*r.x,x=(1-p)*m.y+p*r.y;m.x=b,m.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let f of this.scene.getNonDeletedElements())bt(f)&&(this.elementsPendingErasure.has(f.id)||this.elementsPendingErasure.has(f.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(f.id),this.elementsPendingErasure.delete(f.containerId)):(this.elementsPendingErasure.add(f.id),this.elementsPendingErasure.add(f.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.onSceneUpdated()}};handleTouchMove=e=>{Ds=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=he.getElement(e.elementId,n),a=lt(i,n);if(i)if(this.state.selectedLinearElement){let l=-1,s=null;Wu(i,this.state,this.frameNameBoundsCache,[o,r],n)?(l=he.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),s=he.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),l>=0||s?Ne(this.interactiveCanvas,De.POINTER):Ne(this.interactiveCanvas,De.MOVE)):ac([i],this.state)&&lc(i,this.state,this.frameNameBoundsCache,o,r,n)?Ne(this.interactiveCanvas,De.MOVE):a&&Uu(a,this.state,this.frameNameBoundsCache,o,r,this.scene.getNonDeletedElementsMap())&&Ne(this.interactiveCanvas,De.MOVE),this.state.selectedLinearElement.hoverPointIndex!==l&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:l}}),he.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,s)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:s}})}else Ne(this.interactiveCanvas,De.AUTO)}handleCanvasPointerDown=e=>{if(this.maybeCleanupAfterMissingPointerUp(e.nativeEvent),this.maybeUnfollowRemoteUser(),this.state.contextMenu&&this.setState({contextMenu:null}),this.state.snapLines&&this.setAppState({snapLines:[]}),this.updateGestureOnPointerDown(e),e.pointerType==="touch"&&this.state.draggingElement&&this.state.draggingElement.type==="freedraw"){let c=this.state.draggingElement;this.updateScene({...c.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(m=>m.id!==c.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:Fe(Object.keys(this.state.selectedElementIds).filter(m=>m!==c.id).reduce((m,d)=>(m[d]=this.state.selectedElementIds[d],m),{}),this.state)}});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(c=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=Ai(this.device,{isTouchScreen:!0})),Ps||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===tn.ERASER&&this.state.activeTool.type!==ut.eraser){this.setState({activeTool:ot(this.state,{type:ut.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let c=()=>{m(),d?.(),So(this.state)&&this.setState({activeTool:ot(this.state,{...this.state.activeTool.lastActiveTool||{type:ut.selection},lastActiveToolBeforeEraser:null})})},m=rt(window,"pointerup",c,{once:!0}),d;requestAnimationFrame(()=>{d=this.missingPointerEventCleanupEmitter.once(c)})});return}if(e.button!==tn.MAIN&&e.button!==tn.TOUCH&&e.button!==tn.ERASER||Ae.pointers.size>1)return;let r=this.initialPointerDownState(e);if(this.setState({selectedElementsAreBeingDragged:!1}),this.handleDraggingScrollBar(e,r)||(this.clearSelectionIfNotUsingSelection(),this.updateBindingEnabledOnPointerMove(e),this.handleSelectionOnPointerDown(e,r))||!(!this.state.penMode||e.pointerType!=="touch"||this.state.activeTool.type==="selection"||this.state.activeTool.type==="text"||this.state.activeTool.type==="image"))return;if(this.state.activeTool.type==="text"){this.handleTextOnPointerDown(e,r);return}else if(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")this.handleLinearElementOnPointerDown(e,this.state.activeTool.type,r);else if(this.state.activeTool.type==="image"){Ne(this.interactiveCanvas,De.CROSSHAIR);let c=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!c)return;this.setState({draggingElement:c,editingElement:c,pendingImageElementId:null,multiElement:null});let{x:m,y:d}=Ve(e,this.state),f=this.getTopLayerFrameAtSceneCoords({x:m,y:d});te(c,{x:m,y:d,frameId:f?f.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?Yo(this.interactiveCanvas,this.state):this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe?this.createFrameElementOnPointerDown(r,this.state.activeTool.type):this.state.activeTool.type==="laser"?this.laserTrails.startPath(r.lastCoords.x,r.lastCoords.y):this.state.activeTool.type!=="eraser"&&this.state.activeTool.type!=="hand"&&this.createGenericElementOnPointerDown(this.state.activeTool.type,r);this.props?.onPointerDown?.(this.state.activeTool,r),this.onPointerDownEmitter.trigger(this.state.activeTool,r,e),this.state.activeTool.type==="eraser"&&this.eraserTrail.startPath(r.lastCoords.x,r.lastCoords.y);let i=this.onPointerMoveFromPointerDownHandler(r),a=this.onPointerUpFromPointerDownHandler(r),l=this.onKeyDownFromPointerDownHandler(r),s=this.onKeyUpFromPointerDownHandler(r);this.missingPointerEventCleanupEmitter.once(c=>a(c||e.nativeEvent)),(!this.state.viewModeEnabled||this.state.activeTool.type==="laser")&&(window.addEventListener("pointermove",i),window.addEventListener("pointerup",a),window.addEventListener("keydown",l),window.addEventListener("keyup",s),r.eventListeners.onMove=i,r.eventListeners.onUp=a,r.eventListeners.onKeyUp=s,r.eventListeners.onKeyDown=l)};handleCanvasPointerUp=e=>{this.removePointer(e),this.lastPointerUpEvent=e;let o=Ve({clientX:e.clientX,clientY:e.clientY},this.state),r=e.timeStamp-(this.lastPointerDownEvent?.timeStamp??0);if(this.device.editor.isMobile&&r<300){let n=this.getElementAtPosition(o.x,o.y);if(Di(n)&&this.isIframeLikeElementCenter(n,e,o.x,o.y)){this.handleEmbeddableCenterClick(n);return}}if(this.device.isTouchScreen){let n=this.getElementAtPosition(o.x,o.y);this.hitLinkElement=this.getElementLinkAtPosition(o,n)}this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?r<300&&Di(this.hitLinkElement)&&!Gb(this.hitLinkElement,this.scene.getNonDeletedElementsMap(),this.state,[o.x,o.y])?this.handleEmbeddableCenterClick(this.hitLinkElement):this.redirectToLink(e,this.device.isTouchScreen):this.state.viewModeEnabled&&this.setState({activeEmbeddable:null,selectedElementIds:{}})};maybeOpenContextMenuAfterPointerDownOnTouchDevices=e=>{e.pointerType==="touch"&&(Ds=!1,Fn?Ds=!0:Fn=window.setTimeout(()=>{Fn=0,Ds||this.handleCanvasContextMenu(e)},s1))};resetContextMenuTimer=()=>{clearTimeout(Fn),Fn=0,Ds=!1};maybeCleanupAfterMissingPointerUp=e=>{Rs?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(Ae.pointers.size<=1&&(e.button===tn.WHEEL||e.button===tn.MAIN&&ki||Dr(this.state)||this.state.viewModeEnabled))||le(this.state.editingElement))return!1;Ps=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);Ne(this.interactiveCanvas,De.GRABBING);let{clientX:n,clientY:i}=e,a=au(s=>{let c=n-s.clientX,m=i-s.clientY;if(n=s.clientX,i=s.clientY,r&&!o&&(Math.abs(c)>1||Math.abs(m)>1)){o=!0;let d=p=>{document.body.removeEventListener("paste",d),p.stopPropagation()},f=()=>{setTimeout(()=>{document.body.removeEventListener("paste",d),window.removeEventListener("pointerup",f)},100)};document.body.addEventListener("paste",d),window.addEventListener("pointerup",f)}this.translateCanvas({scrollX:this.state.scrollX-c/this.state.zoom.value,scrollY:this.state.scrollY-m/this.state.zoom.value})}),l=qe(Rs=()=>{Rs=null,Ps=!1,ki||(this.state.viewModeEnabled?Ne(this.interactiveCanvas,De.GRAB):Yo(this.interactiveCanvas,this.state)),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",l),window.removeEventListener("blur",l),a.flush()});return window.addEventListener("blur",l),window.addEventListener("pointermove",a,{passive:!0}),window.addEventListener("pointerup",l),!0};updateGestureOnPointerDown(e){Ae.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),Ae.pointers.size===2&&(Ae.lastCenter=Rh(Ae.pointers),Ae.initialScale=this.state.zoom.value,Ae.initialDistance=Nh(Array.from(Ae.pointers.values())))}initialPointerDownState(e){let o=Ve(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ke(r);return{origin:o,withCmdOrCtrl:e[T.CTRL_OR_CMD],originInGrid:cl(Jt(o.x,o.y,e[T.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:zh(Tg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((s,c)=>(s.set(c.id,Wi(c)),s),new Map),resize:{handleType:!1,isResizing:!1,offset:{x:0,y:0},arrowDirection:"origin",center:{x:(a+n)/2,y:(l+i)/2}},hit:{element:null,allHitElements:[],wasAddedToSelection:!1,hasBeenDuplicated:!1,hasHitCommonBoundingBoxOfSelectedElements:this.isHittingCommonBoundingBoxOfSelectedElements(o,r)},drag:{hasOccurred:!1,offset:null},eventListeners:{onMove:null,onUp:null,onKeyUp:null,onKeyDown:null},boxSelection:{hasOccurred:!1}}}handleDraggingScrollBar(e,o){if(!(o.scrollbars.isOverEither&&!this.state.multiElement))return!1;Cg=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=au(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=qe(()=>{Rs=null,Cg=!1,Yo(this.interactiveCanvas,this.state),this.setState({cursorButton:"up"}),this.savePointer(e.clientX,e.clientY,"up"),window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),r.flush()});return Rs=n,window.addEventListener("pointermove",r),window.addEventListener("pointerup",n),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:Fe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})};handleSelectionOnPointerDown=(e,o)=>{if(this.state.activeTool.type==="selection"){let r=this.scene.getNonDeletedElements(),n=this.scene.getNonDeletedElementsMap(),i=this.scene.getSelectedElements(this.state);if(i.length===1&&!this.state.editingLinearElement){let a=mp(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap());a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=up(Ke(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=cl(f0(o.resize.handleType,i,n,o.origin.x,o.origin.y)),i.length===1&&Re(i[0])&&i[0].points.length===2&&(o.resize.arrowDirection=h0(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let s=this.state.editingLinearElement||this.state.selectedLinearElement,c=he.handlePointerDown(e,this.state,this.history,o.origin,s,this.scene.getNonDeletedElements(),n);if(c.hitElement&&(o.hit.element=c.hitElement),c.linearElementEditor&&(this.setState({selectedLinearElement:c.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:c.linearElementEditor})),c.didAddPoint)return!0}if(o.hit.element=o.hit.element??this.getElementAtPosition(o.origin.x,o.origin.y),o.hit.element&&this.getElementLinkAtPosition({x:o.origin.x,y:o.origin.y},o.hit.element))return!1;o.hit.allHitElements=this.getElementsAtPosition(o.origin.x,o.origin.y);let a=o.hit.element,l=o.hit.allHitElements.some(s=>this.isASelectedElement(s));if((a===null||!l)&&!e.shiftKey&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(a),this.state.editingLinearElement)this.setState({selectedElementIds:Fe({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(a!=null){if(e[T.CTRL_OR_CMD])return this.state.selectedElementIds[a.id]||(o.hit.wasAddedToSelection=!0),this.setState(s=>({...bb(s,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Ui(a,this.state.editingGroupId)&&this.setState({selectedElementIds:Fe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(s=>{let c={...s.selectedElementIds,[a.id]:!0},m=[];if(Object.keys(s.selectedElementIds).forEach(d=>{let f=this.scene.getElement(d);f&&m.push(f)}),Te(a))un(m,a.id).forEach(d=>{delete c[d.id]});else if(a.frameId)c[a.frameId]&&delete c[a.id];else{let d=a.groupIds,f=new Set(d.flatMap(p=>pt(this.scene.getNonDeletedElements(),p)).filter(p=>Te(p)).map(p=>p.id));f.size>0&&m.forEach(p=>{p.frameId&&f.has(p.frameId)&&(delete c[p.id],p.groupIds.flatMap(b=>pt(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete c[b.id]}))})}return{...Rt({editingGroupId:s.editingGroupId,selectedElementIds:c},this.scene.getNonDeletedElements(),s,this),showHyperlinkPopup:a.link||Ht(a)?"info":!1}}),o.hit.wasAddedToSelection=!0))}this.setState({previousSelectedElementIds:this.state.selectedElementIds})}}return!1};isASelectedElement(e){return e!=null&&this.state.selectedElementIds[e.id]}isHittingCommonBoundingBoxOfSelectedElements(e,o){if(o.length<2)return!1;let r=10/this.state.zoom.value,[n,i,a,l]=Ke(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(le(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=Yu(this.scene.getNonDeletedElements(),this.state,r,n,this.scene.getNonDeletedElementsMap());cr(i)&&(a=i,r=i.x+i.width/2,n=i.y+i.height/2),this.startTextEditing({sceneX:r,sceneY:n,insertAtParentCenter:!e.altKey,container:a}),ko(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:ot(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=Jt(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=Ib({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:null,simulatePressure:e.pressure===.5,locked:!1,frameId:a?a.id:null});this.setState(m=>{let d={...m.selectedElementIds};return delete d[l.id],{selectedElementIds:Fe(d,m)}});let s=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];te(l,{points:[[0,0]],pressures:s});let c=El(r.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.addNewElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:c,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=Jt(e,o,this.lastPointerDownEvent?.[T.CTRL_OR_CMD]?null:this.state.gridSize),l=Tb({type:"iframe",x:i,y:a,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("iframe"),opacity:this.state.currentItemOpacity,locked:!1,width:r,height:n});return this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),l]),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=Jt(e,o,this.lastPointerDownEvent?.[T.CTRL_OR_CMD]?null:this.state.gridSize),a=Yn(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=ju({type:"embeddable",x:n,y:i,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("embeddable"),opacity:this.state.currentItemOpacity,locked:!1,width:a.intrinsicSize.w,height:a.intrinsicSize.h,link:r});return this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),l]),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=Jt(e,o,this.lastPointerDownEvent?.[T.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return yc({type:"image",x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:null,opacity:this.state.currentItemOpacity,locked:!1,frameId:a?a.id:null})};handleLinearElementOnPointerDown=(e,o,r)=>{if(this.state.multiElement){let{multiElement:n}=this.state;if(n.type==="line"&&fl(n.points,this.state.zoom.value)){te(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(Lo);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&sn(r.origin.x-i,r.origin.y-a,l[0],l[1])<Us){this.actionManager.executeAction(Lo);return}this.setState(s=>({selectedElementIds:Fe({...s.selectedElementIds,[n.id]:!0},s)})),te(n,{lastCommittedPoint:n.points[n.points.length-1]}),Ne(this.interactiveCanvas,De.POINTER)}else{let[n,i]=Jt(r.origin.x,r.origin.y,e[T.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),{currentItemStartArrowhead:l,currentItemEndArrowhead:s}=this.state,[c,m]=o==="arrow"?[l,s]:[null,null],d=Sl({type:o,x:n,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.state.currentItemRoundness==="round"?{type:yo.PROPORTIONAL_RADIUS}:null,startArrowhead:c,endArrowhead:m,locked:!1,frameId:a?a.id:null});this.setState(p=>{let b={...p.selectedElementIds};return delete b[d.id],{selectedElementIds:Fe(b,p)}}),te(d,{points:[...d.points,[0,0]]});let f=El(r.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.addNewElement(d),this.setState({draggingElement:d,editingElement:d,startBoundElement:f,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:Ni(e)?yo.ADAPTIVE_RADIUS:yo.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=Jt(o.origin.x,o.origin.y,this.lastPointerDownEvent?.[T.CTRL_OR_CMD]?null:this.state.gridSize),i=this.getTopLayerFrameAtSceneCoords({x:r,y:n}),a={x:r,y:n,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.getCurrentItemRoundness(e),locked:!1,frameId:i?i.id:null},l;e==="embeddable"?l=ju({type:"embeddable",...a}):l=dn({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.addNewElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=Jt(e.origin.x,e.origin.y,this.lastPointerDownEvent?.[T.CTRL_OR_CMD]?null:this.state.gridSize),i={x:r,y:n,opacity:this.state.currentItemOpacity,locked:!1,...Go},a=o===ut.magicframe?Tl(i):vc(i);this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted(),a]),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){Qr({event:e,appState:this.state,selectedElements:o})&&(r||!zo.getReferenceSnapPoints())&&zo.setReferenceSnapPoints(s5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){Qr({event:e,appState:this.state,selectedElements:o})&&(r||!zo.getVisibleGaps())&&zo.setVisibleGaps(l5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(e){return qe(o=>{this.maybeHandleResize(e,o)||this.maybeDragNewGenericElement(e,o)})}onKeyUpFromPointerDownHandler(e){return qe(o=>{o.key===T.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return au(o=>{if(e.drag.offset===null&&(e.drag.offset=cl(b0(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=Ve(o,this.state);if(So(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=Jt(n.x,n.y,o[T.CTRL_OR_CMD]?null:this.state.gridSize);if(!e.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&sn(n.x,n.y,e.origin.x,e.origin.y)<zn)return;if(e.resize.isResizing&&(e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeHandleResize(e,o)))return!0;let l=this.scene.getNonDeletedElementsMap();if(this.state.selectedLinearElement){let d=this.state.editingLinearElement||this.state.selectedLinearElement;if(he.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let p=he.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[T.CTRL_OR_CMD],l);if(!p)return;(0,hu.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:p.pointerDownState,selectedPointsIndices:p.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:p.pointerDownState,selectedPointsIndices:p.selectedPointsIndices}})});return}else if(d.pointerDownState.segmentMidpoint.value!==null&&!d.pointerDownState.segmentMidpoint.added)return;if(he.handlePointDragging(o,this.state,n.x,n.y,(p,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(p,b)},d,this.scene.getNonDeletedElementsMap())){e.lastCoords.x=n.x,e.lastCoords.y=n.y,e.drag.hasOccurred=!0,this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging&&this.setState({editingLinearElement:{...this.state.editingLinearElement,isDragging:!0}}),this.state.selectedLinearElement.isDragging||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,isDragging:!0}});return}}let s=e.hit.allHitElements.some(d=>this.isASelectedElement(d)),c=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((s||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!c){let d=this.scene.getSelectedElements(this.state);if(d.every(b=>b.locked))return;let f=d.find(b=>Te(b)),p=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:p&&!f?p:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),d.length>0&&!e.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let b={x:n.x-e.origin.x,y:n.y-e.origin.y},x=[...e.originalElements.values()],y=o.shiftKey;if(y){let C=Math.abs(b.x),M=Math.abs(b.y),_=y&&C<M,I=y&&C>M;_&&(b.x=0),I&&(b.y=0)}this.maybeCacheVisibleGaps(o,d),this.maybeCacheReferenceSnapPoints(o,d);let{snapOffset:w,snapLines:k}=c5(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:k}),!this.state.editingFrame&&g0(e,d,b,this.state,this.scene,w,o[T.CTRL_OR_CMD]?null:this.state.gridSize),this.maybeSuggestBindingForAll(d),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let C=[],M=[],_=new Map,I=new Map,A=e.hit.element,P=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(W=>W.id)),F=this.scene.getElementsIncludingDeleted();for(let W of F)if(P.has(W.id)||W.id===A?.id&&e.hit.wasAddedToSelection){let O=Ec(this.state.editingGroupId,_,W),U=e.originalElements.get(W.id);te(O,{x:U.x,y:U.y}),e.originalElements.set(O.id,O),C.push(O),M.push(W),I.set(W.id,O.id)}else C.push(W);let D=[...C,...M];uc(C,M,I),mc(D,M,I,"duplicatesServeAsOld"),Pc(D,M,I),this.scene.replaceAllElements(D),this.maybeCacheVisibleGaps(o,d,!0),this.maybeCacheReferenceSnapPoints(o,d,!0)}return}}let m=this.state.draggingElement;if(m){if(m.type==="freedraw"){let d=m.points,f=n.x-m.x,p=n.y-m.y,b=d.length>0&&d[d.length-1];if(!(b&&b[0]===f&&b[1]===p)){let y=m.simulatePressure?m.pressures:[...m.pressures,o.pressure];te(m,{points:[...d,[f,p]],pressures:y})}}else if(Re(m)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let d=m.points,f=i-m.x,p=a-m.y;cc(o)&&d.length===2&&({width:f,height:p}=dp(m.x,m.y,n.x,n.y)),d.length===1?te(m,{points:[...d,[f,p]]}):d.length===2&&te(m,{points:[...d.slice(0,-1),[f,p]]}),_r(m,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(m,[n],this.state.startBoundElement)}else e.lastCoords.x=n.x,e.lastCoords.y=n.y,this.maybeDragNewGenericElement(e,o);if(this.state.activeTool.type==="selection"){e.boxSelection.hasOccurred=!0;let d=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)he.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let f=!0;!o.shiftKey&&Oe(d,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>Rt({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):f=!1);let p=x0(d,m,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...f&&b.selectedElementIds,...p.reduce((y,w)=>(y[w.id]=!0,y),{})};return e.hit.element&&(p.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=f?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Rt({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:p.length===1&&Re(p[0])?new he(p[0]):null,showHyperlinkPopup:p.length===1&&(p[0].link||Ht(p[0]))?"info":!1}})}}}})}handlePointerMoveOverScrollbars(e,o){if(o.scrollbars.isOverHorizontal){let r=e.clientX,n=r-o.lastCoords.x;return this.translateCanvas({scrollX:this.state.scrollX-n/this.state.zoom.value}),o.lastCoords.x=r,!0}if(o.scrollbars.isOverVertical){let r=e.clientY,n=r-o.lastCoords.y;return this.translateCanvas({scrollY:this.state.scrollY-n/this.state.zoom.value}),o.lastCoords.y=r,!0}return!1}onPointerUpFromPointerDownHandler(e){return qe(o=>{this.removePointer(o),e.eventListeners.onMove&&e.eventListeners.onMove.flush();let{draggingElement:r,resizingElement:n,multiElement:i,activeTool:a,isResizing:l,isRotating:s}=this.state;this.setState(p=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||le(this.state.editingElement)?this.state.editingElement:null,snapLines:nc(p.snapLines,[]),originSnapOffset:null})),zo.setReferenceSnapPoints(null),zo.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let c=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(Lo);else{let p=he.handlePointerUp(o,this.state.editingLinearElement,this.state,this.scene.getNonDeletedElements(),c);p!==this.state.editingLinearElement&&this.setState({editingLinearElement:p,suggestedBindings:[]})}else if(this.state.selectedLinearElement)if(e.hit?.element?.id!==this.state.selectedLinearElement.elementId)this.scene.getSelectedElements(this.state).length>1&&this.setState({selectedLinearElement:null});else{let p=he.handlePointerUp(o,this.state.selectedLinearElement,this.state,this.scene.getNonDeletedElements(),c),{startBindingElement:b,endBindingElement:x}=p,y=this.scene.getElement(p.elementId);_r(y)&&dc(y,b,x,c),p!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...p,selectedPointsIndices:null},suggestedBindings:[]})}if(this.missingPointerEventCleanupEmitter.clear(),window.removeEventListener("pointermove",e.eventListeners.onMove),window.removeEventListener("pointerup",e.eventListeners.onUp),window.removeEventListener("keydown",e.eventListeners.onKeyDown),window.removeEventListener("keyup",e.eventListeners.onKeyUp),this.state.pendingImageElementId&&this.setState({pendingImageElementId:null}),this.props?.onPointerUp?.(a,e),this.onPointerUpEmitter.trigger(this.state.activeTool,e,o),r?.type==="freedraw"){let p=Ve(o,this.state),b=r.points,x=p.x-r.x,y=p.y-r.y;x===b[0][0]&&y===b[0][1]&&(y+=1e-4,x+=1e-4);let w=r.simulatePressure?[]:[...r.pressures,o.pressure];te(r,{points:[...b,[x,y]],pressures:w,lastCommittedPoint:[x,y]}),this.actionManager.executeAction(Lo);return}if(an(r)){let p=r;try{this.initializeImageDimensions(p),this.setState({selectedElementIds:Fe({[p.id]:!0},this.state)},()=>{this.actionManager.executeAction(Lo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==p.id)),this.actionManager.executeAction(Lo)}return}if(Re(r)){r.points.length>1&&this.history.resumeRecording();let p=Ve(o,this.state);!e.drag.hasOccurred&&r&&!i?(te(r,{points:[...r.points,[p.x-r.x,p.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(Vn(this.state)&&_r(r,!1)&&vl(r,this.state,this.scene,p,c),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(ko(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:ot(this.state,{type:"selection"}),selectedElementIds:Fe({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new he(r)}))));return}if(a.type!=="selection"&&r&&jn(r)){this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(p=>p.id!==r.id)),this.setState({draggingElement:null});return}if(r){if(e.drag.hasOccurred){let p=Ve(o,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let b=this.scene.getElement(this.state.selectedLinearElement.elementId);if(b?.frameId){let x=Dc(b,c);x&&b&&(o0(b,x,this.scene.getNonDeletedElementsMap())||(te(b,{groupIds:[]}),Nc([b],this.scene.getNonDeletedElementsMap()),this.scene.informMutation()))}}else{let b=this.getTopLayerFrameAtSceneCoords(p),x=this.scene.getSelectedElements(this.state),y=this.scene.getElementsMapIncludingDeleted(),w=k=>{if(k.length>0){for(let C of k){let M=C.groupIds.indexOf(this.state.editingGroupId);te(C,{groupIds:C.groupIds.slice(0,M)},!1)}y.forEach(C=>{C.groupIds.length&&pt(y,C.groupIds[C.groupIds.length-1]).length<2&&te(C,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let k=x.filter(C=>C.frameId!==b.id&&cp(C,y,this.state));this.state.editingGroupId&&w(k),y=Rc(y,k,b)}else if(!b&&this.state.editingGroupId){let k=x.filter(C=>C.frameId&&!cp(C,y,this.state));w(k)}y=dr(y,this.state,this),this.scene.replaceAllElements(y)}}if(Te(r)){let p=i0(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Rc(this.scene.getElementsMapIncludingDeleted(),p,r))}te(r,m0(r))}if(n&&this.history.resumeRecording(),n&&jn(n)&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(p=>p.id!==n.id)),e.resize.isResizing){let p=dr(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>Te(x));for(let x of b)p=Oc(p,ji(this.scene.getElementsIncludingDeleted(),x,this.state,c),x,this);this.scene.replaceAllElements(p)}let m=e.hit.element;this.state.selectedLinearElement?.elementId!==m?.id&&Re(m)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new he(m)});let d=this.lastPointerDownEvent,f=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(So(this.state)&&d&&f){if(this.eraserTrail.endPath(),sn(d.clientX,d.clientY,f.clientX,f.clientY)===0){let b=Ve({clientX:f.clientX,clientY:f.clientY},this.state);this.getElementsAtPosition(b.x,b.y).forEach(y=>this.elementsPendingErasure.add(y.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(m&&!e.drag.hasOccurred&&!e.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!e.boxSelection.hasOccurred)&&(o.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[m.id]?bc(this.state,m)?this.setState(p=>{let b={...p.selectedElementIds};for(let x of m.groupIds.flatMap(y=>pt(this.scene.getNonDeletedElements(),y)))delete b[x.id];return{selectedGroupIds:{...p.selectedElementIds,...m.groupIds.map(x=>({[x]:!1})).reduce((x,y)=>({...x,...y}),{})},selectedElementIds:Fe(b,p)}}):this.state.selectedLinearElement?.isDragging||this.setState(p=>{let b={...p.selectedElementIds};delete b[m.id];let x=xe(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Rt({editingGroupId:p.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),p,this),selectedLinearElement:x.length===1&&Re(x[0])?new he(x[0]):p.selectedLinearElement}}):m.frameId&&this.state.selectedElementIds[m.frameId]?this.setState(p=>{let b={...p.selectedElementIds,[m.id]:!0};return delete b[m.frameId],(this.scene.getElement(m.frameId)?.groupIds??[]).flatMap(x=>pt(this.scene.getNonDeletedElements(),x)).forEach(x=>{delete b[x.id]}),{...Rt({editingGroupId:p.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),p,this),showHyperlinkPopup:m.link||Ht(m)?"info":!1}}):this.setState(p=>({selectedElementIds:Fe({...p.selectedElementIds,[m.id]:!0},p)})):this.setState(p=>({...Rt({editingGroupId:p.editingGroupId,selectedElementIds:{[m.id]:!0}},this.scene.getNonDeletedElements(),p,this),selectedLinearElement:Re(m)&&p.selectedLinearElement?.elementId!==m.id?new he(m):p.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(m&&lc(m,this.state,this.frameNameBoundsCache,e.origin.x,e.origin.y,this.scene.getNonDeletedElementsMap())||!m&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:Fe({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null});return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(p=>({selectedElementIds:Fe({...p.selectedElementIds,[r.id]:!0},p),showHyperlinkPopup:Ht(r)&&!r.link?"editor":p.showHyperlinkPopup})),(a.type!=="selection"||Oe(this.scene.getNonDeletedElements(),this.state))&&this.history.resumeRecording(),(e.drag.hasOccurred||l||s)&&(Vn(this.state)?xl(this.scene.getSelectedElements(this.state),this.scene.getNonDeletedElements(),c):yl(this.scene.getSelectedElements(this.state),c)),a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(ko(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:ot(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),m&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&Ae.pointers.size<=1&&Di(m)&&this.isIframeLikeElementCenter(m,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(m)})}restoreReadyToEraseElements=()=>{this.elementsPendingErasure=new Set,this.onSceneUpdated()};eraseElements=()=>{let e=!1,o=this.scene.getElementsIncludingDeleted().map(r=>this.elementsPendingErasure.has(r.id)||r.frameId&&this.elementsPendingErasure.has(r.frameId)||bt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,ue(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.history.resumeRecording(),this.scene.replaceAllElements(o))};initializeImage=async({imageFile:e,imageElement:o,showCursorImagePreview:r=!1})=>{if(!Sc(e))throw new Error(g("errors.unsupportedFileType"));let n=e.type;if(Ne(this.interactiveCanvas,"wait"),n===Pt.svg)try{e=op(await Ub(await e.text()),e.name)}catch(c){throw console.warn(c),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||Db(e));if(!i)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(g("errors.imageInsertError"));if(!this.files[i]?.dataURL){try{e=await Il(e,{maxWidthOrHeight:x1})}catch(c){console.error("Error trying to resizing image file on insertion",c)}if(e.size>Au)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(Au/1024/1024)}MB`}))}if(r){let c=this.files[i]?.dataURL,m=c&&Rb(c);this.setImagePreviewCursor(m||e)}let l=this.files[i]?.dataURL||await Ic(e),s=te(o,{fileId:i},!1);return new Promise(async(c,m)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let d=this.imageCache.get(i);d||(this.addNewImagesToImageCache(),await this.updateImageCache([s])),d?.image instanceof Promise&&await d.image,this.state.pendingImageElementId!==s.id&&this.state.draggingElement?.id!==s.id&&this.initializeImageDimensions(s,!0),c(s)}catch(d){console.error(d),m(new Error(g("errors.imageInsertError")))}finally{r||ko(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.addNewElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return te(e,{isDeleted:!0}),this.actionManager.executeAction(Lo),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await Il(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await Ic(r);if(e.type===Pt.svg){let i=await zb(n),a=Math.min(i.height,96),l=a*(i.width/i.height);l>96&&(l=96,a=l*(i.height/i.width));let s=document.createElement("canvas");s.height=a,s.width=l,s.getContext("2d").drawImage(i,0,0,l,a),n=s.toDataURL(Pt.svg)}this.state.pendingImageElementId&&Ne(this.interactiveCanvas,`url(${n}) 4 4, auto`)};onImageAction=async({insertOnCanvasDirectly:e})=>{try{let o=this.state.width/2+this.state.offsetLeft,r=this.state.height/2+this.state.offsetTop,{x:n,y:i}=Ve({clientX:o,clientY:r},this.state),a=await Cc({description:"Image",extensions:Object.keys(r1)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:Fe({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(Lo)})):this.setState({pendingImageElementId:l.id},()=>{this.insertImageElement(l,a,!0)})}catch(o){o.name!=="AbortError"?console.error(o):console.warn(o),this.setState({pendingImageElementId:null,editingElement:null,activeTool:ot(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(Lo)})}};initializeImageDimensions=(e,o=!1)=>{let r=ul(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<zn/this.state.zoom.value&&e.height<zn/this.state.zoom.value){let n=100/this.state.zoom.value;te(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<zn/this.state.zoom.value&&e.height<zn/this.state.zoom.value){let n=Math.max(this.state.height-120,160),i=Math.min(n,Math.floor(this.state.height*.5)/this.state.zoom.value),a=Math.min(r.naturalHeight,i),l=a*(r.naturalWidth/r.naturalHeight),s=e.x+e.width/2-l/2,c=e.y+e.height/2-a/2;te(e,{x:s,y:c,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await Hb({imageCache:this.imageCache,fileIds:e.map(i=>i.fileId),files:o});if(r.size||n.size)for(let i of e)r.has(i.fileId)&&mr.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>ul(i)&&n.has(i.fileId)?ue(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=$b(this.scene.getNonDeletedElements()),o=this.files)=>{let r=e.filter(n=>!n.isDeleted&&!this.imageCache.has(n.fileId));if(r.length){let{updatedFiles:n}=await this.updateImageCache(r,o);n.size&&this.scene.informMutation()}};scheduleImageRefresh=(0,z5.default)(()=>{this.addNewImagesToImageCache()},a1);updateBindingEnabledOnPointerMove=e=>{let o=X1(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=El(e,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=El(a,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());return l!=null&&!q1(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};maybeSuggestBindingForAll(e){if(e.length>50)return;let o=J1(e,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:o})}clearSelection(e){this.setState(o=>({selectedElementIds:Fe({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Ui(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:Fe({},this.state),activeEmbeddable:null,previousSelectedElementIds:this.state.selectedElementIds})}handleInteractiveCanvasRef=e=>{e!==null?(this.interactiveCanvas=e,this.interactiveCanvas.addEventListener("wheel",this.handleWheel),this.interactiveCanvas.addEventListener("touchstart",this.onTouchStart),this.interactiveCanvas.addEventListener("touchend",this.onTouchEnd)):(this.interactiveCanvas?.removeEventListener("wheel",this.handleWheel),this.interactiveCanvas?.removeEventListener("touchstart",this.onTouchStart),this.interactiveCanvas?.removeEventListener("touchend",this.onTouchEnd))};handleAppOnDrop=async e=>{let{file:o,fileHandle:r}=await Ob(e),{x:n,y:i}=Ve(e,this.state);try{if(Sc(o)&&this.isToolSupported("image")){if(o?.type===Pt.png||o?.type===Pt.svg)try{let s=await kc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...s,appState:{...s.appState||this.state,isLoading:!1},replaceFiles:!0,commitToHistory:!0});return}catch(s){if(s.name!=="EncodingError")throw new Error(g("alerts.couldNotLoadInvalidFile"))}let l=this.createImageElement({sceneX:n,sceneY:i});this.insertImageElement(l,o),this.initializeImageDimensions(l),this.setState({selectedElementIds:Fe({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(Pt.excalidrawlib);if(a&&typeof a=="string"){try{let l=Pb(a);this.addElementsFromPasteOrLibrary({elements:am(l),position:e,files:null})}catch(l){this.setState({errorMessage:l.message})}return}if(o&&await this.loadFileToCanvas(o,r),e.dataTransfer?.types?.includes("text/plain")){let l=e.dataTransfer?.getData("text");if(l&&Gi(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||Yn(l)?.type==="video")){let s=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:Nr(l)});s&&this.setState({selectedElementIds:{[s.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await Fb(e);try{let r;try{r=await ep(e,this.state,this.scene.getElementsIncludingDeleted(),o)}catch(n){let i=n instanceof _b;if(i&&n.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let a=i?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:a})}if(!r)return;r.type===Pt.excalidraw?(this.setState({isLoading:!0}),this.syncActionResult({...r.data,appState:{...r.data.appState||this.state,isLoading:!1},replaceFiles:!0,commitToHistory:!0})):r.type===Pt.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(n=>{console.error(n),this.setState({errorMessage:g("errors.importLibraryError")})})}catch(r){this.setState({isLoading:!1,errorMessage:r.message})}};handleCanvasContextMenu=e=>{if(e.preventDefault(),("pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="touch"||"pointerType"in e.nativeEvent&&e.nativeEvent.pointerType==="pen"&&e.button!==tn.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=Ve(e,this.state),n=this.getElementAtPosition(o,r,{preferSelected:!0,includeLockedElements:!0}),i=this.scene.getSelectedElements(this.state),a=this.isHittingCommonBoundingBoxOfSelectedElements({x:o,y:r},i),l=n||a?"element":"canvas",s=this.excalidrawContainerRef.current,{top:c,left:m}=s.getBoundingClientRect(),d=e.clientX-m,f=e.clientY-c;ve("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...Rt({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:Re(n)?new he(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:f,left:d,items:this.getContextMenuItems(l)}})})};maybeDragNewGenericElement=(e,o)=>{let r=this.state.draggingElement,n=e.lastCoords;if(r)if(r.type==="selection"&&this.state.activeTool.type!=="eraser")fp(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Wn(e.origin.x,n.x),Wn(e.origin.y,n.y),Bi(o),sc(o));else{let[i,a]=Jt(n.x,n.y,o[T.CTRL_OR_CMD]?null:this.state.gridSize),l=ul(r)&&this.imageCache.get(r.fileId)?.image,s=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:c,snapLines:m}=m5(r,this.state,o,{x:e.originInGrid.x+(this.state.originSnapOffset?.x??0),y:e.originInGrid.y+(this.state.originSnapOffset?.y??0)},{x:i-e.originInGrid.x,y:a-e.originInGrid.y},this.scene.getNonDeletedElementsMap());i+=c.x,a+=c.y,this.setState({snapLines:m}),fp(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Wn(e.originInGrid.x,i),Wn(e.originInGrid.y,a),an(r)?!Bi(o):Bi(o),sc(o),s,this.state.originSnapOffset),this.maybeSuggestBindingForAll([r]),(this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe)&&this.setState({elementsToHighlight:ji(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(m=>Te(m)),i=e.resize.handleType;if(n.length>0&&i==="rotation")return!1;this.setState({isResizing:i&&i!=="rotation",isRotating:i==="rotation",activeEmbeddable:null});let a=e.lastCoords,[l,s]=Jt(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[T.CTRL_OR_CMD]?null:this.state.gridSize),c=new Map;if(n.forEach(m=>{un(this.scene.getNonDeletedElements(),m.id).forEach(f=>{c.set(m.id+f.id,{x:f.x-m.x,y:f.y-m.y})})}),!this.state.selectedElementsAreBeingDragged){let[m,d]=Jt(a.x,a.y,o[T.CTRL_OR_CMD]?null:this.state.gridSize),f={x:m-e.originInGrid.x,y:d-e.originInGrid.y},p=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=d5(r,xe(p,this.state),this.state,o,f,i);l+=b.x,s+=b.y,this.setState({snapLines:x})}if(u0(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),cc(o),sc(o),r.length===1&&an(r[0])?!Bi(o):Bi(o),l,s,e.resize.center.x,e.resize.center.y)){this.maybeSuggestBindingForAll(r);let m=new Set;return n.forEach(d=>{ji(this.scene.getNonDeletedElements(),d,this.state,this.scene.getNonDeletedElementsMap()).forEach(f=>m.add(f))}),this.setState({elementsToHighlight:[...m]}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(Xd,jd),e==="canvas"?this.state.viewModeEnabled?[...o,Jd,Pa,mg,Tn]:[th,ro,Xd,jd,qd,ro,jp,lE,ro,Jd,oh,Pa,mg,Tn]:(o.push(qd),this.state.viewModeEnabled?[La,...o]:[Zd,La,th,t5,o5,ro,...o,ro,Gf,Vf,ro,Yf,rh,nh,eE,Zf,ro,qf,ro,Vp,Kp,Yp,Zp,ro,Qf,eh,ro,Lh,rs,Xp,dh,ro,Bl])};handleWheel=qe(e=>{if(e.preventDefault(),Ps)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=$n*100,a=Math.abs(r),l=r;a>i&&(l=i*n);let s=this.state.zoom.value-l/100;s+=Math.log10(Math.max(1,this.state.zoom.value))*-n*Math.min(1,a/20),this.translateCanvas(c=>({...Br({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Fr(s)},c),shouldCacheIgnoreZoom:!0})),this.resetShouldCacheIgnoreZoomDebounced();return}if(e.shiftKey){this.translateCanvas(({zoom:n,scrollX:i})=>({scrollX:i-(r||o)/n.value}));return}this.translateCanvas(({zoom:n,scrollX:i,scrollY:a})=>({scrollX:i-o/n.value,scrollY:a-r/n.value}))});getTextWysiwygSnappedToCenterPosition(e,o,r,n){if(n){let i=n.x+n.width/2,a=n.y+n.height/2,l=hc(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<Qg){let{x:m,y:d}=qt({sceneX:i,sceneY:a},r);return{viewportX:m,viewportY:d,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=Ve({clientX:e,clientY:o},this.state);isNaN(n)||isNaN(i);let a={x:n,y:i,tool:this.state.activeTool.type==="laser"?"laser":"pointer"};this.props.onPointerUpdate?.({pointer:a,button:r,pointersMap:Ae.pointers})};resetShouldCacheIgnoreZoomDebounced=ll(()=>{this.unmounted||this.setState({shouldCacheIgnoreZoom:!1})},300);updateDOMRect=e=>{if(this.excalidrawContainerRef?.current){let o=this.excalidrawContainerRef.current,{width:r,height:n,left:i,top:a}=o.getBoundingClientRect(),{width:l,height:s,offsetTop:c,offsetLeft:m}=this.state;if(r===l&&n===s&&i===m&&a===c){e&&e();return}this.setState({width:r,height:n,offsetLeft:i,offsetTop:a},()=>{e&&e()})}};refresh=()=>{this.setState({...this.getCanvasOffsets()})};getCanvasOffsets(){if(this.excalidrawContainerRef?.current){let e=this.excalidrawContainerRef.current,{left:o,top:r}=e.getBoundingClientRect();return{offsetLeft:o,offsetTop:r}}return{offsetLeft:0,offsetTop:0}}async updateLanguage(){let e=ta.find(o=>o.code===this.props.langCode)||ur;await Kc(e),this.setAppState({})}},iI=()=>{(E.MODE===ku.TEST||E.DEV)&&(window.h=window.h||{},Object.defineProperties(window.h,{elements:{configurable:!0,get(){return this.app?.scene.getElementsIncludingDeleted()},set(t){return this.app?.scene.replaceAllElements(t)}}}))};iI();var W5=kg;h();var aI=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(t){if(t=Math.trunc(t)||0,t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...t){this.innerHTML="",this.append(...t)})},G5=aI;h();var Dg=v(S(),1),V5=({children:t})=>{let{FooterCenterTunnel:e}=We(),o=ke();return(0,Dg.jsx)(e.In,{children:(0,Dg.jsx)("div",{className:z("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},lI=V5;V5.displayName="FooterCenter";h();h();h();var $o=v(S(),1),sI=()=>(0,$o.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,$o.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),cI=()=>(0,$o.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,$o.jsx)("path",{d:"M429.27 96.74c2.47-1.39 4.78-3.02 6.83-4.95 1.43-1.35 2.73-2.86 3.81-4.51-.66.9-1.4 1.77-2.23 2.59-2.91 2.84-5.72 5.09-8.42 6.87h.01ZM343.6 69.36c.33 3.13.58 6.27.79 9.4.09 1.37.18 2.75.25 4.12-.12-4.46-.27-8.93-.5-13.39-.11-2.08-.24-4.16-.4-6.24-.06 1.79-.11 3.85-.13 6.11h-.01ZM378.47 98.34c.01-.37.07-1.13.01-6.51-.11 1.9-.22 3.81-.31 5.71-.07 1.42-.22 2.91-.16 4.35.39.03.78.07 1.17.1-.92-.85-.76-2.01-.72-3.66l.01.01ZM344.09 86.12c-.09-2.41-.22-4.83-.39-7.24v12.21c.15-.05.32-.09.47-.14.05-1.61-.03-3.23-.09-4.83h.01ZM440.69 66.79c-.22-.34-.45-.67-.69-.99-3.71-4.87-9.91-7.14-15.65-8.55-1.05-.26-2.12-.49-3.18-.71 2.29.59 4.48 1.26 6.64 2.02 7.19 2.54 10.57 5.41 12.88 8.23ZM305.09 72.46l1.2 3.6c.84 2.53 1.67 5.06 2.46 7.61.24.78.5 1.57.73 2.36.22-.04.44-.08.67-.12a776.9 776.9 0 0 1-5.01-13.57c-.02.04-.03.09-.05.13v-.01ZM345.49 90.25v.31c1.48-.42 3.05-.83 4.66-1.2-1.56.25-3.12.52-4.66.89ZM371.02 90.22c0-.57-.04-1.14-.11-1.71-.06-.02-.12-.04-.19-.05-.21-.05-.43-.08-.65-.11.42.16.74.88.95 1.87ZM398.93 54.23c-.13 0-.27-.01-.4-.02l.03.4c.11-.15.23-.27.37-.38ZM401.57 62.28v-.15c-1.22-.24-2.86-.61-3.23-1.25-.09-.15-.18-.51-.27-.98-.09.37-.2.73-.33 1.09 1.24.56 2.52.98 3.83 1.29ZM421.73 88.68c-2.97 1.65-6.28 3.12-9.69 3.68v.18c4.72-.14 11.63-3.85 16.33-8.38-2.04 1.75-4.33 3.24-6.63 4.53l-.01-.01ZM411.28 80.92c-.05-1.2-.09-2.4-.15-3.6-.21 5.66-.46 11.38-.47 14.51.24-.02.48-.04.71-.07.15-3.61.05-7.23-.09-10.83v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,$o.jsx)("path",{d:"M425.38 67.41c-3.5-1.45-7.19-2.57-14.06-3.62.09 1.97.06 4.88-.03 8.12.03.04.06.09.06.15.19 1.36.28 2.73.37 4.1.25 3.77.39 7.55.41 11.33 0 1.38-.01 2.76-.07 4.13 1.4-.25 2.78-.65 4.12-1.15 4.07-1.5 7.94-3.78 11.28-6.54 2.33-1.92 5.13-4.49 5.88-7.58.63-3.53-2.45-6.68-7.97-8.96l.01.02ZM411.35 92.53v-.06l-.34.03c.11.01.22.03.34.03ZM314.26 64.06c-.23-.59-.47-1.17-.7-1.75.57 1.62 1.11 3.25 1.6 4.9l.15.54 2.35 6.05c.32.82.66 1.64.98 2.46-1.38-4.1-2.83-8.17-4.39-12.2h.01ZM156.82 103.07c-.18.13-.38.23-.58.33 1.32-.03 2.66-.2 3.93-.34.86-.09 1.72-.22 2.58-.33-2.12.1-4.12.17-5.94.34h.01ZM210.14 68.88s.03.04.05.07c.18-.31.39-.64.58-.96-.21.3-.42.6-.64.89h.01ZM201.65 82.8c-.5.77-1.02 1.56-1.49 2.37 1.11-1.55 2.21-3.1 3.2-4.59-.23.23-.49.51-.75.79-.32.47-.65.95-.96 1.43ZM194.03 98.66c-.33-.4-.65-.84-1.05-1.17-.24-.2-.07-.49.17-.56-.23-.26-.42-.5-.63-.75 1.51-2.55 3.93-5.87 6.4-9.28-.17-.08-.29-.28-.2-.49.04-.09.09-.17.13-.26-1.21 1.78-2.42 3.55-3.61 5.33-.87 1.31-1.74 2.64-2.54 4-.29.5-.63 1.04-.87 1.61.81.65 1.63 1.27 2.47 1.88-.09-.11-.18-.21-.27-.32v.01ZM307.79 82.93c-1-3.17-2.05-6.32-3.1-9.48-1.62 4.08-3.69 9.17-6.16 15.19 3.32-1.04 6.77-1.87 10.27-2.5-.32-1.08-.67-2.15-1.01-3.21ZM149.5 80.7c.05-1.71.04-3.43 0-5.14-.1 2.26-.16 4.51-.22 6.77-.02.73-.03 1.46-.04 2.19.14-1.27.2-2.55.24-3.82h.02ZM228.98 98.3c.39 1.25.91 3.03.94 3.91.06-.03.12-.07.17-.1.08-1.29-.55-2.65-1.11-3.81ZM307.72 53.36c.81.5 1.53 1.04 2.07 1.49-.38-.8-.78-1.58-1.21-2.35-.17.03-.34.06-.51.11-.43.12-.86.26-1.29.41.35-.01.53.1.94.34ZM283.69 96.14c3.91-7.25 6.89-13.35 8.88-18.15l1.1-2.66c-1.27 2.64-2.56 5.27-3.83 7.9-1.53 3.15-3.06 6.31-4.58 9.47-.87 1.81-1.76 3.62-2.54 5.47.04.02.07.04.11.07.05.05.1.09.15.14.05-.73.27-1.48.71-2.24ZM289.92 103.23s-.04.01-.05.03c0-.02.04-.03.05-.04.05-.05.11-.1.16-.15l.21-.21c-.55 0-1.5-.27-2.55-.72.4.26.8.51 1.22.74.24.13.48.26.73.37.05.02.1.03.14.05a.27.27 0 0 1 .08-.07h.01ZM269.23 68.49c-.39-.19-.82-.48-1.33-.87-3.06-1.56-6.31-2.78-9.36-2.35-3.5.49-5.7 1.11-7.74 2.44 5.71-2.6 12.82-2.07 18.44.79l-.01-.01ZM177.87 53.69l1.06.03c-.96-.22-2-.25-2.89-.3-4.95-.26-9.99.33-14.86 1.19-2.44.43-4.88.95-7.28 1.59 9.09-1.76 15.69-2.77 23.97-2.51ZM219.85 55.51c-.18.12-.36.27-.56.45-.45.53-.86 1.11-1.26 1.66-1.91 2.61-3.71 5.31-5.57 7.95l-.12.18 8.05-10.11c-.18-.05-.36-.1-.55-.13h.01ZM510.71 54.1c.12-.15.29-.3.53-.45.69-.4 3.72-.63 5.87-.74-.36-.02-.73-.04-1.09-.05-1.84-.03-3.67.09-5.49.35.05.3.12.59.18.88v.01ZM510.76 86.02c1.37-3.07 2.49-6.27 3.57-9.46.55-1.64 1.12-3.3 1.6-4.97-1.59 4.01-3.67 9.14-6.2 15.3.24-.08.5-.14.74-.22.1-.22.19-.44.29-.65ZM566.95 75.76c.11-.02.23.03.31.11-.05-.13-.09-.26-.14-.39-.05.09-.11.18-.17.28ZM511.33 86.41c3.08-.89 6.24-1.62 9.46-2.14-1.51-3.98-2.98-7.96-4.39-11.87-.05.15-.09.31-.14.46-1.02 3.32-2.15 6.61-3.39 9.85-.48 1.25-.98 2.49-1.53 3.7h-.01ZM578.24 74.45c.11-.44.23-.87.35-1.31-.31.7-.64 1.39-.97 2.08.09.21.19.4.28.61.12-.46.23-.92.35-1.38h-.01ZM520.62 53.11c-.09 0-.18-.01-.28-.02.38.34.29 1.08.93 2.53l6.65 17.15c2.2 5.68 4.69 11.36 7.41 16.87l1.06 2.17c-2.95-7.05-5.92-14.08-8.87-21.13-1.58-3.79-3.16-7.59-4.7-11.4-.78-1.92-1.73-3.89-2.25-5.91-.03-.1 0-.19.04-.26h.01ZM578.78 77.87c1.45-5.77 3.07-10.43 3.58-13.36.05-.34.16-.88.31-1.55-.67 1.79-1.37 3.56-2.08 5.33-.12.43-.23.86-.35 1.29-.65 2.43-1.29 4.86-1.9 7.3.14.33.29.65.43 1l.01-.01ZM545.3 94.66c.02-.44.03-.83.05-1.12.02-1.01.05-2.02.11-3.02.03-6.66-.46-14.33-1.46-22.8-.13-.42-.27-1.24-.56-2.89 0-.02 0-.04-.01-.06.62 6.61.95 13.25 1.32 19.87.17 3.08.33 6.16.52 9.23.02.25.03.52.04.78l-.01.01ZM580.77 102.81c.13.2.27.38.37.49.27-.11.53-.22.8-.32-.43.09-.82.05-1.17-.16v-.01ZM530.48 104.07h.33c-.36-.13-.71-.32-1.04-.56.14.24.3.47.45.7.06-.08.14-.13.26-.13v-.01ZM542.63 58.82c.06.23.11.47.15.71.14-.33.36-.62.7-.86-.28.05-.57.11-.85.15ZM583.81 57.87c.15-.7.29-1.41.42-2.11-.14.45-.28.9-.42 1.34-.46 1.44-.89 2.89-1.31 4.34.44-1.19.88-2.37 1.31-3.57ZM523.62 91.48c-4.66 1.17-9.05 2.89-14.02 5.27 4.65-1.84 9.48-3.29 14.28-4.63-.09-.22-.17-.41-.26-.64ZM460.64 78.3c-.04-2.9-.11-5.81-.28-8.71-.1-1.68-.17-3.43-.5-5.09-.07.02-.14.03-.2.05.3 6.54.45 12.17.51 17.12.17-.07.34-.14.51-.2 0-1.06-.01-2.11-.03-3.17h-.01ZM470.63 63.24c-3.38-.26-6.81.32-10.1 1.1.41 2.01.47 4.14.57 6.18.18 3.55.25 7.11.27 10.67 3.31-1.38 6.5-3.12 9.3-5.35 1.96-1.56 3.86-3.41 5.02-5.66.73-1.41 1.19-3.22.26-4.65-1.09-1.7-3.46-2.14-5.32-2.29ZM460.29 63.68c1-.24 2.01-.46 3.04-.65-1.15.16-2.37.38-3.71.69v.13c.07-.02.15-.04.22-.05.11-.13.3-.18.45-.11v-.01ZM457.24 100.96c.43-.03.86-.07 1.29-.11.14-.49.27-.99.38-1.49-.44.7-1 1.23-1.67 1.6ZM482.88 104.98c-.18.23-.36.38-.55.47.14.09.27.19.4.28a70.76 70.76 0 0 0 4.37-4.63c.76-.89 1.52-1.81 2.19-2.77-.3-.27-.61-.53-.92-.79-.07 1.94-4.62 6.32-5.49 7.45v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,$o.jsx)("path",{d:"M474.36 63.31c-.4-.16-.84-.27-1.29-.37 1.56.42 3.08 1.22 3.76 2.74.62 1.4.32 2.95-.28 4.32.7-1.22.94-2.34.74-3.47-.24-1.33-1.19-2.54-2.93-3.21v-.01ZM477.34 89.18c-1.2-.81-2.4-1.62-3.6-2.42-.14.1-.26.19-.4.29 1.4.67 2.73 1.39 4 2.13ZM465.88 93.85c.37.25.74.5 1.1.75.46.32.92.65 1.38.97-1.57-1.2-2.01-1.61-2.49-1.72h.01ZM574.92 90.06c-2.28-5.21-4.93-11.13-5.67-12.26-.1-.15-1.57-3.01-1.63-3.08 0 0-.01.02-.02.02.4 1.37 1.09 2.69 1.65 3.99 2.14 4.95 4.36 9.86 6.67 14.73.6 1.26 1.21 2.52 1.83 3.78-.75-2.01-1.64-4.45-2.83-7.18ZM448.73 65.29c.1.2.22.38.34.57.22-.02.43-.06.65-.08v-.08c-.14-.05-.25 0-.99-.41ZM460.16 94.81c-.02.31-.06.59-.1.89-.03 1.71-.33 3.43-.79 5.07.15-.02.3-.03.45-.05.01-.04.02-.08.03-.11.09-.34.15-.69.2-1.03.17-1.07.25-2.16.33-3.24.05-.69.08-1.39.12-2.08-.27.1-.27.26-.24.57v-.02Z",transform:"translate(-144.023 -51.76)"}),(0,$o.jsx)("path",{d:"m328.67 98.12-3.22-6.58c-1.29-2.63-2.53-5.29-3.72-7.97-.25-.85-.52-1.69-.79-2.53-.81-2.57-1.67-5.12-2.55-7.67-1.92-5.53-3.9-11.08-6.32-16.41-.72-1.58-1.46-3.44-2.63-4.79-.03-.17-.16-.29-.34-.36a.282.282 0 0 0-.23-.04c-.06-.01-.12 0-.18.01-.74.06-1.5.38-2.19.61-2.22.77-4.4 1.64-6.63 2.38-.03-.08-.06-.16-.09-.25-.15-.42-.82-.24-.67.19.03.09.07.19.1.28l-.18.06c-.36.11-.28.6 0 .68.18 1.18.63 2.36.98 3.49.03.09.06.17.08.26-.08.23-.17.46-.24.64-.37.98-.79 1.94-1.21 2.9-1.27 2.89-2.62 5.75-3.98 8.6-3.18 6.67-6.44 13.31-9.64 19.97-1.08 2.25-2.2 4.5-3.15 6.81-.13.32.24.5.5.37 1.34 1.33 2.84 2.5 4.4 3.57.65.44 1.31.87 2.01 1.24.4.22.86.48 1.33.5.24.01.35-.19.33-.37.11-.1.21-.21.28-.28.41-.41.81-.84 1.2-1.26.85-.92 1.69-1.87 2.5-2.84 6.31-2.34 12.6-4.31 18.71-5.84 2.14 5.3 3.43 8.43 3.97 9.58.55 1.05 1.15 1.88 1.82 2.52 1.32.56 6.96-.03 9.23-1.96.87-1.28 1.19-2.67.93-4.15-.09-.5-.22-.95-.4-1.33l-.01-.03Zm-20.09-45.61c.43.77.83 1.56 1.21 2.35-.54-.45-1.27-.99-2.07-1.49-.42-.24-.6-.35-.94-.34.43-.15.85-.29 1.29-.41.17-.05.34-.08.51-.11Zm-25.86 45.66c.78-1.85 1.67-3.66 2.54-5.47 1.51-3.16 3.05-6.31 4.58-9.47 1.28-2.63 2.56-5.26 3.83-7.9l-1.1 2.66c-1.99 4.79-4.97 10.9-8.88 18.15-.43.76-.66 1.51-.71 2.24-.05-.05-.1-.09-.15-.14a.259.259 0 0 0-.11-.07Zm6.24 4.71c-.42-.23-.82-.48-1.22-.74 1.05.45 2 .72 2.55.72l-.21.21c-.05.05-.11.1-.16.15-.01.01-.04.03-.05.04 0-.02.03-.02.05-.03a.27.27 0 0 0-.08.07c-.05-.02-.1-.03-.14-.05-.25-.1-.49-.24-.73-.37h-.01Zm15.73-29.43c1.05 3.15 2.1 6.31 3.1 9.48.34 1.06.69 2.13 1.01 3.21-3.5.63-6.95 1.46-10.27 2.5 2.48-6.03 4.54-11.11 6.16-15.19Zm4.79 12.57c-.23-.79-.49-1.58-.73-2.36-.79-2.54-1.63-5.08-2.46-7.61l-1.2-3.6c.02-.04.04-.09.05-.13 1.6 4.45 3.28 9 5.01 13.57l-.67.12v.01Zm5.83-18.27-.15-.54c-.49-1.64-1.03-3.28-1.6-4.9.23.58.47 1.17.7 1.75 1.56 4.03 3.01 8.1 4.39 12.2-.33-.82-.67-1.64-.98-2.46l-2.35-6.05h-.01ZM390.43 79.37c-.13-10.43-.22-17.5-.24-19.97-.24-1.6.21-2.88-.65-3.65-.14-.13-.32-.23-.52-.32h.03c.45 0 .45-.69 0-.7-1.75-.03-3.5-.04-5.25-.14-1.38-.08-2.76-.21-4.15-.31-.07 0-.12.01-.17.04-.21-.07-.47.03-.45.31l.03.45c-.11.14-.19.3-.22.5-.21 1.26-.32 13.67-.36 23.59-.32 5.79-.67 11.57-.97 17.36-.09 1.73-.29 3.54-.21 5.3-.39.02-.38.64.04.69v.12c.05.44.74.45.7 0v-.06c1.1.09 2.2.21 3.3.3 1.14.19 2.44.2 3.29.17 1.73-.05 2.92-.05 3.8-.37.45-.05.9-.11 1.35-.17.44-.06.25-.73-.19-.67h-.01c.24-.32.45-.72.62-1.25.66-1.84.41-6.36.34-11.33l-.13-9.9.02.01Zm-12.26 18.17c.09-1.91.2-3.81.31-5.71.06 5.38 0 6.14-.01 6.51-.05 1.65-.21 2.81.72 3.66-.39-.04-.78-.07-1.17-.1-.06-1.44.09-2.93.16-4.35l-.01-.01ZM588.97 53.85c-2.06-.25-3.17-.51-3.76-.6a.3.3 0 0 1 .04-.08c.22-.39-.39-.75-.6-.35-.56 1.02-.9 2.19-1.26 3.29-.61 1.88-1.17 3.78-1.72 5.68-.63 2.19-1.24 4.39-1.83 6.59-.81 2.03-1.67 4.05-2.61 6.03-1.7-3.64-3.11-6.04-4.03-7.57-2.26-3.74-2.85-5.48-3.57-6.08l.31-.09c.43-.12.25-.8-.19-.67-1.06.3-2.12.6-3.17.95-.93.32-1.85.69-2.76 1.07-.13.05-.19.16-.22.27-.04.02-.08.05-.11.07-.04-.06-.07-.12-.11-.18a.354.354 0 0 0-.48-.12c-.16.09-.22.32-.13.48l.33.54c0 .09.02.18.06.28.51 1.16.78 1.38.72 1.47-2.42 3.44-5.41 7.86-6.2 9.1-1.27 1.97-2.01 3.14-2.45 3.84l-.91-6.56-.43-4.1c-.19-1.85-.37-3.23-.53-4.13-.19-1.1-.3-2.15-.45-3.16-.2-1.36-.29-2.06-.47-2.42h.04c.45.02.45-.68 0-.7-3.43-.16-6.81.94-10.17 1.48-.24-.22-.73-.04-.58.32.24.59.33 1.25.43 1.87.17 1.06.29 2.13.4 3.2.32 3.09.53 6.2.74 9.3.44 6.75.77 13.51 1.17 20.26.11 1.95.13 3.96.46 5.89.05.3.37.31.55.14.74 1.71 2.87 1.27 6.13 1.27 1.34 0 2.39.04 2.99-.11.02.32.48.53.63.18 3.61-8.26 7.41-16.46 12.05-24.2.03-.05.04-.1.05-.15.3.73.64 1.45.94 2.16.97 2.26 1.97 4.52 2.98 6.76 2.26 5.03 4.54 10.07 7.09 14.96.47.9.94 1.79 1.47 2.65.2.32.4.67.66.96-.18.25 0 .68.34.54.91-.38 1.82-.75 2.76-1.07 1.04-.35 2.11-.65 3.17-.95.39-.11.28-.66-.07-.68.62-.4.95-.96.87-1.91-.3-3.34.72-7.47.86-8.52l2.14-11.43c1.75-10.74 3.13-17.51 3.23-20.86.02-.49.08-2.84.13-3.24.17-1.25.48-1-4.96-1.65l.03-.02Zm-46.19 5.67c-.04-.24-.09-.48-.15-.71l.85-.15c-.34.24-.56.53-.7.86Zm1.95 25.12c-.36-6.63-.7-13.26-1.32-19.87 0 .02 0 .04.01.06.29 1.65.44 2.47.56 2.89 1 8.46 1.5 16.14 1.46 22.8-.06.99-.1 2-.11 3.02-.01.29-.03.68-.05 1.12-.01-.26-.03-.53-.04-.78-.19-3.08-.35-6.16-.52-9.23l.01-.01Zm36.4 18.66c-.11-.11-.24-.29-.37-.49.35.21.74.26 1.17.16-.27.11-.53.22-.8.32v.01Zm-.89-33.72c.12-.43.23-.86.35-1.29.71-1.77 1.41-3.55 2.08-5.33-.15.68-.26 1.22-.31 1.55-.5 2.94-2.13 7.59-3.58 13.36-.15-.35-.29-.66-.43-1 .61-2.44 1.25-4.87 1.9-7.3l-.01.01Zm3.56-12.48c.14-.44.28-.89.42-1.34-.13.7-.27 1.41-.42 2.11-.43 1.19-.86 2.38-1.31 3.57.42-1.45.85-2.9 1.31-4.34Zm-5.22 16.05c-.11.44-.23.87-.35 1.31-.12.46-.23.92-.35 1.38-.1-.22-.19-.4-.28-.61.34-.69.66-1.38.97-2.08h.01Zm-11.64 2.62c.06-.1.12-.19.17-.28.05.13.09.26.14.39a.398.398 0 0 0-.31-.11Zm2.3 2.98c-.56-1.3-1.25-2.63-1.65-3.99 0 0 .01-.02.02-.02.06.08 1.52 2.93 1.63 3.08.73 1.13 3.38 7.04 5.67 12.26 1.2 2.73 2.08 5.17 2.83 7.18-.62-1.25-1.23-2.51-1.83-3.78-2.31-4.87-4.53-9.78-6.67-14.73ZM275.92 87.03c-1.06-2.18-1.13-3.45-2.44-2.93-1.52.57-2.94 1.3-4.5 2.1-1.4.72-2.68 1.44-3.92 2.12.01-.25-.24-.5-.51-.34-4.8 2.93-12.41 4.7-17.28 1.31-1.98-1.77-3.32-4.15-3.97-5.78-.29-.95-.49-1.94-.63-2.93-.14-3.34 1.58-6.53 3.9-9.12.8-.79 1.68-1.51 2.66-2.12 3.7-2.3 8.22-3.07 12.51-2.51 2.71.35 5.32 1.24 7.71 2.55.39.22.75-.39.35-.6-.18-.1-.37-.18-.55-.27.56.27 1.03.33 1.51.19l-.48.39c-.15.11-.23.3-.13.48.09.15.33.24.48.13 1.3-.97 2.46-2.09 3.45-3.37.37-.29.64-.6.65-.97v-.02c.08-.33-.03-.7-.21-1.08-.31-.87-.98-2.01-2.19-3.26-2.43-2.52-3.79-3.45-5.68-4.26-1.14-.49-3.12-1.06-4.42-1.23-3.28-.42-10.64-1.21-18.18 4.11-7.74 5.46-11.94 12.3-12.23 20.61-.08 2.06.04 3.98.34 5.71.74 4.18 2.57 8 5.44 11.34 4.26 4.99 9.76 7.52 16.34 7.52 4.85 0 9.69-1.77 14.89-4.62.23-.12.45-.23.68-.35 2.19-1.1 4.37-2.23 6.46-3.5.49-.3 1.03-.61 1.5-.98 1.47-.87 1.11-1.12.49-2.95-.39-1.14-.76-2.7-2.06-5.36l.02-.01Zm-17.38-21.76c3.05-.42 6.31.79 9.36 2.35.51.39.94.68 1.33.87-5.61-2.86-12.72-3.39-18.44-.79 2.05-1.33 4.24-1.95 7.74-2.44l.01.01ZM443.67 72.67c-.4-2.2-1.15-4.33-2.37-6.22-1.49-2.32-3.58-4.19-5.91-5.64-6.17-3.81-13.75-5.11-20.83-6.01-3.23-.41-6.47-.69-9.72-.92l-1.39-.12c-.85-.07-1.52-.1-2.05-.1-1.08-.06-2.17-.12-3.25-.17-.08 0-.14.02-.19.05-.1.05-.18.14-.16.3.27 2.55-.01 5.12-.92 7.52-.15.38.4.56.62.28 1.32.59 2.68 1.05 4.08 1.37 0 2.78-.14 7.58-.33 12.91 0 0 0 .02-.01.03-.61 3.66-.79 7.42-1 11.12-.23 4.01-.43 8.03-.44 12.05 0 .64 0 1.28.03 1.93.02.31 0 .68.15.96.06.11.14.16.24.17-.2.17-.21.54.11.59 3.83.67 7.78.71 11.68.25 2.3-.19 4.87-.65 7.65-1.56 1.85-.54 3.67-1.18 5.43-1.91 7.2-3.02 14.31-8.07 17.35-15.53.76-1.86 1.17-3.8 1.31-5.75.3-1.93.28-3.82-.09-5.58l.01-.02Zm-19.32-15.42c5.74 1.41 11.94 3.68 15.65 8.55.25.32.47.65.69.99-2.3-2.82-5.68-5.69-12.88-8.23-2.16-.76-4.35-1.43-6.64-2.02 1.06.21 2.13.45 3.18.71Zm-25.82-3.04c.13 0 .27.01.4.02-.14.1-.26.23-.37.38 0-.13-.02-.26-.03-.4Zm34.82 22.17c-.75 3.09-3.55 5.66-5.88 7.58-3.35 2.76-7.21 5.03-11.28 6.54-1.33.49-2.71.9-4.12 1.15.06-1.38.08-2.76.07-4.13-.02-3.78-.16-7.56-.41-11.33-.09-1.37-.18-2.74-.37-4.1 0-.06-.03-.11-.06-.15.09-3.25.12-6.16.03-8.12 6.86 1.05 10.56 2.17 14.06 3.62 5.52 2.28 8.59 5.44 7.97 8.96l-.01-.02Zm-22 16.15c-.12 0-.23-.02-.34-.03l.34-.03v.06Zm-.69-.7c0-3.13.26-8.84.47-14.51.06 1.2.11 2.41.15 3.6.15 3.6.25 7.23.09 10.83-.24.03-.48.05-.71.07v.01Zm-12.33-30.94c.37.63 2.01 1.01 3.23 1.25v.15c-1.31-.31-2.59-.73-3.83-1.29.12-.36.23-.72.33-1.09.08.48.18.84.27.98Zm13.7 31.65v-.18c3.41-.56 6.71-2.02 9.69-3.68 2.31-1.28 4.59-2.78 6.63-4.53-4.69 4.53-11.61 8.24-16.33 8.38l.01.01Zm24.07-.75c-2.05 1.93-4.37 3.56-6.83 4.95 2.7-1.78 5.52-4.03 8.42-6.87.82-.82 1.56-1.69 2.23-2.59-1.08 1.65-2.38 3.16-3.81 4.51h-.01ZM187.16 92.14c-.79-2.47-2.1-7.12-3.1-6.87-.19-.01-2.09.77-4.08 1.54-3.06 1.18-5.91 2.13-10.09 2.82-2.74.42-5.87 1.01-10.61 1.06.04-3.34.05-6.01.05-7.99 7.97-.65 12.33-2.11 16.37-3.55 1.11-.39 2.69-1.01 2.63-1.8-.08-.35-.55-1.39-1.17-2.61-.47-1.16-.98-2.31-1.61-3.38-.42-.71-1.04-1.69-1.86-2.06-.11-.08-.22-.13-.29-.12-.02 0-.04 0-.07.01-.19-.04-.39-.05-.6-.01-.17.03-.24.15-.25.28-.04.02-.09.04-.14.05-4.33 1.48-8.85 2.33-13.24 3.61a499.1 499.1 0 0 0-.31-8.19c4.51-.99 8.88-1.38 13.11-1.82 3.68-.38 6.28.12 7.47.34.59.11.9.16 1.16.18h.1c-.1.37.44.66.62.28.02-.04.03-.08.05-.13.15.2.53.22.62-.1.17-.58.19-1.21.21-1.81v-.36c.03-.15.05-.3.07-.45.52-2.47.33-5.09-.64-7.44-.11-.27-.44-.28-.6-.14-.08-.21-.15-.42-.24-.62-.19-.41-.79-.05-.6.35.03.07.05.15.09.22-.98-.42-2.15-.54-3.17-.63-2.17-.19-4.37-.14-6.54 0-5.7.35-11.4 1.3-16.91 2.79-2.08.56-4.13 1.22-6.14 2-4.54 1.05-3.79 1.51-2.17 6.07.18.51.46 1.68.54 1.94.82 2.47 1.08 2.13 3.1 2.13s0 .05 0 .08h.52c-.48 2.66-.51 5.45-.62 8.13-.15 3.48-.22 6.96-.28 10.45 0 .41-.01.82-.02 1.23-.16.29-.33.57-.51.85-.05.38-.09.77-.14 1.18-.42 3.52-.59 6.48-.52 8.8v.34c.02.47.05.76.06.87.16 1.57-.26 3.47 1.35 3.79 1.61.32 3.5.55 4.85.55.11 0 .22-.02.33-.02 1.79.24 3.67.05 5.45-.12 2.85-.28 5.69-.7 8.51-1.19 3.03-.53 6.05-1.14 9.04-1.86 2.4-.58 4.82-1.19 7.13-2.06.51-.19 1.73-.57 2.46-1.14 1.81-.68 2.18-1 1.57-2.67-.23-.62-.48-1.49-.91-2.78l-.03-.02Zm-11.12-38.71c.89.05 1.93.08 2.89.3-.33 0-.68-.02-1.06-.03-8.28-.26-14.88.75-23.97 2.51 2.41-.64 4.85-1.16 7.28-1.59 4.87-.86 9.91-1.45 14.86-1.19Zm-26.53 22.13c.03 1.71.04 3.43 0 5.14-.04 1.27-.11 2.55-.24 3.82 0-.73.02-1.46.04-2.19.05-2.26.12-4.51.22-6.77h-.02Zm6.73 27.85c.2-.1.4-.21.58-.33 1.82-.17 3.82-.24 5.94-.34-.86.11-1.72.24-2.58.33-1.27.14-2.61.31-3.93.34h-.01ZM534.48 85.44c-3.52-8.38-7.07-16.75-10.5-25.17-.63-1.54-1.25-3.09-1.86-4.65-.31-.8-.65-1.6-.87-2.43-.04-.17-.17-.24-.31-.25.1-.2 0-.51-.29-.53-1.59-.08-3.18-.22-4.78-.25-1.96-.03-3.91.13-5.84.42-.31.05-.31.38-.13.56-.03.06-.05.14-.04.22.23 1.54.63 3.06 1.16 4.53.13.35.27.7.41 1.06l-2.68 6.18c-.11.03-.2.09-.25.22-.67 1.9-1.52 3.73-2.34 5.56a536.85 536.85 0 0 1-3.9 8.45c-2.64 5.64-5.34 11.25-7.91 16.93-.44.97-.88 1.94-1.29 2.93-.2.48-.47 1-.55 1.52v.05c-.02.12.02.26.16.34 1.19.73 2.41 1.41 3.66 2.05 1.2.62 2.45 1.25 3.76 1.61.43.12.62-.55.19-.67-1.13-.31-2.2-.83-3.24-1.36 1.09.36 2.1.69 2.75.93 2.82 1.01 2.38 1.1 4.3-3.75 2.1-1.09 4.34-1.96 6.53-2.79 4.35-1.64 8.8-3.03 13.27-4.29.82 2.01 1.77 3.97 2.72 5.92.35.83.62 1.45.79 1.82.22.42.45.8.69 1.15.17.33.33.67.5 1 .42.8.84 1.63 1.4 2.35.23.29.6 0 .55-.31 1.53-.02 3.06-.07 4.58-.27.92-.12 1.82-.32 2.71-.54 1.39-.27 3.85-1.11 3.74-1.42-.67-1.96-1.55-3.87-2.34-5.78-1.57-3.78-3.16-7.56-4.75-11.33v-.01Zm-11.65-26.16c1.54 3.81 3.12 7.6 4.7 11.4 2.94 7.05 5.91 14.09 8.87 21.13l-1.06-2.17c-2.71-5.51-5.2-11.19-7.41-16.87l-6.65-17.15c-.65-1.45-.55-2.19-.93-2.53.09 0 .18.01.28.02a.29.29 0 0 0-.04.26c.52 2.02 1.47 3.98 2.25 5.91h-.01Zm-6.58 13.58c.05-.15.09-.31.14-.46 1.41 3.92 2.88 7.9 4.39 11.87-3.22.52-6.38 1.25-9.46 2.14.55-1.22 1.05-2.46 1.53-3.7 1.24-3.24 2.37-6.53 3.39-9.85h.01Zm-.23-20c.36 0 .73.03 1.09.05-2.15.1-5.18.33-5.87.74-.24.15-.41.3-.53.45-.06-.29-.13-.58-.18-.88 1.82-.26 3.65-.39 5.49-.35v-.01Zm-.09 18.72c-.49 1.67-1.05 3.33-1.6 4.97-1.07 3.19-2.19 6.38-3.57 9.46-.09.21-.19.43-.29.65-.25.07-.5.14-.74.22 2.53-6.16 4.61-11.29 6.2-15.3Zm-6.34 25.16c4.97-2.38 9.37-4.1 14.02-5.27l.26.64c-4.8 1.35-9.63 2.8-14.28 4.63Zm20.17 6.76c.33.23.68.42 1.04.56h-.33c-.12 0-.21.06-.26.13-.15-.23-.31-.45-.45-.7v.01ZM226.57 91.75c-3.55-4.74-6.68-9.11-9.31-12.99 9.2-15.25 10.05-17.81 10.35-18.38.17-.34 1.09-2.27.64-2.53-1.13-.65-1.03-.65-2.97-1.71-1.19-.65-3.04-1.61-4.53-2.12-1.71-.59-1.24-.36-3 2.77-.06.1-.11.2-.17.3-.75 1.02-1.48 2.05-2.2 3.09-1.88 2.71-3.73 5.45-5.69 8.1-3.68-4.91-6.88-8.76-9.51-11.43-.15-.15-.3-.29-.46-.42-1.27-1.28-7.24 3.53-7.93 5.58-.09.09-.19.16-.28.25-.27.26.03.64.33.58.19.65.5 1.29.94 1.91 3.85 5.06 7.19 9.76 9.94 14-1.23 2.61-3.06 5-4.67 7.38l-2.28 3.33c-.5.66-.93 1.23-1.29 1.69-.67.93-2.09 2.61-2.3 3.87-.51.85-1.16 1.84-1.29 2.83-.06.44.61.63.67.19.01-.08.04-.15.06-.22 1.36 1.08 2.76 2.11 4.19 3.11 1.3.91 2.62 1.85 4.04 2.56.21.1.4 0 .48-.17.24.07.48.14.72.2.44.1.62-.57.19-.67-2.02-.48-3.77-1.57-5.23-3.02-.47-.46-.9-.96-1.32-1.46 1.74 1.35 4.2 2.89 5.89 4.14 1.39 1.03 2.85-2.27 4.22-4.2 1.86-2.64 3.96-5.86 5.52-8.29l10.39 14.51c.67.81 1.14 1.21 1.57 1.36-.05.24.12.51.41.4 1.53-.58 3.05-1.19 4.54-1.87 1.52-.69 3.06-1.45 4.36-2.5a.28.28 0 0 0 .12-.23c1.66-1.1.81-1.74-1.41-4.91-1.13-1.58-1.71-2.36-3.7-5.01l-.03-.02Zm2.41 6.54c.56 1.15 1.19 2.52 1.11 3.81-.06.04-.12.07-.17.1-.03-.88-.55-2.66-.94-3.91Zm-16.51-32.73c1.86-2.65 3.65-5.35 5.57-7.95.4-.55.81-1.13 1.26-1.66.19-.18.38-.33.56-.45.18.03.36.08.55.13l-8.05 10.11.12-.18h-.01ZM192.7 95.48c.79-1.37 1.66-2.69 2.54-4 1.19-1.79 2.4-3.56 3.61-5.33-.04.09-.09.17-.13.26-.1.22.03.41.2.49-2.47 3.42-4.89 6.73-6.4 9.28.21.24.4.48.63.75-.24.07-.4.36-.17.56.4.33.72.77 1.05 1.17.09.11.18.21.27.32-.84-.61-1.66-1.24-2.47-1.88.24-.57.58-1.11.87-1.61v-.01Zm7.46-10.32c.47-.81.98-1.59 1.49-2.37.31-.48.64-.95.96-1.43.26-.29.52-.56.75-.79-.99 1.48-2.09 3.03-3.2 4.59Zm10.03-16.22s-.03-.05-.05-.07c.22-.29.43-.59.64-.89-.2.32-.4.65-.58.96h-.01ZM371.54 87.96c-.01-.08-.01-.16-.03-.23-.06-.38-.58-.29-.66.03-.3-.05-.6-.08-.81-.11-1.14-.15-2.29-.19-3.44-.2 1.04-.09 2.09-.18 3.14-.23.45-.02.45-.72 0-.7-6.57.35-13.14 1.23-19.65 2.11-1.53.21-3.05.42-4.57.68-.01 0-.02.01-.04.01-.04-3.33-.13-6.66-.24-9.99-.19-5.7-.4-11.41-.88-17.1-.13-1.51-.23-3.07-.49-4.58 0-.25 0-.48-.02-.68-.06-1.19-.04-2.61-.68-2.78-.16-.07-.72-.16-1.5-.24.22-.17.16-.62-.2-.63-1.19-.04-2.39.09-3.57.23-1.2.14-2.41.32-3.59.6-.16-.1-.41-.06-.5.12-.06.02-.13.03-.19.05-.35.1-.29.55-.03.66-.26.6-.19 2.27-.21 3-.02.66-.66 33.73-.9 40.3-.03.65.06 1.12.04 1.45-.16 3.05.87 4.96 6.34 3.93 1.09-.08 2.75-.77 5.36-1.43 4.13-1.04 5.78-1.52 6.2-1.65 6.43-1.69 6.78-1.97 11.72-2.43.55-.05 4.8-.38 6.03-.3.64.04 1.19.07 1.65.1.09 0 .16-.03.24-.05.1.27.56.33.66-.02.39-1.32.61-2.71.78-4.08.2-1.61.29-3.24.15-4.86.24.03.52-.23.38-.53-.09-.2-.27-.33-.49-.43v-.02Zm-.63.56c.07.57.11 1.14.11 1.71-.21-.99-.53-1.71-.95-1.87.22.03.44.06.65.11.06.01.12.04.19.05Zm-25.41 1.73c1.54-.36 3.1-.64 4.66-.89-1.61.37-3.18.77-4.66 1.2v-.31Zm-.86-7.37c-.07-1.37-.16-2.75-.25-4.12-.21-3.13-.45-6.27-.79-9.4.02-2.25.08-4.31.13-6.11.16 2.08.29 4.16.4 6.24.23 4.46.38 8.93.5 13.39h.01Zm-.94-4c.16 2.41.29 4.83.39 7.24.06 1.6.14 3.22.09 4.83-.15.05-.32.09-.47.14V78.88h-.01ZM483.72 92.83c-3.05-2.28-6.22-4.4-9.38-6.51 8.86-6.49 13.49-12.95 13.73-19.23.04-.76 0-1.5-.13-2.2-.67-3.82-3.5-6.68-8.39-8.48.13.04.27.08.4.13 3.92 1.39 7.74 4.23 8.5 8.56.34 1.95-.05 3.96-.98 5.69-.21.4.39.75.6.35 1.86-3.46 1.46-7.55-.97-10.63-3.53-4.47-9.76-5.88-15.16-6.16-2.32-.12-4.64-.04-6.95.19-6 .32-12.71 1.68-17.63 3.21-.37.11-.67.23-.92.35-.2-.17-.62.02-.57.37v.03c-.64.68-.18 1.64.48 3.21.38.91.67 1.89 1.15 2.58.32.76.68 1.51 1.13 2.19.14.21.38.19.53.07.19-.02.38-.05.57-.08v1.57c-.06.06-.1.13-.11.23-.27 4.18-.34 8.38-.48 12.57l-.3 9.03c-.24 3.91-.44 6.77-.46 7.26-.05.88-.11 1.95.07 2.81-.01.22-.02.43-.04.65 0 .11-.02.23-.03.35 0 .05-.03.27-.01.16-.05.4.5.59.64.28.05.04.12.08.2.08 1.75.13 3.5.28 5.25.3 1.69.02 3.38-.12 5.06-.32.08.23.36.39.55.15.06-.08.11-.17.16-.26.18-.09.24-.32.18-.48.05-.2.1-.4.13-.6.16-.86.25-1.74.33-2.62.11-1.17.17-2.34.23-3.51.15-.01.32-.03.52-.04.36-.03 1.73-.15 2.06-.15.39 0 .7-.02.95-.04 1.76 1.11 3.45 2.35 5.14 3.55 2.83 2.01 5.64 4.04 8.47 6.04 1.42 1 2.85 2 4.29 2.97.1.06.19.07.27.04.08 0 .17-.02.25-.1 1.61-1.56 3.15-3.18 4.6-4.88.75-.88 1.49-1.78 2.15-2.73.01.01.03.02.04.03.34.3.83-.2.49-.49-2.16-1.9-4.34-3.76-6.64-5.48l.03-.01Zm-6.38-3.65a55.72 55.72 0 0 0-4-2.13c.14-.1.26-.19.4-.29 1.2.81 2.4 1.61 3.6 2.42Zm-20.1 11.78c.67-.37 1.23-.91 1.67-1.6-.11.5-.24 1-.38 1.49-.43.04-.86.08-1.29.11Zm2.38-37.24c1.34-.31 2.56-.52 3.71-.69-1.03.19-2.04.41-3.04.65-.14-.07-.34-.02-.45.11-.07.02-.15.04-.22.05v-.13.01Zm.04.84c.07-.02.14-.03.2-.05.34 1.66.41 3.41.5 5.09.17 2.9.24 5.81.28 8.71l.03 3.17c-.17.07-.34.14-.51.2-.06-4.96-.21-10.58-.51-17.12h.01Zm16.04 5.62c-1.16 2.25-3.06 4.1-5.02 5.66-2.8 2.23-5.99 3.97-9.3 5.35-.01-3.56-.09-7.12-.27-10.67-.1-2.04-.16-4.16-.57-6.18 3.3-.78 6.72-1.36 10.1-1.1 1.85.14 4.23.59 5.32 2.29.92 1.43.46 3.24-.26 4.65Zm.85-.18c.6-1.37.9-2.92.28-4.32-.67-1.52-2.2-2.32-3.76-2.74.46.1.89.21 1.29.37 1.74.67 2.69 1.88 2.93 3.21.2 1.13-.05 2.25-.74 3.47V70Zm-27.47-4.14c-.12-.19-.23-.38-.34-.57.74.42.85.36.99.41v.08c-.22.03-.43.06-.65.08Zm11.21 30.46c-.08 1.08-.16 2.17-.33 3.24-.05.35-.11.69-.2 1.03 0 .04-.02.07-.03.11-.15.02-.3.04-.45.05.45-1.64.76-3.36.79-5.07.03-.29.08-.57.1-.89-.03-.31-.03-.47.24-.57-.04.69-.07 1.39-.12 2.08v.02Zm5.6-2.47c.48.11.92.52 2.49 1.72-.46-.32-.92-.65-1.38-.97-.37-.25-.73-.5-1.1-.75h-.01Zm21.23 7.24a70.76 70.76 0 0 1-4.37 4.63c-.14-.09-.27-.19-.4-.28.19-.09.37-.24.55-.47.87-1.14 5.43-5.51 5.49-7.45.31.26.62.53.92.79-.67.97-1.42 1.88-2.19 2.77v.01Z",fill:"currentColor",transform:"translate(-144.023 -51.76)"})]}),K5=({style:t,size:e="small",withText:o})=>(0,$o.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,$o.jsx)(sI,{}),o&&(0,$o.jsx)(cI,{})]});var ze=v(S(),1),Rg=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,ze.jsxs)(ze.Fragment,{children:[(0,ze.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,ze.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,ze.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};Rg.displayName="WelcomeScreenMenuItemContent";var Ns=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,ze.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,ze.jsx)(Rg,{icon:o,shortcut:r,children:e})});Ns.displayName="WelcomeScreenMenuItem";var Y5=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,ze.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,ze.jsx)(Rg,{icon:o,shortcut:r,children:t})});Y5.displayName="WelcomeScreenMenuItemLink";var Uo=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=We();return(0,ze.jsx)(e.In,{children:(0,ze.jsx)("div",{className:"welcome-screen-center",children:t||(0,ze.jsxs)(ze.Fragment,{children:[(0,ze.jsx)(Ng,{}),(0,ze.jsx)(Og,{children:g("welcomeScreen.defaults.center_heading")}),(0,ze.jsxs)(Fg,{children:[(0,ze.jsx)(zg,{}),(0,ze.jsx)(Bg,{})]})]})})})};Uo.displayName="Center";var Ng=({children:t})=>(0,ze.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,ze.jsx)(K5,{withText:!0})});Ng.displayName="Logo";var Og=({children:t})=>(0,ze.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Og.displayName="Heading";var Fg=({children:t})=>(0,ze.jsx)("div",{className:"welcome-screen-menu",children:t});Fg.displayName="Menu";var Bg=()=>{let t=St();return(0,ze.jsx)(Ns,{onSelect:()=>t.executeAction(di),shortcut:"?",icon:ia,children:g("helpDialog.title")})};Bg.displayName="MenuItemHelp";var zg=()=>{let t=ke(),e=St();return t.viewModeEnabled?null:(0,ze.jsx)(Ns,{onSelect:()=>e.executeAction(_a),shortcut:Et("loadScene"),icon:aa,children:g("buttons.load")})};zg.displayName="MenuItemLoadScene";var Z5=({onSelect:t})=>{let{t:e}=xt();return(0,ze.jsx)(Ns,{shortcut:null,onSelect:t,icon:id,children:e("labels.liveCollaboration")})};Z5.displayName="MenuItemLiveCollaborationTrigger";Uo.Logo=Ng;Uo.Heading=Og;Uo.Menu=Fg;Uo.MenuItem=Ns;Uo.MenuItemLink=Y5;Uo.MenuItemHelp=Bg;Uo.MenuItemLoadScene=zg;Uo.MenuItemLiveCollaborationTrigger=Z5;h();var ir=v(S(),1),gu=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=We();return(0,ir.jsx)(e.In,{children:(0,ir.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[$0,(0,ir.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};gu.displayName="MenuHint";var bu=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=We();return(0,ir.jsx)(e.In,{children:(0,ir.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,ir.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),W0]})})};bu.displayName="ToolbarHint";var xu=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=We();return(0,ir.jsx)(e.In,{children:(0,ir.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,ir.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),U0]})})};xu.displayName="HelpHint";var ar=v(S(),1),vu=t=>(0,ar.jsx)(ar.Fragment,{children:t.children||(0,ar.jsxs)(ar.Fragment,{children:[(0,ar.jsx)(Uo,{}),(0,ar.jsx)(gu,{}),(0,ar.jsx)(bu,{}),(0,ar.jsx)(xu,{})]})});vu.displayName="WelcomeScreen";vu.Center=Uo;vu.Hints={MenuHint:gu,ToolbarHint:bu,HelpHint:xu};var dI=vu;h();var yu=v(S(),1),j5=({isCollaborating:t,onSelect:e,...o})=>{let r=ke(),n=r.width<830;return(0,yu.jsxs)(yr,{...o,className:z("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?px:g("labels.share"),r.collaborators.size>0&&(0,yu.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},mI=j5;j5.displayName="LiveCollaborationTrigger";h();var Os=v(S(),1),X5=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=We(),r=_e();return(0,Os.jsx)(o.In,{children:(0,Os.jsxs)(Le.Item,{onSelect:()=>{ve("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??r2,children:[t??g("labels.textToDiagram"),(0,Os.jsx)(Le.Item.Badge,{children:"AI"})]})})};X5.displayName="TTDDialogTrigger";var Eu=v(S(),1);G5();var uI=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=ur.code,viewModeEnabled:s,zenModeEnabled:c,gridModeEnabled:m,libraryReturnUrl:d,theme:f,name:p,renderCustomStats:b,onPaste:x,detectScroll:y=!0,handleKeyboardGlobally:w=!1,onLibraryChange:k,autoFocus:C=!1,generateIdForFile:M,onLinkOpen:_,onPointerDown:I,onPointerUp:A,onScrollChange:P,children:F,validateEmbeddable:D,renderEmbeddable:W,aiEnabled:O}=t,U=t.UIOptions?.canvasActions,ee={...t.UIOptions,canvasActions:{..._u.canvasActions,...U},tools:{image:t.UIOptions?.tools?.image??!0}};return U?.export&&(ee.canvasActions.export.saveFileToDisk=U.export?.saveFileToDisk??_u.canvasActions.export.saveFileToDisk),ee.canvasActions.toggleTheme===null&&typeof f>"u"&&(ee.canvasActions.toggleTheme=!0),(0,wu.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let pe=me=>{typeof me.scale=="number"&&me.scale!==1&&me.preventDefault()};return document.addEventListener("touchmove",pe,{passive:!1}),()=>{document.removeEventListener("touchmove",pe)}},[]),(0,Eu.jsx)(Wc,{unstable_createStore:()=>Ut,scope:Pe,children:(0,Eu.jsx)(R0,{langCode:l,theme:f,children:(0,Eu.jsx)(W5,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:s,zenModeEnabled:c,gridModeEnabled:m,libraryReturnUrl:d,theme:f,name:p,renderCustomStats:b,UIOptions:ee,onPaste:x,detectScroll:y,handleKeyboardGlobally:w,onLibraryChange:k,autoFocus:C,generateIdForFile:M,onLinkOpen:_,onPointerDown:I,onPointerUp:A,onScrollChange:P,validateEmbeddable:D,renderEmbeddable:W,aiEnabled:O!==!1,children:F})})})},pI=(t,e)=>{if(t.children!==e.children)return!1;let{initialData:o,UIOptions:r={},...n}=t,{initialData:i,UIOptions:a={},...l}=e,s=Object.keys(r),c=Object.keys(a);return s.length!==c.length?!1:s.every(d=>d==="canvasActions"?Object.keys(r.canvasActions).every(p=>p==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[p]===a?.canvasActions?.[p]):r[d]===a[d])&&Dt(n,l)},fI=wu.default.memo(uI,pI);fI.displayName="Excalidraw";export{yr as Button,Su as DEFAULT_LASER_COLOR,Zm as DefaultSidebar,fI as Excalidraw,nl as FONT_FAMILY,lI as Footer,mI as LiveCollaborationTrigger,Pt as MIME_TYPES,io as MainMenu,yo as ROUNDNESS,jr as Sidebar,Je as THEME,dg as TTDDialog,X5 as TTDDialogTrigger,dI as WelcomeScreen,Xi as bumpVersion,Es as convertToExcalidrawElements,ur as defaultLang,s6 as elementPartiallyOverlapsWithOrContainsBBox,c6 as elementsOverlappingBBox,lp as exportToBlob,Zn as exportToCanvas,a6 as exportToClipboard,_l as exportToSvg,Ke as getCommonBounds,d6 as getFreeDrawSvgPath,im as getLibraryItemsHash,be as getNonDeletedElements,m6 as getSceneVersion,n6 as getVisibleSceneBounds,hp as hashElementsVersion,gp as hashString,l6 as isElementInsideBBox,jn as isInvisiblySmallElement,Re as isLinearElement,ta as languages,kc as loadFromBlob,tp as loadLibraryFromBlob,ep as loadSceneOrLibraryFromBlob,xE as mergeLibraryItems,te as mutateElement,ue as newElementWith,Nr as normalizeLink,ph as parseLibraryTokensFromUrl,Qu as restore,i6 as restoreAppState,Ju as restoreElements,kl as restoreLibraryItems,qt as sceneCoordsToViewportCoords,rp as serializeAsJSON,ip as serializeLibraryAsJSON,Me as useDevice,eT as useHandleLibrary,xt as useI18n,Ve as viewportCoordsToSceneCoords,Ry as zoomToFitBounds};
|
|
187
|
+
`),r)}}addTextFromPaste(t,r=!1){let{x:o,y:i}=kt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),a={x:o,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roundness:null,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:t,fontSize:this.state.currentItemFontSize,fontFamily:this.state.currentItemFontFamily,textAlign:Zu,verticalAlign:yx,locked:!1},s=eo({fontSize:a.fontSize,fontFamily:a.fontFamily}),c=_i(a.fontFamily),[d,,p]=ov(this.state),f=Math.max(Math.min((p-d)*.5,800),200),m=10,g=i,h=r?[t]:t.split(`
|
|
188
|
+
`),b=h.reduce((y,T,k)=>{let I=T.trim();if(I.length){let A=this.getTopLayerFrameAtSceneCoords({x:o,y:g}),O=Si(I,s,c),z=O.width>f,L=z?$p(I,s,f):I;O=z?Si(L,s,c):O;let F=o-O.width/2,D=g-O.height/2,V=ba({...a,x:F,y:D,text:L,originalText:I,lineHeight:c,autoResize:!z,frameId:A?A.id:null});y.push(V),g+=V.height+m}else h[k-1]?.trim()&&(g+=oC(a.fontSize,c)+m);return y},[]);b.length!==0&&(this.scene.insertElements(b),this.setState({selectedElementIds:gt(Object.fromEntries(b.map(y=>[y.id,!0])),this.state)}),!r&&b.length>1&&NP===!1&&!this.device.editor.isMobile&&(this.setToast({message:E("toast.pasteAsSingleElement",{shortcut:X("CtrlOrCmd+Shift+V")}),duration:5e3}),NP=!0),this.store.shouldCaptureIncrement())}setAppState=(t,r)=>{this.setState(t,r)};removePointer=t=>{Ha&&this.resetContextMenuTimer(),at.pointers.delete(t.pointerId)};toggleLock=(t="ui")=>{this.state.activeTool.locked||ze("toolbar","toggleLock",`${t} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(r=>({activeTool:{...r.activeTool,...Ht(this.state,r.activeTool.locked?{type:"selection"}:r.activeTool),locked:!r.activeTool.locked}}))};updateFrameRendering=t=>{this.setState(r=>{let o=typeof t=="function"?t(r.frameRendering):t;return{frameRendering:{enabled:o?.enabled??r.frameRendering.enabled,clip:o?.clip??r.frameRendering.clip,name:o?.name??r.frameRendering.name,outline:o?.outline??r.frameRendering.outline}}})};togglePenMode=t=>{this.setState(r=>({penMode:t??!r.penMode,penDetected:!0}))};onHandToolToggle=()=>{this.actionManager.executeAction(uk)};zoomCanvas=t=>{this.setState({...ki({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Ai(t)},this.state)})};cancelInProgressAnimation=null;scrollToContent=(t=this.scene.getNonDeletedElements(),r)=>{this.cancelInProgressAnimation?.();let o=Array.isArray(t)?t:[t],i=this.state.zoom,a=this.state.scrollX,s=this.state.scrollY;if(r?.fitToContent||r?.fitToViewport){let{appState:c}=fm({targetElements:o,appState:this.state,fitToViewport:!!r?.fitToViewport,viewportZoomFactor:r?.viewportZoomFactor});i=c.zoom,a=c.scrollX,s=c.scrollY}else{let c=Sl(o,this.state);a=c.scrollX,s=c.scrollY}if(r?.animate){let c=this.state.scrollX,d=this.state.scrollY,p=this.state.zoom.value,f=ZS({fromValues:{scrollX:c,scrollY:d,zoom:p},toValues:{scrollX:a,scrollY:s,zoom:i.value},interpolateValue:(m,g,h,b)=>{if(b==="zoom")return m*Math.pow(g/m,ll(h))},onStep:({scrollX:m,scrollY:g,zoom:h})=>{this.setState({scrollX:m,scrollY:g,zoom:{value:h}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:r?.duration??500});this.cancelInProgressAnimation=()=>{f(),this.cancelInProgressAnimation=null}}else this.setState({scrollX:a,scrollY:s,zoom:i})};maybeUnfollowRemoteUser=()=>{this.state.userToFollow&&this.setState({userToFollow:null})};translateCanvas=t=>{this.cancelInProgressAnimation?.(),this.maybeUnfollowRemoteUser(),this.setState(t)};setToast=t=>{this.setState({toast:t})};restoreFileFromShare=async()=>{try{let t=await caches.open("web-share-target"),r=await t.match("shared-file");if(r){let o=await r.blob(),i=new File([o],o.name||"",{type:o.type});this.loadFileToCanvas(i,null),await t.delete("shared-file"),window.history.replaceState(null,gd,window.location.pathname)}}catch(t){this.setState({errorMessage:t.message})}};addFiles=Dt(t=>{let r=t.reduce((o,i)=>(o.set(i.id,i),o),new Map);this.files={...this.files,...Object.fromEntries(r)},this.scene.getNonDeletedElements().forEach(o=>{Cd(o)&&r.has(o.fileId)&&(this.imageCache.delete(o.fileId),va.delete(o))}),this.scene.triggerUpdate(),this.addNewImagesToImageCache()});updateScene=Dt(t=>{let r=ua(t.elements??[]);if(t.storeAction&&t.storeAction!==W.NONE){let o=this.store.snapshot.appState,i=this.store.snapshot.elements,a=t.appState?Object.assign({},o,t.appState):o,s=t.elements?this.store.filterUncomittedElements(this.scene.getElementsMapIncludingDeleted(),Le(r)):i;t.storeAction===W.CAPTURE?this.store.captureIncrement(s,a):t.storeAction===W.UPDATE&&this.store.updateSnapshot(s,a)}t.appState&&this.setState(t.appState),t.elements&&this.scene.replaceAllElements(r),t.collaborators&&this.setState({collaborators:t.collaborators})});triggerRender=t=>{t===!0?this.scene.triggerUpdate():this.setState({})};toggleSidebar=({name:t,tab:r,force:o})=>{let i;o===void 0?i=this.state.openSidebar?.name===t&&this.state.openSidebar?.tab===r?null:t:i=o?t:null;let a=i?{name:i}:null;return a&&r&&(a.tab=r),this.setState({openSidebar:a}),!!i};updateCurrentCursorPosition=Dt(t=>{this.lastViewportPosition.x=t.clientX,this.lastViewportPosition.y=t.clientY});onKeyDown=Dt(t=>{if("Proxy"in window&&(!t.shiftKey&&/^[A-Z]$/.test(t.key)||t.shiftKey&&/^[a-z]$/.test(t.key))&&(t=new Proxy(t,{get(a,s){let c=a[s];return typeof c=="function"?c.bind(a):s==="key"?t.shiftKey?a.key.toUpperCase():a.key.toLowerCase():c}})),t[R.CTRL_OR_CMD]&&t.key===R.P&&!t.shiftKey&&!t.altKey){this.setToast({message:E("commandPalette.shortcutHint",{shortcut:cr("commandPalette")})}),t.preventDefault();return}if(t[R.CTRL_OR_CMD]&&t.key.toLowerCase()===R.V&&(Bh=t.shiftKey,clearTimeout(DP),DP=window.setTimeout(()=>{Bh=!1},100)),t[R.CTRL_OR_CMD]&&Wn(t.target)&&(t.code===Ne.MINUS||t.code===Ne.EQUAL)){t.preventDefault();return}if(Wn(t.target)&&t.key!==R.ESCAPE||Cs(t.key)&&VS(t.target))return;if(t.key===R.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(t.key.toLowerCase()===R.E&&t.shiftKey&&t[R.CTRL_OR_CMD]){t.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(t.key===R.PAGE_UP||t.key===R.PAGE_DOWN){let a=(t.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;t.key===R.PAGE_DOWN&&(a=-a),t.shiftKey?this.translateCanvas(s=>({scrollX:s.scrollX+a})):this.translateCanvas(s=>({scrollY:s.scrollY+a}))}if(this.actionManager.handleKeyDown(t)||this.state.viewModeEnabled)return;if(t[R.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Cs(t.key)){let a=this.state.gridSize&&(t.shiftKey?bx:this.state.gridSize)||(t.shiftKey?wS:bx),s=0,c=0;t.key===R.ARROW_LEFT?s=-a:t.key===R.ARROW_RIGHT?s=a:t.key===R.ARROW_UP?c=-a:t.key===R.ARROW_DOWN&&(c=a);let d=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});d.forEach(p=>{me(p,{x:p.x+s,y:p.y+c}),hl(p,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:d})}),this.setState({suggestedBindings:Rp(d,this.scene.getNonDeletedElementsMap())}),t.preventDefault()}else if(t.key===R.ENTER){let a=this.scene.getSelectedElements(this.state);if(a.length===1){let s=a[0];if(t[R.CTRL_OR_CMD])Qe(s)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==a[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Re(s)}));else if(he(s)||cC(s)){let c;he(s)||(c=s);let d=Up(s,this.state,this.scene.getNonDeletedElementsMap()),p=d.x,f=d.y;this.startTextEditing({sceneX:p,sceneY:f,container:c}),t.preventDefault();return}else He(s)&&this.setState({editingFrame:s.id})}}else if(!t.ctrlKey&&!t.altKey&&!t.metaKey&&this.state.draggingElement===null){let a=jT(t.key);a?(this.state.activeTool.type!==a&&ze("toolbar",a,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:a}),t.stopPropagation()):t.key===R.Q&&(this.toggleLock("keyboard"),t.stopPropagation())}if(t.key===R.SPACE&&at.pointers.size===0&&(es=!0,pt(this.interactiveCanvas,ut.GRAB),t.preventDefault()),(t.key===R.G||t.key===R.S)&&!t.altKey&&!t[R.CTRL_OR_CMD]){let a=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!a.length)return;t.key===R.G&&(fa(this.state.activeTool.type)||a.some(s=>fa(s.type)))&&(this.setState({openPopup:"elementBackground"}),t.stopPropagation()),t.key===R.S&&(this.setState({openPopup:"elementStroke"}),t.stopPropagation())}if(!t[R.CTRL_OR_CMD]&&t.shiftKey&&t.key.toLowerCase()===R.F){let a=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!a.length)return;(this.state.activeTool.type==="text"||a.find(s=>he(s)||Ve(s,this.scene.getNonDeletedElementsMap())))&&(t.preventDefault(),this.setState({openPopup:"fontFamily"}))}if(t.key===R.K&&!t.altKey&&!t[R.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}t[R.CTRL_OR_CMD]&&(t.key===R.BACKSPACE||t.key===R.DELETE)&&zr.set(Wl,"clearCanvas");let r=t.key.toLocaleLowerCase(),o=r===R.S&&t.shiftKey,i=t.key===R.I||r===R.G&&t.shiftKey;(o||i)&&this.openEyeDropper({type:o?"stroke":"background"})});onWheel=Dt(t=>{!(t.target instanceof HTMLCanvasElement)&&t.ctrlKey&&t.preventDefault()});onKeyUp=Dt(t=>{t.key===R.SPACE&&(this.state.viewModeEnabled?pt(this.interactiveCanvas,ut.GRAB):this.state.activeTool.type==="selection"?Jo(this.interactiveCanvas):(_n(this.interactiveCanvas,this.state),this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),es=!1),!t[R.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Cs(t.key)&&(gl(this.scene.getSelectedElements(this.state).filter(Qe),this.scene.getNonDeletedElementsMap(),fl(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[]),this.setState({suggestedBindings:[]}))});isToolSupported=t=>this.props.UIOptions.tools?.[t]!==!1;setActiveTool=t=>{if(!this.isToolSupported(t.type)){console.warn(`"${t.type}" tool is disabled via "UIOptions.canvasActions.tools.${t.type}"`);return}let r=Ht(this.state,t);r.type==="hand"?pt(this.interactiveCanvas,ut.GRAB):es||_n(this.interactiveCanvas,this.state),YS(document.activeElement)&&this.focusContainer(),l2(r.type)||this.setState({suggestedBindings:[]}),r.type==="image"&&this.onImageAction({insertOnCanvasDirectly:(t.type==="image"&&t.insertOnCanvasDirectly)??!1}),this.setState(o=>{let i={snapLines:o.snapLines.length?[]:o.snapLines,originSnapOffset:null,activeEmbeddable:null};return r.type==="freedraw"&&this.store.shouldCaptureIncrement(),r.type!=="selection"?{...o,activeTool:r,selectedElementIds:gt({},o),selectedGroupIds:gt({},o),editingGroupId:null,multiElement:null,...i}:{...o,activeTool:r,...i}})};setOpenDialog=t=>{this.setState({openDialog:t})};setCursor=t=>{pt(this.interactiveCanvas,t)};resetCursor=()=>{Jo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>at.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${E("labels.untitled")}-${Cx()}`;onGestureStart=Dt(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:gt({},this.state),activeEmbeddable:null}),at.initialScale=this.state.zoom.value});onGestureChange=Dt(t=>{if(t.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let r=at.initialScale;r&&this.setState(o=>({...ki({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Ai(r*t.scale)},o)}))});onGestureEnd=Dt(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:gt(this.state.previousSelectedElementIds,this.state)}),at.initialScale=null});handleTextWysiwyg(t,{isExistingElement:r=!1}){let o=this.scene.getElementsMapIncludingDeleted(),i=(a,s)=>{this.scene.replaceAllElements([...this.scene.getElementsIncludingDeleted().map(c=>c.id===t.id&&he(c)?Pe(c,{originalText:a,isDeleted:s??c.isDeleted,...DC(c,bl(c,o),o,a)}):c)])};PP({id:t.id,canvas:this.canvas,getViewportCoords:(a,s)=>{let{x:c,y:d}=to({sceneX:a,sceneY:s},this.state);return[c-this.state.offsetLeft,d-this.state.offsetTop]},onChange:Dt(a=>{i(a,!1),_v(t)&&hl(t,o)}),onSubmit:Dt(({viaKeyboard:a,nextOriginalText:s})=>{let c=!s.trim();if(i(s,c),!c&&a){let d=t.containerId?t.containerId:t.id;this.setState(p=>({selectedElementIds:gt({...p.selectedElementIds,[d]:!0},p)}))}c&&Np(this.scene.getNonDeletedElements(),[t]),(!c||r)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&_n(this.interactiveCanvas,this.state),this.focusContainer()}),element:t,excalidrawContainer:this.excalidrawContainerRef.current,app:this,autoSelect:!this.device.isTouchScreen}),this.deselectElements(),i(t.originalText,!1)}deselectElements(){this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(t,r){let o=this.getElementAtPosition(t,r,{includeBoundTextElement:!0});return o&&he(o)&&!o.isDeleted?o:null}getBoundTextShape(t){let r=Ve(t,this.scene.getNonDeletedElementsMap());return r?t.type==="arrow"?wi({...r,...Re.getBoundTextElementPosition(t,r,this.scene.getNonDeletedElementsMap())},this.scene.getNonDeletedElementsMap()):wi(r,this.scene.getNonDeletedElementsMap()):null}getElementAtPosition(t,r,o){let i=this.getElementsAtPosition(t,r,o?.includeBoundTextElement,o?.includeLockedElements);if(i.length>1){if(o?.preferSelected){for(let s=i.length-1;s>-1;s--)if(this.state.selectedElementIds[i[s].id])return i[s]}let a=i[i.length-1];return Rs({x:t,y:r,element:a,shape:wi(a,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()/2,frameNameBound:He(a)?this.frameNameBoundsCache.get(a):null})?a:i[i.length-2]}return i.length===1?i[0]:null}getElementsAtPosition(t,r,o=!1,i=!1){let a=[],s=this.scene.getNonDeletedElementsMap();return(o&&i?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(d=>(i||!d.locked)&&(o||!(he(d)&&d.containerId)))).filter(d=>this.hitElement(t,r,d)).filter(d=>{let p=lf(d,s);return p&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?bv({x:t,y:r},p,s):!0}).filter(d=>dl(d)?(a.push(d),!1):!0).concat(a)}getElementHitThreshold(){return TS/this.state.zoom.value}hitElement(t,r,o,i=!0){if(i&&this.state.selectedElementIds[o.id]&&pf([o],this.state)){let s=x2(o,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return b2([t,r],s)}return qT(t,r,this.getBoundTextShape(o))?!0:Rs({x:t,y:r,element:o,shape:wi(o,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold(),frameNameBound:He(o)?this.frameNameBoundsCache.get(o):null})}getTextBindableContainerAtPosition(t,r){let o=this.scene.getNonDeletedElements(),i=this.scene.getSelectedElements(this.state);if(i.length===1)return yi(i[0],!1)?i[0]:null;let a=null;for(let s=o.length-1;s>=0;--s){if(o[s].isDeleted)continue;let[c,d,p,f]=ho(o[s],this.scene.getNonDeletedElementsMap());if(Br(o[s])&&Rs({x:t,y:r,element:o[s],shape:wi(o[s],this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()})){a=o[s];break}else if(c<t&&t<p&&d<r&&r<f){a=o[s];break}}return yi(a,!1)?a:null}startTextEditing=({sceneX:t,sceneY:r,insertAtParentCenter:o=!0,container:i,autoEdit:a=!0})=>{let s=!1,c=o&&this.getTextWysiwygSnappedToCenterPosition(t,r,this.state,i);i&&c&&(Ve(i,this.scene.getNonDeletedElementsMap())||(s=!0));let d=null,p=this.scene.getSelectedElements(this.state);p.length===1?he(p[0])?d=p[0]:i?d=Ve(p[0],this.scene.getNonDeletedElementsMap()):d=this.getTextElementAtPosition(t,r):d=this.getTextElementAtPosition(t,r);let f=d?.fontFamily||this.state.currentItemFontFamily,m=d?.lineHeight||_i(f),g=this.state.currentItemFontSize;if(!d&&s&&i&&!Br(i)){let T=Hp(eo({fontSize:g,fontFamily:f}),m),k=zp(g,m),I=Math.max(i.height,k),A=Math.max(i.width,T);me(i,{height:I,width:A}),t=i.x+A/2,r=i.y+I/2,c&&(c=this.getTextWysiwygSnappedToCenterPosition(t,r,this.state,i))}let h=this.getTopLayerFrameAtSceneCoords({x:t,y:r}),b=d||ba({x:c?c.elementCenterX:t,y:c?c.elementCenterY:r,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,text:"",fontSize:g,fontFamily:f,textAlign:c?"center":this.state.currentItemTextAlign,verticalAlign:c?Ko.MIDDLE:yx,containerId:s?i?.id:void 0,groupIds:i?.groupIds??[],lineHeight:m,angle:i?.angle??0,frameId:h?h.id:null});if(!d&&s&&i&&me(i,{boundElements:(i.boundElements||[]).concat({type:"text",id:b.id})}),this.setState({editingElement:b}),!d)if(i&&s){let y=this.scene.getElementIndex(i.id);this.scene.insertElementAtIndex(b,y+1)}else this.scene.insertElement(b);a||d||i?this.handleTextWysiwyg(b,{isExistingElement:!!d}):this.setState({draggingElement:b,multiElement:null})};handleCanvasDoubleClick=t=>{if(this.state.multiElement||this.state.activeTool.type!=="selection")return;let r=this.scene.getSelectedElements(this.state);if(r.length===1&&Qe(r[0])&&t[R.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==r[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Re(r[0])});return}Jo(this.interactiveCanvas);let{x:o,y:i}=kt(t,this.state);if(In(this.state).length>0){let s=this.getElementAtPosition(o,i),c=s&&bC(s,this.state.selectedGroupIds);if(c){this.store.shouldCaptureIncrement(),this.setState(d=>({...d,...Mr({editingGroupId:c,selectedElementIds:{[s.id]:!0}},this.scene.getNonDeletedElements(),d,this)}));return}}if(Jo(this.interactiveCanvas),!t[R.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let s=this.getElementAtPosition(o,i);if(vs(s)){this.setState({activeEmbeddable:{element:s,state:"active"}});return}let c=this.getTextBindableContainerAtPosition(o,i);if(c&&(go(c)||!cl(c.backgroundColor)||Rs({x:o,y:i,element:c,shape:wi(c,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()}))){let d=Up(c,this.state,this.scene.getNonDeletedElementsMap());o=d.x,i=d.y}this.startTextEditing({sceneX:o,sceneY:i,insertAtParentCenter:!t.altKey,container:c})}};getElementLinkAtPosition=(t,r)=>{let o=this.scene.getNonDeletedElements().slice().reverse(),i=1/0;return o.find((a,s)=>(r&&a.id===r.id&&(i=s),a.link&&s<=i&&rf(a,this.scene.getNonDeletedElementsMap(),this.state,[t.x,t.y],this.device.editor.isMobile)))};redirectToLink=(t,r)=>{let o=pa(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||r&&o>tl||!r&&o!==0)return;let i=kt(this.lastPointerDownEvent,this.state),a=this.scene.getNonDeletedElementsMap(),s=rf(this.hitLinkElement,a,this.state,[i.x,i.y],this.device.editor.isMobile),c=kt(this.lastPointerUpEvent,this.state),d=rf(this.hitLinkElement,a,this.state,[c.x,c.y],this.device.editor.isMobile);if(s&&d){let p=this.hitLinkElement.link;if(p){p=Ci(p);let f;if(this.props.onLinkOpen&&(f=cp("excalidraw-link",t.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:p},f)),!f?.defaultPrevented){let m=Kp(p)?"_self":"_blank",g=window.open(void 0,m);g&&(g.opener=null,g.location=p)}}}};getTopLayerFrameAtSceneCoords=t=>{let r=this.scene.getNonDeletedElementsMap(),o=this.scene.getNonDeletedFramesLikes().filter(i=>bv(t,i,r));return o.length?o[o.length-1]:null};handleCanvasPointerMove=t=>{this.savePointer(t.clientX,t.clientY,this.state.cursorButton),this.lastPointerMoveEvent=t.nativeEvent,at.pointers.has(t.pointerId)&&at.pointers.set(t.pointerId,{x:t.clientX,y:t.clientY});let r=at.initialScale;if(at.pointers.size===2&&at.lastCenter&&r&&at.initialDistance){let g=C0(at.pointers),h=g.x-at.lastCenter.x,b=g.y-at.lastCenter.y;at.lastCenter=g;let y=I0(Array.from(at.pointers.values())),T=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:y/at.initialDistance,k=T?Ai(r*T):this.state.zoom.value;this.setState(I=>{let A=ki({viewportX:g.x,viewportY:g.y,nextZoom:k},I);this.translateCanvas({zoom:A.zoom,scrollX:A.scrollX+2*(h/k),scrollY:A.scrollY+2*(b/k),shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else at.lastCenter=at.initialDistance=at.initialScale=null;if(es||Zm||xE||Ti(this.state))return;let i=k0(vE,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(i?Jo(this.interactiveCanvas):_n(this.interactiveCanvas,this.state));let a=kt(t,this.state),{x:s,y:c}=a;if(!this.state.draggingElement&&sP(this.state.activeTool.type)){let{originOffset:g,snapLines:h}=lP(this.scene.getNonDeletedElements(),this.state,{x:s,y:c},t,this.scene.getNonDeletedElementsMap());this.setState(b=>{let y=mp(b.snapLines,h),T=b.originSnapOffset?mp(b.originSnapOffset,g):g;return b.snapLines===y&&b.originSnapOffset===T?null:{snapLines:y,originSnapOffset:T}})}else this.state.draggingElement||this.setState(g=>g.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let g=Re.handlePointerMove(t,s,c,this.state,this.scene.getNonDeletedElementsMap());g&&g!==this.state.editingLinearElement&&(0,zh.flushSync)(()=>{this.setState({editingLinearElement:g})}),g?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(a):(0,zh.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(s2(this.state.activeTool.type)){let{draggingElement:g}=this.state;vi(g,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(g,[a],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(a)}if(this.state.multiElement){let{multiElement:g}=this.state,{x:h,y:b}=g,{points:y,lastCommittedPoint:T}=g,k=y[y.length-1];if(_n(this.interactiveCanvas,this.state),k===T)pa(s-h,c-b,k[0],k[1])>=Vu?me(g,{points:[...y,[s-h,c-b]]}):pt(this.interactiveCanvas,ut.POINTER);else if(y.length>2&&T&&pa(s-h,c-b,T[0],T[1])<Vu)pt(this.interactiveCanvas,ut.POINTER),me(g,{points:y.slice(0,-1)});else{let[I,A]=ro(s,c,t[R.CTRL_OR_CMD]?null:this.state.gridSize),[O,z]=g?.lastCommittedPoint??[0,0],L=I-h-O,F=A-b-z;fp(t)&&({width:L,height:F}=yv(O+h,z+b,I,A)),_d(y,this.state.zoom.value)&&pt(this.interactiveCanvas,ut.POINTER),me(g,{points:[...y.slice(0,-1),[O+L,z+F]]})}return}if(!!t.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let p=this.scene.getNonDeletedElements(),f=this.scene.getSelectedElements(this.state);if(f.length===1&&!i&&!this.state.editingLinearElement){if(this.state.selectedLinearElement&&this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c),!this.state.selectedLinearElement||this.state.selectedLinearElement.hoverPointIndex===-1){let g=Ev(p,this.state,s,c,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(g&&g.transformHandleType){pt(this.interactiveCanvas,Sv(g));return}}}else if(f.length>1&&!i){let g=wv(lt(f),s,c,this.state.zoom,t.pointerType,this.device);if(g){pt(this.interactiveCanvas,Sv({transformHandleType:g}));return}}let m=this.getElementAtPosition(a.x,a.y);this.hitLinkElement=this.getElementLinkAtPosition(a,m),!jo(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(pt(this.interactiveCanvas,ut.POINTER),Nk(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(Ok(),m&&(m.link||Fr(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?pt(this.interactiveCanvas,he(m)?ut.TEXT:ut.CROSSHAIR):this.state.viewModeEnabled?pt(this.interactiveCanvas,ut.GRAB):i?pt(this.interactiveCanvas,ut.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c):t[R.CTRL_OR_CMD]?pt(this.interactiveCanvas,ut.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(a,f))&&!m?.locked&&(m&&vs(m)&&this.isIframeLikeElementCenter(m,t,s,c)?(pt(this.interactiveCanvas,ut.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(pt(this.interactiveCanvas,ut.MOVE),this.state.activeEmbeddable?.state==="hover"&&this.setState({activeEmbeddable:null})))))};handleEraser=(t,r,o)=>{this.eraserTrail.addPointToPath(o.x,o.y);let i=!1,a=new Set,s=this.scene.getNonDeletedElements(),c=g=>{for(let h of g){if(h.locked)return;if(t.altKey?this.elementsPendingErasure.delete(h.id)&&(i=!0):this.elementsPendingErasure.has(h.id)||(i=!0,this.elementsPendingErasure.add(h.id)),i&&h.groupIds?.length){let b=h.groupIds.at(-1);if(!a.has(b)){a.add(b);let y=Gt(s,b);for(let T of y)t.altKey?this.elementsPendingErasure.delete(T.id):this.elementsPendingErasure.add(T.id)}}}},d=pa(r.lastCoords.x,r.lastCoords.y,o.x,o.y),p=this.getElementHitThreshold(),f={...r.lastCoords},m=0;for(;m<=d;){let g=this.getElementsAtPosition(f.x,f.y);if(c(g),m===d)break;m=Math.min(m+p,d);let h=m/d,b=(1-h)*f.x+h*o.x,y=(1-h)*f.y+h*o.y;f.x=b,f.y=y}if(r.lastCoords.x=o.x,r.lastCoords.y=o.y,i){for(let g of this.scene.getNonDeletedElements())Sr(g)&&(this.elementsPendingErasure.has(g.id)||this.elementsPendingErasure.has(g.containerId))&&(t.altKey?(this.elementsPendingErasure.delete(g.id),this.elementsPendingErasure.delete(g.containerId)):(this.elementsPendingErasure.add(g.id),this.elementsPendingErasure.add(g.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.triggerRender()}};handleTouchMove=t=>{qm=!0};handleHoverSelectedLinearElement(t,r,o){let i=this.scene.getNonDeletedElementsMap(),a=Re.getElement(t.elementId,i);if(a)if(this.state.selectedLinearElement){let s=-1,c=null;Rs({x:r,y:o,element:a,shape:wi(a,this.scene.getNonDeletedElementsMap())})?(s=Re.getPointIndexUnderCursor(a,i,this.state.zoom,r,o),c=Re.getSegmentMidpointHitCoords(t,{x:r,y:o},this.state,this.scene.getNonDeletedElementsMap()),s>=0||c?pt(this.interactiveCanvas,ut.POINTER):this.hitElement(r,o,a)&&pt(this.interactiveCanvas,ut.MOVE)):this.hitElement(r,o,a)&&pt(this.interactiveCanvas,ut.MOVE),this.state.selectedLinearElement.hoverPointIndex!==s&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:s}}),Re.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,c)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:c}})}else pt(this.interactiveCanvas,ut.AUTO)}handleCanvasPointerDown=t=>{if(this.maybeCleanupAfterMissingPointerUp(t.nativeEvent),this.maybeUnfollowRemoteUser(),this.state.contextMenu&&this.setState({contextMenu:null}),this.state.snapLines&&this.setAppState({snapLines:[]}),this.updateGestureOnPointerDown(t),t.pointerType==="touch"&&this.state.draggingElement&&this.state.draggingElement.type==="freedraw"){let p=this.state.draggingElement;this.updateScene({...p.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==p.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:gt(Object.keys(this.state.selectedElementIds).filter(f=>f!==p.id).reduce((f,m)=>(f[m]=this.state.selectedElementIds[m],f),{}),this.state)},storeAction:W.UPDATE});return}let r=document.getSelection();if(r?.anchorNode&&r.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(t),!this.state.penDetected&&t.pointerType==="pen"&&this.setState(p=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(t.pointerType)&&(this.device=bs(this.device,{isTouchScreen:!0})),Zm||(this.lastPointerDownEvent=t,this.handleCanvasPanUsingWheelOrSpaceDrag(t)))return;if(this.setState({lastPointerDownWith:t.pointerType,cursorButton:"down"}),this.savePointer(t.clientX,t.clientY,"down"),t.button===aa.ERASER&&this.state.activeTool.type!==Vt.eraser){this.setState({activeTool:Ht(this.state,{type:Vt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(t);let p=()=>{f(),m?.(),jo(this.state)&&this.setState({activeTool:Ht(this.state,{...this.state.activeTool.lastActiveTool||{type:Vt.selection},lastActiveToolBeforeEraser:null})})},f=Ut(window,"pointerup",p,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(p)})});return}if(t.button!==aa.MAIN&&t.button!==aa.TOUCH&&t.button!==aa.ERASER||at.pointers.size>1)return;let o=this.initialPointerDownState(t);if(this.setState({selectedElementsAreBeingDragged:!1}),this.handleDraggingScrollBar(t,o)||(this.clearSelectionIfNotUsingSelection(),this.updateBindingEnabledOnPointerMove(t),this.handleSelectionOnPointerDown(t,o))||!(!this.state.penMode||t.pointerType!=="touch"||this.state.activeTool.type==="selection"||this.state.activeTool.type==="text"||this.state.activeTool.type==="image"))return;if(this.state.activeTool.type==="text")this.handleTextOnPointerDown(t,o);else if(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")this.handleLinearElementOnPointerDown(t,this.state.activeTool.type,o);else if(this.state.activeTool.type==="image"){pt(this.interactiveCanvas,ut.CROSSHAIR);let p=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!p)return;this.setState({draggingElement:p,editingElement:p,pendingImageElementId:null,multiElement:null});let{x:f,y:m}=kt(t,this.state),g=this.getTopLayerFrameAtSceneCoords({x:f,y:m});me(p,{x:f,y:m,frameId:g?g.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(t,this.state.activeTool.type,o):this.state.activeTool.type==="custom"?_n(this.interactiveCanvas,this.state):this.state.activeTool.type===Vt.frame||this.state.activeTool.type===Vt.magicframe?this.createFrameElementOnPointerDown(o,this.state.activeTool.type):this.state.activeTool.type==="laser"?this.laserTrails.startPath(o.lastCoords.x,o.lastCoords.y):this.state.activeTool.type!=="eraser"&&this.state.activeTool.type!=="hand"&&this.createGenericElementOnPointerDown(this.state.activeTool.type,o);this.props?.onPointerDown?.(this.state.activeTool,o),this.onPointerDownEmitter.trigger(this.state.activeTool,o,t),this.state.activeTool.type==="eraser"&&this.eraserTrail.startPath(o.lastCoords.x,o.lastCoords.y);let a=this.onPointerMoveFromPointerDownHandler(o),s=this.onPointerUpFromPointerDownHandler(o),c=this.onKeyDownFromPointerDownHandler(o),d=this.onKeyUpFromPointerDownHandler(o);this.missingPointerEventCleanupEmitter.once(p=>s(p||t.nativeEvent)),(!this.state.viewModeEnabled||this.state.activeTool.type==="laser")&&(window.addEventListener("pointermove",a),window.addEventListener("pointerup",s),window.addEventListener("keydown",c),window.addEventListener("keyup",d),o.eventListeners.onMove=a,o.eventListeners.onUp=s,o.eventListeners.onKeyUp=d,o.eventListeners.onKeyDown=c)};handleCanvasPointerUp=t=>{this.removePointer(t),this.lastPointerUpEvent=t;let r=kt({clientX:t.clientX,clientY:t.clientY},this.state),o=t.timeStamp-(this.lastPointerDownEvent?.timeStamp??0);if(this.device.editor.isMobile&&o<300){let i=this.getElementAtPosition(r.x,r.y);if(vs(i)&&this.isIframeLikeElementCenter(i,t,r.x,r.y)){this.handleEmbeddableCenterClick(i);return}}if(this.device.isTouchScreen){let i=this.getElementAtPosition(r.x,r.y);this.hitLinkElement=this.getElementLinkAtPosition(r,i)}this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?o<300&&vs(this.hitLinkElement)&&!GC(this.hitLinkElement,this.scene.getNonDeletedElementsMap(),this.state,[r.x,r.y])?this.handleEmbeddableCenterClick(this.hitLinkElement):this.redirectToLink(t,this.device.isTouchScreen):this.state.viewModeEnabled&&this.setState({activeEmbeddable:null,selectedElementIds:{}})};maybeOpenContextMenuAfterPointerDownOnTouchDevices=t=>{t.pointerType==="touch"&&(qm=!1,Ha?qm=!0:Ha=window.setTimeout(()=>{Ha=0,qm||this.handleCanvasContextMenu(t)},LS))};resetContextMenuTimer=()=>{clearTimeout(Ha),Ha=0,qm=!1};maybeCleanupAfterMissingPointerUp=t=>{jm?.(),this.missingPointerEventCleanupEmitter.trigger(t).clear()};handleCanvasPanUsingWheelOrSpaceDrag=t=>{if(!(at.pointers.size<=1&&(t.button===aa.WHEEL||t.button===aa.MAIN&&es||Ti(this.state)||this.state.viewModeEnabled))||he(this.state.editingElement))return!1;Zm=!0,t.preventDefault();let r=!1,o=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);pt(this.interactiveCanvas,ut.GRABBING);let{clientX:i,clientY:a}=t,s=Mh(d=>{let p=i-d.clientX,f=a-d.clientY;if(i=d.clientX,a=d.clientY,o&&!r&&(Math.abs(p)>1||Math.abs(f)>1)){r=!0;let m=h=>{document.body.removeEventListener("paste",m),h.stopPropagation()},g=()=>{setTimeout(()=>{document.body.removeEventListener("paste",m),window.removeEventListener("pointerup",g)},100)};document.body.addEventListener("paste",m),window.addEventListener("pointerup",g)}this.translateCanvas({scrollX:this.state.scrollX-p/this.state.zoom.value,scrollY:this.state.scrollY-f/this.state.zoom.value})}),c=Dt(jm=()=>{jm=null,Zm=!1,es||(this.state.viewModeEnabled?pt(this.interactiveCanvas,ut.GRAB):_n(this.interactiveCanvas,this.state)),this.setState({cursorButton:"up"}),this.savePointer(t.clientX,t.clientY,"up"),window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",c),window.removeEventListener("blur",c),s.flush()});return window.addEventListener("blur",c),window.addEventListener("pointermove",s,{passive:!0}),window.addEventListener("pointerup",c),!0};updateGestureOnPointerDown(t){at.pointers.set(t.pointerId,{x:t.clientX,y:t.clientY}),at.pointers.size===2&&(at.lastCenter=C0(at.pointers),at.initialScale=this.state.zoom.value,at.initialDistance=I0(Array.from(at.pointers.values())))}initialPointerDownState(t){let r=kt(t,this.state),o=this.scene.getSelectedElements(this.state),[i,a,s,c]=lt(o);return{origin:r,withCmdOrCtrl:t[R.CTRL_OR_CMD],originInGrid:Ed(ro(r.x,r.y,t[R.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:k0(vE,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop),lastCoords:{...r},originalElements:this.scene.getNonDeletedElements().reduce((d,p)=>(d.set(p.id,Bs(p)),d),new Map),resize:{handleType:!1,isResizing:!1,offset:{x:0,y:0},arrowDirection:"origin",center:{x:(s+i)/2,y:(c+a)/2}},hit:{element:null,allHitElements:[],wasAddedToSelection:!1,hasBeenDuplicated:!1,hasHitCommonBoundingBoxOfSelectedElements:this.isHittingCommonBoundingBoxOfSelectedElements(r,o)},drag:{hasOccurred:!1,offset:null},eventListeners:{onMove:null,onUp:null,onKeyUp:null,onKeyDown:null},boxSelection:{hasOccurred:!1}}}handleDraggingScrollBar(t,r){if(!(r.scrollbars.isOverEither&&!this.state.multiElement))return!1;xE=!0,r.lastCoords.x=t.clientX,r.lastCoords.y=t.clientY;let o=Mh(a=>{a.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(a,r)}),i=Dt(()=>{jm=null,xE=!1,_n(this.interactiveCanvas,this.state),this.setState({cursorButton:"up"}),this.savePointer(t.clientX,t.clientY,"up"),window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",i),o.flush()});return jm=i,window.addEventListener("pointermove",o),window.addEventListener("pointerup",i),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})};handleSelectionOnPointerDown=(t,r)=>{if(this.state.activeTool.type==="selection"){let o=this.scene.getNonDeletedElements(),i=this.scene.getNonDeletedElementsMap(),a=this.scene.getSelectedElements(this.state);if(a.length===1&&!this.state.editingLinearElement&&!(this.state.selectedLinearElement&&this.state.selectedLinearElement.hoverPointIndex!==-1)){let s=Ev(o,this.state,r.origin.x,r.origin.y,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);s!=null&&(this.setState({resizingElement:s.element}),r.resize.handleType=s.transformHandleType)}else a.length>1&&(r.resize.handleType=wv(lt(a),r.origin.x,r.origin.y,this.state.zoom,t.pointerType,this.device));if(r.resize.handleType)r.resize.isResizing=!0,r.resize.offset=Ed(hI(r.resize.handleType,a,i,r.origin.x,r.origin.y)),a.length===1&&Qe(a[0])&&a[0].points.length===2&&(r.resize.arrowDirection=bI(r.resize.handleType,a[0]));else{if(this.state.selectedLinearElement){let d=this.state.editingLinearElement||this.state.selectedLinearElement,p=Re.handlePointerDown(t,this.state,this.store,r.origin,d,this);if(p.hitElement&&(r.hit.element=p.hitElement),p.linearElementEditor&&(this.setState({selectedLinearElement:p.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:p.linearElementEditor})),p.didAddPoint)return!0}if(r.hit.element=r.hit.element??this.getElementAtPosition(r.origin.x,r.origin.y),r.hit.element&&this.getElementLinkAtPosition({x:r.origin.x,y:r.origin.y},r.hit.element))return!1;r.hit.allHitElements=this.getElementsAtPosition(r.origin.x,r.origin.y);let s=r.hit.element,c=r.hit.allHitElements.some(d=>this.isASelectedElement(d));if((s===null||!c)&&!t.shiftKey&&!r.hit.hasHitCommonBoundingBoxOfSelectedElements&&this.clearSelection(s),this.state.editingLinearElement)this.setState({selectedElementIds:gt({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(s!=null){if(t[R.CTRL_OR_CMD])return this.state.selectedElementIds[s.id]||(r.hit.wasAddedToSelection=!0),this.setState(d=>({...hC(d,s),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[s.id]||(this.state.editingGroupId&&!Os(s,this.state.editingGroupId)&&this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!c&&!r.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(d=>{let p={...d.selectedElementIds,[s.id]:!0},f=[];if(Object.keys(d.selectedElementIds).forEach(m=>{let g=this.scene.getElement(m);g&&f.push(g)}),He(s))xa(f,s.id).forEach(m=>{delete p[m.id]});else if(s.frameId)p[s.frameId]&&delete p[s.id];else{let m=s.groupIds,g=new Set(m.flatMap(h=>Gt(this.scene.getNonDeletedElements(),h)).filter(h=>He(h)).map(h=>h.id));g.size>0&&f.forEach(h=>{h.frameId&&g.has(h.frameId)&&(delete p[h.id],h.groupIds.flatMap(b=>Gt(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete p[b.id]}))})}return{...Mr({editingGroupId:d.editingGroupId,selectedElementIds:p},this.scene.getNonDeletedElements(),d,this),showHyperlinkPopup:s.link||Fr(s)?"info":!1}}),r.hit.wasAddedToSelection=!0))}this.setState({previousSelectedElementIds:this.state.selectedElementIds})}}return!1};isASelectedElement(t){return t!=null&&this.state.selectedElementIds[t.id]}isHittingCommonBoundingBoxOfSelectedElements(t,r){if(r.length<2)return!1;let o=this.getElementHitThreshold(),[i,a,s,c]=lt(r);return t.x>i-o&&t.x<s+o&&t.y>a-o&&t.y<c+o}handleTextOnPointerDown=(t,r)=>{if(he(this.state.editingElement))return;let o=r.origin.x,i=r.origin.y,a=this.getElementAtPosition(o,i,{includeBoundTextElement:!0}),s=this.getTextBindableContainerAtPosition(o,i);go(a)&&(s=a,o=a.x+a.width/2,i=a.y+a.height/2),this.startTextEditing({sceneX:o,sceneY:i,insertAtParentCenter:!t.altKey,container:s,autoEdit:!1}),Jo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:Ht(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(t,r,o)=>{let[i,a]=ro(o.origin.x,o.origin.y,null),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),c=NC({type:r,x:i,y:a,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:null,simulatePressure:t.pressure===.5,locked:!1,frameId:s?s.id:null});this.setState(f=>{let m={...f.selectedElementIds};return delete m[c.id],{selectedElementIds:gt(m,f)}});let d=c.simulatePressure?c.pressures:[...c.pressures,t.pressure];me(c,{points:[[0,0]],pressures:d});let p=Fd(o.origin,this.scene.getNonDeletedElementsMap());this.scene.insertElement(c),this.setState({draggingElement:c,editingElement:c,startBoundElement:p,suggestedBindings:[]})};insertIframeElement=({sceneX:t,sceneY:r,width:o,height:i})=>{let[a,s]=ro(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),c=RC({type:"iframe",x:a,y:s,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("iframe"),opacity:this.state.currentItemOpacity,locked:!1,width:o,height:i});return this.scene.insertElement(c),c};insertEmbeddableElement=({sceneX:t,sceneY:r,link:o})=>{let[i,a]=ro(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=yl(o);if(!s)return;s.error instanceof URIError&&this.setToast({message:E("toast.unrecognizedLinkFormat"),closable:!0});let c=pv({type:"embeddable",x:i,y:a,strokeColor:"transparent",backgroundColor:"transparent",fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:this.getCurrentItemRoundness("embeddable"),opacity:this.state.currentItemOpacity,locked:!1,width:s.intrinsicSize.w,height:s.intrinsicSize.h,link:o});return this.scene.insertElement(c),c};createImageElement=({sceneX:t,sceneY:r,addToFrameUnderCursor:o=!0})=>{let[i,a]=ro(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=o?this.getTopLayerFrameAtSceneCoords({x:i,y:a}):null;return Qp({type:"image",x:i,y:a,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,roundness:null,opacity:this.state.currentItemOpacity,locked:!1,frameId:s?s.id:null})};handleLinearElementOnPointerDown=(t,r,o)=>{if(this.state.multiElement){let{multiElement:i}=this.state;if(i.type==="line"&&_d(i.points,this.state.zoom.value)){me(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(nn);return}let{x:a,y:s,lastCommittedPoint:c}=i;if(i.points.length>1&&c&&pa(o.origin.x-a,o.origin.y-s,c[0],c[1])<Vu){this.actionManager.executeAction(nn);return}this.setState(d=>({selectedElementIds:gt({...d.selectedElementIds,[i.id]:!0},d)})),me(i,{lastCommittedPoint:i.points[i.points.length-1]}),pt(this.interactiveCanvas,ut.POINTER)}else{let[i,a]=ro(o.origin.x,o.origin.y,t[R.CTRL_OR_CMD]?null:this.state.gridSize),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),{currentItemStartArrowhead:c,currentItemEndArrowhead:d}=this.state,[p,f]=r==="arrow"?[c,d]:[null,null],m=Wd({type:r,x:i,y:a,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.state.currentItemRoundness==="round"?{type:Yo.PROPORTIONAL_RADIUS}:null,startArrowhead:p,endArrowhead:f,locked:!1,frameId:s?s.id:null});this.setState(h=>{let b={...h.selectedElementIds};return delete b[m.id],{selectedElementIds:gt(b,h)}}),me(m,{points:[...m.points,[0,0]]});let g=Fd(o.origin,this.scene.getNonDeletedElementsMap());this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:g,suggestedBindings:[]})}};getCurrentItemRoundness(t){return this.state.currentItemRoundness==="round"?{type:ys(t)?Yo.ADAPTIVE_RADIUS:Yo.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(t,r)=>{let[o,i]=ro(r.origin.x,r.origin.y,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:o,y:i}),s={x:o,y:i,strokeColor:this.state.currentItemStrokeColor,backgroundColor:this.state.currentItemBackgroundColor,fillStyle:this.state.currentItemFillStyle,strokeWidth:this.state.currentItemStrokeWidth,strokeStyle:this.state.currentItemStrokeStyle,roughness:this.state.currentItemRoughness,opacity:this.state.currentItemOpacity,roundness:this.getCurrentItemRoundness(t),locked:!1,frameId:a?a.id:null},c;t==="embeddable"?c=pv({type:"embeddable",...s}):c=ha({type:t,...s}),c.type==="selection"?this.setState({selectionElement:c,draggingElement:c}):(this.scene.insertElement(c),this.setState({multiElement:null,draggingElement:c,editingElement:c}))};createFrameElementOnPointerDown=(t,r)=>{let[o,i]=ro(t.origin.x,t.origin.y,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),a={x:o,y:i,opacity:this.state.currentItemOpacity,locked:!1,...wn},s=r===Vt.magicframe?Gd(a):Jp(a);this.scene.insertElement(s),this.setState({multiElement:null,draggingElement:s,editingElement:s})};maybeCacheReferenceSnapPoints(t,r,o=!1){Vi({event:t,appState:this.state,selectedElements:r})&&(o||!un.getReferenceSnapPoints())&&un.setReferenceSnapPoints(oP(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(t,r,o=!1){Vi({event:t,appState:this.state,selectedElements:r})&&(o||!un.getVisibleGaps())&&un.setVisibleGaps(rP(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(t){return Dt(r=>{this.maybeHandleResize(t,r)||this.maybeDragNewGenericElement(t,r)})}onKeyUpFromPointerDownHandler(t){return Dt(r=>{r.key===R.ALT&&r.preventDefault(),!this.maybeHandleResize(t,r)&&this.maybeDragNewGenericElement(t,r)})}onPointerMoveFromPointerDownHandler(t){return Mh(r=>{if(t.drag.offset===null&&(t.drag.offset=Ed(vI(this.scene.getSelectedElements(this.state),t.origin.x,t.origin.y))),!(r.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(r,t))return;let i=kt(r,this.state);if(jo(this.state)){this.handleEraser(r,t,i);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(i.x,i.y);let[a,s]=ro(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize);if(!t.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&pa(i.x,i.y,t.origin.x,t.origin.y)<tl)return;if(t.resize.isResizing&&(t.lastCoords.x=i.x,t.lastCoords.y=i.y,this.maybeHandleResize(t,r)))return!0;let c=this.scene.getNonDeletedElementsMap();if(this.state.selectedLinearElement){let m=this.state.editingLinearElement||this.state.selectedLinearElement;if(Re.shouldAddMidpoint(this.state.selectedLinearElement,i,this.state,c)){let h=Re.addMidpoint(this.state.selectedLinearElement,i,this.state,!r[R.CTRL_OR_CMD],c);if(!h)return;(0,zh.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:h.pointerDownState,selectedPointsIndices:h.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:h.pointerDownState,selectedPointsIndices:h.selectedPointsIndices}})});return}else if(m.pointerDownState.segmentMidpoint.value!==null&&!m.pointerDownState.segmentMidpoint.added)return;if(Re.handlePointDragging(r,this.state,i.x,i.y,(h,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(h,b)},m,this.scene.getNonDeletedElementsMap())){t.lastCoords.x=i.x,t.lastCoords.y=i.y,t.drag.hasOccurred=!0,this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging&&this.setState({editingLinearElement:{...this.state.editingLinearElement,isDragging:!0}}),this.state.selectedLinearElement.isDragging||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,isDragging:!0}});return}}let d=t.hit.allHitElements.some(m=>this.isASelectedElement(m)),p=this.state.editingLinearElement&&r.shiftKey&&this.state.editingLinearElement.elementId===t.hit.element?.id;if((d||t.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!p){let m=this.scene.getSelectedElements(this.state);if(m.every(b=>b.locked))return;let g=m.find(b=>He(b)),h=this.getTopLayerFrameAtSceneCoords(i);if(this.setState({frameToHighlight:h&&!g?h:null}),t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),m.length>0&&!t.withCmdOrCtrl&&!this.state.editingElement&&this.state.activeEmbeddable?.state!=="active"){let b={x:i.x-t.origin.x,y:i.y-t.origin.y},y=[...t.originalElements.values()],T=r.shiftKey;if(T){let A=Math.abs(b.x),O=Math.abs(b.y),z=T&&A<O,L=T&&A>O;z&&(b.x=0),L&&(b.y=0)}this.maybeCacheVisibleGaps(r,m),this.maybeCacheReferenceSnapPoints(r,m);let{snapOffset:k,snapLines:I}=nP(y,b,this.state,r,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:I}),!this.state.editingFrame&&xI(t,m,b,this.state,this.scene,k,r[R.CTRL_OR_CMD]?null:this.state.gridSize),this.setState({suggestedBindings:Rp(m,this.scene.getNonDeletedElementsMap())}),r.altKey&&!t.hit.hasBeenDuplicated){t.hit.hasBeenDuplicated=!0;let A=[],O=[],z=new Map,L=new Map,F=t.hit.element,D=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(Q=>Q.id)),V=this.scene.getElementsIncludingDeleted();for(let Q of V)if(D.has(Q.id)||Q.id===F?.id&&t.hit.wasAddedToSelection){let de=ef(this.state.editingGroupId,z,Q),K=t.originalElements.get(Q.id);me(de,{x:K.x,y:K.y}),t.originalElements.set(de.id,de),A.push(de),O.push(Q),L.set(Q.id,de.id)}else A.push(Q);let G=[...A,...O];Po(G,Le(O)),Op(A,O,L),Dp(G,O,L,"duplicatesServeAsOld"),af(G,O,L),this.scene.replaceAllElements(G),this.maybeCacheVisibleGaps(r,m,!0),this.maybeCacheReferenceSnapPoints(r,m,!0)}return}}let f=this.state.draggingElement;if(f){if(f.type==="freedraw"){let m=f.points,g=i.x-f.x,h=i.y-f.y,b=m.length>0&&m[m.length-1];if(!(b&&b[0]===g&&b[1]===h)){let T=f.simulatePressure?f.pressures:[...f.pressures,r.pressure];me(f,{points:[...m,[g,h]],pressures:T})}}else if(Qe(f)){t.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let m=f.points,g=a-f.x,h=s-f.y;fp(r)&&m.length===2&&({width:g,height:h}=yv(f.x,f.y,i.x,i.y)),m.length===1?me(f,{points:[...m,[g,h]]}):m.length===2&&me(f,{points:[...m.slice(0,-1),[g,h]]}),vi(f,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(f,[i],this.state.startBoundElement)}else t.lastCoords.x=i.x,t.lastCoords.y=i.y,this.maybeDragNewGenericElement(t,r);if(this.state.activeTool.type==="selection"){t.boxSelection.hasOccurred=!0;let m=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)Re.handleBoxSelection(r,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let g=!0;!r.shiftKey&&ft(m,this.state)&&(t.withCmdOrCtrl&&t.hit.element?this.setState(b=>Mr({...b,selectedElementIds:{[t.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):g=!1);let h=yI(m,f,this.scene.getNonDeletedElementsMap());this.setState(b=>{let y={...g&&b.selectedElementIds,...h.reduce((T,k)=>(T[k.id]=!0,T),{})};return t.hit.element&&(h.length?delete y[t.hit.element.id]:y[t.hit.element.id]=!0),b=g?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Mr({editingGroupId:b.editingGroupId,selectedElementIds:y},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:h.length===1&&Qe(h[0])?new Re(h[0]):null,showHyperlinkPopup:h.length===1&&(h[0].link||Fr(h[0]))?"info":!1}})}}}})}handlePointerMoveOverScrollbars(t,r){if(r.scrollbars.isOverHorizontal){let o=t.clientX,i=o-r.lastCoords.x;return this.translateCanvas({scrollX:this.state.scrollX-i/this.state.zoom.value}),r.lastCoords.x=o,!0}if(r.scrollbars.isOverVertical){let o=t.clientY,i=o-r.lastCoords.y;return this.translateCanvas({scrollY:this.state.scrollY-i/this.state.zoom.value}),r.lastCoords.y=o,!0}return!1}onPointerUpFromPointerDownHandler(t){return Dt(r=>{this.removePointer(r),t.eventListeners.onMove&&t.eventListeners.onMove.flush();let{draggingElement:o,resizingElement:i,multiElement:a,activeTool:s,isResizing:c,isRotating:d}=this.state;this.setState(h=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:a||he(this.state.editingElement)?this.state.editingElement:null,snapLines:mp(h.snapLines,[]),originSnapOffset:null})),un.setReferenceSnapPoints(null),un.setVisibleGaps(null),this.savePointer(r.clientX,r.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let p=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!t.boxSelection.hasOccurred&&t.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(nn);else{let h=Re.handlePointerUp(r,this.state.editingLinearElement,this.state,this);h!==this.state.editingLinearElement&&this.setState({editingLinearElement:h,suggestedBindings:[]})}else if(this.state.selectedLinearElement)if(t.hit?.element?.id!==this.state.selectedLinearElement.elementId)this.scene.getSelectedElements(this.state).length>1&&this.setState({selectedLinearElement:null});else{let h=Re.handlePointerUp(r,this.state.selectedLinearElement,this.state,this),{startBindingElement:b,endBindingElement:y}=h,T=this.scene.getElement(h.elementId);vi(T)&&Lp(T,b,y,p),h!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...h,selectedPointsIndices:null},suggestedBindings:[]})}if(this.missingPointerEventCleanupEmitter.clear(),window.removeEventListener("pointermove",t.eventListeners.onMove),window.removeEventListener("pointerup",t.eventListeners.onUp),window.removeEventListener("keydown",t.eventListeners.onKeyDown),window.removeEventListener("keyup",t.eventListeners.onKeyUp),this.state.pendingImageElementId&&this.setState({pendingImageElementId:null}),this.props?.onPointerUp?.(s,t),this.onPointerUpEmitter.trigger(this.state.activeTool,t,r),o?.type==="freedraw"){let h=kt(r,this.state),b=o.points,y=h.x-o.x,T=h.y-o.y;y===b[0][0]&&T===b[0][1]&&(T+=1e-4,y+=1e-4);let k=o.simulatePressure?[]:[...o.pressures,r.pressure];me(o,{points:[...b,[y,T]],pressures:k,lastCommittedPoint:[y,T]}),this.actionManager.executeAction(nn);return}if(da(o)){let h=o;try{this.initializeImageDimensions(h),this.setState({selectedElementIds:gt({[h.id]:!0},this.state)},()=>{this.actionManager.executeAction(nn)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(y=>y.id!==h.id)),this.actionManager.executeAction(nn)}return}if(Qe(o)){o.points.length>1&&this.store.shouldCaptureIncrement();let h=kt(r,this.state);!t.drag.hasOccurred&&o&&!a?(me(o,{points:[...o.points,[h.x-o.x,h.y-o.y]]}),this.setState({multiElement:o,editingElement:this.state.draggingElement})):t.drag.hasOccurred&&!a&&(fl(this.state)&&vi(o,!1)&&Od(o,this.state,h,this.scene.getNonDeletedElementsMap()),this.setState({suggestedBindings:[],startBoundElement:null}),s.locked?this.setState(b=>({draggingElement:null})):(Jo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:Ht(this.state,{type:"selection"}),selectedElementIds:gt({...b.selectedElementIds,[o.id]:!0},b),selectedLinearElement:new Re(o)}))));return}if(he(o)){let h=uC(eo({fontSize:o.fontSize,fontFamily:o.fontFamily}),o.lineHeight);o.width<h&&me(o,{autoResize:!0}),this.resetCursor(),this.handleTextWysiwyg(o,{isExistingElement:!0})}if(s.type!=="selection"&&o&&wl(o)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==o.id),appState:{draggingElement:null},storeAction:W.UPDATE});return}if(o){if(t.drag.hasOccurred){let h=kt(r,this.state);if(this.state.selectedLinearElement&&this.state.selectedLinearElement.isDragging){let b=this.scene.getElement(this.state.selectedLinearElement.elementId);if(b?.frameId){let y=lf(b,p);y&&b&&(tI(b,y,this.scene.getNonDeletedElementsMap())||(me(b,{groupIds:[]}),cf([b],this.scene.getNonDeletedElementsMap()),this.scene.triggerUpdate()))}}else{let b=this.getTopLayerFrameAtSceneCoords(h),y=this.scene.getSelectedElements(this.state),T=this.scene.getElementsMapIncludingDeleted(),k=I=>{if(I.length>0){for(let A of I){let O=A.groupIds.indexOf(this.state.editingGroupId);me(A,{groupIds:A.groupIds.slice(0,O)},!1)}T.forEach(A=>{A.groupIds.length&&Gt(T,A.groupIds[A.groupIds.length-1]).length<2&&me(A,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let I=y.filter(A=>A.frameId!==b.id&&xv(A,T,this.state));this.state.editingGroupId&&k(I),T=sf(T,I,b)}else if(!b&&this.state.editingGroupId){let I=y.filter(A=>A.frameId&&!xv(A,T,this.state));k(I)}T=Kn(T,this.state,this),this.scene.replaceAllElements(T)}}if(He(o)){let h=nI(this.scene.getElementsIncludingDeleted(),o,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(sf(this.scene.getElementsMapIncludingDeleted(),h,o))}me(o,dI(o))}if(i&&this.store.shouldCaptureIncrement(),i&&wl(i)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==i.id),storeAction:W.UPDATE}),t.resize.isResizing){let h=Kn(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(y=>He(y));for(let y of b)h=df(h,Us(this.scene.getElementsIncludingDeleted(),y,this.state,p),y,this);this.scene.replaceAllElements(h)}let f=t.hit.element;this.state.selectedLinearElement?.elementId!==f?.id&&Qe(f)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new Re(f)});let m=this.lastPointerDownEvent,g=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(jo(this.state)&&m&&g){if(this.eraserTrail.endPath(),pa(m.clientX,m.clientY,g.clientX,g.clientY)===0){let b=kt({clientX:g.clientX,clientY:g.clientY},this.state);this.getElementsAtPosition(b.x,b.y).forEach(T=>this.elementsPendingErasure.add(T.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(f&&!t.drag.hasOccurred&&!t.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!t.boxSelection.hasOccurred)&&(r.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[f.id]?Wp(this.state,f)?this.setState(h=>{let b={...h.selectedElementIds};for(let y of f.groupIds.flatMap(T=>Gt(this.scene.getNonDeletedElements(),T)))delete b[y.id];return{selectedGroupIds:{...h.selectedElementIds,...f.groupIds.map(y=>({[y]:!1})).reduce((y,T)=>({...y,...T}),{})},selectedElementIds:gt(b,h)}}):this.state.selectedLinearElement?.isDragging||this.setState(h=>{let b={...h.selectedElementIds};delete b[f.id];let y=Oe(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Mr({editingGroupId:h.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:y.length===1&&Qe(y[0])?new Re(y[0]):h.selectedLinearElement}}):f.frameId&&this.state.selectedElementIds[f.frameId]?this.setState(h=>{let b={...h.selectedElementIds,[f.id]:!0};return delete b[f.frameId],(this.scene.getElement(f.frameId)?.groupIds??[]).flatMap(y=>Gt(this.scene.getNonDeletedElements(),y)).forEach(y=>{delete b[y.id]}),{...Mr({editingGroupId:h.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),h,this),showHyperlinkPopup:f.link||Fr(f)?"info":!1}}):this.setState(h=>({selectedElementIds:gt({...h.selectedElementIds,[f.id]:!0},h)})):this.setState(h=>({...Mr({editingGroupId:h.editingGroupId,selectedElementIds:{[f.id]:!0}},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:Qe(f)&&h.selectedLinearElement?.elementId!==f.id?new Re(f):h.selectedLinearElement}))),!t.drag.hasOccurred&&!this.state.isResizing&&(f&&ZT({x:t.origin.x,y:t.origin.y,element:f,shape:wi(f,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold(),frameNameBound:He(f)?this.frameNameBoundsCache.get(f):null},p)||!f&&t.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:gt({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),pt(this.interactiveCanvas,ut.AUTO);return}if(!s.locked&&s.type!=="freedraw"&&o&&o.type!=="selection"&&this.setState(h=>({selectedElementIds:gt({...h.selectedElementIds,[o.id]:!0},h),showHyperlinkPopup:Fr(o)&&!o.link?"editor":h.showHyperlinkPopup})),(s.type!=="selection"||ft(this.scene.getNonDeletedElements(),this.state)||!gr(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),t.drag.hasOccurred||c||d){let h=this.scene.getSelectedElements(this.state).filter(Qe);gl(h,this.scene.getNonDeletedElementsMap(),fl(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(s.type==="laser"){this.laserTrails.endPath();return}!s.locked&&s.type!=="freedraw"?(Jo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:Ht(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),f&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&at.pointers.size<=1&&vs(f)&&this.isIframeLikeElementCenter(f,this.lastPointerUpEvent,t.origin.x,t.origin.y)&&this.handleEmbeddableCenterClick(f)})}restoreReadyToEraseElements=()=>{this.elementsPendingErasure=new Set,this.triggerRender()};eraseElements=()=>{let t=!1,r=this.scene.getElementsIncludingDeleted().map(o=>this.elementsPendingErasure.has(o.id)||o.frameId&&this.elementsPendingErasure.has(o.frameId)||Sr(o)&&this.elementsPendingErasure.has(o.containerId)?(t=!0,Pe(o,{isDeleted:!0})):o);this.elementsPendingErasure=new Set,t&&(this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(r))};initializeImage=async({imageFile:t,imageElement:r,showCursorImagePreview:o=!1})=>{if(!Zp(t))throw new Error(E("errors.unsupportedFileType"));let i=t.type;if(pt(this.interactiveCanvas,"wait"),i===kr.svg)try{t=uv(await HC(await t.text()),t.name)}catch(p){throw console.warn(p),new Error(E("errors.svgImageInsertError"))}let a=await(this.props.generateIdForFile?.(t)||AC(t));if(!a)throw console.warn("Couldn't generate file id or the supplied `generateIdForFile` didn't resolve to one."),new Error(E("errors.imageInsertError"));if(!this.files[a]?.dataURL){try{t=await Ud(t,{maxWidthOrHeight:HS})}catch(p){console.error("Error trying to resizing image file on insertion",p)}if(t.size>Sx)throw new Error(E("errors.fileTooBig",{maxSize:`${Math.trunc(Sx/1024/1024)}MB`}))}if(o){let p=this.files[a]?.dataURL,f=p&&kC(p);this.setImagePreviewCursor(f||t)}let c=this.files[a]?.dataURL||await jp(t),d=me(r,{fileId:a},!1);return new Promise(async(p,f)=>{try{this.files={...this.files,[a]:{mimeType:i,id:a,dataURL:c,created:Date.now(),lastRetrieved:Date.now()}};let m=this.imageCache.get(a);m||(this.addNewImagesToImageCache(),await this.updateImageCache([d])),m?.image instanceof Promise&&await m.image,this.state.pendingImageElementId!==d.id&&this.state.draggingElement?.id!==d.id&&this.initializeImageDimensions(d,!0),p(d)}catch(m){console.error(m),f(new Error(E("errors.imageInsertError")))}finally{o||Jo(this.interactiveCanvas)}})};insertImageElement=async(t,r,o)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:E("errors.imageToolNotSupported")});return}this.scene.insertElement(t);try{return await this.initializeImage({imageFile:r,imageElement:t,showCursorImagePreview:o})}catch(i){return me(t,{isDeleted:!0}),this.actionManager.executeAction(nn),this.setState({errorMessage:i.message||E("errors.imageInsertError")}),null}};setImagePreviewCursor=async t=>{let o;try{o=await Ud(t,{maxWidthOrHeight:96})}catch(a){throw a.cause==="UNSUPPORTED"?new Error(E("errors.unsupportedFileType")):a}let i=await jp(o);if(t.type===kr.svg){let a=await BC(i),s=Math.min(a.height,96),c=s*(a.width/a.height);c>96&&(c=96,s=c*(a.height/a.width));let d=document.createElement("canvas");d.height=s,d.width=c,d.getContext("2d").drawImage(a,0,0,c,s),i=d.toDataURL(kr.svg)}this.state.pendingImageElementId&&pt(this.interactiveCanvas,`url(${i}) 4 4, auto`)};onImageAction=async({insertOnCanvasDirectly:t})=>{try{let r=this.state.width/2+this.state.offsetLeft,o=this.state.height/2+this.state.offsetTop,{x:i,y:a}=kt({clientX:r,clientY:o},this.state),s=await Yp({description:"Image",extensions:Object.keys(_S)}),c=this.createImageElement({sceneX:i,sceneY:a,addToFrameUnderCursor:!1});t?(this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:gt({[c.id]:!0},this.state)},()=>{this.actionManager.executeAction(nn)})):this.setState({pendingImageElementId:c.id},()=>{this.insertImageElement(c,s,!0)})}catch(r){r.name!=="AbortError"?console.error(r):console.warn(r),this.setState({pendingImageElementId:null,editingElement:null,activeTool:Ht(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(nn)})}};initializeImageDimensions=(t,r=!1)=>{let o=Cd(t)&&this.imageCache.get(t.fileId)?.image;if(!o||o instanceof Promise){if(t.width<tl/this.state.zoom.value&&t.height<tl/this.state.zoom.value){let i=100/this.state.zoom.value;me(t,{x:t.x-i/2,y:t.y-i/2,width:i,height:i})}return}if(r||t.width<tl/this.state.zoom.value&&t.height<tl/this.state.zoom.value){let i=Math.max(this.state.height-120,160),a=Math.min(i,Math.floor(this.state.height*.5)/this.state.zoom.value),s=Math.min(o.naturalHeight,a),c=s*(o.naturalWidth/o.naturalHeight),d=t.x+t.width/2-c/2,p=t.y+t.height/2-s/2;me(t,{x:d,y:p,width:c,height:s})}};updateImageCache=async(t,r=this.files)=>{let{updatedFiles:o,erroredFiles:i}=await zC({imageCache:this.imageCache,fileIds:t.map(a=>a.fileId),files:r});if(o.size||i.size)for(let a of t)o.has(a.fileId)&&va.delete(a);return i.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(a=>Cd(a)&&i.has(a.fileId)?Pe(a,{status:"error"}):a)),{updatedFiles:o,erroredFiles:i}};addNewImagesToImageCache=async(t=$C(this.scene.getNonDeletedElements()),r=this.files)=>{let o=t.filter(i=>!i.isDeleted&&!this.imageCache.has(i.fileId));if(o.length){let{updatedFiles:i}=await this.updateImageCache(o,r);i.size&&this.scene.triggerUpdate()}};scheduleImageRefresh=(0,OP.default)(()=>{this.addNewImagesToImageCache()},MS);updateBindingEnabledOnPointerMove=t=>{let r=JT(t);this.state.isBindingEnabled!==r&&this.setState({isBindingEnabled:r})};maybeSuggestBindingAtCursor=t=>{let r=Fd(t,this.scene.getNonDeletedElementsMap());this.setState({suggestedBindings:r!=null?[r]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(t,r,o)=>{if(!r.length)return;let i=r.reduce((a,s)=>{let c=Fd(s,this.scene.getNonDeletedElementsMap());return c!=null&&!QT(t,o?.id,c)&&a.push(c),a},[]);this.setState({suggestedBindings:i})};clearSelection(t){this.setState(r=>({selectedElementIds:gt({},r),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:r.editingGroupId&&t!=null&&Os(t,r.editingGroupId)?r.editingGroupId:null})),this.setState({selectedElementIds:gt({},this.state),activeEmbeddable:null,previousSelectedElementIds:this.state.selectedElementIds})}handleInteractiveCanvasRef=t=>{t!==null?(this.interactiveCanvas=t,this.interactiveCanvas.addEventListener("wheel",this.handleWheel),this.interactiveCanvas.addEventListener("touchstart",this.onTouchStart),this.interactiveCanvas.addEventListener("touchend",this.onTouchEnd)):(this.interactiveCanvas?.removeEventListener("wheel",this.handleWheel),this.interactiveCanvas?.removeEventListener("touchstart",this.onTouchStart),this.interactiveCanvas?.removeEventListener("touchend",this.onTouchEnd))};handleAppOnDrop=async t=>{let{file:r,fileHandle:o}=await PC(t),{x:i,y:a}=kt(t,this.state);try{if(Zp(r)&&this.isToolSupported("image")){if(r?.type===kr.png||r?.type===kr.svg)try{let d=await qp(r,this.state,this.scene.getElementsIncludingDeleted(),o);this.syncActionResult({...d,appState:{...d.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:W.CAPTURE});return}catch(d){if(d.name!=="EncodingError")throw new Error(E("alerts.couldNotLoadInvalidFile"))}let c=this.createImageElement({sceneX:i,sceneY:a});this.insertImageElement(c,r),this.initializeImageDimensions(c),this.setState({selectedElementIds:gt({[c.id]:!0},this.state)});return}}catch(c){return this.setState({isLoading:!1,errorMessage:c.message})}let s=t.dataTransfer.getData(kr.excalidrawlib);if(s&&typeof s=="string"){try{let c=_C(s);this.addElementsFromPasteOrLibrary({elements:Og(c),position:t,files:null})}catch(c){this.setState({errorMessage:c.message})}return}if(r&&await this.loadFileToCanvas(r,o),t.dataTransfer?.types?.includes("text/plain")){let c=t.dataTransfer?.getData("text");if(c&&zs(c,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(c)||yl(c)?.type==="video")){let d=this.insertEmbeddableElement({sceneX:i,sceneY:a,link:Ci(c)});d&&this.setState({selectedElementIds:{[d.id]:!0}})}}};loadFileToCanvas=async(t,r)=>{t=await LC(t);try{let o=this.scene.getElementsIncludingDeleted(),i;try{i=await dv(t,this.state,o,r)}catch(a){let s=a instanceof p2;if(s&&a.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:E("errors.imageToolNotSupported")});return}let c=s?E("alerts.cannotRestoreFromImage"):E("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:c})}if(!i)return;i.type===kr.excalidraw?(ua(o.concat(i.data.elements)),this.store.updateSnapshot(Le(o),this.state),this.setState({isLoading:!0}),this.syncActionResult({...i.data,appState:{...i.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:W.CAPTURE})):i.type===kr.excalidrawlib&&await this.library.updateLibrary({libraryItems:t,merge:!0,openLibraryMenu:!0}).catch(a=>{console.error(a),this.setState({errorMessage:E("errors.importLibraryError")})})}catch(o){this.setState({isLoading:!1,errorMessage:o.message})}};handleCanvasContextMenu=t=>{if(t.preventDefault(),("pointerType"in t.nativeEvent&&t.nativeEvent.pointerType==="touch"||"pointerType"in t.nativeEvent&&t.nativeEvent.pointerType==="pen"&&t.button!==aa.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:r,y:o}=kt(t,this.state),i=this.getElementAtPosition(r,o,{preferSelected:!0,includeLockedElements:!0}),a=this.scene.getSelectedElements(this.state),s=this.isHittingCommonBoundingBoxOfSelectedElements({x:r,y:o},a),c=i||s?"element":"canvas",d=this.excalidrawContainerRef.current,{top:p,left:f}=d.getBoundingClientRect(),m=t.clientX-f,g=t.clientY-p;ze("contextMenu","openContextMenu",c),this.setState({...i&&!this.state.selectedElementIds[i.id]?{...this.state,...Mr({editingGroupId:this.state.editingGroupId,selectedElementIds:{[i.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:Qe(i)?new Re(i):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:g,left:m,items:this.getContextMenuItems(c)}})})};maybeDragNewGenericElement=(t,r)=>{let o=this.state.draggingElement,i=t.lastCoords;if(o)if(o.type==="selection"&&this.state.activeTool.type!=="eraser")Tv(o,this.state.activeTool.type,t.origin.x,t.origin.y,i.x,i.y,sl(t.origin.x,i.x),sl(t.origin.y,i.y),Is(r),pp(r),this.state.zoom.value);else{let[a,s]=ro(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),c=Cd(o)&&this.imageCache.get(o.fileId)?.image,d=c&&!(c instanceof Promise)?c.width/c.height:null;this.maybeCacheReferenceSnapPoints(r,[o]);let{snapOffset:p,snapLines:f}=aP(o,this.state,r,{x:t.originInGrid.x+(this.state.originSnapOffset?.x??0),y:t.originInGrid.y+(this.state.originSnapOffset?.y??0)},{x:a-t.originInGrid.x,y:s-t.originInGrid.y},this.scene.getNonDeletedElementsMap());a+=p.x,s+=p.y,this.setState({snapLines:f}),Tv(o,this.state.activeTool.type,t.originInGrid.x,t.originInGrid.y,a,s,sl(t.originInGrid.x,a),sl(t.originInGrid.y,s),da(o)?!Is(r):Is(r),pp(r),this.state.zoom.value,d,this.state.originSnapOffset),(this.state.activeTool.type===Vt.frame||this.state.activeTool.type===Vt.magicframe)&&this.setState({elementsToHighlight:Us(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(t,r)=>{let o=this.scene.getSelectedElements(this.state),i=o.filter(f=>He(f)),a=t.resize.handleType;if(i.length>0&&a==="rotation")return!1;this.setState({isResizing:a&&a!=="rotation",isRotating:a==="rotation",activeEmbeddable:null});let s=t.lastCoords,[c,d]=ro(s.x-t.resize.offset.x,s.y-t.resize.offset.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),p=new Map;if(i.forEach(f=>{xa(this.scene.getNonDeletedElements(),f.id).forEach(g=>{p.set(f.id+g.id,{x:g.x-f.x,y:g.y-f.y})})}),!this.state.selectedElementsAreBeingDragged){let[f,m]=ro(s.x,s.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),g={x:f-t.originInGrid.x,y:m-t.originInGrid.y},h=[...t.originalElements.values()];this.maybeCacheReferenceSnapPoints(r,o);let{snapOffset:b,snapLines:y}=iP(o,Oe(h,this.state),this.state,r,g,a);c+=b.x,d+=b.y,this.setState({snapLines:y})}if(pI(t.originalElements,a,o,this.scene.getElementsMapIncludingDeleted(),fp(r),pp(r),o.some(f=>da(f))?!Is(r):Is(r),c,d,t.resize.center.x,t.resize.center.y)){let f=Rp(o,this.scene.getNonDeletedElementsMap()),m=new Set;return i.forEach(g=>{Us(this.scene.getNonDeletedElements(),g,this.state,this.scene.getNonDeletedElementsMap()).forEach(h=>m.add(h))}),this.setState({elementsToHighlight:[...m],suggestedBindings:f}),!0}return!1};getContextMenuItems=t=>{let r=[];return r.push(Ig,Cg),t==="canvas"?this.state.viewModeEnabled?[...r,Ag,Sc,aE,Tc]:[Yy,Kr,Ig,Cg,_g,Kr,Bv,Bk,Kr,Ag,Vy,Sc,aE,Tc]:(r.push(_g),this.state.viewModeEnabled?[wc,...r]:[Kr,Tg,wc,Yy,qM,jM,Kr,...r,Kr,Ny,Oy,Kr,By,LP,Xy,Zy,Pk,zy,Kr,Uy,Kr,Dv,Nv,Ov,Fv,Kr,Wy,Ky,Kr,y0,vm,zv,t0,Kr,Jd])};handleWheel=Dt(t=>{if(t.preventDefault(),Zm)return;let{deltaX:r,deltaY:o}=t;if(t.metaKey||t.ctrlKey){let i=Math.sign(o),a=nl*100,s=Math.abs(o),c=o;s>a&&(c=a*i);let d=this.state.zoom.value-c/100;d+=Math.log10(Math.max(1,this.state.zoom.value))*-i*Math.min(1,s/20),this.translateCanvas(p=>({...ki({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Ai(d)},p),shouldCacheIgnoreZoom:!0})),this.resetShouldCacheIgnoreZoomDebounced();return}if(t.shiftKey){this.translateCanvas(({zoom:i,scrollX:a})=>({scrollX:a-(o||r)/i.value}));return}this.translateCanvas(({zoom:i,scrollX:a,scrollY:s})=>({scrollX:a-r/i.value,scrollY:s-o/i.value}))});getTextWysiwygSnappedToCenterPosition(t,r,o,i){if(i){let a=i.x+i.width/2,s=i.y+i.height/2,c=Up(i,o,this.scene.getNonDeletedElementsMap());if(c&&(a=c.x,s=c.y),Math.hypot(t-a,r-s)<SS){let{x:f,y:m}=to({sceneX:a,sceneY:s},o);return{viewportX:f,viewportY:m,elementCenterX:a,elementCenterY:s}}}}savePointer=(t,r,o)=>{if(!t||!r)return;let{x:i,y:a}=kt({clientX:t,clientY:r},this.state);isNaN(i)||isNaN(a);let s={x:i,y:a,tool:this.state.activeTool.type==="laser"?"laser":"pointer"};this.props.onPointerUpdate?.({pointer:s,button:o,pointersMap:at.pointers})};resetShouldCacheIgnoreZoomDebounced=al(()=>{this.unmounted||this.setState({shouldCacheIgnoreZoom:!1})},300);updateDOMRect=t=>{if(this.excalidrawContainerRef?.current){let r=this.excalidrawContainerRef.current,{width:o,height:i,left:a,top:s}=r.getBoundingClientRect(),{width:c,height:d,offsetTop:p,offsetLeft:f}=this.state;if(o===c&&i===d&&a===f&&s===p){t&&t();return}this.setState({width:o,height:i,offsetLeft:a,offsetTop:s},()=>{t&&t()})}};refresh=()=>{this.setState({...this.getCanvasOffsets()})};getCanvasOffsets(){if(this.excalidrawContainerRef?.current){let t=this.excalidrawContainerRef.current,{left:r,top:o}=t.getBoundingClientRect();return{offsetLeft:r,offsetTop:o}}return{offsetLeft:0,offsetTop:0}}async updateLanguage(){let t=Ys.find(r=>r.code===this.props.langCode)||Yn;await Tf(t),this.setAppState({})}},oH=()=>{(_.MODE===vx.TEST||_.DEV)&&(window.h=window.h||{},Object.defineProperties(window.h,{elements:{configurable:!0,get(){return this.app?.scene.getElementsIncludingDeleted()},set(e){return this.app?.scene.replaceAllElements(ua(e))}}}))};oH();var $P=EE;v();var nH=()=>{Array.prototype.at||Object.defineProperty(Array.prototype,"at",{value:function(e){if(e=Math.trunc(e)||0,e<0&&(e+=this.length),!(e<0||e>=this.length))return this[e]},writable:!0,enumerable:!1,configurable:!0}),Element.prototype.replaceChildren||(Element.prototype.replaceChildren=function(...e){this.innerHTML="",this.append(...e)})},HP=nH;v();var AE=w(P(),1),UP=({children:e})=>{let{FooterCenterTunnel:t}=It(),r=it();return(0,AE.jsx)(t.In,{children:(0,AE.jsx)("div",{className:q("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":r.zenModeEnabled}),children:e})})},iH=UP;UP.displayName="FooterCenter";v();v();v();var fn=w(P(),1),aH=()=>(0,fn.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,fn.jsx)("path",{d:"M39.9 32.889a.326.326 0 0 0-.279-.056c-2.094-3.083-4.774-6-7.343-8.833l-.419-.472a.212.212 0 0 0-.056-.139.586.586 0 0 0-.167-.111l-.084-.083-.056-.056c-.084-.167-.28-.278-.475-.167-.782.39-1.507.973-2.206 1.528-.92.722-1.842 1.445-2.708 2.25a8.405 8.405 0 0 0-.977 1.028c-.14.194-.028.361.14.444-.615.611-1.23 1.223-1.843 1.861a.315.315 0 0 0-.084.223c0 .083.056.166.111.194l1.09.833v.028c1.535 1.528 4.244 3.611 7.12 5.861.418.334.865.667 1.284 1 .195.223.39.473.558.695.084.11.28.139.391.055.056.056.14.111.196.167a.398.398 0 0 0 .167.056.255.255 0 0 0 .224-.111.394.394 0 0 0 .055-.167c.029 0 .028.028.056.028a.318.318 0 0 0 .224-.084l5.082-5.528a.309.309 0 0 0 0-.444Zm-14.63-1.917a.485.485 0 0 0 .111.14c.586.5 1.2 1 1.843 1.555l-2.569-1.945-.251-.166c-.056-.028-.112-.084-.168-.111l-.195-.167.056-.056.055-.055.112-.111c.866-.861 2.346-2.306 3.1-3.028-.81.805-2.43 3.167-2.095 3.944Zm8.767 6.89-2.122-1.612a44.713 44.713 0 0 0-2.625-2.5c1.145.861 2.122 1.611 2.262 1.75 1.117.972 1.06.806 1.815 1.445l.921.666a1.06 1.06 0 0 1-.251.25Zm.558.416-.056-.028c.084-.055.168-.111.252-.194l-.196.222ZM1.089 5.75c.055.361.14.722.195 1.056.335 1.833.67 3.5 1.284 4.75l.252.944c.084.361.223.806.363.917 1.424 1.25 3.602 3.11 5.947 4.889a.295.295 0 0 0 .363 0s0 .027.028.027a.254.254 0 0 0 .196.084.318.318 0 0 0 .223-.084c2.988-3.305 5.221-6.027 6.813-8.305.112-.111.14-.278.14-.417.111-.111.195-.25.307-.333.111-.111.111-.306 0-.39l-.028-.027c0-.055-.028-.139-.084-.167-.698-.666-1.2-1.138-1.731-1.638-.922-.862-1.871-1.75-3.881-3.75l-.028-.028c-.028-.028-.056-.056-.112-.056-.558-.194-1.703-.389-3.127-.639C6.087 2.223 3.21 1.723.614.944c0 0-.168 0-.196.028l-.083.084c-.028.027-.056.055-.224.11h.056-.056c.028.167.028.278.084.473 0 .055.112.5.112.555l.782 3.556Zm15.496 3.278-.335-.334c.084.112.196.195.335.334Zm-3.546 4.666-.056.056c0-.028.028-.056.056-.056Zm-2.038-10c.168.167.866.834 1.033.973-.726-.334-2.54-1.167-3.379-1.445.838.167 1.983.334 2.346.472ZM1.424 2.306c.419.722.754 3.222 1.089 5.666-.196-.778-.335-1.555-.503-2.278-.251-1.277-.503-2.416-.838-3.416.056 0 .14 0 .252.028Zm-.168-.584c-.112 0-.223-.028-.307-.028 0-.027 0-.055-.028-.055.14 0 .223.028.335.083Zm-1.089.222c0-.027 0-.027 0 0ZM39.453 1.333c.028-.11-.558-.61-.363-.639.42-.027.42-.666 0-.666-.558.028-1.144.166-1.675.25-.977.194-1.982.389-2.96.61-2.205.473-4.383.973-6.561 1.557-.67.194-1.424.333-2.066.666-.224.111-.196.333-.084.472-.056.028-.084.028-.14.056-.195.028-.363.056-.558.083-.168.028-.252.167-.224.334 0 .027.028.083.028.11-1.173 1.556-2.485 3.195-3.909 4.945-1.396 1.611-2.876 3.306-4.356 5.056-4.719 5.5-10.052 11.75-15.943 17.25a.268.268 0 0 0 0 .389c.028.027.056.055.084.055-.084.084-.168.14-.252.222-.056.056-.084.111-.084.167a.605.605 0 0 0-.111.139c-.112.111-.112.305.028.389.111.11.307.11.39-.028.029-.028.029-.056.056-.056a.44.44 0 0 1 .615 0c.335.362.67.723.977 1.028l-.698-.583c-.112-.111-.307-.083-.39.028-.113.11-.085.305.027.389l7.427 6.194c.056.056.112.056.196.056s.14-.028.195-.084l.168-.166c.028.027.083.027.111.027.084 0 .14-.027.196-.083 10.052-10.055 18.15-17.639 27.42-24.417.083-.055.111-.166.111-.25.112 0 .196-.083.251-.194 1.704-5.194 2.039-9.806 2.15-12.083v-.028c0-.028.028-.056.028-.083.028-.056.028-.084.028-.084a1.626 1.626 0 0 0-.111-1.028ZM21.472 9.5c.446-.5.893-1.028 1.34-1.5-2.876 3.778-7.65 9.583-14.408 16.5 4.607-5.083 9.242-10.333 13.068-15ZM5.193 35.778h.084-.084Zm3.462 3.194c-.027-.028-.027-.028 0-.028v.028Zm4.16-3.583c.224-.25.448-.472.699-.722 0 0 0 .027.028.027-.252.223-.475.445-.726.695Zm1.146-1.111c.14-.14.279-.334.446-.5l.028-.028c1.648-1.694 3.351-3.389 5.082-5.111l.028-.028c.419-.333.921-.694 1.368-1.028a379.003 379.003 0 0 0-6.952 6.695ZM24.794 6.472c-.921 1.195-1.954 2.778-2.82 4.028-2.736 3.944-11.532 13.583-11.727 13.75a1976.983 1976.983 0 0 1-8.042 7.639l-.167.167c-.14-.167-.14-.417.028-.556C14.49 19.861 22.03 10.167 25.074 5.917c-.084.194-.14.36-.28.555Zm4.83 5.695c-1.116-.64-1.646-1.64-1.34-2.611l.084-.334c.028-.083.084-.194.14-.277.307-.5.754-.917 1.257-1.167.027 0 .055 0 .083-.028-.028-.056-.028-.139-.028-.222.028-.167.14-.278.335-.278.335 0 1.369.306 1.76.639.111.083.223.194.335.305.14.167.363.445.474.667.056.028.112.306.196.445.056.222.111.472.084.694-.028.028 0 .194-.028.194a2.668 2.668 0 0 1-.363 1.028c-.028.028-.028.056-.056.084l-.028.027c-.14.223-.335.417-.53.556-.643.444-1.369.583-2.095.389 0 0-.195-.084-.28-.111Zm8.154-.834a39.098 39.098 0 0 1-.893 3.167c0 .028-.028.083 0 .111-.056 0-.084.028-.14.056-2.206 1.61-4.356 3.305-6.506 5.028 1.843-1.64 3.686-3.306 5.613-4.945.558-.5.949-1.139 1.06-1.861l.28-1.667v-.055c.14-.334.67-.195.586.166Z",fill:"currentColor"})}),lH=()=>(0,fn.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,fn.jsx)("path",{d:"M429.27 96.74c2.47-1.39 4.78-3.02 6.83-4.95 1.43-1.35 2.73-2.86 3.81-4.51-.66.9-1.4 1.77-2.23 2.59-2.91 2.84-5.72 5.09-8.42 6.87h.01ZM343.6 69.36c.33 3.13.58 6.27.79 9.4.09 1.37.18 2.75.25 4.12-.12-4.46-.27-8.93-.5-13.39-.11-2.08-.24-4.16-.4-6.24-.06 1.79-.11 3.85-.13 6.11h-.01ZM378.47 98.34c.01-.37.07-1.13.01-6.51-.11 1.9-.22 3.81-.31 5.71-.07 1.42-.22 2.91-.16 4.35.39.03.78.07 1.17.1-.92-.85-.76-2.01-.72-3.66l.01.01ZM344.09 86.12c-.09-2.41-.22-4.83-.39-7.24v12.21c.15-.05.32-.09.47-.14.05-1.61-.03-3.23-.09-4.83h.01ZM440.69 66.79c-.22-.34-.45-.67-.69-.99-3.71-4.87-9.91-7.14-15.65-8.55-1.05-.26-2.12-.49-3.18-.71 2.29.59 4.48 1.26 6.64 2.02 7.19 2.54 10.57 5.41 12.88 8.23ZM305.09 72.46l1.2 3.6c.84 2.53 1.67 5.06 2.46 7.61.24.78.5 1.57.73 2.36.22-.04.44-.08.67-.12a776.9 776.9 0 0 1-5.01-13.57c-.02.04-.03.09-.05.13v-.01ZM345.49 90.25v.31c1.48-.42 3.05-.83 4.66-1.2-1.56.25-3.12.52-4.66.89ZM371.02 90.22c0-.57-.04-1.14-.11-1.71-.06-.02-.12-.04-.19-.05-.21-.05-.43-.08-.65-.11.42.16.74.88.95 1.87ZM398.93 54.23c-.13 0-.27-.01-.4-.02l.03.4c.11-.15.23-.27.37-.38ZM401.57 62.28v-.15c-1.22-.24-2.86-.61-3.23-1.25-.09-.15-.18-.51-.27-.98-.09.37-.2.73-.33 1.09 1.24.56 2.52.98 3.83 1.29ZM421.73 88.68c-2.97 1.65-6.28 3.12-9.69 3.68v.18c4.72-.14 11.63-3.85 16.33-8.38-2.04 1.75-4.33 3.24-6.63 4.53l-.01-.01ZM411.28 80.92c-.05-1.2-.09-2.4-.15-3.6-.21 5.66-.46 11.38-.47 14.51.24-.02.48-.04.71-.07.15-3.61.05-7.23-.09-10.83v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,fn.jsx)("path",{d:"M425.38 67.41c-3.5-1.45-7.19-2.57-14.06-3.62.09 1.97.06 4.88-.03 8.12.03.04.06.09.06.15.19 1.36.28 2.73.37 4.1.25 3.77.39 7.55.41 11.33 0 1.38-.01 2.76-.07 4.13 1.4-.25 2.78-.65 4.12-1.15 4.07-1.5 7.94-3.78 11.28-6.54 2.33-1.92 5.13-4.49 5.88-7.58.63-3.53-2.45-6.68-7.97-8.96l.01.02ZM411.35 92.53v-.06l-.34.03c.11.01.22.03.34.03ZM314.26 64.06c-.23-.59-.47-1.17-.7-1.75.57 1.62 1.11 3.25 1.6 4.9l.15.54 2.35 6.05c.32.82.66 1.64.98 2.46-1.38-4.1-2.83-8.17-4.39-12.2h.01ZM156.82 103.07c-.18.13-.38.23-.58.33 1.32-.03 2.66-.2 3.93-.34.86-.09 1.72-.22 2.58-.33-2.12.1-4.12.17-5.94.34h.01ZM210.14 68.88s.03.04.05.07c.18-.31.39-.64.58-.96-.21.3-.42.6-.64.89h.01ZM201.65 82.8c-.5.77-1.02 1.56-1.49 2.37 1.11-1.55 2.21-3.1 3.2-4.59-.23.23-.49.51-.75.79-.32.47-.65.95-.96 1.43ZM194.03 98.66c-.33-.4-.65-.84-1.05-1.17-.24-.2-.07-.49.17-.56-.23-.26-.42-.5-.63-.75 1.51-2.55 3.93-5.87 6.4-9.28-.17-.08-.29-.28-.2-.49.04-.09.09-.17.13-.26-1.21 1.78-2.42 3.55-3.61 5.33-.87 1.31-1.74 2.64-2.54 4-.29.5-.63 1.04-.87 1.61.81.65 1.63 1.27 2.47 1.88-.09-.11-.18-.21-.27-.32v.01ZM307.79 82.93c-1-3.17-2.05-6.32-3.1-9.48-1.62 4.08-3.69 9.17-6.16 15.19 3.32-1.04 6.77-1.87 10.27-2.5-.32-1.08-.67-2.15-1.01-3.21ZM149.5 80.7c.05-1.71.04-3.43 0-5.14-.1 2.26-.16 4.51-.22 6.77-.02.73-.03 1.46-.04 2.19.14-1.27.2-2.55.24-3.82h.02ZM228.98 98.3c.39 1.25.91 3.03.94 3.91.06-.03.12-.07.17-.1.08-1.29-.55-2.65-1.11-3.81ZM307.72 53.36c.81.5 1.53 1.04 2.07 1.49-.38-.8-.78-1.58-1.21-2.35-.17.03-.34.06-.51.11-.43.12-.86.26-1.29.41.35-.01.53.1.94.34ZM283.69 96.14c3.91-7.25 6.89-13.35 8.88-18.15l1.1-2.66c-1.27 2.64-2.56 5.27-3.83 7.9-1.53 3.15-3.06 6.31-4.58 9.47-.87 1.81-1.76 3.62-2.54 5.47.04.02.07.04.11.07.05.05.1.09.15.14.05-.73.27-1.48.71-2.24ZM289.92 103.23s-.04.01-.05.03c0-.02.04-.03.05-.04.05-.05.11-.1.16-.15l.21-.21c-.55 0-1.5-.27-2.55-.72.4.26.8.51 1.22.74.24.13.48.26.73.37.05.02.1.03.14.05a.27.27 0 0 1 .08-.07h.01ZM269.23 68.49c-.39-.19-.82-.48-1.33-.87-3.06-1.56-6.31-2.78-9.36-2.35-3.5.49-5.7 1.11-7.74 2.44 5.71-2.6 12.82-2.07 18.44.79l-.01-.01ZM177.87 53.69l1.06.03c-.96-.22-2-.25-2.89-.3-4.95-.26-9.99.33-14.86 1.19-2.44.43-4.88.95-7.28 1.59 9.09-1.76 15.69-2.77 23.97-2.51ZM219.85 55.51c-.18.12-.36.27-.56.45-.45.53-.86 1.11-1.26 1.66-1.91 2.61-3.71 5.31-5.57 7.95l-.12.18 8.05-10.11c-.18-.05-.36-.1-.55-.13h.01ZM510.71 54.1c.12-.15.29-.3.53-.45.69-.4 3.72-.63 5.87-.74-.36-.02-.73-.04-1.09-.05-1.84-.03-3.67.09-5.49.35.05.3.12.59.18.88v.01ZM510.76 86.02c1.37-3.07 2.49-6.27 3.57-9.46.55-1.64 1.12-3.3 1.6-4.97-1.59 4.01-3.67 9.14-6.2 15.3.24-.08.5-.14.74-.22.1-.22.19-.44.29-.65ZM566.95 75.76c.11-.02.23.03.31.11-.05-.13-.09-.26-.14-.39-.05.09-.11.18-.17.28ZM511.33 86.41c3.08-.89 6.24-1.62 9.46-2.14-1.51-3.98-2.98-7.96-4.39-11.87-.05.15-.09.31-.14.46-1.02 3.32-2.15 6.61-3.39 9.85-.48 1.25-.98 2.49-1.53 3.7h-.01ZM578.24 74.45c.11-.44.23-.87.35-1.31-.31.7-.64 1.39-.97 2.08.09.21.19.4.28.61.12-.46.23-.92.35-1.38h-.01ZM520.62 53.11c-.09 0-.18-.01-.28-.02.38.34.29 1.08.93 2.53l6.65 17.15c2.2 5.68 4.69 11.36 7.41 16.87l1.06 2.17c-2.95-7.05-5.92-14.08-8.87-21.13-1.58-3.79-3.16-7.59-4.7-11.4-.78-1.92-1.73-3.89-2.25-5.91-.03-.1 0-.19.04-.26h.01ZM578.78 77.87c1.45-5.77 3.07-10.43 3.58-13.36.05-.34.16-.88.31-1.55-.67 1.79-1.37 3.56-2.08 5.33-.12.43-.23.86-.35 1.29-.65 2.43-1.29 4.86-1.9 7.3.14.33.29.65.43 1l.01-.01ZM545.3 94.66c.02-.44.03-.83.05-1.12.02-1.01.05-2.02.11-3.02.03-6.66-.46-14.33-1.46-22.8-.13-.42-.27-1.24-.56-2.89 0-.02 0-.04-.01-.06.62 6.61.95 13.25 1.32 19.87.17 3.08.33 6.16.52 9.23.02.25.03.52.04.78l-.01.01ZM580.77 102.81c.13.2.27.38.37.49.27-.11.53-.22.8-.32-.43.09-.82.05-1.17-.16v-.01ZM530.48 104.07h.33c-.36-.13-.71-.32-1.04-.56.14.24.3.47.45.7.06-.08.14-.13.26-.13v-.01ZM542.63 58.82c.06.23.11.47.15.71.14-.33.36-.62.7-.86-.28.05-.57.11-.85.15ZM583.81 57.87c.15-.7.29-1.41.42-2.11-.14.45-.28.9-.42 1.34-.46 1.44-.89 2.89-1.31 4.34.44-1.19.88-2.37 1.31-3.57ZM523.62 91.48c-4.66 1.17-9.05 2.89-14.02 5.27 4.65-1.84 9.48-3.29 14.28-4.63-.09-.22-.17-.41-.26-.64ZM460.64 78.3c-.04-2.9-.11-5.81-.28-8.71-.1-1.68-.17-3.43-.5-5.09-.07.02-.14.03-.2.05.3 6.54.45 12.17.51 17.12.17-.07.34-.14.51-.2 0-1.06-.01-2.11-.03-3.17h-.01ZM470.63 63.24c-3.38-.26-6.81.32-10.1 1.1.41 2.01.47 4.14.57 6.18.18 3.55.25 7.11.27 10.67 3.31-1.38 6.5-3.12 9.3-5.35 1.96-1.56 3.86-3.41 5.02-5.66.73-1.41 1.19-3.22.26-4.65-1.09-1.7-3.46-2.14-5.32-2.29ZM460.29 63.68c1-.24 2.01-.46 3.04-.65-1.15.16-2.37.38-3.71.69v.13c.07-.02.15-.04.22-.05.11-.13.3-.18.45-.11v-.01ZM457.24 100.96c.43-.03.86-.07 1.29-.11.14-.49.27-.99.38-1.49-.44.7-1 1.23-1.67 1.6ZM482.88 104.98c-.18.23-.36.38-.55.47.14.09.27.19.4.28a70.76 70.76 0 0 0 4.37-4.63c.76-.89 1.52-1.81 2.19-2.77-.3-.27-.61-.53-.92-.79-.07 1.94-4.62 6.32-5.49 7.45v-.01Z",transform:"translate(-144.023 -51.76)"}),(0,fn.jsx)("path",{d:"M474.36 63.31c-.4-.16-.84-.27-1.29-.37 1.56.42 3.08 1.22 3.76 2.74.62 1.4.32 2.95-.28 4.32.7-1.22.94-2.34.74-3.47-.24-1.33-1.19-2.54-2.93-3.21v-.01ZM477.34 89.18c-1.2-.81-2.4-1.62-3.6-2.42-.14.1-.26.19-.4.29 1.4.67 2.73 1.39 4 2.13ZM465.88 93.85c.37.25.74.5 1.1.75.46.32.92.65 1.38.97-1.57-1.2-2.01-1.61-2.49-1.72h.01ZM574.92 90.06c-2.28-5.21-4.93-11.13-5.67-12.26-.1-.15-1.57-3.01-1.63-3.08 0 0-.01.02-.02.02.4 1.37 1.09 2.69 1.65 3.99 2.14 4.95 4.36 9.86 6.67 14.73.6 1.26 1.21 2.52 1.83 3.78-.75-2.01-1.64-4.45-2.83-7.18ZM448.73 65.29c.1.2.22.38.34.57.22-.02.43-.06.65-.08v-.08c-.14-.05-.25 0-.99-.41ZM460.16 94.81c-.02.31-.06.59-.1.89-.03 1.71-.33 3.43-.79 5.07.15-.02.3-.03.45-.05.01-.04.02-.08.03-.11.09-.34.15-.69.2-1.03.17-1.07.25-2.16.33-3.24.05-.69.08-1.39.12-2.08-.27.1-.27.26-.24.57v-.02Z",transform:"translate(-144.023 -51.76)"}),(0,fn.jsx)("path",{d:"m328.67 98.12-3.22-6.58c-1.29-2.63-2.53-5.29-3.72-7.97-.25-.85-.52-1.69-.79-2.53-.81-2.57-1.67-5.12-2.55-7.67-1.92-5.53-3.9-11.08-6.32-16.41-.72-1.58-1.46-3.44-2.63-4.79-.03-.17-.16-.29-.34-.36a.282.282 0 0 0-.23-.04c-.06-.01-.12 0-.18.01-.74.06-1.5.38-2.19.61-2.22.77-4.4 1.64-6.63 2.38-.03-.08-.06-.16-.09-.25-.15-.42-.82-.24-.67.19.03.09.07.19.1.28l-.18.06c-.36.11-.28.6 0 .68.18 1.18.63 2.36.98 3.49.03.09.06.17.08.26-.08.23-.17.46-.24.64-.37.98-.79 1.94-1.21 2.9-1.27 2.89-2.62 5.75-3.98 8.6-3.18 6.67-6.44 13.31-9.64 19.97-1.08 2.25-2.2 4.5-3.15 6.81-.13.32.24.5.5.37 1.34 1.33 2.84 2.5 4.4 3.57.65.44 1.31.87 2.01 1.24.4.22.86.48 1.33.5.24.01.35-.19.33-.37.11-.1.21-.21.28-.28.41-.41.81-.84 1.2-1.26.85-.92 1.69-1.87 2.5-2.84 6.31-2.34 12.6-4.31 18.71-5.84 2.14 5.3 3.43 8.43 3.97 9.58.55 1.05 1.15 1.88 1.82 2.52 1.32.56 6.96-.03 9.23-1.96.87-1.28 1.19-2.67.93-4.15-.09-.5-.22-.95-.4-1.33l-.01-.03Zm-20.09-45.61c.43.77.83 1.56 1.21 2.35-.54-.45-1.27-.99-2.07-1.49-.42-.24-.6-.35-.94-.34.43-.15.85-.29 1.29-.41.17-.05.34-.08.51-.11Zm-25.86 45.66c.78-1.85 1.67-3.66 2.54-5.47 1.51-3.16 3.05-6.31 4.58-9.47 1.28-2.63 2.56-5.26 3.83-7.9l-1.1 2.66c-1.99 4.79-4.97 10.9-8.88 18.15-.43.76-.66 1.51-.71 2.24-.05-.05-.1-.09-.15-.14a.259.259 0 0 0-.11-.07Zm6.24 4.71c-.42-.23-.82-.48-1.22-.74 1.05.45 2 .72 2.55.72l-.21.21c-.05.05-.11.1-.16.15-.01.01-.04.03-.05.04 0-.02.03-.02.05-.03a.27.27 0 0 0-.08.07c-.05-.02-.1-.03-.14-.05-.25-.1-.49-.24-.73-.37h-.01Zm15.73-29.43c1.05 3.15 2.1 6.31 3.1 9.48.34 1.06.69 2.13 1.01 3.21-3.5.63-6.95 1.46-10.27 2.5 2.48-6.03 4.54-11.11 6.16-15.19Zm4.79 12.57c-.23-.79-.49-1.58-.73-2.36-.79-2.54-1.63-5.08-2.46-7.61l-1.2-3.6c.02-.04.04-.09.05-.13 1.6 4.45 3.28 9 5.01 13.57l-.67.12v.01Zm5.83-18.27-.15-.54c-.49-1.64-1.03-3.28-1.6-4.9.23.58.47 1.17.7 1.75 1.56 4.03 3.01 8.1 4.39 12.2-.33-.82-.67-1.64-.98-2.46l-2.35-6.05h-.01ZM390.43 79.37c-.13-10.43-.22-17.5-.24-19.97-.24-1.6.21-2.88-.65-3.65-.14-.13-.32-.23-.52-.32h.03c.45 0 .45-.69 0-.7-1.75-.03-3.5-.04-5.25-.14-1.38-.08-2.76-.21-4.15-.31-.07 0-.12.01-.17.04-.21-.07-.47.03-.45.31l.03.45c-.11.14-.19.3-.22.5-.21 1.26-.32 13.67-.36 23.59-.32 5.79-.67 11.57-.97 17.36-.09 1.73-.29 3.54-.21 5.3-.39.02-.38.64.04.69v.12c.05.44.74.45.7 0v-.06c1.1.09 2.2.21 3.3.3 1.14.19 2.44.2 3.29.17 1.73-.05 2.92-.05 3.8-.37.45-.05.9-.11 1.35-.17.44-.06.25-.73-.19-.67h-.01c.24-.32.45-.72.62-1.25.66-1.84.41-6.36.34-11.33l-.13-9.9.02.01Zm-12.26 18.17c.09-1.91.2-3.81.31-5.71.06 5.38 0 6.14-.01 6.51-.05 1.65-.21 2.81.72 3.66-.39-.04-.78-.07-1.17-.1-.06-1.44.09-2.93.16-4.35l-.01-.01ZM588.97 53.85c-2.06-.25-3.17-.51-3.76-.6a.3.3 0 0 1 .04-.08c.22-.39-.39-.75-.6-.35-.56 1.02-.9 2.19-1.26 3.29-.61 1.88-1.17 3.78-1.72 5.68-.63 2.19-1.24 4.39-1.83 6.59-.81 2.03-1.67 4.05-2.61 6.03-1.7-3.64-3.11-6.04-4.03-7.57-2.26-3.74-2.85-5.48-3.57-6.08l.31-.09c.43-.12.25-.8-.19-.67-1.06.3-2.12.6-3.17.95-.93.32-1.85.69-2.76 1.07-.13.05-.19.16-.22.27-.04.02-.08.05-.11.07-.04-.06-.07-.12-.11-.18a.354.354 0 0 0-.48-.12c-.16.09-.22.32-.13.48l.33.54c0 .09.02.18.06.28.51 1.16.78 1.38.72 1.47-2.42 3.44-5.41 7.86-6.2 9.1-1.27 1.97-2.01 3.14-2.45 3.84l-.91-6.56-.43-4.1c-.19-1.85-.37-3.23-.53-4.13-.19-1.1-.3-2.15-.45-3.16-.2-1.36-.29-2.06-.47-2.42h.04c.45.02.45-.68 0-.7-3.43-.16-6.81.94-10.17 1.48-.24-.22-.73-.04-.58.32.24.59.33 1.25.43 1.87.17 1.06.29 2.13.4 3.2.32 3.09.53 6.2.74 9.3.44 6.75.77 13.51 1.17 20.26.11 1.95.13 3.96.46 5.89.05.3.37.31.55.14.74 1.71 2.87 1.27 6.13 1.27 1.34 0 2.39.04 2.99-.11.02.32.48.53.63.18 3.61-8.26 7.41-16.46 12.05-24.2.03-.05.04-.1.05-.15.3.73.64 1.45.94 2.16.97 2.26 1.97 4.52 2.98 6.76 2.26 5.03 4.54 10.07 7.09 14.96.47.9.94 1.79 1.47 2.65.2.32.4.67.66.96-.18.25 0 .68.34.54.91-.38 1.82-.75 2.76-1.07 1.04-.35 2.11-.65 3.17-.95.39-.11.28-.66-.07-.68.62-.4.95-.96.87-1.91-.3-3.34.72-7.47.86-8.52l2.14-11.43c1.75-10.74 3.13-17.51 3.23-20.86.02-.49.08-2.84.13-3.24.17-1.25.48-1-4.96-1.65l.03-.02Zm-46.19 5.67c-.04-.24-.09-.48-.15-.71l.85-.15c-.34.24-.56.53-.7.86Zm1.95 25.12c-.36-6.63-.7-13.26-1.32-19.87 0 .02 0 .04.01.06.29 1.65.44 2.47.56 2.89 1 8.46 1.5 16.14 1.46 22.8-.06.99-.1 2-.11 3.02-.01.29-.03.68-.05 1.12-.01-.26-.03-.53-.04-.78-.19-3.08-.35-6.16-.52-9.23l.01-.01Zm36.4 18.66c-.11-.11-.24-.29-.37-.49.35.21.74.26 1.17.16-.27.11-.53.22-.8.32v.01Zm-.89-33.72c.12-.43.23-.86.35-1.29.71-1.77 1.41-3.55 2.08-5.33-.15.68-.26 1.22-.31 1.55-.5 2.94-2.13 7.59-3.58 13.36-.15-.35-.29-.66-.43-1 .61-2.44 1.25-4.87 1.9-7.3l-.01.01Zm3.56-12.48c.14-.44.28-.89.42-1.34-.13.7-.27 1.41-.42 2.11-.43 1.19-.86 2.38-1.31 3.57.42-1.45.85-2.9 1.31-4.34Zm-5.22 16.05c-.11.44-.23.87-.35 1.31-.12.46-.23.92-.35 1.38-.1-.22-.19-.4-.28-.61.34-.69.66-1.38.97-2.08h.01Zm-11.64 2.62c.06-.1.12-.19.17-.28.05.13.09.26.14.39a.398.398 0 0 0-.31-.11Zm2.3 2.98c-.56-1.3-1.25-2.63-1.65-3.99 0 0 .01-.02.02-.02.06.08 1.52 2.93 1.63 3.08.73 1.13 3.38 7.04 5.67 12.26 1.2 2.73 2.08 5.17 2.83 7.18-.62-1.25-1.23-2.51-1.83-3.78-2.31-4.87-4.53-9.78-6.67-14.73ZM275.92 87.03c-1.06-2.18-1.13-3.45-2.44-2.93-1.52.57-2.94 1.3-4.5 2.1-1.4.72-2.68 1.44-3.92 2.12.01-.25-.24-.5-.51-.34-4.8 2.93-12.41 4.7-17.28 1.31-1.98-1.77-3.32-4.15-3.97-5.78-.29-.95-.49-1.94-.63-2.93-.14-3.34 1.58-6.53 3.9-9.12.8-.79 1.68-1.51 2.66-2.12 3.7-2.3 8.22-3.07 12.51-2.51 2.71.35 5.32 1.24 7.71 2.55.39.22.75-.39.35-.6-.18-.1-.37-.18-.55-.27.56.27 1.03.33 1.51.19l-.48.39c-.15.11-.23.3-.13.48.09.15.33.24.48.13 1.3-.97 2.46-2.09 3.45-3.37.37-.29.64-.6.65-.97v-.02c.08-.33-.03-.7-.21-1.08-.31-.87-.98-2.01-2.19-3.26-2.43-2.52-3.79-3.45-5.68-4.26-1.14-.49-3.12-1.06-4.42-1.23-3.28-.42-10.64-1.21-18.18 4.11-7.74 5.46-11.94 12.3-12.23 20.61-.08 2.06.04 3.98.34 5.71.74 4.18 2.57 8 5.44 11.34 4.26 4.99 9.76 7.52 16.34 7.52 4.85 0 9.69-1.77 14.89-4.62.23-.12.45-.23.68-.35 2.19-1.1 4.37-2.23 6.46-3.5.49-.3 1.03-.61 1.5-.98 1.47-.87 1.11-1.12.49-2.95-.39-1.14-.76-2.7-2.06-5.36l.02-.01Zm-17.38-21.76c3.05-.42 6.31.79 9.36 2.35.51.39.94.68 1.33.87-5.61-2.86-12.72-3.39-18.44-.79 2.05-1.33 4.24-1.95 7.74-2.44l.01.01ZM443.67 72.67c-.4-2.2-1.15-4.33-2.37-6.22-1.49-2.32-3.58-4.19-5.91-5.64-6.17-3.81-13.75-5.11-20.83-6.01-3.23-.41-6.47-.69-9.72-.92l-1.39-.12c-.85-.07-1.52-.1-2.05-.1-1.08-.06-2.17-.12-3.25-.17-.08 0-.14.02-.19.05-.1.05-.18.14-.16.3.27 2.55-.01 5.12-.92 7.52-.15.38.4.56.62.28 1.32.59 2.68 1.05 4.08 1.37 0 2.78-.14 7.58-.33 12.91 0 0 0 .02-.01.03-.61 3.66-.79 7.42-1 11.12-.23 4.01-.43 8.03-.44 12.05 0 .64 0 1.28.03 1.93.02.31 0 .68.15.96.06.11.14.16.24.17-.2.17-.21.54.11.59 3.83.67 7.78.71 11.68.25 2.3-.19 4.87-.65 7.65-1.56 1.85-.54 3.67-1.18 5.43-1.91 7.2-3.02 14.31-8.07 17.35-15.53.76-1.86 1.17-3.8 1.31-5.75.3-1.93.28-3.82-.09-5.58l.01-.02Zm-19.32-15.42c5.74 1.41 11.94 3.68 15.65 8.55.25.32.47.65.69.99-2.3-2.82-5.68-5.69-12.88-8.23-2.16-.76-4.35-1.43-6.64-2.02 1.06.21 2.13.45 3.18.71Zm-25.82-3.04c.13 0 .27.01.4.02-.14.1-.26.23-.37.38 0-.13-.02-.26-.03-.4Zm34.82 22.17c-.75 3.09-3.55 5.66-5.88 7.58-3.35 2.76-7.21 5.03-11.28 6.54-1.33.49-2.71.9-4.12 1.15.06-1.38.08-2.76.07-4.13-.02-3.78-.16-7.56-.41-11.33-.09-1.37-.18-2.74-.37-4.1 0-.06-.03-.11-.06-.15.09-3.25.12-6.16.03-8.12 6.86 1.05 10.56 2.17 14.06 3.62 5.52 2.28 8.59 5.44 7.97 8.96l-.01-.02Zm-22 16.15c-.12 0-.23-.02-.34-.03l.34-.03v.06Zm-.69-.7c0-3.13.26-8.84.47-14.51.06 1.2.11 2.41.15 3.6.15 3.6.25 7.23.09 10.83-.24.03-.48.05-.71.07v.01Zm-12.33-30.94c.37.63 2.01 1.01 3.23 1.25v.15c-1.31-.31-2.59-.73-3.83-1.29.12-.36.23-.72.33-1.09.08.48.18.84.27.98Zm13.7 31.65v-.18c3.41-.56 6.71-2.02 9.69-3.68 2.31-1.28 4.59-2.78 6.63-4.53-4.69 4.53-11.61 8.24-16.33 8.38l.01.01Zm24.07-.75c-2.05 1.93-4.37 3.56-6.83 4.95 2.7-1.78 5.52-4.03 8.42-6.87.82-.82 1.56-1.69 2.23-2.59-1.08 1.65-2.38 3.16-3.81 4.51h-.01ZM187.16 92.14c-.79-2.47-2.1-7.12-3.1-6.87-.19-.01-2.09.77-4.08 1.54-3.06 1.18-5.91 2.13-10.09 2.82-2.74.42-5.87 1.01-10.61 1.06.04-3.34.05-6.01.05-7.99 7.97-.65 12.33-2.11 16.37-3.55 1.11-.39 2.69-1.01 2.63-1.8-.08-.35-.55-1.39-1.17-2.61-.47-1.16-.98-2.31-1.61-3.38-.42-.71-1.04-1.69-1.86-2.06-.11-.08-.22-.13-.29-.12-.02 0-.04 0-.07.01-.19-.04-.39-.05-.6-.01-.17.03-.24.15-.25.28-.04.02-.09.04-.14.05-4.33 1.48-8.85 2.33-13.24 3.61a499.1 499.1 0 0 0-.31-8.19c4.51-.99 8.88-1.38 13.11-1.82 3.68-.38 6.28.12 7.47.34.59.11.9.16 1.16.18h.1c-.1.37.44.66.62.28.02-.04.03-.08.05-.13.15.2.53.22.62-.1.17-.58.19-1.21.21-1.81v-.36c.03-.15.05-.3.07-.45.52-2.47.33-5.09-.64-7.44-.11-.27-.44-.28-.6-.14-.08-.21-.15-.42-.24-.62-.19-.41-.79-.05-.6.35.03.07.05.15.09.22-.98-.42-2.15-.54-3.17-.63-2.17-.19-4.37-.14-6.54 0-5.7.35-11.4 1.3-16.91 2.79-2.08.56-4.13 1.22-6.14 2-4.54 1.05-3.79 1.51-2.17 6.07.18.51.46 1.68.54 1.94.82 2.47 1.08 2.13 3.1 2.13s0 .05 0 .08h.52c-.48 2.66-.51 5.45-.62 8.13-.15 3.48-.22 6.96-.28 10.45 0 .41-.01.82-.02 1.23-.16.29-.33.57-.51.85-.05.38-.09.77-.14 1.18-.42 3.52-.59 6.48-.52 8.8v.34c.02.47.05.76.06.87.16 1.57-.26 3.47 1.35 3.79 1.61.32 3.5.55 4.85.55.11 0 .22-.02.33-.02 1.79.24 3.67.05 5.45-.12 2.85-.28 5.69-.7 8.51-1.19 3.03-.53 6.05-1.14 9.04-1.86 2.4-.58 4.82-1.19 7.13-2.06.51-.19 1.73-.57 2.46-1.14 1.81-.68 2.18-1 1.57-2.67-.23-.62-.48-1.49-.91-2.78l-.03-.02Zm-11.12-38.71c.89.05 1.93.08 2.89.3-.33 0-.68-.02-1.06-.03-8.28-.26-14.88.75-23.97 2.51 2.41-.64 4.85-1.16 7.28-1.59 4.87-.86 9.91-1.45 14.86-1.19Zm-26.53 22.13c.03 1.71.04 3.43 0 5.14-.04 1.27-.11 2.55-.24 3.82 0-.73.02-1.46.04-2.19.05-2.26.12-4.51.22-6.77h-.02Zm6.73 27.85c.2-.1.4-.21.58-.33 1.82-.17 3.82-.24 5.94-.34-.86.11-1.72.24-2.58.33-1.27.14-2.61.31-3.93.34h-.01ZM534.48 85.44c-3.52-8.38-7.07-16.75-10.5-25.17-.63-1.54-1.25-3.09-1.86-4.65-.31-.8-.65-1.6-.87-2.43-.04-.17-.17-.24-.31-.25.1-.2 0-.51-.29-.53-1.59-.08-3.18-.22-4.78-.25-1.96-.03-3.91.13-5.84.42-.31.05-.31.38-.13.56-.03.06-.05.14-.04.22.23 1.54.63 3.06 1.16 4.53.13.35.27.7.41 1.06l-2.68 6.18c-.11.03-.2.09-.25.22-.67 1.9-1.52 3.73-2.34 5.56a536.85 536.85 0 0 1-3.9 8.45c-2.64 5.64-5.34 11.25-7.91 16.93-.44.97-.88 1.94-1.29 2.93-.2.48-.47 1-.55 1.52v.05c-.02.12.02.26.16.34 1.19.73 2.41 1.41 3.66 2.05 1.2.62 2.45 1.25 3.76 1.61.43.12.62-.55.19-.67-1.13-.31-2.2-.83-3.24-1.36 1.09.36 2.1.69 2.75.93 2.82 1.01 2.38 1.1 4.3-3.75 2.1-1.09 4.34-1.96 6.53-2.79 4.35-1.64 8.8-3.03 13.27-4.29.82 2.01 1.77 3.97 2.72 5.92.35.83.62 1.45.79 1.82.22.42.45.8.69 1.15.17.33.33.67.5 1 .42.8.84 1.63 1.4 2.35.23.29.6 0 .55-.31 1.53-.02 3.06-.07 4.58-.27.92-.12 1.82-.32 2.71-.54 1.39-.27 3.85-1.11 3.74-1.42-.67-1.96-1.55-3.87-2.34-5.78-1.57-3.78-3.16-7.56-4.75-11.33v-.01Zm-11.65-26.16c1.54 3.81 3.12 7.6 4.7 11.4 2.94 7.05 5.91 14.09 8.87 21.13l-1.06-2.17c-2.71-5.51-5.2-11.19-7.41-16.87l-6.65-17.15c-.65-1.45-.55-2.19-.93-2.53.09 0 .18.01.28.02a.29.29 0 0 0-.04.26c.52 2.02 1.47 3.98 2.25 5.91h-.01Zm-6.58 13.58c.05-.15.09-.31.14-.46 1.41 3.92 2.88 7.9 4.39 11.87-3.22.52-6.38 1.25-9.46 2.14.55-1.22 1.05-2.46 1.53-3.7 1.24-3.24 2.37-6.53 3.39-9.85h.01Zm-.23-20c.36 0 .73.03 1.09.05-2.15.1-5.18.33-5.87.74-.24.15-.41.3-.53.45-.06-.29-.13-.58-.18-.88 1.82-.26 3.65-.39 5.49-.35v-.01Zm-.09 18.72c-.49 1.67-1.05 3.33-1.6 4.97-1.07 3.19-2.19 6.38-3.57 9.46-.09.21-.19.43-.29.65-.25.07-.5.14-.74.22 2.53-6.16 4.61-11.29 6.2-15.3Zm-6.34 25.16c4.97-2.38 9.37-4.1 14.02-5.27l.26.64c-4.8 1.35-9.63 2.8-14.28 4.63Zm20.17 6.76c.33.23.68.42 1.04.56h-.33c-.12 0-.21.06-.26.13-.15-.23-.31-.45-.45-.7v.01ZM226.57 91.75c-3.55-4.74-6.68-9.11-9.31-12.99 9.2-15.25 10.05-17.81 10.35-18.38.17-.34 1.09-2.27.64-2.53-1.13-.65-1.03-.65-2.97-1.71-1.19-.65-3.04-1.61-4.53-2.12-1.71-.59-1.24-.36-3 2.77-.06.1-.11.2-.17.3-.75 1.02-1.48 2.05-2.2 3.09-1.88 2.71-3.73 5.45-5.69 8.1-3.68-4.91-6.88-8.76-9.51-11.43-.15-.15-.3-.29-.46-.42-1.27-1.28-7.24 3.53-7.93 5.58-.09.09-.19.16-.28.25-.27.26.03.64.33.58.19.65.5 1.29.94 1.91 3.85 5.06 7.19 9.76 9.94 14-1.23 2.61-3.06 5-4.67 7.38l-2.28 3.33c-.5.66-.93 1.23-1.29 1.69-.67.93-2.09 2.61-2.3 3.87-.51.85-1.16 1.84-1.29 2.83-.06.44.61.63.67.19.01-.08.04-.15.06-.22 1.36 1.08 2.76 2.11 4.19 3.11 1.3.91 2.62 1.85 4.04 2.56.21.1.4 0 .48-.17.24.07.48.14.72.2.44.1.62-.57.19-.67-2.02-.48-3.77-1.57-5.23-3.02-.47-.46-.9-.96-1.32-1.46 1.74 1.35 4.2 2.89 5.89 4.14 1.39 1.03 2.85-2.27 4.22-4.2 1.86-2.64 3.96-5.86 5.52-8.29l10.39 14.51c.67.81 1.14 1.21 1.57 1.36-.05.24.12.51.41.4 1.53-.58 3.05-1.19 4.54-1.87 1.52-.69 3.06-1.45 4.36-2.5a.28.28 0 0 0 .12-.23c1.66-1.1.81-1.74-1.41-4.91-1.13-1.58-1.71-2.36-3.7-5.01l-.03-.02Zm2.41 6.54c.56 1.15 1.19 2.52 1.11 3.81-.06.04-.12.07-.17.1-.03-.88-.55-2.66-.94-3.91Zm-16.51-32.73c1.86-2.65 3.65-5.35 5.57-7.95.4-.55.81-1.13 1.26-1.66.19-.18.38-.33.56-.45.18.03.36.08.55.13l-8.05 10.11.12-.18h-.01ZM192.7 95.48c.79-1.37 1.66-2.69 2.54-4 1.19-1.79 2.4-3.56 3.61-5.33-.04.09-.09.17-.13.26-.1.22.03.41.2.49-2.47 3.42-4.89 6.73-6.4 9.28.21.24.4.48.63.75-.24.07-.4.36-.17.56.4.33.72.77 1.05 1.17.09.11.18.21.27.32-.84-.61-1.66-1.24-2.47-1.88.24-.57.58-1.11.87-1.61v-.01Zm7.46-10.32c.47-.81.98-1.59 1.49-2.37.31-.48.64-.95.96-1.43.26-.29.52-.56.75-.79-.99 1.48-2.09 3.03-3.2 4.59Zm10.03-16.22s-.03-.05-.05-.07c.22-.29.43-.59.64-.89-.2.32-.4.65-.58.96h-.01ZM371.54 87.96c-.01-.08-.01-.16-.03-.23-.06-.38-.58-.29-.66.03-.3-.05-.6-.08-.81-.11-1.14-.15-2.29-.19-3.44-.2 1.04-.09 2.09-.18 3.14-.23.45-.02.45-.72 0-.7-6.57.35-13.14 1.23-19.65 2.11-1.53.21-3.05.42-4.57.68-.01 0-.02.01-.04.01-.04-3.33-.13-6.66-.24-9.99-.19-5.7-.4-11.41-.88-17.1-.13-1.51-.23-3.07-.49-4.58 0-.25 0-.48-.02-.68-.06-1.19-.04-2.61-.68-2.78-.16-.07-.72-.16-1.5-.24.22-.17.16-.62-.2-.63-1.19-.04-2.39.09-3.57.23-1.2.14-2.41.32-3.59.6-.16-.1-.41-.06-.5.12-.06.02-.13.03-.19.05-.35.1-.29.55-.03.66-.26.6-.19 2.27-.21 3-.02.66-.66 33.73-.9 40.3-.03.65.06 1.12.04 1.45-.16 3.05.87 4.96 6.34 3.93 1.09-.08 2.75-.77 5.36-1.43 4.13-1.04 5.78-1.52 6.2-1.65 6.43-1.69 6.78-1.97 11.72-2.43.55-.05 4.8-.38 6.03-.3.64.04 1.19.07 1.65.1.09 0 .16-.03.24-.05.1.27.56.33.66-.02.39-1.32.61-2.71.78-4.08.2-1.61.29-3.24.15-4.86.24.03.52-.23.38-.53-.09-.2-.27-.33-.49-.43v-.02Zm-.63.56c.07.57.11 1.14.11 1.71-.21-.99-.53-1.71-.95-1.87.22.03.44.06.65.11.06.01.12.04.19.05Zm-25.41 1.73c1.54-.36 3.1-.64 4.66-.89-1.61.37-3.18.77-4.66 1.2v-.31Zm-.86-7.37c-.07-1.37-.16-2.75-.25-4.12-.21-3.13-.45-6.27-.79-9.4.02-2.25.08-4.31.13-6.11.16 2.08.29 4.16.4 6.24.23 4.46.38 8.93.5 13.39h.01Zm-.94-4c.16 2.41.29 4.83.39 7.24.06 1.6.14 3.22.09 4.83-.15.05-.32.09-.47.14V78.88h-.01ZM483.72 92.83c-3.05-2.28-6.22-4.4-9.38-6.51 8.86-6.49 13.49-12.95 13.73-19.23.04-.76 0-1.5-.13-2.2-.67-3.82-3.5-6.68-8.39-8.48.13.04.27.08.4.13 3.92 1.39 7.74 4.23 8.5 8.56.34 1.95-.05 3.96-.98 5.69-.21.4.39.75.6.35 1.86-3.46 1.46-7.55-.97-10.63-3.53-4.47-9.76-5.88-15.16-6.16-2.32-.12-4.64-.04-6.95.19-6 .32-12.71 1.68-17.63 3.21-.37.11-.67.23-.92.35-.2-.17-.62.02-.57.37v.03c-.64.68-.18 1.64.48 3.21.38.91.67 1.89 1.15 2.58.32.76.68 1.51 1.13 2.19.14.21.38.19.53.07.19-.02.38-.05.57-.08v1.57c-.06.06-.1.13-.11.23-.27 4.18-.34 8.38-.48 12.57l-.3 9.03c-.24 3.91-.44 6.77-.46 7.26-.05.88-.11 1.95.07 2.81-.01.22-.02.43-.04.65 0 .11-.02.23-.03.35 0 .05-.03.27-.01.16-.05.4.5.59.64.28.05.04.12.08.2.08 1.75.13 3.5.28 5.25.3 1.69.02 3.38-.12 5.06-.32.08.23.36.39.55.15.06-.08.11-.17.16-.26.18-.09.24-.32.18-.48.05-.2.1-.4.13-.6.16-.86.25-1.74.33-2.62.11-1.17.17-2.34.23-3.51.15-.01.32-.03.52-.04.36-.03 1.73-.15 2.06-.15.39 0 .7-.02.95-.04 1.76 1.11 3.45 2.35 5.14 3.55 2.83 2.01 5.64 4.04 8.47 6.04 1.42 1 2.85 2 4.29 2.97.1.06.19.07.27.04.08 0 .17-.02.25-.1 1.61-1.56 3.15-3.18 4.6-4.88.75-.88 1.49-1.78 2.15-2.73.01.01.03.02.04.03.34.3.83-.2.49-.49-2.16-1.9-4.34-3.76-6.64-5.48l.03-.01Zm-6.38-3.65a55.72 55.72 0 0 0-4-2.13c.14-.1.26-.19.4-.29 1.2.81 2.4 1.61 3.6 2.42Zm-20.1 11.78c.67-.37 1.23-.91 1.67-1.6-.11.5-.24 1-.38 1.49-.43.04-.86.08-1.29.11Zm2.38-37.24c1.34-.31 2.56-.52 3.71-.69-1.03.19-2.04.41-3.04.65-.14-.07-.34-.02-.45.11-.07.02-.15.04-.22.05v-.13.01Zm.04.84c.07-.02.14-.03.2-.05.34 1.66.41 3.41.5 5.09.17 2.9.24 5.81.28 8.71l.03 3.17c-.17.07-.34.14-.51.2-.06-4.96-.21-10.58-.51-17.12h.01Zm16.04 5.62c-1.16 2.25-3.06 4.1-5.02 5.66-2.8 2.23-5.99 3.97-9.3 5.35-.01-3.56-.09-7.12-.27-10.67-.1-2.04-.16-4.16-.57-6.18 3.3-.78 6.72-1.36 10.1-1.1 1.85.14 4.23.59 5.32 2.29.92 1.43.46 3.24-.26 4.65Zm.85-.18c.6-1.37.9-2.92.28-4.32-.67-1.52-2.2-2.32-3.76-2.74.46.1.89.21 1.29.37 1.74.67 2.69 1.88 2.93 3.21.2 1.13-.05 2.25-.74 3.47V70Zm-27.47-4.14c-.12-.19-.23-.38-.34-.57.74.42.85.36.99.41v.08c-.22.03-.43.06-.65.08Zm11.21 30.46c-.08 1.08-.16 2.17-.33 3.24-.05.35-.11.69-.2 1.03 0 .04-.02.07-.03.11-.15.02-.3.04-.45.05.45-1.64.76-3.36.79-5.07.03-.29.08-.57.1-.89-.03-.31-.03-.47.24-.57-.04.69-.07 1.39-.12 2.08v.02Zm5.6-2.47c.48.11.92.52 2.49 1.72-.46-.32-.92-.65-1.38-.97-.37-.25-.73-.5-1.1-.75h-.01Zm21.23 7.24a70.76 70.76 0 0 1-4.37 4.63c-.14-.09-.27-.19-.4-.28.19-.09.37-.24.55-.47.87-1.14 5.43-5.51 5.49-7.45.31.26.62.53.92.79-.67.97-1.42 1.88-2.19 2.77v.01Z",fill:"currentColor",transform:"translate(-144.023 -51.76)"})]}),GP=({style:e,size:t="small",withText:r})=>(0,fn.jsxs)("div",{className:`ExcalidrawLogo is-${t}`,style:e,children:[(0,fn.jsx)(aH,{}),r&&(0,fn.jsx)(lH,{})]});var vt=w(P(),1),kE=({icon:e,shortcut:t,children:r})=>{let o=rt();return(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)("div",{className:"welcome-screen-menu-item__icon",children:e}),(0,vt.jsx)("div",{className:"welcome-screen-menu-item__text",children:r}),t&&!o.editor.isMobile&&(0,vt.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:t})]})};kE.displayName="WelcomeScreenMenuItemContent";var Jm=({onSelect:e,children:t,icon:r,shortcut:o,className:i="",...a})=>(0,vt.jsx)("button",{...a,type:"button",className:`welcome-screen-menu-item ${i}`,onClick:e,children:(0,vt.jsx)(kE,{icon:r,shortcut:o,children:t})});Jm.displayName="WelcomeScreenMenuItem";var WP=({children:e,href:t,icon:r,shortcut:o,className:i="",...a})=>(0,vt.jsx)("a",{...a,className:`welcome-screen-menu-item ${i}`,href:t,target:"_blank",rel:"noreferrer",children:(0,vt.jsx)(kE,{icon:r,shortcut:o,children:e})});WP.displayName="WelcomeScreenMenuItemLink";var gn=({children:e})=>{let{WelcomeScreenCenterTunnel:t}=It();return(0,vt.jsx)(t.In,{children:(0,vt.jsx)("div",{className:"welcome-screen-center",children:e||(0,vt.jsxs)(vt.Fragment,{children:[(0,vt.jsx)(ME,{}),(0,vt.jsx)(PE,{children:E("welcomeScreen.defaults.center_heading")}),(0,vt.jsxs)(LE,{children:[(0,vt.jsx)(DE,{}),(0,vt.jsx)(RE,{})]})]})})})};gn.displayName="Center";var ME=({children:e})=>(0,vt.jsx)("div",{className:"welcome-screen-center__logo excalifont welcome-screen-decor",children:e||(0,vt.jsx)(GP,{withText:!0})});ME.displayName="Logo";var PE=({children:e})=>(0,vt.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor excalifont",children:e});PE.displayName="Heading";var LE=({children:e})=>(0,vt.jsx)("div",{className:"welcome-screen-menu",children:e});LE.displayName="Menu";var RE=()=>{let e=xr();return(0,vt.jsx)(Jm,{onSelect:()=>e.executeAction(Nl),shortcut:"?",icon:As,children:E("helpDialog.title")})};RE.displayName="MenuItemHelp";var DE=()=>{let e=it(),t=xr();return e.viewModeEnabled?null:(0,vt.jsx)(Jm,{onSelect:()=>t.executeAction(yc),shortcut:cr("loadScene"),icon:ks,children:E("buttons.load")})};DE.displayName="MenuItemLoadScene";var KP=({onSelect:e})=>{let{t}=ir();return(0,vt.jsx)(Jm,{shortcut:null,onSelect:e,icon:Ep,children:t("labels.liveCollaboration")})};KP.displayName="MenuItemLiveCollaborationTrigger";gn.Logo=ME;gn.Heading=PE;gn.Menu=LE;gn.MenuItem=Jm;gn.MenuItemLink=WP;gn.MenuItemHelp=RE;gn.MenuItemLoadScene=DE;gn.MenuItemLiveCollaborationTrigger=KP;v();var zn=w(P(),1),$h=({children:e})=>{let{WelcomeScreenMenuHintTunnel:t}=It();return(0,zn.jsx)(t.In,{children:(0,zn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[w2,(0,zn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.menuHint")})]})})};$h.displayName="MenuHint";var Hh=({children:e})=>{let{WelcomeScreenToolbarHintTunnel:t}=It();return(0,zn.jsx)(t.In,{children:(0,zn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,zn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.toolbarHint")}),T2]})})};Hh.displayName="ToolbarHint";var Uh=({children:e})=>{let{WelcomeScreenHelpHintTunnel:t}=It();return(0,zn.jsx)(t.In,{children:(0,zn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,zn.jsx)("div",{children:e||E("welcomeScreen.defaults.helpHint")}),S2]})})};Uh.displayName="HelpHint";var $n=w(P(),1),Gh=e=>(0,$n.jsx)($n.Fragment,{children:e.children||(0,$n.jsxs)($n.Fragment,{children:[(0,$n.jsx)(gn,{}),(0,$n.jsx)($h,{}),(0,$n.jsx)(Hh,{}),(0,$n.jsx)(Uh,{})]})});Gh.displayName="WelcomeScreen";Gh.Center=gn;Gh.Hints={MenuHint:$h,ToolbarHint:Hh,HelpHint:Uh};var sH=Gh;v();var Wh=w(P(),1),YP=({isCollaborating:e,onSelect:t,...r})=>{let o=it(),i=o.width<830;return(0,Wh.jsxs)(Qn,{...r,className:q("collab-button",{active:e}),type:"button",onSelect:t,style:{position:"relative",width:i?void 0:"auto"},title:E("labels.liveCollaboration"),children:[i?z2:E("labels.share"),o.collaborators.size>0&&(0,Wh.jsx)("div",{className:"CollabButton-collaborators",children:o.collaborators.size})]})},cH=YP;YP.displayName="LiveCollaborationTrigger";v();var dH=(e,t,r)=>!!(t&&(t.id===e.editingElement?.id||t.id===e.resizingElement?.id||t.id===e.draggingElement?.id||t.version>r.version||t.version===r.version&&t.versionNonce<r.versionNonce)),mH=(e,t,r)=>{let o=Le(e),i=[],a=new Set;for(let c of t)if(!a.has(c.id)){let d=o.get(c.id),p=dH(r,d,c);d&&p?(i.push(d),a.add(d.id)):(i.push(c),a.add(c.id))}for(let c of e)a.has(c.id)||(i.push(c),a.add(c.id));let s=f2(i);return ua(s),s};v();var Qm=w(P(),1),VP=({children:e,icon:t})=>{let{TTDDialogTriggerTunnel:r}=It(),o=ot();return(0,Qm.jsx)(r.In,{children:(0,Qm.jsxs)(st.Item,{onSelect:()=>{ze("ai","dialog open","ttd"),o({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:t??kT,children:[e??E("labels.textToDiagram"),(0,Qm.jsx)(st.Item.Badge,{children:"AI"})]})})};VP.displayName="TTDDialogTrigger";var Kh=w(P(),1);HP();var uH=e=>{let{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i=!1,onPointerUpdate:a,renderTopRightUI:s,langCode:c=Yn.code,viewModeEnabled:d,zenModeEnabled:p,gridModeEnabled:f,libraryReturnUrl:m,theme:g,name:h,renderCustomStats:b,onPaste:y,detectScroll:T=!0,handleKeyboardGlobally:k=!1,onLibraryChange:I,autoFocus:A=!1,generateIdForFile:O,onLinkOpen:z,onPointerDown:L,onPointerUp:F,onScrollChange:D,children:V,validateEmbeddable:G,renderEmbeddable:Q,aiEnabled:de,showDeprecatedFonts:K}=e,se=e.UIOptions?.canvasActions,be={...e.UIOptions,canvasActions:{...wx.canvasActions,...se},tools:{image:e.UIOptions?.tools?.image??!0}};return se?.export&&(be.canvasActions.export.saveFileToDisk=se.export?.saveFileToDisk??wx.canvasActions.export.saveFileToDisk),be.canvasActions.toggleTheme===null&&typeof g>"u"&&(be.canvasActions.toggleTheme=!0),(0,Yh.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let nt=Ee=>{typeof Ee.scale=="number"&&Ee.scale!==1&&Ee.preventDefault()};return document.addEventListener("touchmove",nt,{passive:!1}),()=>{document.removeEventListener("touchmove",nt)}},[]),(0,Kh.jsx)(Ef,{unstable_createStore:()=>zr,scope:dt,children:(0,Kh.jsx)(PI,{langCode:c,theme:g,children:(0,Kh.jsx)($P,{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i,onPointerUpdate:a,renderTopRightUI:s,langCode:c,viewModeEnabled:d,zenModeEnabled:p,gridModeEnabled:f,libraryReturnUrl:m,theme:g,name:h,renderCustomStats:b,UIOptions:be,onPaste:y,detectScroll:T,handleKeyboardGlobally:k,onLibraryChange:I,autoFocus:A,generateIdForFile:O,onLinkOpen:z,onPointerDown:L,onPointerUp:F,onScrollChange:D,validateEmbeddable:G,renderEmbeddable:Q,aiEnabled:de!==!1,showDeprecatedFonts:K,children:V})})})},pH=(e,t)=>{if(e.children!==t.children)return!1;let{initialData:r,UIOptions:o={},...i}=e,{initialData:a,UIOptions:s={},...c}=t,d=Object.keys(o),p=Object.keys(s);return d.length!==p.length?!1:d.every(m=>m==="canvasActions"?Object.keys(o.canvasActions).every(h=>h==="export"&&o?.canvasActions?.export&&s?.canvasActions?.export?o.canvasActions.export.saveFileToDisk===s.canvasActions.export.saveFileToDisk:o?.canvasActions?.[h]===s?.canvasActions?.[h]):o[m]===s[m])&&gr(i,c)},fH=Yh.default.memo(uH,pH);fH.displayName="Excalidraw";export{Qn as Button,xx as DEFAULT_LASER_COLOR,vh as DefaultSidebar,fH as Excalidraw,ol as FONT_FAMILY,iH as Footer,cH as LiveCollaborationTrigger,kr as MIME_TYPES,lo as MainMenu,Yo as ROUNDNESS,Hi as Sidebar,W as StoreAction,Be as THEME,eE as TTDDialog,VP as TTDDialogTrigger,sH as WelcomeScreen,vv as bumpVersion,Bc as convertToExcalidrawElements,Yn as defaultLang,M7 as elementPartiallyOverlapsWithOrContainsBBox,P7 as elementsOverlappingBBox,hv as exportToBlob,El as exportToCanvas,A7 as exportToClipboard,Yd as exportToSvg,lt as getCommonBounds,L7 as getFreeDrawSvgPath,Ng as getLibraryItemsHash,We as getNonDeletedElements,R7 as getSceneVersion,ov as getVisibleSceneBounds,Cv as hashElementsVersion,Iv as hashString,k7 as isElementInsideBBox,wl as isInvisiblySmallElement,Qe as isLinearElement,Ys as languages,qp as loadFromBlob,mv as loadLibraryFromBlob,dv as loadSceneOrLibraryFromBlob,Vk as mergeLibraryItems,me as mutateElement,Pe as newElementWith,Ci as normalizeLink,n0 as parseLibraryTokensFromUrl,mH as reconcileElements,cv as restore,_7 as restoreAppState,sv as restoreElements,Hd as restoreLibraryItems,to as sceneCoordsToViewportCoords,iv as serializeAsJSON,lv as serializeLibraryAsJSON,rt as useDevice,yF as useHandleLibrary,ir as useI18n,kt as viewportCoordsToSceneCoords,mk as zoomToFitBounds};
|
|
169
189
|
/*! Bundled license information:
|
|
170
190
|
|
|
171
|
-
react/cjs/react-jsx-runtime.production.min.js:
|
|
172
|
-
(**
|
|
173
|
-
* @license React
|
|
174
|
-
* react-jsx-runtime.production.min.js
|
|
175
|
-
*
|
|
176
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
177
|
-
*
|
|
178
|
-
* This source code is licensed under the MIT license found in the
|
|
179
|
-
* LICENSE file in the root directory of this source tree.
|
|
180
|
-
*)
|
|
181
|
-
|
|
182
191
|
use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js:
|
|
183
192
|
(**
|
|
184
193
|
* @license React
|
|
@@ -200,4 +209,14 @@ use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.productio
|
|
|
200
209
|
* This source code is licensed under the MIT license found in the
|
|
201
210
|
* LICENSE file in the root directory of this source tree.
|
|
202
211
|
*)
|
|
212
|
+
|
|
213
|
+
lodash/lodash.js:
|
|
214
|
+
(**
|
|
215
|
+
* @license
|
|
216
|
+
* Lodash <https://lodash.com/>
|
|
217
|
+
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
218
|
+
* Released under MIT license <https://lodash.com/license>
|
|
219
|
+
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
220
|
+
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
221
|
+
*)
|
|
203
222
|
*/
|