@wildmio/excalidraw 0.18.0-custom-1 → 0.18.0-custom.1

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.
Files changed (62) hide show
  1. package/dist/dev/{chunk-55IZTNXR.js → chunk-7GZZDIRR.js} +8 -6
  2. package/dist/dev/chunk-7GZZDIRR.js.map +7 -0
  3. package/dist/dev/{chunk-OCFTI2BU.js → chunk-OWOU4ALI.js} +3 -2
  4. package/dist/dev/chunk-OWOU4ALI.js.map +7 -0
  5. package/dist/dev/{chunk-4BGRJMQS.js → chunk-QRXFLJOF.js} +2 -2
  6. package/dist/dev/data/{image-HFX5FVZR.js → image-OLRMF3PX.js} +3 -3
  7. package/dist/dev/index.css +3 -0
  8. package/dist/dev/index.css.map +2 -2
  9. package/dist/dev/index.js +704 -606
  10. package/dist/dev/index.js.map +4 -4
  11. package/dist/dev/locales/{en-MLZIHOCR.js → en-GWPE5KV7.js} +2 -2
  12. package/dist/dev/subset-shared.chunk.js +1 -1
  13. package/dist/dev/subset-worker.chunk.js +1 -1
  14. package/dist/prod/{chunk-QNG5NH6R.js → chunk-2KZFBCBN.js} +1 -1
  15. package/dist/prod/chunk-FXQN3L2S.js +4 -0
  16. package/dist/prod/{chunk-RKNJTMKK.js → chunk-OVC72EOF.js} +1 -1
  17. package/dist/prod/data/image-ZQDS3QL7.js +1 -0
  18. package/dist/prod/index.css +1 -1
  19. package/dist/prod/index.js +18 -18
  20. package/dist/prod/locales/{en-BARVNJLJ.js → en-7B5CVO5K.js} +1 -1
  21. package/dist/prod/subset-shared.chunk.js +1 -1
  22. package/dist/prod/subset-worker.chunk.js +1 -1
  23. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +3 -0
  24. package/dist/types/excalidraw/actions/actionBoundText.d.ts +2 -0
  25. package/dist/types/excalidraw/actions/actionCanvas.d.ts +12 -0
  26. package/dist/types/excalidraw/actions/actionClipboard.d.ts +2 -0
  27. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +1 -0
  28. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +3 -0
  29. package/dist/types/excalidraw/actions/actionElementLink.d.ts +1 -0
  30. package/dist/types/excalidraw/actions/actionElementLock.d.ts +2 -0
  31. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +1 -0
  32. package/dist/types/excalidraw/actions/actionExport.d.ts +4 -0
  33. package/dist/types/excalidraw/actions/actionFrame.d.ts +4 -0
  34. package/dist/types/excalidraw/actions/actionGroup.d.ts +2 -0
  35. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +1 -0
  36. package/dist/types/excalidraw/actions/actionLink.d.ts +1 -0
  37. package/dist/types/excalidraw/actions/actionMenu.d.ts +1 -0
  38. package/dist/types/excalidraw/actions/actionProperties.d.ts +2 -0
  39. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +1 -0
  40. package/dist/types/excalidraw/actions/actionStyles.d.ts +1 -0
  41. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +1 -0
  42. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +1 -0
  43. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +1 -0
  44. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +1 -0
  45. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +1 -0
  46. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +1 -0
  47. package/dist/types/excalidraw/appState.d.ts +1 -0
  48. package/dist/types/excalidraw/components/App.d.ts +1 -0
  49. package/dist/types/excalidraw/components/EyeButton.d.ts +8 -0
  50. package/dist/types/excalidraw/components/MobileMenu.d.ts +2 -1
  51. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  52. package/dist/types/excalidraw/components/icons.d.ts +2 -0
  53. package/dist/types/excalidraw/scene/Renderer.d.ts +1 -0
  54. package/dist/types/excalidraw/types.d.ts +9 -0
  55. package/package.json +1 -1
  56. package/dist/dev/chunk-55IZTNXR.js.map +0 -7
  57. package/dist/dev/chunk-OCFTI2BU.js.map +0 -7
  58. package/dist/prod/chunk-2KZTCREM.js +0 -4
  59. package/dist/prod/data/image-CRABYHXF.js +0 -1
  60. /package/dist/dev/{chunk-4BGRJMQS.js.map → chunk-QRXFLJOF.js.map} +0 -0
  61. /package/dist/dev/data/{image-HFX5FVZR.js.map → image-OLRMF3PX.js.map} +0 -0
  62. /package/dist/dev/locales/{en-MLZIHOCR.js.map → en-GWPE5KV7.js.map} +0 -0
package/dist/dev/index.js CHANGED
@@ -66,13 +66,13 @@ import {
66
66
  serializeAsJSON,
67
67
  serializeLibraryAsJSON,
68
68
  strokeRectWithRotation_simple
69
- } from "./chunk-55IZTNXR.js";
69
+ } from "./chunk-7GZZDIRR.js";
70
70
  import {
71
71
  define_import_meta_env_default
72
- } from "./chunk-4BGRJMQS.js";
72
+ } from "./chunk-QRXFLJOF.js";
73
73
  import {
74
74
  en_default
75
- } from "./chunk-OCFTI2BU.js";
75
+ } from "./chunk-OWOU4ALI.js";
76
76
  import {
77
77
  percentages_default
78
78
  } from "./chunk-WCM2OLWY.js";
@@ -382,7 +382,7 @@ var globImport_locales_json = __glob({
382
382
  "./locales/de-CH.json": () => import("./locales/de-CH-OAWPDQFJ.js"),
383
383
  "./locales/de-DE.json": () => import("./locales/de-DE-HE4SJIAA.js"),
384
384
  "./locales/el-GR.json": () => import("./locales/el-GR-QXASZLPE.js"),
385
- "./locales/en.json": () => import("./locales/en-MLZIHOCR.js"),
385
+ "./locales/en.json": () => import("./locales/en-GWPE5KV7.js"),
386
386
  "./locales/es-ES.json": () => import("./locales/es-ES-EDA76ZAF.js"),
387
387
  "./locales/eu-ES.json": () => import("./locales/eu-ES-TF2DGTZU.js"),
388
388
  "./locales/fa-IR.json": () => import("./locales/fa-IR-ITKFQ7QV.js"),
@@ -1063,6 +1063,34 @@ var HelpIconThin = createIcon(
1063
1063
  ] }),
1064
1064
  tablerIconProps
1065
1065
  );
