@excalidraw/excalidraw 0.17.1-d9bbf1e → 0.17.1-e63dd02
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 +4 -0
- package/dist/browser/dev/excalidraw-assets-dev/CascadiaCode-Regular-TMZI7IJ5.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/{chunk-XOM7LNOU.js → chunk-IT7T3AIK.js} +49 -8
- package/dist/browser/dev/excalidraw-assets-dev/chunk-IT7T3AIK.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{chunk-BLEB3M62.js → chunk-RNHSD5AR.js} +7668 -2142
- package/dist/browser/dev/excalidraw-assets-dev/chunk-RNHSD5AR.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{dist-ITJNUBZF.js → dist-DNSPZDOZ.js} +66 -32
- package/dist/browser/dev/excalidraw-assets-dev/dist-DNSPZDOZ.js.map +7 -0
- package/dist/browser/dev/excalidraw-assets-dev/{en-TR4QLF5E.js → en-XV7OZCPP.js} +8 -2
- package/dist/browser/dev/excalidraw-assets-dev/{image-ZGDDRBEN.js → image-77HZYGLG.js} +2 -2
- package/dist/browser/dev/excalidraw-assets-dev/{image-O66MQ7WQ.css → image-WDHYGKKP.css} +1 -1
- package/dist/browser/dev/excalidraw-assets-dev/{image-O66MQ7WQ.css.map → image-WDHYGKKP.css.map} +2 -2
- package/dist/browser/dev/index.css +610 -180
- package/dist/browser/dev/index.css.map +3 -3
- package/dist/browser/dev/index.js +13306 -8006
- package/dist/browser/dev/index.js.map +4 -4
- package/dist/browser/prod/excalidraw-assets/CascadiaCode-Regular-TMZI7IJ5.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/chunk-OYEADJSR.js +63 -0
- package/dist/browser/prod/excalidraw-assets/{chunk-5SYIAZGL.js → chunk-PDYFZJMS.js} +5 -5
- package/dist/browser/prod/excalidraw-assets/dist-NLUQPPQQ.js +7 -0
- package/dist/browser/prod/excalidraw-assets/en-YVAVVILW.js +1 -0
- package/dist/browser/prod/excalidraw-assets/image-X3GFZHNN.js +1 -0
- package/dist/browser/prod/index.css +1 -1
- package/dist/browser/prod/index.js +70 -51
- package/dist/dev/CascadiaCode-Regular-TMZI7IJ5.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/dev/{en-XW4JO6VX.json → en-YNVBSAIL.json} +42 -7
- package/dist/dev/index.css +610 -180
- package/dist/dev/index.css.map +3 -3
- package/dist/dev/index.js +22165 -16833
- package/dist/dev/index.js.map +4 -4
- package/dist/excalidraw/actions/actionAddToLibrary.d.ts +24 -9
- package/dist/excalidraw/actions/actionAlign.d.ts +8 -8
- package/dist/excalidraw/actions/actionBoundText.d.ts +20 -10
- package/dist/excalidraw/actions/actionBoundText.js +3 -1
- package/dist/excalidraw/actions/actionCanvas.d.ts +100 -40
- package/dist/excalidraw/actions/actionCanvas.js +1 -1
- package/dist/excalidraw/actions/actionClipboard.d.ts +62 -26
- package/dist/excalidraw/actions/actionDeleteSelected.d.ts +28 -12
- package/dist/excalidraw/actions/actionDeleteSelected.js +24 -5
- package/dist/excalidraw/actions/actionDistribute.d.ts +4 -4
- package/dist/excalidraw/actions/actionDuplicateSelection.d.ts +3 -3
- package/dist/excalidraw/actions/actionDuplicateSelection.js +1 -2
- package/dist/excalidraw/actions/actionElementLock.d.ts +17 -7
- package/dist/excalidraw/actions/actionExport.d.ts +75 -30
- package/dist/excalidraw/actions/actionFinalize.d.ts +17 -7
- package/dist/excalidraw/actions/actionFinalize.js +2 -2
- package/dist/excalidraw/actions/actionFlip.d.ts +4 -4
- package/dist/excalidraw/actions/actionFlip.js +2 -2
- package/dist/excalidraw/actions/actionFrame.d.ts +338 -10
- package/dist/excalidraw/actions/actionGroup.d.ts +324 -4
- package/dist/excalidraw/actions/actionHistory.d.ts +3 -3
- package/dist/excalidraw/actions/actionHistory.js +8 -8
- package/dist/excalidraw/actions/actionLinearEditor.d.ts +12 -5
- package/dist/excalidraw/actions/actionLinearEditor.js +21 -5
- package/dist/excalidraw/actions/actionLink.d.ts +8 -3
- package/dist/excalidraw/actions/actionMenu.d.ts +24 -9
- package/dist/excalidraw/actions/actionNavigate.d.ts +17 -7
- package/dist/excalidraw/actions/actionProperties.d.ts +476 -82
- package/dist/excalidraw/actions/actionProperties.js +384 -59
- package/dist/excalidraw/actions/actionSelectAll.d.ts +9 -4
- package/dist/excalidraw/actions/actionStyles.d.ts +12 -4
- package/dist/excalidraw/actions/actionStyles.js +3 -2
- package/dist/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
- package/dist/excalidraw/actions/actionTextAutoResize.js +38 -0
- package/dist/excalidraw/actions/actionToggleGridMode.d.ts +9 -4
- package/dist/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +8 -3
- package/dist/excalidraw/actions/actionToggleStats.d.ts +9 -3
- package/dist/excalidraw/actions/actionToggleStats.js +4 -3
- package/dist/excalidraw/actions/actionToggleViewMode.d.ts +8 -3
- package/dist/excalidraw/actions/actionToggleZenMode.d.ts +8 -3
- package/dist/excalidraw/actions/actionZindex.d.ts +8 -4
- package/dist/excalidraw/actions/actionZindex.js +4 -0
- package/dist/excalidraw/actions/manager.d.ts +3 -3
- package/dist/excalidraw/actions/register.d.ts +1 -1
- package/dist/excalidraw/actions/shortcuts.d.ts +2 -2
- package/dist/excalidraw/actions/types.d.ts +6 -6
- 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 +6 -2
- package/dist/excalidraw/appState.js +14 -3
- package/dist/excalidraw/binaryheap.d.ts +12 -0
- package/dist/excalidraw/binaryheap.js +93 -0
- package/dist/excalidraw/change.d.ts +6 -5
- package/dist/excalidraw/change.js +20 -11
- package/dist/excalidraw/charts.d.ts +1 -1
- package/dist/excalidraw/charts.js +0 -10
- 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 +14 -9
- package/dist/excalidraw/components/App.d.ts +14 -17
- package/dist/excalidraw/components/App.js +356 -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 +5 -5
- 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/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 +2 -2
- package/dist/excalidraw/components/HintViewer.d.ts +1 -1
- package/dist/excalidraw/components/HintViewer.js +6 -3
- 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/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.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/Stats/Angle.d.ts +12 -0
- package/dist/excalidraw/components/Stats/Angle.js +53 -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 +68 -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 +199 -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 +101 -0
- package/dist/excalidraw/components/Stats/Position.d.ts +13 -0
- package/dist/excalidraw/components/Stats/Position.js +40 -0
- package/dist/excalidraw/components/Stats/index.d.ts +16 -0
- package/dist/excalidraw/components/Stats/index.js +79 -0
- package/dist/excalidraw/components/Stats/utils.d.ts +26 -0
- package/dist/excalidraw/components/Stats/utils.js +162 -0
- package/dist/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +1 -1
- 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 +3 -2
- 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 +3 -2
- package/dist/excalidraw/components/canvases/InteractiveCanvas.js +4 -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/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/helpers.d.ts +3 -3
- package/dist/excalidraw/components/icons.d.ts +10 -2
- package/dist/excalidraw/components/icons.js +29 -6
- 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 -3
- package/dist/excalidraw/constants.js +28 -4
- 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/reconcile.d.ts +3 -3
- package/dist/excalidraw/data/reconcile.js +18 -1
- package/dist/excalidraw/data/resave.d.ts +2 -2
- package/dist/excalidraw/data/restore.d.ts +3 -3
- package/dist/excalidraw/data/restore.js +58 -9
- package/dist/excalidraw/data/transform.d.ts +3 -3
- package/dist/excalidraw/data/transform.js +8 -5
- package/dist/excalidraw/data/types.d.ts +3 -3
- package/dist/excalidraw/element/ElementCanvasButtons.d.ts +1 -1
- package/dist/excalidraw/element/binding.d.ts +29 -10
- package/dist/excalidraw/element/binding.js +303 -71
- package/dist/excalidraw/element/bounds.d.ts +3 -3
- package/dist/excalidraw/element/collision.d.ts +4 -4
- package/dist/excalidraw/element/collision.js +5 -2
- package/dist/excalidraw/element/containerCache.d.ts +1 -1
- package/dist/excalidraw/element/dragElements.d.ts +6 -6
- package/dist/excalidraw/element/dragElements.js +39 -5
- package/dist/excalidraw/element/embeddable.d.ts +11 -6
- package/dist/excalidraw/element/heading.d.ts +11 -0
- package/dist/excalidraw/element/heading.js +81 -0
- package/dist/excalidraw/element/image.d.ts +2 -2
- package/dist/excalidraw/element/index.d.ts +2 -2
- package/dist/excalidraw/element/index.js +1 -1
- package/dist/excalidraw/element/linearElementEditor.d.ts +27 -16
- package/dist/excalidraw/element/linearElementEditor.js +133 -56
- package/dist/excalidraw/element/mutateElement.d.ts +3 -3
- package/dist/excalidraw/element/mutateElement.js +5 -3
- package/dist/excalidraw/element/newElement.d.ts +12 -10
- package/dist/excalidraw/element/newElement.js +31 -16
- package/dist/excalidraw/element/resizeElements.d.ts +15 -6
- package/dist/excalidraw/element/resizeElements.js +122 -46
- package/dist/excalidraw/element/resizeTest.d.ts +4 -4
- package/dist/excalidraw/element/resizeTest.js +2 -4
- package/dist/excalidraw/element/routing.d.ts +13 -0
- package/dist/excalidraw/element/routing.js +641 -0
- package/dist/excalidraw/element/showSelectedShapeActions.d.ts +2 -2
- package/dist/excalidraw/element/sizeHelpers.d.ts +2 -2
- package/dist/excalidraw/element/sortElements.d.ts +1 -1
- package/dist/excalidraw/element/textElement.d.ts +6 -28
- package/dist/excalidraw/element/textElement.js +64 -112
- package/dist/excalidraw/element/textWysiwyg.d.ts +12 -6
- package/dist/excalidraw/element/textWysiwyg.js +75 -62
- package/dist/excalidraw/element/transformHandles.d.ts +3 -3
- package/dist/excalidraw/element/transformHandles.js +7 -12
- package/dist/excalidraw/element/typeChecks.d.ts +7 -4
- package/dist/excalidraw/element/typeChecks.js +17 -0
- package/dist/excalidraw/element/types.d.ts +22 -4
- package/dist/excalidraw/emitter.d.ts +1 -1
- package/dist/excalidraw/fonts/ExcalidrawFont.d.ts +21 -0
- package/dist/excalidraw/fonts/ExcalidrawFont.js +112 -0
- package/dist/excalidraw/fonts/index.d.ts +58 -0
- package/dist/excalidraw/fonts/index.js +240 -0
- package/dist/excalidraw/fonts/metadata.d.ts +36 -0
- package/dist/excalidraw/fonts/metadata.js +91 -0
- package/dist/excalidraw/fractionalIndex.d.ts +12 -5
- package/dist/excalidraw/fractionalIndex.js +40 -10
- package/dist/excalidraw/frame.d.ts +4 -4
- package/dist/excalidraw/frame.js +3 -3
- package/dist/excalidraw/gatransforms.d.ts +1 -1
- package/dist/excalidraw/gesture.d.ts +1 -1
- package/dist/excalidraw/groups.d.ts +4 -4
- package/dist/excalidraw/history.d.ts +8 -7
- package/dist/excalidraw/history.js +8 -8
- package/dist/excalidraw/hooks/useEmitter.d.ts +1 -1
- package/dist/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/excalidraw/i18n.d.ts +1 -1
- package/dist/excalidraw/index.d.ts +2 -2
- package/dist/excalidraw/index.js +3 -3
- package/dist/excalidraw/jotai.d.ts +1 -1
- package/dist/excalidraw/laser-trails.d.ts +3 -2
- package/dist/excalidraw/locales/en.json +42 -7
- package/dist/excalidraw/math.d.ts +47 -2
- package/dist/excalidraw/math.js +116 -0
- package/dist/excalidraw/mermaid.d.ts +2 -0
- package/dist/excalidraw/mermaid.js +29 -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/interactiveScene.d.ts +2 -2
- package/dist/excalidraw/renderer/interactiveScene.js +64 -22
- package/dist/excalidraw/renderer/renderElement.d.ts +6 -4
- package/dist/excalidraw/renderer/renderElement.js +78 -58
- package/dist/excalidraw/renderer/renderSnaps.d.ts +1 -1
- package/dist/excalidraw/renderer/staticScene.d.ts +1 -1
- package/dist/excalidraw/renderer/staticSvgScene.d.ts +4 -4
- package/dist/excalidraw/renderer/staticSvgScene.js +2 -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 +16 -7
- package/dist/excalidraw/scene/Scene.js +26 -11
- package/dist/excalidraw/scene/Shape.d.ts +1 -1
- package/dist/excalidraw/scene/Shape.js +56 -5
- package/dist/excalidraw/scene/ShapeCache.d.ts +4 -4
- package/dist/excalidraw/scene/comparisons.d.ts +3 -2
- package/dist/excalidraw/scene/comparisons.js +1 -1
- package/dist/excalidraw/scene/export.d.ts +4 -3
- package/dist/excalidraw/scene/export.js +34 -36
- 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 +6 -8
- package/dist/excalidraw/scene/zoom.d.ts +1 -1
- package/dist/excalidraw/shapes.d.ts +8 -0
- package/dist/excalidraw/shapes.js +57 -0
- package/dist/excalidraw/snapping.d.ts +4 -4
- package/dist/excalidraw/snapping.js +2 -1
- package/dist/excalidraw/store.d.ts +34 -4
- package/dist/excalidraw/store.js +27 -0
- package/dist/excalidraw/types.d.ts +32 -21
- package/dist/excalidraw/utils.d.ts +15 -5
- package/dist/excalidraw/utils.js +22 -0
- package/dist/excalidraw/zindex.d.ts +2 -2
- package/dist/prod/CascadiaCode-Regular-TMZI7IJ5.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/prod/{en-XW4JO6VX.json → en-YNVBSAIL.json} +42 -7
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +49 -53
- package/dist/utils/bbox.d.ts +2 -2
- package/dist/utils/collision.d.ts +1 -1
- package/dist/utils/export.d.ts +4 -3
- package/dist/utils/export.js +2 -1
- package/dist/utils/geometry/geometry.d.ts +3 -2
- package/dist/utils/geometry/geometry.js +5 -1
- package/dist/utils/geometry/shape.d.ts +1 -1
- 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 +13 -6
- package/package.json +2 -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-BLEB3M62.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/chunk-XOM7LNOU.js.map +0 -7
- package/dist/browser/dev/excalidraw-assets-dev/dist-ITJNUBZF.js.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-UWBW5SR2.js +0 -55
- package/dist/browser/prod/excalidraw-assets/dist-54276HPL.js +0 -6
- package/dist/browser/prod/excalidraw-assets/en-7GPZE2Y2.js +0 -1
- package/dist/browser/prod/excalidraw-assets/image-35KQQ5EN.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/{en-TR4QLF5E.js.map → en-XV7OZCPP.js.map} +0 -0
- /package/dist/browser/dev/excalidraw-assets-dev/{image-ZGDDRBEN.js.map → image-77HZYGLG.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 Kn,$a as Zp,$b as ho,$c as Nr,$d as Lc,$e as a0,$f as yu,A as an,Aa as ut,Ab as gl,Ac as Cl,Ad as ft,Ae as mu,Af as _6,Ag as _u,B as Vn,Ba as So,Bb as bl,Bc as bc,Bd as Mb,Be as $r,Bf as L6,Bg as Be,C as sl,Ca as D1,Cb as dn,Cc as Sl,Cd as _b,Ce as Gb,Cf as P6,Cg as H0,D as Bp,Da as N1,Db as Ht,Dc as tu,Dd as Lb,De as Oc,Df as Hc,Dg as we,E as Xs,Ea as O1,Eb as Xn,Ec as cb,Ed as Jn,Ee as Vb,Ef as w0,Eg as oa,F as cl,Fa as Vp,Fb as zi,Fc as Tl,Fd as zr,Fe as Ll,Ff as vu,Fg as ze,G as be,Ga as sn,Gb as se,Gc as ou,Gd as kc,Ge as pu,Gf as C0,Gg as U0,H as Zo,Ha as F1,Hb as qp,Hc as xc,Hd as Pb,He as Kb,Hf as bn,Hg as oi,I as _r,Ia as B1,Ib as xl,Ic as vc,Id as Rb,Ie as Yb,If as S0,Ig as Hr,J as Oi,Ja as z1,Jb as Ee,Jc as ru,Jd as W,Je as Zb,Jf as Qi,Jg as Ur,K as f1,Ka as To,Kb as Re,Kc as ue,Kd as Mo,Ke as uu,Kf as T0,L as zp,La as Kp,Lb as ur,Lc as db,Ld as Fe,Le as Fc,Lf as Uc,M as $p,Ma as Xo,Mb as q1,Mc as kl,Md as Db,Me as fu,Mf as k0,N as h1,Na as pl,Nb as Pr,Nc as mb,Nd as qo,Ne as hu,Nf as Wc,O as dl,Oa as ac,Ob as J1,Oc as pb,Od as hn,Oe as jb,Of as Gc,P as g1,Pa as Yn,Pb as Rr,Pc as Il,Pd as iu,Pe as Xb,Pf as I0,Q as b1,Qa as $1,Qb as Q1,Qc as Ut,Qd as Nb,Qe as qb,Qf as Vc,R as Lr,Ra as H1,Rb as fr,Rc as Ec,Rd as Ic,Re as Jb,Rf as hr,S as x1,Sa as Zn,Sb as xt,Sc as yc,Sd as Al,Se as Qb,Sf as Eu,T as Dt,Ta as it,Tb as $i,Tc as wc,Td as gn,Te as e0,Tf as A0,U as qs,Ua as F,Ub as eb,Uc as ub,Ud as Ob,Ue as t0,Uf as Kc,V as v1,Va as Ye,Vb as tb,Vc as fb,Vd as Fb,Ve as o0,Vf as M0,W as E1,Wa as Qt,Wb as ob,Wc as hb,Wd as Bb,We as r0,Wf as _0,X as y1,Xa as ul,Xb as mn,Xc as gb,Xd as Ml,Xe as n0,Xf as R6,Y as w1,Ya as fl,Yb as Hi,Yc as bb,Yd as Ac,Ye as i0,Yf as Lo,Z as C1,Za as lc,Zb as rb,Zc as xb,Zd as Mc,Ze as gu,Zf as re,_ as S1,_a as Yp,_b as nb,_c as ct,_d as _c,_e as Xi,_f as he,a as Mt,aa as Js,ab as jn,ac as pn,ad as Cc,ae as _o,af as l0,ag as ti,b as n1,ba as Hp,bb as sc,bc as ko,bd as vb,be as P,bf as s0,bg as Dl,c as Wn,ca as T1,cb as U1,cc as ib,cd as Eb,ce as zb,cf as c0,cg as wu,d as i1,da as k1,db as W1,dc as Dr,dd as yb,de as au,df as d0,dg as L0,e as a1,ea as Qs,eb as G1,ec as un,ed as wb,ee as Qn,ef as Bc,eg as Yc,f as Ar,fa as ec,fb as pe,fc as vl,fd as Vi,fe as $b,ff as Pl,fg as P0,g as Vs,ga as Up,gb as V1,gc as eo,gd as nu,ge as Zi,gf as m0,gg as R0,h as Ks,ha as I1,hb as cc,hc as ab,hd as Cb,he as ji,hf as p0,hg as Zc,i as Ys,ia as A1,ib as K1,ic as El,id as Sb,ie as Pc,if as u0,ig as Cu,j as l1,ja as M1,jb as dc,jc as yl,jd as Or,je as lu,jf as f0,jg as Su,k as s1,ka as _1,kb as Fi,kc as fn,kd as Wt,ke as su,kf as h0,kg as Tu,l as c1,la as L1,lb as Y1,lc as wl,ld as Ze,le as A6,lf as zc,lg as D0,m as Yo,ma as tc,mb as Bi,mc as Jp,md as Sc,me as cu,mf as g0,mg as N0,n as Zs,na as ln,nb as hl,nc as Qp,nd as Io,ne as _l,nf as b0,ng as O0,o as Mr,oa as P1,ob as kt,oc as eu,od as I6,of as bu,og as F0,p as d1,pa as Wp,pb as cn,pc as Ui,pd as Ki,pf as qi,pg as B0,q as m1,qa as R1,qb as mc,qc as lb,qd as Ao,qf as x0,qg as z0,r as al,ra as oc,rb as Z1,rc as fe,rd as Fr,rf as v0,rg as ku,s as ll,sa as Gp,sb as jp,sc as S,sd as Tb,sf as E0,sg as ea,t as Gn,ta as wo,tb as pr,tc as Wi,td as Nt,te as Hb,tf as $c,tg as D6,u as js,ua as ml,ub as Xp,uc as fc,ud as Tc,ue as Ub,uf as y0,ug as Iu,v as p1,va as Co,vb as pc,vc as Gi,vd as kb,ve as Rc,vf as Ji,vg as Au,w as Op,wa as rc,wb as at,wc as hc,wd as Br,we as Dc,wf as ei,wg as ye,x as u1,xa as nc,xb as j1,xc as sb,xd as Ib,xe as du,xf as xu,xg as Mu,y as Fp,ya as jo,yb as X1,yc as qn,yd as Ab,ye as Nc,yf as Rl,yg as ta,z as Oe,za as ic,zb as uc,zc as gc,zd as Yi,ze as Wb,zf as M6,zg as $0}from"./excalidraw-assets/chunk-UWBW5SR2.js";import{a as h,b as y}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{E as Np}from"./excalidraw-assets/chunk-5SYIAZGL.js";import{aa as r1}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as t1,d as mr,e as o1,f as v}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var H=mr((UI,W0)=>{h();W0.exports=React});var J0=mr(nd=>{"use strict";h();var V6=H(),K6=Symbol.for("react.element"),Y6=Symbol.for("react.fragment"),Z6=Object.prototype.hasOwnProperty,j6=V6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,X6={key:!0,ref:!0,__self:!0,__source:!0};function q0(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)Z6.call(e,r)&&!X6.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:K6,type:t,key:i,ref:a,props:n,_owner:j6.current}}nd.Fragment=Y6;nd.jsx=q0;nd.jsxs=q0});var k=mr((p8,Q0)=>{"use strict";h();Q0.exports=J0()});var br=mr((L8,nx)=>{h();nx.exports=ReactDOM});var Nh=mr((sG,hw)=>{h();var fw="Expected a function",pw=NaN,VS="[object Symbol]",KS=/^\s+|\s+$/g,YS=/^[-+]0x[0-9a-f]+$/i,ZS=/^0b[01]+$/i,jS=/^0o[0-7]+$/i,XS=parseInt,qS=typeof global=="object"&&global&&global.Object===Object&&global,JS=typeof self=="object"&&self&&self.Object===Object&&self,QS=qS||JS||Function("return this")(),eT=Object.prototype,tT=eT.toString,oT=Math.max,rT=Math.min,Dh=function(){return QS.Date.now()};function nT(t,e,o){var r,n,i,a,l,s,d=0,c=!1,m=!1,u=!0;if(typeof t!="function")throw new TypeError(fw);e=uw(e)||0,_m(o)&&(c=!!o.leading,m="maxWait"in o,i=m?oT(uw(o.maxWait)||0,e):i,u="trailing"in o?!!o.trailing:u);function f(I){var M=r,_=n;return r=n=void 0,d=I,a=t.apply(_,M),a}function b(I){return d=I,l=setTimeout(T,e),c?f(I):a}function x(I){var M=I-s,_=I-d,U=e-M;return m?rT(U,i-_):U}function E(I){var M=I-s,_=I-d;return s===void 0||M>=e||M<0||m&&_>=i}function T(){var I=Dh();if(E(I))return C(I);l=setTimeout(T,x(I))}function C(I){return l=void 0,u&&r?f(I):(r=n=void 0,a)}function w(){l!==void 0&&clearTimeout(l),d=0,r=s=n=l=void 0}function A(){return l===void 0?a:C(Dh())}function z(){var I=Dh(),M=E(I);if(r=arguments,n=this,s=I,M){if(l===void 0)return b(s);if(m)return l=setTimeout(T,e),f(s)}return l===void 0&&(l=setTimeout(T,e)),a}return z.cancel=w,z.flush=A,z}function iT(t,e,o){var r=!0,n=!0;if(typeof t!="function")throw new TypeError(fw);return _m(o)&&(r="leading"in o?!!o.leading:r,n="trailing"in o?!!o.trailing:n),nT(t,e,{leading:r,maxWait:e,trailing:n})}function _m(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function aT(t){return!!t&&typeof t=="object"}function lT(t){return typeof t=="symbol"||aT(t)&&tT.call(t)==VS}function uw(t){if(typeof t=="number")return t;if(lT(t))return pw;if(_m(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=_m(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=t.replace(KS,"");var o=ZS.test(t);return o||jS.test(t)?XS(t.slice(2),o?2:8):YS.test(t)?pw:+t}hw.exports=iT});var Sw=mr((ww,Cw)=>{h();(function(){var t=this,e={};typeof ww<"u"?Cw.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,d=0,c=n.pre||"",m=n.post||"",u=n.caseSensitive&&r||r.toLowerCase(),f;o=n.caseSensitive&&o||o.toLowerCase();for(var b=0;b<l;b++)f=r[b],u[b]===o[i]?(f=c+f+m,i+=1,d+=1+d):d=0,s+=d,a[a.length]=f;return i===o.length?(s=u===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 d=a;n.extract&&(d=n.extract(a));var c=e.match(o,d,n);return c!=null&&(i[i.length]={string:c.rendered,score:c.score,index:l,original:a}),i},[]).sort(function(i,a){var l=a.score-i.score;return l||i.index-a.index}))}})()});var _w=mr(Mw=>{"use strict";h();var Ya=H();function CT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var ST=typeof Object.is=="function"?Object.is:CT,TT=Ya.useState,kT=Ya.useEffect,IT=Ya.useLayoutEffect,AT=Ya.useDebugValue;function MT(t,e){var o=e(),r=TT({inst:{value:o,getSnapshot:e}}),n=r[0].inst,i=r[1];return IT(function(){n.value=o,n.getSnapshot=e,Bh(n)&&i({inst:n})},[t,o,e]),kT(function(){return Bh(n)&&i({inst:n}),t(function(){Bh(n)&&i({inst:n})})},[t]),AT(o),o}function Bh(t){var e=t.getSnapshot;t=t.value;try{var o=e();return!ST(t,o)}catch{return!0}}function _T(t,e){return e()}var LT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?_T:MT;Mw.useSyncExternalStore=Ya.useSyncExternalStore!==void 0?Ya.useSyncExternalStore:LT});var Pw=mr((XV,Lw)=>{"use strict";h();Lw.exports=_w()});var Dw=mr(Rw=>{"use strict";h();var Rm=H(),PT=Pw();function RT(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var DT=typeof Object.is=="function"?Object.is:RT,NT=PT.useSyncExternalStore,OT=Rm.useRef,FT=Rm.useEffect,BT=Rm.useMemo,zT=Rm.useDebugValue;Rw.useSyncExternalStoreWithSelector=function(t,e,o,r,n){var i=OT(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=BT(function(){function s(f){if(!d){if(d=!0,c=f,f=r(f),n!==void 0&&a.hasValue){var b=a.value;if(n(b,f))return m=b}return m=f}if(b=m,DT(c,f))return b;var x=r(f);return n!==void 0&&n(b,x)?b:(c=f,m=x)}var d=!1,c,m,u=o===void 0?null:o;return[function(){return s(e())},u===null?void 0:function(){return s(u())}]},[e,o,r,n]);var l=NT(t,i[0],i[1]);return FT(function(){a.hasValue=!0,a.value=l},[l]),zT(l),l}});var Ow=mr((eK,Nw)=>{"use strict";h();Nw.exports=Dw()});h();var Dp=v(H(),1);h();var sd=v(H(),1);h();h();h();h();var ht=v(H(),1);h();var N6=0;function G0(t,e){let o=`atom${++N6}`,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 xn=Symbol(),Pu=t=>!!t[xn],jc=t=>!t[xn].c,Nl=t=>{var e;let{b:o,c:r}=t[xn];r&&(r(),(e=F6.get(o))==null||e())},qc=(t,e)=>{let o=t[xn].o,r=e[xn].o;return o===r||t===r||Pu(o)&&qc(o,e)},Ru=(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[xn]=o,r},O6=t=>Ru(t[xn].b,t[xn].o),F6=new WeakMap;var Xc=t=>"init"in t,Ol="r",Jc="w",Fl="c",Qc="s",V0="h",B6="n",z6="l",$6="a",H6="m",K0=t=>{let e=new WeakMap,o=new WeakMap,r=new Map,n,i;if((y&&y.MODE)!=="production"&&(n=new Set,i=new Set),t)for(let[R,N]of t){let K={v:N,r:0,y:!0,d:new Map};(y&&y.MODE)!=="production"&&(Object.freeze(K),Xc(R)||console.warn("Found initial value for derived atom which can cause unexpected behavior",R)),e.set(R,K)}let a=new WeakMap,l=(R,N,K)=>{let Y=a.get(N);Y||(Y=new Map,a.set(N,Y)),K.then(()=>{Y.get(R)===K&&(Y.delete(R),Y.size||a.delete(N))}),Y.set(R,K)},s=R=>{let N=new Set,K=a.get(R);return K&&(a.delete(R),K.forEach((Y,Z)=>{Nl(Y),N.add(Z)})),N},d=new WeakMap,c=R=>{let N=d.get(R);return N||(N=new Map,d.set(R,N)),N},m=(R,N)=>{if(R){let K=c(R),Y=K.get(N);return Y||(Y=m(R.p,N),Y&&"p"in Y&&jc(Y.p)&&(Y=void 0),Y&&K.set(N,Y)),Y}return e.get(N)},u=(R,N,K)=>{if((y&&y.MODE)!=="production"&&Object.freeze(K),R)c(R).set(N,K);else{let Y=e.get(N);e.set(N,K),r.has(N)||r.set(N,Y)}},f=(R,N=new Map,K)=>{if(!K)return N;let Y=new Map,Z=!1;return K.forEach(X=>{var ee;let ne=((ee=m(R,X))==null?void 0:ee.r)||0;Y.set(X,ne),N.get(X)!==ne&&(Z=!0)}),N.size===Y.size&&!Z?N:Y},b=(R,N,K,Y,Z)=>{let X=m(R,N);if(X){if(Z&&(!("p"in X)||!qc(X.p,Z)))return X;"p"in X&&Nl(X.p)}let ee={v:K,r:X?.r||0,y:!0,d:f(R,X?.d,Y)},ne=!X?.y;return!X||!("v"in X)||!Object.is(X.v,K)?(ne=!0,++ee.r,ee.d.has(N)&&(ee.d=new Map(ee.d).set(N,ee.r))):ee.d!==X.d&&(ee.d.size!==X.d.size||!Array.from(ee.d.keys()).every(rt=>X.d.has(rt)))&&(ne=!0,Promise.resolve().then(()=>{oe(R)})),X&&!ne?X:(u(R,N,ee),ee)},x=(R,N,K,Y,Z)=>{let X=m(R,N);if(X){if(Z&&(!("p"in X)||!qc(X.p,Z)))return X;"p"in X&&Nl(X.p)}let ee={e:K,r:(X?.r||0)+1,y:!0,d:f(R,X?.d,Y)};return u(R,N,ee),ee},E=(R,N,K,Y)=>{let Z=m(R,N);if(Z&&"p"in Z){if(qc(Z.p,K)&&!jc(Z.p))return Z.y?Z:{...Z,y:!0};Nl(Z.p)}l(R,N,K);let X={p:K,r:(Z?.r||0)+1,y:!0,d:f(R,Z?.d,Y)};return u(R,N,X),X},T=(R,N,K,Y)=>{if(K instanceof Promise){let Z=Ru(K,K.then(X=>{b(R,N,X,Y,Z)}).catch(X=>{if(X instanceof Promise)return Pu(X)?X.then(()=>{w(R,N,!0)}):X;x(R,N,X,Y,Z)}));return E(R,N,Z,Y)}return b(R,N,K,Y)},C=(R,N)=>{let K=m(R,N);if(K){let Y={...K,y:!1};u(R,N,Y)}else(y&&y.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",N)},w=(R,N,K)=>{if(!K){let Z=m(R,N);if(Z){if(Z.y&&"p"in Z&&!jc(Z.p))return Z;if(Z.d.forEach((X,ee)=>{if(ee!==N)if(!o.has(ee))w(R,ee);else{let ne=m(R,ee);ne&&!ne.y&&w(R,ee)}}),Array.from(Z.d).every(([X,ee])=>{let ne=m(R,X);return ne&&!("p"in ne)&&ne.r===ee}))return Z.y?Z:{...Z,y:!0}}}let Y=new Set;try{let Z=N.read(X=>{Y.add(X);let ee=X===N?m(R,X):w(R,X);if(ee){if("e"in ee)throw ee.e;if("p"in ee)throw ee.p;return ee.v}if(Xc(X))return X.init;throw new Error("no atom init")});return T(R,N,Z,Y)}catch(Z){if(Z instanceof Promise){let X=Pu(Z)&&jc(Z)?O6(Z):Ru(Z,Z);return E(R,N,X,Y)}return x(R,N,Z,Y)}},A=(R,N)=>w(N,R),z=(R,N)=>{let K=o.get(N);return K||(K=O(R,N)),K},I=(R,N)=>!N.l.size&&(!N.t.size||N.t.size===1&&N.t.has(R)),M=(R,N)=>{let K=o.get(N);K&&I(N,K)&&B(R,N)},_=(R,N)=>{let K=o.get(N);K?.t.forEach(Y=>{Y!==N&&(C(R,Y),_(R,Y))})},U=(R,N,K)=>{let Y=!0,Z=(ne,rt)=>{let nt=w(R,ne);if("e"in nt)throw nt.e;if("p"in nt){if(rt?.unstable_promise)return nt.p.then(()=>{let st=m(R,ne);return st&&"p"in st&&st.p===nt.p?new Promise(Ue=>setTimeout(Ue)).then(()=>Z(ne,rt)):Z(ne,rt)});throw(y&&y.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ne),nt.p}if("v"in nt)return nt.v;throw(y&&y.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")},X=(ne,rt)=>{let nt;if(ne===N){if(!Xc(ne))throw new Error("atom not writable");s(ne).forEach(Gs=>{Gs!==R&&T(Gs,ne,rt)});let Ue=m(R,ne),Jt=T(R,ne,rt);Ue!==Jt&&_(R,ne)}else nt=U(R,ne,rt);return Y||oe(R),nt},ee=N.write(Z,X,K);return Y=!1,ee},D=(R,N,K)=>{let Y=U(K,R,N);return oe(K),Y},G=R=>!!R.write,O=(R,N,K)=>{let Y={t:new Set(K&&[K]),l:new Set};if(o.set(N,Y),(y&&y.MODE)!=="production"&&i.add(N),w(void 0,N).d.forEach((X,ee)=>{let ne=o.get(ee);ne?ne.t.add(N):ee!==N&&O(R,ee,N)}),G(N)&&N.onMount){let X=ne=>D(N,ne,R),ee=N.onMount(X);R=void 0,ee&&(Y.u=ee)}return Y},B=(R,N)=>{var K;let Y=(K=o.get(N))==null?void 0:K.u;Y&&Y(),o.delete(N),(y&&y.MODE)!=="production"&&i.delete(N);let Z=m(R,N);Z?("p"in Z&&Nl(Z.p),Z.d.forEach((X,ee)=>{if(ee!==N){let ne=o.get(ee);ne&&(ne.t.delete(N),I(ee,ne)&&B(R,ee))}})):(y&&y.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",N)},te=(R,N,K,Y)=>{let Z=new Set(K.d.keys());Y?.forEach((X,ee)=>{if(Z.has(ee)){Z.delete(ee);return}let ne=o.get(ee);ne&&(ne.t.delete(N),I(ee,ne)&&B(R,ee))}),Z.forEach(X=>{let ee=o.get(X);ee?ee.t.add(N):o.has(N)&&O(R,X,N)})},oe=R=>{if(R){c(R).forEach((K,Y)=>{let Z=e.get(Y);if(K!==Z){let X=o.get(Y);X?.l.forEach(ee=>ee(R))}});return}for(;r.size;){let N=Array.from(r);r.clear(),N.forEach(([K,Y])=>{let Z=m(void 0,K);if(Z&&Z.d!==Y?.d&&te(void 0,K,Z,Y?.d),Y&&!Y.y&&Z?.y)return;let X=o.get(K);X?.l.forEach(ee=>ee())})}(y&&y.MODE)!=="production"&&n.forEach(N=>N())},ve=R=>{c(R).forEach((K,Y)=>{let Z=e.get(Y);(!Z||K.r>Z.r||K.y!==Z.y||K.r===Z.r&&K.d!==Z.d)&&(e.set(Y,K),K.d!==Z?.d&&te(R,Y,K,Z?.d))})},Ie=(R,N)=>{N&&ve(N),oe(void 0)},me=(R,N,K)=>{let Z=z(K,R).l;return Z.add(N),()=>{Z.delete(N),M(K,R)}},j=(R,N)=>{for(let[K,Y]of R)Xc(K)&&(T(N,K,Y),_(N,K));oe(N)};return(y&&y.MODE)!=="production"?{[Ol]:A,[Jc]:D,[Fl]:Ie,[Qc]:me,[V0]:j,[B6]:R=>(n.add(R),()=>{n.delete(R)}),[z6]:()=>i.values(),[$6]:R=>e.get(R),[H6]:R=>o.get(R)}:{[Ol]:A,[Jc]:D,[Fl]:Ie,[Qc]:me,[V0]:j}},Y0=t=>{let e=K0(t),o=a=>{let l=e[Ol](a);if("e"in l)throw l.e;if(!("p"in l))return l.v},r=a=>new Promise((l,s)=>{let d=e[Ol](a);"e"in d?s(d.e):"p"in d?l(d.p.then(()=>r(a))):l(d.v)});return{get:o,asyncGet:r,set:(a,l)=>e[Jc](a,l),sub:(a,l)=>e[Qc](a,l),SECRET_INTERNAL_store:e}},Z0=(t,e)=>({s:e?e(t).SECRET_INTERNAL_store:K0(t)}),Lu=new Map,Du=t=>(Lu.has(t)||Lu.set(t,(0,ht.createContext)(Z0())),Lu.get(t)),ed=({children:t,initialValues:e,scope:o,unstable_createStore:r,unstable_enableVersionedWrite:n})=>{let[i,a]=(0,ht.useState)({});(0,ht.useEffect)(()=>{let d=l.current;d.w&&(d.s[Fl](null,i),delete i.p,d.v=i)},[i]);let l=(0,ht.useRef)();if(!l.current){let d=Z0(e,r);if(n){let c=0;d.w=m=>{a(u=>{let f=c?u:{p:u};return m(f),f})},d.v=i,d.r=m=>{++c,m(),--c}}l.current=d}let s=Du(o);return(0,ht.createElement)(s.Provider,{value:l.current},t)};function We(t,e){return G0(t,e)}function Bl(t,e){let o=Du(e),r=(0,ht.useContext)(o),{s:n,v:i}=r,a=u=>{let f=n[Ol](t,u);if((y&&y.MODE)!=="production"&&!f.y)throw new Error("should not be invalidated");if("e"in f)throw f.e;if("p"in f)throw f.p;if("v"in f)return f.v;throw new Error("no atom value")},[[l,s,d],c]=(0,ht.useReducer)((u,f)=>{let b=a(f);return Object.is(u[1],b)&&u[2]===t?u:[f,b,t]},i,u=>{let f=a(u);return[u,f,t]}),m=s;return d!==t&&(c(l),m=a(l)),(0,ht.useEffect)(()=>{let{v:u}=r;u&&n[Fl](t,u);let f=n[Qc](t,c,u);return c(u),f},[n,t,r]),(0,ht.useEffect)(()=>{n[Fl](t,l)}),(0,ht.useDebugValue)(m),m}function Wr(t,e){let o=Du(e),{s:r,w:n}=(0,ht.useContext)(o);return(0,ht.useCallback)(a=>{if((y&&y.MODE)!=="production"&&!("write"in t))throw new Error("not writable atom");let l=s=>r[Jc](t,a,s);return n?n(l):l()},[r,n,t])}function Se(t,e){return"scope"in t&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=t.scope),[Bl(t,e),Wr(t,e)]}var U6=v(H(),1),Ne=Symbol(),Gt=Y0();var W6=t1({"./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-7GPZE2Y2.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 G6=85,gr={code:"en",label:"English"},na=[gr,...[{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=>r1[t.code]>=G6).sort((t,e)=>t.label>e.label?1:-1)],od="__test__";y.DEV&&na.unshift({code:od,label:"test language"},{code:`${od}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var ra=gr,td={},rd=async t=>{if(ra=t,document.documentElement.dir=ra.rtl?"rtl":"ltr",document.documentElement.lang=ra.code,t.code.startsWith(od))td={};else try{td=await W6(`./locales/${ra.code}.json`)}catch(e){console.error(`Failed to load language ${t.code}:`,e.message),td=Np}Gt.set(X0,t.code)},Gr=()=>ra,j0=(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(ra.code.startsWith(od))return`\u202A[[${e?`${t}(${JSON.stringify(e).slice(1,-1)})`:t}]]\u202C`;let r=t.split("."),n=j0(td,r)||j0(Np,r)||o;if(n===void 0){let i=`Can't find translation for ${t}`;if(y.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},X0=We(gr.code),vt=()=>{let t=Bl(X0,Ne);return{t:g,langCode:t}};var ad=v(H(),1);h();var ex=v(H(),1);var id=v(k(),1),q6=({size:t="1em",circleWidth:e=8,synchronized:o=!1})=>{let n=-(ex.default.useRef(Date.now()).current%1600);return(0,id.jsx)("div",{className:"Spinner",children:(0,id.jsx)("svg",{viewBox:"0 0 100 100",style:{width:t,height:t,"--spinner-delay":o?`${n}ms`:0},children:(0,id.jsx)("circle",{cx:"50",cy:"50",r:50-e/2,strokeWidth:e,fill:"none",strokeMiterlimit:"10"})})})},Ot=q6;h();function tx(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=tx(t[e]))&&(r&&(r+=" "),r+=o);else for(e in t)t[e]&&(r&&(r+=" "),r+=e);return r}function $(){for(var t=0,e,o,r="";t<arguments.length;)(e=arguments[t++])&&(o=tx(e))&&(r&&(r+=" "),r+=o);return r}var ia=v(k(),1),ld=({delay:t,theme:e})=>{let[o,r]=(0,ad.useState)(!!t);return(0,ad.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{r(!1)},t);return()=>clearTimeout(n)},[t]),o?null:(0,ia.jsxs)("div",{className:$("LoadingMessage",{"LoadingMessage--dark":e===be.DARK}),children:[(0,ia.jsx)("div",{children:(0,ia.jsx)(Ot,{})}),(0,ia.jsx)("div",{className:"LoadingMessage-text",children:g("labels.loadingScene")})]})};var rx=v(k(),1),ox=t=>{let[e,o]=(0,sd.useState)(!0);return(0,sd.useEffect)(()=>{let r=async()=>{await rd(n),o(!1)},n=na.find(i=>i.code===t.langCode)||gr;r()},[t.langCode]),e?(0,rx.jsx)(ld,{theme:t.theme}):t.children};h();var Tt=v(H(),1),Ip=v(br(),1);h();h();h();var Jo=v(H(),1);var Po=v(k(),1),ce=Jo.default.forwardRef((t,e)=>{let{id:o}=_t(),r=Jo.default.useRef(null);Jo.default.useImperativeHandle(e,()=>r.current);let n=`ToolIcon_size_${t.size}`,[i,a]=(0,Jo.useState)(!1),l=(0,Jo.useRef)(!0),s=async c=>{let m="onClick"in t&&t.onClick?.(c);if(Bi(m))try{a(!0),await m}catch(u){if(u instanceof Hi)console.warn(u);else throw u}finally{l.current&&a(!1)}};(0,Jo.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let d=(0,Jo.useRef)(null);if(t.type==="button"||t.type==="icon"||t.type==="submit"){let c=t.type==="icon"?"button":t.type;return(0,Po.jsxs)("button",{className:$("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:c,onClick:s,ref:r,disabled:i||t.isLoading||!!t.disabled,children:[(t.icon||t.label)&&(0,Po.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!t.disabled,children:[t.icon||t.label,t.keyBindingLabel&&(0,Po.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel}),t.isLoading&&(0,Po.jsx)(Ot,{})]}),t.showAriaLabel&&(0,Po.jsxs)("div",{className:"ToolIcon__label",children:[t["aria-label"]," ",i&&(0,Po.jsx)(Ot,{})]}),t.children]})}return(0,Po.jsxs)("label",{className:$("ToolIcon",t.className),title:t.title,onPointerDown:c=>{d.current=c.pointerType||null,t.onPointerDown?.({pointerType:c.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{d.current=null})},children:[(0,Po.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:d.current})},checked:t.checked,ref:r}),(0,Po.jsxs)("div",{className:"ToolIcon__icon",children:[t.icon,t.keyBindingLabel&&(0,Po.jsx)("span",{className:"ToolIcon__keybinding",children:t.keyBindingLabel})]})]})});ce.defaultProps={visible:!0,className:"",size:"medium"};ce.displayName="ToolButton";h();var to=v(H(),1);var p=v(k(),1),Qo=t=>"var(--icon-fill-color)",ix=t=>t===be.LIGHT?Mt.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,p.jsx)("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:`0 0 ${o} ${r}`,className:$({"rtl-mirror":n}),style:i,...a,children:typeof t=="string"?(0,p.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,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:3,y:8,width:18,height:4,rx:1}),(0,p.jsx)("line",{x1:12,y1:8,x2:12,y2:21}),(0,p.jsx)("path",{d:"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7"}),(0,p.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),cd=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("path",{d:"M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"}),(0,p.jsx)("line",{x1:"3",y1:"6",x2:"3",y2:"19"}),(0,p.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"21",y1:"6",x2:"21",y2:"19"})]}),Q),ax=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),Q),lx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"19",r:"1"}),(0,p.jsx)("circle",{cx:"12",cy:"5",r:"1"})]}),Q),sx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M9 4v6l-2 4v2h10v-2l-2 -4v-6"}),(0,p.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"21"}),(0,p.jsx)("line",{x1:"8",y1:"4",x2:"16",y2:"4"})]}),Q),ri=L((0,p.jsxs)("g",{children:[(0,p.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,p.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,p.jsx)("mask",{id:"UnlockedIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:6,y:1,width:9,height:9,children:(0,p.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,p.jsx)("g",{mask:"url(#UnlockedIcon)",children:(0,p.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),aa=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.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,p.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,p.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),cx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.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,p.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.005 10.478 7.905 14.423L6 25.75l6.005-15.273Z",fill:"currentColor"}),(0,p.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"}),dx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.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,p.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,p.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"}),mx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.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,p.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,p.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"}),Z8=L((0,p.jsx)("g",{fill:"currentColor",children:(0,p.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"}),px=L((0,p.jsxs)("g",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M13.5 13.5l4.5 4.5"})]}),{fill:"none",width:22,height:22,strokeWidth:1.25}),ux=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})]}),Q),fx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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),hx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"})]}),Q),gx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"16",x2:"19",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"8",x2:"19",y2:"12"})]}),Q),bx=L((0,p.jsx)("path",{d:"M4.167 10h11.666",strokeWidth:"1.5"}),de),xx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20 17v-12c0 -1.121 -.879 -2 -2 -2s-2 .879 -2 2v12l2 2l2 -2z"}),(0,p.jsx)("path",{d:"M16 7h4"}),(0,p.jsx)("path",{d:"M18 19h-13a2 2 0 1 1 0 -4h4a2 2 0 1 0 0 -4h-3"})]}),Q),la=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.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,p.jsx)("path",{d:"m11.25 5.417 3.333 3.333"})]}),de),vx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"7",y2:"20"}),(0,p.jsx)("line",{x1:"14",y1:"20",x2:"21",y2:"20"}),(0,p.jsx)("line",{x1:"6.9",y1:"15",x2:"13.8",y2:"15"}),(0,p.jsx)("line",{x1:"10.2",y1:"6.3",x2:"16",y2:"20"}),(0,p.jsx)("polyline",{points:"5 20 11 4 13 4 20 20"})]}),Q),Ex=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M12.5 6.667h.01"}),(0,p.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,p.jsx)("path",{d:"m3.333 12.5 3.334-3.333c.773-.745 1.726-.745 2.5 0l4.166 4.166"}),(0,p.jsx)("path",{d:"m11.667 11.667.833-.834c.774-.744 1.726-.744 2.5 0l1.667 1.667"})]}),de),yx=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M18 13.3l-6.3 -6.3"})]}),Q),Nu=L((0,p.jsx)("path",{strokeWidth:"1.25",d:"M10 4.167v11.666M4.167 10h11.666"}),de),Ou=L((0,p.jsx)("path",{d:"M5 10h10",strokeWidth:"1.25"}),de),wx=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"}),(0,p.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,p.jsx)("path",{d:"M3 4v4h4"})]}),Q),er=L((0,p.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),Cx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("polyline",{points:"12 16 18 10 12 4"}),(0,p.jsx)("polyline",{points:"8 4 2 10 8 16"})]}),de),zl=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.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,p.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),$l=L((0,p.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),Hl=L((0,p.jsx)("g",{stroke:"currentColor",strokeLinejoin:"round",children:(0,p.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,strokeWidth:1.5}),dd=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]}),Q),ni=L((0,p.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),sa=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),Sx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,p.jsx)("line",{x1:"12",y1:"17",x2:"12",y2:"17.01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),Fu=L((0,p.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),md=L((0,p.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),Tx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.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,p.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),kx=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 4l11.733 16h4.267l-11.733 -16z"}),(0,p.jsx)("path",{d:"M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"})]}),Q),Ix=L((0,p.jsx)("polyline",{fill:"none",stroke:"currentColor",points:"20 6 9 17 4 12"}),{width:24,height:24}),Ul=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.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,p.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),Ax=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}),Mx=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}),ca=L((0,p.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),j8=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}),_x=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"),pd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z"}),(0,p.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,p.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),ud=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 8h.01"}),(0,p.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,p.jsx)("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),(0,p.jsx)("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),(0,p.jsx)("path",{d:"M19 16v6"}),(0,p.jsx)("path",{d:"M22 19l-3 3l-3 -3"})]}),Q),Lx=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}),X8=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}),q8=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}),Px=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"),J8=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"),Bu=L((0,p.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),zu=L((0,p.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),Rx=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}),Dx=L((0,p.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),Q8=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"),e7=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}),t7=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M12 14v-11"}),(0,p.jsx)("path",{d:"M9 6l3 -3l3 3"})]}),Q),o7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.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,p.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}),r7=L((0,p.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}),$u=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.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,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Hu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.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,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Uu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.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,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Wu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",children:[(0,p.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,p.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,p.jsx)("mask",{id:"SendToBackIcon",fill:"#fff",children:(0,p.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,p.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,p.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,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Gu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Vu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Ku=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Yu=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Nx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M16.667 3.333v13.334M3.333 3.333v13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Ox=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M3.333 3.333h13.334M3.333 16.667h13.334",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),Zu=L((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M1.667 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M8.333 10h3.334",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M15.417 10h2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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),ju=L((0,p.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M10 18.333v-2.916",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 11.667V8.333",strokeLinejoin:"round"}),(0,p.jsx)("path",{d:"M10 4.583V1.667",strokeLinecap:"round",strokeLinejoin:"round"}),(0,p.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),fd=L((0,p.jsxs)("g",{strokeWidth:"1.5",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,p.jsx)("path",{d:"M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"}),(0,p.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}),(0,p.jsx)("path",{d:"M21 21v-2a4 4 0 0 0 -3 -3.85"})]}),Q),n7=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"),i7=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"),Ro=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.jsx)("path",{d:"M15 5 5 15M5 5l10 10"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),a7=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}),l7=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}),s7=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}),Xu=to.default.memo(({theme:t})=>L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:Qo(t)}),(0,p.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:Qo(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:Qo(t)}),(0,p.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:Qo(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ix(t),stroke:Qo(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"2.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),qu=to.default.memo(({theme:t})=>L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{d:"M25 26H111V111H25",fill:Qo(t)}),(0,p.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:Qo(t),strokeWidth:"2"}),(0,p.jsx)("path",{d:"M100 100H160V160H100",fill:Qo(t)}),(0,p.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:Qo(t),strokeWidth:"2"}),(0,p.jsxs)("g",{fill:ix(t),stroke:Qo(t),strokeWidth:"6",children:[(0,p.jsx)("rect",{x:"2.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"78.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"149.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"147.5",y:"78.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"105.5",y:"2.5",width:"30",height:"30"}),(0,p.jsx)("rect",{x:"2.5",y:"102.5",width:"30",height:"30"})]})]}),{width:182,height:182,mirror:!0})),Fx=L((0,p.jsx)("g",{strokeWidth:1.25,children:(0,p.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,p.jsxs)(p.Fragment,{children:[(0,p.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,p.jsx)("mask",{id:"FillHachureIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:2,y:2,width:16,height:16,children:(0,p.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,p.jsx)("g",{mask:"url(#FillHachureIcon)",children:(0,p.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),zx=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)("g",{clipPath:"url(#a)",children:[(0,p.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,p.jsx)("mask",{id:"FillCrossHatchIcon",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:-1,y:-1,width:22,height:22,children:(0,p.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,p.jsx)("g",{mask:"url(#FillCrossHatchIcon)",children:(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),$x=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),{...de,fill:"currentColor"}),Ju=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("path",{d:"M4.167 10h11.666",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),de),Hx=L((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),de),Ux=L((0,p.jsx)("path",{d:"M5 10h10",stroke:"currentColor",strokeWidth:"3.75",strokeLinecap:"round",strokeLinejoin:"round"}),de),c7=to.default.memo(({theme:t})=>L((0,p.jsx)("path",{d:"M6 10H34",stroke:Qo(t),strokeWidth:2,fill:"none",strokeLinecap:"round"}),{width:40,height:20})),Wx=L((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12h2"}),(0,p.jsx)("path",{d:"M17 12h2"}),(0,p.jsx)("path",{d:"M11 12h2"})]}),Q),Gx=L((0,p.jsxs)("g",{strokeWidth:"2",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M8 12v.01"}),(0,p.jsx)("path",{d:"M12 12v.01"}),(0,p.jsx)("path",{d:"M16 12v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"})]}),Q),Vx=L((0,p.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),Kx=L((0,p.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),Yx=L((0,p.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),Zx=L((0,p.jsxs)("svg",{strokeWidth:"1.5",children:[(0,p.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,p.jsx)("path",{d:"M13.3333 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 3.33331V3.34331"}),(0,p.jsx)("path",{d:"M16.6667 6.66669V6.67669"}),(0,p.jsx)("path",{d:"M16.6667 10V10.01"}),(0,p.jsx)("path",{d:"M3.33334 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M16.6667 13.3333V13.3433"}),(0,p.jsx)("path",{d:"M3.33334 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M6.66666 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M10 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M13.3333 16.6667V16.6767"}),(0,p.jsx)("path",{d:"M16.6667 16.6667V16.6767"})]}),de),jx=L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 12v-4a4 4 0 0 1 4 -4h4"}),(0,p.jsx)("line",{x1:"16",y1:"4",x2:"16",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"4",x2:"20",y2:"4.01"}),(0,p.jsx)("line",{x1:"20",y1:"8",x2:"20",y2:"8.01"}),(0,p.jsx)("line",{x1:"20",y1:"12",x2:"20",y2:"12.01"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"4",y2:"16.01"}),(0,p.jsx)("line",{x1:"20",y1:"16",x2:"20",y2:"16.01"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"4",y2:"20.01"}),(0,p.jsx)("line",{x1:"8",y1:"20",x2:"8",y2:"20.01"}),(0,p.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"20.01"}),(0,p.jsx)("line",{x1:"16",y1:"20",x2:"16",y2:"20.01"}),(0,p.jsx)("line",{x1:"20",y1:"20",x2:"20",y2:"20.01"})]}),Q),Xx=L((0,p.jsx)("path",{d:"M6 10H34",stroke:"currentColor",strokeWidth:2,fill:"none"}),{width:40,height:20}),qx=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",stroke:"currentColor",strokeWidth:2,fill:"none",children:[(0,p.jsx)("path",{d:"M34 10H6M34 10L27 5M34 10L27 15"}),(0,p.jsx)("path",{d:"M27.5 5L34.5 10L27.5 15"})]}),{width:40,height:20})),Qu=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),Jx=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M26 10L6 10"}),(0,p.jsx)("circle",{r:"4",transform:"matrix(-1 0 0 1 30 10)"})]}),{width:40,height:20})),Qx=to.default.memo(({flip:t=!1})=>L((0,p.jsx)("g",{transform:t?"translate(40, 0) scale(-1, 1)":"",children:(0,p.jsx)("path",{d:"M34 10H5.99996M34 10L34 5M34 10L34 15",stroke:"currentColor",strokeWidth:2,fill:"none"})}),{width:40,height:20})),ev=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",children:[(0,p.jsx)("path",{d:"M32 10L6 10",strokeWidth:2}),(0,p.jsx)("path",{d:"M27.5 5.5L34.5 10L27.5 14.5L27.5 5.5"})]}),{width:40,height:20})),tv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeWidth:2,strokeLinejoin:"round",children:[(0,p.jsx)("path",{d:"M6,9.5H27"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14Z",fill:"none"})]}),{width:40,height:20})),ov=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"currentColor",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),rv=to.default.memo(({flip:t=!1})=>L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",transform:t?"translate(40, 0) scale(-1, 1)":"",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{d:"M6,9.5H20"}),(0,p.jsx)("path",{d:"M27,5L34,10L27,14L20,9.5Z"})]}),{width:40,height:20})),nv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),iv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5 16.667V3.333L10 15l5-11.667v13.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),av=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",children:(0,p.jsx)("path",{d:"M5.833 3.333v13.334h8.334",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),lv=L((0,p.jsx)(p.Fragment,{children:(0,p.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),ef=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 7v-2h13v2"}),(0,p.jsx)("path",{d:"M10 5v14"}),(0,p.jsx)("path",{d:"M12 19h-4"}),(0,p.jsx)("path",{d:"M15 13v-1h6v1"}),(0,p.jsx)("path",{d:"M18 12v7"}),(0,p.jsx)("path",{d:"M17 19h2"})]}),Q),sv=L((0,p.jsx)(p.Fragment,{children:(0,p.jsx)("g",{stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.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),cv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("g",{clipPath:"url(#a)",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,p.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,p.jsx)("defs",{children:(0,p.jsx)("clipPath",{id:"a",children:(0,p.jsx)("path",{fill:"#fff",d:"M0 0h20v20H0z"})})})]}),de),dv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"12",y2:"12"}),(0,p.jsx)("line",{x1:"4",y1:"16",x2:"16",y2:"16"})]}),Q),mv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),(0,p.jsx)("line",{x1:"6",y1:"16",x2:"18",y2:"16"})]}),Q),pv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"8",x2:"20",y2:"8"}),(0,p.jsx)("line",{x1:"10",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("line",{x1:"8",y1:"16",x2:"20",y2:"16"})]}),Q),uv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"4",x2:"20",y2:"4"}),(0,p.jsx)("rect",{x:"9",y:"8",width:"6",height:"12",rx:"2"})]}),Q)),fv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"20",x2:"20",y2:"20"}),(0,p.jsx)("rect",{x:"9",y:"4",width:"6",height:"12",rx:"2"})]}),Q)),hv=to.default.memo(({theme:t})=>L((0,p.jsxs)("g",{strokeWidth:"1.5",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("line",{x1:"4",y1:"12",x2:"9",y2:"12"}),(0,p.jsx)("line",{x1:"15",y1:"12",x2:"20",y2:"12"}),(0,p.jsx)("rect",{x:"9",y:"6",width:"6",height:"12",rx:"2"})]}),Q)),gv=L((0,p.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}),d7=L((0,p.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"})),hd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.jsx)("path",{d:"M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5"}),(0,p.jsx)("path",{d:"M14 5.5a1.5 1.5 0 0 1 3 0v6.5"}),(0,p.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),tf=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"}),(0,p.jsx)("path",{d:"M7 11l5 5l5 -5"}),(0,p.jsx)("path",{d:"M12 4l0 12"})]}),Q),gd=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.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),bv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.jsx)("path",{d:"M9.15 14.85l8.85 -10.85"}),(0,p.jsx)("path",{d:"M6 4l8.85 10.85"})]}),Q),xv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"}),(0,p.jsx)("path",{d:"M12 17l0 .01"}),(0,p.jsx)("path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4"})]}),Q),m7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M7 4v16l13 -8z"})]}),Q),p7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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),u7=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 12l5 5l10 -10"})]}),Q),vv=L((0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M12 9v4"}),(0,p.jsx)("path",{d:"M12 17h.01"})]}),Q),Ev=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11 7l6 6"}),(0,p.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),yv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l-4 7h8z"}),(0,p.jsx)("path",{d:"M17 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"}),(0,p.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),bd=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 7l16 0"}),(0,p.jsx)("path",{d:"M4 17l16 0"}),(0,p.jsx)("path",{d:"M7 4l0 16"}),(0,p.jsx)("path",{d:"M17 4l0 16"})]}),Q),xd=L((0,p.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"})),da=L((0,p.jsxs)("g",{strokeWidth:"1.25",children:[(0,p.jsx)("path",{d:"M4.16602 10H15.8327"}),(0,p.jsx)("path",{d:"M12.5 13.3333L15.8333 10"}),(0,p.jsx)("path",{d:"M12.5 6.66666L15.8333 9.99999"})]}),de),vd=L((0,p.jsxs)("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(90 10 10)",children:[(0,p.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,p.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),ma=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.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,p.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),f7=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z"}),(0,p.jsx)("path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3"}),(0,p.jsx)("path",{d:"M15 6l3 3"}),(0,p.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,p.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),Wl=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M11.217 19.384a3.501 3.501 0 0 0 6.783 -1.217v-5.167l-6 -3.35"}),(0,p.jsx)("path",{d:"M5.214 15.014a3.501 3.501 0 0 0 4.446 5.266l4.34 -2.534v-6.946"}),(0,p.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,p.jsx)("path",{d:"M12.783 4.616a3.501 3.501 0 0 0 -6.783 1.217v5.067l6 3.45"}),(0,p.jsx)("path",{d:"M18.786 8.986a3.501 3.501 0 0 0 -4.446 -5.266l-4.34 2.534v6.946"}),(0,p.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),wv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2"}),(0,p.jsx)("path",{d:"M4 16v2a2 2 0 0 0 2 2h2"}),(0,p.jsx)("path",{d:"M16 4h2a2 2 0 0 1 2 2v2"}),(0,p.jsx)("path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2"})]}),Q),pa=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0"}),(0,p.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),Cv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828"}),(0,p.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,p.jsx)("path",{d:"M3 3l18 18"})]}),Q),Sv=L((0,p.jsxs)("g",{stroke:"currentColor",fill:"none",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.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,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),Q),Tv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.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,p.jsx)("path",{d:"M17.5 16a3.5 3.5 0 0 0 0 -7h-.5"}),(0,p.jsx)("path",{d:"M19 9.3v-2.8a3.5 3.5 0 0 0 -7 0"}),(0,p.jsx)("path",{d:"M6.5 16a3.5 3.5 0 0 1 0 -7h.5"}),(0,p.jsx)("path",{d:"M5 9.3v-2.8a3.5 3.5 0 0 1 7 0v10"})]}),Q),Ed=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"}),(0,p.jsx)("path",{d:"M21 21l-6 -6"})]}),Q),kv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M20.984 12.53a9 9 0 1 0 -7.552 8.355"}),(0,p.jsx)("path",{d:"M12 7v5l3 3"}),(0,p.jsx)("path",{d:"M19 16l-2 3h4l-2 3"})]}),Q),Iv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M5 10a7 7 0 0 0 14 0"}),(0,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),Q),Av=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 3l18 18"}),(0,p.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,p.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,p.jsx)("path",{d:"M8 21l8 0"}),(0,p.jsx)("path",{d:"M12 17l0 4"})]}),Q),yd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11"})]}),Q),Mv=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M12 20v.01"}),(0,p.jsx)("path",{d:"M16 20v.01"}),(0,p.jsx)("path",{d:"M8 20v.01"}),(0,p.jsx)("path",{d:"M4 20v.01"}),(0,p.jsx)("path",{d:"M4 16v.01"}),(0,p.jsx)("path",{d:"M4 12v.01"}),(0,p.jsx)("path",{d:"M4 8v.01"}),(0,p.jsx)("path",{d:"M4 4v.01"}),(0,p.jsx)("path",{d:"M8 4v.01"}),(0,p.jsx)("path",{d:"M12 4v.01"}),(0,p.jsx)("path",{d:"M16 4v.01"}),(0,p.jsx)("path",{d:"M20 4v.01"}),(0,p.jsx)("path",{d:"M20 8v.01"}),(0,p.jsx)("path",{d:"M20 12v.01"}),(0,p.jsx)("path",{d:"M20 16v.01"}),(0,p.jsx)("path",{d:"M20 20v.01"})]}),Q),_v=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M5 3v18"}),(0,p.jsx)("path",{d:"M19 21v-18"}),(0,p.jsx)("path",{d:"M5 7h14"}),(0,p.jsx)("path",{d:"M5 15h14"}),(0,p.jsx)("path",{d:"M8 13v4"}),(0,p.jsx)("path",{d:"M11 13v4"}),(0,p.jsx)("path",{d:"M16 13v4"}),(0,p.jsx)("path",{d:"M14 5v4"}),(0,p.jsx)("path",{d:"M11 5v4"}),(0,p.jsx)("path",{d:"M8 5v4"}),(0,p.jsx)("path",{d:"M3 21h18"})]}),Q),Lv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 12l18 0"}),(0,p.jsx)("path",{d:"M7 16l10 0l-10 5l0 -5"}),(0,p.jsx)("path",{d:"M7 8l10 0l-10 -5l0 5"})]}),Q),Pv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M12 3l0 18"}),(0,p.jsx)("path",{d:"M16 7l0 10l5 0l-5 -10"}),(0,p.jsx)("path",{d:"M8 7l0 10l-5 0l5 -10"})]}),Q),of=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M19 6h1a2 2 0 0 1 2 2a5 5 0 0 1 -5 5l-5 0v2"}),(0,p.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),wd=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M15 15m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0"}),(0,p.jsx)("path",{d:"M22 22l-3 -3"}),(0,p.jsx)("path",{d:"M6 18h-1a2 2 0 0 1 -2 -2v-1"}),(0,p.jsx)("path",{d:"M3 11v-1"}),(0,p.jsx)("path",{d:"M3 6v-1a2 2 0 0 1 2 -2h1"}),(0,p.jsx)("path",{d:"M10 3h1"}),(0,p.jsx)("path",{d:"M15 3h1a2 2 0 0 1 2 2v1"})]}),Q),Rv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.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,p.jsx)("path",{d:"M10 15l2 6l2 -6"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"})]}),Q),Dv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),(0,p.jsx)("path",{d:"M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"}),(0,p.jsx)("path",{d:"M20 15h-1a2 2 0 0 0 -2 2v2a2 2 0 0 0 2 2h1v-3"}),(0,p.jsx)("path",{d:"M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"}),(0,p.jsx)("path",{d:"M11 21v-6l3 6v-6"})]}),Q),Nv=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M4 8l5 0"}),(0,p.jsx)("path",{d:"M15 8l4 0"})]}),Q),Ov=L((0,p.jsxs)("g",{strokeWidth:1.25,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.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,p.jsx)("path",{d:"M8 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M12 3a2.4 2.4 0 0 0 -1 2a2.4 2.4 0 0 0 1 2"}),(0,p.jsx)("path",{d:"M3 10h14v5a6 6 0 0 1 -6 6h-2a6 6 0 0 1 -6 -6v-5z"}),(0,p.jsx)("path",{d:"M16.746 16.726a3 3 0 1 0 .252 -5.555"})]}),Q),Fv=L((0,p.jsxs)("g",{stroke:"currentColor",children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 5a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-16a1 1 0 0 1-1-1v-10zM7 20h10M9 16v4M15 16v4"})]}),{...Q,strokeWidth:1.5}),h7=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M10 12l10 0"}),(0,p.jsx)("path",{d:"M10 12l4 4"}),(0,p.jsx)("path",{d:"M10 12l4 -4"}),(0,p.jsx)("path",{d:"M4 4l0 16"})]}),Q),Bv=L((0,p.jsxs)("g",{children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8z"}),(0,p.jsx)("path",{d:"M10 9l5 3l-5 3z"})]}),Q),zv=L((0,p.jsxs)("g",{strokeWidth:1.5,children:[(0,p.jsx)("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),(0,p.jsx)("path",{d:"M3 6h18"}),(0,p.jsx)("path",{d:"M3 12h18"}),(0,p.jsx)("path",{d:"M3 18h18"}),(0,p.jsx)("path",{d:"M6 3v18"}),(0,p.jsx)("path",{d:"M12 3v18"}),(0,p.jsx)("path",{d:"M18 3v18"})]}),Q);var Hv=v(k(),1),J6=(t,e)=>{let o=new Set(we(t.filter(r=>Ee(r)),e).map(r=>r.id));return{elements:t.map(r=>e.selectedElementIds[r.id]?he(r,{isDeleted:!0}):r.frameId&&o.has(r.frameId)?he(r,{isDeleted:!0}):xt(r)&&e.selectedElementIds[r.containerId]?he(r,{isDeleted:!0}):r),appState:{...e,selectedElementIds:{},selectedGroupIds:{}}}},$v=(t,e)=>{if(t.editingGroupId){let o=ft(ye(e),t.editingGroupId);if(o.length)return{...t,selectedElementIds:{[o[0].id]:!0}}}return t},Gl=W({name:"deleteSelectedElements",label:"labels.delete",icon:er,trackEvent:{category:"element",action:"delete"},perform:(t,e,o,r)=>{if(e.editingLinearElement){let{elementId:a,selectedPointsIndices:l,startBindingElement:s,endBindingElement:d}=e.editingLinearElement,c=r.scene.getNonDeletedElementsMap(),m=ue.getElement(a,c);if(!m||l==null)return!1;if(m.points.length<2){let f=t.map(x=>x.id===m.id?he(x,{isDeleted:!0}):x),b=$v(e,f);return{elements:f,appState:{...b,editingLinearElement:null},storeAction:P.CAPTURE}}let u={startBindingElement:l?.includes(0)?null:s,endBindingElement:l?.includes(m.points.length-1)?null:d};return ue.deletePoints(m,l),{elements:t,appState:{...e,editingLinearElement:{...e.editingLinearElement,...u,selectedPointsIndices:l?.[0]>0?[l[0]-1]:[0]}},storeAction:P.CAPTURE}}let{elements:n,appState:i}=J6(t,e);return vc(n,t.filter(({id:a})=>e.selectedElementIds[a])),i=$v(i,n),{elements:n,appState:{...i,activeTool:it(e,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:Be(ye(t),e)?P.CAPTURE:P.NONE}},keyTest:(t,e,o)=>(t.key===S.BACKSPACE||t.key===S.DELETE)&&!t[S.CTRL_OR_CMD],PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Hv.jsx)(ce,{type:"button",icon:er,title:g("labels.delete"),"aria-label":g("labels.delete"),onClick:()=>o(null),visible:Be(ye(t),e)})});h();h();var rf=(t,e)=>t.frameId===e||t.id===e,Wv=(t,e,o)=>{let r=[],n=[],i=null,a=-1,l=pe(o||we(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},Q6=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),[])},Uv=(t,e,o)=>{if("containerId"in t&&t.containerId)if(o==="left"){let r=ko.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=ko.getScene(t).getElement(r);if(n)return e.indexOf(n)}}},e4=(t,e)=>{let o=-1,r=-1;return t.forEach((n,i)=>{rf(n,e)&&(o===-1&&(o=i),r=i)}),o===-1?[]:t.slice(o,r+1)},t4=(t,e,o,r,n)=>{let i=e[o],a=m=>m.isDeleted?!1:n?m.frameId===n:t.editingGroupId?m.groupIds.includes(t.editingGroupId):!0,l=r==="left"?Zp(e,m=>a(m),Math.max(0,o-1)):Yp(e,m=>a(m),o+1),s=e[l];if(!s)return-1;if(t.editingGroupId){if(i?.groupIds.join("")===s?.groupIds.join(""))return Uv(s,e,r)??l;if(!s?.groupIds.includes(t.editingGroupId))return-1}if(!n&&(s.frameId||Ee(s))){let m=e4(e,s.frameId||s.id);return r==="left"?e.indexOf(m[0]):e.indexOf(m[m.length-1])}if(!s.groupIds.length)return Uv(s,e,r)??l;let d=t.editingGroupId?s.groupIds[s.groupIds.indexOf(t.editingGroupId)-1]:s.groupIds[s.groupIds.length-1],c=ft(e,d);return c.length?r==="left"?e.indexOf(c[0]):e.indexOf(c[c.length-1]):l},Gv=(t,e)=>e.reduce((o,r)=>{let n=t[r];return o.set(n.id,n),o},new Map),Vv=(t,e,o)=>{let r=Wv(t,e),n=Gv(t,r),i=Q6(r);o==="right"&&(i=i.reverse());let a=new Set(r.filter(l=>Ee(t[l])).map(l=>t[l].id));return i.forEach((l,s)=>{let d=l[0],c=l[l.length-1],m=o==="left"?d:c,u=l.some(C=>{let w=t[C];return w.frameId&&a.has(w.frameId)})?null:t[m]?.frameId,f=t4(e,t,m,o,u);if(f===-1||m===f)return;let b=o==="left"?t.slice(0,f):t.slice(0,d),x=t.slice(d,c+1),E=o==="left"?t.slice(f,d):t.slice(c+1,f+1),T=o==="left"?t.slice(c+1):t.slice(f+1);t=o==="left"?[...b,...x,...E,...T]:[...b,...E,...x,...T]}),ho(t,n),t},Kv=(t,e,o,r,n)=>{let i=Wv(t,e,n),a=Gv(t,i),l=[],s,d;if(o==="left"){if(r)s=Yp(t,b=>rf(b,r));else if(e.editingGroupId){let b=ft(t,e.editingGroupId);if(!b.length)return t;s=t.indexOf(b[0])}else s=0;d=i[i.length-1]}else{if(r)d=Zp(t,b=>rf(b,r));else if(e.editingGroupId){let b=ft(t,e.editingGroupId);if(!b.length)return t;d=t.indexOf(b[b.length-1])}else d=t.length-1;s=i[0]}s===-1&&(s=0);for(let b=s;b<d+1;b++)i.includes(b)||l.push(t[b]);let c=Array.from(a.values()),m=t.slice(0,s),u=t.slice(d+1),f=o==="left"?[...m,...c,...l,...u]:[...m,...l,...c,...u];return ho(f,a),f};function Yv(t,e,o,r){let n=pe(we(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),i={regularElements:[],frameChildren:new Map},a=new Set;for(let d of t)n.has(d.id)&&Ee(d)&&a.add(d.id);for(let d of t)if(n.has(d.id))if(Ee(d)||d.frameId&&a.has(d.frameId))i.regularElements.push(d);else if(!d.frameId)i.regularElements.push(d);else{let c=i.frameChildren.get(d.frameId)||[];c.push(d),i.frameChildren.set(d.frameId,c)}let l=t,s=Array.from(i.frameChildren.entries());for(let[d,c]of s)l=r(t,e,o,d,c);return r(l,e,o,null,i.regularElements)}var Zv=(t,e)=>Vv(t,e,"left"),jv=(t,e)=>Vv(t,e,"right"),Xv=(t,e)=>Yv(t,e,"left",Kv),qv=(t,e)=>Yv(t,e,"right",Kv);var Vl=v(k(),1),nf=W({name:"sendBackward",label:"labels.sendBackward",icon:Hu,trackEvent:{category:"element"},perform:(t,e)=>({elements:Zv(t,e),appState:e,storeAction:P.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendBackward")} \u2014 ${F("CtrlOrCmd+[")}`,children:Hu})}),af=W({name:"bringForward",label:"labels.bringForward",icon:$u,trackEvent:{category:"element"},perform:(t,e)=>({elements:jv(t,e),appState:e,storeAction:P.CAPTURE}),keyPriority:40,keyTest:t=>t[S.CTRL_OR_CMD]&&!t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.bringForward")} \u2014 ${F("CtrlOrCmd+]")}`,children:$u})}),lf=W({name:"sendToBack",label:"labels.sendToBack",icon:Wu,trackEvent:{category:"element"},perform:(t,e)=>({elements:Xv(t,e),appState:e,storeAction:P.CAPTURE}),keyTest:t=>Yo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_LEFT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_LEFT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>t(null),title:`${g("labels.sendToBack")} \u2014 ${Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")}`,children:Wu})}),sf=W({name:"bringToFront",label:"labels.bringToFront",icon:Uu,trackEvent:{category:"element"},perform:(t,e)=>({elements:qv(t,e),appState:e,storeAction:P.CAPTURE}),keyTest:t=>Yo?t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.BRACKET_RIGHT:t[S.CTRL_OR_CMD]&&t.shiftKey&&t.code===fe.BRACKET_RIGHT,PanelComponent:({updateData:t,appState:e})=>(0,Vl.jsx)("button",{type:"button",className:"zIndexButton",onClick:o=>t(null),title:`${g("labels.bringToFront")} \u2014 ${Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")}`,children:Uu})});h();var cf=W({name:"selectAll",label:"labels.selectAll",icon:Mv,trackEvent:{category:"canvas"},viewMode:!1,perform:(t,e,o,r)=>{if(e.editingLinearElement)return!1;let n=ta(t.filter(i=>!i.isDeleted&&!(se(i)&&i.containerId)&&!i.locked)).reduce((i,a)=>(i[a.id]=!0,i),{});return{appState:{...e,...Nt({editingGroupId:null,selectedElementIds:n},ye(t),e,r),selectedLinearElement:Object.keys(n).length===1&&Re(t[0])?new ue(t[0]):null},storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.A});h();h();var o4=t=>{let e=t.slice(),o=new Set,r=i=>{let a=i[0]?.groupIds?.join(""),l=[i[0]],s=[];for(let d of i.slice(1))d.groupIds?.join("")===a?l.push(d):s.push(d);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(d=>{let c=d?.groupIds?.some(m=>m===l);return c&&n.set(d.id,!0),c});for(let d of r(s))o.add(d)}else o.add(i)}),o.size!==t.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),t):[...o]},r4=t=>{let e=V1(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]},Jv=t=>r4(o4(t));var Qv=v(k(),1),df=W({name:"duplicateSelection",label:"labels.duplicateSelection",icon:zl,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=r.scene.getNonDeletedElementsMap();if(e.editingLinearElement){let i=ue.duplicateSelectedPoints(e,n);return i?{elements:t,appState:i.appState,storeAction:P.CAPTURE}:!1}return{...n4(t,e),storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.D,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,Qv.jsx)(ce,{type:"button",icon:zl,title:`${g("labels.duplicateSelection")} \u2014 ${F("CtrlOrCmd+D")}`,"aria-label":g("labels.duplicateSelection"),onClick:()=>o(null),visible:Be(ye(t),e)})}),n4=(t,e)=>{let o=Jv(t),r=new Map,n=[],i=[],a=new Map,l=new Map,s=C=>{let w=_c(e.editingGroupId,r,C,{x:C.x+Lr/2,y:C.y+Lr/2});return l.set(w.id,w),a.set(C.id,w.id),i.push(C),n.push(w),w},d=pe(we(o,e,{includeBoundTextElement:!0,includeElementsInFrames:!0})),c=new Map,m=C=>{for(let w of C)c.set(w.id,!0);return C},u=[],f=-1;for(;++f<o.length;){let C=o[f];if(c.get(C.id))continue;let w=ct(C,pe(t)),A=Ee(C);if(d.get(C.id)){if(C.groupIds.length||w||A){let z=kb(e,C);if(z){let I=ft(o,z).flatMap(M=>Ee(M)?[...bn(t,M.id),M]:[M]);u.push(...m([...I,...I.map(M=>s(M))]));continue}if(w){u.push(...m([C,w,s(C),s(w)]));continue}if(A){let I=bn(o,C.id);u.push(...m([...I,C,...I.map(M=>s(M)),s(C)]));continue}}(!C.frameId||!d.has(C.frameId))&&u.push(...m([C,s(C)]))}else u.push(...m([C]))}let b=[],x=new Map;for(f=u.length;--f>=0;){let C=u[f];x.get(C.id)||(x.set(C.id,!0),b.push(C))}let E=ho(b.reverse(),pe(n));Ec(u,i,a),xc(u,i,a),Hc(E,i,a);let T=ta(n);return{elements:E,appState:{...e,...Nt({editingGroupId:e.editingGroupId,selectedElementIds:T.reduce((C,w)=>(xt(w)||(C[w.id]=!0),C),{})},ye(E),e,null)}}};h();h();var i4=["ai","command_palette"],xe=(t,e,o,r)=>{try{if(typeof window>"u"||y.VITE_WORKER_ID||y.PROD||!i4.includes(t))return;y.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 ua=v(k(),1),xr=t=>(0,ua.jsx)("div",{className:"buttonList buttonListIcon",children:t.options.map(e=>t.type==="button"?(0,ua.jsx)("button",{onClick:o=>t.onClick(e.value,o),className:$({active:e.active??t.value===e.value}),"data-testid":e.testId,title:e.text,children:e.icon},e.text):(0,ua.jsxs)("label",{className:$({active:t.value===e.value}),title:e.text,children:[(0,ua.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 Cd=v(k(),1),e2=({onChange:t,type:e,activeColor:o,topPicks:r})=>{let n;return e==="elementStroke"&&(n=Vs),e==="elementBackground"&&(n=Ks),e==="canvasBackground"&&(n=Ys),r&&(n=r),n?(0,Cd.jsx)("div",{className:"color-picker__top-picks",children:n.map(i=>(0,Cd.jsx)("button",{className:$("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,Cd.jsx)("div",{className:"color-picker__button-outline"})},i))}):(console.error("Invalid type for TopPicks"),null)};h();var En=v(H(),1);h();var Sd=v(H(),1);h();var vn=({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},Kl=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),mf=({color:t,palette:e})=>!Object.values(e).flat().includes(t),o2=(t,e,o)=>{let r={elementBackground:"backgroundColor",elementStroke:"strokeColor"},n=t.filter(a=>{if(a.isDeleted)return!1;let l=a[r[e]];return mf({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,n1)},Do=We(null),t2=(t,e,o)=>(t*299+e*587+o*114)/1e3>=160?"black":"white",r2=(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]),d=parseInt(a[2]);return t2(l,s,d)}}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 t2(o,r,n)};h();var n2=v(k(),1),a4=({color:t,keyLabel:e,isCustomColor:o=!1,isShade:r=!1})=>(0,n2.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:r2(t,o)},children:[r&&"\u21E7",e]}),fa=a4;var Vr=v(k(),1),i2=({hex:t,onChange:e,palette:o})=>{let r=vn({color:t||"transparent",palette:o}),[n,i]=Se(Do),a=(0,Sd.useRef)(null);if((0,Sd.useEffect)(()=>{a.current&&n==="shades"&&a.current.focus()},[r,n]),r){let{colorName:l,shade:s}=r,d=o[l];if(Array.isArray(d))return(0,Vr.jsx)("div",{className:"color-picker-content--default shades",children:d.map((c,m)=>(0,Vr.jsxs)("button",{ref:m===s&&n==="shades"?a:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:m===s}),"aria-label":"Shade",title:`${l} - ${m+1}`,style:c?{"--swatch-color":c}:void 0,onClick:()=>{e(c),i("shades")},children:[(0,Vr.jsx)("div",{className:"color-picker__button-outline"}),(0,Vr.jsx)(fa,{color:c,keyLabel:m+1,isShade:!0})]},m))})}return(0,Vr.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Vr.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Vr.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 Td=v(H(),1);var ha=v(k(),1),l4=({palette:t,color:e,onChange:o,label:r,activeShade:n})=>{let i=vn({color:e||"transparent",palette:t}),[a,l]=Se(Do),s=(0,Td.useRef)(null);return(0,Td.useEffect)(()=>{s.current&&a==="baseColors"&&s.current.focus()},[i?.colorName,a]),(0,ha.jsx)("div",{className:"color-picker-content--default",children:Object.entries(t).map(([d,c],m)=>{let u=(Array.isArray(c)?c[n]:c)||"transparent",f=Kl[m],b=g(`colors.${d.replace(/\d+/,"")}`,null,"");return(0,ha.jsxs)("button",{ref:i?.colorName===d?s:void 0,tabIndex:-1,type:"button",className:$("color-picker__button color-picker__button--large",{active:i?.colorName===d,"is-transparent":u==="transparent"||!u}),onClick:()=>{o(u),l("baseColors")},title:`${b}${u.startsWith("#")?` ${u}`:""} \u2014 ${f}`,"aria-label":`${b} \u2014 ${f}`,style:u?{"--swatch-color":u}:void 0,"data-testid":`color-${d}`,children:[(0,ha.jsx)("div",{className:"color-picker__button-outline"}),(0,ha.jsx)(fa,{color:u,keyLabel:f})]},d)})})},a2=l4;h();var kd=v(H(),1);var ga=v(k(),1),l2=({colors:t,color:e,onChange:o,label:r})=>{let[n,i]=Se(Do),a=(0,kd.useRef)(null);return(0,kd.useEffect)(()=>{a.current&&a.current.focus()},[e,n]),(0,ga.jsx)("div",{className:"color-picker-content--default",children:t.map((l,s)=>(0,ga.jsxs)("button",{ref:e===l?a:void 0,tabIndex:-1,type:"button",className:$("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,ga.jsx)("div",{className:"color-picker__button-outline"}),(0,ga.jsx)(fa,{color:l,keyLabel:s+1,isCustomColor:!0})]},s))})};h();var pf=(t,e,o)=>{let r=Math.ceil(o/Wn);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+Wn;return n>=o?e%Wn:n}case"ArrowUp":{let n=e-Wn,i=n<0?Wn*r+n:n;return i>=o?void 0:i}}},s4=({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(Kl.includes(t.key)){let l=Kl.indexOf(t.key),s=Object.keys(r)[l],d=r[s],c=Array.isArray(d)?d[a]:d;return o(c),i("baseColors"),!0}return!1},s2=({event:t,activeColorPickerSection:e,palette:o,color:r,onChange:n,customColors:i,setActiveColorPickerSection:a,updateData:l,activeShade:s,onEyeDropperToggle:d,onEscape:c})=>{if(t[S.CTRL_OR_CMD])return!1;if(t.key===S.ESCAPE)return c(t),!0;if(t.key===S.ALT)return d(!0),!0;if(t.key===S.I)return d(),!0;let m=vn({color:r,palette:o});if(t.key===S.TAB){let u={custom:!!i.length,baseColors:!0,shades:m?.shade!=null,hex:!0},f=Object.entries(u).reduce((C,[w,A])=>(A&&C.push(w),C),[]),b=f.indexOf(e),x=t.shiftKey?-1:1,E=b+x>f.length-1?0:b+x<0?f.length-1:b+x,T=f[E];return T&&a(T),T==="custom"?n(i[0]):T==="baseColors"&&(Object.entries(o).find(([w,A])=>Array.isArray(A)?A.includes(r):A===r?w:null)||n(Ar.black)),t.preventDefault(),t.stopPropagation(),!0}if(s4({e:t,colorObj:m,onChange:n,palette:o,customColors:i,setActiveColorPickerSection:a,activeShade:s}))return!0;if(e==="shades"&&m){let{shade:u}=m,f=pf(t.key,u,Wn);if(f!==void 0)return n(o[m.colorName][f]),!0}if(e==="baseColors"&&m){let{colorName:u}=m,f=Object.keys(o),b=f.indexOf(u),x=pf(t.key,b,f.length);if(x!==void 0){let E=f[x],T=o[E];return n(Array.isArray(T)?T[s]:T),!0}}if(e==="custom"){let u=i.indexOf(r),f=pf(t.key,u,i.length);if(f!==void 0){let b=i[f];return n(b),!0}}return!1};h();var c2=v(k(),1),c4=({children:t})=>(0,c2.jsx)("div",{className:"color-picker__heading",children:t}),ba=c4;var go=v(k(),1),d2=({color:t,onChange:e,label:o,type:r,elements:n,palette:i,updateData:a,children:l,onEyeDropperToggle:s,onEscape:d})=>{let[c]=En.default.useState(()=>r==="canvasBackground"?[]:o2(n,r,i)),[m,u]=Se(Do),f=vn({color:t,palette:i});(0,En.useEffect)(()=>{if(!m){let T=mf({color:t,palette:i}),C=T&&!c.includes(t);u(C?"hex":T?"custom":f?.shade!=null?"shades":"baseColors")}},[m,t,i,u,f,c]);let[b,x]=(0,En.useState)(f?.shade??(r==="elementBackground"?a1:i1));(0,En.useEffect)(()=>{f?.shade!=null&&x(f.shade);let T=C=>{C.key===S.ALT&&s(!1)};return document.addEventListener("keyup",T,{capture:!0}),()=>{document.removeEventListener("keyup",T,{capture:!0})}},[f,s]);let E=En.default.useRef(null);return(0,go.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":g("labels.colorPicker"),children:(0,go.jsxs)("div",{ref:E,onKeyDown:T=>{s2({event:T,activeColorPickerSection:m,palette:i,color:t,onChange:e,onEyeDropperToggle:s,customColors:c,setActiveColorPickerSection:u,updateData:a,activeShade:b,onEscape:d})&&(T.preventDefault(),T.stopPropagation())},className:"color-picker-content",tabIndex:-1,children:[!!c.length&&(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.mostUsedCustomColors")}),(0,go.jsx)(l2,{colors:c,color:t,label:g("colorPicker.mostUsedCustomColors"),onChange:e})]}),(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.colors")}),(0,go.jsx)(a2,{color:t,label:o,palette:i,onChange:e,activeShade:b})]}),(0,go.jsxs)("div",{children:[(0,go.jsx)(ba,{children:g("colorPicker.shades")}),(0,go.jsx)(i2,{hex:t,onChange:e,palette:i})]}),l]})})};h();h();function Ce(){return Ce=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},Ce.apply(this,arguments)}var Te=v(H());h();function Et(t,e,{checkForDefaultPrevented:o=!0}={}){return function(n){if(t?.(n),o===!1||!n.defaultPrevented)return e?.(n)}}h();var m2=v(H());function d4(t,e){typeof t=="function"?t(e):t!=null&&(t.current=e)}function uf(...t){return e=>t.forEach(o=>d4(o,e))}function Ft(...t){return(0,m2.useCallback)(uf(...t),t)}h();var tr=v(H());function Er(t,e=[]){let o=[];function r(i,a){let l=(0,tr.createContext)(a),s=o.length;o=[...o,a];function d(m){let{scope:u,children:f,...b}=m,x=u?.[t][s]||l,E=(0,tr.useMemo)(()=>b,Object.values(b));return(0,tr.createElement)(x.Provider,{value:E},f)}function c(m,u){let f=u?.[t][s]||l,b=(0,tr.useContext)(f);if(b)return b;if(a!==void 0)return a;throw new Error(`\`${m}\` must be used within \`${i}\``)}return d.displayName=i+"Provider",[d,c]}let n=()=>{let i=o.map(a=>(0,tr.createContext)(a));return function(l){let s=l?.[t]||i;return(0,tr.useMemo)(()=>({[`__scope${t}`]:{...l,[t]:s}}),[l,s])}};return n.scopeName=t,[r,m4(n,...e)]}function m4(...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:d})=>{let m=s(i)[`__scope${d}`];return{...l,...m}},{});return(0,tr.useMemo)(()=>({[`__scope${e.scopeName}`]:a}),[a])}};return o.scopeName=e.scopeName,o}h();var gt=v(H());h();var xa=v(H()),p2=v(br());h();var lt=v(H());var yn=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t,n=lt.Children.toArray(o),i=n.find(u4);if(i){let a=i.props.children,l=n.map(s=>s===i?lt.Children.count(a)>1?lt.Children.only(null):(0,lt.isValidElement)(a)?a.props.children:null:s);return(0,lt.createElement)(ff,Ce({},r,{ref:e}),(0,lt.isValidElement)(a)?(0,lt.cloneElement)(a,void 0,l):null)}return(0,lt.createElement)(ff,Ce({},r,{ref:e}),o)});yn.displayName="Slot";var ff=(0,lt.forwardRef)((t,e)=>{let{children:o,...r}=t;return(0,lt.isValidElement)(o)?(0,lt.cloneElement)(o,{...f4(r,o.props),ref:uf(e,o.ref)}):lt.Children.count(o)>1?lt.Children.only(null):null});ff.displayName="SlotClone";var p4=({children:t})=>(0,lt.createElement)(lt.Fragment,null,t);function u4(t){return(0,lt.isValidElement)(t)&&t.type===p4}function f4(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 h4=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],dt=h4.reduce((t,e)=>{let o=(0,xa.forwardRef)((r,n)=>{let{asChild:i,...a}=r,l=i?yn:e;return(0,xa.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,xa.createElement)(l,Ce({},a,{ref:n}))});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{});function u2(t,e){t&&(0,p2.flushSync)(()=>t.dispatchEvent(e))}h();var va=v(H());function oo(t){let e=(0,va.useRef)(t);return(0,va.useEffect)(()=>{e.current=t}),(0,va.useMemo)(()=>(...o)=>{var r;return(r=e.current)===null||r===void 0?void 0:r.call(e,...o)},[])}h();var f2=v(H());function h2(t,e=globalThis?.document){let o=oo(t);(0,f2.useEffect)(()=>{let r=n=>{n.key==="Escape"&&o(n)};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)},[o,e])}var hf="dismissableLayer.update",g4="dismissableLayer.pointerDownOutside",b4="dismissableLayer.focusOutside",g2,x4=(0,gt.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),x2=(0,gt.forwardRef)((t,e)=>{var o;let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:l,onDismiss:s,...d}=t,c=(0,gt.useContext)(x4),[m,u]=(0,gt.useState)(null),f=(o=m?.ownerDocument)!==null&&o!==void 0?o:globalThis?.document,[,b]=(0,gt.useState)({}),x=Ft(e,_=>u(_)),E=Array.from(c.layers),[T]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),C=E.indexOf(T),w=m?E.indexOf(m):-1,A=c.layersWithOutsidePointerEventsDisabled.size>0,z=w>=C,I=v4(_=>{let U=_.target,D=[...c.branches].some(G=>G.contains(U));!z||D||(i?.(_),l?.(_),_.defaultPrevented||s?.())},f),M=E4(_=>{let U=_.target;[...c.branches].some(G=>G.contains(U))||(a?.(_),l?.(_),_.defaultPrevented||s?.())},f);return h2(_=>{w===c.layers.size-1&&(n?.(_),!_.defaultPrevented&&s&&(_.preventDefault(),s()))},f),(0,gt.useEffect)(()=>{if(m)return r&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(g2=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(m)),c.layers.add(m),b2(),()=>{r&&c.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=g2)}},[m,f,r,c]),(0,gt.useEffect)(()=>()=>{m&&(c.layers.delete(m),c.layersWithOutsidePointerEventsDisabled.delete(m),b2())},[m,c]),(0,gt.useEffect)(()=>{let _=()=>b({});return document.addEventListener(hf,_),()=>document.removeEventListener(hf,_)},[]),(0,gt.createElement)(dt.div,Ce({},d,{ref:x,style:{pointerEvents:A?z?"auto":"none":void 0,...t.style},onFocusCapture:Et(t.onFocusCapture,M.onFocusCapture),onBlurCapture:Et(t.onBlurCapture,M.onBlurCapture),onPointerDownCapture:Et(t.onPointerDownCapture,I.onPointerDownCapture)}))});function v4(t,e=globalThis?.document){let o=oo(t),r=(0,gt.useRef)(!1),n=(0,gt.useRef)(()=>{});return(0,gt.useEffect)(()=>{let i=l=>{if(l.target&&!r.current){let d=function(){v2(g4,o,s,{discrete:!0})},s={originalEvent:l};l.pointerType==="touch"?(e.removeEventListener("click",n.current),n.current=d,e.addEventListener("click",n.current,{once:!0})):d()}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 E4(t,e=globalThis?.document){let o=oo(t),r=(0,gt.useRef)(!1);return(0,gt.useEffect)(()=>{let n=i=>{i.target&&!r.current&&v2(b4,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 b2(){let t=new CustomEvent(hf);document.dispatchEvent(t)}function v2(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?u2(n,i):n.dispatchEvent(i)}h();var y2=v(H()),gf=0;function w2(){(0,y2.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:E2()),document.body.insertAdjacentElement("beforeend",(e=o[1])!==null&&e!==void 0?e:E2()),gf++,()=>{gf===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),gf--}},[])}function E2(){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 so=v(H());var bf="focusScope.autoFocusOnMount",xf="focusScope.autoFocusOnUnmount",C2={bubbles:!1,cancelable:!0};var I2=(0,so.forwardRef)((t,e)=>{let{loop:o=!1,trapped:r=!1,onMountAutoFocus:n,onUnmountAutoFocus:i,...a}=t,[l,s]=(0,so.useState)(null),d=oo(n),c=oo(i),m=(0,so.useRef)(null),u=Ft(e,x=>s(x)),f=(0,so.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,so.useEffect)(()=>{if(r){let x=function(T){if(f.paused||!l)return;let C=T.target;l.contains(C)?m.current=C:ii(m.current,{select:!0})},E=function(T){f.paused||!l||l.contains(T.relatedTarget)||ii(m.current,{select:!0})};return document.addEventListener("focusin",x),document.addEventListener("focusout",E),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",E)}}},[r,l,f.paused]),(0,so.useEffect)(()=>{if(l){T2.add(f);let x=document.activeElement;if(!l.contains(x)){let T=new CustomEvent(bf,C2);l.addEventListener(bf,d),l.dispatchEvent(T),T.defaultPrevented||(y4(k4(A2(l)),{select:!0}),document.activeElement===x&&ii(l))}return()=>{l.removeEventListener(bf,d),setTimeout(()=>{let T=new CustomEvent(xf,C2);l.addEventListener(xf,c),l.dispatchEvent(T),T.defaultPrevented||ii(x??document.body,{select:!0}),l.removeEventListener(xf,c),T2.remove(f)},0)}}},[l,d,c,f]);let b=(0,so.useCallback)(x=>{if(!o&&!r||f.paused)return;let E=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,T=document.activeElement;if(E&&T){let C=x.currentTarget,[w,A]=w4(C);w&&A?!x.shiftKey&&T===A?(x.preventDefault(),o&&ii(w,{select:!0})):x.shiftKey&&T===w&&(x.preventDefault(),o&&ii(A,{select:!0})):T===C&&x.preventDefault()}},[o,r,f.paused]);return(0,so.createElement)(dt.div,Ce({tabIndex:-1},a,{ref:u,onKeyDown:b}))});function y4(t,{select:e=!1}={}){let o=document.activeElement;for(let r of t)if(ii(r,{select:e}),document.activeElement!==o)return}function w4(t){let e=A2(t),o=S2(e,t),r=S2(e.reverse(),t);return[o,r]}function A2(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 S2(t,e){for(let o of t)if(!C4(o,{upTo:e}))return o}function C4(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 S4(t){return t instanceof HTMLInputElement&&"select"in t}function ii(t,{select:e=!1}={}){if(t&&t.focus){let o=document.activeElement;t.focus({preventScroll:!0}),t!==o&&S4(t)&&e&&t.select()}}var T2=T4();function T4(){let t=[];return{add(e){let o=t[0];e!==o&&o?.pause(),t=k2(t,e),t.unshift(e)},remove(e){var o;t=k2(t,e),(o=t[0])===null||o===void 0||o.resume()}}}function k2(t,e){let o=[...t],r=o.indexOf(e);return r!==-1&&o.splice(r,1),o}function k4(t){return t.filter(e=>e.tagName!=="A")}h();var Id=v(H());h();var M2=v(H()),No=globalThis?.document?M2.useLayoutEffect:()=>{};var I4=Id.useId||(()=>{}),A4=0;function Ea(t){let[e,o]=Id.useState(I4());return No(()=>{t||o(r=>r??String(A4++))},[t]),t||(e?`radix-${e}`:"")}h();var je=v(H());h();h();h();function li(t){return t.split("-")[0]}function Zl(t){return t.split("-")[1]}function wa(t){return["top","bottom"].includes(li(t))?"x":"y"}function Ef(t){return t==="y"?"height":"width"}function _2(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=wa(e),s=Ef(l),d=r[s]/2-n[s]/2,c=l==="x",m;switch(li(e)){case"top":m={x:i,y:r.y-n.height};break;case"bottom":m={x:i,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:a};break;case"left":m={x:r.x-n.width,y:a};break;default:m={x:r.x,y:r.y}}switch(Zl(e)){case"start":m[l]-=d*(o&&c?-1:1);break;case"end":m[l]+=d*(o&&c?-1:1)}return m}var D2=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:d,y:c}=_2(s,r,l),m=r,u={},f=0;for(let b=0;b<i.length;b++){let{name:x,fn:E}=i[b],{x:T,y:C,data:w,reset:A}=await E({x:d,y:c,initialPlacement:r,placement:m,strategy:n,middlewareData:u,rects:s,platform:a,elements:{reference:t,floating:e}});d=T??d,c=C??c,u={...u,[x]:{...u[x],...w}},A&&f<=50&&(f++,typeof A=="object"&&(A.placement&&(m=A.placement),A.rects&&(s=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:n}):A.rects),{x:d,y:c}=_2(s,m,l)),b=-1)}return{x:d,y:c,placement:m,strategy:n,middlewareData:u}};function N2(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 Yl(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function ya(t,e){var o;e===void 0&&(e={});let{x:r,y:n,platform:i,rects:a,elements:l,strategy:s}=t,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:m="floating",altBoundary:u=!1,padding:f=0}=e,b=N2(f),x=l[u?m==="floating"?"reference":"floating":m],E=Yl(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:d,rootBoundary:c,strategy:s})),T=Yl(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:m==="floating"?{...a.floating,x:r,y:n}:a.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),strategy:s}):a[m]);return{top:E.top-T.top+b.top,bottom:T.bottom-E.bottom+b.bottom,left:E.left-T.left+b.left,right:T.right-E.right+b.right}}var M4=Math.min,ai=Math.max;function vf(t,e,o){return ai(t,M4(e,o))}var Md=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 d=N2(r),c={x:n,y:i},m=wa(a),u=Zl(a),f=Ef(m),b=await s.getDimensions(o),x=m==="y"?"top":"left",E=m==="y"?"bottom":"right",T=l.reference[f]+l.reference[m]-c[m]-l.floating[f],C=c[m]-l.reference[m],w=await(s.getOffsetParent==null?void 0:s.getOffsetParent(o)),A=w?m==="y"?w.clientHeight||0:w.clientWidth||0:0;A===0&&(A=l.floating[f]);let z=T/2-C/2,I=d[x],M=A-b[f]-d[E],_=A/2-b[f]/2+z,U=vf(I,_,M),D=(u==="start"?d[x]:d[E])>0&&_!==U&&l.reference[f]<=l.floating[f];return{[m]:c[m]-(D?_<I?I-_:M-_:0),data:{[m]:U,centerOffset:_-U}}}}),_4={left:"right",right:"left",bottom:"top",top:"bottom"};function Ad(t){return t.replace(/left|right|bottom|top/g,e=>_4[e])}function L4(t,e,o){o===void 0&&(o=!1);let r=Zl(t),n=wa(t),i=Ef(n),a=n==="x"?r===(o?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(a=Ad(a)),{main:a,cross:Ad(a)}}var P4={start:"end",end:"start"};function L2(t){return t.replace(/start|end/g,e=>P4[e])}var O2=["top","right","bottom","left"],P9=O2.reduce((t,e)=>t.concat(e,e+"-start",e+"-end"),[]);var yf=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:d=!0,crossAxis:c=!0,fallbackPlacements:m,fallbackStrategy:u="bestFit",flipAlignment:f=!0,...b}=t,x=li(r),E=m||(x===a||!f?[Ad(a)]:function(_){let U=Ad(_);return[L2(_),U,L2(U)]}(a)),T=[a,...E],C=await ya(e,b),w=[],A=((o=n.flip)==null?void 0:o.overflows)||[];if(d&&w.push(C[x]),c){let{main:_,cross:U}=L4(r,i,await(l.isRTL==null?void 0:l.isRTL(s.floating)));w.push(C[_],C[U])}if(A=[...A,{placement:r,overflows:w}],!w.every(_=>_<=0)){var z,I;let _=((z=(I=n.flip)==null?void 0:I.index)!=null?z:0)+1,U=T[_];if(U)return{data:{index:_,overflows:A},reset:{placement:U}};let D="bottom";switch(u){case"bestFit":{var M;let G=(M=A.map(O=>[O,O.overflows.filter(B=>B>0).reduce((B,te)=>B+te,0)]).sort((O,B)=>O[1]-B[1])[0])==null?void 0:M[0].placement;G&&(D=G);break}case"initialPlacement":D=a}if(r!==D)return{reset:{placement:D}}}return{}}}};function P2(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function R2(t){return O2.some(e=>t[e]>=0)}var wf=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=P2(await ya(r,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:R2(i)}}}case"escaped":{let i=P2(await ya(r,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:i,escaped:R2(i)}}}default:return{}}}}},Cf=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:d}=i,c=await(s.isRTL==null?void 0:s.isRTL(d.floating)),m=li(l),u=Zl(l),f=wa(l)==="x",b=["left","top"].includes(m)?-1:1,x=c&&f?-1:1,E=typeof a=="function"?a(i):a,{mainAxis:T,crossAxis:C,alignmentAxis:w}=typeof E=="number"?{mainAxis:E,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...E};return u&&typeof w=="number"&&(C=u==="end"?-1*w:w),f?{x:C*x,y:T*b}:{x:T*b,y:C*x}}(e,t);return{x:o+n.x,y:r+n.y,data:n}}}};function F2(t){return t==="x"?"y":"x"}var Sf=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:E=>{let{x:T,y:C}=E;return{x:T,y:C}}},...s}=t,d={x:o,y:r},c=await ya(e,s),m=wa(li(n)),u=F2(m),f=d[m],b=d[u];if(i){let E=m==="y"?"bottom":"right";f=vf(f+c[m==="y"?"top":"left"],f,f-c[E])}if(a){let E=u==="y"?"bottom":"right";b=vf(b+c[u==="y"?"top":"left"],b,b-c[E])}let x=l.fn({...e,[m]:f,[u]:b});return{...x,data:{x:x.x-o,y:x.y-r}}}}},Tf=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:d=!0}=t,c={x:o,y:r},m=wa(n),u=F2(m),f=c[m],b=c[u],x=typeof l=="function"?l({...i,placement:n}):l,E=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(s){let z=m==="y"?"height":"width",I=i.reference[m]-i.floating[z]+E.mainAxis,M=i.reference[m]+i.reference[z]-E.mainAxis;f<I?f=I:f>M&&(f=M)}if(d){var T,C,w,A;let z=m==="y"?"width":"height",I=["top","left"].includes(li(n)),M=i.reference[u]-i.floating[z]+(I&&(T=(C=a.offset)==null?void 0:C[u])!=null?T:0)+(I?0:E.crossAxis),_=i.reference[u]+i.reference[z]+(I?0:(w=(A=a.offset)==null?void 0:A[u])!=null?w:0)-(I?E.crossAxis:0);b<M?b=M:b>_&&(b=_)}return{[m]:f,[u]:b}}}},kf=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 ya(e,l),d=li(o),c=Zl(o),m,u;d==="top"||d==="bottom"?(m=d,u=c===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(u=d,m=c==="end"?"top":"bottom");let f=ai(s.left,0),b=ai(s.right,0),x=ai(s.top,0),E=ai(s.bottom,0),T={availableHeight:r.floating.height-(["left","right"].includes(o)?2*(x!==0||E!==0?x+E:ai(s.top,s.bottom)):s[m]),availableWidth:r.floating.width-(["top","bottom"].includes(o)?2*(f!==0||b!==0?f+b:ai(s.left,s.right)):s[u])},C=await n.getDimensions(i.floating);a?.({...e,...T});let w=await n.getDimensions(i.floating);return C.width!==w.width||C.height!==w.height?{reset:{rects:!0}}:{}}}};function W2(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Zr(t){if(t==null)return window;if(!W2(t)){let e=t.ownerDocument;return e&&e.defaultView||window}return t}function Xl(t){return Zr(t).getComputedStyle(t)}function Kr(t){return W2(t)?"":t?(t.nodeName||"").toLowerCase():""}function G2(){let t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function yr(t){return t instanceof Zr(t).HTMLElement}function Cn(t){return t instanceof Zr(t).Element}function Af(t){return typeof ShadowRoot>"u"?!1:t instanceof Zr(t).ShadowRoot||t instanceof ShadowRoot}function Pd(t){let{overflow:e,overflowX:o,overflowY:r}=Xl(t);return/auto|scroll|overlay|hidden/.test(e+r+o)}function R4(t){return["table","td","th"].includes(Kr(t))}function B2(t){let e=/firefox/i.test(G2()),o=Xl(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 V2(){return!/^((?!chrome|android).)*safari/i.test(G2())}var z2=Math.min,jl=Math.max,_d=Math.round;function Yr(t,e,o){var r,n,i,a;e===void 0&&(e=!1),o===void 0&&(o=!1);let l=t.getBoundingClientRect(),s=1,d=1;e&&yr(t)&&(s=t.offsetWidth>0&&_d(l.width)/t.offsetWidth||1,d=t.offsetHeight>0&&_d(l.height)/t.offsetHeight||1);let c=Cn(t)?Zr(t):window,m=!V2()&&o,u=(l.left+(m&&(r=(n=c.visualViewport)==null?void 0:n.offsetLeft)!=null?r:0))/s,f=(l.top+(m&&(i=(a=c.visualViewport)==null?void 0:a.offsetTop)!=null?i:0))/d,b=l.width/s,x=l.height/d;return{width:b,height:x,top:f,right:u+b,bottom:f+x,left:u,x:u,y:f}}function wn(t){return(e=t,(e instanceof Zr(e).Node?t.ownerDocument:t.document)||window.document).documentElement;var e}function Rd(t){return Cn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function K2(t){return Yr(wn(t)).left+Rd(t).scrollLeft}function D4(t,e,o){let r=yr(e),n=wn(e),i=Yr(t,r&&function(s){let d=Yr(s);return _d(d.width)!==s.offsetWidth||_d(d.height)!==s.offsetHeight}(e),o==="fixed"),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if(r||!r&&o!=="fixed")if((Kr(e)!=="body"||Pd(n))&&(a=Rd(e)),yr(e)){let s=Yr(e,!0);l.x=s.x+e.clientLeft,l.y=s.y+e.clientTop}else n&&(l.x=K2(n));return{x:i.left+a.scrollLeft-l.x,y:i.top+a.scrollTop-l.y,width:i.width,height:i.height}}function Y2(t){return Kr(t)==="html"?t:t.assignedSlot||t.parentNode||(Af(t)?t.host:null)||wn(t)}function $2(t){return yr(t)&&getComputedStyle(t).position!=="fixed"?t.offsetParent:null}function If(t){let e=Zr(t),o=$2(t);for(;o&&R4(o)&&getComputedStyle(o).position==="static";)o=$2(o);return o&&(Kr(o)==="html"||Kr(o)==="body"&&getComputedStyle(o).position==="static"&&!B2(o))?e:o||function(r){let n=Y2(r);for(Af(n)&&(n=n.host);yr(n)&&!["html","body"].includes(Kr(n));){if(B2(n))return n;n=n.parentNode}return null}(t)||e}function H2(t){if(yr(t))return{width:t.offsetWidth,height:t.offsetHeight};let e=Yr(t);return{width:e.width,height:e.height}}function Z2(t){let e=Y2(t);return["html","body","#document"].includes(Kr(e))?t.ownerDocument.body:yr(e)&&Pd(e)?e:Z2(e)}function Ld(t,e){var o;e===void 0&&(e=[]);let r=Z2(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),i=Zr(r),a=n?[i].concat(i.visualViewport||[],Pd(r)?r:[]):r,l=e.concat(a);return n?l:l.concat(Ld(a))}function U2(t,e,o){return e==="viewport"?Yl(function(r,n){let i=Zr(r),a=wn(r),l=i.visualViewport,s=a.clientWidth,d=a.clientHeight,c=0,m=0;if(l){s=l.width,d=l.height;let u=V2();(u||!u&&n==="fixed")&&(c=l.offsetLeft,m=l.offsetTop)}return{width:s,height:d,x:c,y:m}}(t,o)):Cn(e)?function(r,n){let i=Yr(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):Yl(function(r){var n;let i=wn(r),a=Rd(r),l=(n=r.ownerDocument)==null?void 0:n.body,s=jl(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),d=jl(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),c=-a.scrollLeft+K2(r),m=-a.scrollTop;return Xl(l||i).direction==="rtl"&&(c+=jl(i.clientWidth,l?l.clientWidth:0)-s),{width:s,height:d,x:c,y:m}}(wn(t)))}function N4(t){let e=Ld(t),o=["absolute","fixed"].includes(Xl(t).position)&&yr(t)?If(t):t;return Cn(o)?e.filter(r=>Cn(r)&&function(n,i){let a=i.getRootNode==null?void 0:i.getRootNode();if(n.contains(i))return!0;if(a&&Af(a)){let l=i;do{if(l&&n===l)return!0;l=l.parentNode||l.host}while(l)}return!1}(r,o)&&Kr(r)!=="body"):[]}var O4={getClippingRect:function(t){let{element:e,boundary:o,rootBoundary:r,strategy:n}=t,i=[...o==="clippingAncestors"?N4(e):[].concat(o),r],a=i[0],l=i.reduce((s,d)=>{let c=U2(e,d,n);return s.top=jl(c.top,s.top),s.right=z2(c.right,s.right),s.bottom=z2(c.bottom,s.bottom),s.left=jl(c.left,s.left),s},U2(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=yr(o),i=wn(o);if(o===i)return e;let a={scrollLeft:0,scrollTop:0},l={x:0,y:0};if((n||!n&&r!=="fixed")&&((Kr(o)!=="body"||Pd(i))&&(a=Rd(o)),yr(o))){let s=Yr(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:Cn,getDimensions:H2,getOffsetParent:If,getDocumentElement:wn,getElementRects:t=>{let{reference:e,floating:o,strategy:r}=t;return{reference:D4(e,If(o),r),floating:{...H2(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Xl(t).direction==="rtl"};function j2(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,d=i&&!l,c=s||d?[...Cn(t)?Ld(t):[],...Ld(e)]:[];c.forEach(b=>{s&&b.addEventListener("scroll",o,{passive:!0}),d&&b.addEventListener("resize",o)});let m,u=null;if(a){let b=!0;u=new ResizeObserver(()=>{b||o(),b=!1}),Cn(t)&&!l&&u.observe(t),u.observe(e)}let f=l?Yr(t):null;return l&&function b(){let x=Yr(t);!f||x.x===f.x&&x.y===f.y&&x.width===f.width&&x.height===f.height||o(),f=x,m=requestAnimationFrame(b)}(),o(),()=>{var b;c.forEach(x=>{s&&x.removeEventListener("scroll",o),d&&x.removeEventListener("resize",o)}),(b=u)==null||b.disconnect(),u=null,l&&cancelAnimationFrame(m)}}var X2=(t,e,o)=>D2(t,e,{platform:O4,...o});var Bt=v(H()),Dd=v(H()),q2=v(br()),Mf=typeof document<"u"?Dd.useLayoutEffect:Dd.useEffect;function _f(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(!_f(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)&&!_f(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function F4(t){let e=Bt.useRef(t);return Mf(()=>{e.current=t}),e}function J2(t){let{middleware:e,placement:o="bottom",strategy:r="absolute",whileElementsMounted:n}=t===void 0?{}:t,i=Bt.useRef(null),a=Bt.useRef(null),l=F4(n),s=Bt.useRef(null),[d,c]=Bt.useState({x:null,y:null,strategy:r,placement:o,middlewareData:{}}),[m,u]=Bt.useState(e);_f(m?.map(w=>{let{options:A}=w;return A}),e?.map(w=>{let{options:A}=w;return A}))||u(e);let f=Bt.useCallback(()=>{!i.current||!a.current||X2(i.current,a.current,{middleware:m,placement:o,strategy:r}).then(w=>{b.current&&q2.flushSync(()=>{c(w)})})},[m,o,r]);Mf(()=>{b.current&&f()},[f]);let b=Bt.useRef(!1);Mf(()=>(b.current=!0,()=>{b.current=!1}),[]);let x=Bt.useCallback(()=>{if(typeof s.current=="function"&&(s.current(),s.current=null),i.current&&a.current)if(l.current){let w=l.current(i.current,a.current,f);s.current=w}else f()},[f,l]),E=Bt.useCallback(w=>{i.current=w,x()},[x]),T=Bt.useCallback(w=>{a.current=w,x()},[x]),C=Bt.useMemo(()=>({reference:i,floating:a}),[]);return Bt.useMemo(()=>({...d,update:f,refs:C,reference:E,floating:T}),[d,f,C,E,T])}var Q2=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?Md({element:e.current,padding:o}).fn(n):{}:e?Md({element:e,padding:o}).fn(n):{}}}};h();var ql=v(H());var B4=(0,ql.forwardRef)((t,e)=>{let{children:o,width:r=10,height:n=5,...i}=t;return(0,ql.createElement)(dt.svg,Ce({},i,{ref:e,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),t.asChild?o:(0,ql.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),eE=B4;h();var tE=v(H());function oE(t){let[e,o]=(0,tE.useState)(void 0);return No(()=>{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,d=Array.isArray(s)?s[0]:s;a=d.inlineSize,l=d.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 rE="Popper",[Lf,Pf]=Er(rE),[z4,nE]=Lf(rE),$4=t=>{let{__scopePopper:e,children:o}=t,[r,n]=(0,je.useState)(null);return(0,je.createElement)(z4,{scope:e,anchor:r,onAnchorChange:n},o)},H4="PopperAnchor",U4=(0,je.forwardRef)((t,e)=>{let{__scopePopper:o,virtualRef:r,...n}=t,i=nE(H4,o),a=(0,je.useRef)(null),l=Ft(e,a);return(0,je.useEffect)(()=>{i.onAnchorChange(r?.current||a.current)}),r?null:(0,je.createElement)(dt.div,Ce({},n,{ref:l}))}),Nd="PopperContent",[W4,G4]=Lf(Nd),[V4,K4]=Lf(Nd,{hasParent:!1,positionUpdateFns:new Set}),Y4=(0,je.forwardRef)((t,e)=>{var o,r,n,i,a,l,s,d;let{__scopePopper:c,side:m="bottom",sideOffset:u=0,align:f="center",alignOffset:b=0,arrowPadding:x=0,collisionBoundary:E=[],collisionPadding:T=0,sticky:C="partial",hideWhenDetached:w=!1,avoidCollisions:A=!0,onPlaced:z,...I}=t,M=nE(Nd,c),[_,U]=(0,je.useState)(null),D=Ft(e,Ni=>U(Ni)),[G,O]=(0,je.useState)(null),B=oE(G),te=(o=B?.width)!==null&&o!==void 0?o:0,oe=(r=B?.height)!==null&&r!==void 0?r:0,ve=m+(f!=="center"?"-"+f:""),Ie=typeof T=="number"?T:{top:0,right:0,bottom:0,left:0,...T},me=Array.isArray(E)?E:[E],j=me.length>0,R={padding:Ie,boundary:me.filter(J4),altBoundary:j},{reference:N,floating:K,strategy:Y,x:Z,y:X,placement:ee,middlewareData:ne,update:rt}=J2({strategy:"fixed",placement:ve,whileElementsMounted:j2,middleware:[Q4(),Cf({mainAxis:u+oe,alignmentAxis:b}),A?Sf({mainAxis:!0,crossAxis:!1,limiter:C==="partial"?Tf():void 0,...R}):void 0,G?Q2({element:G,padding:x}):void 0,A?yf({...R}):void 0,kf({...R,apply:({elements:Ni,availableWidth:T6,availableHeight:k6})=>{Ni.floating.style.setProperty("--radix-popper-available-width",`${T6}px`),Ni.floating.style.setProperty("--radix-popper-available-height",`${k6}px`)}}),eC({arrowWidth:te,arrowHeight:oe}),w?wf({strategy:"referenceHidden"}):void 0].filter(q4)});No(()=>{N(M.anchor)},[N,M.anchor]);let nt=Z!==null&&X!==null,[st,Ue]=iE(ee),Jt=oo(z);No(()=>{nt&&Jt?.()},[nt,Jt]);let Gs=(n=ne.arrow)===null||n===void 0?void 0:n.x,E6=(i=ne.arrow)===null||i===void 0?void 0:i.y,y6=((a=ne.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[w6,C6]=(0,je.useState)();No(()=>{_&&C6(window.getComputedStyle(_).zIndex)},[_]);let{hasParent:S6,positionUpdateFns:Di}=K4(Nd,c),il=!S6;(0,je.useLayoutEffect)(()=>{if(!il)return Di.add(rt),()=>{Di.delete(rt)}},[il,Di,rt]),No(()=>{il&&nt&&Array.from(Di).reverse().forEach(Ni=>requestAnimationFrame(Ni))},[il,nt,Di]);let e1={"data-side":st,"data-align":Ue,...I,ref:D,style:{...I.style,animation:nt?void 0:"none",opacity:(l=ne.hide)!==null&&l!==void 0&&l.referenceHidden?0:void 0}};return(0,je.createElement)("div",{ref:K,"data-radix-popper-content-wrapper":"",style:{position:Y,left:0,top:0,transform:nt?`translate3d(${Math.round(Z)}px, ${Math.round(X)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:w6,"--radix-popper-transform-origin":[(s=ne.transformOrigin)===null||s===void 0?void 0:s.x,(d=ne.transformOrigin)===null||d===void 0?void 0:d.y].join(" ")},dir:t.dir},(0,je.createElement)(W4,{scope:c,placedSide:st,onArrowChange:O,arrowX:Gs,arrowY:E6,shouldHideArrow:y6},il?(0,je.createElement)(V4,{scope:c,hasParent:!0,positionUpdateFns:Di},(0,je.createElement)(dt.div,e1)):(0,je.createElement)(dt.div,e1)))}),Z4="PopperArrow",j4={top:"bottom",right:"left",bottom:"top",left:"right"},X4=(0,je.forwardRef)(function(e,o){let{__scopePopper:r,...n}=e,i=G4(Z4,r),a=j4[i.placedSide];return(0,je.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,je.createElement)(eE,Ce({},n,{ref:o,style:{...n.style,display:"block"}})))});function q4(t){return t!==void 0}function J4(t){return t!==null}var Q4=()=>({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`),{}}}),eC=t=>({name:"transformOrigin",options:t,fn(e){var o,r,n,i,a;let{placement:l,rects:s,middlewareData:d}=e,m=((o=d.arrow)===null||o===void 0?void 0:o.centerOffset)!==0,u=m?0:t.arrowWidth,f=m?0:t.arrowHeight,[b,x]=iE(l),E={start:"0%",center:"50%",end:"100%"}[x],T=((r=(n=d.arrow)===null||n===void 0?void 0:n.x)!==null&&r!==void 0?r:0)+u/2,C=((i=(a=d.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+f/2,w="",A="";return b==="bottom"?(w=m?E:`${T}px`,A=`${-f}px`):b==="top"?(w=m?E:`${T}px`,A=`${s.floating.height+f}px`):b==="right"?(w=`${-f}px`,A=m?E:`${C}px`):b==="left"&&(w=`${s.floating.width+f}px`,A=m?E:`${C}px`),{data:{x:w,y:A}}}});function iE(t){let[e,o="center"]=t.split("-");return[e,o]}var aE=$4,lE=U4,sE=Y4,cE=X4;h();var Od=v(H()),dE=v(br());var mE=(0,Od.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?dE.default.createPortal((0,Od.createElement)(dt.div,Ce({},n,{ref:e})),r):null});h();var Vt=v(H()),pE=v(br());function tC(t,e){return(0,Vt.useReducer)((o,r)=>{let n=e[o][r];return n??o},t)}var Ca=t=>{let{present:e,children:o}=t,r=oC(e),n=typeof o=="function"?o({present:r.isPresent}):Vt.Children.only(o),i=Ft(r.ref,n.ref);return typeof o=="function"||r.isPresent?(0,Vt.cloneElement)(n,{ref:i}):null};Ca.displayName="Presence";function oC(t){let[e,o]=(0,Vt.useState)(),r=(0,Vt.useRef)({}),n=(0,Vt.useRef)(t),i=(0,Vt.useRef)("none"),a=t?"mounted":"unmounted",[l,s]=tC(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Vt.useEffect)(()=>{let d=Fd(r.current);i.current=l==="mounted"?d:"none"},[l]),No(()=>{let d=r.current,c=n.current;if(c!==t){let u=i.current,f=Fd(d);t?s("MOUNT"):f==="none"||d?.display==="none"?s("UNMOUNT"):s(c&&u!==f?"ANIMATION_OUT":"UNMOUNT"),n.current=t}},[t,s]),No(()=>{if(e){let d=m=>{let f=Fd(r.current).includes(m.animationName);m.target===e&&f&&(0,pE.flushSync)(()=>s("ANIMATION_END"))},c=m=>{m.target===e&&(i.current=Fd(r.current))};return e.addEventListener("animationstart",c),e.addEventListener("animationcancel",d),e.addEventListener("animationend",d),()=>{e.removeEventListener("animationstart",c),e.removeEventListener("animationcancel",d),e.removeEventListener("animationend",d)}}else s("ANIMATION_END")},[e,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,Vt.useCallback)(d=>{d&&(r.current=getComputedStyle(d)),o(d)},[])}}function Fd(t){return t?.animationName||"none"}h();var Sn=v(H());function Sa({prop:t,defaultProp:e,onChange:o=()=>{}}){let[r,n]=rC({defaultProp:e,onChange:o}),i=t!==void 0,a=i?t:r,l=oo(o),s=(0,Sn.useCallback)(d=>{if(i){let m=typeof d=="function"?d(t):d;m!==t&&l(m)}else n(d)},[i,t,n,l]);return[a,s]}function rC({defaultProp:t,onChange:e}){let o=(0,Sn.useState)(t),[r]=o,n=(0,Sn.useRef)(r),i=oo(e);return(0,Sn.useEffect)(()=>{n.current!==r&&(i(r),n.current=r)},[r,n,i]),o}h();var nC=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Ta=new WeakMap,Bd=new WeakMap,zd={},Rf=0,uE=function(t){return t&&(t.host||uE(t.parentNode))},iC=function(t,e){return e.map(function(o){if(t.contains(o))return o;var r=uE(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})},aC=function(t,e,o,r){var n=iC(e,Array.isArray(t)?t:[t]);zd[o]||(zd[o]=new WeakMap);var i=zd[o],a=[],l=new Set,s=new Set(n),d=function(m){!m||l.has(m)||(l.add(m),d(m.parentNode))};n.forEach(d);var c=function(m){!m||s.has(m)||Array.prototype.forEach.call(m.children,function(u){if(l.has(u))c(u);else try{var f=u.getAttribute(r),b=f!==null&&f!=="false",x=(Ta.get(u)||0)+1,E=(i.get(u)||0)+1;Ta.set(u,x),i.set(u,E),a.push(u),x===1&&b&&Bd.set(u,!0),E===1&&u.setAttribute(o,"true"),b||u.setAttribute(r,"true")}catch(T){console.error("aria-hidden: cannot operate on ",u,T)}})};return c(e),l.clear(),Rf++,function(){a.forEach(function(m){var u=Ta.get(m)-1,f=i.get(m)-1;Ta.set(m,u),i.set(m,f),u||(Bd.has(m)||m.removeAttribute(r),Bd.delete(m)),f||m.removeAttribute(o)}),Rf--,Rf||(Ta=new WeakMap,Ta=new WeakMap,Bd=new WeakMap,zd={})}},fE=function(t,e,o){o===void 0&&(o="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),n=e||nC(t);return n?(r.push.apply(r,Array.from(n.querySelectorAll("[aria-live]"))),aC(r,n,o,"aria-hidden")):function(){return null}};h();h();h();var co=function(){return co=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},co.apply(this,arguments)};function $d(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 hE(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 Vd=v(H());h();var Kt=v(H());h();var si="right-scroll-bar-position",ci="width-before-scroll-bar",Df="with-scroll-bars-hidden",Nf="--removed-body-scroll-bar-size";h();h();function Hd(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}h();var gE=v(H());function bE(t,e){var o=(0,gE.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();var Ud=v(H());var lC=typeof window<"u"?Ud.useLayoutEffect:Ud.useEffect,xE=new WeakMap;function Of(t,e){var o=bE(e||null,function(r){return t.forEach(function(n){return Hd(n,r)})});return lC(function(){var r=xE.get(o);if(r){var n=new Set(r),i=new Set(t),a=o.current;n.forEach(function(l){i.has(l)||Hd(l,null)}),i.forEach(function(l){n.has(l)||Hd(l,a)})}xE.set(o,t)},[t]),o}h();h();h();function sC(t){return t}function cC(t,e){e===void 0&&(e=sC);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 c=a;a=[],c.forEach(i)},d=function(){return Promise.resolve().then(s)};d(),o={push:function(c){a.push(c),d()},filter:function(c){return a=a.filter(c),o}}}};return n}function Ff(t){t===void 0&&(t={});var e=cC(null);return e.options=co({async:!0,ssr:!1},t),e}h();var vE=v(H()),EE=function(t){var e=t.sideCar,o=$d(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 vE.createElement(r,co({},o))};EE.isSideCarExport=!0;function Bf(t,e){return t.useMedium(e),EE}var Wd=Ff();var zf=function(){},Jl=Kt.forwardRef(function(t,e){var o=Kt.useRef(null),r=Kt.useState({onScrollCapture:zf,onWheelCapture:zf,onTouchMoveCapture:zf}),n=r[0],i=r[1],a=t.forwardProps,l=t.children,s=t.className,d=t.removeScrollBar,c=t.enabled,m=t.shards,u=t.sideCar,f=t.noIsolation,b=t.inert,x=t.allowPinchZoom,E=t.as,T=E===void 0?"div":E,C=$d(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),w=u,A=Of([o,e]),z=co(co({},C),n);return Kt.createElement(Kt.Fragment,null,c&&Kt.createElement(w,{sideCar:Wd,removeScrollBar:d,shards:m,noIsolation:f,inert:b,setCallbacks:i,allowPinchZoom:!!x,lockRef:o}),a?Kt.cloneElement(Kt.Children.only(l),co(co({},z),{ref:A})):Kt.createElement(T,co({},z,{className:s,ref:A}),l))});Jl.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Jl.classNames={fullWidth:ci,zeroRight:si};h();h();var Xe=v(H());h();h();var Ia=v(H());h();h();h();var CE=v(H());h();h();var yE;var wE=function(){if(yE)return yE;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function dC(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=wE();return e&&t.setAttribute("nonce",e),t}function mC(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function pC(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var $f=function(){var t=0,e=null;return{add:function(o){t==0&&(e=dC())&&(mC(e,o),pC(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Hf=function(){var t=$f();return function(e,o){CE.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&o])}};var Ql=function(){var t=Hf(),e=function(o){var r=o.styles,n=o.dynamic;return t(r,n),null};return e};h();var uC={left:0,top:0,right:0,gap:0},Uf=function(t){return parseInt(t||"",10)||0},fC=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[Uf(o),Uf(r),Uf(n)]},Wf=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return uC;var e=fC(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 hC=Ql(),ka="data-scroll-locked",gC=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 OS,$a as X,$b as Is,$c as Nd,$d as fT,$e as jT,$f as xa,$g as Ud,$h as mf,$i as EI,A as Ju,Aa as sp,Ab as Dx,Ac as A2,Ad as Kx,Ae as NT,Ag as jp,Ah as JC,Ai as dI,Aj as LI,B as kS,Ba as cp,Bb as vo,Bc as k2,Bd as Yx,Be as OT,Bg as wl,Bh as Ea,Bi as bf,Bj as Oe,C as Cx,Ca as In,Cb as Nx,Cc as re,Cd as Vx,Ce as FT,Cg as Jp,Ch as QC,Ci as xf,Cj as Sf,D as pt,Da as dp,Db as hp,Dc as Jo,Dd as Xx,De as BT,Df as mC,Dg as Hd,Dh as Ks,Di as mI,Dj as ht,E as sa,Ea as Zt,Eb as Wt,Ec as ft,Ed as J2,Ee as Pp,Ef as uC,Eg as Hs,Eh as eI,Ei as je,Ej as RI,F as al,Fa as qo,Fb as m2,Fc as P2,Fd as Q2,Fe as Mp,Ff as Bp,Fg as PC,Fh as af,Fi as Il,Fj as Al,G as Sd,Ga as ZS,Gb as u2,Gc as An,Gd as Zx,Ge as Rs,Gf as zp,Gg as va,Gh as tI,Gi as vf,Gj as Pi,H as ys,Ha as Id,Hb as bp,Hc as ha,Hd as qx,He as Lp,Hf as cv,Hg as ya,Hh as lf,Hi as uI,Hj as Mi,I as Qu,Ia as xo,Ib as Pd,Ic as yp,Id as Ip,Ie as Ds,If as $p,Ig as pv,Ih as sf,Ii as pI,J as ll,Ja as Cr,Jb as Md,Jc as M2,Jd as Qo,Je as Fd,Jf as pC,Jg as fv,Jh as rI,Ji as fI,K as Be,Ka as qS,Kb as pa,Kc as L2,Kd as jx,Ke as zT,Kf as dv,Kg as Qp,Kh as cf,Ki as gI,L as Cn,La as jS,Lb as $r,Lc as R2,Ld as Jx,Le as Ns,Lf as Ci,Lg as ef,Lh as Vn,Li as Zs,M as Es,Ma as Mx,Mb as fl,Mc as hl,Md as eT,Me as $T,Mf as fC,Mg as MC,Mh as vv,Mi as qd,N as ws,Na as da,Nb as Cs,Nc as Ps,Nd as tT,Ne as HT,Nf as Hp,Ng as en,Nh as oI,Ni as hI,O as ep,Oa as JS,Ob as he,Oc as D2,Od as rT,Oe as UT,Of as gC,Og as W,Oh as df,Oi as bI,P as Ix,Pa as QS,Pb as Ld,Pc as N2,Pd as oT,Pe as Rp,Pf as zd,Pg as LC,Ph as nI,Pi as xI,Q as tp,Qa as e2,Qb as He,Qc as O2,Qd as Qx,Qe as GT,Qf as mv,Qg as gv,Qh as iI,Qi as vI,R as PS,Ra as Yn,Rb as Qe,Rc as F2,Rd as nT,Re as WT,Rf as hC,Rg as Sl,Rh as G7,Ri as yI,S as Td,Sa as cl,Sb as _t,Sc as Ep,Sd as iT,Se as KT,Sf as bC,Sg as RC,Sh as wa,Si as Do,T as MS,Ta as ro,Tb as dt,Tc as B2,Td as aT,Te as Dp,Tf as xC,Tg as Us,Th as Wd,Ti as ki,U as LS,Ua as dl,Ub as p2,Uc as Ox,Ud as lT,Ue as YT,Uf as vl,Ug as DC,Uh as yv,Ui as rn,V as yi,Va as mp,Vb as Ei,Vc as Fx,Vd as sT,Ve as VT,Vf as Ii,Vg as NC,Vh as Ev,Vi as ce,W as RS,Wa as ml,Wb as f2,Wc as z2,Wd as cT,We as XT,Wf as ba,Wg as OC,Wh as wv,Wi as ke,X as Lr,Xa as t2,Xb as wi,Xc as kn,Xd as dT,Xe as ZT,Xf as uv,Xg as FC,Xh as Sv,Xi as Cv,Y as rp,Ya as r2,Yb as g2,Yc as $2,Yd as mT,Ye as rv,Yf as vC,Yg as BC,Yh as Ys,Yi as _l,Z as DS,Za as ul,Zb as yo,Zc as Rd,Zd as uT,Ze as Np,Zf as Up,Zg as zC,Zh as Eo,Zi as jd,_ as NS,_a as Gt,_b as Ir,_c as Dd,_d as pT,_e as qT,_f as $d,_g as tf,_h as lt,_i as Iv,a as j,aa as FS,ab as Mt,ac as h2,ad as wp,ae as ev,af as JT,ag as yC,ah as $C,ai as tn,aj as yf,b as M,ba as BS,bb as oo,bc as b2,bd as bl,be as gT,bf as QT,bg as EC,bh as HC,bi as Tv,bj as wI,c as q,ca as zS,cb as _d,cc as x2,cd as Ms,ce as hT,cf as eC,cg as Gp,ch as UC,ci as Pn,cj as SI,d as zr,da as sl,db as ma,dc as fa,dd as H2,de as bT,df as tC,dg as Wp,dh as GC,di as _i,dj as Ef,e as vS,ea as op,eb as up,ec as _s,ed as Bx,ee as xT,ef as rC,eg as Kp,eh as WC,ei as Sa,ej as _v,f as nl,fa as _x,fb as Lx,fc as v2,fd as Sp,fe as vT,ff as oC,fg as Fs,fh as rf,fi as Kd,fj as Av,g as yS,ga as $S,gb as Rx,gc as As,gd as U2,ge as yT,gf as nC,gg as Yp,gh as KC,gi as no,gj as kv,h as ES,ha as HS,hb as pl,hc as jo,hd as G2,he as ET,hf as iC,hg as Vp,hh as YC,hi as uf,hj as TI,i as xi,ia as np,ib as pp,ic as Si,id as W2,ie as wT,if as aC,ig as wC,ih as hv,ii as Vs,ij as wf,j as Vu,ja as ip,jb as o2,jc as y2,jd as Od,je as ST,jf as lC,jg as Ne,jh as Gs,ji as Xs,jj as CI,k as Xu,ka as Ax,kb as n2,kc as Rr,kd as K2,ke as TT,kf as sC,kg as R,kh as VC,ki as Yd,kj as II,l as Zu,la as US,lb as i2,lc as xp,ld as Y2,le as xl,lf as Os,lg as Bs,lh as XC,li as Vd,lj as _I,m as wS,ma as GS,mb as Re,mc as E2,md as Ls,me as CT,mf as Op,mg as Xp,mh as ZC,mi as Cl,mj as AI,n as SS,na as WS,nb as a2,nc as _n,nd as V2,ne as IT,nf as ov,ng as zs,nh as of,ni as Le,nj as kI,o as TS,oa as KS,ob as l2,oc as w2,od as Tp,oe as _T,of as nv,og as Zp,oh as qC,oi as aI,oj as PI,p as Tn,pa as YS,pb as Ad,pc as S2,pd as Cp,pe as AT,pf as Fp,pg as SC,ph as Ws,pi as Xd,pj as Pv,q as qu,qa as ap,qb as s2,qc as ks,qd as X2,qe as kT,qf as iv,qg as $s,qh as Tl,qi as lI,qj as qs,r as vi,ra as ca,rb as fp,rc as Kt,rd as Z2,re as PT,rf as av,rg as TC,rh as bv,ri as sI,rj as W7,s as CS,sa as VS,sb as Ss,sc as T2,sd as zx,se as MT,sf as cC,sg as CC,sh as Gd,si as Zd,sj as Mv,t as IS,ta as kx,tb as c2,tc as C2,td as $x,te as LT,tf as dC,tg as IC,th as z7,ti as qt,tj as Lv,u as _S,ua as XS,ub as Ts,uc as I2,ud as q2,ue as _p,uf as lv,ug as qp,uh as $7,ui as pf,uj as We,v as Ed,va as lp,vb as kd,vc as gl,vd as j2,ve as RT,vf as B7,vg as _C,vh as H7,vi as ff,vj as Rv,w as wd,wa as Px,wb as br,wc as _2,wd as Hx,we as Ap,wf as sv,wg as yl,wh as U7,wi as gf,wj as js,x as il,xa as Zo,xb as ua,xc as ga,xd as Ux,xe as tv,xf as Bd,xg as AC,xh as nf,xi as Ai,xj as MI,y as ju,ya as Cd,yb as gp,yc as Ti,yd as Gx,ye as kp,yg as kC,yh as jC,yi as cI,yj as Dv,z as AS,za as bo,zb as d2,zc as vp,zd as Wx,ze as DT,zg as El,zh as xv,zi as hf,zj as gt}from"./excalidraw-assets/chunk-OYEADJSR.js";import{a as v,b as A}from"./excalidraw-assets/chunk-M2JW2GFW.js";import{H as Tx}from"./excalidraw-assets/chunk-PDYFZJMS.js";import{aa as xS}from"./excalidraw-assets/chunk-V55EI3XA.js";import{b as hS,d as la,e as bS,f as w}from"./excalidraw-assets/chunk-SXMPUQ6M.js";var Zn=la((iU,WI)=>{v();WI.exports=ReactDOM});var bE=la((ele,k5)=>{v();var A5="Expected a function",I5=NaN,qF="[object Symbol]",jF=/^\s+|\s+$/g,JF=/^[-+]0x[0-9a-f]+$/i,QF=/^0b[01]+$/i,eB=/^0o[0-7]+$/i,tB=parseInt,rB=typeof global=="object"&&global&&global.Object===Object&&global,oB=typeof self=="object"&&self&&self.Object===Object&&self,nB=rB||oB||Function("return this")(),iB=Object.prototype,aB=iB.toString,lB=Math.max,sB=Math.min,hE=function(){return nB.Date.now()};function cB(e,t,r){var o,i,a,s,c,d,u=0,f=!1,m=!1,g=!0;if(typeof e!="function")throw new TypeError(A5);t=_5(t)||0,Jg(r)&&(f=!!r.leading,m="maxWait"in r,a=m?lB(_5(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,u=L,s=e.apply(D,F),s}function b(L){return u=L,c=setTimeout(k,t),f?h(L):s}function y(L){var F=L-d,D=L-u,V=t-F;return m?sB(V,a-D):V}function T(L){var F=L-d,D=L-u;return d===void 0||F>=t||F<0||m&&D>=a}function k(){var L=hE();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 C(){c!==void 0&&clearTimeout(c),u=0,o=d=i=c=void 0}function O(){return c===void 0?s:I(hE())}function z(){var L=hE(),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=C,z.flush=O,z}function dB(e,t,r){var o=!0,i=!0;if(typeof e!="function")throw new TypeError(A5);return Jg(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),cB(e,t,{leading:o,maxWait:t,trailing:i})}function Jg(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function mB(e){return!!e&&typeof e=="object"}function uB(e){return typeof e=="symbol"||mB(e)&&aB.call(e)==qF}function _5(e){if(typeof e=="number")return e;if(uB(e))return I5;if(Jg(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Jg(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(jF,"");var r=QF.test(e);return r||eB.test(e)?tB(e.slice(2),r?2:8):JF.test(e)?I5:+e}k5.exports=dB});var B5=la((O5,F5)=>{v();(function(){var e=this,t={};typeof O5<"u"?F5.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,u=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,u+=1+u):u=0,d+=u,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 u=s;i.extract&&(u=i.extract(s));var f=t.match(r,u,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 G5=la(U5=>{"use strict";v();var $c=j();function AB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var kB=typeof Object.is=="function"?Object.is:AB,PB=$c.useState,MB=$c.useEffect,LB=$c.useLayoutEffect,RB=$c.useDebugValue;function DB(e,t){var r=t(),o=PB({inst:{value:r,getSnapshot:t}}),i=o[0].inst,a=o[1];return LB(function(){i.value=r,i.getSnapshot=t,yE(i)&&a({inst:i})},[e,r,t]),MB(function(){return yE(i)&&a({inst:i}),e(function(){yE(i)&&a({inst:i})})},[e]),RB(r),r}function yE(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!kB(e,r)}catch{return!0}}function NB(e,t){return t()}var OB=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?NB:DB;U5.useSyncExternalStore=$c.useSyncExternalStore!==void 0?$c.useSyncExternalStore:OB});var K5=la((Ose,W5)=>{"use strict";v();W5.exports=G5()});var V5=la(Y5=>{"use strict";v();var th=j(),FB=K5();function BB(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var zB=typeof Object.is=="function"?Object.is:BB,$B=FB.useSyncExternalStore,HB=th.useRef,UB=th.useEffect,GB=th.useMemo,WB=th.useDebugValue;Y5.useSyncExternalStoreWithSelector=function(e,t,r,o,i){var a=HB(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=GB(function(){function d(h){if(!u){if(u=!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,zB(f,h))return b;var y=o(h);return i!==void 0&&i(b,y)?b:(f=h,m=y)}var u=!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=$B(e,a[0],a[1]);return UB(function(){s.hasValue=!0,s.value=c},[c]),WB(c),c}});var Z5=la(($se,X5)=>{"use strict";v();X5.exports=V5()});var RP=la((Xc,Gm)=>{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__",u=1,f=2,m=4,g=1,h=2,b=1,y=2,T=4,k=8,I=16,C=32,O=64,z=128,L=256,F=512,D=30,V="...",U=800,Q=16,me=1,K=2,se=3,be=1/0,_e=9007199254740991,nt=17976931348623157e292,Ee=NaN,ue=4294967295,G=ue-1,Y=ue>>>1,oe=[["ary",z],["bind",b],["bindKey",y],["curry",k],["curryRight",I],["flip",F],["partial",C],["partialRight",O],["rearg",L]],ie="[object Arguments]",le="[object Array]",de="[object AsyncFunction]",pe="[object Boolean]",ye="[object Date]",Ct="[object DOMException]",vt="[object Error]",Ft="[object Function]",Et="[object GeneratorFunction]",er="[object Map]",Jr="[object Number]",si="[object Null]",ar="[object Object]",nu="[object Promise]",tb="[object Proxy]",Ya="[object RegExp]",wr="[object Set]",vn="[object String]",Va="[object Symbol]",qi="[object Undefined]",Xa="[object WeakMap]",rb="[object WeakSet]",id="[object ArrayBuffer]",as="[object DataView]",ob="[object Float32Array]",nb="[object Float64Array]",ib="[object Int8Array]",ab="[object Int16Array]",lb="[object Int32Array]",sb="[object Uint8Array]",cb="[object Uint8ClampedArray]",db="[object Uint16Array]",mb="[object Uint32Array]",iL=/\b__p \+= '';/g,aL=/\b(__p \+=) '' \+/g,lL=/(__e\(.*?\)|\b__t\)) \+\n'';/g,H0=/&(?:amp|lt|gt|quot|#39);/g,U0=/[&<>"']/g,sL=RegExp(H0.source),cL=RegExp(U0.source),dL=/<%-([\s\S]+?)%>/g,mL=/<%([\s\S]+?)%>/g,G0=/<%=([\s\S]+?)%>/g,uL=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pL=/^\w*$/,fL=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ub=/[\\^$.*+?()[\]{}|]/g,gL=RegExp(ub.source),pb=/^\s+/,hL=/\s/,bL=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,xL=/\{\n\/\* \[wrapped with (.+)\] \*/,vL=/,? & /,yL=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,EL=/[()=,{}\[\]\/\s]/,wL=/\\(\\)?/g,SL=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,W0=/\w*$/,TL=/^[-+]0x[0-9a-f]+$/i,CL=/^0b[01]+$/i,IL=/^\[object .+?Constructor\]$/,_L=/^0o[0-7]+$/i,AL=/^(?:0|[1-9]\d*)$/,kL=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,iu=/($^)/,PL=/['\n\r\u2028\u2029\\]/g,au="\\ud800-\\udfff",ML="\\u0300-\\u036f",LL="\\ufe20-\\ufe2f",RL="\\u20d0-\\u20ff",K0=ML+LL+RL,Y0="\\u2700-\\u27bf",V0="a-z\\xdf-\\xf6\\xf8-\\xff",DL="\\xac\\xb1\\xd7\\xf7",NL="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",OL="\\u2000-\\u206f",FL=" \\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",X0="A-Z\\xc0-\\xd6\\xd8-\\xde",Z0="\\ufe0e\\ufe0f",q0=DL+NL+OL+FL,fb="['\u2019]",BL="["+au+"]",j0="["+q0+"]",lu="["+K0+"]",J0="\\d+",zL="["+Y0+"]",Q0="["+V0+"]",ew="[^"+au+q0+J0+Y0+V0+X0+"]",gb="\\ud83c[\\udffb-\\udfff]",$L="(?:"+lu+"|"+gb+")",tw="[^"+au+"]",hb="(?:\\ud83c[\\udde6-\\uddff]){2}",bb="[\\ud800-\\udbff][\\udc00-\\udfff]",ls="["+X0+"]",rw="\\u200d",ow="(?:"+Q0+"|"+ew+")",HL="(?:"+ls+"|"+ew+")",nw="(?:"+fb+"(?:d|ll|m|re|s|t|ve))?",iw="(?:"+fb+"(?:D|LL|M|RE|S|T|VE))?",aw=$L+"?",lw="["+Z0+"]?",UL="(?:"+rw+"(?:"+[tw,hb,bb].join("|")+")"+lw+aw+")*",GL="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",WL="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",sw=lw+aw+UL,KL="(?:"+[zL,hb,bb].join("|")+")"+sw,YL="(?:"+[tw+lu+"?",lu,hb,bb,BL].join("|")+")",VL=RegExp(fb,"g"),XL=RegExp(lu,"g"),xb=RegExp(gb+"(?="+gb+")|"+YL+sw,"g"),ZL=RegExp([ls+"?"+Q0+"+"+nw+"(?="+[j0,ls,"$"].join("|")+")",HL+"+"+iw+"(?="+[j0,ls+ow,"$"].join("|")+")",ls+"?"+ow+"+"+nw,ls+"+"+iw,WL,GL,J0,KL].join("|"),"g"),qL=RegExp("["+rw+au+K0+Z0+"]"),jL=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,JL=["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"],QL=-1,Pt={};Pt[ob]=Pt[nb]=Pt[ib]=Pt[ab]=Pt[lb]=Pt[sb]=Pt[cb]=Pt[db]=Pt[mb]=!0,Pt[ie]=Pt[le]=Pt[id]=Pt[pe]=Pt[as]=Pt[ye]=Pt[vt]=Pt[Ft]=Pt[er]=Pt[Jr]=Pt[ar]=Pt[Ya]=Pt[wr]=Pt[vn]=Pt[Xa]=!1;var It={};It[ie]=It[le]=It[id]=It[as]=It[pe]=It[ye]=It[ob]=It[nb]=It[ib]=It[ab]=It[lb]=It[er]=It[Jr]=It[ar]=It[Ya]=It[wr]=It[vn]=It[Va]=It[sb]=It[cb]=It[db]=It[mb]=!0,It[vt]=It[Ft]=It[Xa]=!1;var eR={\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"},tR={"&":"&","<":"<",">":">",'"':""","'":"'"},rR={"&":"&","<":"<",">":">",""":'"',"'":"'"},oR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},nR=parseFloat,iR=parseInt,cw=typeof global=="object"&&global&&global.Object===Object&&global,aR=typeof self=="object"&&self&&self.Object===Object&&self,Sr=cw||aR||Function("return this")(),vb=typeof Xc=="object"&&Xc&&!Xc.nodeType&&Xc,Za=vb&&typeof Gm=="object"&&Gm&&!Gm.nodeType&&Gm,dw=Za&&Za.exports===vb,yb=dw&&cw.process,Ho=function(){try{var $=Za&&Za.require&&Za.require("util").types;return $||yb&&yb.binding&&yb.binding("util")}catch{}}(),mw=Ho&&Ho.isArrayBuffer,uw=Ho&&Ho.isDate,pw=Ho&&Ho.isMap,fw=Ho&&Ho.isRegExp,gw=Ho&&Ho.isSet,hw=Ho&&Ho.isTypedArray;function Ao($,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 lR($,J,Z,ve){for(var Fe=-1,ct=$==null?0:$.length;++Fe<ct;){var gr=$[Fe];J(ve,gr,Z(gr),$)}return ve}function Uo($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve&&J($[Z],Z,$)!==!1;);return $}function sR($,J){for(var Z=$==null?0:$.length;Z--&&J($[Z],Z,$)!==!1;);return $}function bw($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve;)if(!J($[Z],Z,$))return!1;return!0}function ji($,J){for(var Z=-1,ve=$==null?0:$.length,Fe=0,ct=[];++Z<ve;){var gr=$[Z];J(gr,Z,$)&&(ct[Fe++]=gr)}return ct}function su($,J){var Z=$==null?0:$.length;return!!Z&&ss($,J,0)>-1}function Eb($,J,Z){for(var ve=-1,Fe=$==null?0:$.length;++ve<Fe;)if(Z(J,$[ve]))return!0;return!1}function Bt($,J){for(var Z=-1,ve=$==null?0:$.length,Fe=Array(ve);++Z<ve;)Fe[Z]=J($[Z],Z,$);return Fe}function Ji($,J){for(var Z=-1,ve=J.length,Fe=$.length;++Z<ve;)$[Fe+Z]=J[Z];return $}function wb($,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 cR($,J,Z,ve){var Fe=$==null?0:$.length;for(ve&&Fe&&(Z=$[--Fe]);Fe--;)Z=J(Z,$[Fe],Fe,$);return Z}function Sb($,J){for(var Z=-1,ve=$==null?0:$.length;++Z<ve;)if(J($[Z],Z,$))return!0;return!1}var dR=Tb("length");function mR($){return $.split("")}function uR($){return $.match(yL)||[]}function xw($,J,Z){var ve;return Z($,function(Fe,ct,gr){if(J(Fe,ct,gr))return ve=ct,!1}),ve}function cu($,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 ss($,J,Z){return J===J?TR($,J,Z):cu($,vw,Z)}function pR($,J,Z,ve){for(var Fe=Z-1,ct=$.length;++Fe<ct;)if(ve($[Fe],J))return Fe;return-1}function vw($){return $!==$}function yw($,J){var Z=$==null?0:$.length;return Z?Ib($,J)/Z:Ee}function Tb($){return function(J){return J==null?e:J[$]}}function Cb($){return function(J){return $==null?e:$[J]}}function Ew($,J,Z,ve,Fe){return Fe($,function(ct,gr,wt){Z=ve?(ve=!1,ct):J(Z,ct,gr,wt)}),Z}function fR($,J){var Z=$.length;for($.sort(J);Z--;)$[Z]=$[Z].value;return $}function Ib($,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 _b($,J){for(var Z=-1,ve=Array($);++Z<$;)ve[Z]=J(Z);return ve}function gR($,J){return Bt(J,function(Z){return[Z,$[Z]]})}function ww($){return $&&$.slice(0,Iw($)+1).replace(pb,"")}function ko($){return function(J){return $(J)}}function Ab($,J){return Bt(J,function(Z){return $[Z]})}function ad($,J){return $.has(J)}function Sw($,J){for(var Z=-1,ve=$.length;++Z<ve&&ss(J,$[Z],0)>-1;);return Z}function Tw($,J){for(var Z=$.length;Z--&&ss(J,$[Z],0)>-1;);return Z}function hR($,J){for(var Z=$.length,ve=0;Z--;)$[Z]===J&&++ve;return ve}var bR=Cb(eR),xR=Cb(tR);function vR($){return"\\"+oR[$]}function yR($,J){return $==null?e:$[J]}function cs($){return qL.test($)}function ER($){return jL.test($)}function wR($){for(var J,Z=[];!(J=$.next()).done;)Z.push(J.value);return Z}function kb($){var J=-1,Z=Array($.size);return $.forEach(function(ve,Fe){Z[++J]=[Fe,ve]}),Z}function Cw($,J){return function(Z){return $(J(Z))}}function Qi($,J){for(var Z=-1,ve=$.length,Fe=0,ct=[];++Z<ve;){var gr=$[Z];(gr===J||gr===d)&&($[Z]=d,ct[Fe++]=Z)}return ct}function du($){var J=-1,Z=Array($.size);return $.forEach(function(ve){Z[++J]=ve}),Z}function SR($){var J=-1,Z=Array($.size);return $.forEach(function(ve){Z[++J]=[ve,ve]}),Z}function TR($,J,Z){for(var ve=Z-1,Fe=$.length;++ve<Fe;)if($[ve]===J)return ve;return-1}function CR($,J,Z){for(var ve=Z+1;ve--;)if($[ve]===J)return ve;return ve}function ds($){return cs($)?_R($):dR($)}function yn($){return cs($)?AR($):mR($)}function Iw($){for(var J=$.length;J--&&hL.test($.charAt(J)););return J}var IR=Cb(rR);function _R($){for(var J=xb.lastIndex=0;xb.test($);)++J;return J}function AR($){return $.match(xb)||[]}function kR($){return $.match(ZL)||[]}var PR=function $(J){J=J==null?Sr:ea.defaults(Sr.Object(),J,ea.pick(Sr,JL));var Z=J.Array,ve=J.Date,Fe=J.Error,ct=J.Function,gr=J.Math,wt=J.Object,Pb=J.RegExp,MR=J.String,Go=J.TypeError,mu=Z.prototype,LR=ct.prototype,ms=wt.prototype,uu=J["__core-js_shared__"],pu=LR.toString,bt=ms.hasOwnProperty,RR=0,_w=function(){var n=/[^.]+$/.exec(uu&&uu.keys&&uu.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),fu=ms.toString,DR=pu.call(wt),NR=Sr._,OR=Pb("^"+pu.call(bt).replace(ub,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),gu=dw?J.Buffer:e,ta=J.Symbol,hu=J.Uint8Array,Aw=gu?gu.allocUnsafe:e,bu=Cw(wt.getPrototypeOf,wt),kw=wt.create,Pw=ms.propertyIsEnumerable,xu=mu.splice,Mw=ta?ta.isConcatSpreadable:e,ld=ta?ta.iterator:e,qa=ta?ta.toStringTag:e,vu=function(){try{var n=tl(wt,"defineProperty");return n({},"",{}),n}catch{}}(),FR=J.clearTimeout!==Sr.clearTimeout&&J.clearTimeout,BR=ve&&ve.now!==Sr.Date.now&&ve.now,zR=J.setTimeout!==Sr.setTimeout&&J.setTimeout,yu=gr.ceil,Eu=gr.floor,Mb=wt.getOwnPropertySymbols,$R=gu?gu.isBuffer:e,Lw=J.isFinite,HR=mu.join,UR=Cw(wt.keys,wt),hr=gr.max,Fr=gr.min,GR=ve.now,WR=J.parseInt,Rw=gr.random,KR=mu.reverse,Lb=tl(J,"DataView"),sd=tl(J,"Map"),Rb=tl(J,"Promise"),us=tl(J,"Set"),cd=tl(J,"WeakMap"),dd=tl(wt,"create"),wu=cd&&new cd,ps={},YR=rl(Lb),VR=rl(sd),XR=rl(Rb),ZR=rl(us),qR=rl(cd),Su=ta?ta.prototype:e,md=Su?Su.valueOf:e,Dw=Su?Su.toString:e;function _(n){if(Xt(n)&&!$e(n)&&!(n instanceof Je)){if(n instanceof Wo)return n;if(bt.call(n,"__wrapped__"))return N1(n)}return new Wo(n)}var fs=function(){function n(){}return function(l){if(!Ut(l))return{};if(kw)return kw(l);n.prototype=l;var p=new n;return n.prototype=e,p}}();function Tu(){}function Wo(n,l){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}_.templateSettings={escape:dL,evaluate:mL,interpolate:G0,variable:"",imports:{_}},_.prototype=Tu.prototype,_.prototype.constructor=_,Wo.prototype=fs(Tu.prototype),Wo.prototype.constructor=Wo;function Je(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ue,this.__views__=[]}function jR(){var n=new Je(this.__wrapped__);return n.__actions__=po(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=po(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=po(this.__views__),n}function JR(){if(this.__filtered__){var n=new Je(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function QR(){var n=this.__wrapped__.value(),l=this.__dir__,p=$e(n),x=l<0,S=p?n.length:0,P=m6(0,S,this.__views__),N=P.start,B=P.end,H=B-N,ee=x?B:N-1,te=this.__iteratees__,ae=te.length,fe=0,we=Fr(H,this.__takeCount__);if(!p||!x&&S==H&&we==H)return n1(n,this.__actions__);var Pe=[];e:for(;H--&&fe<we;){ee+=l;for(var Ge=-1,Me=n[ee];++Ge<ae;){var qe=te[Ge],tt=qe.iteratee,Lo=qe.type,to=tt(Me);if(Lo==K)Me=to;else if(!to){if(Lo==me)continue e;break e}}Pe[fe++]=Me}return Pe}Je.prototype=fs(Tu.prototype),Je.prototype.constructor=Je;function ja(n){var l=-1,p=n==null?0:n.length;for(this.clear();++l<p;){var x=n[l];this.set(x[0],x[1])}}function eD(){this.__data__=dd?dd(null):{},this.size=0}function tD(n){var l=this.has(n)&&delete this.__data__[n];return this.size-=l?1:0,l}function rD(n){var l=this.__data__;if(dd){var p=l[n];return p===s?e:p}return bt.call(l,n)?l[n]:e}function oD(n){var l=this.__data__;return dd?l[n]!==e:bt.call(l,n)}function nD(n,l){var p=this.__data__;return this.size+=this.has(n)?0:1,p[n]=dd&&l===e?s:l,this}ja.prototype.clear=eD,ja.prototype.delete=tD,ja.prototype.get=rD,ja.prototype.has=oD,ja.prototype.set=nD;function ci(n){var l=-1,p=n==null?0:n.length;for(this.clear();++l<p;){var x=n[l];this.set(x[0],x[1])}}function iD(){this.__data__=[],this.size=0}function aD(n){var l=this.__data__,p=Cu(l,n);if(p<0)return!1;var x=l.length-1;return p==x?l.pop():xu.call(l,p,1),--this.size,!0}function lD(n){var l=this.__data__,p=Cu(l,n);return p<0?e:l[p][1]}function sD(n){return Cu(this.__data__,n)>-1}function cD(n,l){var p=this.__data__,x=Cu(p,n);return x<0?(++this.size,p.push([n,l])):p[x][1]=l,this}ci.prototype.clear=iD,ci.prototype.delete=aD,ci.prototype.get=lD,ci.prototype.has=sD,ci.prototype.set=cD;function di(n){var l=-1,p=n==null?0:n.length;for(this.clear();++l<p;){var x=n[l];this.set(x[0],x[1])}}function dD(){this.size=0,this.__data__={hash:new ja,map:new(sd||ci),string:new ja}}function mD(n){var l=Fu(this,n).delete(n);return this.size-=l?1:0,l}function uD(n){return Fu(this,n).get(n)}function pD(n){return Fu(this,n).has(n)}function fD(n,l){var p=Fu(this,n),x=p.size;return p.set(n,l),this.size+=p.size==x?0:1,this}di.prototype.clear=dD,di.prototype.delete=mD,di.prototype.get=uD,di.prototype.has=pD,di.prototype.set=fD;function Ja(n){var l=-1,p=n==null?0:n.length;for(this.__data__=new di;++l<p;)this.add(n[l])}function gD(n){return this.__data__.set(n,s),this}function hD(n){return this.__data__.has(n)}Ja.prototype.add=Ja.prototype.push=gD,Ja.prototype.has=hD;function En(n){var l=this.__data__=new ci(n);this.size=l.size}function bD(){this.__data__=new ci,this.size=0}function xD(n){var l=this.__data__,p=l.delete(n);return this.size=l.size,p}function vD(n){return this.__data__.get(n)}function yD(n){return this.__data__.has(n)}function ED(n,l){var p=this.__data__;if(p instanceof ci){var x=p.__data__;if(!sd||x.length<r-1)return x.push([n,l]),this.size=++p.size,this;p=this.__data__=new di(x)}return p.set(n,l),this.size=p.size,this}En.prototype.clear=bD,En.prototype.delete=xD,En.prototype.get=vD,En.prototype.has=yD,En.prototype.set=ED;function Nw(n,l){var p=$e(n),x=!p&&ol(n),S=!p&&!x&&aa(n),P=!p&&!x&&!S&&xs(n),N=p||x||S||P,B=N?_b(n.length,MR):[],H=B.length;for(var ee in n)(l||bt.call(n,ee))&&!(N&&(ee=="length"||S&&(ee=="offset"||ee=="parent")||P&&(ee=="buffer"||ee=="byteLength"||ee=="byteOffset")||fi(ee,H)))&&B.push(ee);return B}function Ow(n){var l=n.length;return l?n[Wb(0,l-1)]:e}function wD(n,l){return Bu(po(n),Qa(l,0,n.length))}function SD(n){return Bu(po(n))}function Db(n,l,p){(p!==e&&!wn(n[l],p)||p===e&&!(l in n))&&mi(n,l,p)}function ud(n,l,p){var x=n[l];(!(bt.call(n,l)&&wn(x,p))||p===e&&!(l in n))&&mi(n,l,p)}function Cu(n,l){for(var p=n.length;p--;)if(wn(n[p][0],l))return p;return-1}function TD(n,l,p,x){return ra(n,function(S,P,N){l(x,S,p(S),N)}),x}function Fw(n,l){return n&&Wn(l,Tr(l),n)}function CD(n,l){return n&&Wn(l,go(l),n)}function mi(n,l,p){l=="__proto__"&&vu?vu(n,l,{configurable:!0,enumerable:!0,value:p,writable:!0}):n[l]=p}function Nb(n,l){for(var p=-1,x=l.length,S=Z(x),P=n==null;++p<x;)S[p]=P?e:gx(n,l[p]);return S}function Qa(n,l,p){return n===n&&(p!==e&&(n=n<=p?n:p),l!==e&&(n=n>=l?n:l)),n}function Ko(n,l,p,x,S,P){var N,B=l&u,H=l&f,ee=l&m;if(p&&(N=S?p(n,x,S,P):p(n)),N!==e)return N;if(!Ut(n))return n;var te=$e(n);if(te){if(N=p6(n),!B)return po(n,N)}else{var ae=Br(n),fe=ae==Ft||ae==Et;if(aa(n))return l1(n,B);if(ae==ar||ae==ie||fe&&!S){if(N=H||fe?{}:I1(n),!B)return H?r6(n,CD(N,n)):t6(n,Fw(N,n))}else{if(!It[ae])return S?n:{};N=f6(n,ae,B)}}P||(P=new En);var we=P.get(n);if(we)return we;P.set(n,N),tS(n)?n.forEach(function(Me){N.add(Ko(Me,l,p,Me,n,P))}):Q1(n)&&n.forEach(function(Me,qe){N.set(qe,Ko(Me,l,p,qe,n,P))});var Pe=ee?H?tx:ex:H?go:Tr,Ge=te?e:Pe(n);return Uo(Ge||n,function(Me,qe){Ge&&(qe=Me,Me=n[qe]),ud(N,qe,Ko(Me,l,p,qe,n,P))}),N}function ID(n){var l=Tr(n);return function(p){return Bw(p,n,l)}}function Bw(n,l,p){var x=p.length;if(n==null)return!x;for(n=wt(n);x--;){var S=p[x],P=l[S],N=n[S];if(N===e&&!(S in n)||!P(N))return!1}return!0}function zw(n,l,p){if(typeof n!="function")throw new Go(i);return vd(function(){n.apply(e,p)},l)}function pd(n,l,p,x){var S=-1,P=su,N=!0,B=n.length,H=[],ee=l.length;if(!B)return H;p&&(l=Bt(l,ko(p))),x?(P=Eb,N=!1):l.length>=r&&(P=ad,N=!1,l=new Ja(l));e:for(;++S<B;){var te=n[S],ae=p==null?te:p(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 P(l,ae,x)||H.push(te)}return H}var ra=u1(Gn),$w=u1(Fb,!0);function _D(n,l){var p=!0;return ra(n,function(x,S,P){return p=!!l(x,S,P),p}),p}function Iu(n,l,p){for(var x=-1,S=n.length;++x<S;){var P=n[x],N=l(P);if(N!=null&&(B===e?N===N&&!Mo(N):p(N,B)))var B=N,H=P}return H}function AD(n,l,p,x){var S=n.length;for(p=Ue(p),p<0&&(p=-p>S?0:S+p),x=x===e||x>S?S:Ue(x),x<0&&(x+=S),x=p>x?0:oS(x);p<x;)n[p++]=l;return n}function Hw(n,l){var p=[];return ra(n,function(x,S,P){l(x,S,P)&&p.push(x)}),p}function Mr(n,l,p,x,S){var P=-1,N=n.length;for(p||(p=h6),S||(S=[]);++P<N;){var B=n[P];l>0&&p(B)?l>1?Mr(B,l-1,p,x,S):Ji(S,B):x||(S[S.length]=B)}return S}var Ob=p1(),Uw=p1(!0);function Gn(n,l){return n&&Ob(n,l,Tr)}function Fb(n,l){return n&&Uw(n,l,Tr)}function _u(n,l){return ji(l,function(p){return gi(n[p])})}function el(n,l){l=na(l,n);for(var p=0,x=l.length;n!=null&&p<x;)n=n[Kn(l[p++])];return p&&p==x?n:e}function Gw(n,l,p){var x=l(n);return $e(n)?x:Ji(x,p(n))}function Qr(n){return n==null?n===e?qi:si:qa&&qa in wt(n)?d6(n):S6(n)}function Bb(n,l){return n>l}function kD(n,l){return n!=null&&bt.call(n,l)}function PD(n,l){return n!=null&&l in wt(n)}function MD(n,l,p){return n>=Fr(l,p)&&n<hr(l,p)}function zb(n,l,p){for(var x=p?Eb:su,S=n[0].length,P=n.length,N=P,B=Z(P),H=1/0,ee=[];N--;){var te=n[N];N&&l&&(te=Bt(te,ko(l))),H=Fr(te.length,H),B[N]=!p&&(l||S>=120&&te.length>=120)?new Ja(N&&te):e}te=n[0];var ae=-1,fe=B[0];e:for(;++ae<S&&ee.length<H;){var we=te[ae],Pe=l?l(we):we;if(we=p||we!==0?we:0,!(fe?ad(fe,Pe):x(ee,Pe,p))){for(N=P;--N;){var Ge=B[N];if(!(Ge?ad(Ge,Pe):x(n[N],Pe,p)))continue e}fe&&fe.push(Pe),ee.push(we)}}return ee}function LD(n,l,p,x){return Gn(n,function(S,P,N){l(x,p(S),P,N)}),x}function fd(n,l,p){l=na(l,n),n=P1(n,l);var x=n==null?n:n[Kn(Vo(l))];return x==null?e:Ao(x,n,p)}function Ww(n){return Xt(n)&&Qr(n)==ie}function RD(n){return Xt(n)&&Qr(n)==id}function DD(n){return Xt(n)&&Qr(n)==ye}function gd(n,l,p,x,S){return n===l?!0:n==null||l==null||!Xt(n)&&!Xt(l)?n!==n&&l!==l:ND(n,l,p,x,gd,S)}function ND(n,l,p,x,S,P){var N=$e(n),B=$e(l),H=N?le:Br(n),ee=B?le:Br(l);H=H==ie?ar:H,ee=ee==ie?ar:ee;var te=H==ar,ae=ee==ar,fe=H==ee;if(fe&&aa(n)){if(!aa(l))return!1;N=!0,te=!1}if(fe&&!te)return P||(P=new En),N||xs(n)?S1(n,l,p,x,S,P):s6(n,l,H,p,x,S,P);if(!(p&g)){var we=te&&bt.call(n,"__wrapped__"),Pe=ae&&bt.call(l,"__wrapped__");if(we||Pe){var Ge=we?n.value():n,Me=Pe?l.value():l;return P||(P=new En),S(Ge,Me,p,x,P)}}return fe?(P||(P=new En),c6(n,l,p,x,S,P)):!1}function OD(n){return Xt(n)&&Br(n)==er}function $b(n,l,p,x){var S=p.length,P=S,N=!x;if(n==null)return!P;for(n=wt(n);S--;){var B=p[S];if(N&&B[2]?B[1]!==n[B[0]]:!(B[0]in n))return!1}for(;++S<P;){B=p[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 En;if(x)var fe=x(ee,te,H,n,l,ae);if(!(fe===e?gd(te,ee,g|h,x,ae):fe))return!1}}return!0}function Kw(n){if(!Ut(n)||x6(n))return!1;var l=gi(n)?OR:IL;return l.test(rl(n))}function FD(n){return Xt(n)&&Qr(n)==Ya}function BD(n){return Xt(n)&&Br(n)==wr}function zD(n){return Xt(n)&&Wu(n.length)&&!!Pt[Qr(n)]}function Yw(n){return typeof n=="function"?n:n==null?ho:typeof n=="object"?$e(n)?Zw(n[0],n[1]):Xw(n):fS(n)}function Hb(n){if(!xd(n))return UR(n);var l=[];for(var p in wt(n))bt.call(n,p)&&p!="constructor"&&l.push(p);return l}function $D(n){if(!Ut(n))return w6(n);var l=xd(n),p=[];for(var x in n)x=="constructor"&&(l||!bt.call(n,x))||p.push(x);return p}function Ub(n,l){return n<l}function Vw(n,l){var p=-1,x=fo(n)?Z(n.length):[];return ra(n,function(S,P,N){x[++p]=l(S,P,N)}),x}function Xw(n){var l=ox(n);return l.length==1&&l[0][2]?A1(l[0][0],l[0][1]):function(p){return p===n||$b(p,n,l)}}function Zw(n,l){return ix(n)&&_1(l)?A1(Kn(n),l):function(p){var x=gx(p,n);return x===e&&x===l?hx(p,n):gd(l,x,g|h)}}function Au(n,l,p,x,S){n!==l&&Ob(l,function(P,N){if(S||(S=new En),Ut(P))HD(n,l,N,p,Au,x,S);else{var B=x?x(lx(n,N),P,N+"",n,l,S):e;B===e&&(B=P),Db(n,N,B)}},go)}function HD(n,l,p,x,S,P,N){var B=lx(n,p),H=lx(l,p),ee=N.get(H);if(ee){Db(n,p,ee);return}var te=P?P(B,H,p+"",n,l,N):e,ae=te===e;if(ae){var fe=$e(H),we=!fe&&aa(H),Pe=!fe&&!we&&xs(H);te=H,fe||we||Pe?$e(B)?te=B:tr(B)?te=po(B):we?(ae=!1,te=l1(H,!0)):Pe?(ae=!1,te=s1(H,!0)):te=[]:yd(H)||ol(H)?(te=B,ol(B)?te=nS(B):(!Ut(B)||gi(B))&&(te=I1(H))):ae=!1}ae&&(N.set(H,te),S(te,H,x,P,N),N.delete(H)),Db(n,p,te)}function qw(n,l){var p=n.length;if(p)return l+=l<0?p:0,fi(l,p)?n[l]:e}function jw(n,l,p){l.length?l=Bt(l,function(P){return $e(P)?function(N){return el(N,P.length===1?P[0]:P)}:P}):l=[ho];var x=-1;l=Bt(l,ko(Ae()));var S=Vw(n,function(P,N,B){var H=Bt(l,function(ee){return ee(P)});return{criteria:H,index:++x,value:P}});return fR(S,function(P,N){return e6(P,N,p)})}function UD(n,l){return Jw(n,l,function(p,x){return hx(n,x)})}function Jw(n,l,p){for(var x=-1,S=l.length,P={};++x<S;){var N=l[x],B=el(n,N);p(B,N)&&hd(P,na(N,n),B)}return P}function GD(n){return function(l){return el(l,n)}}function Gb(n,l,p,x){var S=x?pR:ss,P=-1,N=l.length,B=n;for(n===l&&(l=po(l)),p&&(B=Bt(n,ko(p)));++P<N;)for(var H=0,ee=l[P],te=p?p(ee):ee;(H=S(B,te,H,x))>-1;)B!==n&&xu.call(B,H,1),xu.call(n,H,1);return n}function Qw(n,l){for(var p=n?l.length:0,x=p-1;p--;){var S=l[p];if(p==x||S!==P){var P=S;fi(S)?xu.call(n,S,1):Vb(n,S)}}return n}function Wb(n,l){return n+Eu(Rw()*(l-n+1))}function WD(n,l,p,x){for(var S=-1,P=hr(yu((l-n)/(p||1)),0),N=Z(P);P--;)N[x?P:++S]=n,n+=p;return N}function Kb(n,l){var p="";if(!n||l<1||l>_e)return p;do l%2&&(p+=n),l=Eu(l/2),l&&(n+=n);while(l);return p}function Ke(n,l){return sx(k1(n,l,ho),n+"")}function KD(n){return Ow(vs(n))}function YD(n,l){var p=vs(n);return Bu(p,Qa(l,0,p.length))}function hd(n,l,p,x){if(!Ut(n))return n;l=na(l,n);for(var S=-1,P=l.length,N=P-1,B=n;B!=null&&++S<P;){var H=Kn(l[S]),ee=p;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=Ut(te)?te:fi(l[S+1])?[]:{})}ud(B,H,ee),B=B[H]}return n}var e1=wu?function(n,l){return wu.set(n,l),n}:ho,VD=vu?function(n,l){return vu(n,"toString",{configurable:!0,enumerable:!1,value:xx(l),writable:!0})}:ho;function XD(n){return Bu(vs(n))}function Yo(n,l,p){var x=-1,S=n.length;l<0&&(l=-l>S?0:S+l),p=p>S?S:p,p<0&&(p+=S),S=l>p?0:p-l>>>0,l>>>=0;for(var P=Z(S);++x<S;)P[x]=n[x+l];return P}function ZD(n,l){var p;return ra(n,function(x,S,P){return p=l(x,S,P),!p}),!!p}function ku(n,l,p){var x=0,S=n==null?x:n.length;if(typeof l=="number"&&l===l&&S<=Y){for(;x<S;){var P=x+S>>>1,N=n[P];N!==null&&!Mo(N)&&(p?N<=l:N<l)?x=P+1:S=P}return S}return Yb(n,l,ho,p)}function Yb(n,l,p,x){var S=0,P=n==null?0:n.length;if(P===0)return 0;l=p(l);for(var N=l!==l,B=l===null,H=Mo(l),ee=l===e;S<P;){var te=Eu((S+P)/2),ae=p(n[te]),fe=ae!==e,we=ae===null,Pe=ae===ae,Ge=Mo(ae);if(N)var Me=x||Pe;else ee?Me=Pe&&(x||fe):B?Me=Pe&&fe&&(x||!we):H?Me=Pe&&fe&&!we&&(x||!Ge):we||Ge?Me=!1:Me=x?ae<=l:ae<l;Me?S=te+1:P=te}return Fr(P,G)}function t1(n,l){for(var p=-1,x=n.length,S=0,P=[];++p<x;){var N=n[p],B=l?l(N):N;if(!p||!wn(B,H)){var H=B;P[S++]=N===0?0:N}}return P}function r1(n){return typeof n=="number"?n:Mo(n)?Ee:+n}function Po(n){if(typeof n=="string")return n;if($e(n))return Bt(n,Po)+"";if(Mo(n))return Dw?Dw.call(n):"";var l=n+"";return l=="0"&&1/n==-be?"-0":l}function oa(n,l,p){var x=-1,S=su,P=n.length,N=!0,B=[],H=B;if(p)N=!1,S=Eb;else if(P>=r){var ee=l?null:a6(n);if(ee)return du(ee);N=!1,S=ad,H=new Ja}else H=l?[]:B;e:for(;++x<P;){var te=n[x],ae=l?l(te):te;if(te=p||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,p)||(H!==B&&H.push(ae),B.push(te))}return B}function Vb(n,l){return l=na(l,n),n=P1(n,l),n==null||delete n[Kn(Vo(l))]}function o1(n,l,p,x){return hd(n,l,p(el(n,l)),x)}function Pu(n,l,p,x){for(var S=n.length,P=x?S:-1;(x?P--:++P<S)&&l(n[P],P,n););return p?Yo(n,x?0:P,x?P+1:S):Yo(n,x?P+1:0,x?S:P)}function n1(n,l){var p=n;return p instanceof Je&&(p=p.value()),wb(l,function(x,S){return S.func.apply(S.thisArg,Ji([x],S.args))},p)}function Xb(n,l,p){var x=n.length;if(x<2)return x?oa(n[0]):[];for(var S=-1,P=Z(x);++S<x;)for(var N=n[S],B=-1;++B<x;)B!=S&&(P[S]=pd(P[S]||N,n[B],l,p));return oa(Mr(P,1),l,p)}function i1(n,l,p){for(var x=-1,S=n.length,P=l.length,N={};++x<S;){var B=x<P?l[x]:e;p(N,n[x],B)}return N}function Zb(n){return tr(n)?n:[]}function qb(n){return typeof n=="function"?n:ho}function na(n,l){return $e(n)?n:ix(n,l)?[n]:D1(ut(n))}var qD=Ke;function ia(n,l,p){var x=n.length;return p=p===e?x:p,!l&&p>=x?n:Yo(n,l,p)}var a1=FR||function(n){return Sr.clearTimeout(n)};function l1(n,l){if(l)return n.slice();var p=n.length,x=Aw?Aw(p):new n.constructor(p);return n.copy(x),x}function jb(n){var l=new n.constructor(n.byteLength);return new hu(l).set(new hu(n)),l}function jD(n,l){var p=l?jb(n.buffer):n.buffer;return new n.constructor(p,n.byteOffset,n.byteLength)}function JD(n){var l=new n.constructor(n.source,W0.exec(n));return l.lastIndex=n.lastIndex,l}function QD(n){return md?wt(md.call(n)):{}}function s1(n,l){var p=l?jb(n.buffer):n.buffer;return new n.constructor(p,n.byteOffset,n.length)}function c1(n,l){if(n!==l){var p=n!==e,x=n===null,S=n===n,P=Mo(n),N=l!==e,B=l===null,H=l===l,ee=Mo(l);if(!B&&!ee&&!P&&n>l||P&&N&&H&&!B&&!ee||x&&N&&H||!p&&H||!S)return 1;if(!x&&!P&&!ee&&n<l||ee&&p&&S&&!x&&!P||B&&p&&S||!N&&S||!H)return-1}return 0}function e6(n,l,p){for(var x=-1,S=n.criteria,P=l.criteria,N=S.length,B=p.length;++x<N;){var H=c1(S[x],P[x]);if(H){if(x>=B)return H;var ee=p[x];return H*(ee=="desc"?-1:1)}}return n.index-l.index}function d1(n,l,p,x){for(var S=-1,P=n.length,N=p.length,B=-1,H=l.length,ee=hr(P-N,0),te=Z(H+ee),ae=!x;++B<H;)te[B]=l[B];for(;++S<N;)(ae||S<P)&&(te[p[S]]=n[S]);for(;ee--;)te[B++]=n[S++];return te}function m1(n,l,p,x){for(var S=-1,P=n.length,N=-1,B=p.length,H=-1,ee=l.length,te=hr(P-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<P)&&(ae[we+p[N]]=n[S++]);return ae}function po(n,l){var p=-1,x=n.length;for(l||(l=Z(x));++p<x;)l[p]=n[p];return l}function Wn(n,l,p,x){var S=!p;p||(p={});for(var P=-1,N=l.length;++P<N;){var B=l[P],H=x?x(p[B],n[B],B,p,n):e;H===e&&(H=n[B]),S?mi(p,B,H):ud(p,B,H)}return p}function t6(n,l){return Wn(n,nx(n),l)}function r6(n,l){return Wn(n,T1(n),l)}function Mu(n,l){return function(p,x){var S=$e(p)?lR:TD,P=l?l():{};return S(p,n,Ae(x,2),P)}}function gs(n){return Ke(function(l,p){var x=-1,S=p.length,P=S>1?p[S-1]:e,N=S>2?p[2]:e;for(P=n.length>3&&typeof P=="function"?(S--,P):e,N&&eo(p[0],p[1],N)&&(P=S<3?e:P,S=1),l=wt(l);++x<S;){var B=p[x];B&&n(l,B,x,P)}return l})}function u1(n,l){return function(p,x){if(p==null)return p;if(!fo(p))return n(p,x);for(var S=p.length,P=l?S:-1,N=wt(p);(l?P--:++P<S)&&x(N[P],P,N)!==!1;);return p}}function p1(n){return function(l,p,x){for(var S=-1,P=wt(l),N=x(l),B=N.length;B--;){var H=N[n?B:++S];if(p(P[H],H,P)===!1)break}return l}}function o6(n,l,p){var x=l&b,S=bd(n);function P(){var N=this&&this!==Sr&&this instanceof P?S:n;return N.apply(x?p:this,arguments)}return P}function f1(n){return function(l){l=ut(l);var p=cs(l)?yn(l):e,x=p?p[0]:l.charAt(0),S=p?ia(p,1).join(""):l.slice(1);return x[n]()+S}}function hs(n){return function(l){return wb(uS(mS(l).replace(VL,"")),n,"")}}function bd(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 p=fs(n.prototype),x=n.apply(p,l);return Ut(x)?x:p}}function n6(n,l,p){var x=bd(n);function S(){for(var P=arguments.length,N=Z(P),B=P,H=bs(S);B--;)N[B]=arguments[B];var ee=P<3&&N[0]!==H&&N[P-1]!==H?[]:Qi(N,H);if(P-=ee.length,P<p)return v1(n,l,Lu,S.placeholder,e,N,ee,e,e,p-P);var te=this&&this!==Sr&&this instanceof S?x:n;return Ao(te,this,N)}return S}function g1(n){return function(l,p,x){var S=wt(l);if(!fo(l)){var P=Ae(p,3);l=Tr(l),p=function(B){return P(S[B],B,S)}}var N=n(l,p,x);return N>-1?S[P?l[N]:N]:e}}function h1(n){return pi(function(l){var p=l.length,x=p,S=Wo.prototype.thru;for(n&&l.reverse();x--;){var P=l[x];if(typeof P!="function")throw new Go(i);if(S&&!N&&Ou(P)=="wrapper")var N=new Wo([],!0)}for(x=N?x:p;++x<p;){P=l[x];var B=Ou(P),H=B=="wrapper"?rx(P):e;H&&ax(H[0])&&H[1]==(z|k|C|L)&&!H[4].length&&H[9]==1?N=N[Ou(H[0])].apply(N,H[3]):N=P.length==1&&ax(P)?N[B]():N.thru(P)}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=p?l[ae].apply(this,ee):te;++ae<p;)fe=l[ae].call(this,fe);return fe}})}function Lu(n,l,p,x,S,P,N,B,H,ee){var te=l&z,ae=l&b,fe=l&y,we=l&(k|I),Pe=l&F,Ge=fe?e:bd(n);function Me(){for(var qe=arguments.length,tt=Z(qe),Lo=qe;Lo--;)tt[Lo]=arguments[Lo];if(we)var to=bs(Me),Ro=hR(tt,to);if(x&&(tt=d1(tt,x,S,we)),P&&(tt=m1(tt,P,N,we)),qe-=Ro,we&&qe<ee){var rr=Qi(tt,to);return v1(n,l,Lu,Me.placeholder,p,tt,rr,B,H,ee-qe)}var Sn=ae?p:this,bi=fe?Sn[n]:n;return qe=tt.length,B?tt=T6(tt,B):Pe&&qe>1&&tt.reverse(),te&&H<qe&&(tt.length=H),this&&this!==Sr&&this instanceof Me&&(bi=Ge||bd(bi)),bi.apply(Sn,tt)}return Me}function b1(n,l){return function(p,x){return LD(p,n,l(x),{})}}function Ru(n,l){return function(p,x){var S;if(p===e&&x===e)return l;if(p!==e&&(S=p),x!==e){if(S===e)return x;typeof p=="string"||typeof x=="string"?(p=Po(p),x=Po(x)):(p=r1(p),x=r1(x)),S=n(p,x)}return S}}function Jb(n){return pi(function(l){return l=Bt(l,ko(Ae())),Ke(function(p){var x=this;return n(l,function(S){return Ao(S,x,p)})})})}function Du(n,l){l=l===e?" ":Po(l);var p=l.length;if(p<2)return p?Kb(l,n):l;var x=Kb(l,yu(n/ds(l)));return cs(l)?ia(yn(x),0,n).join(""):x.slice(0,n)}function i6(n,l,p,x){var S=l&b,P=bd(n);function N(){for(var B=-1,H=arguments.length,ee=-1,te=x.length,ae=Z(te+H),fe=this&&this!==Sr&&this instanceof N?P:n;++ee<te;)ae[ee]=x[ee];for(;H--;)ae[ee++]=arguments[++B];return Ao(fe,S?p:this,ae)}return N}function x1(n){return function(l,p,x){return x&&typeof x!="number"&&eo(l,p,x)&&(p=x=e),l=hi(l),p===e?(p=l,l=0):p=hi(p),x=x===e?l<p?1:-1:hi(x),WD(l,p,x,n)}}function Nu(n){return function(l,p){return typeof l=="string"&&typeof p=="string"||(l=Xo(l),p=Xo(p)),n(l,p)}}function v1(n,l,p,x,S,P,N,B,H,ee){var te=l&k,ae=te?N:e,fe=te?e:N,we=te?P:e,Pe=te?e:P;l|=te?C:O,l&=~(te?O:C),l&T||(l&=~(b|y));var Ge=[n,l,S,we,ae,Pe,fe,B,H,ee],Me=p.apply(e,Ge);return ax(n)&&M1(Me,Ge),Me.placeholder=x,L1(Me,n,l)}function Qb(n){var l=gr[n];return function(p,x){if(p=Xo(p),x=x==null?0:Fr(Ue(x),292),x&&Lw(p)){var S=(ut(p)+"e").split("e"),P=l(S[0]+"e"+(+S[1]+x));return S=(ut(P)+"e").split("e"),+(S[0]+"e"+(+S[1]-x))}return l(p)}}var a6=us&&1/du(new us([,-0]))[1]==be?function(n){return new us(n)}:Ex;function y1(n){return function(l){var p=Br(l);return p==er?kb(l):p==wr?SR(l):gR(l,n(l))}}function ui(n,l,p,x,S,P,N,B){var H=l&y;if(!H&&typeof n!="function")throw new Go(i);var ee=x?x.length:0;if(ee||(l&=~(C|O),x=S=e),N=N===e?N:hr(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:rx(n),we=[n,l,p,x,S,te,ae,P,N,B];if(fe&&E6(we,fe),n=we[0],l=we[1],p=we[2],x=we[3],S=we[4],B=we[9]=we[9]===e?H?0:n.length:hr(we[9]-ee,0),!B&&l&(k|I)&&(l&=~(k|I)),!l||l==b)var Pe=o6(n,l,p);else l==k||l==I?Pe=n6(n,l,B):(l==C||l==(b|C))&&!S.length?Pe=i6(n,l,p,x):Pe=Lu.apply(e,we);var Ge=fe?e1:M1;return L1(Ge(Pe,we),n,l)}function E1(n,l,p,x){return n===e||wn(n,ms[p])&&!bt.call(x,p)?l:n}function w1(n,l,p,x,S,P){return Ut(n)&&Ut(l)&&(P.set(l,n),Au(n,l,e,w1,P),P.delete(l)),n}function l6(n){return yd(n)?e:n}function S1(n,l,p,x,S,P){var N=p&g,B=n.length,H=l.length;if(B!=H&&!(N&&H>B))return!1;var ee=P.get(n),te=P.get(l);if(ee&&te)return ee==l&&te==n;var ae=-1,fe=!0,we=p&h?new Ja:e;for(P.set(n,l),P.set(l,n);++ae<B;){var Pe=n[ae],Ge=l[ae];if(x)var Me=N?x(Ge,Pe,ae,l,n,P):x(Pe,Ge,ae,n,l,P);if(Me!==e){if(Me)continue;fe=!1;break}if(we){if(!Sb(l,function(qe,tt){if(!ad(we,tt)&&(Pe===qe||S(Pe,qe,p,x,P)))return we.push(tt)})){fe=!1;break}}else if(!(Pe===Ge||S(Pe,Ge,p,x,P))){fe=!1;break}}return P.delete(n),P.delete(l),fe}function s6(n,l,p,x,S,P,N){switch(p){case as:if(n.byteLength!=l.byteLength||n.byteOffset!=l.byteOffset)return!1;n=n.buffer,l=l.buffer;case id:return!(n.byteLength!=l.byteLength||!P(new hu(n),new hu(l)));case pe:case ye:case Jr:return wn(+n,+l);case vt:return n.name==l.name&&n.message==l.message;case Ya:case vn:return n==l+"";case er:var B=kb;case wr:var H=x&g;if(B||(B=du),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=S1(B(n),B(l),x,S,P,N);return N.delete(n),te;case Va:if(md)return md.call(n)==md.call(l)}return!1}function c6(n,l,p,x,S,P){var N=p&g,B=ex(n),H=B.length,ee=ex(l),te=ee.length;if(H!=te&&!N)return!1;for(var ae=H;ae--;){var fe=B[ae];if(!(N?fe in l:bt.call(l,fe)))return!1}var we=P.get(n),Pe=P.get(l);if(we&&Pe)return we==l&&Pe==n;var Ge=!0;P.set(n,l),P.set(l,n);for(var Me=N;++ae<H;){fe=B[ae];var qe=n[fe],tt=l[fe];if(x)var Lo=N?x(tt,qe,fe,l,n,P):x(qe,tt,fe,n,l,P);if(!(Lo===e?qe===tt||S(qe,tt,p,x,P):Lo)){Ge=!1;break}Me||(Me=fe=="constructor")}if(Ge&&!Me){var to=n.constructor,Ro=l.constructor;to!=Ro&&"constructor"in n&&"constructor"in l&&!(typeof to=="function"&&to instanceof to&&typeof Ro=="function"&&Ro instanceof Ro)&&(Ge=!1)}return P.delete(n),P.delete(l),Ge}function pi(n){return sx(k1(n,e,B1),n+"")}function ex(n){return Gw(n,Tr,nx)}function tx(n){return Gw(n,go,T1)}var rx=wu?function(n){return wu.get(n)}:Ex;function Ou(n){for(var l=n.name+"",p=ps[l],x=bt.call(ps,l)?p.length:0;x--;){var S=p[x],P=S.func;if(P==null||P==n)return S.name}return l}function bs(n){var l=bt.call(_,"placeholder")?_:n;return l.placeholder}function Ae(){var n=_.iteratee||vx;return n=n===vx?Yw:n,arguments.length?n(arguments[0],arguments[1]):n}function Fu(n,l){var p=n.__data__;return b6(l)?p[typeof l=="string"?"string":"hash"]:p.map}function ox(n){for(var l=Tr(n),p=l.length;p--;){var x=l[p],S=n[x];l[p]=[x,S,_1(S)]}return l}function tl(n,l){var p=yR(n,l);return Kw(p)?p:e}function d6(n){var l=bt.call(n,qa),p=n[qa];try{n[qa]=e;var x=!0}catch{}var S=fu.call(n);return x&&(l?n[qa]=p:delete n[qa]),S}var nx=Mb?function(n){return n==null?[]:(n=wt(n),ji(Mb(n),function(l){return Pw.call(n,l)}))}:wx,T1=Mb?function(n){for(var l=[];n;)Ji(l,nx(n)),n=bu(n);return l}:wx,Br=Qr;(Lb&&Br(new Lb(new ArrayBuffer(1)))!=as||sd&&Br(new sd)!=er||Rb&&Br(Rb.resolve())!=nu||us&&Br(new us)!=wr||cd&&Br(new cd)!=Xa)&&(Br=function(n){var l=Qr(n),p=l==ar?n.constructor:e,x=p?rl(p):"";if(x)switch(x){case YR:return as;case VR:return er;case XR:return nu;case ZR:return wr;case qR:return Xa}return l});function m6(n,l,p){for(var x=-1,S=p.length;++x<S;){var P=p[x],N=P.size;switch(P.type){case"drop":n+=N;break;case"dropRight":l-=N;break;case"take":l=Fr(l,n+N);break;case"takeRight":n=hr(n,l-N);break}}return{start:n,end:l}}function u6(n){var l=n.match(xL);return l?l[1].split(vL):[]}function C1(n,l,p){l=na(l,n);for(var x=-1,S=l.length,P=!1;++x<S;){var N=Kn(l[x]);if(!(P=n!=null&&p(n,N)))break;n=n[N]}return P||++x!=S?P:(S=n==null?0:n.length,!!S&&Wu(S)&&fi(N,S)&&($e(n)||ol(n)))}function p6(n){var l=n.length,p=new n.constructor(l);return l&&typeof n[0]=="string"&&bt.call(n,"index")&&(p.index=n.index,p.input=n.input),p}function I1(n){return typeof n.constructor=="function"&&!xd(n)?fs(bu(n)):{}}function f6(n,l,p){var x=n.constructor;switch(l){case id:return jb(n);case pe:case ye:return new x(+n);case as:return jD(n,p);case ob:case nb:case ib:case ab:case lb:case sb:case cb:case db:case mb:return s1(n,p);case er:return new x;case Jr:case vn:return new x(n);case Ya:return JD(n);case wr:return new x;case Va:return QD(n)}}function g6(n,l){var p=l.length;if(!p)return n;var x=p-1;return l[x]=(p>1?"& ":"")+l[x],l=l.join(p>2?", ":" "),n.replace(bL,`{
|
|
2
|
+
/* [wrapped with `+l+`] */
|
|
3
|
+
`)}function h6(n){return $e(n)||ol(n)||!!(Mw&&n&&n[Mw])}function fi(n,l){var p=typeof n;return l=l??_e,!!l&&(p=="number"||p!="symbol"&&AL.test(n))&&n>-1&&n%1==0&&n<l}function eo(n,l,p){if(!Ut(p))return!1;var x=typeof l;return(x=="number"?fo(p)&&fi(l,p.length):x=="string"&&l in p)?wn(p[l],n):!1}function ix(n,l){if($e(n))return!1;var p=typeof n;return p=="number"||p=="symbol"||p=="boolean"||n==null||Mo(n)?!0:pL.test(n)||!uL.test(n)||l!=null&&n in wt(l)}function b6(n){var l=typeof n;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?n!=="__proto__":n===null}function ax(n){var l=Ou(n),p=_[l];if(typeof p!="function"||!(l in Je.prototype))return!1;if(n===p)return!0;var x=rx(p);return!!x&&n===x[0]}function x6(n){return!!_w&&_w in n}var v6=uu?gi:Sx;function xd(n){var l=n&&n.constructor,p=typeof l=="function"&&l.prototype||ms;return n===p}function _1(n){return n===n&&!Ut(n)}function A1(n,l){return function(p){return p==null?!1:p[n]===l&&(l!==e||n in wt(p))}}function y6(n){var l=Uu(n,function(x){return p.size===c&&p.clear(),x}),p=l.cache;return l}function E6(n,l){var p=n[1],x=l[1],S=p|x,P=S<(b|y|z),N=x==z&&p==k||x==z&&p==L&&n[7].length<=l[8]||x==(z|L)&&l[7].length<=l[8]&&p==k;if(!(P||N))return n;x&b&&(n[2]=l[2],S|=p&b?0:T);var B=l[3];if(B){var H=n[3];n[3]=H?d1(H,B,l[4]):B,n[4]=H?Qi(n[3],d):l[4]}return B=l[5],B&&(H=n[5],n[5]=H?m1(H,B,l[6]):B,n[6]=H?Qi(n[5],d):l[6]),B=l[7],B&&(n[7]=B),x&z&&(n[8]=n[8]==null?l[8]:Fr(n[8],l[8])),n[9]==null&&(n[9]=l[9]),n[0]=l[0],n[1]=S,n}function w6(n){var l=[];if(n!=null)for(var p in wt(n))l.push(p);return l}function S6(n){return fu.call(n)}function k1(n,l,p){return l=hr(l===e?n.length-1:l,0),function(){for(var x=arguments,S=-1,P=hr(x.length-l,0),N=Z(P);++S<P;)N[S]=x[l+S];S=-1;for(var B=Z(l+1);++S<l;)B[S]=x[S];return B[l]=p(N),Ao(n,this,B)}}function P1(n,l){return l.length<2?n:el(n,Yo(l,0,-1))}function T6(n,l){for(var p=n.length,x=Fr(l.length,p),S=po(n);x--;){var P=l[x];n[x]=fi(P,p)?S[P]:e}return n}function lx(n,l){if(!(l==="constructor"&&typeof n[l]=="function")&&l!="__proto__")return n[l]}var M1=R1(e1),vd=zR||function(n,l){return Sr.setTimeout(n,l)},sx=R1(VD);function L1(n,l,p){var x=l+"";return sx(n,g6(x,C6(u6(x),p)))}function R1(n){var l=0,p=0;return function(){var x=GR(),S=Q-(x-p);if(p=x,S>0){if(++l>=U)return arguments[0]}else l=0;return n.apply(e,arguments)}}function Bu(n,l){var p=-1,x=n.length,S=x-1;for(l=l===e?x:l;++p<l;){var P=Wb(p,S),N=n[P];n[P]=n[p],n[p]=N}return n.length=l,n}var D1=y6(function(n){var l=[];return n.charCodeAt(0)===46&&l.push(""),n.replace(fL,function(p,x,S,P){l.push(S?P.replace(wL,"$1"):x||p)}),l});function Kn(n){if(typeof n=="string"||Mo(n))return n;var l=n+"";return l=="0"&&1/n==-be?"-0":l}function rl(n){if(n!=null){try{return pu.call(n)}catch{}try{return n+""}catch{}}return""}function C6(n,l){return Uo(oe,function(p){var x="_."+p[0];l&p[1]&&!su(n,x)&&n.push(x)}),n.sort()}function N1(n){if(n instanceof Je)return n.clone();var l=new Wo(n.__wrapped__,n.__chain__);return l.__actions__=po(n.__actions__),l.__index__=n.__index__,l.__values__=n.__values__,l}function I6(n,l,p){(p?eo(n,l,p):l===e)?l=1:l=hr(Ue(l),0);var x=n==null?0:n.length;if(!x||l<1)return[];for(var S=0,P=0,N=Z(yu(x/l));S<x;)N[P++]=Yo(n,S,S+=l);return N}function _6(n){for(var l=-1,p=n==null?0:n.length,x=0,S=[];++l<p;){var P=n[l];P&&(S[x++]=P)}return S}function A6(){var n=arguments.length;if(!n)return[];for(var l=Z(n-1),p=arguments[0],x=n;x--;)l[x-1]=arguments[x];return Ji($e(p)?po(p):[p],Mr(l,1))}var k6=Ke(function(n,l){return tr(n)?pd(n,Mr(l,1,tr,!0)):[]}),P6=Ke(function(n,l){var p=Vo(l);return tr(p)&&(p=e),tr(n)?pd(n,Mr(l,1,tr,!0),Ae(p,2)):[]}),M6=Ke(function(n,l){var p=Vo(l);return tr(p)&&(p=e),tr(n)?pd(n,Mr(l,1,tr,!0),e,p):[]});function L6(n,l,p){var x=n==null?0:n.length;return x?(l=p||l===e?1:Ue(l),Yo(n,l<0?0:l,x)):[]}function R6(n,l,p){var x=n==null?0:n.length;return x?(l=p||l===e?1:Ue(l),l=x-l,Yo(n,0,l<0?0:l)):[]}function D6(n,l){return n&&n.length?Pu(n,Ae(l,3),!0,!0):[]}function N6(n,l){return n&&n.length?Pu(n,Ae(l,3),!0):[]}function O6(n,l,p,x){var S=n==null?0:n.length;return S?(p&&typeof p!="number"&&eo(n,l,p)&&(p=0,x=S),AD(n,l,p,x)):[]}function O1(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=p==null?0:Ue(p);return S<0&&(S=hr(x+S,0)),cu(n,Ae(l,3),S)}function F1(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=x-1;return p!==e&&(S=Ue(p),S=p<0?hr(x+S,0):Fr(S,x-1)),cu(n,Ae(l,3),S,!0)}function B1(n){var l=n==null?0:n.length;return l?Mr(n,1):[]}function F6(n){var l=n==null?0:n.length;return l?Mr(n,be):[]}function B6(n,l){var p=n==null?0:n.length;return p?(l=l===e?1:Ue(l),Mr(n,l)):[]}function z6(n){for(var l=-1,p=n==null?0:n.length,x={};++l<p;){var S=n[l];x[S[0]]=S[1]}return x}function z1(n){return n&&n.length?n[0]:e}function $6(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=p==null?0:Ue(p);return S<0&&(S=hr(x+S,0)),ss(n,l,S)}function H6(n){var l=n==null?0:n.length;return l?Yo(n,0,-1):[]}var U6=Ke(function(n){var l=Bt(n,Zb);return l.length&&l[0]===n[0]?zb(l):[]}),G6=Ke(function(n){var l=Vo(n),p=Bt(n,Zb);return l===Vo(p)?l=e:p.pop(),p.length&&p[0]===n[0]?zb(p,Ae(l,2)):[]}),W6=Ke(function(n){var l=Vo(n),p=Bt(n,Zb);return l=typeof l=="function"?l:e,l&&p.pop(),p.length&&p[0]===n[0]?zb(p,e,l):[]});function K6(n,l){return n==null?"":HR.call(n,l)}function Vo(n){var l=n==null?0:n.length;return l?n[l-1]:e}function Y6(n,l,p){var x=n==null?0:n.length;if(!x)return-1;var S=x;return p!==e&&(S=Ue(p),S=S<0?hr(x+S,0):Fr(S,x-1)),l===l?CR(n,l,S):cu(n,vw,S,!0)}function V6(n,l){return n&&n.length?qw(n,Ue(l)):e}var X6=Ke($1);function $1(n,l){return n&&n.length&&l&&l.length?Gb(n,l):n}function Z6(n,l,p){return n&&n.length&&l&&l.length?Gb(n,l,Ae(p,2)):n}function q6(n,l,p){return n&&n.length&&l&&l.length?Gb(n,l,e,p):n}var j6=pi(function(n,l){var p=n==null?0:n.length,x=Nb(n,l);return Qw(n,Bt(l,function(S){return fi(S,p)?+S:S}).sort(c1)),x});function J6(n,l){var p=[];if(!(n&&n.length))return p;var x=-1,S=[],P=n.length;for(l=Ae(l,3);++x<P;){var N=n[x];l(N,x,n)&&(p.push(N),S.push(x))}return Qw(n,S),p}function cx(n){return n==null?n:KR.call(n)}function Q6(n,l,p){var x=n==null?0:n.length;return x?(p&&typeof p!="number"&&eo(n,l,p)?(l=0,p=x):(l=l==null?0:Ue(l),p=p===e?x:Ue(p)),Yo(n,l,p)):[]}function e4(n,l){return ku(n,l)}function t4(n,l,p){return Yb(n,l,Ae(p,2))}function r4(n,l){var p=n==null?0:n.length;if(p){var x=ku(n,l);if(x<p&&wn(n[x],l))return x}return-1}function o4(n,l){return ku(n,l,!0)}function n4(n,l,p){return Yb(n,l,Ae(p,2),!0)}function i4(n,l){var p=n==null?0:n.length;if(p){var x=ku(n,l,!0)-1;if(wn(n[x],l))return x}return-1}function a4(n){return n&&n.length?t1(n):[]}function l4(n,l){return n&&n.length?t1(n,Ae(l,2)):[]}function s4(n){var l=n==null?0:n.length;return l?Yo(n,1,l):[]}function c4(n,l,p){return n&&n.length?(l=p||l===e?1:Ue(l),Yo(n,0,l<0?0:l)):[]}function d4(n,l,p){var x=n==null?0:n.length;return x?(l=p||l===e?1:Ue(l),l=x-l,Yo(n,l<0?0:l,x)):[]}function m4(n,l){return n&&n.length?Pu(n,Ae(l,3),!1,!0):[]}function u4(n,l){return n&&n.length?Pu(n,Ae(l,3)):[]}var p4=Ke(function(n){return oa(Mr(n,1,tr,!0))}),f4=Ke(function(n){var l=Vo(n);return tr(l)&&(l=e),oa(Mr(n,1,tr,!0),Ae(l,2))}),g4=Ke(function(n){var l=Vo(n);return l=typeof l=="function"?l:e,oa(Mr(n,1,tr,!0),e,l)});function h4(n){return n&&n.length?oa(n):[]}function b4(n,l){return n&&n.length?oa(n,Ae(l,2)):[]}function x4(n,l){return l=typeof l=="function"?l:e,n&&n.length?oa(n,e,l):[]}function dx(n){if(!(n&&n.length))return[];var l=0;return n=ji(n,function(p){if(tr(p))return l=hr(p.length,l),!0}),_b(l,function(p){return Bt(n,Tb(p))})}function H1(n,l){if(!(n&&n.length))return[];var p=dx(n);return l==null?p:Bt(p,function(x){return Ao(l,e,x)})}var v4=Ke(function(n,l){return tr(n)?pd(n,l):[]}),y4=Ke(function(n){return Xb(ji(n,tr))}),E4=Ke(function(n){var l=Vo(n);return tr(l)&&(l=e),Xb(ji(n,tr),Ae(l,2))}),w4=Ke(function(n){var l=Vo(n);return l=typeof l=="function"?l:e,Xb(ji(n,tr),e,l)}),S4=Ke(dx);function T4(n,l){return i1(n||[],l||[],ud)}function C4(n,l){return i1(n||[],l||[],hd)}var I4=Ke(function(n){var l=n.length,p=l>1?n[l-1]:e;return p=typeof p=="function"?(n.pop(),p):e,H1(n,p)});function U1(n){var l=_(n);return l.__chain__=!0,l}function _4(n,l){return l(n),n}function zu(n,l){return l(n)}var A4=pi(function(n){var l=n.length,p=l?n[0]:0,x=this.__wrapped__,S=function(P){return Nb(P,n)};return l>1||this.__actions__.length||!(x instanceof Je)||!fi(p)?this.thru(S):(x=x.slice(p,+p+(l?1:0)),x.__actions__.push({func:zu,args:[S],thisArg:e}),new Wo(x,this.__chain__).thru(function(P){return l&&!P.length&&P.push(e),P}))});function k4(){return U1(this)}function P4(){return new Wo(this.value(),this.__chain__)}function M4(){this.__values__===e&&(this.__values__=rS(this.value()));var n=this.__index__>=this.__values__.length,l=n?e:this.__values__[this.__index__++];return{done:n,value:l}}function L4(){return this}function R4(n){for(var l,p=this;p instanceof Tu;){var x=N1(p);x.__index__=0,x.__values__=e,l?S.__wrapped__=x:l=x;var S=x;p=p.__wrapped__}return S.__wrapped__=n,l}function D4(){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:zu,args:[cx],thisArg:e}),new Wo(l,this.__chain__)}return this.thru(cx)}function N4(){return n1(this.__wrapped__,this.__actions__)}var O4=Mu(function(n,l,p){bt.call(n,p)?++n[p]:mi(n,p,1)});function F4(n,l,p){var x=$e(n)?bw:_D;return p&&eo(n,l,p)&&(l=e),x(n,Ae(l,3))}function B4(n,l){var p=$e(n)?ji:Hw;return p(n,Ae(l,3))}var z4=g1(O1),$4=g1(F1);function H4(n,l){return Mr($u(n,l),1)}function U4(n,l){return Mr($u(n,l),be)}function G4(n,l,p){return p=p===e?1:Ue(p),Mr($u(n,l),p)}function G1(n,l){var p=$e(n)?Uo:ra;return p(n,Ae(l,3))}function W1(n,l){var p=$e(n)?sR:$w;return p(n,Ae(l,3))}var W4=Mu(function(n,l,p){bt.call(n,p)?n[p].push(l):mi(n,p,[l])});function K4(n,l,p,x){n=fo(n)?n:vs(n),p=p&&!x?Ue(p):0;var S=n.length;return p<0&&(p=hr(S+p,0)),Ku(n)?p<=S&&n.indexOf(l,p)>-1:!!S&&ss(n,l,p)>-1}var Y4=Ke(function(n,l,p){var x=-1,S=typeof l=="function",P=fo(n)?Z(n.length):[];return ra(n,function(N){P[++x]=S?Ao(l,N,p):fd(N,l,p)}),P}),V4=Mu(function(n,l,p){mi(n,p,l)});function $u(n,l){var p=$e(n)?Bt:Vw;return p(n,Ae(l,3))}function X4(n,l,p,x){return n==null?[]:($e(l)||(l=l==null?[]:[l]),p=x?e:p,$e(p)||(p=p==null?[]:[p]),jw(n,l,p))}var Z4=Mu(function(n,l,p){n[p?0:1].push(l)},function(){return[[],[]]});function q4(n,l,p){var x=$e(n)?wb:Ew,S=arguments.length<3;return x(n,Ae(l,4),p,S,ra)}function j4(n,l,p){var x=$e(n)?cR:Ew,S=arguments.length<3;return x(n,Ae(l,4),p,S,$w)}function J4(n,l){var p=$e(n)?ji:Hw;return p(n,Gu(Ae(l,3)))}function Q4(n){var l=$e(n)?Ow:KD;return l(n)}function eN(n,l,p){(p?eo(n,l,p):l===e)?l=1:l=Ue(l);var x=$e(n)?wD:YD;return x(n,l)}function tN(n){var l=$e(n)?SD:XD;return l(n)}function rN(n){if(n==null)return 0;if(fo(n))return Ku(n)?ds(n):n.length;var l=Br(n);return l==er||l==wr?n.size:Hb(n).length}function oN(n,l,p){var x=$e(n)?Sb:ZD;return p&&eo(n,l,p)&&(l=e),x(n,Ae(l,3))}var nN=Ke(function(n,l){if(n==null)return[];var p=l.length;return p>1&&eo(n,l[0],l[1])?l=[]:p>2&&eo(l[0],l[1],l[2])&&(l=[l[0]]),jw(n,Mr(l,1),[])}),Hu=BR||function(){return Sr.Date.now()};function iN(n,l){if(typeof l!="function")throw new Go(i);return n=Ue(n),function(){if(--n<1)return l.apply(this,arguments)}}function K1(n,l,p){return l=p?e:l,l=n&&l==null?n.length:l,ui(n,z,e,e,e,e,l)}function Y1(n,l){var p;if(typeof l!="function")throw new Go(i);return n=Ue(n),function(){return--n>0&&(p=l.apply(this,arguments)),n<=1&&(l=e),p}}var mx=Ke(function(n,l,p){var x=b;if(p.length){var S=Qi(p,bs(mx));x|=C}return ui(n,x,l,p,S)}),V1=Ke(function(n,l,p){var x=b|y;if(p.length){var S=Qi(p,bs(V1));x|=C}return ui(l,x,n,p,S)});function X1(n,l,p){l=p?e:l;var x=ui(n,k,e,e,e,e,e,l);return x.placeholder=X1.placeholder,x}function Z1(n,l,p){l=p?e:l;var x=ui(n,I,e,e,e,e,e,l);return x.placeholder=Z1.placeholder,x}function q1(n,l,p){var x,S,P,N,B,H,ee=0,te=!1,ae=!1,fe=!0;if(typeof n!="function")throw new Go(i);l=Xo(l)||0,Ut(p)&&(te=!!p.leading,ae="maxWait"in p,P=ae?hr(Xo(p.maxWait)||0,l):P,fe="trailing"in p?!!p.trailing:fe);function we(rr){var Sn=x,bi=S;return x=S=e,ee=rr,N=n.apply(bi,Sn),N}function Pe(rr){return ee=rr,B=vd(qe,l),te?we(rr):N}function Ge(rr){var Sn=rr-H,bi=rr-ee,gS=l-Sn;return ae?Fr(gS,P-bi):gS}function Me(rr){var Sn=rr-H,bi=rr-ee;return H===e||Sn>=l||Sn<0||ae&&bi>=P}function qe(){var rr=Hu();if(Me(rr))return tt(rr);B=vd(qe,Ge(rr))}function tt(rr){return B=e,fe&&x?we(rr):(x=S=e,N)}function Lo(){B!==e&&a1(B),ee=0,x=H=S=B=e}function to(){return B===e?N:tt(Hu())}function Ro(){var rr=Hu(),Sn=Me(rr);if(x=arguments,S=this,H=rr,Sn){if(B===e)return Pe(H);if(ae)return a1(B),B=vd(qe,l),we(H)}return B===e&&(B=vd(qe,l)),N}return Ro.cancel=Lo,Ro.flush=to,Ro}var aN=Ke(function(n,l){return zw(n,1,l)}),lN=Ke(function(n,l,p){return zw(n,Xo(l)||0,p)});function sN(n){return ui(n,F)}function Uu(n,l){if(typeof n!="function"||l!=null&&typeof l!="function")throw new Go(i);var p=function(){var x=arguments,S=l?l.apply(this,x):x[0],P=p.cache;if(P.has(S))return P.get(S);var N=n.apply(this,x);return p.cache=P.set(S,N)||P,N};return p.cache=new(Uu.Cache||di),p}Uu.Cache=di;function Gu(n){if(typeof n!="function")throw new Go(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 cN(n){return Y1(2,n)}var dN=qD(function(n,l){l=l.length==1&&$e(l[0])?Bt(l[0],ko(Ae())):Bt(Mr(l,1),ko(Ae()));var p=l.length;return Ke(function(x){for(var S=-1,P=Fr(x.length,p);++S<P;)x[S]=l[S].call(this,x[S]);return Ao(n,this,x)})}),ux=Ke(function(n,l){var p=Qi(l,bs(ux));return ui(n,C,e,l,p)}),j1=Ke(function(n,l){var p=Qi(l,bs(j1));return ui(n,O,e,l,p)}),mN=pi(function(n,l){return ui(n,L,e,e,e,l)});function uN(n,l){if(typeof n!="function")throw new Go(i);return l=l===e?l:Ue(l),Ke(n,l)}function pN(n,l){if(typeof n!="function")throw new Go(i);return l=l==null?0:hr(Ue(l),0),Ke(function(p){var x=p[l],S=ia(p,0,l);return x&&Ji(S,x),Ao(n,this,S)})}function fN(n,l,p){var x=!0,S=!0;if(typeof n!="function")throw new Go(i);return Ut(p)&&(x="leading"in p?!!p.leading:x,S="trailing"in p?!!p.trailing:S),q1(n,l,{leading:x,maxWait:l,trailing:S})}function gN(n){return K1(n,1)}function hN(n,l){return ux(qb(l),n)}function bN(){if(!arguments.length)return[];var n=arguments[0];return $e(n)?n:[n]}function xN(n){return Ko(n,m)}function vN(n,l){return l=typeof l=="function"?l:e,Ko(n,m,l)}function yN(n){return Ko(n,u|m)}function EN(n,l){return l=typeof l=="function"?l:e,Ko(n,u|m,l)}function wN(n,l){return l==null||Bw(n,l,Tr(l))}function wn(n,l){return n===l||n!==n&&l!==l}var SN=Nu(Bb),TN=Nu(function(n,l){return n>=l}),ol=Ww(function(){return arguments}())?Ww:function(n){return Xt(n)&&bt.call(n,"callee")&&!Pw.call(n,"callee")},$e=Z.isArray,CN=mw?ko(mw):RD;function fo(n){return n!=null&&Wu(n.length)&&!gi(n)}function tr(n){return Xt(n)&&fo(n)}function IN(n){return n===!0||n===!1||Xt(n)&&Qr(n)==pe}var aa=$R||Sx,_N=uw?ko(uw):DD;function AN(n){return Xt(n)&&n.nodeType===1&&!yd(n)}function kN(n){if(n==null)return!0;if(fo(n)&&($e(n)||typeof n=="string"||typeof n.splice=="function"||aa(n)||xs(n)||ol(n)))return!n.length;var l=Br(n);if(l==er||l==wr)return!n.size;if(xd(n))return!Hb(n).length;for(var p in n)if(bt.call(n,p))return!1;return!0}function PN(n,l){return gd(n,l)}function MN(n,l,p){p=typeof p=="function"?p:e;var x=p?p(n,l):e;return x===e?gd(n,l,e,p):!!x}function px(n){if(!Xt(n))return!1;var l=Qr(n);return l==vt||l==Ct||typeof n.message=="string"&&typeof n.name=="string"&&!yd(n)}function LN(n){return typeof n=="number"&&Lw(n)}function gi(n){if(!Ut(n))return!1;var l=Qr(n);return l==Ft||l==Et||l==de||l==tb}function J1(n){return typeof n=="number"&&n==Ue(n)}function Wu(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=_e}function Ut(n){var l=typeof n;return n!=null&&(l=="object"||l=="function")}function Xt(n){return n!=null&&typeof n=="object"}var Q1=pw?ko(pw):OD;function RN(n,l){return n===l||$b(n,l,ox(l))}function DN(n,l,p){return p=typeof p=="function"?p:e,$b(n,l,ox(l),p)}function NN(n){return eS(n)&&n!=+n}function ON(n){if(v6(n))throw new Fe(o);return Kw(n)}function FN(n){return n===null}function BN(n){return n==null}function eS(n){return typeof n=="number"||Xt(n)&&Qr(n)==Jr}function yd(n){if(!Xt(n)||Qr(n)!=ar)return!1;var l=bu(n);if(l===null)return!0;var p=bt.call(l,"constructor")&&l.constructor;return typeof p=="function"&&p instanceof p&&pu.call(p)==DR}var fx=fw?ko(fw):FD;function zN(n){return J1(n)&&n>=-_e&&n<=_e}var tS=gw?ko(gw):BD;function Ku(n){return typeof n=="string"||!$e(n)&&Xt(n)&&Qr(n)==vn}function Mo(n){return typeof n=="symbol"||Xt(n)&&Qr(n)==Va}var xs=hw?ko(hw):zD;function $N(n){return n===e}function HN(n){return Xt(n)&&Br(n)==Xa}function UN(n){return Xt(n)&&Qr(n)==rb}var GN=Nu(Ub),WN=Nu(function(n,l){return n<=l});function rS(n){if(!n)return[];if(fo(n))return Ku(n)?yn(n):po(n);if(ld&&n[ld])return wR(n[ld]());var l=Br(n),p=l==er?kb:l==wr?du:vs;return p(n)}function hi(n){if(!n)return n===0?n:0;if(n=Xo(n),n===be||n===-be){var l=n<0?-1:1;return l*nt}return n===n?n:0}function Ue(n){var l=hi(n),p=l%1;return l===l?p?l-p:l:0}function oS(n){return n?Qa(Ue(n),0,ue):0}function Xo(n){if(typeof n=="number")return n;if(Mo(n))return Ee;if(Ut(n)){var l=typeof n.valueOf=="function"?n.valueOf():n;n=Ut(l)?l+"":l}if(typeof n!="string")return n===0?n:+n;n=ww(n);var p=CL.test(n);return p||_L.test(n)?iR(n.slice(2),p?2:8):TL.test(n)?Ee:+n}function nS(n){return Wn(n,go(n))}function KN(n){return n?Qa(Ue(n),-_e,_e):n===0?n:0}function ut(n){return n==null?"":Po(n)}var YN=gs(function(n,l){if(xd(l)||fo(l)){Wn(l,Tr(l),n);return}for(var p in l)bt.call(l,p)&&ud(n,p,l[p])}),iS=gs(function(n,l){Wn(l,go(l),n)}),Yu=gs(function(n,l,p,x){Wn(l,go(l),n,x)}),VN=gs(function(n,l,p,x){Wn(l,Tr(l),n,x)}),XN=pi(Nb);function ZN(n,l){var p=fs(n);return l==null?p:Fw(p,l)}var qN=Ke(function(n,l){n=wt(n);var p=-1,x=l.length,S=x>2?l[2]:e;for(S&&eo(l[0],l[1],S)&&(x=1);++p<x;)for(var P=l[p],N=go(P),B=-1,H=N.length;++B<H;){var ee=N[B],te=n[ee];(te===e||wn(te,ms[ee])&&!bt.call(n,ee))&&(n[ee]=P[ee])}return n}),jN=Ke(function(n){return n.push(e,w1),Ao(aS,e,n)});function JN(n,l){return xw(n,Ae(l,3),Gn)}function QN(n,l){return xw(n,Ae(l,3),Fb)}function e8(n,l){return n==null?n:Ob(n,Ae(l,3),go)}function t8(n,l){return n==null?n:Uw(n,Ae(l,3),go)}function r8(n,l){return n&&Gn(n,Ae(l,3))}function o8(n,l){return n&&Fb(n,Ae(l,3))}function n8(n){return n==null?[]:_u(n,Tr(n))}function i8(n){return n==null?[]:_u(n,go(n))}function gx(n,l,p){var x=n==null?e:el(n,l);return x===e?p:x}function a8(n,l){return n!=null&&C1(n,l,kD)}function hx(n,l){return n!=null&&C1(n,l,PD)}var l8=b1(function(n,l,p){l!=null&&typeof l.toString!="function"&&(l=fu.call(l)),n[l]=p},xx(ho)),s8=b1(function(n,l,p){l!=null&&typeof l.toString!="function"&&(l=fu.call(l)),bt.call(n,l)?n[l].push(p):n[l]=[p]},Ae),c8=Ke(fd);function Tr(n){return fo(n)?Nw(n):Hb(n)}function go(n){return fo(n)?Nw(n,!0):$D(n)}function d8(n,l){var p={};return l=Ae(l,3),Gn(n,function(x,S,P){mi(p,l(x,S,P),x)}),p}function m8(n,l){var p={};return l=Ae(l,3),Gn(n,function(x,S,P){mi(p,S,l(x,S,P))}),p}var u8=gs(function(n,l,p){Au(n,l,p)}),aS=gs(function(n,l,p,x){Au(n,l,p,x)}),p8=pi(function(n,l){var p={};if(n==null)return p;var x=!1;l=Bt(l,function(P){return P=na(P,n),x||(x=P.length>1),P}),Wn(n,tx(n),p),x&&(p=Ko(p,u|f|m,l6));for(var S=l.length;S--;)Vb(p,l[S]);return p});function f8(n,l){return lS(n,Gu(Ae(l)))}var g8=pi(function(n,l){return n==null?{}:UD(n,l)});function lS(n,l){if(n==null)return{};var p=Bt(tx(n),function(x){return[x]});return l=Ae(l),Jw(n,p,function(x,S){return l(x,S[0])})}function h8(n,l,p){l=na(l,n);var x=-1,S=l.length;for(S||(S=1,n=e);++x<S;){var P=n==null?e:n[Kn(l[x])];P===e&&(x=S,P=p),n=gi(P)?P.call(n):P}return n}function b8(n,l,p){return n==null?n:hd(n,l,p)}function x8(n,l,p,x){return x=typeof x=="function"?x:e,n==null?n:hd(n,l,p,x)}var sS=y1(Tr),cS=y1(go);function v8(n,l,p){var x=$e(n),S=x||aa(n)||xs(n);if(l=Ae(l,4),p==null){var P=n&&n.constructor;S?p=x?new P:[]:Ut(n)?p=gi(P)?fs(bu(n)):{}:p={}}return(S?Uo:Gn)(n,function(N,B,H){return l(p,N,B,H)}),p}function y8(n,l){return n==null?!0:Vb(n,l)}function E8(n,l,p){return n==null?n:o1(n,l,qb(p))}function w8(n,l,p,x){return x=typeof x=="function"?x:e,n==null?n:o1(n,l,qb(p),x)}function vs(n){return n==null?[]:Ab(n,Tr(n))}function S8(n){return n==null?[]:Ab(n,go(n))}function T8(n,l,p){return p===e&&(p=l,l=e),p!==e&&(p=Xo(p),p=p===p?p:0),l!==e&&(l=Xo(l),l=l===l?l:0),Qa(Xo(n),l,p)}function C8(n,l,p){return l=hi(l),p===e?(p=l,l=0):p=hi(p),n=Xo(n),MD(n,l,p)}function I8(n,l,p){if(p&&typeof p!="boolean"&&eo(n,l,p)&&(l=p=e),p===e&&(typeof l=="boolean"?(p=l,l=e):typeof n=="boolean"&&(p=n,n=e)),n===e&&l===e?(n=0,l=1):(n=hi(n),l===e?(l=n,n=0):l=hi(l)),n>l){var x=n;n=l,l=x}if(p||n%1||l%1){var S=Rw();return Fr(n+S*(l-n+nR("1e-"+((S+"").length-1))),l)}return Wb(n,l)}var _8=hs(function(n,l,p){return l=l.toLowerCase(),n+(p?dS(l):l)});function dS(n){return bx(ut(n).toLowerCase())}function mS(n){return n=ut(n),n&&n.replace(kL,bR).replace(XL,"")}function A8(n,l,p){n=ut(n),l=Po(l);var x=n.length;p=p===e?x:Qa(Ue(p),0,x);var S=p;return p-=l.length,p>=0&&n.slice(p,S)==l}function k8(n){return n=ut(n),n&&cL.test(n)?n.replace(U0,xR):n}function P8(n){return n=ut(n),n&&gL.test(n)?n.replace(ub,"\\$&"):n}var M8=hs(function(n,l,p){return n+(p?"-":"")+l.toLowerCase()}),L8=hs(function(n,l,p){return n+(p?" ":"")+l.toLowerCase()}),R8=f1("toLowerCase");function D8(n,l,p){n=ut(n),l=Ue(l);var x=l?ds(n):0;if(!l||x>=l)return n;var S=(l-x)/2;return Du(Eu(S),p)+n+Du(yu(S),p)}function N8(n,l,p){n=ut(n),l=Ue(l);var x=l?ds(n):0;return l&&x<l?n+Du(l-x,p):n}function O8(n,l,p){n=ut(n),l=Ue(l);var x=l?ds(n):0;return l&&x<l?Du(l-x,p)+n:n}function F8(n,l,p){return p||l==null?l=0:l&&(l=+l),WR(ut(n).replace(pb,""),l||0)}function B8(n,l,p){return(p?eo(n,l,p):l===e)?l=1:l=Ue(l),Kb(ut(n),l)}function z8(){var n=arguments,l=ut(n[0]);return n.length<3?l:l.replace(n[1],n[2])}var $8=hs(function(n,l,p){return n+(p?"_":"")+l.toLowerCase()});function H8(n,l,p){return p&&typeof p!="number"&&eo(n,l,p)&&(l=p=e),p=p===e?ue:p>>>0,p?(n=ut(n),n&&(typeof l=="string"||l!=null&&!fx(l))&&(l=Po(l),!l&&cs(n))?ia(yn(n),0,p):n.split(l,p)):[]}var U8=hs(function(n,l,p){return n+(p?" ":"")+bx(l)});function G8(n,l,p){return n=ut(n),p=p==null?0:Qa(Ue(p),0,n.length),l=Po(l),n.slice(p,p+l.length)==l}function W8(n,l,p){var x=_.templateSettings;p&&eo(n,l,p)&&(l=e),n=ut(n),l=Yu({},l,x,E1);var S=Yu({},l.imports,x.imports,E1),P=Tr(S),N=Ab(S,P),B,H,ee=0,te=l.interpolate||iu,ae="__p += '",fe=Pb((l.escape||iu).source+"|"+te.source+"|"+(te===G0?SL:iu).source+"|"+(l.evaluate||iu).source+"|$","g"),we="//# sourceURL="+(bt.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++QL+"]")+`
|
|
4
|
+
`;n.replace(fe,function(Me,qe,tt,Lo,to,Ro){return tt||(tt=Lo),ae+=n.slice(ee,Ro).replace(PL,vR),qe&&(B=!0,ae+=`' +
|
|
5
|
+
__e(`+qe+`) +
|
|
6
|
+
'`),to&&(H=!0,ae+=`';
|
|
7
|
+
`+to+`;
|
|
8
|
+
__p += '`),tt&&(ae+=`' +
|
|
9
|
+
((__t = (`+tt+`)) == null ? '' : __t) +
|
|
10
|
+
'`),ee=Ro+Me.length,Me}),ae+=`';
|
|
11
|
+
`;var Pe=bt.call(l,"variable")&&l.variable;if(!Pe)ae=`with (obj) {
|
|
12
|
+
`+ae+`
|
|
13
|
+
}
|
|
14
|
+
`;else if(EL.test(Pe))throw new Fe(a);ae=(H?ae.replace(iL,""):ae).replace(aL,"$1").replace(lL,"$1;"),ae="function("+(Pe||"obj")+`) {
|
|
15
|
+
`+(Pe?"":`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=pS(function(){return ct(P,we+"return "+ae).apply(e,N)});if(Ge.source=ae,px(Ge))throw Ge;return Ge}function K8(n){return ut(n).toLowerCase()}function Y8(n){return ut(n).toUpperCase()}function V8(n,l,p){if(n=ut(n),n&&(p||l===e))return ww(n);if(!n||!(l=Po(l)))return n;var x=yn(n),S=yn(l),P=Sw(x,S),N=Tw(x,S)+1;return ia(x,P,N).join("")}function X8(n,l,p){if(n=ut(n),n&&(p||l===e))return n.slice(0,Iw(n)+1);if(!n||!(l=Po(l)))return n;var x=yn(n),S=Tw(x,yn(l))+1;return ia(x,0,S).join("")}function Z8(n,l,p){if(n=ut(n),n&&(p||l===e))return n.replace(pb,"");if(!n||!(l=Po(l)))return n;var x=yn(n),S=Sw(x,yn(l));return ia(x,S).join("")}function q8(n,l){var p=D,x=V;if(Ut(l)){var S="separator"in l?l.separator:S;p="length"in l?Ue(l.length):p,x="omission"in l?Po(l.omission):x}n=ut(n);var P=n.length;if(cs(n)){var N=yn(n);P=N.length}if(p>=P)return n;var B=p-ds(x);if(B<1)return x;var H=N?ia(N,0,B).join(""):n.slice(0,B);if(S===e)return H+x;if(N&&(B+=H.length-B),fx(S)){if(n.slice(B).search(S)){var ee,te=H;for(S.global||(S=Pb(S.source,ut(W0.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(Po(S),B)!=B){var fe=H.lastIndexOf(S);fe>-1&&(H=H.slice(0,fe))}return H+x}function j8(n){return n=ut(n),n&&sL.test(n)?n.replace(H0,IR):n}var J8=hs(function(n,l,p){return n+(p?" ":"")+l.toUpperCase()}),bx=f1("toUpperCase");function uS(n,l,p){return n=ut(n),l=p?e:l,l===e?ER(n)?kR(n):uR(n):n.match(l)||[]}var pS=Ke(function(n,l){try{return Ao(n,e,l)}catch(p){return px(p)?p:new Fe(p)}}),Q8=pi(function(n,l){return Uo(l,function(p){p=Kn(p),mi(n,p,mx(n[p],n))}),n});function e7(n){var l=n==null?0:n.length,p=Ae();return n=l?Bt(n,function(x){if(typeof x[1]!="function")throw new Go(i);return[p(x[0]),x[1]]}):[],Ke(function(x){for(var S=-1;++S<l;){var P=n[S];if(Ao(P[0],this,x))return Ao(P[1],this,x)}})}function t7(n){return ID(Ko(n,u))}function xx(n){return function(){return n}}function r7(n,l){return n==null||n!==n?l:n}var o7=h1(),n7=h1(!0);function ho(n){return n}function vx(n){return Yw(typeof n=="function"?n:Ko(n,u))}function i7(n){return Xw(Ko(n,u))}function a7(n,l){return Zw(n,Ko(l,u))}var l7=Ke(function(n,l){return function(p){return fd(p,n,l)}}),s7=Ke(function(n,l){return function(p){return fd(n,p,l)}});function yx(n,l,p){var x=Tr(l),S=_u(l,x);p==null&&!(Ut(l)&&(S.length||!x.length))&&(p=l,l=n,n=this,S=_u(l,Tr(l)));var P=!(Ut(p)&&"chain"in p)||!!p.chain,N=gi(n);return Uo(S,function(B){var H=l[B];n[B]=H,N&&(n.prototype[B]=function(){var ee=this.__chain__;if(P||ee){var te=n(this.__wrapped__),ae=te.__actions__=po(this.__actions__);return ae.push({func:H,args:arguments,thisArg:n}),te.__chain__=ee,te}return H.apply(n,Ji([this.value()],arguments))})}),n}function c7(){return Sr._===this&&(Sr._=NR),this}function Ex(){}function d7(n){return n=Ue(n),Ke(function(l){return qw(l,n)})}var m7=Jb(Bt),u7=Jb(bw),p7=Jb(Sb);function fS(n){return ix(n)?Tb(Kn(n)):GD(n)}function f7(n){return function(l){return n==null?e:el(n,l)}}var g7=x1(),h7=x1(!0);function wx(){return[]}function Sx(){return!1}function b7(){return{}}function x7(){return""}function v7(){return!0}function y7(n,l){if(n=Ue(n),n<1||n>_e)return[];var p=ue,x=Fr(n,ue);l=Ae(l),n-=ue;for(var S=_b(x,l);++p<n;)l(p);return S}function E7(n){return $e(n)?Bt(n,Kn):Mo(n)?[n]:po(D1(ut(n)))}function w7(n){var l=++RR;return ut(n)+l}var S7=Ru(function(n,l){return n+l},0),T7=Qb("ceil"),C7=Ru(function(n,l){return n/l},1),I7=Qb("floor");function _7(n){return n&&n.length?Iu(n,ho,Bb):e}function A7(n,l){return n&&n.length?Iu(n,Ae(l,2),Bb):e}function k7(n){return yw(n,ho)}function P7(n,l){return yw(n,Ae(l,2))}function M7(n){return n&&n.length?Iu(n,ho,Ub):e}function L7(n,l){return n&&n.length?Iu(n,Ae(l,2),Ub):e}var R7=Ru(function(n,l){return n*l},1),D7=Qb("round"),N7=Ru(function(n,l){return n-l},0);function O7(n){return n&&n.length?Ib(n,ho):0}function F7(n,l){return n&&n.length?Ib(n,Ae(l,2)):0}return _.after=iN,_.ary=K1,_.assign=YN,_.assignIn=iS,_.assignInWith=Yu,_.assignWith=VN,_.at=XN,_.before=Y1,_.bind=mx,_.bindAll=Q8,_.bindKey=V1,_.castArray=bN,_.chain=U1,_.chunk=I6,_.compact=_6,_.concat=A6,_.cond=e7,_.conforms=t7,_.constant=xx,_.countBy=O4,_.create=ZN,_.curry=X1,_.curryRight=Z1,_.debounce=q1,_.defaults=qN,_.defaultsDeep=jN,_.defer=aN,_.delay=lN,_.difference=k6,_.differenceBy=P6,_.differenceWith=M6,_.drop=L6,_.dropRight=R6,_.dropRightWhile=D6,_.dropWhile=N6,_.fill=O6,_.filter=B4,_.flatMap=H4,_.flatMapDeep=U4,_.flatMapDepth=G4,_.flatten=B1,_.flattenDeep=F6,_.flattenDepth=B6,_.flip=sN,_.flow=o7,_.flowRight=n7,_.fromPairs=z6,_.functions=n8,_.functionsIn=i8,_.groupBy=W4,_.initial=H6,_.intersection=U6,_.intersectionBy=G6,_.intersectionWith=W6,_.invert=l8,_.invertBy=s8,_.invokeMap=Y4,_.iteratee=vx,_.keyBy=V4,_.keys=Tr,_.keysIn=go,_.map=$u,_.mapKeys=d8,_.mapValues=m8,_.matches=i7,_.matchesProperty=a7,_.memoize=Uu,_.merge=u8,_.mergeWith=aS,_.method=l7,_.methodOf=s7,_.mixin=yx,_.negate=Gu,_.nthArg=d7,_.omit=p8,_.omitBy=f8,_.once=cN,_.orderBy=X4,_.over=m7,_.overArgs=dN,_.overEvery=u7,_.overSome=p7,_.partial=ux,_.partialRight=j1,_.partition=Z4,_.pick=g8,_.pickBy=lS,_.property=fS,_.propertyOf=f7,_.pull=X6,_.pullAll=$1,_.pullAllBy=Z6,_.pullAllWith=q6,_.pullAt=j6,_.range=g7,_.rangeRight=h7,_.rearg=mN,_.reject=J4,_.remove=J6,_.rest=uN,_.reverse=cx,_.sampleSize=eN,_.set=b8,_.setWith=x8,_.shuffle=tN,_.slice=Q6,_.sortBy=nN,_.sortedUniq=a4,_.sortedUniqBy=l4,_.split=H8,_.spread=pN,_.tail=s4,_.take=c4,_.takeRight=d4,_.takeRightWhile=m4,_.takeWhile=u4,_.tap=_4,_.throttle=fN,_.thru=zu,_.toArray=rS,_.toPairs=sS,_.toPairsIn=cS,_.toPath=E7,_.toPlainObject=nS,_.transform=v8,_.unary=gN,_.union=p4,_.unionBy=f4,_.unionWith=g4,_.uniq=h4,_.uniqBy=b4,_.uniqWith=x4,_.unset=y8,_.unzip=dx,_.unzipWith=H1,_.update=E8,_.updateWith=w8,_.values=vs,_.valuesIn=S8,_.without=v4,_.words=uS,_.wrap=hN,_.xor=y4,_.xorBy=E4,_.xorWith=w4,_.zip=S4,_.zipObject=T4,_.zipObjectDeep=C4,_.zipWith=I4,_.entries=sS,_.entriesIn=cS,_.extend=iS,_.extendWith=Yu,yx(_,_),_.add=S7,_.attempt=pS,_.camelCase=_8,_.capitalize=dS,_.ceil=T7,_.clamp=T8,_.clone=xN,_.cloneDeep=yN,_.cloneDeepWith=EN,_.cloneWith=vN,_.conformsTo=wN,_.deburr=mS,_.defaultTo=r7,_.divide=C7,_.endsWith=A8,_.eq=wn,_.escape=k8,_.escapeRegExp=P8,_.every=F4,_.find=z4,_.findIndex=O1,_.findKey=JN,_.findLast=$4,_.findLastIndex=F1,_.findLastKey=QN,_.floor=I7,_.forEach=G1,_.forEachRight=W1,_.forIn=e8,_.forInRight=t8,_.forOwn=r8,_.forOwnRight=o8,_.get=gx,_.gt=SN,_.gte=TN,_.has=a8,_.hasIn=hx,_.head=z1,_.identity=ho,_.includes=K4,_.indexOf=$6,_.inRange=C8,_.invoke=c8,_.isArguments=ol,_.isArray=$e,_.isArrayBuffer=CN,_.isArrayLike=fo,_.isArrayLikeObject=tr,_.isBoolean=IN,_.isBuffer=aa,_.isDate=_N,_.isElement=AN,_.isEmpty=kN,_.isEqual=PN,_.isEqualWith=MN,_.isError=px,_.isFinite=LN,_.isFunction=gi,_.isInteger=J1,_.isLength=Wu,_.isMap=Q1,_.isMatch=RN,_.isMatchWith=DN,_.isNaN=NN,_.isNative=ON,_.isNil=BN,_.isNull=FN,_.isNumber=eS,_.isObject=Ut,_.isObjectLike=Xt,_.isPlainObject=yd,_.isRegExp=fx,_.isSafeInteger=zN,_.isSet=tS,_.isString=Ku,_.isSymbol=Mo,_.isTypedArray=xs,_.isUndefined=$N,_.isWeakMap=HN,_.isWeakSet=UN,_.join=K6,_.kebabCase=M8,_.last=Vo,_.lastIndexOf=Y6,_.lowerCase=L8,_.lowerFirst=R8,_.lt=GN,_.lte=WN,_.max=_7,_.maxBy=A7,_.mean=k7,_.meanBy=P7,_.min=M7,_.minBy=L7,_.stubArray=wx,_.stubFalse=Sx,_.stubObject=b7,_.stubString=x7,_.stubTrue=v7,_.multiply=R7,_.nth=V6,_.noConflict=c7,_.noop=Ex,_.now=Hu,_.pad=D8,_.padEnd=N8,_.padStart=O8,_.parseInt=F8,_.random=I8,_.reduce=q4,_.reduceRight=j4,_.repeat=B8,_.replace=z8,_.result=h8,_.round=D7,_.runInContext=$,_.sample=Q4,_.size=rN,_.snakeCase=$8,_.some=oN,_.sortedIndex=e4,_.sortedIndexBy=t4,_.sortedIndexOf=r4,_.sortedLastIndex=o4,_.sortedLastIndexBy=n4,_.sortedLastIndexOf=i4,_.startCase=U8,_.startsWith=G8,_.subtract=N7,_.sum=O7,_.sumBy=F7,_.template=W8,_.times=y7,_.toFinite=hi,_.toInteger=Ue,_.toLength=oS,_.toLower=K8,_.toNumber=Xo,_.toSafeInteger=KN,_.toString=ut,_.toUpper=Y8,_.trim=V8,_.trimEnd=X8,_.trimStart=Z8,_.truncate=q8,_.unescape=j8,_.uniqueId=w7,_.upperCase=J8,_.upperFirst=bx,_.each=G1,_.eachRight=W1,_.first=z1,yx(_,function(){var n={};return Gn(_,function(l,p){bt.call(_.prototype,p)||(n[p]=l)}),n}(),{chain:!1}),_.VERSION=t,Uo(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){_[n].placeholder=_}),Uo(["drop","take"],function(n,l){Je.prototype[n]=function(p){p=p===e?1:hr(Ue(p),0);var x=this.__filtered__&&!l?new Je(this):this.clone();return x.__filtered__?x.__takeCount__=Fr(p,x.__takeCount__):x.__views__.push({size:Fr(p,ue),type:n+(x.__dir__<0?"Right":"")}),x},Je.prototype[n+"Right"]=function(p){return this.reverse()[n](p).reverse()}}),Uo(["filter","map","takeWhile"],function(n,l){var p=l+1,x=p==me||p==se;Je.prototype[n]=function(S){var P=this.clone();return P.__iteratees__.push({iteratee:Ae(S,3),type:p}),P.__filtered__=P.__filtered__||x,P}}),Uo(["head","last"],function(n,l){var p="take"+(l?"Right":"");Je.prototype[n]=function(){return this[p](1).value()[0]}}),Uo(["initial","tail"],function(n,l){var p="drop"+(l?"":"Right");Je.prototype[n]=function(){return this.__filtered__?new Je(this):this[p](1)}}),Je.prototype.compact=function(){return this.filter(ho)},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(p){return fd(p,n,l)})}),Je.prototype.reject=function(n){return this.filter(Gu(Ae(n)))},Je.prototype.slice=function(n,l){n=Ue(n);var p=this;return p.__filtered__&&(n>0||l<0)?new Je(p):(n<0?p=p.takeRight(-n):n&&(p=p.drop(n)),l!==e&&(l=Ue(l),p=l<0?p.dropRight(-l):p.take(l-n)),p)},Je.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Je.prototype.toArray=function(){return this.take(ue)},Gn(Je.prototype,function(n,l){var p=/^(?:filter|find|map|reject)|While$/.test(l),x=/^(?:head|last)$/.test(l),S=_[x?"take"+(l=="last"?"Right":""):l],P=x||/^find/.test(l);S&&(_.prototype[l]=function(){var N=this.__wrapped__,B=x?[1]:arguments,H=N instanceof Je,ee=B[0],te=H||$e(N),ae=function(qe){var tt=S.apply(_,Ji([qe],B));return x&&fe?tt[0]:tt};te&&p&&typeof ee=="function"&&ee.length!=1&&(H=te=!1);var fe=this.__chain__,we=!!this.__actions__.length,Pe=P&&!fe,Ge=H&&!we;if(!P&&te){N=Ge?N:new Je(this);var Me=n.apply(N,B);return Me.__actions__.push({func:zu,args:[ae],thisArg:e}),new Wo(Me,fe)}return Pe&&Ge?n.apply(this,B):(Me=this.thru(ae),Pe?x?Me.value()[0]:Me.value():Me)})}),Uo(["pop","push","shift","sort","splice","unshift"],function(n){var l=mu[n],p=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",x=/^(?:pop|shift)$/.test(n);_.prototype[n]=function(){var S=arguments;if(x&&!this.__chain__){var P=this.value();return l.apply($e(P)?P:[],S)}return this[p](function(N){return l.apply($e(N)?N:[],S)})}}),Gn(Je.prototype,function(n,l){var p=_[l];if(p){var x=p.name+"";bt.call(ps,x)||(ps[x]=[]),ps[x].push({name:l,func:p})}}),ps[Lu(e,y).name]=[{name:"wrapper",func:e}],Je.prototype.clone=jR,Je.prototype.reverse=JR,Je.prototype.value=QR,_.prototype.at=A4,_.prototype.chain=k4,_.prototype.commit=P4,_.prototype.next=M4,_.prototype.plant=R4,_.prototype.reverse=D4,_.prototype.toJSON=_.prototype.valueOf=_.prototype.value=N4,_.prototype.first=_.prototype.head,ld&&(_.prototype[ld]=L4),_},ea=PR();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Sr._=ea,define(function(){return ea})):Za?((Za.exports=ea)._=ea,vb._=ea):Sr._=ea}).call(Xc)});v();var eb=w(j(),1);v();var Of=w(j(),1);v();v();v();v();var or=w(j(),1);v();var K7=0;function DI(e,t){let r=`atom${++K7}`,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 Ta=Symbol(),Ov=e=>!!e[Ta],Tf=e=>!e[Ta].c,Jd=e=>{var t;let{b:r,c:o}=e[Ta];o&&(o(),(t=V7.get(r))==null||t())},If=(e,t)=>{let r=e[Ta].o,o=t[Ta].o;return r===o||e===o||Ov(r)&&If(r,t)},Fv=(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[Ta]=r,o},Y7=e=>Fv(e[Ta].b,e[Ta].o),V7=new WeakMap;var Cf=e=>"init"in e,Qd="r",_f="w",em="c",Af="s",NI="h",X7="n",Z7="l",q7="a",j7="m",OI=e=>{let t=new WeakMap,r=new WeakMap,o=new Map,i,a;if((A&&A.MODE)!=="production"&&(i=new Set,a=new Set),e)for(let[G,Y]of e){let oe={v:Y,r:0,y:!0,d:new Map};(A&&A.MODE)!=="production"&&(Object.freeze(oe),Cf(G)||console.warn("Found initial value for derived atom which can cause unexpected behavior",G)),t.set(G,oe)}let s=new WeakMap,c=(G,Y,oe)=>{let ie=s.get(Y);ie||(ie=new Map,s.set(Y,ie)),oe.then(()=>{ie.get(G)===oe&&(ie.delete(G),ie.size||s.delete(Y))}),ie.set(G,oe)},d=G=>{let Y=new Set,oe=s.get(G);return oe&&(s.delete(G),oe.forEach((ie,le)=>{Jd(ie),Y.add(le)})),Y},u=new WeakMap,f=G=>{let Y=u.get(G);return Y||(Y=new Map,u.set(G,Y)),Y},m=(G,Y)=>{if(G){let oe=f(G),ie=oe.get(Y);return ie||(ie=m(G.p,Y),ie&&"p"in ie&&Tf(ie.p)&&(ie=void 0),ie&&oe.set(Y,ie)),ie}return t.get(Y)},g=(G,Y,oe)=>{if((A&&A.MODE)!=="production"&&Object.freeze(oe),G)f(G).set(Y,oe);else{let ie=t.get(Y);t.set(Y,oe),o.has(Y)||o.set(Y,ie)}},h=(G,Y=new Map,oe)=>{if(!oe)return Y;let ie=new Map,le=!1;return oe.forEach(de=>{var pe;let ye=((pe=m(G,de))==null?void 0:pe.r)||0;ie.set(de,ye),Y.get(de)!==ye&&(le=!0)}),Y.size===ie.size&&!le?Y:ie},b=(G,Y,oe,ie,le)=>{let de=m(G,Y);if(de){if(le&&(!("p"in de)||!If(de.p,le)))return de;"p"in de&&Jd(de.p)}let pe={v:oe,r:de?.r||0,y:!0,d:h(G,de?.d,ie)},ye=!de?.y;return!de||!("v"in de)||!Object.is(de.v,oe)?(ye=!0,++pe.r,pe.d.has(Y)&&(pe.d=new Map(pe.d).set(Y,pe.r))):pe.d!==de.d&&(pe.d.size!==de.d.size||!Array.from(pe.d.keys()).every(Ct=>de.d.has(Ct)))&&(ye=!0,Promise.resolve().then(()=>{be(G)})),de&&!ye?de:(g(G,Y,pe),pe)},y=(G,Y,oe,ie,le)=>{let de=m(G,Y);if(de){if(le&&(!("p"in de)||!If(de.p,le)))return de;"p"in de&&Jd(de.p)}let pe={e:oe,r:(de?.r||0)+1,y:!0,d:h(G,de?.d,ie)};return g(G,Y,pe),pe},T=(G,Y,oe,ie)=>{let le=m(G,Y);if(le&&"p"in le){if(If(le.p,oe)&&!Tf(le.p))return le.y?le:{...le,y:!0};Jd(le.p)}c(G,Y,oe);let de={p:oe,r:(le?.r||0)+1,y:!0,d:h(G,le?.d,ie)};return g(G,Y,de),de},k=(G,Y,oe,ie)=>{if(oe instanceof Promise){let le=Fv(oe,oe.then(de=>{b(G,Y,de,ie,le)}).catch(de=>{if(de instanceof Promise)return Ov(de)?de.then(()=>{C(G,Y,!0)}):de;y(G,Y,de,ie,le)}));return T(G,Y,le,ie)}return b(G,Y,oe,ie)},I=(G,Y)=>{let oe=m(G,Y);if(oe){let ie={...oe,y:!1};g(G,Y,ie)}else(A&&A.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",Y)},C=(G,Y,oe)=>{if(!oe){let le=m(G,Y);if(le){if(le.y&&"p"in le&&!Tf(le.p))return le;if(le.d.forEach((de,pe)=>{if(pe!==Y)if(!r.has(pe))C(G,pe);else{let ye=m(G,pe);ye&&!ye.y&&C(G,pe)}}),Array.from(le.d).every(([de,pe])=>{let ye=m(G,de);return ye&&!("p"in ye)&&ye.r===pe}))return le.y?le:{...le,y:!0}}}let ie=new Set;try{let le=Y.read(de=>{ie.add(de);let pe=de===Y?m(G,de):C(G,de);if(pe){if("e"in pe)throw pe.e;if("p"in pe)throw pe.p;return pe.v}if(Cf(de))return de.init;throw new Error("no atom init")});return k(G,Y,le,ie)}catch(le){if(le instanceof Promise){let de=Ov(le)&&Tf(le)?Y7(le):Fv(le,le);return T(G,Y,de,ie)}return y(G,Y,le,ie)}},O=(G,Y)=>C(Y,G),z=(G,Y)=>{let oe=r.get(Y);return oe||(oe=me(G,Y)),oe},L=(G,Y)=>!Y.l.size&&(!Y.t.size||Y.t.size===1&&Y.t.has(G)),F=(G,Y)=>{let oe=r.get(Y);oe&&L(Y,oe)&&K(G,Y)},D=(G,Y)=>{let oe=r.get(Y);oe?.t.forEach(ie=>{ie!==Y&&(I(G,ie),D(G,ie))})},V=(G,Y,oe)=>{let ie=!0,le=(ye,Ct)=>{let vt=C(G,ye);if("e"in vt)throw vt.e;if("p"in vt){if(Ct?.unstable_promise)return vt.p.then(()=>{let Ft=m(G,ye);return Ft&&"p"in Ft&&Ft.p===vt.p?new Promise(Et=>setTimeout(Et)).then(()=>le(ye,Ct)):le(ye,Ct)});throw(A&&A.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",ye),vt.p}if("v"in vt)return vt.v;throw(A&&A.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")},de=(ye,Ct)=>{let vt;if(ye===Y){if(!Cf(ye))throw new Error("atom not writable");d(ye).forEach(Jr=>{Jr!==G&&k(Jr,ye,Ct)});let Et=m(G,ye),er=k(G,ye,Ct);Et!==er&&D(G,ye)}else vt=V(G,ye,Ct);return ie||be(G),vt},pe=Y.write(le,de,oe);return ie=!1,pe},U=(G,Y,oe)=>{let ie=V(oe,G,Y);return be(oe),ie},Q=G=>!!G.write,me=(G,Y,oe)=>{let ie={t:new Set(oe&&[oe]),l:new Set};if(r.set(Y,ie),(A&&A.MODE)!=="production"&&a.add(Y),C(void 0,Y).d.forEach((de,pe)=>{let ye=r.get(pe);ye?ye.t.add(Y):pe!==Y&&me(G,pe,Y)}),Q(Y)&&Y.onMount){let de=ye=>U(Y,ye,G),pe=Y.onMount(de);G=void 0,pe&&(ie.u=pe)}return ie},K=(G,Y)=>{var oe;let ie=(oe=r.get(Y))==null?void 0:oe.u;ie&&ie(),r.delete(Y),(A&&A.MODE)!=="production"&&a.delete(Y);let le=m(G,Y);le?("p"in le&&Jd(le.p),le.d.forEach((de,pe)=>{if(pe!==Y){let ye=r.get(pe);ye&&(ye.t.delete(Y),L(pe,ye)&&K(G,pe))}})):(A&&A.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",Y)},se=(G,Y,oe,ie)=>{let le=new Set(oe.d.keys());ie?.forEach((de,pe)=>{if(le.has(pe)){le.delete(pe);return}let ye=r.get(pe);ye&&(ye.t.delete(Y),L(pe,ye)&&K(G,pe))}),le.forEach(de=>{let pe=r.get(de);pe?pe.t.add(Y):r.has(Y)&&me(G,de,Y)})},be=G=>{if(G){f(G).forEach((oe,ie)=>{let le=t.get(ie);if(oe!==le){let de=r.get(ie);de?.l.forEach(pe=>pe(G))}});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 de=r.get(oe);de?.l.forEach(pe=>pe())})}(A&&A.MODE)!=="production"&&i.forEach(Y=>Y())},_e=G=>{f(G).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(G,ie,oe,le?.d))})},nt=(G,Y)=>{Y&&_e(Y),be(void 0)},Ee=(G,Y,oe)=>{let le=z(oe,G).l;return le.add(Y),()=>{le.delete(Y),F(oe,G)}},ue=(G,Y)=>{for(let[oe,ie]of G)Cf(oe)&&(k(Y,oe,ie),D(Y,oe));be(Y)};return(A&&A.MODE)!=="production"?{[Qd]:O,[_f]:U,[em]:nt,[Af]:Ee,[NI]:ue,[X7]:G=>(i.add(G),()=>{i.delete(G)}),[Z7]:()=>a.values(),[q7]:G=>t.get(G),[j7]:G=>r.get(G)}:{[Qd]:O,[_f]:U,[em]:nt,[Af]:Ee,[NI]:ue}},FI=e=>{let t=OI(e),r=s=>{let c=t[Qd](s);if("e"in c)throw c.e;if(!("p"in c))return c.v},o=s=>new Promise((c,d)=>{let u=t[Qd](s);"e"in u?d(u.e):"p"in u?c(u.p.then(()=>o(s))):c(u.v)});return{get:r,asyncGet:o,set:(s,c)=>t[_f](s,c),sub:(s,c)=>t[Af](s,c),SECRET_INTERNAL_store:t}},BI=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:OI(e)}),Nv=new Map,Bv=e=>(Nv.has(e)||Nv.set(e,(0,or.createContext)(BI())),Nv.get(e)),kf=({children:e,initialValues:t,scope:r,unstable_createStore:o,unstable_enableVersionedWrite:i})=>{let[a,s]=(0,or.useState)({});(0,or.useEffect)(()=>{let u=c.current;u.w&&(u.s[em](null,a),delete a.p,u.v=a)},[a]);let c=(0,or.useRef)();if(!c.current){let u=BI(t,o);if(i){let f=0;u.w=m=>{s(g=>{let h=f?g:{p:g};return m(h),h})},u.v=a,u.r=m=>{++f,m(),--f}}c.current=u}let d=Bv(r);return(0,or.createElement)(d.Provider,{value:c.current},e)};function St(e,t){return DI(e,t)}function tm(e,t){let r=Bv(t),o=(0,or.useContext)(r),{s:i,v:a}=o,s=g=>{let h=i[Qd](e,g);if((A&&A.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,u],f]=(0,or.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 u!==e&&(f(c),m=s(c)),(0,or.useEffect)(()=>{let{v:g}=o;g&&i[em](e,g);let h=i[Af](e,f,g);return f(g),h},[i,e,o]),(0,or.useEffect)(()=>{i[em](e,c)}),(0,or.useDebugValue)(m),m}function Li(e,t){let r=Bv(t),{s:o,w:i}=(0,or.useContext)(r);return(0,or.useCallback)(s=>{if((A&&A.MODE)!=="production"&&!("write"in e))throw new Error("not writable atom");let c=d=>o[_f](e,s,d);return i?i(c):c()},[o,i,e])}function Ve(e,t){return"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope),[tm(e,t),Li(e,t)]}var J7=w(j(),1),mt=Symbol(),Hr=FI();var Q7=hS({"./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-YVAVVILW.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 eO=85,Xn={code:"en",label:"English"},Qs=[Xn,...[{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=>xS[e.code]>=eO).sort((e,t)=>e.label>t.label?1:-1)],Mf="__test__";A.DEV&&Qs.unshift({code:Mf,label:"test language"},{code:`${Mf}.rtl`,label:"\u202Atest language (rtl)\u202C",rtl:!0});var Js=Xn,Pf={},Lf=async e=>{if(Js=e,document.documentElement.dir=Js.rtl?"rtl":"ltr",document.documentElement.lang=Js.code,e.code.startsWith(Mf))Pf={};else try{Pf=await Q7(`./locales/${Js.code}.json`)}catch(t){console.error(`Failed to load language ${e.code}:`,t.message),Pf=Tx}Hr.set($I,e.code)},Ri=()=>Js,zI=(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(Js.code.startsWith(Mf))return`\u202A[[${t?`${e}(${JSON.stringify(t).slice(1,-1)})`:e}]]\u202C`;let o=e.split("."),i=zI(Pf,o)||zI(Tx,o)||r;if(i===void 0){let a=`Can't find translation for ${e}`;if(A.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},$I=St(Xn.code),lr=()=>{let e=tm($I,mt);return{t:E,langCode:e}};var Df=w(j(),1);v();var HI=w(j(),1);var Rf=w(M(),1),tO=({size:e="1em",circleWidth:t=8,synchronized:r=!1})=>{let i=-(HI.default.useRef(Date.now()).current%1600);return(0,Rf.jsx)("div",{className:"Spinner",children:(0,Rf.jsx)("svg",{viewBox:"0 0 100 100",style:{width:e,height:e,"--spinner-delay":r?`${i}ms`:0},children:(0,Rf.jsx)("circle",{cx:"50",cy:"50",r:50-t/2,strokeWidth:t,fill:"none",strokeMiterlimit:"10"})})})},Dr=tO;var ec=w(M(),1),Nf=({delay:e,theme:t})=>{let[r,o]=(0,Df.useState)(!!e);return(0,Df.useEffect)(()=>{if(!e)return;let i=setTimeout(()=>{o(!1)},e);return()=>clearTimeout(i)},[e]),r?null:(0,ec.jsxs)("div",{className:q("LoadingMessage",{"LoadingMessage--dark":t===Be.DARK}),children:[(0,ec.jsx)("div",{children:(0,ec.jsx)(Dr,{})}),(0,ec.jsx)("div",{className:"LoadingMessage-text",children:E("labels.loadingScene")})]})};var GI=w(M(),1),UI=e=>{let[t,r]=(0,Of.useState)(!0);return(0,Of.useEffect)(()=>{let o=async()=>{await Lf(i),r(!1)},i=Qs.find(a=>a.code===e.langCode)||Xn;o()},[e.langCode]),t?(0,GI.jsx)(Nf,{theme:e.theme}):e.children};v();var fr=w(j(),1),Vh=w(Zn(),1);v();v();v();var Mn=w(j(),1);var on=w(M(),1),Ie=Mn.default.forwardRef((e,t)=>{let{id:r}=sr(),o=Mn.default.useRef(null);Mn.default.useImperativeHandle(t,()=>o.current);let i=`ToolIcon_size_${e.size}`,[a,s]=(0,Mn.useState)(!1),c=(0,Mn.useRef)(!0),d=async f=>{let m="onClick"in e&&e.onClick?.(f);if(Ts(m))try{s(!0),await m}catch(g){if(g instanceof _s)console.warn(g);else throw g}finally{c.current&&s(!1)}};(0,Mn.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let u=(0,Mn.useRef)(null);if(e.type==="button"||e.type==="icon"||e.type==="submit"){let f=e.type==="icon"?"button":e.type;return(0,on.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,on.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!e.disabled,children:[e.icon||e.label,e.keyBindingLabel&&(0,on.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel}),e.isLoading&&(0,on.jsx)(Dr,{})]}),e.showAriaLabel&&(0,on.jsxs)("div",{className:"ToolIcon__label",children:[e["aria-label"]," ",a&&(0,on.jsx)(Dr,{})]}),e.children]})}return(0,on.jsxs)("label",{className:q("ToolIcon",e.className),title:e.title,onPointerDown:f=>{u.current=f.pointerType||null,e.onPointerDown?.({pointerType:f.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{u.current=null})},children:[(0,on.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:u.current})},checked:e.checked,ref:o}),(0,on.jsxs)("div",{className:"ToolIcon__icon",children:[e.icon,e.keyBindingLabel&&(0,on.jsx)("span",{className:"ToolIcon__keybinding",children:e.keyBindingLabel})]})]})});Ie.defaultProps={visible:!0,className:"",size:"medium"};Ie.displayName="ToolButton";var YI=w(M(),1),rO=(e,t,r)=>{let o=new Set(Oe(e.filter(i=>He(i)),t).map(i=>i.id));return{elements:e.map(i=>t.selectedElementIds[i.id]?(i.boundElements&&i.boundElements.forEach(a=>{let s=r.scene.getNonDeletedElementsMap().get(a.id);s&&dt(s)&&(ce(s,{startBinding:i.id===s.startBinding?.elementId?null:s.startBinding,endBinding:i.id===s.endBinding?.elementId?null:s.endBinding}),Cl(s,r.scene,s.points))}),ke(i,{isDeleted:!0})):i.frameId&&o.has(i.frameId)?ke(i,{isDeleted:!0}):Ir(i)&&t.selectedElementIds[i.containerId]?ke(i,{isDeleted:!0}):i),appState:{...t,selectedElementIds:{},selectedGroupIds:{}}}},KI=(e,t)=>{if(e.editingGroupId){let r=Kt(We(t),e.editingGroupId);if(r.length)return{...e,selectedElementIds:{[r[0].id]:!0}}}return e},rm=re({name:"deleteSelectedElements",label:"labels.delete",icon:kn,trackEvent:{category:"element",action:"delete"},perform:(e,t,r,o)=>{if(t.editingLinearElement){let{elementId:s,selectedPointsIndices:c,startBindingElement:d,endBindingElement:u}=t.editingLinearElement,f=o.scene.getNonDeletedElementsMap(),m=Le.getElement(s,f);if(!m||c==null)return!1;if(m.points.length<2){let h=e.map(y=>y.id===m.id?ke(y,{isDeleted:!0}):y),b=KI(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:u};return Le.deletePoints(m,c,o.scene),{elements:e,appState:{...t,editingLinearElement:{...t.editingLinearElement,...g,selectedPointsIndices:c?.[0]>0?[c[0]-1]:[0]}},storeAction:W.CAPTURE}}let{elements:i,appState:a}=rO(e,t,o);return ef(i,e.filter(({id:s})=>t.selectedElementIds[s])),a=KI(a,i),{elements:i,appState:{...a,activeTool:Gt(t,{type:"selection"}),multiElement:null,activeEmbeddable:null},storeAction:gt(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,YI.jsx)(Ie,{type:"button",icon:kn,title:E("labels.delete"),"aria-label":E("labels.delete"),onClick:()=>r(null),visible:gt(We(e),t)})});v();v();var zv=(e,t)=>e.frameId===t||e.id===t,XI=(e,t,r)=>{let o=[],i=[],a=null,s=-1,c=Re(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},oO=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),[])},VI=(e,t,r)=>{if("containerId"in e&&e.containerId)if(r==="left"){let o=rn.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=rn.getScene(e).getElement(o);if(i)return t.indexOf(i)}}},nO=(e,t)=>{let r=-1,o=-1;return e.forEach((i,a)=>{zv(i,t)&&(r===-1&&(r=a),o=a)}),r===-1?[]:e.slice(r,o+1)},iO=(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"?Rx(t,m=>s(m),Math.max(0,r-1)):Lx(t,m=>s(m),r+1),d=t[c];if(!d)return-1;if(e.editingGroupId){if(a?.groupIds.join("")===d?.groupIds.join(""))return VI(d,t,o)??c;if(!d?.groupIds.includes(e.editingGroupId))return-1}if(!i&&(d.frameId||He(d))){let m=nO(t,d.frameId||d.id);return o==="left"?t.indexOf(m[0]):t.indexOf(m[m.length-1])}if(!d.groupIds.length)return VI(d,t,o)??c;let u=e.editingGroupId?d.groupIds[d.groupIds.indexOf(e.editingGroupId)-1]:d.groupIds[d.groupIds.length-1],f=Kt(t,u);return f.length?o==="left"?t.indexOf(f[0]):t.indexOf(f[f.length-1]):c},ZI=(e,t)=>t.reduce((r,o)=>{let i=e[o];return r.set(i.id,i),r},new Map),qI=(e,t,r)=>{let o=XI(e,t),i=ZI(e,o),a=oO(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 u=c[0],f=c[c.length-1],m=r==="left"?u:f,g=c.some(I=>{let C=e[I];return C.frameId&&s.has(C.frameId)})?null:e[m]?.frameId,h=iO(t,e,m,r,g);if(h===-1||m===h)return;let b=r==="left"?e.slice(0,h):e.slice(0,u),y=e.slice(u,f+1),T=r==="left"?e.slice(h,u):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]}),Do(e,i),e},jI=(e,t,r,o,i)=>{let a=XI(e,t,i),s=ZI(e,a),c=[],d,u;if(r==="left"){if(o)d=Lx(e,b=>zv(b,o));else if(t.editingGroupId){let b=Kt(e,t.editingGroupId);if(!b.length)return e;d=e.indexOf(b[0])}else d=0;u=a[a.length-1]}else{if(o)u=Rx(e,b=>zv(b,o));else if(t.editingGroupId){let b=Kt(e,t.editingGroupId);if(!b.length)return e;u=e.indexOf(b[b.length-1])}else u=e.length-1;d=a[0]}d===-1&&(d=0);for(let b=d;b<u+1;b++)a.includes(b)||c.push(e[b]);let f=Array.from(s.values()),m=e.slice(0,d),g=e.slice(u+1),h=r==="left"?[...m,...f,...c,...g]:[...m,...c,...f,...g];return Do(h,s),h};function JI(e,t,r,o){let i=Re(Oe(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),a={regularElements:[],frameChildren:new Map},s=new Set;for(let u of e)i.has(u.id)&&He(u)&&s.add(u.id);for(let u of e)if(i.has(u.id))if(He(u)||u.frameId&&s.has(u.frameId))a.regularElements.push(u);else if(!u.frameId)a.regularElements.push(u);else{let f=a.frameChildren.get(u.frameId)||[];f.push(u),a.frameChildren.set(u.frameId,f)}let c=e,d=Array.from(a.frameChildren.entries());for(let[u,f]of d)c=o(e,t,r,u,f);return o(c,t,r,null,a.regularElements)}var QI=(e,t)=>qI(e,t,"left"),e_=(e,t)=>qI(e,t,"right"),t_=(e,t)=>JI(e,t,"left",jI),r_=(e,t)=>JI(e,t,"right",jI);var om=w(M(),1),$v=re({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:Ux,trackEvent:{category:"element"},perform:(e,t)=>({elements:QI(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,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendBackward")} \u2014 ${X("CtrlOrCmd+[")}`,children:Ux})}),Hv=re({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:Hx,trackEvent:{category:"element"},perform:(e,t)=>({elements:e_(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,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.bringForward")} \u2014 ${X("CtrlOrCmd+]")}`,children:Hx})}),Uv=re({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:Wx,trackEvent:{category:"element"},perform:(e,t)=>({elements:t_(e,t),appState:t,storeAction:W.CAPTURE}),keyTest:e=>Tn?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,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>e(null),title:`${E("labels.sendToBack")} \u2014 ${Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")}`,children:Wx})}),Gv=re({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:Gx,trackEvent:{category:"element"},perform:(e,t)=>({elements:r_(e,t),appState:t,storeAction:W.CAPTURE}),keyTest:e=>Tn?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,om.jsx)("button",{type:"button",className:"zIndexButton",onClick:r=>e(null),title:`${E("labels.bringToFront")} \u2014 ${Tn?X("CtrlOrCmd+Alt+]"):X("CtrlOrCmd+Shift+]")}`,children:Gx})});v();var Wv=re({name:"selectAll",label:"labels.selectAll",icon:YT,trackEvent:{category:"canvas"},viewMode:!1,perform:(e,t,r,o)=>{if(t.editingLinearElement)return!1;let i=js(e.filter(a=>!a.isDeleted&&!(he(a)&&a.containerId)&&!a.locked)).reduce((a,s)=>(a[s.id]=!0,a),{});return{appState:{...t,...Rr({editingGroupId:null,selectedElementIds:i},We(e),t,o),selectedLinearElement:Object.keys(i).length===1&&Qe(e[0])?new Le(e[0]):null},storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.A});v();v();var aO=e=>{let t=e.slice(),r=new Set,o=a=>{let s=a[0]?.groupIds?.join(""),c=[a[0]],d=[];for(let u of a.slice(1))u.groupIds?.join("")===s?c.push(u):d.push(u);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(u=>{let f=u?.groupIds?.some(m=>m===c);return f&&i.set(u.id,!0),f});for(let u of o(d))r.add(u)}else r.add(a)}),r.size!==e.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),e):[...r]},lO=e=>{let t=a2(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]},o_=e=>lO(aO(e));var n_=w(M(),1),Kv=re({name:"duplicateSelection",label:"labels.duplicateSelection",icon:Rd,trackEvent:{category:"element"},perform:(e,t,r,o)=>{if(t.editingLinearElement){let i=Le.duplicateSelectedPoints(t,o.scene);return i?{elements:e,appState:i.appState,storeAction:W.CAPTURE}:!1}return{...sO(e,t),storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.D,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,n_.jsx)(Ie,{type:"button",icon:Rd,title:`${E("labels.duplicateSelection")} \u2014 ${X("CtrlOrCmd+D")}`,"aria-label":E("labels.duplicateSelection"),onClick:()=>r(null),visible:gt(We(e),t)})}),sO=(e,t)=>{let r=o_(e),o=new Map,i=[],a=[],s=new Map,c=new Map,d=I=>{let C=Yp(t.editingGroupId,o,I,{x:I.x+yi/2,y:I.y+yi/2});return c.set(C.id,C),s.set(I.id,C.id),a.push(I),i.push(C),C},u=Re(Oe(r,t,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f=new Map,m=I=>{for(let C of I)f.set(C.id,!0);return I},g=[],h=-1;for(;++h<r.length;){let I=r[h];if(f.get(I.id))continue;let C=je(I,Re(e)),O=He(I);if(u.get(I.id)){if(I.groupIds.length||C||O){let z=E2(t,I);if(z){let L=Kt(r,z).flatMap(F=>He(F)?[...Ea(e,F.id),F]:[F]);g.push(...m([...L,...L.map(F=>d(F))]));continue}if(C){g.push(...m([I,C,d(I),d(C)]));continue}if(O){let L=Ea(r,I.id);g.push(...m([...L,I,...L.map(F=>d(F)),d(I)]));continue}}(!I.frameId||!u.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=Do(b.reverse(),Re(i));pf(g,a,s),Qp(g,a,s),nf(T,a,s);let k=js(i);return{elements:T,appState:{...t,...Rr({editingGroupId:t.editingGroupId,selectedElementIds:k.reduce((I,C)=>(Ir(C)||(I[C.id]=!0),I),{})},We(T),t,null)}}};v();var sn=w(j(),1);v();var cO=new Set(["command_palette"]),ze=(e,t,r,o)=>{try{if(typeof window>"u"||A.VITE_WORKER_ID||A.VITE_APP_ENABLE_TRACKING!=="true"||!cO.has(e)||A.DEV)return;A.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 i_=w(j(),1);var a_=w(M(),1),Ff=(0,i_.forwardRef)((e,t)=>{let{title:r,className:o,testId:i,active:a,standalone:s,icon:c,onClick:d}=e;return(0,a_.jsx)("button",{type:"button",ref:t,title:r,"data-testid":i,className:q(o,{standalone:s,active:a}),onClick:d,children:c},r)});var tc=w(M(),1),nn=e=>(0,tc.jsx)("div",{className:"buttonList",children:e.options.map(t=>e.type==="button"?(0,tc.jsx)(Ff,{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,tc.jsxs)("label",{className:q({active:e.value===t.value}),title:t.text,children:[(0,tc.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 Bf=w(M(),1),l_=({onChange:e,type:t,activeColor:r,topPicks:o})=>{let i;return t==="elementStroke"&&(i=Vu),t==="elementBackground"&&(i=Xu),t==="canvasBackground"&&(i=Zu),o&&(i=o),i?(0,Bf.jsx)("div",{className:"color-picker__top-picks",children:i.map(a=>(0,Bf.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,Bf.jsx)("div",{className:"color-picker__button-outline"})},a))}):(console.error("Invalid type for TopPicks"),null)};v();var s_=w(M(),1),zf=()=>(0,s_.jsx)("div",{style:{width:1,height:"1rem",backgroundColor:"var(--default-border-color)",margin:"0 auto"}});v();var Ia=w(j(),1);v();var $f=w(j(),1);v();var Ca=({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},nm=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),Yv=({color:e,palette:t})=>!Object.values(t).flat().includes(e),d_=(e,t,r)=>{let o={elementBackground:"backgroundColor",elementStroke:"strokeColor"},i=e.filter(s=>{if(s.isDeleted)return!1;let c=s[o[t]];return Yv({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,vS)},an=St(null),c_=(e,t,r)=>(e*299+t*587+r*114)/1e3>=160?"black":"white",m_=(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]),u=parseInt(s[2]);return c_(c,d,u)}}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 c_(r,o,i)};v();var u_=w(M(),1),dO=({color:e,keyLabel:t,isCustomColor:r=!1,isShade:o=!1})=>(0,u_.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:m_(e,r)},children:[o&&"\u21E7",t]}),rc=dO;var Di=w(M(),1),p_=({hex:e,onChange:t,palette:r})=>{let o=Ca({color:e||"transparent",palette:r}),[i,a]=Ve(an),s=(0,$f.useRef)(null);if((0,$f.useEffect)(()=>{s.current&&i==="shades"&&s.current.focus()},[o,i]),o){let{colorName:c,shade:d}=o,u=r[c];if(Array.isArray(u))return(0,Di.jsx)("div",{className:"color-picker-content--default shades",children:u.map((f,m)=>(0,Di.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,Di.jsx)("div",{className:"color-picker__button-outline"}),(0,Di.jsx)(rc,{color:f,keyLabel:m+1,isShade:!0})]},m))})}return(0,Di.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,Di.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,Di.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 Hf=w(j(),1);var oc=w(M(),1),mO=({palette:e,color:t,onChange:r,label:o,activeShade:i})=>{let a=Ca({color:t||"transparent",palette:e}),[s,c]=Ve(an),d=(0,Hf.useRef)(null);return(0,Hf.useEffect)(()=>{d.current&&s==="baseColors"&&d.current.focus()},[a?.colorName,s]),(0,oc.jsx)("div",{className:"color-picker-content--default",children:Object.entries(e).map(([u,f],m)=>{let g=(Array.isArray(f)?f[i]:f)||"transparent",h=nm[m],b=E(`colors.${u.replace(/\d+/,"")}`,null,"");return(0,oc.jsxs)("button",{ref:a?.colorName===u?d:void 0,tabIndex:-1,type:"button",className:q("color-picker__button color-picker__button--large",{active:a?.colorName===u,"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-${u}`,children:[(0,oc.jsx)("div",{className:"color-picker__button-outline"}),(0,oc.jsx)(rc,{color:g,keyLabel:h})]},u)})})},f_=mO;v();var Uf=w(j(),1);var nc=w(M(),1),g_=({colors:e,color:t,onChange:r,label:o})=>{let[i,a]=Ve(an),s=(0,Uf.useRef)(null);return(0,Uf.useEffect)(()=>{s.current&&s.current.focus()},[t,i]),(0,nc.jsx)("div",{className:"color-picker-content--default",children:e.map((c,d)=>(0,nc.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,nc.jsx)("div",{className:"color-picker__button-outline"}),(0,nc.jsx)(rc,{color:c,keyLabel:d+1,isCustomColor:!0})]},d))})};v();var Vv=(e,t,r)=>{let o=Math.ceil(r/nl);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+nl;return i>=r?t%nl:i}case"ArrowUp":{let i=t-nl,a=i<0?nl*o+i:i;return a>=r?void 0:a}}},uO=({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(nm.includes(e.key)){let c=nm.indexOf(e.key),d=Object.keys(o)[c],u=o[d],f=Array.isArray(u)?u[s]:u;return r(f),a("baseColors"),!0}return!1},h_=({event:e,activeColorPickerSection:t,palette:r,color:o,onChange:i,customColors:a,setActiveColorPickerSection:s,updateData:c,activeShade:d,onEyeDropperToggle:u,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 u(!0),!0;if(e.key===R.I)return u(),!0;let m=Ca({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,[C,O])=>(O&&I.push(C),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(([C,O])=>Array.isArray(O)?O.includes(o):O===o?C:null)||i(xi.black)),e.preventDefault(),e.stopPropagation(),!0}if(uO({e,colorObj:m,onChange:i,palette:r,customColors:a,setActiveColorPickerSection:s,activeShade:d}))return!0;if(t==="shades"&&m){let{shade:g}=m,h=Vv(e.key,g,nl);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=Vv(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=Vv(e.key,g,a.length);if(h!==void 0){let b=a[h];return i(b),!0}}return!1};v();var b_=w(M(),1),pO=({children:e})=>(0,b_.jsx)("div",{className:"color-picker__heading",children:e}),ic=pO;var No=w(M(),1),x_=({color:e,onChange:t,label:r,type:o,elements:i,palette:a,updateData:s,children:c,onEyeDropperToggle:d,onEscape:u})=>{let[f]=Ia.default.useState(()=>o==="canvasBackground"?[]:d_(i,o,a)),[m,g]=Ve(an),h=Ca({color:e,palette:a});(0,Ia.useEffect)(()=>{if(!m){let k=Yv({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,Ia.useState)(h?.shade??(o==="elementBackground"?ES:yS));(0,Ia.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=Ia.default.useRef(null);return(0,No.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":E("labels.colorPicker"),children:(0,No.jsxs)("div",{ref:T,onKeyDown:k=>{h_({event:k,activeColorPickerSection:m,palette:a,color:e,onChange:t,onEyeDropperToggle:d,customColors:f,setActiveColorPickerSection:g,updateData:s,activeShade:b,onEscape:u})&&(k.preventDefault(),k.stopPropagation())},className:"color-picker-content properties-content",tabIndex:-1,children:[!!f.length&&(0,No.jsxs)("div",{children:[(0,No.jsx)(ic,{children:E("colorPicker.mostUsedCustomColors")}),(0,No.jsx)(g_,{colors:f,color:e,label:E("colorPicker.mostUsedCustomColors"),onChange:t})]}),(0,No.jsxs)("div",{children:[(0,No.jsx)(ic,{children:E("colorPicker.colors")}),(0,No.jsx)(f_,{color:e,label:r,palette:a,onChange:t,activeShade:b})]}),(0,No.jsxs)("div",{children:[(0,No.jsx)(ic,{children:E("colorPicker.shades")}),(0,No.jsx)(p_,{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 Xe=w(j());v();function cr(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}v();var v_=w(j());function fO(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Xv(...e){return t=>e.forEach(r=>fO(r,t))}function Nr(...e){return(0,v_.useCallback)(Xv(...e),e)}v();var Rn=w(j());function qn(e,t=[]){let r=[];function o(a,s){let c=(0,Rn.createContext)(s),d=r.length;r=[...r,s];function u(m){let{scope:g,children:h,...b}=m,y=g?.[e][d]||c,T=(0,Rn.useMemo)(()=>b,Object.values(b));return(0,Rn.createElement)(y.Provider,{value:T},h)}function f(m,g){let h=g?.[e][d]||c,b=(0,Rn.useContext)(h);if(b)return b;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${a}\``)}return u.displayName=a+"Provider",[u,f]}let i=()=>{let a=r.map(s=>(0,Rn.createContext)(s));return function(c){let d=c?.[e]||a;return(0,Rn.useMemo)(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return i.scopeName=e,[o,gO(i,...t)]}function gO(...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:u})=>{let m=d(a)[`__scope${u}`];return{...c,...m}},{});return(0,Rn.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}v();var nr=w(j());v();var ac=w(j()),y_=w(Zn());v();var Yt=w(j());var _a=(0,Yt.forwardRef)((e,t)=>{let{children:r,...o}=e,i=Yt.Children.toArray(r),a=i.find(bO);if(a){let s=a.props.children,c=i.map(d=>d===a?Yt.Children.count(s)>1?Yt.Children.only(null):(0,Yt.isValidElement)(s)?s.props.children:null:d);return(0,Yt.createElement)(Zv,Ye({},o,{ref:t}),(0,Yt.isValidElement)(s)?(0,Yt.cloneElement)(s,void 0,c):null)}return(0,Yt.createElement)(Zv,Ye({},o,{ref:t}),r)});_a.displayName="Slot";var Zv=(0,Yt.forwardRef)((e,t)=>{let{children:r,...o}=e;return(0,Yt.isValidElement)(r)?(0,Yt.cloneElement)(r,{...xO(o,r.props),ref:Xv(t,r.ref)}):Yt.Children.count(r)>1?Yt.Children.only(null):null});Zv.displayName="SlotClone";var hO=({children:e})=>(0,Yt.createElement)(Yt.Fragment,null,e);function bO(e){return(0,Yt.isValidElement)(e)&&e.type===hO}function xO(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 vO=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"],jt=vO.reduce((e,t)=>{let r=(0,ac.forwardRef)((o,i)=>{let{asChild:a,...s}=o,c=a?_a:t;return(0,ac.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,ac.createElement)(c,Ye({},s,{ref:i}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function E_(e,t){e&&(0,y_.flushSync)(()=>e.dispatchEvent(t))}v();var lc=w(j());function io(e){let t=(0,lc.useRef)(e);return(0,lc.useEffect)(()=>{t.current=e}),(0,lc.useMemo)(()=>(...r)=>{var o;return(o=t.current)===null||o===void 0?void 0:o.call(t,...r)},[])}v();var w_=w(j());function S_(e,t=globalThis?.document){let r=io(e);(0,w_.useEffect)(()=>{let o=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)},[r,t])}var qv="dismissableLayer.update",yO="dismissableLayer.pointerDownOutside",EO="dismissableLayer.focusOutside",T_,wO=(0,nr.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I_=(0,nr.forwardRef)((e,t)=>{var r;let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:c,onDismiss:d,...u}=e,f=(0,nr.useContext)(wO),[m,g]=(0,nr.useState)(null),h=(r=m?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,b]=(0,nr.useState)({}),y=Nr(t,D=>g(D)),T=Array.from(f.layers),[k]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),I=T.indexOf(k),C=m?T.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,z=C>=I,L=SO(D=>{let V=D.target,U=[...f.branches].some(Q=>Q.contains(V));!z||U||(a?.(D),c?.(D),D.defaultPrevented||d?.())},h),F=TO(D=>{let V=D.target;[...f.branches].some(Q=>Q.contains(V))||(s?.(D),c?.(D),D.defaultPrevented||d?.())},h);return S_(D=>{C===f.layers.size-1&&(i?.(D),!D.defaultPrevented&&d&&(D.preventDefault(),d()))},h),(0,nr.useEffect)(()=>{if(m)return o&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(T_=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),C_(),()=>{o&&f.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=T_)}},[m,h,o,f]),(0,nr.useEffect)(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),C_())},[m,f]),(0,nr.useEffect)(()=>{let D=()=>b({});return document.addEventListener(qv,D),()=>document.removeEventListener(qv,D)},[]),(0,nr.createElement)(jt.div,Ye({},u,{ref:y,style:{pointerEvents:O?z?"auto":"none":void 0,...e.style},onFocusCapture:cr(e.onFocusCapture,F.onFocusCapture),onBlurCapture:cr(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:cr(e.onPointerDownCapture,L.onPointerDownCapture)}))});function SO(e,t=globalThis?.document){let r=io(e),o=(0,nr.useRef)(!1),i=(0,nr.useRef)(()=>{});return(0,nr.useEffect)(()=>{let a=c=>{if(c.target&&!o.current){let u=function(){__(yO,r,d,{discrete:!0})},d={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=u,t.addEventListener("click",i.current,{once:!0})):u()}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 TO(e,t=globalThis?.document){let r=io(e),o=(0,nr.useRef)(!1);return(0,nr.useEffect)(()=>{let i=a=>{a.target&&!o.current&&__(EO,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 C_(){let e=new CustomEvent(qv);document.dispatchEvent(e)}function __(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?E_(i,a):i.dispatchEvent(a)}v();var k_=w(j()),jv=0;function P_(){(0,k_.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:A_()),document.body.insertAdjacentElement("beforeend",(t=r[1])!==null&&t!==void 0?t:A_()),jv++,()=>{jv===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),jv--}},[])}function A_(){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 wo=w(j());var Jv="focusScope.autoFocusOnMount",Qv="focusScope.autoFocusOnUnmount",M_={bubbles:!1,cancelable:!0};var N_=(0,wo.forwardRef)((e,t)=>{let{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=e,[c,d]=(0,wo.useState)(null),u=io(i),f=io(a),m=(0,wo.useRef)(null),g=Nr(t,y=>d(y)),h=(0,wo.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,wo.useEffect)(()=>{if(o){let y=function(k){if(h.paused||!c)return;let I=k.target;c.contains(I)?m.current=I:kl(m.current,{select:!0})},T=function(k){h.paused||!c||c.contains(k.relatedTarget)||kl(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,wo.useEffect)(()=>{if(c){R_.add(h);let y=document.activeElement;if(!c.contains(y)){let k=new CustomEvent(Jv,M_);c.addEventListener(Jv,u),c.dispatchEvent(k),k.defaultPrevented||(CO(PO(O_(c)),{select:!0}),document.activeElement===y&&kl(c))}return()=>{c.removeEventListener(Jv,u),setTimeout(()=>{let k=new CustomEvent(Qv,M_);c.addEventListener(Qv,f),c.dispatchEvent(k),k.defaultPrevented||kl(y??document.body,{select:!0}),c.removeEventListener(Qv,f),R_.remove(h)},0)}}},[c,u,f,h]);let b=(0,wo.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,[C,O]=IO(I);C&&O?!y.shiftKey&&k===O?(y.preventDefault(),r&&kl(C,{select:!0})):y.shiftKey&&k===C&&(y.preventDefault(),r&&kl(O,{select:!0})):k===I&&y.preventDefault()}},[r,o,h.paused]);return(0,wo.createElement)(jt.div,Ye({tabIndex:-1},s,{ref:g,onKeyDown:b}))});function CO(e,{select:t=!1}={}){let r=document.activeElement;for(let o of e)if(kl(o,{select:t}),document.activeElement!==r)return}function IO(e){let t=O_(e),r=L_(t,e),o=L_(t.reverse(),e);return[r,o]}function O_(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 L_(e,t){for(let r of e)if(!_O(r,{upTo:t}))return r}function _O(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 AO(e){return e instanceof HTMLInputElement&&"select"in e}function kl(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&AO(e)&&t&&e.select()}}var R_=kO();function kO(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=D_(e,t),e.unshift(t)},remove(t){var r;e=D_(e,t),(r=e[0])===null||r===void 0||r.resume()}}}function D_(e,t){let r=[...e],o=r.indexOf(t);return o!==-1&&r.splice(o,1),r}function PO(e){return e.filter(t=>t.tagName!=="A")}v();var Gf=w(j());v();var F_=w(j()),ln=globalThis?.document?F_.useLayoutEffect:()=>{};var MO=Gf.useId||(()=>{}),LO=0;function sc(e){let[t,r]=Gf.useState(MO());return ln(()=>{e||r(o=>o??String(LO++))},[e]),e||(t?`radix-${t}`:"")}v();var Lt=w(j());v();v();v();function Ml(e){return e.split("-")[0]}function am(e){return e.split("-")[1]}function dc(e){return["top","bottom"].includes(Ml(e))?"x":"y"}function ty(e){return e==="y"?"height":"width"}function B_(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=dc(t),d=ty(c),u=o[d]/2-i[d]/2,f=c==="x",m;switch(Ml(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(am(t)){case"start":m[c]-=u*(r&&f?-1:1);break;case"end":m[c]+=u*(r&&f?-1:1)}return m}var U_=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:u,y:f}=B_(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:C,reset:O}=await T({x:u,y:f,initialPlacement:o,placement:m,strategy:i,middlewareData:g,rects:d,platform:s,elements:{reference:e,floating:t}});u=k??u,f=I??f,g={...g,[y]:{...g[y],...C}},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:u,y:f}=B_(d,m,c)),b=-1)}return{x:u,y:f,placement:m,strategy:i,middlewareData:g}};function G_(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 im(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function cc(e,t){var r;t===void 0&&(t={});let{x:o,y:i,platform:a,rects:s,elements:c,strategy:d}=e,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:m="floating",altBoundary:g=!1,padding:h=0}=t,b=G_(h),y=c[g?m==="floating"?"reference":"floating":m],T=im(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:u,rootBoundary:f,strategy:d})),k=im(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 RO=Math.min,Pl=Math.max;function ey(e,t,r){return Pl(e,RO(t,r))}var Kf=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 u=G_(o),f={x:i,y:a},m=dc(s),g=am(s),h=ty(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],C=await(d.getOffsetParent==null?void 0:d.getOffsetParent(r)),O=C?m==="y"?C.clientHeight||0:C.clientWidth||0:0;O===0&&(O=c.floating[h]);let z=k/2-I/2,L=u[y],F=O-b[h]-u[T],D=O/2-b[h]/2+z,V=ey(L,D,F),U=(g==="start"?u[y]:u[T])>0&&D!==V&&c.reference[h]<=c.floating[h];return{[m]:f[m]-(U?D<L?L-D:F-D:0),data:{[m]:V,centerOffset:D-V}}}}),DO={left:"right",right:"left",bottom:"top",top:"bottom"};function Wf(e){return e.replace(/left|right|bottom|top/g,t=>DO[t])}function NO(e,t,r){r===void 0&&(r=!1);let o=am(e),i=dc(e),a=ty(i),s=i==="x"?o===(r?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(s=Wf(s)),{main:s,cross:Wf(s)}}var OO={start:"end",end:"start"};function z_(e){return e.replace(/start|end/g,t=>OO[t])}var W_=["top","right","bottom","left"],LK=W_.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);var ry=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:u=!0,crossAxis:f=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",flipAlignment:h=!0,...b}=e,y=Ml(o),T=m||(y===s||!h?[Wf(s)]:function(D){let V=Wf(D);return[z_(D),V,z_(V)]}(s)),k=[s,...T],I=await cc(t,b),C=[],O=((r=i.flip)==null?void 0:r.overflows)||[];if(u&&C.push(I[y]),f){let{main:D,cross:V}=NO(o,a,await(c.isRTL==null?void 0:c.isRTL(d.floating)));C.push(I[D],I[V])}if(O=[...O,{placement:o,overflows:C}],!C.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 U="bottom";switch(g){case"bestFit":{var F;let Q=(F=O.map(me=>[me,me.overflows.filter(K=>K>0).reduce((K,se)=>K+se,0)]).sort((me,K)=>me[1]-K[1])[0])==null?void 0:F[0].placement;Q&&(U=Q);break}case"initialPlacement":U=s}if(o!==U)return{reset:{placement:U}}}return{}}}};function $_(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function H_(e){return W_.some(t=>e[t]>=0)}var oy=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=$_(await cc(o,{...r,elementContext:"reference"}),i.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:H_(a)}}}case"escaped":{let a=$_(await cc(o,{...r,altBoundary:!0}),i.floating);return{data:{escapedOffsets:a,escaped:H_(a)}}}default:return{}}}}},ny=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:u}=a,f=await(d.isRTL==null?void 0:d.isRTL(u.floating)),m=Ml(c),g=am(c),h=dc(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:C}=typeof T=="number"?{mainAxis:T,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...T};return g&&typeof C=="number"&&(I=g==="end"?-1*C:C),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 K_(e){return e==="x"?"y":"x"}var iy=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,u={x:r,y:o},f=await cc(t,d),m=dc(Ml(i)),g=K_(m),h=u[m],b=u[g];if(a){let T=m==="y"?"bottom":"right";h=ey(h+f[m==="y"?"top":"left"],h,h-f[T])}if(s){let T=g==="y"?"bottom":"right";b=ey(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}}}}},ay=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:u=!0}=e,f={x:r,y:o},m=dc(i),g=K_(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(u){var k,I,C,O;let z=m==="y"?"width":"height",L=["top","left"].includes(Ml(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:(C=(O=s.offset)==null?void 0:O[g])!=null?C:0)-(L?T.crossAxis:0);b<F?b=F:b>D&&(b=D)}return{[m]:h,[g]:b}}}},ly=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 cc(t,c),u=Ml(r),f=am(r),m,g;u==="top"||u==="bottom"?(m=u,g=f===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?"start":"end")?"left":"right"):(g=u,m=f==="end"?"top":"bottom");let h=Pl(d.left,0),b=Pl(d.right,0),y=Pl(d.top,0),T=Pl(d.bottom,0),k={availableHeight:o.floating.height-(["left","right"].includes(r)?2*(y!==0||T!==0?y+T:Pl(d.top,d.bottom)):d[m]),availableWidth:o.floating.width-(["top","bottom"].includes(r)?2*(h!==0||b!==0?h+b:Pl(d.left,d.right)):d[g])},I=await i.getDimensions(a.floating);s?.({...t,...k});let C=await i.getDimensions(a.floating);return I.width!==C.width||I.height!==C.height?{reset:{rects:!0}}:{}}}};function j_(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Fi(e){if(e==null)return window;if(!j_(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function sm(e){return Fi(e).getComputedStyle(e)}function Ni(e){return j_(e)?"":e?(e.nodeName||"").toLowerCase():""}function J_(){let e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(t=>t.brand+"/"+t.version).join(" "):navigator.userAgent}function jn(e){return e instanceof Fi(e).HTMLElement}function ka(e){return e instanceof Fi(e).Element}function cy(e){return typeof ShadowRoot>"u"?!1:e instanceof Fi(e).ShadowRoot||e instanceof ShadowRoot}function Xf(e){let{overflow:t,overflowX:r,overflowY:o}=sm(e);return/auto|scroll|overlay|hidden/.test(t+o+r)}function FO(e){return["table","td","th"].includes(Ni(e))}function Y_(e){let t=/firefox/i.test(J_()),r=sm(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 Q_(){return!/^((?!chrome|android).)*safari/i.test(J_())}var V_=Math.min,lm=Math.max,Yf=Math.round;function Oi(e,t,r){var o,i,a,s;t===void 0&&(t=!1),r===void 0&&(r=!1);let c=e.getBoundingClientRect(),d=1,u=1;t&&jn(e)&&(d=e.offsetWidth>0&&Yf(c.width)/e.offsetWidth||1,u=e.offsetHeight>0&&Yf(c.height)/e.offsetHeight||1);let f=ka(e)?Fi(e):window,m=!Q_()&&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))/u,b=c.width/d,y=c.height/u;return{width:b,height:y,top:h,right:g+b,bottom:h+y,left:g,x:g,y:h}}function Aa(e){return(t=e,(t instanceof Fi(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function Zf(e){return ka(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function eA(e){return Oi(Aa(e)).left+Zf(e).scrollLeft}function BO(e,t,r){let o=jn(t),i=Aa(t),a=Oi(e,o&&function(d){let u=Oi(d);return Yf(u.width)!==d.offsetWidth||Yf(u.height)!==d.offsetHeight}(t),r==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(o||!o&&r!=="fixed")if((Ni(t)!=="body"||Xf(i))&&(s=Zf(t)),jn(t)){let d=Oi(t,!0);c.x=d.x+t.clientLeft,c.y=d.y+t.clientTop}else i&&(c.x=eA(i));return{x:a.left+s.scrollLeft-c.x,y:a.top+s.scrollTop-c.y,width:a.width,height:a.height}}function tA(e){return Ni(e)==="html"?e:e.assignedSlot||e.parentNode||(cy(e)?e.host:null)||Aa(e)}function X_(e){return jn(e)&&getComputedStyle(e).position!=="fixed"?e.offsetParent:null}function sy(e){let t=Fi(e),r=X_(e);for(;r&&FO(r)&&getComputedStyle(r).position==="static";)r=X_(r);return r&&(Ni(r)==="html"||Ni(r)==="body"&&getComputedStyle(r).position==="static"&&!Y_(r))?t:r||function(o){let i=tA(o);for(cy(i)&&(i=i.host);jn(i)&&!["html","body"].includes(Ni(i));){if(Y_(i))return i;i=i.parentNode}return null}(e)||t}function Z_(e){if(jn(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=Oi(e);return{width:t.width,height:t.height}}function rA(e){let t=tA(e);return["html","body","#document"].includes(Ni(t))?e.ownerDocument.body:jn(t)&&Xf(t)?t:rA(t)}function Vf(e,t){var r;t===void 0&&(t=[]);let o=rA(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=Fi(o),s=i?[a].concat(a.visualViewport||[],Xf(o)?o:[]):o,c=t.concat(s);return i?c:c.concat(Vf(s))}function q_(e,t,r){return t==="viewport"?im(function(o,i){let a=Fi(o),s=Aa(o),c=a.visualViewport,d=s.clientWidth,u=s.clientHeight,f=0,m=0;if(c){d=c.width,u=c.height;let g=Q_();(g||!g&&i==="fixed")&&(f=c.offsetLeft,m=c.offsetTop)}return{width:d,height:u,x:f,y:m}}(e,r)):ka(t)?function(o,i){let a=Oi(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):im(function(o){var i;let a=Aa(o),s=Zf(o),c=(i=o.ownerDocument)==null?void 0:i.body,d=lm(a.scrollWidth,a.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),u=lm(a.scrollHeight,a.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),f=-s.scrollLeft+eA(o),m=-s.scrollTop;return sm(c||a).direction==="rtl"&&(f+=lm(a.clientWidth,c?c.clientWidth:0)-d),{width:d,height:u,x:f,y:m}}(Aa(e)))}function zO(e){let t=Vf(e),r=["absolute","fixed"].includes(sm(e).position)&&jn(e)?sy(e):e;return ka(r)?t.filter(o=>ka(o)&&function(i,a){let s=a.getRootNode==null?void 0:a.getRootNode();if(i.contains(a))return!0;if(s&&cy(s)){let c=a;do{if(c&&i===c)return!0;c=c.parentNode||c.host}while(c)}return!1}(o,r)&&Ni(o)!=="body"):[]}var $O={getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:o,strategy:i}=e,a=[...r==="clippingAncestors"?zO(t):[].concat(r),o],s=a[0],c=a.reduce((d,u)=>{let f=q_(t,u,i);return d.top=lm(f.top,d.top),d.right=V_(f.right,d.right),d.bottom=V_(f.bottom,d.bottom),d.left=lm(f.left,d.left),d},q_(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=jn(r),a=Aa(r);if(r===a)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((i||!i&&o!=="fixed")&&((Ni(r)!=="body"||Xf(a))&&(s=Zf(r)),jn(r))){let d=Oi(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:ka,getDimensions:Z_,getOffsetParent:sy,getDocumentElement:Aa,getElementRects:e=>{let{reference:t,floating:r,strategy:o}=e;return{reference:BO(t,sy(r),o),floating:{...Z_(r),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>sm(e).direction==="rtl"};function oA(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,u=a&&!c,f=d||u?[...ka(e)?Vf(e):[],...Vf(t)]:[];f.forEach(b=>{d&&b.addEventListener("scroll",r,{passive:!0}),u&&b.addEventListener("resize",r)});let m,g=null;if(s){let b=!0;g=new ResizeObserver(()=>{b||r(),b=!1}),ka(e)&&!c&&g.observe(e),g.observe(t)}let h=c?Oi(e):null;return c&&function b(){let y=Oi(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),u&&y.removeEventListener("resize",r)}),(b=g)==null||b.disconnect(),g=null,c&&cancelAnimationFrame(m)}}var nA=(e,t,r)=>U_(e,t,{platform:$O,...r});var Or=w(j()),qf=w(j()),iA=w(Zn()),dy=typeof document<"u"?qf.useLayoutEffect:qf.useEffect;function my(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(!my(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)&&!my(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function HO(e){let t=Or.useRef(e);return dy(()=>{t.current=e}),t}function aA(e){let{middleware:t,placement:r="bottom",strategy:o="absolute",whileElementsMounted:i}=e===void 0?{}:e,a=Or.useRef(null),s=Or.useRef(null),c=HO(i),d=Or.useRef(null),[u,f]=Or.useState({x:null,y:null,strategy:o,placement:r,middlewareData:{}}),[m,g]=Or.useState(t);my(m?.map(C=>{let{options:O}=C;return O}),t?.map(C=>{let{options:O}=C;return O}))||g(t);let h=Or.useCallback(()=>{!a.current||!s.current||nA(a.current,s.current,{middleware:m,placement:r,strategy:o}).then(C=>{b.current&&iA.flushSync(()=>{f(C)})})},[m,r,o]);dy(()=>{b.current&&h()},[h]);let b=Or.useRef(!1);dy(()=>(b.current=!0,()=>{b.current=!1}),[]);let y=Or.useCallback(()=>{if(typeof d.current=="function"&&(d.current(),d.current=null),a.current&&s.current)if(c.current){let C=c.current(a.current,s.current,h);d.current=C}else h()},[h,c]),T=Or.useCallback(C=>{a.current=C,y()},[y]),k=Or.useCallback(C=>{s.current=C,y()},[y]),I=Or.useMemo(()=>({reference:a,floating:s}),[]);return Or.useMemo(()=>({...u,update:h,refs:I,reference:T,floating:k}),[u,h,I,T,k])}var lA=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?Kf({element:t.current,padding:r}).fn(i):{}:t?Kf({element:t,padding:r}).fn(i):{}}}};v();var cm=w(j());var UO=(0,cm.forwardRef)((e,t)=>{let{children:r,width:o=10,height:i=5,...a}=e;return(0,cm.createElement)(jt.svg,Ye({},a,{ref:t,width:o,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),e.asChild?r:(0,cm.createElement)("polygon",{points:"0,0 30,0 15,10"}))}),sA=UO;v();var cA=w(j());function dA(e){let[t,r]=(0,cA.useState)(void 0);return ln(()=>{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,u=Array.isArray(d)?d[0]:d;s=u.inlineSize,c=u.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 mA="Popper",[uy,py]=qn(mA),[GO,uA]=uy(mA),WO=e=>{let{__scopePopper:t,children:r}=e,[o,i]=(0,Lt.useState)(null);return(0,Lt.createElement)(GO,{scope:t,anchor:o,onAnchorChange:i},r)},KO="PopperAnchor",YO=(0,Lt.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:o,...i}=e,a=uA(KO,r),s=(0,Lt.useRef)(null),c=Nr(t,s);return(0,Lt.useEffect)(()=>{a.onAnchorChange(o?.current||s.current)}),o?null:(0,Lt.createElement)(jt.div,Ye({},i,{ref:c}))}),jf="PopperContent",[VO,XO]=uy(jf),[ZO,qO]=uy(jf,{hasParent:!1,positionUpdateFns:new Set}),jO=(0,Lt.forwardRef)((e,t)=>{var r,o,i,a,s,c,d,u;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:C=!1,avoidCollisions:O=!0,onPlaced:z,...L}=e,F=uA(jf,f),[D,V]=(0,Lt.useState)(null),U=Nr(t,qi=>V(qi)),[Q,me]=(0,Lt.useState)(null),K=dA(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,G={padding:nt,boundary:Ee.filter(r9),altBoundary:ue},{reference:Y,floating:oe,strategy:ie,x:le,y:de,placement:pe,middlewareData:ye,update:Ct}=aA({strategy:"fixed",placement:_e,whileElementsMounted:oA,middleware:[o9(),ny({mainAxis:g+be,alignmentAxis:b}),O?iy({mainAxis:!0,crossAxis:!1,limiter:I==="partial"?ay():void 0,...G}):void 0,Q?lA({element:Q,padding:y}):void 0,O?ry({...G}):void 0,ly({...G,apply:({elements:qi,availableWidth:Xa,availableHeight:rb})=>{qi.floating.style.setProperty("--radix-popper-available-width",`${Xa}px`),qi.floating.style.setProperty("--radix-popper-available-height",`${rb}px`)}}),n9({arrowWidth:se,arrowHeight:be}),C?oy({strategy:"referenceHidden"}):void 0].filter(t9)});ln(()=>{Y(F.anchor)},[Y,F.anchor]);let vt=le!==null&&de!==null,[Ft,Et]=pA(pe),er=io(z);ln(()=>{vt&&er?.()},[vt,er]);let Jr=(i=ye.arrow)===null||i===void 0?void 0:i.x,si=(a=ye.arrow)===null||a===void 0?void 0:a.y,ar=((s=ye.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[nu,tb]=(0,Lt.useState)();ln(()=>{D&&tb(window.getComputedStyle(D).zIndex)},[D]);let{hasParent:Ya,positionUpdateFns:wr}=qO(jf,f),vn=!Ya;(0,Lt.useLayoutEffect)(()=>{if(!vn)return wr.add(Ct),()=>{wr.delete(Ct)}},[vn,wr,Ct]),ln(()=>{vn&&vt&&Array.from(wr).reverse().forEach(qi=>requestAnimationFrame(qi))},[vn,vt,wr]);let Va={"data-side":Ft,"data-align":Et,...L,ref:U,style:{...L.style,animation:vt?void 0:"none",opacity:(c=ye.hide)!==null&&c!==void 0&&c.referenceHidden?0:void 0}};return(0,Lt.createElement)("div",{ref:oe,"data-radix-popper-content-wrapper":"",style:{position:ie,left:0,top:0,transform:vt?`translate3d(${Math.round(le)}px, ${Math.round(de)}px, 0)`:"translate3d(0, -200%, 0)",minWidth:"max-content",zIndex:nu,"--radix-popper-transform-origin":[(d=ye.transformOrigin)===null||d===void 0?void 0:d.x,(u=ye.transformOrigin)===null||u===void 0?void 0:u.y].join(" ")},dir:e.dir},(0,Lt.createElement)(VO,{scope:f,placedSide:Ft,onArrowChange:me,arrowX:Jr,arrowY:si,shouldHideArrow:ar},vn?(0,Lt.createElement)(ZO,{scope:f,hasParent:!0,positionUpdateFns:wr},(0,Lt.createElement)(jt.div,Va)):(0,Lt.createElement)(jt.div,Va)))}),JO="PopperArrow",QO={top:"bottom",right:"left",bottom:"top",left:"right"},e9=(0,Lt.forwardRef)(function(t,r){let{__scopePopper:o,...i}=t,a=XO(JO,o),s=QO[a.placedSide];return(0,Lt.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,Lt.createElement)(sA,Ye({},i,{ref:r,style:{...i.style,display:"block"}})))});function t9(e){return e!==void 0}function r9(e){return e!==null}var o9=()=>({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`),{}}}),n9=e=>({name:"transformOrigin",options:e,fn(t){var r,o,i,a,s;let{placement:c,rects:d,middlewareData:u}=t,m=((r=u.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,g=m?0:e.arrowWidth,h=m?0:e.arrowHeight,[b,y]=pA(c),T={start:"0%",center:"50%",end:"100%"}[y],k=((o=(i=u.arrow)===null||i===void 0?void 0:i.x)!==null&&o!==void 0?o:0)+g/2,I=((a=(s=u.arrow)===null||s===void 0?void 0:s.y)!==null&&a!==void 0?a:0)+h/2,C="",O="";return b==="bottom"?(C=m?T:`${k}px`,O=`${-h}px`):b==="top"?(C=m?T:`${k}px`,O=`${d.floating.height+h}px`):b==="right"?(C=`${-h}px`,O=m?T:`${I}px`):b==="left"&&(C=`${d.floating.width+h}px`,O=m?T:`${I}px`),{data:{x:C,y:O}}}});function pA(e){let[t,r="center"]=e.split("-");return[t,r]}var fA=WO,gA=YO,hA=jO,bA=e9;v();var Jf=w(j()),xA=w(Zn());var vA=(0,Jf.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?xA.default.createPortal((0,Jf.createElement)(jt.div,Ye({},i,{ref:t})),o):null});v();var Ur=w(j()),yA=w(Zn());function i9(e,t){return(0,Ur.useReducer)((r,o)=>{let i=t[r][o];return i??r},e)}var mc=e=>{let{present:t,children:r}=e,o=a9(t),i=typeof r=="function"?r({present:o.isPresent}):Ur.Children.only(r),a=Nr(o.ref,i.ref);return typeof r=="function"||o.isPresent?(0,Ur.cloneElement)(i,{ref:a}):null};mc.displayName="Presence";function a9(e){let[t,r]=(0,Ur.useState)(),o=(0,Ur.useRef)({}),i=(0,Ur.useRef)(e),a=(0,Ur.useRef)("none"),s=e?"mounted":"unmounted",[c,d]=i9(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,Ur.useEffect)(()=>{let u=Qf(o.current);a.current=c==="mounted"?u:"none"},[c]),ln(()=>{let u=o.current,f=i.current;if(f!==e){let g=a.current,h=Qf(u);e?d("MOUNT"):h==="none"||u?.display==="none"?d("UNMOUNT"):d(f&&g!==h?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),ln(()=>{if(t){let u=m=>{let h=Qf(o.current).includes(m.animationName);m.target===t&&h&&(0,yA.flushSync)(()=>d("ANIMATION_END"))},f=m=>{m.target===t&&(a.current=Qf(o.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:(0,Ur.useCallback)(u=>{u&&(o.current=getComputedStyle(u)),r(u)},[])}}function Qf(e){return e?.animationName||"none"}v();var Pa=w(j());function uc({prop:e,defaultProp:t,onChange:r=()=>{}}){let[o,i]=l9({defaultProp:t,onChange:r}),a=e!==void 0,s=a?e:o,c=io(r),d=(0,Pa.useCallback)(u=>{if(a){let m=typeof u=="function"?u(e):u;m!==e&&c(m)}else i(u)},[a,e,i,c]);return[s,d]}function l9({defaultProp:e,onChange:t}){let r=(0,Pa.useState)(e),[o]=r,i=(0,Pa.useRef)(o),a=io(t);return(0,Pa.useEffect)(()=>{i.current!==o&&(a(o),i.current=o)},[o,i,a]),r}v();var s9=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},pc=new WeakMap,eg=new WeakMap,tg={},fy=0,EA=function(e){return e&&(e.host||EA(e.parentNode))},c9=function(e,t){return t.map(function(r){if(e.contains(r))return r;var o=EA(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})},d9=function(e,t,r,o){var i=c9(t,Array.isArray(e)?e:[e]);tg[r]||(tg[r]=new WeakMap);var a=tg[r],s=[],c=new Set,d=new Set(i),u=function(m){!m||c.has(m)||(c.add(m),u(m.parentNode))};i.forEach(u);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=(pc.get(g)||0)+1,T=(a.get(g)||0)+1;pc.set(g,y),a.set(g,T),s.push(g),y===1&&b&&eg.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(),fy++,function(){s.forEach(function(m){var g=pc.get(m)-1,h=a.get(m)-1;pc.set(m,g),a.set(m,h),g||(eg.has(m)||m.removeAttribute(o),eg.delete(m)),h||m.removeAttribute(r)}),fy--,fy||(pc=new WeakMap,pc=new WeakMap,eg=new WeakMap,tg={})}},wA=function(e,t,r){r===void 0&&(r="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),i=t||s9(e);return i?(o.push.apply(o,Array.from(i.querySelectorAll("[aria-live]"))),d9(o,i,r,"aria-hidden")):function(){return null}};v();v();v();var So=function(){return So=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},So.apply(this,arguments)};function rg(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 SA(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 lg=w(j());v();var Gr=w(j());v();var Ll="right-scroll-bar-position",Rl="width-before-scroll-bar",gy="with-scroll-bars-hidden",hy="--removed-body-scroll-bar-size";v();v();function og(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}v();var TA=w(j());function CA(e,t){var r=(0,TA.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 ng=w(j());var m9=typeof window<"u"?ng.useLayoutEffect:ng.useEffect,IA=new WeakMap;function by(e,t){var r=CA(t||null,function(o){return e.forEach(function(i){return og(i,o)})});return m9(function(){var o=IA.get(r);if(o){var i=new Set(o),a=new Set(e),s=r.current;i.forEach(function(c){a.has(c)||og(c,null)}),a.forEach(function(c){i.has(c)||og(c,s)})}IA.set(r,e)},[e]),r}v();v();v();function u9(e){return e}function p9(e,t){t===void 0&&(t=u9);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)},u=function(){return Promise.resolve().then(d)};u(),r={push:function(f){s.push(f),u()},filter:function(f){return s=s.filter(f),r}}}};return i}function xy(e){e===void 0&&(e={});var t=p9(null);return t.options=So({async:!0,ssr:!1},e),t}v();var _A=w(j()),AA=function(e){var t=e.sideCar,r=rg(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 _A.createElement(o,So({},r))};AA.isSideCarExport=!0;function vy(e,t){return e.useMedium(t),AA}var ig=xy();var yy=function(){},dm=Gr.forwardRef(function(e,t){var r=Gr.useRef(null),o=Gr.useState({onScrollCapture:yy,onWheelCapture:yy,onTouchMoveCapture:yy}),i=o[0],a=o[1],s=e.forwardProps,c=e.children,d=e.className,u=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=rg(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),C=g,O=by([r,t]),z=So(So({},I),i);return Gr.createElement(Gr.Fragment,null,f&&Gr.createElement(C,{sideCar:ig,removeScrollBar:u,shards:m,noIsolation:h,inert:b,setCallbacks:a,allowPinchZoom:!!y,lockRef:r}),s?Gr.cloneElement(Gr.Children.only(c),So(So({},z),{ref:O})):Gr.createElement(k,So({},z,{className:d,ref:O}),c))});dm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};dm.classNames={fullWidth:Rl,zeroRight:Ll};v();v();var Rt=w(j());v();v();var gc=w(j());v();v();v();var MA=w(j());v();v();var kA;var PA=function(){if(kA)return kA;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function f9(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=PA();return t&&e.setAttribute("nonce",t),e}function g9(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function h9(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Ey=function(){var e=0,t=null;return{add:function(r){e==0&&(t=f9())&&(g9(t,r),h9(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}};var wy=function(){var e=Ey();return function(t,r){MA.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}};var mm=function(){var e=wy(),t=function(r){var o=r.styles,i=r.dynamic;return e(o,i),null};return t};v();var b9={left:0,top:0,right:0,gap:0},Sy=function(e){return parseInt(e||"",10)||0},x9=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[Sy(r),Sy(o),Sy(i)]},Ty=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return b9;var t=x9(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 v9=mm(),fc="data-scroll-locked",y9=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(gy,` {
|
|
22
|
+
overflow: hidden `).concat(o,`;
|
|
23
|
+
padding-right: `).concat(c,"px ").concat(o,`;
|
|
5
24
|
}
|
|
6
|
-
body[`).concat(
|
|
7
|
-
overflow: hidden `).concat(
|
|
25
|
+
body[`).concat(fc,`] {
|
|
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(Ll,` {
|
|
39
|
+
right: `).concat(c,"px ").concat(o,`;
|
|
21
40
|
}
|
|
22
41
|
|
|
23
|
-
.`).concat(
|
|
24
|
-
margin-right: `).concat(
|
|
42
|
+
.`).concat(Rl,` {
|
|
43
|
+
margin-right: `).concat(c,"px ").concat(o,`;
|
|
25
44
|
}
|
|
26
45
|
|
|
27
|
-
.`).concat(
|
|
28
|
-
right: 0 `).concat(
|
|
46
|
+
.`).concat(Ll," .").concat(Ll,` {
|
|
47
|
+
right: 0 `).concat(o,`;
|
|
29
48
|
}
|
|
30
49
|
|
|
31
|
-
.`).concat(
|
|
32
|
-
margin-right: 0 `).concat(
|
|
50
|
+
.`).concat(Rl," .").concat(Rl,` {
|
|
51
|
+
margin-right: 0 `).concat(o,`;
|
|
33
52
|
}
|
|
34
53
|
|
|
35
|
-
body[`).concat(
|
|
36
|
-
`).concat(
|
|
54
|
+
body[`).concat(fc,`] {
|
|
55
|
+
`).concat(hy,": ").concat(c,`px;
|
|
37
56
|
}
|
|
38
|
-
`)},
|
|
39
|
-
.block-interactivity-`.concat(
|
|
40
|
-
.allow-interactivity-`).concat(
|
|
41
|
-
`)},kC=0,Aa=[];function LE(t){var e=Xe.useRef([]),o=Xe.useRef([0,0]),r=Xe.useRef(),n=Xe.useState(kC++)[0],i=Xe.useState(function(){return Ql()})[0],a=Xe.useRef(t);Xe.useEffect(function(){a.current=t},[t]),Xe.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(n));var x=hE([t.lockRef.current],(t.shards||[]).map(_E),!0).filter(Boolean);return x.forEach(function(E){return E.classList.add("allow-interactivity-".concat(n))}),function(){document.body.classList.remove("block-interactivity-".concat(n)),x.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(n))})}}},[t.inert,t.lockRef.current,t.shards]);var l=Xe.useCallback(function(x,E){if("touches"in x&&x.touches.length===2)return!a.current.allowPinchZoom;var T=Gd(x),C=o.current,w="deltaX"in x?x.deltaX:C[0]-T[0],A="deltaY"in x?x.deltaY:C[1]-T[1],z,I=x.target,M=Math.abs(w)>Math.abs(A)?"h":"v";if("touches"in x&&M==="h"&&I.type==="range")return!1;var _=Kf(M,I);if(!_)return!0;if(_?z=M:(z=M==="v"?"h":"v",_=Kf(M,I)),!_)return!1;if(!r.current&&"changedTouches"in x&&(w||A)&&(r.current=z),!z)return!0;var U=r.current||z;return AE(U,E,x,U==="h"?w:A,!0)},[]),s=Xe.useCallback(function(x){var E=x;if(!(!Aa.length||Aa[Aa.length-1]!==i)){var T="deltaY"in E?ME(E):Gd(E),C=e.current.filter(function(z){return z.name===E.type&&z.target===E.target&&SC(z.delta,T)})[0];if(C&&C.should){E.cancelable&&E.preventDefault();return}if(!C){var w=(a.current.shards||[]).map(_E).filter(Boolean).filter(function(z){return z.contains(E.target)}),A=w.length>0?l(E,w[0]):!a.current.noIsolation;A&&E.cancelable&&E.preventDefault()}}},[]),d=Xe.useCallback(function(x,E,T,C){var w={name:x,delta:E,target:T,should:C};e.current.push(w),setTimeout(function(){e.current=e.current.filter(function(A){return A!==w})},1)},[]),c=Xe.useCallback(function(x){o.current=Gd(x),r.current=void 0},[]),m=Xe.useCallback(function(x){d(x.type,ME(x),x.target,l(x,t.lockRef.current))},[]),u=Xe.useCallback(function(x){d(x.type,Gd(x),x.target,l(x,t.lockRef.current))},[]);Xe.useEffect(function(){return Aa.push(i),t.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:u}),document.addEventListener("wheel",s,di),document.addEventListener("touchmove",s,di),document.addEventListener("touchstart",c,di),function(){Aa=Aa.filter(function(x){return x!==i}),document.removeEventListener("wheel",s,di),document.removeEventListener("touchmove",s,di),document.removeEventListener("touchstart",c,di)}},[]);var f=t.removeScrollBar,b=t.inert;return Xe.createElement(Xe.Fragment,null,b?Xe.createElement(i,{styles:TC(n)}):null,f?Xe.createElement(Gf,{gapMode:"margin"}):null)}var PE=Bf(Wd,LE);var RE=Vd.forwardRef(function(t,e){return Vd.createElement(Jl,co({},t,{ref:e,sideCar:PE}))});RE.classNames=Jl.classNames;var Yf=RE;var DE="Popover",[NE,bP]=Er(DE,[Pf]),Kd=Pf(),[IC,Ma]=NE(DE),AC=t=>{let{__scopePopover:e,children:o,open:r,defaultOpen:n,onOpenChange:i,modal:a=!1}=t,l=Kd(e),s=(0,Te.useRef)(null),[d,c]=(0,Te.useState)(!1),[m=!1,u]=Sa({prop:r,defaultProp:n,onChange:i});return(0,Te.createElement)(aE,l,(0,Te.createElement)(IC,{scope:e,contentId:Ea(),triggerRef:s,open:m,onOpenChange:u,onOpenToggle:(0,Te.useCallback)(()=>u(f=>!f),[u]),hasCustomAnchor:d,onCustomAnchorAdd:(0,Te.useCallback)(()=>c(!0),[]),onCustomAnchorRemove:(0,Te.useCallback)(()=>c(!1),[]),modal:a},o))};var MC="PopoverTrigger",_C=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Ma(MC,o),i=Kd(o),a=Ft(e,n.triggerRef),l=(0,Te.createElement)(dt.button,Ce({type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":BE(n.open)},r,{ref:a,onClick:Et(t.onClick,n.onOpenToggle)}));return n.hasCustomAnchor?l:(0,Te.createElement)(lE,Ce({asChild:!0},i),l)}),OE="PopoverPortal",[LC,PC]=NE(OE,{forceMount:void 0}),RC=t=>{let{__scopePopover:e,forceMount:o,children:r,container:n}=t,i=Ma(OE,e);return(0,Te.createElement)(LC,{scope:e,forceMount:o},(0,Te.createElement)(Ca,{present:o||i.open},(0,Te.createElement)(mE,{asChild:!0,container:n},r)))},ts="PopoverContent",DC=(0,Te.forwardRef)((t,e)=>{let o=PC(ts,t.__scopePopover),{forceMount:r=o.forceMount,...n}=t,i=Ma(ts,t.__scopePopover);return(0,Te.createElement)(Ca,{present:r||i.open},i.modal?(0,Te.createElement)(NC,Ce({},n,{ref:e})):(0,Te.createElement)(OC,Ce({},n,{ref:e})))}),NC=(0,Te.forwardRef)((t,e)=>{let o=Ma(ts,t.__scopePopover),r=(0,Te.useRef)(null),n=Ft(e,r),i=(0,Te.useRef)(!1);return(0,Te.useEffect)(()=>{let a=r.current;if(a)return fE(a)},[]),(0,Te.createElement)(Yf,{as:yn,allowPinchZoom:!0},(0,Te.createElement)(FE,Ce({},t,{ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Et(t.onCloseAutoFocus,a=>{var l;a.preventDefault(),i.current||(l=o.triggerRef.current)===null||l===void 0||l.focus()}),onPointerDownOutside:Et(t.onPointerDownOutside,a=>{let l=a.detail.originalEvent,s=l.button===0&&l.ctrlKey===!0,d=l.button===2||s;i.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:Et(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),OC=(0,Te.forwardRef)((t,e)=>{let o=Ma(ts,t.__scopePopover),r=(0,Te.useRef)(!1);return(0,Te.createElement)(FE,Ce({},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()}}))}),FE=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onInteractOutside:c,...m}=t,u=Ma(ts,o),f=Kd(o);return w2(),(0,Te.createElement)(I2,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:i},(0,Te.createElement)(x2,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:c,onEscapeKeyDown:l,onPointerDownOutside:s,onFocusOutside:d,onDismiss:()=>u.onOpenChange(!1)},(0,Te.createElement)(sE,Ce({"data-state":BE(u.open),role:"dialog",id:u.contentId},f,m,{ref:e,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))});var FC=(0,Te.forwardRef)((t,e)=>{let{__scopePopover:o,...r}=t,n=Kd(o);return(0,Te.createElement)(cE,Ce({},n,r,{ref:e}))});function BE(t){return t?"open":"closed"}var Yd=AC;var Zd=_C,zE=RC,jd=DC;var $E=FC;h();var or=v(H(),1);h();var qd=v(H(),1),GE=v(br(),1);h();var Zf=v(H(),1),jf=Zf.default.createContext(null),_e=()=>Zf.default.useContext(jf);h();var os=v(H(),1);var Xd=t=>{let[e,o]=(0,os.useState)(null),r=Me(),{theme:n}=_e(),{container:i}=_t();return(0,os.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===be.DARK))},[e,n,r.editor.isMobile,t?.className]),(0,os.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 UE=v(H(),1);function _a(t,e,o){(0,UE.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 WE=v(H(),1),La=t=>{let e=(0,WE.useRef)(t);return Object.assign(e.current,t),e.current};var KE=v(k(),1),Tn=We(null),VE=({onCancel:t,onChange:e,onSelect:o,colorPickerType:r})=>{let n=Xd({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),i=_e(),a=kn(),l=mo(),s=we(a,i),d=La({app:l,onCancel:t,onChange:e,onSelect:o,selectedElements:s}),{container:c}=_t();(0,qd.useEffect)(()=>{let u=m.current;if(!u||!l.canvas||!n)return;let f=!1,b=l.canvas.getContext("2d"),x=({clientX:I,clientY:M})=>{let _=b.getImageData((I-i.offsetLeft)*window.devicePixelRatio,(M-i.offsetTop)*window.devicePixelRatio,1,1).data;return c1(_[0],_[1],_[2])},E=({clientX:I,clientY:M,altKey:_})=>{u.style.top=`${M+20}px`,u.style.left=`${I+20}px`;let U=x({clientX:I,clientY:M});f&&d.onChange(r,U,d.selectedElements,{altKey:_}),u.style.background=U},T=()=>{d.onCancel()},C=(I,M)=>{d.onSelect(I,M)},w=I=>{f=!0,I.stopImmediatePropagation()},A=I=>{f=!1,c?.focus(),I.stopImmediatePropagation(),I.preventDefault(),C(x(I),I)},z=I=>{I.key===S.ESCAPE&&(I.preventDefault(),I.stopImmediatePropagation(),T())};return n.tabIndex=-1,n.focus(),E({clientX:d.app.lastViewportPosition.x,clientY:d.app.lastViewportPosition.y,altKey:!1}),n.addEventListener("keydown",z),n.addEventListener("pointerdown",w),n.addEventListener("pointerup",A),window.addEventListener("pointermove",E,{passive:!0}),window.addEventListener("blur",T),()=>{f=!1,n.removeEventListener("keydown",z),n.removeEventListener("pointerdown",w),n.removeEventListener("pointerup",A),window.removeEventListener("pointermove",E),window.removeEventListener("blur",T)}},[d,l.canvas,n,r,c,i.offsetLeft,i.offsetTop]);let m=(0,qd.useRef)(null);return _a(m,()=>{t()},u=>!!u.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),n?(0,GE.createPortal)((0,KE.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),n):null};var wr=v(k(),1),YE=({color:t,onChange:e,label:o,colorPickerType:r})=>{let n=Me(),[i,a]=(0,or.useState)(t),[l,s]=Se(Do);(0,or.useEffect)(()=>{a(t)},[t]);let d=(0,or.useCallback)(b=>{let x=b.toLowerCase(),E=ZE(x);E&&e(E),a(x)},[e]),c=(0,or.useRef)(null),m=(0,or.useRef)(null);(0,or.useEffect)(()=>{c.current&&c.current.focus()},[l]);let[u,f]=Se(Tn,Ne);return(0,or.useEffect)(()=>()=>{f(null)},[f]),(0,wr.jsxs)("div",{className:"color-picker__input-label",children:[(0,wr.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,wr.jsx)("input",{ref:l==="hex"?c:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":o,onChange:b=>{d(b.target.value)},value:(i||"").replace(/^#/,""),onBlur:()=>{a(t)},tabIndex:-1,onFocus:()=>s("hex"),onKeyDown:b=>{b.key!==S.TAB&&(b.key===S.ESCAPE&&m.current?.focus(),b.stopPropagation())}}),!n.editor.isMobile&&(0,wr.jsxs)(wr.Fragment,{children:[(0,wr.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,wr.jsx)("div",{ref:m,className:$("excalidraw-eye-dropper-trigger",{selected:u}),onClick:()=>f(b=>b?null:{keepOpenOnAlt:!1,onSelect:x=>e(x),colorPickerType:r}),title:`${g("labels.eyeDropper")} \u2014 ${S.I.toLocaleUpperCase()} or ${F("Alt")} `,children:Ev})]})]})};var XE=v(H(),1);var Lt=v(k(),1),jE=t=>{let e=new Option().style;return e.color=t,!!e.color},ZE=t=>jn(t)?t:jE(`#${t}`)?`#${t}`:jE(t)?t:null,BC=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Ar,updateData:a})=>{let[,l]=Se(Do),[s,d]=Se(Tn,Ne),{container:c}=_t(),m=Me(),u=(0,Lt.jsxs)("div",{children:[(0,Lt.jsx)(ba,{children:g("colorPicker.hexCode")}),(0,Lt.jsx)(YE,{color:e,label:r,onChange:x=>{o(x)},colorPickerType:t})]}),f=(0,XE.useRef)(null),b=()=>{f.current?.querySelector(".color-picker-content")?.focus()};return(0,Lt.jsx)(zE,{container:c,children:(0,Lt.jsxs)(jd,{ref:f,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(),c&&!z1(document.activeElement)&&c.focus(),a({openPopup:null}),l(null)},side:m.editor.isMobile&&!m.viewport.isLandscape?"bottom":"right",align:m.editor.isMobile&&!m.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,Lt.jsx)(d2,{palette:i,color:e,onChange:x=>{o(x)},onEyeDropperToggle:x=>{d(E=>x?(E=E||{keepOpenOnAlt:!0,onSelect:o,colorPickerType:t},E.keepOpenOnAlt=!0,E):x===!1||E?null:{keepOpenOnAlt:!1,onSelect:o,colorPickerType:t})},onEscape:x=>{s?d(null):To(x.target)?b():a({openPopup:null})},label:r,type:t,elements:n,updateData:a,children:u}):u,(0,Lt.jsx)($E,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})},zC=({label:t,color:e,type:o})=>(0,Lt.jsx)(Zd,{type:"button",className:$("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,Lt.jsx)("div",{className:"color-picker__button-outline"})}),rs=({type:t,color:e,onChange:o,label:r,elements:n,palette:i=Ar,topPicks:a,updateData:l,appState:s})=>(0,Lt.jsx)("div",{children:(0,Lt.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Lt.jsx)(e2,{activeColor:e,onChange:o,type:t,topPicks:a}),(0,Lt.jsx)("div",{style:{width:1,height:"100%",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),(0,Lt.jsxs)(Yd,{open:s.openPopup===t,onOpenChange:d=>{l({openPopup:d?t:null})},children:[(0,Lt.jsx)(zC,{color:e,label:r,type:t}),s.openPopup===t&&(0,Lt.jsx)(BC,{type:t,color:e,onChange:o,label:r,elements:n,palette:i,updateData:l})]})]})});h();var An=v(H(),1);h();var In=v(H(),1);var qE=v(br(),1);var JE=v(k(),1),Jd=({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 d=(0,In.useRef)(null);(0,In.useEffect)(()=>{let m=d.current;if(!m)return;m.contains(document.activeElement)||m.focus();let u=f=>{if(f.key===S.TAB){let b=hl(m),{activeElement:x}=document,E=b.findIndex(T=>T===x);x===m?(f.shiftKey?b[b.length-1]?.focus():b[0].focus(),f.preventDefault(),f.stopImmediatePropagation()):E===0&&f.shiftKey?(b[b.length-1]?.focus(),f.preventDefault(),f.stopImmediatePropagation()):E===b.length-1&&!f.shiftKey&&(b[0]?.focus(),f.preventDefault(),f.stopImmediatePropagation())}};return m.addEventListener("keydown",u),()=>m.removeEventListener("keydown",u)},[]);let c=(0,In.useRef)(null);return(0,In.useLayoutEffect)(()=>{if(n&&d.current&&o!=null&&e!=null){let m=d.current,{width:u,height:f}=m.getBoundingClientRect();if(c.current?.top===o&&c.current?.left===e)return;c.current={top:o,left:e},u>=l?(m.style.width=`${l}px`,m.style.left="0px",m.style.overflowX="scroll"):e+u-i>l?m.style.left=`${l-u-10}px`:m.style.left=`${e}px`,f>=s?(m.style.height=`${s-20}px`,m.style.top="10px",m.style.overflowY="scroll"):o+f-a>s?m.style.top=`${s-f}px`:m.style.top=`${o}px`}},[o,e,n,l,s,i,a]),(0,In.useEffect)(()=>{if(r){let m=u=>{d.current?.contains(u.target)||(0,qE.unstable_batchedUpdates)(()=>r(u))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[r]),(0,JE.jsx)("div",{className:"popover",ref:d,tabIndex:-1,children:t})};var ro=v(k(),1);function $C({options:t,value:e,label:o,onChange:r,onClose:n}){let i=An.default.useRef(),a=An.default.useRef(),l=An.default.useRef(null);return An.default.useEffect(()=>{a.current?a.current.focus():l.current&&l.current.focus()},[]),(0,ro.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":o,onKeyDown:d=>{let c=t.find(m=>m.keyBinding===d.key.toLowerCase());if(!(d.metaKey||d.altKey||d.ctrlKey)&&c){let m=t.indexOf(c);l.current.children[m].focus(),d.preventDefault()}else if(d.key===S.TAB)setTimeout(()=>{let m=a.current,u=document.activeElement;m!==u&&n()},0);else if(Wi(d.key)){let{activeElement:m}=document,u=Gr().rtl,f=Array.prototype.indexOf.call(l.current.children,m);if(f!==-1){let b=t.length,x=f;switch(d.key){case(u?S.ARROW_LEFT:S.ARROW_RIGHT):case S.ARROW_DOWN:{x=(f+1)%b;break}case(u?S.ARROW_RIGHT:S.ARROW_LEFT):case S.ARROW_UP:{x=(b+f-1)%b;break}}l.current.children[x].focus()}d.preventDefault()}else(d.key===S.ESCAPE||d.key===S.ENTER)&&(d.preventDefault(),n());d.nativeEvent.stopImmediatePropagation(),d.stopPropagation()},children:(0,ro.jsx)("div",{className:"picker-content",ref:l,children:t.map((d,c)=>(0,ro.jsxs)("button",{className:$("picker-option",{active:e===d.value}),onClick:m=>{m.currentTarget.focus(),r(d.value)},title:`${d.text} ${d.keyBinding&&`\u2014 ${d.keyBinding.toUpperCase()}`}`,"aria-label":d.text||"none","aria-keyshortcuts":d.keyBinding||void 0,ref:m=>{m&&c===0&&(i.current=m),m&&d.value===e&&(a.current=m)},onFocus:()=>{r(d.value)},children:[d.icon,d.keyBinding&&(0,ro.jsx)("span",{className:"picker-keybinding",children:d.keyBinding})]},d.text))})})}function Xf({value:t,label:e,options:o,onChange:r,group:n=""}){let[i,a]=An.default.useState(!1),l=An.default.useRef(null),s=Gr().rtl;return(0,ro.jsxs)("div",{children:[(0,ro.jsx)("button",{name:n,className:i?"active":"","aria-label":e,onClick:()=>a(!i),ref:l,children:o.find(d=>d.value===t)?.icon}),(0,ro.jsx)(An.default.Suspense,{fallback:"",children:i?(0,ro.jsxs)(ro.Fragment,{children:[(0,ro.jsx)(Jd,{onCloseRequest:d=>d.target!==l.current&&a(!1),...s?{right:5.5}:{left:-5.5},children:(0,ro.jsx)($C,{options:o.filter(d=>d.showInPicker!==!1),value:t,label:e,onChange:r,onClose:()=>{a(!1),l.current?.focus()}})}),(0,ro.jsx)("div",{className:"picker-triangle"})]}):null})]})}var le=v(k(),1),ey=.1,bo=(t,e,o,r=!1)=>{let n=pe(we(t,e,{includeBoundTextElement:r}));return t.map(i=>n.get(i.id)||i.id===e.editingElement?.id?o(i):i)},po=function(t,e,o,r,n){let i=e.editingElement,a=ye(t),l=null;return i&&(l=o(i)),l||(Be(a,e)?l=H0(r===!0?a:a.filter(d=>r(d)),e,o)??(typeof n=="function"?n(!0):n):l=typeof n=="function"?n(!1):n),l},HC=(t,e)=>xt(e)?e:re(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),qf=(t,e,o,r,n)=>{let i=new Set;return{elements:bo(t,e,a=>{if(se(a)){let l=r(a);i.add(l);let s=he(a,{fontSize:l});return Ut(s,o.scene.getContainerElement(a),o.scene.getNonDeletedElementsMap()),s=HC(a,s),s}return a},!0),appState:{...e,currentItemFontSize:i.size===1?[...i][0]:n??e.currentItemFontSize},storeAction:P.CAPTURE}},UC=W({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemStrokeColor&&{elements:bo(t,e,r=>wl(r.type)?he(r,{strokeColor:o.currentItemStrokeColor}):r,!0)},appState:{...e,...o},storeAction:o.currentItemStrokeColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("h3",{"aria-hidden":"true",children:g("labels.stroke")}),(0,le.jsx)(rs,{topPicks:Vs,palette:l1,type:"elementStroke",label:g("labels.stroke"),color:po(t,e,n=>n.strokeColor,!0,e.currentItemStrokeColor),onChange:n=>o({currentItemStrokeColor:n}),elements:t,appState:e,updateData:o})]})}),WC=W({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(t,e,o)=>({...o.currentItemBackgroundColor&&{elements:bo(t,e,r=>he(r,{backgroundColor:o.currentItemBackgroundColor}))},appState:{...e,...o},storeAction:o.currentItemBackgroundColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("h3",{"aria-hidden":"true",children:g("labels.background")}),(0,le.jsx)(rs,{topPicks:Ks,palette:s1,type:"elementBackground",label:g("labels.background"),color:po(t,e,n=>n.backgroundColor,!0,e.currentItemBackgroundColor),onChange:n=>o({currentItemBackgroundColor:n}),elements:t,appState:e,updateData:o})]})}),GC=W({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(t,e,o,r)=>(xe("element","changeFillStyle",`${o} (${r.device.editor.isMobile?"mobile":"desktop"})`),{elements:bo(t,e,n=>he(n,{fillStyle:o})),appState:{...e,currentItemFillStyle:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t,e),n=r.length>0&&r.every(i=>i.fillStyle==="zigzag");return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.fill")}),(0,le.jsx)(xr,{type:"button",options:[{value:"hachure",text:`${n?g("labels.zigzag"):g("labels.hachure")} (${F("Alt-Click")})`,icon:n?Fx:Bx,active:n?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:g("labels.crossHatch"),icon:zx,testId:"fill-cross-hatch"},{value:"solid",text:g("labels.solid"),icon:$x,testId:"fill-solid"}],value:po(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)}})]})}}),VC=W({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{strokeWidth:o})),appState:{...e,currentItemStrokeWidth:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.strokeWidth")}),(0,le.jsx)(xr,{group:"stroke-width",options:[{value:rc.thin,text:g("labels.thin"),icon:Ju,testId:"strokeWidth-thin"},{value:rc.bold,text:g("labels.bold"),icon:Hx,testId:"strokeWidth-bold"},{value:rc.extraBold,text:g("labels.extraBold"),icon:Ux,testId:"strokeWidth-extraBold"}],value:po(t,e,r=>r.strokeWidth,r=>r.hasOwnProperty("strokeWidth"),r=>r?null:e.currentItemStrokeWidth),onChange:r=>o(r)})]})}),KC=W({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{seed:ob(),roughness:o})),appState:{...e,currentItemRoughness:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.sloppiness")}),(0,le.jsx)(xr,{group:"sloppiness",options:[{value:0,text:g("labels.architect"),icon:Vx},{value:1,text:g("labels.artist"),icon:Kx},{value:2,text:g("labels.cartoonist"),icon:Yx}],value:po(t,e,r=>r.roughness,r=>r.hasOwnProperty("roughness"),r=>r?null:e.currentItemRoughness),onChange:r=>o(r)})]})}),cD=W({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{strokeStyle:o})),appState:{...e,currentItemStrokeStyle:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.strokeStyle")}),(0,le.jsx)(xr,{group:"strokeStyle",options:[{value:"solid",text:g("labels.strokeStyle_solid"),icon:Ju},{value:"dashed",text:g("labels.strokeStyle_dashed"),icon:Wx},{value:"dotted",text:g("labels.strokeStyle_dotted"),icon:Gx}],value:po(t,e,r=>r.strokeStyle,r=>r.hasOwnProperty("strokeStyle"),r=>r?null:e.currentItemStrokeStyle),onChange:r=>o(r)})]})}),YC=W({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{opacity:o}),!0),appState:{...e,currentItemOpacity:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,le.jsxs)("label",{className:"control-label",children:[g("labels.opacity"),(0,le.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:r=>o(+r.target.value),value:po(t,e,r=>r.opacity,!0,e.currentItemOpacity)??void 0})]})}),ZC=W({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,()=>o,o),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.fontSize")}),(0,le.jsx)(xr,{group:"font-size",options:[{value:16,text:g("labels.small"),icon:nv,testId:"fontSize-small"},{value:20,text:g("labels.medium"),icon:iv,testId:"fontSize-medium"},{value:28,text:g("labels.large"),icon:av,testId:"fontSize-large"},{value:36,text:g("labels.veryLarge"),icon:lv,testId:"fontSize-veryLarge"}],value:po(t,e,n=>{if(se(n))return n.fontSize;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.fontSize:null},n=>se(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:e.currentItemFontSize||_r),onChange:n=>o(n)})]})}),Jf=W({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:ef,trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,n=>Math.round(1/(1+ey)*n.fontSize)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_LEFT||t.key===S.COMMA)}),Qf=W({name:"increaseFontSize",label:"labels.increaseFontSize",icon:ef,trackEvent:!1,perform:(t,e,o,r)=>qf(t,e,r,n=>Math.round(n.fontSize*(1+ey))),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&(t.key===S.CHEVRON_RIGHT||t.key===S.PERIOD)}),jC=W({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(se(n)){let i=he(n,{fontFamily:o,lineHeight:Or(o)});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemFontFamily:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=[{value:cl.Virgil,text:g("labels.handDrawn"),icon:la,testId:"font-family-virgil"},{value:cl.Helvetica,text:g("labels.normal"),icon:sv,testId:"font-family-normal"},{value:cl.Cascadia,text:g("labels.code"),icon:cv,testId:"font-family-code"}];return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.fontFamily")}),(0,le.jsx)(xr,{group:"font-family",options:n,value:po(t,e,i=>{if(se(i))return i.fontFamily;let a=ct(i,r.scene.getNonDeletedElementsMap());return a?a.fontFamily:null},i=>se(i)||ct(i,r.scene.getNonDeletedElementsMap())!==null,i=>i?null:e.currentItemFontFamily||Oi),onChange:i=>o(i)})]})}}),XC=W({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(se(n)){let i=he(n,{textAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e,currentItemTextAlign:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>{let n=r.scene.getNonDeletedElementsMap();return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.textAlign")}),(0,le.jsx)(xr,{group:"text-align",options:[{value:"left",text:g("labels.left"),icon:dv,testId:"align-left"},{value:"center",text:g("labels.center"),icon:mv,testId:"align-horizontal-center"},{value:"right",text:g("labels.right"),icon:pv,testId:"align-right"}],value:po(t,e,i=>{if(se(i))return i.textAlign;let a=ct(i,n);return a?a.textAlign:null},i=>se(i)||ct(i,n)!==null,i=>i?null:e.currentItemTextAlign),onChange:i=>o(i)})]})}}),qC=W({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:bo(t,e,n=>{if(se(n)){let i=he(n,{verticalAlign:o});return Ut(i,r.scene.getContainerElement(n),r.scene.getNonDeletedElementsMap()),i}return n},!0),appState:{...e},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,le.jsx)("fieldset",{children:(0,le.jsx)(xr,{group:"text-align",options:[{value:wo.TOP,text:g("labels.alignTop"),icon:(0,le.jsx)(uv,{theme:e.theme}),testId:"align-top"},{value:wo.MIDDLE,text:g("labels.centerVertically"),icon:(0,le.jsx)(hv,{theme:e.theme}),testId:"align-middle"},{value:wo.BOTTOM,text:g("labels.alignBottom"),icon:(0,le.jsx)(fv,{theme:e.theme}),testId:"align-bottom"}],value:po(t,e,n=>{if(se(n)&&n.containerId)return n.verticalAlign;let i=ct(n,r.scene.getNonDeletedElementsMap());return i?i.verticalAlign:null},n=>se(n)||ct(n,r.scene.getNonDeletedElementsMap())!==null,n=>n?null:wo.MIDDLE),onChange:n=>o(n)})})}),dD=W({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>he(r,{roundness:o==="round"?{type:$i(r.type)?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null})),appState:{...e,currentItemRoundness:o},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let n=oa(ye(t),e).some(i=>i.roundness?.type===Co.LEGACY);return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.edges")}),(0,le.jsx)(xr,{group:"edges",options:[{value:"sharp",text:g("labels.sharp"),icon:Zx},{value:"round",text:g("labels.round"),icon:jx}],value:po(t,e,i=>n?null:i.roundness?"round":"sharp",i=>i.hasOwnProperty("roundness"),i=>i?null:e.currentItemRoundness),onChange:i=>o(i)})]})}}),QE=t=>[{value:null,text:g("labels.arrowhead_none"),keyBinding:"q",icon:Xx},{value:"arrow",text:g("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,le.jsx)(qx,{flip:t})},{value:"bar",text:g("labels.arrowhead_bar"),keyBinding:"e",icon:(0,le.jsx)(Qx,{flip:t})},{value:"dot",text:g("labels.arrowhead_circle"),keyBinding:null,icon:(0,le.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle",text:g("labels.arrowhead_circle"),keyBinding:"r",icon:(0,le.jsx)(Qu,{flip:t}),showInPicker:!1},{value:"circle_outline",text:g("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,le.jsx)(Jx,{flip:t}),showInPicker:!1},{value:"triangle",text:g("labels.arrowhead_triangle"),icon:(0,le.jsx)(ev,{flip:t}),keyBinding:"t"},{value:"triangle_outline",text:g("labels.arrowhead_triangle_outline"),icon:(0,le.jsx)(tv,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond",text:g("labels.arrowhead_diamond"),icon:(0,le.jsx)(ov,{flip:t}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:g("labels.arrowhead_diamond_outline"),icon:(0,le.jsx)(rv,{flip:t}),keyBinding:null,showInPicker:!1}],mD=W({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(t,e,o)=>({elements:bo(t,e,r=>{if(Re(r)){let{position:n,type:i}=o;if(n==="start")return he(r,{startArrowhead:i});if(n==="end")return he(r,{endArrowhead:i})}return r}),appState:{...e,[o.position==="start"?"currentItemStartArrowhead":"currentItemEndArrowhead"]:o.type},storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=Gr().rtl;return(0,le.jsxs)("fieldset",{children:[(0,le.jsx)("legend",{children:g("labels.arrowheads")}),(0,le.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,le.jsx)(Xf,{label:"arrowhead_start",options:QE(!r),value:po(t,e,n=>Re(n)&&Ui(n.type)?n.startArrowhead:e.currentItemStartArrowhead,!0,e.currentItemStartArrowhead),onChange:n=>o({position:"start",type:n})}),(0,le.jsx)(Xf,{label:"arrowhead_end",group:"arrowheads",options:QE(!!r),value:po(t,e,n=>Re(n)&&Ui(n.type)?n.endArrowhead:e.currentItemEndArrowhead,!0,e.currentItemEndArrowhead),onChange:n=>o({position:"end",type:n})})]})]})}});h();h();var ty=v(H(),1),oy=v(k(),1),Pa=()=>{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},eh=(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`})},JC=(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();eh(e,n)},xo=({children:t,label:e,long:o=!1,style:r,disabled:n})=>((0,ty.useEffect)(()=>()=>Pa().classList.remove("excalidraw-tooltip--visible"),[]),n?null:(0,oy.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:i=>JC(i.currentTarget,Pa(),e,o),onPointerLeave:()=>Pa().classList.remove("excalidraw-tooltip--visible"),style:r,children:t}));var pi=v(k(),1),QC=W({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},storeAction:o.viewBackgroundColor?P.CAPTURE:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o,appProps:r})=>(0,pi.jsx)(rs,{palette:null,topPicks:Ys,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})}),jr=W({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:er,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=>he(n,{isDeleted:!0})),appState:{...Ki(),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},storeAction:P.CAPTURE})}),Qd=W({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Nu,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(e.zoom.value+Kn)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(ce,{type:"button",className:"zoom-in-button zoom-button",icon:Nu,title:`${g("buttons.zoomIn")} \u2014 ${F("CtrlOrCmd++")}`,"aria-label":g("buttons.zoomIn"),disabled:e.zoom.value>=Hp,onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.EQUAL||t.code===fe.NUM_ADD)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),em=W({name:"zoomOut",label:"buttons.zoomOut",icon:Ou,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(e.zoom.value-Kn)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(ce,{type:"button",className:"zoom-out-button zoom-button",icon:Ou,title:`${g("buttons.zoomOut")} \u2014 ${F("CtrlOrCmd+-")}`,"aria-label":g("buttons.zoomOut"),disabled:e.zoom.value<=Js,onClick:()=>{t(null)}}),keyTest:t=>(t.code===fe.MINUS||t.code===fe.NUM_SUBTRACT)&&(t[S.CTRL_OR_CMD]||t.shiftKey)}),eS=W({name:"resetZoom",label:"buttons.resetZoom",icon:wx,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>({appState:{...e,...Ur({viewportX:e.width/2+e.offsetLeft,viewportY:e.height/2+e.offsetTop,nextZoom:Hr(1)},e),userToFollow:null},storeAction:P.NONE}),PanelComponent:({updateData:t,appState:e})=>(0,pi.jsx)(xo,{label:g("buttons.resetZoom"),style:{height:"100%"},children:(0,pi.jsxs)(ce,{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[S.CTRL_OR_CMD]||t.shiftKey)}),tS=(t,e)=>{let[o,r,n,i]=t,a=n-o,l=e.width/a,s=i-r,d=e.height/s,c=Math.min(l,d),m=Math.floor(c/Kn)*Kn;return Math.min(Math.max(m,Js),1)},ry=({bounds:t,appState:e,fitToViewport:o=!1,viewportZoomFactor:r=.7})=>{let[n,i,a,l]=t,s=(n+a)/2,d=(i+l)/2,c,m,u;if(o){let f=a-n,b=l-i;c=Math.min(e.width/f,e.height/b)*Math.min(1,Math.max(r,.1)),c=Math.min(Math.max(c,Js),Hp);let x=e.width;if(e.openSidebar){let T=document.querySelector(".sidebar")?.offsetWidth??0;x=document.documentElement.getAttribute("dir")==="rtl"?e.width+T:e.width-T}m=x/2*(1/c)-s,u=e.height/2*(1/c)-d}else{c=tS(t,{width:e.width,height:e.height});let f=U0({scenePoint:{x:s,y:d},viewportDimensions:{width:e.width,height:e.height},zoom:{value:c}});m=f.scrollX,u=f.scrollY}return{appState:{...e,scrollX:m,scrollY:u,zoom:{value:c}},storeAction:P.NONE}},ns=({targetElements:t,appState:e,fitToViewport:o,viewportZoomFactor:r})=>{let n=Ze(ye(t));return ry({bounds:n,appState:e,fitToViewport:o,viewportZoomFactor:r})},BD=W({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:wd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return ns({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!1})},keyTest:t=>t.code===fe.TWO&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),zD=W({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:wd,trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return ns({targetElements:n.length?n:t,appState:{...e,userToFollow:null},fitToViewport:!0})},keyTest:t=>t.code===fe.THREE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),oS=W({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:wd,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>ns({targetElements:t,appState:{...e,userToFollow:null},fitToViewport:!1}),keyTest:t=>t.code===fe.ONE&&t.shiftKey&&!t.altKey&&!t[S.CTRL_OR_CMD]}),mi=W({name:"toggleTheme",label:(t,e)=>e.theme===be.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:t=>t.theme===be.LIGHT?$l:Hl,viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e,o)=>({appState:{...e,theme:o||(e.theme===be.LIGHT?be.DARK:be.LIGHT)},storeAction:P.NONE}),keyTest:t=>t.altKey&&t.shiftKey&&t.code===fe.D,predicate:(t,e,o,r)=>!!r.props.UIOptions.canvasActions.toggleTheme}),$D=W({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(t,e)=>{let o;return Ao(e)?o=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):o=it(e,{type:"eraser",lastActiveToolBeforeEraser:e.activeTool}),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:o},storeAction:P.CAPTURE}},keyTest:t=>t.key===S.E}),ny=W({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:hd,viewMode:!1,perform:(t,e,o,r)=>{let n;return Fr(e)?n=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(n=it(e,{type:"hand",lastActiveToolBeforeEraser:e.activeTool}),Fe(r.interactiveCanvas,Oe.GRAB)),{appState:{...e,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:n},storeAction:P.CAPTURE}},keyTest:t=>!t.altKey&&!t[S.CTRL_OR_CMD]&&t.key===S.H});h();var iy=v(k(),1),Oo=W({name:"finalize",label:"",trackEvent:!1,perform:(t,e,o,r)=>{let{interactiveCanvas:n,focusContainer:i,scene:a}=r,l=a.getNonDeletedElementsMap();if(e.editingLinearElement){let{elementId:u,startBindingElement:f,endBindingElement:b}=e.editingLinearElement,x=ue.getElement(u,l);if(x)return Pr(x)&&gc(x,f,b,l),{elements:x.points.length<2||ti(x)?t.filter(E=>E.id!==x.id):void 0,appState:{...e,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:P.CAPTURE}}let s=t,d=e.pendingImageElementId&&a.getElement(e.pendingImageElementId);d&&re(d,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&i();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:b}=c;(!b||f[f.length-1]!==b)&&re(c,{points:c.points.slice(0,-1)})}ti(c)&&(s=s.filter(f=>f.id!==c.id));let u=vl(c.points,e.zoom.value);if((c.type==="line"||c.type==="freedraw")&&u){let f=c.points,b=f[0];re(c,{points:f.map((x,E)=>E===f.length-1?[b[0],b[1]]:x)})}if(Pr(c)&&!u&&c.points.length>1){let[f,b]=ue.getPointAtIndexGlobalCoordinates(c,-1,pe(t));Sl(c,e,{x:f,y:b},r)}}(!e.activeTool.locked&&e.activeTool.type!=="freedraw"||!c)&&Mo(n);let m;return e.activeTool.type==="eraser"?m=it(e,{...e.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=it(e,{type:"selection"}),{elements:s,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 ue(c):e.selectedLinearElement,pendingImageElementId:null},storeAction:P.CAPTURE}},keyTest:(t,e)=>t.key===S.ESCAPE&&(e.editingLinearElement!==null||!e.draggingElement&&e.multiElement===null)||(t.key===S.ESCAPE||t.key===S.ENTER)&&e.multiElement!==null,PanelComponent:({appState:t,updateData:e,data:o})=>(0,iy.jsx)(ce,{type:"button",icon:Px,title:g("buttons.done"),"aria-label":g("buttons.done"),onClick:e,visible:t.multiElement!=null,size:o?.size||"medium"})});h();h();var ay=v(H(),1);var is=v(k(),1),ly=t=>{let{id:e}=_t(),[o,r]=(0,ay.useState)(t.value),n=a=>{t.ignoreFocus||W1(a.target);let l=a.target.value;l!==t.value&&t.onChange(l)},i=a=>{if(a.key===S.ENTER){if(a.preventDefault(),a.nativeEvent.isComposing||a.keyCode===229)return;a.currentTarget.blur()}};return(0,is.jsxs)("div",{className:"ProjectName",children:[(0,is.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${t.label}:`}),(0,is.jsx)("input",{type:"text",className:"TextInput",onBlur:n,onKeyDown:i,id:`${e}-filename`,value:o,onChange:a=>r(a.target.value)})]})};h();var Ra=v(k(),1),cy=t=>{let e=t.title||(t.value===be.DARK?g("buttons.lightMode"):g("buttons.darkMode"));return(0,Ra.jsx)(ce,{type:"icon",icon:t.value===be.LIGHT?sy.MOON:sy.SUN,title:e,"aria-label":e,onClick:()=>t.onChange(t.value===be.DARK?be.LIGHT:be.DARK),"data-testid":"toggle-dark-mode"})},sy={SUN:(0,Ra.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ra.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,Ra.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ra.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 ui=(t,{selectedElementIds:e},o)=>{t=ye(t);let r=o&&Be(t,{selectedElementIds:e}),n=null,i=r?we(t,{selectedElementIds:e},{includeBoundTextElement:!0}):t;return r&&(i.length===1&&Ee(i[0])?(n=i[0],i=Kc(t,n)):i.length>1&&(i=we(t,{selectedElementIds:e},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:n,exportedElements:pr(i)}},fi=async(t,e,o,r,{exportBackground:n,exportPadding:i=ln,viewBackgroundColor:a,name:l=o.name||D1,fileHandle:s=null,exportingFrame:d=null})=>{if(e.length===0)throw new Error(g("alerts.cannotExportEmptyCanvas"));if(t==="svg"||t==="clipboard-svg"){let m=zc(e,{exportBackground:n,exportWithDarkMode:o.exportWithDarkMode,viewBackgroundColor:a,exportPadding:i,exportScale:o.exportScale,exportEmbedScene:o.exportEmbedScene&&t==="svg"},r,{exportingFrame:d});if(t==="svg")return lu(m.then(u=>new Blob([u.outerHTML],{type:Dt.svg})),{description:"Export to SVG",name:l,extension:o.exportEmbedScene?"excalidraw.svg":"svg",fileHandle:s});if(t==="clipboard-svg"){let u=await m.then(f=>f.outerHTML);try{await Ji(u)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return}}let c=h0(e,o,r,{exportBackground:n,viewBackgroundColor:a,exportPadding:i,exportingFrame:d});if(t==="png"){let m=$r(c);return o.exportEmbedScene&&(m=m.then(u=>import("./excalidraw-assets/image-35KQQ5EN.js").then(({encodePngMetadata:f})=>f({blob:u,metadata:uu(e,o,r,"local")})))),lu(m,{description:"Export to PNG",name:l,extension:"png",fileHandle:s})}else if(t==="clipboard")try{let m=$r(c);await y0(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):Mr&&m.name==="TypeError"?new Error(`${g("alerts.couldNotCopyToClipboard")}
|
|
57
|
+
`)},LA=function(){var e=parseInt(document.body.getAttribute(fc)||"0",10);return isFinite(e)?e:0},E9=function(){gc.useEffect(function(){return document.body.setAttribute(fc,(LA()+1).toString()),function(){var e=LA()-1;e<=0?document.body.removeAttribute(fc):document.body.setAttribute(fc,e.toString())}},[])},Cy=function(e){var t=e.noRelative,r=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;E9();var a=gc.useMemo(function(){return Ty(i)},[i]);return gc.createElement(v9,{styles:y9(a,!t,i,r?"":"!important")})};v();var Iy=!1;if(typeof window<"u")try{um=Object.defineProperty({},"passive",{get:function(){return Iy=!0,!0}}),window.addEventListener("test",um,um),window.removeEventListener("test",um,um)}catch{Iy=!1}var um,Dl=Iy?{passive:!1}:!1;v();var w9=function(e){return e.tagName==="TEXTAREA"},RA=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!w9(e)&&r[t]==="visible")},S9=function(e){return RA(e,"overflowY")},T9=function(e){return RA(e,"overflowX")},_y=function(e,t){var r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=DA(e,r);if(o){var i=NA(e,r),a=i[1],s=i[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==document.body);return!1},C9=function(e){var t=e.scrollTop,r=e.scrollHeight,o=e.clientHeight;return[t,r,o]},I9=function(e){var t=e.scrollLeft,r=e.scrollWidth,o=e.clientWidth;return[t,r,o]},DA=function(e,t){return e==="v"?S9(t):T9(t)},NA=function(e,t){return e==="v"?C9(t):I9(t)},_9=function(e,t){return e==="h"&&t==="rtl"?-1:1},OA=function(e,t,r,o,i){var a=_9(e,window.getComputedStyle(t).direction),s=a*o,c=r.target,d=t.contains(c),u=!1,f=s>0,m=0,g=0;do{var h=NA(e,c),b=h[0],y=h[1],T=h[2],k=y-T-a*b;(b||k)&&DA(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))&&(u=!0),u};var ag=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},FA=function(e){return[e.deltaX,e.deltaY]},BA=function(e){return e&&"current"in e?e.current:e},A9=function(e,t){return e[0]===t[0]&&e[1]===t[1]},k9=function(e){return`
|
|
58
|
+
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
59
|
+
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
60
|
+
`)},P9=0,hc=[];function zA(e){var t=Rt.useRef([]),r=Rt.useRef([0,0]),o=Rt.useRef(),i=Rt.useState(P9++)[0],a=Rt.useState(function(){return mm()})[0],s=Rt.useRef(e);Rt.useEffect(function(){s.current=e},[e]),Rt.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=SA([e.lockRef.current],(e.shards||[]).map(BA),!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=Rt.useCallback(function(y,T){if("touches"in y&&y.touches.length===2)return!s.current.allowPinchZoom;var k=ag(y),I=r.current,C="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(C)>Math.abs(O)?"h":"v";if("touches"in y&&F==="h"&&L.type==="range")return!1;var D=_y(F,L);if(!D)return!0;if(D?z=F:(z=F==="v"?"h":"v",D=_y(F,L)),!D)return!1;if(!o.current&&"changedTouches"in y&&(C||O)&&(o.current=z),!z)return!0;var V=o.current||z;return OA(V,T,y,V==="h"?C:O,!0)},[]),d=Rt.useCallback(function(y){var T=y;if(!(!hc.length||hc[hc.length-1]!==a)){var k="deltaY"in T?FA(T):ag(T),I=t.current.filter(function(z){return z.name===T.type&&z.target===T.target&&A9(z.delta,k)})[0];if(I&&I.should){T.cancelable&&T.preventDefault();return}if(!I){var C=(s.current.shards||[]).map(BA).filter(Boolean).filter(function(z){return z.contains(T.target)}),O=C.length>0?c(T,C[0]):!s.current.noIsolation;O&&T.cancelable&&T.preventDefault()}}},[]),u=Rt.useCallback(function(y,T,k,I){var C={name:y,delta:T,target:k,should:I};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(O){return O!==C})},1)},[]),f=Rt.useCallback(function(y){r.current=ag(y),o.current=void 0},[]),m=Rt.useCallback(function(y){u(y.type,FA(y),y.target,c(y,e.lockRef.current))},[]),g=Rt.useCallback(function(y){u(y.type,ag(y),y.target,c(y,e.lockRef.current))},[]);Rt.useEffect(function(){return hc.push(a),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Dl),document.addEventListener("touchmove",d,Dl),document.addEventListener("touchstart",f,Dl),function(){hc=hc.filter(function(y){return y!==a}),document.removeEventListener("wheel",d,Dl),document.removeEventListener("touchmove",d,Dl),document.removeEventListener("touchstart",f,Dl)}},[]);var h=e.removeScrollBar,b=e.inert;return Rt.createElement(Rt.Fragment,null,b?Rt.createElement(a,{styles:k9(i)}):null,h?Rt.createElement(Cy,{gapMode:"margin"}):null)}var $A=vy(ig,zA);var HA=lg.forwardRef(function(e,t){return lg.createElement(dm,So({},e,{ref:t,sideCar:$A}))});HA.classNames=dm.classNames;var Ay=HA;var UA="Popover",[GA,bX]=qn(UA,[py]),sg=py(),[M9,bc]=GA(UA),L9=e=>{let{__scopePopover:t,children:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,c=sg(t),d=(0,Xe.useRef)(null),[u,f]=(0,Xe.useState)(!1),[m=!1,g]=uc({prop:o,defaultProp:i,onChange:a});return(0,Xe.createElement)(fA,c,(0,Xe.createElement)(M9,{scope:t,contentId:sc(),triggerRef:d,open:m,onOpenChange:g,onOpenToggle:(0,Xe.useCallback)(()=>g(h=>!h),[g]),hasCustomAnchor:u,onCustomAnchorAdd:(0,Xe.useCallback)(()=>f(!0),[]),onCustomAnchorRemove:(0,Xe.useCallback)(()=>f(!1),[]),modal:s},r))};var R9="PopoverTrigger",D9=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=bc(R9,r),a=sg(r),s=Nr(t,i.triggerRef),c=(0,Xe.createElement)(jt.button,Ye({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":YA(i.open)},o,{ref:s,onClick:cr(e.onClick,i.onOpenToggle)}));return i.hasCustomAnchor?c:(0,Xe.createElement)(gA,Ye({asChild:!0},a),c)}),WA="PopoverPortal",[N9,O9]=GA(WA,{forceMount:void 0}),F9=e=>{let{__scopePopover:t,forceMount:r,children:o,container:i}=e,a=bc(WA,t);return(0,Xe.createElement)(N9,{scope:t,forceMount:r},(0,Xe.createElement)(mc,{present:r||a.open},(0,Xe.createElement)(vA,{asChild:!0,container:i},o)))},pm="PopoverContent",B9=(0,Xe.forwardRef)((e,t)=>{let r=O9(pm,e.__scopePopover),{forceMount:o=r.forceMount,...i}=e,a=bc(pm,e.__scopePopover);return(0,Xe.createElement)(mc,{present:o||a.open},a.modal?(0,Xe.createElement)(z9,Ye({},i,{ref:t})):(0,Xe.createElement)($9,Ye({},i,{ref:t})))}),z9=(0,Xe.forwardRef)((e,t)=>{let r=bc(pm,e.__scopePopover),o=(0,Xe.useRef)(null),i=Nr(t,o),a=(0,Xe.useRef)(!1);return(0,Xe.useEffect)(()=>{let s=o.current;if(s)return wA(s)},[]),(0,Xe.createElement)(Ay,{as:_a,allowPinchZoom:!0},(0,Xe.createElement)(KA,Ye({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:cr(e.onCloseAutoFocus,s=>{var c;s.preventDefault(),a.current||(c=r.triggerRef.current)===null||c===void 0||c.focus()}),onPointerDownOutside:cr(e.onPointerDownOutside,s=>{let c=s.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,u=c.button===2||d;a.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:cr(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})))}),$9=(0,Xe.forwardRef)((e,t)=>{let r=bc(pm,e.__scopePopover),o=(0,Xe.useRef)(!1);return(0,Xe.createElement)(KA,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()}}))}),KA=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:f,...m}=e,g=bc(pm,r),h=sg(r);return P_(),(0,Xe.createElement)(N_,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:a},(0,Xe.createElement)(I_,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:u,onDismiss:()=>g.onOpenChange(!1)},(0,Xe.createElement)(hA,Ye({"data-state":YA(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 H9=(0,Xe.forwardRef)((e,t)=>{let{__scopePopover:r,...o}=e,i=sg(r);return(0,Xe.createElement)(bA,Ye({},i,o,{ref:t}))});function YA(e){return e?"open":"closed"}var xc=L9;var vc=D9,VA=F9,cg=B9;var dg=H9;var ik=w(j(),1);v();var Dn=w(j(),1);v();var ug=w(j(),1),qA=w(Zn(),1);v();var ky=w(j(),1),Py=ky.default.createContext(null),it=()=>ky.default.useContext(Py);v();var gm=w(j(),1);var mg=e=>{let[t,r]=(0,gm.useState)(null),o=rt(),{theme:i}=it(),{container:a}=sr();return(0,gm.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,gm.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 XA=w(j(),1);function yc(e,t,r){(0,XA.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 ZA=w(j(),1),Ec=e=>{let t=(0,ZA.useRef)(e);return Object.assign(t.current,e),t.current};var JA=w(M(),1),Ma=St(null),jA=({onCancel:e,onChange:t,onSelect:r,colorPickerType:o})=>{let i=mg({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),a=it(),s=La(),c=_r(),d=Oe(s,a),u=Ec({app:c,onCancel:e,onChange:t,onSelect:r,selectedElements:d}),{container:f}=sr();(0,ug.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 TS(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&&u.onChange(o,V,u.selectedElements,{altKey:D}),g.style.background=V},k=()=>{u.onCancel()},I=(L,F)=>{u.onSelect(L,F)},C=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:u.app.lastViewportPosition.x,clientY:u.app.lastViewportPosition.y,altKey:!1}),i.addEventListener("keydown",z),i.addEventListener("pointerdown",C),i.addEventListener("pointerup",O),window.addEventListener("pointermove",T,{passive:!0}),window.addEventListener("blur",k),()=>{h=!1,i.removeEventListener("keydown",z),i.removeEventListener("pointerdown",C),i.removeEventListener("pointerup",O),window.removeEventListener("pointermove",T),window.removeEventListener("blur",k)}},[u,c.canvas,i,o,f,a.offsetLeft,a.offsetTop]);let m=(0,ug.useRef)(null);return yc(m,()=>{e()},g=>!!g.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),i?(0,qA.createPortal)((0,JA.jsx)("div",{ref:m,className:"excalidraw-eye-dropper-preview"}),i):null};var Jn=w(M(),1),QA=({color:e,onChange:t,label:r,colorPickerType:o})=>{let i=rt(),[a,s]=(0,Dn.useState)(e),[c,d]=Ve(an);(0,Dn.useEffect)(()=>{s(e)},[e]);let u=(0,Dn.useCallback)(b=>{let y=b.toLowerCase(),T=ek(y);T&&t(T),s(y)},[t]),f=(0,Dn.useRef)(null),m=(0,Dn.useRef)(null);(0,Dn.useEffect)(()=>{f.current&&f.current.focus()},[c]);let[g,h]=Ve(Ma,mt);return(0,Dn.useEffect)(()=>()=>{h(null)},[h]),(0,Jn.jsxs)("div",{className:"color-picker__input-label",children:[(0,Jn.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,Jn.jsx)("input",{ref:c==="hex"?f:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":r,onChange:b=>{u(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,Jn.jsxs)(Jn.Fragment,{children:[(0,Jn.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,Jn.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:FT})]})]})};v();var ok=w(j(),1);v();var tk=w(j(),1);var rk=w(M(),1),xr=tk.default.forwardRef(({children:e,padding:t,className:r,style:o},i)=>(0,rk.jsx)("div",{className:q("Island",r),style:{"--padding":t,...o},ref:i,children:e}));var wc=w(M(),1),pg=ok.default.forwardRef(({className:e,container:t,children:r,style:o,onClose:i,onKeyDown:a,onFocusOutside:s,onPointerLeave:c,onPointerDownOutside:d},u)=>{let f=rt();return(0,wc.jsx)(VA,{container:t,children:(0,wc.jsxs)(cg,{ref:u,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&&!e2(document.activeElement)&&t.focus(),i()},children:[(0,wc.jsx)(xr,{padding:3,style:o,children:r}),(0,wc.jsx)(dg,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})});var Wr=w(M(),1),nk=e=>{let t=new Option().style;return t.color=e,!!t.color},ek=e=>pl(e)?e:nk(`#${e}`)?`#${e}`:nk(e)?e:null,U9=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=xi,updateData:s})=>{let{container:c}=sr(),[,d]=Ve(an),[u,f]=Ve(Ma,mt),m=(0,Wr.jsxs)("div",{children:[(0,Wr.jsx)(ic,{children:E("colorPicker.hexCode")}),(0,Wr.jsx)(QA,{color:t,label:o,onChange:b=>{r(b)},colorPickerType:e})]}),g=(0,ik.useRef)(null),h=()=>{g.current?.querySelector(".color-picker-content")?.focus()};return(0,Wr.jsx)(pg,{container:c,style:{maxWidth:"208px"},onFocusOutside:b=>{h(),b.preventDefault()},onPointerDownOutside:b=>{u&&b.preventDefault()},onClose:()=>{s({openPopup:null}),d(null)},children:a?(0,Wr.jsx)(x_,{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=>{u?f(null):s({openPopup:null})},label:o,type:e,elements:i,updateData:s,children:m}):m})},G9=({label:e,color:t,type:r})=>(0,Wr.jsx)(vc,{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,Wr.jsx)("div",{className:"color-picker__button-outline"})}),hm=({type:e,color:t,onChange:r,label:o,elements:i,palette:a=xi,topPicks:s,updateData:c,appState:d})=>(0,Wr.jsx)("div",{children:(0,Wr.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,Wr.jsx)(l_,{activeColor:t,onChange:r,type:e,topPicks:s}),(0,Wr.jsx)(zf,{}),(0,Wr.jsxs)(xc,{open:d.openPopup===e,onOpenChange:u=>{c({openPopup:u?e:null})},children:[(0,Wr.jsx)(G9,{color:t,label:o,type:e}),d.openPopup===e&&(0,Wr.jsx)(U9,{type:e,color:t,onChange:r,label:o,elements:i,palette:a,updateData:c})]})]})});v();var Da=w(j(),1);v();var Ra=w(j(),1);var ak=w(Zn(),1);var lk=w(M(),1),fg=({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 u=(0,Ra.useRef)(null);(0,Ra.useEffect)(()=>{let m=u.current;if(!m)return;m.contains(document.activeElement)||m.focus();let g=h=>{if(h.key===R.TAB){let b=kd(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,Ra.useRef)(null);return(0,Ra.useLayoutEffect)(()=>{if(i&&u.current&&r!=null&&t!=null){let m=u.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,Ra.useEffect)(()=>{if(o){let m=g=>{u.current?.contains(g.target)||(0,ak.unstable_batchedUpdates)(()=>o(g))};return document.addEventListener("pointerdown",m,!1),()=>document.removeEventListener("pointerdown",m,!1)}},[o]),(0,lk.jsx)("div",{className:"popover",ref:u,tabIndex:-1,children:e})};var ao=w(M(),1);function W9({options:e,value:t,label:r,onChange:o,onClose:i}){let a=Da.default.useRef(),s=Da.default.useRef(),c=Da.default.useRef(null);return Da.default.useEffect(()=>{s.current?s.current.focus():c.current&&c.current.focus()},[]),(0,ao.jsx)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":r,onKeyDown:u=>{let f=e.find(m=>m.keyBinding===u.key.toLowerCase());if(!(u.metaKey||u.altKey||u.ctrlKey)&&f){let m=e.indexOf(f);c.current.children[m].focus(),u.preventDefault()}else if(u.key===R.TAB)setTimeout(()=>{let m=s.current,g=document.activeElement;m!==g&&i()},0);else if(Bs(u.key)){let{activeElement:m}=document,g=Ri().rtl,h=Array.prototype.indexOf.call(c.current.children,m);if(h!==-1){let b=e.length,y=h;switch(u.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()}u.preventDefault()}else(u.key===R.ESCAPE||u.key===R.ENTER)&&(u.preventDefault(),i());u.nativeEvent.stopImmediatePropagation(),u.stopPropagation()},children:(0,ao.jsx)("div",{className:"picker-content",ref:c,children:e.map((u,f)=>(0,ao.jsxs)("button",{type:"button",className:q("picker-option",{active:t===u.value}),onClick:m=>{m.currentTarget.focus(),o(u.value)},title:`${u.text} ${u.keyBinding&&`\u2014 ${u.keyBinding.toUpperCase()}`}`,"aria-label":u.text||"none","aria-keyshortcuts":u.keyBinding||void 0,ref:m=>{m&&f===0&&(a.current=m),m&&u.value===t&&(s.current=m)},onFocus:()=>{o(u.value)},children:[u.icon,u.keyBinding&&(0,ao.jsx)("span",{className:"picker-keybinding",children:u.keyBinding})]},u.text))})})}function My({value:e,label:t,options:r,onChange:o,group:i=""}){let[a,s]=Da.default.useState(!1),c=Da.default.useRef(null),d=Ri().rtl;return(0,ao.jsxs)("div",{children:[(0,ao.jsx)("button",{name:i,type:"button",className:a?"active":"","aria-label":t,onClick:()=>s(!a),ref:c,children:r.find(u=>u.value===e)?.icon}),(0,ao.jsx)(Da.default.Suspense,{fallback:"",children:a?(0,ao.jsxs)(ao.Fragment,{children:[(0,ao.jsx)(fg,{onCloseRequest:u=>u.target!==c.current&&s(!1),...d?{right:5.5}:{left:-5.5},children:(0,ao.jsx)(W9,{options:r.filter(u=>u.showInPicker!==!1),value:e,label:t,onChange:o,onClose:()=>{s(!1),c.current?.focus()}})}),(0,ao.jsx)("div",{className:"picker-triangle"})]}):null})]})}v();var Tc=w(j(),1);v();var vr=w(j(),1);v();var sk=w(j(),1);var hg=w(M(),1),gg=sk.default.forwardRef(({className:e,placeholder:t,onChange:r},o)=>(0,hg.jsxs)("div",{className:q("QuickSearch__wrapper",e),children:[Rp,(0,hg.jsx)("input",{ref:o,className:"QuickSearch__input",type:"text",placeholder:t,onChange:i=>r(i.target.value.trim().toLowerCase())})]}));v();var ck=w(j(),1);var Ly=w(M(),1),bg=({className:e,placeholder:t,children:r})=>{let o=!ck.Children.count(r);return(0,Ly.jsx)("div",{className:q("ScrollableList__wrapper",e),role:"menu",children:o?(0,Ly.jsx)("div",{className:"empty",children:t}):r})};v();var xg=w(M(),1),dk=({children:e,className:t="",style:r,title:o})=>(0,xg.jsxs)("div",{className:`dropdown-menu-group ${t}`,style:r,children:[o&&(0,xg.jsx)("p",{className:"dropdown-menu-group-title",children:o}),e]}),bm=dk;dk.displayName="DropdownMenuGroup";v();var Tg=w(j(),1);v();var vg=w(j(),1);var Ry=vg.default.createContext({}),yg=(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(),Eg=(e,t)=>{let r=(0,vg.useContext)(Ry);return ua(e,o=>{let i=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});t?.(i),i.defaultPrevented||r.onSelect?.(i)})};v();var Na=w(M(),1),K9=({textStyle:e,icon:t,shortcut:r,children:o})=>{let i=rt();return(0,Na.jsxs)(Na.Fragment,{children:[t&&(0,Na.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Na.jsx)("div",{style:e,className:"dropdown-menu-item__text",children:o}),r&&!i.editor.isMobile&&(0,Na.jsx)("div",{className:"dropdown-menu-item__shortcut",children:r})]})},wg=K9;var Sg=w(M(),1),Dy=({icon:e,value:t,order:r,children:o,shortcut:i,className:a,hovered:s,selected:c,textStyle:d,onSelect:u,onClick:f,...m})=>{let g=Eg(f,u),h=(0,Tg.useRef)(null);return(0,Tg.useEffect)(()=>{s&&(r===0?h.current?.scrollIntoView({block:"end"}):h.current?.scrollIntoView({block:"nearest"}))},[s,r]),(0,Sg.jsx)("button",{...m,ref:h,value:t,onClick:g,className:yg(a,c,s),title:m.title??m["aria-label"],children:(0,Sg.jsx)(wg,{textStyle:d,icon:e,shortcut:i,children:o})})};Dy.displayName="DropdownMenuItem";var Sc={GREEN:"green",RED:"red",BLUE:"blue"},Cg=({type:e=Sc.BLUE,children:t})=>{let{theme:r}=Qn(),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 Sc.GREEN:Object.assign(o,{backgroundColor:"var(--background-color-badge)",color:"var(--color-badge)"});break;case Sc.RED:Object.assign(o,{backgroundColor:"pink",color:"darkred"});break;case Sc.BLUE:default:Object.assign(o,{background:"var(--color-promo)",color:"var(--color-surface-lowest)"})}return(0,Sg.jsx)("div",{className:"DropDownMenuItemBadge",style:o,children:t})};Cg.displayName="DropdownMenuItemBadge";Dy.Badge=Cg;var To=Dy;v();var mk=({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 Bi=w(M(),1),uk=vr.default.memo(({selectedFontFamily:e,hoveredFontFamily:t,onSelect:r,onHover:o,onLeave:i,onOpen:a,onClose:s})=>{let{container:c}=sr(),{fonts:d}=_r(),{showDeprecatedFonts:u}=ei(),[f,m]=(0,vr.useState)(""),g=(0,vr.useRef)(null),h=(0,vr.useMemo)(()=>Array.from(vl.registered.entries()).filter(([D,{metadata:V}])=>!V.serverSide).map(([D,{metadata:V,fonts:U}])=>{let Q={value:D,icon:V.icon,text:U[0].fontFace.family};return V.deprecated&&Object.assign(Q,{deprecated:V.deprecated,badge:{type:Sc.RED,placeholder:E("fontList.badge.old")}}),Q}).sort((D,V)=>D.text.toLowerCase()>V.text.toLowerCase()?1:-1),[]),b=(0,vr.useMemo)(()=>new Set(d.getSceneFontFamilies()),[e]),y=(0,vr.useMemo)(()=>h.filter(D=>b.has(D.value)),[h,b]),T=(0,vr.useMemo)(()=>h.filter(D=>!b.has(D.value)&&(u||!D.deprecated)),[h,b,u]),k=(0,vr.useMemo)(()=>l2([...y,...T].filter(D=>D.text?.toLowerCase().includes(f))),[y,T,f]),I=(0,vr.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]),C=(0,vr.useCallback)(D=>{mk({event:D,inputRef:g,hoveredFont:I,filteredFonts:k,onSelect:r,onHover:o,onClose:s})&&(D.preventDefault(),D.stopPropagation())},[I,k,r,o,s]);(0,vr.useEffect)(()=>(a(),()=>{s()}),[]);let O=(0,vr.useMemo)(()=>k.filter(D=>b.has(D.value)),[k,b]),z=(0,vr.useMemo)(()=>k.filter(D=>!b.has(D.value)),[k,b]),L=(D,V)=>(0,Bi.jsxs)(To,{icon:D.icon,value:D.value,order:V,textStyle:{fontFamily:cl({fontFamily:D.value})},hovered:D.value===I?.value,selected:D.value===e,tabIndex:D.value===e?0:-1,onClick:U=>{r(Number(U.currentTarget.value))},onMouseMove:()=>{I?.value!==D.value&&o(D.value)},children:[D.text,D.badge&&(0,Bi.jsx)(Cg,{type:D.badge.type,children:D.badge.placeholder})]},D.value),F=[];return O.length&&F.push((0,Bi.jsx)(bm,{title:E("fontList.sceneFonts"),children:O.map(L)},"group_1")),z.length&&F.push((0,Bi.jsx)(bm,{title:E("fontList.availableFonts"),children:z.map((D,V)=>L(D,V+O.length))},"group_2")),(0,Bi.jsxs)(pg,{className:"properties-content",container:c,style:{width:"15rem"},onClose:s,onPointerLeave:i,onKeyDown:C,children:[(0,Bi.jsx)(gg,{ref:g,placeholder:E("quickSearch.placeholder"),onChange:dl(m,20)}),(0,Bi.jsx)(bg,{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 pk=w(j(),1);var Ig=w(M(),1),fk=({selectedFontFamily:e})=>{let t=(0,pk.useMemo)(()=>!!(e&&!gk(e)),[e]);return(0,Ig.jsx)(vc,{asChild:!0,children:(0,Ig.jsx)("div",{children:(0,Ig.jsx)(Ff,{standalone:!0,icon:B2,title:E("labels.showFonts"),className:"properties-trigger",testId:"font-family-show-fonts",active:t,onClick:()=>{}})})})};var Oa=w(M(),1),hk=[{value:ll.Excalifont,icon:Ep,text:E("labels.handDrawn"),testId:"font-family-handrawn"},{value:ll.Nunito,icon:CT,text:E("labels.normal"),testId:"font-family-normal"},{value:ll["Comic Shanns"],icon:IT,text:E("labels.code"),testId:"font-family-code"}],Y9=new Set(hk.map(e=>e.value)),gk=e=>e?Y9.has(e):!1,bk=Tc.default.memo(({isOpened:e,selectedFontFamily:t,hoveredFontFamily:r,onSelect:o,onHover:i,onLeave:a,onPopupChange:s})=>{let c=(0,Tc.useMemo)(()=>hk,[]),d=(0,Tc.useCallback)(u=>{u&&o(u)},[o]);return(0,Oa.jsxs)("div",{role:"dialog","aria-modal":"true",className:"FontPicker__container",children:[(0,Oa.jsx)(nn,{type:"button",options:c,value:t,onClick:d}),(0,Oa.jsx)(zf,{}),(0,Oa.jsxs)(xc,{open:e,onOpenChange:s,children:[(0,Oa.jsx)(fk,{selectedFontFamily:t}),e&&(0,Oa.jsx)(uk,{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 Se=w(M(),1),vk=.1,lo=(e,t,r,o=!1)=>{let i=Re(Oe(e,t,{includeBoundTextElement:o}));return e.map(a=>i.get(a.id)||a.id===t.editingElement?.id?r(a):a)},so=function(e,t,r,o,i){let a=t.editingElement,s=We(e),c=null;return a&&(c=r(a)),c||(gt(s,t)?c=LI(o===!0?s:s.filter(u=>o(u)),t,r)??(typeof i=="function"?i(!0):i):c=typeof i=="function"?i(!1):i),c},V9=(e,t)=>Ir(t)||!t.autoResize?t:ce(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),Ny=(e,t,r,o,i)=>{let a=new Set;return{elements:lo(e,t,s=>{if(he(s)){let c=o(s);a.add(c);let d=ke(s,{fontSize:c});return qt(d,r.scene.getContainerElement(s),r.scene.getNonDeletedElementsMap()),d=V9(s,d),d}return s},!0),appState:{...t,currentItemFontSize:a.size===1?[...a][0]:i??t.currentItemFontSize},storeAction:W.CAPTURE}},X9=re({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemStrokeColor&&{elements:lo(e,t,o=>Wd(o.type)?ke(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,Se.jsxs)(Se.Fragment,{children:[(0,Se.jsx)("h3",{"aria-hidden":"true",children:E("labels.stroke")}),(0,Se.jsx)(hm,{topPicks:Vu,palette:wS,type:"elementStroke",label:E("labels.stroke"),color:so(e,t,i=>i.strokeColor,!0,t.currentItemStrokeColor),onChange:i=>r({currentItemStrokeColor:i}),elements:e,appState:t,updateData:r})]})}),Z9=re({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(e,t,r)=>({...r.currentItemBackgroundColor&&{elements:lo(e,t,o=>ke(o,{backgroundColor:r.currentItemBackgroundColor}))},appState:{...t,...r},storeAction:r.currentItemBackgroundColor?W.CAPTURE:W.NONE}),PanelComponent:({elements:e,appState:t,updateData:r,appProps:o})=>(0,Se.jsxs)(Se.Fragment,{children:[(0,Se.jsx)("h3",{"aria-hidden":"true",children:E("labels.background")}),(0,Se.jsx)(hm,{topPicks:Xu,palette:SS,type:"elementBackground",label:E("labels.background"),color:so(e,t,i=>i.backgroundColor,!0,t.currentItemBackgroundColor),onChange:i=>r({currentItemBackgroundColor:i}),elements:e,appState:t,updateData:r})]})}),q9=re({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(e,t,r,o)=>(ze("element","changeFillStyle",`${r} (${o.device.editor.isMobile?"mobile":"desktop"})`),{elements:lo(e,t,i=>ke(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,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.fill")}),(0,Se.jsx)(nn,{type:"button",options:[{value:"hachure",text:`${i?E("labels.zigzag"):E("labels.hachure")} (${X("Alt-Click")})`,icon:i?eT:tT,active:i?!0:void 0,testId:"fill-hachure"},{value:"cross-hatch",text:E("labels.crossHatch"),icon:rT,testId:"fill-cross-hatch"},{value:"solid",text:E("labels.solid"),icon:oT,testId:"fill-solid"}],value:so(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)}})]})}}),j9=re({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{strokeWidth:r})),appState:{...t,currentItemStrokeWidth:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.strokeWidth")}),(0,Se.jsx)(nn,{group:"stroke-width",options:[{value:sp.thin,text:E("labels.thin"),icon:Qx,testId:"strokeWidth-thin"},{value:sp.bold,text:E("labels.bold"),icon:nT,testId:"strokeWidth-bold"},{value:sp.extraBold,text:E("labels.extraBold"),icon:iT,testId:"strokeWidth-extraBold"}],value:so(e,t,o=>o.strokeWidth,o=>o.hasOwnProperty("strokeWidth"),o=>o?null:t.currentItemStrokeWidth),onChange:o=>r(o)})]})}),J9=re({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{seed:x2(),roughness:r})),appState:{...t,currentItemRoughness:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.sloppiness")}),(0,Se.jsx)(nn,{group:"sloppiness",options:[{value:0,text:E("labels.architect"),icon:sT},{value:1,text:E("labels.artist"),icon:cT},{value:2,text:E("labels.cartoonist"),icon:dT}],value:so(e,t,o=>o.roughness,o=>o.hasOwnProperty("roughness"),o=>o?null:t.currentItemRoughness),onChange:o=>r(o)})]})}),Lj=re({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{strokeStyle:r})),appState:{...t,currentItemStrokeStyle:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.strokeStyle")}),(0,Se.jsx)(nn,{group:"strokeStyle",options:[{value:"solid",text:E("labels.strokeStyle_solid"),icon:Qx},{value:"dashed",text:E("labels.strokeStyle_dashed"),icon:aT},{value:"dotted",text:E("labels.strokeStyle_dotted"),icon:lT}],value:so(e,t,o=>o.strokeStyle,o=>o.hasOwnProperty("strokeStyle"),o=>o?null:t.currentItemStrokeStyle),onChange:o=>r(o)})]})}),Q9=re({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>ke(o,{opacity:r}),!0),appState:{...t,currentItemOpacity:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("label",{className:"control-label",children:[E("labels.opacity"),(0,Se.jsx)("input",{type:"range",min:"0",max:"100",step:"10",onChange:o=>r(+o.target.value),value:so(e,t,o=>o.opacity,!0,t.currentItemOpacity)??void 0})]})}),eF=re({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(e,t,r,o)=>Ny(e,t,o,()=>r,r),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.fontSize")}),(0,Se.jsx)(nn,{group:"font-size",options:[{value:16,text:E("labels.small"),icon:ET,testId:"fontSize-small"},{value:20,text:E("labels.medium"),icon:wT,testId:"fontSize-medium"},{value:28,text:E("labels.large"),icon:ST,testId:"fontSize-large"},{value:36,text:E("labels.veryLarge"),icon:TT,testId:"fontSize-veryLarge"}],value:so(e,t,i=>{if(he(i))return i.fontSize;let a=je(i,o.scene.getNonDeletedElementsMap());return a?a.fontSize:null},i=>he(i)||je(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:t.currentItemFontSize||Es),onChange:i=>r(i)})]})}),Oy=re({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:xl,trackEvent:!1,perform:(e,t,r,o)=>Ny(e,t,o,i=>Math.round(1/(1+vk)*i.fontSize)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_LEFT||e.key===R.COMMA)}),Fy=re({name:"increaseFontSize",label:"labels.increaseFontSize",icon:xl,trackEvent:!1,perform:(e,t,r,o)=>Ny(e,t,o,i=>Math.round(i.fontSize*(1+vk))),keyTest:e=>e[R.CTRL_OR_CMD]&&e.shiftKey&&(e.key===R.CHEVRON_RIGHT||e.key===R.PERIOD)}),tF=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:lo(e,t,y=>{let T=i?.get(y.id);return T?ke(y,{...T}):y},!0),appState:{...t,...c},storeAction:W.UPDATE};let{currentItemFontFamily:d,currentHoveredFontFamily:u}=r,f=W.NONE,m,g=!1;if(d)m=d,f=W.CAPTURE;else if(u){m=u,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(ll).find(([z,L])=>L===m)?.[0];u&&I&&k.some(z=>z.startsWith(I))&&(T=!0),Object.assign(h,{elements:lo(e,t,z=>{if(he(z)&&(z.fontFamily!==m||d)){let L=ke(z,{fontFamily:m,lineHeight:Ii(m)}),F=i?.get(z.containerId||"")||{},D=o.scene.getContainerElement(z);return s&&D&&F&&ce(D,{...F},!1),T||(y=new Set([...y,...Array.from(L.originalText)])),b.set(L,D),L}return z},!0)});let C=`10px ${cl({fontFamily:m})}`,O=Array.from(y.values()).join();if(T||window.document.fonts.check(C,O))for(let[z,L]of b)qt(z,L,o.scene.getNonDeletedElementsMap(),!1);else window.document.fonts.load(C,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&&qt(D,V,o.scene.getNonDeletedElementsMap(),!1)}o.fonts.onLoaded(z)})}return h},PanelComponent:({elements:e,appState:t,app:r,updateData:o})=>{let i=(0,sn.useRef)(new Map),a=(0,sn.useRef)(null),[s,c]=(0,sn.useState)({}),d=(0,sn.useRef)(!0),u=(0,sn.useMemo)(()=>{let f=(m,g)=>so(m,t,h=>{if(he(h))return h.fontFamily;let b=je(h,g);return b?b.fontFamily:null},h=>he(h)||je(h,g)!==null,h=>h?null:t.currentItemFontFamily||ws);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,sn.useEffect)(()=>{a.current=u},[u]),(0,sn.useEffect)(()=>{Object.keys(s).length&&(o(s),c({}))},[s]),(0,sn.useEffect)(()=>(d.current=!1,()=>{d.current=!0}),[]),(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.fontFamily")}),(0,Se.jsx)(bk,{isOpened:t.openPopup==="fontFamily",selectedFontFamily:u,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,ke(g||m,{},!0))}else{let g=Oe(e,t,{includeBoundTextElement:!0});for(let h of g)i.current.set(h.id,ke(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()}}})]})}}),rF=re({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(e,t,r,o)=>({elements:lo(e,t,i=>{if(he(i)){let a=ke(i,{textAlign:r});return qt(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,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.textAlign")}),(0,Se.jsx)(nn,{group:"text-align",options:[{value:"left",text:E("labels.left"),icon:_T,testId:"align-left"},{value:"center",text:E("labels.center"),icon:AT,testId:"align-horizontal-center"},{value:"right",text:E("labels.right"),icon:kT,testId:"align-right"}],value:so(e,t,a=>{if(he(a))return a.textAlign;let s=je(a,i);return s?s.textAlign:null},a=>he(a)||je(a,i)!==null,a=>a?null:t.currentItemTextAlign),onChange:a=>r(a)})]})}}),oF=re({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:lo(e,t,i=>{if(he(i)){let a=ke(i,{verticalAlign:r});return qt(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,Se.jsx)("fieldset",{children:(0,Se.jsx)(nn,{group:"text-align",options:[{value:Zo.TOP,text:E("labels.alignTop"),icon:(0,Se.jsx)(PT,{theme:t.theme}),testId:"align-top"},{value:Zo.MIDDLE,text:E("labels.centerVertically"),icon:(0,Se.jsx)(LT,{theme:t.theme}),testId:"align-middle"},{value:Zo.BOTTOM,text:E("labels.alignBottom"),icon:(0,Se.jsx)(MT,{theme:t.theme}),testId:"align-bottom"}],value:so(e,t,i=>{if(he(i)&&i.containerId)return i.verticalAlign;let a=je(i,o.scene.getNonDeletedElementsMap());return a?a.verticalAlign:null},i=>he(i)||je(i,o.scene.getNonDeletedElementsMap())!==null,i=>i?null:Zo.MIDDLE),onChange:i=>r(i)})})}),Rj=re({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>dt(o)?o:ke(o,{roundness:r==="round"?{type:Is(o.type)?bo.ADAPTIVE_RADIUS:bo.PROPORTIONAL_RADIUS}:null})),appState:{...t,currentItemRoundness:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>{let i=Sf(We(e),t).some(a=>a.roundness?.type===bo.LEGACY);return(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.edges")}),(0,Se.jsx)(nn,{group:"edges",options:[{value:"sharp",text:E("labels.sharp"),icon:mT},{value:"round",text:E("labels.round"),icon:uT}],value:so(e,t,a=>i?null:a.roundness?"round":"sharp",a=>!_t(a)&&a.hasOwnProperty("roundness"),a=>a?null:t.currentItemRoundness),onChange:a=>r(a)})]})}}),xk=e=>[{value:null,text:E("labels.arrowhead_none"),keyBinding:"q",icon:pT},{value:"arrow",text:E("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,Se.jsx)(fT,{flip:e})},{value:"bar",text:E("labels.arrowhead_bar"),keyBinding:"e",icon:(0,Se.jsx)(hT,{flip:e})},{value:"dot",text:E("labels.arrowhead_circle"),keyBinding:null,icon:(0,Se.jsx)(ev,{flip:e}),showInPicker:!1},{value:"circle",text:E("labels.arrowhead_circle"),keyBinding:"r",icon:(0,Se.jsx)(ev,{flip:e}),showInPicker:!1},{value:"circle_outline",text:E("labels.arrowhead_circle_outline"),keyBinding:null,icon:(0,Se.jsx)(gT,{flip:e}),showInPicker:!1},{value:"triangle",text:E("labels.arrowhead_triangle"),icon:(0,Se.jsx)(bT,{flip:e}),keyBinding:"t"},{value:"triangle_outline",text:E("labels.arrowhead_triangle_outline"),icon:(0,Se.jsx)(xT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond",text:E("labels.arrowhead_diamond"),icon:(0,Se.jsx)(vT,{flip:e}),keyBinding:null,showInPicker:!1},{value:"diamond_outline",text:E("labels.arrowhead_diamond_outline"),icon:(0,Se.jsx)(yT,{flip:e}),keyBinding:null,showInPicker:!1}],Dj=re({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(e,t,r)=>({elements:lo(e,t,o=>{if(Qe(o)){let{position:i,type:a}=r;if(i==="start")return ke(o,{startArrowhead:a});if(i==="end")return ke(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=Ri().rtl;return(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.arrowheads")}),(0,Se.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,Se.jsx)(My,{label:"arrowhead_start",options:xk(!o),value:so(e,t,i=>Qe(i)&&Ys(i.type)?i.startArrowhead:t.currentItemStartArrowhead,!0,t.currentItemStartArrowhead),onChange:i=>r({position:"start",type:i})}),(0,Se.jsx)(My,{label:"arrowhead_end",group:"arrowheads",options:xk(!!o),value:so(e,t,i=>Qe(i)&&Ys(i.type)?i.endArrowhead:t.currentItemEndArrowhead,!0,t.currentItemEndArrowhead),onChange:i=>r({position:"end",type:i})})]})]})}}),Nj=re({name:"changeArrowType",label:"Change arrow types",trackEvent:!1,perform:(e,t,r,o)=>({elements:lo(e,t,i=>{if(!_t(i))return i;let a=ke(i,{roundness:r===Cr.round?{type:bo.PROPORTIONAL_RADIUS}:null,elbowed:r===Cr.elbow,points:r===Cr.elbow||i.elbowed?[i.points[0],i.points[i.points.length-1]]:i.points});if(dt(a)){let s=o.scene.getNonDeletedElementsMap();o.dismissLinearEditor();let c=Le.getPointAtIndexGlobalCoordinates(a,0,s),d=Le.getPointAtIndexGlobalCoordinates(a,-1,s),u=!a.startBinding&&va(ma(c),e,s,!0),f=!a.endBinding&&va(ma(d),e,s,!0),m=u||a.startBinding&&s.get(a.startBinding.elementId),g=f||a.endBinding&&s.get(a.endBinding.elementId),h=u?pv(c,d,u,s):c,b=f?pv(d,c,f,s):d;u&&Hs(a,u,"start",s),f&&Hs(a,f,"end",s),Cl(a,o.scene,[h,b].map(y=>[y[0]-a.x,y[1]-a.y]),[0,0],{...m&&a.startBinding?{startBinding:{...a.startBinding,...fv(a,m,"start",s)}}:{},...g&&a.endBinding?{endBinding:{...a.endBinding,...fv(a,g,"end",s)}}:{}})}else ce(a,{startBinding:a.startBinding?{...a.startBinding,fixedPoint:null}:null,endBinding:a.endBinding?{...a.endBinding,fixedPoint:null}:null},!1);return a}),appState:{...t,currentItemArrowType:r},storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Se.jsxs)("fieldset",{children:[(0,Se.jsx)("legend",{children:E("labels.arrowtypes")}),(0,Se.jsx)(nn,{group:"arrowtypes",options:[{value:Cr.sharp,text:E("labels.arrowtype_sharp"),icon:nC,testId:"sharp-arrow"},{value:Cr.round,text:E("labels.arrowtype_round"),icon:aC,testId:"round-arrow"},{value:Cr.elbow,text:E("labels.arrowtype_elbowed"),icon:iC,testId:"elbow-arrow"}],value:so(e,t,o=>_t(o)?o.elbowed?Cr.elbow:o.roundness?Cr.round:Cr.sharp:null,o=>_t(o),o=>o?null:t.currentItemArrowType),onChange:o=>r(o)})]})});v();v();var yk=w(j(),1),Ek=w(M(),1),Cc=()=>{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},By=(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`})},nF=(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();By(t,i)},Oo=({children:e,label:t,long:r=!1,style:o,disabled:i})=>((0,yk.useEffect)(()=>()=>Cc().classList.remove("excalidraw-tooltip--visible"),[]),i?null:(0,Ek.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:a=>nF(a.currentTarget,Cc(),t,r),onPointerLeave:()=>Cc().classList.remove("excalidraw-tooltip--visible"),style:o,children:e}));var Ol=w(M(),1),iF=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,Ol.jsx)(hm,{palette:null,topPicks:Zu,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})}),zi=re({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:kn,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=>ke(i,{isDeleted:!0})),appState:{...As(),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})}),_g=re({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:Ox,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Mi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Pi(t.zoom.value+sl)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ol.jsx)(Ie,{type:"button",className:"zoom-in-button zoom-button",icon:Ox,title:`${E("buttons.zoomIn")} \u2014 ${X("CtrlOrCmd++")}`,"aria-label":E("buttons.zoomIn"),disabled:t.zoom.value>=_x,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.EQUAL||e.code===Ne.NUM_ADD)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),Ag=re({name:"zoomOut",label:"buttons.zoomOut",icon:Fx,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Mi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Pi(t.zoom.value-sl)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ol.jsx)(Ie,{type:"button",className:"zoom-out-button zoom-button",icon:Fx,title:`${E("buttons.zoomOut")} \u2014 ${X("CtrlOrCmd+-")}`,"aria-label":E("buttons.zoomOut"),disabled:t.zoom.value<=op,onClick:()=>{e(null)}}),keyTest:e=>(e.code===Ne.MINUS||e.code===Ne.NUM_SUBTRACT)&&(e[R.CTRL_OR_CMD]||e.shiftKey)}),aF=re({name:"resetZoom",label:"buttons.resetZoom",icon:z2,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>({appState:{...t,...Mi({viewportX:t.width/2+t.offsetLeft,viewportY:t.height/2+t.offsetTop,nextZoom:Pi(1)},t),userToFollow:null},storeAction:W.NONE}),PanelComponent:({updateData:e,appState:t})=>(0,Ol.jsx)(Oo,{label:E("buttons.resetZoom"),style:{height:"100%"},children:(0,Ol.jsxs)(Ie,{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)}),lF=(e,t)=>{let[r,o,i,a]=e,s=i-r,c=t.width/s,d=a-o,u=t.height/d,f=Math.min(c,u),m=Math.floor(f/sl)*sl;return Math.min(Math.max(m,op),1)},wk=({bounds:e,appState:t,fitToViewport:r=!1,viewportZoomFactor:o=.7})=>{let[i,a,s,c]=e,d=(i+s)/2,u=(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,op),_x);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)-u}else{f=lF(e,{width:t.width,height:t.height});let h=RI({scenePoint:{x:d,y:u},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}},xm=({targetElements:e,appState:t,fitToViewport:r,viewportZoomFactor:o})=>{let i=lt(We(e));return wk({bounds:i,appState:t,fitToViewport:r,viewportZoomFactor:o})},sJ=re({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:Np,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return xm({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]}),cJ=re({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:Np,trackEvent:{category:"canvas"},perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return xm({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]}),sF=re({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:Np,viewMode:!0,trackEvent:{category:"canvas"},perform:(e,t)=>xm({targetElements:e,appState:{...t,userToFollow:null},fitToViewport:!1}),keyTest:e=>e.code===Ne.ONE&&e.shiftKey&&!e.altKey&&!e[R.CTRL_OR_CMD]}),Nl=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?Dd:Nd,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}),dJ=re({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(e,t)=>{let r;return jo(t)?r=Gt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):r=Gt(t,{type:"eraser",lastActiveToolBeforeEraser:t.activeTool}),{appState:{...t,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:r},storeAction:W.CAPTURE}},keyTest:e=>e.key===R.E}),Sk=re({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:Ap,viewMode:!1,perform:(e,t,r,o)=>{let i;return Si(t)?i=Gt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(i=Gt(t,{type:"hand",lastActiveToolBeforeEraser:t.activeTool}),ft(o.interactiveCanvas,pt.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 Tk=w(M(),1),Fo=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=Le.getElement(g,c);if(y)return Ei(y)&&jp(y,h,b,c,s),{elements:y.points.length<2||_l(y)?e.filter(T=>T.id!==y.id):void 0,appState:{...t,cursorButton:"up",editingLinearElement:null,selectedLinearElement:null},storeAction:W.CAPTURE}}let d=e,u=t.pendingImageElementId&&s.getElement(t.pendingImageElementId);u&&ce(u,{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)&&ce(f,{points:f.points.slice(0,-1)})}_l(f)&&(d=d.filter(h=>h.id!==f.id));let g=Kd(f.points,t.zoom.value);if((f.type==="line"||f.type==="freedraw")&&g){let h=f.points,b=h[0];ce(f,{points:h.map((y,T)=>T===h.length-1?[b[0],b[1]]:y)})}if(Ei(f)&&!g&&f.points.length>1){let[h,b]=Le.getPointAtIndexGlobalCoordinates(f,-1,Re(e));Hd(f,t,{x:h,y:b},c,e)}}(!t.activeTool.locked&&t.activeTool.type!=="freedraw"||!f)&&Jo(i);let m;return t.activeTool.type==="eraser"?m=Gt(t,{...t.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):m=Gt(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 Le(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,Tk.jsx)(Ie,{type:"button",icon:Z2,title:E("buttons.done"),"aria-label":E("buttons.done"),onClick:t,visible:e.multiElement!=null,size:r?.size||"medium"})});v();v();var Ck=w(j(),1);var vm=w(M(),1),Ik=e=>{let{id:t}=sr(),[r,o]=(0,Ck.useState)(e.value),i=s=>{e.ignoreFocus||n2(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,vm.jsxs)("div",{className:"ProjectName",children:[(0,vm.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${e.label}:`}),(0,vm.jsx)("input",{type:"text",className:"TextInput",onBlur:i,onKeyDown:a,id:`${t}-filename`,value:r,onChange:s=>o(s.target.value)})]})};v();var Ic=w(M(),1),Ak=e=>{let t=e.title||(e.value===Be.DARK?E("buttons.lightMode"):E("buttons.darkMode"));return(0,Ic.jsx)(Ie,{type:"icon",icon:e.value===Be.LIGHT?_k.MOON:_k.SUN,title:t,"aria-label":t,onClick:()=>e.onChange(e.value===Be.DARK?Be.LIGHT:Be.DARK),"data-testid":"toggle-dark-mode"})},_k={SUN:(0,Ic.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ic.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,Ic.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,Ic.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 Fl=(e,{selectedElementIds:t},r)=>{e=We(e);let o=r&>(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=df(e,i)):a.length>1&&(a=Oe(e,{selectedElementIds:t},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:i,exportedElements:vo(a)}},Bl=async(e,t,r,o,{exportBackground:i,exportPadding:a=ca,viewBackgroundColor:s,name:c=r.name||ZS,fileHandle:d=null,exportingFrame:u=null})=>{if(t.length===0)throw new Error(E("alerts.cannotExportEmptyCanvas"));if(e==="svg"||e==="clipboard-svg"){let m=rf(t,{exportBackground:i,exportWithDarkMode:r.exportWithDarkMode,viewBackgroundColor:s,exportPadding:a,exportScale:r.exportScale,exportEmbedScene:r.exportEmbedScene&&e==="svg"},o,{exportingFrame:u});if(e==="svg")return ov(m.then(g=>new Blob([g.outerHTML],{type:Lr.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 Ws(g)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return}}let f=WC(t,r,o,{exportBackground:i,viewBackgroundColor:s,exportPadding:a,exportingFrame:u});if(e==="png"){let m=Ci(f);return r.exportEmbedScene&&(m=m.then(g=>import("./excalidraw-assets/image-X3GFZHNN.js").then(({encodePngMetadata:h})=>h({blob:g,metadata:nv(t,r,o,"local")})))),ov(m,{description:"Export to PNG",name:c,extension:"png",fileHandle:d})}else if(e==="clipboard")try{let m=Ci(f);await qC(m)}catch(m){throw console.warn(m),m.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):vi&&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 dy=async(t,e,o,r)=>{let{exportBackground:n,viewBackgroundColor:i,fileHandle:a}=e,l=Hb(a);if(!a||!Ub(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:d}=ui(t,e,!1);return await fi(l,s,e,o,{exportBackground:n,viewBackgroundColor:i,name:r,fileHandle:a,exportingFrame:d}),{fileHandle:a}};h();var as=v(k(),1),hi=({children:t,checked:e,onChange:o,className:r})=>(0,as.jsxs)("div",{className:$("Checkbox",r,{"is-checked":e}),onClick:n=>{o(!e,n),n.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,as.jsx)("button",{className:"Checkbox-box",role:"checkbox","aria-checked":e,children:Ix}),(0,as.jsx)("div",{className:"Checkbox-label",children:t})]});var uo=v(k(),1),th=W({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(t,e,o)=>({appState:{...e,name:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e,appProps:o,data:r,app:n})=>(0,uo.jsx)(ly,{label:g("labels.fileTitle"),value:n.getName(),onChange:i=>e(i),ignoreFocus:r?.ignoreFocus??!1})}),my=W({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(t,e,o)=>({appState:{...e,exportScale:o},storeAction:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=ye(t),i=Be(r,e)?we(r,e):r;return(0,uo.jsx)(uo.Fragment,{children:tc.map(a=>{let[l,s]=g0(i,ln,a),d=`${g("imageExportDialog.label.scale")} ${a}x (${l}x${s})`;return(0,uo.jsx)(ce,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:d,"aria-label":d,id:"export-canvas-scale",checked:a===e.exportScale,onChange:()=>o(a)},a)})})}}),oh=W({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(t,e,o)=>({appState:{...e,exportBackground:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)(hi,{checked:t.exportBackground,onChange:o=>e(o),children:g("imageExportDialog.label.withBackground")})}),tm=W({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(t,e,o)=>({appState:{...e,exportEmbedScene:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsxs)(hi,{checked:t.exportEmbedScene,onChange:o=>e(o),children:[g("imageExportDialog.label.embedScene"),(0,uo.jsx)(xo,{label:g("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,uo.jsx)("div",{className:"excalidraw-tooltip-icon",children:Rx})})]})}),om=W({name:"saveToActiveFile",label:"buttons.save",icon:ni,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}=Rc(e.fileHandle)?await dy(t,e,r.files,r.getName()):await Fc(t,e,r.files,r.getName());return{storeAction:P.NONE,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),{storeAction:P.NONE}}},keyTest:t=>t.key===S.S&&t[S.CTRL_OR_CMD]&&!t.shiftKey}),ls=W({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:ni,viewMode:!0,trackEvent:{category:"export"},perform:async(t,e,o,r)=>{try{let{fileHandle:n}=await Fc(t,{...e,fileHandle:null},r.files,r.getName());return{storeAction:P.NONE,appState:{...e,openDialog:null,fileHandle:n,toast:{message:g("toast.fileSaved")}}}}catch(n){return n?.name!=="AbortError"?console.error(n):console.warn(n),{storeAction:P.NONE}}},keyTest:t=>t.key===S.S&&t.shiftKey&&t[S.CTRL_OR_CMD],PanelComponent:({updateData:t})=>(0,uo.jsx)(ce,{type:"button",icon:Mx,title:g("buttons.saveAs"),"aria-label":g("buttons.saveAs"),showAriaLabel:Me().editor.isMobile,hidden:!ji,onClick:()=>t(null),"data-testid":"save-as-button"})}),Da=W({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 fu(e,t);return{elements:n,appState:i,files:a,storeAction:P.CAPTURE}}catch(n){return n?.name==="AbortError"?(console.warn(n),!1):{elements:t,appState:{...e,errorMessage:n.message},files:r.files,storeAction:P.NONE}}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.O}),py=W({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(t,e,o)=>({appState:{...e,exportWithDarkMode:o},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,uo.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,uo.jsx)(cy,{value:t.exportWithDarkMode?be.DARK:be.LIGHT,onChange:o=>{e(o===be.DARK)},title:g("imageExportDialog.label.darkMode")})})});h();var uy="{}",rh=W({name:"copyStyles",label:"labels.copyStyles",icon:of,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=[],i=t.find(a=>e.selectedElementIds[a.id]);if(n.push(i),i&&fr(i)){let a=ct(i,r.scene.getNonDeletedElementsMap());n.push(a)}return i&&(uy=JSON.stringify(n)),{appState:{...e,toast:{message:g("toast.copyStyles")}},storeAction:P.NONE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.C}),nh=W({name:"pasteStyles",label:"labels.pasteStyles",icon:of,trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=JSON.parse(uy),i=n[0],a=n[1];if(!Q1(i))return{elements:t,storeAction:P.NONE};let l=we(t,e,{includeBoundTextElement:!0}),s=l.map(d=>d.id);return{elements:t.map(d=>{if(s.includes(d.id)){let c=i;if(se(d)&&d.containerId&&(c=a),!c)return d;let m=he(d,{backgroundColor:c?.backgroundColor,strokeWidth:c?.strokeWidth,strokeColor:c?.strokeColor,strokeStyle:c?.strokeStyle,fillStyle:c?.fillStyle,opacity:c?.opacity,roughness:c?.roughness,roundness:c.roundness?eb(c.roundness.type,d)?c.roundness:tb(d):null});if(se(m)){let u=c.fontSize||_r,f=c.fontFamily||Oi;m=he(m,{fontSize:u,fontFamily:f,textAlign:c.textAlign||f1,lineHeight:c.lineHeight||Or(f)});let b=null;m.containerId&&(b=l.find(x=>se(m)&&x.id===m.containerId)||null),Ut(m,b,r.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&ur(c)&&(m=he(m,{startArrowhead:c.startArrowhead,endArrowhead:c.endArrowhead})),Ee(d)&&(m=he(m,{roundness:null,backgroundColor:"transparent"})),m}return d}),storeAction:P.CAPTURE}},keyTest:t=>t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V});h();var ih=v(k(),1),rS=W({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="canvas"?null:"canvas"},storeAction:P.NONE}),PanelComponent:({appState:t,updateData:e})=>(0,ih.jsx)(ce,{type:"button",icon:dd,"aria-label":g("buttons.menu"),onClick:e,selected:t.openMenu==="canvas"})}),nS=W({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(t,e)=>({appState:{...e,openMenu:e.openMenu==="shape"?null:"shape"},storeAction:P.NONE}),PanelComponent:({elements:t,appState:e,updateData:o})=>(0,ih.jsx)(ce,{visible:ea(e,ye(t)),type:"button",icon:_x,"aria-label":g("buttons.edit"),onClick:o,selected:e.openMenu==="shape"})}),gi=W({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:Sx,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"}},storeAction:P.NONE}),keyTest:t=>t.key===S.QUESTION_MARK});h();var bi=v(k(),1),iS=t=>{if(t.length>=2){let e=t[0].groupIds;for(let o of e)if(t.reduce((r,n)=>r&&Yi(n,o),!0))return!0}return!1},fy=(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0});return r.length>=2&&!iS(r)},ah=W({name:"group",label:"labels.group",icon:t=>(0,bi.jsx)(Xu,{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,storeAction:P.NONE};let i=Br(e);if(i.length===1){let E=i[0],T=new Set(ft(t,E).map(A=>A.id)),C=new Set(n.map(A=>A.id));if(new Set([...Array.from(T),...Array.from(C)]).size===T.size)return{appState:e,elements:t,storeAction:P.NONE}}let a=[...t];new Set(n.map(E=>E.frameId)).size>1&&C0(n).forEach((T,C)=>{Gc(T,r.scene.getNonDeletedElementsMap())});let s=mn(),d=pe(n);a=a.map(E=>d.get(E.id)?he(E,{groupIds:_b(E.groupIds,s,e.editingGroupId)}):E);let c=ft(a,s),m=c[c.length-1],u=a.lastIndexOf(m),f=a.slice(u+1),b=a.slice(0,u).filter(E=>!Yi(E,s)),x=ho([...b,...c,...f],pe(c));return{appState:{...e,...Tb(s,{...e,selectedGroupIds:{}},ye(a))},elements:x,storeAction:P.CAPTURE}},predicate:(t,e,o,r)=>fy(t,e,r),keyTest:t=>!t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,bi.jsx)(ce,{hidden:!fy(t,e,r),type:"button",icon:(0,bi.jsx)(Xu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.group")} \u2014 ${F("CtrlOrCmd+G")}`,"aria-label":g("labels.group"),visible:Be(ye(t),e)})}),lh=W({name:"ungroup",label:"labels.ungroup",icon:t=>(0,bi.jsx)(qu,{theme:t.theme}),trackEvent:{category:"element"},perform:(t,e,o,r)=>{let n=Br(e),i=pe(t);if(n.length===0)return{appState:e,elements:t,storeAction:P.NONE};let a=[...t],l=[];a=a.map(u=>{xt(u)&&l.push(u.id);let f=Lb(u.groupIds,e.selectedGroupIds);return f.length===u.groupIds.length?u:he(u,{groupIds:f})});let s=Nt(e,ye(a),e,null),d=r.scene.getSelectedElements(e),c=new Set(d.filter(u=>u.frameId).map(u=>u.frameId));return S0(t).filter(u=>c.has(u.id)).forEach(u=>{u&&(a=Vc(a,Qi(a,u,e,i),u,r))}),s.selectedElementIds=Object.entries(s.selectedElementIds).reduce((u,[f,b])=>(b&&!l.includes(f)&&(u[f]=!0),u),{}),{appState:{...e,...s},elements:a,storeAction:P.CAPTURE}},keyTest:t=>t.shiftKey&&t[S.CTRL_OR_CMD]&&t.key===S.G.toUpperCase(),predicate:(t,e)=>Br(e).length>0,PanelComponent:({elements:t,appState:e,updateData:o})=>(0,bi.jsx)(ce,{type:"button",hidden:Br(e).length===0,icon:(0,bi.jsx)(qu,{theme:e.theme}),onClick:()=>o(null),title:`${g("labels.ungroup")} \u2014 ${F("CtrlOrCmd+Shift+G")}`,"aria-label":g("labels.ungroup"),visible:Be(ye(t),e)})});h();h();h();var rm=(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 aS(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 xi=(t,e)=>`hsl(${Math.abs(aS(e?.id||t))%37*10}, 100%, 83%)`,hy=t=>{let e=t?.trim()?.codePointAt(0);return(e?String.fromCodePoint(e):"?").toUpperCase()},gy=({context:t,renderConfig:e,appState:o,normalizedWidth:r,normalizedHeight:n})=>{for(let[i,a]of e.remotePointerViewportCoords){let{x:l,y:s}=a,d=o.collaborators.get(i);l-=o.offsetLeft,s-=o.offsetTop;let c=11,m=14,u=l<0||l>r-c||s<0||s>n-m;l=Math.max(l,0),l=Math.min(l,r-c),s=Math.max(s,0),s=Math.min(s,n-m);let f=xi(i,d);t.save(),t.strokeStyle=f,t.fillStyle=f;let b=e.remotePointerUserStates.get(i),x=u||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=f,t.stroke(),t.closePath());let E=o.theme===be.DARK?"#2f6330":b1,T=d?.isSpeaking;T&&(t.fillStyle=E,t.strokeStyle=E,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=dl,t.strokeStyle=dl,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=f,t.strokeStyle=f,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 C=e.remotePointerUsernames.get(i)||"";if(!u&&C){t.font="600 12px sans-serif";let w=(T?l+0:l)+c/2,A=(T?s+0:s)+m+2,z=5,I=3,M=t.measureText(C),_=M.actualBoundingBoxDescent+M.actualBoundingBoxAscent,U=Math.max(_,12),D=w-1,G=A-1,O=M.width+2+z*2+2,B=U+2+I*2+2;if(t.roundRect?(t.beginPath(),t.roundRect(D,G,O,B,8),t.fillStyle=f,t.fill(),t.strokeStyle=dl,t.stroke(),T&&(t.beginPath(),t.roundRect(D-2,G-2,O+4,B+4,8),t.strokeStyle=E,t.stroke())):rm(t,D,G,O,B,8,dl),t.fillStyle=g1,t.fillText(C,w+z+1,A+I+M.actualBoundingBoxAscent+Math.floor((U-_)/2)+2),T){t.fillStyle=E;let te=8,oe=8,ve=5;t.fillRect(D+O+oe,G+(B/2-te/2),2,te),t.fillRect(D+O+oe+ve,G+(B/2-te*2/2),2,te*2),t.fillRect(D+O+oe+ve*2,G+(B/2-te/2),2,te)}}t.restore(),t.closePath()}};h();var by=v(H(),1);var sh=v(k(),1),ch=({color:t,onClick:e,name:o,src:r,className:n})=>{let i=hy(o),[a,l]=(0,by.useState)(!1),s=!a&&r,d=s?void 0:{background:t};return(0,sh.jsx)("div",{className:$("Avatar",n),style:d,onClick:e,children:s?(0,sh.jsx)("img",{className:"Avatar-img",src:r,alt:i,referrerPolicy:"no-referrer",onError:()=>l(!0)}):i})};var Yt=v(k(),1),lS=W({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},storeAction:P.NONE}:{appState:{...e,userToFollow:{socketId:o.socketId,username:o.username||""},openMenu:e.openMenu==="canvas"?null:e.openMenu},storeAction:P.NONE},PanelComponent:({updateData:t,data:e,appState:o})=>{let{socketId:r,collaborator:n,withName:i,isBeingFollowed:a}=e,l=xi(r,n),s=$({"is-followed":a,"is-current-user":n.isCurrentUser===!0,"is-speaking":n.isSpeaking,"is-in-call":n.isInCall,"is-muted":n.isMuted}),d=n.isInCall?n.isSpeaking?(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:g("userList.hint.isSpeaking"),children:[(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{}),(0,Yt.jsx)("div",{})]}):n.isMuted?(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:g("userList.hint.micMuted"),children:Av}):(0,Yt.jsx)("div",{title:g("userList.hint.inCall"),children:Iv}):null;return i?(0,Yt.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${s}`,style:{"--avatar-size":"1.5rem"},onClick:()=>t(n),children:[(0,Yt.jsx)(ch,{color:l,onClick:()=>{},name:n.username||"",src:n.avatarUrl,className:s}),(0,Yt.jsx)("div",{className:"UserList__collaborator-name",children:n.username}),(0,Yt.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[a&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:g("userList.hint.followStatus"),children:pa}),d]})]}):(0,Yt.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${s}`,children:[(0,Yt.jsx)(ch,{color:l,onClick:()=>{t(n)},name:n.username||"",src:n.avatarUrl,className:s}),d&&(0,Yt.jsx)("div",{className:"UserList__collaborator-status-icon",children:d})]})}});h();var dh=W({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 ic)if(n.some(a=>a.type===i))return{storeAction:P.NONE,appState:{...e,errorMessage:g(`errors.libraryElementTypeError.${i}`)}};return r.library.getLatestLibrary().then(i=>r.library.setLibrary([{id:mn(),status:"unpublished",elements:n.map(Mc),created:Date.now()},...i])).then(()=>({storeAction:P.NONE,appState:{...e,toast:{message:g("toast.addedToLibrary")}}})).catch(i=>({storeAction:P.NONE,appState:{...e,errorMessage:i.message}}))},label:"labels.addToLibrary"});h();h();var xy=(t,e,o)=>{let r=Jn(t,e),n=Io(t);return r.flatMap(i=>{let a=sS(i,n,o);return i.map(l=>he(l,{x:l.x+a.x,y:l.y+a.y}))})},sS=(t,e,{axis:o,position:r})=>{let n=Io(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 vi=v(k(),1),Fo=(t,e,o,r)=>{let n=r.scene.getSelectedElements(e);return n.length>1&&!n.some(i=>Ee(i))},Na=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=pe(t),a=xy(n,i,r),l=pe(a);return hr(t.map(s=>l.get(s.id)||s),e,o)},cS=W({name:"alignTop",label:"labels.alignTop",icon:Gu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"start",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_UP,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Gu,onClick:()=>o(null),title:`${g("labels.alignTop")} \u2014 ${F("CtrlOrCmd+Shift+Up")}`,"aria-label":g("labels.alignTop"),visible:Be(ye(t),e)})}),dS=W({name:"alignBottom",label:"labels.alignBottom",icon:Vu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"end",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_DOWN,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Vu,onClick:()=>o(null),title:`${g("labels.alignBottom")} \u2014 ${F("CtrlOrCmd+Shift+Down")}`,"aria-label":g("labels.alignBottom"),visible:Be(ye(t),e)})}),mS=W({name:"alignLeft",label:"labels.alignLeft",icon:Ku,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"start",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_LEFT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Ku,onClick:()=>o(null),title:`${g("labels.alignLeft")} \u2014 ${F("CtrlOrCmd+Shift+Left")}`,"aria-label":g("labels.alignLeft"),visible:Be(ye(t),e)})}),pS=W({name:"alignRight",label:"labels.alignRight",icon:Yu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"end",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>t[S.CTRL_OR_CMD]&&t.shiftKey&&t.key===S.ARROW_RIGHT,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Yu,onClick:()=>o(null),title:`${g("labels.alignRight")} \u2014 ${F("CtrlOrCmd+Shift+Right")}`,"aria-label":g("labels.alignRight"),visible:Be(ye(t),e)})}),uS=W({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Zu,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"center",axis:"y"}),storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:Zu,onClick:()=>o(null),title:g("labels.centerVertically"),"aria-label":g("labels.centerVertically"),visible:Be(ye(t),e)})}),fS=W({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:ju,trackEvent:{category:"element"},predicate:Fo,perform:(t,e,o,r)=>({appState:e,elements:Na(t,e,r,{position:"center",axis:"x"}),storeAction:P.CAPTURE}),PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,vi.jsx)(ce,{hidden:!Fo(t,e,null,r),type:"button",icon:ju,onClick:()=>o(null),title:g("labels.centerHorizontally"),"aria-label":g("labels.centerHorizontally"),visible:Be(ye(t),e)})});h();h();var vy=(t,e,o)=>{let[r,n,i,a]=o.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],l=Io(t),s=Jn(t,e).map(u=>[u,Io(u)]).sort((u,f)=>u[1][n]-f[1][n]),d=0;for(let u of s)d+=u[1][a];let c=(l[a]-d)/(s.length-1);if(c<0){let u=s.findIndex(E=>E[1][r]===l[r]),f=s.findIndex(E=>E[1][i]===l[i]),b=(s[f][1][n]-s[u][1][n])/(s.length-1),x=s[u][1][n];return s.flatMap(([E,T],C)=>{let w={x:0,y:0};return C!==u&&C!==f&&(x+=b,w[o.axis]=x-T[n]),E.map(A=>he(A,{x:A.x+w.x,y:A.y+w.y}))})}let m=l[r];return s.flatMap(([u,f])=>{let b={x:0,y:0};return b[o.axis]=m-f[r],m+=c,m+=f[a],u.map(x=>he(x,{x:x.x+b.x,y:x.y+b.y}))})};var mh=v(k(),1),Ey=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length>1&&!o.some(r=>Ee(r))},yy=(t,e,o,r)=>{let n=o.scene.getSelectedElements(e),i=vy(n,o.scene.getNonDeletedElementsMap(),r),a=pe(i);return hr(t.map(l=>a.get(l.id)||l),e,o)},hS=W({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:yy(t,e,r,{space:"between",axis:"x"}),storeAction:P.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.H,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mh.jsx)(ce,{hidden:!Ey(e,r),type:"button",icon:Nx,onClick:()=>o(null),title:`${g("labels.distributeHorizontally")} \u2014 ${F("Alt+H")}`,"aria-label":g("labels.distributeHorizontally"),visible:Be(ye(t),e)})}),gS=W({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(t,e,o,r)=>({appState:e,elements:yy(t,e,r,{space:"between",axis:"y"}),storeAction:P.CAPTURE}),keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.V,PanelComponent:({elements:t,appState:e,updateData:o,app:r})=>(0,mh.jsx)(ce,{hidden:!Ey(e,r),type:"button",icon:Ox,onClick:()=>o(null),title:`${g("labels.distributeVertically")} \u2014 ${F("Alt+V")}`,"aria-label":g("labels.distributeVertically"),visible:Be(ye(t),e)})});h();var ph=W({name:"flipHorizontal",label:"labels.flipHorizontal",icon:Pv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:hr(wy(t,r.scene.getNonDeletedElementsMap(),e,"horizontal",r),e,r),appState:e,storeAction:P.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===fe.H}),uh=W({name:"flipVertical",label:"labels.flipVertical",icon:Lv,trackEvent:{category:"element"},perform:(t,e,o,r)=>({elements:hr(wy(t,r.scene.getNonDeletedElementsMap(),e,"vertical",r),e,r),appState:e,storeAction:P.CAPTURE}),keyTest:t=>t.shiftKey&&t.code===fe.V&&!t[S.CTRL_OR_CMD]}),wy=(t,e,o,r,n)=>{let i=we(ye(t),o,{includeBoundTextElement:!0,includeElementsInFrames:!0}),a=bS(i,e,o,r,n),l=pe(a);return t.map(s=>l.get(s.id)||s)},bS=(t,e,o,r,n)=>{let{minX:i,minY:a,maxX:l,maxY:s}=Io(t);return N0(e,t,e,"nw",!0,!0,r==="horizontal"?l:i,r==="horizontal"?a:s),Cl(t.filter(Re),n,qn(o),[]),t};h();var Oa=W({name:"copy",label:"labels.copy",icon:zl,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await v0(n,r.files,o)}catch(i){return{storeAction:P.NONE,appState:{...e,errorMessage:i.message}}}return{storeAction:P.NONE}},keyTest:void 0}),fh=W({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}`),Mr?{storeAction:P.NONE,appState:{...e,errorMessage:g("hints.firefox_clipboard_write")}}:{storeAction:P.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnRead")}})}try{r.pasteFromClipboard(x0({types:n}))}catch(i){return console.error(i),{storeAction:P.NONE,appState:{...e,errorMessage:g("errors.asyncPasteFailedOnParse")}}}return{storeAction:P.NONE}},keyTest:void 0}),nm=W({name:"cut",label:"labels.cut",icon:bv,trackEvent:{category:"element"},perform:(t,e,o,r)=>(Oa.perform(t,e,o,r),Gl.perform(t,e,null,r)),keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.X}),im=W({name:"copyAsSvg",label:"labels.copyAsSvg",icon:Rv,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:P.NONE};let{exportedElements:n,exportingFrame:i}=ui(t,e,!0);try{return await fi("clipboard-svg",n,e,r.files,{...e,exportingFrame:i,name:r.getName()}),{storeAction:P.NONE}}catch(a){return console.error(a),{appState:{...e,errorMessage:a.message},storeAction:P.NONE}}},predicate:t=>bu&&t.length>0,keywords:["svg","clipboard","copy"]}),am=W({name:"copyAsPng",label:"labels.copyAsPng",icon:Dv,trackEvent:{category:"element"},perform:async(t,e,o,r)=>{if(!r.canvas)return{storeAction:P.NONE};let n=r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:i,exportingFrame:a}=ui(t,e,!0);try{return await fi("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")})}},storeAction:P.NONE}}catch(l){return console.error(l),{appState:{...e,errorMessage:l.message},storeAction:P.NONE}}},predicate:t=>qi&&t.length>0,keyTest:t=>t.code===fe.C&&t.altKey&&t.shiftKey,keywords:["png","clipboard","copy"]}),lm=W({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)=>(se(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 kk=async(e,t,r,o)=>{let{exportBackground:i,viewBackgroundColor:a,fileHandle:s}=t,c=mC(s);if(!s||!uC(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:u}=Fl(e,t,!1);return await Bl(c,d,t,r,{exportBackground:i,viewBackgroundColor:a,name:o,fileHandle:s,exportingFrame:u}),{fileHandle:s}};v();var ym=w(M(),1),zl=({children:e,checked:t,onChange:r,className:o})=>(0,ym.jsxs)("div",{className:q("Checkbox",o,{"is-checked":t}),onClick:i=>{r(!t,i),i.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,ym.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":t,children:W2}),(0,ym.jsx)("div",{className:"Checkbox-label",children:e})]});var Co=w(M(),1),zy=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,Co.jsx)(Ik,{label:E("labels.fileTitle"),value:i.getName(),onChange:a=>t(a),ignoreFocus:o?.ignoreFocus??!1})}),Pk=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=gt(o,t)?Oe(o,t):o;return(0,Co.jsx)(Co.Fragment,{children:ap.map(s=>{let[c,d]=KC(a,ca,s),u=`${E("imageExportDialog.label.scale")} ${s}x (${c}x${d})`;return(0,Co.jsx)(Ie,{size:"small",type:"radio",icon:`${s}x`,name:"export-canvas-scale",title:u,"aria-label":u,id:"export-canvas-scale",checked:s===t.exportScale,onChange:()=>r(s)},s)})})}}),$y=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,Co.jsx)(zl,{checked:e.exportBackground,onChange:r=>t(r),children:E("imageExportDialog.label.withBackground")})}),kg=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,Co.jsxs)(zl,{checked:e.exportEmbedScene,onChange:r=>t(r),children:[E("imageExportDialog.label.embedScene"),(0,Co.jsx)(Oo,{label:E("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,Co.jsx)("div",{className:"excalidraw-tooltip-icon",children:q2})})]})}),Pg=re({name:"saveToActiveFile",label:"buttons.save",icon:bl,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}=Bp(t.fileHandle)?await kk(e,t,o.files,o.getName()):await Fp(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}),Em=re({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:bl,viewMode:!0,trackEvent:{category:"export"},perform:async(e,t,r,o)=>{try{let{fileHandle:i}=await Fp(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,Co.jsx)(Ie,{type:"button",icon:Y2,title:E("buttons.saveAs"),"aria-label":E("buttons.saveAs"),showAriaLabel:rt().editor.isMobile,hidden:!Os,onClick:()=>e(null),"data-testid":"save-as-button"})}),_c=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 iv(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}),Mk=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,Co.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,Co.jsx)(Ak,{value:e.exportWithDarkMode?Be.DARK:Be.LIGHT,onChange:r=>{t(r===Be.DARK)},title:E("imageExportDialog.label.darkMode")})})});v();var Lk="{}",Hy=re({name:"copyStyles",label:"labels.copyStyles",icon:rv,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=[],a=e.find(s=>t.selectedElementIds[s.id]);if(i.push(a),a&&yo(a)){let s=je(a,o.scene.getNonDeletedElementsMap());i.push(s)}return a&&(Lk=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}),Uy=re({name:"pasteStyles",label:"labels.pasteStyles",icon:rv,trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=JSON.parse(Lk),a=i[0],s=i[1];if(!g2(a))return{elements:e,storeAction:W.NONE};let c=Oe(e,t,{includeBoundTextElement:!0}),d=c.map(u=>u.id);return{elements:e.map(u=>{if(d.includes(u.id)){let f=a;if(he(u)&&u.containerId&&(f=s),!f)return u;let m=ke(u,{backgroundColor:f?.backgroundColor,strokeWidth:f?.strokeWidth,strokeColor:f?.strokeColor,strokeStyle:f?.strokeStyle,fillStyle:f?.fillStyle,opacity:f?.opacity,roughness:f?.roughness,roundness:f.roundness?h2(f.roundness.type,u)?f.roundness:b2(u):null});if(he(m)){let g=f.fontSize||Es,h=f.fontFamily||ws;m=ke(m,{fontSize:g,fontFamily:h,textAlign:f.textAlign||ep,lineHeight:f.lineHeight||Ii(h)});let b=null;m.containerId&&(b=c.find(y=>he(m)&&y.id===m.containerId)||null),qt(m,b,o.scene.getNonDeletedElementsMap())}return m.type==="arrow"&&_t(f)&&(m=ke(m,{startArrowhead:f.startArrowhead,endArrowhead:f.endArrowhead})),He(u)&&(m=ke(m,{roundness:null,backgroundColor:"transparent"})),m}return u}),storeAction:W.CAPTURE}},keyTest:e=>e[R.CTRL_OR_CMD]&&e.altKey&&e.code===Ne.V});v();var Gy=w(M(),1),cF=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,Gy.jsx)(Ie,{type:"button",icon:wp,"aria-label":E("buttons.menu"),onClick:t,selected:e.openMenu==="canvas"})}),dF=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,Gy.jsx)(Ie,{visible:qs(t,We(e)),type:"button",icon:V2,"aria-label":E("buttons.edit"),onClick:r,selected:t.openMenu==="shape"})}),$l=re({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:H2,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 Hl=w(M(),1),mF=e=>{if(e.length>=2){let t=e[0].groupIds;for(let r of t)if(e.reduce((o,i)=>o&&ks(i,r),!0))return!0}return!1},Rk=(e,t,r)=>{let o=r.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0});return o.length>=2&&!mF(o)},Wy=re({name:"group",label:"labels.group",icon:e=>(0,Hl.jsx)(jx,{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=_n(t);if(a.length===1){let T=a[0],k=new Set(Kt(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&&JC(i).forEach((k,I)=>{sf(k,o.scene.getNonDeletedElementsMap())});let d=fa(),u=Re(i);s=s.map(T=>u.get(T.id)?ke(T,{groupIds:C2(T.groupIds,d,t.editingGroupId)}):T);let f=Kt(s,d),m=f[f.length-1],g=s.lastIndexOf(m),h=s.slice(g+1),b=s.slice(0,g).filter(T=>!ks(T,d)),y=Do([...b,...f,...h],Re(f));return{appState:{...t,...y2(d,{...t,selectedGroupIds:{}},We(s))},elements:y,storeAction:W.CAPTURE}},predicate:(e,t,r,o)=>Rk(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,Hl.jsx)(Ie,{hidden:!Rk(e,t,o),type:"button",icon:(0,Hl.jsx)(jx,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.group")} \u2014 ${X("CtrlOrCmd+G")}`,"aria-label":E("labels.group"),visible:gt(We(e),t)})}),Ky=re({name:"ungroup",label:"labels.ungroup",icon:e=>(0,Hl.jsx)(Jx,{theme:e.theme}),trackEvent:{category:"element"},perform:(e,t,r,o)=>{let i=_n(t),a=Re(e);if(i.length===0)return{appState:t,elements:e,storeAction:W.NONE};let s=[...e],c=[];s=s.map(g=>{Ir(g)&&c.push(g.id);let h=I2(g.groupIds,t.selectedGroupIds);return h.length===g.groupIds.length?g:ke(g,{groupIds:h})});let d=Rr(t,We(s),t,null),u=o.scene.getSelectedElements(t),f=new Set(u.filter(g=>g.frameId).map(g=>g.frameId));return QC(e).filter(g=>f.has(g.id)).forEach(g=>{g&&(s=cf(s,Ks(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)=>_n(t).length>0,PanelComponent:({elements:e,appState:t,updateData:r})=>(0,Hl.jsx)(Ie,{type:"button",hidden:_n(t).length===0,icon:(0,Hl.jsx)(Jx,{theme:t.theme}),onClick:()=>r(null),title:`${E("labels.ungroup")} \u2014 ${X("CtrlOrCmd+Shift+G")}`,"aria-label":E("labels.ungroup"),visible:gt(We(e),t)})});v();v();v();var Mg=(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 uF(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 Ul=(e,t)=>`hsl(${Math.abs(uF(t?.id||e))%37*10}, 100%, 83%)`,Dk=e=>{let t=e?.trim()?.codePointAt(0);return(t?String.fromCodePoint(t):"?").toUpperCase()},Nk=({context:e,renderConfig:t,appState:r,normalizedWidth:o,normalizedHeight:i})=>{for(let[a,s]of t.remotePointerViewportCoords){let{x:c,y:d}=s,u=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=Ul(a,u);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":LS,k=u?.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=Td,e.strokeStyle=Td,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 C=(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),U=C-1,Q=O-1,me=F.width+2+z*2+2,K=V+2+L*2+2;if(e.roundRect?(e.beginPath(),e.roundRect(U,Q,me,K,8),e.fillStyle=h,e.fill(),e.strokeStyle=Td,e.stroke(),k&&(e.beginPath(),e.roundRect(U-2,Q-2,me+4,K+4,8),e.strokeStyle=T,e.stroke())):Mg(e,U,Q,me,K,8,Td),e.fillStyle=MS,e.fillText(I,C+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(U+me+be,Q+(K/2-se/2),2,se),e.fillRect(U+me+be+_e,Q+(K/2-se*2/2),2,se*2),e.fillRect(U+me+be+_e*2,Q+(K/2-se/2),2,se)}}e.restore(),e.closePath()}};v();var Ok=w(j(),1);var Yy=w(M(),1),Vy=({color:e,onClick:t,name:r,src:o,className:i})=>{let a=Dk(r),[s,c]=(0,Ok.useState)(!1),d=!s&&o,u=d?void 0:{background:e};return(0,Yy.jsx)("div",{className:q("Avatar",i),style:u,onClick:t,children:d?(0,Yy.jsx)("img",{className:"Avatar-img",src:o,alt:a,referrerPolicy:"no-referrer",onError:()=>c(!0)}):a})};var Kr=w(M(),1),pF=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=Ul(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}),u=i.isInCall?i.isSpeaking?(0,Kr.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:E("userList.hint.isSpeaking"),children:[(0,Kr.jsx)("div",{}),(0,Kr.jsx)("div",{}),(0,Kr.jsx)("div",{})]}):i.isMuted?(0,Kr.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:E("userList.hint.micMuted"),children:KT}):(0,Kr.jsx)("div",{title:E("userList.hint.inCall"),children:WT}):null;return a?(0,Kr.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${d}`,style:{"--avatar-size":"1.5rem"},onClick:()=>e(i),children:[(0,Kr.jsx)(Vy,{color:c,onClick:()=>{},name:i.username||"",src:i.avatarUrl,className:d}),(0,Kr.jsx)("div",{className:"UserList__collaborator-name",children:i.username}),(0,Kr.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[s&&(0,Kr.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:E("userList.hint.followStatus"),children:Ns}),u]})]}):(0,Kr.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${d}`,children:[(0,Kr.jsx)(Vy,{color:c,onClick:()=>{e(i)},name:i.username||"",src:i.avatarUrl,className:d}),u&&(0,Kr.jsx)("div",{className:"UserList__collaborator-status-icon",children:u})]})}});v();var Xy=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 dp)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:fa(),status:"unpublished",elements:i.map(Fs),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 Fk=(e,t,r)=>{let o=gl(e,t),i=tn(e);return o.flatMap(a=>{let s=fF(a,i,r);return a.map(c=>ke(c,{x:c.x+s.x,y:c.y+s.y}))})},fF=(e,t,{axis:r,position:o})=>{let i=tn(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 Gl=w(M(),1),cn=(e,t,r,o)=>{let i=o.scene.getSelectedElements(t);return i.length>1&&!i.some(a=>He(a))},Ac=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Re(e),s=Fk(i,a,o),c=Re(s);return Vn(e.map(d=>c.get(d.id)||d),t,r)},gF=re({name:"alignTop",label:"labels.alignTop",icon:Kx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(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,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Kx,onClick:()=>r(null),title:`${E("labels.alignTop")} \u2014 ${X("CtrlOrCmd+Shift+Up")}`,"aria-label":E("labels.alignTop"),visible:gt(We(e),t)})}),hF=re({name:"alignBottom",label:"labels.alignBottom",icon:Yx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(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,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Yx,onClick:()=>r(null),title:`${E("labels.alignBottom")} \u2014 ${X("CtrlOrCmd+Shift+Down")}`,"aria-label":E("labels.alignBottom"),visible:gt(We(e),t)})}),bF=re({name:"alignLeft",label:"labels.alignLeft",icon:Vx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(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,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Vx,onClick:()=>r(null),title:`${E("labels.alignLeft")} \u2014 ${X("CtrlOrCmd+Shift+Left")}`,"aria-label":E("labels.alignLeft"),visible:gt(We(e),t)})}),xF=re({name:"alignRight",label:"labels.alignRight",icon:Xx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(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,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Xx,onClick:()=>r(null),title:`${E("labels.alignRight")} \u2014 ${X("CtrlOrCmd+Shift+Right")}`,"aria-label":E("labels.alignRight"),visible:gt(We(e),t)})}),vF=re({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:Zx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"center",axis:"y"}),storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:Zx,onClick:()=>r(null),title:E("labels.centerVertically"),"aria-label":E("labels.centerVertically"),visible:gt(We(e),t)})}),yF=re({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:qx,trackEvent:{category:"element"},predicate:cn,perform:(e,t,r,o)=>({appState:t,elements:Ac(e,t,o,{position:"center",axis:"x"}),storeAction:W.CAPTURE}),PanelComponent:({elements:e,appState:t,updateData:r,app:o})=>(0,Gl.jsx)(Ie,{hidden:!cn(e,t,null,o),type:"button",icon:qx,onClick:()=>r(null),title:E("labels.centerHorizontally"),"aria-label":E("labels.centerHorizontally"),visible:gt(We(e),t)})});v();v();var Bk=(e,t,r)=>{let[o,i,a,s]=r.axis==="x"?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],c=tn(e),d=gl(e,t).map(g=>[g,tn(g)]).sort((g,h)=>g[1][i]-h[1][i]),u=0;for(let g of d)u+=g[1][s];let f=(c[s]-u)/(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 C={x:0,y:0};return I!==g&&I!==h&&(y+=b,C[r.axis]=y-k[i]),T.map(O=>ke(O,{x:O.x+C.x,y:O.y+C.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=>ke(y,{x:y.x+b.x,y:y.y+b.y}))})};var Zy=w(M(),1),zk=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length>1&&!r.some(o=>He(o))},$k=(e,t,r,o)=>{let i=r.scene.getSelectedElements(t),a=Bk(i,r.scene.getNonDeletedElementsMap(),o),s=Re(a);return Vn(e.map(c=>s.get(c.id)||c),t,r)},EF=re({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:$k(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,Zy.jsx)(Ie,{hidden:!zk(t,o),type:"button",icon:J2,onClick:()=>r(null),title:`${E("labels.distributeHorizontally")} \u2014 ${X("Alt+H")}`,"aria-label":E("labels.distributeHorizontally"),visible:gt(We(e),t)})}),wF=re({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(e,t,r,o)=>({appState:t,elements:$k(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,Zy.jsx)(Ie,{hidden:!zk(t,o),type:"button",icon:Q2,onClick:()=>r(null),title:`${E("labels.distributeVertically")} \u2014 ${X("Alt+V")}`,"aria-label":E("labels.distributeVertically"),visible:gt(We(e),t)})});v();var qy=re({name:"flipHorizontal",label:"labels.flipHorizontal",icon:ZT,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Vn(Hk(e,o.scene.getNonDeletedElementsMap(),t,"horizontal",o),t,o),appState:t,storeAction:W.CAPTURE}),keyTest:e=>e.shiftKey&&e.code===Ne.H}),jy=re({name:"flipVertical",label:"labels.flipVertical",icon:XT,trackEvent:{category:"element"},perform:(e,t,r,o)=>({elements:Vn(Hk(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]}),Hk=(e,t,r,o,i)=>{let a=Oe(We(e),r,{includeBoundTextElement:!0,includeElementsInFrames:!0}),s=SF(a,t,r,o,i),c=Re(s);return e.map(d=>c.get(d.id)||d)},SF=(e,t,r,o,i)=>{let{minX:a,minY:s,maxX:c,maxY:d}=tn(e);return II(t,e,t,"nw",!0,!0,o==="horizontal"?c:a,o==="horizontal"?s:d,i.scene),wl(e.filter(Qe),t,i.scene.getNonDeletedElements(),i.scene,El(r),[]),e};v();var kc=re({name:"copy",label:"labels.copy",icon:Rd,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i=o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await XC(i,o.files,r)}catch(a){return{storeAction:W.NONE,appState:{...t,errorMessage:a.message}}}return{storeAction:W.NONE}},keyTest:void 0}),Jy=re({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(e,t,r,o)=>{let i;try{i=await ZC()}catch(a){return a.name==="AbortError"||a.name==="NotAllowedError"?!1:(console.error(`actionPaste ${a.name}: ${a.message}`),vi?{storeAction:W.NONE,appState:{...t,errorMessage:E("hints.firefox_clipboard_write")}}:{storeAction:W.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnRead")}})}try{o.pasteFromClipboard(VC({types:i}))}catch(a){return console.error(a),{storeAction:W.NONE,appState:{...t,errorMessage:E("errors.asyncPasteFailedOnParse")}}}return{storeAction:W.NONE}},keyTest:void 0}),Lg=re({name:"cut",label:"labels.cut",icon:DT,trackEvent:{category:"element"},perform:(e,t,r,o)=>(kc.perform(e,t,r,o),rm.perform(e,t,null,o)),keyTest:e=>e[R.CTRL_OR_CMD]&&e.key===R.X}),Rg=re({name:"copyAsSvg",label:"labels.copyAsSvg",icon:qT,trackEvent:{category:"element"},perform:async(e,t,r,o)=>{if(!o.canvas)return{storeAction:W.NONE};let{exportedElements:i,exportingFrame:a}=Fl(e,t,!0);try{return await Bl("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=>hv&&e.length>0,keywords:["svg","clipboard","copy"]}),Dg=re({name:"copyAsPng",label:"labels.copyAsPng",icon:jT,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}=Fl(e,t,!0);try{return await Bl("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=>Gs&&e.length>0,keyTest:e=>e.code===Ne.C&&e.altKey&&e.shiftKey,keywords:["png","clipboard","copy"]}),Ng=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{Ji(i)}catch{throw new Error(g("errors.copyToSystemClipboardFailed"))}return{storeAction:P.NONE}},predicate:(t,e,o,r)=>bu&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!0}).some(se),keywords:["text","clipboard","copy"]});h();var sm=W({name:"gridMode",icon:zv,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.gridSize},perform(t,e){return{appState:{...e,gridSize:this.checked(e)?null:Lr,objectsSnapModeEnabled:!1},storeAction:P.NONE}},checked:t=>t.gridSize!==null,predicate:(t,e,o)=>typeof o.gridModeEnabled>"u",keyTest:t=>t[S.CTRL_OR_CMD]&&t.code===fe.QUOTE});h();var Fa=W({name:"zenMode",label:"buttons.zenMode",icon:Ov,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.zenModeEnabled},perform(t,e){return{appState:{...e,zenModeEnabled:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.zenModeEnabled,predicate:(t,e,o)=>typeof o.zenModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.Z});h();var hh=W({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:Nv,viewMode:!1,trackEvent:{category:"canvas",predicate:t=>!t.objectsSnapModeEnabled},perform(t,e){return{appState:{...e,objectsSnapModeEnabled:!this.checked(e),gridSize:null},storeAction:P.NONE}},checked:t=>t.objectsSnapModeEnabled,predicate:(t,e,o)=>typeof o.objectsSnapModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.S});h();var Mn=W({name:"stats",label:"stats.title",icon:_v,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},perform(t,e){return{appState:{...e,showStats:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.showStats,keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.SLASH});h();var gh=W({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>r.scene.getSelectedElements(e).some(i=>fr(i)),perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=r.scene.getNonDeletedElementsMap();return n.forEach(a=>{let l=ct(a,i);if(l){let{width:s,height:d}=wc(l.originalText,Xo(l),l.lineHeight),c=pb(a.id);mb(a.id);let{x:m,y:u}=yc(a,l,i);re(l,{containerId:null,width:s,height:d,text:l.originalText,x:m,y:u}),re(a,{boundElements:a.boundElements?.filter(f=>f.id!==l.id),height:c||a.height})}}),{elements:t,appState:e,storeAction:P.CAPTURE}}}),bh=W({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=se(n[0])||se(n[1]),a;if(Rr(n[0])?a=n[0]:Rr(n[1])&&(a=n[1]),i&&a&&ct(a,r.scene.getNonDeletedElementsMap())===null)return!0}return!1},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i,a;se(n[0])&&Rr(n[1])?(i=n[0],a=n[1]):(i=n[1],a=n[0]),re(i,{containerId:a.id,verticalAlign:wo.MIDDLE,textAlign:ml.CENTER}),re(a,{boundElements:(a.boundElements||[]).concat({type:"text",id:i.id})});let l=a.height;return Ut(i,a,r.scene.getNonDeletedElementsMap()),kl(a.id,l),{elements:xS(t,a,i),appState:{...e,selectedElementIds:{[a.id]:!0}},storeAction:P.CAPTURE}}}),xS=(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),ho(r,pe([e,o])),r},vS=(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),ho(r,pe([e,o])),r},Cy=W({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e),i=n.every(a=>se(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(se(l)){let s=hn({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:$i("rectangle")?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:l.x-Gp,y:l.y-Gp,width:Vi(l.width,"rectangle"),height:Vi(l.height,"rectangle"),groupIds:l.groupIds,frameId:l.frameId});if(l.boundElements?.length){let d=l.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);i.filter(m=>d.includes(m.id)).forEach(m=>{let u=m.startBinding,f=m.endBinding;u?.elementId===l.id&&(u={...u,elementId:s.id}),f?.elementId===l.id&&(f={...f,elementId:s.id}),(u||f)&&re(m,{startBinding:u,endBinding:f},!1)})}re(l,{containerId:s.id,verticalAlign:wo.MIDDLE,boundElements:null,textAlign:ml.CENTER},!1),Ut(l,s,r.scene.getNonDeletedElementsMap()),i=vS([...i,s],s,l),a[s.id]=!0}return{elements:i,appState:{...e,selectedElementIds:a},storeAction:P.CAPTURE}}});h();h();var rr=v(H(),1);var Xr=v(k(),1),Eh=320,Sy=85,xh=5,ES=42,yS=500,vh=!1,cm=new Map,Ty=({element:t,elementsMap:e,setAppState:o,onLinkOpen:r,setToast:n,updateEmbedValidationStatus:i})=>{let a=Ba(),l=_n(),s=t.link||"",[d,c]=(0,rr.useState)(s),m=(0,rr.useRef)(null),u=a.showHyperlinkPopup==="editor",f=(0,rr.useCallback)(()=>{if(!m.current)return;let C=zr(m.current.value)||null;if(!t.link&&C&&xe("hyperlink","create"),Ht(t)){if(a.activeEmbeddable?.element===t&&o({activeEmbeddable:null}),!C){re(t,{link:null}),i(t,!1);return}if(!Zi(C,l.validateEmbeddable))C&&n({message:g("toast.unableToEmbed"),closable:!0}),t.link&&cm.set(t.id,t.link),re(t,{link:C}),i(t,!1);else{let{width:w,height:A}=t,z=Qn(C);z?.error instanceof URIError&&n({message:g("toast.unrecognizedLinkFormat"),closable:!0});let I=z?z.intrinsicSize.w/z.intrinsicSize.h:1,M=cm.get(t.id)!==t.link;re(t,{...M?{width:z?.type==="video"?w>A?w:A*I:w,height:z?.type==="video"&&w>A?w/I:A}:{},link:C}),i(t,!0),cm.has(t.id)&&cm.delete(t.id)}}else re(t,{link:C})},[t,n,l.validateEmbeddable,a.activeEmbeddable,o,i]);(0,rr.useLayoutEffect)(()=>()=>{f()},[f]),(0,rr.useEffect)(()=>{let C=null,w=A=>{if(u)return;C&&clearTimeout(C),CS(t,e,a,[A.clientX,A.clientY])&&(C=window.setTimeout(()=>{o({showHyperlinkPopup:!1})},yS))};return window.addEventListener("pointermove",w,!1),()=>{window.removeEventListener("pointermove",w,!1),C&&clearTimeout(C)}},[a,t,u,o,e]);let b=(0,rr.useCallback)(()=>{xe("hyperlink","delete"),re(t,{link:null}),u&&(m.current.value=""),o({showHyperlinkPopup:!1})},[o,t,u]),x=()=>{xe("hyperlink","edit","popup-ui"),o({showHyperlinkPopup:"editor"})},{x:E,y:T}=ky(t,a,e);return a.contextMenu||a.draggingElement||a.resizingElement||a.isRotating||a.openMenu||a.viewModeEnabled?null:(0,Xr.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${T}px`,left:`${E}px`,width:Eh,padding:xh},onClick:()=>{!t.link&&!u&&o({showHyperlinkPopup:"editor"})},children:[u?(0,Xr.jsx)("input",{className:$("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:d,onChange:C=>c(C.target.value),autoFocus:!0,onKeyDown:C=>{C.stopPropagation(),C[S.CTRL_OR_CMD]&&C.key===S.K&&C.preventDefault(),(C.key===S.ENTER||C.key===S.ESCAPE)&&(f(),o({showHyperlinkPopup:"info"}))}}):t.link?(0,Xr.jsx)("a",{href:zr(t.link||""),className:"excalidraw-hyperlinkContainer-link",target:kc(t.link)?"_self":"_blank",onClick:C=>{if(t.link&&r){let w=dc("excalidraw-link",C.nativeEvent);r({...t,link:zr(t.link)},w),w.defaultPrevented&&C.preventDefault()}},rel:"noopener noreferrer",children:t.link}):(0,Xr.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:g("labels.link.empty")}),(0,Xr.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!u&&(0,Xr.jsx)(ce,{type:"button",title:g("buttons.edit"),"aria-label":g("buttons.edit"),label:g("buttons.edit"),onClick:x,className:"excalidraw-hyperlinkContainer--edit",icon:la}),s&&!Ht(t)&&(0,Xr.jsx)(ce,{type:"button",title:g("buttons.remove"),"aria-label":g("buttons.remove"),label:g("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:er})]})]})},ky=(t,e,o)=>{let[r,n]=Wt(t,o),{x:i,y:a}=Qt({sceneX:r+t.width/2,sceneY:n},e),l=i-e.offsetLeft-Eh/2,s=a-e.offsetTop-Sy;return{x:l,y:s}},yh=(t,e)=>{let o=we(t,e);return o[0]?.link?Ht(o[0])?"labels.link.editEmbed":"labels.link.edit":Ht(o[0])?"labels.link.createEmbed":"labels.link.create"},ss=null,Iy=(t,e,o)=>{ss&&clearTimeout(ss),ss=window.setTimeout(()=>wS(t,e,o),T1)},wS=(t,e,o)=>{if(!t.link)return;let r=Pa();r.classList.add("excalidraw-tooltip--visible"),r.style.maxWidth="20rem",r.textContent=t.link;let[n,i,a,l]=Wt(t,o),[s,d,c,m]=c0([n,i,a,l],t.angle,e),u=Qt({sceneX:s,sceneY:d},e);eh(r,{left:u.x,top:u.y,width:c,height:m},"top"),xe("hyperlink","tooltip","link-icon"),vh=!0},Ay=()=>{ss&&clearTimeout(ss),vh&&(vh=!1,Pa().classList.remove("excalidraw-tooltip--visible"))},CS=(t,e,o,[r,n])=>{let{x:i,y:a}=Ye({clientX:r,clientY:n},o),l=15/o.zoom.value;if(a0(i,a,t,e))return!1;let[s,d,c]=Wt(t,e);if(i>=s&&i<=c&&a>=d-Sy&&a<=d)return!1;let{x:m,y:u}=ky(t,o,e);return!(r>=m-l&&r<=m+Eh+xh*2+l&&n>=u-l&&n<=u+l+xh*2+ES)};var My=v(k(),1),cs=W({name:"hyperlink",label:(t,e)=>yh(t,e),icon:Ul,perform:(t,e)=>e.showHyperlinkPopup==="editor"?!1:{elements:t,appState:{...e,showHyperlinkPopup:"editor",openMenu:null},storeAction:P.CAPTURE},trackEvent:{category:"hyperlink",action:"click"},keyTest:t=>t[S.CTRL_OR_CMD]&&t.key===S.K,predicate:(t,e)=>we(t,e).length===1,PanelComponent:({elements:t,appState:e,updateData:o})=>{let r=we(t,e);return(0,My.jsx)(ce,{type:"button",icon:Ul,"aria-label":g(yh(t,e)),title:`${Ht(t[0])?g("labels.link.labelEmbed"):g("labels.link.label")} - ${F("CtrlOrCmd+K")}`,onClick:()=>o(null),selected:r.length===1&&!!r[0].link})}});h();var wh=t=>t.every(e=>!e.locked),Ch=W({name:"toggleElementLock",label:(t,e,o)=>{let r=o.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1});return r.length===1&&!Ee(r[0])?r[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock":wh(r)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(t,e)=>{let o=we(e,t);return wh(o)?aa:ri},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=wh(n),a=pe(n);return{elements:t.map(l=>a.has(l.id)?he(l,{locked:i}):l),appState:{...e,selectedLinearElement:i?null:e.selectedLinearElement},storeAction:P.CAPTURE}},keyTest:(t,e,o,r)=>t.key.toLocaleLowerCase()===S.L&&t[S.CTRL_OR_CMD]&&t.shiftKey&&r.scene.getSelectedElements({selectedElementIds:e.selectedElementIds,includeBoundTextElement:!1}).length>0}),_y=W({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:ri,predicate:(t,e)=>we(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?he(r,{locked:!1}):r),appState:{...e,selectedElementIds:Object.fromEntries(o.map(r=>[r.id,!0]))},storeAction:P.CAPTURE}},label:"labels.elementLock.unlockAll"});h();h();var $o=v(H(),1);h();var Lm=v(H(),1);h();var dm=v(H(),1),Ly=()=>{let[t,e]=(0,dm.useState)(null),o=(0,dm.useCallback)(r=>e(r),[]);return[t,o]};h();var Py=v(H(),1);var Ry=v(k(),1),zt=Py.default.forwardRef(({children:t,padding:e,className:o,style:r},n)=>(0,Ry.jsx)("div",{className:$("Island",o),style:{"--padding":e,...r},ref:n,children:t}));h();var Dy=v(br(),1);var Ny=v(H(),1),ds=v(k(),1),Oy=t=>{let{closeOnClickOutside:e=!0}=t,o=Xd({className:"excalidraw-modal-container"}),r=(0,Ny.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));if(!o)return null;let n=i=>{i.key===S.ESCAPE&&(i.nativeEvent.stopImmediatePropagation(),i.stopPropagation(),t.onCloseRequest())};return(0,Dy.createPortal)((0,ds.jsxs)("div",{className:$("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,ds.jsx)("div",{className:"Modal__background",onClick:e?t.onCloseRequest:void 0}),(0,ds.jsx)("div",{className:"Modal__content",style:{"--max-width":`${t.maxWidth}px`},tabIndex:0,children:t.children})]}),o)};h();var Eo=v(H(),1);h();var $a=v(H(),1);h();var mm=v(H(),1);var Sh=We(new Map),Fy=async t=>await Rl({elements:t,appState:{exportBackground:!1,viewBackgroundColor:Ar.white},files:null,renderEmbeddables:!1}),By=(t,e,o)=>{let[r,n]=(0,mm.useState)();return(0,mm.useEffect)(()=>{if(e)if(t){let i=o.get(t);i?n(i):(async()=>{let a=await Fy(e);a.querySelector(".style-fonts")?.remove(),a&&(o.set(t,a),n(a))})()}else(async()=>{let i=await Fy(e);n(i)})()},[t,e,o,n]),r},pm=()=>{let[t]=Se(Sh,Ne);return{clearLibraryCache:()=>t.clear(),deleteItemsFromLibraryCache:r=>{r.forEach(n=>t.delete(n))},svgCache:t}};h();var um=class{jobs=[];running=!1;tick(){if(this.running)return;let e=this.jobs.shift();e?(this.running=!0,e.promise.resolve(gl(e.jobFactory,...e.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(e,...o){let r=sc();return this.jobs.push({jobFactory:e,promise:r,args:o}),this.tick(),r}};var $y=new _o,Ei=We({status:"loaded",isInitialized:!1,libraryItems:[]}),ms=t=>pr(t),SS=(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)),Hy=(t,e)=>{let o=[];for(let r of e)SS(t,r)&&o.push(r);return[...o,...t]},Uy=(t,e)=>{let o=pe(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=pe(t);for(let i of e)n.has(i.id)||r.addedItems.set(i.id,i);return r},Th=class{currLibraryItems=[];prevLibraryItems=ms(this.currLibraryItems);app;constructor(e){this.app=e}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Gt.set(Ei,e=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:e.isInitialized}));else{Gt.set(Ei,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let e=this.prevLibraryItems;this.prevLibraryItems=ms(this.currLibraryItems);let o=ms(this.currLibraryItems);this.app.props.onLibraryChange?.(o),$y.trigger(Uy(e,o),o)}catch(e){console.error(e)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Gt.set(Sh,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(ms(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:jo.name,tab:nc}}),this.setLibrary(()=>new Promise(async(a,l)=>{try{let s=await(typeof e=="function"&&!(e instanceof Blob)?e(this.currLibraryItems):e),d;s instanceof Blob?d=await mu(s,i):d=_l(s,i),!o||window.confirm(g("alerts.confirmAddLibrary",{numShapes:d.length}))?(o&&this.app.focusContainer(),a(r?Hy(this.currLibraryItems,d):d)):l(new Hi)}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=ms(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}},Wy=Th,gm=t=>{let o=Math.ceil(Math.sqrt(t.length)),r=[],n=f=>t.slice(f*o,f*o+o).reduce((x,E)=>{let{height:T}=Io(E.elements);return Math.max(x,T)},0),i=f=>{let b=0,x=0,E=0;for(let T of t){if(b%o===0&&(x=0),x===f){let{width:C}=Io(T.elements);E=Math.max(E,C)}b++,x++}return E},a=0,l=0,s=0,d=0,c=0,m=0,u=0;for(let f of t){c&&c%o===0&&(l+=s+50,a=0,m=0,u++),m===0&&(s=n(u)),d=i(m);let{minX:b,minY:x,width:E,height:T}=Io(f.elements),C=(d-E)/2,w=(s-T)/2;r.push(...f.elements.map(A=>({...A,x:A.x+a+C-b,y:A.y+l+w-x}))),a+=d+50,c++,m++}return r},kh=()=>{let t=new URLSearchParams(window.location.hash.slice(1)).get(ec.addLibrary)||new URLSearchParams(window.location.search).get(Qs.addLibrary),e=t?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return t?{libraryUrl:t,idToken:e}:null},za=class t{static queue=new um;static async getLibraryItems(e,o,r=!0){let n=()=>new Promise(async(i,a)=>{try{let l=await e.load({source:o});i(_l(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)}},ps=0,fm=0,hm=t=>Au(t.map(e=>`${e.id}:${Iu(e.elements)}`).sort().join()),zy=async(t,e)=>{try{return fm++,await za.run(t,async o=>{let r=pe(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=hm(i);return a!==ps&&await t.save({libraryItems:i}),ps=a,i})}finally{fm--}},TS=t=>{let{excalidrawAPI:e}=t,o=(0,$a.useRef)(t);o.current=t;let r=(0,$a.useRef)(!1);(0,$a.useEffect)(()=>{if(!e)return;r.current=!1;let n=async({libraryUrl:l,idToken:s})=>{let d=new Promise(async(m,u)=>{try{let b=await(await fetch(decodeURIComponent(l))).blob();m(b)}catch(f){u(f)}}),c=s!==e.id;await(c&&document.hidden?new Promise(m=>{window.addEventListener("focus",()=>m(),{once:!0})}):null);try{await e.updateLibrary({libraryItems:d,prompt:c,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(ec.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(ec.addLibrary),window.history.replaceState({},ll,`#${m.toString()}`)}else if(window.location.search.includes(Qs.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(Qs.addLibrary),window.history.replaceState({},ll,`?${m.toString()}`)}}},i=l=>{l.preventDefault();let s=kh();s&&(l.stopImmediatePropagation(),window.history.replaceState({},"",l.oldURL),n(s))},a=kh();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,d=sc();s?d.resolve(gl(s.load).then(async c=>{let m=null;try{if(!c)return za.getLibraryItems(l,"load");m=_l(c.libraryItems||[],"published");let u=await zy(l,Uy([],m));try{await s.clear()}catch(f){console.error(`couldn't delete legacy library data: ${f.message}`)}return u}catch(u){return console.error(`couldn't migrate legacy library data: ${u.message}`),m}}).catch(c=>(console.error(`error during library migration: ${c.message}`),za.getLibraryItems(l,"load")))):d.resolve(gl(za.getLibraryItems,l,"load")),e.updateLibrary({libraryItems:d.then(c=>{let m=c||[];return ps=hm(m),m}),merge:!0}).finally(()=>{r.current=!0})}return window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}},[e]),(0,$a.useEffect)(()=>{let n=$y.on(async(a,l)=>{let s=r.current,d="adapter"in o.current&&o.current.adapter||null;try{d&&ps!==hm(l)&&await zy(d,a)}catch(c){console.error(`couldn't persist library update: ${c.message}`,a),s&&o.current.excalidrawAPI&&o.current.excalidrawAPI.updateScene({appState:{errorMessage:g("errors.saveLibraryError")}})}}),i=a=>{fm&&G1(a)};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i),n(),ps=0,fm=0}},[])};h();var Zt=v(H(),1);h();var Ih=v(H(),1);var Ah=v(k(),1),kS=(0,Ih.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Ah.jsx)("div",{className:$("Stack Stack_horizontal",n),style:{"--gap":e,alignItems:o,justifyContent:r,...i},ref:a,children:t})),IS=(0,Ih.forwardRef)(({children:t,gap:e,align:o,justifyContent:r,className:n,style:i},a)=>(0,Ah.jsx)("div",{className:$("Stack Stack_vertical",n),style:{"--gap":e,justifyItems:o,justifyContent:r,...i},ref:a,children:t})),Pt={Row:kS,Col:IS};h();h();var Vy=v(k(),1),AS=({theme:t,id:e,libraryReturnUrl:o})=>{let r=o||window.location.origin+window.location.pathname;return(0,Vy.jsx)("a",{className:"library-menu-browse-button",href:`${y.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${r}&useHash=true&token=${e}&theme=${t}&version=${oc.excalidrawLibrary}`,target:"_excalidraw_libraries",children:g("labels.libraries")})},Gy=AS;var xm=v(k(),1),bm=({libraryReturnUrl:t,theme:e,id:o,style:r,children:n,className:i})=>(0,xm.jsxs)("div",{className:$("library-menu-control-buttons",i),style:r,children:[(0,xm.jsx)(Gy,{id:o,libraryReturnUrl:t,theme:e}),n]});h();var Va=v(H(),1);h();var us=v(H(),1);var MS=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,_S=/{{([\w-]+)}}/,LS=/<([\w-]+)>/,PS=/<\/([\w-]+)>/,RS=(t,e)=>{let o=[{name:"",children:[]}];return t.split(MS).filter(Boolean).forEach(r=>{let n=r.match(LS),i=r.match(PS),a=r.match(_S);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(),d=us.default.createElement(us.default.Fragment,{},...s.children),c=e[s.name];typeof c=="function"&&o[o.length-1].children.push(c(d))}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},DS=({i18nKey:t,children:e,...o})=>{let{t:r}=vt();return us.default.createElement(us.default.Fragment,{},...RS(r(t),o))},no=DS;h();h();var yi=v(k(),1),NS=({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,yi.jsxs)("button",{className:$("Dialog__action-button",s,o),type:i,"aria-label":t,onClick:e,...l,children:[r&&(0,yi.jsx)("div",{style:a?{visibility:"hidden"}:{},children:r}),(0,yi.jsx)("div",{style:a?{visibility:"hidden"}:{},children:t}),a&&(0,yi.jsx)("div",{style:{position:"absolute",inset:0},children:(0,yi.jsx)(Ot,{})})]})},Ha=NS;var Ua=v(k(),1),OS=t=>{let{onConfirm:e,onCancel:o,children:r,confirmText:n=g("buttons.confirm"),cancelText:i=g("buttons.cancel"),className:a="",...l}=t,s=Le(),d=Wr(Wa,Ne),{container:c}=_t();return(0,Ua.jsxs)(et,{onCloseRequest:o,size:"small",...l,className:`confirm-dialog ${a}`,children:[r,(0,Ua.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Ua.jsx)(Ha,{label:i,onClick:()=>{s({openMenu:null}),d(!1),o(),c?.focus()}}),(0,Ua.jsx)(Ha,{label:n,onClick:()=>{s({openMenu:null}),d(!1),e(),c?.focus()},actionType:"danger"})]})]})},vm=OS;h();var vo=v(H(),1);h();var fo=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 ie=v(k(),1),FS=async t=>{let r=Math.round(8),n=Math.max(Math.round(128/64),2),i=H1(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=Mt.white,l.fillRect(0,0,a.width,a.height);for(let[s,d]of t.entries()){let c=await ei({elements:d.elements,files:null,maxWidthOrHeight:128}),{width:m,height:u}=c,f=Math.floor(s/6)*(128+r*2),b=s%6*(128+r*2);l.drawImage(c,b+(128-m)/2+r,f+(128-u)/2+r),l.lineWidth=n,l.strokeStyle=Mt.gray[4],l.strokeRect(b+r/2,f+r/2,128+r,128+r)}return await Ll(new File([await $r(a)],"preview",{type:Dt.png}),{outputType:Dt.jpg,maxWidthOrHeight:5e3})},BS=({libItem:t,appState:e,index:o,onChange:r,onRemove:n})=>{let i=(0,vo.useRef)(null),a=(0,vo.useRef)(null);return(0,vo.useEffect)(()=>{let l=i.current;l&&(async()=>{let s=await Rl({elements:t.elements,appState:{...e,viewBackgroundColor:Mt.white,exportBackground:!0},files:null});l.innerHTML=s.outerHTML})()},[t.elements,e]),(0,ie.jsxs)("div",{className:"single-library-item",children:[t.status==="published"&&(0,ie.jsx)("span",{className:"single-library-item-status",children:g("labels.statusPublished")}),(0,ie.jsx)("div",{ref:i,className:"single-library-item__svg"}),(0,ie.jsx)(ce,{"aria-label":g("buttons.remove"),type:"button",icon:Ro,className:"single-library-item--remove",onClick:n.bind(null,t.id),title:g("buttons.remove")}),(0,ie.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,ie.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,ie.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,ie.jsx)("span",{style:{fontWeight:500,color:Mt.gray[6]},children:g("publishDialog.itemName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.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,ie.jsx)("span",{className:"error",children:t.error})]})]})},zS=({onClose:t,libraryItems:e,appState:o,onSuccess:r,onError:n,updateItemsInStorage:i,onRemove:a})=>{let[l,s]=(0,vo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[d,c]=(0,vo.useState)(!1);(0,vo.useEffect)(()=>{let w=fo.get(So.PUBLISH_LIBRARY);w&&s(w)},[]);let[m,u]=(0,vo.useState)(e.slice());(0,vo.useEffect)(()=>{u(e.slice())},[e]);let f=w=>{s({...l,[w.target.name]:w.target.value})},b=async w=>{w.preventDefault(),c(!0);let A=[],z=!1;if(m.forEach(G=>{let O="";G.name||(O=g("publishDialog.errors.required"),z=!0),A.push({...G,error:O})}),z){u(A),c(!1);return}let I=await FS(m),M={type:v1.excalidrawLibrary,version:oc.excalidrawLibrary,source:E1,libraryItems:m},_=JSON.stringify(M,null,2),U=new Blob([_],{type:"application/json"}),D=new FormData;D.append("excalidrawLib",U),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(`${y.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:D}).then(G=>G.ok?G.json().then(({url:O})=>{fo.delete(So.PUBLISH_LIBRARY),r({url:O,authorName:l.authorName,items:m})}):G.json().catch(()=>{throw new Error(G.statusText||"something went wrong")}).then(O=>{throw new Error(O.message||G.statusText||"something went wrong")}),G=>{console.error(G),n(G),c(!1)}).catch(G=>{console.error(G),n(G),c(!1)})},x=()=>{let w=[];return m.forEach((A,z)=>{w.push((0,ie.jsx)("div",{className:"single-library-item-wrapper",children:(0,ie.jsx)(BS,{libItem:A,appState:o,index:z,onChange:(I,M)=>{let _=m.slice();_[M].name=I,u(_)},onRemove:a})},z))}),(0,ie.jsx)("div",{className:"selected-library-items",children:w})},E=(0,vo.useCallback)(()=>{i(m),fo.set(So.PUBLISH_LIBRARY,l),t()},[m,t,i,l]),T=!!e.length,C=e.some(w=>w.status==="published");return(0,ie.jsx)(et,{onCloseRequest:E,title:g("publishDialog.title"),className:"publish-library",children:T?(0,ie.jsxs)("form",{onSubmit:b,children:[(0,ie.jsx)("div",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteDescription",link:w=>(0,ie.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteGuidelines",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:w})})}),(0,ie.jsx)("div",{className:"publish-library-note",children:g("publishDialog.noteItems")}),C&&(0,ie.jsx)("span",{className:"publish-library-note publish-library-warning",children:g("publishDialog.republishWarning")}),x(),(0,ie.jsxs)("div",{className:"publish-library__fields",children:[(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"name",required:!0,value:l.name,onChange:f,placeholder:g("publishDialog.placeholder.libraryName")})]}),(0,ie.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.libraryDesc")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("textarea",{name:"description",rows:4,required:!0,value:l.description,onChange:f,placeholder:g("publishDialog.placeholder.libraryDesc")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsxs)("div",{children:[(0,ie.jsx)("span",{children:g("publishDialog.authorName")}),(0,ie.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,ie.jsx)("input",{type:"text",name:"authorName",required:!0,value:l.authorName,onChange:f,placeholder:g("publishDialog.placeholder.authorName")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.githubUsername")}),(0,ie.jsx)("input",{type:"text",name:"githubHandle",value:l.githubHandle,onChange:f,placeholder:g("publishDialog.placeholder.githubHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.twitterUsername")}),(0,ie.jsx)("input",{type:"text",name:"twitterHandle",value:l.twitterHandle,onChange:f,placeholder:g("publishDialog.placeholder.twitterHandle")})]}),(0,ie.jsxs)("label",{children:[(0,ie.jsx)("span",{children:g("publishDialog.website")}),(0,ie.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:g("publishDialog.errors.website"),value:l.website,onChange:f,placeholder:g("publishDialog.placeholder.website")})]}),(0,ie.jsx)("span",{className:"publish-library-note",children:(0,ie.jsx)(no,{i18nKey:"publishDialog.noteLicense",link:w=>(0,ie.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:w})})})]}),(0,ie.jsxs)("div",{className:"publish-library__buttons",children:[(0,ie.jsx)(Ha,{label:g("buttons.cancel"),onClick:E,"data-testid":"cancel-clear-canvas-button"}),(0,ie.jsx)(Ha,{type:"submit",label:g("buttons.submit"),actionType:"primary",isLoading:d})]})]}):(0,ie.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:g("publishDialog.atleastOneLibItem")})})},Ky=zS;h();h();var jy=v(k(),1),Yy=({className:t="",children:e,onToggle:o,title:r,...n})=>{let i=Me(),a=$(`dropdown-menu-button ${t}`,"zen-mode-transition",{"dropdown-menu-button--mobile":i.editor.isMobile}).trim();return(0,jy.jsx)("button",{"data-prevent-outside-click":!0,className:a,onClick:o,type:"button","data-testid":"dropdown-menu-button",title:r,...n,children:e})},Zy=Yy;Yy.displayName="DropdownMenuTrigger";h();h();var Em=v(H(),1);var Mh=Em.default.createContext({}),ym=(t="",e=!1)=>`dropdown-menu-item dropdown-menu-item-base ${t} ${e?"dropdown-menu-item--selected":""}`.trim(),wm=(t,e)=>{let o=(0,Em.useContext)(Mh);return cn(t,r=>{let n=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});e?.(n),n.defaultPrevented||o.onSelect?.(n)})};h();var Ln=v(k(),1),$S=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,Ln.jsxs)(Ln.Fragment,{children:[(0,Ln.jsx)("div",{className:"dropdown-menu-item__icon",children:t}),(0,Ln.jsx)("div",{className:"dropdown-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,Ln.jsx)("div",{className:"dropdown-menu-item__shortcut",children:e})]})},Cm=$S;var Sm=v(k(),1),_h=({icon:t,onSelect:e,children:o,shortcut:r,className:n,selected:i,...a})=>{let l=wm(a.onClick,e);return(0,Sm.jsx)("button",{...a,onClick:l,type:"button",className:ym(n,i),title:a.title??a["aria-label"],children:(0,Sm.jsx)(Cm,{icon:t,shortcut:r,children:o})})};_h.displayName="DropdownMenuItem";var Xy=({children:t})=>(0,Sm.jsx)("div",{style:{display:"inline-flex",marginLeft:"auto",padding:"2px 4px",background:"pink",borderRadius:6,fontSize:9,color:"black",fontFamily:"Cascadia, monospace"},children:t});Xy.displayName="DropdownMenuItemBadge";_h.Badge=Xy;var Bo=_h;h();var Qy=v(k(),1),qy=()=>(0,Qy.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),Jy=qy;qy.displayName="DropdownMenuSeparator";h();var Tm=v(k(),1),ew=({children:t,className:e="",style:o,title:r})=>(0,Tm.jsxs)("div",{className:`dropdown-menu-group ${e}`,style:o,children:[r&&(0,Tm.jsx)("p",{className:"dropdown-menu-group-title",children:r}),t]}),tw=ew;ew.displayName="DropdownMenuGroup";h();var km=v(H(),1);var fs=v(k(),1),ow=({children:t,onClickOutside:e,className:o="",onSelect:r,style:n})=>{let i=Me(),a=(0,km.useRef)(null),l=La({onClickOutside:e});_a(a,()=>{l.onClickOutside?.()}),(0,km.useEffect)(()=>{let d=m=>{m.key===S.ESCAPE&&(m.stopImmediatePropagation(),l.onClickOutside?.())},c={capture:!0};return document.addEventListener("keydown",d,c),()=>{document.removeEventListener("keydown",d,c)}},[l]);let s=$(`dropdown-menu ${o}`,{"dropdown-menu--mobile":i.editor.isMobile}).trim();return(0,fs.jsx)(Mh.Provider,{value:{onSelect:r},children:(0,fs.jsx)("div",{ref:a,className:s,style:n,"data-testid":"dropdown-menu",children:i.editor.isMobile?(0,fs.jsx)(Pt.Col,{className:"dropdown-menu-container",children:t}):(0,fs.jsx)(zt,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:t})})})};ow.displayName="DropdownMenuContent";var rw=ow;h();var Lh=v(k(),1),nw=({icon:t,shortcut:e,href:o,children:r,onSelect:n,className:i="",selected:a,...l})=>{let s=wm(l.onClick,n);return(0,Lh.jsx)("a",{...l,href:o,target:"_blank",rel:"noreferrer",className:ym(i,a),title:l.title??l["aria-label"],onClick:s,children:(0,Lh.jsx)(Cm,{icon:t,shortcut:e,children:r})})},Ga=nw;nw.displayName="DropdownMenuItemLink";h();var aw=v(k(),1),HS=({children:t,className:e="",selected:o,...r})=>(0,aw.jsx)("div",{...r,className:`dropdown-menu-item-base dropdown-menu-item-custom ${e} ${o?"dropdown-menu-item--selected":""}`.trim(),children:t}),iw=HS;h();var hs=v(H(),1),lw=t=>{let e=hs.default.Children.toArray(t).find(o=>hs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuTrigger");return e||null},sw=t=>{let e=hs.default.Children.toArray(t).find(o=>hs.default.isValidElement(o)&&typeof o.type!="string"&&o?.type.displayName&&o.type.displayName==="DropdownMenuContent");return e||null};var Im=v(k(),1),qr=({children:t,open:e})=>{let o=lw(t),r=sw(t);return(0,Im.jsxs)(Im.Fragment,{children:[o,e&&r]})};qr.Trigger=Zy;qr.Content=rw;qr.Item=Bo;qr.ItemLink=Ga;qr.ItemCustom=iw;qr.Group=tw;qr.Separator=Jy;var De=qr;qr.displayName="DropdownMenu";var yt=v(k(),1),US=(t,e)=>t.filter(o=>e.includes(o.id)),WS=({setAppState:t,selectedItems:e,library:o,onRemoveFromLibrary:r,resetLibrary:n,onSelectItems:i,appState:a,className:l})=>{let[s]=Se(Ei,Ne),[d,c]=Se(Wa,Ne),m=()=>{let D=e.length?g("alerts.removeItemsFromsLibrary",{count:e.length}):g("alerts.resetLibrary"),G=e.length?g("confirmDialog.removeItemsFromLib"):g("confirmDialog.resetLibrary");return(0,yt.jsx)(vm,{onConfirm:()=>{e.length?r():n(),f(!1)},onCancel:()=>{f(!1)},title:G,children:(0,yt.jsx)("p",{children:D})})},[u,f]=(0,Va.useState)(!1),b=!!e.length,x=b?s.libraryItems.filter(D=>e.includes(D.id)):s.libraryItems,E=b?g("buttons.remove"):g("buttons.resetLibrary"),[T,C]=(0,Va.useState)(!1),[w,A]=(0,Va.useState)(null),z=(0,Va.useCallback)(()=>(0,yt.jsxs)(et,{onCloseRequest:()=>A(null),title:g("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,yt.jsx)("p",{children:(0,yt.jsx)(no,{i18nKey:"publishSuccessDialog.content",authorName:w.authorName,link:D=>(0,yt.jsx)("a",{href:w?.url,target:"_blank",rel:"noopener noreferrer",children:D})})}),(0,yt.jsx)(ce,{type:"button",title:g("buttons.close"),"aria-label":g("buttons.close"),label:g("buttons.close"),onClick:()=>A(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[A,w]),I=(D,G)=>{C(!1),A({url:D.url,authorName:D.authorName});let O=G.slice();O.forEach(B=>{e.includes(B.id)&&(B.status="published")}),o.setLibrary(O)},M=async()=>{try{await o.updateLibrary({libraryItems:Pc({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(D){if(D?.name==="AbortError"){console.warn(D);return}t({errorMessage:g("errors.importLibraryError")})}},_=async()=>{let D=b?x:await o.getLatestLibrary();jb(D).catch(lc).catch(G=>{t({errorMessage:G.message})})},U=()=>(0,yt.jsxs)(De,{open:d,children:[(0,yt.jsx)(De.Trigger,{onToggle:()=>c(!d),children:lx}),(0,yt.jsxs)(De.Content,{onClickOutside:()=>c(!1),onSelect:()=>c(!1),className:"library-menu",children:[!b&&(0,yt.jsx)(De.Item,{onSelect:M,icon:ca,"data-testid":"lib-dropdown--load",children:g("buttons.load")}),!!x.length&&(0,yt.jsx)(De.Item,{onSelect:_,icon:ni,"data-testid":"lib-dropdown--export",children:g("buttons.export")}),!!x.length&&(0,yt.jsx)(De.Item,{onSelect:()=>f(!0),icon:er,children:E}),b&&(0,yt.jsx)(De.Item,{icon:gv,onSelect:()=>C(!0),"data-testid":"lib-dropdown--remove",children:g("buttons.publishLibrary")})]})]});return(0,yt.jsxs)("div",{className:$("library-menu-dropdown-container",l),children:[U(),e.length>0&&(0,yt.jsx)("div",{className:"library-actions-counter",children:e.length}),u&&m(),T&&(0,yt.jsx)(Ky,{onClose:()=>C(!1),libraryItems:US(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(G=>G!==D))}),w&&z()]})},Ph=({selectedItems:t,onSelectItems:e,className:o})=>{let{library:r}=mo(),{clearLibraryCache:n,deleteItemsFromLibraryCache:i}=pm(),a=_e(),l=Le(),[s]=Se(Ei,Ne),d=async m=>{let u=m.filter(f=>!t.includes(f.id));r.setLibrary(u).catch(()=>{l({errorMessage:g("alerts.errorRemovingFromLibrary")})}),i(t),e([])};return(0,yt.jsx)(WS,{appState:a,setAppState:l,selectedItems:t,onSelectItems:e,library:r,onRemoveFromLibrary:()=>d(s.libraryItems),resetLibrary:()=>{r.resetLibrary(),n()},className:o})};h();var Ka=v(H(),1);h();var Pn=v(H(),1);var wi=v(k(),1),cw=(0,Pn.memo)(({id:t,elements:e,isPending:o,onClick:r,selected:n,onToggle:i,onDrag:a,svgCache:l})=>{let s=(0,Pn.useRef)(null),d=By(t,e,l);(0,Pn.useEffect)(()=>{let b=s.current;if(b)return d&&(b.innerHTML=d.outerHTML),()=>{b.innerHTML=""}},[d]);let[c,m]=(0,Pn.useState)(!1),u=Me().editor.isMobile,f=o&&(0,wi.jsx)("div",{className:"library-unit__adder",children:ax});return(0,wi.jsxs)("div",{className:$("library-unit",{"library-unit__active":e,"library-unit--hover":e&&c,"library-unit--selected":n,"library-unit--skeleton":!d}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,wi.jsx)("div",{className:$("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}m(!1),a(t,b)}}),f,t&&e&&(c||u||n)&&(0,wi.jsx)(hi,{checked:n,onChange:(b,x)=>i(t,x),className:"library-unit__checkbox"})]})}),dw=()=>(0,wi.jsx)("div",{className:"library-unit library-unit--skeleton"});h();var Am=v(H(),1);function GS(){return[!1,(0,Am.useCallback)(e=>e(),[])]}var mw=Am.default.useTransition||GS;var Ci=v(k(),1),Rh=({children:t})=>(0,Ci.jsx)("div",{className:"library-menu-items-container__grid",children:t}),Mm=(0,Ka.memo)(({items:t,onItemSelectToggle:e,onItemDrag:o,isItemSelected:r,onClick:n,svgCache:i,itemsRenderedPerBatch:a})=>{let[,l]=mw(),[s,d]=(0,Ka.useState)(0);return(0,Ka.useEffect)(()=>{s<t.length&&l(()=>{d(s+a)})},[s,t.length,l,a]),(0,Ci.jsx)(Ci.Fragment,{children:t.map((c,m)=>m<s?(0,Ci.jsx)(cw,{elements:c?.elements,isPending:!c?.id&&!!c?.elements,onClick:n,svgCache:i,id:c?.id,selected:r(c.id),onToggle:e,onDrag:o},c?.id??m):(0,Ci.jsx)(dw,{},m))})});h();var gw=v(H(),1);var bw=v(Nh(),1),sT=We(0),xw=t=>{let[e,o]=Se(sT);return(0,gw.useEffect)(()=>{let{current:r}=t;if(!r)return;let n=(0,bw.default)(()=>{let{scrollTop:i}=r;o(i)},200);return r.addEventListener("scroll",n),()=>{n.cancel(),r.removeEventListener("scroll",n)}},[t,o]),e};var qe=v(k(),1),cT=17,dT=64;function Oh({isLoading:t,libraryItems:e,onAddToLibrary:o,onInsertLibraryItems:r,pendingElements:n,theme:i,id:a,libraryReturnUrl:l,onSelectItems:s,selectedItems:d}){let c=(0,Zt.useRef)(null),m=xw(c);(0,Zt.useEffect)(()=>{m>0&&c.current?.scrollTo(0,m)},[]);let{svgCache:u}=pm(),f=(0,Zt.useMemo)(()=>e.filter(D=>D.status!=="published"),[e]),b=(0,Zt.useMemo)(()=>e.filter(D=>D.status==="published"),[e]),x=!e.length&&!n.length,E=!n.length&&!f.length&&!b.length,[T,C]=(0,Zt.useState)(null),w=(0,Zt.useCallback)((D,G)=>{let O=!d.includes(D),B=[...f,...b];if(O){if(G.shiftKey&&T){let te=B.findIndex(me=>me.id===T),oe=B.findIndex(me=>me.id===D);if(te===-1||oe===-1){s([...d,D]);return}let ve=pe(d),Ie=B.reduce((me,j,R)=>((R>=te&&R<=oe||ve.has(j.id))&&me.push(j.id),me),[]);s(Ie)}else s([...d,D]);C(D)}else C(null),s(d.filter(te=>te!==D))},[T,s,b,d,f]),A=(0,Zt.useCallback)(D=>{let G;return d.includes(D)?G=e.filter(O=>d.includes(O.id)):G=e.filter(O=>O.id===D),G.map(O=>({...O,elements:Lc(O.elements,{randomizeSeed:!0})}))},[e,d]),z=(0,Zt.useCallback)((D,G)=>{G.dataTransfer.setData(Dt.excalidrawlib,hu(A(D)))},[A]),I=(0,Zt.useCallback)(D=>D?d.includes(D):!1,[d]),M=(0,Zt.useCallback)(()=>{o(n)},[n,o]),_=(0,Zt.useCallback)(D=>{D&&r(A(D))},[A,r]),U=u.size>=e.length?dT:cT;return(0,qe.jsxs)("div",{className:"library-menu-items-container",style:n.length||f.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!E&&(0,qe.jsx)(Ph,{selectedItems:d,onSelectItems:s,className:"library-menu-dropdown-container--in-heading"}),(0,qe.jsxs)(Pt.Col,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:b.length>0?1:"0 1 auto",marginBottom:0},ref:c,children:[(0,qe.jsxs)(qe.Fragment,{children:[!E&&(0,qe.jsx)("div",{className:"library-menu-items-container__header",children:g("labels.personalLib")}),t&&(0,qe.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,qe.jsx)(Ot,{})}),!n.length&&!f.length?(0,qe.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,qe.jsx)("div",{className:"library-menu-items__no-items__label",children:g("library.noItems")}),(0,qe.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?g("library.hint_emptyPrivateLibrary"):g("library.hint_emptyLibrary")})]}):(0,qe.jsxs)(Rh,{children:[n.length>0&&(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:[{id:null,elements:n}],onItemSelectToggle:w,onItemDrag:z,onClick:M,isItemSelected:I,svgCache:u}),(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:f,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})]})]}),(0,qe.jsxs)(qe.Fragment,{children:[(b.length>0||n.length>0||f.length>0)&&(0,qe.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:g("labels.excalidrawLib")}),b.length>0?(0,qe.jsx)(Rh,{children:(0,qe.jsx)(Mm,{itemsRenderedPerBatch:U,items:b,onItemSelectToggle:w,onItemDrag:z,onClick:_,isItemSelected:I,svgCache:u})}):f.length>0?(0,qe.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,qe.jsx)(bm,{style:{padding:"16px 0",width:"100%"},id:a,libraryReturnUrl:l,theme:i,children:(0,qe.jsx)(Ph,{selectedItems:d,onSelectItems:s})})]})]})}var zo=v(k(),1),Wa=We(!1),vw=({children:t})=>(0,zo.jsx)("div",{className:"layer-ui__library",children:t}),mT=({onInsertLibraryItems:t,pendingElements:e,onAddToLibrary:o,setAppState:r,libraryReturnUrl:n,library:i,id:a,theme:l,selectedItems:s,onSelectItems:d})=>{let[c]=Se(Ei,Ne),m=(0,Eo.useCallback)(b=>{(async(E,T)=>{xe("element","addToLibrary","ui");for(let w of ic)if(E.some(A=>A.type===w))return r({errorMessage:g(`errors.libraryElementTypeError.${w}`)});let C=[{status:"unpublished",elements:E,id:mn(),created:Date.now()},...T];o(),i.setLibrary(C).catch(()=>{r({errorMessage:g("alerts.errorAddingToLibrary")})})})(b,c.libraryItems)},[o,i,r,c.libraryItems]),u=(0,Eo.useMemo)(()=>c.libraryItems,[c]);if(c.status==="loading"&&!c.isInitialized)return(0,zo.jsx)(vw,{children:(0,zo.jsx)("div",{className:"layer-ui__library-message",children:(0,zo.jsxs)("div",{children:[(0,zo.jsx)(Ot,{size:"2em"}),(0,zo.jsx)("span",{children:g("labels.libraryLoadingMessage")})]})})});let f=c.libraryItems.length>0||e.length>0;return(0,zo.jsxs)(vw,{children:[(0,zo.jsx)(Oh,{isLoading:c.status==="loading",libraryItems:u,onAddToLibrary:m,onInsertLibraryItems:t,pendingElements:e,id:a,libraryReturnUrl:n,theme:l,onSelectItems:d,selectedItems:s}),f&&(0,zo.jsx)(bm,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:a,libraryReturnUrl:n,theme:l})]})},pT=(t,e)=>{let o=()=>we(e,t,{includeBoundTextElement:!0,includeElementsInFrames:!0}),r=(0,Eo.useRef)(o()),n=(0,Eo.useRef)(t),i=(0,Eo.useRef)(e);return(!kt(t.selectedElementIds,n.current.selectedElementIds)||!kt(e,i.current))&&(r.current=o(),n.current=t,i.current=e),r.current},Ew=()=>{let{library:t,id:e,onInsertElements:o}=mo(),r=_n(),n=_e(),i=Le(),a=kn(),[l,s]=(0,Eo.useState)([]),d=(0,Eo.useMemo)(()=>t,[t]),c=pT(n,a),m=(0,Eo.useCallback)(f=>{o(gm(f))},[o]),u=(0,Eo.useCallback)(()=>{i({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[i]);return(0,zo.jsx)(mT,{pendingElements:c,onInsertLibraryItems:m,onAddToLibrary:u,setAppState:i,libraryReturnUrl:r.libraryReturnUrl,library:d,id:e,theme:n.theme,selectedItems:l,onSelectItems:s})};var Rn=v(k(),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 et=t=>{let[e,o]=Ly(),[r]=(0,Lm.useState)(document.activeElement),{id:n}=_t(),i=Me().viewport.isMobile;(0,Lm.useEffect)(()=>{if(!e)return;let d=hl(e);setTimeout(()=>{d.length>0&&t.autofocus!==!1&&(d[1]||d[0]).focus()});let c=m=>{if(m.key===S.TAB){let u=hl(e),{activeElement:f}=document,b=u.findIndex(x=>x===f);b===0&&m.shiftKey?(u[u.length-1].focus(),m.preventDefault()):b===u.length-1&&!m.shiftKey&&(u[0].focus(),m.preventDefault())}};return e.addEventListener("keydown",c),()=>e.removeEventListener("keydown",c)},[e,t.autofocus]);let a=Le(),l=Wr(Wa,Ne),s=()=>{a({openMenu:null}),l(!1),r.focus(),t.onCloseRequest()};return(0,Rn.jsx)(Oy,{className:$("Dialog",t.className,{"Dialog--fullscreen":i}),labelledBy:"dialog-title",maxWidth:uT(t.size),onCloseRequest:s,closeOnClickOutside:t.closeOnClickOutside,children:(0,Rn.jsxs)(zt,{ref:o,children:[t.title&&(0,Rn.jsx)("h2",{id:`${n}-dialog-title`,className:"Dialog__title",children:(0,Rn.jsx)("span",{className:"Dialog__titleContent",children:t.title})}),i&&(0,Rn.jsx)("button",{className:"Dialog__close",onClick:s,title:g("buttons.close"),"aria-label":g("buttons.close"),children:Ro}),(0,Rn.jsx)("div",{className:"Dialog__content",children:t.children})]})})};h();var Sr=v(H(),1);h();var yw=v(k(),1),Cr=({type:t="button",onSelect:e,selected:o,children:r,className:n="",...i})=>(0,yw.jsx)("button",{onClick:cn(i.onClick,a=>{e()}),type:t,className:$("excalidraw-button",n,{selected:o}),...i,children:r});var Si=v(k(),1),Pm=(0,Sr.forwardRef)(({onChange:t,label:e,fullWidth:o,placeholder:r,readonly:n,selectOnRender:i,onKeyDown:a,isRedacted:l=!1,...s},d)=>{let c=(0,Sr.useRef)(null);(0,Sr.useImperativeHandle)(d,()=>c.current),(0,Sr.useLayoutEffect)(()=>{i&&c.current?.select()},[i]);let[m,u]=(0,Sr.useState)(!1);return(0,Si.jsxs)("div",{className:$("ExcTextField",{"ExcTextField--fullWidth":o}),onClick:()=>{c.current?.focus()},children:[(0,Si.jsx)("div",{className:"ExcTextField__label",children:e}),(0,Si.jsxs)("div",{className:$("ExcTextField__input",{"ExcTextField__input--readonly":n}),children:[(0,Si.jsx)("input",{className:$({"is-redacted":"value"in s&&s.value&&l&&!m}),readOnly:n,value:"value"in s?s.value:void 0,defaultValue:"defaultValue"in s?s.defaultValue:void 0,placeholder:r,ref:c,onChange:f=>t?.(f.target.value),onKeyDown:a}),l&&(0,Si.jsx)(Cr,{onSelect:()=>u(!m),style:{border:0,userSelect:"none"},children:m?Cv:pa})]})]})});h();var fT={toggleTheme:[F("Shift+Alt+D")],saveScene:[F("CtrlOrCmd+S")],loadScene:[F("CtrlOrCmd+O")],clearCanvas:[F("CtrlOrCmd+Delete")],imageExport:[F("CtrlOrCmd+Shift+E")],commandPalette:[F("CtrlOrCmd+/"),F("CtrlOrCmd+Shift+P")],cut:[F("CtrlOrCmd+X")],copy:[F("CtrlOrCmd+C")],paste:[F("CtrlOrCmd+V")],copyStyles:[F("CtrlOrCmd+Alt+C")],pasteStyles:[F("CtrlOrCmd+Alt+V")],selectAll:[F("CtrlOrCmd+A")],deleteSelectedElements:[F("Delete")],duplicateSelection:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)],sendBackward:[F("CtrlOrCmd+[")],bringForward:[F("CtrlOrCmd+]")],sendToBack:[Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")],bringToFront:[Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")],copyAsPng:[F("Shift+Alt+C")],copyAsSvg:[],group:[F("CtrlOrCmd+G")],ungroup:[F("CtrlOrCmd+Shift+G")],gridMode:[F("CtrlOrCmd+'")],zenMode:[F("Alt+Z")],objectsSnapMode:[F("Alt+S")],stats:[F("Alt+/")],addToLibrary:[],flipHorizontal:[F("Shift+H")],flipVertical:[F("Shift+V")],viewMode:[F("Alt+R")],hyperlink:[F("CtrlOrCmd+K")],toggleElementLock:[F("CtrlOrCmd+Shift+L")],resetZoom:[F("CtrlOrCmd+0")],zoomOut:[F("CtrlOrCmd+-")],zoomIn:[F("CtrlOrCmd++")],zoomToFitSelection:[F("Shift+3")],zoomToFit:[F("Shift+1")],zoomToFitSelectionInViewport:[F("Shift+2")],toggleEraserTool:[F("E")],toggleHandTool:[F("H")],setFrameAsActiveTool:[F("F")],saveFileToDisk:[F("CtrlOrCmd+S")],saveToActiveFile:[F("CtrlOrCmd+S")],toggleShortcuts:[F("?")]},wt=(t,e=0)=>{let o=fT[t];return o&&o.length>0?o[e]||o[0]:""};var e3=v(Sw(),1);h();var hT="\\u0300-\\u036f",gT="\\ufe20-\\ufe2f",bT="\\u20d0-\\u20ff",xT=hT+gT+bT,vT=`[${xT}]`,ET=RegExp(vT,"g"),yT=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wT={\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"},Fh=t=>t.replace(yT,e=>wT[e]||e).replace(ET,"");h();var Tw=v(k(),1),Dn=({icon:t})=>(0,Tw.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:t});h();var gs=[{icon:px,value:"selection",key:S.V,numericKey:S[1],fillable:!0},{icon:ux,value:"rectangle",key:S.R,numericKey:S[2],fillable:!0},{icon:fx,value:"diamond",key:S.D,numericKey:S[3],fillable:!0},{icon:hx,value:"ellipse",key:S.O,numericKey:S[4],fillable:!0},{icon:gx,value:"arrow",key:S.A,numericKey:S[5],fillable:!0},{icon:bx,value:"line",key:S.L,numericKey:S[6],fillable:!0},{icon:la,value:"freedraw",key:[S.P,S.X],numericKey:S[7],fillable:!1},{icon:vx,value:"text",key:S.T,numericKey:S[8],fillable:!1},{icon:Ex,value:"image",key:null,numericKey:S[9],fillable:!1},{icon:yx,value:"eraser",key:S.E,numericKey:S[0],fillable:!1}],kw=t=>gs.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 Kw=v(H(),1);h();var Dm=v(H(),1);h();var bs=v(H());h();h();var Iw=t=>{let e,o=new Set,r=(c,m)=>{let u=typeof c=="function"?c(e):c;if(!Object.is(u,e)){let f=e;e=m??(typeof u!="object"||u===null)?u:Object.assign({},e,u),o.forEach(b=>b(e,f))}},n=()=>e,s={setState:r,getState:n,getInitialState:()=>d,subscribe:c=>(o.add(c),()=>o.delete(c)),destroy:()=>{(y?y.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()}},d=e=t(r,n,s);return s},Aw=t=>t?Iw(t):Iw;var zw=v(H(),1),$w=v(Ow(),1),{useDebugValue:$T}=zw.default,{useSyncExternalStoreWithSelector:HT}=$w.default,Fw=!1,UT=t=>t;function WT(t,e=UT,o){(y?y.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=HT(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,o);return $T(r),r}var Bw=t=>{(y?y.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"?Aw(t):t,o=(r,n)=>WT(e,r,n);return Object.assign(o,e),o},Hw=t=>t?Bw(t):Bw;var Uw,Ww,Gw=typeof window<"u"&&((Uw=window.document)!=null&&Uw.createElement||((Ww=window.navigator)==null?void 0:Ww.product)==="ReactNative")?bs.default.useLayoutEffect:bs.default.useEffect;function nr(){let t=Hw(e=>({current:new Array,version:0,set:e}));return{In:({children:e})=>{let o=t(n=>n.set),r=t(n=>n.version);return Gw(()=>{o(n=>({version:n.version+1}))},[]),Gw(()=>(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 bs.default.createElement(bs.default.Fragment,null,e)}}}var zh=Dm.default.createContext(null),Ve=()=>Dm.default.useContext(zh),Vw=()=>Dm.default.useMemo(()=>({MainMenuTunnel:nr(),WelcomeScreenMenuHintTunnel:nr(),WelcomeScreenToolbarHintTunnel:nr(),WelcomeScreenHelpHintTunnel:nr(),WelcomeScreenCenterTunnel:nr(),FooterCenterTunnel:nr(),DefaultSidebarTriggerTunnel:nr(),DefaultSidebarTabTriggersTunnel:nr(),OverwriteConfirmDialogTunnel:nr(),TTDDialogTriggerTunnel:nr(),jotaiScope:Symbol()}),[]);var ae=v(k(),1),$h=(t,e)=>{let o=e[0]?.type||null;for(let r of e)if(r.type!==o){o=null;break}return wl(t.activeTool.type)&&t.activeTool.type!=="image"&&o!=="image"&&o!=="frame"&&o!=="magicframe"||e.some(r=>wl(r.type))},Hh=(t,e)=>fn(t.activeTool.type)||e.some(o=>fn(o.type)),Nm=({appState:t,elementsMap:e,renderAction:o})=>{let r=oa(e,t),n=!1;r.length===2&&(fr(r[0])||fr(r[1]))&&(n=!0);let i=!!t.editingElement,a=Me(),l=document.documentElement.getAttribute("dir")==="rtl",s=fn(t.activeTool.type)&&!jn(t.currentItemBackgroundColor)||r.some(c=>fn(c.type)&&!jn(c.backgroundColor)),d=r.length===1||n;return(0,ae.jsxs)("div",{className:"panelColumn",children:[(0,ae.jsx)("div",{children:$h(t,r)&&o("changeStrokeColor")}),Hh(t,r)&&(0,ae.jsx)("div",{children:o("changeBackgroundColor")}),s&&o("changeFillStyle"),(Jp(t.activeTool.type)||r.some(c=>Jp(c.type)))&&o("changeStrokeWidth"),(t.activeTool.type==="freedraw"||r.some(c=>c.type==="freedraw"))&&o("changeStrokeShape"),(Qp(t.activeTool.type)||r.some(c=>Qp(c.type)))&&(0,ae.jsxs)(ae.Fragment,{children:[o("changeStrokeStyle"),o("changeSloppiness")]}),(eu(t.activeTool.type)||r.some(c=>eu(c.type)))&&(0,ae.jsx)(ae.Fragment,{children:o("changeRoundness")}),(t.activeTool.type==="text"||r.some(se))&&(0,ae.jsxs)(ae.Fragment,{children:[o("changeFontSize"),o("changeFontFamily"),(t.activeTool.type==="text"||yb(r,e))&&o("changeTextAlign")]}),Eb(r,e)&&o("changeVerticalAlign"),(Ui(t.activeTool.type)||r.some(c=>Ui(c.type)))&&(0,ae.jsx)(ae.Fragment,{children:o("changeArrowhead")}),o("changeOpacity"),(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.layers")}),(0,ae.jsxs)("div",{className:"buttonList",children:[o("sendToBack"),o("sendBackward"),o("bringToFront"),o("bringForward")]})]}),r.length>1&&!n&&(0,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.align")}),(0,ae.jsxs)("div",{className:"buttonList",children:[l?(0,ae.jsxs)(ae.Fragment,{children:[o("alignRight"),o("alignHorizontallyCentered"),o("alignLeft")]}):(0,ae.jsxs)(ae.Fragment,{children:[o("alignLeft"),o("alignHorizontallyCentered"),o("alignRight")]}),r.length>2&&o("distributeHorizontally"),(0,ae.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,ae.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,ae.jsxs)("fieldset",{children:[(0,ae.jsx)("legend",{children:g("labels.actions")}),(0,ae.jsxs)("div",{className:"buttonList",children:[!a.editor.isMobile&&o("duplicateSelection"),!a.editor.isMobile&&o("deleteSelectedElements"),o("group"),o("ungroup"),d&&o("hyperlink")]})]})]})},Om=({activeTool:t,appState:e,app:o,UIOptions:r})=>{let[n,i]=(0,Kw.useState)(!1),a=t.type==="frame",l=t.type==="laser",s=t.type==="embeddable",{TTDDialogTriggerTunnel:d}=Ve();return(0,ae.jsxs)(ae.Fragment,{children:[gs.map(({value:c,icon:m,key:u,numericKey:f,fillable:b},x)=>{if(r.tools?.[c]===!1)return null;let E=g(`toolBar.${c}`),T=u&&sn(typeof u=="string"?u:u[0]),C=T?`${T} ${g("helpDialog.or")} ${f}`:`${f}`;return(0,ae.jsx)(ce,{className:$("Shape",{fillable:b}),type:"radio",icon:m,checked:t.type===c,name:"editor-current-shape",title:`${sn(E)} \u2014 ${C}`,keyBindingLabel:f||T,"aria-label":sn(E),"aria-keyshortcuts":C,"data-testid":`toolbar-${c}`,onPointerDown:({pointerType:w})=>{!e.penDetected&&w==="pen"&&o.togglePenMode(!0)},onChange:({pointerType:w})=>{e.activeTool.type!==c&&xe("toolbar",c,"ui"),c==="image"?o.setActiveTool({type:c,insertOnCanvasDirectly:w!=="mouse"}):o.setActiveTool({type:c})}},c)}),(0,ae.jsx)("div",{className:"App-toolbar__divider"}),(0,ae.jsxs)(De,{open:n,children:[(0,ae.jsxs)(De.Trigger,{className:$("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:[yv,o.props.aiEnabled!==!1&&(0,ae.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,ae.jsxs)(De.Content,{onClickOutside:()=>i(!1),onSelect:()=>i(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,ae.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"frame"}),icon:bd,shortcut:S.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:a,children:g("toolBar.frame")}),(0,ae.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"embeddable"}),icon:Cx,"data-testid":"toolbar-embeddable",selected:s,children:g("toolBar.embeddable")}),(0,ae.jsx)(De.Item,{onSelect:()=>o.setActiveTool({type:"laser"}),icon:vd,"data-testid":"toolbar-laser",selected:l,shortcut:S.K.toLocaleUpperCase(),children:g("toolBar.laser")}),(0,ae.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),o.props.aiEnabled!==!1&&(0,ae.jsx)(d.Out,{}),(0,ae.jsx)(De.Item,{onSelect:()=>o.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:xd,"data-testid":"toolbar-embeddable",children:g("toolBar.mermaidToExcalidraw")}),o.props.aiEnabled!==!1&&(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsxs)(De.Item,{onSelect:()=>o.onMagicframeToolSelect(),icon:ma,"data-testid":"toolbar-magicframe",children:[g("toolBar.magicframe"),(0,ae.jsx)(De.Item.Badge,{children:"AI"})]}),(0,ae.jsx)(De.Item,{onSelect:()=>{xe("ai","open-settings","d2c"),o.setOpenDialog({name:"settings",source:"settings",tab:"diagram-to-code"})},icon:Wl,"data-testid":"toolbar-magicSettings",children:g("toolBar.magicSettings")})]})]})]})]})},Yw=({renderAction:t,zoom:e})=>(0,ae.jsx)(Pt.Col,{gap:1,className:"zoom-actions",children:(0,ae.jsxs)(Pt.Row,{align:"center",children:[t("zoomOut"),t("resetZoom"),t("zoomIn")]})}),Zw=({renderAction:t,className:e})=>(0,ae.jsxs)("div",{className:`undo-redo-buttons ${e}`,children:[(0,ae.jsx)("div",{className:"undo-button-container",children:(0,ae.jsx)(xo,{label:g("buttons.undo"),children:t("undo")})}),(0,ae.jsx)("div",{className:"redo-button-container",children:(0,ae.jsxs)(xo,{label:g("buttons.redo"),children:[" ",t("redo")]})})]}),jw=({actionManager:t,showExitZenModeBtn:e})=>(0,ae.jsx)("button",{className:$("disable-zen-mode",{"disable-zen-mode--visible":e}),onClick:()=>t.executeAction(Fa),children:g("buttons.exitZenMode")}),Xw=({renderAction:t,className:e})=>(0,ae.jsx)("div",{className:`finalize-button ${e}`,children:t("finalize",{size:"small"})});h();var qw=v(H(),1),Uh=t=>{let e=(0,qw.useRef)({userFn:t});return e.current.userFn=t,e.current.stableFn||(e.current.stableFn=(...o)=>e.current.userFn(...o)),e.current.stableFn};h();var Fm=v(k(),1),Ti=We(null),Jw=()=>{let[t,e]=Se(Ti,Ne),o=It();return t&&t==="clearCanvas"?(0,Fm.jsx)(vm,{onConfirm:()=>{o.executeAction(jr),e(null)},onCancel:()=>e(null),title:g("clearCanvasDialog.title"),children:(0,Fm.jsxs)("p",{className:"clear-canvas__content",children:[" ",g("alerts.clearReset")]})}):null};var Wh={};o1(Wh,{toggleTheme:()=>GT});h();var GT={...mi,category:"App",label:"Toggle theme",perform:({actionManager:t})=>{t.executeAction(mi,"commandPalette")}};var Ge=v(k(),1),VT=We(null),mt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},KT=t=>{switch(t){case mt.app:return 1;case mt.export:return 2;case mt.editor:return 3;case mt.tools:return 4;case mt.elements:return 5;case mt.links:return 6;default:return 10}},Bm=({shortcut:t,className:e,children:o})=>{let r=t.replace("++","+$").split("+");return(0,Ge.jsxs)("div",{className:$("shortcut",e),children:[r.map((n,i)=>(0,Ge.jsx)("div",{className:"shortcut-wrapper",children:(0,Ge.jsx)("div",{className:"shortcut-key",children:n==="$"?"+":n})},n)),(0,Ge.jsx)("div",{className:"shortcut-desc",children:o})]})},t3=t=>!t.altKey&&t[S.CTRL_OR_CMD]&&(t.shiftKey&&t.key.toLowerCase()===S.P||t.key===S.SLASH),vY=Object.assign(t=>{let e=_e(),o=Le();return(0,$o.useEffect)(()=>{let r=n=>{t3(n)&&(n.preventDefault(),n.stopPropagation(),o(i=>{let a=i.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return a&&xe("command_palette","open","shortcut"),{openDialog:a}}))};return window.addEventListener("keydown",r,{capture:!0}),()=>window.removeEventListener("keydown",r,{capture:!0})},[o]),e.openDialog?.name!=="commandPalette"?null:(0,Ge.jsx)(YT,{...t})},{defaultItems:Wh});function YT({customCommandPaletteItems:t}){let e=mo(),o=_e(),r=Le(),n=_n(),i=It(),[a,l]=Se(VT),[s,d]=(0,$o.useState)(null),c=(0,$o.useRef)(null),m=La({uiAppState:o,customCommandPaletteItems:t,appProps:n});(0,$o.useEffect)(()=>{let{uiAppState:I,customCommandPaletteItems:M,appProps:_}=m,U=B=>{let te="";return B.label&&(typeof B.label=="function"?te=g(B.label(e.scene.getNonDeletedElements(),I,e)):te=g(B.label)),te},D=B=>typeof B.icon=="function"?B.icon(I,e.scene.getNonDeletedElements()):B.icon,G=[],O=(B,te,oe)=>{let ve={label:U(B),icon:D(B),category:te,shortcut:wt(B.name),keywords:B.keywords,predicate:B.predicate,viewMode:B.viewMode,perform:()=>{i.executeAction(B,"commandPalette")}};return oe?oe(ve,B):ve};if(I&&e.scene&&i){let B=[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,cs].map(j=>O(j,mt.elements,(R,N)=>({...R,predicate:N.predicate?N.predicate:(K,Y,Z,X)=>we(K,Y).length>0}))),te=[i.actions.toggleHandTool,i.actions.setFrameAsActiveTool].map(j=>O(j,mt.tools)),oe=[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.gridMode,i.actions.objectsSnapMode,i.actions.toggleShortcuts,i.actions.selectAll,i.actions.toggleElementLock,i.actions.unlockAllElements,i.actions.stats].map(j=>O(j,mt.editor)),ve=[i.actions.saveToActiveFile,i.actions.saveFileToDisk,i.actions.copyAsPng,i.actions.copyAsSvg].map(j=>O(j,mt.export));G=[...B,...oe,{label:U(jr),icon:D(jr),shortcut:wt(jr.name),category:mt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Gt.set(Ti,"clearCanvas")}},{label:g("buttons.exportImage"),category:mt.export,icon:ud,shortcut:wt("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{r({openDialog:{name:"imageExport"}})}},...ve];let Ie=[{label:g("toolBar.library"),category:mt.app,icon:cd,viewMode:!1,perform:()=>{I.openSidebar?r({openSidebar:null}):r({openSidebar:{name:jo.name,tab:jo.defaultTab}})}},{label:g("labels.changeStroke"),keywords:["color","outline"],category:mt.elements,icon:pd,viewMode:!1,predicate:(j,R)=>{let N=we(j,R);return N.length>0&&$h(R,N)},perform:()=>{r(j=>({openMenu:j.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:g("labels.changeBackground"),keywords:["color","fill"],icon:pd,category:mt.elements,viewMode:!1,predicate:(j,R)=>{let N=we(j,R);return N.length>0&&Hh(R,N)},perform:()=>{r(j=>({openMenu:j.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:g("labels.canvasBackground"),keywords:["color"],icon:pd,category:mt.editor,viewMode:!1,perform:()=>{r(j=>({openMenu:j.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...gs.reduce((j,R)=>{let{value:N,icon:K,key:Y,numericKey:Z}=R;if(_.UIOptions.tools?.[N]===!1)return j;let ee=Y&&sn(typeof Y=="string"?Y:Y[0])||Z,ne={label:g(`toolBar.${N}`),category:mt.tools,shortcut:ee,icon:K,keywords:["toolbar"],viewMode:!1,perform:({event:rt})=>{N==="image"?e.setActiveTool({type:N,insertOnCanvasDirectly:rt.type==="keydown"}):e.setActiveTool({type:N})}};return j.push(ne),j},[]),...te,{label:g("toolBar.lock"),category:mt.tools,icon:I.activeTool.locked?aa:ri,shortcut:S.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{e.toggleLock()}},{label:`${g("labels.textToDiagram")}...`,category:mt.tools,icon:Tv,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(j=>({...j,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${g("toolBar.mermaidToExcalidraw")}...`,category:mt.tools,icon:xd,viewMode:!1,predicate:_.aiEnabled,perform:()=>{r(j=>({...j,openDialog:{name:"ttd",tab:"mermaid"}}))}}],me=[...G,...Ie,...M||[]].map(j=>({...j,icon:j.icon||yd,order:j.order??KT(j.category),haystack:`${Fh(j.label)} ${j.keywords?.join(" ")||""}`}));d(me),l(me.find(j=>j.label===a?.label)??null)}},[m,e,i,d,a?.label,l,r]);let[u,f]=(0,$o.useState)(""),[b,x]=(0,$o.useState)(null),[E,T]=(0,$o.useState)({}),C=I=>{r({openDialog:null},I),f("")},w=(I,M)=>{o.openDialog?.name==="commandPalette"&&(M.stopPropagation(),M.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),C(()=>{I.perform({actionManager:i,event:M}),l(I),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},A=Uh(I=>I.viewMode===!1&&o.viewModeEnabled?!1:typeof I.predicate=="function"?I.predicate(e.scene.getNonDeletedElements(),o,n,e):I.predicate===void 0||I.predicate),z=Uh(I=>{let M=To(I.target)||t3(I)||I.key===S.ESCAPE;if(M&&I.key!==S.ARROW_UP&&I.key!==S.ARROW_DOWN&&I.key!==S.ENTER)return;let _=Object.values(E).flat(),U=a&&!u&&A(a);if(I.key===S.ARROW_UP){I.preventDefault();let D=_.findIndex(B=>B.label===b?.label);if(U){if(D===0){x(a);return}if(b===a){let B=_[_.length-1];B&&x(B);return}}let G;D===-1?G=_.length-1:G=D===0?_.length-1:(D-1)%_.length;let O=_[G];O&&x(O);return}if(I.key===S.ARROW_DOWN){I.preventDefault();let D=_.findIndex(B=>B.label===b?.label);if(U){if(!b||D===_.length-1){x(a);return}if(b===a){let B=_[0];B&&x(B);return}}let G=(D+1)%_.length,O=_[G];O&&x(O);return}if(I.key===S.ENTER&&b&&setTimeout(()=>{w(b,I)}),!M){if(I.stopPropagation(),/^[a-zA-Z0-9]$/.test(I.key)){c?.current?.focus();return}I.preventDefault()}});return(0,$o.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,$o.useEffect)(()=>{if(!s)return;let I=D=>{let G={};for(let O of D)G[O.category]?G[O.category].push(O):G[O.category]=[O];return G},M=s.filter(A).sort((D,G)=>D.order-G.order),_=!u&&a&&A(a);if(!u){T(I(_?M.filter(D=>D.label!==a?.label):M)),x(_?a:M[0]||null);return}let U=Fh(u.replace(/[<>-_| ]/g,""));M=e3.default.filter(U,M,{extract:D=>D.haystack}).sort((D,G)=>G.score-D.score).map(D=>D.original),T(I(M)),x(M[0]??null)},[u,s,A,a]),(0,Ge.jsxs)(et,{onCloseRequest:()=>C(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,Ge.jsx)(Pm,{value:u,placeholder:g("commandPalette.search.placeholder"),onChange:I=>{f(I)},selectOnRender:!0,ref:c}),!e.device.viewport.isMobile&&(0,Ge.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,Ge.jsx)(Bm,{shortcut:"\u2191\u2193",children:g("commandPalette.shortcuts.select")}),(0,Ge.jsx)(Bm,{shortcut:"\u21B5",children:g("commandPalette.shortcuts.confirm")}),(0,Ge.jsx)(Bm,{shortcut:F("Esc"),children:g("commandPalette.shortcuts.close")})]}),(0,Ge.jsxs)("div",{className:"commands",children:[a&&!u&&(0,Ge.jsxs)("div",{className:"command-category",children:[(0,Ge.jsxs)("div",{className:"command-category-title",children:[g("commandPalette.recents"),(0,Ge.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:kv})]}),(0,Ge.jsx)(Qw,{command:a,isSelected:a.label===b?.label,onClick:I=>w(a,I),disabled:!A(a),onMouseMove:()=>x(a),showShortcut:!e.device.viewport.isMobile,appState:o})]}),Object.keys(E).length>0?Object.keys(E).map((I,M)=>(0,Ge.jsxs)("div",{className:"command-category",children:[(0,Ge.jsx)("div",{className:"command-category-title",children:I}),E[I].map(_=>(0,Ge.jsx)(Qw,{command:_,isSelected:_.label===b?.label,onClick:U=>w(_,U),onMouseMove:()=>x(_),showShortcut:!e.device.viewport.isMobile,appState:o},_.label))]},I)):s?(0,Ge.jsxs)("div",{className:"no-match",children:[(0,Ge.jsx)("div",{className:"icon",children:Ed})," ",g("commandPalette.search.noMatch")]}):null]})]})}var Qw=({command:t,isSelected:e,disabled:o,onMouseMove:r,onClick:n,showShortcut:i,appState:a})=>{let l=()=>{};return(0,Ge.jsxs)("div",{className:$("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,Ge.jsxs)("div",{className:"name",children:[t.icon&&(0,Ge.jsx)(Dn,{icon:typeof t.icon=="function"?t.icon(a):t.icon}),t.label]}),i&&t.shortcut&&(0,Ge.jsx)(Bm,{shortcut:t.shortcut})]})};var Gh=W({name:"toggleLinearEditor",category:mt.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 ue(n);return{appState:{...e,editingLinearElement:i},storeAction:P.CAPTURE}}});h();h();var ki=class{constructor(e=!0,o=!0){this.isUndoStackEmpty=e;this.isRedoStackEmpty=o}},xs=class t{onHistoryChangedEmitter=new _o;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(e,o){let r=Vh.create(o,e);r.isEmpty()||(this.undoStack.push(r.inverse()),r.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new ki(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.undoStack),n=>t.push(this.redoStack,n,e))}redo(e,o,r){return this.perform(e,o,r,()=>t.pop(this.redoStack),n=>t.push(this.undoStack,n,e))}perform(e,o,r,n,i){try{let a=n();if(a===null)return;let l=e,s=o,d=!1;for(;a;){try{[l,s,d]=a.applyTo(l,s,r)}finally{i(a)}if(d)break;a=n()}return[l,s]}finally{this.onHistoryChangedEmitter.trigger(new ki(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(e){if(!e.length)return null;let o=e.pop();return o!==void 0?o:null}static push(e,o,r){let n=o.inverse().applyLatestChanges(r);return e.push(n)}},Vh=class t{constructor(e,o){this.appStateChange=e;this.elementsChange=o}static create(e,o){return new t(e,o)}inverse(){return new t(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(e,o,r){let[n,i]=this.elementsChange.applyTo(e,r.elements),[a,l]=this.appStateChange.applyTo(o,n);return[n,a,i||l]}applyLatestChanges(e){let o=this.elementsChange.applyLatestChanges(e);return t.create(this.appStateChange,o)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};h();var zm=v(H(),1),Kh=(t,e)=>{let[o,r]=(0,zm.useState)(e);return(0,zm.useEffect)(()=>{let n=t.on(i=>{r(i)});return()=>{n()}},[t]),o};var Yh=v(k(),1),o3=(t,e)=>{if(!t.multiElement&&!t.resizingElement&&!t.editingElement&&!t.draggingElement){let o=e();if(!o)return{storeAction:P.NONE};let[r,n]=o,i=Array.from(r.values());return{appState:n,elements:i,storeAction:P.UPDATE}}return{storeAction:P.NONE}},r3=(t,e)=>({name:"undo",label:"buttons.undo",icon:Bu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>o3(r,()=>t.undo(pe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.key.toLowerCase()===S.Z&&!o.shiftKey,PanelComponent:({updateData:o,data:r})=>{let{isUndoStackEmpty:n}=Kh(t.onHistoryChangedEmitter,new ki);return(0,Yh.jsx)(ce,{type:"button",icon:Bu,"aria-label":g("buttons.undo"),onClick:o,size:r?.size||"medium",disabled:n})}}),n3=(t,e)=>({name:"redo",label:"buttons.redo",icon:zu,trackEvent:{category:"history"},viewMode:!1,perform:(o,r)=>o3(r,()=>t.redo(pe(o),r,e.snapshot)),keyTest:o=>o[S.CTRL_OR_CMD]&&o.shiftKey&&o.key.toLowerCase()===S.Z||Zs&&o.ctrlKey&&!o.shiftKey&&o.key===S.Y,PanelComponent:({updateData:o,data:r})=>{let{isRedoStackEmpty:n}=Kh(t.onHistoryChangedEmitter,new ki);return(0,Yh.jsx)(ce,{type:"button",icon:zu,"aria-label":g("buttons.redo"),onClick:o,size:r?.size||"medium",disabled:n})}});h();var i3=v(k(),1),Zh=(t,e,o,r,n,i)=>{if(t.trackEvent)try{typeof t.trackEvent=="object"&&(!t.trackEvent.predicate||t.trackEvent.predicate(o,r,i))&&xe(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(Bi(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,d)=>(d.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 Zh(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();Zh(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=d=>{Zh(n,"ui",l,a,this.app,d),this.updater(n.perform(this.getElementsIncludingDeleted(),this.getAppState(),d,this.app))};return(0,i3.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 jh=t=>{let e=Array.from(t.values());return{x:a3(e,o=>o.x)/e.length,y:a3(e,o=>o.y)/e.length}},Xh=([t,e])=>Math.hypot(t.x-e.x,t.y-e.y),a3=(t,e)=>t.reduce((o,r)=>o+e(r),0);h();var l3=v(H(),1),Jr=v(k(),1),io="separator",s3=l3.default.memo(({actionManager:t,items:e,top:o,left:r,onClose:n})=>{let i=Ba(),a=kn(),l=e.reduce((s,d)=>(d&&(d===io||!d.predicate||d.predicate(a,i,t.app.props,t.app))&&s.push(d),s),[]);return(0,Jr.jsx)(Jd,{onCloseRequest:()=>{n()},top:o,left:r,fitInViewport:!0,offsetLeft:i.offsetLeft,offsetTop:i.offsetTop,viewportWidth:i.width,viewportHeight:i.height,children:(0,Jr.jsx)("ul",{className:"context-menu",onContextMenu:s=>s.preventDefault(),children:l.map((s,d)=>{if(s===io)return!l[d-1]||l[d-1]===io?null:(0,Jr.jsx)("hr",{className:"context-menu-item-separator"},d);let c=s.name,m="";return s.label&&(typeof s.label=="function"?m=g(s.label(a,i,t.app)):m=g(s.label)),(0,Jr.jsx)("li",{"data-testid":c,onClick:()=>{n(()=>{t.executeAction(s,"contextMenu")})},children:(0,Jr.jsxs)("button",{className:$("context-menu-item",{dangerous:c==="deleteSelectedElements",checkmark:s.checked?.(i)}),children:[(0,Jr.jsx)("div",{className:"context-menu-item__label",children:m}),(0,Jr.jsx)("kbd",{className:"context-menu-item__shortcut",children:c?wt(c):""})]})},d)})})})});h();var E5=v(H(),1);h();var Hm=v(H(),1);var Za=v(k(),1),c3=({children:t,onClose:e})=>{let[o,r]=(0,Hm.useState)(!!t),{container:n}=_t(),i=Hm.default.useCallback(()=>{r(!1),e&&e(),n?.focus()},[e,n]);return(0,Za.jsx)(Za.Fragment,{children:o&&(0,Za.jsx)(et,{size:"small",onCloseRequest:i,title:g("errorDialog.title"),children:(0,Za.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:t})})})};h();var yo=v(H(),1);h();var vs=v(k(),1),Um=function({onChange:t,value:e,choices:o,name:r}){return(0,vs.jsx)("div",{className:"RadioGroup",children:o.map(n=>(0,vs.jsxs)("div",{className:$("RadioGroup__choice",{active:n.value===e}),title:n.ariaLabel,children:[(0,vs.jsx)("input",{name:r,type:"radio",checked:n.value===e,onChange:()=>t(n.value),"aria-label":n.ariaLabel}),n.label]},String(n.value)))})};h();var qh=v(k(),1),Es=({title:t,name:e,checked:o,onChange:r,disabled:n=!1})=>(0,qh.jsx)("div",{className:$("Switch",{toggled:o,disabled:n}),children:(0,qh.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 Wm=v(H(),1);var ja=v(k(),1),Tr=(0,Wm.forwardRef)(({children:t,icon:e,onClick:o,label:r,variant:n="filled",color:i="primary",size:a="medium",fullWidth:l,className:s},d)=>{let[c,m]=(0,Wm.useState)(!1),u=async f=>{let b=o?.(f);if(Bi(b))try{m(!0),await b}catch(x){if(x instanceof Hi)console.warn(x);else throw x}finally{m(!1)}};return(0,ja.jsx)("button",{className:$("ExcButton",`ExcButton--color-${i}`,`ExcButton--variant-${n}`,`ExcButton--size-${a}`,{"ExcButton--fullWidth":l},s),onClick:u,type:"button","aria-label":r,ref:d,disabled:c,children:(0,ja.jsxs)("div",{className:"ExcButton__contents",children:[c&&(0,ja.jsx)(Ot,{}),e&&(0,ja.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:e}),n!=="icon"&&(t??r)]})})});var Ae=v(k(),1),ZT="filter"in document.createElement("canvas").getContext("2d"),jT=()=>(0,Ae.jsxs)("div",{children:[(0,Ae.jsx)("h3",{children:g("canvasError.cannotShowPreview")}),(0,Ae.jsx)("p",{children:(0,Ae.jsx)("span",{children:g("canvasError.canvasTooBig")})}),(0,Ae.jsxs)("em",{children:["(",g("canvasError.canvasTooBigTip"),")"]})]}),XT=({appStateSnapshot:t,elementsSnapshot:e,files:o,actionManager:r,onExportImage:n,name:i})=>{let a=Be(e,t),[l,s]=(0,yo.useState)(i),[d,c]=(0,yo.useState)(a),[m,u]=(0,yo.useState)(t.exportBackground),[f,b]=(0,yo.useState)(t.exportWithDarkMode),[x,E]=(0,yo.useState)(t.exportEmbedScene),[T,C]=(0,yo.useState)(t.exportScale),w=(0,yo.useRef)(null),[A,z]=(0,yo.useState)(null),{exportedElements:I,exportingFrame:M}=ui(e,t,d);return(0,yo.useEffect)(()=>{let _=w.current;if(!_)return;let U=_.offsetWidth,D=_.offsetHeight;U&&ei({elements:I,appState:{...t,name:l,exportBackground:m,exportWithDarkMode:f,exportScale:T,exportEmbedScene:x},files:o,exportPadding:ln,maxWidthOrHeight:Math.max(U,D),exportingFrame:M}).then(G=>(z(null),$r(G).then(()=>{_.replaceChildren(G)}).catch(O=>{throw O.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):O}))).catch(G=>{console.error(G),z(G)})},[t,o,I,M,l,m,f,T,x]),(0,Ae.jsxs)("div",{className:"ImageExportModal",children:[(0,Ae.jsx)("h3",{children:g("imageExportDialog.header")}),(0,Ae.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,Ae.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:w,children:A&&(0,Ae.jsx)(jT,{})}),(0,Ae.jsx)("div",{className:"ImageExportModal__preview__filename",children:!ji&&(0,Ae.jsx)("input",{type:"text",className:"TextInput",value:l,style:{width:"30ch"},onChange:_=>{s(_.target.value),r.executeAction(th,"ui",_.target.value)}})})]}),(0,Ae.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,Ae.jsx)("h3",{children:g("imageExportDialog.header")}),a&&(0,Ae.jsx)(ys,{label:g("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,Ae.jsx)(Es,{name:"exportOnlySelected",checked:d,onChange:_=>{c(_)}})}),(0,Ae.jsx)(ys,{label:g("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,Ae.jsx)(Es,{name:"exportBackgroundSwitch",checked:m,onChange:_=>{u(_),r.executeAction(oh,"ui",_)}})}),ZT&&(0,Ae.jsx)(ys,{label:g("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,Ae.jsx)(Es,{name:"exportDarkModeSwitch",checked:f,onChange:_=>{b(_),r.executeAction(py,"ui",_)}})}),(0,Ae.jsx)(ys,{label:g("imageExportDialog.label.embedScene"),tooltip:g("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,Ae.jsx)(Es,{name:"exportEmbedSwitch",checked:x,onChange:_=>{E(_),r.executeAction(tm,"ui",_)}})}),(0,Ae.jsx)(ys,{label:g("imageExportDialog.label.scale"),name:"exportScale",children:(0,Ae.jsx)(Um,{name:"exportScale",value:T,onChange:_=>{C(_),r.executeAction(my,"ui",_)},choices:tc.map(_=>({value:_,label:`${_}\xD7`}))})}),(0,Ae.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToPng"),onClick:()=>n(qs.png,I,{exportingFrame:M}),icon:tf,children:g("imageExportDialog.button.exportToPng")}),(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.exportToSvg"),onClick:()=>n(qs.svg,I,{exportingFrame:M}),icon:tf,children:g("imageExportDialog.button.exportToSvg")}),(qi||Mr)&&(0,Ae.jsx)(Tr,{className:"ImageExportModal__settings__buttons__button",label:g("imageExportDialog.title.copyPngToClipboard"),onClick:()=>n(qs.clipboard,I,{exportingFrame:M}),icon:gd,children:g("imageExportDialog.button.copyPngToClipboard")})]})]})]})},ys=({label:t,children:e,tooltip:o,name:r})=>(0,Ae.jsxs)("div",{className:"ImageExportModal__settings__setting",title:t,children:[(0,Ae.jsxs)("label",{htmlFor:r,className:"ImageExportModal__settings__setting__label",children:[t,o&&(0,Ae.jsx)(xo,{label:o,long:!0,children:xv})]}),(0,Ae.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:e})]}),d3=({elements:t,appState:e,files:o,actionManager:r,onExportImage:n,onCloseRequest:i,name:a})=>{let[{appStateSnapshot:l,elementsSnapshot:s}]=(0,yo.useState)(()=>({appStateSnapshot:pr(e),elementsSnapshot:pr(t)}));return(0,Ae.jsx)(et,{onCloseRequest:i,size:"wide",title:!1,children:(0,Ae.jsx)(XT,{elementsSnapshot:s,appStateSnapshot:l,files:o,actionManager:r,onExportImage:n,name:a})})};h();var m3=v(k(),1),Gm=({children:t,side:e,className:o})=>(0,m3.jsx)("div",{className:$("FixedSideContainer",`FixedSideContainer_side_${e}`,o),children:t});h();var Jh=v(k(),1),qT=({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(Ao(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 d=r.scene.getSelectedElements(t);if(i&&l==="mouse"&&d.length===1){let c=d[0];return Re(c)&&c.points.length===2?g("hints.lockAngle"):dn(c)?g("hints.resizeImage"):g("hints.resize")}if(a&&l==="mouse")return g("hints.rotate");if(d.length===1&&se(d[0]))return g("hints.text_selected");if(t.editingElement&&se(t.editingElement))return g("hints.text_editing");if(n.type==="selection"){if(t.draggingElement?.type==="selection"&&!d.length&&!t.editingElement&&!t.editingLinearElement)return g("hints.deepBoxSelect");if(t.gridSize&&t.draggingElement)return g("hints.disableSnapping");if(!d.length&&!e)return g("hints.canvasPanning");if(d.length===1){if(Re(d[0]))return t.editingLinearElement?t.editingLinearElement.selectedPointsIndices?g("hints.lineEditor_pointSelected"):g("hints.lineEditor_nothingSelected"):g("hints.lineEditor_info");if(!t.draggingElement&&Rr(d[0]))return g("hints.bindTextToElement")}}return null},Vm=({appState:t,isMobile:e,device:o,app:r})=>{let n=qT({appState:t,isMobile:e,device:o,app:r});return n?(n=F(n),(0,Jh.jsx)("div",{className:"HintViewer",children:(0,Jh.jsx)("span",{children:n})})):null};h();var ws=v(k(),1),JT="medium",p3={CHECKED:aa,UNCHECKED:ri},Km=t=>(0,ws.jsxs)("label",{className:$("ToolIcon ToolIcon__lock",`ToolIcon_size_${JT}`,{"is-mobile":t.isMobile}),title:`${t.title} \u2014 Q`,children:[(0,ws.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,ws.jsx)("div",{className:"ToolIcon__icon",children:t.checked?p3.CHECKED:p3.UNCHECKED})]});h();h();var Ii=v(k(),1),Nn=({heading:t,children:e,...o})=>{let{id:r}=_t(),n=(0,Ii.jsx)("h2",{className:"visually-hidden",id:`${r}-${t}-title`,children:g(`headings.${t}`)});return(0,Ii.jsx)("section",{...o,"aria-labelledby":`${r}-${t}-title`,children:typeof e=="function"?e(n):(0,Ii.jsxs)(Ii.Fragment,{children:[n,e]})})};h();var ir=4,kr=6,u3="rgba(0,0,0,0.3)",f3=(t,e,o,r)=>{if(!t.length)return{horizontal:null,vertical:null};let[n,i,a,l]=Ze(t),s=e/r.zoom.value,d=o/r.zoom.value,c=e-s,m=o-d,u={top:parseInt(ul("sat"))||0,bottom:parseInt(ul("sab"))||0,left:parseInt(ul("sal"))||0,right:parseInt(ul("sar"))||0},f=Gr().rtl,b=-r.scrollX+c/2+u.left,x=-r.scrollY+m/2+u.top,E=b+s-u.right,T=x+d-u.bottom,C=Math.min(n,b),w=Math.min(i,x),A=Math.max(a,E),z=Math.max(l,T);return{horizontal:b===C&&E===A?null:{x:Math.max(u.left,ir)+(b-C)/(A-C)*e,y:o-kr-Math.max(ir,u.bottom),width:(E-b)/(A-C)*e-Math.max(ir*2,u.left+u.right),height:kr},vertical:x===w&&T===z?null:{x:f?Math.max(u.left,ir):e-kr-Math.max(u.right,ir),y:(x-w)/(z-w)*o+Math.max(u.top,ir),width:kr,height:(T-x)/(z-w)*o-Math.max(ir*2,u.top+u.bottom)}}},Qh=(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 Cs=v(k(),1),QT="medium",Ym=t=>t.penDetected?(0,Cs.jsxs)("label",{className:$("ToolIcon ToolIcon__penMode",`ToolIcon_size_${QT}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Cs.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Cs.jsx)("div",{className:"ToolIcon__icon",children:xx})]}):null;h();var ge=v(k(),1),Zm=t=>{let e=Ze(t.elements),o=oa(t.elements,t.appState),r=Ze(o);return(0,ge.jsx)("div",{className:"Stats",children:(0,ge.jsxs)(zt,{padding:2,children:[(0,ge.jsx)("div",{className:"close",onClick:t.onClose,children:Ro}),(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 h3=v(k(),1),jm=t=>(0,h3.jsx)(ce,{className:$("Shape",{fillable:!1}),type:"radio",icon:hd,name:"editor-current-shape",checked:t.checked,title:`${t.title} \u2014 H`,keyBindingLabel:t.isMobile?void 0:S.H.toLocaleUpperCase(),"aria-label":`${t.title} \u2014 H`,"aria-keyshortcuts":S.H,"data-testid":"toolbar-hand",onChange:()=>t.onChange?.()});var $e=v(k(),1),g3=({appState:t,elements:e,actionManager:o,setAppState:r,onLockToggle:n,onHandToolToggle:i,onPenModeToggle:a,renderTopRightUI:l,renderCustomStats:s,renderSidebars:d,device:c,renderWelcomeScreen:m,UIOptions:u,app:f})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:x,DefaultSidebarTriggerTunnel:E}=Ve(),T=()=>(0,$e.jsxs)(Gm,{side:"top",className:"App-top-bar",children:[m&&(0,$e.jsx)(b.Out,{}),(0,$e.jsx)(Nn,{heading:"shapes",children:w=>(0,$e.jsx)(Pt.Col,{gap:4,align:"center",children:(0,$e.jsxs)(Pt.Row,{gap:1,className:"App-toolbar-container",children:[(0,$e.jsxs)(zt,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[w,(0,$e.jsx)(Pt.Row,{gap:1,children:(0,$e.jsx)(Om,{appState:t,activeTool:t.activeTool,UIOptions:u,app:f})})]}),l&&l(!0,t),(0,$e.jsxs)("div",{className:"mobile-misc-tools-container",children:[!t.viewModeEnabled&&(0,$e.jsx)(E.Out,{}),(0,$e.jsx)(Ym,{checked:t.penMode,onChange:()=>a(null),title:g("toolBar.penMode"),isMobile:!0,penDetected:t.penDetected}),(0,$e.jsx)(Km,{checked:t.activeTool.locked,onChange:n,title:g("toolBar.lock"),isMobile:!0}),(0,$e.jsx)(jm,{checked:Fr(t),onChange:()=>i(),title:g("toolBar.hand"),isMobile:!0})]})]})})}),(0,$e.jsx)(Vm,{appState:t,isMobile:!0,device:c,app:f})]}),C=()=>t.viewModeEnabled?(0,$e.jsx)("div",{className:"App-toolbar-content",children:(0,$e.jsx)(x.Out,{})}):(0,$e.jsxs)("div",{className:"App-toolbar-content",children:[(0,$e.jsx)(x.Out,{}),o.renderAction("toggleEditMenu"),o.renderAction("undo"),o.renderAction("redo"),o.renderAction(t.multiElement?"finalize":"duplicateSelection"),o.renderAction("deleteSelectedElements")]});return(0,$e.jsxs)($e.Fragment,{children:[d(),!t.viewModeEnabled&&T(),!t.openMenu&&t.showStats&&(0,$e.jsx)(Zm,{appState:t,setAppState:r,elements:e,onClose:()=>{o.executeAction(Mn)},renderCustomStats:s}),(0,$e.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:kr+ir*2,marginLeft:kr+ir*2,marginRight:kr+ir*2},children:(0,$e.jsxs)(zt,{padding:0,children:[t.openMenu==="shape"&&!t.viewModeEnabled&&ea(t,e)?(0,$e.jsx)(Nn,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,$e.jsx)(Nm,{appState:t,elementsMap:f.scene.getNonDeletedElementsMap(),renderAction:o.renderAction})}):null,(0,$e.jsxs)("footer",{className:"App-toolbar",children:[C(),t.scrolledOutside&&!t.openMenu&&!t.openSidebar&&(0,$e.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(w=>({...oi(e,w)}))},children:g("buttons.scrollBackToContent")})]})]})})]})};h();var Fn=v(H(),1);var On=v(k(),1),b3=t=>{let e=(0,Fn.useRef)(null),[o,r]=(0,Fn.useState)(null);return(0,Fn.useLayoutEffect)(()=>{if(!t.spreadsheet)return;let n=b0(t.chartType,t.spreadsheet,0,0);r(n);let i,a=e.current;return(async()=>(i=await zc(n,{exportBackground:!1,viewBackgroundColor:Mt.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,On.jsx)("button",{className:"ChartPreview",onClick:()=>{o&&t.onClick(t.chartType,o)},children:(0,On.jsx)("div",{ref:e})})},x3=({setAppState:t,appState:e,onClose:o})=>{let{onInsertElements:r}=mo(),n=Fn.default.useCallback(()=>{o&&o()},[o]),i=(a,l)=>{r(l),xe("paste","chart",a),t({currentChartType:a,pasteDialog:{shown:!1,data:null}})};return(0,On.jsx)(et,{size:"small",onCloseRequest:n,title:g("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,On.jsxs)("div",{className:"container",children:[(0,On.jsx)(b3,{chartType:"bar",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="bar",onClick:i}),(0,On.jsx)(b3,{chartType:"line",spreadsheet:e.pasteDialog.data,selected:e.currentChartType==="line",onClick:i})]})})};h();var v3=v(H(),1);var V=v(k(),1),ek=()=>(0,V.jsxs)("div",{className:"HelpDialog__header",children:[(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Fu}),g("helpDialog.documentation")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://blog.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Fu}),g("helpDialog.blog")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:md}),g("helpDialog.github")]}),(0,V.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,V.jsx)("div",{className:"HelpDialog__link-icon",children:Bv}),"YouTube"]})]}),tk=t=>(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)("h3",{children:t.title}),(0,V.jsx)("div",{className:"HelpDialog__islands-container",children:t.children})]}),eg=t=>(0,V.jsxs)("div",{className:`HelpDialog__island ${t.className}`,children:[(0,V.jsx)("h4",{className:"HelpDialog__island-title",children:t.caption}),(0,V.jsx)("div",{className:"HelpDialog__island-content",children:t.children})]});function*ok(t,e){let o=!0;for(let r of t)o||(yield e),o=!1,yield r}var rk=t=>t.replace(/\b[a-z]\b/,e=>e.toUpperCase()),J=({label:t,shortcuts:e,isOr:o=!0})=>{let r=e.map(n=>(n.endsWith("++")?[...n.slice(0,-2).split("+"),"+"]:n.split("+")).map(a=>(0,V.jsx)(nk,{children:rk(a)},a)));return(0,V.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,V.jsx)("div",{children:t}),(0,V.jsx)("div",{className:"HelpDialog__key-container",children:[...ok(r,o?g("helpDialog.or"):null)]})]})},nk=t=>(0,V.jsx)("kbd",{className:"HelpDialog__key",...t}),E3=({onClose:t})=>{let e=v3.default.useCallback(()=>{t&&t()},[t]);return(0,V.jsx)(V.Fragment,{children:(0,V.jsxs)(et,{onCloseRequest:e,title:g("helpDialog.title"),className:"HelpDialog",children:[(0,V.jsx)(ek,{}),(0,V.jsxs)(tk,{title:g("helpDialog.shortcuts"),children:[(0,V.jsxs)(eg,{className:"HelpDialog__island--tools",caption:g("helpDialog.tools"),children:[(0,V.jsx)(J,{label:g("toolBar.hand"),shortcuts:[S.H]}),(0,V.jsx)(J,{label:g("toolBar.selection"),shortcuts:[S.V,S[1]]}),(0,V.jsx)(J,{label:g("toolBar.rectangle"),shortcuts:[S.R,S[2]]}),(0,V.jsx)(J,{label:g("toolBar.diamond"),shortcuts:[S.D,S[3]]}),(0,V.jsx)(J,{label:g("toolBar.ellipse"),shortcuts:[S.O,S[4]]}),(0,V.jsx)(J,{label:g("toolBar.arrow"),shortcuts:[S.A,S[5]]}),(0,V.jsx)(J,{label:g("toolBar.line"),shortcuts:[S.L,S[6]]}),(0,V.jsx)(J,{label:g("toolBar.freedraw"),shortcuts:[S.P,S[7]]}),(0,V.jsx)(J,{label:g("toolBar.text"),shortcuts:[S.T,S[8]]}),(0,V.jsx)(J,{label:g("toolBar.image"),shortcuts:[S[9]]}),(0,V.jsx)(J,{label:g("toolBar.eraser"),shortcuts:[S.E,S[0]]}),(0,V.jsx)(J,{label:g("toolBar.frame"),shortcuts:[S.F]}),(0,V.jsx)(J,{label:g("toolBar.laser"),shortcuts:[S.K]}),(0,V.jsx)(J,{label:g("labels.eyeDropper"),shortcuts:[S.I,"Shift+S","Shift+G"]}),(0,V.jsx)(J,{label:g("helpDialog.editLineArrowPoints"),shortcuts:[F("CtrlOrCmd+Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.editText"),shortcuts:[F("Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.textNewLine"),shortcuts:[F("Enter"),F("Shift+Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.textFinish"),shortcuts:[F("Esc"),F("CtrlOrCmd+Enter")]}),(0,V.jsx)(J,{label:g("helpDialog.curvedArrow"),shortcuts:["A",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,V.jsx)(J,{label:g("helpDialog.curvedLine"),shortcuts:["L",g("helpDialog.click"),g("helpDialog.click"),g("helpDialog.click")],isOr:!1}),(0,V.jsx)(J,{label:g("toolBar.lock"),shortcuts:[S.Q]}),(0,V.jsx)(J,{label:g("helpDialog.preventBinding"),shortcuts:[F("CtrlOrCmd")]}),(0,V.jsx)(J,{label:g("toolBar.link"),shortcuts:[F("CtrlOrCmd+K")]})]}),(0,V.jsxs)(eg,{className:"HelpDialog__island--view",caption:g("helpDialog.view"),children:[(0,V.jsx)(J,{label:g("buttons.zoomIn"),shortcuts:[F("CtrlOrCmd++")]}),(0,V.jsx)(J,{label:g("buttons.zoomOut"),shortcuts:[F("CtrlOrCmd+-")]}),(0,V.jsx)(J,{label:g("buttons.resetZoom"),shortcuts:[F("CtrlOrCmd+0")]}),(0,V.jsx)(J,{label:g("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,V.jsx)(J,{label:g("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,V.jsx)(J,{label:g("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,V.jsx)(J,{label:g("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,V.jsx)(J,{label:g("buttons.zenMode"),shortcuts:[F("Alt+Z")]}),(0,V.jsx)(J,{label:g("buttons.objectsSnapMode"),shortcuts:[F("Alt+S")]}),(0,V.jsx)(J,{label:g("labels.toggleGrid"),shortcuts:[F("CtrlOrCmd+'")]}),(0,V.jsx)(J,{label:g("labels.viewMode"),shortcuts:[F("Alt+R")]}),(0,V.jsx)(J,{label:g("labels.toggleTheme"),shortcuts:[F("Alt+Shift+D")]}),(0,V.jsx)(J,{label:g("stats.title"),shortcuts:[F("Alt+/")]}),(0,V.jsx)(J,{label:g("commandPalette.title"),shortcuts:Mr?[wt("commandPalette")]:[wt("commandPalette"),wt("commandPalette",1)]})]}),(0,V.jsxs)(eg,{className:"HelpDialog__island--editor",caption:g("helpDialog.editor"),children:[(0,V.jsx)(J,{label:g("labels.moveCanvas"),shortcuts:[F(`Space+${g("helpDialog.drag")}`),F(`Wheel+${g("helpDialog.drag")}`)],isOr:!0}),(0,V.jsx)(J,{label:g("buttons.clearReset"),shortcuts:[F("CtrlOrCmd+Delete")]}),(0,V.jsx)(J,{label:g("labels.delete"),shortcuts:[F("Delete")]}),(0,V.jsx)(J,{label:g("labels.cut"),shortcuts:[F("CtrlOrCmd+X")]}),(0,V.jsx)(J,{label:g("labels.copy"),shortcuts:[F("CtrlOrCmd+C")]}),(0,V.jsx)(J,{label:g("labels.paste"),shortcuts:[F("CtrlOrCmd+V")]}),(0,V.jsx)(J,{label:g("labels.pasteAsPlaintext"),shortcuts:[F("CtrlOrCmd+Shift+V")]}),(0,V.jsx)(J,{label:g("labels.selectAll"),shortcuts:[F("CtrlOrCmd+A")]}),(0,V.jsx)(J,{label:g("labels.multiSelect"),shortcuts:[F(`Shift+${g("helpDialog.click")}`)]}),(0,V.jsx)(J,{label:g("helpDialog.deepSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.click")}`)]}),(0,V.jsx)(J,{label:g("helpDialog.deepBoxSelect"),shortcuts:[F(`CtrlOrCmd+${g("helpDialog.drag")}`)]}),(qi||Mr)&&(0,V.jsx)(J,{label:g("labels.copyAsPng"),shortcuts:[F("Shift+Alt+C")]}),(0,V.jsx)(J,{label:g("labels.copyStyles"),shortcuts:[F("CtrlOrCmd+Alt+C")]}),(0,V.jsx)(J,{label:g("labels.pasteStyles"),shortcuts:[F("CtrlOrCmd+Alt+V")]}),(0,V.jsx)(J,{label:g("labels.sendToBack"),shortcuts:[Yo?F("CtrlOrCmd+Alt+["):F("CtrlOrCmd+Shift+[")]}),(0,V.jsx)(J,{label:g("labels.bringToFront"),shortcuts:[Yo?F("CtrlOrCmd+Alt+]"):F("CtrlOrCmd+Shift+]")]}),(0,V.jsx)(J,{label:g("labels.sendBackward"),shortcuts:[F("CtrlOrCmd+[")]}),(0,V.jsx)(J,{label:g("labels.bringForward"),shortcuts:[F("CtrlOrCmd+]")]}),(0,V.jsx)(J,{label:g("labels.alignTop"),shortcuts:[F("CtrlOrCmd+Shift+Up")]}),(0,V.jsx)(J,{label:g("labels.alignBottom"),shortcuts:[F("CtrlOrCmd+Shift+Down")]}),(0,V.jsx)(J,{label:g("labels.alignLeft"),shortcuts:[F("CtrlOrCmd+Shift+Left")]}),(0,V.jsx)(J,{label:g("labels.alignRight"),shortcuts:[F("CtrlOrCmd+Shift+Right")]}),(0,V.jsx)(J,{label:g("labels.duplicateSelection"),shortcuts:[F("CtrlOrCmd+D"),F(`Alt+${g("helpDialog.drag")}`)]}),(0,V.jsx)(J,{label:g("helpDialog.toggleElementLock"),shortcuts:[F("CtrlOrCmd+Shift+L")]}),(0,V.jsx)(J,{label:g("buttons.undo"),shortcuts:[F("CtrlOrCmd+Z")]}),(0,V.jsx)(J,{label:g("buttons.redo"),shortcuts:Zs?[F("CtrlOrCmd+Y"),F("CtrlOrCmd+Shift+Z")]:[F("CtrlOrCmd+Shift+Z")]}),(0,V.jsx)(J,{label:g("labels.group"),shortcuts:[F("CtrlOrCmd+G")]}),(0,V.jsx)(J,{label:g("labels.ungroup"),shortcuts:[F("CtrlOrCmd+Shift+G")]}),(0,V.jsx)(J,{label:g("labels.flipHorizontal"),shortcuts:[F("Shift+H")]}),(0,V.jsx)(J,{label:g("labels.flipVertical"),shortcuts:[F("Shift+V")]}),(0,V.jsx)(J,{label:g("labels.showStroke"),shortcuts:[F("S")]}),(0,V.jsx)(J,{label:g("labels.showBackground"),shortcuts:[F("G")]}),(0,V.jsx)(J,{label:g("labels.decreaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+<")]}),(0,V.jsx)(J,{label:g("labels.increaseFontSize"),shortcuts:[F("CtrlOrCmd+Shift+>")]})]})]})]})})};h();var Bn=v(H(),1);var $t=v(k(),1),ik=4,ak=8,lk=({shouldWrap:t,children:e,username:o})=>t?(0,$t.jsx)(xo,{label:o||"Unknown user",children:e}):(0,$t.jsx)(Bn.default.Fragment,{children:e}),tg=({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,$t.jsx)(lk,{username:e.username,shouldWrap:n,children:l},o)},sk=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],Xm=Bn.default.memo(({className:t,mobile:e,collaborators:o,userToFollow:r})=>{let n=It(),i=new Map;o.forEach((E,T)=>{let C=E.id||T;i.set(C,{...E,socketId:T})});let a=Array.from(i.values()).filter(E=>E.username?.trim()),[l,s]=Bn.default.useState(""),d=Bn.default.useRef(null);(0,Bn.useLayoutEffect)(()=>{if(d.current){let E=C=>{let w=Math.max(1,Math.min(8,Math.floor(C/38)));m(w)};if(E(d.current.clientWidth),!al)return;let T=new ResizeObserver(C=>{for(let w of C){let{width:A}=w.contentRect;E(A)}});return T.observe(d.current),()=>{T.disconnect()}}},[]);let[c,m]=Bn.default.useState(ik),f=l.trim().toLowerCase()?a.filter(E=>E.username?.toLowerCase().includes(l)):a,x=a.slice(0,c-1).map(E=>tg({actionManager:n,collaborator:E,socketId:E.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:E.socketId===r}));return e?(0,$t.jsx)("div",{className:$("UserList UserList_mobile",t),children:a.map(E=>tg({actionManager:n,collaborator:E,socketId:E.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:E.socketId===r}))}):(0,$t.jsx)("div",{className:"UserList-wrapper",ref:d,children:(0,$t.jsxs)("div",{className:$("UserList",t),style:{"--max-avatars":c},children:[x,a.length>c-1&&(0,$t.jsxs)(Yd,{onOpenChange:E=>{E||s("")},children:[(0,$t.jsxs)(Zd,{className:"UserList__more",children:["+",a.length-c+1]}),(0,$t.jsx)(jd,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,$t.jsxs)(zt,{style:{overflow:"hidden"},children:[a.length>=ak&&(0,$t.jsxs)("div",{className:"UserList__search-wrapper",children:[Ed,(0,$t.jsx)("input",{className:"UserList__search",type:"text",placeholder:g("userList.search.placeholder"),value:l,onChange:E=>{s(E.target.value)}})]}),(0,$t.jsxs)("div",{className:"dropdown-menu UserList__collaborators",children:[f.length===0&&(0,$t.jsx)("div",{className:"UserList__collaborators__empty",children:g("userList.search.empty")}),(0,$t.jsx)("div",{className:"UserList__hint",children:g("userList.hint.text")}),f.map(E=>tg({actionManager:n,collaborator:E,socketId:E.socketId,withName:!0,isBeingFollowed:E.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||!kt(n,i,sk))return!1}return!0});h();var w3=v(H(),1);h();var y3=v(k(),1),og=({children:t,color:e})=>(0,y3.jsx)("div",{className:"Card",style:{"--card-color":e==="primary"?"var(--color-primary)":Mt[e][7],"--card-color-darker":e==="primary"?"var(--color-primary-darker)":Mt[e][8],"--card-color-darkest":e==="primary"?"var(--color-primary-darkest)":Mt[e][9]},children:t});var At=v(k(),1),ck=({elements:t,appState:e,setAppState:o,files:r,actionManager:n,exportOpts:i,canvas:a,onCloseRequest:l})=>{let{onExportToBackend:s}=i;return(0,At.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,At.jsxs)("div",{className:"ExportDialog-cards",children:[i.saveFileToDisk&&(0,At.jsxs)(og,{color:"lime",children:[(0,At.jsx)("div",{className:"Card-icon",children:Lx}),(0,At.jsx)("h2",{children:g("exportDialog.disk_title")}),(0,At.jsxs)("div",{className:"Card-details",children:[g("exportDialog.disk_details"),!ji&&n.renderAction("changeProjectName")]}),(0,At.jsx)(ce,{className:"Card-button",type:"button",title:g("exportDialog.disk_button"),"aria-label":g("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{n.executeAction(ls,"ui")}})]}),s&&(0,At.jsxs)(og,{color:"pink",children:[(0,At.jsx)("div",{className:"Card-icon",children:Ul}),(0,At.jsx)("h2",{children:g("exportDialog.link_title")}),(0,At.jsx)("div",{className:"Card-details",children:g("exportDialog.link_details")}),(0,At.jsx)(ce,{className:"Card-button",type:"button",title:g("exportDialog.link_button"),"aria-label":g("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{xe("export","link",`ui (${Y1()})`),await s(t,e,r),l()}catch(d){o({errorMessage:d.message})}}})]}),i.renderCustomUI&&i.renderCustomUI(t,e,r,a)]})})},C3=({elements:t,appState:e,files:o,actionManager:r,exportOpts:n,canvas:i,setAppState:a})=>{let l=w3.default.useCallback(()=>{a({openDialog:null})},[a]);return(0,At.jsx)(At.Fragment,{children:e.openDialog?.name==="jsonExport"&&(0,At.jsx)(et,{onCloseRequest:l,title:g("buttons.export"),children:(0,At.jsx)(ck,{elements:t,appState:e,setAppState:a,files:o,actionManager:r,onCloseRequest:l,exportOpts:n,canvas:i})})})};h();h();var T3=v(k(),1),S3=t=>(0,T3.jsx)("button",{className:"help-icon",onClick:t.onClick,type:"button",title:`${g("helpDialog.title")} \u2014 ?`,"aria-label":g("helpDialog.title"),children:sa});var ao=v(k(),1),k3=({appState:t,actionManager:e,showExitZenModeBtn:o,renderWelcomeScreen:r})=>{let{FooterCenterTunnel:n,WelcomeScreenHelpHintTunnel:i}=Ve(),a=Me(),l=!t.viewModeEnabled&&t.multiElement&&a.isTouchScreen;return(0,ao.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,ao.jsx)("div",{className:$("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled}),children:(0,ao.jsx)(Pt.Col,{gap:2,children:(0,ao.jsxs)(Nn,{heading:"canvasActions",children:[(0,ao.jsx)(Yw,{renderAction:e.renderAction,zoom:t.zoom}),!t.viewModeEnabled&&(0,ao.jsx)(Zw,{renderAction:e.renderAction,className:$("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":t.zenModeEnabled})}),l&&(0,ao.jsx)(Xw,{renderAction:e.renderAction,className:$("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":t.zenModeEnabled})})]})})}),(0,ao.jsx)(n.Out,{}),(0,ao.jsx)("div",{className:$("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":t.zenModeEnabled}),children:(0,ao.jsxs)("div",{style:{position:"relative"},children:[r&&(0,ao.jsx)(i.Out,{}),(0,ao.jsx)(S3,{onClick:()=>e.executeAction(gi)})]})}),(0,ao.jsx)(jw,{actionManager:e,showExitZenModeBtn:o})]})},I3=k3;k3.displayName="Footer";h();var Ct=v(H(),1);h();var A3=v(H(),1),qm=A3.default.createContext({});h();var M3=v(H(),1);var Ai=v(k(),1),rg=({children:t,className:e})=>{let o=Me(),r=(0,M3.useContext)(qm),n=!!(o.editor.canFitSidebar&&r.shouldRenderDockButton);return(0,Ai.jsxs)("div",{className:$("sidebar__header",e),"data-testid":"sidebar-header",children:[t,(0,Ai.jsxs)("div",{className:"sidebar__header__buttons",children:[n&&(0,Ai.jsx)(xo,{label:g("labels.sidebarLock"),children:(0,Ai.jsx)(Cr,{onSelect:()=>r.onDock?.(!r.docked),selected:!!r.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":g("labels.sidebarLock"),children:sx})}),(0,Ai.jsx)(Cr,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:r.onCloseRequest,"aria-label":g("buttons.close"),children:Ro})]})]})};rg.displayName="SidebarHeader";h();var Mi=v(k(),1),ng=({name:t,tab:e,icon:o,title:r,children:n,onToggle:i,className:a,style:l})=>{let s=Le(),d=_e();return(0,Mi.jsxs)("label",{title:r,className:"sidebar-trigger__label-element",children:[(0,Mi.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:c=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let m=c.target.checked;s({openSidebar:m?{name:t,tab:e}:null}),i?.(m)},checked:d.openSidebar?.name===t,"aria-label":r,"aria-keyshortcuts":"0"}),(0,Mi.jsxs)("div",{className:$("sidebar-trigger",a),style:l,children:[o&&(0,Mi.jsx)("div",{children:o}),n&&(0,Mi.jsx)("div",{className:"sidebar-trigger__label",children:n})]})]})};ng.displayName="SidebarTrigger";h();h();var Rt=v(H());h();var Ke=v(H());h();var ar=v(H());function _3(t){let e=t+"CollectionProvider",[o,r]=Er(e),[n,i]=o(e,{collectionRef:{current:null},itemMap:new Map}),a=f=>{let{scope:b,children:x}=f,E=ar.default.useRef(null),T=ar.default.useRef(new Map).current;return ar.default.createElement(n,{scope:b,itemMap:T,collectionRef:E},x)},l=t+"CollectionSlot",s=ar.default.forwardRef((f,b)=>{let{scope:x,children:E}=f,T=i(l,x),C=Ft(b,T.collectionRef);return ar.default.createElement(yn,{ref:C},E)}),d=t+"CollectionItemSlot",c="data-radix-collection-item",m=ar.default.forwardRef((f,b)=>{let{scope:x,children:E,...T}=f,C=ar.default.useRef(null),w=Ft(b,C),A=i(d,x);return ar.default.useEffect(()=>(A.itemMap.set(C,{ref:C,...T}),()=>void A.itemMap.delete(C))),ar.default.createElement(yn,{[c]:"",ref:w},E)});function u(f){let b=i(t+"CollectionConsumer",f);return ar.default.useCallback(()=>{let E=b.collectionRef.current;if(!E)return[];let T=Array.from(E.querySelectorAll(`[${c}]`));return Array.from(b.itemMap.values()).sort((A,z)=>T.indexOf(A.ref.current)-T.indexOf(z.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:s,ItemSlot:m},u,r]}h();var Ss=v(H()),dk=(0,Ss.createContext)(void 0);function Jm(t){let e=(0,Ss.useContext)(dk);return t||e||"ltr"}var ig="rovingFocusGroup.onEntryFocus",mk={bubbles:!1,cancelable:!0},lg="RovingFocusGroup",[ag,L3,pk]=_3(lg),[uk,sg]=Er(lg,[pk]),[fk,hk]=uk(lg),gk=(0,Ke.forwardRef)((t,e)=>(0,Ke.createElement)(ag.Provider,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(ag.Slot,{scope:t.__scopeRovingFocusGroup},(0,Ke.createElement)(bk,Ce({},t,{ref:e}))))),bk=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,orientation:r,loop:n=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:s,onEntryFocus:d,...c}=t,m=(0,Ke.useRef)(null),u=Ft(e,m),f=Jm(i),[b=null,x]=Sa({prop:a,defaultProp:l,onChange:s}),[E,T]=(0,Ke.useState)(!1),C=oo(d),w=L3(o),A=(0,Ke.useRef)(!1),[z,I]=(0,Ke.useState)(0);return(0,Ke.useEffect)(()=>{let M=m.current;if(M)return M.addEventListener(ig,C),()=>M.removeEventListener(ig,C)},[C]),(0,Ke.createElement)(fk,{scope:o,orientation:r,dir:f,loop:n,currentTabStopId:b,onItemFocus:(0,Ke.useCallback)(M=>x(M),[x]),onItemShiftTab:(0,Ke.useCallback)(()=>T(!0),[]),onFocusableItemAdd:(0,Ke.useCallback)(()=>I(M=>M+1),[]),onFocusableItemRemove:(0,Ke.useCallback)(()=>I(M=>M-1),[])},(0,Ke.createElement)(dt.div,Ce({tabIndex:E||z===0?-1:0,"data-orientation":r},c,{ref:u,style:{outline:"none",...t.style},onMouseDown:Et(t.onMouseDown,()=>{A.current=!0}),onFocus:Et(t.onFocus,M=>{let _=!A.current;if(M.target===M.currentTarget&&_&&!E){let U=new CustomEvent(ig,mk);if(M.currentTarget.dispatchEvent(U),!U.defaultPrevented){let D=w().filter(oe=>oe.focusable),G=D.find(oe=>oe.active),O=D.find(oe=>oe.id===b),te=[G,O,...D].filter(Boolean).map(oe=>oe.ref.current);P3(te)}}A.current=!1}),onBlur:Et(t.onBlur,()=>T(!1))})))}),xk="RovingFocusGroupItem",vk=(0,Ke.forwardRef)((t,e)=>{let{__scopeRovingFocusGroup:o,focusable:r=!0,active:n=!1,tabStopId:i,...a}=t,l=Ea(),s=i||l,d=hk(xk,o),c=d.currentTabStopId===s,m=L3(o),{onFocusableItemAdd:u,onFocusableItemRemove:f}=d;return(0,Ke.useEffect)(()=>{if(r)return u(),()=>f()},[r,u,f]),(0,Ke.createElement)(ag.ItemSlot,{scope:o,id:s,focusable:r,active:n},(0,Ke.createElement)(dt.span,Ce({tabIndex:c?0:-1,"data-orientation":d.orientation},a,{ref:e,onMouseDown:Et(t.onMouseDown,b=>{r?d.onItemFocus(s):b.preventDefault()}),onFocus:Et(t.onFocus,()=>d.onItemFocus(s)),onKeyDown:Et(t.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let x=wk(b,d.orientation,d.dir);if(x!==void 0){b.preventDefault();let T=m().filter(C=>C.focusable).map(C=>C.ref.current);if(x==="last")T.reverse();else if(x==="prev"||x==="next"){x==="prev"&&T.reverse();let C=T.indexOf(b.currentTarget);T=d.loop?Ck(T,C+1):T.slice(C+1)}setTimeout(()=>P3(T))}})})))}),Ek={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function yk(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function wk(t,e,o){let r=yk(t.key,o);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Ek[r]}function P3(t){let e=document.activeElement;for(let o of t)if(o===e||(o.focus(),document.activeElement!==e))return}function Ck(t,e){return t.map((o,r)=>t[(e+r)%t.length])}var R3=gk,D3=vk;var N3="Tabs",[Sk,sQ]=Er(N3,[sg]),O3=sg(),[Tk,cg]=Sk(N3),kk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,onValueChange:n,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:s="automatic",...d}=t,c=Jm(l),[m,u]=Sa({prop:r,onChange:n,defaultProp:i});return(0,Rt.createElement)(Tk,{scope:o,baseId:Ea(),value:m,onValueChange:u,orientation:a,dir:c,activationMode:s},(0,Rt.createElement)(dt.div,Ce({dir:c,"data-orientation":a},d,{ref:e})))}),Ik="TabsList",Ak=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,loop:r=!0,...n}=t,i=cg(Ik,o),a=O3(o);return(0,Rt.createElement)(R3,Ce({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),(0,Rt.createElement)(dt.div,Ce({role:"tablist","aria-orientation":i.orientation},n,{ref:e})))}),Mk="TabsTrigger",_k=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,disabled:n=!1,...i}=t,a=cg(Mk,o),l=O3(o),s=F3(a.baseId,r),d=B3(a.baseId,r),c=r===a.value;return(0,Rt.createElement)(D3,Ce({asChild:!0},l,{focusable:!n,active:c}),(0,Rt.createElement)(dt.button,Ce({type:"button",role:"tab","aria-selected":c,"aria-controls":d,"data-state":c?"active":"inactive","data-disabled":n?"":void 0,disabled:n,id:s},i,{ref:e,onMouseDown:Et(t.onMouseDown,m=>{!n&&m.button===0&&m.ctrlKey===!1?a.onValueChange(r):m.preventDefault()}),onKeyDown:Et(t.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&a.onValueChange(r)}),onFocus:Et(t.onFocus,()=>{let m=a.activationMode!=="manual";!c&&!n&&m&&a.onValueChange(r)})})))}),Lk="TabsContent",Pk=(0,Rt.forwardRef)((t,e)=>{let{__scopeTabs:o,value:r,forceMount:n,children:i,...a}=t,l=cg(Lk,o),s=F3(l.baseId,r),d=B3(l.baseId,r),c=r===l.value,m=(0,Rt.useRef)(c);return(0,Rt.useEffect)(()=>{let u=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(u)},[]),(0,Rt.createElement)(Ca,{present:n||c},({present:u})=>(0,Rt.createElement)(dt.div,Ce({"data-state":c?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":s,hidden:!u,id:d,tabIndex:0},a,{ref:e,style:{...t.style,animationDuration:m.current?"0s":void 0}}),u&&i))});function F3(t,e){return`${t}-trigger-${e}`}function B3(t,e){return`${t}-content-${e}`}var Qm=kk,ep=Ak,tp=_k,op=Pk;var z3=v(k(),1),dg=({children:t,...e})=>(0,z3.jsx)(ep,{className:"sidebar-triggers",...e,children:t});dg.displayName="SidebarTabTriggers";h();var mg=v(k(),1),pg=({children:t,tab:e,onSelect:o,...r})=>(0,mg.jsx)(tp,{value:e,asChild:!0,onSelect:o,children:(0,mg.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...r,children:t})});pg.displayName="SidebarTabTrigger";h();var $3=v(k(),1),ug=({children:t,...e})=>{let o=_e(),r=Le();if(!o.openSidebar)return null;let{name:n}=o.openSidebar;return(0,$3.jsx)(Qm,{className:"sidebar-tabs-root",value:o.openSidebar.tab,onValueChange:i=>r(a=>({...a,openSidebar:{...a.openSidebar,name:n,tab:i}})),...e,children:t})};ug.displayName="SidebarTabs";h();var H3=v(k(),1),fg=({tab:t,children:e,...o})=>(0,H3.jsx)(op,{...o,value:t,"data-testid":t,children:e});fg.displayName="SidebarTab";var hg=v(k(),1),W3=v(H(),1),Ts=We(!1),U3=(0,Ct.forwardRef)(({name:t,children:e,onDock:o,docked:r,className:n,...i},a)=>{y.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=Le(),s=Wr(Ts,Ne);(0,Ct.useLayoutEffect)(()=>(s(!!r),()=>{s(!1)}),[s,r]);let d=(0,Ct.useRef)({});d.current.onCloseRequest=()=>{l({openSidebar:null})},d.current.onDock=f=>o?.(f),d.current=Fi(d.current,{docked:r,shouldRenderDockButton:!!o&&r!=null});let c=(0,Ct.useRef)(null);(0,Ct.useImperativeHandle)(a,()=>c.current);let m=Me(),u=(0,Ct.useCallback)(()=>{document.querySelector(".Dialog")||l({openSidebar:null})},[l]);return _a(c,(0,Ct.useCallback)(f=>{f.target.closest(".sidebar-trigger")||(!r||!m.editor.canFitSidebar)&&u()},[u,r,m.editor.canFitSidebar])),(0,Ct.useEffect)(()=>{let f=b=>{b.key===S.ESCAPE&&(!r||!m.editor.canFitSidebar)&&u()};return document.addEventListener("keydown",f),()=>{document.removeEventListener("keydown",f)}},[u,r,m.editor.canFitSidebar]),(0,hg.jsx)(zt,{...i,className:$("sidebar",{"sidebar--docked":r},n),ref:c,children:(0,hg.jsx)(qm.Provider,{value:d.current,children:e})})});U3.displayName="SidebarInner";var Qr=Object.assign((0,Ct.forwardRef)((t,e)=>{let o=_e(),{onStateChange:r}=t,n=(0,Ct.useRef)(o.openSidebar);(0,Ct.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,Ct.useState)(!1);return(0,Ct.useLayoutEffect)(()=>(a(!0),()=>a(!1)),[]),i&&o.openSidebar?.name===t.name?(0,W3.createElement)(U3,{...t,ref:e,key:t.name}):null}),{Header:rg,TabTriggers:dg,TabTrigger:pg,Tabs:ug,Tab:fg,Trigger:ng});Qr.displayName="Sidebar";h();var bg={};o1(bg,{ChangeCanvasBackground:()=>e5,ClearCanvas:()=>J3,CommandPalette:()=>X3,Export:()=>t5,Help:()=>q3,LiveCollaborationTrigger:()=>r5,LoadScene:()=>Y3,SaveAsImage:()=>j3,SaveToActiveFile:()=>Z3,Socials:()=>o5,ToggleTheme:()=>Q3});h();h();var gg=We({active:!1});async function G3({title:t,description:e,actionLabel:o,color:r}){return new Promise(n=>{Gt.set(gg,{active:!0,onConfirm:()=>n(!0),onClose:()=>n(!1),onReject:()=>n(!1),title:t,description:e,actionLabel:o,color:r})})}h();var en=v(k(),1),V3=({value:t,shortcut:e,onChange:o,choices:r,children:n,name:i})=>{let a=Me();return(0,en.jsxs)(en.Fragment,{children:[(0,en.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,en.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:i,children:n}),(0,en.jsx)(Um,{name:i,value:t,onChange:o,choices:r})]}),e&&!a.editor.isMobile&&(0,en.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:e})]})};V3.displayName="DropdownMenuItemContentRadio";var K3=V3;var tt=v(k(),1),Y3=()=>{let{t}=vt(),e=It(),o=kn();return e.isActionEnabled(Da)?(0,tt.jsx)(Bo,{icon:ca,onSelect:async()=>{(!o.length||await G3({title:t("overwriteConfirm.modal.loadFromFile.title"),actionLabel:t("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,tt.jsx)(no,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:n=>(0,tt.jsx)("strong",{children:n}),br:()=>(0,tt.jsx)("br",{})})}))&&e.executeAction(Da)},"data-testid":"load-button",shortcut:wt("loadScene"),"aria-label":t("buttons.load"),children:t("buttons.load")}):null};Y3.displayName="LoadScene";var Z3=()=>{let{t}=vt(),e=It();return e.isActionEnabled(om)?(0,tt.jsx)(Bo,{shortcut:wt("saveScene"),"data-testid":"save-button",onSelect:()=>e.executeAction(om),icon:Ax,"aria-label":`${t("buttons.save")}`,children:`${t("buttons.save")}`}):null};Z3.displayName="SaveToActiveFile";var j3=()=>{let t=Le(),{t:e}=vt();return(0,tt.jsx)(Bo,{icon:ud,"data-testid":"image-export-button",onSelect:()=>t({openDialog:{name:"imageExport"}}),shortcut:wt("imageExport"),"aria-label":e("buttons.exportImage"),children:e("buttons.exportImage")})};j3.displayName="SaveAsImage";var X3=t=>{let e=Le(),{t:o}=vt();return(0,tt.jsx)(Bo,{icon:yd,"data-testid":"command-palette-button",onSelect:()=>{xe("command_palette","open","menu"),e({openDialog:{name:"commandPalette"}})},shortcut:wt("commandPalette"),"aria-label":o("commandPalette.title"),className:t?.className,children:o("commandPalette.title")})};X3.displayName="CommandPalette";var q3=()=>{let{t}=vt(),e=It();return(0,tt.jsx)(Bo,{"data-testid":"help-menu-item",icon:sa,onSelect:()=>e.executeAction(gi),shortcut:"?","aria-label":t("helpDialog.title"),children:t("helpDialog.title")})};q3.displayName="Help";var J3=()=>{let{t}=vt(),e=Wr(Ti,Ne);return It().isActionEnabled(jr)?(0,tt.jsx)(Bo,{icon:er,onSelect:()=>e("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":t("buttons.clearReset"),children:t("buttons.clearReset")}):null};J3.displayName="ClearCanvas";var Q3=t=>{let{t:e}=vt(),o=_e(),r=It(),n=wt("toggleTheme");return r.isActionEnabled(mi)?t?.allowSystemTheme?(0,tt.jsx)(K3,{name:"theme",value:t.theme,onChange:i=>t.onSelect(i),choices:[{value:be.LIGHT,label:Hl,ariaLabel:`${e("buttons.lightMode")} - ${n}`},{value:be.DARK,label:$l,ariaLabel:`${e("buttons.darkMode")} - ${n}`},{value:"system",label:Fv,ariaLabel:e("buttons.systemMode")}],children:e("labels.theme")}):(0,tt.jsx)(Bo,{onSelect:i=>{if(i.preventDefault(),t?.onSelect)t.onSelect(o.theme===be.DARK?be.LIGHT:be.DARK);else return r.executeAction(mi)},icon:o.theme===be.DARK?Hl:$l,"data-testid":"toggle-dark-mode",shortcut:n,"aria-label":o.theme===be.DARK?e("buttons.lightMode"):e("buttons.darkMode"),children:o.theme===be.DARK?e("buttons.lightMode"):e("buttons.darkMode")}):null};Q3.displayName="ToggleTheme";var e5=()=>{let{t}=vt(),e=_e(),o=It(),r=_n();return e.viewModeEnabled||!r.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,tt.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,tt.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:t("labels.canvasBackground")}),(0,tt.jsx)("div",{style:{padding:"0 0.625rem"},children:o.renderAction("changeViewBackgroundColor")})]})};e5.displayName="ChangeCanvasBackground";var t5=()=>{let{t}=vt(),e=Le();return(0,tt.jsx)(Bo,{icon:ni,onSelect:()=>{e({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":t("buttons.export"),children:t("buttons.export")})};t5.displayName="Export";var o5=()=>{let{t}=vt();return(0,tt.jsxs)(tt.Fragment,{children:[(0,tt.jsx)(Ga,{icon:md,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,tt.jsx)(Ga,{icon:kx,href:"https://x.com/excalidraw","aria-label":"X",children:t("labels.followUs")}),(0,tt.jsx)(Ga,{icon:Tx,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:t("labels.discordChat")})]})};o5.displayName="Socials";var r5=({onSelect:t,isCollaborating:e})=>{let{t:o}=vt();return(0,tt.jsx)(Bo,{"data-testid":"collab-button",icon:fd,className:$({"active-collab":e}),onSelect:t,children:o("labels.liveCollaboration")})};r5.displayName="LiveCollaborationTrigger";h();var rp=v(H(),1);var n5=v(k(),1),tn=(t,e)=>{let o=We(0),r=n=>{let{jotaiScope:i}=Ve(),[,a]=Se(o,i),l=(0,rp.useRef)({preferHost:!1,counter:0});return(0,rp.useLayoutEffect)(()=>{let s=l.current;return a(d=>{let c=d+1;return s.counter=c,c}),()=>{a(d=>{let c=d-1;return s.counter=c,c||(s.preferHost=!1),c})}},[a]),n.__fallback||(l.current.preferHost=!0),!l.current.counter&&n.__fallback&&l.current.preferHost||l.current.counter>1&&n.__fallback?null:(0,n5.jsx)(e,{...n})};return r.displayName=t,r};var on=v(k(),1),Rk=Object.assign(tn("MainMenu",({children:t,onSelect:e})=>{let{MainMenuTunnel:o}=Ve(),r=Me(),n=_e(),i=Le(),a=r.editor.isMobile?void 0:()=>i({openMenu:null});return(0,on.jsx)(o.In,{children:(0,on.jsxs)(De,{open:n.openMenu==="canvas",children:[(0,on.jsx)(De.Trigger,{onToggle:()=>{i({openMenu:n.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:dd}),(0,on.jsxs)(De.Content,{onClickOutside:a,onSelect:cn(e,()=>{i({openMenu:null})}),children:[t,r.editor.isMobile&&n.collaborators.size>0&&(0,on.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,on.jsx)("legend",{children:g("labels.collaborators")}),(0,on.jsx)(Xm,{mobile:!0,collaborators:n.collaborators,userToFollow:n.userToFollow?.socketId||null})]})]})]})})}),{Trigger:De.Trigger,Item:De.Item,ItemLink:De.ItemLink,ItemCustom:De.ItemCustom,Group:De.Group,Separator:De.Separator,DefaultItems:bg}),lo=Rk;h();h();var rn=v(k(),1),np=({title:t,children:e,actionLabel:o,onClick:r})=>(0,rn.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,rn.jsx)("h4",{children:t}),(0,rn.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:e}),(0,rn.jsx)(Tr,{variant:"outlined",color:"muted",label:o,size:"large",fullWidth:!0,onClick:r})]}),Dk=()=>{let{t}=vt(),e=It(),o=Le();return(0,rn.jsx)(np,{title:t("overwriteConfirm.action.exportToImage.title"),actionLabel:t("overwriteConfirm.action.exportToImage.button"),onClick:()=>{e.executeAction(tm,"ui",!0),o({openDialog:{name:"imageExport"}})},children:t("overwriteConfirm.action.exportToImage.description")})},Nk=()=>{let{t}=vt(),e=It();return(0,rn.jsx)(np,{title:t("overwriteConfirm.action.saveToDisk.title"),actionLabel:t("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{e.executeAction(ls,"ui")},children:t("overwriteConfirm.action.saveToDisk.description")})},xg=Object.assign(({children:t})=>(0,rn.jsx)("div",{className:"OverwriteConfirm__Actions",children:t}),{ExportToImage:Dk,SaveToDisk:Nk});var Ho=v(k(),1),ip=Object.assign(tn("OverwriteConfirmDialog",({children:t})=>{let{OverwriteConfirmDialogTunnel:e}=Ve(),[o,r]=Se(gg,Ne);if(!o.active)return null;let n=()=>{o.onClose(),r(a=>({...a,active:!1}))},i=()=>{o.onConfirm(),r(a=>({...a,active:!1}))};return(0,Ho.jsx)(e.In,{children:(0,Ho.jsx)(et,{onCloseRequest:n,title:!1,size:916,children:(0,Ho.jsxs)("div",{className:"OverwriteConfirm",children:[(0,Ho.jsx)("h3",{children:o.title}),(0,Ho.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${o.color}`,children:[(0,Ho.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:vv}),(0,Ho.jsx)("div",{children:o.description}),(0,Ho.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,Ho.jsx)(Tr,{color:o.color,size:"large",label:o.actionLabel,onClick:i})]}),(0,Ho.jsx)(xg,{children:t})]})})})}),{Actions:xg,Action:np});h();var Uo=v(k(),1),l5=v(H(),1),i5=tn("DefaultSidebarTrigger",t=>{let{DefaultSidebarTriggerTunnel:e}=Ve();return(0,Uo.jsx)(e.In,{children:(0,Uo.jsx)(Qr.Trigger,{...t,className:"default-sidebar-trigger",name:jo.name})})});i5.displayName="DefaultSidebarTrigger";var a5=({children:t,...e})=>{let{DefaultSidebarTabTriggersTunnel:o}=Ve();return(0,Uo.jsx)(o.In,{children:(0,Uo.jsx)(Qr.TabTriggers,{...e,children:t})})};a5.displayName="DefaultTabTriggers";var ap=Object.assign(tn("DefaultSidebar",({children:t,className:e,onDock:o,docked:r,...n})=>{let i=_e(),a=Le(),{DefaultSidebarTabTriggersTunnel:l}=Ve();return(0,l5.createElement)(Qr,{...n,name:"default",key:"default",className:$("default-sidebar",e),docked:r??i.defaultSidebarDockedPreference,onDock:o===!1||!o&&r!=null?void 0:cn(o,s=>{a({defaultSidebarDockedPreference:s})})},(0,Uo.jsxs)(Qr.Tabs,{children:[(0,Uo.jsxs)(Qr.Header,{children:[n.__fallback&&(0,Uo.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,Uo.jsx)(l.Out,{})]}),(0,Uo.jsx)(Qr.Tab,{tab:nc,children:(0,Uo.jsx)(Ew,{})}),t]}))}),{Trigger:i5,TabTriggers:a5});h();var ks=v(k(),1),Ok="small",s5=t=>(0,ks.jsxs)("label",{className:$("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${Ok}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,ks.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,ks.jsx)("div",{className:"ToolIcon__icon",children:vd})]});h();var Eg=v(H(),1);h();var c5=v(k(),1),Xa=t=>(0,c5.jsx)("p",{className:"excalidraw__paragraph",style:t.style,children:t.children});h();var vg=v(H(),1);var m5=v(k(),1),d5=t=>{let e=Le(),o=(0,vg.useRef)(null),r=(0,vg.useRef)(0);return(0,m5.jsx)(Qm,{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"&&jp(["text-to-diagram","diagram-to-code"],n)?e({openDialog:{name:t.dialog,tab:n,source:"settings"}}):t.dialog==="ttd"&&jp(["text-to-diagram","mermaid"],n)&&e({openDialog:{name:t.dialog,tab:n}})},children:t.children})};d5.displayName="TTDDialogTabs";var lp=d5;h();var p5=v(k(),1),qa=({tab:t,children:e,...o})=>(0,p5.jsx)(op,{...o,value:t,children:e});qa.displayName="TTDDialogTab";var bt=v(k(),1),u5=t=>{let[e,o]=(0,Eg.useState)(t.openAIKey||""),[r,n]=(0,Eg.useState)(t.isPersisted),i=_e(),a=()=>{t.onConfirm(e.trim(),r)};return i.openDialog?.name!=="settings"?null:(0,bt.jsx)(et,{onCloseRequest:()=>{t.onClose(),t.onConfirm(e.trim(),r)},title:(0,bt.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,bt.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,bt.jsx)(lp,{dialog:"settings",tab:i.openDialog.tab,children:(0,bt.jsxs)(qa,{tab:"diagram-to-code",children:[(0,bt.jsxs)(Xa,{children:["For the diagram-to-code feature we use"," ",(0,bt.jsx)(Dn,{icon:Wl}),"OpenAI."]}),(0,bt.jsxs)(Xa,{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,bt.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,bt.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,bt.jsx)(Xa,{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,bt.jsx)(Pm,{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===S.ENTER&&a()}),(0,bt.jsx)(Xa,{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,bt.jsx)(hi,{checked:r,onChange:n,children:"Persist API key in browser storage"}),(0,bt.jsxs)(Xa,{children:["Once API key is set, you can use the ",(0,bt.jsx)(Dn,{icon:ma})," ","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,bt.jsx)("b",{children:"AI Settings"})," ",(0,bt.jsx)(Dn,{icon:Wl}),"."]}),(0,bt.jsx)(Tr,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:a})]})})})};h();h();var lr=v(H(),1);h();var Fk=({canvasRef:t,setError:e})=>{let o=t.current;if(!o)return;let r=o.parentElement;r&&(r.style.background="",e(null),o.replaceChildren())},sp=async({canvasRef:t,mermaidToExcalidrawLib:e,mermaidDefinition:o,setError:r,data:n})=>{let i=t.current,a=i?.parentElement;if(!(!i||!a)){if(!o){Fk({canvasRef:t,setError:r});return}try{let l=await e.api,s;try{s=await l.parseMermaidToExcalidraw(o,{fontSize:_r})}catch{s=await l.parseMermaidToExcalidraw(o.replace(/"/g,"'"),{fontSize:_r})}let{elements:d,files:c}=s;r(null),n.current={elements:As(d,{regenerateIds:!0}),files:c};let m=await ei({elements:n.current.elements,files:n.current.files,exportPadding:ln,maxWidthOrHeight:Math.max(a.offsetWidth,a.offsetHeight)*window.devicePixelRatio});try{await $r(m)}catch(u){throw u.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(g("canvasError.canvasTooBig")):u}a.style.background="var(--default-bg-color)",i.replaceChildren(m)}catch(l){throw a.style.background="var(--default-bg-color)",o&&r(l),l}}},Is=t=>{fo.set(So.MERMAID_TO_EXCALIDRAW,t)},cp=({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&&Is(o))};h();var f5=v(k(),1),dp=({children:t})=>(0,f5.jsx)("div",{className:"ttd-dialog-panels",children:t});h();var Ir=v(k(),1),Ja=({label:t,children:e,panelAction:o,panelActionDisabled:r=!1,onTextSubmitInProgess:n,renderTopRight:i,renderSubmitShortcut:a,renderBottomRight:l})=>(0,Ir.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,Ir.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,Ir.jsx)("label",{children:t}),i?.()]}),e,(0,Ir.jsxs)("div",{className:$("ttd-dialog-panel-button-container",{invisible:!o}),style:{display:"flex",alignItems:"center"},children:[(0,Ir.jsxs)(Cr,{className:"ttd-dialog-panel-button",onSelect:o?o.action:()=>{},disabled:r||n,children:[(0,Ir.jsxs)("div",{className:$({invisible:n}),children:[o?.label,o?.icon&&(0,Ir.jsx)("span",{children:o.icon})]}),n&&(0,Ir.jsx)(Ot,{})]}),!r&&!n&&a?.(),l?.()]})]});h();var Ms=v(H(),1);var h5=v(k(),1),mp=({input:t,placeholder:e,onChange:o,onKeyboardSubmit:r})=>{let n=(0,Ms.useRef)(null),i=(0,Ms.useRef)(r);return i.current=r,(0,Ms.useEffect)(()=>{if(!i.current)return;let a=n.current;if(a){let l=s=>{s[S.CTRL_OR_CMD]&&s.key===S.ENTER&&(s.preventDefault(),i.current?.())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l)}}},[]),(0,h5.jsx)("textarea",{className:"ttd-dialog-input",onChange:o,value:t,placeholder:e,autoFocus:!0,ref:n})};h();var $n=v(k(),1),Bk=({error:t})=>(0,$n.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,$n.jsx)("p",{children:t})]}),pp=({error:t,canvasRef:e,loaded:o})=>(0,$n.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[t&&(0,$n.jsx)(Bk,{error:t.message}),o?(0,$n.jsx)("div",{ref:e,style:{opacity:t?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,$n.jsx)(Ot,{size:"2rem"})]});h();var _s=v(k(),1),up=()=>(0,_s.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,_s.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("CtrlOrCmd")}),(0,_s.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:F("Enter")})]});var jt=v(k(),1),zk=`flowchart TD
|
|
65
|
+
`);try{Ws(a)}catch{throw new Error(E("errors.copyToSystemClipboardFailed"))}return{storeAction:W.NONE}},predicate:(e,t,r,o)=>hv&&o.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!0}).some(he),keywords:["text","clipboard","copy"]});v();var Og=re({name:"gridMode",icon:rC,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:yi,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 Pc=re({name:"zenMode",label:"buttons.zenMode",icon:QT,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 Qy=re({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:JT,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 Mc=re({name:"stats",label:"stats.fullTitle",icon:VT,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 eE=re({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(e,t,r,o)=>o.scene.getSelectedElements(t).some(a=>yo(a)),perform:(e,t,r,o)=>{let i=o.scene.getSelectedElements(t),a=o.scene.getNonDeletedElementsMap();return i.forEach(s=>{let c=je(s,a);if(c){let{width:d,height:u}=Ai(c.originalText,ro(c),c.lineHeight),f=sI(s.id);lI(s.id);let{x:m,y:g}=gf(s,c,a);ce(c,{containerId:null,width:d,height:u,text:c.originalText,x:m,y:g}),ce(s,{boundElements:s.boundElements?.filter(h=>h.id!==c.id),height:f||s.height})}}),{elements:e,appState:t,storeAction:W.CAPTURE}}}),tE=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(wi(i[0])?s=i[0]:wi(i[1])&&(s=i[1]),a&&s&&je(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])&&wi(i[1])?(a=i[0],s=i[1]):(a=i[1],s=i[0]),ce(a,{containerId:s.id,verticalAlign:Zo.MIDDLE,textAlign:Cd.CENTER,autoResize:!0}),ce(s,{boundElements:(s.boundElements||[]).concat({type:"text",id:a.id})});let c=s.height;return qt(a,s,o.scene.getNonDeletedElementsMap()),Xd(s.id,c),{elements:TF(e,s,a),appState:{...t,selectedElementIds:{[s.id]:!0}},storeAction:W.CAPTURE}}}),TF=(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),Do(o,Re([t,r])),o},CF=(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),Do(o,Re([t,r])),o},Uk=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=ba({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:Is("rectangle")?bo.ADAPTIVE_RADIUS:bo.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:c.x-Px,y:c.y-Px,width:Zs(c.width,"rectangle"),height:Zs(c.height,"rectangle"),groupIds:c.groupIds,frameId:c.frameId});if(c.boundElements?.length){let u=c.boundElements.filter(m=>m.type==="arrow").map(m=>m.id);a.filter(m=>u.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)&&ce(m,{startBinding:g,endBinding:h},!1)})}ce(c,{containerId:d.id,verticalAlign:Zo.MIDDLE,boundElements:null,textAlign:Cd.CENTER,autoResize:!0},!1),qt(c,d,o.scene.getNonDeletedElementsMap()),a=CF([...a,d],d,c),s[d.id]=!0}return{elements:a,appState:{...t,selectedElementIds:s},storeAction:W.CAPTURE}}});v();v();var Nn=w(j(),1);var $i=w(M(),1),nE=320,Gk=85,rE=5,IF=42,_F=500,oE=!1,Fg=new Map,Wk=({element:e,elementsMap:t,setAppState:r,onLinkOpen:o,setToast:i,updateEmbedValidationStatus:a})=>{let s=Qn(),c=ei(),d=e.link||"",[u,f]=(0,Nn.useState)(d),m=(0,Nn.useRef)(null),g=s.showHyperlinkPopup==="editor",h=(0,Nn.useCallback)(()=>{if(!m.current)return;let I=Ti(m.current.value)||null;if(!e.link&&I&&ze("hyperlink","create"),$r(e)){if(s.activeEmbeddable?.element===e&&r({activeEmbeddable:null}),!I){ce(e,{link:null}),a(e,!1);return}if(!Us(I,c.validateEmbeddable))I&&i({message:E("toast.unableToEmbed"),closable:!0}),e.link&&Fg.set(e.id,e.link),ce(e,{link:I}),a(e,!1);else{let{width:C,height:O}=e,z=Sl(I);z?.error instanceof URIError&&i({message:E("toast.unrecognizedLinkFormat"),closable:!0});let L=z?z.intrinsicSize.w/z.intrinsicSize.h:1,F=Fg.get(e.id)!==e.link;ce(e,{...F?{width:z?.type==="video"?C>O?C:O*L:C,height:z?.type==="video"&&C>O?C/L:O}:{},link:I}),a(e,!0),Fg.has(e.id)&&Fg.delete(e.id)}}else ce(e,{link:I})},[e,i,c.validateEmbeddable,s.activeEmbeddable,r,a]);(0,Nn.useLayoutEffect)(()=>()=>{h()},[h]),(0,Nn.useEffect)(()=>{let I=null,C=O=>{if(g)return;I&&clearTimeout(I),kF(e,t,s,[O.clientX,O.clientY])&&(I=window.setTimeout(()=>{r({showHyperlinkPopup:!1})},_F))};return window.addEventListener("pointermove",C,!1),()=>{window.removeEventListener("pointermove",C,!1),I&&clearTimeout(I)}},[s,e,g,r,t]);let b=(0,Nn.useCallback)(()=>{ze("hyperlink","delete"),ce(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}=Kk(e,s,t);return s.contextMenu||s.draggingElement||s.resizingElement||s.isRotating||s.openMenu||s.viewModeEnabled?null:(0,$i.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${k}px`,left:`${T}px`,width:nE,padding:rE},onClick:()=>{!e.link&&!g&&r({showHyperlinkPopup:"editor"})},children:[g?(0,$i.jsx)("input",{className:q("excalidraw-hyperlinkContainer-input"),placeholder:"Type or paste your link here",ref:m,value:u,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,$i.jsx)("a",{href:Ti(e.link||""),className:"excalidraw-hyperlinkContainer-link",target:vp(e.link)?"_self":"_blank",onClick:I=>{if(e.link&&o){let C=fp("excalidraw-link",I.nativeEvent);o({...e,link:Ti(e.link)},C),C.defaultPrevented&&I.preventDefault()}},rel:"noopener noreferrer",children:e.link}):(0,$i.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:E("labels.link.empty")}),(0,$i.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!g&&(0,$i.jsx)(Ie,{type:"button",title:E("buttons.edit"),"aria-label":E("buttons.edit"),label:E("buttons.edit"),onClick:y,className:"excalidraw-hyperlinkContainer--edit",icon:Ep}),d&&!$r(e)&&(0,$i.jsx)(Ie,{type:"button",title:E("buttons.remove"),"aria-label":E("buttons.remove"),label:E("buttons.remove"),onClick:b,className:"excalidraw-hyperlinkContainer--remove",icon:kn})]})]})},Kk=(e,t,r)=>{let[o,i]=Eo(e,r),{x:a,y:s}=oo({sceneX:o+e.width/2,sceneY:i},t),c=a-t.offsetLeft-nE/2,d=s-t.offsetTop-Gk;return{x:c,y:d}},iE=(e,t)=>{let r=Oe(e,t);return r[0]?.link?$r(r[0])?"labels.link.editEmbed":"labels.link.edit":$r(r[0])?"labels.link.createEmbed":"labels.link.create"},wm=null,Yk=(e,t,r)=>{wm&&clearTimeout(wm),wm=window.setTimeout(()=>AF(e,t,r),$S)},AF=(e,t,r)=>{if(!e.link)return;let o=Cc();o.classList.add("excalidraw-tooltip--visible"),o.style.maxWidth="20rem",o.textContent=e.link;let[i,a,s,c]=Eo(e,r),[d,u,f,m]=BC([i,a,s,c],e.angle,t),g=oo({sceneX:d,sceneY:u},t);By(o,{left:g.x,top:g.y,width:f,height:m},"top"),ze("hyperlink","tooltip","link-icon"),oE=!0},Vk=()=>{wm&&clearTimeout(wm),oE&&(oE=!1,Cc().classList.remove("excalidraw-tooltip--visible"))},kF=(e,t,r,[o,i])=>{let{x:a,y:s}=Mt({clientX:o,clientY:i},r),c=15/r.zoom.value;if(TC(a,s,e,t))return!1;let[d,u,f]=Eo(e,t);if(a>=d&&a<=f&&s>=u-Gk&&s<=u)return!1;let{x:m,y:g}=Kk(e,r,t);return!(o>=m-c&&o<=m+nE+rE*2+c&&i>=g-c&&i<=g+c+rE*2+IF)};var Xk=w(M(),1),Sm=re({name:"hyperlink",label:(e,t)=>iE(e,t),icon:Od,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,Xk.jsx)(Ie,{type:"button",icon:Od,"aria-label":E(iE(e,t)),title:`${$r(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 aE=e=>e.every(t=>!t.locked),lE=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":aE(o)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll"},icon:(e,t)=>{let r=Oe(t,e);return aE(r)?Ps:hl},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=aE(i),s=Re(i);return{elements:e.map(c=>s.has(c.id)?ke(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}),Zk=re({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:hl,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?ke(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 un=w(j(),1);v();var Qg=w(j(),1);v();var Bg=w(j(),1),qk=()=>{let[e,t]=(0,Bg.useState)(null),r=(0,Bg.useCallback)(o=>t(o),[]);return[e,r]};v();var jk=w(Zn(),1);var Jk=w(j(),1),Tm=w(M(),1),Qk=e=>{let{closeOnClickOutside:t=!0}=e,r=mg({className:"excalidraw-modal-container"}),o=(0,Jk.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,jk.createPortal)((0,Tm.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,Tm.jsx)("div",{className:"Modal__background",onClick:t?e.onCloseRequest:void 0}),(0,Tm.jsx)("div",{className:"Modal__content",style:{"--max-width":`${e.maxWidth}px`},tabIndex:0,children:e.children})]}),r)};v();var zo=w(j(),1);v();var Rc=w(j(),1);v();var zg=w(j(),1);var sE=St(new Map),e5=async e=>await Gd({elements:e,appState:{exportBackground:!1,viewBackgroundColor:xi.white},files:null,renderEmbeddables:!1}),t5=(e,t,r)=>{let[o,i]=(0,zg.useState)();return(0,zg.useEffect)(()=>{if(t)if(e){let a=r.get(e);a?i(a):(async()=>{let s=await e5(t);s.querySelector(".style-fonts")?.remove(),s&&(r.set(e,s),i(s))})()}else(async()=>{let a=await e5(t);i(a)})()},[e,t,r,i]),o},$g=()=>{let[e]=Ve(sE,mt);return{clearLibraryCache:()=>e.clear(),deleteItemsFromLibraryCache:o=>{o.forEach(i=>e.delete(i))},svgCache:e}};v();var Hg=class{jobs=[];running=!1;tick(){if(this.running)return;let t=this.jobs.shift();t?(this.running=!0,t.promise.resolve(Pd(t.jobFactory,...t.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(t,...r){let o=pp();return this.jobs.push({jobFactory:t,promise:o,args:r}),this.tick(),o}};var o5=new en,Wl=St({status:"loaded",isInitialized:!1,libraryItems:[]}),Cm=e=>vo(e),PF=(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)),n5=(e,t)=>{let r=[];for(let o of t)PF(e,o)&&r.push(o);return[...r,...e]},i5=(e,t)=>{let r=Re(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=Re(e);for(let a of t)i.has(a.id)||o.addedItems.set(a.id,a);return o},cE=class{currLibraryItems=[];prevLibraryItems=Cm(this.currLibraryItems);app;constructor(t){this.app=t}updateQueue=[];getLastUpdateTask=()=>this.updateQueue[this.updateQueue.length-1];notifyListeners=()=>{if(this.updateQueue.length>0)Hr.set(Wl,t=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:t.isInitialized}));else{Hr.set(Wl,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let t=this.prevLibraryItems;this.prevLibraryItems=Cm(this.currLibraryItems);let r=Cm(this.currLibraryItems);this.app.props.onLibraryChange?.(r),o5.trigger(i5(t,r),r)}catch(t){console.error(t)}}};destroy=()=>{this.updateQueue=[],this.currLibraryItems=[],Hr.set(sE,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(Cm(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:In.name,tab:cp}}),this.setLibrary(()=>new Promise(async(s,c)=>{try{let d=await(typeof t=="function"&&!(t instanceof Blob)?t(this.currLibraryItems):t),u;d instanceof Blob?u=await dv(d,a):u=Bd(d,a),!r||window.confirm(E("alerts.confirmAddLibrary",{numShapes:u.length}))?(r&&this.app.focusContainer(),s(o?n5(this.currLibraryItems,u):u)):c(new _s)}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=Cm(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}},a5=cE,Wg=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}=tn(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}=tn(k.elements);T=Math.max(T,I)}b++,y++}return T},s=0,c=0,d=0,u=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)),u=a(m);let{minX:b,minY:y,width:T,height:k}=tn(h.elements),I=(u-T)/2,C=(d-k)/2;o.push(...h.elements.map(O=>({...O,x:O.x+s+I-b,y:O.y+c+C-y}))),s+=u+50,f++,m++}return o},dE=()=>{let e=new URLSearchParams(window.location.hash.slice(1)).get(ip.addLibrary)||new URLSearchParams(window.location.search).get(np.addLibrary),t=e?new URLSearchParams(window.location.hash.slice(1)).get("token"):null;return e?{libraryUrl:e,idToken:t}:null},Lc=class e{static queue=new Hg;static async getLibraryItems(t,r,o=!0){let i=()=>new Promise(async(a,s)=>{try{let c=await t.load({source:r});a(Bd(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)}},Im=0,Ug=0,Gg=e=>Lv(e.map(t=>`${t.id}:${Mv(t.elements)}`).sort().join()),r5=async(e,t)=>{try{return Ug++,await Lc.run(e,async r=>{let o=Re(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=Gg(a);return s!==Im&&await e.save({libraryItems:a}),Im=s,a})}finally{Ug--}},MF=e=>{let{excalidrawAPI:t}=e,r=(0,Rc.useRef)(e);r.current=e;let o=(0,Rc.useRef)(!1);(0,Rc.useEffect)(()=>{if(!t)return;o.current=!1;let i=async({libraryUrl:c,idToken:d})=>{let u=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:u,prompt:f,merge:!0,defaultStatus:"published",openLibraryMenu:!0})}catch(m){throw m}finally{if(window.location.hash.includes(ip.addLibrary)){let m=new URLSearchParams(window.location.hash.slice(1));m.delete(ip.addLibrary),window.history.replaceState({},wd,`#${m.toString()}`)}else if(window.location.search.includes(np.addLibrary)){let m=new URLSearchParams(window.location.search);m.delete(np.addLibrary),window.history.replaceState({},wd,`?${m.toString()}`)}}},a=c=>{c.preventDefault();let d=dE();d&&(c.stopImmediatePropagation(),window.history.replaceState({},"",c.oldURL),i(d))},s=dE();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,u=pp();d?u.resolve(Pd(d.load).then(async f=>{let m=null;try{if(!f)return Lc.getLibraryItems(c,"load");m=Bd(f.libraryItems||[],"published");let g=await r5(c,i5([],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}`),Lc.getLibraryItems(c,"load")))):u.resolve(Pd(Lc.getLibraryItems,c,"load")),t.updateLibrary({libraryItems:u.then(f=>{let m=f||[];return Im=Gg(m),m}),merge:!0}).finally(()=>{o.current=!0})}return window.addEventListener("hashchange",a),()=>{window.removeEventListener("hashchange",a)}},[t]),(0,Rc.useEffect)(()=>{let i=o5.on(async(s,c)=>{let d=o.current,u="adapter"in r.current&&r.current.adapter||null;try{u&&Im!==Gg(c)&&await r5(u,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=>{Ug&&i2(s)};return window.addEventListener("beforeunload",a),()=>{window.removeEventListener("beforeunload",a),i(),Im=0,Ug=0}},[])};v();var Yr=w(j(),1);v();var mE=w(j(),1);var uE=w(M(),1),LF=(0,mE.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,uE.jsx)("div",{className:q("Stack Stack_horizontal",i),style:{"--gap":t,alignItems:r,justifyContent:o,...a},ref:s,children:e})),RF=(0,mE.forwardRef)(({children:e,gap:t,align:r,justifyContent:o,className:i,style:a},s)=>(0,uE.jsx)("div",{className:q("Stack Stack_vertical",i),style:{"--gap":t,justifyItems:r,justifyContent:o,...a},ref:s,children:e})),Ar={Row:LF,Col:RF};v();v();var s5=w(M(),1),DF=({theme:e,id:t,libraryReturnUrl:r})=>{let o=r||window.location.origin+window.location.pathname;return(0,s5.jsx)("a",{className:"library-menu-browse-button",href:`${A.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${o}&useHash=true&token=${t}&theme=${e}&version=${lp.excalidrawLibrary}`,target:"_excalidraw_libraries",children:E("labels.libraries")})},l5=DF;var Yg=w(M(),1),Kg=({libraryReturnUrl:e,theme:t,id:r,style:o,children:i,className:a})=>(0,Yg.jsxs)("div",{className:q("library-menu-control-buttons",a),style:o,children:[(0,Yg.jsx)(l5,{id:r,libraryReturnUrl:e,theme:t}),i]});v();var Bc=w(j(),1);v();var _m=w(j(),1);var NF=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,OF=/{{([\w-]+)}}/,FF=/<([\w-]+)>/,BF=/<\/([\w-]+)>/,zF=(e,t)=>{let r=[{name:"",children:[]}];return e.split(NF).filter(Boolean).forEach(o=>{let i=o.match(FF),a=o.match(BF),s=o.match(OF);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(),u=_m.default.createElement(_m.default.Fragment,{},...d.children),f=t[d.name];typeof f=="function"&&r[r.length-1].children.push(f(u))}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},$F=({i18nKey:e,children:t,...r})=>{let{t:o}=lr();return _m.default.createElement(_m.default.Fragment,{},...zF(o(e),r))},co=$F;v();v();var Kl=w(M(),1),HF=({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,Kl.jsxs)("button",{className:q("Dialog__action-button",d,r),type:a,"aria-label":e,onClick:t,...c,children:[o&&(0,Kl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:o}),(0,Kl.jsx)("div",{style:s?{visibility:"hidden"}:{},children:e}),s&&(0,Kl.jsx)("div",{style:{position:"absolute",inset:0},children:(0,Kl.jsx)(Dr,{})})]})},Dc=HF;var Nc=w(M(),1),UF=e=>{let{onConfirm:t,onCancel:r,children:o,confirmText:i=E("buttons.confirm"),cancelText:a=E("buttons.cancel"),className:s="",...c}=e,d=ot(),u=Li(Oc,mt),{container:f}=sr();return(0,Nc.jsxs)(zt,{onCloseRequest:r,size:"small",...c,className:`confirm-dialog ${s}`,children:[o,(0,Nc.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,Nc.jsx)(Dc,{label:a,onClick:()=>{d({openMenu:null}),u(!1),r(),f?.focus()}}),(0,Nc.jsx)(Dc,{label:i,onClick:()=>{d({openMenu:null}),u(!1),t(),f?.focus()},actionType:"danger"})]})]})},Vg=UF;v();var Bo=w(j(),1);v();var Io=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 Ce=w(M(),1),GF=async e=>{let o=Math.round(8),i=Math.max(Math.round(128/64),2),a=r2(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=zr.white,c.fillRect(0,0,s.width,s.height);for(let[d,u]of e.entries()){let f=await Tl({elements:u.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=zr.gray[4],c.strokeRect(b+o/2,h+o/2,128+o,128+o)}return await zd(new File([await Ci(s)],"preview",{type:Lr.png}),{outputType:Lr.jpg,maxWidthOrHeight:5e3})},WF=({libItem:e,appState:t,index:r,onChange:o,onRemove:i})=>{let a=(0,Bo.useRef)(null),s=(0,Bo.useRef)(null);return(0,Bo.useEffect)(()=>{let c=a.current;c&&(async()=>{let d=await Gd({elements:e.elements,appState:{...t,viewBackgroundColor:zr.white,exportBackground:!0},files:null});c.innerHTML=d.outerHTML})()},[e.elements,t]),(0,Ce.jsxs)("div",{className:"single-library-item",children:[e.status==="published"&&(0,Ce.jsx)("span",{className:"single-library-item-status",children:E("labels.statusPublished")}),(0,Ce.jsx)("div",{ref:a,className:"single-library-item__svg"}),(0,Ce.jsx)(Ie,{"aria-label":E("buttons.remove"),type:"button",icon:Qo,className:"single-library-item--remove",onClick:i.bind(null,e.id),title:E("buttons.remove")}),(0,Ce.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,Ce.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,Ce.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,Ce.jsx)("span",{style:{fontWeight:500,color:zr.gray[6]},children:E("publishDialog.itemName")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.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,Ce.jsx)("span",{className:"error",children:e.error})]})]})},KF=({onClose:e,libraryItems:t,appState:r,onSuccess:o,onError:i,updateItemsInStorage:a,onRemove:s})=>{let[c,d]=(0,Bo.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[u,f]=(0,Bo.useState)(!1);(0,Bo.useEffect)(()=>{let C=Io.get(qo.PUBLISH_LIBRARY);C&&d(C)},[]);let[m,g]=(0,Bo.useState)(t.slice());(0,Bo.useEffect)(()=>{g(t.slice())},[t]);let h=C=>{d({...c,[C.target.name]:C.target.value})},b=async C=>{C.preventDefault(),f(!0);let O=[],z=!1;if(m.forEach(Q=>{let me="";Q.name||(me=E("publishDialog.errors.required"),z=!0),O.push({...Q,error:me})}),z){g(O),f(!1);return}let L=await GF(m),F={type:DS.excalidrawLibrary,version:lp.excalidrawLibrary,source:NS,libraryItems:m},D=JSON.stringify(F,null,2),V=new Blob([D],{type:"application/json"}),U=new FormData;U.append("excalidrawLib",V),U.append("previewImage",L),U.append("previewImageType",L.type),U.append("title",c.name),U.append("authorName",c.authorName),U.append("githubHandle",c.githubHandle),U.append("name",c.name),U.append("description",c.description),U.append("twitterHandle",c.twitterHandle),U.append("website",c.website),fetch(`${A.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:U}).then(Q=>Q.ok?Q.json().then(({url:me})=>{Io.delete(qo.PUBLISH_LIBRARY),o({url:me,authorName:c.authorName,items:m})}):Q.json().catch(()=>{throw new Error(Q.statusText||"something went wrong")}).then(me=>{throw new Error(me.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 C=[];return m.forEach((O,z)=>{C.push((0,Ce.jsx)("div",{className:"single-library-item-wrapper",children:(0,Ce.jsx)(WF,{libItem:O,appState:r,index:z,onChange:(L,F)=>{let D=m.slice();D[F].name=L,g(D)},onRemove:s})},z))}),(0,Ce.jsx)("div",{className:"selected-library-items",children:C})},T=(0,Bo.useCallback)(()=>{a(m),Io.set(qo.PUBLISH_LIBRARY,c),e()},[m,e,a,c]),k=!!t.length,I=t.some(C=>C.status==="published");return(0,Ce.jsx)(zt,{onCloseRequest:T,title:E("publishDialog.title"),className:"publish-library",children:k?(0,Ce.jsxs)("form",{onSubmit:b,children:[(0,Ce.jsx)("div",{className:"publish-library-note",children:(0,Ce.jsx)(co,{i18nKey:"publishDialog.noteDescription",link:C=>(0,Ce.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,Ce.jsx)("span",{className:"publish-library-note",children:(0,Ce.jsx)(co,{i18nKey:"publishDialog.noteGuidelines",link:C=>(0,Ce.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:C})})}),(0,Ce.jsx)("div",{className:"publish-library-note",children:E("publishDialog.noteItems")}),I&&(0,Ce.jsx)("span",{className:"publish-library-note publish-library-warning",children:E("publishDialog.republishWarning")}),y(),(0,Ce.jsxs)("div",{className:"publish-library__fields",children:[(0,Ce.jsxs)("label",{children:[(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.libraryName")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.jsx)("input",{type:"text",name:"name",required:!0,value:c.name,onChange:h,placeholder:E("publishDialog.placeholder.libraryName")})]}),(0,Ce.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.libraryDesc")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.jsx)("textarea",{name:"description",rows:4,required:!0,value:c.description,onChange:h,placeholder:E("publishDialog.placeholder.libraryDesc")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsxs)("div",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.authorName")}),(0,Ce.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,Ce.jsx)("input",{type:"text",name:"authorName",required:!0,value:c.authorName,onChange:h,placeholder:E("publishDialog.placeholder.authorName")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.githubUsername")}),(0,Ce.jsx)("input",{type:"text",name:"githubHandle",value:c.githubHandle,onChange:h,placeholder:E("publishDialog.placeholder.githubHandle")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.twitterUsername")}),(0,Ce.jsx)("input",{type:"text",name:"twitterHandle",value:c.twitterHandle,onChange:h,placeholder:E("publishDialog.placeholder.twitterHandle")})]}),(0,Ce.jsxs)("label",{children:[(0,Ce.jsx)("span",{children:E("publishDialog.website")}),(0,Ce.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:E("publishDialog.errors.website"),value:c.website,onChange:h,placeholder:E("publishDialog.placeholder.website")})]}),(0,Ce.jsx)("span",{className:"publish-library-note",children:(0,Ce.jsx)(co,{i18nKey:"publishDialog.noteLicense",link:C=>(0,Ce.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:C})})})]}),(0,Ce.jsxs)("div",{className:"publish-library__buttons",children:[(0,Ce.jsx)(Dc,{label:E("buttons.cancel"),onClick:T,"data-testid":"cancel-clear-canvas-button"}),(0,Ce.jsx)(Dc,{type:"submit",label:E("buttons.submit"),actionType:"primary",isLoading:u})]})]}):(0,Ce.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:E("publishDialog.atleastOneLibItem")})})},c5=KF;v();v();var u5=w(M(),1),d5=({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,u5.jsx)("button",{"data-prevent-outside-click":!0,className:s,onClick:r,type:"button","data-testid":"dropdown-menu-button",title:o,...i,children:t})},m5=d5;d5.displayName="DropdownMenuTrigger";v();var g5=w(M(),1),p5=()=>(0,g5.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}}),f5=p5;p5.displayName="DropdownMenuSeparator";v();var Xg=w(j(),1);var Am=w(M(),1),h5=({children:e,onClickOutside:t,className:r="",onSelect:o,style:i})=>{let a=rt(),s=(0,Xg.useRef)(null),c=Ec({onClickOutside:t});yc(s,()=>{c.onClickOutside?.()}),(0,Xg.useEffect)(()=>{let u=m=>{m.key===R.ESCAPE&&(m.stopImmediatePropagation(),c.onClickOutside?.())},f={capture:!0};return document.addEventListener("keydown",u,f),()=>{document.removeEventListener("keydown",u,f)}},[c]);let d=q(`dropdown-menu ${r}`,{"dropdown-menu--mobile":a.editor.isMobile}).trim();return(0,Am.jsx)(Ry.Provider,{value:{onSelect:o},children:(0,Am.jsx)("div",{ref:s,className:d,style:i,"data-testid":"dropdown-menu",children:a.editor.isMobile?(0,Am.jsx)(Ar.Col,{className:"dropdown-menu-container",children:e}):(0,Am.jsx)(xr,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:e})})})};h5.displayName="DropdownMenuContent";var b5=h5;v();var pE=w(M(),1),x5=({icon:e,shortcut:t,href:r,children:o,onSelect:i,className:a="",selected:s,...c})=>{let d=Eg(c.onClick,i);return(0,pE.jsx)("a",{...c,href:r,target:"_blank",rel:"noreferrer",className:yg(a,s),title:c.title??c["aria-label"],onClick:d,children:(0,pE.jsx)(wg,{icon:e,shortcut:t,children:o})})},Fc=x5;x5.displayName="DropdownMenuItemLink";v();var y5=w(M(),1),YF=({children:e,className:t="",selected:r,...o})=>(0,y5.jsx)("div",{...o,className:`dropdown-menu-item-base dropdown-menu-item-custom ${t} ${r?"dropdown-menu-item--selected":""}`.trim(),children:e}),v5=YF;v();var km=w(j(),1),E5=e=>{let t=km.default.Children.toArray(e).find(r=>km.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuTrigger");return t||null},w5=e=>{let t=km.default.Children.toArray(e).find(r=>km.default.isValidElement(r)&&typeof r.type!="string"&&r?.type.displayName&&r.type.displayName==="DropdownMenuContent");return t||null};var Zg=w(M(),1),Hi=({children:e,open:t})=>{let r=E5(e),o=w5(e);return(0,Zg.jsxs)(Zg.Fragment,{children:[r,t&&o]})};Hi.Trigger=m5;Hi.Content=b5;Hi.Item=To;Hi.ItemLink=Fc;Hi.ItemCustom=v5;Hi.Group=bm;Hi.Separator=f5;var st=Hi;Hi.displayName="DropdownMenu";var dr=w(M(),1),VF=(e,t)=>e.filter(r=>t.includes(r.id)),XF=({setAppState:e,selectedItems:t,library:r,onRemoveFromLibrary:o,resetLibrary:i,onSelectItems:a,appState:s,className:c})=>{let[d]=Ve(Wl,mt),[u,f]=Ve(Oc,mt),m=()=>{let U=t.length?E("alerts.removeItemsFromsLibrary",{count:t.length}):E("alerts.resetLibrary"),Q=t.length?E("confirmDialog.removeItemsFromLib"):E("confirmDialog.resetLibrary");return(0,dr.jsx)(Vg,{onConfirm:()=>{t.length?o():i(),h(!1)},onCancel:()=>{h(!1)},title:Q,children:(0,dr.jsx)("p",{children:U})})},[g,h]=(0,Bc.useState)(!1),b=!!t.length,y=b?d.libraryItems.filter(U=>t.includes(U.id)):d.libraryItems,T=b?E("buttons.remove"):E("buttons.resetLibrary"),[k,I]=(0,Bc.useState)(!1),[C,O]=(0,Bc.useState)(null),z=(0,Bc.useCallback)(()=>(0,dr.jsxs)(zt,{onCloseRequest:()=>O(null),title:E("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,dr.jsx)("p",{children:(0,dr.jsx)(co,{i18nKey:"publishSuccessDialog.content",authorName:C.authorName,link:U=>(0,dr.jsx)("a",{href:C?.url,target:"_blank",rel:"noopener noreferrer",children:U})})}),(0,dr.jsx)(Ie,{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,C]),L=(U,Q)=>{I(!1),O({url:U.url,authorName:U.authorName});let me=Q.slice();me.forEach(K=>{t.includes(K.id)&&(K.status="published")}),r.setLibrary(me)},F=async()=>{try{await r.updateLibrary({libraryItems:Op({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(U){if(U?.name==="AbortError"){console.warn(U);return}e({errorMessage:E("errors.importLibraryError")})}},D=async()=>{let U=b?y:await r.getLatestLibrary();cC(U).catch(up).catch(Q=>{e({errorMessage:Q.message})})},V=()=>(0,dr.jsxs)(st,{open:u,children:[(0,dr.jsx)(st.Trigger,{onToggle:()=>f(!u),children:L2}),(0,dr.jsxs)(st.Content,{onClickOutside:()=>f(!1),onSelect:()=>f(!1),className:"library-menu",children:[!b&&(0,dr.jsx)(st.Item,{onSelect:F,icon:Ls,"data-testid":"lib-dropdown--load",children:E("buttons.load")}),!!y.length&&(0,dr.jsx)(st.Item,{onSelect:D,icon:bl,"data-testid":"lib-dropdown--export",children:E("buttons.export")}),!!y.length&&(0,dr.jsx)(st.Item,{onSelect:()=>h(!0),icon:kn,children:T}),b&&(0,dr.jsx)(st.Item,{icon:RT,onSelect:()=>I(!0),"data-testid":"lib-dropdown--remove",children:E("buttons.publishLibrary")})]})]});return(0,dr.jsxs)("div",{className:q("library-menu-dropdown-container",c),children:[V(),t.length>0&&(0,dr.jsx)("div",{className:"library-actions-counter",children:t.length}),g&&m(),k&&(0,dr.jsx)(c5,{onClose:()=>I(!1),libraryItems:VF(d.libraryItems,t),appState:s,onSuccess:U=>L(U,d.libraryItems),onError:U=>window.alert(U),updateItemsInStorage:()=>r.setLibrary(d.libraryItems),onRemove:U=>a(t.filter(Q=>Q!==U))}),C&&z()]})},fE=({selectedItems:e,onSelectItems:t,className:r})=>{let{library:o}=_r(),{clearLibraryCache:i,deleteItemsFromLibraryCache:a}=$g(),s=it(),c=ot(),[d]=Ve(Wl,mt),u=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,dr.jsx)(XF,{appState:s,setAppState:c,selectedItems:e,onSelectItems:t,library:o,onRemoveFromLibrary:()=>u(d.libraryItems),resetLibrary:()=>{o.resetLibrary(),i()},className:r})};v();var zc=w(j(),1);v();var Fa=w(j(),1);var Yl=w(M(),1),S5=(0,Fa.memo)(({id:e,elements:t,isPending:r,onClick:o,selected:i,onToggle:a,onDrag:s,svgCache:c})=>{let d=(0,Fa.useRef)(null),u=t5(e,t,c);(0,Fa.useEffect)(()=>{let b=d.current;if(b)return u&&(b.innerHTML=u.outerHTML),()=>{b.innerHTML=""}},[u]);let[f,m]=(0,Fa.useState)(!1),g=rt().editor.isMobile,h=r&&(0,Yl.jsx)("div",{className:"library-unit__adder",children:M2});return(0,Yl.jsxs)("div",{className:q("library-unit",{"library-unit__active":t,"library-unit--hover":t&&f,"library-unit--selected":i,"library-unit--skeleton":!u}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,Yl.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,Yl.jsx)(zl,{checked:i,onChange:(b,y)=>a(e,y),className:"library-unit__checkbox"})]})}),T5=()=>(0,Yl.jsx)("div",{className:"library-unit library-unit--skeleton"});v();var qg=w(j(),1);function ZF(){return[!1,(0,qg.useCallback)(t=>t(),[])]}var C5=qg.default.useTransition||ZF;var Vl=w(M(),1),gE=({children:e})=>(0,Vl.jsx)("div",{className:"library-menu-items-container__grid",children:e}),jg=(0,zc.memo)(({items:e,onItemSelectToggle:t,onItemDrag:r,isItemSelected:o,onClick:i,svgCache:a,itemsRenderedPerBatch:s})=>{let[,c]=C5(),[d,u]=(0,zc.useState)(0);return(0,zc.useEffect)(()=>{d<e.length&&c(()=>{u(d+s)})},[d,e.length,c,s]),(0,Vl.jsx)(Vl.Fragment,{children:e.map((f,m)=>m<d?(0,Vl.jsx)(S5,{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,Vl.jsx)(T5,{},m))})});v();var P5=w(j(),1);var M5=w(bE(),1),pB=St(0),L5=e=>{let[t,r]=Ve(pB);return(0,P5.useEffect)(()=>{let{current:o}=e;if(!o)return;let i=(0,M5.default)(()=>{let{scrollTop:a}=o;r(a)},200);return o.addEventListener("scroll",i),()=>{i.cancel(),o.removeEventListener("scroll",i)}},[e,r]),t};var Dt=w(M(),1),fB=17,gB=64;function xE({isLoading:e,libraryItems:t,onAddToLibrary:r,onInsertLibraryItems:o,pendingElements:i,theme:a,id:s,libraryReturnUrl:c,onSelectItems:d,selectedItems:u}){let f=(0,Yr.useRef)(null),m=L5(f);(0,Yr.useEffect)(()=>{m>0&&f.current?.scrollTo(0,m)},[]);let{svgCache:g}=$g(),h=(0,Yr.useMemo)(()=>t.filter(U=>U.status!=="published"),[t]),b=(0,Yr.useMemo)(()=>t.filter(U=>U.status==="published"),[t]),y=!t.length&&!i.length,T=!i.length&&!h.length&&!b.length,[k,I]=(0,Yr.useState)(null),C=(0,Yr.useCallback)((U,Q)=>{let me=!u.includes(U),K=[...h,...b];if(me){if(Q.shiftKey&&k){let se=K.findIndex(Ee=>Ee.id===k),be=K.findIndex(Ee=>Ee.id===U);if(se===-1||be===-1){d([...u,U]);return}let _e=Re(u),nt=K.reduce((Ee,ue,G)=>((G>=se&&G<=be||_e.has(ue.id))&&Ee.push(ue.id),Ee),[]);d(nt)}else d([...u,U]);I(U)}else I(null),d(u.filter(se=>se!==U))},[k,d,b,u,h]),O=(0,Yr.useCallback)(U=>{let Q;return u.includes(U)?Q=t.filter(me=>u.includes(me.id)):Q=t.filter(me=>me.id===U),Q.map(me=>({...me,elements:Vp(me.elements,{randomizeSeed:!0})}))},[t,u]),z=(0,Yr.useCallback)((U,Q)=>{Q.dataTransfer.setData(Lr.excalidrawlib,av(O(U)))},[O]),L=(0,Yr.useCallback)(U=>U?u.includes(U):!1,[u]),F=(0,Yr.useCallback)(()=>{r(i)},[i,r]),D=(0,Yr.useCallback)(U=>{U&&o(O(U))},[O,o]),V=g.size>=t.length?gB:fB;return(0,Dt.jsxs)("div",{className:"library-menu-items-container",style:i.length||h.length||b.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!T&&(0,Dt.jsx)(fE,{selectedItems:u,onSelectItems:d,className:"library-menu-dropdown-container--in-heading"}),(0,Dt.jsxs)(Ar.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,Dt.jsxs)(Dt.Fragment,{children:[!T&&(0,Dt.jsx)("div",{className:"library-menu-items-container__header",children:E("labels.personalLib")}),e&&(0,Dt.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,Dt.jsx)(Dr,{})}),!i.length&&!h.length?(0,Dt.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,Dt.jsx)("div",{className:"library-menu-items__no-items__label",children:E("library.noItems")}),(0,Dt.jsx)("div",{className:"library-menu-items__no-items__hint",children:b.length>0?E("library.hint_emptyPrivateLibrary"):E("library.hint_emptyLibrary")})]}):(0,Dt.jsxs)(gE,{children:[i.length>0&&(0,Dt.jsx)(jg,{itemsRenderedPerBatch:V,items:[{id:null,elements:i}],onItemSelectToggle:C,onItemDrag:z,onClick:F,isItemSelected:L,svgCache:g}),(0,Dt.jsx)(jg,{itemsRenderedPerBatch:V,items:h,onItemSelectToggle:C,onItemDrag:z,onClick:D,isItemSelected:L,svgCache:g})]})]}),(0,Dt.jsxs)(Dt.Fragment,{children:[(b.length>0||i.length>0||h.length>0)&&(0,Dt.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:E("labels.excalidrawLib")}),b.length>0?(0,Dt.jsx)(gE,{children:(0,Dt.jsx)(jg,{itemsRenderedPerBatch:V,items:b,onItemSelectToggle:C,onItemDrag:z,onClick:D,isItemSelected:L,svgCache:g})}):h.length>0?(0,Dt.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,Dt.jsx)(Kg,{style:{padding:"16px 0",width:"100%"},id:s,libraryReturnUrl:c,theme:a,children:(0,Dt.jsx)(fE,{selectedItems:u,onSelectItems:d})})]})]})}var dn=w(M(),1),Oc=St(!1),R5=({children:e})=>(0,dn.jsx)("div",{className:"layer-ui__library",children:e}),hB=({onInsertLibraryItems:e,pendingElements:t,onAddToLibrary:r,setAppState:o,libraryReturnUrl:i,library:a,id:s,theme:c,selectedItems:d,onSelectItems:u})=>{let[f]=Ve(Wl,mt),m=(0,zo.useCallback)(b=>{(async(T,k)=>{ze("element","addToLibrary","ui");for(let C of dp)if(T.some(O=>O.type===C))return o({errorMessage:E(`errors.libraryElementTypeError.${C}`)});let I=[{status:"unpublished",elements:T,id:fa(),created:Date.now()},...k];r(),a.setLibrary(I).catch(()=>{o({errorMessage:E("alerts.errorAddingToLibrary")})})})(b,f.libraryItems)},[r,a,o,f.libraryItems]),g=(0,zo.useMemo)(()=>f.libraryItems,[f]);if(f.status==="loading"&&!f.isInitialized)return(0,dn.jsx)(R5,{children:(0,dn.jsx)("div",{className:"layer-ui__library-message",children:(0,dn.jsxs)("div",{children:[(0,dn.jsx)(Dr,{size:"2em"}),(0,dn.jsx)("span",{children:E("labels.libraryLoadingMessage")})]})})});let h=f.libraryItems.length>0||t.length>0;return(0,dn.jsxs)(R5,{children:[(0,dn.jsx)(xE,{isLoading:f.status==="loading",libraryItems:g,onAddToLibrary:m,onInsertLibraryItems:e,pendingElements:t,id:s,libraryReturnUrl:i,theme:c,onSelectItems:u,selectedItems:d}),h&&(0,dn.jsx)(Kg,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:s,libraryReturnUrl:i,theme:c})]})},bB=(e,t)=>{let r=()=>Oe(t,e,{includeBoundTextElement:!0,includeElementsInFrames:!0}),o=(0,zo.useRef)(r()),i=(0,zo.useRef)(e),a=(0,zo.useRef)(t);return(!br(e.selectedElementIds,i.current.selectedElementIds)||!br(t,a.current))&&(o.current=r(),i.current=e,a.current=t),o.current},D5=()=>{let{library:e,id:t,onInsertElements:r}=_r(),o=ei(),i=it(),a=ot(),s=La(),[c,d]=(0,zo.useState)([]),u=(0,zo.useMemo)(()=>e,[e]),f=bB(i,s),m=(0,zo.useCallback)(h=>{r(Wg(h))},[r]),g=(0,zo.useCallback)(()=>{a({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[a]);return(0,dn.jsx)(hB,{pendingElements:f,onInsertLibraryItems:m,onAddToLibrary:g,setAppState:a,libraryReturnUrl:o.libraryReturnUrl,library:u,id:t,theme:i.theme,selectedItems:c,onSelectItems:d})};var Ba=w(M(),1);function xB(e){if(e&&typeof e=="number")return e;switch(e){case"small":return 550;case"wide":return 1024;case"regular":default:return 800}}var zt=e=>{let[t,r]=qk(),[o]=(0,Qg.useState)(document.activeElement),{id:i}=sr(),a=rt().viewport.isMobile;(0,Qg.useEffect)(()=>{if(!t)return;let u=kd(t);setTimeout(()=>{u.length>0&&e.autofocus!==!1&&(u[1]||u[0]).focus()});let f=m=>{if(m.key===R.TAB){let g=kd(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=Li(Oc,mt),d=()=>{s({openMenu:null}),c(!1),o.focus(),e.onCloseRequest()};return(0,Ba.jsx)(Qk,{className:q("Dialog",e.className,{"Dialog--fullscreen":a}),labelledBy:"dialog-title",maxWidth:xB(e.size),onCloseRequest:d,closeOnClickOutside:e.closeOnClickOutside,children:(0,Ba.jsxs)(xr,{ref:r,children:[e.title&&(0,Ba.jsx)("h2",{id:`${i}-dialog-title`,className:"Dialog__title",children:(0,Ba.jsx)("span",{className:"Dialog__titleContent",children:e.title})}),a&&(0,Ba.jsx)("button",{className:"Dialog__close",onClick:d,title:E("buttons.close"),"aria-label":E("buttons.close"),type:"button",children:Qo}),(0,Ba.jsx)("div",{className:"Dialog__content",children:e.children})]})})};v();var ri=w(j(),1);v();var N5=w(M(),1),ti=({type:e="button",onSelect:t,selected:r,children:o,className:i="",...a})=>(0,N5.jsx)("button",{onClick:ua(a.onClick,s=>{t()}),type:e,className:q("excalidraw-button",i,{selected:r}),...a,children:o});var Xl=w(M(),1),eh=(0,ri.forwardRef)(({onChange:e,label:t,fullWidth:r,placeholder:o,readonly:i,selectOnRender:a,onKeyDown:s,isRedacted:c=!1,...d},u)=>{let f=(0,ri.useRef)(null);(0,ri.useImperativeHandle)(u,()=>f.current),(0,ri.useLayoutEffect)(()=>{a&&f.current?.select()},[a]);let[m,g]=(0,ri.useState)(!1);return(0,Xl.jsxs)("div",{className:q("ExcTextField",{"ExcTextField--fullWidth":r}),onClick:()=>{f.current?.focus()},children:[(0,Xl.jsx)("div",{className:"ExcTextField__label",children:t}),(0,Xl.jsxs)("div",{className:q("ExcTextField__input",{"ExcTextField__input--readonly":i}),children:[(0,Xl.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,Xl.jsx)(ti,{onSelect:()=>g(!m),style:{border:0,userSelect:"none"},children:m?$T:Ns})]})]})});v();var vB={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:[Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")],bringToFront:[Tn?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("?")]},mr=(e,t=0)=>{let r=vB[e];return r&&r.length>0?r[t]||r[0]:""};var p3=w(B5(),1);v();var yB="\\u0300-\\u036f",EB="\\ufe20-\\ufe2f",wB="\\u20d0-\\u20ff",SB=yB+EB+wB,TB=`[${SB}]`,CB=RegExp(TB,"g"),IB=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_B={\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"},vE=e=>e.replace(IB,t=>_B[t]||t).replace(CB,"");v();var z5=w(M(),1),mn=({icon:e})=>(0,z5.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:e});v();var i3=w(j(),1);v();var rh=w(j(),1);v();var Pm=w(j());v();v();var $5=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:()=>u,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(A?A.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()}},u=t=e(o,i,d);return d},H5=e=>e?$5(e):$5;var J5=w(j(),1),Q5=w(Z5(),1),{useDebugValue:KB}=J5.default,{useSyncExternalStoreWithSelector:YB}=Q5.default,q5=!1,VB=e=>e;function XB(e,t=VB,r){(A?A.MODE:void 0)!=="production"&&r&&!q5&&(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"),q5=!0);let o=YB(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return KB(o),o}var j5=e=>{(A?A.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"?H5(e):e,r=(o,i)=>XB(t,o,i);return Object.assign(r,t),r},e3=e=>e?j5(e):j5;var t3,r3,o3=typeof window<"u"&&((t3=window.document)!=null&&t3.createElement||((r3=window.navigator)==null?void 0:r3.product)==="ReactNative")?Pm.default.useLayoutEffect:Pm.default.useEffect;function On(){let e=e3(t=>({current:new Array,version:0,set:t}));return{In:({children:t})=>{let r=e(i=>i.set),o=e(i=>i.version);return o3(()=>{r(i=>({version:i.version+1}))},[]),o3(()=>(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 Pm.default.createElement(Pm.default.Fragment,null,t)}}}var EE=rh.default.createContext(null),At=()=>rh.default.useContext(EE),n3=()=>rh.default.useMemo(()=>({MainMenuTunnel:On(),WelcomeScreenMenuHintTunnel:On(),WelcomeScreenToolbarHintTunnel:On(),WelcomeScreenHelpHintTunnel:On(),WelcomeScreenCenterTunnel:On(),FooterCenterTunnel:On(),DefaultSidebarTriggerTunnel:On(),DefaultSidebarTabTriggersTunnel:On(),OverwriteConfirmDialogTunnel:On(),TTDDialogTriggerTunnel:On(),jotaiScope:Symbol()}),[]);var Te=w(M(),1),wE=(e,t)=>{let r=t[0]?.type||null;for(let o of t)if(o.type!==r){r=null;break}return Wd(e.activeTool.type)&&e.activeTool.type!=="image"&&r!=="image"&&r!=="frame"&&r!=="magicframe"||t.some(o=>Wd(o.type))},SE=(e,t)=>wa(e.activeTool.type)||t.some(r=>wa(r.type)),oh=({appState:e,elementsMap:t,renderAction:r})=>{let o=Sf(t,e),i=!1;o.length===2&&(yo(o[0])||yo(o[1]))&&(i=!0);let a=!!e.editingElement,s=rt(),c=document.documentElement.getAttribute("dir")==="rtl",d=wa(e.activeTool.type)&&!pl(e.currentItemBackgroundColor)||o.some(m=>wa(m.type)&&!pl(m.backgroundColor)),u=o.length===1||i,f=!e.editingLinearElement&&o.length===1&&Qe(o[0])&&!dt(o[0]);return(0,Te.jsxs)("div",{className:"panelColumn",children:[(0,Te.jsx)("div",{children:wE(e,o)&&r("changeStrokeColor")}),SE(e,o)&&(0,Te.jsx)("div",{children:r("changeBackgroundColor")}),d&&r("changeFillStyle"),(yv(e.activeTool.type)||o.some(m=>yv(m.type)))&&r("changeStrokeWidth"),(e.activeTool.type==="freedraw"||o.some(m=>m.type==="freedraw"))&&r("changeStrokeShape"),(Ev(e.activeTool.type)||o.some(m=>Ev(m.type)))&&(0,Te.jsxs)(Te.Fragment,{children:[r("changeStrokeStyle"),r("changeSloppiness")]}),(wv(e.activeTool.type)||o.some(m=>wv(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeRoundness")}),(Sv(e.activeTool.type)||o.some(m=>Sv(m.type)))&&(0,Te.jsx)(Te.Fragment,{children:r("changeArrowType")}),(e.activeTool.type==="text"||o.some(he))&&(0,Te.jsxs)(Te.Fragment,{children:[r("changeFontFamily"),r("changeFontSize"),(e.activeTool.type==="text"||fI(o,t))&&r("changeTextAlign")]}),pI(o,t)&&r("changeVerticalAlign"),(Ys(e.activeTool.type)||o.some(m=>Ys(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"),u&&r("hyperlink"),f&&r("toggleLinearEditor")]})]})]})},nh=({activeTool:e,appState:t,app:r,UIOptions:o})=>{let[i,a]=(0,i3.useState)(!1),s=e.type==="frame",c=e.type==="laser",d=e.type==="embeddable",{TTDDialogTriggerTunnel:u}=At();return(0,Te.jsxs)(Te.Fragment,{children:[qp.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&&da(typeof g=="string"?g:g[0]),I=k?`${k} ${E("helpDialog.or")} ${h}`:`${h}`;return(0,Te.jsx)(Ie,{className:q("Shape",{fillable:b}),type:"radio",icon:m,checked:e.type===f,name:"editor-current-shape",title:`${da(T)} \u2014 ${I}`,keyBindingLabel:h||k,"aria-label":da(T),"aria-keyshortcuts":I,"data-testid":`toolbar-${f}`,onPointerDown:({pointerType:C})=>{!t.penDetected&&C==="pen"&&r.togglePenMode(!0)},onChange:({pointerType:C})=>{t.activeTool.type!==f&&ze("toolbar",f,"ui"),f==="image"?r.setActiveTool({type:f,insertOnCanvasDirectly:C!=="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:[BT,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:Pp,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:$2,"data-testid":"toolbar-embeddable",selected:d,children:E("toolBar.embeddable")}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setActiveTool({type:"laser"}),icon:Lp,"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)(u.Out,{}),(0,Te.jsx)(st.Item,{onSelect:()=>r.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:Mp,"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:Ds,"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:Fd,"data-testid":"toolbar-magicSettings",children:E("toolBar.magicSettings")})]})]})]})]})},a3=({renderAction:e,zoom:t})=>(0,Te.jsx)(Ar.Col,{gap:1,className:"zoom-actions",children:(0,Te.jsxs)(Ar.Row,{align:"center",children:[e("zoomOut"),e("resetZoom"),e("zoomIn")]})}),l3=({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)(Oo,{label:E("buttons.undo"),children:e("undo")})}),(0,Te.jsx)("div",{className:"redo-button-container",children:(0,Te.jsxs)(Oo,{label:E("buttons.redo"),children:[" ",e("redo")]})})]}),s3=({actionManager:e,showExitZenModeBtn:t})=>(0,Te.jsx)("button",{type:"button",className:q("disable-zen-mode",{"disable-zen-mode--visible":t}),onClick:()=>e.executeAction(Pc),children:E("buttons.exitZenMode")}),c3=({renderAction:e,className:t})=>(0,Te.jsx)("div",{className:`finalize-button ${t}`,children:e("finalize",{size:"small"})});v();var d3=w(j(),1),TE=e=>{let t=(0,d3.useRef)({userFn:e});return t.current.userFn=e,t.current.stableFn||(t.current.stableFn=(...r)=>t.current.userFn(...r)),t.current.stableFn};v();var ih=w(M(),1),Zl=St(null),m3=()=>{let[e,t]=Ve(Zl,mt),r=yr();return e&&e==="clearCanvas"?(0,ih.jsx)(Vg,{onConfirm:()=>{r.executeAction(zi),t(null)},onCancel:()=>t(null),title:E("clearCanvasDialog.title"),children:(0,ih.jsxs)("p",{className:"clear-canvas__content",children:[" ",E("alerts.clearReset")]})}):null};var CE={};bS(CE,{toggleTheme:()=>ZB});v();var ZB={...Nl,category:"App",label:"Toggle theme",perform:({actionManager:e})=>{e.executeAction(Nl,"commandPalette")}};var Tt=w(M(),1),qB=St(null),Jt={app:"App",export:"Export",tools:"Tools",editor:"Editor",elements:"Elements",links:"Links"},jB=e=>{switch(e){case Jt.app:return 1;case Jt.export:return 2;case Jt.editor:return 3;case Jt.tools:return 4;case Jt.elements:return 5;case Jt.links:return 6;default:return 10}},ah=({shortcut:e,className:t,children:r})=>{let o=e.replace("++","+$").split("+");return(0,Tt.jsxs)("div",{className:q("shortcut",t),children:[o.map((i,a)=>(0,Tt.jsx)("div",{className:"shortcut-wrapper",children:(0,Tt.jsx)("div",{className:"shortcut-key",children:i==="$"?"+":i})},i)),(0,Tt.jsx)("div",{className:"shortcut-desc",children:r})]})},f3=e=>!e.altKey&&e[R.CTRL_OR_CMD]&&(e.shiftKey&&e.key.toLowerCase()===R.P||e.key===R.SLASH),ode=Object.assign(e=>{let t=it(),r=ot();return(0,un.useEffect)(()=>{let o=i=>{f3(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,Tt.jsx)(JB,{...e})},{defaultItems:CE});function JB({customCommandPaletteItems:e}){let t=_r(),r=it(),o=ot(),i=ei(),a=yr(),[s,c]=Ve(qB),[d,u]=(0,un.useState)(null),f=(0,un.useRef)(null),m=Ec({uiAppState:r,customCommandPaletteItems:e,appProps:i});(0,un.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},U=K=>typeof K.icon=="function"?K.icon(L,t.scene.getNonDeletedElements()):K.icon,Q=[],me=(K,se,be)=>{let _e={label:V(K),icon:U(K),category:se,shortcut:mr(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,Sm].map(ue=>me(ue,Jt.elements,(G,Y)=>({...G,predicate:Y.predicate?Y.predicate:(oe,ie,le,de)=>Oe(oe,ie).length>0}))),se=[a.actions.toggleHandTool,a.actions.setFrameAsActiveTool].map(ue=>me(ue,Jt.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=>me(ue,Jt.editor)),_e=[a.actions.saveToActiveFile,a.actions.saveFileToDisk,a.actions.copyAsPng,a.actions.copyAsSvg].map(ue=>me(ue,Jt.export));Q=[...K,...be,{label:V(zi),icon:U(zi),shortcut:mr(zi.name),category:Jt.editor,keywords:["delete","destroy"],viewMode:!1,perform:()=>{Hr.set(Zl,"clearCanvas")}},{label:E("buttons.exportImage"),category:Jt.export,icon:Cp,shortcut:mr("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{o({openDialog:{name:"imageExport"}})}},..._e];let nt=[{label:E("toolBar.library"),category:Jt.app,icon:yp,viewMode:!1,perform:()=>{L.openSidebar?o({openSidebar:null}):o({openSidebar:{name:In.name,tab:In.defaultTab}})}},{label:E("labels.changeStroke"),keywords:["color","outline"],category:Jt.elements,icon:Tp,viewMode:!1,predicate:(ue,G)=>{let Y=Oe(ue,G);return Y.length>0&&wE(G,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementStroke"}))}},{label:E("labels.changeBackground"),keywords:["color","fill"],icon:Tp,category:Jt.elements,viewMode:!1,predicate:(ue,G)=>{let Y=Oe(ue,G);return Y.length>0&&SE(G,Y)},perform:()=>{o(ue=>({openMenu:ue.openMenu==="shape"?null:"shape",openPopup:"elementBackground"}))}},{label:E("labels.canvasBackground"),keywords:["color"],icon:Tp,category:Jt.editor,viewMode:!1,perform:()=>{o(ue=>({openMenu:ue.openMenu==="canvas"?null:"canvas",openPopup:"canvasBackground"}))}},...qp.reduce((ue,G)=>{let{value:Y,icon:oe,key:ie,numericKey:le}=G;if(D.UIOptions.tools?.[Y]===!1)return ue;let pe=ie&&da(typeof ie=="string"?ie:ie[0])||le,ye={label:E(`toolBar.${Y}`),category:Jt.tools,shortcut:pe,icon:oe,keywords:["toolbar"],viewMode:!1,perform:({event:Ct})=>{Y==="image"?t.setActiveTool({type:Y,insertOnCanvasDirectly:Ct.type==="keydown"}):t.setActiveTool({type:Y})}};return ue.push(ye),ue},[]),...se,{label:E("toolBar.lock"),category:Jt.tools,icon:L.activeTool.locked?Ps:hl,shortcut:R.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{t.toggleLock()}},{label:`${E("labels.textToDiagram")}...`,category:Jt.tools,icon:UT,viewMode:!1,predicate:D.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${E("toolBar.mermaidToExcalidraw")}...`,category:Jt.tools,icon:Mp,viewMode:!1,predicate:D.aiEnabled,perform:()=>{o(ue=>({...ue,openDialog:{name:"ttd",tab:"mermaid"}}))}}],Ee=[...Q,...nt,...F||[]].map(ue=>({...ue,icon:ue.icon||Dp,order:ue.order??jB(ue.category),haystack:`${vE(ue.label.toLocaleLowerCase())} ${ue.keywords?.join(" ")||""}`}));u(Ee),c(Ee.find(ue=>ue.label===s?.label)??null)}},[m,t,a,u,s?.label,c,o]);let[g,h]=(0,un.useState)(""),[b,y]=(0,un.useState)(null),[T,k]=(0,un.useState)({}),I=L=>{o({openDialog:null},L),h("")},C=(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=TE(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=TE(L=>{let F=Yn(L.target)||f3(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 U=D.findIndex(K=>K.label===b?.label);if(V){if(U===0){y(s);return}if(b===s){let K=D[D.length-1];K&&y(K);return}}let Q;U===-1?Q=D.length-1:Q=U===0?D.length-1:(U-1)%D.length;let me=D[Q];me&&y(me);return}if(L.key===R.ARROW_DOWN){L.preventDefault();let U=D.findIndex(K=>K.label===b?.label);if(V){if(!b||U===D.length-1){y(s);return}if(b===s){let K=D[0];K&&y(K);return}}let Q=(U+1)%D.length,me=D[Q];me&&y(me);return}if(L.key===R.ENTER&&b&&setTimeout(()=>{C(b,L)}),!F){if(L.stopPropagation(),/^[a-zA-Z0-9]$/.test(L.key)){f?.current?.focus();return}L.preventDefault()}});return(0,un.useEffect)(()=>(window.addEventListener("keydown",z,{capture:!0}),()=>window.removeEventListener("keydown",z,{capture:!0})),[z]),(0,un.useEffect)(()=>{if(!d)return;let L=U=>{let Q={};for(let me of U)Q[me.category]?Q[me.category].push(me):Q[me.category]=[me];return Q},F=d.filter(O).sort((U,Q)=>U.order-Q.order),D=!g&&s&&O(s);if(!g){k(L(D?F.filter(U=>U.label!==s?.label):F)),y(D?s:F[0]||null);return}let V=vE(g.toLocaleLowerCase().replace(/[<>_| -]/g,""));F=p3.default.filter(V,F,{extract:U=>U.haystack}).sort((U,Q)=>Q.score-U.score).map(U=>U.original),k(L(F)),y(F[0]??null)},[g,d,O,s]),(0,Tt.jsxs)(zt,{onCloseRequest:()=>I(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,Tt.jsx)(eh,{value:g,placeholder:E("commandPalette.search.placeholder"),onChange:L=>{h(L)},selectOnRender:!0,ref:f}),!t.device.viewport.isMobile&&(0,Tt.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,Tt.jsx)(ah,{shortcut:"\u2191\u2193",children:E("commandPalette.shortcuts.select")}),(0,Tt.jsx)(ah,{shortcut:"\u21B5",children:E("commandPalette.shortcuts.confirm")}),(0,Tt.jsx)(ah,{shortcut:X("Esc"),children:E("commandPalette.shortcuts.close")})]}),(0,Tt.jsxs)("div",{className:"commands",children:[s&&!g&&(0,Tt.jsxs)("div",{className:"command-category",children:[(0,Tt.jsxs)("div",{className:"command-category-title",children:[E("commandPalette.recents"),(0,Tt.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:GT})]}),(0,Tt.jsx)(u3,{command:s,isSelected:s.label===b?.label,onClick:L=>C(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,Tt.jsxs)("div",{className:"command-category",children:[(0,Tt.jsx)("div",{className:"command-category-title",children:L}),T[L].map(D=>(0,Tt.jsx)(u3,{command:D,isSelected:D.label===b?.label,onClick:V=>C(D,V),onMouseMove:()=>y(D),showShortcut:!t.device.viewport.isMobile,appState:r},D.label))]},L)):d?(0,Tt.jsxs)("div",{className:"no-match",children:[(0,Tt.jsx)("div",{className:"icon",children:Rp})," ",E("commandPalette.search.noMatch")]}):null]})]})}var u3=({command:e,isSelected:t,disabled:r,onMouseMove:o,onClick:i,showShortcut:a,appState:s})=>{let c=()=>{};return(0,Tt.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,Tt.jsxs)("div",{className:"name",children:[e.icon&&(0,Tt.jsx)(mn,{icon:typeof e.icon=="function"?e.icon(s):e.icon}),e.label]}),a&&e.shortcut&&(0,Tt.jsx)(ah,{shortcut:e.shortcut})]})};var g3=w(M(),1),IE=re({name:"toggleLinearEditor",category:Jt.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])&&!dt(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 Le(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,g3.jsx)(Ie,{type:"button",icon:oC,title:i,"aria-label":i,onClick:()=>t(null)})}});v();v();var ql=class{constructor(t=!0,r=!0){this.isUndoStackEmpty=t;this.isRedoStackEmpty=r}},Mm=class e{onHistoryChangedEmitter=new en;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=_E.create(r,t);o.isEmpty()||(this.undoStack.push(o.inverse()),o.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new ql(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(t,r,o,i){return this.perform(t,r,o,()=>e.pop(this.undoStack),a=>e.push(this.redoStack,a,t),i)}redo(t,r,o,i){return this.perform(t,r,o,()=>e.pop(this.redoStack),a=>e.push(this.undoStack,a,t),i)}perform(t,r,o,i,a,s){try{let c=i();if(c===null)return;let d=t,u=r,f=!1;for(;c;){try{[d,u,f]=c.applyTo(d,u,o,s)}finally{a(c)}if(f)break;c=i()}return[d,u]}finally{this.onHistoryChangedEmitter.trigger(new ql(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)}},_E=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,i){let[a,s]=this.elementsChange.applyTo(t,o.elements,i),[c,d]=this.appStateChange.applyTo(r,a);return[a,c,s||d]}applyLatestChanges(t){let r=this.elementsChange.applyLatestChanges(t);return e.create(this.appStateChange,r)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}};v();var lh=w(j(),1),AE=(e,t)=>{let[r,o]=(0,lh.useState)(t);return(0,lh.useEffect)(()=>{let i=e.on(a=>{o(a)});return()=>{i()}},[e]),r};var kE=w(M(),1),h3=(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}},b3=(e,t)=>({name:"undo",label:"buttons.undo",icon:zx,trackEvent:{category:"history"},viewMode:!1,perform:(r,o,i,a)=>h3(o,()=>e.undo(Re(r),o,t.snapshot,a.scene)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.key.toLowerCase()===R.Z&&!r.shiftKey,PanelComponent:({updateData:r,data:o})=>{let{isUndoStackEmpty:i}=AE(e.onHistoryChangedEmitter,new ql(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,kE.jsx)(Ie,{type:"button",icon:zx,"aria-label":E("buttons.undo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-undo"})}}),x3=(e,t)=>({name:"redo",label:"buttons.redo",icon:$x,trackEvent:{category:"history"},viewMode:!1,perform:(r,o,i,a)=>h3(o,()=>e.redo(Re(r),o,t.snapshot,a.scene)),keyTest:r=>r[R.CTRL_OR_CMD]&&r.shiftKey&&r.key.toLowerCase()===R.Z||qu&&r.ctrlKey&&!r.shiftKey&&r.key===R.Y,PanelComponent:({updateData:r,data:o})=>{let{isRedoStackEmpty:i}=AE(e.onHistoryChangedEmitter,new ql(e.isUndoStackEmpty,e.isRedoStackEmpty));return(0,kE.jsx)(Ie,{type:"button",icon:$x,"aria-label":E("buttons.redo"),onClick:r,size:o?.size||"medium",disabled:i,"data-testid":"button-redo"})}});v();var v3=w(M(),1),PE=(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)}},sh=class{actions={};updater;getAppState;getElementsIncludingDeleted;app;constructor(t,r,o,i){this.updater=a=>{if(Ts(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,u)=>(u.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 PE(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();PE(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=u=>{PE(i,"ui",c,s,this.app,u),this.updater(i.perform(this.getElementsIncludingDeleted(),this.getAppState(),u,this.app))};return(0,v3.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 ME=e=>{let t=Array.from(e.values());return{x:y3(t,r=>r.x)/t.length,y:y3(t,r=>r.y)/t.length}},LE=([e,t])=>Math.hypot(e.x-t.x,e.y-t.y),y3=(e,t)=>e.reduce((r,o)=>r+t(o),0);v();var E3=w(j(),1),Ui=w(M(),1),Vr="separator",w3=E3.default.memo(({actionManager:e,items:t,top:r,left:o,onClose:i})=>{let a=Qn(),s=La(),c=t.reduce((d,u)=>(u&&(u===Vr||!u.predicate||u.predicate(s,a,e.app.props,e.app))&&d.push(u),d),[]);return(0,Ui.jsx)(fg,{onCloseRequest:()=>{i()},top:r,left:o,fitInViewport:!0,offsetLeft:a.offsetLeft,offsetTop:a.offsetTop,viewportWidth:a.width,viewportHeight:a.height,children:(0,Ui.jsx)("ul",{className:"context-menu",onContextMenu:d=>d.preventDefault(),children:c.map((d,u)=>{if(d===Vr)return!c[u-1]||c[u-1]===Vr?null:(0,Ui.jsx)("hr",{className:"context-menu-item-separator"},u);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,Ui.jsx)("li",{"data-testid":f,onClick:()=>{i(()=>{e.executeAction(d,"contextMenu")})},children:(0,Ui.jsxs)("button",{type:"button",className:q("context-menu-item",{dangerous:f==="deleteSelectedElements",checkmark:d.checked?.(a)}),children:[(0,Ui.jsx)("div",{className:"context-menu-item__label",children:m}),(0,Ui.jsx)("kbd",{className:"context-menu-item__shortcut",children:f?mr(f):""})]})},u)})})})});v();var oM=w(j(),1);v();var ch=w(j(),1);var Hc=w(M(),1),S3=({children:e,onClose:t})=>{let[r,o]=(0,ch.useState)(!!e),{container:i}=sr(),a=ch.default.useCallback(()=>{o(!1),t&&t(),i?.focus()},[t,i]);return(0,Hc.jsx)(Hc.Fragment,{children:r&&(0,Hc.jsx)(zt,{size:"small",onCloseRequest:a,title:E("errorDialog.title"),children:(0,Hc.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:e})})})};v();var $o=w(j(),1);v();var Lm=w(M(),1),dh=function({onChange:e,value:t,choices:r,name:o}){return(0,Lm.jsx)("div",{className:"RadioGroup",children:r.map(i=>(0,Lm.jsxs)("div",{className:q("RadioGroup__choice",{active:i.value===t}),title:i.ariaLabel,children:[(0,Lm.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 RE=w(M(),1),Rm=({title:e,name:t,checked:r,onChange:o,disabled:i=!1})=>(0,RE.jsx)("div",{className:q("Switch",{toggled:r,disabled:i}),children:(0,RE.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 mh=w(j(),1);var Uc=w(M(),1),oi=(0,mh.forwardRef)(({children:e,icon:t,onClick:r,label:o,variant:i="filled",color:a="primary",size:s="medium",fullWidth:c,className:d},u)=>{let[f,m]=(0,mh.useState)(!1),g=async h=>{let b=r?.(h);if(Ts(b))try{m(!0),await b}catch(y){if(y instanceof _s)console.warn(y);else throw y}finally{m(!1)}};return(0,Uc.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:u,disabled:f,children:(0,Uc.jsxs)("div",{className:"ExcButton__contents",children:[f&&(0,Uc.jsx)(Dr,{}),t&&(0,Uc.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:t}),i!=="icon"&&(e??o)]})})});var et=w(M(),1),QB="filter"in document.createElement("canvas").getContext("2d"),ez=()=>(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"),")"]})]}),tz=({appStateSnapshot:e,elementsSnapshot:t,files:r,actionManager:o,onExportImage:i,name:a})=>{let s=gt(t,e),[c,d]=(0,$o.useState)(a),[u,f]=(0,$o.useState)(s),[m,g]=(0,$o.useState)(e.exportBackground),[h,b]=(0,$o.useState)(e.exportWithDarkMode),[y,T]=(0,$o.useState)(e.exportEmbedScene),[k,I]=(0,$o.useState)(e.exportScale),C=(0,$o.useRef)(null),[O,z]=(0,$o.useState)(null),{exportedElements:L,exportingFrame:F}=Fl(t,e,u);return(0,$o.useEffect)(()=>{let D=C.current;if(!D)return;let V=D.offsetWidth,U=D.offsetHeight;V&&Tl({elements:L,appState:{...e,name:c,exportBackground:m,exportWithDarkMode:h,exportScale:k,exportEmbedScene:y},files:r,exportPadding:ca,maxWidthOrHeight:Math.max(V,U),exportingFrame:F}).then(Q=>(z(null),Ci(Q).then(()=>{D.replaceChildren(Q)}).catch(me=>{throw me.name==="CANVAS_POSSIBLY_TOO_BIG"?new Error(E("canvasError.canvasTooBig")):me}))).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:C,children:O&&(0,et.jsx)(ez,{})}),(0,et.jsx)("div",{className:"ImageExportModal__preview__filename",children:!Os&&(0,et.jsx)("input",{type:"text",className:"TextInput",value:c,style:{width:"30ch"},onChange:D=>{d(D.target.value),o.executeAction(zy,"ui",D.target.value)}})})]}),(0,et.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,et.jsx)("h3",{children:E("imageExportDialog.header")}),s&&(0,et.jsx)(Dm,{label:E("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,et.jsx)(Rm,{name:"exportOnlySelected",checked:u,onChange:D=>{f(D)}})}),(0,et.jsx)(Dm,{label:E("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,et.jsx)(Rm,{name:"exportBackgroundSwitch",checked:m,onChange:D=>{g(D),o.executeAction($y,"ui",D)}})}),QB&&(0,et.jsx)(Dm,{label:E("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,et.jsx)(Rm,{name:"exportDarkModeSwitch",checked:h,onChange:D=>{b(D),o.executeAction(Mk,"ui",D)}})}),(0,et.jsx)(Dm,{label:E("imageExportDialog.label.embedScene"),tooltip:E("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,et.jsx)(Rm,{name:"exportEmbedSwitch",checked:y,onChange:D=>{T(D),o.executeAction(kg,"ui",D)}})}),(0,et.jsx)(Dm,{label:E("imageExportDialog.label.scale"),name:"exportScale",children:(0,et.jsx)(dh,{name:"exportScale",value:k,onChange:D=>{I(D),o.executeAction(Pk,"ui",D)},choices:ap.map(D=>({value:D,label:`${D}\xD7`}))})}),(0,et.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,et.jsx)(oi,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToPng"),onClick:()=>i(rp.png,L,{exportingFrame:F}),icon:tv,children:E("imageExportDialog.button.exportToPng")}),(0,et.jsx)(oi,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.exportToSvg"),onClick:()=>i(rp.svg,L,{exportingFrame:F}),icon:tv,children:E("imageExportDialog.button.exportToSvg")}),(Gs||vi)&&(0,et.jsx)(oi,{className:"ImageExportModal__settings__buttons__button",label:E("imageExportDialog.title.copyPngToClipboard"),onClick:()=>i(rp.clipboard,L,{exportingFrame:F}),icon:kp,children:E("imageExportDialog.button.copyPngToClipboard")})]})]})]})},Dm=({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)(Oo,{label:r,long:!0,children:NT})]}),(0,et.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:t})]}),T3=({elements:e,appState:t,files:r,actionManager:o,onExportImage:i,onCloseRequest:a,name:s})=>{let[{appStateSnapshot:c,elementsSnapshot:d}]=(0,$o.useState)(()=>({appStateSnapshot:vo(t),elementsSnapshot:vo(e)}));return(0,et.jsx)(zt,{onCloseRequest:a,size:"wide",title:!1,children:(0,et.jsx)(tz,{elementsSnapshot:d,appStateSnapshot:c,files:r,actionManager:o,onExportImage:i,name:s})})};v();var C3=w(M(),1),uh=({children:e,side:t,className:r})=>(0,C3.jsx)("div",{className:q("FixedSideContainer",`FixedSideContainer_side_${t}`,r),children:e});v();var DE=w(M(),1),rz=({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"):i.type==="arrow"?E("hints.arrowTool",{arrowShortcut:X("A")}):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 u=o.scene.getSelectedElements(e);if(a&&c==="mouse"&&u.length===1){let f=u[0];return Qe(f)&&f.points.length===2?E("hints.lockAngle"):pa(f)?E("hints.resizeImage"):E("hints.resize")}if(s&&c==="mouse")return E("hints.rotate");if(u.length===1&&he(u[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"&&!u.length&&!e.editingElement&&!e.editingLinearElement)return E("hints.deepBoxSelect");if(e.gridSize&&e.draggingElement)return E("hints.disableSnapping");if(!u.length&&!t)return E("hints.canvasPanning");if(u.length===1){if(Qe(u[0]))return e.editingLinearElement?e.editingLinearElement.selectedPointsIndices?E("hints.lineEditor_pointSelected"):E("hints.lineEditor_nothingSelected"):E("hints.lineEditor_info");if(!e.draggingElement&&wi(u[0]))return E("hints.bindTextToElement")}}return null},ph=({appState:e,isMobile:t,device:r,app:o})=>{let i=rz({appState:e,isMobile:t,device:r,app:o});return i?(i=X(i),(0,DE.jsx)("div",{className:"HintViewer",children:(0,DE.jsx)("span",{children:i})})):null};v();var Nm=w(M(),1),oz="medium",I3={CHECKED:Ps,UNCHECKED:hl},fh=e=>(0,Nm.jsxs)("label",{className:q("ToolIcon ToolIcon__lock",`ToolIcon_size_${oz}`,{"is-mobile":e.isMobile}),title:`${e.title} \u2014 Q`,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-lock"}),(0,Nm.jsx)("div",{className:"ToolIcon__icon",children:e.checked?I3.CHECKED:I3.UNCHECKED})]});v();v();var jl=w(M(),1),za=({heading:e,children:t,...r})=>{let{id:o}=sr(),i=(0,jl.jsx)("h2",{className:"visually-hidden",id:`${o}-${e}-title`,children:E(`headings.${e}`)});return(0,jl.jsx)("section",{...r,"aria-labelledby":`${o}-${e}-title`,children:typeof t=="function"?t(i):(0,jl.jsxs)(jl.Fragment,{children:[i,t]})})};v();var Fn=4,ni=6,_3="rgba(0,0,0,0.3)",A3=(e,t,r,o)=>{if(!e.length)return{horizontal:null,vertical:null};let[i,a,s,c]=lt(e),d=t/o.zoom.value,u=r/o.zoom.value,f=t-d,m=r-u,g={top:parseInt(_d("sat"))||0,bottom:parseInt(_d("sab"))||0,left:parseInt(_d("sal"))||0,right:parseInt(_d("sar"))||0},h=Ri().rtl,b=-o.scrollX+f/2+g.left,y=-o.scrollY+m/2+g.top,T=b+d-g.right,k=y+u-g.bottom,I=Math.min(i,b),C=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,Fn)+(b-I)/(O-I)*t,y:r-ni-Math.max(Fn,g.bottom),width:(T-b)/(O-I)*t-Math.max(Fn*2,g.left+g.right),height:ni},vertical:y===C&&k===z?null:{x:h?Math.max(g.left,Fn):t-ni-Math.max(g.right,Fn),y:(y-C)/(z-C)*r+Math.max(g.top,Fn),width:ni,height:(k-y)/(z-C)*r-Math.max(Fn*2,g.top+g.bottom)}}},NE=(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 Om=w(M(),1),nz="medium",gh=e=>e.penDetected?(0,Om.jsxs)("label",{className:q("ToolIcon ToolIcon__penMode",`ToolIcon_size_${nz}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Om.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Om.jsx)("div",{className:"ToolIcon__icon",children:F2})]}):null;v();var k3=w(M(),1),hh=e=>(0,k3.jsx)(Ie,{className:q("Shape",{fillable:!1}),type:"radio",icon:Ap,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 xt=w(M(),1),P3=({appState:e,elements:t,actionManager:r,setAppState:o,onLockToggle:i,onHandToolToggle:a,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:d,renderSidebars:u,device:f,renderWelcomeScreen:m,UIOptions:g,app:h})=>{let{WelcomeScreenCenterTunnel:b,MainMenuTunnel:y,DefaultSidebarTriggerTunnel:T}=At(),k=()=>(0,xt.jsxs)(uh,{side:"top",className:"App-top-bar",children:[m&&(0,xt.jsx)(b.Out,{}),(0,xt.jsx)(za,{heading:"shapes",children:C=>(0,xt.jsx)(Ar.Col,{gap:4,align:"center",children:(0,xt.jsxs)(Ar.Row,{gap:1,className:"App-toolbar-container",children:[(0,xt.jsxs)(xr,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[C,(0,xt.jsx)(Ar.Row,{gap:1,children:(0,xt.jsx)(nh,{appState:e,activeTool:e.activeTool,UIOptions:g,app:h})})]}),c&&c(!0,e),(0,xt.jsxs)("div",{className:"mobile-misc-tools-container",children:[!e.viewModeEnabled&&(0,xt.jsx)(T.Out,{}),(0,xt.jsx)(gh,{checked:e.penMode,onChange:()=>s(null),title:E("toolBar.penMode"),isMobile:!0,penDetected:e.penDetected}),(0,xt.jsx)(fh,{checked:e.activeTool.locked,onChange:i,title:E("toolBar.lock"),isMobile:!0}),(0,xt.jsx)(hh,{checked:Si(e),onChange:()=>a(),title:E("toolBar.hand"),isMobile:!0})]})]})})}),(0,xt.jsx)(ph,{appState:e,isMobile:!0,device:f,app:h})]}),I=()=>e.viewModeEnabled?(0,xt.jsx)("div",{className:"App-toolbar-content",children:(0,xt.jsx)(y.Out,{})}):(0,xt.jsxs)("div",{className:"App-toolbar-content",children:[(0,xt.jsx)(y.Out,{}),r.renderAction("toggleEditMenu"),r.renderAction("undo"),r.renderAction("redo"),r.renderAction(e.multiElement?"finalize":"duplicateSelection"),r.renderAction("deleteSelectedElements")]});return(0,xt.jsxs)(xt.Fragment,{children:[u(),!e.viewModeEnabled&&k(),(0,xt.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:ni+Fn*2,marginLeft:ni+Fn*2,marginRight:ni+Fn*2},children:(0,xt.jsxs)(xr,{padding:0,children:[e.openMenu==="shape"&&!e.viewModeEnabled&&qs(e,t)?(0,xt.jsx)(za,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,xt.jsx)(oh,{appState:e,elementsMap:h.scene.getNonDeletedElementsMap(),renderAction:r.renderAction})}):null,(0,xt.jsxs)("footer",{className:"App-toolbar",children:[I(),e.scrolledOutside&&!e.openMenu&&!e.openSidebar&&(0,xt.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(C=>({...Al(t,C)}))},children:E("buttons.scrollBackToContent")})]})]})})]})};v();var Ha=w(j(),1);var $a=w(M(),1),M3=e=>{let t=(0,Ha.useRef)(null),[r,o]=(0,Ha.useState)(null);return(0,Ha.useLayoutEffect)(()=>{if(!e.spreadsheet)return;let i=YC(e.chartType,e.spreadsheet,0,0);o(i);let a,s=t.current;return(async()=>(a=await rf(i,{exportBackground:!1,viewBackgroundColor:zr.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,$a.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{r&&e.onClick(e.chartType,r)},children:(0,$a.jsx)("div",{ref:t})})},L3=({setAppState:e,appState:t,onClose:r})=>{let{onInsertElements:o}=_r(),i=Ha.default.useCallback(()=>{r&&r()},[r]),a=(s,c)=>{o(c),ze("paste","chart",s),e({currentChartType:s,pasteDialog:{shown:!1,data:null}})};return(0,$a.jsx)(zt,{size:"small",onCloseRequest:i,title:E("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,$a.jsxs)("div",{className:"container",children:[(0,$a.jsx)(M3,{chartType:"bar",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="bar",onClick:a}),(0,$a.jsx)(M3,{chartType:"line",spreadsheet:t.pasteDialog.data,selected:t.currentChartType==="line",onClick:a})]})})};v();var R3=w(j(),1);var ne=w(M(),1),iz=()=>(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:Bx}),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:Bx}),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:Sp}),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:tC}),"YouTube"]})]}),az=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})]}),OE=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*lz(e,t){let r=!0;for(let o of e)r||(yield t),r=!1,yield o}var sz=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)(cz,{children:sz(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:[...lz(o,r?E("helpDialog.or"):null)]})]})},cz=e=>(0,ne.jsx)("kbd",{className:"HelpDialog__key",...e}),D3=({onClose:e})=>{let t=R3.default.useCallback(()=>{e&&e()},[e]);return(0,ne.jsx)(ne.Fragment,{children:(0,ne.jsxs)(zt,{onCloseRequest:t,title:E("helpDialog.title"),className:"HelpDialog",children:[(0,ne.jsx)(iz,{}),(0,ne.jsxs)(az,{title:E("helpDialog.shortcuts"),children:[(0,ne.jsxs)(OE,{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)(OE,{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:vi?[mr("commandPalette")]:[mr("commandPalette"),mr("commandPalette",1)]})]}),(0,ne.jsxs)(OE,{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")}`)]}),(Gs||vi)&&(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:[Tn?X("CtrlOrCmd+Alt+["):X("CtrlOrCmd+Shift+[")]}),(0,ne.jsx)(xe,{label:E("labels.bringToFront"),shortcuts:[Tn?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:qu?[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 Jl=w(j(),1);var kr=w(M(),1),dz=4,mz=8,uz=({shouldWrap:e,children:t,username:r})=>e?(0,kr.jsx)(Oo,{label:r||"Unknown user",children:t}):(0,kr.jsx)(kr.Fragment,{children:t}),FE=({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,kr.jsx)(uz,{username:t.username,shouldWrap:i,children:c},r)},pz=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],bh=Jl.default.memo(({className:e,mobile:t,collaborators:r,userToFollow:o})=>{let i=yr(),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]=Jl.default.useState(""),u=s.filter(y=>y.username?.toLowerCase().includes(c)),f=Jl.default.useRef(null);(0,Jl.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),!Ed)return;let T=new ResizeObserver(k=>{for(let I of k){let{width:C}=I.contentRect;y(C)}});return T.observe(f.current),()=>{T.disconnect()}}},[]);let[m,g]=Jl.default.useState(dz),b=s.slice(0,m-1).map(y=>FE({actionManager:i,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===o}));return t?(0,kr.jsx)("div",{className:q("UserList UserList_mobile",e),children:s.map(y=>FE({actionManager:i,collaborator:y,socketId:y.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:y.socketId===o}))}):(0,kr.jsx)("div",{className:"UserList__wrapper",ref:f,children:(0,kr.jsxs)("div",{className:q("UserList",e),style:{"--max-avatars":m},children:[b,s.length>m-1&&(0,kr.jsxs)(xc,{children:[(0,kr.jsxs)(vc,{className:"UserList__more",children:["+",s.length-m+1]}),(0,kr.jsx)(cg,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,kr.jsxs)(xr,{padding:2,children:[s.length>=mz&&(0,kr.jsx)(gg,{placeholder:E("quickSearch.placeholder"),onChange:d}),(0,kr.jsx)(bg,{className:"dropdown-menu UserList__collaborators",placeholder:E("userList.empty"),children:u.length>0?[(0,kr.jsx)("div",{className:"hint",children:E("userList.hint.text")}),u.map(y=>FE({actionManager:i,collaborator:y,socketId:y.socketId,withName:!0,isBeingFollowed:y.socketId===o}))]:[]}),(0,kr.jsx)(dg,{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||!br(i,a,pz))return!1}return!0});v();var O3=w(j(),1);v();var N3=w(M(),1),BE=({children:e,color:t})=>(0,N3.jsx)("div",{className:"Card",style:{"--card-color":t==="primary"?"var(--color-primary)":zr[t][7],"--card-color-darker":t==="primary"?"var(--color-primary-darker)":zr[t][8],"--card-color-darkest":t==="primary"?"var(--color-primary-darkest)":zr[t][9]},children:e});var Er=w(M(),1),fz=({elements:e,appState:t,setAppState:r,files:o,actionManager:i,exportOpts:a,canvas:s,onCloseRequest:c})=>{let{onExportToBackend:d}=a;return(0,Er.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,Er.jsxs)("div",{className:"ExportDialog-cards",children:[a.saveFileToDisk&&(0,Er.jsxs)(BE,{color:"lime",children:[(0,Er.jsx)("div",{className:"Card-icon",children:X2}),(0,Er.jsx)("h2",{children:E("exportDialog.disk_title")}),(0,Er.jsxs)("div",{className:"Card-details",children:[E("exportDialog.disk_details"),!Os&&i.renderAction("changeProjectName")]}),(0,Er.jsx)(Ie,{className:"Card-button",type:"button",title:E("exportDialog.disk_button"),"aria-label":E("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{i.executeAction(Em,"ui")}})]}),d&&(0,Er.jsxs)(BE,{color:"pink",children:[(0,Er.jsx)("div",{className:"Card-icon",children:Od}),(0,Er.jsx)("h2",{children:E("exportDialog.link_title")}),(0,Er.jsx)("div",{className:"Card-details",children:E("exportDialog.link_details")}),(0,Er.jsx)(Ie,{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 (${c2()})`),await d(e,t,o),c()}catch(u){r({errorMessage:u.message})}}})]}),a.renderCustomUI&&a.renderCustomUI(e,t,o,s)]})})},F3=({elements:e,appState:t,files:r,actionManager:o,exportOpts:i,canvas:a,setAppState:s})=>{let c=O3.default.useCallback(()=>{s({openDialog:null})},[s]);return(0,Er.jsx)(Er.Fragment,{children:t.openDialog?.name==="jsonExport"&&(0,Er.jsx)(zt,{onCloseRequest:c,title:E("buttons.export"),children:(0,Er.jsx)(fz,{elements:e,appState:t,setAppState:s,files:r,actionManager:o,onCloseRequest:c,exportOpts:i,canvas:a})})})};v();v();var z3=w(M(),1),B3=e=>(0,z3.jsx)("button",{className:"help-icon",onClick:e.onClick,type:"button",title:`${E("helpDialog.title")} \u2014 ?`,"aria-label":E("helpDialog.title"),children:Ms});var mo=w(M(),1),$3=({appState:e,actionManager:t,showExitZenModeBtn:r,renderWelcomeScreen:o})=>{let{FooterCenterTunnel:i,WelcomeScreenHelpHintTunnel:a}=At(),s=rt(),c=!e.viewModeEnabled&&e.multiElement&&s.isTouchScreen;return(0,mo.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,mo.jsx)("div",{className:q("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled}),children:(0,mo.jsx)(Ar.Col,{gap:2,children:(0,mo.jsxs)(za,{heading:"canvasActions",children:[(0,mo.jsx)(a3,{renderAction:t.renderAction,zoom:e.zoom}),!e.viewModeEnabled&&(0,mo.jsx)(l3,{renderAction:t.renderAction,className:q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":e.zenModeEnabled})}),c&&(0,mo.jsx)(c3,{renderAction:t.renderAction,className:q("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":e.zenModeEnabled})})]})})}),(0,mo.jsx)(i.Out,{}),(0,mo.jsx)("div",{className:q("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:(0,mo.jsxs)("div",{style:{position:"relative"},children:[o&&(0,mo.jsx)(a.Out,{}),(0,mo.jsx)(B3,{onClick:()=>t.executeAction($l)})]})}),(0,mo.jsx)(s3,{actionManager:t,showExitZenModeBtn:r})]})},H3=$3;$3.displayName="Footer";v();var ur=w(j(),1);v();var U3=w(j(),1),xh=U3.default.createContext({});v();var G3=w(j(),1);var Ql=w(M(),1),zE=({children:e,className:t})=>{let r=rt(),o=(0,G3.useContext)(xh),i=!!(r.editor.canFitSidebar&&o.shouldRenderDockButton);return(0,Ql.jsxs)("div",{className:q("sidebar__header",t),"data-testid":"sidebar-header",children:[e,(0,Ql.jsxs)("div",{className:"sidebar__header__buttons",children:[i&&(0,Ql.jsx)(Oo,{label:E("labels.sidebarLock"),children:(0,Ql.jsx)(ti,{onSelect:()=>o.onDock?.(!o.docked),selected:!!o.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":E("labels.sidebarLock"),children:R2})}),(0,Ql.jsx)(ti,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:o.onCloseRequest,"aria-label":E("buttons.close"),children:Qo})]})]})};zE.displayName="SidebarHeader";v();var es=w(M(),1),$E=({name:e,tab:t,icon:r,title:o,children:i,onToggle:a,className:s,style:c})=>{let d=ot(),u=it();return(0,es.jsxs)("label",{title:o,className:"sidebar-trigger__label-element",children:[(0,es.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:u.openSidebar?.name===e,"aria-label":o,"aria-keyshortcuts":"0"}),(0,es.jsxs)("div",{className:q("sidebar-trigger",s),style:c,children:[r&&(0,es.jsx)("div",{children:r}),i&&(0,es.jsx)("div",{className:"sidebar-trigger__label",children:i})]})]})};$E.displayName="SidebarTrigger";v();v();var Pr=w(j());v();var kt=w(j());v();var Bn=w(j());function W3(e){let t=e+"CollectionProvider",[r,o]=qn(t),[i,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=h=>{let{scope:b,children:y}=h,T=Bn.default.useRef(null),k=Bn.default.useRef(new Map).current;return Bn.default.createElement(i,{scope:b,itemMap:k,collectionRef:T},y)},c=e+"CollectionSlot",d=Bn.default.forwardRef((h,b)=>{let{scope:y,children:T}=h,k=a(c,y),I=Nr(b,k.collectionRef);return Bn.default.createElement(_a,{ref:I},T)}),u=e+"CollectionItemSlot",f="data-radix-collection-item",m=Bn.default.forwardRef((h,b)=>{let{scope:y,children:T,...k}=h,I=Bn.default.useRef(null),C=Nr(b,I),O=a(u,y);return Bn.default.useEffect(()=>(O.itemMap.set(I,{ref:I,...k}),()=>void O.itemMap.delete(I))),Bn.default.createElement(_a,{[f]:"",ref:C},T)});function g(h){let b=a(e+"CollectionConsumer",h);return Bn.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 Fm=w(j()),gz=(0,Fm.createContext)(void 0);function vh(e){let t=(0,Fm.useContext)(gz);return e||t||"ltr"}var HE="rovingFocusGroup.onEntryFocus",hz={bubbles:!1,cancelable:!0},GE="RovingFocusGroup",[UE,K3,bz]=W3(GE),[xz,WE]=qn(GE,[bz]),[vz,yz]=xz(GE),Ez=(0,kt.forwardRef)((e,t)=>(0,kt.createElement)(UE.Provider,{scope:e.__scopeRovingFocusGroup},(0,kt.createElement)(UE.Slot,{scope:e.__scopeRovingFocusGroup},(0,kt.createElement)(wz,Ye({},e,{ref:t}))))),wz=(0,kt.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:o,loop:i=!1,dir:a,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:u,...f}=e,m=(0,kt.useRef)(null),g=Nr(t,m),h=vh(a),[b=null,y]=uc({prop:s,defaultProp:c,onChange:d}),[T,k]=(0,kt.useState)(!1),I=io(u),C=K3(r),O=(0,kt.useRef)(!1),[z,L]=(0,kt.useState)(0);return(0,kt.useEffect)(()=>{let F=m.current;if(F)return F.addEventListener(HE,I),()=>F.removeEventListener(HE,I)},[I]),(0,kt.createElement)(vz,{scope:r,orientation:o,dir:h,loop:i,currentTabStopId:b,onItemFocus:(0,kt.useCallback)(F=>y(F),[y]),onItemShiftTab:(0,kt.useCallback)(()=>k(!0),[]),onFocusableItemAdd:(0,kt.useCallback)(()=>L(F=>F+1),[]),onFocusableItemRemove:(0,kt.useCallback)(()=>L(F=>F-1),[])},(0,kt.createElement)(jt.div,Ye({tabIndex:T||z===0?-1:0,"data-orientation":o},f,{ref:g,style:{outline:"none",...e.style},onMouseDown:cr(e.onMouseDown,()=>{O.current=!0}),onFocus:cr(e.onFocus,F=>{let D=!O.current;if(F.target===F.currentTarget&&D&&!T){let V=new CustomEvent(HE,hz);if(F.currentTarget.dispatchEvent(V),!V.defaultPrevented){let U=C().filter(be=>be.focusable),Q=U.find(be=>be.active),me=U.find(be=>be.id===b),se=[Q,me,...U].filter(Boolean).map(be=>be.ref.current);Y3(se)}}O.current=!1}),onBlur:cr(e.onBlur,()=>k(!1))})))}),Sz="RovingFocusGroupItem",Tz=(0,kt.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:o=!0,active:i=!1,tabStopId:a,...s}=e,c=sc(),d=a||c,u=yz(Sz,r),f=u.currentTabStopId===d,m=K3(r),{onFocusableItemAdd:g,onFocusableItemRemove:h}=u;return(0,kt.useEffect)(()=>{if(o)return g(),()=>h()},[o,g,h]),(0,kt.createElement)(UE.ItemSlot,{scope:r,id:d,focusable:o,active:i},(0,kt.createElement)(jt.span,Ye({tabIndex:f?0:-1,"data-orientation":u.orientation},s,{ref:t,onMouseDown:cr(e.onMouseDown,b=>{o?u.onItemFocus(d):b.preventDefault()}),onFocus:cr(e.onFocus,()=>u.onItemFocus(d)),onKeyDown:cr(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){u.onItemShiftTab();return}if(b.target!==b.currentTarget)return;let y=_z(b,u.orientation,u.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=u.loop?Az(k,I+1):k.slice(I+1)}setTimeout(()=>Y3(k))}})})))}),Cz={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Iz(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function _z(e,t,r){let o=Iz(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Cz[o]}function Y3(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function Az(e,t){return e.map((r,o)=>e[(t+o)%e.length])}var V3=Ez,X3=Tz;var Z3="Tabs",[kz,Lge]=qn(Z3,[WE]),q3=WE(),[Pz,KE]=kz(Z3),Mz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,onValueChange:i,defaultValue:a,orientation:s="horizontal",dir:c,activationMode:d="automatic",...u}=e,f=vh(c),[m,g]=uc({prop:o,onChange:i,defaultProp:a});return(0,Pr.createElement)(Pz,{scope:r,baseId:sc(),value:m,onValueChange:g,orientation:s,dir:f,activationMode:d},(0,Pr.createElement)(jt.div,Ye({dir:f,"data-orientation":s},u,{ref:t})))}),Lz="TabsList",Rz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,loop:o=!0,...i}=e,a=KE(Lz,r),s=q3(r);return(0,Pr.createElement)(V3,Ye({asChild:!0},s,{orientation:a.orientation,dir:a.dir,loop:o}),(0,Pr.createElement)(jt.div,Ye({role:"tablist","aria-orientation":a.orientation},i,{ref:t})))}),Dz="TabsTrigger",Nz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,disabled:i=!1,...a}=e,s=KE(Dz,r),c=q3(r),d=j3(s.baseId,o),u=J3(s.baseId,o),f=o===s.value;return(0,Pr.createElement)(X3,Ye({asChild:!0},c,{focusable:!i,active:f}),(0,Pr.createElement)(jt.button,Ye({type:"button",role:"tab","aria-selected":f,"aria-controls":u,"data-state":f?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:d},a,{ref:t,onMouseDown:cr(e.onMouseDown,m=>{!i&&m.button===0&&m.ctrlKey===!1?s.onValueChange(o):m.preventDefault()}),onKeyDown:cr(e.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&s.onValueChange(o)}),onFocus:cr(e.onFocus,()=>{let m=s.activationMode!=="manual";!f&&!i&&m&&s.onValueChange(o)})})))}),Oz="TabsContent",Fz=(0,Pr.forwardRef)((e,t)=>{let{__scopeTabs:r,value:o,forceMount:i,children:a,...s}=e,c=KE(Oz,r),d=j3(c.baseId,o),u=J3(c.baseId,o),f=o===c.value,m=(0,Pr.useRef)(f);return(0,Pr.useEffect)(()=>{let g=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(g)},[]),(0,Pr.createElement)(mc,{present:i||f},({present:g})=>(0,Pr.createElement)(jt.div,Ye({"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:u,tabIndex:0},s,{ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0}}),g&&a))});function j3(e,t){return`${e}-trigger-${t}`}function J3(e,t){return`${e}-content-${t}`}var yh=Mz,Eh=Rz,wh=Nz,Sh=Fz;var Q3=w(M(),1),YE=({children:e,...t})=>(0,Q3.jsx)(Eh,{className:"sidebar-triggers",...t,children:e});YE.displayName="SidebarTabTriggers";v();var VE=w(M(),1),XE=({children:e,tab:t,onSelect:r,...o})=>(0,VE.jsx)(wh,{value:t,asChild:!0,onSelect:r,children:(0,VE.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...o,children:e})});XE.displayName="SidebarTabTrigger";v();var eP=w(M(),1),ZE=({children:e,...t})=>{let r=it(),o=ot();if(!r.openSidebar)return null;let{name:i}=r.openSidebar;return(0,eP.jsx)(yh,{className:"sidebar-tabs-root",value:r.openSidebar.tab,onValueChange:a=>o(s=>({...s,openSidebar:{...s.openSidebar,name:i,tab:a}})),...t,children:e})};ZE.displayName="SidebarTabs";v();var tP=w(M(),1),qE=({tab:e,children:t,...r})=>(0,tP.jsx)(Sh,{...r,value:e,"data-testid":e,children:t});qE.displayName="SidebarTab";var jE=w(M(),1),oP=w(j(),1),Bm=St(!1),rP=(0,ur.forwardRef)(({name:e,children:t,onDock:r,docked:o,className:i,...a},s)=>{A.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=Li(Bm,mt);(0,ur.useLayoutEffect)(()=>(d(!!o),()=>{d(!1)}),[d,o]);let u=(0,ur.useRef)({});u.current.onCloseRequest=()=>{c({openSidebar:null})},u.current.onDock=h=>r?.(h),u.current=Ss(u.current,{docked:o,shouldRenderDockButton:!!r&&o!=null});let f=(0,ur.useRef)(null);(0,ur.useImperativeHandle)(s,()=>f.current);let m=rt(),g=(0,ur.useCallback)(()=>{document.querySelector(".Dialog")||c({openSidebar:null})},[c]);return yc(f,(0,ur.useCallback)(h=>{h.target.closest(".sidebar-trigger")||(!o||!m.editor.canFitSidebar)&&g()},[g,o,m.editor.canFitSidebar])),(0,ur.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,jE.jsx)(xr,{...a,className:q("sidebar",{"sidebar--docked":o},i),ref:f,children:(0,jE.jsx)(xh.Provider,{value:u.current,children:t})})});rP.displayName="SidebarInner";var Gi=Object.assign((0,ur.forwardRef)((e,t)=>{let r=it(),{onStateChange:o}=e,i=(0,ur.useRef)(r.openSidebar);(0,ur.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,ur.useState)(!1);return(0,ur.useLayoutEffect)(()=>(s(!0),()=>s(!1)),[]),a&&r.openSidebar?.name===e.name?(0,oP.createElement)(rP,{...e,ref:t,key:e.name}):null}),{Header:zE,TabTriggers:YE,TabTrigger:XE,Tabs:ZE,Tab:qE,Trigger:$E});Gi.displayName="Sidebar";v();var QE={};bS(QE,{ChangeCanvasBackground:()=>fP,ClearCanvas:()=>uP,CommandPalette:()=>dP,Export:()=>gP,Help:()=>mP,LiveCollaborationTrigger:()=>bP,LoadScene:()=>lP,SaveAsImage:()=>cP,SaveToActiveFile:()=>sP,Socials:()=>hP,ToggleTheme:()=>pP});v();v();var JE=St({active:!1});async function nP({title:e,description:t,actionLabel:r,color:o}){return new Promise(i=>{Hr.set(JE,{active:!0,onConfirm:()=>i(!0),onClose:()=>i(!1),onReject:()=>i(!1),title:e,description:t,actionLabel:r,color:o})})}v();var Wi=w(M(),1),iP=({value:e,shortcut:t,onChange:r,choices:o,children:i,name:a})=>{let s=rt();return(0,Wi.jsxs)(Wi.Fragment,{children:[(0,Wi.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,Wi.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:a,children:i}),(0,Wi.jsx)(dh,{name:a,value:e,onChange:r,choices:o})]}),t&&!s.editor.isMobile&&(0,Wi.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:t})]})};iP.displayName="DropdownMenuItemContentRadio";var aP=iP;var $t=w(M(),1),lP=()=>{let{t:e}=lr(),t=yr(),r=La();return t.isActionEnabled(_c)?(0,$t.jsx)(To,{icon:Ls,onSelect:async()=>{(!r.length||await nP({title:e("overwriteConfirm.modal.loadFromFile.title"),actionLabel:e("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,$t.jsx)(co,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:i=>(0,$t.jsx)("strong",{children:i}),br:()=>(0,$t.jsx)("br",{})})}))&&t.executeAction(_c)},"data-testid":"load-button",shortcut:mr("loadScene"),"aria-label":e("buttons.load"),children:e("buttons.load")}):null};lP.displayName="LoadScene";var sP=()=>{let{t:e}=lr(),t=yr();return t.isActionEnabled(Pg)?(0,$t.jsx)(To,{shortcut:mr("saveScene"),"data-testid":"save-button",onSelect:()=>t.executeAction(Pg),icon:K2,"aria-label":`${e("buttons.save")}`,children:`${e("buttons.save")}`}):null};sP.displayName="SaveToActiveFile";var cP=()=>{let e=ot(),{t}=lr();return(0,$t.jsx)(To,{icon:Cp,"data-testid":"image-export-button",onSelect:()=>e({openDialog:{name:"imageExport"}}),shortcut:mr("imageExport"),"aria-label":t("buttons.exportImage"),children:t("buttons.exportImage")})};cP.displayName="SaveAsImage";var dP=e=>{let t=ot(),{t:r}=lr();return(0,$t.jsx)(To,{icon:Dp,"data-testid":"command-palette-button",onSelect:()=>{ze("command_palette","open","menu"),t({openDialog:{name:"commandPalette"}})},shortcut:mr("commandPalette"),"aria-label":r("commandPalette.title"),className:e?.className,children:r("commandPalette.title")})};dP.displayName="CommandPalette";var mP=()=>{let{t:e}=lr(),t=yr();return(0,$t.jsx)(To,{"data-testid":"help-menu-item",icon:Ms,onSelect:()=>t.executeAction($l),shortcut:"?","aria-label":e("helpDialog.title"),children:e("helpDialog.title")})};mP.displayName="Help";var uP=()=>{let{t:e}=lr(),t=Li(Zl,mt);return yr().isActionEnabled(zi)?(0,$t.jsx)(To,{icon:kn,onSelect:()=>t("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":e("buttons.clearReset"),children:e("buttons.clearReset")}):null};uP.displayName="ClearCanvas";var pP=e=>{let{t}=lr(),r=it(),o=yr(),i=mr("toggleTheme");return o.isActionEnabled(Nl)?e?.allowSystemTheme?(0,$t.jsx)(aP,{name:"theme",value:e.theme,onChange:a=>e.onSelect(a),choices:[{value:Be.LIGHT,label:Nd,ariaLabel:`${t("buttons.lightMode")} - ${i}`},{value:Be.DARK,label:Dd,ariaLabel:`${t("buttons.darkMode")} - ${i}`},{value:"system",label:eC,ariaLabel:t("buttons.systemMode")}],children:t("labels.theme")}):(0,$t.jsx)(To,{onSelect:a=>{if(a.preventDefault(),e?.onSelect)e.onSelect(r.theme===Be.DARK?Be.LIGHT:Be.DARK);else return o.executeAction(Nl)},icon:r.theme===Be.DARK?Nd:Dd,"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};pP.displayName="ToggleTheme";var fP=()=>{let{t:e}=lr(),t=it(),r=yr(),o=ei();return t.viewModeEnabled||!o.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,$t.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,$t.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:e("labels.canvasBackground")}),(0,$t.jsx)("div",{style:{padding:"0 0.625rem"},children:r.renderAction("changeViewBackgroundColor")})]})};fP.displayName="ChangeCanvasBackground";var gP=()=>{let{t:e}=lr(),t=ot();return(0,$t.jsx)(To,{icon:bl,onSelect:()=>{t({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":e("buttons.export"),children:e("buttons.export")})};gP.displayName="Export";var hP=()=>{let{t:e}=lr();return(0,$t.jsxs)($t.Fragment,{children:[(0,$t.jsx)(Fc,{icon:Sp,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,$t.jsx)(Fc,{icon:G2,href:"https://x.com/excalidraw","aria-label":"X",children:e("labels.followUs")}),(0,$t.jsx)(Fc,{icon:U2,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:e("labels.discordChat")})]})};hP.displayName="Socials";var bP=({onSelect:e,isCollaborating:t})=>{let{t:r}=lr();return(0,$t.jsx)(To,{"data-testid":"collab-button",icon:Ip,className:q({"active-collab":t}),onSelect:e,children:r("labels.liveCollaboration")})};bP.displayName="LiveCollaborationTrigger";v();var Th=w(j(),1);var xP=w(M(),1),Ki=(e,t)=>{let r=St(0),o=i=>{let{jotaiScope:a}=At(),[,s]=Ve(r,a),c=(0,Th.useRef)({preferHost:!1,counter:0});return(0,Th.useLayoutEffect)(()=>{let d=c.current;return s(u=>{let f=u+1;return d.counter=f,f}),()=>{s(u=>{let f=u-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,xP.jsx)(t,{...i})};return o.displayName=e,o};var Yi=w(M(),1),Bz=Object.assign(Ki("MainMenu",({children:e,onSelect:t})=>{let{MainMenuTunnel:r}=At(),o=rt(),i=it(),a=ot(),s=o.editor.isMobile?void 0:()=>a({openMenu:null});return(0,Yi.jsx)(r.In,{children:(0,Yi.jsxs)(st,{open:i.openMenu==="canvas",children:[(0,Yi.jsx)(st.Trigger,{onToggle:()=>{a({openMenu:i.openMenu==="canvas"?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:wp}),(0,Yi.jsxs)(st.Content,{onClickOutside:s,onSelect:ua(t,()=>{a({openMenu:null})}),children:[e,o.editor.isMobile&&i.collaborators.size>0&&(0,Yi.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,Yi.jsx)("legend",{children:E("labels.collaborators")}),(0,Yi.jsx)(bh,{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:QE}),uo=Bz;v();v();var Vi=w(M(),1),Ch=({title:e,children:t,actionLabel:r,onClick:o})=>(0,Vi.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,Vi.jsx)("h4",{children:e}),(0,Vi.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:t}),(0,Vi.jsx)(oi,{variant:"outlined",color:"muted",label:r,size:"large",fullWidth:!0,onClick:o})]}),zz=()=>{let{t:e}=lr(),t=yr(),r=ot();return(0,Vi.jsx)(Ch,{title:e("overwriteConfirm.action.exportToImage.title"),actionLabel:e("overwriteConfirm.action.exportToImage.button"),onClick:()=>{t.executeAction(kg,"ui",!0),r({openDialog:{name:"imageExport"}})},children:e("overwriteConfirm.action.exportToImage.description")})},$z=()=>{let{t:e}=lr(),t=yr();return(0,Vi.jsx)(Ch,{title:e("overwriteConfirm.action.saveToDisk.title"),actionLabel:e("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{t.executeAction(Em,"ui")},children:e("overwriteConfirm.action.saveToDisk.description")})},e0=Object.assign(({children:e})=>(0,Vi.jsx)("div",{className:"OverwriteConfirm__Actions",children:e}),{ExportToImage:zz,SaveToDisk:$z});var pn=w(M(),1),Ih=Object.assign(Ki("OverwriteConfirmDialog",({children:e})=>{let{OverwriteConfirmDialogTunnel:t}=At(),[r,o]=Ve(JE,mt);if(!r.active)return null;let i=()=>{r.onClose(),o(s=>({...s,active:!1}))},a=()=>{r.onConfirm(),o(s=>({...s,active:!1}))};return(0,pn.jsx)(t.In,{children:(0,pn.jsx)(zt,{onCloseRequest:i,title:!1,size:916,children:(0,pn.jsxs)("div",{className:"OverwriteConfirm",children:[(0,pn.jsx)("h3",{children:r.title}),(0,pn.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${r.color}`,children:[(0,pn.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:OT}),(0,pn.jsx)("div",{children:r.description}),(0,pn.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,pn.jsx)(oi,{color:r.color,size:"large",label:r.actionLabel,onClick:a})]}),(0,pn.jsx)(e0,{children:e})]})})})}),{Actions:e0,Action:Ch});v();var fn=w(M(),1),EP=w(j(),1),vP=Ki("DefaultSidebarTrigger",e=>{let{DefaultSidebarTriggerTunnel:t}=At();return(0,fn.jsx)(t.In,{children:(0,fn.jsx)(Gi.Trigger,{...e,className:"default-sidebar-trigger",name:In.name})})});vP.displayName="DefaultSidebarTrigger";var yP=({children:e,...t})=>{let{DefaultSidebarTabTriggersTunnel:r}=At();return(0,fn.jsx)(r.In,{children:(0,fn.jsx)(Gi.TabTriggers,{...t,children:e})})};yP.displayName="DefaultTabTriggers";var _h=Object.assign(Ki("DefaultSidebar",({children:e,className:t,onDock:r,docked:o,...i})=>{let a=it(),s=ot(),{DefaultSidebarTabTriggersTunnel:c}=At();return(0,EP.createElement)(Gi,{...i,name:"default",key:"default",className:q("default-sidebar",t),docked:o??a.defaultSidebarDockedPreference,onDock:r===!1||!r&&o!=null?void 0:ua(r,d=>{s({defaultSidebarDockedPreference:d})})},(0,fn.jsxs)(Gi.Tabs,{children:[(0,fn.jsxs)(Gi.Header,{children:[i.__fallback&&(0,fn.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,fn.jsx)(c.Out,{})]}),(0,fn.jsx)(Gi.Tab,{tab:cp,children:(0,fn.jsx)(D5,{})}),e]}))}),{Trigger:vP,TabTriggers:yP});v();var zm=w(M(),1),Hz="small",wP=e=>(0,zm.jsxs)("label",{className:q("ToolIcon ToolIcon__LaserPointer",`ToolIcon_size_${Hz}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,zm.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,zm.jsx)("div",{className:"ToolIcon__icon",children:Lp})]});v();var r0=w(j(),1);v();var SP=w(M(),1),Gc=e=>(0,SP.jsx)("p",{className:"excalidraw__paragraph",style:e.style,children:e.children});v();var t0=w(j(),1);var CP=w(M(),1),TP=e=>{let t=ot(),r=(0,t0.useRef)(null),o=(0,t0.useRef)(0);return(0,CP.jsx)(yh,{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"&&Dx(["text-to-diagram","diagram-to-code"],i)?t({openDialog:{name:e.dialog,tab:i,source:"settings"}}):e.dialog==="ttd"&&Dx(["text-to-diagram","mermaid"],i)&&t({openDialog:{name:e.dialog,tab:i}})},children:e.children})};TP.displayName="TTDDialogTabs";var Ah=TP;v();var IP=w(M(),1),Wc=({tab:e,children:t,...r})=>(0,IP.jsx)(Sh,{...r,value:e,children:t});Wc.displayName="TTDDialogTab";var ir=w(M(),1),_P=e=>{let[t,r]=(0,r0.useState)(e.openAIKey||""),[o,i]=(0,r0.useState)(e.isPersisted),a=it(),s=()=>{e.onConfirm(t.trim(),o)};return a.openDialog?.name!=="settings"?null:(0,ir.jsx)(zt,{onCloseRequest:()=>{e.onClose(),e.onConfirm(t.trim(),o)},title:(0,ir.jsxs)("div",{style:{display:"flex"},children:["Wireframe to Code (AI)"," ",(0,ir.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,ir.jsx)(Ah,{dialog:"settings",tab:a.openDialog.tab,children:(0,ir.jsxs)(Wc,{tab:"diagram-to-code",children:[(0,ir.jsxs)(Gc,{children:["For the diagram-to-code feature we use"," ",(0,ir.jsx)(mn,{icon:Fd}),"OpenAI."]}),(0,ir.jsxs)(Gc,{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,ir.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,ir.jsx)("a",{href:"https://platform.openai.com/api-keys",rel:"noopener noreferrer",target:"_blank",children:"generate your own API key"}),"."]}),(0,ir.jsx)(Gc,{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,ir.jsx)(eh,{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,ir.jsx)(Gc,{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,ir.jsx)(zl,{checked:o,onChange:i,children:"Persist API key in browser storage"}),(0,ir.jsxs)(Gc,{children:["Once API key is set, you can use the ",(0,ir.jsx)(mn,{icon:Ds})," ","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,ir.jsx)("b",{children:"AI Settings"})," ",(0,ir.jsx)(mn,{icon:Fd}),"."]}),(0,ir.jsx)(oi,{className:"MagicSettings__confirm",size:"large",label:"Confirm",onClick:s})]})})})};v();v();var zn=w(j(),1);v();var Uz=({canvasRef:e,setError:t})=>{let r=e.current;if(!r)return;let o=r.parentElement;o&&(o.style.background="",t(null),r.replaceChildren())},kh=async({canvasRef:e,mermaidToExcalidrawLib:t,mermaidDefinition:r,setError:o,data:i})=>{let a=e.current,s=a?.parentElement;if(!(!a||!s)){if(!r){Uz({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:u,files:f}=d;o(null),i.current={elements:Kc(u,{regenerateIds:!0}),files:f};let m=await Tl({elements:i.current.elements,files:i.current.files,exportPadding:ca,maxWidthOrHeight:Math.max(s.offsetWidth,s.offsetHeight)*window.devicePixelRatio});try{await Ci(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}}},$m=e=>{Io.set(qo.MERMAID_TO_EXCALIDRAW,e)},Ph=({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&&$m(r))};v();var AP=w(M(),1),Mh=({children:e})=>(0,AP.jsx)("div",{className:"ttd-dialog-panels",children:e});v();var ii=w(M(),1),Yc=({label:e,children:t,panelAction:r,panelActionDisabled:o=!1,onTextSubmitInProgess:i,renderTopRight:a,renderSubmitShortcut:s,renderBottomRight:c})=>(0,ii.jsxs)("div",{className:"ttd-dialog-panel",children:[(0,ii.jsxs)("div",{className:"ttd-dialog-panel__header",children:[(0,ii.jsx)("label",{children:e}),a?.()]}),t,(0,ii.jsxs)("div",{className:q("ttd-dialog-panel-button-container",{invisible:!r}),style:{display:"flex",alignItems:"center"},children:[(0,ii.jsxs)(ti,{className:"ttd-dialog-panel-button",onSelect:r?r.action:()=>{},disabled:o||i,children:[(0,ii.jsxs)("div",{className:q({invisible:i}),children:[r?.label,r?.icon&&(0,ii.jsx)("span",{children:r.icon})]}),i&&(0,ii.jsx)(Dr,{})]}),!o&&!i&&s?.(),c?.()]})]});v();var Hm=w(j(),1);var kP=w(M(),1),Lh=({input:e,placeholder:t,onChange:r,onKeyboardSubmit:o})=>{let i=(0,Hm.useRef)(null),a=(0,Hm.useRef)(o);return a.current=o,(0,Hm.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,kP.jsx)("textarea",{className:"ttd-dialog-input",onChange:r,value:e,placeholder:t,autoFocus:!0,ref:i})};v();var Ga=w(M(),1),Gz=({error:e})=>(0,Ga.jsxs)("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",(0,Ga.jsx)("p",{children:e})]}),Rh=({error:e,canvasRef:t,loaded:r})=>(0,Ga.jsxs)("div",{className:"ttd-dialog-output-wrapper",children:[e&&(0,Ga.jsx)(Gz,{error:e.message}),r?(0,Ga.jsx)("div",{ref:t,style:{opacity:e?"0.15":1},className:"ttd-dialog-output-canvas-container"}):(0,Ga.jsx)(Dr,{size:"2rem"})]});v();var Um=w(M(),1),Dh=()=>(0,Um.jsxs)("div",{className:"ttd-dialog-submit-shortcut",children:[(0,Um.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("CtrlOrCmd")}),(0,Um.jsx)("div",{className:"ttd-dialog-submit-shortcut__key",children:X("Enter")})]});var Xr=w(M(),1),Wz=`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"),xe("ai","mermaid parse failed","ttd"),z(new Error("Generated an invalid diagram :(. You may also try a different prompt."))}}catch(I){let M=I.message;(!M||M==="Failed to fetch")&&(M="Request failed"),z(new Error(M))}finally{u(!1)}},E=(0,sr.useRef)(x);E.current=x;let[T,C]=(0,sr.useState)({loaded:!1,api:import("./excalidraw-assets/dist-54276HPL.js")});(0,sr.useEffect)(()=>{(async()=>{await T.api,C(M=>({...M,loaded:!0}))})()},[T.api]);let w=(0,sr.useRef)({elements:[],files:null}),[A,z]=(0,sr.useState)(null);return(0,Je.jsx)(et,{className:"ttd-dialog",onCloseRequest:()=>{o.setOpenDialog(null)},size:1200,title:!1,...e,autofocus:!1,children:(0,Je.jsxs)(lp,{dialog:"ttd",tab:t,children:["__fallback"in e&&e.__fallback?(0,Je.jsx)("p",{className:"dialog-mermaid-title",children:g("mermaid.title")}):(0,Je.jsxs)(yg,{children:[(0,Je.jsx)(fp,{tab:"text-to-diagram",children:(0,Je.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[g("labels.textToDiagram"),(0,Je.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,Je.jsx)(fp,{tab:"mermaid",children:"Mermaid"})]}),(0,Je.jsx)(qa,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Je.jsx)(b5,{mermaidToExcalidrawLib:T})}),!("__fallback"in e)&&(0,Je.jsxs)(qa,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Je.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,Je.jsxs)(dp,{children:[(0,Je.jsx)(Ja,{label:g("labels.prompt"),panelAction:{action:x,label:"Generate",icon:da},onTextSubmitInProgess:m,panelActionDisabled:d.length>Qa||f?.rateLimitRemaining===0,renderTopRight:()=>f?(0,Je.jsxs)("div",{className:"ttd-dialog-rate-limit",style:{fontSize:12,marginLeft:"auto",color:f.rateLimitRemaining===0?"var(--color-danger)":void 0},children:[f.rateLimitRemaining," requests left today"]}):null,renderSubmitShortcut:()=>(0,Je.jsx)(up,{}),renderBottomRight:()=>{if(typeof i?.generatedResponse=="string")return(0,Je.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof i?.generatedResponse=="string"&&(Is(i.generatedResponse),r({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Je.jsx)(Dn,{icon:da})]});let I=d.length/Qa;return I>.8?(0,Je.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:I>1?"var(--color-danger)":void 0},children:["Length: ",d.length,"/",Qa]}):null},children:(0,Je.jsx)(mp,{onChange:c,input:l,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{E.current()}})}),(0,Je.jsx)(Ja,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),cp({app:o,data:w})},label:"Insert",icon:da},children:(0,Je.jsx)(pp,{canvasRef:n,error:A,loaded:T.loaded})})]})]})]})})});var q=v(k(),1),Gk=({UIOptions:t})=>(0,q.jsxs)(lo,{__fallback:!0,children:[(0,q.jsx)(lo.DefaultItems.LoadScene,{}),(0,q.jsx)(lo.DefaultItems.SaveToActiveFile,{}),t.canvasActions.export&&(0,q.jsx)(lo.DefaultItems.Export,{}),t.canvasActions.saveAsImage&&(0,q.jsx)(lo.DefaultItems.SaveAsImage,{}),(0,q.jsx)(lo.DefaultItems.Help,{}),(0,q.jsx)(lo.DefaultItems.ClearCanvas,{}),(0,q.jsx)(lo.Separator,{}),(0,q.jsx)(lo.Group,{title:"Excalidraw links",children:(0,q.jsx)(lo.DefaultItems.Socials,{})}),(0,q.jsx)(lo.Separator,{}),(0,q.jsx)(lo.DefaultItems.ToggleTheme,{}),(0,q.jsx)(lo.DefaultItems.ChangeCanvasBackground,{})]}),Vk=()=>(0,q.jsxs)(ip,{__fallback:!0,children:[(0,q.jsx)(ip.Actions.SaveToDisk,{}),(0,q.jsx)(ip.Actions.ExportToImage,{})]}),Kk=({actionManager:t,appState:e,files:o,setAppState:r,elements:n,canvas:i,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,showExitZenModeBtn:d,renderTopRightUI:c,renderCustomStats:m,UIOptions:u,onExportImage:f,renderWelcomeScreen:b,children:x,app:E,isCollaborating:T,openAIKey:C,isOpenAIKeyPersisted:w,onOpenAIAPIKeyChange:A,onMagicSettingsConfirm:z})=>{let I=Me(),M=Vw(),[_,U]=Se(Tn,Ne),D=()=>u.canvasActions.export?(0,q.jsx)(C3,{elements:n,appState:e,files:o,actionManager:t,exportOpts:u.canvasActions.export,canvas:i,setAppState:r}):null,G=()=>!u.canvasActions.saveAsImage||e.openDialog?.name!=="imageExport"?null:(0,q.jsx)(d3,{elements:n,appState:e,files:o,actionManager:t,onExportImage:f,onCloseRequest:()=>r({openDialog:null}),name:E.getName()}),O=()=>(0,q.jsxs)("div",{style:{position:"relative"},children:[(0,q.jsx)(M.MainMenuTunnel.Out,{}),b&&(0,q.jsx)(M.WelcomeScreenMenuHintTunnel.Out,{})]}),B=()=>(0,q.jsx)(Nn,{heading:"selectedShapeActions",className:$("selected-shape-actions zen-mode-transition",{"transition-left":e.zenModeEnabled}),children:(0,q.jsx)(zt,{className:Xs.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${e.height-166}px`},children:(0,q.jsx)(Nm,{appState:e,elementsMap:E.scene.getNonDeletedElementsMap(),renderAction:t.renderAction})})}),te=()=>{let me=ea(e,n);return(0,q.jsx)(Gm,{side:"top",children:(0,q.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,q.jsxs)(Pt.Col,{gap:6,className:$("App-menu_top__left"),children:[O(),me&&B()]}),!e.viewModeEnabled&&(0,q.jsx)(Nn,{heading:"shapes",className:"shapes-section",children:j=>(0,q.jsxs)("div",{style:{position:"relative"},children:[b&&(0,q.jsx)(M.WelcomeScreenToolbarHintTunnel.Out,{}),(0,q.jsx)(Pt.Col,{gap:4,align:"start",children:(0,q.jsxs)(Pt.Row,{gap:1,className:$("App-toolbar-container",{"zen-mode":e.zenModeEnabled}),children:[(0,q.jsxs)(zt,{padding:1,className:$("App-toolbar",{"zen-mode":e.zenModeEnabled}),children:[(0,q.jsx)(Vm,{appState:e,isMobile:I.editor.isMobile,device:I,app:E}),j,(0,q.jsxs)(Pt.Row,{gap:1,children:[(0,q.jsx)(Ym,{zenModeEnabled:e.zenModeEnabled,checked:e.penMode,onChange:()=>s(null),title:g("toolBar.penMode"),penDetected:e.penDetected}),(0,q.jsx)(Km,{checked:e.activeTool.locked,onChange:a,title:g("toolBar.lock")}),(0,q.jsx)("div",{className:"App-toolbar__divider"}),(0,q.jsx)(jm,{checked:Fr(e),onChange:()=>l(),title:g("toolBar.hand"),isMobile:!0}),(0,q.jsx)(Om,{appState:e,activeTool:e.activeTool,UIOptions:u,app:E})]})]}),T&&(0,q.jsx)(zt,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,q.jsx)(s5,{title:g("toolBar.laser"),checked:e.activeTool.type===ut.laser,onChange:()=>E.setActiveTool({type:ut.laser}),isMobile:!0})})]})})]})}),(0,q.jsxs)("div",{className:$("layer-ui__wrapper__top-right zen-mode-transition",{"transition-right":e.zenModeEnabled}),children:[e.collaborators.size>0&&(0,q.jsx)(Xm,{collaborators:e.collaborators,userToFollow:e.userToFollow?.socketId||null}),c?.(I.editor.isMobile,e),!e.viewModeEnabled&&(!ve||e.openSidebar?.name!==jo.name)&&(0,q.jsx)(M.DefaultSidebarTriggerTunnel.Out,{})]})]})})},oe=()=>(0,q.jsx)(ap,{__fallback:!0,onDock:me=>{xe("sidebar",`toggleDock (${me?"dock":"undock"})`,`(${I.editor.isMobile?"mobile":"desktop"})`)}}),ve=Bl(Ts,Ne),Ie=(0,q.jsxs)(q.Fragment,{children:[x,(0,q.jsx)(Gk,{UIOptions:u}),(0,q.jsx)(ap.Trigger,{__fallback:!0,icon:cd,title:sn(g("toolBar.library")),onToggle:me=>{me&&xe("sidebar",`${jo.name} (open)`,`button (${I.editor.isMobile?"mobile":"desktop"})`)},tab:jo.defaultTab,children:g("toolBar.library")}),(0,q.jsx)(Vk,{}),e.openDialog?.name==="ttd"&&(0,q.jsx)(Sg,{__fallback:!0}),e.isLoading&&(0,q.jsx)(ld,{delay:250}),e.errorMessage&&(0,q.jsx)(c3,{onClose:()=>r({errorMessage:null}),children:e.errorMessage}),_&&!I.editor.isMobile&&(0,q.jsx)(VE,{colorPickerType:_.colorPickerType,onCancel:()=>{U(null)},onChange:(me,j,R,{altKey:N})=>{if(!(me!=="elementBackground"&&me!=="elementStroke"))if(R.length){for(let K of R)re(K,{[N&&_.swapPreviewOnAlt?me==="elementBackground"?"strokeColor":"backgroundColor":me==="elementBackground"?"backgroundColor":"strokeColor"]:j},!1),Lo.delete(K);ko.getScene(R[0])?.informMutation()}else r(me==="elementBackground"?{currentItemBackgroundColor:j}:{currentItemStrokeColor:j})},onSelect:(me,j)=>{U(R=>R?.keepOpenOnAlt&&j.altKey?R:null),_?.onSelect?.(me,j)}}),e.openDialog?.name==="help"&&(0,q.jsx)(E3,{onClose:()=>{r({openDialog:null})}}),e.openDialog?.name==="settings"&&(0,q.jsx)(u5,{openAIKey:C,isPersisted:w,onChange:A,onConfirm:(me,j)=>{let R=e.openDialog?.name==="settings"?e.openDialog?.source:"settings";r({openDialog:null},()=>{z(me,j,R)})},onClose:()=>{r({openDialog:null})}}),(0,q.jsx)(Jw,{}),(0,q.jsx)(M.OverwriteConfirmDialogTunnel.Out,{}),G(),D(),e.pasteDialog.shown&&(0,q.jsx)(x3,{setAppState:r,appState:e,onClose:()=>r({pasteDialog:{shown:!1,data:null}})}),I.editor.isMobile&&(0,q.jsx)(g3,{app:E,appState:e,elements:n,actionManager:t,renderJSONExportDialog:D,renderImageExportDialog:G,setAppState:r,onLockToggle:a,onHandToolToggle:l,onPenModeToggle:s,renderTopRightUI:c,renderCustomStats:m,renderSidebars:oe,device:I,renderWelcomeScreen:b,UIOptions:u}),!I.editor.isMobile&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)("div",{className:"layer-ui__wrapper",style:e.openSidebar&&ve&&I.editor.canFitSidebar?{width:`calc(100% - ${L1}px)`}:{},children:[b&&(0,q.jsx)(M.WelcomeScreenCenterTunnel.Out,{}),te(),(0,q.jsx)(I3,{appState:e,actionManager:t,showExitZenModeBtn:d,renderWelcomeScreen:b}),e.showStats&&(0,q.jsx)(Zm,{appState:e,setAppState:r,elements:n,onClose:()=>{t.executeAction(Mn)},renderCustomStats:m}),e.scrolledOutside&&(0,q.jsx)("button",{className:"scroll-back-to-content",onClick:()=>{r(me=>({...oi(n,me)}))},children:g("buttons.scrollBackToContent")})]}),oe()]})]});return(0,q.jsx)(jf.Provider,{value:e,children:(0,q.jsx)(ed,{scope:M.jotaiScope,children:(0,q.jsx)(zh.Provider,{value:M,children:Ie})})})},v5=t=>{let{suggestedBindings:e,startBoundElement:o,cursorButton:r,scrollX:n,scrollY:i,...a}=t;return a},Yk=(t,e)=>{if(t.children!==e.children)return!1;let{canvas:o,appState:r,...n}=t,{canvas:i,appState:a,...l}=e;return kt(v5(r),v5(a),{selectedElementIds:kt,selectedGroupIds:kt})&&kt(n,l)},y5=E5.default.memo(Kk,Yk);h();var el=v(H(),1);var Ls=v(k(),1),Zk=5e3,w5=({message:t,onClose:e,closable:o=!1,duration:r=Zk,style:n})=>{let i=(0,el.useRef)(0),a=r!==1/0,l=(0,el.useCallback)(()=>{a&&(i.current=window.setTimeout(()=>e(),r))},[e,r,a]);return(0,el.useEffect)(()=>{if(a)return l(),()=>clearTimeout(i.current)},[l,t,r,a]),(0,Ls.jsxs)("div",{className:"Toast",onMouseEnter:a?()=>clearTimeout(i?.current):void 0,onMouseLeave:a?l:void 0,style:n,children:[(0,Ls.jsx)("p",{className:"Toast__message",children:t}),o&&(0,Ls.jsx)(ce,{icon:Ro,"aria-label":"close",type:"icon",onClick:e,className:"close"})]})};h();var Tg=W({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:pa,viewMode:!0,trackEvent:{category:"canvas",predicate:t=>!t.viewModeEnabled},perform(t,e){return{appState:{...e,viewModeEnabled:!this.checked(e)},storeAction:P.NONE}},checked:t=>t.viewModeEnabled,predicate:(t,e,o)=>typeof o.viewModeEnabled>"u",keyTest:t=>!t[S.CTRL_OR_CMD]&&t.altKey&&t.code===fe.R});var s6=v(Nh(),1);h();var hp=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=>se(r)&&!xt(r)?(Lo.delete(r),o=!0,he(r,{...Ob(r,Nr(r,this.scene.getNonDeletedElementsMap()),this.scene.getNonDeletedElementsMap())})):r),o&&this.onSceneUpdated()};loadFontsForElements=async e=>{let o=await Promise.all([...new Set(e.filter(r=>se(r)).map(r=>r.fontFamily))].map(r=>{let n=Xo({fontFamily:r,fontSize:16});if(!document.fonts?.check?.(n))return document.fonts?.load?.(n)}));this.onFontsLoaded(o.flat().filter(Boolean))}};h();var C5=(t,e)=>{let o=e.scene.getSelectedElements(t);return o.length===1&&Ee(o[0])},S5=W({name:"selectAllElementsInFrame",label:"labels.selectAllElementsInFrame",trackEvent:{category:"canvas"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;if(Ee(n)){let i=bn(ye(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),{})},storeAction:P.CAPTURE}}return{elements:t,appState:e,storeAction:P.NONE}},predicate:(t,e,o,r)=>C5(e,r)}),T5=W({name:"removeAllElementsFromFrame",label:"labels.removeAllElementsFromFrame",trackEvent:{category:"history"},perform:(t,e,o,r)=>{let n=r.scene.getSelectedElements(e).at(0)||null;return Ee(n)?{elements:I0(t,n),appState:{...e,selectedElementIds:{[n.id]:!0}},storeAction:P.CAPTURE}:{elements:t,appState:e,storeAction:P.NONE}},predicate:(t,e,o,r)=>C5(e,r)}),Yne=W({name:"updateFrameRendering",label:"labels.updateFrameRendering",viewMode:!0,trackEvent:{category:"canvas"},perform:(t,e)=>({elements:t,appState:{...e,frameRendering:{...e.frameRendering,enabled:!e.frameRendering.enabled}},storeAction:P.NONE}),checked:t=>t.frameRendering.enabled}),Zne=W({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:bd,viewMode:!1,perform:(t,e,o,r)=>{let n=it(e,{type:"frame"});return qo(r.interactiveCanvas,{...e,activeTool:n}),{elements:t,appState:{...e,activeTool:it(e,{type:"frame"})},storeAction:P.NONE}},keyTest:t=>!t[S.CTRL_OR_CMD]&&!t.shiftKey&&!t.altKey&&t.key.toLocaleLowerCase()===S.F});h();var jk=8,k5=99999,gp=t=>jk/t,Wo=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}},nn=({event:t,appState:e,selectedElements:o})=>t?e.objectsSnapModeEnabled&&!t[S.CTRL_OR_CMD]||!e.objectsSnapModeEnabled&&t[S.CTRL_OR_CMD]&&e.gridSize===null:o.length===1&&o[0].type==="arrow"?!1:e.objectsSnapModeEnabled,Xk=(t,e,o=.01)=>Math.abs(t-e)<=o,Ps=(t,e,{omitCenter:o,boundingBoxCorners:r,dragOffset:n}={omitCenter:!1,boundingBoxCorners:!1})=>{let i=[];if(t.length===1){let a=t[0],[l,s,d,c,m,u]=Wt(a,e);n&&(l+=n.x,d+=n.x,m+=n.x,s+=n.y,c+=n.y,u+=n.y);let f=(d-l)/2,b=(c-s)/2;if((a.type==="diamond"||a.type==="ellipse")&&!r){let x=Dr([l,s+b],[m,u],a.angle),E=Dr([l+f,s],[m,u],a.angle),T=Dr([d,s+b],[m,u],a.angle),C=Dr([l+f,c],[m,u],a.angle);i=o?[x,E,T,C]:[x,E,T,C,[m,u]]}else{let x=Dr([l,s],[m,u],a.angle),E=Dr([d,s],[m,u],a.angle),T=Dr([l,c],[m,u],a.angle),C=Dr([d,c],[m,u],a.angle);i=o?[x,E,T,C]:[x,E,T,C,[m,u]]}}else if(t.length>1){let[a,l,s,d]=Sc(t,n??{x:0,y:0}),c=s-a,m=d-l,u=[a,l],f=[s,l],b=[a,d],x=[s,d],E=[a+c/2,l+m/2];i=o?[u,f,b,x]:[u,f,b,x,E]}return i.map(a=>[ot(a[0]),ot(a[1])])},M5=(t,e,o,r)=>{let n=e.filter(i=>Ee(i)).map(i=>i.id);return _u(t,e,o,r).filter(i=>!(i.frameId&&n.includes(i.frameId)))},_5=(t,e,o,r)=>{let n=M5(t,e,o,r),i=Jn(n,r).filter(m=>!(m.length===1&&xt(m[0]))).map(m=>Ze(m).map(u=>ot(u))),a=i.sort((m,u)=>m[0]-u[0]),l=[],s=0;e:for(let m=0;m<a.length;m++){let u=a[m];for(let f=m+1;f<a.length;f++){if(++s>k5)break e;let b=a[f],[,x,E,T]=u,[C,w,,A]=b;E<C&&El([x,T],[w,A])&&l.push({startBounds:u,endBounds:b,startSide:[[E,x],[E,T]],endSide:[[C,w],[C,A]],length:C-E,overlap:yl([x,T],[w,A])})}}let d=i.sort((m,u)=>m[1]-u[1]),c=[];s=0;e:for(let m=0;m<d.length;m++){let u=d[m];for(let f=m+1;f<d.length;f++){if(++s>k5)break e;let b=d[f],[x,,E,T]=u,[C,w,A]=b;T<w&&El([x,E],[C,A])&&c.push({startBounds:u,endBounds:b,startSide:[[x,T],[E,T]],endSide:[[C,w],[A,w]],length:w-T,overlap:yl([x,E],[C,A])})}}return{horizontalGaps:l,verticalGaps:c}},I5=(t,e,o,r,n,i,a)=>{if(!nn({appState:o,event:r,selectedElements:t}))return[];if(t.length===0)return[];let l=Wo.getVisibleGaps();if(l){let{horizontalGaps:s,verticalGaps:d}=l,[c,m,u,f]=Sc(t,e).map(E=>ot(E)),b=(c+u)/2,x=(m+f)/2;for(let E of s){if(!El([m,f],E.overlap))continue;let T=E.startSide[0][0]+E.length/2,C=ot(T-b);if(E.length>u-c&&Math.abs(C)<=a.x){Math.abs(C)<a.x&&(n.length=0),a.x=Math.abs(C);let D={type:"gap",direction:"center_horizontal",gap:E,offset:C};n.push(D);continue}let[,,A]=E.endBounds,z=c-A,I=ot(E.length-z);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:E,offset:I};n.push(D);continue}let[M,,,]=E.startBounds,_=M-u,U=ot(_-E.length);if(Math.abs(U)<=a.x){Math.abs(U)<a.x&&(n.length=0),a.x=Math.abs(U);let D={type:"gap",direction:"side_left",gap:E,offset:U};n.push(D);continue}}for(let E of d){if(!El([c,u],E.overlap))continue;let T=E.startSide[0][1]+E.length/2,C=ot(T-x);if(E.length>f-m&&Math.abs(C)<=a.y){Math.abs(C)<a.y&&(i.length=0),a.y=Math.abs(C);let D={type:"gap",direction:"center_vertical",gap:E,offset:C};i.push(D);continue}let[,A,,]=E.startBounds,z=A-f,I=ot(z-E.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:E,offset:I};i.push(D);continue}let[,,,M]=E.endBounds,_=ot(m-M),U=E.length-_;if(Math.abs(U)<=a.y){Math.abs(U)<a.y&&(i.length=0),a.y=Math.abs(U);let D={type:"gap",direction:"side_bottom",gap:E,offset:U};i.push(D);continue}}}},L5=(t,e,o,r)=>{let n=M5(t,e,o,r);return Jn(n,r).filter(i=>!(i.length===1&&xt(i[0]))).flatMap(i=>Ps(i,r))},tl=(t,e,o,r,n,i,a)=>{if(!nn({appState:o,event:r,selectedElements:t})||t.length===0&&e.length===0)return[];let l=Wo.getReferenceSnapPoints();if(l)for(let s of e)for(let d of l){let c=d[0]-s[0],m=d[1]-s[1];Math.abs(c)<=a.x&&(Math.abs(c)<a.x&&(n.length=0),n.push({type:"point",points:[s,d],offset:c}),a.x=Math.abs(c)),Math.abs(m)<=a.y&&(Math.abs(m)<a.y&&(i.length=0),i.push({type:"point",points:[s,d],offset:m}),a.y=Math.abs(m))}},P5=(t,e,o,r,n)=>{let i=we(t,o);if(!nn({appState:o,event:r,selectedElements:i})||i.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};e.x=ot(e.x),e.y=ot(e.y);let a=[],l=[],s=gp(o.zoom.value),d={x:s,y:s},c=Ps(i,n,{dragOffset:e});tl(i,c,o,r,a,l,d),I5(i,e,o,r,a,l,d);let m={x:a[0]?.offset??0,y:l[0]?.offset??0};d.x=0,d.y=0,a.length=0,l.length=0;let u={x:ot(e.x+m.x),y:ot(e.y+m.y)};tl(i,Ps(i,n,{dragOffset:u}),o,r,a,l,d),I5(i,u,o,r,a,l,d);let f=kg(a,l),b=Jk(i,u,[...a,...l].filter(x=>x.type==="gap"));return{snapOffset:m,snapLines:[...f,...b]}},ot=t=>Math.round(t*10**6)/10**6,A5=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())},kg=(t,e)=>{let o={},r={};if(t.length>0){for(let n of t)if(n.type==="point"){let i=ot(n.points[0][0]);o[i]||(o[i]=[]),o[i].push(...n.points.map(a=>[ot(a[0]),ot(a[1])]))}}if(e.length>0){for(let n of e)if(n.type==="point"){let i=ot(n.points[0][1]);r[i]||(r[i]=[]),r[i].push(...n.points.map(a=>[ot(a[0]),ot(a[1])]))}}return Object.entries(o).map(([n,i])=>({type:"points",points:A5(i.map(a=>[Number(n),a[1]]).sort((a,l)=>a[1]-l[1]))})).concat(Object.entries(r).map(([n,i])=>({type:"points",points:A5(i.map(a=>[a[0],Number(n)]).sort((a,l)=>a[0]-l[0]))})))},qk=t=>{let e=new Map;for(let o of t){let r=o.points.flat().map(n=>[ot(n)]).join(",");e.has(r)||e.set(r,o)}return Array.from(e.values())},Jk=(t,e,o)=>{let[r,n,i,a]=Sc(t,e),l=[];for(let s of o){let[d,c,m,u]=s.gap.startBounds,[f,b,x,E]=s.gap.endBounds,T=yl([n,a],s.gap.overlap),C=yl([r,i],s.gap.overlap);switch(s.direction){case"center_horizontal":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[s.gap.startSide[0][0],w],[r,w]]},{type:"gap",direction:"horizontal",points:[[i,w],[s.gap.endSide[0][0],w]]})}break}case"center_vertical":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,s.gap.startSide[0][1]],[w,n]]},{type:"gap",direction:"vertical",points:[[w,a],[w,s.gap.endSide[0][1]]]})}break}case"side_right":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[m,w],[f,w]]},{type:"gap",direction:"horizontal",points:[[x,w],[r,w]]})}break}case"side_left":{if(T){let w=(T[0]+T[1])/2;l.push({type:"gap",direction:"horizontal",points:[[i,w],[d,w]]},{type:"gap",direction:"horizontal",points:[[m,w],[f,w]]})}break}case"side_top":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,a],[w,c]]},{type:"gap",direction:"vertical",points:[[w,u],[w,b]]})}break}case"side_bottom":{if(C){let w=(C[0]+C[1])/2;l.push({type:"gap",direction:"vertical",points:[[w,u],[w,b]]},{type:"gap",direction:"vertical",points:[[w,E],[w,n]]})}break}}}return qk(l.map(s=>({...s,points:s.points.map(d=>[ot(d[0]),ot(d[1])])})))},R5=(t,e,o,r,n,i)=>{if(!nn({event:r,selectedElements:t,appState:o})||t.length===0||t.length===1&&!Xk(t[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[a,l,s,d]=Ze(e);i&&(i.includes("e")?s+=n.x:i.includes("w")&&(a+=n.x),i.includes("n")?l+=n.y:i.includes("s")&&(d+=n.y));let c=[];if(i)switch(i){case"e":{c.push([s,l],[s,d]);break}case"w":{c.push([a,l],[a,d]);break}case"n":{c.push([a,l],[s,l]);break}case"s":{c.push([a,d],[s,d]);break}case"ne":{c.push([s,l]);break}case"nw":{c.push([a,l]);break}case"se":{c.push([s,d]);break}case"sw":{c.push([a,d]);break}}let m=gp(o.zoom.value),u={x:m,y:m},f=[],b=[];tl(e,c,o,r,f,b,u);let x={x:f[0]?.offset??0,y:b[0]?.offset??0};u.x=0,u.y=0,f.length=0,b.length=0;let[E,T,C,w]=Ze(t).map(I=>ot(I));tl(t,[[E,T],[E,w],[C,T],[C,w]],o,r,f,b,u);let z=kg(f,b);return{snapOffset:x,snapLines:z}},D5=(t,e,o,r,n,i)=>{if(!nn({event:o,selectedElements:[t],appState:e}))return{snapOffset:{x:0,y:0},snapLines:[]};let a=[[r.x+n.x,r.y+n.y]],l=gp(e.zoom.value),s={x:l,y:l},d=[],c=[];tl([t],a,e,o,d,c,s);let m={x:d[0]?.offset??0,y:c[0]?.offset??0};s.x=0,s.y=0,d.length=0,c.length=0;let u=Ps([t],i,{boundingBoxCorners:!0,omitCenter:!0});tl([t],u,e,o,d,c,s);let f=kg(d,c);return{snapOffset:m,snapLines:f}},N5=(t,e,o,r,n)=>{if(!nn({event:r,selectedElements:[],appState:e}))return{originOffset:{x:0,y:0},snapLines:[]};let i=_u(t,[],e,n),a=gp(e.zoom.value),l={x:a,y:a},s=[],d=[];for(let c of i){let m=Ps([c],n);for(let u of m){let f=u[0]-o.x;Math.abs(f)<=Math.abs(l.x)&&(Math.abs(f)<Math.abs(l.x)&&(d.length=0),d.push({type:"pointer",points:[u,[u[0],o.y]],direction:"vertical"}),l.x=f);let b=u[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:[u,[o.x,u[1]]],direction:"horizontal"}),l.y=b)}}return{originOffset:{x:d.length>0?d[0].points[0][0]-o.x:0,y:s.length>0?s[0].points[0][1]-o.y:0},snapLines:[...d,...s]}},O5=t=>t===ut.rectangle||t===ut.ellipse||t===ut.diamond||t===ut.frame||t===ut.magicframe||t===ut.image;h();var Xt=v(k(),1),Qk=()=>(0,Xt.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line1",bold:t=>(0,Xt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line2",bold:t=>(0,Xt.jsx)("span",{style:{fontWeight:600},children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line3",link:t=>(0,Xt.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:t})})}),(0,Xt.jsx)("p",{children:(0,Xt.jsx)(no,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:t=>(0,Xt.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:t}),discordLink:t=>(0,Xt.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[t,"."]})})})]}),F5=Qk;h();var bp={width:100,height:0},Hn=100,eI=(t,e,o)=>{let r=gn({x:0,y:0,textAlign:ml.CENTER,verticalAlign:wo.MIDDLE,...e,containerId:t.id,strokeColor:e.strokeColor||t.strokeColor});return Object.assign(t,{boundElements:(t.boundElements||[]).concat({type:"text",id:r.id})}),Ut(r,t,o),[t,r]},B5=(t,e,o,r,n)=>{let i,a;if(Object.assign(t,{startBinding:t?.startBinding||null,endBinding:t.endBinding||null}),e){let c=e?.width??Hn,m=e?.height??Hn,u;e.id&&(u=r.getElement(e.id),u||console.error(`No element for start binding with id ${e.id} found`));let f=e.x||t.x-c,b=e.y||t.y-m/2,x=u?u.type:e.type;if(x){if(x==="text"){let E="";u&&u.type==="text"?E=u.text:e.type==="text"&&(E=e.text),E||console.error(`No text found for start binding text element for ${t.id}`),i=gn({x:f,y:b,type:"text",...u,...e,text:E}),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=hn({x:f,y:b,width:c,height:m,...u,...e,type:x});break}default:mc(t,`Unhandled element start type "${e.type}"`,!0)}tu(t,i,"start",n)}}if(o){let c=o?.height??Hn,m=o?.width??Hn,u;o.id&&(u=r.getElement(o.id),u||console.error(`No element for end binding with id ${o.id} found`));let f=o.x||t.x+t.width,b=o.y||t.y-c/2,x=u?u.type:o.type;if(x){if(x==="text"){let E="";u&&u.type==="text"?E=u.text:o.type==="text"&&(E=o.text),E||console.error(`No text found for end binding text element for ${t.id}`),a=gn({x:f,y:b,type:"text",...u,...o,text:E}),Object.assign(a,{y:o.y||t.y-a.height/2})}else switch(x){case"rectangle":case"ellipse":case"diamond":{a=hn({x:f,y:b,width:m,height:c,...u,...o,type:x});break}default:mc(t,`Unhandled element end type "${x}"`,!0)}tu(t,a,"end",n)}}if(t.points.length<2)return{linearElement:t,startBoundElement:i,endBoundElement:a};let l=t.points.length-1,s=.5,d=pr(t.points);return t.points[l][0]>t.points[l-1][0]&&(d[0][0]=s,d[l][0]-=s),t.points[l][0]<t.points[l-1][0]&&(d[0][0]=-s,d[l][0]+=s),t.points[l][1]>t.points[l-1][1]&&(d[0][1]=s,d[l][1]-=s),t.points[l][1]<t.points[l-1][1]&&(d[0][1]=-s,d[l][1]+=s),Object.assign(t,{points:d}),{linearElement:t,startBoundElement:i,endBoundElement:a}},Ig=class{excalidrawElements=new Map;add=e=>{e&&this.excalidrawElements.set(e.id,e)};getElements=()=>pn(Array.from(this.excalidrawElements.values()));getElementsMap=()=>uc(pe(this.getElements()));getElement=e=>this.excalidrawElements.get(e)},As=(t,e)=>{if(!t)return[];let o=pr(t),r=new Ig,n=new Map,i=new Map;for(let l of o){let s,d=l.id;switch(e?.regenerateIds!==!1&&Object.assign(l,{id:mn()}),l.type){case"rectangle":case"ellipse":case"diamond":{let m=l?.label?.text&&l.width===void 0?0:l?.width||Hn,u=l?.label?.text&&l.height===void 0?0:l?.height||Hn;s=hn({...l,width:m,height:u});break}case"line":{let m=l.width||bp.width,u=l.height||bp.height;s=Ml({width:m,height:u,points:[[0,0],[m,u]],...l});break}case"arrow":{let m=l.width||bp.width,u=l.height||bp.height;s=Ml({width:m,height:u,endArrowhead:"arrow",points:[[0,0],[m,u]],...l}),Object.assign(s,ib(s.points));break}case"text":{let m=l?.fontFamily||Oi,u=l?.fontSize||_r,f=l?.lineHeight||Or(m),b=l.text??"",x=Il(b),E=wc(x,Xo({fontFamily:m,fontSize:u}),f);s=gn({width:E.width,height:E.height,fontFamily:m,fontSize:u,...l});break}case"image":{s=Ac({width:l?.width||Hn,height:l?.height||Hn,...l});break}case"frame":{s=Ic({x:0,y:0,...l});break}case"magicframe":{s=Al({x:0,y:0,...l});break}case"freedraw":case"iframe":case"embeddable":{s=l;break}default:s=l,mc(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),d&&i.set(d,s.id))}let a=r.getElementsMap();for(let[l,s]of n){let d=r.getElement(l);switch(s.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(s.label?.text){let[c,m]=eI(d,s?.label,a);if(r.add(c),r.add(m),c.type==="arrow"){let u=s.type==="arrow"?s?.start:void 0,f=s.type==="arrow"?s?.end:void 0;if(u&&u.id){let T=i.get(u.id);T&&Object.assign(u,{id:T})}if(f&&f.id){let T=i.get(f.id);T&&Object.assign(f,{id:T})}let{linearElement:b,startBoundElement:x,endBoundElement:E}=B5(c,u,f,r,a);c=b,r.add(b),r.add(x),r.add(E)}}else switch(s.type){case"arrow":{let{start:c,end:m}=s;if(c&&c.id){let x=i.get(c.id);Object.assign(c,{id:x})}if(m&&m.id){let x=i.get(m.id);Object.assign(m,{id:x})}let{linearElement:u,startBoundElement:f,endBoundElement:b}=B5(d,c,m,r,a);r.add(u),r.add(f),r.add(b);break}}break}}}for(let[l,s]of n){if(s.type!=="frame"&&s.type!=="magicframe")continue;let d=r.getElement(l);if(!d)throw new Error(`Excalidraw element with id ${l} doesn't exist`);let c=[];s.children.forEach(C=>{let w=i.get(C);if(!w)throw new Error(`Element with ${C} wasn't mapped correctly`);let A=r.getElement(w);if(!A)throw new Error(`Frame element with id ${w} doesn't exist`);Object.assign(A,{frameId:d.id}),A?.boundElements?.forEach(z=>{let I=r.getElement(z.id);if(!I)throw new Error(`Bound element with id ${z.id} doesn't exist`);Object.assign(I,{frameId:d.id}),c.push(I)}),c.push(A)});let[m,u,f,b]=Ze(c),x=10;m=m-x,u=u-x,f=f+x,b=b+x;let E=Math.max(d?.width,f-m),T=Math.max(d?.height,b-u);Object.assign(d,{x:m,y:u,width:E,height:T})}return r.getElements()};h();h();var ol=v(H(),1);h();var Ag=v(br(),1),z5=v(H(),1);var Qe=t=>e=>{(0,Ag.unstable_batchedUpdates)(t,e)},xp=t=>ac(e=>{(0,Ag.unstable_batchedUpdates)(t,e)}),vp=(()=>{let t;try{let o=z5.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 tI="#ff6b6b",oI="#ff0000",$5=1,H5=2,U5=(t,e)=>{if(!e.snapLines.length)return;let o=e.theme===be.LIGHT||e.zenModeEnabled?tI:oI,r=(e.zenModeEnabled?$5*1.5:$5)/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,nI(n,t,e)):n.type==="gap"?(t.lineWidth=r,t.strokeStyle=o,iI(n.points[0],n.points[1],n.direction,e,t)):n.type==="points"&&(t.lineWidth=r,t.strokeStyle=o,rI(n,t,e));t.restore()},rI=(t,e,o)=>{if(!o.zenModeEnabled){let r=t.points[0],n=t.points[t.points.length-1];Go(r,n,e)}for(let r of t.points)W5(r,o,e)},nI=(t,e,o)=>{W5(t.points[0],o,e),o.zenModeEnabled||Go(t.points[0],t.points[1],e)},W5=([t,e],o,r)=>{r.save();let n=(o.zenModeEnabled?H5*1.5:H5)/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()},Go=(t,e,o)=>{o.beginPath(),o.lineTo(...t),o.lineTo(...e),o.stroke()},iI=(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||Go([t[0],t[1]-i],[t[0],t[1]+i],n),Go([s[0]-l,s[1]-a],[s[0]-l,s[1]+a],n),Go([s[0]+l,s[1]-a],[s[0]+l,s[1]+a],n),r.zenModeEnabled||(Go([e[0],e[1]-i],[e[0],e[1]+i],n),Go(t,e,n))}else{let s=[t[0],(t[1]+e[1])/2];r.zenModeEnabled||Go([t[0]-i,t[1]],[t[0]+i,t[1]],n),Go([s[0]-a,s[1]-l],[s[0]+a,s[1]-l],n),Go([s[0]-a,s[1]+l],[s[0]+a,s[1]+l],n),r.zenModeEnabled||(Go([e[0]-i,e[1]],[e[0]+i,e[1]],n),Go(t,e,n))}};var aI=(t,e,o)=>{let{elementId:r,hoverPointIndex:n}=e.selectedLinearElement;if(e.editingLinearElement?.selectedPointsIndices?.includes(n))return;let i=ue.getElement(r,o);if(!i)return;let a=ue.getPointAtIndexGlobalCoordinates(i,n,o);t.save(),t.translate(e.scrollX,e.scrollY),_g(a,t,e),t.restore()},_g=(t,e,o)=>{e.fillStyle="rgba(105, 101, 219, 0.4)",Pl(e,t[0],t[1],ue.POINT_HANDLE_SIZE/o.zoom.value,!1)},Rs=(t,e,o,r,n,i,a,l,s=!1,d=0)=>{t.save(),t.translate(i,a),t.rotate(l),s&&t.fillRect(e-i,o-a,r,n),d&&t.roundRect?(t.beginPath(),t.roundRect(e-i,o-a,r,n,d),t.stroke(),t.closePath()):t.strokeRect(e-i,o-a,r,n),t.restore()},lI=(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()},Ep=(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)"),Pl(t,o[0],o[1],r/e.zoom.value,!i)},sI=(t,e,o,r,n,i)=>{t.beginPath(),t.ellipse(r,n,e/2,o/2,i,0,Math.PI*2),t.stroke()},cI=(t,e,o)=>{let[r,n,i,a]=Wt(e,o),l=i-r,s=a-n,d=ru(e,l,s),c=4;t.strokeStyle="rgba(0,0,0,.05)",t.lineWidth=d-c;let m=c/2+d/2;switch(e.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Rs(t,r-m,n-m,l+m*2,s+m*2,r+l/2,n+s/2,e.angle);break;case"diamond":let u=Math.hypot(l,s),f=m*u/s,b=m*u/l;lI(t,l+f*2,s+b*2,r+l/2,n+s/2,e.angle);break;case"ellipse":sI(t,l+m*2,s+m*2,r+l/2,n+s/2,e.angle);break}},dI=(t,e,o)=>{let[r,n,i]=e,a=ru(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[d,c]=ue.getPointAtIndexGlobalCoordinates(r,s,o);Pl(t,d,c,a)})},V5=(t,e,o,r=$p*2)=>{let{angle:n,elementX1:i,elementY1:a,elementX2:l,elementY2:s,selectionColors:d,cx:c,cy:m,dashed:u,activeEmbeddable:f}=o,b=l-i,x=s-a,E=r/e.zoom.value,T=8/e.zoom.value,C=4/e.zoom.value;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=(f?4:1)/e.zoom.value;let w=d.length;for(let A=0;A<w;++A)t.strokeStyle=d[A],u&&t.setLineDash([T,C+(T+C)*(w-1)]),t.lineDashOffset=(T+C)*A,Rs(t,i-E,a-E,b+E*2,x+E*2,c,m,n);t.restore()},mI=(t,e,o,r)=>{let n=Array.isArray(o)?dI:cI;t.save(),t.translate(e.scrollX,e.scrollY),n(t,o,r),t.restore()},pI=(t,e,o,r)=>{let[n,i,a,l]=Wt(o,r),s=a-n,d=l-i;t.strokeStyle="rgb(0,118,255)",t.lineWidth=Zo.strokeWidth/e.zoom.value,t.save(),t.translate(e.scrollX,e.scrollY),Rs(t,n,i,s,d,n+s/2,i+d/2,o.angle,!1,Zo.radius/e.zoom.value),t.restore()},uI=(t,e,o)=>{let r=o.filter(l=>l.groupIds.length===0),n=o.filter(l=>l.groupIds.length>0),i=l=>{let[s,d,c,m]=Ze(l);return{angle:0,elementX1:s,elementX2:c,elementY1:d,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:s+(c-s)/2,cy:d+(m-d)/2,activeEmbeddable:!1}},a=l=>{let s=ft(o,l);return i(s)};Object.entries(Ib(n,e)).filter(([l,s])=>s).map(([l,s])=>l).map(l=>a(l)).concat(r.map(l=>i([l]))).forEach(l=>V5(t,e,l))},Mg=(t,e,o,r)=>{if(!e.selectedLinearElement)return;t.save(),t.translate(e.scrollX,e.scrollY),t.lineWidth=1/e.zoom.value;let n=ue.getPointsGlobalCoordinates(o,r),{POINT_HANDLE_SIZE:i}=ue,a=e.editingLinearElement?i:i/2;n.forEach((s,d)=>{let c=!!e.editingLinearElement?.selectedPointsIndices?.includes(d);Ep(t,e,s,a,c)}),ue.getEditorMidPoints(o,r,e).filter(s=>s!==null).forEach(s=>{e?.selectedLinearElement?.segmentMidPointHoveredCoords&&ue.arePointsEqual(s,e.selectedLinearElement.segmentMidPointHoveredCoords)?e.editingLinearElement?(Ep(t,e,s,a,!1),_g(s,t,e)):(_g(s,t,e),Ep(t,e,s,a,!1)):(e.editingLinearElement||n.length===2)&&Ep(t,e,s,i/2,!1,!0)}),t.restore()},G5=(t,e,o,r,n)=>{Object.keys(r).forEach(i=>{let a=r[i];if(a!==void 0){let[l,s,d,c]=a;t.save(),t.lineWidth=1/o.zoom.value,e.selectionColor&&(t.strokeStyle=e.selectionColor),i==="rotation"?Pl(t,l+d/2,s+c/2,d/2):t.roundRect?(t.beginPath(),t.roundRect(l,s,d,c,2/o.zoom.value),t.fill(),t.stroke()):Rs(t,l,s,d,c,l+d/2,s+c/2,n,!0),t.restore()}})},K5=({canvas:t,elementsMap:e,visibleElements:o,selectedElements:r,scale:n,appState:i,renderConfig:a,device:l})=>{if(t===null)return{atLeastOneVisibleElement:!1,elementsMap:e};let[s,d]=m0(t,n),c=p0({canvas:t,scale:n,normalizedWidth:s,normalizedHeight:d});c.save(),c.scale(i.zoom.value,i.zoom.value);let m;if(o.forEach(b=>{i.editingLinearElement?.elementId===b.id&&b&&(m=b)}),m&&Mg(c,i,m,e),i.selectionElement)try{_0(i.selectionElement,c,i)}catch(b){console.error(b)}i.isBindingEnabled&&i.suggestedBindings.filter(b=>b!=null).forEach(b=>{mI(c,i,b,e)}),i.frameToHighlight&&pI(c,i,i.frameToHighlight,e),i.elementsToHighlight&&uI(c,i,i.elementsToHighlight);let u=r.some(b=>Ee(b));if(r.length===1&&i.editingLinearElement?.elementId===r[0].id&&Mg(c,i,r[0],e),i.selectedLinearElement&&i.selectedLinearElement.hoverPointIndex>=0&&aI(c,i,e),!i.multiElement&&!i.editingLinearElement){let b=Zc(r,i);r.length===1&&Re(r[0])&&i.selectedLinearElement?.elementId===r[0].id&&!r[0].locked&&Mg(c,i,r[0],e);let E=a.selectionColor||Mt.black;if(b){let T=pe(r),C=[];for(let A of e.values()){let z=[];T.has(A.id)&&!Tc(i,A)&&z.push(E);let I=a.remoteSelectedElementIds.get(A.id);if(I&&z.push(...I.map(M=>xi(M,i.collaborators.get(M)))),z.length){let[M,_,U,D,G,O]=Wt(A,e,!0);C.push({angle:A.angle,elementX1:M,elementY1:_,elementX2:U,elementY2:D,selectionColors:z,dashed:!!I,cx:G,cy:O,activeEmbeddable:i.activeEmbeddable?.element===A&&i.activeEmbeddable.state==="active"})}}let w=A=>{let z=ft(e,A),[I,M,_,U]=Ze(z);C.push({angle:0,elementX1:I,elementX2:_,elementY1:M,elementY2:U,selectionColors:[Mt.black],dashed:!0,cx:I+(_-I)/2,cy:M+(U-M)/2,activeEmbeddable:!1})};for(let A of Br(i))w(A);i.editingGroupId&&w(i.editingGroupId),C.forEach(A=>V5(c,i,A))}if(c.save(),c.translate(i.scrollX,i.scrollY),r.length===1){c.fillStyle=Mt.white;let T=R0(r[0],i.zoom,e,"mouse",Yc(l));!i.viewModeEnabled&&b&&G5(c,a,i,T,r[0].angle)}else if(r.length>1&&!i.isRotating){let T=$p*2/i.zoom.value;c.fillStyle=Mt.white;let[C,w,A,z]=Ze(r),I=c.getLineDash();c.setLineDash([2/i.zoom.value]);let M=c.lineWidth;c.lineWidth=1/i.zoom.value,c.strokeStyle=E,Rs(c,C-T,w-T,A-C+T*2,z-w+T*2,(C+A)/2,(w+z)/2,0),c.lineWidth=M,c.setLineDash(I);let _=P0([C,w,A,z,(C+A)/2,(w+z)/2],0,i.zoom,"mouse",u?{...Yc(l),rotation:!0}:Yc(l));r.some(U=>!U.locked)&&G5(c,a,i,_,0)}c.restore()}U5(c,i),c.restore(),gy({context:c,renderConfig:a,appState:i,normalizedWidth:s,normalizedHeight:d});let f;return a.renderScrollbars&&(f=f3(o,s,d,i),c.save(),c.fillStyle=u3,c.strokeStyle="rgba(255,255,255,0.8)",[f.horizontal,f.vertical].forEach(b=>{b&&rm(c,b.x,b.y,b.width,b.height,kr/2)}),c.restore()),{scrollBars:f,atLeastOneVisibleElement:o.length>0,elementsMap:e}},Lg=ac(t=>{let e=K5(t);t.callback?.(e)},{trailing:!0}),Y5=(t,e)=>{if(e){Lg(t);return}let o=K5(t);return t.callback(o),o};var j5=v(k(),1),fI=t=>{let e=(0,ol.useRef)(!1);return(0,ol.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,d)=>{if(s.selectedElementIds)for(let c of Object.keys(s.selectedElementIds))n.has(c)||n.set(c,[]),n.get(c).push(d);!s.pointer||s.pointer.renderCursor===!1||(s.username&&i.set(d,s.username),s.userState&&a.set(d,s.userState),r.set(d,Qt({sceneX:s.pointer.x,sceneY:s.pointer.y},t.appState)),o.set(d,s.button))});let l=t.containerRef?.current&&getComputedStyle(t.containerRef.current).getPropertyValue("--color-selection")||"#6965db";Y5({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},device:t.device,callback:t.renderInteractiveSceneCallback},vp())}),(0,j5.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:t.appState.width,height:t.appState.height,cursor:t.appState.viewModeEnabled?Oe.GRAB:Oe.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")})},Z5=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}),hI=(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:kt(Z5(t.appState),Z5(e.appState)),Pg=ol.default.memo(fI,hI);h();var _i=v(H(),1);var q5=v(k(),1),gI=t=>{let e=(0,_i.useRef)(null),o=(0,_i.useRef)(!1);return(0,_i.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),f0({canvas:n,rc:t.rc,scale:t.scale,elementsMap:t.elementsMap,allElementsMap:t.allElementsMap,visibleElements:t.visibleElements,appState:t.appState,renderConfig:t.renderConfig},vp())}),(0,q5.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:e})},X5=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}),bI=(t,e)=>t.versionNonce!==e.versionNonce||t.scale!==e.scale||t.elementsMap!==e.elementsMap||t.visibleElements!==e.visibleElements?!1:kt(X5(t.appState),X5(e.appState))&&kt(t.renderConfig,e.renderConfig),Rg=_i.default.memo(gI,bI);h();var Ds=class{scene;constructor(e){this.scene=e}getRenderableElements=(()=>{let e=({elementsMap:r,zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s,height:d,width:c})=>{let m=[];for(let u of r.values())Dl(u,c,d,{zoom:n,offsetLeft:i,offsetTop:a,scrollX:l,scrollY:s},r)&&m.push(u);return m},o=({elements:r,editingElement:n,pendingImageElementId:i})=>{let a=uc(new Map);for(let l of r)dn(l)&&i===l.id||(!n||n.type!=="text"||l.id!==n.id)&&a.set(l.id,l);return a};return Z1(({zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d,editingElement:c,pendingImageElementId:m,versionNonce:u})=>{let f=this.scene.getNonDeletedElements(),b=o({elements:f,editingElement:c,pendingImageElementId:m}),x=e({elementsMap:b,zoom:r,offsetLeft:n,offsetTop:i,scrollX:a,scrollY:l,height:s,width:d});return{elementsMap:b,visibleElements:x}})})();destroy(){Lg.cancel(),u0.cancel(),this.getRenderableElements.clear()}};h();var yp=v(H(),1);var Dg=v(k(),1),J5=({trails:t})=>{let e=(0,yp.useRef)(null);return(0,yp.useEffect)(()=>{if(e.current)for(let o of t)o.start(e.current);return()=>{for(let o of t)o.stop()}},t),(0,Dg.jsx)("div",{className:"SVGLayer",children:(0,Dg.jsx)("svg",{ref:e})})};h();var Q5=v(k(),1),xI=5,vI=(t,e,o)=>{let[r,n]=Wt(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}},Ng=({children:t,element:e,elementsMap:o})=>{let r=Ba();if(r.contextMenu||r.draggingElement||r.resizingElement||r.isRotating||r.openMenu||r.viewModeEnabled)return null;let{x:n,y:i}=vI(e,r,o);return(0,Q5.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${i}px`,left:`${n}px`,padding:xI},children:t})};h();var EI=`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]`,PP=dl($m,300),Kz=({mermaidToExcalidrawLib:e})=>{let[t,r]=(0,zn.useState)(()=>Io.get(qo.MERMAID_TO_EXCALIDRAW)||Wz),o=(0,zn.useDeferredValue)(t.trim()),[i,a]=(0,zn.useState)(null),s=(0,zn.useRef)(null),c=(0,zn.useRef)({elements:[],files:null}),d=_r();(0,zn.useEffect)(()=>{kh({canvasRef:s,data:c,mermaidToExcalidrawLib:e,setError:a,mermaidDefinition:o}).catch(f=>{s2()&&console.error("Failed to parse mermaid definition",f)}),PP(o)},[o,e]),(0,zn.useEffect)(()=>()=>{PP.flush()},[]);let u=()=>{Ph({app:d,data:c,text:t,shouldSaveMermaidDataToStorage:!0})};return(0,Xr.jsxs)(Xr.Fragment,{children:[(0,Xr.jsx)("div",{className:"ttd-dialog-desc",children:(0,Xr.jsx)(co,{i18nKey:"mermaid.description",flowchartLink:f=>(0,Xr.jsx)("a",{href:"https://mermaid.js.org/syntax/flowchart.html",children:f}),sequenceLink:f=>(0,Xr.jsx)("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",children:f}),classLink:f=>(0,Xr.jsx)("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",children:f})})}),(0,Xr.jsxs)(Mh,{children:[(0,Xr.jsx)(Yc,{label:E("mermaid.syntax"),children:(0,Xr.jsx)(Lh,{input:t,placeholder:"Write Mermaid diagram defintion here...",onChange:f=>r(f.target.value),onKeyboardSubmit:()=>{u()}})}),(0,Xr.jsx)(Yc,{label:E("mermaid.preview"),panelAction:{action:()=>{u()},label:E("mermaid.button"),icon:Rs},renderSubmitShortcut:()=>(0,Xr.jsx)(Dh,{}),children:(0,Xr.jsx)(Rh,{canvasRef:s,loaded:e.loaded,error:i})})]})]})},MP=Kz;var $n=w(j(),1);v();var LP=w(M(),1),o0=({children:e,...t})=>(0,LP.jsx)(Eh,{className:"ttd-dialog-triggers",...t,children:e});o0.displayName="TTDDialogTabTriggers";v();var n0=w(M(),1),Nh=({children:e,tab:t,onSelect:r,...o})=>(0,n0.jsx)(wh,{value:t,asChild:!0,onSelect:r,children:(0,n0.jsx)("button",{type:"button",className:"ttd-dialog-tab-trigger",...o,children:e})});Nh.displayName="TTDDialogTabTrigger";var Nt=w(M(),1),i0=3,Vc=1e3,Yz=St(null),Vz=St(null),a0=e=>{let t=it();return t.openDialog?.name!=="ttd"?null:(0,Nt.jsx)(Xz,{...e,tab:t.openDialog.tab})},Xz=Ki("TTDDialogBase",({tab:e,...t})=>{let r=_r(),o=ot(),i=(0,$n.useRef)(null),[a,s]=Ve(Vz),[c,d]=(0,$n.useState)(a?.prompt??""),u=c.trim(),f=L=>{d(L.target.value),s(F=>({generatedResponse:F?.generatedResponse??null,prompt:L.target.value}))},[m,g]=(0,$n.useState)(!1),[h,b]=Ve(Yz),y=async()=>{if(u.length>Vc||u.length<i0||m||h?.rateLimitRemaining===0||"__fallback"in t){u.length<i0&&z(new Error(`Prompt is too short (min ${i0} characters)`)),u.length>Vc&&z(new Error(`Prompt is too long (max ${Vc} characters)`));return}try{g(!0),ze("ai","generate","ttd");let{generatedResponse:L,error:F,rateLimit:D,rateLimitRemaining:V}=await t.onTextSubmit(u);if(typeof L=="string"&&s(U=>({generatedResponse:L,prompt:U?.prompt??null})),Nx(D)&&Nx(V)&&b({rateLimit:D,rateLimitRemaining:V}),F){z(F);return}if(!L){z(new Error("Generation failed"));return}try{await kh({canvasRef:i,data:C,mermaidToExcalidrawLib:k,setError:z,mermaidDefinition:L}),ze("ai","mermaid parse success","ttd")}catch(U){console.info(`%cTTD mermaid render errror: ${U.message}`,"color: red"),console.info(`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
71
|
+
TTD mermaid definition render errror: ${U.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,$n.useRef)(y);T.current=y;let[k,I]=(0,$n.useState)({loaded:!1,api:import("./excalidraw-assets/dist-NLUQPPQQ.js")});(0,$n.useEffect)(()=>{(async()=>{await k.api,I(F=>({...F,loaded:!0}))})()},[k.api]);let C=(0,$n.useRef)({elements:[],files:null}),[O,z]=(0,$n.useState)(null);return(0,Nt.jsx)(zt,{className:"ttd-dialog",onCloseRequest:()=>{r.setOpenDialog(null)},size:1200,title:!1,...t,autofocus:!1,children:(0,Nt.jsxs)(Ah,{dialog:"ttd",tab:e,children:["__fallback"in t&&t.__fallback?(0,Nt.jsx)("p",{className:"dialog-mermaid-title",children:E("mermaid.title")}):(0,Nt.jsxs)(o0,{children:[(0,Nt.jsx)(Nh,{tab:"text-to-diagram",children:(0,Nt.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[E("labels.textToDiagram"),(0,Nt.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,Nt.jsx)(Nh,{tab:"mermaid",children:"Mermaid"})]}),(0,Nt.jsx)(Wc,{className:"ttd-dialog-content",tab:"mermaid",children:(0,Nt.jsx)(MP,{mermaidToExcalidrawLib:k})}),!("__fallback"in t)&&(0,Nt.jsxs)(Wc,{className:"ttd-dialog-content",tab:"text-to-diagram",children:[(0,Nt.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,Nt.jsxs)(Mh,{children:[(0,Nt.jsx)(Yc,{label:E("labels.prompt"),panelAction:{action:y,label:"Generate",icon:Rs},onTextSubmitInProgess:m,panelActionDisabled:u.length>Vc||h?.rateLimitRemaining===0,renderTopRight:()=>h?(0,Nt.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,Nt.jsx)(Dh,{}),renderBottomRight:()=>{if(typeof a?.generatedResponse=="string")return(0,Nt.jsxs)("div",{className:"excalidraw-link",style:{marginLeft:"auto",fontSize:14},onClick:()=>{typeof a?.generatedResponse=="string"&&($m(a.generatedResponse),o({openDialog:{name:"ttd",tab:"mermaid"}}))},children:["View as Mermaid",(0,Nt.jsx)(mn,{icon:Rs})]});let L=u.length/Vc;return L>.8?(0,Nt.jsxs)("div",{style:{marginLeft:"auto",fontSize:12,fontFamily:"monospace",color:L>1?"var(--color-danger)":void 0},children:["Length: ",u.length,"/",Vc]}):null},children:(0,Nt.jsx)(Lh,{onChange:f,input:c,placeholder:"Describe what you want to see...",onKeyboardSubmit:()=>{T.current()}})}),(0,Nt.jsx)(Yc,{label:"Preview",panelAction:{action:()=>{console.info("Panel action clicked"),Ph({app:r,data:C})},label:"Insert",icon:Rs},children:(0,Nt.jsx)(Rh,{canvasRef:i,error:O,loaded:k.loaded})})]})]})]})})});v();var li=w(j(),1);var eM=w(RP(),1);v();v();var ai=w(j(),1);v();var DP=.01,_o=(e,t)=>!(t==="height"&&he(e)||t==="width"&&he(e)||t==="angle"&&He(e)),Vt=(e,t)=>{let r=e+t/2;return r-r%t},Zc=(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),Zz=(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)}),qc=(e,t,r,o,i,a,s,c=!0)=>{let d=i.get(o.id);if(!d)return;let u={},f=je(d,i);if(f){let h=xf(ro(f),f.lineHeight),b=hf(f.fontSize,f.lineHeight);e=Math.max(e,h),t=Math.max(t,b)}let{width:m,height:g}=d;if(ce(d,{...Zz(d.x,d.y,d.width,d.height,e,t,d.angle),width:e,height:t,...wf(o,e,t,!0)},c),Wm(d,i,a,s,{newSize:{width:e,height:t}}),f&&(u={fontSize:f.fontSize},r)){let h={...d,width:e,height:t};u={fontSize:CI(f,i,qd(h,f))?.size??f.fontSize}}ya(d,i,s,{oldSize:{width:m,height:g}}),f&&u&&ce(f,{fontSize:u.fontSize}),ff(d,i,"e",r)},ts=(e,t,r,o,i,a,s,c=!0)=>{let d=o.get(r.id);if(!d)return;let[u,f]=[r.x+r.width/2,r.y+r.height/2],[m,g]=Pn(r.x,r.y,u,f,r.angle),h=e-m,b=t-g,[y,T]=Pn(e,t,u+h,f+b,-r.angle);ce(d,{x:y,y:T},c),Wm(d,o,i,a);let k=je(r,s);if(k){let I=o.get(k.id);I&&ce(I,{x:k.x+h,y:k.y+b},c)}},jc=(e,t)=>{let o=_n(t).map(i=>Kt(e,i).reduce((a,s)=>(a[s.id]=!0,a),{}));return e.filter(i=>!ga(i)).forEach(i=>{o.push({[i.id]:!0})}),o},Wm=(e,t,r,o,i)=>{Qe(e)?wl([e],t,r,o,!0,[]):ya(e,t,o,i)};var Jc=w(M(),1),qz=({label:e,icon:t,dragInputCallback:r,value:o,elements:i,editable:a=!0,shouldKeepAspectRatio:s,property:c,scene:d,appState:u})=>{let f=_r(),m=(0,ai.useRef)(null),g=(0,ai.useRef)(null),[h,b]=(0,ai.useState)(o.toString()),y=(0,ai.useRef)(null);y.current||(y.current={originalAppState:vo(u),originalElements:i,lastUpdatedValue:h,updatePending:!1}),(0,ai.useEffect)(()=>{let I=o.toString();b(I),y.current.lastUpdatedValue=I},[o]);let T=(I,C,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)>=DP)&&(y.current.lastUpdatedValue=I,r({accumulatedChange:0,instantChange:0,originalElements:C,originalElementsMap:f.scene.getNonDeletedElementsMap(),shouldKeepAspectRatio:s,shouldChangeByStepSize:!1,scene:d,nextValue:L,property:c,originalAppState:O}),f.syncActionResult({storeAction:W.CAPTURE}))},k=(0,ai.useRef)(T);return k.current=T,(0,ai.useEffect)(()=>{let I=m.current;return()=>{let C=I?.value;C&&k.current(C,y.current.originalElements,y.current.originalAppState)}},[a]),a?(0,Jc.jsxs)("div",{className:q("drag-input-container",!a&&"disabled"),"data-testid":e,children:[(0,Jc.jsx)("div",{className:"drag-input-label",ref:g,onPointerDown:I=>{if(m.current&&a){let C=Number(m.current.value);isNaN(C)&&(C=0);let O=null,z=f.scene.getNonDeletedElements().reduce((U,Q)=>(U.set(Q.id,Fs(Q)),U),new Map),L=i.map(U=>z.get(U.id)),F=vo(u),D=null;document.body.classList.add("excalidraw-cursor-resize");let V=U=>{if(D||(D=0),O&&z!==null&&L!==null&&D!==null){let Q=U.clientX-O.x;D+=Q,r({accumulatedChange:D,instantChange:Q,originalElements:L,originalElementsMap:z,shouldKeepAspectRatio:s,shouldChangeByStepSize:U.shiftKey,property:c,scene:d,originalAppState:F})}O={x:U.clientX,y:U.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,Jc.jsx)(mn,{icon:t}):e}),(0,Jc.jsx)("input",{className:"drag-input",autoComplete:"off",spellCheck:"false",onKeyDown:I=>{if(a){let C=I.target;C instanceof HTMLInputElement&&I.key===R.ENTER&&(T(C.value,i,u),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=vo(u)},onBlur:I=>{h?a&&T(I.target.value,y.current.originalElements,y.current.originalAppState):b(o.toString())},disabled:!a})]}):null},Zr=qz;var OP=w(M(),1),NP=10,jz=e=>e.type==="image",Jz=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldKeepAspectRatio:o,shouldChangeByStepSize:i,nextValue:a,property:s,scene:c})=>{let d=c.getNonDeletedElementsMap(),u=c.getNonDeletedElements(),f=t[0];if(f){let m=o||jz(f),g=f.width/f.height;if(a!==void 0){let k=Math.max(s==="width"?a:m?a*g:f.width,xo),I=Math.max(s==="height"?a:m?a/g:f.height,xo);qc(k,I,m,f,d,u,c);return}let h=s==="width"?e:0,b=s==="height"?e:0,y=Math.max(0,f.width+h);s==="width"&&(i?y=Vt(y,NP):y=Math.round(y));let T=Math.max(0,f.height+b);s==="height"&&(i?T=Vt(T,NP):T=Math.round(T)),m&&(s==="width"?T=Math.round(y/g*100)/100:y=Math.round(T*g*100)/100),T=Math.max(xo,T),y=Math.max(xo,y),qc(y,T,m,f,d,u,c)}},Qz=({property:e,element:t,scene:r,appState:o})=>{let i=Math.round((e==="width"?t.width:t.height)*100)/100;return(0,OP.jsx)(Zr,{label:e==="width"?"W":"H",elements:[t],dragInputCallback:Jz,value:i,editable:_o(t,e),scene:r,appState:o,property:e})},l0=Qz;v();var BP=w(M(),1),e$=15,t$=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,scene:i})=>{let a=i.getNonDeletedElementsMap(),s=i.getNonDeletedElements(),c=t[0];if(c&&!dt(c)){let d=a.get(c.id);if(!d)return;if(o!==void 0){let b=Xs(o);ce(d,{angle:b}),Wm(d,a,s,i);let y=je(d,a);y&&!_t(d)&&ce(y,{angle:b});return}let u=Math.round(Vs(c.angle)*100)/100,f=Math.round(e),m=(u+f)%360;r&&(m=Vt(m,e$)),m=m<0?m+360:m;let g=Xs(m);ce(d,{angle:g}),Wm(d,a,s,i);let h=je(d,a);h&&!_t(d)&&ce(h,{angle:g})}},r$=({element:e,scene:t,appState:r,property:o})=>(0,BP.jsx)(Zr,{label:"A",icon:_p,value:Math.round(Vs(e.angle)%360*100)/100,elements:[e],dragInputCallback:t$,editable:_o(e,"angle"),scene:t,appState:r,property:o}),FP=r$;v();var HP=w(M(),1),zP=4,o$=4,n$=({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),zP);else if(s.type==="text"){let u=Math.round(s.fontSize),f=Math.round(e);d=Math.max(u+f,zP),r&&(d=Vt(d,o$))}d&&(ce(c,{fontSize:d}),qt(c,i.getContainerElement(c),i.getNonDeletedElementsMap()))}},i$=({element:e,scene:t,appState:r,property:o})=>{let i=he(e)?e:yo(e)?je(e,t.getNonDeletedElementsMap()):null;return i?(0,HP.jsx)(Zr,{label:"F",value:Math.round(i.fontSize*10)/10,elements:[i],dragInputCallback:n$,icon:xl,appState:r,scene:t,property:o}):null},$P=i$;v();var GP=w(j(),1);var WP=w(M(),1),Qc=10,a$=(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,u=t+a*r;return{width:s,height:c,x:d,y:u,...wf(o,s,c,!1),...he(o)?{fontSize:o.fontSize*r}:{}}},l$=(e,t,r,o,i,a,s,c,d)=>{let u=a$(e,t,o,a),{width:f,height:m}=i;ce(i,u,!1);let g=je(a,c);if(g){let h=g.fontSize*o;ya(i,s,d,{oldSize:{width:f,height:m}});let b=s.get(g.id);b&&he(b)&&(ce(b,{fontSize:h},!1),ff(i,s,r==="width"?"e":"s",!0))}},UP=(e,t,r,o,i,a,s,c,d,u,f)=>{a==="width"?t=Math.round(e/o*100)/100:e=Math.round(t*o*100)/100;let m=t/r;for(let g=0;g<c.length;g++){let h=c[g],b=s[g];l$(i[0],i[1],a,m,b,h,d,u,f)}},s$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,originalAppState:o,shouldChangeByStepSize:i,nextValue:a,scene:s,property:c})=>{let d=s.getNonDeletedElementsMap(),u=s.getNonDeletedElements(),f=jc(t,o);if(a!==void 0){for(let h of f){let b=Zc(h,d,r);if(b.length>1){let y=b.map(U=>U.latest),T=b.map(U=>U.original),[k,I,C,O]=lt(T),z=C-k,L=O-I,F=z/L,D=Math.max(xo,c==="width"?Math.max(0,a):z),V=Math.max(xo,c==="height"?Math.max(0,a):L);UP(D,V,L,F,[k,I],c,y,T,d,r,s)}else{let[y]=b,T=y?.latest,k=y?.original;if(T&&k&&_o(T,c)){let I=c==="width"?Math.max(0,a):T.width;c==="width"&&(i?I=Vt(I,Qc):I=Math.round(I));let C=c==="height"?Math.max(0,a):T.height;c==="height"&&(i?C=Vt(C,Qc):C=Math.round(C)),I=Math.max(xo,I),C=Math.max(xo,C),qc(I,C,!1,k,d,u,s,!1)}}}s.triggerUpdate();return}let m=c==="width"?e:0,g=c==="height"?e:0;for(let h of f){let b=Zc(h,d,r);if(b.length>1){let y=b.map(U=>U.latest),T=b.map(U=>U.original),[k,I,C,O]=lt(T),z=C-k,L=O-I,F=z/L,D=Math.max(0,z+m);c==="width"&&(i?D=Vt(D,Qc):D=Math.round(D));let V=Math.max(0,L+g);c==="height"&&(i?V=Vt(V,Qc):V=Math.round(V)),D=Math.max(xo,D),V=Math.max(xo,V),UP(D,V,L,F,[k,I],c,y,T,d,r,s)}else{let[y]=b,T=y?.latest,k=y?.original;if(T&&k&&_o(T,c)){let I=Math.max(0,k.width+m);c==="width"&&(i?I=Vt(I,Qc):I=Math.round(I));let C=Math.max(0,k.height+g);c==="height"&&(i?C=Vt(C,Qc):C=Math.round(C)),I=Math.max(xo,I),C=Math.max(xo,C),qc(I,C,!1,k,d,u,s)}}}s.triggerUpdate()},c$=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,GP.useMemo)(()=>o.map(u=>{let f=Zc(u,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,WP.jsx)(Zr,{label:e==="width"?"W":"H",elements:t,dragInputCallback:s$,value:c,editable:d,appState:a,property:e,scene:i})},s0=c$;v();var YP=w(M(),1),d$=15,m$=({accumulatedChange:e,originalElements:t,shouldChangeByStepSize:r,nextValue:o,property:i,scene:a})=>{let s=a.getNonDeletedElementsMap(),c=t.map(u=>s.get(u.id)).filter(u=>u&&!ga(u)&&_o(u,i)),d=t.filter(u=>!ga(u)&&_o(u,i));if(o!==void 0){let u=Xs(o);for(let f of c){if(!f)continue;ce(f,{angle:u},!1);let m=je(f,s);m&&!_t(f)&&ce(m,{angle:u},!1)}a.triggerUpdate();return}for(let u=0;u<c.length;u++){let f=c[u];if(!f)continue;let m=d[u],g=Math.round(Vs(m.angle)*100)/100,h=Math.round(e),b=(g+h)%360;r&&(b=Vt(b,d$)),b=b<0?b+360:b;let y=Xs(b);ce(f,{angle:y},!1);let T=je(f,s);T&&!_t(f)&&ce(T,{angle:y},!1)}a.triggerUpdate()},u$=({elements:e,scene:t,appState:r,property:o})=>{let i=e.filter(d=>!ga(d)&&_o(d,"angle")),a=i.map(d=>Math.round(Vs(d.angle)%360*100)/100),s=new Set(a).size===1?a[0]:"Mixed",c=i.some(d=>_o(d,"angle"));return(0,YP.jsx)(Zr,{label:"A",icon:_p,value:s,elements:e,dragInputCallback:m$,editable:c,appState:r,scene:t,property:o})},KP=u$;v();var ZP=w(M(),1),VP=4,p$=4,f$=(e,t)=>e.reduce((r,o)=>{if(!o||ga(o))return r;if(he(o))return r.push(o),r;if(yo(o)){let i=je(o,t);if(i)return r.push(i),r}return r},[]),g$=({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),VP);for(let d of s)ce(d,{fontSize:c},!1),qt(d,i.getContainerElement(d),a,!1);i.triggerUpdate()}else{let d=t;for(let u=0;u<s.length;u++){let f=s[u],m=d[u],g=Math.round(m.fontSize),h=Math.round(e),b=Math.max(g+h,VP);r&&(b=Vt(b,p$)),ce(f,{fontSize:b},!1),qt(f,i.getContainerElement(f),a,!1)}i.triggerUpdate()}},h$=({elements:e,scene:t,appState:r,property:o,elementsMap:i})=>{let a=f$(e,i);if(!a.length)return null;let s=a.map(u=>Math.round(u.fontSize*10)/10),c=new Set(s).size===1?s[0]:"Mixed",d=s.length>0;return(0,ZP.jsx)(Zr,{label:"F",icon:xl,elements:a,dragInputCallback:g$,value:c,editable:d,scene:t,property:o,appState:r})},XP=h$;v();var jP=w(M(),1),qP=10,b$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s})=>{let c=s.getNonDeletedElementsMap(),d=s.getNonDeletedElements(),u=t[0],[f,m]=[u.x+u.width/2,u.y+u.height/2],[g,h]=Pn(u.x,u.y,f,m,u.angle);if(i!==void 0){ts(a==="x"?i:g,a==="y"?i:h,u,c,d,s,r);return}let b=a==="x"?e:0,y=a==="y"?e:0,T=a==="x"?Math.round(o?Vt(u.x+b,qP):g+b):g,k=a==="y"?Math.round(o?Vt(u.y+y,qP):h+y):h;ts(T,k,u,c,d,s,r)},x$=({property:e,element:t,elementsMap:r,scene:o,appState:i})=>{let[a,s]=Pn(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,jP.jsx)(Zr,{label:e==="x"?"X":"Y",elements:[t],dragInputCallback:b$,scene:o,value:c,property:e,appState:i})},c0=x$;v();var JP=w(j(),1);var QP=w(M(),1),v$=10,y$=(e,t,r,o,i,a,s,c)=>{for(let d=0;d<o.length;d++){let u=i[d],[f,m]=[u.x+u.width/2,u.y+u.height/2],[g,h]=Pn(u.x,u.y,f,m,u.angle),b=e==="x"?Math.round(g+t):g,y=e==="y"?Math.round(h+r):h;ts(b,y,u,a,o,c,s,!1)}},E$=(e,t,r,o,i,a,s)=>{let[c,d,,]=lt(r),u=e-c,f=t-d;for(let m=0;m<r.length;m++){let g=r[m],h=o.get(g.id);if(h&&(!he(h)||!h.containerId)){let[b,y]=[h.x+h.width/2,h.y+h.height/2],[T,k]=Pn(h.x,h.y,b,y,h.angle);ts(T+u,k+f,g,o,i,s,a,!1)}}},w$=({accumulatedChange:e,originalElements:t,originalElementsMap:r,shouldChangeByStepSize:o,nextValue:i,property:a,scene:s,originalAppState:c})=>{let d=s.getNonDeletedElementsMap(),u=s.getNonDeletedElements();if(i!==void 0){for(let h of jc(t,c)){let b=Zc(h,d,r);if(b.length>1){let[y,T,,]=lt(b.map(C=>C.latest));E$(a==="x"?i:y,a==="y"?i:T,b.map(C=>C.original),d,u,r,s)}else{let y=b[0]?.original,T=b[0]?.latest;if(y&&T&&_o(T,a)){let[k,I]=[y.x+y.width/2,y.y+y.height/2],[C,O]=Pn(y.x,y.y,k,I,y.angle);ts(a==="x"?i:C,a==="y"?i:O,y,d,u,s,r,!1)}}}s.triggerUpdate();return}let f=o?Vt(e,v$):e;y$(a,a==="x"?f:0,a==="y"?f:0,t,t,d,r,s),s.triggerUpdate()},S$=({property:e,elements:t,elementsMap:r,atomicUnits:o,scene:i,appState:a})=>{let s=(0,JP.useMemo)(()=>o.map(d=>{let u=Object.keys(d).map(y=>r.get(y)).filter(y=>y!==void 0);if(u.length>1){let[y,T]=lt(u);return Math.round((e==="x"?y:T)*100)/100}let[f]=u,[m,g]=[f.x+f.width/2,f.y+f.height/2],[h,b]=Pn(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,QP.jsx)(Zr,{label:e==="x"?"X":"Y",elements:t,dragInputCallback:w$,value:c,property:e,scene:i,appState:a})},d0=S$;v();var Xi=w(M(),1),T$=({label:e,open:t,openTrigger:r,children:o})=>(0,Xi.jsxs)(Xi.Fragment,{children:[(0,Xi.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},onClick:r,children:[e,(0,Xi.jsx)(mn,{icon:t?sC:lC})]}),t&&(0,Xi.jsx)(Xi.Fragment,{children:o})]}),m0=T$;var De=w(M(),1),C$=50,tM=e=>{let t=Qn(),r=e.scene.getSceneNonce()||1,o=e.scene.getSelectedElements({selectedElementIds:t.selectedElementIds,includeBoundTextElement:!1});return(0,De.jsx)(I$,{...e,appState:t,sceneNonce:r,selectedElements:o})},I$=(0,li.memo)(({scene:e,onClose:t,renderCustomStats:r,selectedElements:o,appState:i,sceneNonce:a})=>{let s=e.getNonDeletedElements(),c=e.getNonDeletedElementsMap(),d=ot(),u=o.length===1?o[0]:null,f=o.length>1?o:null,[m,g]=(0,li.useState)({width:0,height:0}),h=(0,li.useMemo)(()=>(0,eM.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])})},C$),[]);(0,li.useEffect)(()=>{h(s)},[a,s,h]),(0,li.useEffect)(()=>()=>h.cancel(),[h]);let b=(0,li.useMemo)(()=>jc(o,i),[o,i]);return(0,De.jsx)("div",{className:"Stats",children:(0,De.jsxs)(xr,{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:Qo})]}),(0,De.jsx)(m0,{label:(0,De.jsx)("h3",{children:E("stats.generalStats")}),open:!!(i.stats.panels&Id.generalStats),openTrigger:()=>d(y=>({...y,stats:{open:!0,panels:y.stats.panels^Id.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)(m0,{label:(0,De.jsx)("h3",{children:E("stats.elementProperties")}),open:!!(i.stats.panels&Id.elementProperties),openTrigger:()=>d(y=>({...y,stats:{open:!0,panels:y.stats.panels^Id.elementProperties}})),children:[u&&(0,De.jsxs)("div",{className:"sectionContent",children:[(0,De.jsx)("div",{className:"elementType",children:E(`element.${u.type}`)}),(0,De.jsxs)("div",{className:"statsItem",children:[(0,De.jsx)(c0,{element:u,property:"x",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(c0,{element:u,property:"y",elementsMap:c,scene:e,appState:i}),(0,De.jsx)(l0,{property:"width",element:u,scene:e,appState:i}),(0,De.jsx)(l0,{property:"height",element:u,scene:e,appState:i}),!dt(u)&&(0,De.jsx)(FP,{property:"angle",element:u,scene:e,appState:i}),(0,De.jsx)($P,{property:"fontSize",element:u,scene:e,appState:i})]})]}),f&&(0,De.jsxs)("div",{className:"sectionContent",children:[_2(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)(d0,{property:"x",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(d0,{property:"y",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(s0,{property:"width",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(s0,{property:"height",elements:f,elementsMap:c,atomicUnits:b,scene:e,appState:i}),(0,De.jsx)(KP,{property:"angle",elements:f,scene:e,appState:i}),(0,De.jsx)(XP,{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(M(),1),_$=({UIOptions:e})=>(0,ge.jsxs)(uo,{__fallback:!0,children:[(0,ge.jsx)(uo.DefaultItems.LoadScene,{}),(0,ge.jsx)(uo.DefaultItems.SaveToActiveFile,{}),e.canvasActions.export&&(0,ge.jsx)(uo.DefaultItems.Export,{}),e.canvasActions.saveAsImage&&(0,ge.jsx)(uo.DefaultItems.SaveAsImage,{}),(0,ge.jsx)(uo.DefaultItems.Help,{}),(0,ge.jsx)(uo.DefaultItems.ClearCanvas,{}),(0,ge.jsx)(uo.Separator,{}),(0,ge.jsx)(uo.Group,{title:"Excalidraw links",children:(0,ge.jsx)(uo.DefaultItems.Socials,{})}),(0,ge.jsx)(uo.Separator,{}),(0,ge.jsx)(uo.DefaultItems.ToggleTheme,{}),(0,ge.jsx)(uo.DefaultItems.ChangeCanvasBackground,{})]}),A$=()=>(0,ge.jsxs)(Ih,{__fallback:!0,children:[(0,ge.jsx)(Ih.Actions.SaveToDisk,{}),(0,ge.jsx)(Ih.Actions.ExportToImage,{})]}),k$=({actionManager:e,appState:t,files:r,setAppState:o,elements:i,canvas:a,onLockToggle:s,onHandToolToggle:c,onPenModeToggle:d,showExitZenModeBtn:u,renderTopRightUI:f,renderCustomStats:m,UIOptions:g,onExportImage:h,renderWelcomeScreen:b,children:y,app:T,isCollaborating:k,openAIKey:I,isOpenAIKeyPersisted:C,onOpenAIAPIKeyChange:O,onMagicSettingsConfirm:z})=>{let L=rt(),F=n3(),[D,V]=Ve(Ma,mt),U=()=>g.canvasActions.export?(0,ge.jsx)(F3,{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)(T3,{elements:i,appState:t,files:r,actionManager:e,onExportImage:h,onCloseRequest:()=>o({openDialog:null}),name:T.getName()}),me=()=>(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)(za,{heading:"selectedShapeActions",className:q("selected-shape-actions zen-mode-transition",{"transition-left":t.zenModeEnabled}),children:(0,ge.jsx)(xr,{className:Qu.SHAPE_ACTIONS_MENU,padding:2,style:{maxHeight:`${t.height-166}px`},children:(0,ge.jsx)(oh,{appState:t,elementsMap:T.scene.getNonDeletedElementsMap(),renderAction:e.renderAction})})}),se=()=>{let Ee=qs(t,i),ue=t.stats.open&&!t.zenModeEnabled&&!t.viewModeEnabled;return(0,ge.jsx)(uh,{side:"top",children:(0,ge.jsxs)("div",{className:"App-menu App-menu_top",children:[(0,ge.jsxs)(Ar.Col,{gap:6,className:q("App-menu_top__left"),children:[me(),Ee&&K()]}),!t.viewModeEnabled&&(0,ge.jsx)(za,{heading:"shapes",className:"shapes-section",children:G=>(0,ge.jsxs)("div",{style:{position:"relative"},children:[b&&(0,ge.jsx)(F.WelcomeScreenToolbarHintTunnel.Out,{}),(0,ge.jsx)(Ar.Col,{gap:4,align:"start",children:(0,ge.jsxs)(Ar.Row,{gap:1,className:q("App-toolbar-container",{"zen-mode":t.zenModeEnabled}),children:[(0,ge.jsxs)(xr,{padding:1,className:q("App-toolbar",{"zen-mode":t.zenModeEnabled}),children:[(0,ge.jsx)(ph,{appState:t,isMobile:L.editor.isMobile,device:L,app:T}),G,(0,ge.jsxs)(Ar.Row,{gap:1,children:[(0,ge.jsx)(gh,{zenModeEnabled:t.zenModeEnabled,checked:t.penMode,onChange:()=>d(null),title:E("toolBar.penMode"),penDetected:t.penDetected}),(0,ge.jsx)(fh,{checked:t.activeTool.locked,onChange:s,title:E("toolBar.lock")}),(0,ge.jsx)("div",{className:"App-toolbar__divider"}),(0,ge.jsx)(hh,{checked:Si(t),onChange:()=>c(),title:E("toolBar.hand"),isMobile:!0}),(0,ge.jsx)(nh,{appState:t,activeTool:t.activeTool,UIOptions:g,app:T})]})]}),k&&(0,ge.jsx)(xr,{style:{marginLeft:8,alignSelf:"center",height:"fit-content"},children:(0,ge.jsx)(wP,{title:E("toolBar.laser"),checked:t.activeTool.type===Zt.laser,onChange:()=>T.setActiveTool({type:Zt.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)(bh,{collaborators:t.collaborators,userToFollow:t.userToFollow?.socketId||null}),f?.(L.editor.isMobile,t),!t.viewModeEnabled&&(!_e||t.openSidebar?.name!==In.name)&&(0,ge.jsx)(F.DefaultSidebarTriggerTunnel.Out,{}),ue&&(0,ge.jsx)(tM,{scene:T.scene,onClose:()=>{e.executeAction(Mc)},renderCustomStats:m})]})]})})},be=()=>(0,ge.jsx)(_h,{__fallback:!0,onDock:Ee=>{ze("sidebar",`toggleDock (${Ee?"dock":"undock"})`,`(${L.editor.isMobile?"mobile":"desktop"})`)}}),_e=tm(Bm,mt),nt=(0,ge.jsxs)(ge.Fragment,{children:[y,(0,ge.jsx)(_$,{UIOptions:g}),(0,ge.jsx)(_h.Trigger,{__fallback:!0,icon:yp,title:da(E("toolBar.library")),onToggle:Ee=>{Ee&&ze("sidebar",`${In.name} (open)`,`button (${L.editor.isMobile?"mobile":"desktop"})`)},tab:In.defaultTab,children:E("toolBar.library")}),(0,ge.jsx)(A$,{}),t.openDialog?.name==="ttd"&&(0,ge.jsx)(a0,{__fallback:!0}),t.isLoading&&(0,ge.jsx)(Nf,{delay:250}),t.errorMessage&&(0,ge.jsx)(S3,{onClose:()=>o({errorMessage:null}),children:t.errorMessage}),D&&!L.editor.isMobile&&(0,ge.jsx)(jA,{colorPickerType:D.colorPickerType,onCancel:()=>{V(null)},onChange:(Ee,ue,G,{altKey:Y})=>{if(!(Ee!=="elementBackground"&&Ee!=="elementStroke"))if(G.length){for(let oe of G)ce(oe,{[Y&&D.swapPreviewOnAlt?Ee==="elementBackground"?"strokeColor":"backgroundColor":Ee==="elementBackground"?"backgroundColor":"strokeColor"]:ue},!1),ha.delete(oe);rn.getScene(G[0])?.triggerUpdate()}else o(Ee==="elementBackground"?{currentItemBackgroundColor:ue}:{currentItemStrokeColor:ue})},onSelect:(Ee,ue)=>{V(G=>G?.keepOpenOnAlt&&ue.altKey?G:null),D?.onSelect?.(Ee,ue)}}),t.openDialog?.name==="help"&&(0,ge.jsx)(D3,{onClose:()=>{o({openDialog:null})}}),t.openDialog?.name==="settings"&&(0,ge.jsx)(_P,{openAIKey:I,isPersisted:C,onChange:O,onConfirm:(Ee,ue)=>{let G=t.openDialog?.name==="settings"?t.openDialog?.source:"settings";o({openDialog:null},()=>{z(Ee,ue,G)})},onClose:()=>{o({openDialog:null})}}),(0,ge.jsx)(m3,{}),(0,ge.jsx)(F.OverwriteConfirmDialogTunnel.Out,{}),Q(),U(),t.pasteDialog.shown&&(0,ge.jsx)(L3,{setAppState:o,appState:t,onClose:()=>o({pasteDialog:{shown:!1,data:null}})}),L.editor.isMobile&&(0,ge.jsx)(P3,{app:T,appState:t,elements:i,actionManager:e,renderJSONExportDialog:U,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% - ${YS}px)`}:{},children:[b&&(0,ge.jsx)(F.WelcomeScreenCenterTunnel.Out,{}),se(),(0,ge.jsx)(H3,{appState:t,actionManager:e,showExitZenModeBtn:u,renderWelcomeScreen:b}),t.scrolledOutside&&(0,ge.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{o(Ee=>({...Al(i,Ee)}))},children:E("buttons.scrollBackToContent")})]}),be()]})]});return(0,ge.jsx)(Py.Provider,{value:t,children:(0,ge.jsx)(kf,{scope:F.jotaiScope,children:(0,ge.jsx)(EE.Provider,{value:F,children:nt})})})},rM=e=>{let{suggestedBindings:t,startBoundElement:r,cursorButton:o,scrollX:i,scrollY:a,...s}=e;return s},P$=(e,t)=>{if(e.children!==t.children)return!1;let{canvas:r,appState:o,...i}=e,{canvas:a,appState:s,...c}=t;return br(rM(o),rM(s),{selectedElementIds:br,selectedGroupIds:br})&&br(i,c)},nM=oM.default.memo(k$,P$);v();var ed=w(j(),1);var Km=w(M(),1),M$=5e3,iM=({message:e,onClose:t,closable:r=!1,duration:o=M$,style:i})=>{let a=(0,ed.useRef)(0),s=o!==1/0,c=(0,ed.useCallback)(()=>{s&&(a.current=window.setTimeout(()=>t(),o))},[t,o,s]);return(0,ed.useEffect)(()=>{if(s)return c(),()=>clearTimeout(a.current)},[c,e,o,s]),(0,Km.jsxs)("div",{className:"Toast",onMouseEnter:s?()=>clearTimeout(a?.current):void 0,onMouseLeave:s?c:void 0,style:i,children:[(0,Km.jsx)("p",{className:"Toast__message",children:e}),r&&(0,Km.jsx)(Ie,{icon:Qo,"aria-label":"close",type:"icon",onClick:t,className:"close"})]})};v();var u0=re({name:"viewMode",label:"labels.viewMode",paletteName:"Toggle view mode",icon:Ns,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 VM=w(bE(),1);v();var aM=(e,t)=>{let r=t.scene.getSelectedElements(e);return r.length===1&&He(r[0])},lM=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=Ea(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)=>aM(t,o)}),sM=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:rI(e,i),appState:{...t,selectedElementIds:{[i.id]:!0}},storeAction:W.CAPTURE}:{elements:e,appState:t,storeAction:W.NONE}},predicate:(e,t,r,o)=>aM(t,o)}),lwe=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}),swe=re({name:"setFrameAsActiveTool",label:"toolBar.frame",trackEvent:{category:"toolbar"},icon:Pp,viewMode:!1,perform:(e,t,r,o)=>{let i=Gt(t,{type:"frame"});return An(o.interactiveCanvas,{...t,activeTool:i}),{elements:e,appState:{...t,activeTool:Gt(t,{type:"frame"})},storeAction:W.NONE}},keyTest:e=>!e[R.CTRL_OR_CMD]&&!e.shiftKey&&!e.altKey&&e.key.toLocaleLowerCase()===R.F});v();var L$=8,cM=99999,Oh=e=>L$/e,gn=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}},Zi=({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,R$=(e,t,r=.01)=>Math.abs(e-t)<=r,Ym=(e,t,{omitCenter:r,boundingBoxCorners:o,dragOffset:i}={omitCenter:!1,boundingBoxCorners:!1})=>{let a=[];if(e.length===1){let s=e[0],[c,d,u,f,m,g]=Eo(s,t);i&&(c+=i.x,u+=i.x,m+=i.x,d+=i.y,f+=i.y,g+=i.y);let h=(u-c)/2,b=(f-d)/2;if((s.type==="diamond"||s.type==="ellipse")&&!o){let y=_i([c,d+b],[m,g],s.angle),T=_i([c+h,d],[m,g],s.angle),k=_i([u,d+b],[m,g],s.angle),I=_i([c+h,f],[m,g],s.angle);a=r?[y,T,k,I]:[y,T,k,I,[m,g]]}else{let y=_i([c,d],[m,g],s.angle),T=_i([u,d],[m,g],s.angle),k=_i([c,f],[m,g],s.angle),I=_i([u,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,u]=mf(e,i??{x:0,y:0}),f=d-s,m=u-c,g=[s,c],h=[d,c],b=[s,u],y=[d,u],T=[s+f/2,c+m/2];a=r?[g,h,b,y]:[g,h,b,y,T]}return a.map(s=>[Ht(s[0]),Ht(s[1])])},uM=(e,t,r,o)=>{let i=t.filter(a=>He(a)).map(a=>a.id);return Dv(e,t,r,o).filter(a=>!(a.frameId&&i.includes(a.frameId)))},pM=(e,t,r,o)=>{let i=uM(e,t,r,o),a=gl(i,o).filter(m=>!(m.length===1&&Ir(m[0]))).map(m=>lt(m).map(g=>Ht(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>cM)break e;let b=s[h],[,y,T,k]=g,[I,C,,O]=b;T<I&&Yd([y,k],[C,O])&&c.push({startBounds:g,endBounds:b,startSide:[[T,y],[T,k]],endSide:[[I,C],[I,O]],length:I-T,overlap:Vd([y,k],[C,O])})}}let u=a.sort((m,g)=>m[1]-g[1]),f=[];d=0;e:for(let m=0;m<u.length;m++){let g=u[m];for(let h=m+1;h<u.length;h++){if(++d>cM)break e;let b=u[h],[y,,T,k]=g,[I,C,O]=b;k<C&&Yd([y,T],[I,O])&&f.push({startBounds:g,endBounds:b,startSide:[[y,k],[T,k]],endSide:[[I,C],[O,C]],length:C-k,overlap:Vd([y,T],[I,O])})}}return{horizontalGaps:c,verticalGaps:f}},dM=(e,t,r,o,i,a,s)=>{if(!Zi({appState:r,event:o,selectedElements:e}))return[];if(e.length===0)return[];let c=gn.getVisibleGaps();if(c){let{horizontalGaps:d,verticalGaps:u}=c,[f,m,g,h]=mf(e,t).map(T=>Ht(T)),b=(f+g)/2,y=(m+h)/2;for(let T of d){if(!Yd([m,h],T.overlap))continue;let k=T.startSide[0][0]+T.length/2,I=Ht(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 U={type:"gap",direction:"center_horizontal",gap:T,offset:I};i.push(U);continue}let[,,O]=T.endBounds,z=f-O,L=Ht(T.length-z);if(Math.abs(L)<=s.x){Math.abs(L)<s.x&&(i.length=0),s.x=Math.abs(L);let U={type:"gap",direction:"side_right",gap:T,offset:L};i.push(U);continue}let[F,,,]=T.startBounds,D=F-g,V=Ht(D-T.length);if(Math.abs(V)<=s.x){Math.abs(V)<s.x&&(i.length=0),s.x=Math.abs(V);let U={type:"gap",direction:"side_left",gap:T,offset:V};i.push(U);continue}}for(let T of u){if(!Yd([f,g],T.overlap))continue;let k=T.startSide[0][1]+T.length/2,I=Ht(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 U={type:"gap",direction:"center_vertical",gap:T,offset:I};a.push(U);continue}let[,O,,]=T.startBounds,z=O-h,L=Ht(z-T.length);if(Math.abs(L)<=s.y){Math.abs(L)<s.y&&(a.length=0),s.y=Math.abs(L);let U={type:"gap",direction:"side_top",gap:T,offset:L};a.push(U);continue}let[,,,F]=T.endBounds,D=Ht(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 U={type:"gap",direction:"side_bottom",gap:T,offset:V};a.push(U);continue}}}},fM=(e,t,r,o)=>{let i=uM(e,t,r,o);return gl(i,o).filter(a=>!(a.length===1&&Ir(a[0]))).flatMap(a=>Ym(a,o))},td=(e,t,r,o,i,a,s)=>{if(!Zi({appState:r,event:o,selectedElements:e})||e.length===0&&t.length===0)return[];let c=gn.getReferenceSnapPoints();if(c)for(let d of t)for(let u of c){let f=u[0]-d[0],m=u[1]-d[1];Math.abs(f)<=s.x&&(Math.abs(f)<s.x&&(i.length=0),i.push({type:"point",points:[d,u],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,u],offset:m}),s.y=Math.abs(m))}},gM=(e,t,r,o,i)=>{let a=Oe(e,r);if(!Zi({appState:r,event:o,selectedElements:a})||a.length===0)return{snapOffset:{x:0,y:0},snapLines:[]};t.x=Ht(t.x),t.y=Ht(t.y);let s=[],c=[],d=Oh(r.zoom.value),u={x:d,y:d},f=Ym(a,i,{dragOffset:t});td(a,f,r,o,s,c,u),dM(a,t,r,o,s,c,u);let m={x:s[0]?.offset??0,y:c[0]?.offset??0};u.x=0,u.y=0,s.length=0,c.length=0;let g={x:Ht(t.x+m.x),y:Ht(t.y+m.y)};td(a,Ym(a,i,{dragOffset:g}),r,o,s,c,u),dM(a,g,r,o,s,c,u);let h=p0(s,c),b=N$(a,g,[...s,...c].filter(y=>y.type==="gap"));return{snapOffset:m,snapLines:[...h,...b]}},Ht=e=>Math.round(e*10**6)/10**6,mM=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())},p0=(e,t)=>{let r={},o={};if(e.length>0){for(let i of e)if(i.type==="point"){let a=Ht(i.points[0][0]);r[a]||(r[a]=[]),r[a].push(...i.points.map(s=>[Ht(s[0]),Ht(s[1])]))}}if(t.length>0){for(let i of t)if(i.type==="point"){let a=Ht(i.points[0][1]);o[a]||(o[a]=[]),o[a].push(...i.points.map(s=>[Ht(s[0]),Ht(s[1])]))}}return Object.entries(r).map(([i,a])=>({type:"points",points:mM(a.map(s=>[Number(i),s[1]]).sort((s,c)=>s[1]-c[1]))})).concat(Object.entries(o).map(([i,a])=>({type:"points",points:mM(a.map(s=>[s[0],Number(i)]).sort((s,c)=>s[0]-c[0]))})))},D$=e=>{let t=new Map;for(let r of e){let o=r.points.flat().map(i=>[Ht(i)]).join(",");t.has(o)||t.set(o,r)}return Array.from(t.values())},N$=(e,t,r)=>{let[o,i,a,s]=mf(e,t),c=[];for(let d of r){let[u,f,m,g]=d.gap.startBounds,[h,b,y,T]=d.gap.endBounds,k=Vd([i,s],d.gap.overlap),I=Vd([o,a],d.gap.overlap);switch(d.direction){case"center_horizontal":{if(k){let C=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[d.gap.startSide[0][0],C],[o,C]]},{type:"gap",direction:"horizontal",points:[[a,C],[d.gap.endSide[0][0],C]]})}break}case"center_vertical":{if(I){let C=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[C,d.gap.startSide[0][1]],[C,i]]},{type:"gap",direction:"vertical",points:[[C,s],[C,d.gap.endSide[0][1]]]})}break}case"side_right":{if(k){let C=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[m,C],[h,C]]},{type:"gap",direction:"horizontal",points:[[y,C],[o,C]]})}break}case"side_left":{if(k){let C=(k[0]+k[1])/2;c.push({type:"gap",direction:"horizontal",points:[[a,C],[u,C]]},{type:"gap",direction:"horizontal",points:[[m,C],[h,C]]})}break}case"side_top":{if(I){let C=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[C,s],[C,f]]},{type:"gap",direction:"vertical",points:[[C,g],[C,b]]})}break}case"side_bottom":{if(I){let C=(I[0]+I[1])/2;c.push({type:"gap",direction:"vertical",points:[[C,g],[C,b]]},{type:"gap",direction:"vertical",points:[[C,T],[C,i]]})}break}}}return D$(c.map(d=>({...d,points:d.points.map(u=>[Ht(u[0]),Ht(u[1])])})))},hM=(e,t,r,o,i,a)=>{if(!Zi({event:o,selectedElements:e,appState:r})||e.length===0||e.length===1&&!R$(e[0].angle,0))return{snapOffset:{x:0,y:0},snapLines:[]};let[s,c,d,u]=lt(t);a&&(a.includes("e")?d+=i.x:a.includes("w")&&(s+=i.x),a.includes("n")?c+=i.y:a.includes("s")&&(u+=i.y));let f=[];if(a)switch(a){case"e":{f.push([d,c],[d,u]);break}case"w":{f.push([s,c],[s,u]);break}case"n":{f.push([s,c],[d,c]);break}case"s":{f.push([s,u],[d,u]);break}case"ne":{f.push([d,c]);break}case"nw":{f.push([s,c]);break}case"se":{f.push([d,u]);break}case"sw":{f.push([s,u]);break}}let m=Oh(r.zoom.value),g={x:m,y:m},h=[],b=[];td(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,C]=lt(e).map(L=>Ht(L));td(e,[[T,k],[T,C],[I,k],[I,C]],r,o,h,b,g);let z=p0(h,b);return{snapOffset:y,snapLines:z}},bM=(e,t,r,o,i,a)=>{if(!Zi({event:r,selectedElements:[e],appState:t}))return{snapOffset:{x:0,y:0},snapLines:[]};let s=[[o.x+i.x,o.y+i.y]],c=Oh(t.zoom.value),d={x:c,y:c},u=[],f=[];td([e],s,t,r,u,f,d);let m={x:u[0]?.offset??0,y:f[0]?.offset??0};d.x=0,d.y=0,u.length=0,f.length=0;let g=Ym([e],a,{boundingBoxCorners:!0,omitCenter:!0});td([e],g,t,r,u,f,d);let h=p0(u,f);return{snapOffset:m,snapLines:h}},xM=(e,t,r,o,i)=>{if(!Zi({event:o,selectedElements:[],appState:t}))return{originOffset:{x:0,y:0},snapLines:[]};let a=Dv(e,[],t,i),s=Oh(t.zoom.value),c={x:s,y:s},d=[],u=[];for(let f of a){let m=Ym([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)&&(u.length=0),u.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:u.length>0?u[0].points[0][0]-r.x:0,y:d.length>0?d[0].points[0][1]-r.y:0},snapLines:[...u,...d]}},vM=e=>e===Zt.rectangle||e===Zt.ellipse||e===Zt.diamond||e===Zt.frame||e===Zt.magicframe||e===Zt.image||e===Zt.text;v();var qr=w(M(),1),O$=()=>(0,qr.jsxs)("div",{"data-testid":"brave-measure-text-error",children:[(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line1",bold:e=>(0,qr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line2",bold:e=>(0,qr.jsx)("span",{style:{fontWeight:600},children:e})})}),(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line3",link:e=>(0,qr.jsx)("a",{href:"http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser",children:e})})}),(0,qr.jsx)("p",{children:(0,qr.jsx)(co,{i18nKey:"errors.brave_measure_text_error.line4",issueLink:e=>(0,qr.jsx)("a",{href:"https://github.com/excalidraw/excalidraw/issues/new",children:e}),discordLink:e=>(0,qr.jsxs)("a",{href:"https://discord.gg/UexuTaE",children:[e,"."]})})})]}),yM=O$;v();var Fh={width:100,height:0},Wa=100,F$=(e,t,r)=>{let o=xa({x:0,y:0,textAlign:Cd.CENTER,verticalAlign:Zo.MIDDLE,...t,containerId:e.id,strokeColor:t.strokeColor||e.strokeColor});return Object.assign(e,{boundElements:(e.boundElements||[]).concat({type:"text",id:o.id})}),qt(o,e,r),[e,o]},EM=(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??Wa,m=t?.height??Wa,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=xa({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=ba({x:h,y:b,width:f,height:m,...g,...t,type:y});break}default:gp(e,`Unhandled element start type "${t.type}"`,!0)}Hs(e,a,"start",i)}}if(r){let f=r?.height??Wa,m=r?.width??Wa,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=xa({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=ba({x:h,y:b,width:m,height:f,...g,...r,type:y});break}default:gp(e,`Unhandled element end type "${y}"`,!0)}Hs(e,s,"end",i)}}if(e.points.length<2)return{linearElement:e,startBoundElement:a,endBoundElement:s};let c=e.points.length-1,d=.5,u=vo(e.points);return e.points[c][0]>e.points[c-1][0]&&(u[0][0]=d,u[c][0]-=d),e.points[c][0]<e.points[c-1][0]&&(u[0][0]=-d,u[c][0]+=d),e.points[c][1]>e.points[c-1][1]&&(u[0][1]=d,u[c][1]-=d),e.points[c][1]<e.points[c-1][1]&&(u[0][1]=-d,u[c][1]+=d),Object.assign(e,{points:u}),{linearElement:e,startBoundElement:a,endBoundElement:s}},f0=class{excalidrawElements=new Map;add=t=>{t&&this.excalidrawElements.set(t.id,t)};getElements=()=>ki(Array.from(this.excalidrawElements.values()));getElementsMap=()=>bp(Re(this.getElements()));getElement=t=>this.excalidrawElements.get(t)},Kc=(e,t)=>{if(!e)return[];let r=vo(e),o=new f0,i=new Map,a=new Map;for(let c of r){let d,u=c.id;switch(t?.regenerateIds!==!1&&Object.assign(c,{id:fa()}),c.type){case"rectangle":case"ellipse":case"diamond":{let m=c?.label?.text&&c.width===void 0?0:c?.width||Wa,g=c?.label?.text&&c.height===void 0?0:c?.height||Wa;d=ba({...c,width:m,height:g});break}case"line":{let m=c.width||Fh.width,g=c.height||Fh.height;d=Gp({width:m,height:g,points:[[0,0],[m,g]],...c});break}case"arrow":{let m=c.width||Fh.width,g=c.height||Fh.height;d=Wp({width:m,height:g,endArrowhead:"arrow",points:[[0,0],[m,g]],...c,type:"arrow"}),Object.assign(d,dC(d.points));break}case"text":{let m=c?.fontFamily||ws,g=c?.fontSize||Es,h=c?.lineHeight||Ii(m),b=c.text??"",y=Zd(b),T=Ai(y,ro({fontFamily:m,fontSize:g}),h);d=xa({width:T.width,height:T.height,fontFamily:m,fontSize:g,...c});break}case"image":{d=Kp({width:c?.width||Wa,height:c?.height||Wa,...c});break}case"frame":{d=Up({x:0,y:0,...c});break}case"magicframe":{d=$d({x:0,y:0,...c});break}case"freedraw":case"iframe":case"embeddable":{d=c;break}default:d=c,gp(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),u&&a.set(u,d.id))}let s=o.getElementsMap();for(let[c,d]of i){let u=o.getElement(c);switch(d.type){case"rectangle":case"ellipse":case"diamond":case"arrow":{if(d.label?.text){let[f,m]=F$(u,d?.label,s);if(o.add(f),o.add(m),_t(f)){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}=EM(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}=EM(u,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 u=o.getElement(c);if(!u)throw new Error(`Excalidraw element with id ${c} doesn't exist`);let f=[];d.children.forEach(I=>{let C=a.get(I);if(!C)throw new Error(`Element with ${I} wasn't mapped correctly`);let O=o.getElement(C);if(!O)throw new Error(`Frame element with id ${C} doesn't exist`);Object.assign(O,{frameId:u.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:u.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(u?.width,h-m),k=Math.max(u?.height,b-g);Object.assign(u,{x:m,y:g,width:T,height:k})}return o.getElements()};v();v();var rd=w(j(),1);v();var g0=w(Zn(),1),wM=w(j(),1);var Ot=e=>t=>{(0,g0.unstable_batchedUpdates)(e,t)},Bh=e=>mp(t=>{(0,g0.unstable_batchedUpdates)(e,t)}),zh=(()=>{let e;try{let r=wM.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 B$="#ff6b6b",z$="#ff0000",SM=1,TM=2,CM=(e,t)=>{if(!t.snapLines.length)return;let r=t.theme===Be.LIGHT||t.zenModeEnabled?B$:z$,o=(t.zenModeEnabled?SM*1.5:SM)/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,H$(i,e,t)):i.type==="gap"?(e.lineWidth=o,e.strokeStyle=r,U$(i.points[0],i.points[1],i.direction,t,e)):i.type==="points"&&(e.lineWidth=o,e.strokeStyle=r,$$(i,e,t));e.restore()},$$=(e,t,r)=>{if(!r.zenModeEnabled){let o=e.points[0],i=e.points[e.points.length-1];hn(o,i,t)}for(let o of e.points)IM(o,r,t)},H$=(e,t,r)=>{IM(e.points[0],r,t),r.zenModeEnabled||hn(e.points[0],e.points[1],t)},IM=([e,t],r,o)=>{o.save();let i=(r.zenModeEnabled?TM*1.5:TM)/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()},hn=(e,t,r)=>{r.beginPath(),r.lineTo(...e),r.lineTo(...t),r.stroke()},U$=(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||hn([e[0],e[1]-a],[e[0],e[1]+a],i),hn([d[0]-c,d[1]-s],[d[0]-c,d[1]+s],i),hn([d[0]+c,d[1]-s],[d[0]+c,d[1]+s],i),o.zenModeEnabled||(hn([t[0],t[1]-a],[t[0],t[1]+a],i),hn(e,t,i))}else{let d=[e[0],(e[1]+t[1])/2];o.zenModeEnabled||hn([e[0]-a,e[1]],[e[0]+a,e[1]],i),hn([d[0]-s,d[1]-c],[d[0]+s,d[1]-c],i),hn([d[0]-s,d[1]+c],[d[0]+s,d[1]+c],i),o.zenModeEnabled||(hn([t[0]-a,t[1]],[t[0]+a,t[1]],i),hn(e,t,i))}};var G$=(e,t,r)=>{let{elementId:o,hoverPointIndex:i}=t.selectedLinearElement;if(t.editingLinearElement?.selectedPointsIndices?.includes(i))return;let a=Le.getElement(o,r);if(!a)return;let s=Le.getPointAtIndexGlobalCoordinates(a,i,r);e.save(),e.translate(t.scrollX,t.scrollY),b0(s,e,t),e.restore()},b0=(e,t,r)=>{t.fillStyle="rgba(105, 101, 219, 0.4)",Ud(t,e[0],e[1],Le.POINT_HANDLE_SIZE/r.zoom.value,!1)},Vm=(e,t,r,o,i,a,s,c,d=!1,u=0)=>{e.save(),e.translate(a,s),e.rotate(c),d&&e.fillRect(t-a,r-s,o,i),u&&e.roundRect?(e.beginPath(),e.roundRect(t-a,r-s,o,i,u),e.stroke(),e.closePath()):e.strokeRect(t-a,r-s,o,i),e.restore()},W$=(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()},$h=(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)"),Ud(e,r[0],r[1],o/t.zoom.value,!a)},K$=(e,t,r,o,i,a)=>{e.beginPath(),e.ellipse(o,i,t/2,r/2,a,0,Math.PI*2),e.stroke()},Y$=(e,t,r)=>{let[o,i,a,s]=Eo(t,r),c=a-o,d=s-i,u=10,f=4;e.strokeStyle="rgba(0,0,0,.05)",e.lineWidth=u-f;let m=f/2+u/2,g=uf(Math.min(t.width,t.height),t);switch(t.type){case"rectangle":case"text":case"image":case"iframe":case"embeddable":case"frame":case"magicframe":Vm(e,o-m,i-m,c+m*2,d+m*2,o+c/2,i+d/2,t.angle,void 0,g);break;case"diamond":let h=Math.hypot(c,d),b=m*h/d,y=m*h/c;W$(e,c+b*2,d+y*2,o+c/2,i+d/2,t.angle);break;case"ellipse":K$(e,c+m*2,d+m*2,o+c/2,i+d/2,t.angle);break}},V$=(e,t,r)=>{let[o,i,a]=t,s=MC(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[u,f]=Le.getPointAtIndexGlobalCoordinates(o,d,r);Ud(e,u,f,s)})},AM=(e,t,r)=>{let{angle:o,elementX1:i,elementY1:a,elementX2:s,elementY2:c,selectionColors:d,cx:u,cy:f,dashed:m,activeEmbeddable:g}=r,h=s-i,b=c-a,T=tp*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 C=d.length;for(let O=0;O<C;++O)e.strokeStyle=d[O],m&&e.setLineDash([k,I+(k+I)*(C-1)]),e.lineDashOffset=(k+I)*O,Vm(e,i-T,a-T,h+T*2,b+T*2,u,f,o);e.restore()},X$=(e,t,r,o)=>{let i=Array.isArray(r)?V$:Y$;e.save(),e.translate(t.scrollX,t.scrollY),i(e,r,o),e.restore()},Z$=(e,t,r,o)=>{let[i,a,s,c]=Eo(r,o),d=s-i,u=c-a;e.strokeStyle="rgb(0,118,255)",e.lineWidth=Cn.strokeWidth/t.zoom.value,e.save(),e.translate(t.scrollX,t.scrollY),Vm(e,i,a,d,u,i+d/2,a+u/2,r.angle,!1,Cn.radius/t.zoom.value),e.restore()},q$=(e,t,r)=>{let o=r.filter(c=>c.groupIds.length===0),i=r.filter(c=>c.groupIds.length>0),a=c=>{let[d,u,f,m]=lt(c);return{angle:0,elementX1:d,elementX2:f,elementY1:u,elementY2:m,selectionColors:["rgb(0,118,255)"],dashed:!1,cx:d+(f-d)/2,cy:u+(m-u)/2,activeEmbeddable:!1}},s=c=>{let d=Kt(r,c);return a(d)};Object.entries(w2(i,t)).filter(([c,d])=>d).map(([c,d])=>c).map(c=>s(c)).concat(o.map(c=>a([c]))).forEach(c=>AM(e,t,c))},h0=(e,t,r,o)=>{if(!t.selectedLinearElement)return;e.save(),e.translate(t.scrollX,t.scrollY),e.lineWidth=1/t.zoom.value;let i=Le.getPointsGlobalCoordinates(r,o),{POINT_HANDLE_SIZE:a}=Le,s=t.editingLinearElement?a:a/2;i.forEach((d,u)=>{if(dt(r)&&u!==0&&u!==i.length-1)return;let f=!!t.editingLinearElement?.selectedPointsIndices?.includes(u);$h(e,t,d,s,f)}),Le.getEditorMidPoints(r,o,t).filter(d=>d!==null).forEach(d=>{t?.selectedLinearElement?.segmentMidPointHoveredCoords&&Le.arePointsEqual(d,t.selectedLinearElement.segmentMidPointHoveredCoords)?t.editingLinearElement?($h(e,t,d,s,!1),b0(d,e,t)):(b0(d,e,t),$h(e,t,d,s,!1)):(t.editingLinearElement||i.length===2)&&$h(e,t,d,a/2,!1,!0)}),e.restore()},_M=(e,t,r,o,i)=>{Object.keys(o).forEach(a=>{let s=o[a];if(s!==void 0){let[c,d,u,f]=s;e.save(),e.lineWidth=1/r.zoom.value,t.selectionColor&&(e.strokeStyle=t.selectionColor),a==="rotation"?Ud(e,c+u/2,d+f/2,u/2):e.roundRect?(e.beginPath(),e.roundRect(c,d,u,f,2/r.zoom.value),e.fill(),e.stroke()):Vm(e,c,d,u,f,c+u/2,d+f/2,i,!0),e.restore()}})},j$=(e,t,r,o)=>{t.save();let i=tp*2/r.zoom.value,a=e.width+i*2,s=e.height+i*2,c=e.x+a/2,d=e.y+s/2,u=-(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(u,f,a,s),t.restore()},kM=({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[u,f]=$C(e,a),m=HC({canvas:e,scale:a,normalizedWidth:u,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&&h0(m,s,g,t),s.selectionElement)try{iI(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&&j$(y,m,s,c.selectionColor)}s.isBindingEnabled&&s.suggestedBindings.filter(y=>y!=null).forEach(y=>{X$(m,s,y,t)}),s.frameToHighlight&&Z$(m,s,s.frameToHighlight,t),s.elementsToHighlight&&q$(m,s,s.elementsToHighlight);let h=o.some(y=>He(y));if(o.length===1&&s.editingLinearElement?.elementId===o[0].id&&h0(m,s,o[0],t),s.selectedLinearElement&&s.selectedLinearElement.hoverPointIndex>=0&&!(dt(o[0])&&s.selectedLinearElement.hoverPointIndex>0&&s.selectedLinearElement.hoverPointIndex<o[0].points.length-1)&&G$(m,s,t),!s.multiElement&&!s.editingLinearElement){let y=Ef(o,s),T=o.length===1&&Qe(o[0]);T&&s.selectedLinearElement?.elementId===o[0].id&&!o[0].locked&&h0(m,s,o[0],t);let k=c.selectionColor||zr.black;if(y){let I=Re(o),C=[];for(let z of t.values()){let L=[],F=c.remoteSelectedElementIds.get(z.id);if(T&&_t(z)&&dt(z)&&(z.startBinding||z.endBinding)||(I.has(z.id)&&!xp(s,z)&&L.push(k),F&&L.push(...F.map(D=>Ul(D,s.collaborators.get(D))))),L.length){let[D,V,U,Q,me,K]=Eo(z,t,!0);C.push({angle:z.angle,elementX1:D,elementY1:V,elementX2:U,elementY2:Q,selectionColors:L,dashed:!!F,cx:me,cy:K,activeEmbeddable:s.activeEmbeddable?.element===z&&s.activeEmbeddable.state==="active"})}}let O=z=>{let L=Kt(t,z),[F,D,V,U]=lt(L);C.push({angle:0,elementX1:F,elementX2:V,elementY1:D,elementY2:U,selectionColors:[zr.black],dashed:!0,cx:F+(V-F)/2,cy:D+(U-D)/2,activeEmbeddable:!1})};for(let z of _n(s))O(z);s.editingGroupId&&O(s.editingGroupId),C.forEach(z=>AM(m,s,z))}if(m.save(),m.translate(s.scrollX,s.scrollY),o.length===1){m.fillStyle=zr.white;let I=SI(o[0],s.zoom,t,"mouse",yf(d));!s.viewModeEnabled&&y&&!he(s.editingElement)&&_M(m,c,s,I,o[0].angle)}else if(o.length>1&&!s.isRotating){let I=tp*2/s.zoom.value;m.fillStyle=zr.white;let[C,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,Vm(m,C-I,O-I,z-C+I*2,L-O+I*2,(C+z)/2,(O+L)/2,0),m.lineWidth=D,m.setLineDash(F);let V=wI([C,O,z,L,(C+z)/2,(O+L)/2],0,s.zoom,"mouse",h?{...yf(d),rotation:!0}:yf(d));o.some(U=>!U.locked)&&_M(m,c,s,V,0)}m.restore()}CM(m,s),m.restore(),Nk({context:m,renderConfig:c,appState:s,normalizedWidth:u,normalizedHeight:f});let b;return c.renderScrollbars&&(b=A3(r,u,f,s),m.save(),m.fillStyle=_3,m.strokeStyle="rgba(255,255,255,0.8)",[b.horizontal,b.vertical].forEach(y=>{y&&Mg(m,y.x,y.y,y.width,y.height,ni/2)}),m.restore()),{scrollBars:b,atLeastOneVisibleElement:r.length>0,elementsMap:t}},x0=mp(e=>{let t=kM(e);e.callback?.(t)},{trailing:!0}),PM=(e,t)=>{if(t){x0(e);return}let r=kM(e);return e.callback(r),r};var LM=w(M(),1),J$=e=>{let t=(0,rd.useRef)(!1);return(0,rd.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,u)=>{if(d.selectedElementIds)for(let f of Object.keys(d.selectedElementIds))i.has(f)||i.set(f,[]),i.get(f).push(u);!d.pointer||d.pointer.renderCursor===!1||(d.username&&a.set(u,d.username),d.userState&&s.set(u,d.userState),o.set(u,oo({sceneX:d.pointer.x,sceneY:d.pointer.y},e.appState)),r.set(u,d.button))});let c=e.containerRef?.current&&getComputedStyle(e.containerRef.current).getPropertyValue("--color-selection")||"#6965db";PM({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},zh())}),(0,LM.jsx)("canvas",{className:"excalidraw__canvas interactive",style:{width:e.appState.width,height:e.appState.height,cursor:e.appState.viewModeEnabled?pt.GRAB:pt.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")})},MM=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}),Q$=(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:br(MM(e.appState),MM(t.appState)),v0=rd.default.memo(J$,Q$);v();var rs=w(j(),1);var DM=w(M(),1),eH=e=>{let t=(0,rs.useRef)(null),r=(0,rs.useRef)(!1);return(0,rs.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),GC({canvas:i,rc:e.rc,scale:e.scale,elementsMap:e.elementsMap,allElementsMap:e.allElementsMap,visibleElements:e.visibleElements,appState:e.appState,renderConfig:e.renderConfig},zh())}),(0,DM.jsx)("div",{className:"excalidraw__canvas-wrapper",ref:t})},RM=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}),tH=(e,t)=>e.sceneNonce!==t.sceneNonce||e.scale!==t.scale||e.elementsMap!==t.elementsMap||e.visibleElements!==t.visibleElements?!1:br(RM(e.appState),RM(t.appState))&&br(e.renderConfig,t.renderConfig),y0=rs.default.memo(eH,tH);v();var Xm=class{scene;constructor(t){this.scene=t}getRenderableElements=(()=>{let t=({elementsMap:o,zoom:i,offsetLeft:a,offsetTop:s,scrollX:c,scrollY:d,height:u,width:f})=>{let m=[];for(let g of o.values())jd(g,f,u,{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=bp(new Map);for(let c of o)pa(c)&&a===c.id||(!i||i.type!=="text"||c.id!==i.id)&&s.set(c.id,c);return s};return d2(({zoom:o,offsetLeft:i,offsetTop:a,scrollX:s,scrollY:c,height:d,width:u,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:u});return{elementsMap:b,visibleElements:y}})})();destroy(){x0.cancel(),UC.cancel(),this.getRenderableElements.clear()}};v();var Hh=w(j(),1);var E0=w(M(),1),NM=({trails:e})=>{let t=(0,Hh.useRef)(null);return(0,Hh.useEffect)(()=>{if(t.current)for(let r of e)r.start(t.current);return()=>{for(let r of e)r.stop()}},e),(0,E0.jsx)("div",{className:"SVGLayer",children:(0,E0.jsx)("svg",{ref:t})})};v();var OM=w(M(),1),rH=5,oH=(e,t,r)=>{let[o,i]=Eo(e,r),{x:a,y:s}=oo({sceneX:o+e.width,sceneY:i},t),c=a-t.offsetLeft+10,d=s-t.offsetTop;return{x:c,y:d}},w0=({children:e,element:t,elementsMap:r})=>{let o=Qn();if(o.contextMenu||o.draggingElement||o.resizingElement||o.isRotating||o.openMenu||o.viewModeEnabled)return null;let{x:i,y:a}=oH(t,o,r);return(0,OM.jsx)("div",{className:"excalidraw-canvas-buttons",style:{top:`${a}px`,left:`${i}px`,padding:rH},children:e})};v();var nH=`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 e6({image:t,apiKey:e,text:o,theme:r=be.LIGHT}){let n={model:"gpt-4-vision-preview",max_tokens:4096,temperature:.1,messages:[{role:"system",content:EI},{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 Ns=v(k(),1),yI="small",wp=t=>(0,Ns.jsxs)("label",{className:$("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${yI}`,{"is-mobile":t.isMobile}),title:`${t.title}`,children:[(0,Ns.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:t.name,onChange:t.onChange,checked:t.checked,"aria-label":t.title}),(0,Ns.jsx)("div",{className:"ToolIcon__icon",children:t.icon})]});h();var Li=v(k(),1),wI=({height:t,width:e,userToFollow:o,onDisconnect:r})=>(0,Li.jsx)("div",{className:"follow-mode",style:{width:e,height:t},children:(0,Li.jsxs)("div",{className:"follow-mode__badge",children:[(0,Li.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,Li.jsx)("span",{className:"follow-mode__badge__username",title:o.username,children:o.username})]}),(0,Li.jsx)("button",{onClick:r,className:"follow-mode__disconnect-btn",children:Ro})]})}),t6=wI;h();var Cp=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 CI(t,e,o,r){Object.defineProperty(t,e,{get:o,set:r,enumerable:!0,configurable:!0})}var SI={};CI(SI,"LaserPointer",()=>Fs);function pt([t,e,o],[r,n,i]){return[t+r,e+n,o+i]}function Os([t,e,o],[r,n,i]){return[t-r,e-n,o-i]}function St([t,e,o],r){return[t*r,e*r,o*r]}function rl([t,e,o]){return[t/Math.sqrt(t**2+e**2),e/Math.sqrt(t**2+e**2),o]}function qt([t,e,o],r){return[Math.cos(r)*t-Math.sin(r)*e,Math.sin(r)*t+Math.cos(r)*e,o]}function TI(t,e,o){return pt(t,St(Os(e,t),o))}function o6(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 r6(t){return Math.atan2(Math.sin(t),Math.cos(t))}function n6([t,e]){return Math.sqrt(t**2+e**2)}function nl([t,e],[o,r]){return Math.sqrt((o-t)**2+(r-e)**2)}function kI(t){if(t.length<2)return 0;let e=0;for(let o=1;o<=t.length-1;o++)e+=nl(t[o-1],t[o]);return e+=nl(t[t.length-2],t[t.length-1]),e}var II=(t,e,o)=>Math.max(e,Math.min(o,t));function AI(t,e,o){let r=nl(e,o);if(r===0)return nl(t,e);let n=II(((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 nl(i,t)}function Sp(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,d)=>{let c=AI(s,o,r);return c>a?[c,d]:[a,l]},[0,-1]);if(n>=e){let a=t[i];return[...Sp([o,...t.slice(1,i),a],e).slice(0,-1),a,...Sp([a,...t.slice(i,-1),r],e).slice(1)]}else return[o,r]}var Fs=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=TI(this.lastPoint,e,1-this.options.streamline)),this.tailPoints.push(e),kI(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=Sp(o,this.options.simplify));let r=o.length;if(r===0)return[];if(r===1){let M=o[0],_=this.getSize(e,M[2],0,r,0);if(_<.5)return[];let U=[];for(let D=0;D<=Math.PI*2;D+=Math.PI/16)U.push(pt(M,St(qt([1,0,0],D),_)));return U.push(pt(M,St([1,0,0],this.getSize(e,M[2],0,r,0)))),U}if(r===2){let M=o[0],_=o[1],U=this.getSize(e,M[2],0,r,0),D=this.getSize(e,_[2],0,r,0);if(U<.5||D<.5)return[];let G=[],O=o6(M,[M[0],M[1]-100,M[2]],_);for(let B=O;B<=Math.PI+O;B+=Math.PI/16)G.push(pt(M,St(qt([1,0,0],B),U)));for(let B=Math.PI+O;B<=Math.PI*2+O;B+=Math.PI/16)G.push(pt(_,St(qt([1,0,0],B),D)));return G.push(G[0]),G}let n=[],i=[],a=0,l=0,s=0,d=0;for(let M=1;M<r-1;M++){let _=o[M-1],U=o[M],D=o[M+1],G=U[2],O=nl(_,U);d+=O,a=l+(O-l)*.2;let B=this.getSize(e,G,M,r,d);if(B===0){s=M+1;continue}let te=rl(Os(_,U)),oe=rl(Os(D,U)),ve=qt(te,Math.PI/2),Ie=qt(te,-Math.PI/2),me=qt(oe,Math.PI/2),j=qt(oe,-Math.PI/2),R=pt(U,St(ve,B)),N=pt(U,St(Ie,B)),K=pt(U,St(me,B)),Y=pt(U,St(j,B)),Z=pt(ve,j),X=pt(Ie,me),ee=pt(U,St(n6(Z)===0?te:rl(Z),B)),ne=pt(U,St(n6(X)===0?oe:rl(X),B)),rt=r6(o6(U,_,D)),nt=t.constants.cornerDetectionMaxAngle/180*Math.PI*t.constants.cornerDetectionVariance(a);if(Math.abs(rt)<nt){let st=Math.abs(r6(Math.PI-rt));if(st===0)continue;if(rt<0){i.push(N,ne);for(let Ue=0;Ue<=st;Ue+=st/4)n.push(pt(U,qt(St(ve,B),Ue)));for(let Ue=st;Ue>=0;Ue-=st/4)i.push(pt(U,qt(St(ve,B),Ue)));i.push(ne,K)}else{n.push(R,ee);for(let Ue=0;Ue<=st;Ue+=st/4)i.push(pt(U,qt(St(ve,-B),-Ue)));for(let Ue=st;Ue>=0;Ue-=st/4)n.push(pt(U,qt(St(ve,-B),-Ue)));n.push(ee,Y)}}else n.push(ee),i.push(ne);l=a}if(s>=r-2)if(this.options.keepHead){let M=o[r-1],_=[];for(let U=0;U<=Math.PI*2;U+=Math.PI/16)_.push(pt(M,St(qt([1,0,0],U),this.options.size)));return _.push(pt(M,St([1,0,0],this.options.size))),_}else return[];let c=o[s],m=o[s+1],u=o[r-2],f=o[r-1],b=rl(Os(m,c)),x=rl(Os(u,f)),E=qt(b,-Math.PI/2),T=qt(x,Math.PI/2),C=this.getSize(e,c[2],0,r,0),w=[],A=this.options.keepHead?this.options.size:this.getSize(e,u[2],r-2,r,d),z=[];if(C>1){for(let M=0;M<=Math.PI;M+=Math.PI/16)w.unshift(pt(c,qt(St(E,C),-M)));w.unshift(pt(c,St(E,-C)))}else w.push(c);for(let M=0;M<=Math.PI*3;M+=Math.PI/16)z.push(pt(f,qt(St(T,-A),-M)));let I=[...w,...n,...z.reverse(),...i.reverse()];return w.length>0&&I.push(w[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Sp(I,this.options.simplify):I}};var Pi=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(R1,"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 Fs(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 j1(r,!0)}};h();var Tp=class{constructor(e,o){this.animationFrameHandler=e;this.app=o;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new Pi(e,o,{...this.getTrailOptions(),fill:()=>Fp})}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(Yn(i),Yn(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 Pi(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>o.pointer?.laserColor||xi(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 MI=(t,e,o,r,n,i)=>{let{zoom:a}=r,l=180*o/Math.PI,s=t*(a.value-1)/2,d=e*(a.value-1)/2;return t>n&&a.value!==1&&(s=n*(a.value-1)/2),e>i&&a.value!==1&&(d=i*(a.value-1)/2),`translate(${s}px, ${d}px) scale(${a.value}) rotate(${l}deg)`},i6=({id:t,onChange:e,onSubmit:o,getViewportCoords:r,element:n,canvas:i,excalidrawContainer:a,app:l})=>{let s=(O,B)=>{if(!B.style.fontFamily||!B.style.fontSize)return!1;let te=B.style.fontFamily.replace(/"/g,"");return Kp({fontFamily:O.fontFamily})!==te||`${O.fontSize}px`!==B.style.fontSize},d=()=>{let O=l.state,B=ko.getScene(n)?.getElement(t);if(!B)return;let{textAlign:te,verticalAlign:oe}=B,ve=l.scene.getNonDeletedElementsMap();if(B&&se(B)){let Ie=B.x,me=B.y,j=Nr(B,l.scene.getNonDeletedElementsMap()),R=B.width,N=B.height,K=B.width,Y=B.height;if(j&&B.containerId){if(ur(j)){let Jt=ue.getBoundTextElementPosition(j,B,ve);Ie=Jt.x,me=Jt.y}let st=s(B,c),Ue;if(st?Ue=kl(j.id,j.height):(Ue=db[j.id],Ue||(Ue=kl(j.id,j.height))),R=nu(j,B),N=Cb(j,B),!ur(j)&&Y>N){let Jt=Vi(Y,j.type);re(j,{height:Jt});return}else if(!ur(j)&&j.height>Ue.height&&Y<N){let Jt=Vi(Y,j.type);re(j,{height:Jt})}else{let{y:Jt}=yc(j,B,ve);me=Jt}}let[Z,X]=r(Ie,me),ee=c.selectionStart,ne=c.selectionEnd,rt=c.value.length;if(ee===ne&&ne!==rt){let st=rt-ne;c.selectionStart=c.value.length-st,c.selectionEnd=c.value.length-st}j||(R=(O.width-8-Z)/O.zoom.value,K=Math.min(K,R));let nt=(O.height-X)/O.zoom.value;Object.assign(c.style,{font:Xo(B),lineHeight:B.lineHeight,width:`${K}px`,height:`${Y}px`,left:`${Z}px`,top:`${X}px`,transform:MI(K,Y,vb(B,j),O,R,nt),textAlign:te,verticalAlign:oe,color:B.strokeColor,opacity:B.opacity/100,filter:"var(--theme-filter)",maxHeight:`${nt}px`}),c.scrollTop=0,cc()&&(c.style.fontFamily=Kp(B)),re(B,{x:Ie,y:me})}},c=document.createElement("textarea");c.dir="auto",c.tabIndex=0,c.dataset.type="wysiwyg",c.wrap="off",c.classList.add("excalidraw-wysiwyg");let m="pre",u="normal";xt(n)&&(m="pre-wrap",u="break-word"),Object.assign(c.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:u,whiteSpace:m,overflowWrap:"break-word",boxSizing:"content-box"}),c.value=n.originalText,d(),e&&(c.onpaste=async O=>{let B=await $c(O,!0);if(!B.text)return;let te=Il(B.text);if(!te)return;let oe=Nr(n,l.scene.getNonDeletedElementsMap()),ve=Xo({fontSize:l.state.currentItemFontSize,fontFamily:l.state.currentItemFontFamily});if(oe){let Ie=ct(oe,l.scene.getNonDeletedElementsMap()),me=gb(`${c.value}${te}`,ve,nu(oe,Ie)),j=hb(me,ve);c.style.width=`${j}px`}},c.oninput=()=>{e(Il(c.value))}),c.onkeydown=O=>{if(!O.shiftKey&&Qd.keyTest(O))O.preventDefault(),l.actionManager.executeAction(Qd),d();else if(!O.shiftKey&&em.keyTest(O))O.preventDefault(),l.actionManager.executeAction(em),d();else if(Jf.keyTest(O))l.actionManager.executeAction(Jf);else if(Qf.keyTest(O))l.actionManager.executeAction(Qf);else if(O.key===S.ESCAPE)O.preventDefault(),A=!0,z();else if(O.key===S.ENTER&&O[S.CTRL_OR_CMD]){if(O.preventDefault(),O.isComposing||O.keyCode===229)return;A=!0,z()}else if(O.key===S.TAB||O[S.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?T():E(),c.dispatchEvent(new Event("input"))}};let f=4,b=" ".repeat(f),x=new RegExp(`^ {1,${f}}`),E=()=>{let{selectionStart:O,selectionEnd:B}=c,te=C(),oe=c.value;te.forEach(ve=>{let Ie=oe.slice(0,ve),me=oe.slice(ve);oe=`${Ie}${b}${me}`}),c.value=oe,c.selectionStart=O+f,c.selectionEnd=B+f*te.length},T=()=>{let{selectionStart:O,selectionEnd:B}=c,te=C(),oe=[],ve=c.value;te.forEach(Ie=>{let me=ve.slice(Ie,Ie+f).match(x);if(me){let j=ve.slice(0,Ie),R=ve.slice(Ie+me[0].length);ve=`${j}${R}`,oe.push(Ie)}}),c.value=ve,oe.length&&(O>oe[oe.length-1]?c.selectionStart=Math.max(O-f,oe[oe.length-1]):c.selectionStart=O,c.selectionEnd=Math.max(c.selectionStart,B-f*oe.length))},C=()=>{let{selectionStart:O,selectionEnd:B,value:te}=c,oe=te.slice(0,O).match(/[^\n]*$/)[0].length;return O=O-oe,te.slice(O,B).split(`
|
|
72
|
-
`).reduce((Ie,me,j,R)=>Ie.concat(j?Ie[j-1]+R[j-1].length+1:O),[]).reverse()},w=O=>{O.preventDefault(),O.stopPropagation()},A=!1,z=()=>{I();let O=ko.getScene(n)?.getElement(n.id);if(!O)return;let B=c.value,te=Nr(O,l.scene.getNonDeletedElementsMap());if(te){if(B=O.text,c.value.trim()){let oe=xb(te);!oe||oe!==n.id?re(te,{boundElements:(te.boundElements||[]).concat({type:"text",id:n.id})}):ur(te)&&yu(te)}else re(te,{boundElements:te.boundElements?.filter(oe=>!se(oe))});Ut(O,te,l.scene.getNonDeletedElementsMap())}o({text:B,viaKeyboard:A,originalText:c.value})},I=()=>{D||(D=!0,c.onblur=null,c.oninput=null,c.onkeydown=null,G&&G.disconnect(),window.removeEventListener("resize",d),window.removeEventListener("wheel",w,!0),window.removeEventListener("pointerdown",_),window.removeEventListener("pointerup",M),window.removeEventListener("blur",z),window.removeEventListener("beforeunload",z),U(),c.remove())},M=O=>{window.removeEventListener("pointerup",M);let B=O?.target,te=B instanceof HTMLElement&&B.classList.contains("active-color");setTimeout(()=>{if(c.onblur=z,te){let oe=(Ie,me)=>{Ie.find(R=>R.removedNodes.length>0&&R.removedNodes[0].dataset?.radixPopperContentWrapper!==void 0)&&(setTimeout(()=>{c.focus()}),me.disconnect())};new MutationObserver(oe).observe(document.querySelector(".excalidraw-container"),{childList:!0})}te||c.focus()})},_=O=>{let B=O.target instanceof HTMLElement&&O.target.classList.contains("active-color");((O.target instanceof HTMLElement||O.target instanceof SVGElement)&&O.target.closest(`.${Xs.SHAPE_ACTIONS_MENU}`)&&!To(O.target)||B)&&(c.onblur=null,window.addEventListener("pointerup",M),window.addEventListener("blur",z))},U=ko.getScene(n).addCallback(()=>{d(),!!document.activeElement?.closest(".color-picker-content")||c.focus()}),D=!1;c.select(),M();let G=null;i&&"ResizeObserver"in window?(G=new window.ResizeObserver(()=>{d()}),G.observe(i)):window.addEventListener("resize",d),window.addEventListener("pointerdown",_),window.addEventListener("wheel",w,{passive:!1,capture:!0}),window.addEventListener("beforeunload",z),a?.querySelector(".excalidraw-textEditorContainer").appendChild(c)};var ke=v(k(),1),c6=Tt.default.createContext(null),d6=Tt.default.createContext(null),m6={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},Hg=Tt.default.createContext(m6);Hg.displayName="DeviceContext";var Ug=Tt.default.createContext({container:null,id:null});Ug.displayName="ExcalidrawContainerContext";var Wg=Tt.default.createContext([]);Wg.displayName="ExcalidrawElementsContext";var Gg=Tt.default.createContext({...Ki(),width:0,height:0,offsetLeft:0,offsetTop:0});Gg.displayName="ExcalidrawAppStateContext";var Vg=Tt.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});Vg.displayName="ExcalidrawSetAppStateContext";var Kg=Tt.default.createContext(null);Kg.displayName="ExcalidrawActionManagerContext";var mo=()=>(0,Tt.useContext)(c6),_n=()=>(0,Tt.useContext)(d6),Me=()=>(0,Tt.useContext)(Hg),_t=()=>(0,Tt.useContext)(Ug),kn=()=>(0,Tt.useContext)(Wg),Ba=()=>(0,Tt.useContext)(Gg),Le=()=>(0,Tt.useContext)(Vg),It=()=>(0,Tt.useContext)(Kg),Bs=!1,Og=0,Ri=!1,zs=!1,Fg=!1,Bg={horizontal:null,vertical:null},Un=0,$s=!1,zg=new Map,kp=!1,a6=0,l6=!1,Hs=null,Pe={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},$g=class t extends Tt.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=m6;excalidrawContainerRef=Tt.default.createRef();scene;renderer;fonts;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 Cp;laserTrails=new Tp(this.animationFrameHandler,this);eraserTrail=new Pi(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(Yn(i),Yn(n))},fill:()=>this.state.theme===be.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new _o;onPointerDownEmitter=new _o;onPointerUpEmitter=new _o;onUserFollowEmitter=new _o;onScrollChangeEmitter=new _o;missingPointerEventCleanupEmitter=new _o;onRemoveEventListenersEmitter=new _o;constructor(e){super(e);let o=Ki(),{excalidrawAPI:r,viewModeEnabled:n=!1,zenModeEnabled:i=!1,gridModeEnabled:a=!1,objectsSnapModeEnabled:l=!1,theme:s=o.theme,name:d=`${g("labels.untitled")}-${Vp()}`}=e;if(this.state={...o,theme:s,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:n,zenModeEnabled:i,objectsSnapModeEnabled:l,gridSize:a?Lr:null,name:d,width:window.innerWidth,height:window.innerHeight},this.id=O1(),this.library=new Wy(this),this.actionManager=new $m(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new ko,this.canvas=document.createElement("canvas"),this.rc=N1.canvas(this.canvas),this.renderer=new Ds(this.scene),this.store=new zb,this.history=new xs,r){let c={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 r=="function"?r(c):console.error("excalidrawAPI should be a function!")}this.excalidrawContainerValue={container:this.excalidrawContainerRef.current,id:this.id},this.fonts=new hp({scene:this.scene,onSceneUpdated:this.onSceneUpdated}),this.history=new xs,this.actionManager.registerAll(Rb),this.actionManager.registerAction(r3(this.history,this.store)),this.actionManager.registerAction(n3(this.history,this.store))}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(sl).includes(n)&&zg.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),Xn(e)))return;let o=this.getHTMLIFrameElement(e);if(o?.contentWindow){if(o.src.includes("youtube")){let r=zg.get(e.id);switch(r||(zg.set(e.id,sl.UNSTARTED),o.contentWindow.postMessage(JSON.stringify({event:"listening",id:e.id}),"*")),r){case sl.PLAYING:case sl.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),Lo.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=Zi(r.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(r,n)}}else Xn(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||Xn(i));return(0,ke.jsx)(ke.Fragment,{children:n.map(i=>{let{x:a,y:l}=Qt({sceneX:i.x,sceneY:i.y},this.state),s=Dl(i,o,r,this.state,this.scene.getNonDeletedElementsMap()),d=this.initializedEmbeds.has(i.id);if(s&&!d&&this.initializedEmbeds.add(i.id),!(s||d))return null;let m;if(Xn(i)){m=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;m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>x}}else if(b.status==="pending")m={intrinsicSize:{w:i.width,h:i.height},type:"document",srcdoc:()=>au(`
|
|
91
|
+
Please output JUST THE HTML file containing your best attempt at implementing the provided wireframes.`;async function FM({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:nH},{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 Zm=w(M(),1),iH="small",Uh=e=>(0,Zm.jsxs)("label",{className:q("ToolIcon ToolIcon__MagicButton",`ToolIcon_size_${iH}`,{"is-mobile":e.isMobile}),title:`${e.title}`,children:[(0,Zm.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:e.name,onChange:e.onChange,checked:e.checked,"aria-label":e.title}),(0,Zm.jsx)("div",{className:"ToolIcon__icon",children:e.icon})]});v();var os=w(M(),1),aH=({height:e,width:t,userToFollow:r,onDisconnect:o})=>(0,os.jsx)("div",{className:"follow-mode",style:{width:t,height:e},children:(0,os.jsxs)("div",{className:"follow-mode__badge",children:[(0,os.jsxs)("div",{className:"follow-mode__badge__label",children:["Following"," ",(0,os.jsx)("span",{className:"follow-mode__badge__username",title:r.username,children:r.username})]}),(0,os.jsx)("button",{type:"button",onClick:o,className:"follow-mode__disconnect-btn",children:Qo})]})}),BM=aH;v();var Gh=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 lH(e,t,r,o){Object.defineProperty(e,t,{get:r,set:o,enumerable:!0,configurable:!0})}var sH={};lH(sH,"LaserPointer",()=>jm);function Qt([e,t,r],[o,i,a]){return[e+o,t+i,r+a]}function qm([e,t,r],[o,i,a]){return[e-o,t-i,r-a]}function pr([e,t,r],o){return[e*o,t*o,r*o]}function od([e,t,r]){return[e/Math.sqrt(e**2+t**2),t/Math.sqrt(e**2+t**2),r]}function jr([e,t,r],o){return[Math.cos(o)*e-Math.sin(o)*t,Math.sin(o)*e+Math.cos(o)*t,r]}function cH(e,t,r){return Qt(e,pr(qm(t,e),r))}function zM(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 $M(e){return Math.atan2(Math.sin(e),Math.cos(e))}function HM([e,t]){return Math.sqrt(e**2+t**2)}function nd([e,t],[r,o]){return Math.sqrt((r-e)**2+(o-t)**2)}function dH(e){if(e.length<2)return 0;let t=0;for(let r=1;r<=e.length-1;r++)t+=nd(e[r-1],e[r]);return t+=nd(e[e.length-2],e[e.length-1]),t}var mH=(e,t,r)=>Math.max(t,Math.min(r,e));function uH(e,t,r){let o=nd(t,r);if(o===0)return nd(e,t);let i=mH(((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 nd(a,e)}function Wh(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,u)=>{let f=uH(d,r,o);return f>s?[f,u]:[s,c]},[0,-1]);if(i>=t){let s=e[a];return[...Wh([r,...e.slice(1,a),s],t).slice(0,-1),s,...Wh([s,...e.slice(a,-1),o],t).slice(1)]}else return[r,o]}var jm=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=cH(this.lastPoint,t,1-this.options.streamline)),this.tailPoints.push(t),dH(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=Wh(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 U=0;U<=Math.PI*2;U+=Math.PI/16)V.push(Qt(F,pr(jr([1,0,0],U),D)));return V.push(Qt(F,pr([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),U=this.getSize(t,D[2],0,o,0);if(V<.5||U<.5)return[];let Q=[],me=zM(F,[F[0],F[1]-100,F[2]],D);for(let K=me;K<=Math.PI+me;K+=Math.PI/16)Q.push(Qt(F,pr(jr([1,0,0],K),V)));for(let K=Math.PI+me;K<=Math.PI*2+me;K+=Math.PI/16)Q.push(Qt(D,pr(jr([1,0,0],K),U)));return Q.push(Q[0]),Q}let i=[],a=[],s=0,c=0,d=0,u=0;for(let F=1;F<o-1;F++){let D=r[F-1],V=r[F],U=r[F+1],Q=V[2],me=nd(D,V);u+=me,s=c+(me-c)*.2;let K=this.getSize(t,Q,F,o,u);if(K===0){d=F+1;continue}let se=od(qm(D,V)),be=od(qm(U,V)),_e=jr(se,Math.PI/2),nt=jr(se,-Math.PI/2),Ee=jr(be,Math.PI/2),ue=jr(be,-Math.PI/2),G=Qt(V,pr(_e,K)),Y=Qt(V,pr(nt,K)),oe=Qt(V,pr(Ee,K)),ie=Qt(V,pr(ue,K)),le=Qt(_e,ue),de=Qt(nt,Ee),pe=Qt(V,pr(HM(le)===0?se:od(le),K)),ye=Qt(V,pr(HM(de)===0?be:od(de),K)),Ct=$M(zM(V,D,U)),vt=e.constants.cornerDetectionMaxAngle/180*Math.PI*e.constants.cornerDetectionVariance(s);if(Math.abs(Ct)<vt){let Ft=Math.abs($M(Math.PI-Ct));if(Ft===0)continue;if(Ct<0){a.push(Y,ye);for(let Et=0;Et<=Ft;Et+=Ft/4)i.push(Qt(V,jr(pr(_e,K),Et)));for(let Et=Ft;Et>=0;Et-=Ft/4)a.push(Qt(V,jr(pr(_e,K),Et)));a.push(ye,oe)}else{i.push(G,pe);for(let Et=0;Et<=Ft;Et+=Ft/4)a.push(Qt(V,jr(pr(_e,-K),-Et)));for(let Et=Ft;Et>=0;Et-=Ft/4)i.push(Qt(V,jr(pr(_e,-K),-Et)));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(Qt(F,pr(jr([1,0,0],V),this.options.size)));return D.push(Qt(F,pr([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=od(qm(m,f)),y=od(qm(g,h)),T=jr(b,-Math.PI/2),k=jr(y,Math.PI/2),I=this.getSize(t,f[2],0,o,0),C=[],O=this.options.keepHead?this.options.size:this.getSize(t,g[2],o-2,o,u),z=[];if(I>1){for(let F=0;F<=Math.PI;F+=Math.PI/16)C.unshift(Qt(f,jr(pr(T,I),-F)));C.unshift(Qt(f,pr(T,-I)))}else C.push(f);for(let F=0;F<=Math.PI*3;F+=Math.PI/16)z.push(Qt(h,jr(pr(k,-O),-F)));let L=[...C,...i,...z.reverse(),...a.reverse()];return C.length>0&&L.push(C[0]),this.options.simplify>0&&this.options.simplifyPhase==="output"?Wh(L,this.options.simplify):L}};var ns=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(XS,"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 jm(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=oo({sceneX:i,sceneY:a},r);return[s.x,s.y]});return m2(o,!0)}};v();var Kh=class{constructor(t,r){this.animationFrameHandler=t;this.app=r;this.animationFrameHandler.register(this,this.onFrame.bind(this)),this.localTrail=new ns(t,r,{...this.getTrailOptions(),fill:()=>Cx})}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(ml(a),ml(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 ns(this.animationFrameHandler,this.app,{...this.getTrailOptions(),fill:()=>r.pointer?.laserColor||Ul(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 pH=(e,t,r,o,i,a)=>{let{zoom:s}=o,c=180*r/Math.PI,d=e*(s.value-1)/2,u=t*(s.value-1)/2;return e>i&&s.value!==1&&(d=i*(s.value-1)/2),t>a&&s.value!==1&&(u=a*(s.value-1)/2),`translate(${d}px, ${u}px) scale(${s.value}) rotate(${c}deg)`},UM=({id:e,onChange:t,onSubmit:r,getViewportCoords:o,element:i,canvas:a,excalidrawContainer:s,app:c,autoSelect:d=!0})=>{let u=(K,se)=>{if(!se.style.fontFamily||!se.style.fontSize)return!1;let be=se.style.fontFamily.replace(/"/g,"");return cl({fontFamily:K.fontFamily})!==be||`${K.fontSize}px`!==se.style.fontSize},f=()=>{let K=c.state,se=rn.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,G=Il(se,c.scene.getNonDeletedElementsMap()),Y=se.width,oe=se.height,ie=se.width,le=se.height;if(G&&se.containerId){if(_t(G)){let ar=Le.getBoundTextElementPosition(G,se,nt);Ee=ar.x,ue=ar.y}let Jr=u(se,m),si;if(Jr?si=Xd(G.id,G.height):(si=aI[G.id],si||(si=Xd(G.id,G.height))),ie=qd(G,se),le=hI(G,se),!_t(G)&&oe>le){let ar=Zs(oe,G.type);ce(G,{height:ar});return}else if(!_t(G)&&G.height>si.height&&oe<le){let ar=Zs(oe,G.type);ce(G,{height:ar})}else{let{y:ar}=gf(G,se,nt);ue=ar}}let[de,pe]=o(Ee,ue),ye=m.selectionStart,Ct=m.selectionEnd,vt=m.value.length;if(ye===Ct&&Ct!==vt){let Jr=vt-Ct;m.selectionStart=m.value.length-Jr,m.selectionEnd=m.value.length-Jr}G?Y+=.5:(ie=(K.width-8-de)/K.zoom.value,Y=Math.min(Y,ie)),oe*=1.05;let Ft=ro(se),Et=CS?0:Math.ceil(se.fontSize/2),er=(K.height-pe)/K.zoom.value;Object.assign(m.style,{font:Ft,lineHeight:se.lineHeight,width:`${Y}px`,height:`${oe}px`,left:`${de-Et}px`,top:`${pe}px`,transform:pH(Y,oe,uI(se,G),K,ie,er),padding:`0 ${Et}px`,textAlign:be,verticalAlign:_e,color:se.strokeColor,opacity:se.opacity/100,filter:"var(--theme-filter)",maxHeight:`${er}px`}),m.scrollTop=0,Ad()&&(m.style.fontFamily=cl(se)),ce(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";(Ir(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 of(K,!0);if(!se.text)return;let be=Zd(se.text);if(!be)return;let _e=Il(i,c.scene.getNonDeletedElementsMap()),nt=ro({fontSize:c.state.currentItemFontSize,fontFamily:c.state.currentItemFontFamily});if(_e){let Ee=je(_e,c.scene.getNonDeletedElementsMap()),ue=bf(`${m.value}${be}`,nt,qd(_e,Ee)),G=dI(ue,nt,!0);m.style.width=`${G}px`}},m.oninput=()=>{t(Zd(m.value))}),m.onkeydown=K=>{if(!K.shiftKey&&_g.keyTest(K))K.preventDefault(),c.actionManager.executeAction(_g),f();else if(!K.shiftKey&&Ag.keyTest(K))K.preventDefault(),c.actionManager.executeAction(Ag),f();else if(Oy.keyTest(K))c.actionManager.executeAction(Oy);else if(Fy.keyTest(K))c.actionManager.executeAction(Fy);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=C(),_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=C(),_e=[],nt=m.value;be.forEach(Ee=>{let ue=nt.slice(Ee,Ee+b).match(T);if(ue){let G=nt.slice(0,Ee),Y=nt.slice(Ee+ue[0].length);nt=`${G}${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))},C=()=>{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,G,Y)=>Ee.concat(G?Ee[G-1]+Y[G-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=rn.getScene(i)?.getElement(i.id);if(!K)return;let se=Il(K,c.scene.getNonDeletedElementsMap());if(se){if(m.value.trim()){let be=mI(se);!be||be!==i.id?ce(se,{boundElements:(se.boundElements||[]).concat({type:"text",id:i.id})}):_t(se)&&Cv(se)}else ce(se,{boundElements:se.boundElements?.filter(be=>!he(be))});qt(K,se,c.scene.getNonDeletedElementsMap())}r({viaKeyboard:z,nextOriginalText:m.value})},F=()=>{m.onblur=null,m.oninput=null,m.onkeydown=null,me&&me.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),U(),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(`.${Qu.SHAPE_ACTIONS_MENU}`)&&!Yn(K.target)||be?(m.onblur=null,window.addEventListener("pointerup",D),window.addEventListener("blur",L)):K.target instanceof HTMLElement&&K.target instanceof HTMLCanvasElement&&!Ad()&&requestAnimationFrame(()=>{L()})},U=rn.getScene(i).onUpdate(()=>{f(),!!document.activeElement?.closest(".properties-content")||m.focus()}),Q=!1;d&&m.select(),D();let me=null;a&&"ResizeObserver"in window?(me=new window.ResizeObserver(()=>{f()}),me.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 GM=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=Ai(a.originalText,ro(a),a.lineHeight);return ke(a,{autoResize:!0,width:s.width,height:s.height,text:a.originalText})}return a}),storeAction:W.CAPTURE}}});v();var WM=e=>{let t=["flowchart","graph","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=>`\\s*${o}(-beta)?`).join("|")})\\b`).test(e.trim())};var Ze=w(M(),1),XM=fr.default.createContext(null),ZM=fr.default.createContext(null),qM={viewport:{isMobile:!1,isLandscape:!1},editor:{isMobile:!1,canFitSidebar:!1},isTouchScreen:!1},A0=fr.default.createContext(qM);A0.displayName="DeviceContext";var k0=fr.default.createContext({container:null,id:null});k0.displayName="ExcalidrawContainerContext";var P0=fr.default.createContext([]);P0.displayName="ExcalidrawElementsContext";var M0=fr.default.createContext({...As(),width:0,height:0,offsetLeft:0,offsetTop:0});M0.displayName="ExcalidrawAppStateContext";var L0=fr.default.createContext(()=>{console.warn("Uninitialized ExcalidrawSetAppStateContext context!")});L0.displayName="ExcalidrawSetAppStateContext";var R0=fr.default.createContext(null);R0.displayName="ExcalidrawActionManagerContext";var _r=()=>(0,fr.useContext)(XM),ei=()=>(0,fr.useContext)(ZM),rt=()=>(0,fr.useContext)(A0),sr=()=>(0,fr.useContext)(k0),La=()=>(0,fr.useContext)(P0),Qn=()=>(0,fr.useContext)(M0),ot=()=>(0,fr.useContext)(L0),yr=()=>(0,fr.useContext)(R0),Jm=!1,S0=0,is=!1,Qm=!1,T0=!1,C0={horizontal:null,vertical:null},Ka=0,eu=!1,I0=new Map,Yh=!1,KM=0,YM=!1,tu=null,at={pointers:new Map,lastCenter:null,initialDistance:null,initialScale:null},_0=class e extends fr.default.Component{canvas;interactiveCanvas=null;rc;unmounted=!1;actionManager;device=qM;excalidrawContainerRef=fr.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 Gh;laserTrails=new Kh(this.animationFrameHandler,this);eraserTrail=new ns(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(ml(a),ml(i))},fill:()=>this.state.theme===Be.LIGHT?"rgba(0, 0, 0, 0.2)":"rgba(255, 255, 255, 0.2)"});onChangeEmitter=new en;onPointerDownEmitter=new en;onPointerUpEmitter=new en;onUserFollowEmitter=new en;onScrollChangeEmitter=new en;missingPointerEventCleanupEmitter=new en;onRemoveEventListenersEmitter=new en;constructor(t){super(t);let r=As(),{excalidrawAPI:o,viewModeEnabled:i=!1,zenModeEnabled:a=!1,gridModeEnabled:s=!1,objectsSnapModeEnabled:c=!1,theme:d=r.theme,name:u=`${E("labels.untitled")}-${Mx()}`}=t;if(this.state={...r,theme:d,isLoading:!0,...this.getCanvasOffsets(),viewModeEnabled:i,zenModeEnabled:a,objectsSnapModeEnabled:c,gridSize:s?yi:null,name:u,width:window.innerWidth,height:window.innerHeight},this.id=jS(),this.library=new a5(this),this.actionManager=new sh(this.syncActionResult,()=>this.state,()=>this.scene.getElementsIncludingDeleted(),this),this.scene=new rn,this.canvas=document.createElement("canvas"),this.rc=qS.canvas(this.canvas),this.renderer=new Xm(this.scene),this.store=new LC,this.history=new Mm,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 Mm,this.actionManager.registerAll(k2),this.actionManager.registerAction(b3(this.history,this.store)),this.actionManager.registerAction(x3(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(Sd).includes(i)&&I0.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),fl(t)))return;let r=this.getHTMLIFrameElement(t);if(r?.contentWindow){if(r.src.includes("youtube")){let o=I0.get(t.id);switch(o||(I0.set(t.id,Sd.UNSTARTED),r.contentWindow.postMessage(JSON.stringify({event:"listening",id:t.id}),"*")),o){case Sd.PLAYING:case Sd.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),ha.delete(t)};updateEmbeddables=()=>{let t=new Set,r=!1;this.scene.getNonDeletedElements().filter(o=>{if($r(o)){if(t.add(o.id),!this.embedsValidationStatus.has(o.id)){r=!0;let i=Us(o.link,this.props.validateEmbeddable);this.updateEmbedValidationStatus(o,i)}}else fl(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=>$r(a)&&this.embedsValidationStatus.get(a.id)===!0||fl(a));return(0,Ze.jsx)(Ze.Fragment,{children:i.map(a=>{let{x:s,y:c}=oo({sceneX:a.x,sceneY:a.y},this.state),d=jd(a,r,o,this.state,this.scene.getNonDeletedElementsMap()),u=this.initializedEmbeds.has(a.id);if(d&&!u&&this.initializedEmbeds.add(a.id),!(d||u))return null;let m;if(fl(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:()=>gv(`
|
|
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:()=>gv(`
|
|
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: ${xi.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 m=Qn(Pb(i.link||""));let u=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="active",f=this.state.activeEmbeddable?.element===i&&this.state.activeEmbeddable?.state==="hover";return(0,ke.jsx)("div",{className:$("excalidraw__embeddable-container",{"is-hovered":f}),style:{transform:s?`translate(${a-this.state.offsetLeft}px, ${l-this.state.offsetTop}px) scale(${e})`:"none",display:s?"block":"none",opacity:M0(i,Uc(i,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${ab(Math.min(i.width,i.height),i)}px`},children:(0,ke.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:u?Vn.enabled:Vn.disabled},children:[f&&(0,ke.jsx)("div",{className:"excalidraw__embeddable-hint",children:g("buttons.embeddableInteractionButton")}),(0,ke.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${i.strokeWidth}px`},children:(Ht(i)?this.props.renderEmbeddable?.(i,this.state):null)??(0,ke.jsx)("iframe",{ref:b=>this.cacheEmbeddableRef(i,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`})})]})},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=Ye({clientX:n.x,clientY:n.y},this.state),a=Ye({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===be.DARK,o=0,r=0;return this.scene.getNonDeletedFramesLikes().map(n=>{if(qp(n)?o++:r++,!Dl(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=()=>{re(n,{name:n.name?.trim()||null}),this.setState({editingFrame:null})},d,c=A0(n,qp(n)?o:r);if(n.id===this.state.editingFrame){let m=c;d=(0,ke.jsx)("input",{autoFocus:!0,value:m,onChange:u=>{re(n,{name:u.target.value})},onFocus:u=>u.target.select(),onBlur:()=>s(),onKeyDown:u=>{(u.key===S.ESCAPE||u.key===S.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:e?k1:"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:m.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else d=c;return(0,ke.jsx)("div",{id:this.getFrameNameDOMId(n),style:{position:"absolute",bottom:`${this.state.height+Zo.nameOffsetY-a+this.state.offsetTop}px`,left:`${i-this.state.offsetLeft}px`,zIndex:2,fontSize:Zo.nameFontSize,color:e?Zo.nameColorDarkTheme:Zo.nameColorLightTheme,lineHeight:Zo.nameLineHeight,width:"max-content",maxWidth:`${n.width}px`,overflow:n.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:Oe.MOVE,pointerEvents:this.state.viewModeEnabled?Vn.disabled:Vn.enabled},onPointerDown:m=>this.handleCanvasPointerDown(m),onWheel:m=>this.handleWheel(m),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:n.id})},children:d},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&&!se(this.state.editingElement)),d=e[0];return(0,ke.jsx)("div",{className:$("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":s?Vn.disabled:Vn.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,ke.jsx)(c6.Provider,{value:this,children:(0,ke.jsx)(d6.Provider,{value:this.props,children:(0,ke.jsx)(Ug.Provider,{value:this.excalidrawContainerValue,children:(0,ke.jsx)(Hg.Provider,{value:this.device,children:(0,ke.jsx)(Vg.Provider,{value:this.setAppState,children:(0,ke.jsx)(Gg.Provider,{value:this.state,children:(0,ke.jsxs)(Wg.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,ke.jsxs)(Kg.Provider,{value:this.actionManager,children:[(0,ke.jsx)(y5,{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:Gr().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,ke.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,ke.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,ke.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,ke.jsx)(J5,{trails:[this.laserTrails,this.eraserTrail]}),e.length===1&&this.state.showHyperlinkPopup&&(0,ke.jsx)(Ty,{element:d,elementsMap:l,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},d.id),this.props.aiEnabled!==!1&&e.length===1&&xl(d)&&(0,ke.jsx)(Ng,{element:d,elementsMap:i,children:(0,ke.jsx)(wp,{title:g("labels.convertToCode"),icon:ma,checked:!1,onChange:()=>this.onMagicFrameGenerate(d,"button")})}),e.length===1&&Xn(d)&&d.customData?.generationData?.status==="done"&&(0,ke.jsxs)(Ng,{element:d,elementsMap:i,children:[(0,ke.jsx)(wp,{title:g("labels.copySource"),icon:gd,checked:!1,onChange:()=>this.onIframeSrcCopy(d)}),(0,ke.jsx)(wp,{title:"Enter fullscreen",icon:wv,checked:!1,onChange:()=>{let c=this.getHTMLIFrameElement(d);if(c)try{c.requestFullscreen(),this.setState({activeEmbeddable:{element:d,state:"active"},selectedElementIds:{[d.id]:!0},draggingElement:null,selectionElement:null})}catch(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,ke.jsx)(w5,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,ke.jsx)(s3,{items:this.state.contextMenu.items,top:this.state.contextMenu.top,left:this.state.contextMenu.left,actionManager:this.actionManager,onClose:c=>{this.setState({contextMenu:null},()=>{this.focusContainer(),c?.()})}}),(0,ke.jsx)(Rg,{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,ke.jsx)(Pg,{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,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,ke.jsx)(t6,{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)=>{xe("export",e,"ui");let n=await fi(e,o,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:r.exportingFrame}).catch(lc).catch(i=>{console.error(i),this.setState({errorMessage:i.message})});this.state.exportEmbedScene&&n&&Rc(n)&&this.setState({fileHandle:n})};magicGenerations=new Map;updateMagicGeneration=({frameElement:e,data:o})=>{o.status==="pending"?re(e,{customData:{generationData:void 0}},!1):re(e,{customData:{generationData:o}},!1),this.magicGenerations.set(e.id,o),this.onSceneUpdated()};getTextFromElements(e){return e.reduce((r,n)=>(se(n)&&r.push(n.text),r),[]).join(`
|
|
182
|
+
<h3>${y}</h3>
|
|
183
|
+
`)}}}else m=Sl(A2(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,Ze.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:nI(a,af(a,this.scene.getNonDeletedElementsMap()),this.elementsPendingErasure),"--embeddable-radius":`${uf(Math.min(a.width,a.height),a)}px`},children:(0,Ze.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?al.enabled:al.disabled},children:[h&&(0,Ze.jsx)("div",{className:"excalidraw__embeddable-hint",children:E("buttons.embeddableInteractionButton")}),(0,Ze.jsx)("div",{className:"excalidraw__embeddable__outer",style:{padding:`${a.strokeWidth}px`},children:($r(a)?this.props.renderEmbeddable?.(a,this.state):null)??(0,Ze.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=Mt({clientX:i.x,clientY:i.y},this.state),s=Mt({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;return this.scene.getNonDeletedFramesLikes().map(r=>{if(!jd(r,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:o,y:i}=oo({sceneX:r.x,sceneY:r.y},this.state),a=6,s=()=>{ce(r,{name:r.name?.trim()||null}),this.setState({editingFrame:null})},c,d=oI(r);if(r.id===this.state.editingFrame){let u=d;c=(0,Ze.jsx)("input",{autoFocus:!0,value:u,onChange:f=>{ce(r,{name:f.target.value})},onFocus:f=>f.target.select(),onBlur:()=>s(),onKeyDown:f=>{(f.key===R.ESCAPE||f.key===R.ENTER)&&s()},style:{background:this.state.viewBackgroundColor,filter:t?HS:"none",zIndex:2,border:"none",display:"block",padding:`${a}px`,borderRadius:4,boxShadow:"inset 0 0 0 1px var(--color-primary)",fontFamily:"Assistant",fontSize:"14px",transform:`translate(-${a}px, ${a}px)`,color:"var(--color-gray-80)",overflow:"hidden",maxWidth:`${document.body.clientWidth-o-a}px`},size:u.length+1||1,dir:"auto",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off"})}else c=d;return(0,Ze.jsx)("div",{id:this.getFrameNameDOMId(r),style:{position:"absolute",bottom:`${this.state.height+Cn.nameOffsetY-i+this.state.offsetTop}px`,left:`${o-this.state.offsetLeft}px`,zIndex:2,fontSize:Cn.nameFontSize,color:t?Cn.nameColorDarkTheme:Cn.nameColorLightTheme,lineHeight:Cn.nameLineHeight,width:"max-content",maxWidth:`${r.width}px`,overflow:r.id===this.state.editingFrame?"visible":"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",cursor:pt.MOVE,pointerEvents:this.state.viewModeEnabled?al.disabled:al.enabled},onPointerDown:u=>this.handleCanvasPointerDown(u),onWheel:u=>this.handleWheel(u),onContextMenu:this.handleCanvasContextMenu,onDoubleClick:()=>{this.setState({editingFrame:r.id})},children:c},r.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)),u=t[0];return(0,Ze.jsx)("div",{className:q("excalidraw excalidraw-container",{"excalidraw--view-mode":this.state.viewModeEnabled,"excalidraw--mobile":this.device.editor.isMobile}),style:{"--ui-pointerEvents":d?al.disabled:al.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,Ze.jsx)(XM.Provider,{value:this,children:(0,Ze.jsx)(ZM.Provider,{value:this.props,children:(0,Ze.jsx)(k0.Provider,{value:this.excalidrawContainerValue,children:(0,Ze.jsx)(A0.Provider,{value:this.device,children:(0,Ze.jsx)(L0.Provider,{value:this.setAppState,children:(0,Ze.jsx)(M0.Provider,{value:this.state,children:(0,Ze.jsxs)(P0.Provider,{value:this.scene.getNonDeletedElements(),children:[(0,Ze.jsxs)(R0.Provider,{value:this.actionManager,children:[(0,Ze.jsx)(nM,{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:Ri().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,Ze.jsx)("div",{className:"excalidraw-textEditorContainer"}),(0,Ze.jsx)("div",{className:"excalidraw-contextMenuContainer"}),(0,Ze.jsx)("div",{className:"excalidraw-eye-dropper-container"}),(0,Ze.jsx)(NM,{trails:[this.laserTrails,this.eraserTrail]}),t.length===1&&this.state.showHyperlinkPopup&&(0,Ze.jsx)(Wk,{element:u,elementsMap:c,setAppState:this.setAppState,onLinkOpen:this.props.onLinkOpen,setToast:this.setToast,updateEmbedValidationStatus:this.updateEmbedValidationStatus},u.id),this.props.aiEnabled!==!1&&t.length===1&&Ld(u)&&(0,Ze.jsx)(w0,{element:u,elementsMap:a,children:(0,Ze.jsx)(Uh,{title:E("labels.convertToCode"),icon:Ds,checked:!1,onChange:()=>this.onMagicFrameGenerate(u,"button")})}),t.length===1&&fl(u)&&u.customData?.generationData?.status==="done"&&(0,Ze.jsxs)(w0,{element:u,elementsMap:a,children:[(0,Ze.jsx)(Uh,{title:E("labels.copySource"),icon:kp,checked:!1,onChange:()=>this.onIframeSrcCopy(u)}),(0,Ze.jsx)(Uh,{title:"Enter fullscreen",icon:zT,checked:!1,onChange:()=>{let f=this.getHTMLIFrameElement(u);if(f)try{f.requestFullscreen(),this.setState({activeEmbeddable:{element:u,state:"active"},selectedElementIds:{[u.id]:!0},draggingElement:null,selectionElement:null})}catch(m){console.warn(m),this.setState({errorMessage:"Couldn't enter fullscreen"})}}})]}),this.state.toast!==null&&(0,Ze.jsx)(iM,{message:this.state.toast.message,onClose:()=>this.setToast(null),duration:this.state.toast.duration,closable:this.state.toast.closable}),this.state.contextMenu&&(0,Ze.jsx)(w3,{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,Ze.jsx)(y0,{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,Ze.jsx)(v0,{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,Ze.jsx)(BM,{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 Bl(t,r,this.state,this.files,{exportBackground:this.state.exportBackground,name:this.getName(),viewBackgroundColor:this.state.viewBackgroundColor,exportingFrame:o.exportingFrame}).catch(up).catch(a=>{console.error(a),this.setState({errorMessage:a.message})});this.state.exportEmbedScene&&i&&Bp(i)&&this.setState({fileHandle:i})};magicGenerations=new Map;updateMagicGeneration=({frameElement:t,data:r})=>{r.status==="pending"?ce(t,{customData:{generationData:void 0}},!1):ce(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"}}),xe("ai","generate (missing key)","d2c");return}let r=Kc(this.scene.getNonDeletedElements(),e).filter(m=>!xl(m));if(!r.length){o==="button"?(this.setState({errorMessage:"Cannot generate from an empty frame"}),xe("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 xu({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:e,files:this.files}),a=await Oc(i),l=this.getTextFromElements(r);xe("ai","generate (start)","d2c");let s=await e6({image:a,apiKey:this.OPENAI_KEY,text:l,theme:this.state.theme});if(!s.ok){xe("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(xe("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 d=s.choices[0].message.content,c=d.slice(d.indexOf("<!DOCTYPE html>"),d.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:n,data:{status:"done",html:c}})}onIframeSrcCopy(e){e.customData?.generationData?.status==="done"&&(Ji(e.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=fo.get(So.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=fo.has(So.OAI_API_KEY)||!1;onOpenAIKeyChange=(e,o)=>{if(this.OPENAI_KEY=e||null,o){let r=fo.set(So.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"}):xl(n[0])||this.setActiveTool({type:"magicframe"})};onMagicframeToolSelect=()=>{if(!this.OPENAI_KEY){this.setState({openDialog:{name:"settings",tab:"diagram-to-code",source:"tool"}}),xe("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}),xe("ai","tool-select (empty-selection)","d2c");else{let o=e.length===1&&xl(e[0])&&e[0];if(!o&&e.some(n=>Ee(n)||n.frameId)){this.setActiveTool({type:ut.magicframe});return}xe("ai","tool-select (existing selection)","d2c");let r;if(o)r=o;else{let[n,i,a,l]=Ze(e),s=50;r=Al({...Zo,x:n-s,y:i-s,width:a-n+s*2,height:l-i+s*2,opacity:100,locked:!1}),this.scene.insertElement(r);for(let d of e)re(d,{frameId:r.id});this.setState({selectedElementIds:{[r.id]:!0}})}this.onMagicFrameGenerate(r,"upstream")}};openEyeDropper=({type:e})=>{Gt.set(Tn,{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},storeAction:P.CAPTURE}):this.syncActionResult({appState:{...this.state,currentItemBackgroundColor:o},storeAction:P.CAPTURE}):this.updateScene({elements:this.scene.getElementsIncludingDeleted().map(a=>this.state.selectedElementIds[a.id]?he(a,{[n?"strokeColor":"backgroundColor"]:o}):a),storeAction:P.CAPTURE})},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&&Mu(r)&&(o=r)}),e.storeAction===P.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===P.CAPTURE&&this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(e.elements)),e.files&&(this.files=e.replaceFiles?e.files:{...this.files,...e.files},this.addNewImagesToImageCache()),e.appState||o||this.state.contextMenu){e.storeAction===P.UPDATE?this.store.shouldUpdateSnapshot():e.storeAction===P.CAPTURE&&this.store.shouldCaptureIncrement();let r=e?.appState?.viewModeEnabled||!1,n=e?.appState?.zenModeEnabled||!1,i=e?.appState?.gridSize||null,a=e?.appState?.theme||this.props.theme||be.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?Lr:null),o=o||e.appState?.editingElement||null,o?.isDeleted&&(o=null),this.setState(d=>Object.assign(e.appState||{},{contextMenu:null,editingElement:o,viewModeEnabled:r,zenModeEnabled:n,gridSize:i,theme:a,name:l,errorMessage:s}))}});onBlur=Qe(()=>{Ri=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=e=>{e.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Qe(e=>{this.scene.replaceAllElements([]),this.setState(o=>({...Ki(),isLoading:e?.resetLoadingState?!1:o.isLoading,theme:this.state.theme})),this.resetStore(),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=cu(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,...oi(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.resetStore(),this.resetHistory(),this.syncActionResult({...o,storeAction:P.UPDATE})};isMobileBreakpoint=(e,o)=>e<I1||o<M1&&e<A1;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:o,clientHeight:r}=document.body,n=this.device.viewport,i=Fi(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:_1,i=this.device.editor,a=Fi(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,y.MODE===Bp.TEST||y.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},store:{configurable:!0,value:this.store}})}this.store.onStoreIncrementEmitter.on(o=>{this.history.record(o.elementsChange,o.appStateChange)}),this.scene.addCallback(this.onSceneUpdated),this.addEventListeners(),this.props.autoFocus&&this.excalidrawContainerRef.current&&this.focusContainer(),cc()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),al&&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),m1()&&!Sb()&&this.setState({errorMessage:(0,ke.jsx)(F5,{})})}componentWillUnmount(){this.renderer.destroy(),this.scene=new ko,this.renderer=new Ds(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(),this.store.onStoreIncrementEmitter.clear(),Lo.destroy(),Wo.destroy(),clearTimeout(Un),Be.clearCache(),Nt.clearCache(),Un=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Qe(()=>{this.scene.getElementsIncludingDeleted().forEach(e=>Lo.delete(e)),this.refreshViewportBreakpoints(),this.updateDOMRect(),al||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(at(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(at(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),at(window,"message",this.onWindowMessage,!1),at(document,"pointerup",this.removePointer),at(document,"copy",this.onCopy),at(document,"keyup",this.onKeyUp,{passive:!0}),at(document,"mousemove",this.updateCurrentCursorPosition),at(document.fonts,"loadingdone",e=>{let o=e.fontfaces;this.fonts.onFontsLoaded(o)}),at(document,"gesturestart",this.onGestureStart,!1),at(document,"gesturechange",this.onGestureChange,!1),at(document,"gestureend",this.onGestureEnd,!1),at(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(at(document,"fullscreenchange",this.onFullscreenChange),at(document,"paste",this.pasteFromClipboard),at(document,"cut",this.onCut),at(window,"resize",this.onResize,!1),at(window,"unload",this.onUnload,!1),at(window,"blur",this.onBlur,!1),at(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),at(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(at(U1(this.excalidrawContainerRef.current),"scroll",this.onScroll)))}componentDidUpdate(e,o){this.updateEmbeddables();let r=this.scene.getElementsIncludingDeleted(),n=this.scene.getElementsMapIncludingDeleted(),i=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&&Ao(this.state)&&this.setState({activeTool:it(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&o.theme!==this.state.theme&&Db(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(),Ao(o)&&!Ao(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?Lr: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(Oo)}),this.state.editingElement?.isDeleted&&this.setState({editingElement:null}),this.state.selectedLinearElement&&!this.state.selectedElementIds[this.state.selectedLinearElement.elementId]&&this.setState({selectedLinearElement:null});let{multiElement:l}=o;o.activeTool!==this.state.activeTool&&l!=null&&qn(this.state)&&Pr(l,!1)&&Sl(l,this.state,fl(ue.getPointAtIndexGlobalCoordinates(l,-1,i)),this),this.store.commit(n,this.state),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&&(Bg=o);let n=se(this.state.editingElement)?!1:!e&&r.size>0;this.state.scrolledOutside!==n&&this.setState({scrolledOutside:n}),this.scheduleImageRefresh()};onScroll=pl(()=>{let{offsetTop:e,offsetLeft:o}=this.getCanvasOffsets();this.setState(r=>r.offsetLeft===o&&r.offsetTop===e?null:{offsetTop:e,offsetLeft:o})},S1);onCut=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||To(e.target)||(this.actionManager.executeAction(nm,"keyboard",e),e.preventDefault(),e.stopPropagation())});onCopy=Qe(e=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||To(e.target)||(this.actionManager.executeAction(Oa,"keyboard",e),e.preventDefault(),e.stopPropagation())});static resetTapTwice(){Bs=!1}onTouchStart=e=>{if(d1&&e.preventDefault(),!Bs){Bs=!0,clearTimeout(Og),Og=window.setTimeout(t.resetTapTwice,w1);return}if(Bs&&e.touches.length===1){let o=e.touches[0];this.handleCanvasDoubleClick({clientX:o.clientX,clientY:o.clientY}),Bs=!1,clearTimeout(Og)}e.touches.length===2&&this.setState({selectedElementIds:ze({},this.state),activeEmbeddable:null})};onTouchEnd=e=>{this.resetContextMenuTimer(),e.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:ze(this.state.previousSelectedElementIds,this.state)}):Pe.pointers.clear()};pasteFromClipboard=Qe(async e=>{let o=!!kp,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)||To(r)))return;let{x:a,y:l}=Ye({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),s=e?.clipboardData?.files[0],d=await $c(e,o);if(!s&&!o){if(d.mixedContent)return this.addElementsFromMixedContentPaste(d.mixedContent,{isPlainPaste:o,sceneX:a,sceneY:l});if(d.text){let c=d.text.trim();c.startsWith("<svg")&&c.endsWith("</svg>")&&(s=pu(c))}}if(Dc(s)&&!d.spreadsheet){if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}let c=this.createImageElement({sceneX:a,sceneY:l});this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:ze({[c.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(d,e)===!1)return}catch(c){console.error(c)}if(d.errorMessage)this.setState({errorMessage:d.errorMessage});else if(d.spreadsheet&&!o)this.setState({pasteDialog:{data:d.spreadsheet,shown:!0}});else if(d.elements){let c=d.programmaticAPI?As(d.elements):d.elements;this.addElementsFromPasteOrLibrary({elements:c,files:d.files||null,position:"cursor",retainSeed:o})}else if(d.text){let c=X1(d.text).split(/\n+/).map(u=>u.trim()).filter(Boolean),m=c.map(u=>$b(u)).filter(u=>Zi(u,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(u)||Qn(u)?.type==="video"));if(!kp&&m.length>0&&m.length===c.length){let u=[];for(let f of m){let b=u[u.length-1],x=this.insertEmbeddableElement({sceneX:b?b.x+b.width+20:a,sceneY:l,link:zr(f)});x&&u.push(x)}u.length&&this.setState({selectedElementIds:Object.fromEntries(u.map(f=>[f.id,!0]))});return}this.addTextFromPaste(d.text,o)}this.setActiveTool({type:"selection"}),e?.preventDefault()});addElementsFromPasteOrLibrary=e=>{let o=su(e.elements,null,void 0),[r,n,i,a]=Ze(o),l=Zn(r,i)/2,s=Zn(n,a)/2,d=typeof e.position=="object"?e.position.clientX:e.position==="cursor"?this.lastViewportPosition.x:this.state.width/2+this.state.offsetLeft,c=typeof e.position=="object"?e.position.clientY:e.position==="cursor"?this.lastViewportPosition.y:this.state.height/2+this.state.offsetTop,{x:m,y:u}=Ye({clientX:d,clientY:c},this.state),f=m-l,b=u-s,[x,E]=eo(f,b,this.state.gridSize),T=Lc(o.map(I=>he(I,{x:I.x+x-r,y:I.y+E-n})),{randomizeSeed:!e.retainSeed}),w=[...this.scene.getElementsIncludingDeleted(),...T];ho(w,pe(T));let A=this.getTopLayerFrameAtSceneCoords({x:m,y:u});if(A){let I=k0(T,A);Wc(w,I,A)}this.scene.replaceAllElements(w),T.forEach(I=>{if(se(I)&&xt(I)){let M=Nr(I,this.scene.getElementsMapIncludingDeleted());Ut(I,M,this.scene.getElementsMapIncludingDeleted())}}),e.files&&(this.files={...this.files,...e.files}),this.store.shouldCaptureIncrement();let z=ta(T);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Gt.get(Ts)?this.state.openSidebar:null,...Nt({editingGroupId:null,selectedElementIds:z.reduce((I,M)=>(xt(M)||(I[M.id]=!0),I),{})},this.scene.getNonDeletedElements(),this.state,this)},()=>{e.files&&this.addNewImagesToImageCache()}),this.setActiveTool({type:"selection"}),e.fitToContent&&this.scrollToContent(T,{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(m=>m.type==="imageUrl").map(m=>m.value),a=await Promise.all(i.map(async m=>{try{return{file:await Kb(m)}}catch(u){let f=u.message;return u.cause==="FETCH_ERROR"?f=g("errors.failedToFetchImage"):u.cause==="UNSUPPORTED"&&(f=g("errors.unsupportedFileType")),{errorMessage:f}}})),l=n,s=!1,d={};for(let m of a)if(m.file){let u=this.createImageElement({sceneX:r,sceneY:l}),f=await this.insertImageElement(u,m.file);f&&(s||(s=!0,l-=f.height/2),re(f,{y:l},!1),l=u.y+u.height+25,d[u.id]=!0)}this.setState({selectedElementIds:ze(d,this.state)});let c=a.find(m=>!!m.errorMessage);c&&c.errorMessage&&this.setState({errorMessage:c.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=df(this.scene.getNonDeletedElements(),t).filter(m=>!Ld(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 bv({elements:this.scene.getNonDeletedElements(),appState:{...this.state,exportBackground:!0,viewBackgroundColor:this.state.viewBackgroundColor},exportingFrame:t,files:this.files}),s=await Hp(a),c=this.getTextFromElements(o);ze("ai","generate (start)","d2c");let d=await FM({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 u=d.choices[0].message.content,f=u.slice(u.indexOf("<!DOCTYPE html>"),u.indexOf("</html>")+7);this.updateMagicGeneration({frameElement:i,data:{status:"done",html:f}})}onIframeSrcCopy(t){t.customData?.generationData?.status==="done"&&(Ws(t.customData.generationData.html),this.setToast({message:"copied to clipboard",closable:!1,duration:1500}))}OPENAI_KEY=Io.get(qo.OAI_API_KEY);OPENAI_KEY_IS_PERSISTED=Io.has(qo.OAI_API_KEY)||!1;onOpenAIKeyChange=(t,r)=>{if(this.OPENAI_KEY=t||null,r){let o=Io.set(qo.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"}):Ld(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:Zt.magicframe}),ze("ai","tool-select (empty-selection)","d2c");else{let r=t.length===1&&Ld(t[0])&&t[0];if(!r&&t.some(i=>He(i)||i.frameId)){this.setActiveTool({type:Zt.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=$d({...Cn,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 u of t)ce(u,{frameId:o.id});this.setState({selectedElementIds:{[o.id]:!0}})}this.onMagicFrameGenerate(o,"upstream")}};openEyeDropper=({type:t})=>{Hr.set(Ma,{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]?ke(s,{[i?"strokeColor":"backgroundColor"]:r}):s),storeAction:W.CAPTURE})},keepOpenOnAlt:!1})};dismissLinearEditor=()=>{setTimeout(()=>{this.setState({editingLinearElement:null})})};syncActionResult=Ot(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&&Rv(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,u=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?yi: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:u})),r=!0}!r&&t.storeAction!==W.NONE&&this.scene.triggerUpdate()});onBlur=Ot(()=>{is=!1,this.setState({isBindingEnabled:!0})});onUnload=()=>{this.onBlur()};disableEvent=t=>{t.preventDefault()};resetHistory=()=>{this.history.clear()};resetStore=()=>{this.store.clear()};resetScene=Ot(t=>{this.scene.replaceAllElements([]),this.setState(r=>({...As(),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=sv(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,...Al(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.loadSceneFonts()};isMobileBreakpoint=(t,r)=>t<US||r<WS&&t<GS;refreshViewportBreakpoints=()=>{if(!this.excalidrawContainerRef.current)return;let{clientWidth:r,clientHeight:o}=document.body,i=this.device.viewport,a=Ss(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:KS,a=this.device.editor,s=Ss(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,A.MODE===ys.TEST||A.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(),Ad()||(this.refreshViewportBreakpoints(),this.refreshEditorBreakpoints()),Ed&&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),_S()&&!bI()&&this.setState({errorMessage:(0,Ze.jsx)(yM,{})})}componentWillUnmount(){window.launchQueue?.setConsumer(()=>{}),this.renderer.destroy(),this.scene.destroy(),this.scene=new rn,this.fonts=new vl({scene:this.scene}),this.renderer=new Xm(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(),ha.destroy(),gn.destroy(),clearTimeout(Ka),gt.clearCache(),Rr.clearCache(),Ka=0,document.documentElement.style.overscrollBehaviorX=""}onResize=Ot(()=>{this.scene.getElementsIncludingDeleted().forEach(t=>ha.delete(t)),this.refreshViewportBreakpoints(),this.updateDOMRect(),Ed||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(Wt(document,"keydown",this.onKeyDown,!1)),this.onRemoveEventListenersEmitter.once(Wt(this.excalidrawContainerRef.current,"wheel",this.onWheel,{passive:!1}),Wt(window,"message",this.onWindowMessage,!1),Wt(document,"pointerup",this.removePointer),Wt(document,"copy",this.onCopy),Wt(document,"keyup",this.onKeyUp,{passive:!0}),Wt(document,"pointermove",this.updateCurrentCursorPosition),Wt(document.fonts,"loadingdone",t=>{let r=t.fontfaces;this.fonts.onLoaded(r)}),Wt(document,"gesturestart",this.onGestureStart,!1),Wt(document,"gesturechange",this.onGestureChange,!1),Wt(document,"gestureend",this.onGestureEnd,!1),Wt(window,"focus",()=>{this.maybeCleanupAfterMissingPointerUp(null),this.triggerRender(!0)})),!this.state.viewModeEnabled&&(this.onRemoveEventListenersEmitter.once(Wt(document,"fullscreenchange",this.onFullscreenChange),Wt(document,"paste",this.pasteFromClipboard),Wt(document,"cut",this.onCut),Wt(window,"resize",this.onResize,!1),Wt(window,"unload",this.onUnload,!1),Wt(window,"blur",this.onBlur,!1),Wt(this.excalidrawContainerRef.current,"dragover",this.disableEvent,!1),Wt(this.excalidrawContainerRef.current,"drop",this.disableEvent,!1)),this.props.detectScroll&&this.onRemoveEventListenersEmitter.once(Wt(o2(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:Gt(this.state,{type:"selection"})}),this.state.activeTool.type==="eraser"&&r.theme!==this.state.theme&&P2(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?yi: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(Fo)}),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&&El(this.state)&&Ei(c,!1)&&Hd(c,this.state,ma(Le.getPointAtIndexGlobalCoordinates(c,-1,a)),this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements()),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&&(C0=r);let i=he(this.state.editingElement)?!1:!t&&o.size>0;this.state.scrolledOutside!==i&&this.setState({scrolledOutside:i}),this.scheduleImageRefresh()};onScroll=dl(()=>{let{offsetTop:t,offsetLeft:r}=this.getCanvasOffsets();this.setState(o=>o.offsetLeft===r&&o.offsetTop===t?null:{offsetTop:t,offsetLeft:r})},zS);onCut=Ot(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Yn(t.target)||(this.actionManager.executeAction(Lg,"keyboard",t),t.preventDefault(),t.stopPropagation())});onCopy=Ot(t=>{!this.excalidrawContainerRef.current?.contains(document.activeElement)||Yn(t.target)||(this.actionManager.executeAction(kc,"keyboard",t),t.preventDefault(),t.stopPropagation())});static resetTapTwice(){Jm=!1}onTouchStart=t=>{if(IS&&t.preventDefault(),!Jm){Jm=!0,clearTimeout(S0),S0=window.setTimeout(e.resetTapTwice,FS);return}if(Jm&&t.touches.length===1){let r=t.touches[0];this.handleCanvasDoubleClick({clientX:r.clientX,clientY:r.clientY}),Jm=!1,clearTimeout(S0)}t.touches.length===2&&this.setState({selectedElementIds:ht({},this.state),activeEmbeddable:null})};onTouchEnd=t=>{this.resetContextMenuTimer(),t.touches.length>0?this.setState({previousSelectedElementIds:{},selectedElementIds:ht(this.state.previousSelectedElementIds,this.state)}):at.pointers.clear()};pasteFromClipboard=Ot(async t=>{let r=!!Yh,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)||Yn(o)))return;let{x:s,y:c}=Mt({clientX:this.lastViewportPosition.x,clientY:this.lastViewportPosition.y},this.state),d=t?.clipboardData?.files[0],u=await of(t,r);if(!d&&!r){if(u.mixedContent)return this.addElementsFromMixedContentPaste(u.mixedContent,{isPlainPaste:r,sceneX:s,sceneY:c});if(u.text){let f=u.text.trim();f.startsWith("<svg")&&f.endsWith("</svg>")&&(d=mv(f))}}if(zp(d)&&!u.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:ht({[f.id]:!0},this.state)});return}if(this.props.onPaste)try{if(await this.props.onPaste(u,t)===!1)return}catch(f){console.error(f)}if(u.errorMessage)this.setState({errorMessage:u.errorMessage});else if(u.spreadsheet&&!r)this.setState({pasteDialog:{data:u.spreadsheet,shown:!0}});else if(u.elements){let f=u.programmaticAPI?Kc(u.elements):u.elements;this.addElementsFromPasteOrLibrary({elements:f,files:u.files||null,position:"cursor",retainSeed:r})}else if(u.text){if(u.text&&WM(u.text)){let g=await import("./excalidraw-assets/dist-NLUQPPQQ.js");try{let{elements:h,files:b}=await g.parseMermaidToExcalidraw(u.text),y=Kc(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=u2(u.text).split(/\n+/).map(g=>g.trim()).filter(Boolean),m=f.map(g=>RC(g)).filter(g=>Us(g,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(g)||Sl(g)?.type==="video"));if(!Yh&&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:Ti(h)});y&&g.push(y)}g.length&&this.setState({selectedElementIds:Object.fromEntries(g.map(h=>[h.id,!0]))});return}this.addTextFromPaste(u.text,r)}this.setActiveTool({type:"selection"}),t?.preventDefault()});addElementsFromPasteOrLibrary=t=>{let r=lv(t.elements,null,void 0),[o,i,a,s]=lt(r),c=ul(o,a)/2,d=ul(i,s)/2,u=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}=Mt({clientX:u,clientY:f},this.state),h=m-c,b=g-d,[y,T]=no(h,b,this.state.gridSize),k=Vp(r.map(L=>ke(L,{x:L.x+y-o,y:L.y+T-i})),{randomizeSeed:!t.retainSeed}),C=[...this.scene.getElementsIncludingDeleted(),...k];Do(C,Re(k));let O=this.getTopLayerFrameAtSceneCoords({x:m,y:g});if(O){let L=tI(k,O);lf(C,L,O)}this.scene.replaceAllElements(C),k.forEach(L=>{if(he(L)&&Ir(L)){let F=Il(L,this.scene.getElementsMapIncludingDeleted());qt(L,F,this.scene.getElementsMapIncludingDeleted())}}),t.files&&(this.files={...this.files,...t.files}),this.store.shouldCaptureIncrement();let z=js(k);this.setState({...this.state,openSidebar:this.state.openSidebar&&this.device.editor.canFitSidebar&&Hr.get(Bm)?this.state.openSidebar:null,...Rr({editingGroupId:null,selectedElementIds:z.reduce((L,F)=>(Ir(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 hC(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,u={};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),ce(h,{y:c},!1),c=g.y+g.height+25,u[g.id]=!0)}this.setState({selectedElementIds:ht(u,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
|
-
`),d=s.reduce((c,m,u)=>{let f=m.trim(),b=Or(i.fontFamily);if(f.length){let x=this.getTopLayerFrameAtSceneCoords({x:r,y:l}),E=gn({...i,x:r,y:l,text:f,lineHeight:b,frameId:x?x.id:null});c.push(E),l+=E.height+a}else s[u-1]?.trim()&&(l+=ub(i.fontSize,b)+a);return c},[]);d.length!==0&&(this.scene.insertElements(d),this.setState({selectedElementIds:ze(Object.fromEntries(d.map(c=>[c.id,!0])),this.state)}),!o&&d.length>1&&l6===!1&&!this.device.editor.isMobile&&(this.setToast({message:g("toast.pasteAsSingleElement",{shortcut:F("CtrlOrCmd+Shift+V")}),duration:5e3}),l6=!0),this.store.shouldCaptureIncrement())}setAppState=(e,o)=>{this.setState(e,o)};removePointer=e=>{Un&&this.resetContextMenuTimer(),Pe.pointers.delete(e.pointerId)};toggleLock=(e="ui")=>{this.state.activeTool.locked||xe("toolbar","toggleLock",`${e} (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setState(o=>({activeTool:{...o.activeTool,...it(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({...Ur({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Hr(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}=ns({targetElements:r,appState:this.state,fitToViewport:!!o?.fitToViewport,viewportZoomFactor:o?.viewportZoomFactor});n=l.zoom,i=l.scrollX,a=l.scrollY}else{let l=oi(r,this.state);i=l.scrollX,a=l.scrollY}if(o?.animate){let l=this.state.scrollX,s=this.state.scrollY,d=this.state.zoom.value,c=$1({fromValues:{scrollX:l,scrollY:s,zoom:d},toValues:{scrollX:i,scrollY:a,zoom:n.value},interpolateValue:(m,u,f,b)=>{if(b==="zoom")return m*Math.pow(u/m,Yn(f))},onStep:({scrollX:m,scrollY:u,zoom:f})=>{this.setState({scrollX:m,scrollY:u,zoom:{value:f}})},onStart:()=>{this.setState({shouldCacheIgnoreZoom:!0})},onEnd:()=>{this.setState({shouldCacheIgnoreZoom:!1})},onCancel:()=>{this.setState({shouldCacheIgnoreZoom:!1})},duration:o?.duration??500});this.cancelInProgressAnimation=()=>{c(),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,ll,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=>{bl(r)&&o.has(r.fileId)&&(this.imageCache.delete(r.fileId),Lo.delete(r))}),this.scene.informMutation(),this.addNewImagesToImageCache()});updateScene=Qe(e=>{let o=pn(e.elements??[]);if(e.storeAction&&e.storeAction!==P.NONE){let r=this.store.snapshot.appState,n=this.store.snapshot.elements,i=e.appState?Object.assign({},r,e.appState):r,a=e.elements?this.store.filterUncomittedElements(this.scene.getElementsMapIncludingDeleted(),pe(o)):n;e.storeAction===P.CAPTURE?this.store.captureIncrement(a,i):e.storeAction===P.UPDATE&&this.store.updateSnapshot(a,i)}e.appState&&this.setState(e.appState),e.elements&&this.scene.replaceAllElements(o),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[S.CTRL_OR_CMD]&&e.key===S.P&&!e.shiftKey&&!e.altKey){this.setToast({message:g("commandPalette.shortcutHint",{shortcut:wt("commandPalette")})}),e.preventDefault();return}if(e[S.CTRL_OR_CMD]&&e.key.toLowerCase()===S.V&&(kp=e.shiftKey,clearTimeout(a6),a6=window.setTimeout(()=>{kp=!1},100)),e[S.CTRL_OR_CMD]&&To(e.target)&&(e.code===fe.MINUS||e.code===fe.EQUAL)){e.preventDefault();return}if(To(e.target)&&e.key!==S.ESCAPE||Wi(e.key)&&B1(e.target))return;if(e.key===S.QUESTION_MARK){this.setState({openDialog:{name:"help"}});return}else if(e.key.toLowerCase()===S.E&&e.shiftKey&&e[S.CTRL_OR_CMD]){e.preventDefault(),this.setState({openDialog:{name:"imageExport"}});return}if(e.key===S.PAGE_UP||e.key===S.PAGE_DOWN){let i=(e.shiftKey?this.state.width:this.state.height)/this.state.zoom.value;e.key===S.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[S.CTRL_OR_CMD]&&this.state.isBindingEnabled&&this.setState({isBindingEnabled:!1}),Wi(e.key)){let i=this.state.gridSize&&(e.shiftKey?Op:this.state.gridSize)||(e.shiftKey?p1:Op),a=0,l=0;e.key===S.ARROW_LEFT?a=-i:e.key===S.ARROW_RIGHT?a=i:e.key===S.ARROW_UP?l=-i:e.key===S.ARROW_DOWN&&(l=i);let s=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});s.forEach(d=>{re(d,{x:d.x+a,y:d.y+l}),ou(d,this.scene.getNonDeletedElementsMap(),{simultaneouslyUpdated:s})}),this.setState({suggestedBindings:bc(s,this)}),e.preventDefault()}else if(e.key===S.ENTER){let i=this.scene.getSelectedElements(this.state);if(i.length===1){let a=i[0];if(e[S.CTRL_OR_CMD])Re(a)&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==i[0].id)&&(this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new ue(a)}));else if(se(a)||wb(a)){let l;se(a)||(l=a);let s=Cc(a,this.state,this.scene.getNonDeletedElementsMap()),d=s.x,c=s.y;this.startTextEditing({sceneX:d,sceneY:c,container:l}),e.preventDefault();return}else Ee(a)&&this.setState({editingFrame:a.id})}}else if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&this.state.draggingElement===null){let i=kw(e.key);i?(this.state.activeTool.type!==i&&xe("toolbar",i,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),this.setActiveTool({type:i}),e.stopPropagation()):e.key===S.Q&&(this.toggleLock("keyboard"),e.stopPropagation())}if(e.key===S.SPACE&&Pe.pointers.size===0&&(Ri=!0,Fe(this.interactiveCanvas,Oe.GRAB),e.preventDefault()),(e.key===S.G||e.key===S.S)&&!e.altKey&&!e[S.CTRL_OR_CMD]){let i=this.scene.getSelectedElements(this.state);if(this.state.activeTool.type==="selection"&&!i.length)return;e.key===S.G&&(fn(this.state.activeTool.type)||i.some(a=>fn(a.type)))&&(this.setState({openPopup:"elementBackground"}),e.stopPropagation()),e.key===S.S&&(this.setState({openPopup:"elementStroke"}),e.stopPropagation())}if(e.key===S.K&&!e.altKey&&!e[S.CTRL_OR_CMD]){this.state.activeTool.type==="laser"?this.setActiveTool({type:"selection"}):this.setActiveTool({type:"laser"});return}e[S.CTRL_OR_CMD]&&(e.key===S.BACKSPACE||e.key===S.DELETE)&&Gt.set(Ti,"clearCanvas");let o=e.key.toLocaleLowerCase(),r=o===S.S&&e.shiftKey,n=e.key===S.I||o===S.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=>{e.key===S.SPACE&&(this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):this.state.activeTool.type==="selection"?Mo(this.interactiveCanvas):(qo(this.interactiveCanvas,this.state),this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),Ri=!1),!e[S.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Wi(e.key)&&(Cl(this.scene.getSelectedElements(this.state).filter(Re),this,qn(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[]),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=it(this.state,e);o.type==="hand"?Fe(this.interactiveCanvas,Oe.GRAB):Ri||qo(this.interactiveCanvas,this.state),F1(document.activeElement)&&this.focusContainer(),q1(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==="freedraw"&&this.store.shouldCaptureIncrement(),o.type!=="selection"?{...r,activeTool:o,selectedElementIds:ze({},r),selectedGroupIds:ze({},r),editingGroupId:null,multiElement:null,...n}:{...r,activeTool:o,...n}})};setOpenDialog=e=>{this.setState({openDialog:e})};setCursor=e=>{Fe(this.interactiveCanvas,e)};resetCursor=()=>{Mo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>Pe.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${g("labels.untitled")}-${Vp()}`;onGestureStart=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:ze({},this.state),activeEmbeddable:null}),Pe.initialScale=this.state.zoom.value});onGestureChange=Qe(e=>{if(e.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let o=Pe.initialScale;o&&this.setState(r=>({...Ur({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Hr(o*e.scale)},r)}))});onGestureEnd=Qe(e=>{e.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:ze(this.state.previousSelectedElementIds,this.state)}),Pe.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&&se(s)?Fb(s,Nr(s,r),r,{text:i,isDeleted:l,originalText:a}):s)])};i6({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),Mu(e)&&ou(e,r)}),onSubmit:Qe(({text:i,viaKeyboard:a,originalText:l})=>{let s=!i.trim();if(n(i,l,s),!s&&a){let d=e.containerId?e.containerId:e.id;this.setState(c=>({selectedElementIds:ze({...c.selectedElementIds,[d]:!0},c)}))}s&&vc(this.scene.getNonDeletedElements(),[e]),(!s||o)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&qo(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:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})}getTextElementAtPosition(e,o){let r=this.getElementAtPosition(e,o,{includeBoundTextElement:!0});return r&&se(r)&&!r.isDeleted?r:null}getElementShape(e){switch(e.type){case"rectangle":case"diamond":case"frame":case"magicframe":case"embeddable":case"image":case"iframe":case"text":case"selection":return e0(e);case"arrow":case"line":{let o=Lo.get(e)?.[0]??Lo.generateElementShape(e,null)[0],[,,,,r,n]=Wt(e,this.scene.getNonDeletedElementsMap());return gu(e)?i0(e,o,[e.x,e.y],e.angle,[r,n]):r0(o,[e.x,e.y],e.angle,[r,n])}case"ellipse":return o0(e);case"freedraw":{let[,,,,o,r]=Wt(e,this.scene.getNonDeletedElementsMap());return n0(e,[o,r],gu(e))}}}getBoundTextShape(e){let o=ct(e,this.scene.getNonDeletedElementsMap());return o?e.type==="arrow"?this.getElementShape({...o,...ue.getBoundTextElementPosition(e,o,this.scene.getNonDeletedElementsMap())}):this.getElementShape(o):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 Xi({x:e,y:o,element:i,shape:this.getElementShape(i),threshold:this.getElementHitThreshold()/2,frameNameBound:Ee(i)?this.frameNameBoundsCache.get(i):null})?i:n[n.length-2]}return n.length===1?n[0]:null}getElementsAtPosition(e,o,r=!1,n=!1){let i=[],a=this.scene.getNonDeletedElementsMap();return(r&&n?this.scene.getNonDeletedElements():this.scene.getNonDeletedElements().filter(s=>(n||!s.locked)&&(r||!(se(s)&&s.containerId)))).filter(s=>this.hitElement(e,o,s)).filter(s=>{let d=Uc(s,a);return d&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?vu({x:e,y:o},d,a):!0}).filter(s=>Xn(s)?(i.push(s),!1):!0).concat(i)}getElementHitThreshold(){return h1/this.state.zoom.value}hitElement(e,o,r,n=!0){if(n&&this.state.selectedElementIds[r.id]&&Zc([r],this.state)){let a=t0(r,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return lb([e,o],a)}return s0(e,o,this.getBoundTextShape(r))?!0:Xi({x:e,y:o,element:r,shape:this.getElementShape(r),threshold:this.getElementHitThreshold(),frameNameBound:Ee(r)?this.frameNameBoundsCache.get(r):null})}getTextBindableContainerAtPosition(e,o){let r=this.scene.getNonDeletedElements(),n=this.scene.getSelectedElements(this.state);if(n.length===1)return Rr(n[0],!1)?n[0]:null;let i=null;for(let a=r.length-1;a>=0;--a){if(r[a].isDeleted)continue;let[l,s,d,c]=Wt(r[a],this.scene.getNonDeletedElementsMap());if(ur(r[a])&&Xi({x:e,y:o,element:r[a],shape:this.getElementShape(r[a]),threshold:this.getElementHitThreshold()})){i=r[a];break}else if(l<e&&e<d&&s<o&&o<c){i=r[a];break}}return Rr(i,!1)?i:null}startTextEditing=({sceneX:e,sceneY:o,insertAtParentCenter:r=!0,container:n})=>{let i=!1,a=r&&this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n);n&&a&&(ct(n,this.scene.getNonDeletedElementsMap())||(i=!0));let l=null,s=this.scene.getSelectedElements(this.state);s.length===1?se(s[0])?l=s[0]:n?l=ct(s[0],this.scene.getNonDeletedElementsMap()):l=this.getTextElementAtPosition(e,o):l=this.getTextElementAtPosition(e,o);let d=l?.fontFamily||this.state.currentItemFontFamily,c=l?.lineHeight||Or(d),m=this.state.currentItemFontSize;if(!l&&i&&n&&!ur(n)){let x=bb(Xo({fontSize:m,fontFamily:d}),c),E=fb(m,c),T=Math.max(n.height,E),C=Math.max(n.width,x);re(n,{height:T,width:C}),e=n.x+C/2,o=n.y+T/2,a&&(a=this.getTextWysiwygSnappedToCenterPosition(e,o,this.state,n))}let u=this.getTopLayerFrameAtSceneCoords({x:e,y:o}),f=l||gn({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:m,fontFamily:d,textAlign:a?"center":this.state.currentItemTextAlign,verticalAlign:a?wo.MIDDLE:zp,containerId:i?n?.id:void 0,groupIds:n?.groupIds??[],lineHeight:c,angle:n?.angle??0,frameId:u?u.id:null});if(!l&&i&&n&&re(n,{boundElements:(n.boundElements||[]).concat({type:"text",id:f.id})}),this.setState({editingElement:f}),!l)if(n&&i){let b=this.scene.getElementIndex(n.id);this.scene.insertElementAtIndex(f,b+1)}else this.scene.insertElement(f);this.setState({editingElement:f}),this.handleTextWysiwyg(f,{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[S.CTRL_OR_CMD]&&(!this.state.editingLinearElement||this.state.editingLinearElement.elementId!==o[0].id)){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new ue(o[0])});return}Mo(this.interactiveCanvas);let{x:r,y:n}=Ye(e,this.state);if(Br(this.state).length>0){let a=this.getElementAtPosition(r,n),l=a&&Mb(a,this.state.selectedGroupIds);if(l){this.store.shouldCaptureIncrement(),this.setState(s=>({...s,...Nt({editingGroupId:l,selectedElementIds:{[a.id]:!0}},this.scene.getNonDeletedElements(),s,this)}));return}}if(Mo(this.interactiveCanvas),!e[S.CTRL_OR_CMD]&&!this.state.viewModeEnabled){let a=this.getElementAtPosition(r,n);if(zi(a)){this.setState({activeEmbeddable:{element:a,state:"active"}});return}let l=this.getTextBindableContainerAtPosition(r,n);if(l&&(fr(l)||!jn(l.backgroundColor)||Xi({x:r,y:n,element:l,shape:this.getElementShape(l),threshold:this.getElementHitThreshold()}))){let s=Cc(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&&Bc(i,this.scene.getNonDeletedElementsMap(),this.state,[e.x,e.y],this.device.editor.isMobile)))};redirectToLink=(e,o)=>{let r=un(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||o&&r>Gn||!o&&r!==0)return;let n=Ye(this.lastPointerDownEvent,this.state),i=this.scene.getNonDeletedElementsMap(),a=Bc(this.hitLinkElement,i,this.state,[n.x,n.y],this.device.editor.isMobile),l=Ye(this.lastPointerUpEvent,this.state),s=Bc(this.hitLinkElement,i,this.state,[l.x,l.y],this.device.editor.isMobile);if(a&&s){let d=this.hitLinkElement.link;if(d){d=zr(d);let c;if(this.props.onLinkOpen&&(c=dc("excalidraw-link",e.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:d},c)),!c?.defaultPrevented){let m=kc(d)?"_self":"_blank",u=window.open(void 0,m);u&&(u.opener=null,u.location=d)}}}};getTopLayerFrameAtSceneCoords=e=>{let o=this.scene.getNonDeletedElementsMap(),r=this.scene.getNonDeletedFramesLikes().filter(n=>vu(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,Pe.pointers.has(e.pointerId)&&Pe.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});let o=Pe.initialScale;if(Pe.pointers.size===2&&Pe.lastCenter&&o&&Pe.initialDistance){let u=jh(Pe.pointers),f=u.x-Pe.lastCenter.x,b=u.y-Pe.lastCenter.y;Pe.lastCenter=u;let x=Xh(Array.from(Pe.pointers.values())),E=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:x/Pe.initialDistance,T=E?Hr(o*E):this.state.zoom.value;this.setState(C=>{let w=Ur({viewportX:u.x,viewportY:u.y,nextZoom:T},C);this.translateCanvas({zoom:w.zoom,scrollX:w.scrollX+f/T,scrollY:w.scrollY+b/T,shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else Pe.lastCenter=Pe.initialDistance=Pe.initialScale=null;if(Ri||zs||Fg||Fr(this.state))return;let n=Qh(Bg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(n?Mo(this.interactiveCanvas):qo(this.interactiveCanvas,this.state));let i=Ye(e,this.state),{x:a,y:l}=i;if(!this.state.draggingElement&&O5(this.state.activeTool.type)){let{originOffset:u,snapLines:f}=N5(this.scene.getNonDeletedElements(),this.state,{x:a,y:l},e,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x=pc(b.snapLines,f),E=b.originSnapOffset?pc(b.originSnapOffset,u):u;return b.snapLines===x&&b.originSnapOffset===E?null:{snapLines:x,originSnapOffset:E}})}else this.state.draggingElement||this.setState(u=>u.snapLines.length?{snapLines:[]}:null);if(this.state.editingLinearElement&&!this.state.editingLinearElement.isDragging){let u=ue.handlePointerMove(e,a,l,this.state,this.scene.getNonDeletedElementsMap());u&&u!==this.state.editingLinearElement&&(0,Ip.flushSync)(()=>{this.setState({editingLinearElement:u})}),u?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(i):(0,Ip.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(J1(this.state.activeTool.type)){let{draggingElement:u}=this.state;Pr(u,!1)?this.maybeSuggestBindingsForLinearElementAtCoords(u,[i],this.state.startBoundElement):this.maybeSuggestBindingAtCursor(i)}if(this.state.multiElement){let{multiElement:u}=this.state,{x:f,y:b}=u,{points:x,lastCommittedPoint:E}=u,T=x[x.length-1];if(qo(this.interactiveCanvas,this.state),T===E)un(a-f,l-b,T[0],T[1])>=js?re(u,{points:[...x,[a-f,l-b]]}):Fe(this.interactiveCanvas,Oe.POINTER);else if(x.length>2&&E&&un(a-f,l-b,E[0],E[1])<js)Fe(this.interactiveCanvas,Oe.POINTER),re(u,{points:x.slice(0,-1)});else{let[C,w]=eo(a,l,e[S.CTRL_OR_CMD]?null:this.state.gridSize),[A,z]=u?.lastCommittedPoint??[0,0],I=C-f-A,M=w-b-z;hc(e)&&({width:I,height:M}=wu(A+f,z+b,C,w)),vl(x,this.state.zoom.value)&&Fe(this.interactiveCanvas,Oe.POINTER),re(u,{points:[...x.slice(0,-1),[A+I,z+M]]})}return}if(!!e.buttons||this.state.activeTool.type!=="selection"&&this.state.activeTool.type!=="text"&&this.state.activeTool.type!=="eraser")return;let d=this.scene.getNonDeletedElements(),c=this.scene.getSelectedElements(this.state);if(c.length===1&&!n&&!this.state.editingLinearElement){if(this.state.selectedLinearElement&&this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l),!this.state.selectedLinearElement||this.state.selectedLinearElement.hoverPointIndex===-1){let u=Cu(d,this.state,a,l,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(u&&u.transformHandleType){Fe(this.interactiveCanvas,Tu(u));return}}}else if(c.length>1&&!n){let u=Su(Ze(c),a,l,this.state.zoom,e.pointerType,this.device);if(u){Fe(this.interactiveCanvas,Tu({transformHandleType:u}));return}}let m=this.getElementAtPosition(i.x,i.y);this.hitLinkElement=this.getElementLinkAtPosition(i,m),!Ao(this.state)&&(this.hitLinkElement&&!this.state.selectedElementIds[this.hitLinkElement.id]?(Fe(this.interactiveCanvas,Oe.POINTER),Iy(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(Ay(),m&&(m.link||Ht(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?Fe(this.interactiveCanvas,se(m)?Oe.TEXT:Oe.CROSSHAIR):this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):n?Fe(this.interactiveCanvas,Oe.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,a,l):e[S.CTRL_OR_CMD]?Fe(this.interactiveCanvas,Oe.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(i,c))&&!m?.locked&&(m&&zi(m)&&this.isIframeLikeElementCenter(m,e,a,l)?(Fe(this.interactiveCanvas,Oe.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(Fe(this.interactiveCanvas,Oe.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=u=>{for(let f of u){if(f.locked)return;if(e.altKey?this.elementsPendingErasure.delete(f.id)&&(n=!0):this.elementsPendingErasure.has(f.id)||(n=!0,this.elementsPendingErasure.add(f.id)),n&&f.groupIds?.length){let b=f.groupIds.at(-1);if(!i.has(b)){i.add(b);let x=ft(a,b);for(let E of x)e.altKey?this.elementsPendingErasure.delete(E.id):this.elementsPendingErasure.add(E.id)}}}},s=un(o.lastCoords.x,o.lastCoords.y,r.x,r.y),d=this.getElementHitThreshold(),c={...o.lastCoords},m=0;for(;m<=s;){let u=this.getElementsAtPosition(c.x,c.y);if(l(u),m===s)break;m=Math.min(m+d,s);let f=m/s,b=(1-f)*c.x+f*r.x,x=(1-f)*c.y+f*r.y;c.x=b,c.y=x}if(o.lastCoords.x=r.x,o.lastCoords.y=r.y,n){for(let u of this.scene.getNonDeletedElements())xt(u)&&(this.elementsPendingErasure.has(u.id)||this.elementsPendingErasure.has(u.containerId))&&(e.altKey?(this.elementsPendingErasure.delete(u.id),this.elementsPendingErasure.delete(u.containerId)):(this.elementsPendingErasure.add(u.id),this.elementsPendingErasure.add(u.containerId)));this.elementsPendingErasure=new Set(this.elementsPendingErasure),this.onSceneUpdated()}};handleTouchMove=e=>{$s=!0};handleHoverSelectedLinearElement(e,o,r){let n=this.scene.getNonDeletedElementsMap(),i=ue.getElement(e.elementId,n);if(i)if(this.state.selectedLinearElement){let a=-1,l=null;Xi({x:o,y:r,element:i,shape:this.getElementShape(i)})?(a=ue.getPointIndexUnderCursor(i,n,this.state.zoom,o,r),l=ue.getSegmentMidpointHitCoords(e,{x:o,y:r},this.state,this.scene.getNonDeletedElementsMap()),a>=0||l?Fe(this.interactiveCanvas,Oe.POINTER):this.hitElement(o,r,i)&&Fe(this.interactiveCanvas,Oe.MOVE)):this.hitElement(o,r,i)&&Fe(this.interactiveCanvas,Oe.MOVE),this.state.selectedLinearElement.hoverPointIndex!==a&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:a}}),ue.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,l)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:l}})}else Fe(this.interactiveCanvas,Oe.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 d=this.state.draggingElement;this.updateScene({...d.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(c=>c.id!==d.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:ze(Object.keys(this.state.selectedElementIds).filter(c=>c!==d.id).reduce((c,m)=>(c[m]=this.state.selectedElementIds[m],c),{}),this.state)},storeAction:P.UPDATE});return}let o=document.getSelection();if(o?.anchorNode&&o.removeAllRanges(),this.maybeOpenContextMenuAfterPointerDownOnTouchDevices(e),!this.state.penDetected&&e.pointerType==="pen"&&this.setState(d=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(e.pointerType)&&(this.device=Fi(this.device,{isTouchScreen:!0})),zs||(this.lastPointerDownEvent=e,this.handleCanvasPanUsingWheelOrSpaceDrag(e)))return;if(this.setState({lastPointerDownWith:e.pointerType,cursorButton:"down"}),this.savePointer(e.clientX,e.clientY,"down"),e.button===an.ERASER&&this.state.activeTool.type!==ut.eraser){this.setState({activeTool:it(this.state,{type:ut.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(e);let d=()=>{c(),m?.(),Ao(this.state)&&this.setState({activeTool:it(this.state,{...this.state.activeTool.lastActiveTool||{type:ut.selection},lastActiveToolBeforeEraser:null})})},c=at(window,"pointerup",d,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(d)})});return}if(e.button!==an.MAIN&&e.button!==an.TOUCH&&e.button!==an.ERASER||Pe.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"){Fe(this.interactiveCanvas,Oe.CROSSHAIR);let d=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!d)return;this.setState({draggingElement:d,editingElement:d,pendingImageElementId:null,multiElement:null});let{x:c,y:m}=Ye(e,this.state),u=this.getTopLayerFrameAtSceneCoords({x:c,y:m});re(d,{x:c,y:m,frameId:u?u.id:null})}else this.state.activeTool.type==="freedraw"?this.handleFreeDrawElementOnPointerDown(e,this.state.activeTool.type,r):this.state.activeTool.type==="custom"?qo(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(d=>a(d||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=Ye({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(zi(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&&zi(this.hitLinkElement)&&!d0(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"&&($s=!1,Un?$s=!0:Un=window.setTimeout(()=>{Un=0,$s||this.handleCanvasContextMenu(e)},C1))};resetContextMenuTimer=()=>{clearTimeout(Un),Un=0,$s=!1};maybeCleanupAfterMissingPointerUp=e=>{Hs?.(),this.missingPointerEventCleanupEmitter.trigger(e).clear()};handleCanvasPanUsingWheelOrSpaceDrag=e=>{if(!(Pe.pointers.size<=1&&(e.button===an.WHEEL||e.button===an.MAIN&&Ri||Fr(this.state)||this.state.viewModeEnabled))||se(this.state.editingElement))return!1;zs=!0,e.preventDefault();let o=!1,r=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);Fe(this.interactiveCanvas,Oe.GRABBING);let{clientX:n,clientY:i}=e,a=xp(s=>{let d=n-s.clientX,c=i-s.clientY;if(n=s.clientX,i=s.clientY,r&&!o&&(Math.abs(d)>1||Math.abs(c)>1)){o=!0;let m=f=>{document.body.removeEventListener("paste",m),f.stopPropagation()},u=()=>{setTimeout(()=>{document.body.removeEventListener("paste",m),window.removeEventListener("pointerup",u)},100)};document.body.addEventListener("paste",m),window.addEventListener("pointerup",u)}this.translateCanvas({scrollX:this.state.scrollX-d/this.state.zoom.value,scrollY:this.state.scrollY-c/this.state.zoom.value})}),l=Qe(Hs=()=>{Hs=null,zs=!1,Ri||(this.state.viewModeEnabled?Fe(this.interactiveCanvas,Oe.GRAB):qo(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){Pe.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),Pe.pointers.size===2&&(Pe.lastCenter=jh(Pe.pointers),Pe.initialScale=this.state.zoom.value,Pe.initialDistance=Xh(Array.from(Pe.pointers.values())))}initialPointerDownState(e){let o=Ye(e,this.state),r=this.scene.getSelectedElements(this.state),[n,i,a,l]=Ze(r);return{origin:o,withCmdOrCtrl:e[S.CTRL_OR_CMD],originInGrid:fl(eo(o.x,o.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize)),scrollbars:Qh(Bg,e.clientX-this.state.offsetLeft,e.clientY-this.state.offsetTop),lastCoords:{...o},originalElements:this.scene.getNonDeletedElements().reduce((s,d)=>(s.set(d.id,Mc(d)),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;Fg=!0,o.lastCoords.x=e.clientX,o.lastCoords.y=e.clientY;let r=xp(i=>{i.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(i,o)}),n=Qe(()=>{Hs=null,Fg=!1,qo(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 Hs=n,window.addEventListener("pointermove",r),window.addEventListener("pointerup",n),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:ze({},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&&!(this.state.selectedLinearElement&&this.state.selectedLinearElement.hoverPointIndex!==-1)){let a=Cu(r,this.state,o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.scene.getNonDeletedElementsMap(),this.device);a!=null&&(this.setState({resizingElement:a.element}),o.resize.handleType=a.transformHandleType)}else i.length>1&&(o.resize.handleType=Su(Ze(i),o.origin.x,o.origin.y,this.state.zoom,e.pointerType,this.device));if(o.resize.handleType)o.resize.isResizing=!0,o.resize.offset=fl(O0(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=F0(o.resize.handleType,i[0]));else{if(this.state.selectedLinearElement){let s=this.state.editingLinearElement||this.state.selectedLinearElement,d=ue.handlePointerDown(e,this.state,this.store,o.origin,s,this);if(d.hitElement&&(o.hit.element=d.hitElement),d.linearElementEditor&&(this.setState({selectedLinearElement:d.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:d.linearElementEditor})),d.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:ze({[this.state.editingLinearElement.elementId]:!0},this.state)});else if(a!=null){if(e[S.CTRL_OR_CMD])return this.state.selectedElementIds[a.id]||(o.hit.wasAddedToSelection=!0),this.setState(s=>({...Ab(s,a),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[a.id]||(this.state.editingGroupId&&!Yi(a,this.state.editingGroupId)&&this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!l&&!o.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(s=>{let d={...s.selectedElementIds,[a.id]:!0},c=[];if(Object.keys(s.selectedElementIds).forEach(m=>{let u=this.scene.getElement(m);u&&c.push(u)}),Ee(a))bn(c,a.id).forEach(m=>{delete d[m.id]});else if(a.frameId)d[a.frameId]&&delete d[a.id];else{let m=a.groupIds,u=new Set(m.flatMap(f=>ft(this.scene.getNonDeletedElements(),f)).filter(f=>Ee(f)).map(f=>f.id));u.size>0&&c.forEach(f=>{f.frameId&&u.has(f.frameId)&&(delete d[f.id],f.groupIds.flatMap(b=>ft(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete d[b.id]}))})}return{...Nt({editingGroupId:s.editingGroupId,selectedElementIds:d},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=this.getElementHitThreshold(),[n,i,a,l]=Ze(o);return e.x>n-r&&e.x<a+r&&e.y>i-r&&e.y<l+r}handleTextOnPointerDown=(e,o)=>{if(se(this.state.editingElement))return;let r=o.origin.x,n=o.origin.y,i=this.getElementAtPosition(r,n,{includeBoundTextElement:!0}),a=this.getTextBindableContainerAtPosition(r,n);fr(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}),Mo(this.interactiveCanvas),this.state.activeTool.locked||this.setState({activeTool:it(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(e,o,r)=>{let[n,i]=eo(r.origin.x,r.origin.y,null),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),l=Bb({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(c=>{let m={...c.selectedElementIds};return delete m[l.id],{selectedElementIds:ze(m,c)}});let s=l.simulatePressure?l.pressures:[...l.pressures,e.pressure];re(l,{points:[[0,0]],pressures:s});let d=Tl(r.origin,this);this.scene.insertElement(l),this.setState({draggingElement:l,editingElement:l,startBoundElement:d,suggestedBindings:[]})};insertIframeElement=({sceneX:e,sceneY:o,width:r,height:n})=>{let[i,a]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),l=Nb({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.insertElement(l),l};insertEmbeddableElement=({sceneX:e,sceneY:o,link:r})=>{let[n,i]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=Qn(r);if(!a)return;a.error instanceof URIError&&this.setToast({message:g("toast.unrecognizedLinkFormat"),closable:!0});let l=iu({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.insertElement(l),l};createImageElement=({sceneX:e,sceneY:o,addToFrameUnderCursor:r=!0})=>{let[n,i]=eo(e,o,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),a=r?this.getTopLayerFrameAtSceneCoords({x:n,y:i}):null;return Ac({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"&&vl(n.points,this.state.zoom.value)){re(n,{lastCommittedPoint:n.points[n.points.length-1]}),this.actionManager.executeAction(Oo);return}let{x:i,y:a,lastCommittedPoint:l}=n;if(n.points.length>1&&l&&un(r.origin.x-i,r.origin.y-a,l[0],l[1])<js){this.actionManager.executeAction(Oo);return}this.setState(s=>({selectedElementIds:ze({...s.selectedElementIds,[n.id]:!0},s)})),re(n,{lastCommittedPoint:n.points[n.points.length-1]}),Fe(this.interactiveCanvas,Oe.POINTER)}else{let[n,i]=eo(r.origin.x,r.origin.y,e[S.CTRL_OR_CMD]?null:this.state.gridSize),a=this.getTopLayerFrameAtSceneCoords({x:n,y:i}),{currentItemStartArrowhead:l,currentItemEndArrowhead:s}=this.state,[d,c]=o==="arrow"?[l,s]:[null,null],m=Ml({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:Co.PROPORTIONAL_RADIUS}:null,startArrowhead:d,endArrowhead:c,locked:!1,frameId:a?a.id:null});this.setState(f=>{let b={...f.selectedElementIds};return delete b[m.id],{selectedElementIds:ze(b,f)}}),re(m,{points:[...m.points,[0,0]]});let u=Tl(r.origin,this);this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:u,suggestedBindings:[]})}};getCurrentItemRoundness(e){return this.state.currentItemRoundness==="round"?{type:$i(e)?Co.ADAPTIVE_RADIUS:Co.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(e,o)=>{let[r,n]=eo(o.origin.x,o.origin.y,this.lastPointerDownEvent?.[S.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=iu({type:"embeddable",...a}):l=hn({type:e,...a}),l.type==="selection"?this.setState({selectionElement:l,draggingElement:l}):(this.scene.insertElement(l),this.setState({multiElement:null,draggingElement:l,editingElement:l}))};createFrameElementOnPointerDown=(e,o)=>{let[r,n]=eo(e.origin.x,e.origin.y,this.lastPointerDownEvent?.[S.CTRL_OR_CMD]?null:this.state.gridSize),i={x:r,y:n,opacity:this.state.currentItemOpacity,locked:!1,...Zo},a=o===ut.magicframe?Al(i):Ic(i);this.scene.insertElement(a),this.setState({multiElement:null,draggingElement:a,editingElement:a})};maybeCacheReferenceSnapPoints(e,o,r=!1){nn({event:e,appState:this.state,selectedElements:o})&&(r||!Wo.getReferenceSnapPoints())&&Wo.setReferenceSnapPoints(L5(this.scene.getNonDeletedElements(),o,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(e,o,r=!1){nn({event:e,appState:this.state,selectedElements:o})&&(r||!Wo.getVisibleGaps())&&Wo.setVisibleGaps(_5(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===S.ALT&&o.preventDefault(),!this.maybeHandleResize(e,o)&&this.maybeDragNewGenericElement(e,o)})}onPointerMoveFromPointerDownHandler(e){return xp(o=>{if(e.drag.offset===null&&(e.drag.offset=fl(z0(this.scene.getSelectedElements(this.state),e.origin.x,e.origin.y))),!(o.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(o,e))return;let n=Ye(o,this.state);if(Ao(this.state)){this.handleEraser(o,e,n);return}this.state.activeTool.type==="laser"&&this.laserTrails.addPointToPath(n.x,n.y);let[i,a]=eo(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize);if(!e.drag.hasOccurred&&(this.state.activeTool.type==="arrow"||this.state.activeTool.type==="line")&&un(n.x,n.y,e.origin.x,e.origin.y)<Gn)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 m=this.state.editingLinearElement||this.state.selectedLinearElement;if(ue.shouldAddMidpoint(this.state.selectedLinearElement,n,this.state,l)){let f=ue.addMidpoint(this.state.selectedLinearElement,n,this.state,!o[S.CTRL_OR_CMD],l);if(!f)return;(0,Ip.flushSync)(()=>{this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}}),this.state.editingLinearElement&&this.setState({editingLinearElement:{...this.state.editingLinearElement,pointerDownState:f.pointerDownState,selectedPointsIndices:f.selectedPointsIndices}})});return}else if(m.pointerDownState.segmentMidpoint.value!==null&&!m.pointerDownState.segmentMidpoint.added)return;if(ue.handlePointDragging(o,this.state,n.x,n.y,(f,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(f,b)},m,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(m=>this.isASelectedElement(m)),d=this.state.editingLinearElement&&o.shiftKey&&this.state.editingLinearElement.elementId===e.hit.element?.id;if((s||e.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!d){let m=this.scene.getSelectedElements(this.state);if(m.every(b=>b.locked))return;let u=m.find(b=>Ee(b)),f=this.getTopLayerFrameAtSceneCoords(n);if(this.setState({frameToHighlight:f&&!u?f:null}),e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0}),m.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()],E=o.shiftKey;if(E){let w=Math.abs(b.x),A=Math.abs(b.y),z=E&&w<A,I=E&&w>A;z&&(b.x=0),I&&(b.y=0)}this.maybeCacheVisibleGaps(o,m),this.maybeCacheReferenceSnapPoints(o,m);let{snapOffset:T,snapLines:C}=P5(x,b,this.state,o,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:C}),!this.state.editingFrame&&B0(e,m,b,this.state,this.scene,T,o[S.CTRL_OR_CMD]?null:this.state.gridSize),this.setState({suggestedBindings:bc(m,this)}),o.altKey&&!e.hit.hasBeenDuplicated){e.hit.hasBeenDuplicated=!0;let w=[],A=[],z=new Map,I=new Map,M=e.hit.element,_=new Set(this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}).map(G=>G.id)),U=this.scene.getElementsIncludingDeleted();for(let G of U)if(_.has(G.id)||G.id===M?.id&&e.hit.wasAddedToSelection){let O=_c(this.state.editingGroupId,z,G),B=e.originalElements.get(G.id);re(O,{x:B.x,y:B.y}),e.originalElements.set(O.id,O),w.push(O),A.push(G),I.set(G.id,O.id)}else w.push(G);let D=[...w,...A];ho(D,pe(A)),Ec(w,A,I),xc(D,A,I,"duplicatesServeAsOld"),Hc(D,A,I),this.scene.replaceAllElements(D),this.maybeCacheVisibleGaps(o,m,!0),this.maybeCacheReferenceSnapPoints(o,m,!0)}return}}let c=this.state.draggingElement;if(c){if(c.type==="freedraw"){let m=c.points,u=n.x-c.x,f=n.y-c.y,b=m.length>0&&m[m.length-1];if(!(b&&b[0]===u&&b[1]===f)){let E=c.simulatePressure?c.pressures:[...c.pressures,o.pressure];re(c,{points:[...m,[u,f]],pressures:E})}}else if(Re(c)){e.drag.hasOccurred=!0,this.setState({selectedElementsAreBeingDragged:!0});let m=c.points,u=i-c.x,f=a-c.y;hc(o)&&m.length===2&&({width:u,height:f}=wu(c.x,c.y,n.x,n.y)),m.length===1?re(c,{points:[...m,[u,f]]}):m.length===2&&re(c,{points:[...m.slice(0,-1),[u,f]]}),Pr(c,!1)&&this.maybeSuggestBindingsForLinearElementAtCoords(c,[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 m=this.scene.getNonDeletedElements();if(this.state.editingLinearElement)ue.handleBoxSelection(o,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let u=!0;!o.shiftKey&&Be(m,this.state)&&(e.withCmdOrCtrl&&e.hit.element?this.setState(b=>Nt({...b,selectedElementIds:{[e.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):u=!1);let f=$0(m,c,this.scene.getNonDeletedElementsMap());this.setState(b=>{let x={...u&&b.selectedElementIds,...f.reduce((E,T)=>(E[T.id]=!0,E),{})};return e.hit.element&&(f.length?delete x[e.hit.element.id]:x[e.hit.element.id]=!0),b=u?b:{...b,selectedGroupIds:{},editingGroupId:null},{...Nt({editingGroupId:b.editingGroupId,selectedElementIds:x},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:f.length===1&&Re(f[0])?new ue(f[0]):null,showHyperlinkPopup:f.length===1&&(f[0].link||Ht(f[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(f=>({isResizing:!1,isRotating:!1,resizingElement:null,selectionElement:null,frameToHighlight:null,elementsToHighlight:null,cursorButton:"up",editingElement:i||se(this.state.editingElement)?this.state.editingElement:null,snapLines:pc(f.snapLines,[]),originSnapOffset:null})),Wo.setReferenceSnapPoints(null),Wo.setVisibleGaps(null),this.savePointer(o.clientX,o.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let d=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!e.boxSelection.hasOccurred&&e.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(Oo);else{let f=ue.handlePointerUp(o,this.state.editingLinearElement,this.state,this);f!==this.state.editingLinearElement&&this.setState({editingLinearElement:f,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 f=ue.handlePointerUp(o,this.state.selectedLinearElement,this.state,this),{startBindingElement:b,endBindingElement:x}=f,E=this.scene.getElement(f.elementId);Pr(E)&&gc(E,b,x,d),f!==this.state.selectedLinearElement&&this.setState({selectedLinearElement:{...f,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 f=Ye(o,this.state),b=r.points,x=f.x-r.x,E=f.y-r.y;x===b[0][0]&&E===b[0][1]&&(E+=1e-4,x+=1e-4);let T=r.simulatePressure?[]:[...r.pressures,o.pressure];re(r,{points:[...b,[x,E]],pressures:T,lastCommittedPoint:[x,E]}),this.actionManager.executeAction(Oo);return}if(dn(r)){let f=r;try{this.initializeImageDimensions(f),this.setState({selectedElementIds:ze({[f.id]:!0},this.state)},()=>{this.actionManager.executeAction(Oo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(x=>x.id!==f.id)),this.actionManager.executeAction(Oo)}return}if(Re(r)){r.points.length>1&&this.store.shouldCaptureIncrement();let f=Ye(o,this.state);!e.drag.hasOccurred&&r&&!i?(re(r,{points:[...r.points,[f.x-r.x,f.y-r.y]]}),this.setState({multiElement:r,editingElement:this.state.draggingElement})):e.drag.hasOccurred&&!i&&(qn(this.state)&&Pr(r,!1)&&Sl(r,this.state,f,this),this.setState({suggestedBindings:[],startBoundElement:null}),a.locked?this.setState(b=>({draggingElement:null})):(Mo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:it(this.state,{type:"selection"}),selectedElementIds:ze({...b.selectedElementIds,[r.id]:!0},b),selectedLinearElement:new ue(r)}))));return}if(a.type!=="selection"&&r&&ti(r)){this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==r.id),appState:{draggingElement:null},storeAction:P.UPDATE});return}if(r){if(e.drag.hasOccurred){let f=Ye(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=Uc(b,d);x&&b&&(w0(b,x,this.scene.getNonDeletedElementsMap())||(re(b,{groupIds:[]}),Gc([b],this.scene.getNonDeletedElementsMap()),this.scene.informMutation()))}}else{let b=this.getTopLayerFrameAtSceneCoords(f),x=this.scene.getSelectedElements(this.state),E=this.scene.getElementsMapIncludingDeleted(),T=C=>{if(C.length>0){for(let w of C){let A=w.groupIds.indexOf(this.state.editingGroupId);re(w,{groupIds:w.groupIds.slice(0,A)},!1)}E.forEach(w=>{w.groupIds.length&&ft(E,w.groupIds[w.groupIds.length-1]).length<2&&re(w,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let C=x.filter(w=>w.frameId!==b.id&&Eu(w,E,this.state));this.state.editingGroupId&&T(C),E=Wc(E,C,b)}else if(!b&&this.state.editingGroupId){let C=x.filter(w=>w.frameId&&!Eu(w,E,this.state));T(C)}E=hr(E,this.state,this),this.scene.replaceAllElements(E)}}if(Ee(r)){let f=T0(this.scene.getElementsIncludingDeleted(),r,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(Wc(this.scene.getElementsMapIncludingDeleted(),f,r))}re(r,L0(r))}if(n&&this.store.shouldCaptureIncrement(),n&&ti(n)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==n.id),storeAction:P.UPDATE}),e.resize.isResizing){let f=hr(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(x=>Ee(x));for(let x of b)f=Vc(f,Qi(this.scene.getElementsIncludingDeleted(),x,this.state,d),x,this);this.scene.replaceAllElements(f)}let c=e.hit.element;this.state.selectedLinearElement?.elementId!==c?.id&&Re(c)&&this.scene.getSelectedElements(this.state).length===1&&this.setState({selectedLinearElement:new ue(c)});let m=this.lastPointerDownEvent,u=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(Ao(this.state)&&m&&u){if(this.eraserTrail.endPath(),un(m.clientX,m.clientY,u.clientX,u.clientY)===0){let b=Ye({clientX:u.clientX,clientY:u.clientY},this.state);this.getElementsAtPosition(b.x,b.y).forEach(E=>this.elementsPendingErasure.add(E.id))}this.eraseElements();return}else this.elementsPendingErasure.size&&this.restoreReadyToEraseElements();if(c&&!e.drag.hasOccurred&&!e.hit.wasAddedToSelection&&(!this.state.editingLinearElement||!e.boxSelection.hasOccurred)&&(o.shiftKey&&!this.state.editingLinearElement?this.state.selectedElementIds[c.id]?Tc(this.state,c)?this.setState(f=>{let b={...f.selectedElementIds};for(let x of c.groupIds.flatMap(E=>ft(this.scene.getNonDeletedElements(),E)))delete b[x.id];return{selectedGroupIds:{...f.selectedElementIds,...c.groupIds.map(x=>({[x]:!1})).reduce((x,E)=>({...x,...E}),{})},selectedElementIds:ze(b,f)}}):this.state.selectedLinearElement?.isDragging||this.setState(f=>{let b={...f.selectedElementIds};delete b[c.id];let x=we(this.scene.getNonDeletedElements(),{selectedElementIds:b});return{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:x.length===1&&Re(x[0])?new ue(x[0]):f.selectedLinearElement}}):c.frameId&&this.state.selectedElementIds[c.frameId]?this.setState(f=>{let b={...f.selectedElementIds,[c.id]:!0};return delete b[c.frameId],(this.scene.getElement(c.frameId)?.groupIds??[]).flatMap(x=>ft(this.scene.getNonDeletedElements(),x)).forEach(x=>{delete b[x.id]}),{...Nt({editingGroupId:f.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),f,this),showHyperlinkPopup:c.link||Ht(c)?"info":!1}}):this.setState(f=>({selectedElementIds:ze({...f.selectedElementIds,[c.id]:!0},f)})):this.setState(f=>({...Nt({editingGroupId:f.editingGroupId,selectedElementIds:{[c.id]:!0}},this.scene.getNonDeletedElements(),f,this),selectedLinearElement:Re(c)&&f.selectedLinearElement?.elementId!==c.id?new ue(c):f.selectedLinearElement}))),!e.drag.hasOccurred&&!this.state.isResizing&&(c&&l0({x:e.origin.x,y:e.origin.y,element:c,shape:this.getElementShape(c),threshold:this.getElementHitThreshold(),frameNameBound:Ee(c)?this.frameNameBoundsCache.get(c):null},d)||!c&&e.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:ze({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),Fe(this.interactiveCanvas,Oe.AUTO);return}if(!a.locked&&a.type!=="freedraw"&&r&&r.type!=="selection"&&this.setState(f=>({selectedElementIds:ze({...f.selectedElementIds,[r.id]:!0},f),showHyperlinkPopup:Ht(r)&&!r.link?"editor":f.showHyperlinkPopup})),(a.type!=="selection"||Be(this.scene.getNonDeletedElements(),this.state)||!kt(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),e.drag.hasOccurred||l||s){let f=this.scene.getSelectedElements(this.state).filter(Re);Cl(f,this,qn(this.state),this.state.selectedLinearElement?.selectedPointsIndices??[])}if(a.type==="laser"){this.laserTrails.endPath();return}!a.locked&&a.type!=="freedraw"?(Mo(this.interactiveCanvas),this.setState({draggingElement:null,suggestedBindings:[],activeTool:it(this.state,{type:"selection"})})):this.setState({draggingElement:null,suggestedBindings:[]}),c&&this.lastPointerUpEvent&&this.lastPointerDownEvent&&this.lastPointerUpEvent.timeStamp-this.lastPointerDownEvent.timeStamp<300&&Pe.pointers.size<=1&&zi(c)&&this.isIframeLikeElementCenter(c,this.lastPointerUpEvent,e.origin.x,e.origin.y)&&this.handleEmbeddableCenterClick(c)})}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)||xt(r)&&this.elementsPendingErasure.has(r.containerId)?(e=!0,he(r,{isDeleted:!0})):r);this.elementsPendingErasure=new Set,e&&(this.store.shouldCaptureIncrement(),this.scene.replaceAllElements(o))};initializeImage=async({imageFile:e,imageElement:o,showCursorImagePreview:r=!1})=>{if(!Dc(e))throw new Error(g("errors.unsupportedFileType"));let n=e.type;if(Fe(this.interactiveCanvas,"wait"),n===Dt.svg)try{e=pu(await Qb(await e.text()),e.name)}catch(d){throw console.warn(d),new Error(g("errors.svgImageInsertError"))}let i=await(this.props.generateIdForFile?.(e)||Gb(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 Ll(e,{maxWidthOrHeight:P1})}catch(d){console.error("Error trying to resizing image file on insertion",d)}if(e.size>Wp)throw new Error(g("errors.fileTooBig",{maxSize:`${Math.trunc(Wp/1024/1024)}MB`}))}if(r){let d=this.files[i]?.dataURL,c=d&&Vb(d);this.setImagePreviewCursor(c||e)}let l=this.files[i]?.dataURL||await Oc(e),s=re(o,{fileId:i},!1);return new Promise(async(d,c)=>{try{this.files={...this.files,[i]:{mimeType:n,id:i,dataURL:l,created:Date.now(),lastRetrieved:Date.now()}};let m=this.imageCache.get(i);m||(this.addNewImagesToImageCache(),await this.updateImageCache([s])),m?.image instanceof Promise&&await m.image,this.state.pendingImageElementId!==s.id&&this.state.draggingElement?.id!==s.id&&this.initializeImageDimensions(s,!0),d(s)}catch(m){console.error(m),c(new Error(g("errors.imageInsertError")))}finally{r||Mo(this.interactiveCanvas)}})};insertImageElement=async(e,o,r)=>{if(!this.isToolSupported("image")){this.setState({errorMessage:g("errors.imageToolNotSupported")});return}this.scene.insertElement(e);try{return await this.initializeImage({imageFile:o,imageElement:e,showCursorImagePreview:r})}catch(n){return re(e,{isDeleted:!0}),this.actionManager.executeAction(Oo),this.setState({errorMessage:n.message||g("errors.imageInsertError")}),null}};setImagePreviewCursor=async e=>{let r;try{r=await Ll(e,{maxWidthOrHeight:96})}catch(i){throw i.cause==="UNSUPPORTED"?new Error(g("errors.unsupportedFileType")):i}let n=await Oc(r);if(e.type===Dt.svg){let i=await Xb(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(Dt.svg)}this.state.pendingImageElementId&&Fe(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}=Ye({clientX:o,clientY:r},this.state),a=await Pc({description:"Image",extensions:Object.keys(x1)}),l=this.createImageElement({sceneX:n,sceneY:i,addToFrameUnderCursor:!1});e?(this.insertImageElement(l,a),this.initializeImageDimensions(l),this.setState({selectedElementIds:ze({[l.id]:!0},this.state)},()=>{this.actionManager.executeAction(Oo)})):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:it(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(Oo)})}};initializeImageDimensions=(e,o=!1)=>{let r=bl(e)&&this.imageCache.get(e.fileId)?.image;if(!r||r instanceof Promise){if(e.width<Gn/this.state.zoom.value&&e.height<Gn/this.state.zoom.value){let n=100/this.state.zoom.value;re(e,{x:e.x-n/2,y:e.y-n/2,width:n,height:n})}return}if(o||e.width<Gn/this.state.zoom.value&&e.height<Gn/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,d=e.y+e.height/2-a/2;re(e,{x:s,y:d,width:l,height:a})}};updateImageCache=async(e,o=this.files)=>{let{updatedFiles:r,erroredFiles:n}=await qb({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)&&Lo.delete(i);return n.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(i=>bl(i)&&n.has(i.fileId)?he(i,{status:"error"}):i)),{updatedFiles:r,erroredFiles:n}};addNewImagesToImageCache=async(e=Jb(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,s6.default)(()=>{this.addNewImagesToImageCache()},y1);updateBindingEnabledOnPointerMove=e=>{let o=sb(e);this.state.isBindingEnabled!==o&&this.setState({isBindingEnabled:o})};maybeSuggestBindingAtCursor=e=>{let o=Tl(e,this);this.setState({suggestedBindings:o!=null?[o]:[]})};maybeSuggestBindingsForLinearElementAtCoords=(e,o,r)=>{if(!o.length)return;let n=o.reduce((i,a)=>{let l=Tl(a,this);return l!=null&&!cb(e,r?.id,l)&&i.push(l),i},[]);this.setState({suggestedBindings:n})};clearSelection(e){this.setState(o=>({selectedElementIds:ze({},o),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:o.editingGroupId&&e!=null&&Yi(e,o.editingGroupId)?o.editingGroupId:null})),this.setState({selectedElementIds:ze({},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 Yb(e),{x:n,y:i}=Ye(e,this.state);try{if(Dc(o)&&this.isToolSupported("image")){if(o?.type===Dt.png||o?.type===Dt.svg)try{let s=await Nc(o,this.state,this.scene.getElementsIncludingDeleted(),r);this.syncActionResult({...s,appState:{...s.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:P.CAPTURE});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:ze({[l.id]:!0},this.state)});return}}catch(l){return this.setState({isLoading:!1,errorMessage:l.message})}let a=e.dataTransfer.getData(Dt.excalidrawlib);if(a&&typeof a=="string"){try{let l=Wb(a);this.addElementsFromPasteOrLibrary({elements:gm(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&&Zi(l,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(l)||Qn(l)?.type==="video")){let s=this.insertEmbeddableElement({sceneX:n,sceneY:i,link:zr(l)});s&&this.setState({selectedElementIds:{[s.id]:!0}})}}};loadFileToCanvas=async(e,o)=>{e=await Zb(e);try{let r=this.scene.getElementsIncludingDeleted(),n;try{n=await du(e,this.state,r,o)}catch(i){let a=i instanceof rb;if(a&&i.code==="IMAGE_NOT_CONTAINS_SCENE_DATA"&&!this.isToolSupported("image")){this.setState({isLoading:!1,errorMessage:g("errors.imageToolNotSupported")});return}let l=a?g("alerts.cannotRestoreFromImage"):g("alerts.couldNotLoadInvalidFile");this.setState({isLoading:!1,errorMessage:l})}if(!n)return;n.type===Dt.excalidraw?(pn(r.concat(n.data.elements)),this.store.updateSnapshot(pe(r),this.state),this.setState({isLoading:!0}),this.syncActionResult({...n.data,appState:{...n.data.appState||this.state,isLoading:!1},replaceFiles:!0,storeAction:P.CAPTURE})):n.type===Dt.excalidrawlib&&await this.library.updateLibrary({libraryItems:e,merge:!0,openLibraryMenu:!0}).catch(i=>{console.error(i),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!==an.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:o,y:r}=Ye(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:d,left:c}=s.getBoundingClientRect(),m=e.clientX-c,u=e.clientY-d;xe("contextMenu","openContextMenu",l),this.setState({...n&&!this.state.selectedElementIds[n.id]?{...this.state,...Nt({editingGroupId:this.state.editingGroupId,selectedElementIds:{[n.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:Re(n)?new ue(n):null}:this.state,showHyperlinkPopup:!1},()=>{this.setState({contextMenu:{top:u,left:m,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")ku(r,this.state.activeTool.type,e.origin.x,e.origin.y,n.x,n.y,Zn(e.origin.x,n.x),Zn(e.origin.y,n.y),Gi(o),fc(o));else{let[i,a]=eo(n.x,n.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),l=bl(r)&&this.imageCache.get(r.fileId)?.image,s=l&&!(l instanceof Promise)?l.width/l.height:null;this.maybeCacheReferenceSnapPoints(o,[r]);let{snapOffset:d,snapLines:c}=D5(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+=d.x,a+=d.y,this.setState({snapLines:c}),ku(r,this.state.activeTool.type,e.originInGrid.x,e.originInGrid.y,i,a,Zn(e.originInGrid.x,i),Zn(e.originInGrid.y,a),dn(r)?!Gi(o):Gi(o),fc(o),s,this.state.originSnapOffset),(this.state.activeTool.type===ut.frame||this.state.activeTool.type===ut.magicframe)&&this.setState({elementsToHighlight:Qi(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap())})}};maybeHandleResize=(e,o)=>{let r=this.scene.getSelectedElements(this.state),n=r.filter(c=>Ee(c)),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]=eo(a.x-e.resize.offset.x,a.y-e.resize.offset.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),d=new Map;if(n.forEach(c=>{bn(this.scene.getNonDeletedElements(),c.id).forEach(u=>{d.set(c.id+u.id,{x:u.x-c.x,y:u.y-c.y})})}),!this.state.selectedElementsAreBeingDragged){let[c,m]=eo(a.x,a.y,o[S.CTRL_OR_CMD]?null:this.state.gridSize),u={x:c-e.originInGrid.x,y:m-e.originInGrid.y},f=[...e.originalElements.values()];this.maybeCacheReferenceSnapPoints(o,r);let{snapOffset:b,snapLines:x}=R5(r,we(f,this.state),this.state,o,u,i);l+=b.x,s+=b.y,this.setState({snapLines:x})}if(D0(e.originalElements,i,r,this.scene.getElementsMapIncludingDeleted(),hc(o),fc(o),r.some(c=>dn(c))?!Gi(o):Gi(o),l,s,e.resize.center.x,e.resize.center.y)){let c=bc(r,this),m=new Set;return n.forEach(u=>{Qi(this.scene.getNonDeletedElements(),u,this.state,this.scene.getNonDeletedElementsMap()).forEach(f=>m.add(f))}),this.setState({elementsToHighlight:[...m],suggestedBindings:c}),!0}return!1};getContextMenuItems=e=>{let o=[];return o.push(am,im),e==="canvas"?this.state.viewModeEnabled?[...o,sm,Fa,Tg,Mn]:[fh,io,am,im,lm,io,cf,_y,io,sm,hh,Fa,Tg,Mn]:(o.push(lm),this.state.viewModeEnabled?[Oa,...o]:[nm,Oa,fh,S5,T5,io,...o,io,rh,nh,io,ah,gh,bh,Cy,lh,io,dh,io,nf,af,lf,sf,io,ph,uh,io,Gh,cs,df,Ch,io,Gl])};handleWheel=Qe(e=>{if(e.preventDefault(),zs)return;let{deltaX:o,deltaY:r}=e;if(e.metaKey||e.ctrlKey){let n=Math.sign(r),i=Kn*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(d=>({...Ur({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Hr(s)},d),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=Cc(n,r,this.scene.getNonDeletedElementsMap());if(l&&(i=l.x,a=l.y),Math.hypot(e-i,o-a)<u1){let{x:c,y:m}=Qt({sceneX:i,sceneY:a},r);return{viewportX:c,viewportY:m,elementCenterX:i,elementCenterY:a}}}}savePointer=(e,o,r)=>{if(!e||!o)return;let{x:n,y:i}=Ye({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:Pe.pointers})};resetShouldCacheIgnoreZoomDebounced=pl(()=>{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:d,offsetLeft:c}=this.state;if(r===l&&n===s&&i===c&&a===d){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=na.find(o=>o.code===this.props.langCode)||gr;await rd(e),this.setAppState({})}},_I=()=>{(y.MODE===Bp.TEST||y.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(pn(t))}}}))};_I();var p6=$g;h();var LI=()=>{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)})},u6=LI;h();var Yg=v(k(),1),f6=({children:t})=>{let{FooterCenterTunnel:e}=Ve(),o=_e();return(0,Yg.jsx)(e.In,{children:(0,Yg.jsx)("div",{className:$("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":o.zenModeEnabled}),children:t})})},PI=f6;f6.displayName="FooterCenter";h();h();h();var Vo=v(k(),1),RI=()=>(0,Vo.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,Vo.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"})}),DI=()=>(0,Vo.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,Vo.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,Vo.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,Vo.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,Vo.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)"})]}),h6=({style:t,size:e="small",withText:o})=>(0,Vo.jsxs)("div",{className:`ExcalidrawLogo is-${e}`,style:t,children:[(0,Vo.jsx)(RI,{}),o&&(0,Vo.jsx)(DI,{})]});var He=v(k(),1),Zg=({icon:t,shortcut:e,children:o})=>{let r=Me();return(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)("div",{className:"welcome-screen-menu-item__icon",children:t}),(0,He.jsx)("div",{className:"welcome-screen-menu-item__text",children:o}),e&&!r.editor.isMobile&&(0,He.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:e})]})};Zg.displayName="WelcomeScreenMenuItemContent";var Us=({onSelect:t,children:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("button",{...i,type:"button",className:`welcome-screen-menu-item ${n}`,onClick:t,children:(0,He.jsx)(Zg,{icon:o,shortcut:r,children:e})});Us.displayName="WelcomeScreenMenuItem";var g6=({children:t,href:e,icon:o,shortcut:r,className:n="",...i})=>(0,He.jsx)("a",{...i,className:`welcome-screen-menu-item ${n}`,href:e,target:"_blank",rel:"noreferrer",children:(0,He.jsx)(Zg,{icon:o,shortcut:r,children:t})});g6.displayName="WelcomeScreenMenuItemLink";var Ko=({children:t})=>{let{WelcomeScreenCenterTunnel:e}=Ve();return(0,He.jsx)(e.In,{children:(0,He.jsx)("div",{className:"welcome-screen-center",children:t||(0,He.jsxs)(He.Fragment,{children:[(0,He.jsx)(jg,{}),(0,He.jsx)(Xg,{children:g("welcomeScreen.defaults.center_heading")}),(0,He.jsxs)(qg,{children:[(0,He.jsx)(Qg,{}),(0,He.jsx)(Jg,{})]})]})})})};Ko.displayName="Center";var jg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor",children:t||(0,He.jsx)(h6,{withText:!0})});jg.displayName="Logo";var Xg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor virgil",children:t});Xg.displayName="Heading";var qg=({children:t})=>(0,He.jsx)("div",{className:"welcome-screen-menu",children:t});qg.displayName="Menu";var Jg=()=>{let t=It();return(0,He.jsx)(Us,{onSelect:()=>t.executeAction(gi),shortcut:"?",icon:sa,children:g("helpDialog.title")})};Jg.displayName="MenuItemHelp";var Qg=()=>{let t=_e(),e=It();return t.viewModeEnabled?null:(0,He.jsx)(Us,{onSelect:()=>e.executeAction(Da),shortcut:wt("loadScene"),icon:ca,children:g("buttons.load")})};Qg.displayName="MenuItemLoadScene";var b6=({onSelect:t})=>{let{t:e}=vt();return(0,He.jsx)(Us,{shortcut:null,onSelect:t,icon:fd,children:e("labels.liveCollaboration")})};b6.displayName="MenuItemLiveCollaborationTrigger";Ko.Logo=jg;Ko.Heading=Xg;Ko.Menu=qg;Ko.MenuItem=Us;Ko.MenuItemLink=g6;Ko.MenuItemHelp=Jg;Ko.MenuItemLoadScene=Qg;Ko.MenuItemLiveCollaborationTrigger=b6;h();var cr=v(k(),1),Ap=({children:t})=>{let{WelcomeScreenMenuHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[cx,(0,cr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.menuHint")})]})})};Ap.displayName="MenuHint";var Mp=({children:t})=>{let{WelcomeScreenToolbarHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,cr.jsx)("div",{className:"welcome-screen-decor-hint__label",children:t||g("welcomeScreen.defaults.toolbarHint")}),mx]})})};Mp.displayName="ToolbarHint";var _p=({children:t})=>{let{WelcomeScreenHelpHintTunnel:e}=Ve();return(0,cr.jsx)(e.In,{children:(0,cr.jsxs)("div",{className:"virgil welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,cr.jsx)("div",{children:t||g("welcomeScreen.defaults.helpHint")}),dx]})})};_p.displayName="HelpHint";var dr=v(k(),1),Lp=t=>(0,dr.jsx)(dr.Fragment,{children:t.children||(0,dr.jsxs)(dr.Fragment,{children:[(0,dr.jsx)(Ko,{}),(0,dr.jsx)(Ap,{}),(0,dr.jsx)(Mp,{}),(0,dr.jsx)(_p,{})]})});Lp.displayName="WelcomeScreen";Lp.Center=Ko;Lp.Hints={MenuHint:Ap,ToolbarHint:Mp,HelpHint:_p};var NI=Lp;h();var Pp=v(k(),1),x6=({isCollaborating:t,onSelect:e,...o})=>{let r=_e(),n=r.width<830;return(0,Pp.jsxs)(Cr,{...o,className:$("collab-button",{active:t}),type:"button",onSelect:e,style:{position:"relative",width:n?void 0:"auto"},title:g("labels.liveCollaboration"),children:[n?Dx:g("labels.share"),r.collaborators.size>0&&(0,Pp.jsx)("div",{className:"CollabButton-collaborators",children:r.collaborators.size})]})},OI=x6;x6.displayName="LiveCollaborationTrigger";h();var FI=(t,e,o)=>!!(e&&(e.id===t.editingElement?.id||e.id===t.resizingElement?.id||e.id===t.draggingElement?.id||e.version>o.version||e.version===o.version&&e.versionNonce<o.versionNonce)),BI=(t,e,o)=>{let r=pe(t),n=[],i=new Set;for(let l of e)if(!i.has(l.id)){let s=r.get(l.id),d=FI(o,s,l);s&&d?(n.push(s),i.add(s.id)):(n.push(l),i.add(l.id))}for(let l of t)i.has(l.id)||(n.push(l),i.add(l.id));let a=nb(n);return pn(a),a};h();var Ws=v(k(),1),v6=({children:t,icon:e})=>{let{TTDDialogTriggerTunnel:o}=Ve(),r=Le();return(0,Ws.jsx)(o.In,{children:(0,Ws.jsxs)(De.Item,{onSelect:()=>{xe("ai","dialog open","ttd"),r({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:e??Sv,children:[t??g("labels.textToDiagram"),(0,Ws.jsx)(De.Item.Badge,{children:"AI"})]})})};v6.displayName="TTDDialogTrigger";var Rp=v(k(),1);u6();var zI=t=>{let{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n=!1,onPointerUpdate:i,renderTopRightUI:a,langCode:l=gr.code,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:c,libraryReturnUrl:m,theme:u,name:f,renderCustomStats:b,onPaste:x,detectScroll:E=!0,handleKeyboardGlobally:T=!1,onLibraryChange:C,autoFocus:w=!1,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,children:U,validateEmbeddable:D,renderEmbeddable:G,aiEnabled:O}=t,B=t.UIOptions?.canvasActions,te={...t.UIOptions,canvasActions:{...Up.canvasActions,...B},tools:{image:t.UIOptions?.tools?.image??!0}};return B?.export&&(te.canvasActions.export.saveFileToDisk=B.export?.saveFileToDisk??Up.canvasActions.export.saveFileToDisk),te.canvasActions.toggleTheme===null&&typeof u>"u"&&(te.canvasActions.toggleTheme=!0),(0,Dp.useEffect)(()=>{(async()=>{await import("./excalidraw-assets/roundRect-2ACQK4DA.js")})();let ve=Ie=>{typeof Ie.scale=="number"&&Ie.scale!==1&&Ie.preventDefault()};return document.addEventListener("touchmove",ve,{passive:!1}),()=>{document.removeEventListener("touchmove",ve)}},[]),(0,Rp.jsx)(ed,{unstable_createStore:()=>Gt,scope:Ne,children:(0,Rp.jsx)(ox,{langCode:l,theme:u,children:(0,Rp.jsx)(p6,{onChange:e,initialData:o,excalidrawAPI:r,isCollaborating:n,onPointerUpdate:i,renderTopRightUI:a,langCode:l,viewModeEnabled:s,zenModeEnabled:d,gridModeEnabled:c,libraryReturnUrl:m,theme:u,name:f,renderCustomStats:b,UIOptions:te,onPaste:x,detectScroll:E,handleKeyboardGlobally:T,onLibraryChange:C,autoFocus:w,generateIdForFile:A,onLinkOpen:z,onPointerDown:I,onPointerUp:M,onScrollChange:_,validateEmbeddable:D,renderEmbeddable:G,aiEnabled:O!==!1,children:U})})})},$I=(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),d=Object.keys(a);return s.length!==d.length?!1:s.every(m=>m==="canvasActions"?Object.keys(r.canvasActions).every(f=>f==="export"&&r?.canvasActions?.export&&a?.canvasActions?.export?r.canvasActions.export.saveFileToDisk===a.canvasActions.export.saveFileToDisk:r?.canvasActions?.[f]===a?.canvasActions?.[f]):r[m]===a[m])&&kt(n,l)},HI=Dp.default.memo(zI,$I);HI.displayName="Excalidraw";export{Cr as Button,Fp as DEFAULT_LASER_COLOR,ap as DefaultSidebar,HI as Excalidraw,cl as FONT_FAMILY,PI as Footer,OI as LiveCollaborationTrigger,Dt as MIME_TYPES,lo as MainMenu,Co as ROUNDNESS,Qr as Sidebar,P as StoreAction,be as THEME,Sg as TTDDialog,v6 as TTDDialogTrigger,NI as WelcomeScreen,yu as bumpVersion,As as convertToExcalidrawElements,gr as defaultLang,L6 as elementPartiallyOverlapsWithOrContainsBBox,P6 as elementsOverlappingBBox,xu as exportToBlob,ei as exportToCanvas,M6 as exportToClipboard,Rl as exportToSvg,Ze as getCommonBounds,R6 as getFreeDrawSvgPath,hm as getLibraryItemsHash,ye as getNonDeletedElements,D6 as getSceneVersion,I6 as getVisibleSceneBounds,Iu as hashElementsVersion,Au as hashString,_6 as isElementInsideBBox,ti as isInvisiblySmallElement,Re as isLinearElement,na as languages,Nc as loadFromBlob,mu as loadLibraryFromBlob,du as loadSceneOrLibraryFromBlob,Hy as mergeLibraryItems,re as mutateElement,he as newElementWith,zr as normalizeLink,kh as parseLibraryTokensFromUrl,BI as reconcileElements,cu as restore,A6 as restoreAppState,su as restoreElements,_l as restoreLibraryItems,Qt as sceneCoordsToViewportCoords,uu as serializeAsJSON,hu as serializeLibraryAsJSON,Me as useDevice,TS as useHandleLibrary,vt as useI18n,Ye as viewportCoordsToSceneCoords,ry as zoomToFitBounds};
|
|
187
|
+
`),r)}}addTextFromPaste(t,r=!1){let{x:o,y:i}=Mt({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:ep,verticalAlign:Ix,locked:!1},s=ro({fontSize:a.fontSize,fontFamily:a.fontFamily}),c=Ii(a.fontFamily),[d,,u]=Tv(this.state),f=Math.max(Math.min((u-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 C=this.getTopLayerFrameAtSceneCoords({x:o,y:g}),O=Ai(I,s,c),z=O.width>f,L=z?bf(I,s,f):I;O=z?Ai(L,s,c):O;let F=o-O.width/2,D=g-O.height/2,V=xa({...a,x:F,y:D,text:L,originalText:I,lineHeight:c,autoResize:!z,frameId:C?C.id:null});y.push(V),g+=V.height+m}else h[k-1]?.trim()&&(g+=cI(a.fontSize,c)+m);return y},[]);b.length!==0&&(this.scene.insertElements(b),this.setState({selectedElementIds:ht(Object.fromEntries(b.map(y=>[y.id,!0])),this.state)}),!r&&b.length>1&&YM===!1&&!this.device.editor.isMobile&&(this.setToast({message:E("toast.pasteAsSingleElement",{shortcut:X("CtrlOrCmd+Shift+V")}),duration:5e3}),YM=!0),this.store.shouldCaptureIncrement())}setAppState=(t,r)=>{this.setState(t,r)};removePointer=t=>{Ka&&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,...Gt(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(Sk)};zoomCanvas=t=>{this.setState({...Mi({viewportX:this.state.width/2+this.state.offsetLeft,viewportY:this.state.height/2+this.state.offsetTop,nextZoom:Pi(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}=xm({targetElements:o,appState:this.state,fitToViewport:!!r?.fitToViewport,viewportZoomFactor:r?.viewportZoomFactor});i=c.zoom,a=c.scrollX,s=c.scrollY}else{let c=Al(o,this.state);a=c.scrollX,s=c.scrollY}if(r?.animate){let c=this.state.scrollX,d=this.state.scrollY,u=this.state.zoom.value,f=t2({fromValues:{scrollX:c,scrollY:d,zoom:u},toValues:{scrollX:a,scrollY:s,zoom:i.value},interpolateValue:(m,g,h,b)=>{if(b==="zoom")return m*Math.pow(g/m,ml(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,wd,window.location.pathname)}}catch(t){this.setState({errorMessage:t.message})}};addFiles=Ot(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=>{Md(o)&&r.has(o.fileId)&&(this.imageCache.delete(o.fileId),ha.delete(o))}),this.scene.triggerUpdate(),this.addNewImagesToImageCache()});updateScene=Ot(t=>{let r=ki(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(),Re(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=Ot(t=>{this.lastViewportPosition.x=t.clientX,this.lastViewportPosition.y=t.clientY});onKeyDown=Ot(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:mr("commandPalette")})}),t.preventDefault();return}if(t[R.CTRL_OR_CMD]&&t.key.toLowerCase()===R.V&&(Yh=t.shiftKey,clearTimeout(KM),KM=window.setTimeout(()=>{Yh=!1},100)),t[R.CTRL_OR_CMD]&&Yn(t.target)&&(t.code===Ne.MINUS||t.code===Ne.EQUAL)){t.preventDefault();return}if(Yn(t.target)&&t.key!==R.ESCAPE||Bs(t.key)&&QS(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}),Bs(t.key)){let a=this.scene.getSelectedElements({selectedElementIds:this.state.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),s=a.find(dt),c=s?s.startBinding||s.endBinding?0:Ju:this.state.gridSize&&(t.shiftKey?Ju:this.state.gridSize)||(t.shiftKey?AS:Ju),d=0,u=0;t.key===R.ARROW_LEFT?d=-c:t.key===R.ARROW_RIGHT?d=c:t.key===R.ARROW_UP?u=-c:t.key===R.ARROW_DOWN&&(u=c),a.forEach(f=>{ce(f,{x:f.x+d,y:f.y+u}),ya(f,this.scene.getNonDeletedElementsMap(),this.scene,{simultaneouslyUpdated:a})}),this.setState({suggestedBindings:Jp(a.filter(f=>f.id!==s?.id||c!==0),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(),dt(s)||this.setState({editingLinearElement:new Le(s)}));else if(he(s)||gI(s)){let c;he(s)||(c=s);let d=vf(s,this.state,this.scene.getNonDeletedElementsMap()),u=d.x,f=d.y;this.startTextEditing({sceneX:u,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=_C(t.key);a?(this.state.activeTool.type!==a&&ze("toolbar",a,`keyboard (${this.device.editor.isMobile?"mobile":"desktop"})`),a==="arrow"&&this.state.activeTool.type==="arrow"&&this.setState(s=>({currentItemArrowType:s.currentItemArrowType===Cr.sharp?Cr.round:s.currentItemArrowType===Cr.round?Cr.elbow:Cr.sharp})),this.setActiveTool({type:a}),t.stopPropagation()):t.key===R.Q&&(this.toggleLock("keyboard"),t.stopPropagation())}if(t.key===R.SPACE&&at.pointers.size===0&&(is=!0,ft(this.interactiveCanvas,pt.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&&(wa(this.state.activeTool.type)||a.some(s=>wa(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)||je(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)&&Hr.set(Zl,"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=Ot(t=>{!(t.target instanceof HTMLCanvasElement)&&t.ctrlKey&&t.preventDefault()});onKeyUp=Ot(t=>{t.key===R.SPACE&&(this.state.viewModeEnabled?ft(this.interactiveCanvas,pt.GRAB):this.state.activeTool.type==="selection"?Jo(this.interactiveCanvas):(An(this.interactiveCanvas,this.state),this.setState({selectedElementIds:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null})),is=!1),!t[R.CTRL_OR_CMD]&&!this.state.isBindingEnabled&&this.setState({isBindingEnabled:!0}),Bs(t.key)&&(wl(this.scene.getSelectedElements(this.state).filter(Qe),this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements(),this.scene,El(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=Gt(this.state,t);r.type==="hand"?ft(this.interactiveCanvas,pt.GRAB):is||An(this.interactiveCanvas,this.state),JS(document.activeElement)&&this.focusContainer(),p2(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:ht({},o),selectedGroupIds:ht({},o),editingGroupId:null,multiElement:null,...i}:{...o,activeTool:r,...i}})};setOpenDialog=t=>{this.setState({openDialog:t})};setCursor=t=>{ft(this.interactiveCanvas,t)};resetCursor=()=>{Jo(this.interactiveCanvas)};isTouchScreenMultiTouchGesture=()=>at.pointers.size>=2;getName=()=>this.state.name||this.props.name||`${E("labels.untitled")}-${Mx()}`;onGestureStart=Ot(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({selectedElementIds:ht({},this.state),activeEmbeddable:null}),at.initialScale=this.state.zoom.value});onGestureChange=Ot(t=>{if(t.preventDefault(),this.isTouchScreenMultiTouchGesture())return;let r=at.initialScale;r&&this.setState(o=>({...Mi({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Pi(r*t.scale)},o)}))});onGestureEnd=Ot(t=>{t.preventDefault(),this.isTouchScreenMultiTouchGesture()&&this.setState({previousSelectedElementIds:{},selectedElementIds:ht(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)?ke(c,{originalText:a,isDeleted:s??c.isDeleted,...yC(c,Il(c,o),o,a)}):c)])};UM({id:t.id,canvas:this.canvas,getViewportCoords:(a,s)=>{let{x:c,y:d}=oo({sceneX:a,sceneY:s},this.state);return[c-this.state.offsetLeft,d-this.state.offsetTop]},onChange:Ot(a=>{i(a,!1),Rv(t)&&ya(t,o,this.scene)}),onSubmit:Ot(({viaKeyboard:a,nextOriginalText:s})=>{let c=!s.trim();if(i(s,c),!c&&a){let d=t.containerId?t.containerId:t.id;this.setState(u=>({selectedElementIds:ht({...u.selectedElementIds,[d]:!0},u)}))}c&&ef(this.scene.getNonDeletedElements(),[t]),(!c||r)&&this.store.shouldCaptureIncrement(),this.setState({draggingElement:null,editingElement:null}),this.state.activeTool.locked&&An(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:ht({},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}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 $s({x:t,y:r,element:a,shape:yl(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 u=af(d,s);return u&&this.state.frameRendering.enabled&&this.state.frameRendering.clip?xv({x:t,y:r},u,s):!0}).filter(d=>fl(d)?(a.push(d),!1):!0).concat(a)}getElementHitThreshold(){return PS/this.state.zoom.value}hitElement(t,r,o,i=!0){if(i&&this.state.selectedElementIds[o.id]&&Ef([o],this.state)){let s=SC(o,this.scene.getNonDeletedElementsMap(),this.getElementHitThreshold());return wC([t,r],s)}return IC(t,r,AC(o,this.scene.getNonDeletedElementsMap()))?!0:$s({x:t,y:r,element:o,shape:yl(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 wi(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,u,f]=Eo(o[s],this.scene.getNonDeletedElementsMap());if(_t(o[s])&&$s({x:t,y:r,element:o[s],shape:yl(o[s],this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()})){a=o[s];break}else if(c<t&&t<u&&d<r&&r<f){a=o[s];break}}return wi(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&&(je(i,this.scene.getNonDeletedElementsMap())||(s=!0));let d=null,u=this.scene.getSelectedElements(this.state);u.length===1?he(u[0])?d=u[0]:i?d=je(u[0],this.scene.getNonDeletedElementsMap()):d=this.getTextElementAtPosition(t,r):d=this.getTextElementAtPosition(t,r);let f=d?.fontFamily||this.state.currentItemFontFamily,m=d?.lineHeight||Ii(f),g=this.state.currentItemFontSize;if(!d&&s&&i&&!_t(i)){let T=xf(ro({fontSize:g,fontFamily:f}),m),k=hf(g,m),I=Math.max(i.height,k),C=Math.max(i.width,T);ce(i,{height:I,width:C}),t=i.x+C/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||xa({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?Zo.MIDDLE:Ix,containerId:s?i?.id:void 0,groupIds:i?.groupIds??[],lineHeight:m,angle:i?.angle??0,frameId:h?h.id:null});if(!d&&s&&i&&ce(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)&&!dt(r[0])){this.store.shouldCaptureIncrement(),this.setState({editingLinearElement:new Le(r[0])});return}Jo(this.interactiveCanvas);let{x:o,y:i}=Mt(t,this.state);if(_n(this.state).length>0){let s=this.getElementAtPosition(o,i),c=s&&T2(s,this.state.selectedGroupIds);if(c){this.store.shouldCaptureIncrement(),this.setState(d=>({...d,...Rr({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(Cs(s)){this.setState({activeEmbeddable:{element:s,state:"active"}});return}let c=this.getTextBindableContainerAtPosition(o,i);if(c&&(yo(c)||!pl(c.backgroundColor)||$s({x:o,y:i,element:c,shape:yl(c,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold()}))){let d=vf(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&&tf(a,this.scene.getNonDeletedElementsMap(),this.state,[t.x,t.y],this.device.editor.isMobile)))};redirectToLink=(t,r)=>{let o=Sa(this.lastPointerDownEvent.clientX,this.lastPointerDownEvent.clientY,this.lastPointerUpEvent.clientX,this.lastPointerUpEvent.clientY);if(!this.hitLinkElement||r&&o>il||!r&&o!==0)return;let i=Mt(this.lastPointerDownEvent,this.state),a=this.scene.getNonDeletedElementsMap(),s=tf(this.hitLinkElement,a,this.state,[i.x,i.y],this.device.editor.isMobile),c=Mt(this.lastPointerUpEvent,this.state),d=tf(this.hitLinkElement,a,this.state,[c.x,c.y],this.device.editor.isMobile);if(s&&d){let u=this.hitLinkElement.link;if(u){u=Ti(u);let f;if(this.props.onLinkOpen&&(f=fp("excalidraw-link",t.nativeEvent),this.props.onLinkOpen({...this.hitLinkElement,link:u},f)),!f?.defaultPrevented){let m=vp(u)?"_self":"_blank",g=window.open(void 0,m);g&&(g.opener=null,g.location=u)}}}};getTopLayerFrameAtSceneCoords=t=>{let r=this.scene.getNonDeletedElementsMap(),o=this.scene.getNonDeletedFramesLikes().filter(i=>xv(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=ME(at.pointers),h=g.x-at.lastCenter.x,b=g.y-at.lastCenter.y;at.lastCenter=g;let y=LE(Array.from(at.pointers.values())),T=this.state.activeTool.type==="freedraw"&&this.state.penMode?1:y/at.initialDistance,k=T?Pi(r*T):this.state.zoom.value;this.setState(I=>{let C=Mi({viewportX:g.x,viewportY:g.y,nextZoom:k},I);this.translateCanvas({zoom:C.zoom,scrollX:C.scrollX+2*(h/k),scrollY:C.scrollY+2*(b/k),shouldCacheIgnoreZoom:!0})}),this.resetShouldCacheIgnoreZoomDebounced()}else at.lastCenter=at.initialDistance=at.initialScale=null;if(is||Qm||T0||Si(this.state))return;let i=NE(C0,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop).isOverEither;!this.state.draggingElement&&!this.state.multiElement&&(i?Jo(this.interactiveCanvas):An(this.interactiveCanvas,this.state));let a=Mt(t,this.state),{x:s,y:c}=a;if(!this.state.draggingElement&&vM(this.state.activeTool.type)){let{originOffset:g,snapLines:h}=xM(this.scene.getNonDeletedElements(),this.state,{x:s,y:c},t,this.scene.getNonDeletedElementsMap());this.setState(b=>{let y=hp(b.snapLines,h),T=b.originSnapOffset?hp(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=Le.handlePointerMove(t,s,c,this.state,this.scene);g&&g!==this.state.editingLinearElement&&(0,Vh.flushSync)(()=>{this.setState({editingLinearElement:g})}),g?.lastUncommittedPoint!=null?this.maybeSuggestBindingAtCursor(a):(0,Vh.flushSync)(()=>{this.setState({suggestedBindings:[]})})}if(f2(this.state.activeTool.type)){let{draggingElement:g}=this.state;Ei(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(An(this.interactiveCanvas,this.state),k===T)Sa(s-h,c-b,k[0],k[1])>=ju?ce(g,{points:[...y,[s-h,c-b]]}):ft(this.interactiveCanvas,pt.POINTER);else if(y.length>2&&T&&Sa(s-h,c-b,T[0],T[1])<ju)ft(this.interactiveCanvas,pt.POINTER),ce(g,{points:y.slice(0,-1)});else{let[I,C]=no(s,c,t[R.CTRL_OR_CMD]||dt(g)?null:this.state.gridSize),[O,z]=g?.lastCommittedPoint??[0,0],L=I-h-O,F=C-b-z;Zp(t)&&({width:L,height:F}=Iv(O+h,z+b,I,C)),Kd(y,this.state.zoom.value)&&ft(this.interactiveCanvas,pt.POINTER),dt(g)?Cl(g,this.scene,[...y.slice(0,-1),[O+L,z+F]],void 0,void 0,{isDragging:!0}):ce(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 u=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)&&!(f.length===1&&dt(f[0]))){let g=_v(u,this.state,s,c,this.state.zoom,t.pointerType,this.scene.getNonDeletedElementsMap(),this.device);if(g&&g.transformHandleType){ft(this.interactiveCanvas,kv(g));return}}}else if(f.length>1&&!i){let g=Av(lt(f),s,c,this.state.zoom,t.pointerType,this.device);if(g){ft(this.interactiveCanvas,kv({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]?(ft(this.interactiveCanvas,pt.POINTER),Yk(this.hitLinkElement,this.state,this.scene.getNonDeletedElementsMap())):(Vk(),m&&(m.link||$r(m))&&this.state.selectedElementIds[m.id]&&!this.state.contextMenu&&!this.state.showHyperlinkPopup?this.setState({showHyperlinkPopup:"info"}):this.state.activeTool.type==="text"?ft(this.interactiveCanvas,he(m)?pt.TEXT:pt.CROSSHAIR):this.state.viewModeEnabled?ft(this.interactiveCanvas,pt.GRAB):i?ft(this.interactiveCanvas,pt.AUTO):this.state.selectedLinearElement?this.handleHoverSelectedLinearElement(this.state.selectedLinearElement,s,c):t[R.CTRL_OR_CMD]?ft(this.interactiveCanvas,pt.AUTO):(m||this.isHittingCommonBoundingBoxOfSelectedElements(a,f))&&!m?.locked&&(m&&Cs(m)&&this.isIframeLikeElementCenter(m,t,s,c)?(ft(this.interactiveCanvas,pt.POINTER),this.setState({activeEmbeddable:{element:m,state:"hover"}})):(ft(this.interactiveCanvas,pt.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=Kt(s,b);for(let T of y)t.altKey?this.elementsPendingErasure.delete(T.id):this.elementsPendingErasure.add(T.id)}}}},d=Sa(r.lastCoords.x,r.lastCoords.y,o.x,o.y),u=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+u,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())Ir(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=>{eu=!0};handleHoverSelectedLinearElement(t,r,o){let i=this.scene.getNonDeletedElementsMap(),a=Le.getElement(t.elementId,i);if(a)if(this.state.selectedLinearElement){let s=-1,c=null;$s({x:r,y:o,element:a,shape:yl(a,this.scene.getNonDeletedElementsMap())})?(s=Le.getPointIndexUnderCursor(a,i,this.state.zoom,r,o),c=Le.getSegmentMidpointHitCoords(t,{x:r,y:o},this.state,this.scene.getNonDeletedElementsMap()),s>=0||c?ft(this.interactiveCanvas,pt.POINTER):this.hitElement(r,o,a)&&ft(this.interactiveCanvas,pt.MOVE)):this.hitElement(r,o,a)&&(!dt(a)||!(a.startBinding||a.endBinding))&&ft(this.interactiveCanvas,pt.MOVE),this.state.selectedLinearElement.hoverPointIndex!==s&&this.setState({selectedLinearElement:{...this.state.selectedLinearElement,hoverPointIndex:s}}),Le.arePointsEqual(this.state.selectedLinearElement.segmentMidPointHoveredCoords,c)||this.setState({selectedLinearElement:{...this.state.selectedLinearElement,segmentMidPointHoveredCoords:c}})}else ft(this.interactiveCanvas,pt.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 u=this.state.draggingElement;this.updateScene({...u.points.length<10?{elements:this.scene.getElementsIncludingDeleted().filter(f=>f.id!==u.id)}:{},appState:{draggingElement:null,editingElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:ht(Object.keys(this.state.selectedElementIds).filter(f=>f!==u.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(u=>({penMode:!0,penDetected:!0})),!this.device.isTouchScreen&&["pen","touch"].includes(t.pointerType)&&(this.device=Ss(this.device,{isTouchScreen:!0})),Qm||(this.lastPointerDownEvent=t,this.handleCanvasPanUsingWheelOrSpaceDrag(t)))return;if(this.setState({lastPointerDownWith:t.pointerType,cursorButton:"down"}),this.savePointer(t.clientX,t.clientY,"down"),t.button===sa.ERASER&&this.state.activeTool.type!==Zt.eraser){this.setState({activeTool:Gt(this.state,{type:Zt.eraser,lastActiveToolBeforeEraser:this.state.activeTool})},()=>{this.handleCanvasPointerDown(t);let u=()=>{f(),m?.(),jo(this.state)&&this.setState({activeTool:Gt(this.state,{...this.state.activeTool.lastActiveTool||{type:Zt.selection},lastActiveToolBeforeEraser:null})})},f=Wt(window,"pointerup",u,{once:!0}),m;requestAnimationFrame(()=>{m=this.missingPointerEventCleanupEmitter.once(u)})});return}if(t.button!==sa.MAIN&&t.button!==sa.TOUCH&&t.button!==sa.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"){ft(this.interactiveCanvas,pt.CROSSHAIR);let u=this.state.pendingImageElementId&&this.scene.getElement(this.state.pendingImageElementId);if(!u)return;this.setState({draggingElement:u,editingElement:u,pendingImageElementId:null,multiElement:null});let{x:f,y:m}=Mt(t,this.state),g=this.getTopLayerFrameAtSceneCoords({x:f,y:m});ce(u,{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"?An(this.interactiveCanvas,this.state):this.state.activeTool.type===Zt.frame||this.state.activeTool.type===Zt.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(u=>s(u||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=Mt({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(Cs(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&&Cs(this.hitLinkElement)&&!zC(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"&&(eu=!1,Ka?eu=!0:Ka=window.setTimeout(()=>{Ka=0,eu||this.handleCanvasContextMenu(t)},BS))};resetContextMenuTimer=()=>{clearTimeout(Ka),Ka=0,eu=!1};maybeCleanupAfterMissingPointerUp=t=>{tu?.(),this.missingPointerEventCleanupEmitter.trigger(t).clear()};handleCanvasPanUsingWheelOrSpaceDrag=t=>{if(!(at.pointers.size<=1&&(t.button===sa.WHEEL||t.button===sa.MAIN&&is||Si(this.state)||this.state.viewModeEnabled))||he(this.state.editingElement))return!1;Qm=!0,t.preventDefault();let r=!1,o=typeof window===void 0?!1:/Linux/.test(window.navigator.platform);ft(this.interactiveCanvas,pt.GRABBING);let{clientX:i,clientY:a}=t,s=Bh(d=>{let u=i-d.clientX,f=a-d.clientY;if(i=d.clientX,a=d.clientY,o&&!r&&(Math.abs(u)>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-u/this.state.zoom.value,scrollY:this.state.scrollY-f/this.state.zoom.value})}),c=Ot(tu=()=>{tu=null,Qm=!1,is||(this.state.viewModeEnabled?ft(this.interactiveCanvas,pt.GRAB):An(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=ME(at.pointers),at.initialScale=this.state.zoom.value,at.initialDistance=LE(Array.from(at.pointers.values())))}initialPointerDownState(t){let r=Mt(t,this.state),o=this.scene.getSelectedElements(this.state),[i,a,s,c]=lt(o),d=o.findIndex(dt)===0;return{origin:r,withCmdOrCtrl:t[R.CTRL_OR_CMD],originInGrid:ma(no(r.x,r.y,t[R.CTRL_OR_CMD]||d?null:this.state.gridSize)),scrollbars:NE(C0,t.clientX-this.state.offsetLeft,t.clientY-this.state.offsetTop),lastCoords:{...r},originalElements:this.scene.getNonDeletedElements().reduce((u,f)=>(u.set(f.id,Fs(f)),u),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;T0=!0,r.lastCoords.x=t.clientX,r.lastCoords.y=t.clientY;let o=Bh(a=>{a.target instanceof HTMLElement&&this.handlePointerMoveOverScrollbars(a,r)}),i=Ot(()=>{tu=null,T0=!1,An(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 tu=i,window.addEventListener("pointermove",o),window.addEventListener("pointerup",i),!0}clearSelectionIfNotUsingSelection=()=>{this.state.activeTool.type!=="selection"&&this.setState({selectedElementIds:ht({},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=_v(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=Av(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=ma(_I(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=AI(r.resize.handleType,a[0]));else{if(this.state.selectedLinearElement){let d=this.state.editingLinearElement||this.state.selectedLinearElement,u=Le.handlePointerDown(t,this.state,this.store,r.origin,d,this.scene);if(u.hitElement&&(r.hit.element=u.hitElement),u.linearElementEditor&&(this.setState({selectedLinearElement:u.linearElementEditor}),this.state.editingLinearElement&&this.setState({editingLinearElement:u.linearElementEditor})),u.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:ht({[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=>({...S2(d,s),previousSelectedElementIds:this.state.selectedElementIds})),!1;this.state.selectedElementIds[s.id]||(this.state.editingGroupId&&!ks(s,this.state.editingGroupId)&&this.setState({selectedElementIds:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),!c&&!r.hit.hasHitCommonBoundingBoxOfSelectedElements&&(this.setState(d=>{let u={...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))Ea(f,s.id).forEach(m=>{delete u[m.id]});else if(s.frameId)u[s.frameId]&&delete u[s.id];else{let m=s.groupIds,g=new Set(m.flatMap(h=>Kt(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 u[h.id],h.groupIds.flatMap(b=>Kt(this.scene.getNonDeletedElements(),b)).forEach(b=>{delete u[b.id]}))})}return{...Rr({editingGroupId:d.editingGroupId,selectedElementIds:u},this.scene.getNonDeletedElements(),d,this),showHyperlinkPopup:s.link||$r(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);yo(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:Gt(this.state,{type:"selection"})})};handleFreeDrawElementOnPointerDown=(t,r,o)=>{let[i,a]=no(o.origin.x,o.origin.y,null),s=this.getTopLayerFrameAtSceneCoords({x:i,y:a}),c=EC({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:ht(m,f)}});let d=c.simulatePressure?c.pressures:[...c.pressures,t.pressure];ce(c,{points:[[0,0]],pressures:d});let u=va(o.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap());this.scene.insertElement(c),this.setState({draggingElement:c,editingElement:c,startBoundElement:u,suggestedBindings:[]})};insertIframeElement=({sceneX:t,sceneY:r,width:o,height:i})=>{let[a,s]=no(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),c=vC({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]=no(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=Sl(o);if(!s)return;s.error instanceof URIError&&this.setToast({message:E("toast.unrecognizedLinkFormat"),closable:!0});let c=uv({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]=no(t,r,this.lastPointerDownEvent?.[R.CTRL_OR_CMD]?null:this.state.gridSize),s=o?this.getTopLayerFrameAtSceneCoords({x:i,y:a}):null;return Kp({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"&&Kd(i.points,this.state.zoom.value)){ce(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(Fo);return}if(dt(i)&&i.points.length>1){ce(i,{lastCommittedPoint:i.points[i.points.length-1]}),this.actionManager.executeAction(Fo);return}let{x:a,y:s,lastCommittedPoint:c}=i;if(i.points.length>1&&c&&Sa(o.origin.x-a,o.origin.y-s,c[0],c[1])<ju){this.actionManager.executeAction(Fo);return}this.setState(d=>({selectedElementIds:ht({...d.selectedElementIds,[i.id]:!0},d)})),ce(i,{lastCommittedPoint:i.points[i.points.length-1]}),ft(this.interactiveCanvas,pt.POINTER)}else{let[i,a]=no(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,[u,f]=r==="arrow"?[c,d]:[null,null],m=r==="arrow"?Wp({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.currentItemArrowType===Cr.round?{type:bo.PROPORTIONAL_RADIUS}:null,startArrowhead:u,endArrowhead:f,locked:!1,frameId:s?s.id:null,elbowed:this.state.currentItemArrowType===Cr.elbow}):Gp({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:bo.PROPORTIONAL_RADIUS}:null,locked:!1,frameId:s?s.id:null});this.setState(h=>{let b={...h.selectedElementIds};return delete b[m.id],{selectedElementIds:ht(b,h)}}),ce(m,{points:[...m.points,[0,0]]});let g=va(o.origin,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap(),dt(m));this.scene.insertElement(m),this.setState({draggingElement:m,editingElement:m,startBoundElement:g,suggestedBindings:[]})}};getCurrentItemRoundness(t){return this.state.currentItemRoundness==="round"?{type:Is(t)?bo.ADAPTIVE_RADIUS:bo.PROPORTIONAL_RADIUS}:null}createGenericElementOnPointerDown=(t,r)=>{let[o,i]=no(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=uv({type:"embeddable",...s}):c=ba({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]=no(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,...Cn},s=r===Zt.magicframe?$d(a):Up(a);this.scene.insertElement(s),this.setState({multiElement:null,draggingElement:s,editingElement:s})};maybeCacheReferenceSnapPoints(t,r,o=!1){Zi({event:t,appState:this.state,selectedElements:r})&&(o||!gn.getReferenceSnapPoints())&&gn.setReferenceSnapPoints(fM(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}maybeCacheVisibleGaps(t,r,o=!1){Zi({event:t,appState:this.state,selectedElements:r})&&(o||!gn.getVisibleGaps())&&gn.setVisibleGaps(pM(this.scene.getNonDeletedElements(),r,this.state,this.scene.getNonDeletedElementsMap()))}onKeyDownFromPointerDownHandler(t){return Ot(r=>{this.maybeHandleResize(t,r)||this.maybeDragNewGenericElement(t,r)})}onKeyUpFromPointerDownHandler(t){return Ot(r=>{r.key===R.ALT&&r.preventDefault(),!this.maybeHandleResize(t,r)&&this.maybeDragNewGenericElement(t,r)})}onPointerMoveFromPointerDownHandler(t){return Bh(r=>{if(t.drag.offset===null&&(t.drag.offset=ma(PI(this.scene.getSelectedElements(this.state),t.origin.x,t.origin.y))),!(r.target instanceof HTMLElement)||this.handlePointerMoveOverScrollbars(r,t))return;let i=Mt(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]=no(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")&&Sa(i.x,i.y,t.origin.x,t.origin.y)<il)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(Le.shouldAddMidpoint(this.state.selectedLinearElement,i,this.state,c)){let h=Le.addMidpoint(this.state.selectedLinearElement,i,this.state,!r[R.CTRL_OR_CMD],c);if(!h)return;(0,Vh.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(Le.handlePointDragging(r,this.state,i.x,i.y,(h,b)=>{this.maybeSuggestBindingsForLinearElementAtCoords(h,b)},m,this.scene)){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)),u=this.state.editingLinearElement&&r.shiftKey&&this.state.editingLinearElement.elementId===t.hit.element?.id;if((d||t.hit.hasHitCommonBoundingBoxOfSelectedElements)&&!u){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 C=Math.abs(b.x),O=Math.abs(b.y),z=T&&C<O,L=T&&C>O;z&&(b.x=0),L&&(b.y=0)}this.maybeCacheVisibleGaps(r,m),this.maybeCacheReferenceSnapPoints(r,m);let{snapOffset:k,snapLines:I}=gM(y,b,this.state,r,this.scene.getNonDeletedElementsMap());if(this.setState({snapLines:I}),!this.state.editingFrame&&kI(t,m,b,this.scene,k,r[R.CTRL_OR_CMD]?null:this.state.gridSize),(m.length!==1||!dt(m[0]))&&this.setState({suggestedBindings:Jp(m,this.scene.getNonDeletedElementsMap())}),r.altKey&&!t.hit.hasBeenDuplicated){t.hit.hasBeenDuplicated=!0;let C=[],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 me=Yp(this.state.editingGroupId,z,Q),K=t.originalElements.get(Q.id);ce(me,{x:K.x,y:K.y}),t.originalElements.set(me.id,me),C.push(me),O.push(Q),L.set(Q.id,me.id)}else C.push(Q);let U=[...C,...O];Do(U,Re(O)),pf(C,O,L),Qp(U,O,L,"duplicatesServeAsOld"),nf(U,O,L),this.scene.replaceAllElements(U),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];ce(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;Zp(r)&&m.length===2&&({width:g,height:h}=Iv(f.x,f.y,i.x,i.y)),m.length===1?ce(f,{points:[...m,[g,h]]}):m.length>1&&dt(f)?Cl(f,this.scene,[...m.slice(0,-1),[g,h]],[0,0],void 0,{isDragging:!0}):m.length===2&&ce(f,{points:[...m.slice(0,-1),[g,h]]}),Ei(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)Le.handleBoxSelection(r,this.state,this.setState.bind(this),this.scene.getNonDeletedElementsMap());else{let g=!0;!r.shiftKey&>(m,this.state)&&(t.withCmdOrCtrl&&t.hit.element?this.setState(b=>Rr({...b,selectedElementIds:{[t.hit.element.id]:!0}},this.scene.getNonDeletedElements(),b,this)):g=!1);let h=MI(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},{...Rr({editingGroupId:b.editingGroupId,selectedElementIds:y},this.scene.getNonDeletedElements(),b,this),selectedLinearElement:h.length===1&&Qe(h[0])?new Le(h[0]):null,showHyperlinkPopup:h.length===1&&(h[0].link||$r(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 Ot(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:hp(h.snapLines,[]),originSnapOffset:null})),gn.setReferenceSnapPoints(null),gn.setVisibleGaps(null),this.savePointer(r.clientX,r.clientY,"up"),this.setState({selectedElementsAreBeingDragged:!1});let u=this.scene.getNonDeletedElementsMap();if(this.state.editingLinearElement)if(!t.boxSelection.hasOccurred&&t.hit?.element?.id!==this.state.editingLinearElement.elementId)this.actionManager.executeAction(Fo);else{let h=Le.handlePointerUp(r,this.state.editingLinearElement,this.state,this.scene);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=Le.handlePointerUp(r,this.state.selectedLinearElement,this.state,this.scene),{startBindingElement:b,endBindingElement:y}=h,T=this.scene.getElement(h.elementId);Ei(T)&&jp(T,b,y,u,this.scene),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=Mt(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];ce(o,{points:[...b,[y,T]],pressures:k,lastCommittedPoint:[y,T]}),this.actionManager.executeAction(Fo);return}if(pa(o)){let h=o;try{this.initializeImageDimensions(h),this.setState({selectedElementIds:ht({[h.id]:!0},this.state)},()=>{this.actionManager.executeAction(Fo)})}catch(b){console.error(b),this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().filter(y=>y.id!==h.id)),this.actionManager.executeAction(Fo)}return}if(Qe(o)){o.points.length>1&&this.store.shouldCaptureIncrement();let h=Mt(r,this.state);!t.drag.hasOccurred&&o&&!a?(ce(o,{points:[...o.points,[h.x-o.x,h.y-o.y]]}),this.setState({multiElement:o,editingElement:this.state.draggingElement})):t.drag.hasOccurred&&!a&&(El(this.state)&&Ei(o,!1)&&Hd(o,this.state,h,this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements()),this.setState({suggestedBindings:[],startBoundElement:null}),s.locked?this.setState(b=>({draggingElement:null})):(Jo(this.interactiveCanvas),this.setState(b=>({draggingElement:null,activeTool:Gt(this.state,{type:"selection"}),selectedElementIds:ht({...b.selectedElementIds,[o.id]:!0},b),selectedLinearElement:new Le(o)}))));return}if(he(o)){let h=xI(ro({fontSize:o.fontSize,fontFamily:o.fontFamily}),o.lineHeight);o.width<h&&ce(o,{autoResize:!0}),this.resetCursor(),this.handleTextWysiwyg(o,{isExistingElement:!0})}if(s.type!=="selection"&&o&&_l(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=Mt(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=af(b,u);y&&b&&(jC(b,y,this.scene.getNonDeletedElementsMap())||(ce(b,{groupIds:[]}),sf([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 C of I){let O=C.groupIds.indexOf(this.state.editingGroupId);ce(C,{groupIds:C.groupIds.slice(0,O)},!1)}T.forEach(C=>{C.groupIds.length&&Kt(T,C.groupIds[C.groupIds.length-1]).length<2&&ce(C,{groupIds:[]},!1)}),this.setState({editingGroupId:null})}};if(b&&!this.state.selectedElementIds[b.id]){let I=y.filter(C=>C.frameId!==b.id&&vv(C,T,this.state));this.state.editingGroupId&&k(I),T=lf(T,I,b)}else if(!b&&this.state.editingGroupId){let I=y.filter(C=>C.frameId&&!vv(C,T,this.state));k(I)}T=Vn(T,this.state,this),this.scene.replaceAllElements(T)}}if(He(o)){let h=eI(this.scene.getElementsIncludingDeleted(),o,this.scene.getNonDeletedElementsMap());this.scene.replaceAllElements(lf(this.scene.getElementsMapIncludingDeleted(),h,o))}ce(o,EI(o))}if(i&&this.store.shouldCaptureIncrement(),i&&_l(i)&&this.updateScene({elements:this.scene.getElementsIncludingDeleted().filter(h=>h.id!==i.id),storeAction:W.UPDATE}),t.resize.isResizing){let h=Vn(this.scene.getElementsIncludingDeleted(),this.state,this),b=this.scene.getSelectedElements(this.state).filter(y=>He(y));for(let y of b)h=cf(h,Ks(this.scene.getElementsIncludingDeleted(),y,this.state,u),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 Le(f)});let m=this.lastPointerDownEvent,g=this.lastPointerUpEvent||this.lastPointerMoveEvent;if(jo(this.state)&&m&&g){if(this.eraserTrail.endPath(),Sa(m.clientX,m.clientY,g.clientX,g.clientY)===0){let b=Mt({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]?xp(this.state,f)?this.setState(h=>{let b={...h.selectedElementIds};for(let y of f.groupIds.flatMap(T=>Kt(this.scene.getNonDeletedElements(),T)))delete b[y.id];return{selectedGroupIds:{...h.selectedElementIds,...f.groupIds.map(y=>({[y]:!1})).reduce((y,T)=>({...y,...T}),{})},selectedElementIds:ht(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{...Rr({editingGroupId:h.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:y.length===1&&Qe(y[0])?new Le(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=>Kt(this.scene.getNonDeletedElements(),y)).forEach(y=>{delete b[y.id]}),{...Rr({editingGroupId:h.editingGroupId,selectedElementIds:b},this.scene.getNonDeletedElements(),h,this),showHyperlinkPopup:f.link||$r(f)?"info":!1}}):this.setState(h=>({selectedElementIds:ht({...h.selectedElementIds,[f.id]:!0},h)})):this.setState(h=>({...Rr({editingGroupId:h.editingGroupId,selectedElementIds:{[f.id]:!0}},this.scene.getNonDeletedElements(),h,this),selectedLinearElement:Qe(f)&&h.selectedLinearElement?.elementId!==f.id?new Le(f):h.selectedLinearElement}))),!t.drag.hasOccurred&&!this.state.isResizing&&(f&&CC({x:t.origin.x,y:t.origin.y,element:f,shape:yl(f,this.scene.getNonDeletedElementsMap()),threshold:this.getElementHitThreshold(),frameNameBound:He(f)?this.frameNameBoundsCache.get(f):null},u)||!f&&t.hit.hasHitCommonBoundingBoxOfSelectedElements)){this.state.editingLinearElement?this.setState({editingLinearElement:null}):this.setState({selectedElementIds:ht({},this.state),selectedGroupIds:{},editingGroupId:null,activeEmbeddable:null}),ft(this.interactiveCanvas,pt.AUTO);return}if(!s.locked&&s.type!=="freedraw"&&o&&o.type!=="selection"&&this.setState(h=>({selectedElementIds:ht({...h.selectedElementIds,[o.id]:!0},h),showHyperlinkPopup:$r(o)&&!o.link?"editor":h.showHyperlinkPopup})),(s.type!=="selection"||gt(this.scene.getNonDeletedElements(),this.state)||!br(this.state.previousSelectedElementIds,this.state.selectedElementIds))&&this.store.shouldCaptureIncrement(),t.drag.hasOccurred||c||d){let h=this.scene.getSelectedElements(this.state).filter(Qe);wl(h,this.scene.getNonDeletedElementsMap(),this.scene.getNonDeletedElements(),this.scene,El(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:Gt(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&&Cs(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)||Ir(o)&&this.elementsPendingErasure.has(o.containerId)?(t=!0,ke(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(ft(this.interactiveCanvas,"wait"),i===Lr.svg)try{t=mv(await FC(await t.text()),t.name)}catch(u){throw console.warn(u),new Error(E("errors.svgImageInsertError"))}let a=await(this.props.generateIdForFile?.(t)||fC(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 zd(t,{maxWidthOrHeight:VS})}catch(u){console.error("Error trying to resizing image file on insertion",u)}if(t.size>kx)throw new Error(E("errors.fileTooBig",{maxSize:`${Math.trunc(kx/1024/1024)}MB`}))}if(o){let u=this.files[a]?.dataURL,f=u&&gC(u);this.setImagePreviewCursor(f||t)}let c=this.files[a]?.dataURL||await Hp(t),d=ce(r,{fileId:a},!1);return new Promise(async(u,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),u(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 ce(t,{isDeleted:!0}),this.actionManager.executeAction(Fo),this.setState({errorMessage:i.message||E("errors.imageInsertError")}),null}};setImagePreviewCursor=async t=>{let o;try{o=await zd(t,{maxWidthOrHeight:96})}catch(a){throw a.cause==="UNSUPPORTED"?new Error(E("errors.unsupportedFileType")):a}let i=await Hp(o);if(t.type===Lr.svg){let a=await DC(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(Lr.svg)}this.state.pendingImageElementId&&ft(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}=Mt({clientX:r,clientY:o},this.state),s=await Op({description:"Image",extensions:Object.keys(RS)}),c=this.createImageElement({sceneX:i,sceneY:a,addToFrameUnderCursor:!1});t?(this.insertImageElement(c,s),this.initializeImageDimensions(c),this.setState({selectedElementIds:ht({[c.id]:!0},this.state)},()=>{this.actionManager.executeAction(Fo)})):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:Gt(this.state,{type:"selection"})},()=>{this.actionManager.executeAction(Fo)})}};initializeImageDimensions=(t,r=!1)=>{let o=Md(t)&&this.imageCache.get(t.fileId)?.image;if(!o||o instanceof Promise){if(t.width<il/this.state.zoom.value&&t.height<il/this.state.zoom.value){let i=100/this.state.zoom.value;ce(t,{x:t.x-i/2,y:t.y-i/2,width:i,height:i})}return}if(r||t.width<il/this.state.zoom.value&&t.height<il/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,u=t.y+t.height/2-s/2;ce(t,{x:d,y:u,width:c,height:s})}};updateImageCache=async(t,r=this.files)=>{let{updatedFiles:o,erroredFiles:i}=await NC({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)&&ha.delete(a);return i.size&&this.scene.replaceAllElements(this.scene.getElementsIncludingDeleted().map(a=>Md(a)&&i.has(a.fileId)?ke(a,{status:"error"}):a)),{updatedFiles:o,erroredFiles:i}};addNewImagesToImageCache=async(t=OC(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,VM.default)(()=>{this.addNewImagesToImageCache()},OS);updateBindingEnabledOnPointerMove=t=>{let r=kC(t);this.state.isBindingEnabled!==r&&this.setState({isBindingEnabled:r})};maybeSuggestBindingAtCursor=t=>{let r=va(t,this.scene.getNonDeletedElements(),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=va(s,this.scene.getNonDeletedElements(),this.scene.getNonDeletedElementsMap(),_t(t)&&dt(t));return c!=null&&!PC(t,o?.id,c)&&a.push(c),a},[]);this.setState({suggestedBindings:i})};clearSelection(t){this.setState(r=>({selectedElementIds:ht({},r),activeEmbeddable:null,selectedGroupIds:{},editingGroupId:r.editingGroupId&&t!=null&&ks(t,r.editingGroupId)?r.editingGroupId:null})),this.setState({selectedElementIds:ht({},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 bC(t),{x:i,y:a}=Mt(t,this.state);try{if(zp(r)&&this.isToolSupported("image")){if(r?.type===Lr.png||r?.type===Lr.svg)try{let d=await $p(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:ht({[c.id]:!0},this.state)});return}}catch(c){return this.setState({isLoading:!1,errorMessage:c.message})}let s=t.dataTransfer.getData(Lr.excalidrawlib);if(s&&typeof s=="string"){try{let c=pC(s);this.addElementsFromPasteOrLibrary({elements:Wg(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&&Us(c,this.props.validateEmbeddable)&&(/^(http|https):\/\/[^\s/$.?#].[^\s]*$/.test(c)||Sl(c)?.type==="video")){let d=this.insertEmbeddableElement({sceneX:i,sceneY:a,link:Ti(c)});d&&this.setState({selectedElementIds:{[d.id]:!0}})}}};loadFileToCanvas=async(t,r)=>{t=await xC(t);try{let o=this.scene.getElementsIncludingDeleted(),i;try{i=await cv(t,this.state,o,r)}catch(a){let s=a instanceof v2;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===Lr.excalidraw?(ki(o.concat(i.data.elements)),this.store.updateSnapshot(Re(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===Lr.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!==sa.SECONDARY)&&this.state.activeTool.type!=="selection")return;let{x:r,y:o}=Mt(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:u,left:f}=d.getBoundingClientRect(),m=t.clientX-f,g=t.clientY-u;ze("contextMenu","openContextMenu",c),this.setState({...i&&!this.state.selectedElementIds[i.id]?{...this.state,...Rr({editingGroupId:this.state.editingGroupId,selectedElementIds:{[i.id]:!0}},this.scene.getNonDeletedElements(),this.state,this),selectedLinearElement:Qe(i)?new Le(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")Pv(o,this.state.activeTool.type,t.origin.x,t.origin.y,i.x,i.y,ul(t.origin.x,i.x),ul(t.origin.y,i.y),zs(r),Xp(r),this.state.zoom.value);else{let[a,s]=no(i.x,i.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),c=Md(o)&&this.imageCache.get(o.fileId)?.image,d=c&&!(c instanceof Promise)?c.width/c.height:null;this.maybeCacheReferenceSnapPoints(r,[o]);let{snapOffset:u,snapLines:f}=bM(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+=u.x,s+=u.y,this.setState({snapLines:f}),Pv(o,this.state.activeTool.type,t.originInGrid.x,t.originInGrid.y,a,s,ul(t.originInGrid.x,a),ul(t.originInGrid.y,s),pa(o)?!zs(r):zs(r),Xp(r),this.state.zoom.value,d,this.state.originSnapOffset),(this.state.activeTool.type===Zt.frame||this.state.activeTool.type===Zt.magicframe)&&this.setState({elementsToHighlight:Ks(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]=no(s.x-t.resize.offset.x,s.y-t.resize.offset.y,r[R.CTRL_OR_CMD]?null:this.state.gridSize),u=new Map;if(i.forEach(f=>{Ea(this.scene.getNonDeletedElements(),f.id).forEach(g=>{u.set(f.id+g.id,{x:g.x-f.x,y:g.y-f.y})})}),!this.state.selectedElementsAreBeingDragged){let[f,m]=no(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}=hM(o,Oe(h,this.state),this.state,r,g,a);c+=b.x,d+=b.y,this.setState({snapLines:y})}if(TI(t.originalElements,a,o,this.scene.getElementsMapIncludingDeleted(),Zp(r),Xp(r),o.some(f=>pa(f))?!zs(r):zs(r),c,d,t.resize.center.x,t.resize.center.y,this.scene)){let f=Jp(o,this.scene.getNonDeletedElementsMap()),m=new Set;return i.forEach(g=>{Ks(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(Dg,Rg),t==="canvas"?this.state.viewModeEnabled?[...r,Og,Pc,u0,Mc]:[Jy,Vr,Dg,Rg,Ng,Vr,Wv,Zk,Vr,Og,Qy,Pc,u0,Mc]:(r.push(Ng),this.state.viewModeEnabled?[kc,...r]:[Vr,Lg,kc,Jy,lM,sM,Vr,...r,Vr,Hy,Uy,Vr,Wy,GM,eE,tE,Uk,Ky,Vr,Xy,Vr,$v,Hv,Uv,Gv,Vr,qy,jy,Vr,IE,Sm,Kv,lE,Vr,rm])};handleWheel=Ot(t=>{if(t.preventDefault(),Qm)return;let{deltaX:r,deltaY:o}=t;if(t.metaKey||t.ctrlKey){let i=Math.sign(o),a=sl*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(u=>({...Mi({viewportX:this.lastViewportPosition.x,viewportY:this.lastViewportPosition.y,nextZoom:Pi(d)},u),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=vf(i,o,this.scene.getNonDeletedElementsMap());if(c&&(a=c.x,s=c.y),Math.hypot(t-a,r-s)<kS){let{x:f,y:m}=oo({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}=Mt({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=dl(()=>{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:u,offsetLeft:f}=this.state;if(o===c&&i===d&&a===f&&s===u){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=Qs.find(r=>r.code===this.props.langCode)||Xn;await Lf(t),this.setAppState({})}},fH=()=>{(A.MODE===ys.TEST||A.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(ki(e))}},scene:{configurable:!0,get(){return this.app?.scene}}}))};fH();var jM=_0;v();var gH=()=>{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)})},JM=gH;v();var D0=w(M(),1),QM=({children:e})=>{let{FooterCenterTunnel:t}=At(),r=it();return(0,D0.jsx)(t.In,{children:(0,D0.jsx)("div",{className:q("footer-center zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":r.zenModeEnabled}),children:e})})},hH=QM;QM.displayName="FooterCenter";v();v();v();var bn=w(M(),1),bH=()=>(0,bn.jsx)("svg",{viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"ExcalidrawLogo-icon",children:(0,bn.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"})}),xH=()=>(0,bn.jsxs)("svg",{viewBox:"0 0 450 55",xmlns:"http://www.w3.org/2000/svg",fill:"none",className:"ExcalidrawLogo-text",children:[(0,bn.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,bn.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,bn.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,bn.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)"})]}),eL=({style:e,size:t="small",withText:r})=>(0,bn.jsxs)("div",{className:`ExcalidrawLogo is-${t}`,style:e,children:[(0,bn.jsx)(bH,{}),r&&(0,bn.jsx)(xH,{})]});var yt=w(M(),1),N0=({icon:e,shortcut:t,children:r})=>{let o=rt();return(0,yt.jsxs)(yt.Fragment,{children:[(0,yt.jsx)("div",{className:"welcome-screen-menu-item__icon",children:e}),(0,yt.jsx)("div",{className:"welcome-screen-menu-item__text",children:r}),t&&!o.editor.isMobile&&(0,yt.jsx)("div",{className:"welcome-screen-menu-item__shortcut",children:t})]})};N0.displayName="WelcomeScreenMenuItemContent";var ru=({onSelect:e,children:t,icon:r,shortcut:o,className:i="",...a})=>(0,yt.jsx)("button",{...a,type:"button",className:`welcome-screen-menu-item ${i}`,onClick:e,children:(0,yt.jsx)(N0,{icon:r,shortcut:o,children:t})});ru.displayName="WelcomeScreenMenuItem";var tL=({children:e,href:t,icon:r,shortcut:o,className:i="",...a})=>(0,yt.jsx)("a",{...a,className:`welcome-screen-menu-item ${i}`,href:t,target:"_blank",rel:"noreferrer",children:(0,yt.jsx)(N0,{icon:r,shortcut:o,children:e})});tL.displayName="WelcomeScreenMenuItemLink";var xn=({children:e})=>{let{WelcomeScreenCenterTunnel:t}=At();return(0,yt.jsx)(t.In,{children:(0,yt.jsx)("div",{className:"welcome-screen-center",children:e||(0,yt.jsxs)(yt.Fragment,{children:[(0,yt.jsx)(O0,{}),(0,yt.jsx)(F0,{children:E("welcomeScreen.defaults.center_heading")}),(0,yt.jsxs)(B0,{children:[(0,yt.jsx)($0,{}),(0,yt.jsx)(z0,{})]})]})})})};xn.displayName="Center";var O0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-center__logo excalifont welcome-screen-decor",children:e||(0,yt.jsx)(eL,{withText:!0})});O0.displayName="Logo";var F0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-center__heading welcome-screen-decor excalifont",children:e});F0.displayName="Heading";var B0=({children:e})=>(0,yt.jsx)("div",{className:"welcome-screen-menu",children:e});B0.displayName="Menu";var z0=()=>{let e=yr();return(0,yt.jsx)(ru,{onSelect:()=>e.executeAction($l),shortcut:"?",icon:Ms,children:E("helpDialog.title")})};z0.displayName="MenuItemHelp";var $0=()=>{let e=it(),t=yr();return e.viewModeEnabled?null:(0,yt.jsx)(ru,{onSelect:()=>t.executeAction(_c),shortcut:mr("loadScene"),icon:Ls,children:E("buttons.load")})};$0.displayName="MenuItemLoadScene";var rL=({onSelect:e})=>{let{t}=lr();return(0,yt.jsx)(ru,{shortcut:null,onSelect:e,icon:Ip,children:t("labels.liveCollaboration")})};rL.displayName="MenuItemLiveCollaborationTrigger";xn.Logo=O0;xn.Heading=F0;xn.Menu=B0;xn.MenuItem=ru;xn.MenuItemLink=tL;xn.MenuItemHelp=z0;xn.MenuItemLoadScene=$0;xn.MenuItemLiveCollaborationTrigger=rL;v();var Hn=w(M(),1),Xh=({children:e})=>{let{WelcomeScreenMenuHintTunnel:t}=At();return(0,Hn.jsx)(t.In,{children:(0,Hn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu",children:[D2,(0,Hn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.menuHint")})]})})};Xh.displayName="MenuHint";var Zh=({children:e})=>{let{WelcomeScreenToolbarHintTunnel:t}=At();return(0,Hn.jsx)(t.In,{children:(0,Hn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar",children:[(0,Hn.jsx)("div",{className:"welcome-screen-decor-hint__label",children:e||E("welcomeScreen.defaults.toolbarHint")}),O2]})})};Zh.displayName="ToolbarHint";var qh=({children:e})=>{let{WelcomeScreenHelpHintTunnel:t}=At();return(0,Hn.jsx)(t.In,{children:(0,Hn.jsxs)("div",{className:"excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help",children:[(0,Hn.jsx)("div",{children:e||E("welcomeScreen.defaults.helpHint")}),N2]})})};qh.displayName="HelpHint";var Un=w(M(),1),jh=e=>(0,Un.jsx)(Un.Fragment,{children:e.children||(0,Un.jsxs)(Un.Fragment,{children:[(0,Un.jsx)(xn,{}),(0,Un.jsx)(Xh,{}),(0,Un.jsx)(Zh,{}),(0,Un.jsx)(qh,{})]})});jh.displayName="WelcomeScreen";jh.Center=xn;jh.Hints={MenuHint:Xh,ToolbarHint:Zh,HelpHint:qh};var vH=jh;v();var Jh=w(M(),1),oL=({isCollaborating:e,onSelect:t,...r})=>{let o=it(),i=o.width<830;return(0,Jh.jsxs)(ti,{...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?j2:E("labels.share"),o.collaborators.size>0&&(0,Jh.jsx)("div",{className:"CollabButton-collaborators",children:o.collaborators.size})]})},yH=oL;oL.displayName="LiveCollaborationTrigger";v();var EH=(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)),wH=(e,t,r)=>{let o=Re(e),i=[],a=new Set;for(let c of t)if(!a.has(c.id)){let d=o.get(c.id),u=EH(r,d,c);d&&u?(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=yI(i);if(A.DEV||A.MODE===ys.TEST||window?.DEBUG_FRACTIONAL_INDICES){let c=ki(s.map(d=>({...d})));vI(c,{shouldThrow:A.DEV||A.MODE===ys.TEST,includeBoundTextValidation:!0,reconciliationContext:{localElements:e,remoteElements:t}})}return ki(s),s};v();var ou=w(M(),1),nL=({children:e,icon:t})=>{let{TTDDialogTriggerTunnel:r}=At(),o=ot();return(0,ou.jsx)(r.In,{children:(0,ou.jsxs)(st.Item,{onSelect:()=>{ze("ai","dialog open","ttd"),o({openDialog:{name:"ttd",tab:"text-to-diagram"}})},icon:t??HT,children:[e??E("labels.textToDiagram"),(0,ou.jsx)(st.Item.Badge,{children:"AI"})]})})};nL.displayName="TTDDialogTrigger";var Qh=w(M(),1);JM();var SH=e=>{let{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i=!1,onPointerUpdate:a,renderTopRightUI:s,langCode:c=Xn.code,viewModeEnabled:d,zenModeEnabled:u,gridModeEnabled:f,libraryReturnUrl:m,theme:g,name:h,renderCustomStats:b,onPaste:y,detectScroll:T=!0,handleKeyboardGlobally:k=!1,onLibraryChange:I,autoFocus:C=!1,generateIdForFile:O,onLinkOpen:z,onPointerDown:L,onPointerUp:F,onScrollChange:D,children:V,validateEmbeddable:U,renderEmbeddable:Q,aiEnabled:me,showDeprecatedFonts:K}=e,se=e.UIOptions?.canvasActions,be={...e.UIOptions,canvasActions:{...Ax.canvasActions,...se},tools:{image:e.UIOptions?.tools?.image??!0}};return se?.export&&(be.canvasActions.export.saveFileToDisk=se.export?.saveFileToDisk??Ax.canvasActions.export.saveFileToDisk),be.canvasActions.toggleTheme===null&&typeof g>"u"&&(be.canvasActions.toggleTheme=!0),(0,eb.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,Qh.jsx)(kf,{unstable_createStore:()=>Hr,scope:mt,children:(0,Qh.jsx)(UI,{langCode:c,theme:g,children:(0,Qh.jsx)(jM,{onChange:t,initialData:r,excalidrawAPI:o,isCollaborating:i,onPointerUpdate:a,renderTopRightUI:s,langCode:c,viewModeEnabled:d,zenModeEnabled:u,gridModeEnabled:f,libraryReturnUrl:m,theme:g,name:h,renderCustomStats:b,UIOptions:be,onPaste:y,detectScroll:T,handleKeyboardGlobally:k,onLibraryChange:I,autoFocus:C,generateIdForFile:O,onLinkOpen:z,onPointerDown:L,onPointerUp:F,onScrollChange:D,validateEmbeddable:U,renderEmbeddable:Q,aiEnabled:me!==!1,showDeprecatedFonts:K,children:V})})})},TH=(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),u=Object.keys(s);return d.length!==u.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])&&br(i,c)},CH=eb.default.memo(SH,TH);CH.displayName="Excalidraw";export{ti as Button,Cx as DEFAULT_LASER_COLOR,_h as DefaultSidebar,CH as Excalidraw,ll as FONT_FAMILY,hH as Footer,yH as LiveCollaborationTrigger,Lr as MIME_TYPES,uo as MainMenu,bo as ROUNDNESS,Gi as Sidebar,W as StoreAction,Be as THEME,a0 as TTDDialog,nL as TTDDialogTrigger,vH as WelcomeScreen,Cv as bumpVersion,Kc as convertToExcalidrawElements,Xn as defaultLang,H7 as elementPartiallyOverlapsWithOrContainsBBox,U7 as elementsOverlappingBBox,bv as exportToBlob,Tl as exportToCanvas,z7 as exportToClipboard,Gd as exportToSvg,lt as getCommonBounds,G7 as getFreeDrawSvgPath,Gg as getLibraryItemsHash,We as getNonDeletedElements,W7 as getSceneVersion,Tv as getVisibleSceneBounds,Mv as hashElementsVersion,Lv as hashString,$7 as isElementInsideBBox,_l as isInvisiblySmallElement,Qe as isLinearElement,Qs as languages,$p as loadFromBlob,dv as loadLibraryFromBlob,cv as loadSceneOrLibraryFromBlob,n5 as mergeLibraryItems,ce as mutateElement,ke as newElementWith,Ti as normalizeLink,dE as parseLibraryTokensFromUrl,wH as reconcileElements,sv as restore,B7 as restoreAppState,lv as restoreElements,Bd as restoreLibraryItems,oo as sceneCoordsToViewportCoords,nv as serializeAsJSON,av as serializeLibraryAsJSON,rt as useDevice,MF as useHandleLibrary,lr as useI18n,Mt as viewportCoordsToSceneCoords,wk 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
|
*/
|