1066
+ var EyeOnIcon = createIcon(
1067
+ /* @__PURE__ */ jsx(
1068
+ "svg",
1069
+ {
1070
+ xmlns: "http://www.w3.org/2000/svg",
1071
+ height: "24px",
1072
+ viewBox: "0 -960 960 960",
1073
+ width: "24px",
1074
+ fill: "currentColor",
1075
+ children: /* @__PURE__ */ jsx("path", { d: "M480-320q75 0 127.5-52.5T660-500q0-75-52.5-127.5T480-680q-75 0-127.5 52.5T300-500q0 75 52.5 127.5T480-320Zm0-72q-45 0-76.5-31.5T372-500q0-45 31.5-76.5T480-608q45 0 76.5 31.5T588-500q0 45-31.5 76.5T480-392Zm0 192q-146 0-266-81.5T40-500q54-137 174-218.5T480-800q146 0 266 81.5T920-500q-54 137-174 218.5T480-200Zm0-300Zm0 220q113 0 207.5-59.5T832-500q-50-101-144.5-160.5T480-720q-113 0-207.5 59.5T128-500q50 101 144.5 160.5T480-280Z" })
1076
+ }
1077
+ ),
1078
+ tablerIconProps
1079
+ );
1080
+ var EyeOffIcon = createIcon(
1081
+ /* @__PURE__ */ jsx(
1082
+ "svg",
1083
+ {
1084
+ xmlns: "http://www.w3.org/2000/svg",
1085
+ height: "24px",
1086
+ viewBox: "0 -960 960 960",
1087
+ width: "24px",
1088
+ fill: "currentColor",
1089
+ children: /* @__PURE__ */ jsx("path", { d: "m644-428-58-58q9-47-27-88t-93-32l-58-58q17-8 34.5-12t37.5-4q75 0 127.5 52.5T660-500q0 20-4 37.5T644-428Zm128 126-58-56q38-29 67.5-63.5T832-500q-50-101-143.5-160.5T480-720q-29 0-57 4t-55 12l-62-62q41-17 84-25.5t90-8.5q151 0 269 83.5T920-500q-23 59-60.5 109.5T772-302Zm20 246L624-222q-35 11-70.5 16.5T480-200q-151 0-269-83.5T40-500q21-53 53-98.5t73-81.5L56-792l56-56 736 736-56 56ZM222-624q-29 26-53 57t-41 67q50 101 143.5 160.5T480-280q20 0 39-2.5t39-5.5l-36-38q-11 3-21 4.5t-21 1.5q-75 0-127.5-52.5T300-500q0-11 1.5-21t4.5-21l-84-82Zm319 93Zm-151 75Z" })
1090
+ }
1091
+ ),
1092
+ tablerIconProps
1093
+ );
1066
1094
  var ExternalLinkIcon = createIcon(
1067
1095
  /* @__PURE__ */ jsx(
1068
1096
  "path",
@@ -9568,7 +9596,7 @@ var exportCanvas = async (type, elements, appState, files, {
9568
9596
  let blob = canvasToBlob(tempCanvas);
9569
9597
  if (appState.exportEmbedScene) {
9570
9598
  blob = blob.then(
9571
- (blob2) => import("./data/image-HFX5FVZR.js").then(
9599
+ (blob2) => import("./data/image-OLRMF3PX.js").then(
9572
9600
  ({ encodePngMetadata: encodePngMetadata2 }) => encodePngMetadata2({
9573
9601
  blob: blob2,
9574
9602
  metadata: serializeAsJSON(elements, appState, files, "local")
@@ -11952,7 +11980,7 @@ var Hyperlink = ({
11952
11980
  setAppState({ showHyperlinkPopup: "editor" });
11953
11981
  };
11954
11982
  const { x, y } = getCoordsForPopover(element, appState, elementsMap);
11955
- if (appState.contextMenu || appState.selectedElementsAreBeingDragged || appState.resizingElement || appState.isRotating || appState.openMenu || appState.viewModeEnabled) {
11983
+ if (appState.contextMenu || appState.selectedElementsAreBeingDragged || appState.resizingElement || appState.isRotating || appState.openMenu || appState.viewModeEnabled || appState.hideAnnotations) {
11956
11984
  return null;
11957
11985
  }
11958
11986
  return /* @__PURE__ */ jsxs26(
@@ -16725,7 +16753,7 @@ var SelectedShapeActions = ({
16725
16753
  (appState.activeTool.type === "freedraw" || targetElements.some((element) => element.type === "freedraw")) && renderAction("changeStrokeShape"),
16726
16754
  (hasStrokeStyle(appState.activeTool.type) || targetElements.some((element) => hasStrokeStyle(element.type))) && /* @__PURE__ */ jsxs40(Fragment10, { children: [
16727
16755
  renderAction("changeStrokeStyle"),
16728
- renderAction("changeSloppiness")
16756
+ app.props.UIOptions.shapeControl?.sloppinessChangeEnabled && renderAction("changeSloppiness")
16729
16757
  ] }),
16730
16758
  (canChangeRoundness(appState.activeTool.type) || targetElements.some((element) => canChangeRoundness(element.type))) && /* @__PURE__ */ jsx71(Fragment10, { children: renderAction("changeRoundness") }),
16731
16759
  (toolIsArrow(appState.activeTool.type) || targetElements.some((element) => toolIsArrow(element.type))) && /* @__PURE__ */ jsx71(Fragment10, { children: renderAction("changeArrowType") }),
@@ -16798,7 +16826,8 @@ var CombinedShapeProperties = ({
16798
16826
  renderAction,
16799
16827
  setAppState,
16800
16828
  targetElements,
16801
- container
16829
+ container,
16830
+ app
16802
16831
  }) => {
16803
16832
  const showFillIcons = hasBackground(appState.activeTool.type) && !isTransparent3(appState.currentItemBackgroundColor) || targetElements.some(
16804
16833
  (element) => hasBackground(element.type) && !isTransparent3(element.backgroundColor)
@@ -16855,7 +16884,7 @@ var CombinedShapeProperties = ({
16855
16884
  (element) => hasStrokeStyle(element.type)
16856
16885
  )) && /* @__PURE__ */ jsxs40(Fragment10, { children: [
16857
16886
  renderAction("changeStrokeStyle"),
16858
- renderAction("changeSloppiness")
16887
+ app.props.UIOptions.shapeControl?.sloppinessChangeEnabled && renderAction("changeSloppiness")
16859
16888
  ] }),
16860
16889
  (canChangeRoundness(appState.activeTool.type) || targetElements.some(
16861
16890
  (element) => canChangeRoundness(element.type)
@@ -17182,7 +17211,8 @@ var CompactShapeActions = ({
17182
17211
  renderAction,
17183
17212
  setAppState,
17184
17213
  targetElements,
17185
- container
17214
+ container,
17215
+ app
17186
17216
  }
17187
17217
  ),
17188
17218
  /* @__PURE__ */ jsx71(
@@ -17281,7 +17311,8 @@ var MobileShapeActions = ({
17281
17311
  renderAction,
17282
17312
  setAppState,
17283
17313
  targetElements,
17284
- container
17314
+ container,
17315
+ app
17285
17316
  }
17286
17317
  ),
17287
17318
  /* @__PURE__ */ jsx71(
@@ -18155,7 +18186,7 @@ function CommandPaletteInner({
18155
18186
  };
18156
18187
  const isCommandAvailable = useStableCallback(
18157
18188
  (command) => {
18158
- if (command.viewMode === false && uiAppState.viewModeEnabled) {
18189
+ if (command.viewMode === false && (uiAppState.viewModeEnabled || uiAppState.hideAnnotations)) {
18159
18190
  return false;
18160
18191
  }
18161
18192
  return typeof command.predicate === "function" ? command.predicate(
@@ -21786,11 +21817,13 @@ var Renderer = class {
21786
21817
  editingTextElement,
21787
21818
  newElementId,
21788
21819
  // cache-invalidation nonce
21789
- sceneNonce: _sceneNonce
21820
+ sceneNonce: _sceneNonce,
21821
+ hideAnnotations
21790
21822
  }) => {
21791
21823
  const elements = this.scene.getNonDeletedElements();
21824
+ const filteredElements = hideAnnotations ? elements.filter((el) => el.customData?.alwaysVisible === true) : elements;
21792
21825
  const elementsMap = getRenderableElements({
21793
- elements,
21826
+ elements: filteredElements,
21794
21827
  editingTextElement,
21795
21828
  newElementId
21796
21829
  });
@@ -21839,7 +21872,7 @@ var ElementCanvasButtons = ({
21839
21872
  elementsMap
21840
21873
  }) => {
21841
21874
  const appState = useExcalidrawAppState();
21842
- if (appState.contextMenu || appState.newElement || appState.resizingElement || appState.isRotating || appState.openMenu || appState.viewModeEnabled) {
21875
+ if (appState.contextMenu || appState.newElement || appState.resizingElement || appState.isRotating || appState.openMenu || appState.viewModeEnabled || appState.hideAnnotations) {
21843
21876
  return null;
21844
21877
  }
21845
21878
  const { x, y } = getContainerCoords2(element, appState, elementsMap);
@@ -24065,8 +24098,25 @@ var PenModeButton = (props) => {
24065
24098
  );
24066
24099
  };
24067
24100
 
24101
+ // components/EyeButton.tsx
24102
+ import { jsx as jsx89 } from "react/jsx-runtime";
24103
+ var EyeButton = (props) => {
24104
+ const title = t("labels.toggleAnnotations");
24105
+ return /* @__PURE__ */ jsx89(
24106
+ "button",
24107
+ {
24108
+ className: "help-icon",
24109
+ onClick: props.onClick,
24110
+ type: "button",
24111
+ title,
24112
+ "aria-label": title,
24113
+ children: props.status === "off" ? EyeOffIcon : EyeOnIcon
24114
+ }
24115
+ );
24116
+ };
24117
+
24068
24118
  // components/MobileMenu.tsx
24069
- import { Fragment as Fragment12, jsx as jsx89, jsxs as jsxs50 } from "react/jsx-runtime";
24119
+ import { Fragment as Fragment12, jsx as jsx90, jsxs as jsxs50 } from "react/jsx-runtime";
24070
24120
  var MobileMenu = ({
24071
24121
  appState,
24072
24122
  elements,
@@ -24079,7 +24129,8 @@ var MobileMenu = ({
24079
24129
  renderWelcomeScreen,
24080
24130
  UIOptions,
24081
24131
  app,
24082
- onPenModeToggle
24132
+ onPenModeToggle,
24133
+ onEyeButtonClick
24083
24134
  }) => {
24084
24135
  const {
24085
24136
  WelcomeScreenCenterTunnel,
@@ -24091,8 +24142,15 @@ var MobileMenu = ({
24091
24142
  return null;
24092
24143
  }
24093
24144
  const topRightUI = /* @__PURE__ */ jsxs50("div", { className: "excalidraw-ui-top-right", children: [
24094
- renderTopRightUI?.(true, appState) ?? (!appState.viewModeEnabled && /* @__PURE__ */ jsxs50(Fragment12, { children: [
24095
- /* @__PURE__ */ jsx89(
24145
+ UIOptions.hideAnnotationsControlEnabled && /* @__PURE__ */ jsx90(
24146
+ EyeButton,
24147
+ {
24148
+ status: appState.hideAnnotations ? "off" : "on",
24149
+ onClick: onEyeButtonClick
24150
+ }
24151
+ ),
24152
+ renderTopRightUI?.(true, appState) ?? (!(appState.viewModeEnabled || appState.hideAnnotations) && /* @__PURE__ */ jsxs50(Fragment12, { children: [
24153
+ /* @__PURE__ */ jsx90(
24096
24154
  PenModeButton,
24097
24155
  {
24098
24156
  checked: appState.penMode,
@@ -24102,13 +24160,13 @@ var MobileMenu = ({
24102
24160
  penDetected: appState.penDetected
24103
24161
  }
24104
24162
  ),
24105
- /* @__PURE__ */ jsx89(DefaultSidebarTriggerTunnel.Out, {})
24163
+ /* @__PURE__ */ jsx90(DefaultSidebarTriggerTunnel.Out, {})
24106
24164
  ] })),
24107
- appState.viewModeEnabled && /* @__PURE__ */ jsx89(ExitViewModeButton, { actionManager })
24165
+ appState.viewModeEnabled && /* @__PURE__ */ jsx90(ExitViewModeButton, { actionManager })
24108
24166
  ] });
24109
24167
  const topLeftUI = /* @__PURE__ */ jsxs50("div", { className: "excalidraw-ui-top-left", children: [
24110
24168
  renderTopLeftUI?.(true, appState),
24111
- /* @__PURE__ */ jsx89(MainMenuTunnel.Out, {})
24169
+ app.props.UIOptions.topLeftMenuEnabled && /* @__PURE__ */ jsx90(MainMenuTunnel.Out, {})
24112
24170
  ] });
24113
24171
  return /* @__PURE__ */ jsxs50(
24114
24172
  "div",
@@ -24127,7 +24185,7 @@ var MobileMenu = ({
24127
24185
  );
24128
24186
  };
24129
24187
  const renderToolbar = () => {
24130
- return /* @__PURE__ */ jsx89(
24188
+ return /* @__PURE__ */ jsx90(
24131
24189
  MobileToolBar,
24132
24190
  {
24133
24191
  app,
@@ -24138,8 +24196,8 @@ var MobileMenu = ({
24138
24196
  };
24139
24197
  return /* @__PURE__ */ jsxs50(Fragment12, { children: [
24140
24198
  renderSidebars(),
24141
- /* @__PURE__ */ jsx89("div", { className: "App-welcome-screen", children: renderWelcomeScreen && /* @__PURE__ */ jsx89(WelcomeScreenCenterTunnel.Out, {}) }),
24142
- !appState.viewModeEnabled && /* @__PURE__ */ jsxs50(
24199
+ /* @__PURE__ */ jsx90("div", { className: "App-welcome-screen", children: renderWelcomeScreen && /* @__PURE__ */ jsx90(WelcomeScreenCenterTunnel.Out, {}) }),
24200
+ !(appState.viewModeEnabled || appState.hideAnnotations) && /* @__PURE__ */ jsxs50(
24143
24201
  "div",
24144
24202
  {
24145
24203
  className: "App-bottom-bar",
@@ -24147,7 +24205,7 @@ var MobileMenu = ({
24147
24205
  marginBottom: SCROLLBAR_WIDTH + SCROLLBAR_MARGIN
24148
24206
  },
24149
24207
  children: [
24150
- /* @__PURE__ */ jsx89(
24208
+ /* @__PURE__ */ jsx90(
24151
24209
  MobileShapeActions,
24152
24210
  {
24153
24211
  appState,
@@ -24158,8 +24216,8 @@ var MobileMenu = ({
24158
24216
  }
24159
24217
  ),
24160
24218
  /* @__PURE__ */ jsxs50(Island, { className: "App-toolbar", children: [
24161
- !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && renderToolbar(),
24162
- appState.scrolledOutside && !appState.openMenu && !appState.openSidebar && /* @__PURE__ */ jsx89(
24219
+ !(appState.viewModeEnabled || appState.hideAnnotations) && appState.openDialog?.name !== "elementLinkSelector" && renderToolbar(),
24220
+ appState.scrolledOutside && !appState.openMenu && !appState.openSidebar && /* @__PURE__ */ jsx90(
24163
24221
  "button",
24164
24222
  {
24165
24223
  type: "button",
@@ -24176,14 +24234,14 @@ var MobileMenu = ({
24176
24234
  ]
24177
24235
  }
24178
24236
  ),
24179
- /* @__PURE__ */ jsx89(FixedSideContainer, { side: "top", className: "App-top-bar", children: renderAppTopBar() })
24237
+ /* @__PURE__ */ jsx90(FixedSideContainer, { side: "top", className: "App-top-bar", children: renderAppTopBar() })
24180
24238
  ] });
24181
24239
  };
24182
24240
 
24183
24241
  // components/PasteChartDialog.tsx
24184
24242
  import oc2 from "open-color";
24185
24243
  import React32, { useLayoutEffect as useLayoutEffect5, useRef as useRef26, useState as useState28 } from "react";
24186
- import { jsx as jsx90, jsxs as jsxs51 } from "react/jsx-runtime";
24244
+ import { jsx as jsx91, jsxs as jsxs51 } from "react/jsx-runtime";
24187
24245
  var ChartPreviewBtn = (props) => {
24188
24246
  const previewRef = useRef26(null);
24189
24247
  const [chartElements, setChartElements] = useState28(
@@ -24226,7 +24284,7 @@ var ChartPreviewBtn = (props) => {
24226
24284
  previewNode.replaceChildren();
24227
24285
  };
24228
24286
  }, [props.spreadsheet, props.chartType, props.selected]);
24229
- return /* @__PURE__ */ jsx90(
24287
+ return /* @__PURE__ */ jsx91(
24230
24288
  "button",
24231
24289
  {
24232
24290
  type: "button",
@@ -24236,7 +24294,7 @@ var ChartPreviewBtn = (props) => {
24236
24294
  props.onClick(props.chartType, chartElements);
24237
24295
  }
24238
24296
  },
24239
- children: /* @__PURE__ */ jsx90("div", { ref: previewRef })
24297
+ children: /* @__PURE__ */ jsx91("div", { ref: previewRef })
24240
24298
  }
24241
24299
  );
24242
24300
  };
@@ -24262,7 +24320,7 @@ var PasteChartDialog = ({
24262
24320
  }
24263
24321
  });
24264
24322
  };
24265
- return /* @__PURE__ */ jsx90(
24323
+ return /* @__PURE__ */ jsx91(
24266
24324
  Dialog,
24267
24325
  {
24268
24326
  size: "small",
@@ -24271,7 +24329,7 @@ var PasteChartDialog = ({
24271
24329
  className: "PasteChartDialog",
24272
24330
  autofocus: false,
24273
24331
  children: /* @__PURE__ */ jsxs51("div", { className: "container", children: [
24274
- /* @__PURE__ */ jsx90(
24332
+ /* @__PURE__ */ jsx91(
24275
24333
  ChartPreviewBtn,
24276
24334
  {
24277
24335
  chartType: "bar",
@@ -24280,7 +24338,7 @@ var PasteChartDialog = ({
24280
24338
  onClick: handleChartClick
24281
24339
  }
24282
24340
  ),
24283
- /* @__PURE__ */ jsx90(
24341
+ /* @__PURE__ */ jsx91(
24284
24342
  ChartPreviewBtn,
24285
24343
  {
24286
24344
  chartType: "line",
@@ -24295,11 +24353,11 @@ var PasteChartDialog = ({
24295
24353
  };
24296
24354
 
24297
24355
  // components/Section.tsx
24298
- import { Fragment as Fragment13, jsx as jsx91, jsxs as jsxs52 } from "react/jsx-runtime";
24356
+ import { Fragment as Fragment13, jsx as jsx92, jsxs as jsxs52 } from "react/jsx-runtime";
24299
24357
  var Section = ({ heading, children, ...props }) => {
24300
24358
  const { id } = useExcalidrawContainer();
24301
- const header = /* @__PURE__ */ jsx91("h2", { className: "visually-hidden", id: `${id}-${heading}-title`, children: t(`headings.${heading}`) });
24302
- return /* @__PURE__ */ jsx91("section", { ...props, "aria-labelledby": `${id}-${heading}-title`, children: typeof children === "function" ? children(header) : /* @__PURE__ */ jsxs52(Fragment13, { children: [
24359
+ const header = /* @__PURE__ */ jsx92("h2", { className: "visually-hidden", id: `${id}-${heading}-title`, children: t(`headings.${heading}`) });
24360
+ return /* @__PURE__ */ jsx92("section", { ...props, "aria-labelledby": `${id}-${heading}-title`, children: typeof children === "function" ? children(header) : /* @__PURE__ */ jsxs52(Fragment13, { children: [
24303
24361
  header,
24304
24362
  children
24305
24363
  ] }) });
@@ -24310,14 +24368,14 @@ import * as Popover9 from "@radix-ui/react-popover";
24310
24368
  import clsx44 from "clsx";
24311
24369
  import React33, { useLayoutEffect as useLayoutEffect6 } from "react";
24312
24370
  import { supportsResizeObserver, isShallowEqual as isShallowEqual5 } from "@excalidraw/common";
24313
- import { Fragment as Fragment14, jsx as jsx92, jsxs as jsxs53 } from "react/jsx-runtime";
24371
+ import { Fragment as Fragment14, jsx as jsx93, jsxs as jsxs53 } from "react/jsx-runtime";
24314
24372
  var DEFAULT_MAX_AVATARS = 4;
24315
24373
  var SHOW_COLLABORATORS_FILTER_AT = 8;
24316
24374
  var ConditionalTooltipWrapper = ({
24317
24375
  shouldWrap,
24318
24376
  children,
24319
24377
  username
24320
- }) => shouldWrap ? /* @__PURE__ */ jsx92(Tooltip, { label: username || "Unknown user", children }) : /* @__PURE__ */ jsx92(Fragment14, { children });
24378
+ }) => shouldWrap ? /* @__PURE__ */ jsx93(Tooltip, { label: username || "Unknown user", children }) : /* @__PURE__ */ jsx93(Fragment14, { children });
24321
24379
  var renderCollaborator = ({
24322
24380
  actionManager,
24323
24381
  collaborator,
@@ -24333,7 +24391,7 @@ var renderCollaborator = ({
24333
24391
  isBeingFollowed
24334
24392
  };
24335
24393
  const avatarJSX = actionManager.renderAction("goToCollaborator", data);
24336
- return /* @__PURE__ */ jsx92(
24394
+ return /* @__PURE__ */ jsx93(
24337
24395
  ConditionalTooltipWrapper,
24338
24396
  {
24339
24397
  username: collaborator.username,
@@ -24408,7 +24466,7 @@ var UserList = React33.memo(
24408
24466
  isBeingFollowed: collaborator.socketId === userToFollow
24409
24467
  })
24410
24468
  );
24411
- return mobile ? /* @__PURE__ */ jsx92("div", { className: clsx44("UserList UserList_mobile", className), children: uniqueCollaboratorsArray.map(
24469
+ return mobile ? /* @__PURE__ */ jsx93("div", { className: clsx44("UserList UserList_mobile", className), children: uniqueCollaboratorsArray.map(
24412
24470
  (collaborator) => renderCollaborator({
24413
24471
  actionManager,
24414
24472
  collaborator,
@@ -24416,7 +24474,7 @@ var UserList = React33.memo(
24416
24474
  shouldWrapWithTooltip: true,
24417
24475
  isBeingFollowed: collaborator.socketId === userToFollow
24418
24476
  })
24419
- ) }) : /* @__PURE__ */ jsx92("div", { className: "UserList__wrapper", ref: userListWrapper, children: /* @__PURE__ */ jsxs53(
24477
+ ) }) : /* @__PURE__ */ jsx93("div", { className: "UserList__wrapper", ref: userListWrapper, children: /* @__PURE__ */ jsxs53(
24420
24478
  "div",
24421
24479
  {
24422
24480
  className: clsx44("UserList", className),
@@ -24428,7 +24486,7 @@ var UserList = React33.memo(
24428
24486
  "+",
24429
24487
  uniqueCollaboratorsArray.length - maxAvatars + 1
24430
24488
  ] }),
24431
- /* @__PURE__ */ jsx92(
24489
+ /* @__PURE__ */ jsx93(
24432
24490
  Popover9.Content,
24433
24491
  {
24434
24492
  style: {
@@ -24439,20 +24497,20 @@ var UserList = React33.memo(
24439
24497
  align: "end",
24440
24498
  sideOffset: 10,
24441
24499
  children: /* @__PURE__ */ jsxs53(Island, { padding: 2, children: [
24442
- uniqueCollaboratorsArray.length >= SHOW_COLLABORATORS_FILTER_AT && /* @__PURE__ */ jsx92(
24500
+ uniqueCollaboratorsArray.length >= SHOW_COLLABORATORS_FILTER_AT && /* @__PURE__ */ jsx93(
24443
24501
  QuickSearch,
24444
24502
  {
24445
24503
  placeholder: t("quickSearch.placeholder"),
24446
24504
  onChange: setSearchTerm
24447
24505
  }
24448
24506
  ),
24449
- /* @__PURE__ */ jsx92(
24507
+ /* @__PURE__ */ jsx93(
24450
24508
  ScrollableList,
24451
24509
  {
24452
24510
  className: "dropdown-menu UserList__collaborators",
24453
24511
  placeholder: t("userList.empty"),
24454
24512
  children: filteredCollaborators.length > 0 ? [
24455
- /* @__PURE__ */ jsx92("div", { className: "hint", children: t("userList.hint.text") }),
24513
+ /* @__PURE__ */ jsx93("div", { className: "hint", children: t("userList.hint.text") }),
24456
24514
  filteredCollaborators.map(
24457
24515
  (collaborator) => renderCollaborator({
24458
24516
  actionManager,
@@ -24465,7 +24523,7 @@ var UserList = React33.memo(
24465
24523
  ] : []
24466
24524
  }
24467
24525
  ),
24468
- /* @__PURE__ */ jsx92(
24526
+ /* @__PURE__ */ jsx93(
24469
24527
  Popover9.Arrow,
24470
24528
  {
24471
24529
  width: 20,
@@ -24509,8 +24567,8 @@ var UserList = React33.memo(
24509
24567
  import clsx45 from "clsx";
24510
24568
 
24511
24569
  // components/HelpButton.tsx
24512
- import { jsx as jsx93 } from "react/jsx-runtime";
24513
- var HelpButton = (props) => /* @__PURE__ */ jsx93(
24570
+ import { jsx as jsx94 } from "react/jsx-runtime";
24571
+ var HelpButton = (props) => /* @__PURE__ */ jsx94(
24514
24572
  "button",
24515
24573
  {
24516
24574
  className: "help-icon",
@@ -24523,7 +24581,7 @@ var HelpButton = (props) => /* @__PURE__ */ jsx93(
24523
24581
  );
24524
24582
 
24525
24583
  // components/footer/Footer.tsx
24526
- import { jsx as jsx94, jsxs as jsxs54 } from "react/jsx-runtime";
24584
+ import { jsx as jsx95, jsxs as jsxs54 } from "react/jsx-runtime";
24527
24585
  var Footer = ({
24528
24586
  appState,
24529
24587
  actionManager,
@@ -24531,7 +24589,9 @@ var Footer = ({
24531
24589
  renderWelcomeScreen,
24532
24590
  helpEnabled,
24533
24591
  showUndoRedo,
24534
- isTopAligned
24592
+ isTopAligned,
24593
+ hideAnnotationsControlEnabled,
24594
+ onEyeButtonClick
24535
24595
  }) => {
24536
24596
  const { FooterCenterTunnel, WelcomeScreenHelpHintTunnel } = useTunnels();
24537
24597
  return /* @__PURE__ */ jsxs54(
@@ -24542,21 +24602,21 @@ var Footer = ({
24542
24602
  "layer-ui__wrapper__footer--top": isTopAligned
24543
24603
  }),
24544
24604
  children: [
24545
- /* @__PURE__ */ jsx94(
24605
+ /* @__PURE__ */ jsx95(
24546
24606
  "div",
24547
24607
  {
24548
24608
  className: clsx45("layer-ui__wrapper__footer-left zen-mode-transition", {
24549
24609
  "layer-ui__wrapper__footer-left--transition-left": appState.zenModeEnabled
24550
24610
  }),
24551
- children: /* @__PURE__ */ jsx94(Stack_default.Col, { gap: 2, children: /* @__PURE__ */ jsxs54(Section, { heading: "canvasActions", children: [
24552
- /* @__PURE__ */ jsx94(
24611
+ children: /* @__PURE__ */ jsx95(Stack_default.Col, { gap: 2, children: /* @__PURE__ */ jsxs54(Section, { heading: "canvasActions", children: [
24612
+ /* @__PURE__ */ jsx95(
24553
24613
  ZoomActions,
24554
24614
  {
24555
24615
  renderAction: actionManager.renderAction,
24556
24616
  zoom: appState.zoom
24557
24617
  }
24558
24618
  ),
24559
- !appState.viewModeEnabled && showUndoRedo && /* @__PURE__ */ jsx94(
24619
+ !(appState.viewModeEnabled || appState.hideAnnotations) && showUndoRedo && /* @__PURE__ */ jsx95(
24560
24620
  UndoRedoActions,
24561
24621
  {
24562
24622
  renderAction: actionManager.renderAction,
@@ -24569,25 +24629,37 @@ var Footer = ({
24569
24629
  ] }) })
24570
24630
  }
24571
24631
  ),
24572
- /* @__PURE__ */ jsx94(FooterCenterTunnel.Out, {}),
24573
- /* @__PURE__ */ jsx94(
24632
+ /* @__PURE__ */ jsx95(FooterCenterTunnel.Out, {}),
24633
+ /* @__PURE__ */ jsxs54(
24574
24634
  "div",
24575
24635
  {
24576
- className: clsx45("layer-ui__wrapper__footer-right zen-mode-transition", {
24577
- "transition-right": appState.zenModeEnabled
24578
- }),
24579
- children: /* @__PURE__ */ jsxs54("div", { style: { position: "relative" }, children: [
24580
- renderWelcomeScreen && /* @__PURE__ */ jsx94(WelcomeScreenHelpHintTunnel.Out, {}),
24581
- helpEnabled && /* @__PURE__ */ jsx94(
24582
- HelpButton,
24636
+ className: clsx45(
24637
+ "layer-ui__wrapper__footer-right zen-mode-transition gap-0.5",
24638
+ {
24639
+ "transition-right": appState.zenModeEnabled
24640
+ }
24641
+ ),
24642
+ children: [
24643
+ hideAnnotationsControlEnabled && /* @__PURE__ */ jsx95(
24644
+ EyeButton,
24583
24645
  {
24584
- onClick: () => actionManager.executeAction(actionShortcuts)
24646
+ status: appState.hideAnnotations ? "off" : "on",
24647
+ onClick: onEyeButtonClick
24585
24648
  }
24586
- )
24587
- ] })
24649
+ ),
24650
+ /* @__PURE__ */ jsxs54("div", { style: { position: "relative" }, children: [
24651
+ renderWelcomeScreen && /* @__PURE__ */ jsx95(WelcomeScreenHelpHintTunnel.Out, {}),
24652
+ helpEnabled && /* @__PURE__ */ jsx95(
24653
+ HelpButton,
24654
+ {
24655
+ onClick: () => actionManager.executeAction(actionShortcuts)
24656
+ }
24657
+ )
24658
+ ] })
24659
+ ]
24588
24660
  }
24589
24661
  ),
24590
- /* @__PURE__ */ jsx94(
24662
+ /* @__PURE__ */ jsx95(
24591
24663
  ExitZenModeButton,
24592
24664
  {
24593
24665
  actionManager,
@@ -24629,7 +24701,7 @@ import React34 from "react";
24629
24701
  var SidebarPropsContext = React34.createContext({});
24630
24702
 
24631
24703
  // components/Sidebar/SidebarHeader.tsx
24632
- import { jsx as jsx95, jsxs as jsxs55 } from "react/jsx-runtime";
24704
+ import { jsx as jsx96, jsxs as jsxs55 } from "react/jsx-runtime";
24633
24705
  var SidebarHeader = ({
24634
24706
  children,
24635
24707
  className
@@ -24645,7 +24717,7 @@ var SidebarHeader = ({
24645
24717
  children: [
24646
24718
  children,
24647
24719
  /* @__PURE__ */ jsxs55("div", { className: "sidebar__header__buttons", children: [
24648
- renderDockButton && /* @__PURE__ */ jsx95(Tooltip, { label: t("labels.sidebarLock"), children: /* @__PURE__ */ jsx95(
24720
+ renderDockButton && /* @__PURE__ */ jsx96(Tooltip, { label: t("labels.sidebarLock"), children: /* @__PURE__ */ jsx96(
24649
24721
  Button,
24650
24722
  {
24651
24723
  onSelect: () => props.onDock?.(!props.docked),
@@ -24656,7 +24728,7 @@ var SidebarHeader = ({
24656
24728
  children: PinIcon
24657
24729
  }
24658
24730
  ) }),
24659
- /* @__PURE__ */ jsx95(
24731
+ /* @__PURE__ */ jsx96(
24660
24732
  Button,
24661
24733
  {
24662
24734
  "data-testid": "sidebar-close",
@@ -24675,14 +24747,14 @@ SidebarHeader.displayName = "SidebarHeader";
24675
24747
 
24676
24748
  // components/Sidebar/SidebarTabTrigger.tsx
24677
24749
  import * as RadixTabs from "@radix-ui/react-tabs";
24678
- import { jsx as jsx96 } from "react/jsx-runtime";
24750
+ import { jsx as jsx97 } from "react/jsx-runtime";
24679
24751
  var SidebarTabTrigger = ({
24680
24752
  children,
24681
24753
  tab,
24682
24754
  onSelect,
24683
24755
  ...rest
24684
24756
  }) => {
24685
- return /* @__PURE__ */ jsx96(RadixTabs.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx96(
24757
+ return /* @__PURE__ */ jsx97(RadixTabs.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx97(
24686
24758
  "button",
24687
24759
  {
24688
24760
  type: "button",
@@ -24696,18 +24768,18 @@ SidebarTabTrigger.displayName = "SidebarTabTrigger";
24696
24768
 
24697
24769
  // components/Sidebar/SidebarTabTriggers.tsx
24698
24770
  import * as RadixTabs2 from "@radix-ui/react-tabs";
24699
- import { jsx as jsx97 } from "react/jsx-runtime";
24771
+ import { jsx as jsx98 } from "react/jsx-runtime";
24700
24772
  var SidebarTabTriggers = ({
24701
24773
  children,
24702
24774
  ...rest
24703
24775
  }) => {
24704
- return /* @__PURE__ */ jsx97(RadixTabs2.List, { className: "sidebar-triggers", ...rest, children });
24776
+ return /* @__PURE__ */ jsx98(RadixTabs2.List, { className: "sidebar-triggers", ...rest, children });
24705
24777
  };
24706
24778
  SidebarTabTriggers.displayName = "SidebarTabTriggers";
24707
24779
 
24708
24780
  // components/Sidebar/SidebarTrigger.tsx
24709
24781
  import clsx47 from "clsx";
24710
- import { jsx as jsx98, jsxs as jsxs56 } from "react/jsx-runtime";
24782
+ import { jsx as jsx99, jsxs as jsxs56 } from "react/jsx-runtime";
24711
24783
  var SidebarTrigger = ({
24712
24784
  name,
24713
24785
  tab,
@@ -24721,7 +24793,7 @@ var SidebarTrigger = ({
24721
24793
  const setAppState = useExcalidrawSetAppState();
24722
24794
  const appState = useUIAppState();
24723
24795
  return /* @__PURE__ */ jsxs56("label", { title, className: "sidebar-trigger__label-element", children: [
24724
- /* @__PURE__ */ jsx98(
24796
+ /* @__PURE__ */ jsx99(
24725
24797
  "input",
24726
24798
  {
24727
24799
  className: "ToolIcon_type_checkbox",
@@ -24742,8 +24814,8 @@ var SidebarTrigger = ({
24742
24814
  }
24743
24815
  ),
24744
24816
  /* @__PURE__ */ jsxs56("div", { className: clsx47("sidebar-trigger", className), style, children: [
24745
- icon && /* @__PURE__ */ jsx98("div", { children: icon }),
24746
- children && /* @__PURE__ */ jsx98("div", { className: "sidebar-trigger__label", children })
24817
+ icon && /* @__PURE__ */ jsx99("div", { children: icon }),
24818
+ children && /* @__PURE__ */ jsx99("div", { className: "sidebar-trigger__label", children })
24747
24819
  ] })
24748
24820
  ] });
24749
24821
  };
@@ -24751,7 +24823,7 @@ SidebarTrigger.displayName = "SidebarTrigger";
24751
24823
 
24752
24824
  // components/Sidebar/SidebarTabs.tsx
24753
24825
  import * as RadixTabs3 from "@radix-ui/react-tabs";
24754
- import { jsx as jsx99 } from "react/jsx-runtime";
24826
+ import { jsx as jsx100 } from "react/jsx-runtime";
24755
24827
  var SidebarTabs = ({
24756
24828
  children,
24757
24829
  ...rest
@@ -24762,7 +24834,7 @@ var SidebarTabs = ({
24762
24834
  return null;
24763
24835
  }
24764
24836
  const { name } = appState.openSidebar;
24765
- return /* @__PURE__ */ jsx99(
24837
+ return /* @__PURE__ */ jsx100(
24766
24838
  RadixTabs3.Root,
24767
24839
  {
24768
24840
  className: "sidebar-tabs-root",
@@ -24780,18 +24852,18 @@ SidebarTabs.displayName = "SidebarTabs";
24780
24852
 
24781
24853
  // components/Sidebar/SidebarTab.tsx
24782
24854
  import * as RadixTabs4 from "@radix-ui/react-tabs";
24783
- import { jsx as jsx100 } from "react/jsx-runtime";
24855
+ import { jsx as jsx101 } from "react/jsx-runtime";
24784
24856
  var SidebarTab = ({
24785
24857
  tab,
24786
24858
  children,
24787
24859
  ...rest
24788
24860
  }) => {
24789
- return /* @__PURE__ */ jsx100(RadixTabs4.Content, { ...rest, value: tab, "data-testid": tab, children });
24861
+ return /* @__PURE__ */ jsx101(RadixTabs4.Content, { ...rest, value: tab, "data-testid": tab, children });
24790
24862
  };
24791
24863
  SidebarTab.displayName = "SidebarTab";
24792
24864
 
24793
24865
  // components/Sidebar/Sidebar.tsx
24794
- import { jsx as jsx101 } from "react/jsx-runtime";
24866
+ import { jsx as jsx102 } from "react/jsx-runtime";
24795
24867
  import { createElement } from "react";
24796
24868
  var isSidebarDockedAtom = atom(false);
24797
24869
  var SidebarInner = forwardRef4(
@@ -24865,7 +24937,7 @@ var SidebarInner = forwardRef4(
24865
24937
  document.removeEventListener(EVENT11.KEYDOWN, handleKeyDown);
24866
24938
  };
24867
24939
  }, [closeLibrary, docked, editorInterface.canFitSidebar]);
24868
- return /* @__PURE__ */ jsx101(
24940
+ return /* @__PURE__ */ jsx102(
24869
24941
  Island,
24870
24942
  {
24871
24943
  ...rest,
@@ -24875,7 +24947,7 @@ var SidebarInner = forwardRef4(
24875
24947
  className
24876
24948
  ),
24877
24949
  ref: islandRef,
24878
- children: /* @__PURE__ */ jsx101(SidebarPropsContext.Provider, { value: headerPropsRef.current, children })
24950
+ children: /* @__PURE__ */ jsx102(SidebarPropsContext.Provider, { value: headerPropsRef.current, children })
24879
24951
  }
24880
24952
  );
24881
24953
  }
@@ -24927,7 +24999,7 @@ import clsx51 from "clsx";
24927
24999
 
24928
25000
  // components/hoc/withInternalFallback.tsx
24929
25001
  import { useLayoutEffect as useLayoutEffect8, useRef as useRef28 } from "react";
24930
- import { jsx as jsx102 } from "react/jsx-runtime";
25002
+ import { jsx as jsx103 } from "react/jsx-runtime";
24931
25003
  var withInternalFallback = (componentName, Component) => {
24932
25004
  const renderAtom = atom(0);
24933
25005
  const WrapperComponent = (props) => {
@@ -24972,7 +25044,7 @@ var withInternalFallback = (componentName, Component) => {
24972
25044
  ) {
24973
25045
  return null;
24974
25046
  }
24975
- return /* @__PURE__ */ jsx102(Component, { ...props });
25047
+ return /* @__PURE__ */ jsx103(Component, { ...props });
24976
25048
  };
24977
25049
  WrapperComponent.displayName = componentName;
24978
25050
  return WrapperComponent;
@@ -25023,14 +25095,14 @@ async function openConfirmModal({
25023
25095
 
25024
25096
  // components/RadioGroup.tsx
25025
25097
  import clsx49 from "clsx";
25026
- import { jsx as jsx103, jsxs as jsxs57 } from "react/jsx-runtime";
25098
+ import { jsx as jsx104, jsxs as jsxs57 } from "react/jsx-runtime";
25027
25099
  var RadioGroup = function({
25028
25100
  onChange,
25029
25101
  value,
25030
25102
  choices,
25031
25103
  name
25032
25104
  }) {
25033
- return /* @__PURE__ */ jsx103("div", { className: "RadioGroup", children: choices.map((choice) => /* @__PURE__ */ jsxs57(
25105
+ return /* @__PURE__ */ jsx104("div", { className: "RadioGroup", children: choices.map((choice) => /* @__PURE__ */ jsxs57(
25034
25106
  "div",
25035
25107
  {
25036
25108
  className: clsx49("RadioGroup__choice", {
@@ -25038,7 +25110,7 @@ var RadioGroup = function({
25038
25110
  }),
25039
25111
  title: choice.ariaLabel,
25040
25112
  children: [
25041
- /* @__PURE__ */ jsx103(
25113
+ /* @__PURE__ */ jsx104(
25042
25114
  "input",
25043
25115
  {
25044
25116
  name,
@@ -25056,7 +25128,7 @@ var RadioGroup = function({
25056
25128
  };
25057
25129
 
25058
25130
  // components/dropdownMenu/DropdownMenuItemContentRadio.tsx
25059
- import { Fragment as Fragment15, jsx as jsx104, jsxs as jsxs58 } from "react/jsx-runtime";
25131
+ import { Fragment as Fragment15, jsx as jsx105, jsxs as jsxs58 } from "react/jsx-runtime";
25060
25132
  var DropdownMenuItemContentRadio = ({
25061
25133
  value,
25062
25134
  shortcut,
@@ -25068,8 +25140,8 @@ var DropdownMenuItemContentRadio = ({
25068
25140
  const editorInterface = useEditorInterface();
25069
25141
  return /* @__PURE__ */ jsxs58(Fragment15, { children: [
25070
25142
  /* @__PURE__ */ jsxs58("div", { className: "dropdown-menu-item-base dropdown-menu-item-bare", children: [
25071
- /* @__PURE__ */ jsx104("label", { className: "dropdown-menu-item__text", htmlFor: name, children }),
25072
- /* @__PURE__ */ jsx104(
25143
+ /* @__PURE__ */ jsx105("label", { className: "dropdown-menu-item__text", htmlFor: name, children }),
25144
+ /* @__PURE__ */ jsx105(
25073
25145
  RadioGroup,
25074
25146
  {
25075
25147
  name,
@@ -25079,14 +25151,14 @@ var DropdownMenuItemContentRadio = ({
25079
25151
  }
25080
25152
  )
25081
25153
  ] }),
25082
- shortcut && editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsx104("div", { className: "dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned", children: shortcut })
25154
+ shortcut && editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsx105("div", { className: "dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned", children: shortcut })
25083
25155
  ] });
25084
25156
  };
25085
25157
  DropdownMenuItemContentRadio.displayName = "DropdownMenuItemContentRadio";
25086
25158
  var DropdownMenuItemContentRadio_default = DropdownMenuItemContentRadio;
25087
25159
 
25088
25160
  // components/main-menu/DefaultItems.tsx
25089
- import { Fragment as Fragment16, jsx as jsx105, jsxs as jsxs59 } from "react/jsx-runtime";
25161
+ import { Fragment as Fragment16, jsx as jsx106, jsxs as jsxs59 } from "react/jsx-runtime";
25090
25162
  var LoadScene = () => {
25091
25163
  const { t: t2 } = useI18n();
25092
25164
  const actionManager = useExcalidrawActionManager();
@@ -25099,19 +25171,19 @@ var LoadScene = () => {
25099
25171
  title: t2("overwriteConfirm.modal.loadFromFile.title"),
25100
25172
  actionLabel: t2("overwriteConfirm.modal.loadFromFile.button"),
25101
25173
  color: "warning",
25102
- description: /* @__PURE__ */ jsx105(
25174
+ description: /* @__PURE__ */ jsx106(
25103
25175
  Trans_default,
25104
25176
  {
25105
25177
  i18nKey: "overwriteConfirm.modal.loadFromFile.description",
25106
- bold: (text) => /* @__PURE__ */ jsx105("strong", { children: text }),
25107
- br: () => /* @__PURE__ */ jsx105("br", {})
25178
+ bold: (text) => /* @__PURE__ */ jsx106("strong", { children: text }),
25179
+ br: () => /* @__PURE__ */ jsx106("br", {})
25108
25180
  }
25109
25181
  )
25110
25182
  })) {
25111
25183
  actionManager.executeAction(actionLoadScene);
25112
25184
  }
25113
25185
  };
25114
- return /* @__PURE__ */ jsx105(
25186
+ return /* @__PURE__ */ jsx106(
25115
25187
  DropdownMenuItem_default,
25116
25188
  {
25117
25189
  icon: LoadIcon,
@@ -25130,7 +25202,7 @@ var SaveToActiveFile = () => {
25130
25202
  if (!actionManager.isActionEnabled(actionSaveToActiveFile)) {
25131
25203
  return null;
25132
25204
  }
25133
- return /* @__PURE__ */ jsx105(
25205
+ return /* @__PURE__ */ jsx106(
25134
25206
  DropdownMenuItem_default,
25135
25207
  {
25136
25208
  shortcut: getShortcutFromShortcutName("saveScene"),
@@ -25146,7 +25218,7 @@ SaveToActiveFile.displayName = "SaveToActiveFile";
25146
25218
  var SaveAsImage = () => {
25147
25219
  const setAppState = useExcalidrawSetAppState();
25148
25220
  const { t: t2 } = useI18n();
25149
- return /* @__PURE__ */ jsx105(
25221
+ return /* @__PURE__ */ jsx106(
25150
25222
  DropdownMenuItem_default,
25151
25223
  {
25152
25224
  icon: ExportImageIcon,
@@ -25162,7 +25234,7 @@ SaveAsImage.displayName = "SaveAsImage";
25162
25234
  var CommandPalette2 = (opts) => {
25163
25235
  const setAppState = useExcalidrawSetAppState();
25164
25236
  const { t: t2 } = useI18n();
25165
- return /* @__PURE__ */ jsx105(
25237
+ return /* @__PURE__ */ jsx106(
25166
25238
  DropdownMenuItem_default,
25167
25239
  {
25168
25240
  icon: boltIcon,
@@ -25182,7 +25254,7 @@ CommandPalette2.displayName = "CommandPalette";
25182
25254
  var SearchMenu = (opts) => {
25183
25255
  const { t: t2 } = useI18n();
25184
25256
  const actionManager = useExcalidrawActionManager();
25185
- return /* @__PURE__ */ jsx105(
25257
+ return /* @__PURE__ */ jsx106(
25186
25258
  DropdownMenuItem_default,
25187
25259
  {
25188
25260
  icon: searchIcon,
@@ -25201,7 +25273,7 @@ SearchMenu.displayName = "SearchMenu";
25201
25273
  var Help = () => {
25202
25274
  const { t: t2 } = useI18n();
25203
25275
  const actionManager = useExcalidrawActionManager();
25204
- return /* @__PURE__ */ jsx105(
25276
+ return /* @__PURE__ */ jsx106(
25205
25277
  DropdownMenuItem_default,
25206
25278
  {
25207
25279
  "data-testid": "help-menu-item",
@@ -25221,7 +25293,7 @@ var ClearCanvas = () => {
25221
25293
  if (!actionManager.isActionEnabled(actionClearCanvas)) {
25222
25294
  return null;
25223
25295
  }
25224
- return /* @__PURE__ */ jsx105(
25296
+ return /* @__PURE__ */ jsx106(
25225
25297
  DropdownMenuItem_default,
25226
25298
  {
25227
25299
  icon: TrashIcon,
@@ -25242,7 +25314,7 @@ var ToggleTheme = (props) => {
25242
25314
  return null;
25243
25315
  }
25244
25316
  if (props?.allowSystemTheme) {
25245
- return /* @__PURE__ */ jsx105(
25317
+ return /* @__PURE__ */ jsx106(
25246
25318
  DropdownMenuItemContentRadio_default,
25247
25319
  {
25248
25320
  name: "theme",
@@ -25269,7 +25341,7 @@ var ToggleTheme = (props) => {
25269
25341
  }
25270
25342
  );
25271
25343
  }
25272
- return /* @__PURE__ */ jsx105(
25344
+ return /* @__PURE__ */ jsx106(
25273
25345
  DropdownMenuItem_default,
25274
25346
  {
25275
25347
  onSelect: (event) => {
@@ -25296,11 +25368,11 @@ var ChangeCanvasBackground = () => {
25296
25368
  const appState = useUIAppState();
25297
25369
  const actionManager = useExcalidrawActionManager();
25298
25370
  const appProps = useAppProps();
25299
- if (appState.viewModeEnabled || !appProps.UIOptions.canvasActions.changeViewBackgroundColor) {
25371
+ if (appState.viewModeEnabled || appState.hideAnnotations || !appProps.UIOptions.canvasActions.changeViewBackgroundColor) {
25300
25372
  return null;
25301
25373
  }
25302
25374
  return /* @__PURE__ */ jsxs59("div", { style: { marginTop: "0.5rem" }, children: [
25303
- /* @__PURE__ */ jsx105(
25375
+ /* @__PURE__ */ jsx106(
25304
25376
  "div",
25305
25377
  {
25306
25378
  "data-testid": "canvas-background-label",
@@ -25308,14 +25380,14 @@ var ChangeCanvasBackground = () => {
25308
25380
  children: t2("labels.canvasBackground")
25309
25381
  }
25310
25382
  ),
25311
- /* @__PURE__ */ jsx105("div", { style: { padding: "0 0.625rem" }, children: actionManager.renderAction("changeViewBackgroundColor") })
25383
+ /* @__PURE__ */ jsx106("div", { style: { padding: "0 0.625rem" }, children: actionManager.renderAction("changeViewBackgroundColor") })
25312
25384
  ] });
25313
25385
  };
25314
25386
  ChangeCanvasBackground.displayName = "ChangeCanvasBackground";
25315
25387
  var Export = () => {
25316
25388
  const { t: t2 } = useI18n();
25317
25389
  const setAppState = useExcalidrawSetAppState();
25318
- return /* @__PURE__ */ jsx105(
25390
+ return /* @__PURE__ */ jsx106(
25319
25391
  DropdownMenuItem_default,
25320
25392
  {
25321
25393
  icon: ExportIcon,
@@ -25332,7 +25404,7 @@ Export.displayName = "Export";
25332
25404
  var Socials = () => {
25333
25405
  const { t: t2 } = useI18n();
25334
25406
  return /* @__PURE__ */ jsxs59(Fragment16, { children: [
25335
- /* @__PURE__ */ jsx105(
25407
+ /* @__PURE__ */ jsx106(
25336
25408
  DropdownMenuItemLink_default,
25337
25409
  {
25338
25410
  icon: GithubIcon,
@@ -25341,7 +25413,7 @@ var Socials = () => {
25341
25413
  children: "GitHub"
25342
25414
  }
25343
25415
  ),
25344
- /* @__PURE__ */ jsx105(
25416
+ /* @__PURE__ */ jsx106(
25345
25417
  DropdownMenuItemLink_default,
25346
25418
  {
25347
25419
  icon: XBrandIcon,
@@ -25350,7 +25422,7 @@ var Socials = () => {
25350
25422
  children: t2("labels.followUs")
25351
25423
  }
25352
25424
  ),
25353
- /* @__PURE__ */ jsx105(
25425
+ /* @__PURE__ */ jsx106(
25354
25426
  DropdownMenuItemLink_default,
25355
25427
  {
25356
25428
  icon: DiscordIcon,
@@ -25367,7 +25439,7 @@ var LiveCollaborationTrigger = ({
25367
25439
  isCollaborating
25368
25440
  }) => {
25369
25441
  const { t: t2 } = useI18n();
25370
- return /* @__PURE__ */ jsx105(
25442
+ return /* @__PURE__ */ jsx106(
25371
25443
  DropdownMenuItem_default,
25372
25444
  {
25373
25445
  "data-testid": "collab-button",
@@ -25383,7 +25455,7 @@ var LiveCollaborationTrigger = ({
25383
25455
  LiveCollaborationTrigger.displayName = "LiveCollaborationTrigger";
25384
25456
 
25385
25457
  // components/main-menu/MainMenu.tsx
25386
- import { jsx as jsx106, jsxs as jsxs60 } from "react/jsx-runtime";
25458
+ import { jsx as jsx107, jsxs as jsxs60 } from "react/jsx-runtime";
25387
25459
  var MainMenu = Object.assign(
25388
25460
  withInternalFallback(
25389
25461
  "MainMenu",
@@ -25396,8 +25468,8 @@ var MainMenu = Object.assign(
25396
25468
  const appState = useUIAppState();
25397
25469
  const appProps = useAppProps();
25398
25470
  const setAppState = useExcalidrawSetAppState();
25399
- return /* @__PURE__ */ jsx106(MainMenuTunnel.In, { children: /* @__PURE__ */ jsxs60(DropdownMenu_default, { open: appState.openMenu === "canvas", children: [
25400
- /* @__PURE__ */ jsx106(
25471
+ return /* @__PURE__ */ jsx107(MainMenuTunnel.In, { children: /* @__PURE__ */ jsxs60(DropdownMenu_default, { open: appState.openMenu === "canvas", children: [
25472
+ /* @__PURE__ */ jsx107(
25401
25473
  DropdownMenu_default.Trigger,
25402
25474
  {
25403
25475
  onToggle: () => {
@@ -25427,8 +25499,8 @@ var MainMenu = Object.assign(
25427
25499
  children: [
25428
25500
  children,
25429
25501
  editorInterface.formFactor === "phone" && appState.collaborators.size > 0 && /* @__PURE__ */ jsxs60("fieldset", { className: "UserList-Wrapper", children: [
25430
- /* @__PURE__ */ jsx106("legend", { children: t("labels.collaborators") }),
25431
- /* @__PURE__ */ jsx106(
25502
+ /* @__PURE__ */ jsx107("legend", { children: t("labels.collaborators") }),
25503
+ /* @__PURE__ */ jsx107(
25432
25504
  UserList,
25433
25505
  {
25434
25506
  mobile: true,
@@ -25459,7 +25531,7 @@ var MainMenu_default = MainMenu;
25459
25531
  import clsx52 from "clsx";
25460
25532
  import { forwardRef as forwardRef5, useState as useState30 } from "react";
25461
25533
  import { isPromiseLike as isPromiseLike4 } from "@excalidraw/common";
25462
- import { jsx as jsx107, jsxs as jsxs61 } from "react/jsx-runtime";
25534
+ import { jsx as jsx108, jsxs as jsxs61 } from "react/jsx-runtime";
25463
25535
  var FilledButton = forwardRef5(
25464
25536
  ({
25465
25537
  children,
@@ -25496,7 +25568,7 @@ var FilledButton = forwardRef5(
25496
25568
  };
25497
25569
  const _status = isLoading ? "loading" : status;
25498
25570
  color = _status === "success" ? "success" : color;
25499
- return /* @__PURE__ */ jsx107(
25571
+ return /* @__PURE__ */ jsx108(
25500
25572
  "button",
25501
25573
  {
25502
25574
  className: clsx52(
@@ -25514,8 +25586,8 @@ var FilledButton = forwardRef5(
25514
25586
  ref,
25515
25587
  disabled: _status === "loading" || _status === "success",
25516
25588
  children: /* @__PURE__ */ jsxs61("div", { className: "ExcButton__contents", children: [
25517
- _status === "loading" ? /* @__PURE__ */ jsx107(Spinner_default, { className: "ExcButton__statusIcon" }) : _status === "success" && /* @__PURE__ */ jsx107("div", { className: "ExcButton__statusIcon", children: tablerCheckIcon }),
25518
- icon && /* @__PURE__ */ jsx107("div", { className: "ExcButton__icon", "aria-hidden": true, children: icon }),
25589
+ _status === "loading" ? /* @__PURE__ */ jsx108(Spinner_default, { className: "ExcButton__statusIcon" }) : _status === "success" && /* @__PURE__ */ jsx108("div", { className: "ExcButton__statusIcon", children: tablerCheckIcon }),
25590
+ icon && /* @__PURE__ */ jsx108("div", { className: "ExcButton__icon", "aria-hidden": true, children: icon }),
25519
25591
  variant !== "icon" && (children ?? label)
25520
25592
  ] })
25521
25593
  }
@@ -25524,7 +25596,7 @@ var FilledButton = forwardRef5(
25524
25596
  );
25525
25597
 
25526
25598
  // components/OverwriteConfirm/OverwriteConfirmActions.tsx
25527
- import { jsx as jsx108, jsxs as jsxs62 } from "react/jsx-runtime";
25599
+ import { jsx as jsx109, jsxs as jsxs62 } from "react/jsx-runtime";
25528
25600
  var Action = ({
25529
25601
  title,
25530
25602
  children,
@@ -25532,9 +25604,9 @@ var Action = ({
25532
25604
  onClick
25533
25605
  }) => {
25534
25606
  return /* @__PURE__ */ jsxs62("div", { className: "OverwriteConfirm__Actions__Action", children: [
25535
- /* @__PURE__ */ jsx108("h4", { children: title }),
25536
- /* @__PURE__ */ jsx108("div", { className: "OverwriteConfirm__Actions__Action__content", children }),
25537
- /* @__PURE__ */ jsx108(
25607
+ /* @__PURE__ */ jsx109("h4", { children: title }),
25608
+ /* @__PURE__ */ jsx109("div", { className: "OverwriteConfirm__Actions__Action__content", children }),
25609
+ /* @__PURE__ */ jsx109(
25538
25610
  FilledButton,
25539
25611
  {
25540
25612
  variant: "outlined",
@@ -25551,7 +25623,7 @@ var ExportToImage = () => {
25551
25623
  const { t: t2 } = useI18n();
25552
25624
  const actionManager = useExcalidrawActionManager();
25553
25625
  const setAppState = useExcalidrawSetAppState();
25554
- return /* @__PURE__ */ jsx108(
25626
+ return /* @__PURE__ */ jsx109(
25555
25627
  Action,
25556
25628
  {
25557
25629
  title: t2("overwriteConfirm.action.exportToImage.title"),
@@ -25567,7 +25639,7 @@ var ExportToImage = () => {
25567
25639
  var SaveToDisk = () => {
25568
25640
  const { t: t2 } = useI18n();
25569
25641
  const actionManager = useExcalidrawActionManager();
25570
- return /* @__PURE__ */ jsx108(
25642
+ return /* @__PURE__ */ jsx109(
25571
25643
  Action,
25572
25644
  {
25573
25645
  title: t2("overwriteConfirm.action.saveToDisk.title"),
@@ -25581,7 +25653,7 @@ var SaveToDisk = () => {
25581
25653
  };
25582
25654
  var Actions = Object.assign(
25583
25655
  ({ children }) => {
25584
- return /* @__PURE__ */ jsx108("div", { className: "OverwriteConfirm__Actions", children });
25656
+ return /* @__PURE__ */ jsx109("div", { className: "OverwriteConfirm__Actions", children });
25585
25657
  },
25586
25658
  {
25587
25659
  ExportToImage,
@@ -25590,7 +25662,7 @@ var Actions = Object.assign(
25590
25662
  );
25591
25663
 
25592
25664
  // components/OverwriteConfirm/OverwriteConfirm.tsx
25593
- import { jsx as jsx109, jsxs as jsxs63 } from "react/jsx-runtime";
25665
+ import { jsx as jsx110, jsxs as jsxs63 } from "react/jsx-runtime";
25594
25666
  var OverwriteConfirmDialog = Object.assign(
25595
25667
  withInternalFallback(
25596
25668
  "OverwriteConfirmDialog",
@@ -25610,17 +25682,17 @@ var OverwriteConfirmDialog = Object.assign(
25610
25682
  overwriteConfirmState.onConfirm();
25611
25683
  setState((state) => ({ ...state, active: false }));
25612
25684
  };
25613
- return /* @__PURE__ */ jsx109(OverwriteConfirmDialogTunnel.In, { children: /* @__PURE__ */ jsx109(Dialog, { onCloseRequest: handleClose, title: false, size: 916, children: /* @__PURE__ */ jsxs63("div", { className: "OverwriteConfirm", children: [
25614
- /* @__PURE__ */ jsx109("h3", { children: overwriteConfirmState.title }),
25685
+ return /* @__PURE__ */ jsx110(OverwriteConfirmDialogTunnel.In, { children: /* @__PURE__ */ jsx110(Dialog, { onCloseRequest: handleClose, title: false, size: 916, children: /* @__PURE__ */ jsxs63("div", { className: "OverwriteConfirm", children: [
25686
+ /* @__PURE__ */ jsx110("h3", { children: overwriteConfirmState.title }),
25615
25687
  /* @__PURE__ */ jsxs63(
25616
25688
  "div",
25617
25689
  {
25618
25690
  className: `OverwriteConfirm__Description OverwriteConfirm__Description--color-${overwriteConfirmState.color}`,
25619
25691
  children: [
25620
- /* @__PURE__ */ jsx109("div", { className: "OverwriteConfirm__Description__icon", children: alertTriangleIcon }),
25621
- /* @__PURE__ */ jsx109("div", { children: overwriteConfirmState.description }),
25622
- /* @__PURE__ */ jsx109("div", { className: "OverwriteConfirm__Description__spacer" }),
25623
- /* @__PURE__ */ jsx109(
25692
+ /* @__PURE__ */ jsx110("div", { className: "OverwriteConfirm__Description__icon", children: alertTriangleIcon }),
25693
+ /* @__PURE__ */ jsx110("div", { children: overwriteConfirmState.description }),
25694
+ /* @__PURE__ */ jsx110("div", { className: "OverwriteConfirm__Description__spacer" }),
25695
+ /* @__PURE__ */ jsx110(
25624
25696
  FilledButton,
25625
25697
  {
25626
25698
  color: overwriteConfirmState.color,
@@ -25632,7 +25704,7 @@ var OverwriteConfirmDialog = Object.assign(
25632
25704
  ]
25633
25705
  }
25634
25706
  ),
25635
- /* @__PURE__ */ jsx109(Actions, { children })
25707
+ /* @__PURE__ */ jsx110(Actions, { children })
25636
25708
  ] }) }) });
25637
25709
  }
25638
25710
  ),
@@ -25674,7 +25746,7 @@ import {
25674
25746
  import { newTextElement as newTextElement2 } from "@excalidraw/element";
25675
25747
  import { isTextElement as isTextElement12, isFrameLikeElement as isFrameLikeElement10 } from "@excalidraw/element";
25676
25748
  import { getDefaultFrameName } from "@excalidraw/element/frame";
25677
- import { Fragment as Fragment18, jsx as jsx110, jsxs as jsxs64 } from "react/jsx-runtime";
25749
+ import { Fragment as Fragment18, jsx as jsx111, jsxs as jsxs64 } from "react/jsx-runtime";
25678
25750
  var searchQueryAtom = atom("");
25679
25751
  var searchItemInFocusAtom = atom(null);
25680
25752
  var SEARCH_DEBOUNCE = 350;
@@ -25886,7 +25958,7 @@ var SearchMenu2 = () => {
25886
25958
  }, [setAppState, stableState, app]);
25887
25959
  const matchCount = `${searchMatches.items.length} ${searchMatches.items.length === 1 ? t("search.singleResult") : t("search.multipleResults")}`;
25888
25960
  return /* @__PURE__ */ jsxs64("div", { className: "layer-ui__search", children: [
25889
- /* @__PURE__ */ jsx110("div", { className: "layer-ui__search-header", children: /* @__PURE__ */ jsx110(
25961
+ /* @__PURE__ */ jsx111("div", { className: "layer-ui__search-header", children: /* @__PURE__ */ jsx111(
25890
25962
  TextField,
25891
25963
  {
25892
25964
  className: CLASSES7.SEARCH_MENU_INPUT_WRAPPER,
@@ -25928,9 +26000,9 @@ var SearchMenu2 = () => {
25928
26000
  focusIndex + 1,
25929
26001
  " / ",
25930
26002
  matchCount
25931
- ] }) : /* @__PURE__ */ jsx110("div", { children: matchCount }),
26003
+ ] }) : /* @__PURE__ */ jsx111("div", { children: matchCount }),
25932
26004
  /* @__PURE__ */ jsxs64("div", { className: "result-nav", children: [
25933
- /* @__PURE__ */ jsx110(
26005
+ /* @__PURE__ */ jsx111(
25934
26006
  Button,
25935
26007
  {
25936
26008
  onSelect: () => {
@@ -25940,7 +26012,7 @@ var SearchMenu2 = () => {
25940
26012
  children: collapseDownIcon
25941
26013
  }
25942
26014
  ),
25943
- /* @__PURE__ */ jsx110(
26015
+ /* @__PURE__ */ jsx111(
25944
26016
  Button,
25945
26017
  {
25946
26018
  onSelect: () => {
@@ -25952,9 +26024,9 @@ var SearchMenu2 = () => {
25952
26024
  )
25953
26025
  ] })
25954
26026
  ] }),
25955
- searchMatches.items.length === 0 && searchQuery && searchedQueryRef.current && /* @__PURE__ */ jsx110("div", { style: { margin: "1rem auto" }, children: t("search.noMatch") })
26027
+ searchMatches.items.length === 0 && searchQuery && searchedQueryRef.current && /* @__PURE__ */ jsx111("div", { style: { margin: "1rem auto" }, children: t("search.noMatch") })
25956
26028
  ] }),
25957
- /* @__PURE__ */ jsx110(
26029
+ /* @__PURE__ */ jsx111(
25958
26030
  MatchList,
25959
26031
  {
25960
26032
  matches: searchMatches,
@@ -25978,7 +26050,7 @@ var ListItem = (props) => {
25978
26050
  ),
25979
26051
  props.preview.moreAfter ? "..." : ""
25980
26052
  ];
25981
- return /* @__PURE__ */ jsx110(
26053
+ return /* @__PURE__ */ jsx111(
25982
26054
  "div",
25983
26055
  {
25984
26056
  tabIndex: -1,
@@ -25991,7 +26063,7 @@ var ListItem = (props) => {
25991
26063
  ref?.scrollIntoView({ behavior: "auto", block: "nearest" });
25992
26064
  }
25993
26065
  },
25994
- children: /* @__PURE__ */ jsx110("div", { className: "preview-text", children: preview.flatMap((text, idx) => /* @__PURE__ */ jsx110(Fragment17, { children: idx === 2 ? /* @__PURE__ */ jsx110("b", { children: text }) : text }, idx)) })
26066
+ children: /* @__PURE__ */ jsx111("div", { className: "preview-text", children: preview.flatMap((text, idx) => /* @__PURE__ */ jsx111(Fragment17, { children: idx === 2 ? /* @__PURE__ */ jsx111("b", { children: text }) : text }, idx)) })
25995
26067
  }
25996
26068
  );
25997
26069
  };
@@ -26007,10 +26079,10 @@ var MatchListBase = (props) => {
26007
26079
  return /* @__PURE__ */ jsxs64("div", { children: [
26008
26080
  frameNameMatches.length > 0 && /* @__PURE__ */ jsxs64("div", { className: "layer-ui__search-result-container", children: [
26009
26081
  /* @__PURE__ */ jsxs64("div", { className: "layer-ui__search-result-title", children: [
26010
- /* @__PURE__ */ jsx110("div", { className: "title-icon", children: frameToolIcon }),
26011
- /* @__PURE__ */ jsx110("div", { children: t("search.frames") })
26082
+ /* @__PURE__ */ jsx111("div", { className: "title-icon", children: frameToolIcon }),
26083
+ /* @__PURE__ */ jsx111("div", { children: t("search.frames") })
26012
26084
  ] }),
26013
- frameNameMatches.map((searchMatch, index) => /* @__PURE__ */ jsx110(
26085
+ frameNameMatches.map((searchMatch, index) => /* @__PURE__ */ jsx111(
26014
26086
  ListItem,
26015
26087
  {
26016
26088
  searchQuery: props.searchQuery,
@@ -26020,14 +26092,14 @@ var MatchListBase = (props) => {
26020
26092
  },
26021
26093
  searchMatch.element.id + searchMatch.index
26022
26094
  )),
26023
- textMatches.length > 0 && /* @__PURE__ */ jsx110("div", { className: "layer-ui__divider" })
26095
+ textMatches.length > 0 && /* @__PURE__ */ jsx111("div", { className: "layer-ui__divider" })
26024
26096
  ] }),
26025
26097
  textMatches.length > 0 && /* @__PURE__ */ jsxs64("div", { className: "layer-ui__search-result-container", children: [
26026
26098
  /* @__PURE__ */ jsxs64("div", { className: "layer-ui__search-result-title", children: [
26027
- /* @__PURE__ */ jsx110("div", { className: "title-icon", children: TextIcon }),
26028
- /* @__PURE__ */ jsx110("div", { children: t("search.texts") })
26099
+ /* @__PURE__ */ jsx111("div", { className: "title-icon", children: TextIcon }),
26100
+ /* @__PURE__ */ jsx111("div", { children: t("search.texts") })
26029
26101
  ] }),
26030
- textMatches.map((searchMatch, index) => /* @__PURE__ */ jsx110(
26102
+ textMatches.map((searchMatch, index) => /* @__PURE__ */ jsx111(
26031
26103
  ListItem,
26032
26104
  {
26033
26105
  searchQuery: props.searchQuery,
@@ -26266,13 +26338,13 @@ var handleSearch = debounce2(
26266
26338
  );
26267
26339
 
26268
26340
  // components/DefaultSidebar.tsx
26269
- import { jsx as jsx111, jsxs as jsxs65 } from "react/jsx-runtime";
26341
+ import { jsx as jsx112, jsxs as jsxs65 } from "react/jsx-runtime";
26270
26342
  import { createElement as createElement2 } from "react";
26271
26343
  var DefaultSidebarTrigger = withInternalFallback(
26272
26344
  "DefaultSidebarTrigger",
26273
26345
  (props) => {
26274
26346
  const { DefaultSidebarTriggerTunnel } = useTunnels();
26275
- return /* @__PURE__ */ jsx111(DefaultSidebarTriggerTunnel.In, { children: /* @__PURE__ */ jsx111(
26347
+ return /* @__PURE__ */ jsx112(DefaultSidebarTriggerTunnel.In, { children: /* @__PURE__ */ jsx112(
26276
26348
  Sidebar.Trigger,
26277
26349
  {
26278
26350
  ...props,
@@ -26285,7 +26357,7 @@ var DefaultSidebarTrigger = withInternalFallback(
26285
26357
  DefaultSidebarTrigger.displayName = "DefaultSidebarTrigger";
26286
26358
  var DefaultTabTriggers = ({ children }) => {
26287
26359
  const { DefaultSidebarTabTriggersTunnel } = useTunnels();
26288
- return /* @__PURE__ */ jsx111(DefaultSidebarTabTriggersTunnel.In, { children });
26360
+ return /* @__PURE__ */ jsx112(DefaultSidebarTabTriggersTunnel.In, { children });
26289
26361
  };
26290
26362
  DefaultTabTriggers.displayName = "DefaultTabTriggers";
26291
26363
  var DefaultSidebar = Object.assign(
@@ -26323,13 +26395,13 @@ var DefaultSidebar = Object.assign(
26323
26395
  )
26324
26396
  },
26325
26397
  /* @__PURE__ */ jsxs65(Sidebar.Tabs, { children: [
26326
- /* @__PURE__ */ jsx111(Sidebar.Header, { children: /* @__PURE__ */ jsxs65(Sidebar.TabTriggers, { children: [
26327
- /* @__PURE__ */ jsx111(Sidebar.TabTrigger, { tab: CANVAS_SEARCH_TAB2, children: searchIcon }),
26328
- appProps.UIOptions.libraryEnabled && /* @__PURE__ */ jsx111(Sidebar.TabTrigger, { tab: LIBRARY_SIDEBAR_TAB2, children: LibraryIcon }),
26329
- /* @__PURE__ */ jsx111(DefaultSidebarTabTriggersTunnel.Out, {})
26398
+ /* @__PURE__ */ jsx112(Sidebar.Header, { children: /* @__PURE__ */ jsxs65(Sidebar.TabTriggers, { children: [
26399
+ /* @__PURE__ */ jsx112(Sidebar.TabTrigger, { tab: CANVAS_SEARCH_TAB2, children: searchIcon }),
26400
+ appProps.UIOptions.libraryEnabled && /* @__PURE__ */ jsx112(Sidebar.TabTrigger, { tab: LIBRARY_SIDEBAR_TAB2, children: LibraryIcon }),
26401
+ /* @__PURE__ */ jsx112(DefaultSidebarTabTriggersTunnel.Out, {})
26330
26402
  ] }) }),
26331
- appProps.UIOptions.libraryEnabled && /* @__PURE__ */ jsx111(Sidebar.Tab, { tab: LIBRARY_SIDEBAR_TAB2, children: /* @__PURE__ */ jsx111(LibraryMenu, {}) }),
26332
- /* @__PURE__ */ jsx111(Sidebar.Tab, { tab: CANVAS_SEARCH_TAB2, children: /* @__PURE__ */ jsx111(SearchMenu2, {}) }),
26403
+ appProps.UIOptions.libraryEnabled && /* @__PURE__ */ jsx112(Sidebar.Tab, { tab: LIBRARY_SIDEBAR_TAB2, children: /* @__PURE__ */ jsx112(LibraryMenu, {}) }),
26404
+ /* @__PURE__ */ jsx112(Sidebar.Tab, { tab: CANVAS_SEARCH_TAB2, children: /* @__PURE__ */ jsx112(SearchMenu2, {}) }),
26333
26405
  children
26334
26406
  ] })
26335
26407
  );
@@ -26352,7 +26424,7 @@ import { EDITOR_LS_KEYS as EDITOR_LS_KEYS3, debounce as debounce3, isDevEnv as i
26352
26424
  // components/TTDDialog/TTDDialogInput.tsx
26353
26425
  import { useEffect as useEffect35, useRef as useRef30 } from "react";
26354
26426
  import { EVENT as EVENT13, KEYS as KEYS50 } from "@excalidraw/common";
26355
- import { jsx as jsx112 } from "react/jsx-runtime";
26427
+ import { jsx as jsx113 } from "react/jsx-runtime";
26356
26428
  var TTDDialogInput = ({
26357
26429
  input,
26358
26430
  placeholder,
@@ -26381,7 +26453,7 @@ var TTDDialogInput = ({
26381
26453
  };
26382
26454
  }
26383
26455
  }, []);
26384
- return /* @__PURE__ */ jsx112(
26456
+ return /* @__PURE__ */ jsx113(
26385
26457
  "textarea",
26386
26458
  {
26387
26459
  className: "ttd-dialog-input",
@@ -26394,7 +26466,7 @@ var TTDDialogInput = ({
26394
26466
  };
26395
26467
 
26396
26468
  // components/TTDDialog/TTDDialogOutput.tsx
26397
- import { jsx as jsx113, jsxs as jsxs66 } from "react/jsx-runtime";
26469
+ import { jsx as jsx114, jsxs as jsxs66 } from "react/jsx-runtime";
26398
26470
  var ErrorComp = ({ error }) => {
26399
26471
  return /* @__PURE__ */ jsxs66(
26400
26472
  "div",
@@ -26403,7 +26475,7 @@ var ErrorComp = ({ error }) => {
26403
26475
  className: "ttd-dialog-output-error",
26404
26476
  children: [
26405
26477
  "Error! ",
26406
- /* @__PURE__ */ jsx113("p", { children: error })
26478
+ /* @__PURE__ */ jsx114("p", { children: error })
26407
26479
  ]
26408
26480
  }
26409
26481
  );
@@ -26414,21 +26486,21 @@ var TTDDialogOutput = ({
26414
26486
  loaded
26415
26487
  }) => {
26416
26488
  return /* @__PURE__ */ jsxs66("div", { className: "ttd-dialog-output-wrapper", children: [
26417
- error && /* @__PURE__ */ jsx113(ErrorComp, { error: error.message }),
26418
- loaded ? /* @__PURE__ */ jsx113(
26489
+ error && /* @__PURE__ */ jsx114(ErrorComp, { error: error.message }),
26490
+ loaded ? /* @__PURE__ */ jsx114(
26419
26491
  "div",
26420
26492
  {
26421
26493
  ref: canvasRef,
26422
26494
  style: { opacity: error ? "0.15" : 1 },
26423
26495
  className: "ttd-dialog-output-canvas-container"
26424
26496
  }
26425
- ) : /* @__PURE__ */ jsx113(Spinner_default, { size: "2rem" })
26497
+ ) : /* @__PURE__ */ jsx114(Spinner_default, { size: "2rem" })
26426
26498
  ] });
26427
26499
  };
26428
26500
 
26429
26501
  // components/TTDDialog/TTDDialogPanel.tsx
26430
26502
  import clsx55 from "clsx";
26431
- import { jsx as jsx114, jsxs as jsxs67 } from "react/jsx-runtime";
26503
+ import { jsx as jsx115, jsxs as jsxs67 } from "react/jsx-runtime";
26432
26504
  var TTDDialogPanel = ({
26433
26505
  label,
26434
26506
  children,
@@ -26441,7 +26513,7 @@ var TTDDialogPanel = ({
26441
26513
  }) => {
26442
26514
  return /* @__PURE__ */ jsxs67("div", { className: "ttd-dialog-panel", children: [
26443
26515
  /* @__PURE__ */ jsxs67("div", { className: "ttd-dialog-panel__header", children: [
26444
- /* @__PURE__ */ jsx114("label", { children: label }),
26516
+ /* @__PURE__ */ jsx115("label", { children: label }),
26445
26517
  renderTopRight?.()
26446
26518
  ] }),
26447
26519
  children,
@@ -26463,9 +26535,9 @@ var TTDDialogPanel = ({
26463
26535
  children: [
26464
26536
  /* @__PURE__ */ jsxs67("div", { className: clsx55({ invisible: onTextSubmitInProgess }), children: [
26465
26537
  panelAction?.label,
26466
- panelAction?.icon && /* @__PURE__ */ jsx114("span", { children: panelAction.icon })
26538
+ panelAction?.icon && /* @__PURE__ */ jsx115("span", { children: panelAction.icon })
26467
26539
  ] }),
26468
- onTextSubmitInProgess && /* @__PURE__ */ jsx114(Spinner_default, {})
26540
+ onTextSubmitInProgess && /* @__PURE__ */ jsx115(Spinner_default, {})
26469
26541
  ]
26470
26542
  }
26471
26543
  ),
@@ -26478,17 +26550,17 @@ var TTDDialogPanel = ({
26478
26550
  };
26479
26551
 
26480
26552
  // components/TTDDialog/TTDDialogPanels.tsx
26481
- import { jsx as jsx115 } from "react/jsx-runtime";
26553
+ import { jsx as jsx116 } from "react/jsx-runtime";
26482
26554
  var TTDDialogPanels = ({ children }) => {
26483
- return /* @__PURE__ */ jsx115("div", { className: "ttd-dialog-panels", children });
26555
+ return /* @__PURE__ */ jsx116("div", { className: "ttd-dialog-panels", children });
26484
26556
  };
26485
26557
 
26486
26558
  // components/TTDDialog/TTDDialogSubmitShortcut.tsx
26487
- import { jsx as jsx116, jsxs as jsxs68 } from "react/jsx-runtime";
26559
+ import { jsx as jsx117, jsxs as jsxs68 } from "react/jsx-runtime";
26488
26560
  var TTDDialogSubmitShortcut = () => {
26489
26561
  return /* @__PURE__ */ jsxs68("div", { className: "ttd-dialog-submit-shortcut", children: [
26490
- /* @__PURE__ */ jsx116("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("CtrlOrCmd") }),
26491
- /* @__PURE__ */ jsx116("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("Enter") })
26562
+ /* @__PURE__ */ jsx117("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("CtrlOrCmd") }),
26563
+ /* @__PURE__ */ jsx117("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("Enter") })
26492
26564
  ] });
26493
26565
  };
26494
26566
 
@@ -26597,7 +26669,7 @@ var insertToEditor = ({
26597
26669
  };
26598
26670
 
26599
26671
  // components/TTDDialog/MermaidToExcalidraw.tsx
26600
- import { Fragment as Fragment19, jsx as jsx117, jsxs as jsxs69 } from "react/jsx-runtime";
26672
+ import { Fragment as Fragment19, jsx as jsx118, jsxs as jsxs69 } from "react/jsx-runtime";
26601
26673
  var MERMAID_EXAMPLE = "flowchart TD\n A[Christmas] -->|Get money| B(Go shopping)\n B --> C{Let me think}\n C -->|One| D[Laptop]\n C -->|Two| E[iPhone]\n C -->|Three| F[Car]";
26602
26674
  var debouncedSaveMermaidDefinition = debounce3(saveMermaidDataToStorage, 300);
26603
26675
  var MermaidToExcalidraw = ({
@@ -26640,17 +26712,17 @@ var MermaidToExcalidraw = ({
26640
26712
  });
26641
26713
  };
26642
26714
  return /* @__PURE__ */ jsxs69(Fragment19, { children: [
26643
- /* @__PURE__ */ jsx117("div", { className: "ttd-dialog-desc", children: /* @__PURE__ */ jsx117(
26715
+ /* @__PURE__ */ jsx118("div", { className: "ttd-dialog-desc", children: /* @__PURE__ */ jsx118(
26644
26716
  Trans_default,
26645
26717
  {
26646
26718
  i18nKey: "mermaid.description",
26647
- flowchartLink: (el) => /* @__PURE__ */ jsx117("a", { href: "https://mermaid.js.org/syntax/flowchart.html", children: el }),
26648
- sequenceLink: (el) => /* @__PURE__ */ jsx117("a", { href: "https://mermaid.js.org/syntax/sequenceDiagram.html", children: el }),
26649
- classLink: (el) => /* @__PURE__ */ jsx117("a", { href: "https://mermaid.js.org/syntax/classDiagram.html", children: el })
26719
+ flowchartLink: (el) => /* @__PURE__ */ jsx118("a", { href: "https://mermaid.js.org/syntax/flowchart.html", children: el }),
26720
+ sequenceLink: (el) => /* @__PURE__ */ jsx118("a", { href: "https://mermaid.js.org/syntax/sequenceDiagram.html", children: el }),
26721
+ classLink: (el) => /* @__PURE__ */ jsx118("a", { href: "https://mermaid.js.org/syntax/classDiagram.html", children: el })
26650
26722
  }
26651
26723
  ) }),
26652
26724
  /* @__PURE__ */ jsxs69(TTDDialogPanels, { children: [
26653
- /* @__PURE__ */ jsx117(TTDDialogPanel, { label: t("mermaid.syntax"), children: /* @__PURE__ */ jsx117(
26725
+ /* @__PURE__ */ jsx118(TTDDialogPanel, { label: t("mermaid.syntax"), children: /* @__PURE__ */ jsx118(
26654
26726
  TTDDialogInput,
26655
26727
  {
26656
26728
  input: text,
@@ -26661,7 +26733,7 @@ var MermaidToExcalidraw = ({
26661
26733
  }
26662
26734
  }
26663
26735
  ) }),
26664
- /* @__PURE__ */ jsx117(
26736
+ /* @__PURE__ */ jsx118(
26665
26737
  TTDDialogPanel,
26666
26738
  {
26667
26739
  label: t("mermaid.preview"),
@@ -26672,8 +26744,8 @@ var MermaidToExcalidraw = ({
26672
26744
  label: t("mermaid.button"),
26673
26745
  icon: ArrowRightIcon
26674
26746
  },
26675
- renderSubmitShortcut: () => /* @__PURE__ */ jsx117(TTDDialogSubmitShortcut, {}),
26676
- children: /* @__PURE__ */ jsx117(
26747
+ renderSubmitShortcut: () => /* @__PURE__ */ jsx118(TTDDialogSubmitShortcut, {}),
26748
+ children: /* @__PURE__ */ jsx118(
26677
26749
  TTDDialogOutput,
26678
26750
  {
26679
26751
  canvasRef,
@@ -26692,12 +26764,12 @@ var MermaidToExcalidraw_default = MermaidToExcalidraw;
26692
26764
  import * as RadixTabs5 from "@radix-ui/react-tabs";
26693
26765
  import { useRef as useRef32 } from "react";
26694
26766
  import { isMemberOf as isMemberOf2 } from "@excalidraw/common";
26695
- import { jsx as jsx118 } from "react/jsx-runtime";
26767
+ import { jsx as jsx119 } from "react/jsx-runtime";
26696
26768
  var TTDDialogTabs = (props) => {
26697
26769
  const setAppState = useExcalidrawSetAppState();
26698
26770
  const rootRef = useRef32(null);
26699
26771
  const minHeightRef = useRef32(0);
26700
- return /* @__PURE__ */ jsx118(
26772
+ return /* @__PURE__ */ jsx119(
26701
26773
  RadixTabs5.Root,
26702
26774
  {
26703
26775
  ref: rootRef,
@@ -26730,42 +26802,42 @@ var TTDDialogTabs_default = TTDDialogTabs;
26730
26802
 
26731
26803
  // components/TTDDialog/TTDDialogTabTriggers.tsx
26732
26804
  import * as RadixTabs6 from "@radix-ui/react-tabs";
26733
- import { jsx as jsx119 } from "react/jsx-runtime";
26805
+ import { jsx as jsx120 } from "react/jsx-runtime";
26734
26806
  var TTDDialogTabTriggers = ({
26735
26807
  children,
26736
26808
  ...rest
26737
26809
  }) => {
26738
- return /* @__PURE__ */ jsx119(RadixTabs6.List, { className: "ttd-dialog-triggers", ...rest, children });
26810
+ return /* @__PURE__ */ jsx120(RadixTabs6.List, { className: "ttd-dialog-triggers", ...rest, children });
26739
26811
  };
26740
26812
  TTDDialogTabTriggers.displayName = "TTDDialogTabTriggers";
26741
26813
 
26742
26814
  // components/TTDDialog/TTDDialogTabTrigger.tsx
26743
26815
  import * as RadixTabs7 from "@radix-ui/react-tabs";
26744
- import { jsx as jsx120 } from "react/jsx-runtime";
26816
+ import { jsx as jsx121 } from "react/jsx-runtime";
26745
26817
  var TTDDialogTabTrigger = ({
26746
26818
  children,
26747
26819
  tab,
26748
26820
  onSelect,
26749
26821
  ...rest
26750
26822
  }) => {
26751
- return /* @__PURE__ */ jsx120(RadixTabs7.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx120("button", { type: "button", className: "ttd-dialog-tab-trigger", ...rest, children }) });
26823
+ return /* @__PURE__ */ jsx121(RadixTabs7.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx121("button", { type: "button", className: "ttd-dialog-tab-trigger", ...rest, children }) });
26752
26824
  };
26753
26825
  TTDDialogTabTrigger.displayName = "TTDDialogTabTrigger";
26754
26826
 
26755
26827
  // components/TTDDialog/TTDDialogTab.tsx
26756
26828
  import * as RadixTabs8 from "@radix-ui/react-tabs";
26757
- import { jsx as jsx121 } from "react/jsx-runtime";
26829
+ import { jsx as jsx122 } from "react/jsx-runtime";
26758
26830
  var TTDDialogTab = ({
26759
26831
  tab,
26760
26832
  children,
26761
26833
  ...rest
26762
26834
  }) => {
26763
- return /* @__PURE__ */ jsx121(RadixTabs8.Content, { ...rest, value: tab, children });
26835
+ return /* @__PURE__ */ jsx122(RadixTabs8.Content, { ...rest, value: tab, children });
26764
26836
  };
26765
26837
  TTDDialogTab.displayName = "TTDDialogTab";
26766
26838
 
26767
26839
  // components/TTDDialog/TTDDialog.tsx
26768
- import { jsx as jsx122, jsxs as jsxs70 } from "react/jsx-runtime";
26840
+ import { jsx as jsx123, jsxs as jsxs70 } from "react/jsx-runtime";
26769
26841
  var MIN_PROMPT_LENGTH = 3;
26770
26842
  var MAX_PROMPT_LENGTH = 1e3;
26771
26843
  var rateLimitsAtom = atom(null);
@@ -26775,7 +26847,7 @@ var TTDDialog = (props) => {
26775
26847
  if (appState.openDialog?.name !== "ttd") {
26776
26848
  return null;
26777
26849
  }
26778
- return /* @__PURE__ */ jsx122(TTDDialogBase, { ...props, tab: appState.openDialog.tab });
26850
+ return /* @__PURE__ */ jsx123(TTDDialogBase, { ...props, tab: appState.openDialog.tab });
26779
26851
  };
26780
26852
  var TTDDialogBase = withInternalFallback(
26781
26853
  "TTDDialogBase",
@@ -26889,7 +26961,7 @@ TTD mermaid definition render errror: ${error3.message}`,
26889
26961
  }, [mermaidToExcalidrawLib.api]);
26890
26962
  const data = useRef33({ elements: [], files: null });
26891
26963
  const [error, setError] = useState33(null);
26892
- return /* @__PURE__ */ jsx122(
26964
+ return /* @__PURE__ */ jsx123(
26893
26965
  Dialog,
26894
26966
  {
26895
26967
  className: "ttd-dialog",
@@ -26901,10 +26973,10 @@ TTD mermaid definition render errror: ${error3.message}`,
26901
26973
  ...rest,
26902
26974
  autofocus: false,
26903
26975
  children: /* @__PURE__ */ jsxs70(TTDDialogTabs_default, { dialog: "ttd", tab, children: [
26904
- "__fallback" in rest && rest.__fallback ? /* @__PURE__ */ jsx122("p", { className: "dialog-mermaid-title", children: t("mermaid.title") }) : /* @__PURE__ */ jsxs70(TTDDialogTabTriggers, { children: [
26905
- /* @__PURE__ */ jsx122(TTDDialogTabTrigger, { tab: "text-to-diagram", children: /* @__PURE__ */ jsxs70("div", { style: { display: "flex", alignItems: "center" }, children: [
26976
+ "__fallback" in rest && rest.__fallback ? /* @__PURE__ */ jsx123("p", { className: "dialog-mermaid-title", children: t("mermaid.title") }) : /* @__PURE__ */ jsxs70(TTDDialogTabTriggers, { children: [
26977
+ /* @__PURE__ */ jsx123(TTDDialogTabTrigger, { tab: "text-to-diagram", children: /* @__PURE__ */ jsxs70("div", { style: { display: "flex", alignItems: "center" }, children: [
26906
26978
  t("labels.textToDiagram"),
26907
- /* @__PURE__ */ jsx122(
26979
+ /* @__PURE__ */ jsx123(
26908
26980
  "div",
26909
26981
  {
26910
26982
  style: {
@@ -26922,18 +26994,18 @@ TTD mermaid definition render errror: ${error3.message}`,
26922
26994
  }
26923
26995
  )
26924
26996
  ] }) }),
26925
- /* @__PURE__ */ jsx122(TTDDialogTabTrigger, { tab: "mermaid", children: "Mermaid" })
26997
+ /* @__PURE__ */ jsx123(TTDDialogTabTrigger, { tab: "mermaid", children: "Mermaid" })
26926
26998
  ] }),
26927
- /* @__PURE__ */ jsx122(TTDDialogTab, { className: "ttd-dialog-content", tab: "mermaid", children: /* @__PURE__ */ jsx122(
26999
+ /* @__PURE__ */ jsx123(TTDDialogTab, { className: "ttd-dialog-content", tab: "mermaid", children: /* @__PURE__ */ jsx123(
26928
27000
  MermaidToExcalidraw_default,
26929
27001
  {
26930
27002
  mermaidToExcalidrawLib
26931
27003
  }
26932
27004
  ) }),
26933
27005
  !("__fallback" in rest) && /* @__PURE__ */ jsxs70(TTDDialogTab, { className: "ttd-dialog-content", tab: "text-to-diagram", children: [
26934
- /* @__PURE__ */ jsx122("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." }),
27006
+ /* @__PURE__ */ jsx123("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." }),
26935
27007
  /* @__PURE__ */ jsxs70(TTDDialogPanels, { children: [
26936
- /* @__PURE__ */ jsx122(
27008
+ /* @__PURE__ */ jsx123(
26937
27009
  TTDDialogPanel,
26938
27010
  {
26939
27011
  label: t("labels.prompt"),
@@ -26964,7 +27036,7 @@ TTD mermaid definition render errror: ${error3.message}`,
26964
27036
  }
26965
27037
  );
26966
27038
  },
26967
- renderSubmitShortcut: () => /* @__PURE__ */ jsx122(TTDDialogSubmitShortcut, {}),
27039
+ renderSubmitShortcut: () => /* @__PURE__ */ jsx123(TTDDialogSubmitShortcut, {}),
26968
27040
  renderBottomRight: () => {
26969
27041
  if (typeof ttdGeneration?.generatedResponse === "string") {
26970
27042
  return /* @__PURE__ */ jsxs70(
@@ -26984,7 +27056,7 @@ TTD mermaid definition render errror: ${error3.message}`,
26984
27056
  },
26985
27057
  children: [
26986
27058
  "View as Mermaid",
26987
- /* @__PURE__ */ jsx122(InlineIcon, { icon: ArrowRightIcon })
27059
+ /* @__PURE__ */ jsx123(InlineIcon, { icon: ArrowRightIcon })
26988
27060
  ]
26989
27061
  }
26990
27062
  );
@@ -27011,7 +27083,7 @@ TTD mermaid definition render errror: ${error3.message}`,
27011
27083
  }
27012
27084
  return null;
27013
27085
  },
27014
- children: /* @__PURE__ */ jsx122(
27086
+ children: /* @__PURE__ */ jsx123(
27015
27087
  TTDDialogInput,
27016
27088
  {
27017
27089
  onChange: handleTextChange,
@@ -27024,7 +27096,7 @@ TTD mermaid definition render errror: ${error3.message}`,
27024
27096
  )
27025
27097
  }
27026
27098
  ),
27027
- /* @__PURE__ */ jsx122(
27099
+ /* @__PURE__ */ jsx123(
27028
27100
  TTDDialogPanel,
27029
27101
  {
27030
27102
  label: "Preview",
@@ -27036,7 +27108,7 @@ TTD mermaid definition render errror: ${error3.message}`,
27036
27108
  label: "Insert",
27037
27109
  icon: ArrowRightIcon
27038
27110
  },
27039
- children: /* @__PURE__ */ jsx122(
27111
+ children: /* @__PURE__ */ jsx123(
27040
27112
  TTDDialogOutput,
27041
27113
  {
27042
27114
  canvasRef: someRandomDivRef,
@@ -27223,7 +27295,7 @@ var getAtomicUnits = (targetElements, appState) => {
27223
27295
  };
27224
27296
 
27225
27297
  // components/Stats/DragInput.tsx
27226
- import { jsx as jsx123, jsxs as jsxs71 } from "react/jsx-runtime";
27298
+ import { jsx as jsx124, jsxs as jsxs71 } from "react/jsx-runtime";
27227
27299
  var StatsDragInput = ({
27228
27300
  label,
27229
27301
  icon,
@@ -27334,7 +27406,7 @@ var StatsDragInput = ({
27334
27406
  className: clsx56("drag-input-container", !editable && "disabled"),
27335
27407
  "data-testid": label,
27336
27408
  children: [
27337
- /* @__PURE__ */ jsx123(
27409
+ /* @__PURE__ */ jsx124(
27338
27410
  "div",
27339
27411
  {
27340
27412
  className: "drag-input-label",
@@ -27422,10 +27494,10 @@ var StatsDragInput = ({
27422
27494
  labelRef.current.style.cursor = "ew-resize";
27423
27495
  }
27424
27496
  },
27425
- children: icon ? /* @__PURE__ */ jsx123(InlineIcon, { icon }) : label
27497
+ children: icon ? /* @__PURE__ */ jsx124(InlineIcon, { icon }) : label
27426
27498
  }
27427
27499
  ),
27428
- /* @__PURE__ */ jsx123(
27500
+ /* @__PURE__ */ jsx124(
27429
27501
  "input",
27430
27502
  {
27431
27503
  className: "drag-input",
@@ -27472,7 +27544,7 @@ var StatsDragInput = ({
27472
27544
  var DragInput_default = StatsDragInput;
27473
27545
 
27474
27546
  // components/Stats/Angle.tsx
27475
- import { jsx as jsx124 } from "react/jsx-runtime";
27547
+ import { jsx as jsx125 } from "react/jsx-runtime";
27476
27548
  var STEP_SIZE2 = 15;
27477
27549
  var handleDegreeChange = ({
27478
27550
  accumulatedChange,
@@ -27520,7 +27592,7 @@ var handleDegreeChange = ({
27520
27592
  }
27521
27593
  };
27522
27594
  var Angle = ({ element, scene, appState, property }) => {
27523
- return /* @__PURE__ */ jsx124(
27595
+ return /* @__PURE__ */ jsx125(
27524
27596
  DragInput_default,
27525
27597
  {
27526
27598
  label: "A",
@@ -27538,7 +27610,7 @@ var Angle = ({ element, scene, appState, property }) => {
27538
27610
  var Angle_default = Angle;
27539
27611
 
27540
27612
  // components/Stats/CanvasGrid.tsx
27541
- import { jsx as jsx125 } from "react/jsx-runtime";
27613
+ import { jsx as jsx126 } from "react/jsx-runtime";
27542
27614
  var STEP_SIZE3 = 5;
27543
27615
  var CanvasGrid = ({
27544
27616
  property,
@@ -27546,7 +27618,7 @@ var CanvasGrid = ({
27546
27618
  appState,
27547
27619
  setAppState
27548
27620
  }) => {
27549
- return /* @__PURE__ */ jsx125(
27621
+ return /* @__PURE__ */ jsx126(
27550
27622
  DragInput_default,
27551
27623
  {
27552
27624
  label: "Grid step",
@@ -27600,7 +27672,7 @@ import { isImageElement as isImageElement4 } from "@excalidraw/element";
27600
27672
  import { isFrameLikeElement as isFrameLikeElement12 } from "@excalidraw/element";
27601
27673
  import { getElementsInResizingFrame as getElementsInResizingFrame2 } from "@excalidraw/element";
27602
27674
  import { replaceAllElementsInFrame as replaceAllElementsInFrame2 } from "@excalidraw/element";
27603
- import { jsx as jsx126 } from "react/jsx-runtime";
27675
+ import { jsx as jsx127 } from "react/jsx-runtime";
27604
27676
  var STEP_SIZE4 = 10;
27605
27677
  var _shouldKeepAspectRatio = (element) => {
27606
27678
  return element.type === "image";
@@ -27838,7 +27910,7 @@ var DimensionDragInput = ({
27838
27910
  value = round3(element.crop.height * ratio, 2);
27839
27911
  }
27840
27912
  }
27841
- return /* @__PURE__ */ jsx126(
27913
+ return /* @__PURE__ */ jsx127(
27842
27914
  DragInput_default,
27843
27915
  {
27844
27916
  label: property === "width" ? "W" : "H",
@@ -27861,7 +27933,7 @@ import {
27861
27933
  redrawTextBoundingBox as redrawTextBoundingBox6
27862
27934
  } from "@excalidraw/element";
27863
27935
  import { hasBoundTextElement as hasBoundTextElement7, isTextElement as isTextElement13 } from "@excalidraw/element";
27864
- import { jsx as jsx127 } from "react/jsx-runtime";
27936
+ import { jsx as jsx128 } from "react/jsx-runtime";
27865
27937
  var MIN_FONT_SIZE = 4;
27866
27938
  var STEP_SIZE5 = 4;
27867
27939
  var handleFontSizeChange = ({
@@ -27909,7 +27981,7 @@ var FontSize = ({ element, scene, appState, property }) => {
27909
27981
  if (!_element) {
27910
27982
  return null;
27911
27983
  }
27912
- return /* @__PURE__ */ jsx127(
27984
+ return /* @__PURE__ */ jsx128(
27913
27985
  DragInput_default,
27914
27986
  {
27915
27987
  label: "F",
@@ -27930,7 +28002,7 @@ import { degreesToRadians as degreesToRadians3, radiansToDegrees as radiansToDeg
27930
28002
  import { getBoundTextElement as getBoundTextElement12 } from "@excalidraw/element";
27931
28003
  import { isArrowElement as isArrowElement12 } from "@excalidraw/element";
27932
28004
  import { isInGroup as isInGroup2 } from "@excalidraw/element";
27933
- import { jsx as jsx128 } from "react/jsx-runtime";
28005
+ import { jsx as jsx129 } from "react/jsx-runtime";
27934
28006
  var STEP_SIZE6 = 15;
27935
28007
  var handleDegreeChange2 = ({
27936
28008
  accumulatedChange,
@@ -28002,7 +28074,7 @@ var MultiAngle = ({
28002
28074
  const editable = editableLatestIndividualElements.some(
28003
28075
  (el) => isPropertyEditable(el, "angle")
28004
28076
  );
28005
- return /* @__PURE__ */ jsx128(
28077
+ return /* @__PURE__ */ jsx129(
28006
28078
  DragInput_default,
28007
28079
  {
28008
28080
  label: "A",
@@ -28040,7 +28112,7 @@ import { isTextElement as isTextElement14 } from "@excalidraw/element";
28040
28112
  import { getCommonBounds as getCommonBounds6 } from "@excalidraw/element";
28041
28113
 
28042
28114
  // components/Stats/MultiDimension.tsx
28043
- import { jsx as jsx129 } from "react/jsx-runtime";
28115
+ import { jsx as jsx130 } from "react/jsx-runtime";
28044
28116
  var STEP_SIZE7 = 10;
28045
28117
  var getResizedUpdates = (anchorX, anchorY, scale, origElement) => {
28046
28118
  const offsetX = origElement.x - anchorX;
@@ -28361,7 +28433,7 @@ var MultiDimension = ({
28361
28433
  );
28362
28434
  const value = new Set(sizes).size === 1 ? Math.round(sizes[0] * 100) / 100 : "Mixed";
28363
28435
  const editable = sizes.length > 0;
28364
- return /* @__PURE__ */ jsx129(
28436
+ return /* @__PURE__ */ jsx130(
28365
28437
  DragInput_default,
28366
28438
  {
28367
28439
  label: property === "width" ? "W" : "H",
@@ -28385,7 +28457,7 @@ import {
28385
28457
  } from "@excalidraw/element";
28386
28458
  import { hasBoundTextElement as hasBoundTextElement8, isTextElement as isTextElement15 } from "@excalidraw/element";
28387
28459
  import { isInGroup as isInGroup3 } from "@excalidraw/element";
28388
- import { jsx as jsx130 } from "react/jsx-runtime";
28460
+ import { jsx as jsx131 } from "react/jsx-runtime";
28389
28461
  var MIN_FONT_SIZE2 = 4;
28390
28462
  var STEP_SIZE8 = 4;
28391
28463
  var getApplicableTextElements = (elements, elementsMap) => elements.reduce(
@@ -28475,7 +28547,7 @@ var MultiFontSize = ({
28475
28547
  );
28476
28548
  const value = new Set(fontSizes).size === 1 ? fontSizes[0] : "Mixed";
28477
28549
  const editable = fontSizes.length > 0;
28478
- return /* @__PURE__ */ jsx130(
28550
+ return /* @__PURE__ */ jsx131(
28479
28551
  DragInput_default,
28480
28552
  {
28481
28553
  label: "F",
@@ -28497,7 +28569,7 @@ import { pointFrom as pointFrom25, pointRotateRads as pointRotateRads17 } from "
28497
28569
  import { useMemo as useMemo10 } from "react";
28498
28570
  import { isTextElement as isTextElement16 } from "@excalidraw/element";
28499
28571
  import { getCommonBounds as getCommonBounds7 } from "@excalidraw/element";
28500
- import { jsx as jsx131 } from "react/jsx-runtime";
28572
+ import { jsx as jsx132 } from "react/jsx-runtime";
28501
28573
  var moveElements = (property, changeInTopX, changeInTopY, originalElements, originalElementsMap, scene, appState) => {
28502
28574
  for (let i = 0; i < originalElements.length; i++) {
28503
28575
  const origElement = originalElements[i];
@@ -28663,7 +28735,7 @@ var MultiPosition = ({
28663
28735
  [atomicUnits, elementsMap, property]
28664
28736
  );
28665
28737
  const value = new Set(positions).size === 1 ? positions[0] : "Mixed";
28666
- return /* @__PURE__ */ jsx131(
28738
+ return /* @__PURE__ */ jsx132(
28667
28739
  DragInput_default,
28668
28740
  {
28669
28741
  label: property === "x" ? "X" : "Y",
@@ -28685,7 +28757,7 @@ import {
28685
28757
  getUncroppedWidthAndHeight as getUncroppedWidthAndHeight2
28686
28758
  } from "@excalidraw/element";
28687
28759
  import { isImageElement as isImageElement5 } from "@excalidraw/element";
28688
- import { jsx as jsx132 } from "react/jsx-runtime";
28760
+ import { jsx as jsx133 } from "react/jsx-runtime";
28689
28761
  var handlePositionChange2 = ({
28690
28762
  accumulatedChange,
28691
28763
  instantChange,
@@ -28821,7 +28893,7 @@ var Position = ({
28821
28893
  );
28822
28894
  }
28823
28895
  }
28824
- return /* @__PURE__ */ jsx132(
28896
+ return /* @__PURE__ */ jsx133(
28825
28897
  DragInput_default,
28826
28898
  {
28827
28899
  label: property === "x" ? "X" : "Y",
@@ -28837,7 +28909,7 @@ var Position = ({
28837
28909
  var Position_default = Position;
28838
28910
 
28839
28911
  // components/Stats/index.tsx
28840
- import { Fragment as Fragment20, jsx as jsx133, jsxs as jsxs72 } from "react/jsx-runtime";
28912
+ import { Fragment as Fragment20, jsx as jsx134, jsxs as jsxs72 } from "react/jsx-runtime";
28841
28913
  var STATS_TIMEOUT = 50;
28842
28914
  var Stats = (props) => {
28843
28915
  const appState = useExcalidrawAppState();
@@ -28847,7 +28919,7 @@ var Stats = (props) => {
28847
28919
  includeBoundTextElement: false
28848
28920
  });
28849
28921
  const gridModeEnabled = isGridModeEnabled(props.app);
28850
- return /* @__PURE__ */ jsx133(
28922
+ return /* @__PURE__ */ jsx134(
28851
28923
  StatsInner,
28852
28924
  {
28853
28925
  ...props,
@@ -28864,7 +28936,7 @@ var StatsRow = ({
28864
28936
  heading,
28865
28937
  style,
28866
28938
  ...rest
28867
- }) => /* @__PURE__ */ jsx133(
28939
+ }) => /* @__PURE__ */ jsx134(
28868
28940
  "div",
28869
28941
  {
28870
28942
  className: clsx57("exc-stats__row", { "exc-stats__row--heading": heading }),
@@ -28882,7 +28954,7 @@ var StatsRows = ({
28882
28954
  order,
28883
28955
  style,
28884
28956
  ...rest
28885
- }) => /* @__PURE__ */ jsx133("div", { className: "exc-stats__rows", style: { order, ...style }, ...rest, children });
28957
+ }) => /* @__PURE__ */ jsx134("div", { className: "exc-stats__rows", style: { order, ...style }, ...rest, children });
28886
28958
  StatsRows.displayName = "StatsRows";
28887
28959
  Stats.StatsRow = StatsRow;
28888
28960
  Stats.StatsRows = StatsRows;
@@ -28931,7 +29003,7 @@ var StatsInner = memo5(
28931
29003
  const _frameAndChildrenSelectedTogether = useMemo11(() => {
28932
29004
  return frameAndChildrenSelectedTogether2(selectedElements);
28933
29005
  }, [selectedElements]);
28934
- return /* @__PURE__ */ jsx133(
29006
+ return /* @__PURE__ */ jsx134(
28935
29007
  "div",
28936
29008
  {
28937
29009
  className: clsx57("exc-stats", {
@@ -28939,13 +29011,13 @@ var StatsInner = memo5(
28939
29011
  }),
28940
29012
  children: /* @__PURE__ */ jsxs72(Island, { padding: 3, children: [
28941
29013
  /* @__PURE__ */ jsxs72("div", { className: "title", children: [
28942
- /* @__PURE__ */ jsx133("h2", { children: t("stats.title") }),
28943
- /* @__PURE__ */ jsx133("div", { className: "close", onClick: onClose, children: CloseIcon })
29014
+ /* @__PURE__ */ jsx134("h2", { children: t("stats.title") }),
29015
+ /* @__PURE__ */ jsx134("div", { className: "close", onClick: onClose, children: CloseIcon })
28944
29016
  ] }),
28945
29017
  /* @__PURE__ */ jsxs72(
28946
29018
  Collapsible_default,
28947
29019
  {
28948
- label: /* @__PURE__ */ jsx133("h3", { children: t("stats.generalStats") }),
29020
+ label: /* @__PURE__ */ jsx134("h3", { children: t("stats.generalStats") }),
28949
29021
  open: !!(appState.stats.panels & STATS_PANELS.generalStats),
28950
29022
  openTrigger: () => setAppState((state) => {
28951
29023
  return {
@@ -28957,22 +29029,22 @@ var StatsInner = memo5(
28957
29029
  }),
28958
29030
  children: [
28959
29031
  /* @__PURE__ */ jsxs72(StatsRows, { children: [
28960
- /* @__PURE__ */ jsx133(StatsRow, { heading: true, children: t("stats.scene") }),
29032
+ /* @__PURE__ */ jsx134(StatsRow, { heading: true, children: t("stats.scene") }),
28961
29033
  /* @__PURE__ */ jsxs72(StatsRow, { columns: 2, children: [
28962
- /* @__PURE__ */ jsx133("div", { children: t("stats.shapes") }),
28963
- /* @__PURE__ */ jsx133("div", { children: elements.length })
29034
+ /* @__PURE__ */ jsx134("div", { children: t("stats.shapes") }),
29035
+ /* @__PURE__ */ jsx134("div", { children: elements.length })
28964
29036
  ] }),
28965
29037
  /* @__PURE__ */ jsxs72(StatsRow, { columns: 2, children: [
28966
- /* @__PURE__ */ jsx133("div", { children: t("stats.width") }),
28967
- /* @__PURE__ */ jsx133("div", { children: sceneDimension.width })
29038
+ /* @__PURE__ */ jsx134("div", { children: t("stats.width") }),
29039
+ /* @__PURE__ */ jsx134("div", { children: sceneDimension.width })
28968
29040
  ] }),
28969
29041
  /* @__PURE__ */ jsxs72(StatsRow, { columns: 2, children: [
28970
- /* @__PURE__ */ jsx133("div", { children: t("stats.height") }),
28971
- /* @__PURE__ */ jsx133("div", { children: sceneDimension.height })
29042
+ /* @__PURE__ */ jsx134("div", { children: t("stats.height") }),
29043
+ /* @__PURE__ */ jsx134("div", { children: sceneDimension.height })
28972
29044
  ] }),
28973
29045
  gridModeEnabled && /* @__PURE__ */ jsxs72(Fragment20, { children: [
28974
- /* @__PURE__ */ jsx133(StatsRow, { heading: true, children: "Canvas" }),
28975
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29046
+ /* @__PURE__ */ jsx134(StatsRow, { heading: true, children: "Canvas" }),
29047
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
28976
29048
  CanvasGrid_default,
28977
29049
  {
28978
29050
  property: "gridStep",
@@ -28987,17 +29059,17 @@ var StatsInner = memo5(
28987
29059
  ]
28988
29060
  }
28989
29061
  ),
28990
- !_frameAndChildrenSelectedTogether && selectedElements.length > 0 && /* @__PURE__ */ jsx133(
29062
+ !_frameAndChildrenSelectedTogether && selectedElements.length > 0 && /* @__PURE__ */ jsx134(
28991
29063
  "div",
28992
29064
  {
28993
29065
  id: "elementStats",
28994
29066
  style: {
28995
29067
  marginTop: 12
28996
29068
  },
28997
- children: /* @__PURE__ */ jsx133(
29069
+ children: /* @__PURE__ */ jsx134(
28998
29070
  Collapsible_default,
28999
29071
  {
29000
- label: /* @__PURE__ */ jsx133("h3", { children: t("stats.elementProperties") }),
29072
+ label: /* @__PURE__ */ jsx134("h3", { children: t("stats.elementProperties") }),
29001
29073
  open: !!(appState.stats.panels & STATS_PANELS.elementProperties),
29002
29074
  openTrigger: () => setAppState((state) => {
29003
29075
  return {
@@ -29009,16 +29081,16 @@ var StatsInner = memo5(
29009
29081
  }),
29010
29082
  children: /* @__PURE__ */ jsxs72(StatsRows, { children: [
29011
29083
  singleElement && /* @__PURE__ */ jsxs72(Fragment20, { children: [
29012
- cropMode && /* @__PURE__ */ jsx133(StatsRow, { heading: true, children: t("labels.unCroppedDimension") }),
29084
+ cropMode && /* @__PURE__ */ jsx134(StatsRow, { heading: true, children: t("labels.unCroppedDimension") }),
29013
29085
  appState.croppingElementId && isImageElement6(singleElement) && unCroppedDimension && /* @__PURE__ */ jsxs72(StatsRow, { columns: 2, children: [
29014
- /* @__PURE__ */ jsx133("div", { children: t("stats.width") }),
29015
- /* @__PURE__ */ jsx133("div", { children: round5(unCroppedDimension.width, 2) })
29086
+ /* @__PURE__ */ jsx134("div", { children: t("stats.width") }),
29087
+ /* @__PURE__ */ jsx134("div", { children: round5(unCroppedDimension.width, 2) })
29016
29088
  ] }),
29017
29089
  appState.croppingElementId && isImageElement6(singleElement) && unCroppedDimension && /* @__PURE__ */ jsxs72(StatsRow, { columns: 2, children: [
29018
- /* @__PURE__ */ jsx133("div", { children: t("stats.height") }),
29019
- /* @__PURE__ */ jsx133("div", { children: round5(unCroppedDimension.height, 2) })
29090
+ /* @__PURE__ */ jsx134("div", { children: t("stats.height") }),
29091
+ /* @__PURE__ */ jsx134("div", { children: round5(unCroppedDimension.height, 2) })
29020
29092
  ] }),
29021
- /* @__PURE__ */ jsx133(
29093
+ /* @__PURE__ */ jsx134(
29022
29094
  StatsRow,
29023
29095
  {
29024
29096
  heading: true,
@@ -29027,7 +29099,7 @@ var StatsInner = memo5(
29027
29099
  children: appState.croppingElementId ? t("labels.imageCropping") : t(`element.${singleElement.type}`)
29028
29100
  }
29029
29101
  ),
29030
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29102
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29031
29103
  Position_default,
29032
29104
  {
29033
29105
  element: singleElement,
@@ -29037,7 +29109,7 @@ var StatsInner = memo5(
29037
29109
  appState
29038
29110
  }
29039
29111
  ) }),
29040
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29112
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29041
29113
  Position_default,
29042
29114
  {
29043
29115
  element: singleElement,
@@ -29047,7 +29119,7 @@ var StatsInner = memo5(
29047
29119
  appState
29048
29120
  }
29049
29121
  ) }),
29050
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29122
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29051
29123
  Dimension_default,
29052
29124
  {
29053
29125
  property: "width",
@@ -29056,7 +29128,7 @@ var StatsInner = memo5(
29056
29128
  appState
29057
29129
  }
29058
29130
  ) }),
29059
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29131
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29060
29132
  Dimension_default,
29061
29133
  {
29062
29134
  property: "height",
@@ -29065,7 +29137,7 @@ var StatsInner = memo5(
29065
29137
  appState
29066
29138
  }
29067
29139
  ) }),
29068
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29140
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29069
29141
  Angle_default,
29070
29142
  {
29071
29143
  property: "angle",
@@ -29074,7 +29146,7 @@ var StatsInner = memo5(
29074
29146
  appState
29075
29147
  }
29076
29148
  ) }),
29077
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29149
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29078
29150
  FontSize_default,
29079
29151
  {
29080
29152
  property: "fontSize",
@@ -29085,12 +29157,12 @@ var StatsInner = memo5(
29085
29157
  ) })
29086
29158
  ] }),
29087
29159
  multipleElements && /* @__PURE__ */ jsxs72(Fragment20, { children: [
29088
- elementsAreInSameGroup2(multipleElements) && /* @__PURE__ */ jsx133(StatsRow, { heading: true, children: t("element.group") }),
29160
+ elementsAreInSameGroup2(multipleElements) && /* @__PURE__ */ jsx134(StatsRow, { heading: true, children: t("element.group") }),
29089
29161
  /* @__PURE__ */ jsxs72(StatsRow, { columns: 2, style: { margin: "0.3125rem 0" }, children: [
29090
- /* @__PURE__ */ jsx133("div", { children: t("stats.shapes") }),
29091
- /* @__PURE__ */ jsx133("div", { children: selectedElements.length })
29162
+ /* @__PURE__ */ jsx134("div", { children: t("stats.shapes") }),
29163
+ /* @__PURE__ */ jsx134("div", { children: selectedElements.length })
29092
29164
  ] }),
29093
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29165
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29094
29166
  MultiPosition_default,
29095
29167
  {
29096
29168
  property: "x",
@@ -29101,7 +29173,7 @@ var StatsInner = memo5(
29101
29173
  appState
29102
29174
  }
29103
29175
  ) }),
29104
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29176
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29105
29177
  MultiPosition_default,
29106
29178
  {
29107
29179
  property: "y",
@@ -29112,7 +29184,7 @@ var StatsInner = memo5(
29112
29184
  appState
29113
29185
  }
29114
29186
  ) }),
29115
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29187
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29116
29188
  MultiDimension_default,
29117
29189
  {
29118
29190
  property: "width",
@@ -29123,7 +29195,7 @@ var StatsInner = memo5(
29123
29195
  appState
29124
29196
  }
29125
29197
  ) }),
29126
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29198
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29127
29199
  MultiDimension_default,
29128
29200
  {
29129
29201
  property: "height",
@@ -29134,7 +29206,7 @@ var StatsInner = memo5(
29134
29206
  appState
29135
29207
  }
29136
29208
  ) }),
29137
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29209
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29138
29210
  MultiAngle_default,
29139
29211
  {
29140
29212
  property: "angle",
@@ -29143,7 +29215,7 @@ var StatsInner = memo5(
29143
29215
  appState
29144
29216
  }
29145
29217
  ) }),
29146
- /* @__PURE__ */ jsx133(StatsRow, { children: /* @__PURE__ */ jsx133(
29218
+ /* @__PURE__ */ jsx134(StatsRow, { children: /* @__PURE__ */ jsx134(
29147
29219
  MultiFontSize_default,
29148
29220
  {
29149
29221
  property: "fontSize",
@@ -29175,7 +29247,7 @@ import {
29175
29247
  defaultGetElementLinkFromSelection as defaultGetElementLinkFromSelection2,
29176
29248
  getLinkIdAndTypeFromSelection as getLinkIdAndTypeFromSelection2
29177
29249
  } from "@excalidraw/element";
29178
- import { jsx as jsx134, jsxs as jsxs73 } from "react/jsx-runtime";
29250
+ import { jsx as jsx135, jsxs as jsxs73 } from "react/jsx-runtime";
29179
29251
  var ElementLinkDialog = ({
29180
29252
  sourceElementId,
29181
29253
  onClose,
@@ -29240,11 +29312,11 @@ var ElementLinkDialog = ({
29240
29312
  }, [appState, onClose, handleConfirm]);
29241
29313
  return /* @__PURE__ */ jsxs73("div", { className: "ElementLinkDialog", children: [
29242
29314
  /* @__PURE__ */ jsxs73("div", { className: "ElementLinkDialog__header", children: [
29243
- /* @__PURE__ */ jsx134("h2", { children: t("elementLink.title") }),
29244
- /* @__PURE__ */ jsx134("p", { children: t("elementLink.desc") })
29315
+ /* @__PURE__ */ jsx135("h2", { children: t("elementLink.title") }),
29316
+ /* @__PURE__ */ jsx135("p", { children: t("elementLink.desc") })
29245
29317
  ] }),
29246
29318
  /* @__PURE__ */ jsxs73("div", { className: "ElementLinkDialog__input", children: [
29247
- /* @__PURE__ */ jsx134(
29319
+ /* @__PURE__ */ jsx135(
29248
29320
  TextField,
29249
29321
  {
29250
29322
  value: nextLink ?? "",
@@ -29263,7 +29335,7 @@ var ElementLinkDialog = ({
29263
29335
  selectOnRender: true
29264
29336
  }
29265
29337
  ),
29266
- originalLink && nextLink && /* @__PURE__ */ jsx134(
29338
+ originalLink && nextLink && /* @__PURE__ */ jsx135(
29267
29339
  ToolButton,
29268
29340
  {
29269
29341
  type: "button",
@@ -29280,7 +29352,7 @@ var ElementLinkDialog = ({
29280
29352
  )
29281
29353
  ] }),
29282
29354
  /* @__PURE__ */ jsxs73("div", { className: "ElementLinkDialog__actions", children: [
29283
- /* @__PURE__ */ jsx134(
29355
+ /* @__PURE__ */ jsx135(
29284
29356
  DialogActionButton_default,
29285
29357
  {
29286
29358
  label: t("buttons.cancel"),
@@ -29292,7 +29364,7 @@ var ElementLinkDialog = ({
29292
29364
  }
29293
29365
  }
29294
29366
  ),
29295
- /* @__PURE__ */ jsx134(
29367
+ /* @__PURE__ */ jsx135(
29296
29368
  DialogActionButton_default,
29297
29369
  {
29298
29370
  label: t("buttons.confirm"),
@@ -29307,7 +29379,7 @@ var ElementLinkDialog_default = ElementLinkDialog;
29307
29379
 
29308
29380
  // components/ErrorDialog.tsx
29309
29381
  import React38, { useState as useState37 } from "react";
29310
- import { Fragment as Fragment21, jsx as jsx135 } from "react/jsx-runtime";
29382
+ import { Fragment as Fragment21, jsx as jsx136 } from "react/jsx-runtime";
29311
29383
  var ErrorDialog = ({
29312
29384
  children,
29313
29385
  onClose
@@ -29321,13 +29393,13 @@ var ErrorDialog = ({
29321
29393
  }
29322
29394
  excalidrawContainer?.focus();
29323
29395
  }, [onClose, excalidrawContainer]);
29324
- return /* @__PURE__ */ jsx135(Fragment21, { children: modalIsShown && /* @__PURE__ */ jsx135(
29396
+ return /* @__PURE__ */ jsx136(Fragment21, { children: modalIsShown && /* @__PURE__ */ jsx136(
29325
29397
  Dialog,
29326
29398
  {
29327
29399
  size: "small",
29328
29400
  onCloseRequest: handleClose,
29329
29401
  title: t("errorDialog.title"),
29330
- children: /* @__PURE__ */ jsx135("div", { style: { whiteSpace: "pre-wrap" }, children })
29402
+ children: /* @__PURE__ */ jsx136("div", { style: { whiteSpace: "pre-wrap" }, children })
29331
29403
  }
29332
29404
  ) });
29333
29405
  };
@@ -29336,7 +29408,7 @@ var ErrorDialog = ({
29336
29408
  import React39 from "react";
29337
29409
  import { isDarwin as isDarwin4, isFirefox as isFirefox3, isWindows as isWindows2 } from "@excalidraw/common";
29338
29410
  import { KEYS as KEYS53 } from "@excalidraw/common";
29339
- import { Fragment as Fragment22, jsx as jsx136, jsxs as jsxs74 } from "react/jsx-runtime";
29411
+ import { Fragment as Fragment22, jsx as jsx137, jsxs as jsxs74 } from "react/jsx-runtime";
29340
29412
  var Header = () => /* @__PURE__ */ jsxs74("div", { className: "HelpDialog__header", children: [
29341
29413
  /* @__PURE__ */ jsxs74(
29342
29414
  "a",
@@ -29346,7 +29418,7 @@ var Header = () => /* @__PURE__ */ jsxs74("div", { className: "HelpDialog__heade
29346
29418
  target: "_blank",
29347
29419
  rel: "noopener",
29348
29420
  children: [
29349
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__link-icon", children: ExternalLinkIcon }),
29421
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__link-icon", children: ExternalLinkIcon }),
29350
29422
  t("helpDialog.documentation")
29351
29423
  ]
29352
29424
  }
@@ -29359,7 +29431,7 @@ var Header = () => /* @__PURE__ */ jsxs74("div", { className: "HelpDialog__heade
29359
29431
  target: "_blank",
29360
29432
  rel: "noopener",
29361
29433
  children: [
29362
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__link-icon", children: ExternalLinkIcon }),
29434
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__link-icon", children: ExternalLinkIcon }),
29363
29435
  t("helpDialog.blog")
29364
29436
  ]
29365
29437
  }
@@ -29372,7 +29444,7 @@ var Header = () => /* @__PURE__ */ jsxs74("div", { className: "HelpDialog__heade
29372
29444
  target: "_blank",
29373
29445
  rel: "noopener noreferrer",
29374
29446
  children: [
29375
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__link-icon", children: GithubIcon }),
29447
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__link-icon", children: GithubIcon }),
29376
29448
  t("helpDialog.github")
29377
29449
  ]
29378
29450
  }
@@ -29385,19 +29457,19 @@ var Header = () => /* @__PURE__ */ jsxs74("div", { className: "HelpDialog__heade
29385
29457
  target: "_blank",
29386
29458
  rel: "noopener noreferrer",
29387
29459
  children: [
29388
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__link-icon", children: youtubeIcon }),
29460
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__link-icon", children: youtubeIcon }),
29389
29461
  "YouTube"
29390
29462
  ]
29391
29463
  }
29392
29464
  )
29393
29465
  ] });
29394
29466
  var Section2 = (props) => /* @__PURE__ */ jsxs74(Fragment22, { children: [
29395
- /* @__PURE__ */ jsx136("h3", { children: props.title }),
29396
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__islands-container", children: props.children })
29467
+ /* @__PURE__ */ jsx137("h3", { children: props.title }),
29468
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__islands-container", children: props.children })
29397
29469
  ] });
29398
29470
  var ShortcutIsland = (props) => /* @__PURE__ */ jsxs74("div", { className: `HelpDialog__island ${props.className}`, children: [
29399
- /* @__PURE__ */ jsx136("h4", { className: "HelpDialog__island-title", children: props.caption }),
29400
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__island-content", children: props.children })
29471
+ /* @__PURE__ */ jsx137("h4", { className: "HelpDialog__island-title", children: props.caption }),
29472
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__island-content", children: props.children })
29401
29473
  ] });
29402
29474
  function* intersperse(as, delim) {
29403
29475
  let first = true;
@@ -29419,28 +29491,28 @@ var Shortcut = ({
29419
29491
  }) => {
29420
29492
  const splitShortcutKeys = shortcuts.map((shortcut) => {
29421
29493
  const keys = shortcut.endsWith("++") ? [...shortcut.slice(0, -2).split("+"), "+"] : shortcut.split("+");
29422
- return keys.map((key) => /* @__PURE__ */ jsx136(ShortcutKey, { children: upperCaseSingleChars(key) }, key));
29494
+ return keys.map((key) => /* @__PURE__ */ jsx137(ShortcutKey, { children: upperCaseSingleChars(key) }, key));
29423
29495
  });
29424
29496
  return /* @__PURE__ */ jsxs74("div", { className: "HelpDialog__shortcut", children: [
29425
- /* @__PURE__ */ jsx136("div", { children: label }),
29426
- /* @__PURE__ */ jsx136("div", { className: "HelpDialog__key-container", children: [...intersperse(splitShortcutKeys, isOr ? t("helpDialog.or") : null)] })
29497
+ /* @__PURE__ */ jsx137("div", { children: label }),
29498
+ /* @__PURE__ */ jsx137("div", { className: "HelpDialog__key-container", children: [...intersperse(splitShortcutKeys, isOr ? t("helpDialog.or") : null)] })
29427
29499
  ] });
29428
29500
  };
29429
- var ShortcutKey = (props) => /* @__PURE__ */ jsx136("kbd", { className: "HelpDialog__key", ...props });
29501
+ var ShortcutKey = (props) => /* @__PURE__ */ jsx137("kbd", { className: "HelpDialog__key", ...props });
29430
29502
  var HelpDialog = ({ onClose }) => {
29431
29503
  const handleClose = React39.useCallback(() => {
29432
29504
  if (onClose) {
29433
29505
  onClose();
29434
29506
  }
29435
29507
  }, [onClose]);
29436
- return /* @__PURE__ */ jsx136(Fragment22, { children: /* @__PURE__ */ jsxs74(
29508
+ return /* @__PURE__ */ jsx137(Fragment22, { children: /* @__PURE__ */ jsxs74(
29437
29509
  Dialog,
29438
29510
  {
29439
29511
  onCloseRequest: handleClose,
29440
29512
  title: t("helpDialog.title"),
29441
29513
  className: "HelpDialog",
29442
29514
  children: [
29443
- /* @__PURE__ */ jsx136(Header, {}),
29515
+ /* @__PURE__ */ jsx137(Header, {}),
29444
29516
  /* @__PURE__ */ jsxs74(Section2, { title: t("helpDialog.shortcuts"), children: [
29445
29517
  /* @__PURE__ */ jsxs74(
29446
29518
  ShortcutIsland,
@@ -29448,95 +29520,95 @@ var HelpDialog = ({ onClose }) => {
29448
29520
  className: "HelpDialog__island--tools",
29449
29521
  caption: t("helpDialog.tools"),
29450
29522
  children: [
29451
- /* @__PURE__ */ jsx136(Shortcut, { label: t("toolBar.hand"), shortcuts: [KEYS53.H] }),
29452
- /* @__PURE__ */ jsx136(
29523
+ /* @__PURE__ */ jsx137(Shortcut, { label: t("toolBar.hand"), shortcuts: [KEYS53.H] }),
29524
+ /* @__PURE__ */ jsx137(
29453
29525
  Shortcut,
29454
29526
  {
29455
29527
  label: t("toolBar.selection"),
29456
29528
  shortcuts: [KEYS53.V, KEYS53["1"]]
29457
29529
  }
29458
29530
  ),
29459
- /* @__PURE__ */ jsx136(
29531
+ /* @__PURE__ */ jsx137(
29460
29532
  Shortcut,
29461
29533
  {
29462
29534
  label: t("toolBar.rectangle"),
29463
29535
  shortcuts: [KEYS53.R, KEYS53["2"]]
29464
29536
  }
29465
29537
  ),
29466
- /* @__PURE__ */ jsx136(
29538
+ /* @__PURE__ */ jsx137(
29467
29539
  Shortcut,
29468
29540
  {
29469
29541
  label: t("toolBar.diamond"),
29470
29542
  shortcuts: [KEYS53.D, KEYS53["3"]]
29471
29543
  }
29472
29544
  ),
29473
- /* @__PURE__ */ jsx136(
29545
+ /* @__PURE__ */ jsx137(
29474
29546
  Shortcut,
29475
29547
  {
29476
29548
  label: t("toolBar.ellipse"),
29477
29549
  shortcuts: [KEYS53.O, KEYS53["4"]]
29478
29550
  }
29479
29551
  ),
29480
- /* @__PURE__ */ jsx136(
29552
+ /* @__PURE__ */ jsx137(
29481
29553
  Shortcut,
29482
29554
  {
29483
29555
  label: t("toolBar.arrow"),
29484
29556
  shortcuts: [KEYS53.A, KEYS53["5"]]
29485
29557
  }
29486
29558
  ),
29487
- /* @__PURE__ */ jsx136(
29559
+ /* @__PURE__ */ jsx137(
29488
29560
  Shortcut,
29489
29561
  {
29490
29562
  label: t("toolBar.line"),
29491
29563
  shortcuts: [KEYS53.L, KEYS53["6"]]
29492
29564
  }
29493
29565
  ),
29494
- /* @__PURE__ */ jsx136(
29566
+ /* @__PURE__ */ jsx137(
29495
29567
  Shortcut,
29496
29568
  {
29497
29569
  label: t("toolBar.freedraw"),
29498
29570
  shortcuts: [KEYS53.P, KEYS53["7"]]
29499
29571
  }
29500
29572
  ),
29501
- /* @__PURE__ */ jsx136(
29573
+ /* @__PURE__ */ jsx137(
29502
29574
  Shortcut,
29503
29575
  {
29504
29576
  label: t("toolBar.text"),
29505
29577
  shortcuts: [KEYS53.T, KEYS53["8"]]
29506
29578
  }
29507
29579
  ),
29508
- /* @__PURE__ */ jsx136(Shortcut, { label: t("toolBar.image"), shortcuts: [KEYS53["9"]] }),
29509
- /* @__PURE__ */ jsx136(
29580
+ /* @__PURE__ */ jsx137(Shortcut, { label: t("toolBar.image"), shortcuts: [KEYS53["9"]] }),
29581
+ /* @__PURE__ */ jsx137(
29510
29582
  Shortcut,
29511
29583
  {
29512
29584
  label: t("toolBar.eraser"),
29513
29585
  shortcuts: [KEYS53.E, KEYS53["0"]]
29514
29586
  }
29515
29587
  ),
29516
- /* @__PURE__ */ jsx136(Shortcut, { label: t("toolBar.frame"), shortcuts: [KEYS53.F] }),
29517
- /* @__PURE__ */ jsx136(Shortcut, { label: t("toolBar.laser"), shortcuts: [KEYS53.K] }),
29518
- /* @__PURE__ */ jsx136(
29588
+ /* @__PURE__ */ jsx137(Shortcut, { label: t("toolBar.frame"), shortcuts: [KEYS53.F] }),
29589
+ /* @__PURE__ */ jsx137(Shortcut, { label: t("toolBar.laser"), shortcuts: [KEYS53.K] }),
29590
+ /* @__PURE__ */ jsx137(
29519
29591
  Shortcut,
29520
29592
  {
29521
29593
  label: t("labels.eyeDropper"),
29522
29594
  shortcuts: [KEYS53.I, "Shift+S", "Shift+G"]
29523
29595
  }
29524
29596
  ),
29525
- /* @__PURE__ */ jsx136(
29597
+ /* @__PURE__ */ jsx137(
29526
29598
  Shortcut,
29527
29599
  {
29528
29600
  label: t("helpDialog.editLineArrowPoints"),
29529
29601
  shortcuts: [getShortcutKey("CtrlOrCmd+Enter")]
29530
29602
  }
29531
29603
  ),
29532
- /* @__PURE__ */ jsx136(
29604
+ /* @__PURE__ */ jsx137(
29533
29605
  Shortcut,
29534
29606
  {
29535
29607
  label: t("helpDialog.editText"),
29536
29608
  shortcuts: [getShortcutKey("Enter")]
29537
29609
  }
29538
29610
  ),
29539
- /* @__PURE__ */ jsx136(
29611
+ /* @__PURE__ */ jsx137(
29540
29612
  Shortcut,
29541
29613
  {
29542
29614
  label: t("helpDialog.textNewLine"),
@@ -29546,7 +29618,7 @@ var HelpDialog = ({ onClose }) => {
29546
29618
  ]
29547
29619
  }
29548
29620
  ),
29549
- /* @__PURE__ */ jsx136(
29621
+ /* @__PURE__ */ jsx137(
29550
29622
  Shortcut,
29551
29623
  {
29552
29624
  label: t("helpDialog.textFinish"),
@@ -29556,7 +29628,7 @@ var HelpDialog = ({ onClose }) => {
29556
29628
  ]
29557
29629
  }
29558
29630
  ),
29559
- /* @__PURE__ */ jsx136(
29631
+ /* @__PURE__ */ jsx137(
29560
29632
  Shortcut,
29561
29633
  {
29562
29634
  label: t("helpDialog.curvedArrow"),
@@ -29569,7 +29641,7 @@ var HelpDialog = ({ onClose }) => {
29569
29641
  isOr: false
29570
29642
  }
29571
29643
  ),
29572
- /* @__PURE__ */ jsx136(
29644
+ /* @__PURE__ */ jsx137(
29573
29645
  Shortcut,
29574
29646
  {
29575
29647
  label: t("helpDialog.curvedLine"),
@@ -29582,7 +29654,7 @@ var HelpDialog = ({ onClose }) => {
29582
29654
  isOr: false
29583
29655
  }
29584
29656
  ),
29585
- /* @__PURE__ */ jsx136(
29657
+ /* @__PURE__ */ jsx137(
29586
29658
  Shortcut,
29587
29659
  {
29588
29660
  label: t("helpDialog.cropStart"),
@@ -29590,7 +29662,7 @@ var HelpDialog = ({ onClose }) => {
29590
29662
  isOr: true
29591
29663
  }
29592
29664
  ),
29593
- /* @__PURE__ */ jsx136(
29665
+ /* @__PURE__ */ jsx137(
29594
29666
  Shortcut,
29595
29667
  {
29596
29668
  label: t("helpDialog.cropFinish"),
@@ -29598,22 +29670,22 @@ var HelpDialog = ({ onClose }) => {
29598
29670
  isOr: true
29599
29671
  }
29600
29672
  ),
29601
- /* @__PURE__ */ jsx136(Shortcut, { label: t("toolBar.lock"), shortcuts: [KEYS53.Q] }),
29602
- /* @__PURE__ */ jsx136(
29673
+ /* @__PURE__ */ jsx137(Shortcut, { label: t("toolBar.lock"), shortcuts: [KEYS53.Q] }),
29674
+ /* @__PURE__ */ jsx137(
29603
29675
  Shortcut,
29604
29676
  {
29605
29677
  label: t("helpDialog.preventBinding"),
29606
29678
  shortcuts: [getShortcutKey("CtrlOrCmd")]
29607
29679
  }
29608
29680
  ),
29609
- /* @__PURE__ */ jsx136(
29681
+ /* @__PURE__ */ jsx137(
29610
29682
  Shortcut,
29611
29683
  {
29612
29684
  label: t("toolBar.link"),
29613
29685
  shortcuts: [getShortcutKey("CtrlOrCmd+K")]
29614
29686
  }
29615
29687
  ),
29616
- /* @__PURE__ */ jsx136(
29688
+ /* @__PURE__ */ jsx137(
29617
29689
  Shortcut,
29618
29690
  {
29619
29691
  label: t("toolBar.convertElementType"),
@@ -29630,105 +29702,105 @@ var HelpDialog = ({ onClose }) => {
29630
29702
  className: "HelpDialog__island--view",
29631
29703
  caption: t("helpDialog.view"),
29632
29704
  children: [
29633
- /* @__PURE__ */ jsx136(
29705
+ /* @__PURE__ */ jsx137(
29634
29706
  Shortcut,
29635
29707
  {
29636
29708
  label: t("buttons.zoomIn"),
29637
29709
  shortcuts: [getShortcutKey("CtrlOrCmd++")]
29638
29710
  }
29639
29711
  ),
29640
- /* @__PURE__ */ jsx136(
29712
+ /* @__PURE__ */ jsx137(
29641
29713
  Shortcut,
29642
29714
  {
29643
29715
  label: t("buttons.zoomOut"),
29644
29716
  shortcuts: [getShortcutKey("CtrlOrCmd+-")]
29645
29717
  }
29646
29718
  ),
29647
- /* @__PURE__ */ jsx136(
29719
+ /* @__PURE__ */ jsx137(
29648
29720
  Shortcut,
29649
29721
  {
29650
29722
  label: t("buttons.resetZoom"),
29651
29723
  shortcuts: [getShortcutKey("CtrlOrCmd+0")]
29652
29724
  }
29653
29725
  ),
29654
- /* @__PURE__ */ jsx136(
29726
+ /* @__PURE__ */ jsx137(
29655
29727
  Shortcut,
29656
29728
  {
29657
29729
  label: t("helpDialog.zoomToFit"),
29658
29730
  shortcuts: ["Shift+1"]
29659
29731
  }
29660
29732
  ),
29661
- /* @__PURE__ */ jsx136(
29733
+ /* @__PURE__ */ jsx137(
29662
29734
  Shortcut,
29663
29735
  {
29664
29736
  label: t("helpDialog.zoomToSelection"),
29665
29737
  shortcuts: ["Shift+2"]
29666
29738
  }
29667
29739
  ),
29668
- /* @__PURE__ */ jsx136(
29740
+ /* @__PURE__ */ jsx137(
29669
29741
  Shortcut,
29670
29742
  {
29671
29743
  label: t("helpDialog.movePageUpDown"),
29672
29744
  shortcuts: ["PgUp/PgDn"]
29673
29745
  }
29674
29746
  ),
29675
- /* @__PURE__ */ jsx136(
29747
+ /* @__PURE__ */ jsx137(
29676
29748
  Shortcut,
29677
29749
  {
29678
29750
  label: t("helpDialog.movePageLeftRight"),
29679
29751
  shortcuts: ["Shift+PgUp/PgDn"]
29680
29752
  }
29681
29753
  ),
29682
- /* @__PURE__ */ jsx136(
29754
+ /* @__PURE__ */ jsx137(
29683
29755
  Shortcut,
29684
29756
  {
29685
29757
  label: t("buttons.zenMode"),
29686
29758
  shortcuts: [getShortcutKey("Alt+Z")]
29687
29759
  }
29688
29760
  ),
29689
- /* @__PURE__ */ jsx136(
29761
+ /* @__PURE__ */ jsx137(
29690
29762
  Shortcut,
29691
29763
  {
29692
29764
  label: t("buttons.objectsSnapMode"),
29693
29765
  shortcuts: [getShortcutKey("Alt+S")]
29694
29766
  }
29695
29767
  ),
29696
- /* @__PURE__ */ jsx136(
29768
+ /* @__PURE__ */ jsx137(
29697
29769
  Shortcut,
29698
29770
  {
29699
29771
  label: t("labels.toggleGrid"),
29700
29772
  shortcuts: [getShortcutKey("CtrlOrCmd+'")]
29701
29773
  }
29702
29774
  ),
29703
- /* @__PURE__ */ jsx136(
29775
+ /* @__PURE__ */ jsx137(
29704
29776
  Shortcut,
29705
29777
  {
29706
29778
  label: t("labels.viewMode"),
29707
29779
  shortcuts: [getShortcutKey("Alt+R")]
29708
29780
  }
29709
29781
  ),
29710
- /* @__PURE__ */ jsx136(
29782
+ /* @__PURE__ */ jsx137(
29711
29783
  Shortcut,
29712
29784
  {
29713
29785
  label: t("labels.toggleTheme"),
29714
29786
  shortcuts: [getShortcutKey("Alt+Shift+D")]
29715
29787
  }
29716
29788
  ),
29717
- /* @__PURE__ */ jsx136(
29789
+ /* @__PURE__ */ jsx137(
29718
29790
  Shortcut,
29719
29791
  {
29720
29792
  label: t("stats.fullTitle"),
29721
29793
  shortcuts: [getShortcutKey("Alt+/")]
29722
29794
  }
29723
29795
  ),
29724
- /* @__PURE__ */ jsx136(
29796
+ /* @__PURE__ */ jsx137(
29725
29797
  Shortcut,
29726
29798
  {
29727
29799
  label: t("search.title"),
29728
29800
  shortcuts: [getShortcutFromShortcutName("searchMenu")]
29729
29801
  }
29730
29802
  ),
29731
- /* @__PURE__ */ jsx136(
29803
+ /* @__PURE__ */ jsx137(
29732
29804
  Shortcut,
29733
29805
  {
29734
29806
  label: t("commandPalette.title"),
@@ -29747,7 +29819,7 @@ var HelpDialog = ({ onClose }) => {
29747
29819
  className: "HelpDialog__island--editor",
29748
29820
  caption: t("helpDialog.editor"),
29749
29821
  children: [
29750
- /* @__PURE__ */ jsx136(
29822
+ /* @__PURE__ */ jsx137(
29751
29823
  Shortcut,
29752
29824
  {
29753
29825
  label: t("helpDialog.createFlowchart"),
@@ -29755,7 +29827,7 @@ var HelpDialog = ({ onClose }) => {
29755
29827
  isOr: true
29756
29828
  }
29757
29829
  ),
29758
- /* @__PURE__ */ jsx136(
29830
+ /* @__PURE__ */ jsx137(
29759
29831
  Shortcut,
29760
29832
  {
29761
29833
  label: t("helpDialog.navigateFlowchart"),
@@ -29763,7 +29835,7 @@ var HelpDialog = ({ onClose }) => {
29763
29835
  isOr: true
29764
29836
  }
29765
29837
  ),
29766
- /* @__PURE__ */ jsx136(
29838
+ /* @__PURE__ */ jsx137(
29767
29839
  Shortcut,
29768
29840
  {
29769
29841
  label: t("labels.moveCanvas"),
@@ -29774,98 +29846,98 @@ var HelpDialog = ({ onClose }) => {
29774
29846
  isOr: true
29775
29847
  }
29776
29848
  ),
29777
- /* @__PURE__ */ jsx136(
29849
+ /* @__PURE__ */ jsx137(
29778
29850
  Shortcut,
29779
29851
  {
29780
29852
  label: t("buttons.clearReset"),
29781
29853
  shortcuts: [getShortcutKey("CtrlOrCmd+Delete")]
29782
29854
  }
29783
29855
  ),
29784
- /* @__PURE__ */ jsx136(
29856
+ /* @__PURE__ */ jsx137(
29785
29857
  Shortcut,
29786
29858
  {
29787
29859
  label: t("labels.delete"),
29788
29860
  shortcuts: [getShortcutKey("Delete")]
29789
29861
  }
29790
29862
  ),
29791
- /* @__PURE__ */ jsx136(
29863
+ /* @__PURE__ */ jsx137(
29792
29864
  Shortcut,
29793
29865
  {
29794
29866
  label: t("labels.cut"),
29795
29867
  shortcuts: [getShortcutKey("CtrlOrCmd+X")]
29796
29868
  }
29797
29869
  ),
29798
- /* @__PURE__ */ jsx136(
29870
+ /* @__PURE__ */ jsx137(
29799
29871
  Shortcut,
29800
29872
  {
29801
29873
  label: t("labels.copy"),
29802
29874
  shortcuts: [getShortcutKey("CtrlOrCmd+C")]
29803
29875
  }
29804
29876
  ),
29805
- /* @__PURE__ */ jsx136(
29877
+ /* @__PURE__ */ jsx137(
29806
29878
  Shortcut,
29807
29879
  {
29808
29880
  label: t("labels.paste"),
29809
29881
  shortcuts: [getShortcutKey("CtrlOrCmd+V")]
29810
29882
  }
29811
29883
  ),
29812
- /* @__PURE__ */ jsx136(
29884
+ /* @__PURE__ */ jsx137(
29813
29885
  Shortcut,
29814
29886
  {
29815
29887
  label: t("labels.pasteAsPlaintext"),
29816
29888
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+V")]
29817
29889
  }
29818
29890
  ),
29819
- /* @__PURE__ */ jsx136(
29891
+ /* @__PURE__ */ jsx137(
29820
29892
  Shortcut,
29821
29893
  {
29822
29894
  label: t("labels.selectAll"),
29823
29895
  shortcuts: [getShortcutKey("CtrlOrCmd+A")]
29824
29896
  }
29825
29897
  ),
29826
- /* @__PURE__ */ jsx136(
29898
+ /* @__PURE__ */ jsx137(
29827
29899
  Shortcut,
29828
29900
  {
29829
29901
  label: t("labels.multiSelect"),
29830
29902
  shortcuts: [getShortcutKey(`Shift+${t("helpDialog.click")}`)]
29831
29903
  }
29832
29904
  ),
29833
- /* @__PURE__ */ jsx136(
29905
+ /* @__PURE__ */ jsx137(
29834
29906
  Shortcut,
29835
29907
  {
29836
29908
  label: t("helpDialog.deepSelect"),
29837
29909
  shortcuts: [getShortcutKey(`CtrlOrCmd+${t("helpDialog.click")}`)]
29838
29910
  }
29839
29911
  ),
29840
- /* @__PURE__ */ jsx136(
29912
+ /* @__PURE__ */ jsx137(
29841
29913
  Shortcut,
29842
29914
  {
29843
29915
  label: t("helpDialog.deepBoxSelect"),
29844
29916
  shortcuts: [getShortcutKey(`CtrlOrCmd+${t("helpDialog.drag")}`)]
29845
29917
  }
29846
29918
  ),
29847
- (probablySupportsClipboardBlob || isFirefox3) && /* @__PURE__ */ jsx136(
29919
+ (probablySupportsClipboardBlob || isFirefox3) && /* @__PURE__ */ jsx137(
29848
29920
  Shortcut,
29849
29921
  {
29850
29922
  label: t("labels.copyAsPng"),
29851
29923
  shortcuts: [getShortcutKey("Shift+Alt+C")]
29852
29924
  }
29853
29925
  ),
29854
- /* @__PURE__ */ jsx136(
29926
+ /* @__PURE__ */ jsx137(
29855
29927
  Shortcut,
29856
29928
  {
29857
29929
  label: t("labels.copyStyles"),
29858
29930
  shortcuts: [getShortcutKey("CtrlOrCmd+Alt+C")]
29859
29931
  }
29860
29932
  ),
29861
- /* @__PURE__ */ jsx136(
29933
+ /* @__PURE__ */ jsx137(
29862
29934
  Shortcut,
29863
29935
  {
29864
29936
  label: t("labels.pasteStyles"),
29865
29937
  shortcuts: [getShortcutKey("CtrlOrCmd+Alt+V")]
29866
29938
  }
29867
29939
  ),
29868
- /* @__PURE__ */ jsx136(
29940
+ /* @__PURE__ */ jsx137(
29869
29941
  Shortcut,
29870
29942
  {
29871
29943
  label: t("labels.sendToBack"),
@@ -29874,7 +29946,7 @@ var HelpDialog = ({ onClose }) => {
29874
29946
  ]
29875
29947
  }
29876
29948
  ),
29877
- /* @__PURE__ */ jsx136(
29949
+ /* @__PURE__ */ jsx137(
29878
29950
  Shortcut,
29879
29951
  {
29880
29952
  label: t("labels.bringToFront"),
@@ -29883,49 +29955,49 @@ var HelpDialog = ({ onClose }) => {
29883
29955
  ]
29884
29956
  }
29885
29957
  ),
29886
- /* @__PURE__ */ jsx136(
29958
+ /* @__PURE__ */ jsx137(
29887
29959
  Shortcut,
29888
29960
  {
29889
29961
  label: t("labels.sendBackward"),
29890
29962
  shortcuts: [getShortcutKey("CtrlOrCmd+[")]
29891
29963
  }
29892
29964
  ),
29893
- /* @__PURE__ */ jsx136(
29965
+ /* @__PURE__ */ jsx137(
29894
29966
  Shortcut,
29895
29967
  {
29896
29968
  label: t("labels.bringForward"),
29897
29969
  shortcuts: [getShortcutKey("CtrlOrCmd+]")]
29898
29970
  }
29899
29971
  ),
29900
- /* @__PURE__ */ jsx136(
29972
+ /* @__PURE__ */ jsx137(
29901
29973
  Shortcut,
29902
29974
  {
29903
29975
  label: t("labels.alignTop"),
29904
29976
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Up")]
29905
29977
  }
29906
29978
  ),
29907
- /* @__PURE__ */ jsx136(
29979
+ /* @__PURE__ */ jsx137(
29908
29980
  Shortcut,
29909
29981
  {
29910
29982
  label: t("labels.alignBottom"),
29911
29983
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Down")]
29912
29984
  }
29913
29985
  ),
29914
- /* @__PURE__ */ jsx136(
29986
+ /* @__PURE__ */ jsx137(
29915
29987
  Shortcut,
29916
29988
  {
29917
29989
  label: t("labels.alignLeft"),
29918
29990
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Left")]
29919
29991
  }
29920
29992
  ),
29921
- /* @__PURE__ */ jsx136(
29993
+ /* @__PURE__ */ jsx137(
29922
29994
  Shortcut,
29923
29995
  {
29924
29996
  label: t("labels.alignRight"),
29925
29997
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Right")]
29926
29998
  }
29927
29999
  ),
29928
- /* @__PURE__ */ jsx136(
30000
+ /* @__PURE__ */ jsx137(
29929
30001
  Shortcut,
29930
30002
  {
29931
30003
  label: t("labels.duplicateSelection"),
@@ -29935,21 +30007,21 @@ var HelpDialog = ({ onClose }) => {
29935
30007
  ]
29936
30008
  }
29937
30009
  ),
29938
- /* @__PURE__ */ jsx136(
30010
+ /* @__PURE__ */ jsx137(
29939
30011
  Shortcut,
29940
30012
  {
29941
30013
  label: t("helpDialog.toggleElementLock"),
29942
30014
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+L")]
29943
30015
  }
29944
30016
  ),
29945
- /* @__PURE__ */ jsx136(
30017
+ /* @__PURE__ */ jsx137(
29946
30018
  Shortcut,
29947
30019
  {
29948
30020
  label: t("buttons.undo"),
29949
30021
  shortcuts: [getShortcutKey("CtrlOrCmd+Z")]
29950
30022
  }
29951
30023
  ),
29952
- /* @__PURE__ */ jsx136(
30024
+ /* @__PURE__ */ jsx137(
29953
30025
  Shortcut,
29954
30026
  {
29955
30027
  label: t("buttons.redo"),
@@ -29959,63 +30031,63 @@ var HelpDialog = ({ onClose }) => {
29959
30031
  ] : [getShortcutKey("CtrlOrCmd+Shift+Z")]
29960
30032
  }
29961
30033
  ),
29962
- /* @__PURE__ */ jsx136(
30034
+ /* @__PURE__ */ jsx137(
29963
30035
  Shortcut,
29964
30036
  {
29965
30037
  label: t("labels.group"),
29966
30038
  shortcuts: [getShortcutKey("CtrlOrCmd+G")]
29967
30039
  }
29968
30040
  ),
29969
- /* @__PURE__ */ jsx136(
30041
+ /* @__PURE__ */ jsx137(
29970
30042
  Shortcut,
29971
30043
  {
29972
30044
  label: t("labels.ungroup"),
29973
30045
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+G")]
29974
30046
  }
29975
30047
  ),
29976
- /* @__PURE__ */ jsx136(
30048
+ /* @__PURE__ */ jsx137(
29977
30049
  Shortcut,
29978
30050
  {
29979
30051
  label: t("labels.flipHorizontal"),
29980
30052
  shortcuts: [getShortcutKey("Shift+H")]
29981
30053
  }
29982
30054
  ),
29983
- /* @__PURE__ */ jsx136(
30055
+ /* @__PURE__ */ jsx137(
29984
30056
  Shortcut,
29985
30057
  {
29986
30058
  label: t("labels.flipVertical"),
29987
30059
  shortcuts: [getShortcutKey("Shift+V")]
29988
30060
  }
29989
30061
  ),
29990
- /* @__PURE__ */ jsx136(
30062
+ /* @__PURE__ */ jsx137(
29991
30063
  Shortcut,
29992
30064
  {
29993
30065
  label: t("labels.showStroke"),
29994
30066
  shortcuts: [getShortcutKey("S")]
29995
30067
  }
29996
30068
  ),
29997
- /* @__PURE__ */ jsx136(
30069
+ /* @__PURE__ */ jsx137(
29998
30070
  Shortcut,
29999
30071
  {
30000
30072
  label: t("labels.showBackground"),
30001
30073
  shortcuts: [getShortcutKey("G")]
30002
30074
  }
30003
30075
  ),
30004
- /* @__PURE__ */ jsx136(
30076
+ /* @__PURE__ */ jsx137(
30005
30077
  Shortcut,
30006
30078
  {
30007
30079
  label: t("labels.showFonts"),
30008
30080
  shortcuts: [getShortcutKey("Shift+F")]
30009
30081
  }
30010
30082
  ),
30011
- /* @__PURE__ */ jsx136(
30083
+ /* @__PURE__ */ jsx137(
30012
30084
  Shortcut,
30013
30085
  {
30014
30086
  label: t("labels.decreaseFontSize"),
30015
30087
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+<")]
30016
30088
  }
30017
30089
  ),
30018
- /* @__PURE__ */ jsx136(
30090
+ /* @__PURE__ */ jsx137(
30019
30091
  Shortcut,
30020
30092
  {
30021
30093
  label: t("labels.increaseFontSize"),
@@ -30043,7 +30115,7 @@ import {
30043
30115
  } from "@excalidraw/element";
30044
30116
  import { isNodeInFlowchart } from "@excalidraw/element";
30045
30117
  import clsx58 from "clsx";
30046
- import { jsx as jsx137 } from "react/jsx-runtime";
30118
+ import { jsx as jsx138 } from "react/jsx-runtime";
30047
30119
  var getTaggedShortcutKey = (key) => Array.isArray(key) ? `<kbd>${key.map(getShortcutKey).join(" + ")}</kbd>` : `<kbd>${getShortcutKey(key)}</kbd>`;
30048
30120
  var getHints = ({
30049
30121
  appState,
@@ -30214,17 +30286,17 @@ var HintViewer = ({
30214
30286
  const hintJSX = hint.split(/(<kbd>[^<]+<\/kbd>)/g).map((part, index) => {
30215
30287
  if (index % 2 === 1) {
30216
30288
  const shortcutMatch = part[0] === "<" && part.match(/^<kbd>([^<]+)<\/kbd>$/);
30217
- return /* @__PURE__ */ jsx137("kbd", { children: shortcutMatch ? shortcutMatch[1] : part }, index);
30289
+ return /* @__PURE__ */ jsx138("kbd", { children: shortcutMatch ? shortcutMatch[1] : part }, index);
30218
30290
  }
30219
30291
  return part;
30220
30292
  });
30221
- return /* @__PURE__ */ jsx137(
30293
+ return /* @__PURE__ */ jsx138(
30222
30294
  "div",
30223
30295
  {
30224
30296
  className: clsx58("HintViewer", {
30225
30297
  "HintViewer--align-bottom": app.props.UIOptions.swapTopMenuAndFooter
30226
30298
  }),
30227
- children: /* @__PURE__ */ jsx137("span", { children: hintJSX })
30299
+ children: /* @__PURE__ */ jsx138("span", { children: hintJSX })
30228
30300
  }
30229
30301
  );
30230
30302
  };
@@ -30264,7 +30336,7 @@ var useCopyStatus = () => {
30264
30336
 
30265
30337
  // components/Switch.tsx
30266
30338
  import clsx59 from "clsx";
30267
- import { jsx as jsx138 } from "react/jsx-runtime";
30339
+ import { jsx as jsx139 } from "react/jsx-runtime";
30268
30340
  var Switch = ({
30269
30341
  title,
30270
30342
  name,
@@ -30272,7 +30344,7 @@ var Switch = ({
30272
30344
  onChange,
30273
30345
  disabled = false
30274
30346
  }) => {
30275
- return /* @__PURE__ */ jsx138("div", { className: clsx59("Switch", { toggled: checked, disabled }), children: /* @__PURE__ */ jsx138(
30347
+ return /* @__PURE__ */ jsx139("div", { className: clsx59("Switch", { toggled: checked, disabled }), children: /* @__PURE__ */ jsx139(
30276
30348
  "input",
30277
30349
  {
30278
30350
  name,
@@ -30292,12 +30364,12 @@ var Switch = ({
30292
30364
  };
30293
30365
 
30294
30366
  // components/ImageExportDialog.tsx
30295
- import { jsx as jsx139, jsxs as jsxs75 } from "react/jsx-runtime";
30367
+ import { jsx as jsx140, jsxs as jsxs75 } from "react/jsx-runtime";
30296
30368
  var supportsContextFilters = "filter" in document.createElement("canvas").getContext("2d");
30297
30369
  var ErrorCanvasPreview = () => {
30298
30370
  return /* @__PURE__ */ jsxs75("div", { children: [
30299
- /* @__PURE__ */ jsx139("h3", { children: t("canvasError.cannotShowPreview") }),
30300
- /* @__PURE__ */ jsx139("p", { children: /* @__PURE__ */ jsx139("span", { children: t("canvasError.canvasTooBig") }) }),
30371
+ /* @__PURE__ */ jsx140("h3", { children: t("canvasError.cannotShowPreview") }),
30372
+ /* @__PURE__ */ jsx140("p", { children: /* @__PURE__ */ jsx140("span", { children: t("canvasError.canvasTooBig") }) }),
30301
30373
  /* @__PURE__ */ jsxs75("em", { children: [
30302
30374
  "(",
30303
30375
  t("canvasError.canvasTooBigTip"),
@@ -30397,10 +30469,10 @@ var ImageExportModal = ({
30397
30469
  embedScene
30398
30470
  ]);
30399
30471
  return /* @__PURE__ */ jsxs75("div", { className: "ImageExportModal", children: [
30400
- /* @__PURE__ */ jsx139("h3", { children: t("imageExportDialog.header") }),
30472
+ /* @__PURE__ */ jsx140("h3", { children: t("imageExportDialog.header") }),
30401
30473
  /* @__PURE__ */ jsxs75("div", { className: "ImageExportModal__preview", children: [
30402
- /* @__PURE__ */ jsx139("div", { className: "ImageExportModal__preview__canvas", ref: previewRef, children: renderError && /* @__PURE__ */ jsx139(ErrorCanvasPreview, {}) }),
30403
- /* @__PURE__ */ jsx139("div", { className: "ImageExportModal__preview__filename", children: !nativeFileSystemSupported && /* @__PURE__ */ jsx139(
30474
+ /* @__PURE__ */ jsx140("div", { className: "ImageExportModal__preview__canvas", ref: previewRef, children: renderError && /* @__PURE__ */ jsx140(ErrorCanvasPreview, {}) }),
30475
+ /* @__PURE__ */ jsx140("div", { className: "ImageExportModal__preview__filename", children: !nativeFileSystemSupported && /* @__PURE__ */ jsx140(
30404
30476
  "input",
30405
30477
  {
30406
30478
  type: "text",
@@ -30419,13 +30491,13 @@ var ImageExportModal = ({
30419
30491
  ) })
30420
30492
  ] }),
30421
30493
  /* @__PURE__ */ jsxs75("div", { className: "ImageExportModal__settings", children: [
30422
- /* @__PURE__ */ jsx139("h3", { children: t("imageExportDialog.header") }),
30423
- hasSelection && /* @__PURE__ */ jsx139(
30494
+ /* @__PURE__ */ jsx140("h3", { children: t("imageExportDialog.header") }),
30495
+ hasSelection && /* @__PURE__ */ jsx140(
30424
30496
  ExportSetting,
30425
30497
  {
30426
30498
  label: t("imageExportDialog.label.onlySelected"),
30427
30499
  name: "exportOnlySelected",
30428
- children: /* @__PURE__ */ jsx139(
30500
+ children: /* @__PURE__ */ jsx140(
30429
30501
  Switch,
30430
30502
  {
30431
30503
  name: "exportOnlySelected",
@@ -30437,12 +30509,12 @@ var ImageExportModal = ({
30437
30509
  )
30438
30510
  }
30439
30511
  ),
30440
- /* @__PURE__ */ jsx139(
30512
+ /* @__PURE__ */ jsx140(
30441
30513
  ExportSetting,
30442
30514
  {
30443
30515
  label: t("imageExportDialog.label.withBackground"),
30444
30516
  name: "exportBackgroundSwitch",
30445
- children: /* @__PURE__ */ jsx139(
30517
+ children: /* @__PURE__ */ jsx140(
30446
30518
  Switch,
30447
30519
  {
30448
30520
  name: "exportBackgroundSwitch",
@@ -30459,12 +30531,12 @@ var ImageExportModal = ({
30459
30531
  )
30460
30532
  }
30461
30533
  ),
30462
- supportsContextFilters && /* @__PURE__ */ jsx139(
30534
+ supportsContextFilters && /* @__PURE__ */ jsx140(
30463
30535
  ExportSetting,
30464
30536
  {
30465
30537
  label: t("imageExportDialog.label.darkMode"),
30466
30538
  name: "exportDarkModeSwitch",
30467
- children: /* @__PURE__ */ jsx139(
30539
+ children: /* @__PURE__ */ jsx140(
30468
30540
  Switch,
30469
30541
  {
30470
30542
  name: "exportDarkModeSwitch",
@@ -30481,13 +30553,13 @@ var ImageExportModal = ({
30481
30553
  )
30482
30554
  }
30483
30555
  ),
30484
- /* @__PURE__ */ jsx139(
30556
+ /* @__PURE__ */ jsx140(
30485
30557
  ExportSetting,
30486
30558
  {
30487
30559
  label: t("imageExportDialog.label.embedScene"),
30488
30560
  tooltip: t("imageExportDialog.tooltip.embedScene"),
30489
30561
  name: "exportEmbedSwitch",
30490
- children: /* @__PURE__ */ jsx139(
30562
+ children: /* @__PURE__ */ jsx140(
30491
30563
  Switch,
30492
30564
  {
30493
30565
  name: "exportEmbedSwitch",
@@ -30504,12 +30576,12 @@ var ImageExportModal = ({
30504
30576
  )
30505
30577
  }
30506
30578
  ),
30507
- /* @__PURE__ */ jsx139(
30579
+ /* @__PURE__ */ jsx140(
30508
30580
  ExportSetting,
30509
30581
  {
30510
30582
  label: t("imageExportDialog.label.scale"),
30511
30583
  name: "exportScale",
30512
- children: /* @__PURE__ */ jsx139(
30584
+ children: /* @__PURE__ */ jsx140(
30513
30585
  RadioGroup,
30514
30586
  {
30515
30587
  name: "exportScale",
@@ -30527,7 +30599,7 @@ var ImageExportModal = ({
30527
30599
  }
30528
30600
  ),
30529
30601
  /* @__PURE__ */ jsxs75("div", { className: "ImageExportModal__settings__buttons", children: [
30530
- /* @__PURE__ */ jsx139(
30602
+ /* @__PURE__ */ jsx140(
30531
30603
  FilledButton,
30532
30604
  {
30533
30605
  className: "ImageExportModal__settings__buttons__button",
@@ -30539,7 +30611,7 @@ var ImageExportModal = ({
30539
30611
  children: t("imageExportDialog.button.exportToPng")
30540
30612
  }
30541
30613
  ),
30542
- /* @__PURE__ */ jsx139(
30614
+ /* @__PURE__ */ jsx140(
30543
30615
  FilledButton,
30544
30616
  {
30545
30617
  className: "ImageExportModal__settings__buttons__button",
@@ -30551,7 +30623,7 @@ var ImageExportModal = ({
30551
30623
  children: t("imageExportDialog.button.exportToSvg")
30552
30624
  }
30553
30625
  ),
30554
- (probablySupportsClipboardBlob || isFirefox4) && /* @__PURE__ */ jsx139(
30626
+ (probablySupportsClipboardBlob || isFirefox4) && /* @__PURE__ */ jsx140(
30555
30627
  FilledButton,
30556
30628
  {
30557
30629
  className: "ImageExportModal__settings__buttons__button",
@@ -30589,11 +30661,11 @@ var ExportSetting = ({
30589
30661
  className: "ImageExportModal__settings__setting__label",
30590
30662
  children: [
30591
30663
  label,
30592
- tooltip && /* @__PURE__ */ jsx139(Tooltip, { label: tooltip, long: true, children: helpIcon })
30664
+ tooltip && /* @__PURE__ */ jsx140(Tooltip, { label: tooltip, long: true, children: helpIcon })
30593
30665
  ]
30594
30666
  }
30595
30667
  ),
30596
- /* @__PURE__ */ jsx139("div", { className: "ImageExportModal__settings__setting__content", children })
30668
+ /* @__PURE__ */ jsx140("div", { className: "ImageExportModal__settings__setting__content", children })
30597
30669
  ] });
30598
30670
  };
30599
30671
  var ImageExportDialog = ({
@@ -30611,7 +30683,7 @@ var ImageExportDialog = ({
30611
30683
  elementsSnapshot: cloneJSON4(elements)
30612
30684
  };
30613
30685
  });
30614
- return /* @__PURE__ */ jsx139(Dialog, { onCloseRequest, size: "wide", title: false, children: /* @__PURE__ */ jsx139(
30686
+ return /* @__PURE__ */ jsx140(Dialog, { onCloseRequest, size: "wide", title: false, children: /* @__PURE__ */ jsx140(
30615
30687
  ImageExportModal,
30616
30688
  {
30617
30689
  elementsSnapshot,
@@ -30630,9 +30702,9 @@ import { getFrame } from "@excalidraw/common";
30630
30702
 
30631
30703
  // components/Card.tsx
30632
30704
  import OpenColor3 from "open-color";
30633
- import { jsx as jsx140 } from "react/jsx-runtime";
30705
+ import { jsx as jsx141 } from "react/jsx-runtime";
30634
30706
  var Card = ({ children, color }) => {
30635
- return /* @__PURE__ */ jsx140(
30707
+ return /* @__PURE__ */ jsx141(
30636
30708
  "div",
30637
30709
  {
30638
30710
  className: "Card",
@@ -30647,7 +30719,7 @@ var Card = ({ children, color }) => {
30647
30719
  };
30648
30720
 
30649
30721
  // components/JSONExportDialog.tsx
30650
- import { Fragment as Fragment23, jsx as jsx141, jsxs as jsxs76 } from "react/jsx-runtime";
30722
+ import { Fragment as Fragment23, jsx as jsx142, jsxs as jsxs76 } from "react/jsx-runtime";
30651
30723
  var JSONExportModal = ({
30652
30724
  elements,
30653
30725
  appState,
@@ -30659,15 +30731,15 @@ var JSONExportModal = ({
30659
30731
  onCloseRequest
30660
30732
  }) => {
30661
30733
  const { onExportToBackend } = exportOpts;
30662
- return /* @__PURE__ */ jsx141("div", { className: "ExportDialog ExportDialog--json", children: /* @__PURE__ */ jsxs76("div", { className: "ExportDialog-cards", children: [
30734
+ return /* @__PURE__ */ jsx142("div", { className: "ExportDialog ExportDialog--json", children: /* @__PURE__ */ jsxs76("div", { className: "ExportDialog-cards", children: [
30663
30735
  exportOpts.saveFileToDisk && /* @__PURE__ */ jsxs76(Card, { color: "lime", children: [
30664
- /* @__PURE__ */ jsx141("div", { className: "Card-icon", children: exportToFileIcon }),
30665
- /* @__PURE__ */ jsx141("h2", { children: t("exportDialog.disk_title") }),
30736
+ /* @__PURE__ */ jsx142("div", { className: "Card-icon", children: exportToFileIcon }),
30737
+ /* @__PURE__ */ jsx142("h2", { children: t("exportDialog.disk_title") }),
30666
30738
  /* @__PURE__ */ jsxs76("div", { className: "Card-details", children: [
30667
30739
  t("exportDialog.disk_details"),
30668
30740
  !nativeFileSystemSupported && actionManager.renderAction("changeProjectName")
30669
30741
  ] }),
30670
- /* @__PURE__ */ jsx141(
30742
+ /* @__PURE__ */ jsx142(
30671
30743
  ToolButton,
30672
30744
  {
30673
30745
  className: "Card-button",
@@ -30682,10 +30754,10 @@ var JSONExportModal = ({
30682
30754
  )
30683
30755
  ] }),
30684
30756
  onExportToBackend && /* @__PURE__ */ jsxs76(Card, { color: "pink", children: [
30685
- /* @__PURE__ */ jsx141("div", { className: "Card-icon", children: LinkIcon }),
30686
- /* @__PURE__ */ jsx141("h2", { children: t("exportDialog.link_title") }),
30687
- /* @__PURE__ */ jsx141("div", { className: "Card-details", children: t("exportDialog.link_details") }),
30688
- /* @__PURE__ */ jsx141(
30757
+ /* @__PURE__ */ jsx142("div", { className: "Card-icon", children: LinkIcon }),
30758
+ /* @__PURE__ */ jsx142("h2", { children: t("exportDialog.link_title") }),
30759
+ /* @__PURE__ */ jsx142("div", { className: "Card-details", children: t("exportDialog.link_details") }),
30760
+ /* @__PURE__ */ jsx142(
30689
30761
  ToolButton,
30690
30762
  {
30691
30763
  className: "Card-button",
@@ -30720,7 +30792,7 @@ var JSONExportDialog = ({
30720
30792
  const handleClose = React41.useCallback(() => {
30721
30793
  setAppState({ openDialog: null });
30722
30794
  }, [setAppState]);
30723
- return /* @__PURE__ */ jsx141(Fragment23, { children: appState.openDialog?.name === "jsonExport" && /* @__PURE__ */ jsx141(Dialog, { onCloseRequest: handleClose, title: t("buttons.export"), children: /* @__PURE__ */ jsx141(
30795
+ return /* @__PURE__ */ jsx142(Fragment23, { children: appState.openDialog?.name === "jsonExport" && /* @__PURE__ */ jsx142(Dialog, { onCloseRequest: handleClose, title: t("buttons.export"), children: /* @__PURE__ */ jsx142(
30724
30796
  JSONExportModal,
30725
30797
  {
30726
30798
  elements,
@@ -30737,7 +30809,7 @@ var JSONExportDialog = ({
30737
30809
 
30738
30810
  // components/LaserPointerButton.tsx
30739
30811
  import clsx60 from "clsx";
30740
- import { jsx as jsx142, jsxs as jsxs77 } from "react/jsx-runtime";
30812
+ import { jsx as jsx143, jsxs as jsxs77 } from "react/jsx-runtime";
30741
30813
  var DEFAULT_SIZE3 = "small";
30742
30814
  var LaserPointerButton = (props) => {
30743
30815
  return /* @__PURE__ */ jsxs77(
@@ -30752,7 +30824,7 @@ var LaserPointerButton = (props) => {
30752
30824
  ),
30753
30825
  title: `${props.title}`,
30754
30826
  children: [
30755
- /* @__PURE__ */ jsx142(
30827
+ /* @__PURE__ */ jsx143(
30756
30828
  "input",
30757
30829
  {
30758
30830
  className: "ToolIcon_type_checkbox",
@@ -30764,34 +30836,34 @@ var LaserPointerButton = (props) => {
30764
30836
  "data-testid": "toolbar-LaserPointer"
30765
30837
  }
30766
30838
  ),
30767
- /* @__PURE__ */ jsx142("div", { className: "ToolIcon__icon", children: laserPointerToolIcon })
30839
+ /* @__PURE__ */ jsx143("div", { className: "ToolIcon__icon", children: laserPointerToolIcon })
30768
30840
  ]
30769
30841
  }
30770
30842
  );
30771
30843
  };
30772
30844
 
30773
30845
  // components/LayerUI.tsx
30774
- import { Fragment as Fragment24, jsx as jsx143, jsxs as jsxs78 } from "react/jsx-runtime";
30846
+ import { Fragment as Fragment24, jsx as jsx144, jsxs as jsxs78 } from "react/jsx-runtime";
30775
30847
  var DefaultMainMenu = ({ UIOptions }) => {
30776
30848
  return /* @__PURE__ */ jsxs78(MainMenu_default, { __fallback: true, children: [
30777
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.LoadScene, {}),
30778
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.SaveToActiveFile, {}),
30779
- UIOptions.canvasActions.export && /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.Export, {}),
30780
- UIOptions.canvasActions.saveAsImage && /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.SaveAsImage, {}),
30781
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.SearchMenu, {}),
30782
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.Help, {}),
30783
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.ClearCanvas, {}),
30784
- /* @__PURE__ */ jsx143(MainMenu_default.Separator, {}),
30785
- /* @__PURE__ */ jsx143(MainMenu_default.Group, { title: "Excalidraw links", children: /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.Socials, {}) }),
30786
- /* @__PURE__ */ jsx143(MainMenu_default.Separator, {}),
30787
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.ToggleTheme, {}),
30788
- /* @__PURE__ */ jsx143(MainMenu_default.DefaultItems.ChangeCanvasBackground, {})
30849
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.LoadScene, {}),
30850
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.SaveToActiveFile, {}),
30851
+ UIOptions.canvasActions.export && /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.Export, {}),
30852
+ UIOptions.canvasActions.saveAsImage && /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.SaveAsImage, {}),
30853
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.SearchMenu, {}),
30854
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.Help, {}),
30855
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.ClearCanvas, {}),
30856
+ /* @__PURE__ */ jsx144(MainMenu_default.Separator, {}),
30857
+ /* @__PURE__ */ jsx144(MainMenu_default.Group, { title: "Excalidraw links", children: /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.Socials, {}) }),
30858
+ /* @__PURE__ */ jsx144(MainMenu_default.Separator, {}),
30859
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.ToggleTheme, {}),
30860
+ /* @__PURE__ */ jsx144(MainMenu_default.DefaultItems.ChangeCanvasBackground, {})
30789
30861
  ] });
30790
30862
  };
30791
30863
  var DefaultOverwriteConfirmDialog = () => {
30792
30864
  return /* @__PURE__ */ jsxs78(OverwriteConfirmDialog, { __fallback: true, children: [
30793
- /* @__PURE__ */ jsx143(OverwriteConfirmDialog.Actions.SaveToDisk, {}),
30794
- /* @__PURE__ */ jsx143(OverwriteConfirmDialog.Actions.ExportToImage, {})
30865
+ /* @__PURE__ */ jsx144(OverwriteConfirmDialog.Actions.SaveToDisk, {}),
30866
+ /* @__PURE__ */ jsx144(OverwriteConfirmDialog.Actions.ExportToImage, {})
30795
30867
  ] });
30796
30868
  };
30797
30869
  var LayerUI = ({
@@ -30841,7 +30913,7 @@ var LayerUI = ({
30841
30913
  if (!UIOptions.canvasActions.export) {
30842
30914
  return null;
30843
30915
  }
30844
- return /* @__PURE__ */ jsx143(
30916
+ return /* @__PURE__ */ jsx144(
30845
30917
  JSONExportDialog,
30846
30918
  {
30847
30919
  elements,
@@ -30858,7 +30930,7 @@ var LayerUI = ({
30858
30930
  if (!UIOptions.canvasActions.saveAsImage || appState.openDialog?.name !== "imageExport") {
30859
30931
  return null;
30860
30932
  }
30861
- return /* @__PURE__ */ jsx143(
30933
+ return /* @__PURE__ */ jsx144(
30862
30934
  ImageExportDialog,
30863
30935
  {
30864
30936
  elements,
@@ -30879,14 +30951,14 @@ var LayerUI = ({
30879
30951
  "order-1": app.props.UIOptions.swapTopMenuAndFooter
30880
30952
  }),
30881
30953
  children: [
30882
- /* @__PURE__ */ jsx143(tunnels.MainMenuTunnel.Out, {}),
30883
- renderWelcomeScreen && /* @__PURE__ */ jsx143(tunnels.WelcomeScreenMenuHintTunnel.Out, {})
30954
+ /* @__PURE__ */ jsx144(tunnels.MainMenuTunnel.Out, {}),
30955
+ renderWelcomeScreen && /* @__PURE__ */ jsx144(tunnels.WelcomeScreenMenuHintTunnel.Out, {})
30884
30956
  ]
30885
30957
  }
30886
30958
  );
30887
30959
  const renderSelectedShapeActions = () => {
30888
30960
  const isCompactMode = isCompactStylesPanel;
30889
- return /* @__PURE__ */ jsx143(
30961
+ return /* @__PURE__ */ jsx144(
30890
30962
  Section,
30891
30963
  {
30892
30964
  heading: "selectedShapeActions",
@@ -30894,7 +30966,7 @@ var LayerUI = ({
30894
30966
  "transition-left": appState.zenModeEnabled,
30895
30967
  relative: app.props.UIOptions.swapTopMenuAndFooter
30896
30968
  }),
30897
- children: isCompactMode ? /* @__PURE__ */ jsx143(
30969
+ children: isCompactMode ? /* @__PURE__ */ jsx144(
30898
30970
  Island,
30899
30971
  {
30900
30972
  className: clsx61("compact-shape-actions-island"),
@@ -30904,7 +30976,7 @@ var LayerUI = ({
30904
30976
  // approximate height of hamburgerMenu + footer
30905
30977
  maxHeight: `${appState.height - 166}px`
30906
30978
  },
30907
- children: /* @__PURE__ */ jsx143(
30979
+ children: /* @__PURE__ */ jsx144(
30908
30980
  CompactShapeActions,
30909
30981
  {
30910
30982
  appState,
@@ -30915,7 +30987,7 @@ var LayerUI = ({
30915
30987
  }
30916
30988
  )
30917
30989
  }
30918
- ) : /* @__PURE__ */ jsx143(
30990
+ ) : /* @__PURE__ */ jsx144(
30919
30991
  Island,
30920
30992
  {
30921
30993
  className: clsx61(CLASSES8.SHAPE_ACTIONS_MENU, {
@@ -30927,7 +30999,7 @@ var LayerUI = ({
30927
30999
  // approximate height of hamburgerMenu + footer
30928
31000
  maxHeight: `${appState.height - 166}px`
30929
31001
  },
30930
- children: /* @__PURE__ */ jsx143(
31002
+ children: /* @__PURE__ */ jsx144(
30931
31003
  SelectedShapeActions,
30932
31004
  {
30933
31005
  appState,
@@ -30946,8 +31018,8 @@ var LayerUI = ({
30946
31018
  appState,
30947
31019
  elements
30948
31020
  );
30949
- const shouldShowStats = appState.stats.open && !appState.zenModeEnabled && !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector";
30950
- return /* @__PURE__ */ jsx143(FixedSideContainer, { side: "top", children: /* @__PURE__ */ jsxs78(
31021
+ const shouldShowStats = appState.stats.open && !appState.zenModeEnabled && !(appState.viewModeEnabled || appState.hideAnnotations) && appState.openDialog?.name !== "elementLinkSelector";
31022
+ return /* @__PURE__ */ jsx144(FixedSideContainer, { side: "top", children: /* @__PURE__ */ jsxs78(
30951
31023
  "div",
30952
31024
  {
30953
31025
  className: clsx61("App-menu App-menu_top", {
@@ -30961,7 +31033,7 @@ var LayerUI = ({
30961
31033
  className: clsx61("App-menu_top__left"),
30962
31034
  children: [
30963
31035
  app.props.UIOptions.topLeftMenuEnabled && renderCanvasActions(),
30964
- /* @__PURE__ */ jsx143(
31036
+ /* @__PURE__ */ jsx144(
30965
31037
  "div",
30966
31038
  {
30967
31039
  className: clsx61("selected-shape-actions-container", {
@@ -30973,10 +31045,10 @@ var LayerUI = ({
30973
31045
  ]
30974
31046
  }
30975
31047
  ),
30976
- !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && /* @__PURE__ */ jsx143(Section, { heading: "shapes", className: "shapes-section", children: (heading) => /* @__PURE__ */ jsxs78(Fragment24, { children: [
31048
+ !(appState.viewModeEnabled || appState.hideAnnotations) && appState.openDialog?.name !== "elementLinkSelector" && /* @__PURE__ */ jsx144(Section, { heading: "shapes", className: "shapes-section", children: (heading) => /* @__PURE__ */ jsxs78(Fragment24, { children: [
30977
31049
  /* @__PURE__ */ jsxs78("div", { style: { position: "relative" }, children: [
30978
- renderWelcomeScreen && /* @__PURE__ */ jsx143(tunnels.WelcomeScreenToolbarHintTunnel.Out, {}),
30979
- /* @__PURE__ */ jsx143(Stack_default.Col, { gap: spacing.toolbarColGap, align: "start", children: /* @__PURE__ */ jsxs78(
31050
+ renderWelcomeScreen && /* @__PURE__ */ jsx144(tunnels.WelcomeScreenToolbarHintTunnel.Out, {}),
31051
+ /* @__PURE__ */ jsx144(Stack_default.Col, { gap: spacing.toolbarColGap, align: "start", children: /* @__PURE__ */ jsxs78(
30980
31052
  Stack_default.Row,
30981
31053
  {
30982
31054
  gap: spacing.toolbarRowGap,
@@ -30993,7 +31065,7 @@ var LayerUI = ({
30993
31065
  "App-toolbar--compact": isCompactStylesPanel
30994
31066
  }),
30995
31067
  children: [
30996
- app.props.UIOptions.toolBar?.hintViewerEnabled && /* @__PURE__ */ jsx143(
31068
+ app.props.UIOptions.toolBar?.hintViewerEnabled && /* @__PURE__ */ jsx144(
30997
31069
  HintViewer,
30998
31070
  {
30999
31071
  appState,
@@ -31004,7 +31076,7 @@ var LayerUI = ({
31004
31076
  ),
31005
31077
  heading,
31006
31078
  /* @__PURE__ */ jsxs78(Stack_default.Row, { gap: spacing.toolbarInnerRowGap, children: [
31007
- /* @__PURE__ */ jsx143(
31079
+ /* @__PURE__ */ jsx144(
31008
31080
  PenModeButton,
31009
31081
  {
31010
31082
  zenModeEnabled: appState.zenModeEnabled,
@@ -31014,7 +31086,7 @@ var LayerUI = ({
31014
31086
  penDetected: appState.penDetected
31015
31087
  }
31016
31088
  ),
31017
- app.props.UIOptions.toolBar?.lockEnabled && /* @__PURE__ */ jsx143(
31089
+ app.props.UIOptions.toolBar?.lockEnabled && /* @__PURE__ */ jsx144(
31018
31090
  LockButton,
31019
31091
  {
31020
31092
  checked: appState.activeTool.locked,
@@ -31022,8 +31094,8 @@ var LayerUI = ({
31022
31094
  title: t("toolBar.lock")
31023
31095
  }
31024
31096
  ),
31025
- (appState.penDetected || app.props.UIOptions.toolBar?.lockEnabled) && /* @__PURE__ */ jsx143("div", { className: "App-toolbar__divider" }),
31026
- /* @__PURE__ */ jsx143(
31097
+ (appState.penDetected || app.props.UIOptions.toolBar?.lockEnabled) && /* @__PURE__ */ jsx144("div", { className: "App-toolbar__divider" }),
31098
+ /* @__PURE__ */ jsx144(
31027
31099
  HandButton,
31028
31100
  {
31029
31101
  checked: isHandToolActive(appState),
@@ -31032,7 +31104,7 @@ var LayerUI = ({
31032
31104
  isMobile: true
31033
31105
  }
31034
31106
  ),
31035
- /* @__PURE__ */ jsx143(
31107
+ /* @__PURE__ */ jsx144(
31036
31108
  ShapesSwitcher,
31037
31109
  {
31038
31110
  setAppState,
@@ -31045,7 +31117,7 @@ var LayerUI = ({
31045
31117
  ]
31046
31118
  }
31047
31119
  ),
31048
- isCollaborating && /* @__PURE__ */ jsx143(
31120
+ isCollaborating && /* @__PURE__ */ jsx144(
31049
31121
  Island,
31050
31122
  {
31051
31123
  style: {
@@ -31053,7 +31125,7 @@ var LayerUI = ({
31053
31125
  alignSelf: "center",
31054
31126
  height: "fit-content"
31055
31127
  },
31056
- children: /* @__PURE__ */ jsx143(
31128
+ children: /* @__PURE__ */ jsx144(
31057
31129
  LaserPointerButton,
31058
31130
  {
31059
31131
  title: t("toolBar.laser"),
@@ -31068,7 +31140,7 @@ var LayerUI = ({
31068
31140
  }
31069
31141
  ) })
31070
31142
  ] }),
31071
- app.props.UIOptions.undoRedoPosition === "toolbar" && /* @__PURE__ */ jsx143(
31143
+ app.props.UIOptions.undoRedoPosition === "toolbar" && /* @__PURE__ */ jsx144(
31072
31144
  UndoRedoActions,
31073
31145
  {
31074
31146
  renderAction: actionManager.renderAction,
@@ -31089,7 +31161,7 @@ var LayerUI = ({
31089
31161
  }
31090
31162
  ),
31091
31163
  children: [
31092
- appState.collaborators.size > 0 && /* @__PURE__ */ jsx143(
31164
+ appState.collaborators.size > 0 && /* @__PURE__ */ jsx144(
31093
31165
  UserList,
31094
31166
  {
31095
31167
  collaborators: appState.collaborators,
@@ -31100,9 +31172,9 @@ var LayerUI = ({
31100
31172
  editorInterface.formFactor === "phone",
31101
31173
  appState
31102
31174
  ),
31103
- !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && // hide button when sidebar docked
31104
- (!isSidebarDocked || appState.openSidebar?.name !== DEFAULT_SIDEBAR6.name) && /* @__PURE__ */ jsx143(tunnels.DefaultSidebarTriggerTunnel.Out, {}),
31105
- shouldShowStats && /* @__PURE__ */ jsx143(
31175
+ !(appState.viewModeEnabled || appState.hideAnnotations) && appState.openDialog?.name !== "elementLinkSelector" && // hide button when sidebar docked
31176
+ (!isSidebarDocked || appState.openSidebar?.name !== DEFAULT_SIDEBAR6.name) && /* @__PURE__ */ jsx144(tunnels.DefaultSidebarTriggerTunnel.Out, {}),
31177
+ shouldShowStats && /* @__PURE__ */ jsx144(
31106
31178
  Stats,
31107
31179
  {
31108
31180
  app,
@@ -31120,7 +31192,7 @@ var LayerUI = ({
31120
31192
  ) });
31121
31193
  };
31122
31194
  const renderSidebars = () => {
31123
- return /* @__PURE__ */ jsx143(
31195
+ return /* @__PURE__ */ jsx144(
31124
31196
  DefaultSidebar,
31125
31197
  {
31126
31198
  __fallback: true,
@@ -31137,8 +31209,8 @@ var LayerUI = ({
31137
31209
  const isSidebarDocked = useAtomValue(isSidebarDockedAtom);
31138
31210
  const layerUIJSX = /* @__PURE__ */ jsxs78(Fragment24, { children: [
31139
31211
  children,
31140
- /* @__PURE__ */ jsx143(DefaultMainMenu, { UIOptions }),
31141
- app.props.UIOptions.libraryEnabled && /* @__PURE__ */ jsx143(
31212
+ /* @__PURE__ */ jsx144(DefaultMainMenu, { UIOptions }),
31213
+ app.props.UIOptions.libraryEnabled && /* @__PURE__ */ jsx144(
31142
31214
  DefaultSidebar.Trigger,
31143
31215
  {
31144
31216
  __fallback: true,
@@ -31156,11 +31228,11 @@ var LayerUI = ({
31156
31228
  tab: DEFAULT_SIDEBAR6.defaultTab
31157
31229
  }
31158
31230
  ),
31159
- /* @__PURE__ */ jsx143(DefaultOverwriteConfirmDialog, {}),
31160
- appState.openDialog?.name === "ttd" && /* @__PURE__ */ jsx143(TTDDialog, { __fallback: true }),
31161
- appState.isLoading && /* @__PURE__ */ jsx143(LoadingMessage, { delay: 250 }),
31162
- appState.errorMessage && /* @__PURE__ */ jsx143(ErrorDialog, { onClose: () => setAppState({ errorMessage: null }), children: appState.errorMessage }),
31163
- eyeDropperState && editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsx143(
31231
+ /* @__PURE__ */ jsx144(DefaultOverwriteConfirmDialog, {}),
31232
+ appState.openDialog?.name === "ttd" && /* @__PURE__ */ jsx144(TTDDialog, { __fallback: true }),
31233
+ appState.isLoading && /* @__PURE__ */ jsx144(LoadingMessage, { delay: 250 }),
31234
+ appState.errorMessage && /* @__PURE__ */ jsx144(ErrorDialog, { onClose: () => setAppState({ errorMessage: null }), children: appState.errorMessage }),
31235
+ eyeDropperState && editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsx144(
31164
31236
  EyeDropper,
31165
31237
  {
31166
31238
  colorPickerType: eyeDropperState.colorPickerType,
@@ -31195,7 +31267,7 @@ var LayerUI = ({
31195
31267
  }
31196
31268
  }
31197
31269
  ),
31198
- appState.openDialog?.name === "help" && /* @__PURE__ */ jsx143(
31270
+ appState.openDialog?.name === "help" && /* @__PURE__ */ jsx144(
31199
31271
  HelpDialog,
31200
31272
  {
31201
31273
  onClose: () => {
@@ -31203,8 +31275,8 @@ var LayerUI = ({
31203
31275
  }
31204
31276
  }
31205
31277
  ),
31206
- /* @__PURE__ */ jsx143(ActiveConfirmDialog, {}),
31207
- appState.openDialog?.name === "elementLinkSelector" && /* @__PURE__ */ jsx143(
31278
+ /* @__PURE__ */ jsx144(ActiveConfirmDialog, {}),
31279
+ appState.openDialog?.name === "elementLinkSelector" && /* @__PURE__ */ jsx144(
31208
31280
  ElementLinkDialog_default,
31209
31281
  {
31210
31282
  sourceElementId: appState.openDialog.sourceElementId,
@@ -31218,10 +31290,10 @@ var LayerUI = ({
31218
31290
  generateLinkForSelection
31219
31291
  }
31220
31292
  ),
31221
- /* @__PURE__ */ jsx143(tunnels.OverwriteConfirmDialogTunnel.Out, {}),
31293
+ /* @__PURE__ */ jsx144(tunnels.OverwriteConfirmDialogTunnel.Out, {}),
31222
31294
  renderImageExportDialog(),
31223
31295
  renderJSONExportDialog(),
31224
- appState.pasteDialog.shown && /* @__PURE__ */ jsx143(
31296
+ appState.pasteDialog.shown && /* @__PURE__ */ jsx144(
31225
31297
  PasteChartDialog,
31226
31298
  {
31227
31299
  setAppState,
@@ -31231,7 +31303,7 @@ var LayerUI = ({
31231
31303
  })
31232
31304
  }
31233
31305
  ),
31234
- editorInterface.formFactor === "phone" && /* @__PURE__ */ jsx143(
31306
+ editorInterface.formFactor === "phone" && /* @__PURE__ */ jsx144(
31235
31307
  MobileMenu,
31236
31308
  {
31237
31309
  app,
@@ -31247,7 +31319,8 @@ var LayerUI = ({
31247
31319
  renderTopRightUI,
31248
31320
  renderSidebars,
31249
31321
  renderWelcomeScreen,
31250
- UIOptions
31322
+ UIOptions,
31323
+ onEyeButtonClick: () => setAppState((s) => ({ hideAnnotations: !s.hideAnnotations }))
31251
31324
  }
31252
31325
  ),
31253
31326
  editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsxs78(Fragment24, { children: [
@@ -31257,9 +31330,9 @@ var LayerUI = ({
31257
31330
  className: "layer-ui__wrapper",
31258
31331
  style: appState.openSidebar && isSidebarDocked && editorInterface.canFitSidebar ? { width: `calc(100% - var(--right-sidebar-width))` } : {},
31259
31332
  children: [
31260
- renderWelcomeScreen && /* @__PURE__ */ jsx143(tunnels.WelcomeScreenCenterTunnel.Out, {}),
31333
+ renderWelcomeScreen && /* @__PURE__ */ jsx144(tunnels.WelcomeScreenCenterTunnel.Out, {}),
31261
31334
  renderFixedSideContainer(),
31262
- /* @__PURE__ */ jsx143(
31335
+ /* @__PURE__ */ jsx144(
31263
31336
  Footer_default,
31264
31337
  {
31265
31338
  appState,
@@ -31268,10 +31341,12 @@ var LayerUI = ({
31268
31341
  renderWelcomeScreen,
31269
31342
  helpEnabled: app.props.UIOptions.footer?.helpEnabled,
31270
31343
  showUndoRedo: app.props.UIOptions.undoRedoPosition === "footer",
31271
- isTopAligned: app.props.UIOptions.swapTopMenuAndFooter
31344
+ isTopAligned: app.props.UIOptions.swapTopMenuAndFooter,
31345
+ hideAnnotationsControlEnabled: app.props.UIOptions.hideAnnotationsControlEnabled,
31346
+ onEyeButtonClick: () => setAppState((s) => ({ hideAnnotations: !s.hideAnnotations }))
31272
31347
  }
31273
31348
  ),
31274
- appState.scrolledOutside && /* @__PURE__ */ jsx143(
31349
+ appState.scrolledOutside && /* @__PURE__ */ jsx144(
31275
31350
  "button",
31276
31351
  {
31277
31352
  type: "button",
@@ -31290,7 +31365,7 @@ var LayerUI = ({
31290
31365
  renderSidebars()
31291
31366
  ] })
31292
31367
  ] });
31293
- return /* @__PURE__ */ jsx143(UIAppStateContext.Provider, { value: appState, children: /* @__PURE__ */ jsx143(TunnelsJotaiProvider, { children: /* @__PURE__ */ jsx143(TunnelsContext.Provider, { value: tunnels, children: layerUIJSX }) }) });
31368
+ return /* @__PURE__ */ jsx144(UIAppStateContext.Provider, { value: appState, children: /* @__PURE__ */ jsx144(TunnelsJotaiProvider, { children: /* @__PURE__ */ jsx144(TunnelsContext.Provider, { value: tunnels, children: layerUIJSX }) }) });
31294
31369
  };
31295
31370
  var stripIrrelevantAppStateProps = (appState) => {
31296
31371
  const { startBoundElement, cursorButton, scrollX, scrollY, ...ret } = appState;
@@ -31317,7 +31392,7 @@ var LayerUI_default = React42.memo(LayerUI, areEqual2);
31317
31392
 
31318
31393
  // components/MagicButton.tsx
31319
31394
  import clsx62 from "clsx";
31320
- import { jsx as jsx144, jsxs as jsxs79 } from "react/jsx-runtime";
31395
+ import { jsx as jsx145, jsxs as jsxs79 } from "react/jsx-runtime";
31321
31396
  var DEFAULT_SIZE4 = "small";
31322
31397
  var ElementCanvasButton = (props) => {
31323
31398
  return /* @__PURE__ */ jsxs79(
@@ -31332,7 +31407,7 @@ var ElementCanvasButton = (props) => {
31332
31407
  ),
31333
31408
  title: `${props.title}`,
31334
31409
  children: [
31335
- /* @__PURE__ */ jsx144(
31410
+ /* @__PURE__ */ jsx145(
31336
31411
  "input",
31337
31412
  {
31338
31413
  className: "ToolIcon_type_checkbox",
@@ -31343,7 +31418,7 @@ var ElementCanvasButton = (props) => {
31343
31418
  "aria-label": props.title
31344
31419
  }
31345
31420
  ),
31346
- /* @__PURE__ */ jsx144("div", { className: "ToolIcon__icon", children: props.icon })
31421
+ /* @__PURE__ */ jsx145("div", { className: "ToolIcon__icon", children: props.icon })
31347
31422
  ]
31348
31423
  }
31349
31424
  );
@@ -31351,7 +31426,7 @@ var ElementCanvasButton = (props) => {
31351
31426
 
31352
31427
  // components/SVGLayer.tsx
31353
31428
  import { useEffect as useEffect42, useRef as useRef37 } from "react";
31354
- import { jsx as jsx145 } from "react/jsx-runtime";
31429
+ import { jsx as jsx146 } from "react/jsx-runtime";
31355
31430
  var SVGLayer = ({ trails }) => {
31356
31431
  const svgRef = useRef37(null);
31357
31432
  useEffect42(() => {
@@ -31366,7 +31441,7 @@ var SVGLayer = ({ trails }) => {
31366
31441
  }
31367
31442
  };
31368
31443
  }, trails);
31369
- return /* @__PURE__ */ jsx145("div", { className: "SVGLayer", children: /* @__PURE__ */ jsx145("svg", { ref: svgRef }) });
31444
+ return /* @__PURE__ */ jsx146("div", { className: "SVGLayer", children: /* @__PURE__ */ jsx146("svg", { ref: svgRef }) });
31370
31445
  };
31371
31446
 
31372
31447
  // components/canvases/InteractiveCanvas.tsx
@@ -32570,7 +32645,7 @@ var _renderInteractiveScene = ({
32570
32645
  // when we render we don't know which pointer type so use mouse,
32571
32646
  getOmitSidesForEditorInterface(editorInterface)
32572
32647
  );
32573
- if (!appState.viewModeEnabled && showBoundingBox && // do not show transform handles when text is being edited
32648
+ if (!(appState.viewModeEnabled || appState.hideAnnotations) && showBoundingBox && // do not show transform handles when text is being edited
32574
32649
  !isTextElement18(appState.editingTextElement) && // do not show transform handles when image is being cropped
32575
32650
  !appState.croppingElementId) {
32576
32651
  renderTransformHandles(
@@ -32719,7 +32794,7 @@ var renderInteractiveScene = (renderConfig) => {
32719
32794
  };
32720
32795
 
32721
32796
  // components/canvases/InteractiveCanvas.tsx
32722
- import { jsx as jsx146 } from "react/jsx-runtime";
32797
+ import { jsx as jsx147 } from "react/jsx-runtime";
32723
32798
  var INTERACTIVE_SCENE_ANIMATION_KEY = "animateInteractiveScene";
32724
32799
  var InteractiveCanvas = (props) => {
32725
32800
  const isComponentMounted = useRef38(false);
@@ -32815,14 +32890,14 @@ var InteractiveCanvas = (props) => {
32815
32890
  );
32816
32891
  }
32817
32892
  });
32818
- return /* @__PURE__ */ jsx146(
32893
+ return /* @__PURE__ */ jsx147(
32819
32894
  "canvas",
32820
32895
  {
32821
32896
  className: "excalidraw__canvas interactive",
32822
32897
  style: {
32823
32898
  width: props.appState.width,
32824
32899
  height: props.appState.height,
32825
- cursor: props.appState.viewModeEnabled ? CURSOR_TYPE3.GRAB : CURSOR_TYPE3.AUTO
32900
+ cursor: props.appState.viewModeEnabled || props.appState.hideAnnotations ? CURSOR_TYPE3.GRAB : CURSOR_TYPE3.AUTO
32826
32901
  },
32827
32902
  width: props.appState.width * props.scale,
32828
32903
  height: props.appState.height * props.scale,
@@ -32833,7 +32908,7 @@ var InteractiveCanvas = (props) => {
32833
32908
  onPointerCancel: props.onPointerCancel,
32834
32909
  onTouchMove: props.onTouchMove,
32835
32910
  onPointerDown: props.onPointerDown,
32836
- onDoubleClick: props.appState.viewModeEnabled ? void 0 : props.onDoubleClick,
32911
+ onDoubleClick: props.appState.viewModeEnabled || props.appState.hideAnnotations ? void 0 : props.onDoubleClick,
32837
32912
  children: t("labels.drawingCanvas")
32838
32913
  }
32839
32914
  );
@@ -32844,6 +32919,7 @@ var getRelevantAppStateProps = (appState) => ({
32844
32919
  scrollY: appState.scrollY,
32845
32920
  width: appState.width,
32846
32921
  height: appState.height,
32922
+ hideAnnotations: appState.hideAnnotations,
32847
32923
  viewModeEnabled: appState.viewModeEnabled,
32848
32924
  openDialog: appState.openDialog,
32849
32925
  editingGroupId: appState.editingGroupId,
@@ -32895,7 +32971,7 @@ var InteractiveCanvas_default = React43.memo(InteractiveCanvas, areEqual3);
32895
32971
  // components/canvases/StaticCanvas.tsx
32896
32972
  import React44, { useEffect as useEffect44, useRef as useRef39 } from "react";
32897
32973
  import { isShallowEqual as isShallowEqual8 } from "@excalidraw/common";
32898
- import { jsx as jsx147 } from "react/jsx-runtime";
32974
+ import { jsx as jsx148 } from "react/jsx-runtime";
32899
32975
  var StaticCanvas = (props) => {
32900
32976
  const wrapperRef = useRef39(null);
32901
32977
  const isComponentMounted = useRef39(false);
@@ -32930,7 +33006,7 @@ var StaticCanvas = (props) => {
32930
33006
  isRenderThrottlingEnabled()
32931
33007
  );
32932
33008
  });
32933
- return /* @__PURE__ */ jsx147("div", { className: "excalidraw__canvas-wrapper", ref: wrapperRef });
33009
+ return /* @__PURE__ */ jsx148("div", { className: "excalidraw__canvas-wrapper", ref: wrapperRef });
32934
33010
  };
32935
33011
  var getRelevantAppStateProps2 = (appState) => {
32936
33012
  const relevantAppStateProps = {
@@ -32939,6 +33015,7 @@ var getRelevantAppStateProps2 = (appState) => {
32939
33015
  scrollY: appState.scrollY,
32940
33016
  width: appState.width,
32941
33017
  height: appState.height,
33018
+ hideAnnotations: appState.hideAnnotations,
32942
33019
  viewModeEnabled: appState.viewModeEnabled,
32943
33020
  openDialog: appState.openDialog,
32944
33021
  hoveredElementIds: appState.hoveredElementIds,
@@ -33052,7 +33129,7 @@ var renderNewElementScene = (renderConfig, throttle5) => {
33052
33129
  };
33053
33130
 
33054
33131
  // components/canvases/NewElementCanvas.tsx
33055
- import { jsx as jsx148 } from "react/jsx-runtime";
33132
+ import { jsx as jsx149 } from "react/jsx-runtime";
33056
33133
  var NewElementCanvas = (props) => {
33057
33134
  const canvasRef = useRef40(null);
33058
33135
  useEffect45(() => {
@@ -33073,7 +33150,7 @@ var NewElementCanvas = (props) => {
33073
33150
  isRenderThrottlingEnabled()
33074
33151
  );
33075
33152
  });
33076
- return /* @__PURE__ */ jsx148(
33153
+ return /* @__PURE__ */ jsx149(
33077
33154
  "canvas",
33078
33155
  {
33079
33156
  className: "excalidraw__canvas",
@@ -33091,7 +33168,7 @@ var NewElementCanvas_default = NewElementCanvas;
33091
33168
 
33092
33169
  // components/Toast.tsx
33093
33170
  import { useCallback as useCallback15, useEffect as useEffect46, useRef as useRef41 } from "react";
33094
- import { jsx as jsx149, jsxs as jsxs80 } from "react/jsx-runtime";
33171
+ import { jsx as jsx150, jsxs as jsxs80 } from "react/jsx-runtime";
33095
33172
  var DEFAULT_TOAST_TIMEOUT = 5e3;
33096
33173
  var Toast = ({
33097
33174
  message,
@@ -33126,8 +33203,8 @@ var Toast = ({
33126
33203
  onMouseLeave,
33127
33204
  style,
33128
33205
  children: [
33129
- /* @__PURE__ */ jsx149("p", { className: "Toast__message", children: message }),
33130
- closable && /* @__PURE__ */ jsx149(
33206
+ /* @__PURE__ */ jsx150("p", { className: "Toast__message", children: message }),
33207
+ closable && /* @__PURE__ */ jsx150(
33131
33208
  ToolButton,
33132
33209
  {
33133
33210
  icon: CloseIcon,
@@ -33150,7 +33227,7 @@ import {
33150
33227
  } from "@excalidraw/element";
33151
33228
  import { sceneCoordsToViewportCoords as sceneCoordsToViewportCoords6 } from "@excalidraw/common";
33152
33229
  import { flushSync as flushSync2 } from "react-dom";
33153
- import { jsx as jsx150 } from "react/jsx-runtime";
33230
+ import { jsx as jsx151 } from "react/jsx-runtime";
33154
33231
  var UnlockPopup = ({
33155
33232
  app,
33156
33233
  activeLockedId
@@ -33165,7 +33242,7 @@ var UnlockPopup = ({
33165
33242
  { sceneX: x, sceneY: y },
33166
33243
  app.state
33167
33244
  );
33168
- return /* @__PURE__ */ jsx150(
33245
+ return /* @__PURE__ */ jsx151(
33169
33246
  "div",
33170
33247
  {
33171
33248
  className: "UnlockPopup",
@@ -33198,7 +33275,7 @@ var UnlockPopup = ({
33198
33275
  var UnlockPopup_default = UnlockPopup;
33199
33276
 
33200
33277
  // components/App.tsx
33201
- import { Fragment as Fragment25, jsx as jsx151, jsxs as jsxs81 } from "react/jsx-runtime";
33278
+ import { Fragment as Fragment25, jsx as jsx152, jsxs as jsxs81 } from "react/jsx-runtime";
33202
33279
  var AppContext = React45.createContext(null);
33203
33280
  var AppPropsContext = React45.createContext(null);
33204
33281
  var editorInterfaceContextInitialValue = {
@@ -33323,6 +33400,7 @@ var App = class _App extends React45.Component {
33323
33400
  __publicField(this, "onPointerUpEmitter", new Emitter3());
33324
33401
  __publicField(this, "onUserFollowEmitter", new Emitter3());
33325
33402
  __publicField(this, "onScrollChangeEmitter", new Emitter3());
33403
+ __publicField(this, "onHideAnnotationsChangeEmitter", new Emitter3());
33326
33404
  __publicField(this, "missingPointerEventCleanupEmitter", new Emitter3());
33327
33405
  __publicField(this, "onRemoveEventListenersEmitter", new Emitter3());
33328
33406
  __publicField(this, "updateEditorAtom", (atom2, ...args) => {
@@ -33425,7 +33503,7 @@ var App = class _App extends React45.Component {
33425
33503
  return null;
33426
33504
  }
33427
33505
  const isDarkTheme = this.state.theme === THEME15.DARK;
33428
- const nonDeletedFramesLikes = this.scene.getNonDeletedFramesLikes();
33506
+ const nonDeletedFramesLikes = this.state.hideAnnotations ? this.scene.getNonDeletedFramesLikes().filter((f) => f.customData?.alwaysVisible === true) : this.scene.getNonDeletedFramesLikes();
33429
33507
  const focusedSearchMatch = nonDeletedFramesLikes.length > 0 ? this.state.searchMatches?.focusedId && isFrameLikeElement15(
33430
33508
  this.scene.getElement(this.state.searchMatches.focusedId)
33431
33509
  ) ? this.state.searchMatches.matches.find((sm) => sm.focus) : null : null;
@@ -33457,7 +33535,7 @@ var App = class _App extends React45.Component {
33457
33535
  const frameName = getFrameLikeTitle(f);
33458
33536
  if (f.id === this.state.editingFrame) {
33459
33537
  const frameNameInEdit = frameName;
33460
- frameNameJSX = /* @__PURE__ */ jsx151(
33538
+ frameNameJSX = /* @__PURE__ */ jsx152(
33461
33539
  "input",
33462
33540
  {
33463
33541
  autoFocus: true,
@@ -33500,7 +33578,7 @@ var App = class _App extends React45.Component {
33500
33578
  } else {
33501
33579
  frameNameJSX = frameName;
33502
33580
  }
33503
- return /* @__PURE__ */ jsx151(
33581
+ return /* @__PURE__ */ jsx152(
33504
33582
  "div",
33505
33583
  {
33506
33584
  id: this.getFrameNameDOMId(f),
@@ -34741,7 +34819,7 @@ var App = class _App extends React45.Component {
34741
34819
  if (this.actionManager.handleKeyDown(event)) {
34742
34820
  return;
34743
34821
  }
34744
- if (this.state.viewModeEnabled) {
34822
+ if (this.state.viewModeEnabled || this.state.hideAnnotations) {
34745
34823
  return;
34746
34824
  }
34747
34825
  if (event[KEYS54.CTRL_OR_CMD] && this.state.isBindingEnabled) {
@@ -34915,7 +34993,7 @@ var App = class _App extends React45.Component {
34915
34993
  ));
34916
34994
  __publicField(this, "onKeyUp", withBatchedUpdates((event) => {
34917
34995
  if (event.key === KEYS54.SPACE) {
34918
- if (this.state.viewModeEnabled || this.state.openDialog?.name === "elementLinkSelector") {
34996
+ if (this.state.viewModeEnabled || this.state.hideAnnotations || this.state.openDialog?.name === "elementLinkSelector") {
34919
34997
  setCursor(this.interactiveCanvas, CURSOR_TYPE4.GRAB);
34920
34998
  } else if (isSelectionLikeTool(this.state.activeTool.type)) {
34921
34999
  resetCursor(this.interactiveCanvas);
@@ -35424,7 +35502,7 @@ var App = class _App extends React45.Component {
35424
35502
  }
35425
35503
  }
35426
35504
  resetCursor(this.interactiveCanvas);
35427
- if (!event[KEYS54.CTRL_OR_CMD] && !this.state.viewModeEnabled) {
35505
+ if (!event[KEYS54.CTRL_OR_CMD] && !(this.state.viewModeEnabled || this.state.hideAnnotations)) {
35428
35506
  const hitElement = this.getElementAtPosition(sceneX, sceneY);
35429
35507
  if (isIframeLikeElement2(hitElement)) {
35430
35508
  this.setState({
@@ -35934,7 +36012,7 @@ var App = class _App extends React45.Component {
35934
36012
  this.interactiveCanvas,
35935
36013
  isTextElement19(hitElement) ? CURSOR_TYPE4.TEXT : CURSOR_TYPE4.CROSSHAIR
35936
36014
  );
35937
- } else if (this.state.viewModeEnabled) {
36015
+ } else if (this.state.viewModeEnabled || this.state.hideAnnotations) {
35938
36016
  setCursor(this.interactiveCanvas, CURSOR_TYPE4.GRAB);
35939
36017
  } else if (this.state.openDialog?.name === "elementLinkSelector") {
35940
36018
  setCursor(this.interactiveCanvas, CURSOR_TYPE4.AUTO);
@@ -36291,7 +36369,7 @@ var App = class _App extends React45.Component {
36291
36369
  this.missingPointerEventCleanupEmitter.once(
36292
36370
  (_event) => onPointerUp(_event || event.nativeEvent)
36293
36371
  );
36294
- if (!this.state.viewModeEnabled || this.state.activeTool.type === "laser") {
36372
+ if (!(this.state.viewModeEnabled || this.state.hideAnnotations) || this.state.activeTool.type === "laser") {
36295
36373
  window.addEventListener(EVENT15.POINTER_MOVE, onPointerMove);
36296
36374
  window.addEventListener(EVENT15.POINTER_UP, onPointerUp);
36297
36375
  window.addEventListener(EVENT15.KEYDOWN, onKeyDown);
@@ -36357,7 +36435,7 @@ var App = class _App extends React45.Component {
36357
36435
  } else {
36358
36436
  this.redirectToLink(event, this.editorInterface.isTouchScreen);
36359
36437
  }
36360
- } else if (this.state.viewModeEnabled) {
36438
+ } else if (this.state.viewModeEnabled || this.state.hideAnnotations) {
36361
36439
  this.setState({
36362
36440
  activeEmbeddable: null,
36363
36441
  selectedElementIds: {}
@@ -36395,7 +36473,7 @@ var App = class _App extends React45.Component {
36395
36473
  });
36396
36474
  // Returns whether the event is a panning
36397
36475
  __publicField(this, "handleCanvasPanUsingWheelOrSpaceDrag", (event) => {
36398
- if (!(gesture.pointers.size <= 1 && (event.button === POINTER_BUTTON2.WHEEL || event.button === POINTER_BUTTON2.MAIN && isHoldingSpace || isHandToolActive(this.state) || this.state.viewModeEnabled))) {
36476
+ if (!(gesture.pointers.size <= 1 && (event.button === POINTER_BUTTON2.WHEEL || event.button === POINTER_BUTTON2.MAIN && isHoldingSpace || isHandToolActive(this.state) || this.state.viewModeEnabled || this.state.hideAnnotations))) {
36399
36477
  return false;
36400
36478
  }
36401
36479
  isPanning = true;
@@ -36437,7 +36515,7 @@ var App = class _App extends React45.Component {
36437
36515
  lastPointerUp = null;
36438
36516
  isPanning = false;
36439
36517
  if (!isHoldingSpace) {
36440
- if (this.state.viewModeEnabled) {
36518
+ if (this.state.viewModeEnabled || this.state.hideAnnotations) {
36441
36519
  setCursor(this.interactiveCanvas, CURSOR_TYPE4.GRAB);
36442
36520
  } else {
36443
36521
  setCursorForShape(this.interactiveCanvas, this.state);
@@ -38006,7 +38084,7 @@ var App = class _App extends React45.Component {
38006
38084
  const options = [];
38007
38085
  options.push(actionCopyAsPng, actionCopyAsSvg);
38008
38086
  if (type === "canvas") {
38009
- if (this.state.viewModeEnabled) {
38087
+ if (this.state.viewModeEnabled || this.state.hideAnnotations) {
38010
38088
  return [
38011
38089
  ...options,
38012
38090
  actionToggleGridMode,
@@ -38033,7 +38111,7 @@ var App = class _App extends React45.Component {
38033
38111
  ];
38034
38112
  }
38035
38113
  options.push(copyText);
38036
- if (this.state.viewModeEnabled) {
38114
+ if (this.state.viewModeEnabled || this.state.hideAnnotations) {
38037
38115
  return [actionCopy, ...options];
38038
38116
  }
38039
38117
  const libraryActions = this.props.UIOptions.libraryEnabled ? [CONTEXT_MENU_SEPARATOR, actionAddToLibrary] : [];
@@ -38203,6 +38281,7 @@ var App = class _App extends React45.Component {
38203
38281
  const defaultAppState = getDefaultAppState();
38204
38282
  const {
38205
38283
  excalidrawAPI,
38284
+ hideAnnotations = false,
38206
38285
  viewModeEnabled = false,
38207
38286
  zenModeEnabled = false,
38208
38287
  gridModeEnabled = false,
@@ -38215,6 +38294,7 @@ var App = class _App extends React45.Component {
38215
38294
  theme,
38216
38295
  isLoading: true,
38217
38296
  ...this.getCanvasOffsets(),
38297
+ hideAnnotations,
38218
38298
  viewModeEnabled,
38219
38299
  zenModeEnabled,
38220
38300
  objectsSnapModeEnabled,
@@ -38275,7 +38355,8 @@ var App = class _App extends React45.Component {
38275
38355
  onPointerDown: (cb) => this.onPointerDownEmitter.on(cb),
38276
38356
  onPointerUp: (cb) => this.onPointerUpEmitter.on(cb),
38277
38357
  onScrollChange: (cb) => this.onScrollChangeEmitter.on(cb),
38278
- onUserFollow: (cb) => this.onUserFollowEmitter.on(cb)
38358
+ onUserFollow: (cb) => this.onUserFollowEmitter.on(cb),
38359
+ onHideAnnotationsChange: (cb) => this.onHideAnnotationsChangeEmitter.on(cb)
38279
38360
  };
38280
38361
  if (typeof excalidrawAPI === "function") {
38281
38362
  excalidrawAPI(api);
@@ -38629,7 +38710,7 @@ var App = class _App extends React45.Component {
38629
38710
  const embeddableElements = this.scene.getNonDeletedElements().filter(
38630
38711
  (el) => isEmbeddableElement4(el) && this.embedsValidationStatus.get(el.id) === true || isIframeElement2(el)
38631
38712
  );
38632
- return /* @__PURE__ */ jsx151(Fragment25, { children: embeddableElements.map((el) => {
38713
+ return /* @__PURE__ */ jsx152(Fragment25, { children: embeddableElements.map((el) => {
38633
38714
  const { x, y } = sceneCoordsToViewportCoords7(
38634
38715
  { sceneX: el.x, sceneY: el.y },
38635
38716
  this.state
@@ -38785,7 +38866,7 @@ var App = class _App extends React45.Component {
38785
38866
  }
38786
38867
  const isActive = this.state.activeEmbeddable?.element === el && this.state.activeEmbeddable?.state === "active";
38787
38868
  const isHovered = this.state.activeEmbeddable?.element === el && this.state.activeEmbeddable?.state === "hover";
38788
- return /* @__PURE__ */ jsx151(
38869
+ return /* @__PURE__ */ jsx152(
38789
38870
  "div",
38790
38871
  {
38791
38872
  className: clsx63("excalidraw__embeddable-container", {
@@ -38817,15 +38898,15 @@ var App = class _App extends React45.Component {
38817
38898
  pointerEvents: isActive ? POINTER_EVENTS.enabled : POINTER_EVENTS.disabled
38818
38899
  },
38819
38900
  children: [
38820
- isHovered && /* @__PURE__ */ jsx151("div", { className: "excalidraw__embeddable-hint", children: t("buttons.embeddableInteractionButton") }),
38821
- /* @__PURE__ */ jsx151(
38901
+ isHovered && /* @__PURE__ */ jsx152("div", { className: "excalidraw__embeddable-hint", children: t("buttons.embeddableInteractionButton") }),
38902
+ /* @__PURE__ */ jsx152(
38822
38903
  "div",
38823
38904
  {
38824
38905
  className: "excalidraw__embeddable__outer",
38825
38906
  style: {
38826
38907
  padding: `${el.strokeWidth}px`
38827
38908
  },
38828
- children: (isEmbeddableElement4(el) ? this.props.renderEmbeddable?.(el, this.state) : null) ?? /* @__PURE__ */ jsx151(
38909
+ children: (isEmbeddableElement4(el) ? this.props.renderEmbeddable?.(el, this.state) : null) ?? /* @__PURE__ */ jsx152(
38829
38910
  "iframe",
38830
38911
  {
38831
38912
  ref: (ref) => this.cacheEmbeddableRef(el, ref),
@@ -38867,7 +38948,8 @@ var App = class _App extends React45.Component {
38867
38948
  height: this.state.height,
38868
38949
  width: this.state.width,
38869
38950
  editingTextElement: this.state.editingTextElement,
38870
- newElementId: this.state.newElement?.id
38951
+ newElementId: this.state.newElement?.id,
38952
+ hideAnnotations: this.state.hideAnnotations
38871
38953
  });
38872
38954
  this.visibleElements = visibleElements;
38873
38955
  const allElementsMap = this.scene.getNonDeletedElementsMap();
@@ -38879,12 +38961,12 @@ var App = class _App extends React45.Component {
38879
38961
  );
38880
38962
  const firstSelectedElement = selectedElements[0];
38881
38963
  const showShapeSwitchPanel = editorJotaiStore.get(convertElementTypePopupAtom)?.type === "panel";
38882
- return /* @__PURE__ */ jsx151(
38964
+ return /* @__PURE__ */ jsx152(
38883
38965
  "div",
38884
38966
  {
38885
38967
  translate: "no",
38886
38968
  className: clsx63("excalidraw excalidraw-container notranslate", {
38887
- "excalidraw--view-mode": this.state.viewModeEnabled || this.state.openDialog?.name === "elementLinkSelector",
38969
+ "excalidraw--view-mode": this.state.viewModeEnabled || this.state.hideAnnotations || this.state.openDialog?.name === "elementLinkSelector",
38888
38970
  "excalidraw--mobile": this.editorInterface.formFactor === "phone"
38889
38971
  }),
38890
38972
  style: {
@@ -38897,11 +38979,11 @@ var App = class _App extends React45.Component {
38897
38979
  onKeyDown: this.props.handleKeyboardGlobally ? void 0 : this.onKeyDown,
38898
38980
  onPointerEnter: this.toggleOverscrollBehavior,
38899
38981
  onPointerLeave: this.toggleOverscrollBehavior,
38900
- children: /* @__PURE__ */ jsx151(AppContext.Provider, { value: this, children: /* @__PURE__ */ jsx151(AppPropsContext.Provider, { value: this.props, children: /* @__PURE__ */ jsx151(
38982
+ children: /* @__PURE__ */ jsx152(AppContext.Provider, { value: this, children: /* @__PURE__ */ jsx152(AppPropsContext.Provider, { value: this.props, children: /* @__PURE__ */ jsx152(
38901
38983
  ExcalidrawContainerContext.Provider,
38902
38984
  {
38903
38985
  value: this.excalidrawContainerValue,
38904
- children: /* @__PURE__ */ jsx151(EditorInterfaceContext.Provider, { value: this.editorInterface, children: /* @__PURE__ */ jsx151(ExcalidrawSetAppStateContext.Provider, { value: this.setAppState, children: /* @__PURE__ */ jsx151(ExcalidrawAppStateContext.Provider, { value: this.state, children: /* @__PURE__ */ jsxs81(
38986
+ children: /* @__PURE__ */ jsx152(EditorInterfaceContext.Provider, { value: this.editorInterface, children: /* @__PURE__ */ jsx152(ExcalidrawSetAppStateContext.Provider, { value: this.setAppState, children: /* @__PURE__ */ jsx152(ExcalidrawAppStateContext.Provider, { value: this.state, children: /* @__PURE__ */ jsxs81(
38905
38987
  ExcalidrawElementsContext.Provider,
38906
38988
  {
38907
38989
  value: this.scene.getNonDeletedElements(),
@@ -38911,7 +38993,7 @@ var App = class _App extends React45.Component {
38911
38993
  {
38912
38994
  value: this.actionManager,
38913
38995
  children: [
38914
- /* @__PURE__ */ jsx151(
38996
+ /* @__PURE__ */ jsx152(
38915
38997
  LayerUI_default,
38916
38998
  {
38917
38999
  canvas: this.canvas,
@@ -38937,10 +39019,10 @@ var App = class _App extends React45.Component {
38937
39019
  children: this.props.children
38938
39020
  }
38939
39021
  ),
38940
- /* @__PURE__ */ jsx151("div", { className: "excalidraw-textEditorContainer" }),
38941
- /* @__PURE__ */ jsx151("div", { className: "excalidraw-contextMenuContainer" }),
38942
- /* @__PURE__ */ jsx151("div", { className: "excalidraw-eye-dropper-container" }),
38943
- /* @__PURE__ */ jsx151(
39022
+ /* @__PURE__ */ jsx152("div", { className: "excalidraw-textEditorContainer" }),
39023
+ /* @__PURE__ */ jsx152("div", { className: "excalidraw-contextMenuContainer" }),
39024
+ /* @__PURE__ */ jsx152("div", { className: "excalidraw-eye-dropper-container" }),
39025
+ /* @__PURE__ */ jsx152(
38944
39026
  SVGLayer,
38945
39027
  {
38946
39028
  trails: [
@@ -38950,7 +39032,7 @@ var App = class _App extends React45.Component {
38950
39032
  ]
38951
39033
  }
38952
39034
  ),
38953
- selectedElements.length === 1 && this.state.openDialog?.name !== "elementLinkSelector" && this.state.showHyperlinkPopup && /* @__PURE__ */ jsx151(
39035
+ selectedElements.length === 1 && this.state.openDialog?.name !== "elementLinkSelector" && this.state.showHyperlinkPopup && /* @__PURE__ */ jsx152(
38954
39036
  Hyperlink,
38955
39037
  {
38956
39038
  element: firstSelectedElement,
@@ -38962,12 +39044,12 @@ var App = class _App extends React45.Component {
38962
39044
  },
38963
39045
  firstSelectedElement.id
38964
39046
  ),
38965
- this.props.aiEnabled !== false && selectedElements.length === 1 && isMagicFrameElement2(firstSelectedElement) && /* @__PURE__ */ jsx151(
39047
+ this.props.aiEnabled !== false && selectedElements.length === 1 && isMagicFrameElement2(firstSelectedElement) && /* @__PURE__ */ jsx152(
38966
39048
  ElementCanvasButtons,
38967
39049
  {
38968
39050
  element: firstSelectedElement,
38969
39051
  elementsMap,
38970
- children: /* @__PURE__ */ jsx151(
39052
+ children: /* @__PURE__ */ jsx152(
38971
39053
  ElementCanvasButton,
38972
39054
  {
38973
39055
  title: t("labels.convertToCode"),
@@ -38987,7 +39069,7 @@ var App = class _App extends React45.Component {
38987
39069
  element: firstSelectedElement,
38988
39070
  elementsMap,
38989
39071
  children: [
38990
- /* @__PURE__ */ jsx151(
39072
+ /* @__PURE__ */ jsx152(
38991
39073
  ElementCanvasButton,
38992
39074
  {
38993
39075
  title: t("labels.copySource"),
@@ -38996,7 +39078,7 @@ var App = class _App extends React45.Component {
38996
39078
  onChange: () => this.onIframeSrcCopy(firstSelectedElement)
38997
39079
  }
38998
39080
  ),
38999
- /* @__PURE__ */ jsx151(
39081
+ /* @__PURE__ */ jsx152(
39000
39082
  ElementCanvasButton,
39001
39083
  {
39002
39084
  title: "Enter fullscreen",
@@ -39033,7 +39115,7 @@ var App = class _App extends React45.Component {
39033
39115
  ]
39034
39116
  }
39035
39117
  ),
39036
- this.state.toast !== null && /* @__PURE__ */ jsx151(
39118
+ this.state.toast !== null && /* @__PURE__ */ jsx152(
39037
39119
  Toast,
39038
39120
  {
39039
39121
  message: this.state.toast.message,
@@ -39042,7 +39124,7 @@ var App = class _App extends React45.Component {
39042
39124
  closable: this.state.toast.closable
39043
39125
  }
39044
39126
  ),
39045
- this.state.contextMenu && /* @__PURE__ */ jsx151(
39127
+ this.state.contextMenu && /* @__PURE__ */ jsx152(
39046
39128
  ContextMenu,
39047
39129
  {
39048
39130
  items: this.state.contextMenu.items,
@@ -39057,7 +39139,7 @@ var App = class _App extends React45.Component {
39057
39139
  }
39058
39140
  }
39059
39141
  ),
39060
- /* @__PURE__ */ jsx151(
39142
+ /* @__PURE__ */ jsx152(
39061
39143
  StaticCanvas_default,
39062
39144
  {
39063
39145
  canvas: this.canvas,
@@ -39080,7 +39162,7 @@ var App = class _App extends React45.Component {
39080
39162
  }
39081
39163
  }
39082
39164
  ),
39083
- this.state.newElement && /* @__PURE__ */ jsx151(
39165
+ this.state.newElement && /* @__PURE__ */ jsx152(
39084
39166
  NewElementCanvas_default,
39085
39167
  {
39086
39168
  appState: this.state,
@@ -39099,7 +39181,7 @@ var App = class _App extends React45.Component {
39099
39181
  }
39100
39182
  }
39101
39183
  ),
39102
- /* @__PURE__ */ jsx151(
39184
+ /* @__PURE__ */ jsx152(
39103
39185
  InteractiveCanvas_default,
39104
39186
  {
39105
39187
  app: this,
@@ -39126,7 +39208,7 @@ var App = class _App extends React45.Component {
39126
39208
  onDoubleClick: this.handleCanvasDoubleClick
39127
39209
  }
39128
39210
  ),
39129
- this.state.userToFollow && /* @__PURE__ */ jsx151(
39211
+ this.state.userToFollow && /* @__PURE__ */ jsx152(
39130
39212
  FollowMode_default,
39131
39213
  {
39132
39214
  width: this.state.width,
@@ -39136,14 +39218,14 @@ var App = class _App extends React45.Component {
39136
39218
  }
39137
39219
  ),
39138
39220
  this.renderFrameNames(),
39139
- this.state.activeLockedId && /* @__PURE__ */ jsx151(
39221
+ this.state.activeLockedId && /* @__PURE__ */ jsx152(
39140
39222
  UnlockPopup_default,
39141
39223
  {
39142
39224
  app: this,
39143
39225
  activeLockedId: this.state.activeLockedId
39144
39226
  }
39145
39227
  ),
39146
- showShapeSwitchPanel && /* @__PURE__ */ jsx151(ConvertElementTypePopup_default, { app: this })
39228
+ showShapeSwitchPanel && /* @__PURE__ */ jsx152(ConvertElementTypePopup_default, { app: this })
39147
39229
  ]
39148
39230
  }
39149
39231
  ),
@@ -39318,7 +39400,7 @@ var App = class _App extends React45.Component {
39318
39400
  }
39319
39401
  if (isBrave() && !isMeasureTextSupported()) {
39320
39402
  this.setState({
39321
- errorMessage: /* @__PURE__ */ jsx151(BraveMeasureTextError_default, {})
39403
+ errorMessage: /* @__PURE__ */ jsx152(BraveMeasureTextError_default, {})
39322
39404
  });
39323
39405
  }
39324
39406
  }
@@ -39418,7 +39500,7 @@ var App = class _App extends React45.Component {
39418
39500
  { passive: false }
39419
39501
  )
39420
39502
  );
39421
- if (this.state.viewModeEnabled) {
39503
+ if (this.state.viewModeEnabled || this.state.hideAnnotations) {
39422
39504
  return;
39423
39505
  }
39424
39506
  this.onRemoveEventListenersEmitter.once(
@@ -39488,6 +39570,10 @@ var App = class _App extends React45.Component {
39488
39570
  this.state.zoom
39489
39571
  );
39490
39572
  }
39573
+ if (prevState.hideAnnotations !== this.state.hideAnnotations) {
39574
+ this.props?.onHideAnnotationsChange?.(this.state.hideAnnotations);
39575
+ this.onHideAnnotationsChangeEmitter.trigger(this.state.hideAnnotations);
39576
+ }
39491
39577
  if (prevState.userToFollow !== this.state.userToFollow) {
39492
39578
  if (prevState.userToFollow) {
39493
39579
  this.onUserFollowEmitter.trigger({
@@ -39522,7 +39608,10 @@ var App = class _App extends React45.Component {
39522
39608
  if (prevProps.viewModeEnabled !== this.props.viewModeEnabled) {
39523
39609
  this.setState({ viewModeEnabled: !!this.props.viewModeEnabled });
39524
39610
  }
39525
- if (prevState.viewModeEnabled !== this.state.viewModeEnabled) {
39611
+ if (prevProps.hideAnnotations !== this.props.hideAnnotations) {
39612
+ this.setState({ hideAnnotations: !!this.props.hideAnnotations });
39613
+ }
39614
+ if (prevState.viewModeEnabled !== this.state.viewModeEnabled || prevState.hideAnnotations !== this.state.hideAnnotations) {
39526
39615
  this.addEventListeners();
39527
39616
  this.deselectElements();
39528
39617
  }
@@ -41681,7 +41770,7 @@ var App_default = App;
41681
41770
 
41682
41771
  // components/InitializeApp.tsx
41683
41772
  import { useEffect as useEffect47, useState as useState40 } from "react";
41684
- import { jsx as jsx152 } from "react/jsx-runtime";
41773
+ import { jsx as jsx153 } from "react/jsx-runtime";
41685
41774
  var InitializeApp = (props) => {
41686
41775
  const [loading, setLoading] = useState40(true);
41687
41776
  useEffect47(() => {
@@ -41692,18 +41781,18 @@ var InitializeApp = (props) => {
41692
41781
  const currentLang2 = languages.find((lang) => lang.code === props.langCode) || defaultLang;
41693
41782
  updateLang();
41694
41783
  }, [props.langCode]);
41695
- return loading ? /* @__PURE__ */ jsx152(LoadingMessage, { theme: props.theme }) : props.children;
41784
+ return loading ? /* @__PURE__ */ jsx153(LoadingMessage, { theme: props.theme }) : props.children;
41696
41785
  };
41697
41786
 
41698
41787
  // components/footer/FooterCenter.tsx
41699
41788
  import clsx64 from "clsx";
41700
- import { jsx as jsx153 } from "react/jsx-runtime";
41789
+ import { jsx as jsx154 } from "react/jsx-runtime";
41701
41790
  var FooterCenter = ({ children }) => {
41702
41791
  const { FooterCenterTunnel } = useTunnels();
41703
41792
  const appState = useUIAppState();
41704
41793
  const appProps = useAppProps();
41705
41794
  const isTopAligned = !!appProps.UIOptions?.swapTopMenuAndFooter;
41706
- return /* @__PURE__ */ jsx153(FooterCenterTunnel.In, { children: /* @__PURE__ */ jsx153(
41795
+ return /* @__PURE__ */ jsx154(FooterCenterTunnel.In, { children: /* @__PURE__ */ jsx154(
41707
41796
  "div",
41708
41797
  {
41709
41798
  className: clsx64("footer-center zen-mode-transition", {
@@ -41720,7 +41809,7 @@ FooterCenter.displayName = "FooterCenter";
41720
41809
  // components/live-collaboration/LiveCollaborationTrigger.tsx
41721
41810
  import clsx65 from "clsx";
41722
41811
  import { MQ_MIN_WIDTH_DESKTOP } from "@excalidraw/common";
41723
- import { jsx as jsx154, jsxs as jsxs82 } from "react/jsx-runtime";
41812
+ import { jsx as jsx155, jsxs as jsxs82 } from "react/jsx-runtime";
41724
41813
  var LiveCollaborationTrigger2 = ({
41725
41814
  isCollaborating,
41726
41815
  onSelect,
@@ -41740,7 +41829,7 @@ var LiveCollaborationTrigger2 = ({
41740
41829
  title: t("labels.liveCollaboration"),
41741
41830
  children: [
41742
41831
  showIconOnly ? share : t("labels.share"),
41743
- appState.collaborators.size > 0 && /* @__PURE__ */ jsx154("div", { className: "CollabButton-collaborators", children: appState.collaborators.size })
41832
+ appState.collaborators.size > 0 && /* @__PURE__ */ jsx155("div", { className: "CollabButton-collaborators", children: appState.collaborators.size })
41744
41833
  ]
41745
41834
  }
41746
41835
  );
@@ -41749,15 +41838,15 @@ var LiveCollaborationTrigger_default = LiveCollaborationTrigger2;
41749
41838
  LiveCollaborationTrigger2.displayName = "LiveCollaborationTrigger";
41750
41839
 
41751
41840
  // components/ExcalidrawLogo.tsx
41752
- import { jsx as jsx155, jsxs as jsxs83 } from "react/jsx-runtime";
41753
- var LogoIcon = () => /* @__PURE__ */ jsx155(
41841
+ import { jsx as jsx156, jsxs as jsxs83 } from "react/jsx-runtime";
41842
+ var LogoIcon = () => /* @__PURE__ */ jsx156(
41754
41843
  "svg",
41755
41844
  {
41756
41845
  viewBox: "0 0 40 40",
41757
41846
  fill: "none",
41758
41847
  xmlns: "http://www.w3.org/2000/svg",
41759
41848
  className: "ExcalidrawLogo-icon",
41760
- children: /* @__PURE__ */ jsx155(
41849
+ children: /* @__PURE__ */ jsx156(
41761
41850
  "path",
41762
41851
  {
41763
41852
  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",
@@ -41774,28 +41863,28 @@ var LogoText = () => /* @__PURE__ */ jsxs83(
41774
41863
  fill: "none",
41775
41864
  className: "ExcalidrawLogo-text",
41776
41865
  children: [
41777
- /* @__PURE__ */ jsx155(
41866
+ /* @__PURE__ */ jsx156(
41778
41867
  "path",
41779
41868
  {
41780
41869
  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",
41781
41870
  transform: "translate(-144.023 -51.76)"
41782
41871
  }
41783
41872
  ),
41784
- /* @__PURE__ */ jsx155(
41873
+ /* @__PURE__ */ jsx156(
41785
41874
  "path",
41786
41875
  {
41787
41876
  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",
41788
41877
  transform: "translate(-144.023 -51.76)"
41789
41878
  }
41790
41879
  ),
41791
- /* @__PURE__ */ jsx155(
41880
+ /* @__PURE__ */ jsx156(
41792
41881
  "path",
41793
41882
  {
41794
41883
  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",
41795
41884
  transform: "translate(-144.023 -51.76)"
41796
41885
  }
41797
41886
  ),
41798
- /* @__PURE__ */ jsx155(
41887
+ /* @__PURE__ */ jsx156(
41799
41888
  "path",
41800
41889
  {
41801
41890
  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",
@@ -41812,13 +41901,13 @@ var ExcalidrawLogo = ({
41812
41901
  withText
41813
41902
  }) => {
41814
41903
  return /* @__PURE__ */ jsxs83("div", { className: `ExcalidrawLogo is-${size}`, style, children: [
41815
- /* @__PURE__ */ jsx155(LogoIcon, {}),
41816
- withText && /* @__PURE__ */ jsx155(LogoText, {})
41904
+ /* @__PURE__ */ jsx156(LogoIcon, {}),
41905
+ withText && /* @__PURE__ */ jsx156(LogoText, {})
41817
41906
  ] });
41818
41907
  };
41819
41908
 
41820
41909
  // components/welcome-screen/WelcomeScreen.Center.tsx
41821
- import { Fragment as Fragment26, jsx as jsx156, jsxs as jsxs84 } from "react/jsx-runtime";
41910
+ import { Fragment as Fragment26, jsx as jsx157, jsxs as jsxs84 } from "react/jsx-runtime";
41822
41911
  var WelcomeScreenMenuItemContent = ({
41823
41912
  icon,
41824
41913
  shortcut,
@@ -41826,9 +41915,9 @@ var WelcomeScreenMenuItemContent = ({
41826
41915
  }) => {
41827
41916
  const editorInterface = useEditorInterface();
41828
41917
  return /* @__PURE__ */ jsxs84(Fragment26, { children: [
41829
- /* @__PURE__ */ jsx156("div", { className: "welcome-screen-menu-item__icon", children: icon }),
41830
- /* @__PURE__ */ jsx156("div", { className: "welcome-screen-menu-item__text", children }),
41831
- shortcut && editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsx156("div", { className: "welcome-screen-menu-item__shortcut", children: shortcut })
41918
+ /* @__PURE__ */ jsx157("div", { className: "welcome-screen-menu-item__icon", children: icon }),
41919
+ /* @__PURE__ */ jsx157("div", { className: "welcome-screen-menu-item__text", children }),
41920
+ shortcut && editorInterface.formFactor !== "phone" && /* @__PURE__ */ jsx157("div", { className: "welcome-screen-menu-item__shortcut", children: shortcut })
41832
41921
  ] });
41833
41922
  };
41834
41923
  WelcomeScreenMenuItemContent.displayName = "WelcomeScreenMenuItemContent";
@@ -41840,14 +41929,14 @@ var WelcomeScreenMenuItem = ({
41840
41929
  className = "",
41841
41930
  ...props
41842
41931
  }) => {
41843
- return /* @__PURE__ */ jsx156(
41932
+ return /* @__PURE__ */ jsx157(
41844
41933
  "button",
41845
41934
  {
41846
41935
  ...props,
41847
41936
  type: "button",
41848
41937
  className: `welcome-screen-menu-item ${className}`,
41849
41938
  onClick: onSelect,
41850
- children: /* @__PURE__ */ jsx156(WelcomeScreenMenuItemContent, { icon, shortcut, children })
41939
+ children: /* @__PURE__ */ jsx157(WelcomeScreenMenuItemContent, { icon, shortcut, children })
41851
41940
  }
41852
41941
  );
41853
41942
  };
@@ -41860,7 +41949,7 @@ var WelcomeScreenMenuItemLink = ({
41860
41949
  className = "",
41861
41950
  ...props
41862
41951
  }) => {
41863
- return /* @__PURE__ */ jsx156(
41952
+ return /* @__PURE__ */ jsx157(
41864
41953
  "a",
41865
41954
  {
41866
41955
  ...props,
@@ -41868,38 +41957,38 @@ var WelcomeScreenMenuItemLink = ({
41868
41957
  href,
41869
41958
  target: "_blank",
41870
41959
  rel: "noopener",
41871
- children: /* @__PURE__ */ jsx156(WelcomeScreenMenuItemContent, { icon, shortcut, children })
41960
+ children: /* @__PURE__ */ jsx157(WelcomeScreenMenuItemContent, { icon, shortcut, children })
41872
41961
  }
41873
41962
  );
41874
41963
  };
41875
41964
  WelcomeScreenMenuItemLink.displayName = "WelcomeScreenMenuItemLink";
41876
41965
  var Center = ({ children }) => {
41877
41966
  const { WelcomeScreenCenterTunnel } = useTunnels();
41878
- return /* @__PURE__ */ jsx156(WelcomeScreenCenterTunnel.In, { children: /* @__PURE__ */ jsx156("div", { className: "welcome-screen-center", children: children || /* @__PURE__ */ jsxs84(Fragment26, { children: [
41879
- /* @__PURE__ */ jsx156(Logo, {}),
41880
- /* @__PURE__ */ jsx156(Heading, { children: t("welcomeScreen.defaults.center_heading") }),
41967
+ return /* @__PURE__ */ jsx157(WelcomeScreenCenterTunnel.In, { children: /* @__PURE__ */ jsx157("div", { className: "welcome-screen-center", children: children || /* @__PURE__ */ jsxs84(Fragment26, { children: [
41968
+ /* @__PURE__ */ jsx157(Logo, {}),
41969
+ /* @__PURE__ */ jsx157(Heading, { children: t("welcomeScreen.defaults.center_heading") }),
41881
41970
  /* @__PURE__ */ jsxs84(Menu, { children: [
41882
- /* @__PURE__ */ jsx156(MenuItemLoadScene, {}),
41883
- /* @__PURE__ */ jsx156(MenuItemHelp, {})
41971
+ /* @__PURE__ */ jsx157(MenuItemLoadScene, {}),
41972
+ /* @__PURE__ */ jsx157(MenuItemHelp, {})
41884
41973
  ] })
41885
41974
  ] }) }) });
41886
41975
  };
41887
41976
  Center.displayName = "Center";
41888
41977
  var Logo = ({ children }) => {
41889
- return /* @__PURE__ */ jsx156("div", { className: "welcome-screen-center__logo excalifont welcome-screen-decor", children: children || /* @__PURE__ */ jsx156(ExcalidrawLogo, { withText: true }) });
41978
+ return /* @__PURE__ */ jsx157("div", { className: "welcome-screen-center__logo excalifont welcome-screen-decor", children: children || /* @__PURE__ */ jsx157(ExcalidrawLogo, { withText: true }) });
41890
41979
  };
41891
41980
  Logo.displayName = "Logo";
41892
41981
  var Heading = ({ children }) => {
41893
- return /* @__PURE__ */ jsx156("div", { className: "welcome-screen-center__heading welcome-screen-decor excalifont", children });
41982
+ return /* @__PURE__ */ jsx157("div", { className: "welcome-screen-center__heading welcome-screen-decor excalifont", children });
41894
41983
  };
41895
41984
  Heading.displayName = "Heading";
41896
41985
  var Menu = ({ children }) => {
41897
- return /* @__PURE__ */ jsx156("div", { className: "welcome-screen-menu", children });
41986
+ return /* @__PURE__ */ jsx157("div", { className: "welcome-screen-menu", children });
41898
41987
  };
41899
41988
  Menu.displayName = "Menu";
41900
41989
  var MenuItemHelp = () => {
41901
41990
  const actionManager = useExcalidrawActionManager();
41902
- return /* @__PURE__ */ jsx156(
41991
+ return /* @__PURE__ */ jsx157(
41903
41992
  WelcomeScreenMenuItem,
41904
41993
  {
41905
41994
  onSelect: () => actionManager.executeAction(actionShortcuts),
@@ -41913,10 +42002,10 @@ MenuItemHelp.displayName = "MenuItemHelp";
41913
42002
  var MenuItemLoadScene = () => {
41914
42003
  const appState = useUIAppState();
41915
42004
  const actionManager = useExcalidrawActionManager();
41916
- if (appState.viewModeEnabled) {
42005
+ if (appState.viewModeEnabled || appState.hideAnnotations) {
41917
42006
  return null;
41918
42007
  }
41919
- return /* @__PURE__ */ jsx156(
42008
+ return /* @__PURE__ */ jsx157(
41920
42009
  WelcomeScreenMenuItem,
41921
42010
  {
41922
42011
  onSelect: () => actionManager.executeAction(actionLoadScene),
@@ -41931,7 +42020,7 @@ var MenuItemLiveCollaborationTrigger = ({
41931
42020
  onSelect
41932
42021
  }) => {
41933
42022
  const { t: t2 } = useI18n();
41934
- return /* @__PURE__ */ jsx156(WelcomeScreenMenuItem, { shortcut: null, onSelect, icon: usersIcon, children: t2("labels.liveCollaboration") });
42023
+ return /* @__PURE__ */ jsx157(WelcomeScreenMenuItem, { shortcut: null, onSelect, icon: usersIcon, children: t2("labels.liveCollaboration") });
41935
42024
  };
41936
42025
  MenuItemLiveCollaborationTrigger.displayName = "MenuItemLiveCollaborationTrigger";
41937
42026
  Center.Logo = Logo;
@@ -41944,40 +42033,40 @@ Center.MenuItemLoadScene = MenuItemLoadScene;
41944
42033
  Center.MenuItemLiveCollaborationTrigger = MenuItemLiveCollaborationTrigger;
41945
42034
 
41946
42035
  // components/welcome-screen/WelcomeScreen.Hints.tsx
41947
- import { jsx as jsx157, jsxs as jsxs85 } from "react/jsx-runtime";
42036
+ import { jsx as jsx158, jsxs as jsxs85 } from "react/jsx-runtime";
41948
42037
  var MenuHint = ({ children }) => {
41949
42038
  const { WelcomeScreenMenuHintTunnel } = useTunnels();
41950
- return /* @__PURE__ */ jsx157(WelcomeScreenMenuHintTunnel.In, { children: /* @__PURE__ */ jsxs85("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu", children: [
42039
+ return /* @__PURE__ */ jsx158(WelcomeScreenMenuHintTunnel.In, { children: /* @__PURE__ */ jsxs85("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu", children: [
41951
42040
  WelcomeScreenMenuArrow,
41952
- /* @__PURE__ */ jsx157("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.menuHint") })
42041
+ /* @__PURE__ */ jsx158("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.menuHint") })
41953
42042
  ] }) });
41954
42043
  };
41955
42044
  MenuHint.displayName = "MenuHint";
41956
42045
  var ToolbarHint = ({ children }) => {
41957
42046
  const { WelcomeScreenToolbarHintTunnel } = useTunnels();
41958
- return /* @__PURE__ */ jsx157(WelcomeScreenToolbarHintTunnel.In, { children: /* @__PURE__ */ jsxs85("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar", children: [
41959
- /* @__PURE__ */ jsx157("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.toolbarHint") }),
42047
+ return /* @__PURE__ */ jsx158(WelcomeScreenToolbarHintTunnel.In, { children: /* @__PURE__ */ jsxs85("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar", children: [
42048
+ /* @__PURE__ */ jsx158("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.toolbarHint") }),
41960
42049
  WelcomeScreenTopToolbarArrow
41961
42050
  ] }) });
41962
42051
  };
41963
42052
  ToolbarHint.displayName = "ToolbarHint";
41964
42053
  var HelpHint = ({ children }) => {
41965
42054
  const { WelcomeScreenHelpHintTunnel } = useTunnels();
41966
- return /* @__PURE__ */ jsx157(WelcomeScreenHelpHintTunnel.In, { children: /* @__PURE__ */ jsxs85("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help", children: [
41967
- /* @__PURE__ */ jsx157("div", { children: children || t("welcomeScreen.defaults.helpHint") }),
42055
+ return /* @__PURE__ */ jsx158(WelcomeScreenHelpHintTunnel.In, { children: /* @__PURE__ */ jsxs85("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help", children: [
42056
+ /* @__PURE__ */ jsx158("div", { children: children || t("welcomeScreen.defaults.helpHint") }),
41968
42057
  WelcomeScreenHelpArrow
41969
42058
  ] }) });
41970
42059
  };
41971
42060
  HelpHint.displayName = "HelpHint";
41972
42061
 
41973
42062
  // components/welcome-screen/WelcomeScreen.tsx
41974
- import { Fragment as Fragment27, jsx as jsx158, jsxs as jsxs86 } from "react/jsx-runtime";
42063
+ import { Fragment as Fragment27, jsx as jsx159, jsxs as jsxs86 } from "react/jsx-runtime";
41975
42064
  var WelcomeScreen = (props) => {
41976
- return /* @__PURE__ */ jsx158(Fragment27, { children: props.children || /* @__PURE__ */ jsxs86(Fragment27, { children: [
41977
- /* @__PURE__ */ jsx158(Center, {}),
41978
- /* @__PURE__ */ jsx158(MenuHint, {}),
41979
- /* @__PURE__ */ jsx158(ToolbarHint, {}),
41980
- /* @__PURE__ */ jsx158(HelpHint, {})
42065
+ return /* @__PURE__ */ jsx159(Fragment27, { children: props.children || /* @__PURE__ */ jsxs86(Fragment27, { children: [
42066
+ /* @__PURE__ */ jsx159(Center, {}),
42067
+ /* @__PURE__ */ jsx159(MenuHint, {}),
42068
+ /* @__PURE__ */ jsx159(ToolbarHint, {}),
42069
+ /* @__PURE__ */ jsx159(HelpHint, {})
41981
42070
  ] }) });
41982
42071
  };
41983
42072
  WelcomeScreen.displayName = "WelcomeScreen";
@@ -42117,7 +42206,7 @@ import {
42117
42206
  import { CaptureUpdateAction as CaptureUpdateAction38 } from "@excalidraw/element";
42118
42207
 
42119
42208
  // components/TTDDialog/TTDDialogTrigger.tsx
42120
- import { jsx as jsx159, jsxs as jsxs87 } from "react/jsx-runtime";
42209
+ import { jsx as jsx160, jsxs as jsxs87 } from "react/jsx-runtime";
42121
42210
  var TTDDialogTrigger = ({
42122
42211
  children,
42123
42212
  icon
@@ -42125,7 +42214,7 @@ var TTDDialogTrigger = ({
42125
42214
  const { t: t2 } = useI18n();
42126
42215
  const { TTDDialogTriggerTunnel } = useTunnels();
42127
42216
  const setAppState = useExcalidrawSetAppState();
42128
- return /* @__PURE__ */ jsx159(TTDDialogTriggerTunnel.In, { children: /* @__PURE__ */ jsxs87(
42217
+ return /* @__PURE__ */ jsx160(TTDDialogTriggerTunnel.In, { children: /* @__PURE__ */ jsxs87(
42129
42218
  DropdownMenu_default.Item,
42130
42219
  {
42131
42220
  onSelect: () => {
@@ -42135,7 +42224,7 @@ var TTDDialogTrigger = ({
42135
42224
  icon: icon ?? brainIcon,
42136
42225
  children: [
42137
42226
  children ?? t2("labels.textToDiagram"),
42138
- /* @__PURE__ */ jsx159(DropdownMenu_default.Item.Badge, { children: "AI" })
42227
+ /* @__PURE__ */ jsx160(DropdownMenu_default.Item.Badge, { children: "AI" })
42139
42228
  ]
42140
42229
  }
42141
42230
  ) });
@@ -42164,7 +42253,7 @@ var DiagramToCodePlugin = (props) => {
42164
42253
  // index.tsx
42165
42254
  import { isElementLink as isElementLink3 } from "@excalidraw/element";
42166
42255
  import { setCustomTextMetricsProvider } from "@excalidraw/element";
42167
- import { jsx as jsx160 } from "react/jsx-runtime";
42256
+ import { jsx as jsx161 } from "react/jsx-runtime";
42168
42257
  polyfill_default();
42169
42258
  var ExcalidrawBase = (props) => {
42170
42259
  const {
@@ -42177,6 +42266,7 @@ var ExcalidrawBase = (props) => {
42177
42266
  renderTopLeftUI,
42178
42267
  renderTopRightUI,
42179
42268
  langCode = defaultLang.code,
42269
+ hideAnnotations,
42180
42270
  viewModeEnabled,
42181
42271
  zenModeEnabled,
42182
42272
  gridModeEnabled,
@@ -42195,6 +42285,7 @@ var ExcalidrawBase = (props) => {
42195
42285
  onPointerDown,
42196
42286
  onPointerUp,
42197
42287
  onScrollChange,
42288
+ onHideAnnotationsChange,
42198
42289
  onDuplicate,
42199
42290
  children,
42200
42291
  validateEmbeddable,
@@ -42227,9 +42318,14 @@ var ExcalidrawBase = (props) => {
42227
42318
  ...DEFAULT_UI_OPTIONS.fontPicker,
42228
42319
  ...props.UIOptions?.fontPicker
42229
42320
  },
42321
+ shapeControl: {
42322
+ ...DEFAULT_UI_OPTIONS.shapeControl,
42323
+ ...props.UIOptions?.shapeControl
42324
+ },
42230
42325
  viewModeControlEnabled: props.UIOptions?.viewModeControlEnabled ?? DEFAULT_UI_OPTIONS.viewModeControlEnabled,
42231
42326
  undoRedoPosition: props.UIOptions?.undoRedoPosition ?? DEFAULT_UI_OPTIONS.undoRedoPosition,
42232
- swapTopMenuAndFooter: props.UIOptions?.swapTopMenuAndFooter ?? DEFAULT_UI_OPTIONS.swapTopMenuAndFooter
42327
+ swapTopMenuAndFooter: props.UIOptions?.swapTopMenuAndFooter ?? DEFAULT_UI_OPTIONS.swapTopMenuAndFooter,
42328
+ hideAnnotationsControlEnabled: props.UIOptions?.hideAnnotationsControlEnabled ?? DEFAULT_UI_OPTIONS.hideAnnotationsControlEnabled
42233
42329
  };
42234
42330
  if (canvasActions?.export) {
42235
42331
  UIOptions.canvasActions.export.saveFileToDisk = canvasActions.export?.saveFileToDisk ?? DEFAULT_UI_OPTIONS.canvasActions.export.saveFileToDisk;
@@ -42254,7 +42350,7 @@ var ExcalidrawBase = (props) => {
42254
42350
  document.removeEventListener("touchmove", handleTouchMove);
42255
42351
  };
42256
42352
  }, []);
42257
- return /* @__PURE__ */ jsx160(EditorJotaiProvider, { store: editorJotaiStore, children: /* @__PURE__ */ jsx160(InitializeApp, { langCode, theme, children: /* @__PURE__ */ jsx160(
42353
+ return /* @__PURE__ */ jsx161(EditorJotaiProvider, { store: editorJotaiStore, children: /* @__PURE__ */ jsx161(InitializeApp, { langCode, theme, children: /* @__PURE__ */ jsx161(
42258
42354
  App_default,
42259
42355
  {
42260
42356
  onChange,
@@ -42266,6 +42362,7 @@ var ExcalidrawBase = (props) => {
42266
42362
  renderTopLeftUI,
42267
42363
  renderTopRightUI,
42268
42364
  langCode,
42365
+ hideAnnotations,
42269
42366
  viewModeEnabled,
42270
42367
  zenModeEnabled,
42271
42368
  gridModeEnabled,
@@ -42285,6 +42382,7 @@ var ExcalidrawBase = (props) => {
42285
42382
  onPointerDown,
42286
42383
  onPointerUp,
42287
42384
  onScrollChange,
42385
+ onHideAnnotationsChange,
42288
42386
  onDuplicate,
42289
42387
  validateEmbeddable,
42290
42388
  renderEmbeddable,