@myoc/excalidraw 0.18.6 → 0.18.7

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 (31) hide show
  1. package/dist/dev/{chunk-LRA2BMXO.js → chunk-3PM7AKUW.js} +17 -3
  2. package/dist/dev/chunk-3PM7AKUW.js.map +7 -0
  3. package/dist/dev/{chunk-4OALG4EH.js → chunk-FAI3BF6J.js} +2 -2
  4. package/dist/dev/{chunk-YSK5QYKJ.js → chunk-PEI7EPYO.js} +2 -1
  5. package/dist/dev/chunk-PEI7EPYO.js.map +7 -0
  6. package/dist/dev/data/{image-OTIQTZCO.js → image-PLZ7Q7VH.js} +3 -3
  7. package/dist/dev/index.css +29 -7
  8. package/dist/dev/index.css.map +2 -2
  9. package/dist/dev/index.js +768 -679
  10. package/dist/dev/index.js.map +3 -3
  11. package/dist/dev/locales/{en-IPMKTZRA.js → en-R455UJTM.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-SNPKQ4QJ.js → chunk-BBP5YSOX.js} +1 -1
  15. package/dist/prod/{chunk-S7PD52DD.js → chunk-FOAZJPGC.js} +15 -15
  16. package/dist/prod/{chunk-HYYBIWRU.js → chunk-KZWZ7WHC.js} +1 -1
  17. package/dist/prod/data/image-4IHLZPM6.js +1 -0
  18. package/dist/prod/index.css +1 -1
  19. package/dist/prod/index.js +15 -15
  20. package/dist/prod/locales/{en-3XEBA2ZW.js → en-YWERZJD6.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/actionToggleViewMode.d.ts +1 -0
  24. package/dist/types/excalidraw/components/icons.d.ts +1 -0
  25. package/package.json +1 -1
  26. package/dist/dev/chunk-LRA2BMXO.js.map +0 -7
  27. package/dist/dev/chunk-YSK5QYKJ.js.map +0 -7
  28. package/dist/prod/data/image-TF47GACX.js +0 -1
  29. /package/dist/dev/{chunk-4OALG4EH.js.map → chunk-FAI3BF6J.js.map} +0 -0
  30. /package/dist/dev/data/{image-OTIQTZCO.js.map → image-PLZ7Q7VH.js.map} +0 -0
  31. /package/dist/dev/locales/{en-IPMKTZRA.js.map → en-R455UJTM.js.map} +0 -0
package/dist/dev/index.js CHANGED
@@ -219,6 +219,7 @@ import {
219
219
  arrayToMap,
220
220
  arrayToMapWithIndex,
221
221
  arrayToObject,
222
+ arrowsToEyeIcon,
222
223
  assertNever,
223
224
  bindElementsToFramesAfterDuplication,
224
225
  bindLinearElement,
@@ -617,13 +618,13 @@ import {
617
618
  wrapEvent,
618
619
  wrapText,
619
620
  zoomAreaIcon
620
- } from "./chunk-LRA2BMXO.js";
621
+ } from "./chunk-3PM7AKUW.js";
621
622
  import {
622
623
  define_import_meta_env_default
623
- } from "./chunk-4OALG4EH.js";
624
+ } from "./chunk-FAI3BF6J.js";
624
625
  import {
625
626
  en_default
626
- } from "./chunk-YSK5QYKJ.js";
627
+ } from "./chunk-PEI7EPYO.js";
627
628
  import {
628
629
  percentages_default
629
630
  } from "./chunk-MFAYKRVR.js";
@@ -637,7 +638,7 @@ import {
637
638
  import React44, { useEffect as useEffect45 } from "react";
638
639
 
639
640
  // components/App.tsx
640
- import clsx56 from "clsx";
641
+ import clsx57 from "clsx";
641
642
  import throttle3 from "lodash.throttle";
642
643
  import React42, { useContext as useContext3 } from "react";
643
644
  import { flushSync as flushSync2 } from "react-dom";
@@ -3221,7 +3222,7 @@ var globImport_locales_json = __glob({
3221
3222
  "./locales/da-DK.json": () => import("./locales/da-DK-N76F4QAJ.js"),
3222
3223
  "./locales/de-DE.json": () => import("./locales/de-DE-DMRXZ2SZ.js"),
3223
3224
  "./locales/el-GR.json": () => import("./locales/el-GR-HIKPLEXI.js"),
3224
- "./locales/en.json": () => import("./locales/en-IPMKTZRA.js"),
3225
+ "./locales/en.json": () => import("./locales/en-R455UJTM.js"),
3225
3226
  "./locales/es-ES.json": () => import("./locales/es-ES-AQYVXC32.js"),
3226
3227
  "./locales/eu-ES.json": () => import("./locales/eu-ES-3TOEU5DE.js"),
3227
3228
  "./locales/fa-IR.json": () => import("./locales/fa-IR-527GAKUP.js"),
@@ -10906,7 +10907,7 @@ var exportCanvas = async (type, elements, appState, files, {
10906
10907
  let blob = canvasToBlob(tempCanvas);
10907
10908
  if (appState.exportEmbedScene) {
10908
10909
  blob = blob.then(
10909
- (blob2) => import("./data/image-OTIQTZCO.js").then(
10910
+ (blob2) => import("./data/image-PLZ7Q7VH.js").then(
10910
10911
  ({ encodePngMetadata: encodePngMetadata2 }) => encodePngMetadata2({
10911
10912
  blob: blob2,
10912
10913
  metadata: serializeAsJSON(elements, appState, files, "local")
@@ -16984,7 +16985,7 @@ var findShapeByKey = (key) => {
16984
16985
 
16985
16986
  // components/Actions.tsx
16986
16987
  import clsx30 from "clsx";
16987
- import { useState as useState20 } from "react";
16988
+ import { useMemo as useMemo7, useState as useState20 } from "react";
16988
16989
  import { Fragment as Fragment9, jsx as jsx69, jsxs as jsxs38 } from "react/jsx-runtime";
16989
16990
  var canChangeStrokeColor = (appState, targetElements) => {
16990
16991
  let commonSelectedType = targetElements[0]?.type || null;
@@ -17112,7 +17113,66 @@ var ShapesSwitcher = ({
17112
17113
  const laserToolSelected = activeTool.type === "laser";
17113
17114
  const lassoToolSelected = activeTool.type === "lasso";
17114
17115
  const embeddableToolSelected = activeTool.type === "embeddable";
17115
- const simplifiedTools = SHAPES2.filter((s) => s.myocSimplifiedMode === false);
17116
+ const simplifiedShapeTools = SHAPES2.filter(
17117
+ (s) => s.myocSimplifiedMode === false
17118
+ );
17119
+ const dropdownIcon = useMemo7(() => {
17120
+ switch (activeTool.type) {
17121
+ case "frame":
17122
+ return {
17123
+ icon: frameToolIcon,
17124
+ highlight: false
17125
+ };
17126
+ case "lasso":
17127
+ return {
17128
+ icon: LassoIcon,
17129
+ highlight: true
17130
+ };
17131
+ case "embeddable":
17132
+ return {
17133
+ icon: EmbedIcon,
17134
+ highlight: true
17135
+ };
17136
+ case "laser":
17137
+ if (!app.props.isCollaborating) {
17138
+ return {
17139
+ icon: laserPointerToolIcon,
17140
+ highlight: true
17141
+ };
17142
+ }
17143
+ return {
17144
+ icon: extraToolsIcon,
17145
+ highlight: true
17146
+ };
17147
+ case "diamond":
17148
+ return {
17149
+ icon: DiamondIcon,
17150
+ highlight: true
17151
+ };
17152
+ case "rectangle":
17153
+ return {
17154
+ icon: RectangleIcon,
17155
+ highlight: true
17156
+ };
17157
+ case "ellipse":
17158
+ return {
17159
+ icon: RectangleIcon,
17160
+ highlight: true
17161
+ };
17162
+ case "arrow":
17163
+ return {
17164
+ icon: ArrowIcon,
17165
+ highlight: true
17166
+ };
17167
+ case "line":
17168
+ return {
17169
+ icon: LineIcon,
17170
+ highlight: true
17171
+ };
17172
+ default:
17173
+ return { icon: extraToolsIcon, highlight: false };
17174
+ }
17175
+ }, [activeTool.type, app.props.isCollaborating]);
17116
17176
  return /* @__PURE__ */ jsxs38(Fragment9, { children: [
17117
17177
  SHAPES2.filter(
17118
17178
  (shape) => !appState.myocSimplifiedMode || shape.myocSimplifiedMode
@@ -17170,14 +17230,11 @@ var ShapesSwitcher = ({
17170
17230
  DropdownMenu_default.Trigger,
17171
17231
  {
17172
17232
  className: clsx30("App-toolbar__extra-tools-trigger", {
17173
- "App-toolbar__extra-tools-trigger--selected": frameToolSelected || embeddableToolSelected || lassoToolSelected || // in collab we're already highlighting the laser button
17174
- // outside toolbar, so let's not highlight extra-tools button
17175
- // on top of it
17176
- laserToolSelected && !app.props.isCollaborating
17233
+ "App-toolbar__extra-tools-trigger--selected": dropdownIcon.highlight
17177
17234
  }),
17178
17235
  onToggle: () => setIsExtraToolsMenuOpen(!isExtraToolsMenuOpen),
17179
17236
  title: t("toolBar.extraTools"),
17180
- children: frameToolSelected ? frameToolIcon : embeddableToolSelected ? EmbedIcon : laserToolSelected && !app.props.isCollaborating ? laserPointerToolIcon : lassoToolSelected ? LassoIcon : extraToolsIcon
17237
+ children: dropdownIcon.icon
17181
17238
  }
17182
17239
  ),
17183
17240
  /* @__PURE__ */ jsxs38(
@@ -17197,7 +17254,7 @@ var ShapesSwitcher = ({
17197
17254
  children: t("toolBar.lasso")
17198
17255
  }
17199
17256
  ),
17200
- simplifiedTools.map(({ value, icon, key, fillable }) => {
17257
+ simplifiedShapeTools.map(({ value, icon, key, fillable }) => {
17201
17258
  const label = t(`toolBar.${value}`);
17202
17259
  const letter = key && capitalizeString(typeof key === "string" ? key : key[0]);
17203
17260
  return /* @__PURE__ */ jsx69(
@@ -17213,6 +17270,18 @@ var ShapesSwitcher = ({
17213
17270
  value
17214
17271
  );
17215
17272
  }),
17273
+ /* @__PURE__ */ jsx69("div", { className: "App-toolbar__dropdown-divider" }),
17274
+ /* @__PURE__ */ jsx69(
17275
+ DropdownMenu_default.Item,
17276
+ {
17277
+ onSelect: () => app.toggleLock(),
17278
+ icon: appState.activeTool.locked ? LockedIcon : UnlockedIcon,
17279
+ "data-testid": `toolbar-lock`,
17280
+ selected: appState.activeTool.locked,
17281
+ shortcut: KEYS.Q,
17282
+ children: capitalizeString(t("toolBar.lock-short"))
17283
+ }
17284
+ ),
17216
17285
  !appState.myocSimplifiedMode && /* @__PURE__ */ jsx69(
17217
17286
  DropdownMenu_default.Item,
17218
17287
  {
@@ -18590,6 +18659,8 @@ var actionTextAutoResize = register({
18590
18659
  });
18591
18660
 
18592
18661
  // actions/actionToggleViewMode.tsx
18662
+ import clsx32 from "clsx";
18663
+ import { jsx as jsx74 } from "react/jsx-runtime";
18593
18664
  var actionToggleViewMode = register({
18594
18665
  name: "viewMode",
18595
18666
  label: "labels.viewMode",
@@ -18612,11 +18683,25 @@ var actionToggleViewMode = register({
18612
18683
  predicate: (elements, appState, appProps) => {
18613
18684
  return typeof appProps.viewModeEnabled === "undefined";
18614
18685
  },
18615
- keyTest: (event) => !event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.R
18686
+ keyTest: (event) => !event[KEYS.CTRL_OR_CMD] && event.altKey && event.code === CODES.R,
18687
+ PanelComponent: ({ data, updateData, appState }) => /* @__PURE__ */ jsx74(
18688
+ ToolButton,
18689
+ {
18690
+ type: "button",
18691
+ icon: eyeIcon,
18692
+ "aria-label": t("labels.viewMode"),
18693
+ onClick: () => updateData(null),
18694
+ size: data?.size || "medium",
18695
+ "data-testid": "button-view-mode",
18696
+ className: clsx32({
18697
+ enabled: appState.viewModeEnabled
18698
+ })
18699
+ }
18700
+ )
18616
18701
  });
18617
18702
 
18618
18703
  // actions/manager.tsx
18619
- import { jsx as jsx74 } from "react/jsx-runtime";
18704
+ import { jsx as jsx75 } from "react/jsx-runtime";
18620
18705
  var trackAction = (action, source, appState, elements, app, value) => {
18621
18706
  if (action.trackEvent) {
18622
18707
  try {
@@ -18664,7 +18749,7 @@ var ActionManager = class {
18664
18749
  )
18665
18750
  );
18666
18751
  };
18667
- return /* @__PURE__ */ jsx74(
18752
+ return /* @__PURE__ */ jsx75(
18668
18753
  PanelComponent,
18669
18754
  {
18670
18755
  elements: this.getElementsIncludingDeleted(),
@@ -21397,7 +21482,7 @@ var Renderer = class {
21397
21482
  };
21398
21483
 
21399
21484
  // components/ElementCanvasButtons.tsx
21400
- import { jsx as jsx75 } from "react/jsx-runtime";
21485
+ import { jsx as jsx76 } from "react/jsx-runtime";
21401
21486
  var CONTAINER_PADDING = 5;
21402
21487
  var getContainerCoords = (element, appState, elementsMap) => {
21403
21488
  const [x1, y1] = getElementAbsoluteCoords(element, elementsMap);
@@ -21419,7 +21504,7 @@ var ElementCanvasButtons = ({
21419
21504
  return null;
21420
21505
  }
21421
21506
  const { x, y } = getContainerCoords(element, appState, elementsMap);
21422
- return /* @__PURE__ */ jsx75(
21507
+ return /* @__PURE__ */ jsx76(
21423
21508
  "div",
21424
21509
  {
21425
21510
  className: "excalidraw-canvas-buttons",
@@ -22420,12 +22505,12 @@ var LassoTrail = class extends AnimatedTrail {
22420
22505
  };
22421
22506
 
22422
22507
  // actions/actionSmartZoom.tsx
22423
- import { jsx as jsx76 } from "react/jsx-runtime";
22508
+ import { jsx as jsx77 } from "react/jsx-runtime";
22424
22509
  var actionSmartZoom = register({
22425
22510
  name: "smartZoom",
22426
22511
  label: "toolBar.smartZoom",
22427
22512
  trackEvent: { category: "toolbar" },
22428
- icon: eyeIcon,
22513
+ icon: arrowsToEyeIcon,
22429
22514
  viewMode: true,
22430
22515
  perform: (elements, appState, _, app) => {
22431
22516
  const settings = {
@@ -22445,11 +22530,11 @@ var actionSmartZoom = register({
22445
22530
  };
22446
22531
  },
22447
22532
  keyTest: (event) => !event[KEYS.CTRL_OR_CMD] && !event.shiftKey && !event.altKey && event.key.toLocaleLowerCase() === KEYS.F,
22448
- PanelComponent: ({ data, updateData }) => /* @__PURE__ */ jsx76(
22533
+ PanelComponent: ({ data, updateData }) => /* @__PURE__ */ jsx77(
22449
22534
  ToolButton,
22450
22535
  {
22451
22536
  type: "button",
22452
- icon: eyeIcon,
22537
+ icon: arrowsToEyeIcon,
22453
22538
  "aria-label": t("labels.smartZoom"),
22454
22539
  onClick: () => updateData(null),
22455
22540
  size: data?.size || "medium",
@@ -22615,13 +22700,13 @@ var eraserTest = (pathSegments, element, elementsSegments, shapesCache, elements
22615
22700
  };
22616
22701
 
22617
22702
  // components/ContextMenu.tsx
22618
- import clsx32 from "clsx";
22703
+ import clsx33 from "clsx";
22619
22704
  import React27 from "react";
22620
22705
 
22621
22706
  // components/Popover.tsx
22622
22707
  import { useLayoutEffect as useLayoutEffect4, useRef as useRef23, useEffect as useEffect28 } from "react";
22623
22708
  import { unstable_batchedUpdates as unstable_batchedUpdates2 } from "react-dom";
22624
- import { jsx as jsx77 } from "react/jsx-runtime";
22709
+ import { jsx as jsx78 } from "react/jsx-runtime";
22625
22710
  var Popover6 = ({
22626
22711
  children,
22627
22712
  left,
@@ -22721,11 +22806,11 @@ var Popover6 = ({
22721
22806
  return () => document.removeEventListener("pointerdown", handler, false);
22722
22807
  }
22723
22808
  }, [onCloseRequest]);
22724
- return /* @__PURE__ */ jsx77("div", { className: "popover", ref: popoverRef, tabIndex: -1, children });
22809
+ return /* @__PURE__ */ jsx78("div", { className: "popover", ref: popoverRef, tabIndex: -1, children });
22725
22810
  };
22726
22811
 
22727
22812
  // components/ContextMenu.tsx
22728
- import { jsx as jsx78, jsxs as jsxs40 } from "react/jsx-runtime";
22813
+ import { jsx as jsx79, jsxs as jsxs40 } from "react/jsx-runtime";
22729
22814
  var CONTEXT_MENU_SEPARATOR = "separator";
22730
22815
  var ContextMenu = React27.memo(
22731
22816
  ({ actionManager, items, top, left, onClose }) => {
@@ -22742,7 +22827,7 @@ var ContextMenu = React27.memo(
22742
22827
  }
22743
22828
  return acc;
22744
22829
  }, []);
22745
- return /* @__PURE__ */ jsx78(
22830
+ return /* @__PURE__ */ jsx79(
22746
22831
  Popover6,
22747
22832
  {
22748
22833
  onCloseRequest: () => {
@@ -22755,7 +22840,7 @@ var ContextMenu = React27.memo(
22755
22840
  offsetTop: appState.offsetTop,
22756
22841
  viewportWidth: appState.width,
22757
22842
  viewportHeight: appState.height,
22758
- children: /* @__PURE__ */ jsx78(
22843
+ children: /* @__PURE__ */ jsx79(
22759
22844
  "ul",
22760
22845
  {
22761
22846
  className: "context-menu",
@@ -22765,7 +22850,7 @@ var ContextMenu = React27.memo(
22765
22850
  if (!filteredItems[idx - 1] || filteredItems[idx - 1] === CONTEXT_MENU_SEPARATOR) {
22766
22851
  return null;
22767
22852
  }
22768
- return /* @__PURE__ */ jsx78("hr", { className: "context-menu-item-separator" }, idx);
22853
+ return /* @__PURE__ */ jsx79("hr", { className: "context-menu-item-separator" }, idx);
22769
22854
  }
22770
22855
  const actionName = item.name;
22771
22856
  let label = "";
@@ -22782,7 +22867,7 @@ var ContextMenu = React27.memo(
22782
22867
  label = t(item.label);
22783
22868
  }
22784
22869
  }
22785
- return /* @__PURE__ */ jsx78(
22870
+ return /* @__PURE__ */ jsx79(
22786
22871
  "li",
22787
22872
  {
22788
22873
  "data-testid": actionName,
@@ -22795,13 +22880,13 @@ var ContextMenu = React27.memo(
22795
22880
  "button",
22796
22881
  {
22797
22882
  type: "button",
22798
- className: clsx32("context-menu-item", {
22883
+ className: clsx33("context-menu-item", {
22799
22884
  dangerous: actionName === "deleteSelectedElements",
22800
22885
  checkmark: item.checked?.(appState)
22801
22886
  }),
22802
22887
  children: [
22803
- /* @__PURE__ */ jsx78("div", { className: "context-menu-item__label", children: label }),
22804
- /* @__PURE__ */ jsx78("kbd", { className: "context-menu-item__shortcut", children: actionName ? getShortcutFromShortcutName(actionName) : "" })
22888
+ /* @__PURE__ */ jsx79("div", { className: "context-menu-item__label", children: label }),
22889
+ /* @__PURE__ */ jsx79("kbd", { className: "context-menu-item__shortcut", children: actionName ? getShortcutFromShortcutName(actionName) : "" })
22805
22890
  ]
22806
22891
  }
22807
22892
  )
@@ -22817,18 +22902,18 @@ var ContextMenu = React27.memo(
22817
22902
  );
22818
22903
 
22819
22904
  // components/FollowMode/FollowMode.tsx
22820
- import { jsx as jsx79, jsxs as jsxs41 } from "react/jsx-runtime";
22905
+ import { jsx as jsx80, jsxs as jsxs41 } from "react/jsx-runtime";
22821
22906
  var FollowMode = ({
22822
22907
  height,
22823
22908
  width,
22824
22909
  userToFollow,
22825
22910
  onDisconnect
22826
22911
  }) => {
22827
- return /* @__PURE__ */ jsx79("div", { className: "follow-mode", style: { width, height }, children: /* @__PURE__ */ jsxs41("div", { className: "follow-mode__badge", children: [
22912
+ return /* @__PURE__ */ jsx80("div", { className: "follow-mode", style: { width, height }, children: /* @__PURE__ */ jsxs41("div", { className: "follow-mode__badge", children: [
22828
22913
  /* @__PURE__ */ jsxs41("div", { className: "follow-mode__badge__label", children: [
22829
22914
  "Following",
22830
22915
  " ",
22831
- /* @__PURE__ */ jsx79(
22916
+ /* @__PURE__ */ jsx80(
22832
22917
  "span",
22833
22918
  {
22834
22919
  className: "follow-mode__badge__username",
@@ -22837,7 +22922,7 @@ var FollowMode = ({
22837
22922
  }
22838
22923
  )
22839
22924
  ] }),
22840
- /* @__PURE__ */ jsx79(
22925
+ /* @__PURE__ */ jsx80(
22841
22926
  "button",
22842
22927
  {
22843
22928
  type: "button",
@@ -22851,7 +22936,7 @@ var FollowMode = ({
22851
22936
  var FollowMode_default = FollowMode;
22852
22937
 
22853
22938
  // components/LayerUI.tsx
22854
- import clsx54 from "clsx";
22939
+ import clsx55 from "clsx";
22855
22940
  import React39 from "react";
22856
22941
 
22857
22942
  // context/tunnels.ts
@@ -22880,9 +22965,9 @@ var useInitializeTunnels = () => {
22880
22965
  };
22881
22966
 
22882
22967
  // components/LoadingMessage.tsx
22883
- import clsx33 from "clsx";
22968
+ import clsx34 from "clsx";
22884
22969
  import { useState as useState23, useEffect as useEffect29 } from "react";
22885
- import { jsx as jsx80, jsxs as jsxs42 } from "react/jsx-runtime";
22970
+ import { jsx as jsx81, jsxs as jsxs42 } from "react/jsx-runtime";
22886
22971
  var LoadingMessage = ({
22887
22972
  delay,
22888
22973
  theme
@@ -22903,28 +22988,28 @@ var LoadingMessage = ({
22903
22988
  return /* @__PURE__ */ jsxs42(
22904
22989
  "div",
22905
22990
  {
22906
- className: clsx33("LoadingMessage", {
22991
+ className: clsx34("LoadingMessage", {
22907
22992
  "LoadingMessage--dark": theme === THEME.DARK
22908
22993
  }),
22909
22994
  children: [
22910
- /* @__PURE__ */ jsx80("div", { children: /* @__PURE__ */ jsx80(Spinner_default, {}) }),
22911
- /* @__PURE__ */ jsx80("div", { className: "LoadingMessage-text", children: t("labels.loadingScene") })
22995
+ /* @__PURE__ */ jsx81("div", { children: /* @__PURE__ */ jsx81(Spinner_default, {}) }),
22996
+ /* @__PURE__ */ jsx81("div", { className: "LoadingMessage-text", children: t("labels.loadingScene") })
22912
22997
  ]
22913
22998
  }
22914
22999
  );
22915
23000
  };
22916
23001
 
22917
23002
  // components/FixedSideContainer.tsx
22918
- import clsx34 from "clsx";
22919
- import { jsx as jsx81 } from "react/jsx-runtime";
23003
+ import clsx35 from "clsx";
23004
+ import { jsx as jsx82 } from "react/jsx-runtime";
22920
23005
  var FixedSideContainer = ({
22921
23006
  children,
22922
23007
  side,
22923
23008
  className
22924
- }) => /* @__PURE__ */ jsx81(
23009
+ }) => /* @__PURE__ */ jsx82(
22925
23010
  "div",
22926
23011
  {
22927
- className: clsx34(
23012
+ className: clsx35(
22928
23013
  "FixedSideContainer",
22929
23014
  `FixedSideContainer_side_${side}`,
22930
23015
  className
@@ -22934,13 +23019,13 @@ var FixedSideContainer = ({
22934
23019
  );
22935
23020
 
22936
23021
  // components/HandButton.tsx
22937
- import clsx35 from "clsx";
22938
- import { jsx as jsx82 } from "react/jsx-runtime";
23022
+ import clsx36 from "clsx";
23023
+ import { jsx as jsx83 } from "react/jsx-runtime";
22939
23024
  var HandButton = (props) => {
22940
- return /* @__PURE__ */ jsx82(
23025
+ return /* @__PURE__ */ jsx83(
22941
23026
  ToolButton,
22942
23027
  {
22943
- className: clsx35("Shape", { fillable: false }),
23028
+ className: clsx36("Shape", { fillable: false }),
22944
23029
  type: "radio",
22945
23030
  icon: handIcon,
22946
23031
  name: "editor-current-shape",
@@ -22956,7 +23041,7 @@ var HandButton = (props) => {
22956
23041
  };
22957
23042
 
22958
23043
  // components/HintViewer.tsx
22959
- import { jsx as jsx83 } from "react/jsx-runtime";
23044
+ import { jsx as jsx84 } from "react/jsx-runtime";
22960
23045
  var getHints = ({
22961
23046
  appState,
22962
23047
  isMobile,
@@ -23069,12 +23154,12 @@ var HintViewer = ({
23069
23154
  const hint = Array.isArray(hints) ? hints.map((hint2) => {
23070
23155
  return getShortcutKey(hint2).replace(/\. ?$/, "");
23071
23156
  }).join(". ") : getShortcutKey(hints);
23072
- return /* @__PURE__ */ jsx83("div", { className: "HintViewer", children: /* @__PURE__ */ jsx83("span", { children: hint }) });
23157
+ return /* @__PURE__ */ jsx84("div", { className: "HintViewer", children: /* @__PURE__ */ jsx84("span", { children: hint }) });
23073
23158
  };
23074
23159
 
23075
23160
  // components/LockButton.tsx
23076
- import clsx36 from "clsx";
23077
- import { jsx as jsx84, jsxs as jsxs43 } from "react/jsx-runtime";
23161
+ import clsx37 from "clsx";
23162
+ import { jsx as jsx85, jsxs as jsxs43 } from "react/jsx-runtime";
23078
23163
  var DEFAULT_SIZE = "medium";
23079
23164
  var ICONS2 = {
23080
23165
  CHECKED: LockedIcon,
@@ -23084,7 +23169,7 @@ var LockButton = (props) => {
23084
23169
  return /* @__PURE__ */ jsxs43(
23085
23170
  "label",
23086
23171
  {
23087
- className: clsx36(
23172
+ className: clsx37(
23088
23173
  "ToolIcon ToolIcon__lock",
23089
23174
  `ToolIcon_size_${DEFAULT_SIZE}`,
23090
23175
  {
@@ -23093,7 +23178,7 @@ var LockButton = (props) => {
23093
23178
  ),
23094
23179
  title: `${props.title} \u2014 Q`,
23095
23180
  children: [
23096
- /* @__PURE__ */ jsx84(
23181
+ /* @__PURE__ */ jsx85(
23097
23182
  "input",
23098
23183
  {
23099
23184
  className: "ToolIcon_type_checkbox",
@@ -23105,15 +23190,15 @@ var LockButton = (props) => {
23105
23190
  "data-testid": "toolbar-lock"
23106
23191
  }
23107
23192
  ),
23108
- /* @__PURE__ */ jsx84("div", { className: "ToolIcon__icon", children: props.checked ? ICONS2.CHECKED : ICONS2.UNCHECKED })
23193
+ /* @__PURE__ */ jsx85("div", { className: "ToolIcon__icon", children: props.checked ? ICONS2.CHECKED : ICONS2.UNCHECKED })
23109
23194
  ]
23110
23195
  }
23111
23196
  );
23112
23197
  };
23113
23198
 
23114
23199
  // components/PenModeButton.tsx
23115
- import clsx37 from "clsx";
23116
- import { jsx as jsx85, jsxs as jsxs44 } from "react/jsx-runtime";
23200
+ import clsx38 from "clsx";
23201
+ import { jsx as jsx86, jsxs as jsxs44 } from "react/jsx-runtime";
23117
23202
  var DEFAULT_SIZE2 = "medium";
23118
23203
  var PenModeButton = (props) => {
23119
23204
  if (!props.penDetected) {
@@ -23122,7 +23207,7 @@ var PenModeButton = (props) => {
23122
23207
  return /* @__PURE__ */ jsxs44(
23123
23208
  "label",
23124
23209
  {
23125
- className: clsx37(
23210
+ className: clsx38(
23126
23211
  "ToolIcon ToolIcon__penMode",
23127
23212
  `ToolIcon_size_${DEFAULT_SIZE2}`,
23128
23213
  {
@@ -23131,7 +23216,7 @@ var PenModeButton = (props) => {
23131
23216
  ),
23132
23217
  title: `${props.title}`,
23133
23218
  children: [
23134
- /* @__PURE__ */ jsx85(
23219
+ /* @__PURE__ */ jsx86(
23135
23220
  "input",
23136
23221
  {
23137
23222
  className: "ToolIcon_type_checkbox",
@@ -23142,25 +23227,25 @@ var PenModeButton = (props) => {
23142
23227
  "aria-label": props.title
23143
23228
  }
23144
23229
  ),
23145
- /* @__PURE__ */ jsx85("div", { className: "ToolIcon__icon", children: PenModeIcon })
23230
+ /* @__PURE__ */ jsx86("div", { className: "ToolIcon__icon", children: PenModeIcon })
23146
23231
  ]
23147
23232
  }
23148
23233
  );
23149
23234
  };
23150
23235
 
23151
23236
  // components/Section.tsx
23152
- import { Fragment as Fragment10, jsx as jsx86, jsxs as jsxs45 } from "react/jsx-runtime";
23237
+ import { Fragment as Fragment10, jsx as jsx87, jsxs as jsxs45 } from "react/jsx-runtime";
23153
23238
  var Section = ({ heading, children, ...props }) => {
23154
23239
  const { id } = useExcalidrawContainer();
23155
- const header = /* @__PURE__ */ jsx86("h2", { className: "visually-hidden", id: `${id}-${heading}-title`, children: t(`headings.${heading}`) });
23156
- return /* @__PURE__ */ jsx86("section", { ...props, "aria-labelledby": `${id}-${heading}-title`, children: typeof children === "function" ? children(header) : /* @__PURE__ */ jsxs45(Fragment10, { children: [
23240
+ const header = /* @__PURE__ */ jsx87("h2", { className: "visually-hidden", id: `${id}-${heading}-title`, children: t(`headings.${heading}`) });
23241
+ return /* @__PURE__ */ jsx87("section", { ...props, "aria-labelledby": `${id}-${heading}-title`, children: typeof children === "function" ? children(header) : /* @__PURE__ */ jsxs45(Fragment10, { children: [
23157
23242
  header,
23158
23243
  children
23159
23244
  ] }) });
23160
23245
  };
23161
23246
 
23162
23247
  // components/MobileMenu.tsx
23163
- import { Fragment as Fragment11, jsx as jsx87, jsxs as jsxs46 } from "react/jsx-runtime";
23248
+ import { Fragment as Fragment11, jsx as jsx88, jsxs as jsxs46 } from "react/jsx-runtime";
23164
23249
  var MobileMenu = ({
23165
23250
  appState,
23166
23251
  elements,
@@ -23184,11 +23269,11 @@ var MobileMenu = ({
23184
23269
  } = useTunnels();
23185
23270
  const renderToolbar = () => {
23186
23271
  return /* @__PURE__ */ jsxs46(FixedSideContainer, { side: "top", className: "App-top-bar", children: [
23187
- renderWelcomeScreen && /* @__PURE__ */ jsx87(WelcomeScreenCenterTunnel.Out, {}),
23188
- /* @__PURE__ */ jsx87(Section, { heading: "shapes", children: (heading) => /* @__PURE__ */ jsx87(Stack_default.Col, { gap: 4, align: "center", children: /* @__PURE__ */ jsxs46(Stack_default.Row, { gap: 1, className: "App-toolbar-container", children: [
23272
+ renderWelcomeScreen && /* @__PURE__ */ jsx88(WelcomeScreenCenterTunnel.Out, {}),
23273
+ /* @__PURE__ */ jsx88(Section, { heading: "shapes", children: (heading) => /* @__PURE__ */ jsx88(Stack_default.Col, { gap: 4, align: "center", children: /* @__PURE__ */ jsxs46(Stack_default.Row, { gap: 1, className: "App-toolbar-container", children: [
23189
23274
  /* @__PURE__ */ jsxs46(Island, { padding: 1, className: "App-toolbar App-toolbar--mobile", children: [
23190
23275
  heading,
23191
- /* @__PURE__ */ jsx87(Stack_default.Row, { gap: 1, children: /* @__PURE__ */ jsx87(
23276
+ /* @__PURE__ */ jsx88(Stack_default.Row, { gap: 1, children: /* @__PURE__ */ jsx88(
23192
23277
  ShapesSwitcher,
23193
23278
  {
23194
23279
  appState,
@@ -23200,8 +23285,8 @@ var MobileMenu = ({
23200
23285
  ] }),
23201
23286
  renderTopRightUI && renderTopRightUI(true, appState),
23202
23287
  /* @__PURE__ */ jsxs46("div", { className: "mobile-misc-tools-container", children: [
23203
- !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && /* @__PURE__ */ jsx87(DefaultSidebarTriggerTunnel.Out, {}),
23204
- /* @__PURE__ */ jsx87(
23288
+ !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && /* @__PURE__ */ jsx88(DefaultSidebarTriggerTunnel.Out, {}),
23289
+ /* @__PURE__ */ jsx88(
23205
23290
  PenModeButton,
23206
23291
  {
23207
23292
  checked: appState.penMode,
@@ -23211,7 +23296,7 @@ var MobileMenu = ({
23211
23296
  penDetected: appState.penDetected
23212
23297
  }
23213
23298
  ),
23214
- /* @__PURE__ */ jsx87(
23299
+ /* @__PURE__ */ jsx88(
23215
23300
  LockButton,
23216
23301
  {
23217
23302
  checked: appState.activeTool.locked,
@@ -23220,7 +23305,7 @@ var MobileMenu = ({
23220
23305
  isMobile: true
23221
23306
  }
23222
23307
  ),
23223
- /* @__PURE__ */ jsx87(
23308
+ /* @__PURE__ */ jsx88(
23224
23309
  HandButton,
23225
23310
  {
23226
23311
  checked: isHandToolActive(appState),
@@ -23231,7 +23316,7 @@ var MobileMenu = ({
23231
23316
  )
23232
23317
  ] })
23233
23318
  ] }) }) }),
23234
- /* @__PURE__ */ jsx87(
23319
+ /* @__PURE__ */ jsx88(
23235
23320
  HintViewer,
23236
23321
  {
23237
23322
  appState,
@@ -23244,11 +23329,14 @@ var MobileMenu = ({
23244
23329
  };
23245
23330
  const renderAppToolbar = () => {
23246
23331
  if (appState.viewModeEnabled || appState.openDialog?.name === "elementLinkSelector") {
23247
- return /* @__PURE__ */ jsx87("div", { className: "App-toolbar-content", children: /* @__PURE__ */ jsx87(MainMenuTunnel.Out, {}) });
23332
+ return /* @__PURE__ */ jsxs46("div", { className: "App-toolbar-content", children: [
23333
+ actionManager.renderAction("viewMode"),
23334
+ /* @__PURE__ */ jsx88(MainMenuTunnel.Out, {})
23335
+ ] });
23248
23336
  }
23249
23337
  return /* @__PURE__ */ jsxs46("div", { className: "App-toolbar-content", children: [
23250
23338
  /* @__PURE__ */ jsxs46("div", { children: [
23251
- actionManager.renderAction("smartZoom"),
23339
+ actionManager.renderAction("viewMode"),
23252
23340
  actionManager.renderAction("undo"),
23253
23341
  actionManager.renderAction("redo")
23254
23342
  ] }),
@@ -23262,7 +23350,7 @@ var MobileMenu = ({
23262
23350
  return /* @__PURE__ */ jsxs46(Fragment11, { children: [
23263
23351
  renderSidebars(),
23264
23352
  !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && renderToolbar(),
23265
- /* @__PURE__ */ jsx87(
23353
+ /* @__PURE__ */ jsx88(
23266
23354
  "div",
23267
23355
  {
23268
23356
  className: "App-bottom-bar",
@@ -23272,7 +23360,7 @@ var MobileMenu = ({
23272
23360
  marginRight: SCROLLBAR_WIDTH + SCROLLBAR_MARGIN * 2
23273
23361
  },
23274
23362
  children: /* @__PURE__ */ jsxs46(Island, { padding: 0, children: [
23275
- appState.openMenu === "shape" && !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && showSelectedShapeActions(appState, elements) ? /* @__PURE__ */ jsx87(Section, { className: "App-mobile-menu", heading: "selectedShapeActions", children: /* @__PURE__ */ jsx87(
23363
+ appState.openMenu === "shape" && !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && showSelectedShapeActions(appState, elements) ? /* @__PURE__ */ jsx88(Section, { className: "App-mobile-menu", heading: "selectedShapeActions", children: /* @__PURE__ */ jsx88(
23276
23364
  SelectedShapeActions,
23277
23365
  {
23278
23366
  appState,
@@ -23283,7 +23371,7 @@ var MobileMenu = ({
23283
23371
  ) }) : null,
23284
23372
  /* @__PURE__ */ jsxs46("footer", { className: "App-toolbar", children: [
23285
23373
  renderAppToolbar(),
23286
- appState.scrolledOutside && !appState.openMenu && !appState.openSidebar && /* @__PURE__ */ jsx87(
23374
+ appState.scrolledOutside && !appState.openMenu && !appState.openSidebar && /* @__PURE__ */ jsx88(
23287
23375
  "button",
23288
23376
  {
23289
23377
  type: "button",
@@ -23306,7 +23394,7 @@ var MobileMenu = ({
23306
23394
  // components/PasteChartDialog.tsx
23307
23395
  import oc2 from "open-color";
23308
23396
  import React29, { useLayoutEffect as useLayoutEffect5, useRef as useRef24, useState as useState24 } from "react";
23309
- import { jsx as jsx88, jsxs as jsxs47 } from "react/jsx-runtime";
23397
+ import { jsx as jsx89, jsxs as jsxs47 } from "react/jsx-runtime";
23310
23398
  var ChartPreviewBtn = (props) => {
23311
23399
  const previewRef = useRef24(null);
23312
23400
  const [chartElements, setChartElements] = useState24(
@@ -23349,7 +23437,7 @@ var ChartPreviewBtn = (props) => {
23349
23437
  previewNode.replaceChildren();
23350
23438
  };
23351
23439
  }, [props.spreadsheet, props.chartType, props.selected]);
23352
- return /* @__PURE__ */ jsx88(
23440
+ return /* @__PURE__ */ jsx89(
23353
23441
  "button",
23354
23442
  {
23355
23443
  type: "button",
@@ -23359,7 +23447,7 @@ var ChartPreviewBtn = (props) => {
23359
23447
  props.onClick(props.chartType, chartElements);
23360
23448
  }
23361
23449
  },
23362
- children: /* @__PURE__ */ jsx88("div", { ref: previewRef })
23450
+ children: /* @__PURE__ */ jsx89("div", { ref: previewRef })
23363
23451
  }
23364
23452
  );
23365
23453
  };
@@ -23385,7 +23473,7 @@ var PasteChartDialog = ({
23385
23473
  }
23386
23474
  });
23387
23475
  };
23388
- return /* @__PURE__ */ jsx88(
23476
+ return /* @__PURE__ */ jsx89(
23389
23477
  Dialog,
23390
23478
  {
23391
23479
  size: "small",
@@ -23394,7 +23482,7 @@ var PasteChartDialog = ({
23394
23482
  className: "PasteChartDialog",
23395
23483
  autofocus: false,
23396
23484
  children: /* @__PURE__ */ jsxs47("div", { className: "container", children: [
23397
- /* @__PURE__ */ jsx88(
23485
+ /* @__PURE__ */ jsx89(
23398
23486
  ChartPreviewBtn,
23399
23487
  {
23400
23488
  chartType: "bar",
@@ -23403,7 +23491,7 @@ var PasteChartDialog = ({
23403
23491
  onClick: handleChartClick
23404
23492
  }
23405
23493
  ),
23406
- /* @__PURE__ */ jsx88(
23494
+ /* @__PURE__ */ jsx89(
23407
23495
  ChartPreviewBtn,
23408
23496
  {
23409
23497
  chartType: "line",
@@ -23419,16 +23507,16 @@ var PasteChartDialog = ({
23419
23507
 
23420
23508
  // components/UserList.tsx
23421
23509
  import * as Popover7 from "@radix-ui/react-popover";
23422
- import clsx38 from "clsx";
23510
+ import clsx39 from "clsx";
23423
23511
  import React30, { useLayoutEffect as useLayoutEffect6 } from "react";
23424
- import { Fragment as Fragment12, jsx as jsx89, jsxs as jsxs48 } from "react/jsx-runtime";
23512
+ import { Fragment as Fragment12, jsx as jsx90, jsxs as jsxs48 } from "react/jsx-runtime";
23425
23513
  var DEFAULT_MAX_AVATARS = 4;
23426
23514
  var SHOW_COLLABORATORS_FILTER_AT = 8;
23427
23515
  var ConditionalTooltipWrapper = ({
23428
23516
  shouldWrap,
23429
23517
  children,
23430
23518
  username
23431
- }) => shouldWrap ? /* @__PURE__ */ jsx89(Tooltip, { label: username || "Unknown user", children }) : /* @__PURE__ */ jsx89(Fragment12, { children });
23519
+ }) => shouldWrap ? /* @__PURE__ */ jsx90(Tooltip, { label: username || "Unknown user", children }) : /* @__PURE__ */ jsx90(Fragment12, { children });
23432
23520
  var renderCollaborator = ({
23433
23521
  actionManager,
23434
23522
  collaborator,
@@ -23444,7 +23532,7 @@ var renderCollaborator = ({
23444
23532
  isBeingFollowed
23445
23533
  };
23446
23534
  const avatarJSX = actionManager.renderAction("goToCollaborator", data);
23447
- return /* @__PURE__ */ jsx89(
23535
+ return /* @__PURE__ */ jsx90(
23448
23536
  ConditionalTooltipWrapper,
23449
23537
  {
23450
23538
  username: collaborator.username,
@@ -23519,7 +23607,7 @@ var UserList = React30.memo(
23519
23607
  isBeingFollowed: collaborator.socketId === userToFollow
23520
23608
  })
23521
23609
  );
23522
- return mobile ? /* @__PURE__ */ jsx89("div", { className: clsx38("UserList UserList_mobile", className), children: uniqueCollaboratorsArray.map(
23610
+ return mobile ? /* @__PURE__ */ jsx90("div", { className: clsx39("UserList UserList_mobile", className), children: uniqueCollaboratorsArray.map(
23523
23611
  (collaborator) => renderCollaborator({
23524
23612
  actionManager,
23525
23613
  collaborator,
@@ -23527,10 +23615,10 @@ var UserList = React30.memo(
23527
23615
  shouldWrapWithTooltip: true,
23528
23616
  isBeingFollowed: collaborator.socketId === userToFollow
23529
23617
  })
23530
- ) }) : /* @__PURE__ */ jsx89("div", { className: "UserList__wrapper", ref: userListWrapper, children: /* @__PURE__ */ jsxs48(
23618
+ ) }) : /* @__PURE__ */ jsx90("div", { className: "UserList__wrapper", ref: userListWrapper, children: /* @__PURE__ */ jsxs48(
23531
23619
  "div",
23532
23620
  {
23533
- className: clsx38("UserList", className),
23621
+ className: clsx39("UserList", className),
23534
23622
  style: { [`--max-avatars`]: maxAvatars },
23535
23623
  children: [
23536
23624
  firstNAvatarsJSX,
@@ -23539,7 +23627,7 @@ var UserList = React30.memo(
23539
23627
  "+",
23540
23628
  uniqueCollaboratorsArray.length - maxAvatars + 1
23541
23629
  ] }),
23542
- /* @__PURE__ */ jsx89(
23630
+ /* @__PURE__ */ jsx90(
23543
23631
  Popover7.Content,
23544
23632
  {
23545
23633
  style: {
@@ -23550,20 +23638,20 @@ var UserList = React30.memo(
23550
23638
  align: "end",
23551
23639
  sideOffset: 10,
23552
23640
  children: /* @__PURE__ */ jsxs48(Island, { padding: 2, children: [
23553
- uniqueCollaboratorsArray.length >= SHOW_COLLABORATORS_FILTER_AT && /* @__PURE__ */ jsx89(
23641
+ uniqueCollaboratorsArray.length >= SHOW_COLLABORATORS_FILTER_AT && /* @__PURE__ */ jsx90(
23554
23642
  QuickSearch,
23555
23643
  {
23556
23644
  placeholder: t("quickSearch.placeholder"),
23557
23645
  onChange: setSearchTerm
23558
23646
  }
23559
23647
  ),
23560
- /* @__PURE__ */ jsx89(
23648
+ /* @__PURE__ */ jsx90(
23561
23649
  ScrollableList,
23562
23650
  {
23563
23651
  className: "dropdown-menu UserList__collaborators",
23564
23652
  placeholder: t("userList.empty"),
23565
23653
  children: filteredCollaborators.length > 0 ? [
23566
- /* @__PURE__ */ jsx89("div", { className: "hint", children: t("userList.hint.text") }),
23654
+ /* @__PURE__ */ jsx90("div", { className: "hint", children: t("userList.hint.text") }),
23567
23655
  filteredCollaborators.map(
23568
23656
  (collaborator) => renderCollaborator({
23569
23657
  actionManager,
@@ -23576,7 +23664,7 @@ var UserList = React30.memo(
23576
23664
  ] : []
23577
23665
  }
23578
23666
  ),
23579
- /* @__PURE__ */ jsx89(
23667
+ /* @__PURE__ */ jsx90(
23580
23668
  Popover7.Arrow,
23581
23669
  {
23582
23670
  width: 20,
@@ -23617,11 +23705,11 @@ var UserList = React30.memo(
23617
23705
  );
23618
23706
 
23619
23707
  // components/footer/Footer.tsx
23620
- import clsx39 from "clsx";
23708
+ import clsx40 from "clsx";
23621
23709
 
23622
23710
  // components/HelpButton.tsx
23623
- import { jsx as jsx90 } from "react/jsx-runtime";
23624
- var HelpButton = (props) => /* @__PURE__ */ jsx90(
23711
+ import { jsx as jsx91 } from "react/jsx-runtime";
23712
+ var HelpButton = (props) => /* @__PURE__ */ jsx91(
23625
23713
  "button",
23626
23714
  {
23627
23715
  className: "help-icon",
@@ -23634,7 +23722,7 @@ var HelpButton = (props) => /* @__PURE__ */ jsx90(
23634
23722
  );
23635
23723
 
23636
23724
  // components/footer/Footer.tsx
23637
- import { jsx as jsx91, jsxs as jsxs49 } from "react/jsx-runtime";
23725
+ import { jsx as jsx92, jsxs as jsxs49 } from "react/jsx-runtime";
23638
23726
  var Footer = ({
23639
23727
  appState,
23640
23728
  actionManager,
@@ -23650,35 +23738,36 @@ var Footer = ({
23650
23738
  role: "contentinfo",
23651
23739
  className: "layer-ui__wrapper__footer App-menu App-menu_bottom",
23652
23740
  children: [
23653
- /* @__PURE__ */ jsx91(
23741
+ /* @__PURE__ */ jsx92(
23654
23742
  "div",
23655
23743
  {
23656
- className: clsx39("layer-ui__wrapper__footer-left zen-mode-transition", {
23744
+ className: clsx40("layer-ui__wrapper__footer-left zen-mode-transition", {
23657
23745
  "layer-ui__wrapper__footer-left--transition-left": appState.zenModeEnabled
23658
23746
  }),
23659
- children: /* @__PURE__ */ jsx91(Stack_default.Col, { gap: 2, children: /* @__PURE__ */ jsxs49(Section, { heading: "canvasActions", children: [
23660
- /* @__PURE__ */ jsx91(Tooltip, { label: t("buttons.smartZoom"), children: /* @__PURE__ */ jsx91("div", { className: clsx39("smart-zoom-button"), children: actionManager.renderAction("smartZoom") }) }),
23661
- /* @__PURE__ */ jsx91(
23747
+ children: /* @__PURE__ */ jsx92(Stack_default.Col, { gap: 2, children: /* @__PURE__ */ jsxs49(Section, { heading: "canvasActions", children: [
23748
+ /* @__PURE__ */ jsx92(Tooltip, { label: t("labels.viewMode"), children: /* @__PURE__ */ jsx92("div", { className: clsx40("view-mode-button"), children: actionManager.renderAction("viewMode") }) }),
23749
+ /* @__PURE__ */ jsx92(Tooltip, { label: t("buttons.smartZoom"), children: /* @__PURE__ */ jsx92("div", { className: clsx40("smart-zoom-button"), children: actionManager.renderAction("smartZoom") }) }),
23750
+ /* @__PURE__ */ jsx92(
23662
23751
  ZoomActions,
23663
23752
  {
23664
23753
  renderAction: actionManager.renderAction,
23665
23754
  zoom: appState.zoom
23666
23755
  }
23667
23756
  ),
23668
- !appState.viewModeEnabled && /* @__PURE__ */ jsx91(
23757
+ !appState.viewModeEnabled && /* @__PURE__ */ jsx92(
23669
23758
  UndoRedoActions,
23670
23759
  {
23671
23760
  renderAction: actionManager.renderAction,
23672
- className: clsx39("zen-mode-transition", {
23761
+ className: clsx40("zen-mode-transition", {
23673
23762
  "layer-ui__wrapper__footer-left--transition-bottom": appState.zenModeEnabled
23674
23763
  })
23675
23764
  }
23676
23765
  ),
23677
- showFinalize && /* @__PURE__ */ jsx91(
23766
+ showFinalize && /* @__PURE__ */ jsx92(
23678
23767
  FinalizeAction,
23679
23768
  {
23680
23769
  renderAction: actionManager.renderAction,
23681
- className: clsx39("zen-mode-transition", {
23770
+ className: clsx40("zen-mode-transition", {
23682
23771
  "layer-ui__wrapper__footer-left--transition-left": appState.zenModeEnabled
23683
23772
  })
23684
23773
  }
@@ -23686,16 +23775,16 @@ var Footer = ({
23686
23775
  ] }) })
23687
23776
  }
23688
23777
  ),
23689
- /* @__PURE__ */ jsx91(FooterCenterTunnel.Out, {}),
23690
- /* @__PURE__ */ jsx91(
23778
+ /* @__PURE__ */ jsx92(FooterCenterTunnel.Out, {}),
23779
+ /* @__PURE__ */ jsx92(
23691
23780
  "div",
23692
23781
  {
23693
- className: clsx39("layer-ui__wrapper__footer-right zen-mode-transition", {
23782
+ className: clsx40("layer-ui__wrapper__footer-right zen-mode-transition", {
23694
23783
  "transition-right": appState.zenModeEnabled
23695
23784
  }),
23696
23785
  children: /* @__PURE__ */ jsxs49("div", { style: { position: "relative" }, children: [
23697
- renderWelcomeScreen && /* @__PURE__ */ jsx91(WelcomeScreenHelpHintTunnel.Out, {}),
23698
- /* @__PURE__ */ jsx91(
23786
+ renderWelcomeScreen && /* @__PURE__ */ jsx92(WelcomeScreenHelpHintTunnel.Out, {}),
23787
+ /* @__PURE__ */ jsx92(
23699
23788
  HelpButton,
23700
23789
  {
23701
23790
  onClick: () => actionManager.executeAction(actionShortcuts)
@@ -23704,7 +23793,7 @@ var Footer = ({
23704
23793
  ] })
23705
23794
  }
23706
23795
  ),
23707
- /* @__PURE__ */ jsx91(
23796
+ /* @__PURE__ */ jsx92(
23708
23797
  ExitZenModeAction,
23709
23798
  {
23710
23799
  actionManager,
@@ -23719,7 +23808,7 @@ var Footer_default = Footer;
23719
23808
  Footer.displayName = "Footer";
23720
23809
 
23721
23810
  // components/Sidebar/Sidebar.tsx
23722
- import clsx42 from "clsx";
23811
+ import clsx43 from "clsx";
23723
23812
  import {
23724
23813
  useEffect as useEffect30,
23725
23814
  useLayoutEffect as useLayoutEffect7,
@@ -23731,7 +23820,7 @@ import {
23731
23820
  } from "react";
23732
23821
 
23733
23822
  // components/Sidebar/SidebarHeader.tsx
23734
- import clsx40 from "clsx";
23823
+ import clsx41 from "clsx";
23735
23824
  import { useContext as useContext2 } from "react";
23736
23825
 
23737
23826
  // components/Sidebar/common.ts
@@ -23739,7 +23828,7 @@ import React31 from "react";
23739
23828
  var SidebarPropsContext = React31.createContext({});
23740
23829
 
23741
23830
  // components/Sidebar/SidebarHeader.tsx
23742
- import { jsx as jsx92, jsxs as jsxs50 } from "react/jsx-runtime";
23831
+ import { jsx as jsx93, jsxs as jsxs50 } from "react/jsx-runtime";
23743
23832
  var SidebarHeader = ({
23744
23833
  children,
23745
23834
  className
@@ -23750,12 +23839,12 @@ var SidebarHeader = ({
23750
23839
  return /* @__PURE__ */ jsxs50(
23751
23840
  "div",
23752
23841
  {
23753
- className: clsx40("sidebar__header", className),
23842
+ className: clsx41("sidebar__header", className),
23754
23843
  "data-testid": "sidebar-header",
23755
23844
  children: [
23756
23845
  children,
23757
23846
  /* @__PURE__ */ jsxs50("div", { className: "sidebar__header__buttons", children: [
23758
- renderDockButton && /* @__PURE__ */ jsx92(Tooltip, { label: t("labels.sidebarLock"), children: /* @__PURE__ */ jsx92(
23847
+ renderDockButton && /* @__PURE__ */ jsx93(Tooltip, { label: t("labels.sidebarLock"), children: /* @__PURE__ */ jsx93(
23759
23848
  Button,
23760
23849
  {
23761
23850
  onSelect: () => props.onDock?.(!props.docked),
@@ -23766,7 +23855,7 @@ var SidebarHeader = ({
23766
23855
  children: PinIcon
23767
23856
  }
23768
23857
  ) }),
23769
- /* @__PURE__ */ jsx92(
23858
+ /* @__PURE__ */ jsx93(
23770
23859
  Button,
23771
23860
  {
23772
23861
  "data-testid": "sidebar-close",
@@ -23785,14 +23874,14 @@ SidebarHeader.displayName = "SidebarHeader";
23785
23874
 
23786
23875
  // components/Sidebar/SidebarTabTrigger.tsx
23787
23876
  import * as RadixTabs from "@radix-ui/react-tabs";
23788
- import { jsx as jsx93 } from "react/jsx-runtime";
23877
+ import { jsx as jsx94 } from "react/jsx-runtime";
23789
23878
  var SidebarTabTrigger = ({
23790
23879
  children,
23791
23880
  tab,
23792
23881
  onSelect,
23793
23882
  ...rest
23794
23883
  }) => {
23795
- return /* @__PURE__ */ jsx93(RadixTabs.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx93(
23884
+ return /* @__PURE__ */ jsx94(RadixTabs.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx94(
23796
23885
  "button",
23797
23886
  {
23798
23887
  type: "button",
@@ -23806,18 +23895,18 @@ SidebarTabTrigger.displayName = "SidebarTabTrigger";
23806
23895
 
23807
23896
  // components/Sidebar/SidebarTabTriggers.tsx
23808
23897
  import * as RadixTabs2 from "@radix-ui/react-tabs";
23809
- import { jsx as jsx94 } from "react/jsx-runtime";
23898
+ import { jsx as jsx95 } from "react/jsx-runtime";
23810
23899
  var SidebarTabTriggers = ({
23811
23900
  children,
23812
23901
  ...rest
23813
23902
  }) => {
23814
- return /* @__PURE__ */ jsx94(RadixTabs2.List, { className: "sidebar-triggers", ...rest, children });
23903
+ return /* @__PURE__ */ jsx95(RadixTabs2.List, { className: "sidebar-triggers", ...rest, children });
23815
23904
  };
23816
23905
  SidebarTabTriggers.displayName = "SidebarTabTriggers";
23817
23906
 
23818
23907
  // components/Sidebar/SidebarTrigger.tsx
23819
- import clsx41 from "clsx";
23820
- import { jsx as jsx95, jsxs as jsxs51 } from "react/jsx-runtime";
23908
+ import clsx42 from "clsx";
23909
+ import { jsx as jsx96, jsxs as jsxs51 } from "react/jsx-runtime";
23821
23910
  var SidebarTrigger = ({
23822
23911
  name,
23823
23912
  tab,
@@ -23831,7 +23920,7 @@ var SidebarTrigger = ({
23831
23920
  const setAppState = useExcalidrawSetAppState();
23832
23921
  const appState = useUIAppState();
23833
23922
  return /* @__PURE__ */ jsxs51("label", { title, className: "sidebar-trigger__label-element", children: [
23834
- /* @__PURE__ */ jsx95(
23923
+ /* @__PURE__ */ jsx96(
23835
23924
  "input",
23836
23925
  {
23837
23926
  className: "ToolIcon_type_checkbox",
@@ -23847,9 +23936,9 @@ var SidebarTrigger = ({
23847
23936
  "aria-keyshortcuts": "0"
23848
23937
  }
23849
23938
  ),
23850
- /* @__PURE__ */ jsxs51("div", { className: clsx41("sidebar-trigger", className), style, children: [
23851
- icon && /* @__PURE__ */ jsx95("div", { children: icon }),
23852
- children && /* @__PURE__ */ jsx95("div", { className: "sidebar-trigger__label", children })
23939
+ /* @__PURE__ */ jsxs51("div", { className: clsx42("sidebar-trigger", className), style, children: [
23940
+ icon && /* @__PURE__ */ jsx96("div", { children: icon }),
23941
+ children && /* @__PURE__ */ jsx96("div", { className: "sidebar-trigger__label", children })
23853
23942
  ] })
23854
23943
  ] });
23855
23944
  };
@@ -23857,7 +23946,7 @@ SidebarTrigger.displayName = "SidebarTrigger";
23857
23946
 
23858
23947
  // components/Sidebar/SidebarTabs.tsx
23859
23948
  import * as RadixTabs3 from "@radix-ui/react-tabs";
23860
- import { jsx as jsx96 } from "react/jsx-runtime";
23949
+ import { jsx as jsx97 } from "react/jsx-runtime";
23861
23950
  var SidebarTabs = ({
23862
23951
  children,
23863
23952
  ...rest
@@ -23868,7 +23957,7 @@ var SidebarTabs = ({
23868
23957
  return null;
23869
23958
  }
23870
23959
  const { name } = appState.openSidebar;
23871
- return /* @__PURE__ */ jsx96(
23960
+ return /* @__PURE__ */ jsx97(
23872
23961
  RadixTabs3.Root,
23873
23962
  {
23874
23963
  className: "sidebar-tabs-root",
@@ -23886,18 +23975,18 @@ SidebarTabs.displayName = "SidebarTabs";
23886
23975
 
23887
23976
  // components/Sidebar/SidebarTab.tsx
23888
23977
  import * as RadixTabs4 from "@radix-ui/react-tabs";
23889
- import { jsx as jsx97 } from "react/jsx-runtime";
23978
+ import { jsx as jsx98 } from "react/jsx-runtime";
23890
23979
  var SidebarTab = ({
23891
23980
  tab,
23892
23981
  children,
23893
23982
  ...rest
23894
23983
  }) => {
23895
- return /* @__PURE__ */ jsx97(RadixTabs4.Content, { ...rest, value: tab, "data-testid": tab, children });
23984
+ return /* @__PURE__ */ jsx98(RadixTabs4.Content, { ...rest, value: tab, "data-testid": tab, children });
23896
23985
  };
23897
23986
  SidebarTab.displayName = "SidebarTab";
23898
23987
 
23899
23988
  // components/Sidebar/Sidebar.tsx
23900
- import { jsx as jsx98 } from "react/jsx-runtime";
23989
+ import { jsx as jsx99 } from "react/jsx-runtime";
23901
23990
  import { createElement } from "react";
23902
23991
  var isSidebarDockedAtom = atom(false);
23903
23992
  var SidebarInner = forwardRef4(
@@ -23971,13 +24060,13 @@ var SidebarInner = forwardRef4(
23971
24060
  document.removeEventListener("keydown" /* KEYDOWN */, handleKeyDown);
23972
24061
  };
23973
24062
  }, [closeLibrary, docked, device.editor.canFitSidebar]);
23974
- return /* @__PURE__ */ jsx98(
24063
+ return /* @__PURE__ */ jsx99(
23975
24064
  Island,
23976
24065
  {
23977
24066
  ...rest,
23978
- className: clsx42("sidebar", { "sidebar--docked": docked }, className),
24067
+ className: clsx43("sidebar", { "sidebar--docked": docked }, className),
23979
24068
  ref: islandRef,
23980
- children: /* @__PURE__ */ jsx98(SidebarPropsContext.Provider, { value: headerPropsRef.current, children })
24069
+ children: /* @__PURE__ */ jsx99(SidebarPropsContext.Provider, { value: headerPropsRef.current, children })
23981
24070
  }
23982
24071
  );
23983
24072
  }
@@ -24025,7 +24114,7 @@ Sidebar.displayName = "Sidebar";
24025
24114
 
24026
24115
  // components/hoc/withInternalFallback.tsx
24027
24116
  import { useLayoutEffect as useLayoutEffect8, useRef as useRef26 } from "react";
24028
- import { jsx as jsx99 } from "react/jsx-runtime";
24117
+ import { jsx as jsx100 } from "react/jsx-runtime";
24029
24118
  var withInternalFallback = (componentName, Component) => {
24030
24119
  const renderAtom = atom(0);
24031
24120
  const WrapperComponent = (props) => {
@@ -24070,7 +24159,7 @@ var withInternalFallback = (componentName, Component) => {
24070
24159
  ) {
24071
24160
  return null;
24072
24161
  }
24073
- return /* @__PURE__ */ jsx99(Component, { ...props });
24162
+ return /* @__PURE__ */ jsx100(Component, { ...props });
24074
24163
  };
24075
24164
  WrapperComponent.displayName = componentName;
24076
24165
  return WrapperComponent;
@@ -24091,7 +24180,7 @@ __export(DefaultItems_exports, {
24091
24180
  Socials: () => Socials,
24092
24181
  ToggleTheme: () => ToggleTheme
24093
24182
  });
24094
- import clsx44 from "clsx";
24183
+ import clsx45 from "clsx";
24095
24184
 
24096
24185
  // components/OverwriteConfirm/OverwriteConfirmState.ts
24097
24186
  var overwriteConfirmStateAtom = atom({
@@ -24118,23 +24207,23 @@ async function openConfirmModal({
24118
24207
  }
24119
24208
 
24120
24209
  // components/RadioGroup.tsx
24121
- import clsx43 from "clsx";
24122
- import { jsx as jsx100, jsxs as jsxs52 } from "react/jsx-runtime";
24210
+ import clsx44 from "clsx";
24211
+ import { jsx as jsx101, jsxs as jsxs52 } from "react/jsx-runtime";
24123
24212
  var RadioGroup = function({
24124
24213
  onChange,
24125
24214
  value,
24126
24215
  choices,
24127
24216
  name
24128
24217
  }) {
24129
- return /* @__PURE__ */ jsx100("div", { className: "RadioGroup", children: choices.map((choice) => /* @__PURE__ */ jsxs52(
24218
+ return /* @__PURE__ */ jsx101("div", { className: "RadioGroup", children: choices.map((choice) => /* @__PURE__ */ jsxs52(
24130
24219
  "div",
24131
24220
  {
24132
- className: clsx43("RadioGroup__choice", {
24221
+ className: clsx44("RadioGroup__choice", {
24133
24222
  active: choice.value === value
24134
24223
  }),
24135
24224
  title: choice.ariaLabel,
24136
24225
  children: [
24137
- /* @__PURE__ */ jsx100(
24226
+ /* @__PURE__ */ jsx101(
24138
24227
  "input",
24139
24228
  {
24140
24229
  name,
@@ -24152,7 +24241,7 @@ var RadioGroup = function({
24152
24241
  };
24153
24242
 
24154
24243
  // components/dropdownMenu/DropdownMenuItemContentRadio.tsx
24155
- import { Fragment as Fragment13, jsx as jsx101, jsxs as jsxs53 } from "react/jsx-runtime";
24244
+ import { Fragment as Fragment13, jsx as jsx102, jsxs as jsxs53 } from "react/jsx-runtime";
24156
24245
  var DropdownMenuItemContentRadio = ({
24157
24246
  value,
24158
24247
  shortcut,
@@ -24164,8 +24253,8 @@ var DropdownMenuItemContentRadio = ({
24164
24253
  const device = useDevice();
24165
24254
  return /* @__PURE__ */ jsxs53(Fragment13, { children: [
24166
24255
  /* @__PURE__ */ jsxs53("div", { className: "dropdown-menu-item-base dropdown-menu-item-bare", children: [
24167
- /* @__PURE__ */ jsx101("label", { className: "dropdown-menu-item__text", htmlFor: name, children }),
24168
- /* @__PURE__ */ jsx101(
24256
+ /* @__PURE__ */ jsx102("label", { className: "dropdown-menu-item__text", htmlFor: name, children }),
24257
+ /* @__PURE__ */ jsx102(
24169
24258
  RadioGroup,
24170
24259
  {
24171
24260
  name,
@@ -24175,14 +24264,14 @@ var DropdownMenuItemContentRadio = ({
24175
24264
  }
24176
24265
  )
24177
24266
  ] }),
24178
- shortcut && !device.editor.isMobile && /* @__PURE__ */ jsx101("div", { className: "dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned", children: shortcut })
24267
+ shortcut && !device.editor.isMobile && /* @__PURE__ */ jsx102("div", { className: "dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned", children: shortcut })
24179
24268
  ] });
24180
24269
  };
24181
24270
  DropdownMenuItemContentRadio.displayName = "DropdownMenuItemContentRadio";
24182
24271
  var DropdownMenuItemContentRadio_default = DropdownMenuItemContentRadio;
24183
24272
 
24184
24273
  // components/main-menu/DefaultItems.tsx
24185
- import { Fragment as Fragment14, jsx as jsx102, jsxs as jsxs54 } from "react/jsx-runtime";
24274
+ import { Fragment as Fragment14, jsx as jsx103, jsxs as jsxs54 } from "react/jsx-runtime";
24186
24275
  var LoadScene = () => {
24187
24276
  const { t: t2 } = useI18n();
24188
24277
  const actionManager = useExcalidrawActionManager();
@@ -24195,19 +24284,19 @@ var LoadScene = () => {
24195
24284
  title: t2("overwriteConfirm.modal.loadFromFile.title"),
24196
24285
  actionLabel: t2("overwriteConfirm.modal.loadFromFile.button"),
24197
24286
  color: "warning",
24198
- description: /* @__PURE__ */ jsx102(
24287
+ description: /* @__PURE__ */ jsx103(
24199
24288
  Trans_default,
24200
24289
  {
24201
24290
  i18nKey: "overwriteConfirm.modal.loadFromFile.description",
24202
- bold: (text) => /* @__PURE__ */ jsx102("strong", { children: text }),
24203
- br: () => /* @__PURE__ */ jsx102("br", {})
24291
+ bold: (text) => /* @__PURE__ */ jsx103("strong", { children: text }),
24292
+ br: () => /* @__PURE__ */ jsx103("br", {})
24204
24293
  }
24205
24294
  )
24206
24295
  })) {
24207
24296
  actionManager.executeAction(actionLoadScene);
24208
24297
  }
24209
24298
  };
24210
- return /* @__PURE__ */ jsx102(
24299
+ return /* @__PURE__ */ jsx103(
24211
24300
  DropdownMenuItem_default,
24212
24301
  {
24213
24302
  icon: LoadIcon,
@@ -24226,7 +24315,7 @@ var SaveToActiveFile = () => {
24226
24315
  if (!actionManager.isActionEnabled(actionSaveToActiveFile)) {
24227
24316
  return null;
24228
24317
  }
24229
- return /* @__PURE__ */ jsx102(
24318
+ return /* @__PURE__ */ jsx103(
24230
24319
  DropdownMenuItem_default,
24231
24320
  {
24232
24321
  shortcut: getShortcutFromShortcutName("saveScene"),
@@ -24242,7 +24331,7 @@ SaveToActiveFile.displayName = "SaveToActiveFile";
24242
24331
  var SaveAsImage = () => {
24243
24332
  const setAppState = useExcalidrawSetAppState();
24244
24333
  const { t: t2 } = useI18n();
24245
- return /* @__PURE__ */ jsx102(
24334
+ return /* @__PURE__ */ jsx103(
24246
24335
  DropdownMenuItem_default,
24247
24336
  {
24248
24337
  icon: ExportImageIcon,
@@ -24258,7 +24347,7 @@ SaveAsImage.displayName = "SaveAsImage";
24258
24347
  var CommandPalette2 = (opts) => {
24259
24348
  const setAppState = useExcalidrawSetAppState();
24260
24349
  const { t: t2 } = useI18n();
24261
- return /* @__PURE__ */ jsx102(
24350
+ return /* @__PURE__ */ jsx103(
24262
24351
  DropdownMenuItem_default,
24263
24352
  {
24264
24353
  icon: boltIcon,
@@ -24278,7 +24367,7 @@ CommandPalette2.displayName = "CommandPalette";
24278
24367
  var SearchMenu = (opts) => {
24279
24368
  const { t: t2 } = useI18n();
24280
24369
  const actionManager = useExcalidrawActionManager();
24281
- return /* @__PURE__ */ jsx102(
24370
+ return /* @__PURE__ */ jsx103(
24282
24371
  DropdownMenuItem_default,
24283
24372
  {
24284
24373
  icon: searchIcon,
@@ -24297,7 +24386,7 @@ SearchMenu.displayName = "SearchMenu";
24297
24386
  var Help = () => {
24298
24387
  const { t: t2 } = useI18n();
24299
24388
  const actionManager = useExcalidrawActionManager();
24300
- return /* @__PURE__ */ jsx102(
24389
+ return /* @__PURE__ */ jsx103(
24301
24390
  DropdownMenuItem_default,
24302
24391
  {
24303
24392
  "data-testid": "help-menu-item",
@@ -24319,7 +24408,7 @@ var ToggleTheme = (props) => {
24319
24408
  return null;
24320
24409
  }
24321
24410
  if (props?.allowSystemTheme) {
24322
- return /* @__PURE__ */ jsx102(
24411
+ return /* @__PURE__ */ jsx103(
24323
24412
  DropdownMenuItemContentRadio_default,
24324
24413
  {
24325
24414
  name: "theme",
@@ -24346,7 +24435,7 @@ var ToggleTheme = (props) => {
24346
24435
  }
24347
24436
  );
24348
24437
  }
24349
- return /* @__PURE__ */ jsx102(
24438
+ return /* @__PURE__ */ jsx103(
24350
24439
  DropdownMenuItem_default,
24351
24440
  {
24352
24441
  onSelect: (event) => {
@@ -24377,7 +24466,7 @@ var ChangeCanvasBackground = () => {
24377
24466
  return null;
24378
24467
  }
24379
24468
  return /* @__PURE__ */ jsxs54("div", { style: { marginTop: "0.5rem" }, children: [
24380
- /* @__PURE__ */ jsx102(
24469
+ /* @__PURE__ */ jsx103(
24381
24470
  "div",
24382
24471
  {
24383
24472
  "data-testid": "canvas-background-label",
@@ -24385,14 +24474,14 @@ var ChangeCanvasBackground = () => {
24385
24474
  children: t2("labels.canvasBackground")
24386
24475
  }
24387
24476
  ),
24388
- /* @__PURE__ */ jsx102("div", { style: { padding: "0 0.625rem" }, children: actionManager.renderAction("changeViewBackgroundColor") })
24477
+ /* @__PURE__ */ jsx103("div", { style: { padding: "0 0.625rem" }, children: actionManager.renderAction("changeViewBackgroundColor") })
24389
24478
  ] });
24390
24479
  };
24391
24480
  ChangeCanvasBackground.displayName = "ChangeCanvasBackground";
24392
24481
  var Export = () => {
24393
24482
  const { t: t2 } = useI18n();
24394
24483
  const setAppState = useExcalidrawSetAppState();
24395
- return /* @__PURE__ */ jsx102(
24484
+ return /* @__PURE__ */ jsx103(
24396
24485
  DropdownMenuItem_default,
24397
24486
  {
24398
24487
  icon: ExportIcon,
@@ -24409,7 +24498,7 @@ Export.displayName = "Export";
24409
24498
  var Socials = () => {
24410
24499
  const { t: t2 } = useI18n();
24411
24500
  return /* @__PURE__ */ jsxs54(Fragment14, { children: [
24412
- /* @__PURE__ */ jsx102(
24501
+ /* @__PURE__ */ jsx103(
24413
24502
  DropdownMenuItemLink_default,
24414
24503
  {
24415
24504
  icon: GithubIcon,
@@ -24418,7 +24507,7 @@ var Socials = () => {
24418
24507
  children: "GitHub"
24419
24508
  }
24420
24509
  ),
24421
- /* @__PURE__ */ jsx102(
24510
+ /* @__PURE__ */ jsx103(
24422
24511
  DropdownMenuItemLink_default,
24423
24512
  {
24424
24513
  icon: XBrandIcon,
@@ -24427,7 +24516,7 @@ var Socials = () => {
24427
24516
  children: t2("labels.followUs")
24428
24517
  }
24429
24518
  ),
24430
- /* @__PURE__ */ jsx102(
24519
+ /* @__PURE__ */ jsx103(
24431
24520
  DropdownMenuItemLink_default,
24432
24521
  {
24433
24522
  icon: DiscordIcon,
@@ -24444,12 +24533,12 @@ var LiveCollaborationTrigger = ({
24444
24533
  isCollaborating
24445
24534
  }) => {
24446
24535
  const { t: t2 } = useI18n();
24447
- return /* @__PURE__ */ jsx102(
24536
+ return /* @__PURE__ */ jsx103(
24448
24537
  DropdownMenuItem_default,
24449
24538
  {
24450
24539
  "data-testid": "collab-button",
24451
24540
  icon: usersIcon,
24452
- className: clsx44({
24541
+ className: clsx45({
24453
24542
  "active-collab": isCollaborating
24454
24543
  }),
24455
24544
  onSelect,
@@ -24460,7 +24549,7 @@ var LiveCollaborationTrigger = ({
24460
24549
  LiveCollaborationTrigger.displayName = "LiveCollaborationTrigger";
24461
24550
 
24462
24551
  // components/main-menu/MainMenu.tsx
24463
- import { jsx as jsx103, jsxs as jsxs55 } from "react/jsx-runtime";
24552
+ import { jsx as jsx104, jsxs as jsxs55 } from "react/jsx-runtime";
24464
24553
  var MainMenu = Object.assign(
24465
24554
  withInternalFallback(
24466
24555
  "MainMenu",
@@ -24473,8 +24562,8 @@ var MainMenu = Object.assign(
24473
24562
  const appState = useUIAppState();
24474
24563
  const setAppState = useExcalidrawSetAppState();
24475
24564
  const onClickOutside = device.editor.isMobile ? void 0 : () => setAppState({ openMenu: null });
24476
- return /* @__PURE__ */ jsx103(MainMenuTunnel.In, { children: /* @__PURE__ */ jsxs55(DropdownMenu_default, { open: appState.openMenu === "canvas", children: [
24477
- /* @__PURE__ */ jsx103(
24565
+ return /* @__PURE__ */ jsx104(MainMenuTunnel.In, { children: /* @__PURE__ */ jsxs55(DropdownMenu_default, { open: appState.openMenu === "canvas", children: [
24566
+ /* @__PURE__ */ jsx104(
24478
24567
  DropdownMenu_default.Trigger,
24479
24568
  {
24480
24569
  onToggle: () => {
@@ -24497,8 +24586,8 @@ var MainMenu = Object.assign(
24497
24586
  children: [
24498
24587
  children,
24499
24588
  device.editor.isMobile && appState.collaborators.size > 0 && /* @__PURE__ */ jsxs55("fieldset", { className: "UserList-Wrapper", children: [
24500
- /* @__PURE__ */ jsx103("legend", { children: t("labels.collaborators") }),
24501
- /* @__PURE__ */ jsx103(
24589
+ /* @__PURE__ */ jsx104("legend", { children: t("labels.collaborators") }),
24590
+ /* @__PURE__ */ jsx104(
24502
24591
  UserList,
24503
24592
  {
24504
24593
  mobile: true,
@@ -24526,9 +24615,9 @@ var MainMenu = Object.assign(
24526
24615
  var MainMenu_default = MainMenu;
24527
24616
 
24528
24617
  // components/FilledButton.tsx
24529
- import clsx45 from "clsx";
24618
+ import clsx46 from "clsx";
24530
24619
  import { forwardRef as forwardRef5, useState as useState26 } from "react";
24531
- import { jsx as jsx104, jsxs as jsxs56 } from "react/jsx-runtime";
24620
+ import { jsx as jsx105, jsxs as jsxs56 } from "react/jsx-runtime";
24532
24621
  var FilledButton = forwardRef5(
24533
24622
  ({
24534
24623
  children,
@@ -24565,10 +24654,10 @@ var FilledButton = forwardRef5(
24565
24654
  };
24566
24655
  const _status = isLoading ? "loading" : status;
24567
24656
  color = _status === "success" ? "success" : color;
24568
- return /* @__PURE__ */ jsx104(
24657
+ return /* @__PURE__ */ jsx105(
24569
24658
  "button",
24570
24659
  {
24571
- className: clsx45(
24660
+ className: clsx46(
24572
24661
  "ExcButton",
24573
24662
  `ExcButton--color-${color}`,
24574
24663
  `ExcButton--variant-${variant}`,
@@ -24583,8 +24672,8 @@ var FilledButton = forwardRef5(
24583
24672
  ref,
24584
24673
  disabled: _status === "loading" || _status === "success",
24585
24674
  children: /* @__PURE__ */ jsxs56("div", { className: "ExcButton__contents", children: [
24586
- _status === "loading" ? /* @__PURE__ */ jsx104(Spinner_default, { className: "ExcButton__statusIcon" }) : _status === "success" && /* @__PURE__ */ jsx104("div", { className: "ExcButton__statusIcon", children: tablerCheckIcon }),
24587
- icon && /* @__PURE__ */ jsx104("div", { className: "ExcButton__icon", "aria-hidden": true, children: icon }),
24675
+ _status === "loading" ? /* @__PURE__ */ jsx105(Spinner_default, { className: "ExcButton__statusIcon" }) : _status === "success" && /* @__PURE__ */ jsx105("div", { className: "ExcButton__statusIcon", children: tablerCheckIcon }),
24676
+ icon && /* @__PURE__ */ jsx105("div", { className: "ExcButton__icon", "aria-hidden": true, children: icon }),
24588
24677
  variant !== "icon" && (children ?? label)
24589
24678
  ] })
24590
24679
  }
@@ -24593,7 +24682,7 @@ var FilledButton = forwardRef5(
24593
24682
  );
24594
24683
 
24595
24684
  // components/OverwriteConfirm/OverwriteConfirmActions.tsx
24596
- import { jsx as jsx105, jsxs as jsxs57 } from "react/jsx-runtime";
24685
+ import { jsx as jsx106, jsxs as jsxs57 } from "react/jsx-runtime";
24597
24686
  var Action = ({
24598
24687
  title,
24599
24688
  children,
@@ -24601,9 +24690,9 @@ var Action = ({
24601
24690
  onClick
24602
24691
  }) => {
24603
24692
  return /* @__PURE__ */ jsxs57("div", { className: "OverwriteConfirm__Actions__Action", children: [
24604
- /* @__PURE__ */ jsx105("h4", { children: title }),
24605
- /* @__PURE__ */ jsx105("div", { className: "OverwriteConfirm__Actions__Action__content", children }),
24606
- /* @__PURE__ */ jsx105(
24693
+ /* @__PURE__ */ jsx106("h4", { children: title }),
24694
+ /* @__PURE__ */ jsx106("div", { className: "OverwriteConfirm__Actions__Action__content", children }),
24695
+ /* @__PURE__ */ jsx106(
24607
24696
  FilledButton,
24608
24697
  {
24609
24698
  variant: "outlined",
@@ -24620,7 +24709,7 @@ var ExportToImage = () => {
24620
24709
  const { t: t2 } = useI18n();
24621
24710
  const actionManager = useExcalidrawActionManager();
24622
24711
  const setAppState = useExcalidrawSetAppState();
24623
- return /* @__PURE__ */ jsx105(
24712
+ return /* @__PURE__ */ jsx106(
24624
24713
  Action,
24625
24714
  {
24626
24715
  title: t2("overwriteConfirm.action.exportToImage.title"),
@@ -24636,7 +24725,7 @@ var ExportToImage = () => {
24636
24725
  var SaveToDisk = () => {
24637
24726
  const { t: t2 } = useI18n();
24638
24727
  const actionManager = useExcalidrawActionManager();
24639
- return /* @__PURE__ */ jsx105(
24728
+ return /* @__PURE__ */ jsx106(
24640
24729
  Action,
24641
24730
  {
24642
24731
  title: t2("overwriteConfirm.action.saveToDisk.title"),
@@ -24650,7 +24739,7 @@ var SaveToDisk = () => {
24650
24739
  };
24651
24740
  var Actions = Object.assign(
24652
24741
  ({ children }) => {
24653
- return /* @__PURE__ */ jsx105("div", { className: "OverwriteConfirm__Actions", children });
24742
+ return /* @__PURE__ */ jsx106("div", { className: "OverwriteConfirm__Actions", children });
24654
24743
  },
24655
24744
  {
24656
24745
  ExportToImage,
@@ -24659,7 +24748,7 @@ var Actions = Object.assign(
24659
24748
  );
24660
24749
 
24661
24750
  // components/OverwriteConfirm/OverwriteConfirm.tsx
24662
- import { jsx as jsx106, jsxs as jsxs58 } from "react/jsx-runtime";
24751
+ import { jsx as jsx107, jsxs as jsxs58 } from "react/jsx-runtime";
24663
24752
  var OverwriteConfirmDialog = Object.assign(
24664
24753
  withInternalFallback(
24665
24754
  "OverwriteConfirmDialog",
@@ -24679,17 +24768,17 @@ var OverwriteConfirmDialog = Object.assign(
24679
24768
  overwriteConfirmState.onConfirm();
24680
24769
  setState((state) => ({ ...state, active: false }));
24681
24770
  };
24682
- return /* @__PURE__ */ jsx106(OverwriteConfirmDialogTunnel.In, { children: /* @__PURE__ */ jsx106(Dialog, { onCloseRequest: handleClose, title: false, size: 916, children: /* @__PURE__ */ jsxs58("div", { className: "OverwriteConfirm", children: [
24683
- /* @__PURE__ */ jsx106("h3", { children: overwriteConfirmState.title }),
24771
+ return /* @__PURE__ */ jsx107(OverwriteConfirmDialogTunnel.In, { children: /* @__PURE__ */ jsx107(Dialog, { onCloseRequest: handleClose, title: false, size: 916, children: /* @__PURE__ */ jsxs58("div", { className: "OverwriteConfirm", children: [
24772
+ /* @__PURE__ */ jsx107("h3", { children: overwriteConfirmState.title }),
24684
24773
  /* @__PURE__ */ jsxs58(
24685
24774
  "div",
24686
24775
  {
24687
24776
  className: `OverwriteConfirm__Description OverwriteConfirm__Description--color-${overwriteConfirmState.color}`,
24688
24777
  children: [
24689
- /* @__PURE__ */ jsx106("div", { className: "OverwriteConfirm__Description__icon", children: alertTriangleIcon }),
24690
- /* @__PURE__ */ jsx106("div", { children: overwriteConfirmState.description }),
24691
- /* @__PURE__ */ jsx106("div", { className: "OverwriteConfirm__Description__spacer" }),
24692
- /* @__PURE__ */ jsx106(
24778
+ /* @__PURE__ */ jsx107("div", { className: "OverwriteConfirm__Description__icon", children: alertTriangleIcon }),
24779
+ /* @__PURE__ */ jsx107("div", { children: overwriteConfirmState.description }),
24780
+ /* @__PURE__ */ jsx107("div", { className: "OverwriteConfirm__Description__spacer" }),
24781
+ /* @__PURE__ */ jsx107(
24693
24782
  FilledButton,
24694
24783
  {
24695
24784
  color: overwriteConfirmState.color,
@@ -24701,7 +24790,7 @@ var OverwriteConfirmDialog = Object.assign(
24701
24790
  ]
24702
24791
  }
24703
24792
  ),
24704
- /* @__PURE__ */ jsx106(Actions, { children })
24793
+ /* @__PURE__ */ jsx107(Actions, { children })
24705
24794
  ] }) }) });
24706
24795
  }
24707
24796
  ),
@@ -24712,13 +24801,13 @@ var OverwriteConfirmDialog = Object.assign(
24712
24801
  );
24713
24802
 
24714
24803
  // components/DefaultSidebar.tsx
24715
- import clsx47 from "clsx";
24804
+ import clsx48 from "clsx";
24716
24805
 
24717
24806
  // components/SearchMenu.tsx
24718
- import clsx46 from "clsx";
24807
+ import clsx47 from "clsx";
24719
24808
  import debounce2 from "lodash.debounce";
24720
24809
  import { Fragment as Fragment15, memo as memo4, useEffect as useEffect31, useRef as useRef27, useState as useState27 } from "react";
24721
- import { Fragment as Fragment16, jsx as jsx107, jsxs as jsxs59 } from "react/jsx-runtime";
24810
+ import { Fragment as Fragment16, jsx as jsx108, jsxs as jsxs59 } from "react/jsx-runtime";
24722
24811
  var searchQueryAtom = atom("");
24723
24812
  var searchItemInFocusAtom = atom(null);
24724
24813
  var SEARCH_DEBOUNCE = 350;
@@ -24921,7 +25010,7 @@ var SearchMenu2 = () => {
24921
25010
  }, [setAppState, stableState, app]);
24922
25011
  const matchCount = `${searchMatches.items.length} ${searchMatches.items.length === 1 ? t("search.singleResult") : t("search.multipleResults")}`;
24923
25012
  return /* @__PURE__ */ jsxs59("div", { className: "layer-ui__search", children: [
24924
- /* @__PURE__ */ jsx107("div", { className: "layer-ui__search-header", children: /* @__PURE__ */ jsx107(
25013
+ /* @__PURE__ */ jsx108("div", { className: "layer-ui__search-header", children: /* @__PURE__ */ jsx108(
24925
25014
  TextField,
24926
25015
  {
24927
25016
  className: CLASSES.SEARCH_MENU_INPUT_WRAPPER,
@@ -24960,9 +25049,9 @@ var SearchMenu2 = () => {
24960
25049
  focusIndex + 1,
24961
25050
  " / ",
24962
25051
  matchCount
24963
- ] }) : /* @__PURE__ */ jsx107("div", { children: matchCount }),
25052
+ ] }) : /* @__PURE__ */ jsx108("div", { children: matchCount }),
24964
25053
  /* @__PURE__ */ jsxs59("div", { className: "result-nav", children: [
24965
- /* @__PURE__ */ jsx107(
25054
+ /* @__PURE__ */ jsx108(
24966
25055
  Button,
24967
25056
  {
24968
25057
  onSelect: () => {
@@ -24972,7 +25061,7 @@ var SearchMenu2 = () => {
24972
25061
  children: collapseDownIcon
24973
25062
  }
24974
25063
  ),
24975
- /* @__PURE__ */ jsx107(
25064
+ /* @__PURE__ */ jsx108(
24976
25065
  Button,
24977
25066
  {
24978
25067
  onSelect: () => {
@@ -24984,9 +25073,9 @@ var SearchMenu2 = () => {
24984
25073
  )
24985
25074
  ] })
24986
25075
  ] }),
24987
- searchMatches.items.length === 0 && searchQuery && searchedQueryRef.current && /* @__PURE__ */ jsx107("div", { style: { margin: "1rem auto" }, children: t("search.noMatch") })
25076
+ searchMatches.items.length === 0 && searchQuery && searchedQueryRef.current && /* @__PURE__ */ jsx108("div", { style: { margin: "1rem auto" }, children: t("search.noMatch") })
24988
25077
  ] }),
24989
- /* @__PURE__ */ jsx107(
25078
+ /* @__PURE__ */ jsx108(
24990
25079
  MatchList,
24991
25080
  {
24992
25081
  matches: searchMatches,
@@ -25010,11 +25099,11 @@ var ListItem = (props) => {
25010
25099
  ),
25011
25100
  props.preview.moreAfter ? "..." : ""
25012
25101
  ];
25013
- return /* @__PURE__ */ jsx107(
25102
+ return /* @__PURE__ */ jsx108(
25014
25103
  "div",
25015
25104
  {
25016
25105
  tabIndex: -1,
25017
- className: clsx46("layer-ui__result-item", {
25106
+ className: clsx47("layer-ui__result-item", {
25018
25107
  active: props.highlighted
25019
25108
  }),
25020
25109
  onClick: props.onClick,
@@ -25023,12 +25112,12 @@ var ListItem = (props) => {
25023
25112
  ref?.scrollIntoView({ behavior: "auto", block: "nearest" });
25024
25113
  }
25025
25114
  },
25026
- children: /* @__PURE__ */ jsx107("div", { className: "preview-text", children: preview.flatMap((text, idx) => /* @__PURE__ */ jsx107(Fragment15, { children: idx === 2 ? /* @__PURE__ */ jsx107("b", { children: text }) : text }, idx)) })
25115
+ children: /* @__PURE__ */ jsx108("div", { className: "preview-text", children: preview.flatMap((text, idx) => /* @__PURE__ */ jsx108(Fragment15, { children: idx === 2 ? /* @__PURE__ */ jsx108("b", { children: text }) : text }, idx)) })
25027
25116
  }
25028
25117
  );
25029
25118
  };
25030
25119
  var MatchListBase = (props) => {
25031
- return /* @__PURE__ */ jsx107("div", { className: "layer-ui__search-result-container", children: props.matches.items.map((searchMatch, index) => /* @__PURE__ */ jsx107(
25120
+ return /* @__PURE__ */ jsx108("div", { className: "layer-ui__search-result-container", children: props.matches.items.map((searchMatch, index) => /* @__PURE__ */ jsx108(
25032
25121
  ListItem,
25033
25122
  {
25034
25123
  searchQuery: props.searchQuery,
@@ -25209,13 +25298,13 @@ var handleSearch = debounce2(
25209
25298
  );
25210
25299
 
25211
25300
  // components/DefaultSidebar.tsx
25212
- import { jsx as jsx108, jsxs as jsxs60 } from "react/jsx-runtime";
25301
+ import { jsx as jsx109, jsxs as jsxs60 } from "react/jsx-runtime";
25213
25302
  import { createElement as createElement2 } from "react";
25214
25303
  var DefaultSidebarTrigger = withInternalFallback(
25215
25304
  "DefaultSidebarTrigger",
25216
25305
  (props) => {
25217
25306
  const { DefaultSidebarTriggerTunnel } = useTunnels();
25218
- return /* @__PURE__ */ jsx108(DefaultSidebarTriggerTunnel.In, { children: /* @__PURE__ */ jsx108(
25307
+ return /* @__PURE__ */ jsx109(DefaultSidebarTriggerTunnel.In, { children: /* @__PURE__ */ jsx109(
25219
25308
  Sidebar.Trigger,
25220
25309
  {
25221
25310
  ...props,
@@ -25228,7 +25317,7 @@ var DefaultSidebarTrigger = withInternalFallback(
25228
25317
  DefaultSidebarTrigger.displayName = "DefaultSidebarTrigger";
25229
25318
  var DefaultTabTriggers = ({ children }) => {
25230
25319
  const { DefaultSidebarTabTriggersTunnel } = useTunnels();
25231
- return /* @__PURE__ */ jsx108(DefaultSidebarTabTriggersTunnel.In, { children });
25320
+ return /* @__PURE__ */ jsx109(DefaultSidebarTabTriggersTunnel.In, { children });
25232
25321
  };
25233
25322
  DefaultTabTriggers.displayName = "DefaultTabTriggers";
25234
25323
  var DefaultSidebar = Object.assign(
@@ -25251,7 +25340,7 @@ var DefaultSidebar = Object.assign(
25251
25340
  ...rest,
25252
25341
  name: "default",
25253
25342
  key: "default",
25254
- className: clsx47("default-sidebar", className),
25343
+ className: clsx48("default-sidebar", className),
25255
25344
  docked: isForceDocked || (docked ?? appState.defaultSidebarDockedPreference),
25256
25345
  onDock: (
25257
25346
  // `onDock=false` disables docking.
@@ -25265,13 +25354,13 @@ var DefaultSidebar = Object.assign(
25265
25354
  )
25266
25355
  },
25267
25356
  /* @__PURE__ */ jsxs60(Sidebar.Tabs, { children: [
25268
- /* @__PURE__ */ jsx108(Sidebar.Header, { children: /* @__PURE__ */ jsxs60(Sidebar.TabTriggers, { children: [
25269
- /* @__PURE__ */ jsx108(Sidebar.TabTrigger, { tab: CANVAS_SEARCH_TAB, children: searchIcon }),
25270
- /* @__PURE__ */ jsx108(Sidebar.TabTrigger, { tab: LIBRARY_SIDEBAR_TAB, children: LibraryIcon }),
25271
- /* @__PURE__ */ jsx108(DefaultSidebarTabTriggersTunnel.Out, {})
25357
+ /* @__PURE__ */ jsx109(Sidebar.Header, { children: /* @__PURE__ */ jsxs60(Sidebar.TabTriggers, { children: [
25358
+ /* @__PURE__ */ jsx109(Sidebar.TabTrigger, { tab: CANVAS_SEARCH_TAB, children: searchIcon }),
25359
+ /* @__PURE__ */ jsx109(Sidebar.TabTrigger, { tab: LIBRARY_SIDEBAR_TAB, children: LibraryIcon }),
25360
+ /* @__PURE__ */ jsx109(DefaultSidebarTabTriggersTunnel.Out, {})
25272
25361
  ] }) }),
25273
- /* @__PURE__ */ jsx108(Sidebar.Tab, { tab: LIBRARY_SIDEBAR_TAB, children: /* @__PURE__ */ jsx108(LibraryMenu, {}) }),
25274
- /* @__PURE__ */ jsx108(Sidebar.Tab, { tab: CANVAS_SEARCH_TAB, children: /* @__PURE__ */ jsx108(SearchMenu2, {}) }),
25362
+ /* @__PURE__ */ jsx109(Sidebar.Tab, { tab: LIBRARY_SIDEBAR_TAB, children: /* @__PURE__ */ jsx109(LibraryMenu, {}) }),
25363
+ /* @__PURE__ */ jsx109(Sidebar.Tab, { tab: CANVAS_SEARCH_TAB, children: /* @__PURE__ */ jsx109(SearchMenu2, {}) }),
25275
25364
  children
25276
25365
  ] })
25277
25366
  );
@@ -25291,7 +25380,7 @@ import { useState as useState28, useRef as useRef29, useEffect as useEffect33, u
25291
25380
 
25292
25381
  // components/TTDDialog/TTDDialogInput.tsx
25293
25382
  import { useEffect as useEffect32, useRef as useRef28 } from "react";
25294
- import { jsx as jsx109 } from "react/jsx-runtime";
25383
+ import { jsx as jsx110 } from "react/jsx-runtime";
25295
25384
  var TTDDialogInput = ({
25296
25385
  input,
25297
25386
  placeholder,
@@ -25319,7 +25408,7 @@ var TTDDialogInput = ({
25319
25408
  };
25320
25409
  }
25321
25410
  }, []);
25322
- return /* @__PURE__ */ jsx109(
25411
+ return /* @__PURE__ */ jsx110(
25323
25412
  "textarea",
25324
25413
  {
25325
25414
  className: "ttd-dialog-input",
@@ -25333,7 +25422,7 @@ var TTDDialogInput = ({
25333
25422
  };
25334
25423
 
25335
25424
  // components/TTDDialog/TTDDialogOutput.tsx
25336
- import { jsx as jsx110, jsxs as jsxs61 } from "react/jsx-runtime";
25425
+ import { jsx as jsx111, jsxs as jsxs61 } from "react/jsx-runtime";
25337
25426
  var ErrorComp = ({ error }) => {
25338
25427
  return /* @__PURE__ */ jsxs61(
25339
25428
  "div",
@@ -25342,7 +25431,7 @@ var ErrorComp = ({ error }) => {
25342
25431
  className: "ttd-dialog-output-error",
25343
25432
  children: [
25344
25433
  "Error! ",
25345
- /* @__PURE__ */ jsx110("p", { children: error })
25434
+ /* @__PURE__ */ jsx111("p", { children: error })
25346
25435
  ]
25347
25436
  }
25348
25437
  );
@@ -25353,21 +25442,21 @@ var TTDDialogOutput = ({
25353
25442
  loaded
25354
25443
  }) => {
25355
25444
  return /* @__PURE__ */ jsxs61("div", { className: "ttd-dialog-output-wrapper", children: [
25356
- error && /* @__PURE__ */ jsx110(ErrorComp, { error: error.message }),
25357
- loaded ? /* @__PURE__ */ jsx110(
25445
+ error && /* @__PURE__ */ jsx111(ErrorComp, { error: error.message }),
25446
+ loaded ? /* @__PURE__ */ jsx111(
25358
25447
  "div",
25359
25448
  {
25360
25449
  ref: canvasRef,
25361
25450
  style: { opacity: error ? "0.15" : 1 },
25362
25451
  className: "ttd-dialog-output-canvas-container"
25363
25452
  }
25364
- ) : /* @__PURE__ */ jsx110(Spinner_default, { size: "2rem" })
25453
+ ) : /* @__PURE__ */ jsx111(Spinner_default, { size: "2rem" })
25365
25454
  ] });
25366
25455
  };
25367
25456
 
25368
25457
  // components/TTDDialog/TTDDialogPanel.tsx
25369
- import clsx48 from "clsx";
25370
- import { jsx as jsx111, jsxs as jsxs62 } from "react/jsx-runtime";
25458
+ import clsx49 from "clsx";
25459
+ import { jsx as jsx112, jsxs as jsxs62 } from "react/jsx-runtime";
25371
25460
  var TTDDialogPanel = ({
25372
25461
  label,
25373
25462
  children,
@@ -25380,14 +25469,14 @@ var TTDDialogPanel = ({
25380
25469
  }) => {
25381
25470
  return /* @__PURE__ */ jsxs62("div", { className: "ttd-dialog-panel", children: [
25382
25471
  /* @__PURE__ */ jsxs62("div", { className: "ttd-dialog-panel__header", children: [
25383
- /* @__PURE__ */ jsx111("label", { children: label }),
25472
+ /* @__PURE__ */ jsx112("label", { children: label }),
25384
25473
  renderTopRight?.()
25385
25474
  ] }),
25386
25475
  children,
25387
25476
  /* @__PURE__ */ jsxs62(
25388
25477
  "div",
25389
25478
  {
25390
- className: clsx48("ttd-dialog-panel-button-container", {
25479
+ className: clsx49("ttd-dialog-panel-button-container", {
25391
25480
  invisible: !panelAction
25392
25481
  }),
25393
25482
  style: { display: "flex", alignItems: "center" },
@@ -25400,11 +25489,11 @@ var TTDDialogPanel = ({
25400
25489
  },
25401
25490
  disabled: panelActionDisabled || onTextSubmitInProgess,
25402
25491
  children: [
25403
- /* @__PURE__ */ jsxs62("div", { className: clsx48({ invisible: onTextSubmitInProgess }), children: [
25492
+ /* @__PURE__ */ jsxs62("div", { className: clsx49({ invisible: onTextSubmitInProgess }), children: [
25404
25493
  panelAction?.label,
25405
- panelAction?.icon && /* @__PURE__ */ jsx111("span", { children: panelAction.icon })
25494
+ panelAction?.icon && /* @__PURE__ */ jsx112("span", { children: panelAction.icon })
25406
25495
  ] }),
25407
- onTextSubmitInProgess && /* @__PURE__ */ jsx111(Spinner_default, {})
25496
+ onTextSubmitInProgess && /* @__PURE__ */ jsx112(Spinner_default, {})
25408
25497
  ]
25409
25498
  }
25410
25499
  ),
@@ -25417,17 +25506,17 @@ var TTDDialogPanel = ({
25417
25506
  };
25418
25507
 
25419
25508
  // components/TTDDialog/TTDDialogPanels.tsx
25420
- import { jsx as jsx112 } from "react/jsx-runtime";
25509
+ import { jsx as jsx113 } from "react/jsx-runtime";
25421
25510
  var TTDDialogPanels = ({ children }) => {
25422
- return /* @__PURE__ */ jsx112("div", { className: "ttd-dialog-panels", children });
25511
+ return /* @__PURE__ */ jsx113("div", { className: "ttd-dialog-panels", children });
25423
25512
  };
25424
25513
 
25425
25514
  // components/TTDDialog/TTDDialogSubmitShortcut.tsx
25426
- import { jsx as jsx113, jsxs as jsxs63 } from "react/jsx-runtime";
25515
+ import { jsx as jsx114, jsxs as jsxs63 } from "react/jsx-runtime";
25427
25516
  var TTDDialogSubmitShortcut = () => {
25428
25517
  return /* @__PURE__ */ jsxs63("div", { className: "ttd-dialog-submit-shortcut", children: [
25429
- /* @__PURE__ */ jsx113("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("CtrlOrCmd") }),
25430
- /* @__PURE__ */ jsx113("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("Enter") })
25518
+ /* @__PURE__ */ jsx114("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("CtrlOrCmd") }),
25519
+ /* @__PURE__ */ jsx114("div", { className: "ttd-dialog-submit-shortcut__key", children: getShortcutKey("Enter") })
25431
25520
  ] });
25432
25521
  };
25433
25522
 
@@ -25535,7 +25624,7 @@ var insertToEditor = ({
25535
25624
  };
25536
25625
 
25537
25626
  // components/TTDDialog/MermaidToExcalidraw.tsx
25538
- import { Fragment as Fragment17, jsx as jsx114, jsxs as jsxs64 } from "react/jsx-runtime";
25627
+ import { Fragment as Fragment17, jsx as jsx115, jsxs as jsxs64 } from "react/jsx-runtime";
25539
25628
  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]";
25540
25629
  var debouncedSaveMermaidDefinition = debounce(saveMermaidDataToStorage, 300);
25541
25630
  var MermaidToExcalidraw = ({
@@ -25578,17 +25667,17 @@ var MermaidToExcalidraw = ({
25578
25667
  });
25579
25668
  };
25580
25669
  return /* @__PURE__ */ jsxs64(Fragment17, { children: [
25581
- /* @__PURE__ */ jsx114("div", { className: "ttd-dialog-desc", children: /* @__PURE__ */ jsx114(
25670
+ /* @__PURE__ */ jsx115("div", { className: "ttd-dialog-desc", children: /* @__PURE__ */ jsx115(
25582
25671
  Trans_default,
25583
25672
  {
25584
25673
  i18nKey: "mermaid.description",
25585
- flowchartLink: (el) => /* @__PURE__ */ jsx114("a", { href: "https://mermaid.js.org/syntax/flowchart.html", children: el }),
25586
- sequenceLink: (el) => /* @__PURE__ */ jsx114("a", { href: "https://mermaid.js.org/syntax/sequenceDiagram.html", children: el }),
25587
- classLink: (el) => /* @__PURE__ */ jsx114("a", { href: "https://mermaid.js.org/syntax/classDiagram.html", children: el })
25674
+ flowchartLink: (el) => /* @__PURE__ */ jsx115("a", { href: "https://mermaid.js.org/syntax/flowchart.html", children: el }),
25675
+ sequenceLink: (el) => /* @__PURE__ */ jsx115("a", { href: "https://mermaid.js.org/syntax/sequenceDiagram.html", children: el }),
25676
+ classLink: (el) => /* @__PURE__ */ jsx115("a", { href: "https://mermaid.js.org/syntax/classDiagram.html", children: el })
25588
25677
  }
25589
25678
  ) }),
25590
25679
  /* @__PURE__ */ jsxs64(TTDDialogPanels, { children: [
25591
- /* @__PURE__ */ jsx114(TTDDialogPanel, { label: t("mermaid.syntax"), children: /* @__PURE__ */ jsx114(
25680
+ /* @__PURE__ */ jsx115(TTDDialogPanel, { label: t("mermaid.syntax"), children: /* @__PURE__ */ jsx115(
25592
25681
  TTDDialogInput,
25593
25682
  {
25594
25683
  input: text,
@@ -25599,7 +25688,7 @@ var MermaidToExcalidraw = ({
25599
25688
  }
25600
25689
  }
25601
25690
  ) }),
25602
- /* @__PURE__ */ jsx114(
25691
+ /* @__PURE__ */ jsx115(
25603
25692
  TTDDialogPanel,
25604
25693
  {
25605
25694
  label: t("mermaid.preview"),
@@ -25610,8 +25699,8 @@ var MermaidToExcalidraw = ({
25610
25699
  label: t("mermaid.button"),
25611
25700
  icon: ArrowRightIcon
25612
25701
  },
25613
- renderSubmitShortcut: () => /* @__PURE__ */ jsx114(TTDDialogSubmitShortcut, {}),
25614
- children: /* @__PURE__ */ jsx114(
25702
+ renderSubmitShortcut: () => /* @__PURE__ */ jsx115(TTDDialogSubmitShortcut, {}),
25703
+ children: /* @__PURE__ */ jsx115(
25615
25704
  TTDDialogOutput,
25616
25705
  {
25617
25706
  canvasRef,
@@ -25629,12 +25718,12 @@ var MermaidToExcalidraw_default = MermaidToExcalidraw;
25629
25718
  // components/TTDDialog/TTDDialogTabs.tsx
25630
25719
  import * as RadixTabs5 from "@radix-ui/react-tabs";
25631
25720
  import { useRef as useRef30 } from "react";
25632
- import { jsx as jsx115 } from "react/jsx-runtime";
25721
+ import { jsx as jsx116 } from "react/jsx-runtime";
25633
25722
  var TTDDialogTabs = (props) => {
25634
25723
  const setAppState = useExcalidrawSetAppState();
25635
25724
  const rootRef = useRef30(null);
25636
25725
  const minHeightRef = useRef30(0);
25637
- return /* @__PURE__ */ jsx115(
25726
+ return /* @__PURE__ */ jsx116(
25638
25727
  RadixTabs5.Root,
25639
25728
  {
25640
25729
  ref: rootRef,
@@ -25667,42 +25756,42 @@ var TTDDialogTabs_default = TTDDialogTabs;
25667
25756
 
25668
25757
  // components/TTDDialog/TTDDialogTabTriggers.tsx
25669
25758
  import * as RadixTabs6 from "@radix-ui/react-tabs";
25670
- import { jsx as jsx116 } from "react/jsx-runtime";
25759
+ import { jsx as jsx117 } from "react/jsx-runtime";
25671
25760
  var TTDDialogTabTriggers = ({
25672
25761
  children,
25673
25762
  ...rest
25674
25763
  }) => {
25675
- return /* @__PURE__ */ jsx116(RadixTabs6.List, { className: "ttd-dialog-triggers", ...rest, children });
25764
+ return /* @__PURE__ */ jsx117(RadixTabs6.List, { className: "ttd-dialog-triggers", ...rest, children });
25676
25765
  };
25677
25766
  TTDDialogTabTriggers.displayName = "TTDDialogTabTriggers";
25678
25767
 
25679
25768
  // components/TTDDialog/TTDDialogTabTrigger.tsx
25680
25769
  import * as RadixTabs7 from "@radix-ui/react-tabs";
25681
- import { jsx as jsx117 } from "react/jsx-runtime";
25770
+ import { jsx as jsx118 } from "react/jsx-runtime";
25682
25771
  var TTDDialogTabTrigger = ({
25683
25772
  children,
25684
25773
  tab,
25685
25774
  onSelect,
25686
25775
  ...rest
25687
25776
  }) => {
25688
- return /* @__PURE__ */ jsx117(RadixTabs7.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx117("button", { type: "button", className: "ttd-dialog-tab-trigger", ...rest, children }) });
25777
+ return /* @__PURE__ */ jsx118(RadixTabs7.Trigger, { value: tab, asChild: true, onSelect, children: /* @__PURE__ */ jsx118("button", { type: "button", className: "ttd-dialog-tab-trigger", ...rest, children }) });
25689
25778
  };
25690
25779
  TTDDialogTabTrigger.displayName = "TTDDialogTabTrigger";
25691
25780
 
25692
25781
  // components/TTDDialog/TTDDialogTab.tsx
25693
25782
  import * as RadixTabs8 from "@radix-ui/react-tabs";
25694
- import { jsx as jsx118 } from "react/jsx-runtime";
25783
+ import { jsx as jsx119 } from "react/jsx-runtime";
25695
25784
  var TTDDialogTab = ({
25696
25785
  tab,
25697
25786
  children,
25698
25787
  ...rest
25699
25788
  }) => {
25700
- return /* @__PURE__ */ jsx118(RadixTabs8.Content, { ...rest, value: tab, children });
25789
+ return /* @__PURE__ */ jsx119(RadixTabs8.Content, { ...rest, value: tab, children });
25701
25790
  };
25702
25791
  TTDDialogTab.displayName = "TTDDialogTab";
25703
25792
 
25704
25793
  // components/TTDDialog/TTDDialog.tsx
25705
- import { jsx as jsx119, jsxs as jsxs65 } from "react/jsx-runtime";
25794
+ import { jsx as jsx120, jsxs as jsxs65 } from "react/jsx-runtime";
25706
25795
  var MIN_PROMPT_LENGTH = 3;
25707
25796
  var MAX_PROMPT_LENGTH = 1e3;
25708
25797
  var rateLimitsAtom = atom(null);
@@ -25712,7 +25801,7 @@ var TTDDialog = (props) => {
25712
25801
  if (appState.openDialog?.name !== "ttd") {
25713
25802
  return null;
25714
25803
  }
25715
- return /* @__PURE__ */ jsx119(TTDDialogBase, { ...props, tab: appState.openDialog.tab });
25804
+ return /* @__PURE__ */ jsx120(TTDDialogBase, { ...props, tab: appState.openDialog.tab });
25716
25805
  };
25717
25806
  var TTDDialogBase = withInternalFallback(
25718
25807
  "TTDDialogBase",
@@ -25826,7 +25915,7 @@ TTD mermaid definition render errror: ${error3.message}`,
25826
25915
  }, [mermaidToExcalidrawLib.api]);
25827
25916
  const data = useRef31({ elements: [], files: null });
25828
25917
  const [error, setError] = useState29(null);
25829
- return /* @__PURE__ */ jsx119(
25918
+ return /* @__PURE__ */ jsx120(
25830
25919
  Dialog,
25831
25920
  {
25832
25921
  className: "ttd-dialog",
@@ -25838,10 +25927,10 @@ TTD mermaid definition render errror: ${error3.message}`,
25838
25927
  ...rest,
25839
25928
  autofocus: false,
25840
25929
  children: /* @__PURE__ */ jsxs65(TTDDialogTabs_default, { dialog: "ttd", tab, children: [
25841
- "__fallback" in rest && rest.__fallback ? /* @__PURE__ */ jsx119("p", { className: "dialog-mermaid-title", children: t("mermaid.title") }) : /* @__PURE__ */ jsxs65(TTDDialogTabTriggers, { children: [
25842
- /* @__PURE__ */ jsx119(TTDDialogTabTrigger, { tab: "text-to-diagram", children: /* @__PURE__ */ jsxs65("div", { style: { display: "flex", alignItems: "center" }, children: [
25930
+ "__fallback" in rest && rest.__fallback ? /* @__PURE__ */ jsx120("p", { className: "dialog-mermaid-title", children: t("mermaid.title") }) : /* @__PURE__ */ jsxs65(TTDDialogTabTriggers, { children: [
25931
+ /* @__PURE__ */ jsx120(TTDDialogTabTrigger, { tab: "text-to-diagram", children: /* @__PURE__ */ jsxs65("div", { style: { display: "flex", alignItems: "center" }, children: [
25843
25932
  t("labels.textToDiagram"),
25844
- /* @__PURE__ */ jsx119(
25933
+ /* @__PURE__ */ jsx120(
25845
25934
  "div",
25846
25935
  {
25847
25936
  style: {
@@ -25859,18 +25948,18 @@ TTD mermaid definition render errror: ${error3.message}`,
25859
25948
  }
25860
25949
  )
25861
25950
  ] }) }),
25862
- /* @__PURE__ */ jsx119(TTDDialogTabTrigger, { tab: "mermaid", children: "Mermaid" })
25951
+ /* @__PURE__ */ jsx120(TTDDialogTabTrigger, { tab: "mermaid", children: "Mermaid" })
25863
25952
  ] }),
25864
- /* @__PURE__ */ jsx119(TTDDialogTab, { className: "ttd-dialog-content", tab: "mermaid", children: /* @__PURE__ */ jsx119(
25953
+ /* @__PURE__ */ jsx120(TTDDialogTab, { className: "ttd-dialog-content", tab: "mermaid", children: /* @__PURE__ */ jsx120(
25865
25954
  MermaidToExcalidraw_default,
25866
25955
  {
25867
25956
  mermaidToExcalidrawLib
25868
25957
  }
25869
25958
  ) }),
25870
25959
  !("__fallback" in rest) && /* @__PURE__ */ jsxs65(TTDDialogTab, { className: "ttd-dialog-content", tab: "text-to-diagram", children: [
25871
- /* @__PURE__ */ jsx119("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." }),
25960
+ /* @__PURE__ */ jsx120("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." }),
25872
25961
  /* @__PURE__ */ jsxs65(TTDDialogPanels, { children: [
25873
- /* @__PURE__ */ jsx119(
25962
+ /* @__PURE__ */ jsx120(
25874
25963
  TTDDialogPanel,
25875
25964
  {
25876
25965
  label: t("labels.prompt"),
@@ -25901,7 +25990,7 @@ TTD mermaid definition render errror: ${error3.message}`,
25901
25990
  }
25902
25991
  );
25903
25992
  },
25904
- renderSubmitShortcut: () => /* @__PURE__ */ jsx119(TTDDialogSubmitShortcut, {}),
25993
+ renderSubmitShortcut: () => /* @__PURE__ */ jsx120(TTDDialogSubmitShortcut, {}),
25905
25994
  renderBottomRight: () => {
25906
25995
  if (typeof ttdGeneration?.generatedResponse === "string") {
25907
25996
  return /* @__PURE__ */ jsxs65(
@@ -25921,7 +26010,7 @@ TTD mermaid definition render errror: ${error3.message}`,
25921
26010
  },
25922
26011
  children: [
25923
26012
  "View as Mermaid",
25924
- /* @__PURE__ */ jsx119(InlineIcon, { icon: ArrowRightIcon })
26013
+ /* @__PURE__ */ jsx120(InlineIcon, { icon: ArrowRightIcon })
25925
26014
  ]
25926
26015
  }
25927
26016
  );
@@ -25948,7 +26037,7 @@ TTD mermaid definition render errror: ${error3.message}`,
25948
26037
  }
25949
26038
  return null;
25950
26039
  },
25951
- children: /* @__PURE__ */ jsx119(
26040
+ children: /* @__PURE__ */ jsx120(
25952
26041
  TTDDialogInput,
25953
26042
  {
25954
26043
  onChange: handleTextChange,
@@ -25961,7 +26050,7 @@ TTD mermaid definition render errror: ${error3.message}`,
25961
26050
  )
25962
26051
  }
25963
26052
  ),
25964
- /* @__PURE__ */ jsx119(
26053
+ /* @__PURE__ */ jsx120(
25965
26054
  TTDDialogPanel,
25966
26055
  {
25967
26056
  label: "Preview",
@@ -25973,7 +26062,7 @@ TTD mermaid definition render errror: ${error3.message}`,
25973
26062
  label: "Insert",
25974
26063
  icon: ArrowRightIcon
25975
26064
  },
25976
- children: /* @__PURE__ */ jsx119(
26065
+ children: /* @__PURE__ */ jsx120(
25977
26066
  TTDDialogOutput,
25978
26067
  {
25979
26068
  canvasRef: someRandomDivRef,
@@ -25992,12 +26081,12 @@ TTD mermaid definition render errror: ${error3.message}`,
25992
26081
  );
25993
26082
 
25994
26083
  // components/Stats/index.tsx
25995
- import clsx50 from "clsx";
26084
+ import clsx51 from "clsx";
25996
26085
  import throttle2 from "lodash.throttle";
25997
- import { useEffect as useEffect36, useMemo as useMemo9, useState as useState31, memo as memo5 } from "react";
26086
+ import { useEffect as useEffect36, useMemo as useMemo10, useState as useState31, memo as memo5 } from "react";
25998
26087
 
25999
26088
  // components/Stats/DragInput.tsx
26000
- import clsx49 from "clsx";
26089
+ import clsx50 from "clsx";
26001
26090
  import { useEffect as useEffect35, useRef as useRef32, useState as useState30 } from "react";
26002
26091
 
26003
26092
  // components/Stats/utils.ts
@@ -26102,7 +26191,7 @@ var updateBindings = (latestElement, elementsMap, elements, scene, options) => {
26102
26191
  };
26103
26192
 
26104
26193
  // components/Stats/DragInput.tsx
26105
- import { jsx as jsx120, jsxs as jsxs66 } from "react/jsx-runtime";
26194
+ import { jsx as jsx121, jsxs as jsxs66 } from "react/jsx-runtime";
26106
26195
  var StatsDragInput = ({
26107
26196
  label,
26108
26197
  icon,
@@ -26206,10 +26295,10 @@ var StatsDragInput = ({
26206
26295
  return /* @__PURE__ */ jsxs66(
26207
26296
  "div",
26208
26297
  {
26209
- className: clsx49("drag-input-container", !editable && "disabled"),
26298
+ className: clsx50("drag-input-container", !editable && "disabled"),
26210
26299
  "data-testid": label,
26211
26300
  children: [
26212
- /* @__PURE__ */ jsx120(
26301
+ /* @__PURE__ */ jsx121(
26213
26302
  "div",
26214
26303
  {
26215
26304
  className: "drag-input-label",
@@ -26289,10 +26378,10 @@ var StatsDragInput = ({
26289
26378
  labelRef.current.style.cursor = "ew-resize";
26290
26379
  }
26291
26380
  },
26292
- children: icon ? /* @__PURE__ */ jsx120(InlineIcon, { icon }) : label
26381
+ children: icon ? /* @__PURE__ */ jsx121(InlineIcon, { icon }) : label
26293
26382
  }
26294
26383
  ),
26295
- /* @__PURE__ */ jsx120(
26384
+ /* @__PURE__ */ jsx121(
26296
26385
  "input",
26297
26386
  {
26298
26387
  className: "drag-input",
@@ -26339,7 +26428,7 @@ var StatsDragInput = ({
26339
26428
  var DragInput_default = StatsDragInput;
26340
26429
 
26341
26430
  // components/Stats/Angle.tsx
26342
- import { jsx as jsx121 } from "react/jsx-runtime";
26431
+ import { jsx as jsx122 } from "react/jsx-runtime";
26343
26432
  var STEP_SIZE = 15;
26344
26433
  var handleDegreeChange = ({
26345
26434
  accumulatedChange,
@@ -26387,7 +26476,7 @@ var handleDegreeChange = ({
26387
26476
  }
26388
26477
  };
26389
26478
  var Angle = ({ element, scene, appState, property }) => {
26390
- return /* @__PURE__ */ jsx121(
26479
+ return /* @__PURE__ */ jsx122(
26391
26480
  DragInput_default,
26392
26481
  {
26393
26482
  label: "A",
@@ -26405,7 +26494,7 @@ var Angle = ({ element, scene, appState, property }) => {
26405
26494
  var Angle_default = Angle;
26406
26495
 
26407
26496
  // components/Stats/CanvasGrid.tsx
26408
- import { jsx as jsx122 } from "react/jsx-runtime";
26497
+ import { jsx as jsx123 } from "react/jsx-runtime";
26409
26498
  var STEP_SIZE2 = 5;
26410
26499
  var CanvasGrid = ({
26411
26500
  property,
@@ -26413,7 +26502,7 @@ var CanvasGrid = ({
26413
26502
  appState,
26414
26503
  setAppState
26415
26504
  }) => {
26416
- return /* @__PURE__ */ jsx122(
26505
+ return /* @__PURE__ */ jsx123(
26417
26506
  DragInput_default,
26418
26507
  {
26419
26508
  label: "Grid step",
@@ -26456,7 +26545,7 @@ var CanvasGrid = ({
26456
26545
  var CanvasGrid_default = CanvasGrid;
26457
26546
 
26458
26547
  // components/Stats/Dimension.tsx
26459
- import { jsx as jsx123 } from "react/jsx-runtime";
26548
+ import { jsx as jsx124 } from "react/jsx-runtime";
26460
26549
  var STEP_SIZE3 = 10;
26461
26550
  var _shouldKeepAspectRatio = (element) => {
26462
26551
  return element.type === "image";
@@ -26636,7 +26725,7 @@ var DimensionDragInput = ({
26636
26725
  value = round(element.crop.height * ratio, 2);
26637
26726
  }
26638
26727
  }
26639
- return /* @__PURE__ */ jsx123(
26728
+ return /* @__PURE__ */ jsx124(
26640
26729
  DragInput_default,
26641
26730
  {
26642
26731
  label: property === "width" ? "W" : "H",
@@ -26653,7 +26742,7 @@ var DimensionDragInput = ({
26653
26742
  var Dimension_default = DimensionDragInput;
26654
26743
 
26655
26744
  // components/Stats/FontSize.tsx
26656
- import { jsx as jsx124 } from "react/jsx-runtime";
26745
+ import { jsx as jsx125 } from "react/jsx-runtime";
26657
26746
  var MIN_FONT_SIZE2 = 4;
26658
26747
  var STEP_SIZE4 = 4;
26659
26748
  var handleFontSizeChange = ({
@@ -26701,7 +26790,7 @@ var FontSize = ({ element, scene, appState, property }) => {
26701
26790
  if (!_element) {
26702
26791
  return null;
26703
26792
  }
26704
- return /* @__PURE__ */ jsx124(
26793
+ return /* @__PURE__ */ jsx125(
26705
26794
  DragInput_default,
26706
26795
  {
26707
26796
  label: "F",
@@ -26718,7 +26807,7 @@ var FontSize = ({ element, scene, appState, property }) => {
26718
26807
  var FontSize_default = FontSize;
26719
26808
 
26720
26809
  // components/Stats/MultiAngle.tsx
26721
- import { jsx as jsx125 } from "react/jsx-runtime";
26810
+ import { jsx as jsx126 } from "react/jsx-runtime";
26722
26811
  var STEP_SIZE5 = 15;
26723
26812
  var handleDegreeChange2 = ({
26724
26813
  accumulatedChange,
@@ -26798,7 +26887,7 @@ var MultiAngle = ({
26798
26887
  const editable = editableLatestIndividualElements.some(
26799
26888
  (el) => isPropertyEditable(el, "angle")
26800
26889
  );
26801
- return /* @__PURE__ */ jsx125(
26890
+ return /* @__PURE__ */ jsx126(
26802
26891
  DragInput_default,
26803
26892
  {
26804
26893
  label: "A",
@@ -26816,8 +26905,8 @@ var MultiAngle = ({
26816
26905
  var MultiAngle_default = MultiAngle;
26817
26906
 
26818
26907
  // components/Stats/MultiDimension.tsx
26819
- import { useMemo as useMemo7 } from "react";
26820
- import { jsx as jsx126 } from "react/jsx-runtime";
26908
+ import { useMemo as useMemo8 } from "react";
26909
+ import { jsx as jsx127 } from "react/jsx-runtime";
26821
26910
  var STEP_SIZE6 = 10;
26822
26911
  var getResizedUpdates = (anchorX, anchorY, scale, origElement) => {
26823
26912
  const offsetX = origElement.x - anchorX;
@@ -27067,7 +27156,7 @@ var MultiDimension = ({
27067
27156
  scene,
27068
27157
  appState
27069
27158
  }) => {
27070
- const sizes = useMemo7(
27159
+ const sizes = useMemo8(
27071
27160
  () => atomicUnits.map((atomicUnit) => {
27072
27161
  const elementsInUnit = getElementsInAtomicUnit(atomicUnit, elementsMap);
27073
27162
  if (elementsInUnit.length > 1) {
@@ -27085,7 +27174,7 @@ var MultiDimension = ({
27085
27174
  );
27086
27175
  const value = new Set(sizes).size === 1 ? Math.round(sizes[0] * 100) / 100 : "Mixed";
27087
27176
  const editable = sizes.length > 0;
27088
- return /* @__PURE__ */ jsx126(
27177
+ return /* @__PURE__ */ jsx127(
27089
27178
  DragInput_default,
27090
27179
  {
27091
27180
  label: property === "width" ? "W" : "H",
@@ -27102,7 +27191,7 @@ var MultiDimension = ({
27102
27191
  var MultiDimension_default = MultiDimension;
27103
27192
 
27104
27193
  // components/Stats/MultiFontSize.tsx
27105
- import { jsx as jsx127 } from "react/jsx-runtime";
27194
+ import { jsx as jsx128 } from "react/jsx-runtime";
27106
27195
  var MIN_FONT_SIZE3 = 4;
27107
27196
  var STEP_SIZE7 = 4;
27108
27197
  var getApplicableTextElements = (elements, elementsMap) => elements.reduce(
@@ -27202,7 +27291,7 @@ var MultiFontSize = ({
27202
27291
  );
27203
27292
  const value = new Set(fontSizes).size === 1 ? fontSizes[0] : "Mixed";
27204
27293
  const editable = fontSizes.length > 0;
27205
- return /* @__PURE__ */ jsx127(
27294
+ return /* @__PURE__ */ jsx128(
27206
27295
  DragInput_default,
27207
27296
  {
27208
27297
  label: "F",
@@ -27220,8 +27309,8 @@ var MultiFontSize = ({
27220
27309
  var MultiFontSize_default = MultiFontSize;
27221
27310
 
27222
27311
  // components/Stats/MultiPosition.tsx
27223
- import { useMemo as useMemo8 } from "react";
27224
- import { jsx as jsx128 } from "react/jsx-runtime";
27312
+ import { useMemo as useMemo9 } from "react";
27313
+ import { jsx as jsx129 } from "react/jsx-runtime";
27225
27314
  var STEP_SIZE8 = 10;
27226
27315
  var moveElements = (property, changeInTopX, changeInTopY, elements, originalElements, elementsMap, originalElementsMap, scene) => {
27227
27316
  for (let i = 0; i < elements.length; i++) {
@@ -27373,7 +27462,7 @@ var MultiPosition = ({
27373
27462
  scene,
27374
27463
  appState
27375
27464
  }) => {
27376
- const positions = useMemo8(
27465
+ const positions = useMemo9(
27377
27466
  () => atomicUnits.map((atomicUnit) => {
27378
27467
  const elementsInUnit = Object.keys(atomicUnit).map((id) => elementsMap.get(id)).filter((el2) => el2 !== void 0);
27379
27468
  if (elementsInUnit.length > 1) {
@@ -27392,7 +27481,7 @@ var MultiPosition = ({
27392
27481
  [atomicUnits, elementsMap, property]
27393
27482
  );
27394
27483
  const value = new Set(positions).size === 1 ? positions[0] : "Mixed";
27395
- return /* @__PURE__ */ jsx128(
27484
+ return /* @__PURE__ */ jsx129(
27396
27485
  DragInput_default,
27397
27486
  {
27398
27487
  label: property === "x" ? "X" : "Y",
@@ -27408,7 +27497,7 @@ var MultiPosition = ({
27408
27497
  var MultiPosition_default = MultiPosition;
27409
27498
 
27410
27499
  // components/Stats/Position.tsx
27411
- import { jsx as jsx129 } from "react/jsx-runtime";
27500
+ import { jsx as jsx130 } from "react/jsx-runtime";
27412
27501
  var STEP_SIZE9 = 10;
27413
27502
  var handlePositionChange2 = ({
27414
27503
  accumulatedChange,
@@ -27547,7 +27636,7 @@ var Position = ({
27547
27636
  );
27548
27637
  }
27549
27638
  }
27550
- return /* @__PURE__ */ jsx129(
27639
+ return /* @__PURE__ */ jsx130(
27551
27640
  DragInput_default,
27552
27641
  {
27553
27642
  label: property === "x" ? "X" : "Y",
@@ -27563,7 +27652,7 @@ var Position = ({
27563
27652
  var Position_default = Position;
27564
27653
 
27565
27654
  // components/Stats/index.tsx
27566
- import { Fragment as Fragment18, jsx as jsx130, jsxs as jsxs67 } from "react/jsx-runtime";
27655
+ import { Fragment as Fragment18, jsx as jsx131, jsxs as jsxs67 } from "react/jsx-runtime";
27567
27656
  var STATS_TIMEOUT = 50;
27568
27657
  var Stats = (props) => {
27569
27658
  const appState = useExcalidrawAppState();
@@ -27573,7 +27662,7 @@ var Stats = (props) => {
27573
27662
  includeBoundTextElement: false
27574
27663
  });
27575
27664
  const gridModeEnabled = isGridModeEnabled(props.app);
27576
- return /* @__PURE__ */ jsx130(
27665
+ return /* @__PURE__ */ jsx131(
27577
27666
  StatsInner,
27578
27667
  {
27579
27668
  ...props,
@@ -27590,10 +27679,10 @@ var StatsRow = ({
27590
27679
  heading,
27591
27680
  style,
27592
27681
  ...rest
27593
- }) => /* @__PURE__ */ jsx130(
27682
+ }) => /* @__PURE__ */ jsx131(
27594
27683
  "div",
27595
27684
  {
27596
- className: clsx50("exc-stats__row", { "exc-stats__row--heading": heading }),
27685
+ className: clsx51("exc-stats__row", { "exc-stats__row--heading": heading }),
27597
27686
  style: {
27598
27687
  gridTemplateColumns: `repeat(${columns}, 1fr)`,
27599
27688
  ...style
@@ -27608,7 +27697,7 @@ var StatsRows = ({
27608
27697
  order,
27609
27698
  style,
27610
27699
  ...rest
27611
- }) => /* @__PURE__ */ jsx130("div", { className: "exc-stats__rows", style: { order, ...style }, ...rest, children });
27700
+ }) => /* @__PURE__ */ jsx131("div", { className: "exc-stats__rows", style: { order, ...style }, ...rest, children });
27612
27701
  StatsRows.displayName = "StatsRows";
27613
27702
  Stats.StatsRow = StatsRow;
27614
27703
  Stats.StatsRows = StatsRows;
@@ -27634,7 +27723,7 @@ var StatsInner = memo5(
27634
27723
  width: 0,
27635
27724
  height: 0
27636
27725
  });
27637
- const throttledSetSceneDimension = useMemo9(
27726
+ const throttledSetSceneDimension = useMemo10(
27638
27727
  () => throttle2((elements2) => {
27639
27728
  const boundingBox = getCommonBounds(elements2);
27640
27729
  setSceneDimension({
@@ -27651,21 +27740,21 @@ var StatsInner = memo5(
27651
27740
  () => () => throttledSetSceneDimension.cancel(),
27652
27741
  [throttledSetSceneDimension]
27653
27742
  );
27654
- const atomicUnits = useMemo9(() => {
27743
+ const atomicUnits = useMemo10(() => {
27655
27744
  return getAtomicUnits(selectedElements, appState);
27656
27745
  }, [selectedElements, appState]);
27657
- const _frameAndChildrenSelectedTogether = useMemo9(() => {
27746
+ const _frameAndChildrenSelectedTogether = useMemo10(() => {
27658
27747
  return frameAndChildrenSelectedTogether(selectedElements);
27659
27748
  }, [selectedElements]);
27660
- return /* @__PURE__ */ jsx130("div", { className: "exc-stats", children: /* @__PURE__ */ jsxs67(Island, { padding: 3, children: [
27749
+ return /* @__PURE__ */ jsx131("div", { className: "exc-stats", children: /* @__PURE__ */ jsxs67(Island, { padding: 3, children: [
27661
27750
  /* @__PURE__ */ jsxs67("div", { className: "title", children: [
27662
- /* @__PURE__ */ jsx130("h2", { children: t("stats.title") }),
27663
- /* @__PURE__ */ jsx130("div", { className: "close", onClick: onClose, children: CloseIcon })
27751
+ /* @__PURE__ */ jsx131("h2", { children: t("stats.title") }),
27752
+ /* @__PURE__ */ jsx131("div", { className: "close", onClick: onClose, children: CloseIcon })
27664
27753
  ] }),
27665
27754
  /* @__PURE__ */ jsxs67(
27666
27755
  Collapsible_default,
27667
27756
  {
27668
- label: /* @__PURE__ */ jsx130("h3", { children: t("stats.generalStats") }),
27757
+ label: /* @__PURE__ */ jsx131("h3", { children: t("stats.generalStats") }),
27669
27758
  open: !!(appState.stats.panels & STATS_PANELS.generalStats),
27670
27759
  openTrigger: () => setAppState((state) => {
27671
27760
  return {
@@ -27677,22 +27766,22 @@ var StatsInner = memo5(
27677
27766
  }),
27678
27767
  children: [
27679
27768
  /* @__PURE__ */ jsxs67(StatsRows, { children: [
27680
- /* @__PURE__ */ jsx130(StatsRow, { heading: true, children: t("stats.scene") }),
27769
+ /* @__PURE__ */ jsx131(StatsRow, { heading: true, children: t("stats.scene") }),
27681
27770
  /* @__PURE__ */ jsxs67(StatsRow, { columns: 2, children: [
27682
- /* @__PURE__ */ jsx130("div", { children: t("stats.shapes") }),
27683
- /* @__PURE__ */ jsx130("div", { children: elements.length })
27771
+ /* @__PURE__ */ jsx131("div", { children: t("stats.shapes") }),
27772
+ /* @__PURE__ */ jsx131("div", { children: elements.length })
27684
27773
  ] }),
27685
27774
  /* @__PURE__ */ jsxs67(StatsRow, { columns: 2, children: [
27686
- /* @__PURE__ */ jsx130("div", { children: t("stats.width") }),
27687
- /* @__PURE__ */ jsx130("div", { children: sceneDimension.width })
27775
+ /* @__PURE__ */ jsx131("div", { children: t("stats.width") }),
27776
+ /* @__PURE__ */ jsx131("div", { children: sceneDimension.width })
27688
27777
  ] }),
27689
27778
  /* @__PURE__ */ jsxs67(StatsRow, { columns: 2, children: [
27690
- /* @__PURE__ */ jsx130("div", { children: t("stats.height") }),
27691
- /* @__PURE__ */ jsx130("div", { children: sceneDimension.height })
27779
+ /* @__PURE__ */ jsx131("div", { children: t("stats.height") }),
27780
+ /* @__PURE__ */ jsx131("div", { children: sceneDimension.height })
27692
27781
  ] }),
27693
27782
  gridModeEnabled && /* @__PURE__ */ jsxs67(Fragment18, { children: [
27694
- /* @__PURE__ */ jsx130(StatsRow, { heading: true, children: "Canvas" }),
27695
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27783
+ /* @__PURE__ */ jsx131(StatsRow, { heading: true, children: "Canvas" }),
27784
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27696
27785
  CanvasGrid_default,
27697
27786
  {
27698
27787
  property: "gridStep",
@@ -27707,17 +27796,17 @@ var StatsInner = memo5(
27707
27796
  ]
27708
27797
  }
27709
27798
  ),
27710
- !_frameAndChildrenSelectedTogether && selectedElements.length > 0 && /* @__PURE__ */ jsx130(
27799
+ !_frameAndChildrenSelectedTogether && selectedElements.length > 0 && /* @__PURE__ */ jsx131(
27711
27800
  "div",
27712
27801
  {
27713
27802
  id: "elementStats",
27714
27803
  style: {
27715
27804
  marginTop: 12
27716
27805
  },
27717
- children: /* @__PURE__ */ jsx130(
27806
+ children: /* @__PURE__ */ jsx131(
27718
27807
  Collapsible_default,
27719
27808
  {
27720
- label: /* @__PURE__ */ jsx130("h3", { children: t("stats.elementProperties") }),
27809
+ label: /* @__PURE__ */ jsx131("h3", { children: t("stats.elementProperties") }),
27721
27810
  open: !!(appState.stats.panels & STATS_PANELS.elementProperties),
27722
27811
  openTrigger: () => setAppState((state) => {
27723
27812
  return {
@@ -27729,16 +27818,16 @@ var StatsInner = memo5(
27729
27818
  }),
27730
27819
  children: /* @__PURE__ */ jsxs67(StatsRows, { children: [
27731
27820
  singleElement && /* @__PURE__ */ jsxs67(Fragment18, { children: [
27732
- cropMode && /* @__PURE__ */ jsx130(StatsRow, { heading: true, children: t("labels.unCroppedDimension") }),
27821
+ cropMode && /* @__PURE__ */ jsx131(StatsRow, { heading: true, children: t("labels.unCroppedDimension") }),
27733
27822
  appState.croppingElementId && isImageElement(singleElement) && unCroppedDimension && /* @__PURE__ */ jsxs67(StatsRow, { columns: 2, children: [
27734
- /* @__PURE__ */ jsx130("div", { children: t("stats.width") }),
27735
- /* @__PURE__ */ jsx130("div", { children: round(unCroppedDimension.width, 2) })
27823
+ /* @__PURE__ */ jsx131("div", { children: t("stats.width") }),
27824
+ /* @__PURE__ */ jsx131("div", { children: round(unCroppedDimension.width, 2) })
27736
27825
  ] }),
27737
27826
  appState.croppingElementId && isImageElement(singleElement) && unCroppedDimension && /* @__PURE__ */ jsxs67(StatsRow, { columns: 2, children: [
27738
- /* @__PURE__ */ jsx130("div", { children: t("stats.height") }),
27739
- /* @__PURE__ */ jsx130("div", { children: round(unCroppedDimension.height, 2) })
27827
+ /* @__PURE__ */ jsx131("div", { children: t("stats.height") }),
27828
+ /* @__PURE__ */ jsx131("div", { children: round(unCroppedDimension.height, 2) })
27740
27829
  ] }),
27741
- /* @__PURE__ */ jsx130(
27830
+ /* @__PURE__ */ jsx131(
27742
27831
  StatsRow,
27743
27832
  {
27744
27833
  heading: true,
@@ -27747,7 +27836,7 @@ var StatsInner = memo5(
27747
27836
  children: appState.croppingElementId ? t("labels.imageCropping") : t(`element.${singleElement.type}`)
27748
27837
  }
27749
27838
  ),
27750
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27839
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27751
27840
  Position_default,
27752
27841
  {
27753
27842
  element: singleElement,
@@ -27757,7 +27846,7 @@ var StatsInner = memo5(
27757
27846
  appState
27758
27847
  }
27759
27848
  ) }),
27760
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27849
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27761
27850
  Position_default,
27762
27851
  {
27763
27852
  element: singleElement,
@@ -27767,7 +27856,7 @@ var StatsInner = memo5(
27767
27856
  appState
27768
27857
  }
27769
27858
  ) }),
27770
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27859
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27771
27860
  Dimension_default,
27772
27861
  {
27773
27862
  property: "width",
@@ -27776,7 +27865,7 @@ var StatsInner = memo5(
27776
27865
  appState
27777
27866
  }
27778
27867
  ) }),
27779
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27868
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27780
27869
  Dimension_default,
27781
27870
  {
27782
27871
  property: "height",
@@ -27785,7 +27874,7 @@ var StatsInner = memo5(
27785
27874
  appState
27786
27875
  }
27787
27876
  ) }),
27788
- !isElbowArrow(singleElement) && /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27877
+ !isElbowArrow(singleElement) && /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27789
27878
  Angle_default,
27790
27879
  {
27791
27880
  property: "angle",
@@ -27794,7 +27883,7 @@ var StatsInner = memo5(
27794
27883
  appState
27795
27884
  }
27796
27885
  ) }),
27797
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27886
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27798
27887
  FontSize_default,
27799
27888
  {
27800
27889
  property: "fontSize",
@@ -27805,12 +27894,12 @@ var StatsInner = memo5(
27805
27894
  ) })
27806
27895
  ] }),
27807
27896
  multipleElements && /* @__PURE__ */ jsxs67(Fragment18, { children: [
27808
- elementsAreInSameGroup(multipleElements) && /* @__PURE__ */ jsx130(StatsRow, { heading: true, children: t("element.group") }),
27897
+ elementsAreInSameGroup(multipleElements) && /* @__PURE__ */ jsx131(StatsRow, { heading: true, children: t("element.group") }),
27809
27898
  /* @__PURE__ */ jsxs67(StatsRow, { columns: 2, style: { margin: "0.3125rem 0" }, children: [
27810
- /* @__PURE__ */ jsx130("div", { children: t("stats.shapes") }),
27811
- /* @__PURE__ */ jsx130("div", { children: selectedElements.length })
27899
+ /* @__PURE__ */ jsx131("div", { children: t("stats.shapes") }),
27900
+ /* @__PURE__ */ jsx131("div", { children: selectedElements.length })
27812
27901
  ] }),
27813
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27902
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27814
27903
  MultiPosition_default,
27815
27904
  {
27816
27905
  property: "x",
@@ -27821,7 +27910,7 @@ var StatsInner = memo5(
27821
27910
  appState
27822
27911
  }
27823
27912
  ) }),
27824
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27913
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27825
27914
  MultiPosition_default,
27826
27915
  {
27827
27916
  property: "y",
@@ -27832,7 +27921,7 @@ var StatsInner = memo5(
27832
27921
  appState
27833
27922
  }
27834
27923
  ) }),
27835
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27924
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27836
27925
  MultiDimension_default,
27837
27926
  {
27838
27927
  property: "width",
@@ -27843,7 +27932,7 @@ var StatsInner = memo5(
27843
27932
  appState
27844
27933
  }
27845
27934
  ) }),
27846
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27935
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27847
27936
  MultiDimension_default,
27848
27937
  {
27849
27938
  property: "height",
@@ -27854,7 +27943,7 @@ var StatsInner = memo5(
27854
27943
  appState
27855
27944
  }
27856
27945
  ) }),
27857
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27946
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27858
27947
  MultiAngle_default,
27859
27948
  {
27860
27949
  property: "angle",
@@ -27863,7 +27952,7 @@ var StatsInner = memo5(
27863
27952
  appState
27864
27953
  }
27865
27954
  ) }),
27866
- /* @__PURE__ */ jsx130(StatsRow, { children: /* @__PURE__ */ jsx130(
27955
+ /* @__PURE__ */ jsx131(StatsRow, { children: /* @__PURE__ */ jsx131(
27867
27956
  MultiFontSize_default,
27868
27957
  {
27869
27958
  property: "fontSize",
@@ -27888,7 +27977,7 @@ var StatsInner = memo5(
27888
27977
 
27889
27978
  // components/ElementLinkDialog.tsx
27890
27979
  import { useCallback as useCallback12, useEffect as useEffect37, useState as useState32 } from "react";
27891
- import { jsx as jsx131, jsxs as jsxs68 } from "react/jsx-runtime";
27980
+ import { jsx as jsx132, jsxs as jsxs68 } from "react/jsx-runtime";
27892
27981
  var ElementLinkDialog = ({
27893
27982
  sourceElementId,
27894
27983
  onClose,
@@ -27952,11 +28041,11 @@ var ElementLinkDialog = ({
27952
28041
  }, [appState, onClose, handleConfirm]);
27953
28042
  return /* @__PURE__ */ jsxs68("div", { className: "ElementLinkDialog", children: [
27954
28043
  /* @__PURE__ */ jsxs68("div", { className: "ElementLinkDialog__header", children: [
27955
- /* @__PURE__ */ jsx131("h2", { children: t("elementLink.title") }),
27956
- /* @__PURE__ */ jsx131("p", { children: t("elementLink.desc") })
28044
+ /* @__PURE__ */ jsx132("h2", { children: t("elementLink.title") }),
28045
+ /* @__PURE__ */ jsx132("p", { children: t("elementLink.desc") })
27957
28046
  ] }),
27958
28047
  /* @__PURE__ */ jsxs68("div", { className: "ElementLinkDialog__input", children: [
27959
- /* @__PURE__ */ jsx131(
28048
+ /* @__PURE__ */ jsx132(
27960
28049
  TextField,
27961
28050
  {
27962
28051
  value: nextLink ?? "",
@@ -27975,7 +28064,7 @@ var ElementLinkDialog = ({
27975
28064
  selectOnRender: true
27976
28065
  }
27977
28066
  ),
27978
- originalLink && nextLink && /* @__PURE__ */ jsx131(
28067
+ originalLink && nextLink && /* @__PURE__ */ jsx132(
27979
28068
  ToolButton,
27980
28069
  {
27981
28070
  type: "button",
@@ -27992,7 +28081,7 @@ var ElementLinkDialog = ({
27992
28081
  )
27993
28082
  ] }),
27994
28083
  /* @__PURE__ */ jsxs68("div", { className: "ElementLinkDialog__actions", children: [
27995
- /* @__PURE__ */ jsx131(
28084
+ /* @__PURE__ */ jsx132(
27996
28085
  DialogActionButton_default,
27997
28086
  {
27998
28087
  label: t("buttons.cancel"),
@@ -28004,7 +28093,7 @@ var ElementLinkDialog = ({
28004
28093
  }
28005
28094
  }
28006
28095
  ),
28007
- /* @__PURE__ */ jsx131(
28096
+ /* @__PURE__ */ jsx132(
28008
28097
  DialogActionButton_default,
28009
28098
  {
28010
28099
  label: t("buttons.confirm"),
@@ -28019,7 +28108,7 @@ var ElementLinkDialog_default = ElementLinkDialog;
28019
28108
 
28020
28109
  // components/ErrorDialog.tsx
28021
28110
  import React35, { useState as useState33 } from "react";
28022
- import { Fragment as Fragment19, jsx as jsx132 } from "react/jsx-runtime";
28111
+ import { Fragment as Fragment19, jsx as jsx133 } from "react/jsx-runtime";
28023
28112
  var ErrorDialog = ({
28024
28113
  children,
28025
28114
  onClose
@@ -28033,30 +28122,30 @@ var ErrorDialog = ({
28033
28122
  }
28034
28123
  excalidrawContainer?.focus();
28035
28124
  }, [onClose, excalidrawContainer]);
28036
- return /* @__PURE__ */ jsx132(Fragment19, { children: modalIsShown && /* @__PURE__ */ jsx132(
28125
+ return /* @__PURE__ */ jsx133(Fragment19, { children: modalIsShown && /* @__PURE__ */ jsx133(
28037
28126
  Dialog,
28038
28127
  {
28039
28128
  size: "small",
28040
28129
  onCloseRequest: handleClose,
28041
28130
  title: t("errorDialog.title"),
28042
- children: /* @__PURE__ */ jsx132("div", { style: { whiteSpace: "pre-wrap" }, children })
28131
+ children: /* @__PURE__ */ jsx133("div", { style: { whiteSpace: "pre-wrap" }, children })
28043
28132
  }
28044
28133
  ) });
28045
28134
  };
28046
28135
 
28047
28136
  // components/HelpDialog.tsx
28048
- import React36, { useMemo as useMemo10 } from "react";
28049
- import clsx51 from "clsx";
28137
+ import React36, { useMemo as useMemo11 } from "react";
28138
+ import clsx52 from "clsx";
28050
28139
 
28051
28140
  // components/HelpDialog/BasicHelpDialog.tsx
28052
- import { Fragment as Fragment20, jsx as jsx133, jsxs as jsxs69 } from "react/jsx-runtime";
28141
+ import { Fragment as Fragment20, jsx as jsx134, jsxs as jsxs69 } from "react/jsx-runtime";
28053
28142
  var Section2 = (props) => /* @__PURE__ */ jsxs69(Fragment20, { children: [
28054
- /* @__PURE__ */ jsx133("h3", { children: props.title }),
28055
- /* @__PURE__ */ jsx133("div", { className: "HelpDialog__islands-container", children: props.children })
28143
+ /* @__PURE__ */ jsx134("h3", { children: props.title }),
28144
+ /* @__PURE__ */ jsx134("div", { className: "HelpDialog__islands-container", children: props.children })
28056
28145
  ] });
28057
28146
  var ShortcutIsland = (props) => /* @__PURE__ */ jsxs69("div", { className: `HelpDialog__island ${props.className}`, children: [
28058
- /* @__PURE__ */ jsx133("h4", { className: "HelpDialog__island-title", children: props.caption }),
28059
- /* @__PURE__ */ jsx133("div", { className: "HelpDialog__island-content", children: props.children })
28147
+ /* @__PURE__ */ jsx134("h4", { className: "HelpDialog__island-title", children: props.caption }),
28148
+ /* @__PURE__ */ jsx134("div", { className: "HelpDialog__island-content", children: props.children })
28060
28149
  ] });
28061
28150
  function* intersperse(as, delim) {
28062
28151
  let first = true;
@@ -28078,14 +28167,14 @@ var Shortcut = ({
28078
28167
  }) => {
28079
28168
  const splitShortcutKeys = shortcuts.map((shortcut) => {
28080
28169
  const keys = shortcut.endsWith("++") ? [...shortcut.slice(0, -2).split("+"), "+"] : shortcut.split("+");
28081
- return keys.map((key) => /* @__PURE__ */ jsx133(ShortcutKey, { children: upperCaseSingleChars(key) }, key));
28170
+ return keys.map((key) => /* @__PURE__ */ jsx134(ShortcutKey, { children: upperCaseSingleChars(key) }, key));
28082
28171
  });
28083
28172
  return /* @__PURE__ */ jsxs69("div", { className: "HelpDialog__shortcut", children: [
28084
- /* @__PURE__ */ jsx133("div", { children: label }),
28085
- /* @__PURE__ */ jsx133("div", { className: "HelpDialog__key-container", children: [...intersperse(splitShortcutKeys, isOr ? t("helpDialog.or") : null)] })
28173
+ /* @__PURE__ */ jsx134("div", { children: label }),
28174
+ /* @__PURE__ */ jsx134("div", { className: "HelpDialog__key-container", children: [...intersperse(splitShortcutKeys, isOr ? t("helpDialog.or") : null)] })
28086
28175
  ] });
28087
28176
  };
28088
- var ShortcutKey = (props) => /* @__PURE__ */ jsx133("kbd", { className: "HelpDialog__key", ...props });
28177
+ var ShortcutKey = (props) => /* @__PURE__ */ jsx134("kbd", { className: "HelpDialog__key", ...props });
28089
28178
  function BasicHelpDialog() {
28090
28179
  return /* @__PURE__ */ jsxs69(Section2, { title: t("helpDialog.shortcuts"), children: [
28091
28180
  /* @__PURE__ */ jsxs69(
@@ -28094,9 +28183,9 @@ function BasicHelpDialog() {
28094
28183
  className: "HelpDialog__island--tools",
28095
28184
  caption: t("helpDialog.tools"),
28096
28185
  children: [
28097
- /* @__PURE__ */ jsx133(Shortcut, { label: t("toolBar.hand"), shortcuts: [KEYS.H] }),
28186
+ /* @__PURE__ */ jsx134(Shortcut, { label: t("toolBar.hand"), shortcuts: [KEYS.H] }),
28098
28187
  SHAPES2.filter(({ myocSimplifiedMode }) => myocSimplifiedMode).map(
28099
- ({ value, key }) => /* @__PURE__ */ jsx133(
28188
+ ({ value, key }) => /* @__PURE__ */ jsx134(
28100
28189
  Shortcut,
28101
28190
  {
28102
28191
  label: t(`toolBar.${value}`),
@@ -28105,7 +28194,7 @@ function BasicHelpDialog() {
28105
28194
  value
28106
28195
  )
28107
28196
  ),
28108
- /* @__PURE__ */ jsx133(
28197
+ /* @__PURE__ */ jsx134(
28109
28198
  Shortcut,
28110
28199
  {
28111
28200
  label: t("helpDialog.cropStart"),
@@ -28113,7 +28202,7 @@ function BasicHelpDialog() {
28113
28202
  isOr: true
28114
28203
  }
28115
28204
  ),
28116
- /* @__PURE__ */ jsx133(
28205
+ /* @__PURE__ */ jsx134(
28117
28206
  Shortcut,
28118
28207
  {
28119
28208
  label: t("helpDialog.cropFinish"),
@@ -28130,22 +28219,22 @@ function BasicHelpDialog() {
28130
28219
  className: "HelpDialog__island--view",
28131
28220
  caption: t("helpDialog.view"),
28132
28221
  children: [
28133
- /* @__PURE__ */ jsx133(Shortcut, { label: t("helpDialog.smartZoom"), shortcuts: [KEYS.F] }),
28134
- /* @__PURE__ */ jsx133(
28222
+ /* @__PURE__ */ jsx134(Shortcut, { label: t("helpDialog.smartZoom"), shortcuts: [KEYS.F] }),
28223
+ /* @__PURE__ */ jsx134(
28135
28224
  Shortcut,
28136
28225
  {
28137
28226
  label: t("buttons.zenMode"),
28138
28227
  shortcuts: [getShortcutKey("Alt+Z")]
28139
28228
  }
28140
28229
  ),
28141
- /* @__PURE__ */ jsx133(
28230
+ /* @__PURE__ */ jsx134(
28142
28231
  Shortcut,
28143
28232
  {
28144
28233
  label: t("buttons.objectsSnapMode"),
28145
28234
  shortcuts: [getShortcutKey("Alt+S")]
28146
28235
  }
28147
28236
  ),
28148
- /* @__PURE__ */ jsx133(
28237
+ /* @__PURE__ */ jsx134(
28149
28238
  Shortcut,
28150
28239
  {
28151
28240
  label: t("commandPalette.title"),
@@ -28164,70 +28253,70 @@ function BasicHelpDialog() {
28164
28253
  className: "HelpDialog__island--editor",
28165
28254
  caption: t("helpDialog.editor"),
28166
28255
  children: [
28167
- /* @__PURE__ */ jsx133(
28256
+ /* @__PURE__ */ jsx134(
28168
28257
  Shortcut,
28169
28258
  {
28170
28259
  label: t("labels.pasteAsPlaintext"),
28171
28260
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+V")]
28172
28261
  }
28173
28262
  ),
28174
- /* @__PURE__ */ jsx133(
28263
+ /* @__PURE__ */ jsx134(
28175
28264
  Shortcut,
28176
28265
  {
28177
28266
  label: t("labels.multiSelect"),
28178
28267
  shortcuts: [getShortcutKey(`Shift+${t("helpDialog.click")}`)]
28179
28268
  }
28180
28269
  ),
28181
- /* @__PURE__ */ jsx133(
28270
+ /* @__PURE__ */ jsx134(
28182
28271
  Shortcut,
28183
28272
  {
28184
28273
  label: t("helpDialog.deepSelect"),
28185
28274
  shortcuts: [getShortcutKey(`CtrlOrCmd+${t("helpDialog.click")}`)]
28186
28275
  }
28187
28276
  ),
28188
- /* @__PURE__ */ jsx133(
28277
+ /* @__PURE__ */ jsx134(
28189
28278
  Shortcut,
28190
28279
  {
28191
28280
  label: t("helpDialog.deepBoxSelect"),
28192
28281
  shortcuts: [getShortcutKey(`CtrlOrCmd+${t("helpDialog.drag")}`)]
28193
28282
  }
28194
28283
  ),
28195
- (probablySupportsClipboardBlob || isFirefox) && /* @__PURE__ */ jsx133(
28284
+ (probablySupportsClipboardBlob || isFirefox) && /* @__PURE__ */ jsx134(
28196
28285
  Shortcut,
28197
28286
  {
28198
28287
  label: t("labels.copyAsPng"),
28199
28288
  shortcuts: [getShortcutKey("Shift+Alt+C")]
28200
28289
  }
28201
28290
  ),
28202
- /* @__PURE__ */ jsx133(
28291
+ /* @__PURE__ */ jsx134(
28203
28292
  Shortcut,
28204
28293
  {
28205
28294
  label: t("helpDialog.toggleElementLock"),
28206
28295
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+L")]
28207
28296
  }
28208
28297
  ),
28209
- /* @__PURE__ */ jsx133(
28298
+ /* @__PURE__ */ jsx134(
28210
28299
  Shortcut,
28211
28300
  {
28212
28301
  label: t("labels.group"),
28213
28302
  shortcuts: [getShortcutKey("CtrlOrCmd+G")]
28214
28303
  }
28215
28304
  ),
28216
- /* @__PURE__ */ jsx133(
28305
+ /* @__PURE__ */ jsx134(
28217
28306
  Shortcut,
28218
28307
  {
28219
28308
  label: t("labels.ungroup"),
28220
28309
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+G")]
28221
28310
  }
28222
28311
  ),
28223
- /* @__PURE__ */ jsx133(
28312
+ /* @__PURE__ */ jsx134(
28224
28313
  Shortcut,
28225
28314
  {
28226
28315
  label: t("labels.flipHorizontal"),
28227
28316
  shortcuts: [getShortcutKey("Shift+H")]
28228
28317
  }
28229
28318
  ),
28230
- /* @__PURE__ */ jsx133(
28319
+ /* @__PURE__ */ jsx134(
28231
28320
  Shortcut,
28232
28321
  {
28233
28322
  label: t("labels.flipVertical"),
@@ -28241,14 +28330,14 @@ function BasicHelpDialog() {
28241
28330
  }
28242
28331
 
28243
28332
  // components/HelpDialog.tsx
28244
- import { Fragment as Fragment21, jsx as jsx134, jsxs as jsxs70 } from "react/jsx-runtime";
28333
+ import { Fragment as Fragment21, jsx as jsx135, jsxs as jsxs70 } from "react/jsx-runtime";
28245
28334
  var Section3 = (props) => /* @__PURE__ */ jsxs70(Fragment21, { children: [
28246
- /* @__PURE__ */ jsx134("h3", { children: props.title }),
28247
- /* @__PURE__ */ jsx134("div", { className: "HelpDialog__islands-container", children: props.children })
28335
+ /* @__PURE__ */ jsx135("h3", { children: props.title }),
28336
+ /* @__PURE__ */ jsx135("div", { className: "HelpDialog__islands-container", children: props.children })
28248
28337
  ] });
28249
28338
  var ShortcutIsland2 = (props) => /* @__PURE__ */ jsxs70("div", { className: `HelpDialog__island ${props.className}`, children: [
28250
- /* @__PURE__ */ jsx134("h4", { className: "HelpDialog__island-title", children: props.caption }),
28251
- /* @__PURE__ */ jsx134("div", { className: "HelpDialog__island-content", children: props.children })
28339
+ /* @__PURE__ */ jsx135("h4", { className: "HelpDialog__island-title", children: props.caption }),
28340
+ /* @__PURE__ */ jsx135("div", { className: "HelpDialog__island-content", children: props.children })
28252
28341
  ] });
28253
28342
  function* intersperse2(as, delim) {
28254
28343
  let first = true;
@@ -28270,14 +28359,14 @@ var Shortcut2 = ({
28270
28359
  }) => {
28271
28360
  const splitShortcutKeys = shortcuts.map((shortcut) => {
28272
28361
  const keys = shortcut.endsWith("++") ? [...shortcut.slice(0, -2).split("+"), "+"] : shortcut.split("+");
28273
- return keys.map((key) => /* @__PURE__ */ jsx134(ShortcutKey2, { children: upperCaseSingleChars2(key) }, key));
28362
+ return keys.map((key) => /* @__PURE__ */ jsx135(ShortcutKey2, { children: upperCaseSingleChars2(key) }, key));
28274
28363
  });
28275
28364
  return /* @__PURE__ */ jsxs70("div", { className: "HelpDialog__shortcut", children: [
28276
- /* @__PURE__ */ jsx134("div", { children: label }),
28277
- /* @__PURE__ */ jsx134("div", { className: "HelpDialog__key-container", children: [...intersperse2(splitShortcutKeys, isOr ? t("helpDialog.or") : null)] })
28365
+ /* @__PURE__ */ jsx135("div", { children: label }),
28366
+ /* @__PURE__ */ jsx135("div", { className: "HelpDialog__key-container", children: [...intersperse2(splitShortcutKeys, isOr ? t("helpDialog.or") : null)] })
28278
28367
  ] });
28279
28368
  };
28280
- var ShortcutKey2 = (props) => /* @__PURE__ */ jsx134("kbd", { className: "HelpDialog__key", ...props });
28369
+ var ShortcutKey2 = (props) => /* @__PURE__ */ jsx135("kbd", { className: "HelpDialog__key", ...props });
28281
28370
  var HelpDialog = ({ onClose }) => {
28282
28371
  const [isShowAll, setIsShowAll] = React36.useState(false);
28283
28372
  const handleClose = React36.useCallback(() => {
@@ -28285,25 +28374,25 @@ var HelpDialog = ({ onClose }) => {
28285
28374
  onClose();
28286
28375
  }
28287
28376
  }, [onClose]);
28288
- const showAllButton = useMemo10(
28289
- () => isShowAll ? /* @__PURE__ */ jsx134(
28377
+ const showAllButton = useMemo11(
28378
+ () => isShowAll ? /* @__PURE__ */ jsx135(
28290
28379
  "button",
28291
28380
  {
28292
- className: clsx51("toggle-button", {}),
28381
+ className: clsx52("toggle-button", {}),
28293
28382
  onClick: () => setIsShowAll(false),
28294
28383
  children: t("helpDialog.myoc.showingAll")
28295
28384
  }
28296
- ) : /* @__PURE__ */ jsx134(
28385
+ ) : /* @__PURE__ */ jsx135(
28297
28386
  "button",
28298
28387
  {
28299
- className: clsx51("toggle-button", {}),
28388
+ className: clsx52("toggle-button", {}),
28300
28389
  onClick: () => setIsShowAll(true),
28301
28390
  children: t("helpDialog.myoc.showingBasic")
28302
28391
  }
28303
28392
  ),
28304
28393
  [isShowAll]
28305
28394
  );
28306
- return /* @__PURE__ */ jsx134(Fragment21, { children: /* @__PURE__ */ jsx134(
28395
+ return /* @__PURE__ */ jsx135(Fragment21, { children: /* @__PURE__ */ jsx135(
28307
28396
  Dialog,
28308
28397
  {
28309
28398
  onCloseRequest: handleClose,
@@ -28317,8 +28406,8 @@ var HelpDialog = ({ onClose }) => {
28317
28406
  className: "HelpDialog__island--tools",
28318
28407
  caption: t("helpDialog.tools"),
28319
28408
  children: [
28320
- /* @__PURE__ */ jsx134(Shortcut2, { label: t("toolBar.hand"), shortcuts: [KEYS.H] }),
28321
- SHAPES.map(({ value, key }) => /* @__PURE__ */ jsx134(
28409
+ /* @__PURE__ */ jsx135(Shortcut2, { label: t("toolBar.hand"), shortcuts: [KEYS.H] }),
28410
+ SHAPES.map(({ value, key }) => /* @__PURE__ */ jsx135(
28322
28411
  Shortcut2,
28323
28412
  {
28324
28413
  label: t(`toolBar.${value}`),
@@ -28326,30 +28415,30 @@ var HelpDialog = ({ onClose }) => {
28326
28415
  },
28327
28416
  value
28328
28417
  )),
28329
- /* @__PURE__ */ jsx134(Shortcut2, { label: t("toolBar.frame"), shortcuts: [KEYS.F] }),
28330
- /* @__PURE__ */ jsx134(Shortcut2, { label: t("toolBar.laser"), shortcuts: [KEYS.K] }),
28331
- /* @__PURE__ */ jsx134(
28418
+ /* @__PURE__ */ jsx135(Shortcut2, { label: t("toolBar.frame"), shortcuts: [KEYS.F] }),
28419
+ /* @__PURE__ */ jsx135(Shortcut2, { label: t("toolBar.laser"), shortcuts: [KEYS.K] }),
28420
+ /* @__PURE__ */ jsx135(
28332
28421
  Shortcut2,
28333
28422
  {
28334
28423
  label: t("labels.eyeDropper"),
28335
28424
  shortcuts: [KEYS.I, "Shift+S", "Shift+G"]
28336
28425
  }
28337
28426
  ),
28338
- /* @__PURE__ */ jsx134(
28427
+ /* @__PURE__ */ jsx135(
28339
28428
  Shortcut2,
28340
28429
  {
28341
28430
  label: t("helpDialog.editLineArrowPoints"),
28342
28431
  shortcuts: [getShortcutKey("CtrlOrCmd+Enter")]
28343
28432
  }
28344
28433
  ),
28345
- /* @__PURE__ */ jsx134(
28434
+ /* @__PURE__ */ jsx135(
28346
28435
  Shortcut2,
28347
28436
  {
28348
28437
  label: t("helpDialog.editText"),
28349
28438
  shortcuts: [getShortcutKey("Enter")]
28350
28439
  }
28351
28440
  ),
28352
- /* @__PURE__ */ jsx134(
28441
+ /* @__PURE__ */ jsx135(
28353
28442
  Shortcut2,
28354
28443
  {
28355
28444
  label: t("helpDialog.textNewLine"),
@@ -28359,7 +28448,7 @@ var HelpDialog = ({ onClose }) => {
28359
28448
  ]
28360
28449
  }
28361
28450
  ),
28362
- /* @__PURE__ */ jsx134(
28451
+ /* @__PURE__ */ jsx135(
28363
28452
  Shortcut2,
28364
28453
  {
28365
28454
  label: t("helpDialog.textFinish"),
@@ -28369,7 +28458,7 @@ var HelpDialog = ({ onClose }) => {
28369
28458
  ]
28370
28459
  }
28371
28460
  ),
28372
- /* @__PURE__ */ jsx134(
28461
+ /* @__PURE__ */ jsx135(
28373
28462
  Shortcut2,
28374
28463
  {
28375
28464
  label: t("helpDialog.curvedArrow"),
@@ -28382,7 +28471,7 @@ var HelpDialog = ({ onClose }) => {
28382
28471
  isOr: false
28383
28472
  }
28384
28473
  ),
28385
- /* @__PURE__ */ jsx134(
28474
+ /* @__PURE__ */ jsx135(
28386
28475
  Shortcut2,
28387
28476
  {
28388
28477
  label: t("helpDialog.curvedLine"),
@@ -28395,7 +28484,7 @@ var HelpDialog = ({ onClose }) => {
28395
28484
  isOr: false
28396
28485
  }
28397
28486
  ),
28398
- /* @__PURE__ */ jsx134(
28487
+ /* @__PURE__ */ jsx135(
28399
28488
  Shortcut2,
28400
28489
  {
28401
28490
  label: t("helpDialog.cropStart"),
@@ -28406,7 +28495,7 @@ var HelpDialog = ({ onClose }) => {
28406
28495
  isOr: true
28407
28496
  }
28408
28497
  ),
28409
- /* @__PURE__ */ jsx134(
28498
+ /* @__PURE__ */ jsx135(
28410
28499
  Shortcut2,
28411
28500
  {
28412
28501
  label: t("helpDialog.cropFinish"),
@@ -28414,15 +28503,15 @@ var HelpDialog = ({ onClose }) => {
28414
28503
  isOr: true
28415
28504
  }
28416
28505
  ),
28417
- /* @__PURE__ */ jsx134(Shortcut2, { label: t("toolBar.lock"), shortcuts: [KEYS.Q] }),
28418
- /* @__PURE__ */ jsx134(
28506
+ /* @__PURE__ */ jsx135(Shortcut2, { label: t("toolBar.lock"), shortcuts: [KEYS.Q] }),
28507
+ /* @__PURE__ */ jsx135(
28419
28508
  Shortcut2,
28420
28509
  {
28421
28510
  label: t("helpDialog.preventBinding"),
28422
28511
  shortcuts: [getShortcutKey("CtrlOrCmd")]
28423
28512
  }
28424
28513
  ),
28425
- /* @__PURE__ */ jsx134(
28514
+ /* @__PURE__ */ jsx135(
28426
28515
  Shortcut2,
28427
28516
  {
28428
28517
  label: t("toolBar.link"),
@@ -28438,98 +28527,98 @@ var HelpDialog = ({ onClose }) => {
28438
28527
  className: "HelpDialog__island--view",
28439
28528
  caption: t("helpDialog.view"),
28440
28529
  children: [
28441
- /* @__PURE__ */ jsx134(
28530
+ /* @__PURE__ */ jsx135(
28442
28531
  Shortcut2,
28443
28532
  {
28444
28533
  label: t("helpDialog.smartZoom"),
28445
28534
  shortcuts: [KEYS.F]
28446
28535
  }
28447
28536
  ),
28448
- /* @__PURE__ */ jsx134(
28537
+ /* @__PURE__ */ jsx135(
28449
28538
  Shortcut2,
28450
28539
  {
28451
28540
  label: t("buttons.zoomIn"),
28452
28541
  shortcuts: [getShortcutKey("CtrlOrCmd++")]
28453
28542
  }
28454
28543
  ),
28455
- /* @__PURE__ */ jsx134(
28544
+ /* @__PURE__ */ jsx135(
28456
28545
  Shortcut2,
28457
28546
  {
28458
28547
  label: t("buttons.zoomOut"),
28459
28548
  shortcuts: [getShortcutKey("CtrlOrCmd+-")]
28460
28549
  }
28461
28550
  ),
28462
- /* @__PURE__ */ jsx134(
28551
+ /* @__PURE__ */ jsx135(
28463
28552
  Shortcut2,
28464
28553
  {
28465
28554
  label: t("buttons.resetZoom"),
28466
28555
  shortcuts: [getShortcutKey("CtrlOrCmd+0")]
28467
28556
  }
28468
28557
  ),
28469
- /* @__PURE__ */ jsx134(
28558
+ /* @__PURE__ */ jsx135(
28470
28559
  Shortcut2,
28471
28560
  {
28472
28561
  label: t("helpDialog.zoomToSelection"),
28473
28562
  shortcuts: ["Shift+2"]
28474
28563
  }
28475
28564
  ),
28476
- /* @__PURE__ */ jsx134(
28565
+ /* @__PURE__ */ jsx135(
28477
28566
  Shortcut2,
28478
28567
  {
28479
28568
  label: t("helpDialog.movePageUpDown"),
28480
28569
  shortcuts: ["PgUp/PgDn"]
28481
28570
  }
28482
28571
  ),
28483
- /* @__PURE__ */ jsx134(
28572
+ /* @__PURE__ */ jsx135(
28484
28573
  Shortcut2,
28485
28574
  {
28486
28575
  label: t("helpDialog.movePageLeftRight"),
28487
28576
  shortcuts: ["Shift+PgUp/PgDn"]
28488
28577
  }
28489
28578
  ),
28490
- /* @__PURE__ */ jsx134(
28579
+ /* @__PURE__ */ jsx135(
28491
28580
  Shortcut2,
28492
28581
  {
28493
28582
  label: t("buttons.zenMode"),
28494
28583
  shortcuts: [getShortcutKey("Alt+Z")]
28495
28584
  }
28496
28585
  ),
28497
- /* @__PURE__ */ jsx134(
28586
+ /* @__PURE__ */ jsx135(
28498
28587
  Shortcut2,
28499
28588
  {
28500
28589
  label: t("buttons.objectsSnapMode"),
28501
28590
  shortcuts: [getShortcutKey("Alt+S")]
28502
28591
  }
28503
28592
  ),
28504
- /* @__PURE__ */ jsx134(
28593
+ /* @__PURE__ */ jsx135(
28505
28594
  Shortcut2,
28506
28595
  {
28507
28596
  label: t("labels.toggleGrid"),
28508
28597
  shortcuts: [getShortcutKey("CtrlOrCmd+'")]
28509
28598
  }
28510
28599
  ),
28511
- /* @__PURE__ */ jsx134(
28600
+ /* @__PURE__ */ jsx135(
28512
28601
  Shortcut2,
28513
28602
  {
28514
28603
  label: t("labels.viewMode"),
28515
28604
  shortcuts: [getShortcutKey("Alt+R")]
28516
28605
  }
28517
28606
  ),
28518
- /* @__PURE__ */ jsx134(
28607
+ /* @__PURE__ */ jsx135(
28519
28608
  Shortcut2,
28520
28609
  {
28521
28610
  label: t("stats.fullTitle"),
28522
28611
  shortcuts: [getShortcutKey("Alt+/")]
28523
28612
  }
28524
28613
  ),
28525
- /* @__PURE__ */ jsx134(
28614
+ /* @__PURE__ */ jsx135(
28526
28615
  Shortcut2,
28527
28616
  {
28528
28617
  label: t("search.title"),
28529
28618
  shortcuts: [getShortcutFromShortcutName("searchMenu")]
28530
28619
  }
28531
28620
  ),
28532
- /* @__PURE__ */ jsx134(
28621
+ /* @__PURE__ */ jsx135(
28533
28622
  Shortcut2,
28534
28623
  {
28535
28624
  label: t("commandPalette.title"),
@@ -28548,7 +28637,7 @@ var HelpDialog = ({ onClose }) => {
28548
28637
  className: "HelpDialog__island--editor",
28549
28638
  caption: t("helpDialog.editor"),
28550
28639
  children: [
28551
- /* @__PURE__ */ jsx134(
28640
+ /* @__PURE__ */ jsx135(
28552
28641
  Shortcut2,
28553
28642
  {
28554
28643
  label: t("labels.moveCanvas"),
@@ -28559,56 +28648,56 @@ var HelpDialog = ({ onClose }) => {
28559
28648
  isOr: true
28560
28649
  }
28561
28650
  ),
28562
- /* @__PURE__ */ jsx134(
28651
+ /* @__PURE__ */ jsx135(
28563
28652
  Shortcut2,
28564
28653
  {
28565
28654
  label: t("labels.delete"),
28566
28655
  shortcuts: [getShortcutKey("Delete")]
28567
28656
  }
28568
28657
  ),
28569
- /* @__PURE__ */ jsx134(
28658
+ /* @__PURE__ */ jsx135(
28570
28659
  Shortcut2,
28571
28660
  {
28572
28661
  label: t("labels.cut"),
28573
28662
  shortcuts: [getShortcutKey("CtrlOrCmd+X")]
28574
28663
  }
28575
28664
  ),
28576
- /* @__PURE__ */ jsx134(
28665
+ /* @__PURE__ */ jsx135(
28577
28666
  Shortcut2,
28578
28667
  {
28579
28668
  label: t("labels.copy"),
28580
28669
  shortcuts: [getShortcutKey("CtrlOrCmd+C")]
28581
28670
  }
28582
28671
  ),
28583
- /* @__PURE__ */ jsx134(
28672
+ /* @__PURE__ */ jsx135(
28584
28673
  Shortcut2,
28585
28674
  {
28586
28675
  label: t("labels.paste"),
28587
28676
  shortcuts: [getShortcutKey("CtrlOrCmd+V")]
28588
28677
  }
28589
28678
  ),
28590
- /* @__PURE__ */ jsx134(
28679
+ /* @__PURE__ */ jsx135(
28591
28680
  Shortcut2,
28592
28681
  {
28593
28682
  label: t("labels.pasteAsPlaintext"),
28594
28683
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+V")]
28595
28684
  }
28596
28685
  ),
28597
- /* @__PURE__ */ jsx134(
28686
+ /* @__PURE__ */ jsx135(
28598
28687
  Shortcut2,
28599
28688
  {
28600
28689
  label: t("labels.selectAll"),
28601
28690
  shortcuts: [getShortcutKey("CtrlOrCmd+A")]
28602
28691
  }
28603
28692
  ),
28604
- /* @__PURE__ */ jsx134(
28693
+ /* @__PURE__ */ jsx135(
28605
28694
  Shortcut2,
28606
28695
  {
28607
28696
  label: t("labels.multiSelect"),
28608
28697
  shortcuts: [getShortcutKey(`Shift+${t("helpDialog.click")}`)]
28609
28698
  }
28610
28699
  ),
28611
- /* @__PURE__ */ jsx134(
28700
+ /* @__PURE__ */ jsx135(
28612
28701
  Shortcut2,
28613
28702
  {
28614
28703
  label: t("helpDialog.deepSelect"),
@@ -28617,7 +28706,7 @@ var HelpDialog = ({ onClose }) => {
28617
28706
  ]
28618
28707
  }
28619
28708
  ),
28620
- /* @__PURE__ */ jsx134(
28709
+ /* @__PURE__ */ jsx135(
28621
28710
  Shortcut2,
28622
28711
  {
28623
28712
  label: t("helpDialog.deepBoxSelect"),
@@ -28626,28 +28715,28 @@ var HelpDialog = ({ onClose }) => {
28626
28715
  ]
28627
28716
  }
28628
28717
  ),
28629
- (probablySupportsClipboardBlob || isFirefox) && /* @__PURE__ */ jsx134(
28718
+ (probablySupportsClipboardBlob || isFirefox) && /* @__PURE__ */ jsx135(
28630
28719
  Shortcut2,
28631
28720
  {
28632
28721
  label: t("labels.copyAsPng"),
28633
28722
  shortcuts: [getShortcutKey("Shift+Alt+C")]
28634
28723
  }
28635
28724
  ),
28636
- /* @__PURE__ */ jsx134(
28725
+ /* @__PURE__ */ jsx135(
28637
28726
  Shortcut2,
28638
28727
  {
28639
28728
  label: t("labels.copyStyles"),
28640
28729
  shortcuts: [getShortcutKey("CtrlOrCmd+Alt+C")]
28641
28730
  }
28642
28731
  ),
28643
- /* @__PURE__ */ jsx134(
28732
+ /* @__PURE__ */ jsx135(
28644
28733
  Shortcut2,
28645
28734
  {
28646
28735
  label: t("labels.pasteStyles"),
28647
28736
  shortcuts: [getShortcutKey("CtrlOrCmd+Alt+V")]
28648
28737
  }
28649
28738
  ),
28650
- /* @__PURE__ */ jsx134(
28739
+ /* @__PURE__ */ jsx135(
28651
28740
  Shortcut2,
28652
28741
  {
28653
28742
  label: t("labels.sendToBack"),
@@ -28656,7 +28745,7 @@ var HelpDialog = ({ onClose }) => {
28656
28745
  ]
28657
28746
  }
28658
28747
  ),
28659
- /* @__PURE__ */ jsx134(
28748
+ /* @__PURE__ */ jsx135(
28660
28749
  Shortcut2,
28661
28750
  {
28662
28751
  label: t("labels.bringToFront"),
@@ -28665,56 +28754,56 @@ var HelpDialog = ({ onClose }) => {
28665
28754
  ]
28666
28755
  }
28667
28756
  ),
28668
- /* @__PURE__ */ jsx134(
28757
+ /* @__PURE__ */ jsx135(
28669
28758
  Shortcut2,
28670
28759
  {
28671
28760
  label: t("labels.sendBackward"),
28672
28761
  shortcuts: [getShortcutKey("CtrlOrCmd+[")]
28673
28762
  }
28674
28763
  ),
28675
- /* @__PURE__ */ jsx134(
28764
+ /* @__PURE__ */ jsx135(
28676
28765
  Shortcut2,
28677
28766
  {
28678
28767
  label: t("labels.bringForward"),
28679
28768
  shortcuts: [getShortcutKey("CtrlOrCmd+]")]
28680
28769
  }
28681
28770
  ),
28682
- /* @__PURE__ */ jsx134(
28771
+ /* @__PURE__ */ jsx135(
28683
28772
  Shortcut2,
28684
28773
  {
28685
28774
  label: t("labels.alignTop"),
28686
28775
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Up")]
28687
28776
  }
28688
28777
  ),
28689
- /* @__PURE__ */ jsx134(
28778
+ /* @__PURE__ */ jsx135(
28690
28779
  Shortcut2,
28691
28780
  {
28692
28781
  label: t("labels.alignBottom"),
28693
28782
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Down")]
28694
28783
  }
28695
28784
  ),
28696
- /* @__PURE__ */ jsx134(
28785
+ /* @__PURE__ */ jsx135(
28697
28786
  Shortcut2,
28698
28787
  {
28699
28788
  label: t("labels.alignLeft"),
28700
28789
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Left")]
28701
28790
  }
28702
28791
  ),
28703
- /* @__PURE__ */ jsx134(
28792
+ /* @__PURE__ */ jsx135(
28704
28793
  Shortcut2,
28705
28794
  {
28706
28795
  label: t("labels.alignRight"),
28707
28796
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+Right")]
28708
28797
  }
28709
28798
  ),
28710
- /* @__PURE__ */ jsx134(
28799
+ /* @__PURE__ */ jsx135(
28711
28800
  Shortcut2,
28712
28801
  {
28713
28802
  label: t("labels.arrangeElements"),
28714
28803
  shortcuts: [getShortcutKey("Shift+R")]
28715
28804
  }
28716
28805
  ),
28717
- /* @__PURE__ */ jsx134(
28806
+ /* @__PURE__ */ jsx135(
28718
28807
  Shortcut2,
28719
28808
  {
28720
28809
  label: t("labels.duplicateSelection"),
@@ -28724,21 +28813,21 @@ var HelpDialog = ({ onClose }) => {
28724
28813
  ]
28725
28814
  }
28726
28815
  ),
28727
- /* @__PURE__ */ jsx134(
28816
+ /* @__PURE__ */ jsx135(
28728
28817
  Shortcut2,
28729
28818
  {
28730
28819
  label: t("helpDialog.toggleElementLock"),
28731
28820
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+L")]
28732
28821
  }
28733
28822
  ),
28734
- /* @__PURE__ */ jsx134(
28823
+ /* @__PURE__ */ jsx135(
28735
28824
  Shortcut2,
28736
28825
  {
28737
28826
  label: t("buttons.undo"),
28738
28827
  shortcuts: [getShortcutKey("CtrlOrCmd+Z")]
28739
28828
  }
28740
28829
  ),
28741
- /* @__PURE__ */ jsx134(
28830
+ /* @__PURE__ */ jsx135(
28742
28831
  Shortcut2,
28743
28832
  {
28744
28833
  label: t("buttons.redo"),
@@ -28748,63 +28837,63 @@ var HelpDialog = ({ onClose }) => {
28748
28837
  ] : [getShortcutKey("CtrlOrCmd+Shift+Z")]
28749
28838
  }
28750
28839
  ),
28751
- /* @__PURE__ */ jsx134(
28840
+ /* @__PURE__ */ jsx135(
28752
28841
  Shortcut2,
28753
28842
  {
28754
28843
  label: t("labels.group"),
28755
28844
  shortcuts: [getShortcutKey("CtrlOrCmd+G")]
28756
28845
  }
28757
28846
  ),
28758
- /* @__PURE__ */ jsx134(
28847
+ /* @__PURE__ */ jsx135(
28759
28848
  Shortcut2,
28760
28849
  {
28761
28850
  label: t("labels.ungroup"),
28762
28851
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+G")]
28763
28852
  }
28764
28853
  ),
28765
- /* @__PURE__ */ jsx134(
28854
+ /* @__PURE__ */ jsx135(
28766
28855
  Shortcut2,
28767
28856
  {
28768
28857
  label: t("labels.flipHorizontal"),
28769
28858
  shortcuts: [getShortcutKey("Shift+H")]
28770
28859
  }
28771
28860
  ),
28772
- /* @__PURE__ */ jsx134(
28861
+ /* @__PURE__ */ jsx135(
28773
28862
  Shortcut2,
28774
28863
  {
28775
28864
  label: t("labels.flipVertical"),
28776
28865
  shortcuts: [getShortcutKey("Shift+V")]
28777
28866
  }
28778
28867
  ),
28779
- /* @__PURE__ */ jsx134(
28868
+ /* @__PURE__ */ jsx135(
28780
28869
  Shortcut2,
28781
28870
  {
28782
28871
  label: t("labels.showStroke"),
28783
28872
  shortcuts: [getShortcutKey("S")]
28784
28873
  }
28785
28874
  ),
28786
- /* @__PURE__ */ jsx134(
28875
+ /* @__PURE__ */ jsx135(
28787
28876
  Shortcut2,
28788
28877
  {
28789
28878
  label: t("labels.showBackground"),
28790
28879
  shortcuts: [getShortcutKey("G")]
28791
28880
  }
28792
28881
  ),
28793
- /* @__PURE__ */ jsx134(
28882
+ /* @__PURE__ */ jsx135(
28794
28883
  Shortcut2,
28795
28884
  {
28796
28885
  label: t("labels.showFonts"),
28797
28886
  shortcuts: [getShortcutKey("Shift+F")]
28798
28887
  }
28799
28888
  ),
28800
- /* @__PURE__ */ jsx134(
28889
+ /* @__PURE__ */ jsx135(
28801
28890
  Shortcut2,
28802
28891
  {
28803
28892
  label: t("labels.decreaseFontSize"),
28804
28893
  shortcuts: [getShortcutKey("CtrlOrCmd+Shift+<")]
28805
28894
  }
28806
28895
  ),
28807
- /* @__PURE__ */ jsx134(
28896
+ /* @__PURE__ */ jsx135(
28808
28897
  Shortcut2,
28809
28898
  {
28810
28899
  label: t("labels.increaseFontSize"),
@@ -28814,7 +28903,7 @@ var HelpDialog = ({ onClose }) => {
28814
28903
  ]
28815
28904
  }
28816
28905
  )
28817
- ] }) : /* @__PURE__ */ jsx134(BasicHelpDialog, {})
28906
+ ] }) : /* @__PURE__ */ jsx135(BasicHelpDialog, {})
28818
28907
  }
28819
28908
  ) });
28820
28909
  };
@@ -28846,8 +28935,8 @@ var useCopyStatus = () => {
28846
28935
  };
28847
28936
 
28848
28937
  // components/Switch.tsx
28849
- import clsx52 from "clsx";
28850
- import { jsx as jsx135 } from "react/jsx-runtime";
28938
+ import clsx53 from "clsx";
28939
+ import { jsx as jsx136 } from "react/jsx-runtime";
28851
28940
  var Switch = ({
28852
28941
  title,
28853
28942
  name,
@@ -28855,7 +28944,7 @@ var Switch = ({
28855
28944
  onChange,
28856
28945
  disabled = false
28857
28946
  }) => {
28858
- return /* @__PURE__ */ jsx135("div", { className: clsx52("Switch", { toggled: checked, disabled }), children: /* @__PURE__ */ jsx135(
28947
+ return /* @__PURE__ */ jsx136("div", { className: clsx53("Switch", { toggled: checked, disabled }), children: /* @__PURE__ */ jsx136(
28859
28948
  "input",
28860
28949
  {
28861
28950
  name,
@@ -28875,12 +28964,12 @@ var Switch = ({
28875
28964
  };
28876
28965
 
28877
28966
  // components/ImageExportDialog.tsx
28878
- import { jsx as jsx136, jsxs as jsxs71 } from "react/jsx-runtime";
28967
+ import { jsx as jsx137, jsxs as jsxs71 } from "react/jsx-runtime";
28879
28968
  var supportsContextFilters = "filter" in document.createElement("canvas").getContext("2d");
28880
28969
  var ErrorCanvasPreview = () => {
28881
28970
  return /* @__PURE__ */ jsxs71("div", { children: [
28882
- /* @__PURE__ */ jsx136("h3", { children: t("canvasError.cannotShowPreview") }),
28883
- /* @__PURE__ */ jsx136("p", { children: /* @__PURE__ */ jsx136("span", { children: t("canvasError.canvasTooBig") }) }),
28971
+ /* @__PURE__ */ jsx137("h3", { children: t("canvasError.cannotShowPreview") }),
28972
+ /* @__PURE__ */ jsx137("p", { children: /* @__PURE__ */ jsx137("span", { children: t("canvasError.canvasTooBig") }) }),
28884
28973
  /* @__PURE__ */ jsxs71("em", { children: [
28885
28974
  "(",
28886
28975
  t("canvasError.canvasTooBigTip"),
@@ -28980,10 +29069,10 @@ var ImageExportModal = ({
28980
29069
  embedScene
28981
29070
  ]);
28982
29071
  return /* @__PURE__ */ jsxs71("div", { className: "ImageExportModal", children: [
28983
- /* @__PURE__ */ jsx136("h3", { children: t("imageExportDialog.header") }),
29072
+ /* @__PURE__ */ jsx137("h3", { children: t("imageExportDialog.header") }),
28984
29073
  /* @__PURE__ */ jsxs71("div", { className: "ImageExportModal__preview", children: [
28985
- /* @__PURE__ */ jsx136("div", { className: "ImageExportModal__preview__canvas", ref: previewRef, children: renderError && /* @__PURE__ */ jsx136(ErrorCanvasPreview, {}) }),
28986
- /* @__PURE__ */ jsx136("div", { className: "ImageExportModal__preview__filename", children: !nativeFileSystemSupported && /* @__PURE__ */ jsx136(
29074
+ /* @__PURE__ */ jsx137("div", { className: "ImageExportModal__preview__canvas", ref: previewRef, children: renderError && /* @__PURE__ */ jsx137(ErrorCanvasPreview, {}) }),
29075
+ /* @__PURE__ */ jsx137("div", { className: "ImageExportModal__preview__filename", children: !nativeFileSystemSupported && /* @__PURE__ */ jsx137(
28987
29076
  "input",
28988
29077
  {
28989
29078
  type: "text",
@@ -29002,13 +29091,13 @@ var ImageExportModal = ({
29002
29091
  ) })
29003
29092
  ] }),
29004
29093
  /* @__PURE__ */ jsxs71("div", { className: "ImageExportModal__settings", children: [
29005
- /* @__PURE__ */ jsx136("h3", { children: t("imageExportDialog.header") }),
29006
- hasSelection && /* @__PURE__ */ jsx136(
29094
+ /* @__PURE__ */ jsx137("h3", { children: t("imageExportDialog.header") }),
29095
+ hasSelection && /* @__PURE__ */ jsx137(
29007
29096
  ExportSetting,
29008
29097
  {
29009
29098
  label: t("imageExportDialog.label.onlySelected"),
29010
29099
  name: "exportOnlySelected",
29011
- children: /* @__PURE__ */ jsx136(
29100
+ children: /* @__PURE__ */ jsx137(
29012
29101
  Switch,
29013
29102
  {
29014
29103
  name: "exportOnlySelected",
@@ -29020,12 +29109,12 @@ var ImageExportModal = ({
29020
29109
  )
29021
29110
  }
29022
29111
  ),
29023
- /* @__PURE__ */ jsx136(
29112
+ /* @__PURE__ */ jsx137(
29024
29113
  ExportSetting,
29025
29114
  {
29026
29115
  label: t("imageExportDialog.label.withBackground"),
29027
29116
  name: "exportBackgroundSwitch",
29028
- children: /* @__PURE__ */ jsx136(
29117
+ children: /* @__PURE__ */ jsx137(
29029
29118
  Switch,
29030
29119
  {
29031
29120
  name: "exportBackgroundSwitch",
@@ -29042,12 +29131,12 @@ var ImageExportModal = ({
29042
29131
  )
29043
29132
  }
29044
29133
  ),
29045
- supportsContextFilters && /* @__PURE__ */ jsx136(
29134
+ supportsContextFilters && /* @__PURE__ */ jsx137(
29046
29135
  ExportSetting,
29047
29136
  {
29048
29137
  label: t("imageExportDialog.label.darkMode"),
29049
29138
  name: "exportDarkModeSwitch",
29050
- children: /* @__PURE__ */ jsx136(
29139
+ children: /* @__PURE__ */ jsx137(
29051
29140
  Switch,
29052
29141
  {
29053
29142
  name: "exportDarkModeSwitch",
@@ -29064,13 +29153,13 @@ var ImageExportModal = ({
29064
29153
  )
29065
29154
  }
29066
29155
  ),
29067
- /* @__PURE__ */ jsx136(
29156
+ /* @__PURE__ */ jsx137(
29068
29157
  ExportSetting,
29069
29158
  {
29070
29159
  label: t("imageExportDialog.label.embedScene"),
29071
29160
  tooltip: t("imageExportDialog.tooltip.embedScene"),
29072
29161
  name: "exportEmbedSwitch",
29073
- children: /* @__PURE__ */ jsx136(
29162
+ children: /* @__PURE__ */ jsx137(
29074
29163
  Switch,
29075
29164
  {
29076
29165
  name: "exportEmbedSwitch",
@@ -29087,12 +29176,12 @@ var ImageExportModal = ({
29087
29176
  )
29088
29177
  }
29089
29178
  ),
29090
- /* @__PURE__ */ jsx136(
29179
+ /* @__PURE__ */ jsx137(
29091
29180
  ExportSetting,
29092
29181
  {
29093
29182
  label: t("imageExportDialog.label.scale"),
29094
29183
  name: "exportScale",
29095
- children: /* @__PURE__ */ jsx136(
29184
+ children: /* @__PURE__ */ jsx137(
29096
29185
  RadioGroup,
29097
29186
  {
29098
29187
  name: "exportScale",
@@ -29110,7 +29199,7 @@ var ImageExportModal = ({
29110
29199
  }
29111
29200
  ),
29112
29201
  /* @__PURE__ */ jsxs71("div", { className: "ImageExportModal__settings__buttons", children: [
29113
- /* @__PURE__ */ jsx136(
29202
+ /* @__PURE__ */ jsx137(
29114
29203
  FilledButton,
29115
29204
  {
29116
29205
  className: "ImageExportModal__settings__buttons__button",
@@ -29122,7 +29211,7 @@ var ImageExportModal = ({
29122
29211
  children: t("imageExportDialog.button.exportToPng")
29123
29212
  }
29124
29213
  ),
29125
- /* @__PURE__ */ jsx136(
29214
+ /* @__PURE__ */ jsx137(
29126
29215
  FilledButton,
29127
29216
  {
29128
29217
  className: "ImageExportModal__settings__buttons__button",
@@ -29134,7 +29223,7 @@ var ImageExportModal = ({
29134
29223
  children: t("imageExportDialog.button.exportToSvg")
29135
29224
  }
29136
29225
  ),
29137
- (probablySupportsClipboardBlob || isFirefox) && /* @__PURE__ */ jsx136(
29226
+ (probablySupportsClipboardBlob || isFirefox) && /* @__PURE__ */ jsx137(
29138
29227
  FilledButton,
29139
29228
  {
29140
29229
  className: "ImageExportModal__settings__buttons__button",
@@ -29172,11 +29261,11 @@ var ExportSetting = ({
29172
29261
  className: "ImageExportModal__settings__setting__label",
29173
29262
  children: [
29174
29263
  label,
29175
- tooltip && /* @__PURE__ */ jsx136(Tooltip, { label: tooltip, long: true, children: helpIcon })
29264
+ tooltip && /* @__PURE__ */ jsx137(Tooltip, { label: tooltip, long: true, children: helpIcon })
29176
29265
  ]
29177
29266
  }
29178
29267
  ),
29179
- /* @__PURE__ */ jsx136("div", { className: "ImageExportModal__settings__setting__content", children })
29268
+ /* @__PURE__ */ jsx137("div", { className: "ImageExportModal__settings__setting__content", children })
29180
29269
  ] });
29181
29270
  };
29182
29271
  var ImageExportDialog = ({
@@ -29194,7 +29283,7 @@ var ImageExportDialog = ({
29194
29283
  elementsSnapshot: cloneJSON(elements)
29195
29284
  };
29196
29285
  });
29197
- return /* @__PURE__ */ jsx136(Dialog, { onCloseRequest, size: "wide", title: false, children: /* @__PURE__ */ jsx136(
29286
+ return /* @__PURE__ */ jsx137(Dialog, { onCloseRequest, size: "wide", title: false, children: /* @__PURE__ */ jsx137(
29198
29287
  ImageExportModal,
29199
29288
  {
29200
29289
  elementsSnapshot,
@@ -29212,9 +29301,9 @@ import React38 from "react";
29212
29301
 
29213
29302
  // components/Card.tsx
29214
29303
  import OpenColor3 from "open-color";
29215
- import { jsx as jsx137 } from "react/jsx-runtime";
29304
+ import { jsx as jsx138 } from "react/jsx-runtime";
29216
29305
  var Card = ({ children, color }) => {
29217
- return /* @__PURE__ */ jsx137(
29306
+ return /* @__PURE__ */ jsx138(
29218
29307
  "div",
29219
29308
  {
29220
29309
  className: "Card",
@@ -29229,7 +29318,7 @@ var Card = ({ children, color }) => {
29229
29318
  };
29230
29319
 
29231
29320
  // components/JSONExportDialog.tsx
29232
- import { Fragment as Fragment22, jsx as jsx138, jsxs as jsxs72 } from "react/jsx-runtime";
29321
+ import { Fragment as Fragment22, jsx as jsx139, jsxs as jsxs72 } from "react/jsx-runtime";
29233
29322
  var JSONExportModal = ({
29234
29323
  elements,
29235
29324
  appState,
@@ -29241,15 +29330,15 @@ var JSONExportModal = ({
29241
29330
  onCloseRequest
29242
29331
  }) => {
29243
29332
  const { onExportToBackend } = exportOpts;
29244
- return /* @__PURE__ */ jsx138("div", { className: "ExportDialog ExportDialog--json", children: /* @__PURE__ */ jsxs72("div", { className: "ExportDialog-cards", children: [
29333
+ return /* @__PURE__ */ jsx139("div", { className: "ExportDialog ExportDialog--json", children: /* @__PURE__ */ jsxs72("div", { className: "ExportDialog-cards", children: [
29245
29334
  exportOpts.saveFileToDisk && /* @__PURE__ */ jsxs72(Card, { color: "lime", children: [
29246
- /* @__PURE__ */ jsx138("div", { className: "Card-icon", children: exportToFileIcon }),
29247
- /* @__PURE__ */ jsx138("h2", { children: t("exportDialog.disk_title") }),
29335
+ /* @__PURE__ */ jsx139("div", { className: "Card-icon", children: exportToFileIcon }),
29336
+ /* @__PURE__ */ jsx139("h2", { children: t("exportDialog.disk_title") }),
29248
29337
  /* @__PURE__ */ jsxs72("div", { className: "Card-details", children: [
29249
29338
  t("exportDialog.disk_details"),
29250
29339
  !nativeFileSystemSupported && actionManager.renderAction("changeProjectName")
29251
29340
  ] }),
29252
- /* @__PURE__ */ jsx138(
29341
+ /* @__PURE__ */ jsx139(
29253
29342
  ToolButton,
29254
29343
  {
29255
29344
  className: "Card-button",
@@ -29264,10 +29353,10 @@ var JSONExportModal = ({
29264
29353
  )
29265
29354
  ] }),
29266
29355
  onExportToBackend && /* @__PURE__ */ jsxs72(Card, { color: "pink", children: [
29267
- /* @__PURE__ */ jsx138("div", { className: "Card-icon", children: LinkIcon }),
29268
- /* @__PURE__ */ jsx138("h2", { children: t("exportDialog.link_title") }),
29269
- /* @__PURE__ */ jsx138("div", { className: "Card-details", children: t("exportDialog.link_details") }),
29270
- /* @__PURE__ */ jsx138(
29356
+ /* @__PURE__ */ jsx139("div", { className: "Card-icon", children: LinkIcon }),
29357
+ /* @__PURE__ */ jsx139("h2", { children: t("exportDialog.link_title") }),
29358
+ /* @__PURE__ */ jsx139("div", { className: "Card-details", children: t("exportDialog.link_details") }),
29359
+ /* @__PURE__ */ jsx139(
29271
29360
  ToolButton,
29272
29361
  {
29273
29362
  className: "Card-button",
@@ -29302,7 +29391,7 @@ var JSONExportDialog = ({
29302
29391
  const handleClose = React38.useCallback(() => {
29303
29392
  setAppState({ openDialog: null });
29304
29393
  }, [setAppState]);
29305
- return /* @__PURE__ */ jsx138(Fragment22, { children: appState.openDialog?.name === "jsonExport" && /* @__PURE__ */ jsx138(Dialog, { onCloseRequest: handleClose, title: t("buttons.export"), children: /* @__PURE__ */ jsx138(
29394
+ return /* @__PURE__ */ jsx139(Fragment22, { children: appState.openDialog?.name === "jsonExport" && /* @__PURE__ */ jsx139(Dialog, { onCloseRequest: handleClose, title: t("buttons.export"), children: /* @__PURE__ */ jsx139(
29306
29395
  JSONExportModal,
29307
29396
  {
29308
29397
  elements,
@@ -29318,14 +29407,14 @@ var JSONExportDialog = ({
29318
29407
  };
29319
29408
 
29320
29409
  // components/LaserPointerButton.tsx
29321
- import clsx53 from "clsx";
29322
- import { jsx as jsx139, jsxs as jsxs73 } from "react/jsx-runtime";
29410
+ import clsx54 from "clsx";
29411
+ import { jsx as jsx140, jsxs as jsxs73 } from "react/jsx-runtime";
29323
29412
  var DEFAULT_SIZE3 = "small";
29324
29413
  var LaserPointerButton = (props) => {
29325
29414
  return /* @__PURE__ */ jsxs73(
29326
29415
  "label",
29327
29416
  {
29328
- className: clsx53(
29417
+ className: clsx54(
29329
29418
  "ToolIcon ToolIcon__LaserPointer",
29330
29419
  `ToolIcon_size_${DEFAULT_SIZE3}`,
29331
29420
  {
@@ -29334,7 +29423,7 @@ var LaserPointerButton = (props) => {
29334
29423
  ),
29335
29424
  title: `${props.title}`,
29336
29425
  children: [
29337
- /* @__PURE__ */ jsx139(
29426
+ /* @__PURE__ */ jsx140(
29338
29427
  "input",
29339
29428
  {
29340
29429
  className: "ToolIcon_type_checkbox",
@@ -29346,33 +29435,33 @@ var LaserPointerButton = (props) => {
29346
29435
  "data-testid": "toolbar-LaserPointer"
29347
29436
  }
29348
29437
  ),
29349
- /* @__PURE__ */ jsx139("div", { className: "ToolIcon__icon", children: laserPointerToolIcon })
29438
+ /* @__PURE__ */ jsx140("div", { className: "ToolIcon__icon", children: laserPointerToolIcon })
29350
29439
  ]
29351
29440
  }
29352
29441
  );
29353
29442
  };
29354
29443
 
29355
29444
  // components/LayerUI.tsx
29356
- import { Fragment as Fragment23, jsx as jsx140, jsxs as jsxs74 } from "react/jsx-runtime";
29445
+ import { Fragment as Fragment23, jsx as jsx141, jsxs as jsxs74 } from "react/jsx-runtime";
29357
29446
  var DefaultMainMenu = ({ UIOptions }) => {
29358
29447
  return /* @__PURE__ */ jsxs74(MainMenu_default, { __fallback: true, children: [
29359
- /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.LoadScene, {}),
29360
- /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.SaveToActiveFile, {}),
29361
- UIOptions.canvasActions.export && /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.Export, {}),
29362
- UIOptions.canvasActions.saveAsImage && /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.SaveAsImage, {}),
29363
- /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.SearchMenu, {}),
29364
- /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.Help, {}),
29365
- /* @__PURE__ */ jsx140(MainMenu_default.Separator, {}),
29366
- /* @__PURE__ */ jsx140(MainMenu_default.Group, { title: "Excalidraw links", children: /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.Socials, {}) }),
29367
- /* @__PURE__ */ jsx140(MainMenu_default.Separator, {}),
29368
- /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.ToggleTheme, {}),
29369
- /* @__PURE__ */ jsx140(MainMenu_default.DefaultItems.ChangeCanvasBackground, {})
29448
+ /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.LoadScene, {}),
29449
+ /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.SaveToActiveFile, {}),
29450
+ UIOptions.canvasActions.export && /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.Export, {}),
29451
+ UIOptions.canvasActions.saveAsImage && /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.SaveAsImage, {}),
29452
+ /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.SearchMenu, {}),
29453
+ /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.Help, {}),
29454
+ /* @__PURE__ */ jsx141(MainMenu_default.Separator, {}),
29455
+ /* @__PURE__ */ jsx141(MainMenu_default.Group, { title: "Excalidraw links", children: /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.Socials, {}) }),
29456
+ /* @__PURE__ */ jsx141(MainMenu_default.Separator, {}),
29457
+ /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.ToggleTheme, {}),
29458
+ /* @__PURE__ */ jsx141(MainMenu_default.DefaultItems.ChangeCanvasBackground, {})
29370
29459
  ] });
29371
29460
  };
29372
29461
  var DefaultOverwriteConfirmDialog = () => {
29373
29462
  return /* @__PURE__ */ jsxs74(OverwriteConfirmDialog, { __fallback: true, children: [
29374
- /* @__PURE__ */ jsx140(OverwriteConfirmDialog.Actions.SaveToDisk, {}),
29375
- /* @__PURE__ */ jsx140(OverwriteConfirmDialog.Actions.ExportToImage, {})
29463
+ /* @__PURE__ */ jsx141(OverwriteConfirmDialog.Actions.SaveToDisk, {}),
29464
+ /* @__PURE__ */ jsx141(OverwriteConfirmDialog.Actions.ExportToImage, {})
29376
29465
  ] });
29377
29466
  };
29378
29467
  var LayerUI = ({
@@ -29404,7 +29493,7 @@ var LayerUI = ({
29404
29493
  if (!UIOptions.canvasActions.export) {
29405
29494
  return null;
29406
29495
  }
29407
- return /* @__PURE__ */ jsx140(
29496
+ return /* @__PURE__ */ jsx141(
29408
29497
  JSONExportDialog,
29409
29498
  {
29410
29499
  elements,
@@ -29421,7 +29510,7 @@ var LayerUI = ({
29421
29510
  if (!UIOptions.canvasActions.saveAsImage || appState.openDialog?.name !== "imageExport") {
29422
29511
  return null;
29423
29512
  }
29424
- return /* @__PURE__ */ jsx140(
29513
+ return /* @__PURE__ */ jsx141(
29425
29514
  ImageExportDialog,
29426
29515
  {
29427
29516
  elements,
@@ -29435,17 +29524,17 @@ var LayerUI = ({
29435
29524
  );
29436
29525
  };
29437
29526
  const renderCanvasActions = () => /* @__PURE__ */ jsxs74("div", { style: { position: "relative" }, children: [
29438
- /* @__PURE__ */ jsx140(tunnels.MainMenuTunnel.Out, {}),
29439
- renderWelcomeScreen && /* @__PURE__ */ jsx140(tunnels.WelcomeScreenMenuHintTunnel.Out, {})
29527
+ /* @__PURE__ */ jsx141(tunnels.MainMenuTunnel.Out, {}),
29528
+ renderWelcomeScreen && /* @__PURE__ */ jsx141(tunnels.WelcomeScreenMenuHintTunnel.Out, {})
29440
29529
  ] });
29441
- const renderSelectedShapeActions = () => /* @__PURE__ */ jsx140(
29530
+ const renderSelectedShapeActions = () => /* @__PURE__ */ jsx141(
29442
29531
  Section,
29443
29532
  {
29444
29533
  heading: "selectedShapeActions",
29445
- className: clsx54("selected-shape-actions zen-mode-transition", {
29534
+ className: clsx55("selected-shape-actions zen-mode-transition", {
29446
29535
  "transition-left": appState.zenModeEnabled
29447
29536
  }),
29448
- children: /* @__PURE__ */ jsx140(
29537
+ children: /* @__PURE__ */ jsx141(
29449
29538
  Island,
29450
29539
  {
29451
29540
  className: CLASSES.SHAPE_ACTIONS_MENU,
@@ -29455,7 +29544,7 @@ var LayerUI = ({
29455
29544
  // approximate height of hamburgerMenu + footer
29456
29545
  maxHeight: `${appState.height - 166}px`
29457
29546
  },
29458
- children: /* @__PURE__ */ jsx140(
29547
+ children: /* @__PURE__ */ jsx141(
29459
29548
  SelectedShapeActions,
29460
29549
  {
29461
29550
  appState,
@@ -29474,18 +29563,18 @@ var LayerUI = ({
29474
29563
  elements
29475
29564
  );
29476
29565
  const shouldShowStats = appState.stats.open && !appState.zenModeEnabled && !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector";
29477
- return /* @__PURE__ */ jsx140(FixedSideContainer, { side: "top", children: /* @__PURE__ */ jsxs74("div", { className: "App-menu App-menu_top", children: [
29478
- /* @__PURE__ */ jsxs74(Stack_default.Col, { gap: 6, className: clsx54("App-menu_top__left"), children: [
29566
+ return /* @__PURE__ */ jsx141(FixedSideContainer, { side: "top", children: /* @__PURE__ */ jsxs74("div", { className: "App-menu App-menu_top", children: [
29567
+ /* @__PURE__ */ jsxs74(Stack_default.Col, { gap: 6, className: clsx55("App-menu_top__left"), children: [
29479
29568
  renderCanvasActions(),
29480
29569
  shouldRenderSelectedShapeActions && renderSelectedShapeActions()
29481
29570
  ] }),
29482
- !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && /* @__PURE__ */ jsx140(Section, { heading: "shapes", className: "shapes-section", children: (heading) => /* @__PURE__ */ jsxs74("div", { style: { position: "relative" }, children: [
29483
- renderWelcomeScreen && /* @__PURE__ */ jsx140(tunnels.WelcomeScreenToolbarHintTunnel.Out, {}),
29484
- /* @__PURE__ */ jsx140(Stack_default.Col, { gap: 4, align: "start", children: /* @__PURE__ */ jsxs74(
29571
+ !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && /* @__PURE__ */ jsx141(Section, { heading: "shapes", className: "shapes-section", children: (heading) => /* @__PURE__ */ jsxs74("div", { style: { position: "relative" }, children: [
29572
+ renderWelcomeScreen && /* @__PURE__ */ jsx141(tunnels.WelcomeScreenToolbarHintTunnel.Out, {}),
29573
+ /* @__PURE__ */ jsx141(Stack_default.Col, { gap: 4, align: "start", children: /* @__PURE__ */ jsxs74(
29485
29574
  Stack_default.Row,
29486
29575
  {
29487
29576
  gap: 1,
29488
- className: clsx54("App-toolbar-container", {
29577
+ className: clsx55("App-toolbar-container", {
29489
29578
  "zen-mode": appState.zenModeEnabled
29490
29579
  }),
29491
29580
  children: [
@@ -29493,11 +29582,11 @@ var LayerUI = ({
29493
29582
  Island,
29494
29583
  {
29495
29584
  padding: 1,
29496
- className: clsx54("App-toolbar", {
29585
+ className: clsx55("App-toolbar", {
29497
29586
  "zen-mode": appState.zenModeEnabled
29498
29587
  }),
29499
29588
  children: [
29500
- /* @__PURE__ */ jsx140(
29589
+ /* @__PURE__ */ jsx141(
29501
29590
  HintViewer,
29502
29591
  {
29503
29592
  appState,
@@ -29508,7 +29597,7 @@ var LayerUI = ({
29508
29597
  ),
29509
29598
  heading,
29510
29599
  /* @__PURE__ */ jsxs74(Stack_default.Row, { gap: 1, children: [
29511
- /* @__PURE__ */ jsx140(
29600
+ /* @__PURE__ */ jsx141(
29512
29601
  PenModeButton,
29513
29602
  {
29514
29603
  zenModeEnabled: appState.zenModeEnabled,
@@ -29518,7 +29607,7 @@ var LayerUI = ({
29518
29607
  penDetected: appState.penDetected
29519
29608
  }
29520
29609
  ),
29521
- /* @__PURE__ */ jsx140(
29610
+ /* @__PURE__ */ jsx141(
29522
29611
  HandButton,
29523
29612
  {
29524
29613
  checked: isHandToolActive(appState),
@@ -29527,7 +29616,7 @@ var LayerUI = ({
29527
29616
  isMobile: true
29528
29617
  }
29529
29618
  ),
29530
- /* @__PURE__ */ jsx140(
29619
+ /* @__PURE__ */ jsx141(
29531
29620
  ShapesSwitcher,
29532
29621
  {
29533
29622
  appState,
@@ -29540,7 +29629,7 @@ var LayerUI = ({
29540
29629
  ]
29541
29630
  }
29542
29631
  ),
29543
- isCollaborating && /* @__PURE__ */ jsx140(
29632
+ isCollaborating && /* @__PURE__ */ jsx141(
29544
29633
  Island,
29545
29634
  {
29546
29635
  style: {
@@ -29548,7 +29637,7 @@ var LayerUI = ({
29548
29637
  alignSelf: "center",
29549
29638
  height: "fit-content"
29550
29639
  },
29551
- children: /* @__PURE__ */ jsx140(
29640
+ children: /* @__PURE__ */ jsx141(
29552
29641
  LaserPointerButton,
29553
29642
  {
29554
29643
  title: t("toolBar.laser"),
@@ -29566,14 +29655,14 @@ var LayerUI = ({
29566
29655
  /* @__PURE__ */ jsxs74(
29567
29656
  "div",
29568
29657
  {
29569
- className: clsx54(
29658
+ className: clsx55(
29570
29659
  "layer-ui__wrapper__top-right zen-mode-transition",
29571
29660
  {
29572
29661
  "transition-right": appState.zenModeEnabled
29573
29662
  }
29574
29663
  ),
29575
29664
  children: [
29576
- appState.collaborators.size > 0 && /* @__PURE__ */ jsx140(
29665
+ appState.collaborators.size > 0 && /* @__PURE__ */ jsx141(
29577
29666
  UserList,
29578
29667
  {
29579
29668
  collaborators: appState.collaborators,
@@ -29582,8 +29671,8 @@ var LayerUI = ({
29582
29671
  ),
29583
29672
  renderTopRightUI?.(device.editor.isMobile, appState),
29584
29673
  !appState.viewModeEnabled && appState.openDialog?.name !== "elementLinkSelector" && // hide button when sidebar docked
29585
- (!isSidebarDocked || appState.openSidebar?.name !== DEFAULT_SIDEBAR.name) && /* @__PURE__ */ jsx140(tunnels.DefaultSidebarTriggerTunnel.Out, {}),
29586
- shouldShowStats && /* @__PURE__ */ jsx140(
29674
+ (!isSidebarDocked || appState.openSidebar?.name !== DEFAULT_SIDEBAR.name) && /* @__PURE__ */ jsx141(tunnels.DefaultSidebarTriggerTunnel.Out, {}),
29675
+ shouldShowStats && /* @__PURE__ */ jsx141(
29587
29676
  Stats,
29588
29677
  {
29589
29678
  app,
@@ -29599,7 +29688,7 @@ var LayerUI = ({
29599
29688
  ] }) });
29600
29689
  };
29601
29690
  const renderSidebars = () => {
29602
- return /* @__PURE__ */ jsx140(
29691
+ return /* @__PURE__ */ jsx141(
29603
29692
  DefaultSidebar,
29604
29693
  {
29605
29694
  __fallback: true,
@@ -29616,8 +29705,8 @@ var LayerUI = ({
29616
29705
  const isSidebarDocked = useAtomValue(isSidebarDockedAtom);
29617
29706
  const layerUIJSX = /* @__PURE__ */ jsxs74(Fragment23, { children: [
29618
29707
  children,
29619
- /* @__PURE__ */ jsx140(DefaultMainMenu, { UIOptions }),
29620
- /* @__PURE__ */ jsx140(
29708
+ /* @__PURE__ */ jsx141(DefaultMainMenu, { UIOptions }),
29709
+ /* @__PURE__ */ jsx141(
29621
29710
  DefaultSidebar.Trigger,
29622
29711
  {
29623
29712
  __fallback: true,
@@ -29636,11 +29725,11 @@ var LayerUI = ({
29636
29725
  children: t("toolBar.library")
29637
29726
  }
29638
29727
  ),
29639
- /* @__PURE__ */ jsx140(DefaultOverwriteConfirmDialog, {}),
29640
- appState.openDialog?.name === "ttd" && /* @__PURE__ */ jsx140(TTDDialog, { __fallback: true }),
29641
- appState.isLoading && /* @__PURE__ */ jsx140(LoadingMessage, { delay: 250 }),
29642
- appState.errorMessage && /* @__PURE__ */ jsx140(ErrorDialog, { onClose: () => setAppState({ errorMessage: null }), children: appState.errorMessage }),
29643
- eyeDropperState && !device.editor.isMobile && /* @__PURE__ */ jsx140(
29728
+ /* @__PURE__ */ jsx141(DefaultOverwriteConfirmDialog, {}),
29729
+ appState.openDialog?.name === "ttd" && /* @__PURE__ */ jsx141(TTDDialog, { __fallback: true }),
29730
+ appState.isLoading && /* @__PURE__ */ jsx141(LoadingMessage, { delay: 250 }),
29731
+ appState.errorMessage && /* @__PURE__ */ jsx141(ErrorDialog, { onClose: () => setAppState({ errorMessage: null }), children: appState.errorMessage }),
29732
+ eyeDropperState && !device.editor.isMobile && /* @__PURE__ */ jsx141(
29644
29733
  EyeDropper,
29645
29734
  {
29646
29735
  colorPickerType: eyeDropperState.colorPickerType,
@@ -29679,7 +29768,7 @@ var LayerUI = ({
29679
29768
  }
29680
29769
  }
29681
29770
  ),
29682
- appState.openDialog?.name === "help" && /* @__PURE__ */ jsx140(
29771
+ appState.openDialog?.name === "help" && /* @__PURE__ */ jsx141(
29683
29772
  HelpDialog,
29684
29773
  {
29685
29774
  onClose: () => {
@@ -29687,7 +29776,7 @@ var LayerUI = ({
29687
29776
  }
29688
29777
  }
29689
29778
  ),
29690
- appState.openDialog?.name === "elementLinkSelector" && /* @__PURE__ */ jsx140(
29779
+ appState.openDialog?.name === "elementLinkSelector" && /* @__PURE__ */ jsx141(
29691
29780
  ElementLinkDialog_default,
29692
29781
  {
29693
29782
  sourceElementId: appState.openDialog.sourceElementId,
@@ -29701,10 +29790,10 @@ var LayerUI = ({
29701
29790
  generateLinkForSelection
29702
29791
  }
29703
29792
  ),
29704
- /* @__PURE__ */ jsx140(tunnels.OverwriteConfirmDialogTunnel.Out, {}),
29793
+ /* @__PURE__ */ jsx141(tunnels.OverwriteConfirmDialogTunnel.Out, {}),
29705
29794
  renderImageExportDialog(),
29706
29795
  renderJSONExportDialog(),
29707
- appState.pasteDialog.shown && /* @__PURE__ */ jsx140(
29796
+ appState.pasteDialog.shown && /* @__PURE__ */ jsx141(
29708
29797
  PasteChartDialog,
29709
29798
  {
29710
29799
  setAppState,
@@ -29714,7 +29803,7 @@ var LayerUI = ({
29714
29803
  })
29715
29804
  }
29716
29805
  ),
29717
- device.editor.isMobile && /* @__PURE__ */ jsx140(
29806
+ device.editor.isMobile && /* @__PURE__ */ jsx141(
29718
29807
  MobileMenu,
29719
29808
  {
29720
29809
  app,
@@ -29742,9 +29831,9 @@ var LayerUI = ({
29742
29831
  className: "layer-ui__wrapper",
29743
29832
  style: appState.openSidebar && isSidebarDocked && device.editor.canFitSidebar ? { width: `calc(100% - var(--right-sidebar-width))` } : {},
29744
29833
  children: [
29745
- renderWelcomeScreen && /* @__PURE__ */ jsx140(tunnels.WelcomeScreenCenterTunnel.Out, {}),
29834
+ renderWelcomeScreen && /* @__PURE__ */ jsx141(tunnels.WelcomeScreenCenterTunnel.Out, {}),
29746
29835
  renderFixedSideContainer(),
29747
- /* @__PURE__ */ jsx140(
29836
+ /* @__PURE__ */ jsx141(
29748
29837
  Footer_default,
29749
29838
  {
29750
29839
  appState,
@@ -29753,7 +29842,7 @@ var LayerUI = ({
29753
29842
  renderWelcomeScreen
29754
29843
  }
29755
29844
  ),
29756
- appState.scrolledOutside && /* @__PURE__ */ jsx140(
29845
+ appState.scrolledOutside && /* @__PURE__ */ jsx141(
29757
29846
  "button",
29758
29847
  {
29759
29848
  type: "button",
@@ -29772,7 +29861,7 @@ var LayerUI = ({
29772
29861
  renderSidebars()
29773
29862
  ] })
29774
29863
  ] });
29775
- return /* @__PURE__ */ jsx140(UIAppStateContext.Provider, { value: appState, children: /* @__PURE__ */ jsx140(TunnelsJotaiProvider, { children: /* @__PURE__ */ jsx140(TunnelsContext.Provider, { value: tunnels, children: layerUIJSX }) }) });
29864
+ return /* @__PURE__ */ jsx141(UIAppStateContext.Provider, { value: appState, children: /* @__PURE__ */ jsx141(TunnelsJotaiProvider, { children: /* @__PURE__ */ jsx141(TunnelsContext.Provider, { value: tunnels, children: layerUIJSX }) }) });
29776
29865
  };
29777
29866
  var stripIrrelevantAppStateProps = (appState) => {
29778
29867
  const {
@@ -29805,14 +29894,14 @@ var areEqual2 = (prevProps, nextProps) => {
29805
29894
  var LayerUI_default = React39.memo(LayerUI, areEqual2);
29806
29895
 
29807
29896
  // components/MagicButton.tsx
29808
- import clsx55 from "clsx";
29809
- import { jsx as jsx141, jsxs as jsxs75 } from "react/jsx-runtime";
29897
+ import clsx56 from "clsx";
29898
+ import { jsx as jsx142, jsxs as jsxs75 } from "react/jsx-runtime";
29810
29899
  var DEFAULT_SIZE4 = "small";
29811
29900
  var ElementCanvasButton = (props) => {
29812
29901
  return /* @__PURE__ */ jsxs75(
29813
29902
  "label",
29814
29903
  {
29815
- className: clsx55(
29904
+ className: clsx56(
29816
29905
  "ToolIcon ToolIcon__MagicButton",
29817
29906
  `ToolIcon_size_${DEFAULT_SIZE4}`,
29818
29907
  {
@@ -29821,7 +29910,7 @@ var ElementCanvasButton = (props) => {
29821
29910
  ),
29822
29911
  title: `${props.title}`,
29823
29912
  children: [
29824
- /* @__PURE__ */ jsx141(
29913
+ /* @__PURE__ */ jsx142(
29825
29914
  "input",
29826
29915
  {
29827
29916
  className: "ToolIcon_type_checkbox",
@@ -29832,7 +29921,7 @@ var ElementCanvasButton = (props) => {
29832
29921
  "aria-label": props.title
29833
29922
  }
29834
29923
  ),
29835
- /* @__PURE__ */ jsx141("div", { className: "ToolIcon__icon", children: props.icon })
29924
+ /* @__PURE__ */ jsx142("div", { className: "ToolIcon__icon", children: props.icon })
29836
29925
  ]
29837
29926
  }
29838
29927
  );
@@ -29840,7 +29929,7 @@ var ElementCanvasButton = (props) => {
29840
29929
 
29841
29930
  // components/SVGLayer.tsx
29842
29931
  import { useEffect as useEffect39, useRef as useRef35 } from "react";
29843
- import { jsx as jsx142 } from "react/jsx-runtime";
29932
+ import { jsx as jsx143 } from "react/jsx-runtime";
29844
29933
  var SVGLayer = ({ trails }) => {
29845
29934
  const svgRef = useRef35(null);
29846
29935
  useEffect39(() => {
@@ -29855,12 +29944,12 @@ var SVGLayer = ({ trails }) => {
29855
29944
  }
29856
29945
  };
29857
29946
  }, trails);
29858
- return /* @__PURE__ */ jsx142("div", { className: "SVGLayer", children: /* @__PURE__ */ jsx142("svg", { ref: svgRef }) });
29947
+ return /* @__PURE__ */ jsx143("div", { className: "SVGLayer", children: /* @__PURE__ */ jsx143("svg", { ref: svgRef }) });
29859
29948
  };
29860
29949
 
29861
29950
  // components/canvases/InteractiveCanvas.tsx
29862
29951
  import React40, { useEffect as useEffect40, useRef as useRef36 } from "react";
29863
- import { jsx as jsx143 } from "react/jsx-runtime";
29952
+ import { jsx as jsx144 } from "react/jsx-runtime";
29864
29953
  var InteractiveCanvas = (props) => {
29865
29954
  const isComponentMounted = useRef36(false);
29866
29955
  useEffect40(() => {
@@ -29930,7 +30019,7 @@ var InteractiveCanvas = (props) => {
29930
30019
  isRenderThrottlingEnabled()
29931
30020
  );
29932
30021
  });
29933
- return /* @__PURE__ */ jsx143(
30022
+ return /* @__PURE__ */ jsx144(
29934
30023
  "canvas",
29935
30024
  {
29936
30025
  className: "excalidraw__canvas interactive",
@@ -30005,7 +30094,7 @@ var InteractiveCanvas_default = React40.memo(InteractiveCanvas, areEqual3);
30005
30094
 
30006
30095
  // components/canvases/StaticCanvas.tsx
30007
30096
  import React41, { useEffect as useEffect41, useRef as useRef37 } from "react";
30008
- import { jsx as jsx144 } from "react/jsx-runtime";
30097
+ import { jsx as jsx145 } from "react/jsx-runtime";
30009
30098
  var StaticCanvas = (props) => {
30010
30099
  const wrapperRef = useRef37(null);
30011
30100
  const isComponentMounted = useRef37(false);
@@ -30050,7 +30139,7 @@ var StaticCanvas = (props) => {
30050
30139
  isRenderThrottlingEnabled()
30051
30140
  );
30052
30141
  });
30053
- return /* @__PURE__ */ jsx144("div", { className: "excalidraw__canvas-wrapper", ref: wrapperRef });
30142
+ return /* @__PURE__ */ jsx145("div", { className: "excalidraw__canvas-wrapper", ref: wrapperRef });
30054
30143
  };
30055
30144
  var getRelevantAppStateProps2 = (appState) => {
30056
30145
  const relevantAppStateProps = {
@@ -30154,7 +30243,7 @@ var renderNewElementScene = (renderConfig, throttle5) => {
30154
30243
  };
30155
30244
 
30156
30245
  // components/canvases/NewElementCanvas.tsx
30157
- import { jsx as jsx145 } from "react/jsx-runtime";
30246
+ import { jsx as jsx146 } from "react/jsx-runtime";
30158
30247
  var NewElementCanvas = (props) => {
30159
30248
  const canvasRef = useRef38(null);
30160
30249
  useEffect42(() => {
@@ -30175,7 +30264,7 @@ var NewElementCanvas = (props) => {
30175
30264
  isRenderThrottlingEnabled()
30176
30265
  );
30177
30266
  });
30178
- return /* @__PURE__ */ jsx145(
30267
+ return /* @__PURE__ */ jsx146(
30179
30268
  "canvas",
30180
30269
  {
30181
30270
  className: "excalidraw__canvas",
@@ -30193,7 +30282,7 @@ var NewElementCanvas_default = NewElementCanvas;
30193
30282
 
30194
30283
  // components/Toast.tsx
30195
30284
  import { useCallback as useCallback14, useEffect as useEffect43, useRef as useRef39 } from "react";
30196
- import { jsx as jsx146, jsxs as jsxs76 } from "react/jsx-runtime";
30285
+ import { jsx as jsx147, jsxs as jsxs76 } from "react/jsx-runtime";
30197
30286
  var DEFAULT_TOAST_TIMEOUT = 5e3;
30198
30287
  var Toast = ({
30199
30288
  message,
@@ -30228,8 +30317,8 @@ var Toast = ({
30228
30317
  onMouseLeave,
30229
30318
  style,
30230
30319
  children: [
30231
- /* @__PURE__ */ jsx146("p", { className: "Toast__message", children: message }),
30232
- closable && /* @__PURE__ */ jsx146(
30320
+ /* @__PURE__ */ jsx147("p", { className: "Toast__message", children: message }),
30321
+ closable && /* @__PURE__ */ jsx147(
30233
30322
  ToolButton,
30234
30323
  {
30235
30324
  icon: CloseIcon,
@@ -30245,35 +30334,35 @@ var Toast = ({
30245
30334
  };
30246
30335
 
30247
30336
  // components/BraveMeasureTextError.tsx
30248
- import { jsx as jsx147, jsxs as jsxs77 } from "react/jsx-runtime";
30337
+ import { jsx as jsx148, jsxs as jsxs77 } from "react/jsx-runtime";
30249
30338
  var BraveMeasureTextError = () => {
30250
30339
  return /* @__PURE__ */ jsxs77("div", { "data-testid": "brave-measure-text-error", children: [
30251
- /* @__PURE__ */ jsx147("p", { children: /* @__PURE__ */ jsx147(
30340
+ /* @__PURE__ */ jsx148("p", { children: /* @__PURE__ */ jsx148(
30252
30341
  Trans_default,
30253
30342
  {
30254
30343
  i18nKey: "errors.brave_measure_text_error.line1",
30255
- bold: (el) => /* @__PURE__ */ jsx147("span", { style: { fontWeight: 600 }, children: el })
30344
+ bold: (el) => /* @__PURE__ */ jsx148("span", { style: { fontWeight: 600 }, children: el })
30256
30345
  }
30257
30346
  ) }),
30258
- /* @__PURE__ */ jsx147("p", { children: /* @__PURE__ */ jsx147(
30347
+ /* @__PURE__ */ jsx148("p", { children: /* @__PURE__ */ jsx148(
30259
30348
  Trans_default,
30260
30349
  {
30261
30350
  i18nKey: "errors.brave_measure_text_error.line2",
30262
- bold: (el) => /* @__PURE__ */ jsx147("span", { style: { fontWeight: 600 }, children: el })
30351
+ bold: (el) => /* @__PURE__ */ jsx148("span", { style: { fontWeight: 600 }, children: el })
30263
30352
  }
30264
30353
  ) }),
30265
- /* @__PURE__ */ jsx147("p", { children: /* @__PURE__ */ jsx147(
30354
+ /* @__PURE__ */ jsx148("p", { children: /* @__PURE__ */ jsx148(
30266
30355
  Trans_default,
30267
30356
  {
30268
30357
  i18nKey: "errors.brave_measure_text_error.line3",
30269
- link: (el) => /* @__PURE__ */ jsx147("a", { href: "http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser", children: el })
30358
+ link: (el) => /* @__PURE__ */ jsx148("a", { href: "http://docs.excalidraw.com/docs/@excalidraw/excalidraw/faq#turning-off-aggresive-block-fingerprinting-in-brave-browser", children: el })
30270
30359
  }
30271
30360
  ) }),
30272
- /* @__PURE__ */ jsx147("p", { children: /* @__PURE__ */ jsx147(
30361
+ /* @__PURE__ */ jsx148("p", { children: /* @__PURE__ */ jsx148(
30273
30362
  Trans_default,
30274
30363
  {
30275
30364
  i18nKey: "errors.brave_measure_text_error.line4",
30276
- issueLink: (el) => /* @__PURE__ */ jsx147("a", { href: "https://github.com/excalidraw/excalidraw/issues/new", children: el }),
30365
+ issueLink: (el) => /* @__PURE__ */ jsx148("a", { href: "https://github.com/excalidraw/excalidraw/issues/new", children: el }),
30277
30366
  discordLink: (el) => /* @__PURE__ */ jsxs77("a", { href: "https://discord.gg/UexuTaE", children: [
30278
30367
  el,
30279
30368
  "."
@@ -30285,7 +30374,7 @@ var BraveMeasureTextError = () => {
30285
30374
  var BraveMeasureTextError_default = BraveMeasureTextError;
30286
30375
 
30287
30376
  // components/App.tsx
30288
- import { Fragment as Fragment24, jsx as jsx148, jsxs as jsxs78 } from "react/jsx-runtime";
30377
+ import { Fragment as Fragment24, jsx as jsx149, jsxs as jsxs78 } from "react/jsx-runtime";
30289
30378
  var AppContext = React42.createContext(null);
30290
30379
  var AppPropsContext = React42.createContext(null);
30291
30380
  var deviceContextInitialValue = {
@@ -30525,7 +30614,7 @@ var App = class _App extends React42.Component {
30525
30614
  const frameName = getFrameLikeTitle(f);
30526
30615
  if (f.id === this.state.editingFrame) {
30527
30616
  const frameNameInEdit = frameName;
30528
- frameNameJSX = /* @__PURE__ */ jsx148(
30617
+ frameNameJSX = /* @__PURE__ */ jsx149(
30529
30618
  "input",
30530
30619
  {
30531
30620
  autoFocus: true,
@@ -30568,7 +30657,7 @@ var App = class _App extends React42.Component {
30568
30657
  } else {
30569
30658
  frameNameJSX = frameName;
30570
30659
  }
30571
- return /* @__PURE__ */ jsx148(
30660
+ return /* @__PURE__ */ jsx149(
30572
30661
  "div",
30573
30662
  {
30574
30663
  id: this.getFrameNameDOMId(f),
@@ -35236,7 +35325,7 @@ var App = class _App extends React42.Component {
35236
35325
  const embeddableElements = this.scene.getNonDeletedElements().filter(
35237
35326
  (el) => isEmbeddableElement(el) && this.embedsValidationStatus.get(el.id) === true || isIframeElement(el)
35238
35327
  );
35239
- return /* @__PURE__ */ jsx148(Fragment24, { children: embeddableElements.map((el) => {
35328
+ return /* @__PURE__ */ jsx149(Fragment24, { children: embeddableElements.map((el) => {
35240
35329
  const { x, y } = sceneCoordsToViewportCoords(
35241
35330
  { sceneX: el.x, sceneY: el.y },
35242
35331
  this.state
@@ -35392,10 +35481,10 @@ var App = class _App extends React42.Component {
35392
35481
  }
35393
35482
  const isActive = this.state.activeEmbeddable?.element === el && this.state.activeEmbeddable?.state === "active";
35394
35483
  const isHovered = this.state.activeEmbeddable?.element === el && this.state.activeEmbeddable?.state === "hover";
35395
- return /* @__PURE__ */ jsx148(
35484
+ return /* @__PURE__ */ jsx149(
35396
35485
  "div",
35397
35486
  {
35398
- className: clsx56("excalidraw__embeddable-container", {
35487
+ className: clsx57("excalidraw__embeddable-container", {
35399
35488
  "is-hovered": isHovered
35400
35489
  }),
35401
35490
  style: {
@@ -35424,15 +35513,15 @@ var App = class _App extends React42.Component {
35424
35513
  pointerEvents: isActive ? POINTER_EVENTS.enabled : POINTER_EVENTS.disabled
35425
35514
  },
35426
35515
  children: [
35427
- isHovered && /* @__PURE__ */ jsx148("div", { className: "excalidraw__embeddable-hint", children: t("buttons.embeddableInteractionButton") }),
35428
- /* @__PURE__ */ jsx148(
35516
+ isHovered && /* @__PURE__ */ jsx149("div", { className: "excalidraw__embeddable-hint", children: t("buttons.embeddableInteractionButton") }),
35517
+ /* @__PURE__ */ jsx149(
35429
35518
  "div",
35430
35519
  {
35431
35520
  className: "excalidraw__embeddable__outer",
35432
35521
  style: {
35433
35522
  padding: `${el.strokeWidth}px`
35434
35523
  },
35435
- children: (isEmbeddableElement(el) ? this.props.renderEmbeddable?.(el, this.state) : null) ?? /* @__PURE__ */ jsx148(
35524
+ children: (isEmbeddableElement(el) ? this.props.renderEmbeddable?.(el, this.state) : null) ?? /* @__PURE__ */ jsx149(
35436
35525
  "iframe",
35437
35526
  {
35438
35527
  ref: (ref) => this.cacheEmbeddableRef(el, ref),
@@ -35486,10 +35575,10 @@ var App = class _App extends React42.Component {
35486
35575
  this.state.cursorButton === "down"
35487
35576
  );
35488
35577
  const firstSelectedElement = selectedElements[0];
35489
- return /* @__PURE__ */ jsx148(
35578
+ return /* @__PURE__ */ jsx149(
35490
35579
  "div",
35491
35580
  {
35492
- className: clsx56("excalidraw excalidraw-container", {
35581
+ className: clsx57("excalidraw excalidraw-container", {
35493
35582
  "excalidraw--view-mode": this.state.viewModeEnabled || this.state.openDialog?.name === "elementLinkSelector",
35494
35583
  "excalidraw--mobile": this.device.editor.isMobile
35495
35584
  }),
@@ -35503,11 +35592,11 @@ var App = class _App extends React42.Component {
35503
35592
  onKeyDown: this.props.handleKeyboardGlobally ? void 0 : this.onKeyDown,
35504
35593
  onPointerEnter: this.toggleOverscrollBehavior,
35505
35594
  onPointerLeave: this.toggleOverscrollBehavior,
35506
- children: /* @__PURE__ */ jsx148(AppContext.Provider, { value: this, children: /* @__PURE__ */ jsx148(AppPropsContext.Provider, { value: this.props, children: /* @__PURE__ */ jsx148(
35595
+ children: /* @__PURE__ */ jsx149(AppContext.Provider, { value: this, children: /* @__PURE__ */ jsx149(AppPropsContext.Provider, { value: this.props, children: /* @__PURE__ */ jsx149(
35507
35596
  ExcalidrawContainerContext.Provider,
35508
35597
  {
35509
35598
  value: this.excalidrawContainerValue,
35510
- children: /* @__PURE__ */ jsx148(DeviceContext.Provider, { value: this.device, children: /* @__PURE__ */ jsx148(ExcalidrawSetAppStateContext.Provider, { value: this.setAppState, children: /* @__PURE__ */ jsx148(ExcalidrawAppStateContext.Provider, { value: this.state, children: /* @__PURE__ */ jsxs78(
35599
+ children: /* @__PURE__ */ jsx149(DeviceContext.Provider, { value: this.device, children: /* @__PURE__ */ jsx149(ExcalidrawSetAppStateContext.Provider, { value: this.setAppState, children: /* @__PURE__ */ jsx149(ExcalidrawAppStateContext.Provider, { value: this.state, children: /* @__PURE__ */ jsxs78(
35511
35600
  ExcalidrawElementsContext.Provider,
35512
35601
  {
35513
35602
  value: this.scene.getNonDeletedElements(),
@@ -35517,7 +35606,7 @@ var App = class _App extends React42.Component {
35517
35606
  {
35518
35607
  value: this.actionManager,
35519
35608
  children: [
35520
- /* @__PURE__ */ jsx148(
35609
+ /* @__PURE__ */ jsx149(
35521
35610
  LayerUI_default,
35522
35611
  {
35523
35612
  canvas: this.canvas,
@@ -35542,10 +35631,10 @@ var App = class _App extends React42.Component {
35542
35631
  children: this.props.children
35543
35632
  }
35544
35633
  ),
35545
- /* @__PURE__ */ jsx148("div", { className: "excalidraw-textEditorContainer" }),
35546
- /* @__PURE__ */ jsx148("div", { className: "excalidraw-contextMenuContainer" }),
35547
- /* @__PURE__ */ jsx148("div", { className: "excalidraw-eye-dropper-container" }),
35548
- /* @__PURE__ */ jsx148(
35634
+ /* @__PURE__ */ jsx149("div", { className: "excalidraw-textEditorContainer" }),
35635
+ /* @__PURE__ */ jsx149("div", { className: "excalidraw-contextMenuContainer" }),
35636
+ /* @__PURE__ */ jsx149("div", { className: "excalidraw-eye-dropper-container" }),
35637
+ /* @__PURE__ */ jsx149(
35549
35638
  SVGLayer,
35550
35639
  {
35551
35640
  trails: [
@@ -35555,7 +35644,7 @@ var App = class _App extends React42.Component {
35555
35644
  ]
35556
35645
  }
35557
35646
  ),
35558
- selectedElements.length === 1 && this.state.openDialog?.name !== "elementLinkSelector" && this.state.showHyperlinkPopup && /* @__PURE__ */ jsx148(
35647
+ selectedElements.length === 1 && this.state.openDialog?.name !== "elementLinkSelector" && this.state.showHyperlinkPopup && /* @__PURE__ */ jsx149(
35559
35648
  Hyperlink,
35560
35649
  {
35561
35650
  element: firstSelectedElement,
@@ -35567,12 +35656,12 @@ var App = class _App extends React42.Component {
35567
35656
  },
35568
35657
  firstSelectedElement.id
35569
35658
  ),
35570
- this.props.aiEnabled !== false && selectedElements.length === 1 && isMagicFrameElement(firstSelectedElement) && /* @__PURE__ */ jsx148(
35659
+ this.props.aiEnabled !== false && selectedElements.length === 1 && isMagicFrameElement(firstSelectedElement) && /* @__PURE__ */ jsx149(
35571
35660
  ElementCanvasButtons,
35572
35661
  {
35573
35662
  element: firstSelectedElement,
35574
35663
  elementsMap,
35575
- children: /* @__PURE__ */ jsx148(
35664
+ children: /* @__PURE__ */ jsx149(
35576
35665
  ElementCanvasButton,
35577
35666
  {
35578
35667
  title: t("labels.convertToCode"),
@@ -35592,7 +35681,7 @@ var App = class _App extends React42.Component {
35592
35681
  element: firstSelectedElement,
35593
35682
  elementsMap,
35594
35683
  children: [
35595
- /* @__PURE__ */ jsx148(
35684
+ /* @__PURE__ */ jsx149(
35596
35685
  ElementCanvasButton,
35597
35686
  {
35598
35687
  title: t("labels.copySource"),
@@ -35601,7 +35690,7 @@ var App = class _App extends React42.Component {
35601
35690
  onChange: () => this.onIframeSrcCopy(firstSelectedElement)
35602
35691
  }
35603
35692
  ),
35604
- /* @__PURE__ */ jsx148(
35693
+ /* @__PURE__ */ jsx149(
35605
35694
  ElementCanvasButton,
35606
35695
  {
35607
35696
  title: "Enter fullscreen",
@@ -35638,7 +35727,7 @@ var App = class _App extends React42.Component {
35638
35727
  ]
35639
35728
  }
35640
35729
  ),
35641
- this.state.toast !== null && /* @__PURE__ */ jsx148(
35730
+ this.state.toast !== null && /* @__PURE__ */ jsx149(
35642
35731
  Toast,
35643
35732
  {
35644
35733
  message: this.state.toast.message,
@@ -35647,7 +35736,7 @@ var App = class _App extends React42.Component {
35647
35736
  closable: this.state.toast.closable
35648
35737
  }
35649
35738
  ),
35650
- this.state.contextMenu && /* @__PURE__ */ jsx148(
35739
+ this.state.contextMenu && /* @__PURE__ */ jsx149(
35651
35740
  ContextMenu,
35652
35741
  {
35653
35742
  items: this.state.contextMenu.items,
@@ -35662,7 +35751,7 @@ var App = class _App extends React42.Component {
35662
35751
  }
35663
35752
  }
35664
35753
  ),
35665
- /* @__PURE__ */ jsx148(
35754
+ /* @__PURE__ */ jsx149(
35666
35755
  StaticCanvas_default,
35667
35756
  {
35668
35757
  canvas: this.canvas,
@@ -35685,7 +35774,7 @@ var App = class _App extends React42.Component {
35685
35774
  }
35686
35775
  }
35687
35776
  ),
35688
- this.state.newElement && /* @__PURE__ */ jsx148(
35777
+ this.state.newElement && /* @__PURE__ */ jsx149(
35689
35778
  NewElementCanvas_default,
35690
35779
  {
35691
35780
  appState: this.state,
@@ -35704,7 +35793,7 @@ var App = class _App extends React42.Component {
35704
35793
  }
35705
35794
  }
35706
35795
  ),
35707
- /* @__PURE__ */ jsx148(
35796
+ /* @__PURE__ */ jsx149(
35708
35797
  InteractiveCanvas_default,
35709
35798
  {
35710
35799
  containerRef: this.excalidrawContainerRef,
@@ -35730,7 +35819,7 @@ var App = class _App extends React42.Component {
35730
35819
  onDoubleClick: this.handleCanvasDoubleClick
35731
35820
  }
35732
35821
  ),
35733
- this.state.userToFollow && /* @__PURE__ */ jsx148(
35822
+ this.state.userToFollow && /* @__PURE__ */ jsx149(
35734
35823
  FollowMode_default,
35735
35824
  {
35736
35825
  width: this.state.width,
@@ -35917,7 +36006,7 @@ var App = class _App extends React42.Component {
35917
36006
  }
35918
36007
  if (isBrave() && !isMeasureTextSupported()) {
35919
36008
  this.setState({
35920
- errorMessage: /* @__PURE__ */ jsx148(BraveMeasureTextError_default, {})
36009
+ errorMessage: /* @__PURE__ */ jsx149(BraveMeasureTextError_default, {})
35921
36010
  });
35922
36011
  }
35923
36012
  }
@@ -38179,7 +38268,7 @@ var App_default = App;
38179
38268
 
38180
38269
  // components/InitializeApp.tsx
38181
38270
  import { useEffect as useEffect44, useState as useState36 } from "react";
38182
- import { jsx as jsx149 } from "react/jsx-runtime";
38271
+ import { jsx as jsx150 } from "react/jsx-runtime";
38183
38272
  var InitializeApp = (props) => {
38184
38273
  const [loading, setLoading] = useState36(true);
38185
38274
  useEffect44(() => {
@@ -38190,19 +38279,19 @@ var InitializeApp = (props) => {
38190
38279
  const currentLang2 = languages.find((lang) => lang.code === props.langCode) || defaultLang;
38191
38280
  updateLang();
38192
38281
  }, [props.langCode]);
38193
- return loading ? /* @__PURE__ */ jsx149(LoadingMessage, { theme: props.theme }) : props.children;
38282
+ return loading ? /* @__PURE__ */ jsx150(LoadingMessage, { theme: props.theme }) : props.children;
38194
38283
  };
38195
38284
 
38196
38285
  // components/footer/FooterCenter.tsx
38197
- import clsx57 from "clsx";
38198
- import { jsx as jsx150 } from "react/jsx-runtime";
38286
+ import clsx58 from "clsx";
38287
+ import { jsx as jsx151 } from "react/jsx-runtime";
38199
38288
  var FooterCenter = ({ children }) => {
38200
38289
  const { FooterCenterTunnel } = useTunnels();
38201
38290
  const appState = useUIAppState();
38202
- return /* @__PURE__ */ jsx150(FooterCenterTunnel.In, { children: /* @__PURE__ */ jsx150(
38291
+ return /* @__PURE__ */ jsx151(FooterCenterTunnel.In, { children: /* @__PURE__ */ jsx151(
38203
38292
  "div",
38204
38293
  {
38205
- className: clsx57("footer-center zen-mode-transition", {
38294
+ className: clsx58("footer-center zen-mode-transition", {
38206
38295
  "layer-ui__wrapper__footer-left--transition-bottom": appState.zenModeEnabled
38207
38296
  }),
38208
38297
  children
@@ -38213,8 +38302,8 @@ var FooterCenter_default = FooterCenter;
38213
38302
  FooterCenter.displayName = "FooterCenter";
38214
38303
 
38215
38304
  // components/live-collaboration/LiveCollaborationTrigger.tsx
38216
- import clsx58 from "clsx";
38217
- import { jsx as jsx151, jsxs as jsxs79 } from "react/jsx-runtime";
38305
+ import clsx59 from "clsx";
38306
+ import { jsx as jsx152, jsxs as jsxs79 } from "react/jsx-runtime";
38218
38307
  var LiveCollaborationTrigger2 = ({
38219
38308
  isCollaborating,
38220
38309
  onSelect,
@@ -38226,14 +38315,14 @@ var LiveCollaborationTrigger2 = ({
38226
38315
  Button,
38227
38316
  {
38228
38317
  ...rest,
38229
- className: clsx58("collab-button", { active: isCollaborating }),
38318
+ className: clsx59("collab-button", { active: isCollaborating }),
38230
38319
  type: "button",
38231
38320
  onSelect,
38232
38321
  style: { position: "relative", width: showIconOnly ? void 0 : "auto" },
38233
38322
  title: t("labels.liveCollaboration"),
38234
38323
  children: [
38235
38324
  showIconOnly ? share : t("labels.share"),
38236
- appState.collaborators.size > 0 && /* @__PURE__ */ jsx151("div", { className: "CollabButton-collaborators", children: appState.collaborators.size })
38325
+ appState.collaborators.size > 0 && /* @__PURE__ */ jsx152("div", { className: "CollabButton-collaborators", children: appState.collaborators.size })
38237
38326
  ]
38238
38327
  }
38239
38328
  );
@@ -38242,15 +38331,15 @@ var LiveCollaborationTrigger_default = LiveCollaborationTrigger2;
38242
38331
  LiveCollaborationTrigger2.displayName = "LiveCollaborationTrigger";
38243
38332
 
38244
38333
  // components/ExcalidrawLogo.tsx
38245
- import { jsx as jsx152, jsxs as jsxs80 } from "react/jsx-runtime";
38246
- var LogoIcon = () => /* @__PURE__ */ jsx152(
38334
+ import { jsx as jsx153, jsxs as jsxs80 } from "react/jsx-runtime";
38335
+ var LogoIcon = () => /* @__PURE__ */ jsx153(
38247
38336
  "svg",
38248
38337
  {
38249
38338
  viewBox: "0 0 40 40",
38250
38339
  fill: "none",
38251
38340
  xmlns: "http://www.w3.org/2000/svg",
38252
38341
  className: "ExcalidrawLogo-icon",
38253
- children: /* @__PURE__ */ jsx152(
38342
+ children: /* @__PURE__ */ jsx153(
38254
38343
  "path",
38255
38344
  {
38256
38345
  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",
@@ -38267,28 +38356,28 @@ var LogoText = () => /* @__PURE__ */ jsxs80(
38267
38356
  fill: "none",
38268
38357
  className: "ExcalidrawLogo-text",
38269
38358
  children: [
38270
- /* @__PURE__ */ jsx152(
38359
+ /* @__PURE__ */ jsx153(
38271
38360
  "path",
38272
38361
  {
38273
38362
  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",
38274
38363
  transform: "translate(-144.023 -51.76)"
38275
38364
  }
38276
38365
  ),
38277
- /* @__PURE__ */ jsx152(
38366
+ /* @__PURE__ */ jsx153(
38278
38367
  "path",
38279
38368
  {
38280
38369
  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",
38281
38370
  transform: "translate(-144.023 -51.76)"
38282
38371
  }
38283
38372
  ),
38284
- /* @__PURE__ */ jsx152(
38373
+ /* @__PURE__ */ jsx153(
38285
38374
  "path",
38286
38375
  {
38287
38376
  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",
38288
38377
  transform: "translate(-144.023 -51.76)"
38289
38378
  }
38290
38379
  ),
38291
- /* @__PURE__ */ jsx152(
38380
+ /* @__PURE__ */ jsx153(
38292
38381
  "path",
38293
38382
  {
38294
38383
  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",
@@ -38305,13 +38394,13 @@ var ExcalidrawLogo = ({
38305
38394
  withText
38306
38395
  }) => {
38307
38396
  return /* @__PURE__ */ jsxs80("div", { className: `ExcalidrawLogo is-${size}`, style, children: [
38308
- /* @__PURE__ */ jsx152(LogoIcon, {}),
38309
- withText && /* @__PURE__ */ jsx152(LogoText, {})
38397
+ /* @__PURE__ */ jsx153(LogoIcon, {}),
38398
+ withText && /* @__PURE__ */ jsx153(LogoText, {})
38310
38399
  ] });
38311
38400
  };
38312
38401
 
38313
38402
  // components/welcome-screen/WelcomeScreen.Center.tsx
38314
- import { Fragment as Fragment25, jsx as jsx153, jsxs as jsxs81 } from "react/jsx-runtime";
38403
+ import { Fragment as Fragment25, jsx as jsx154, jsxs as jsxs81 } from "react/jsx-runtime";
38315
38404
  var WelcomeScreenMenuItemContent = ({
38316
38405
  icon,
38317
38406
  shortcut,
@@ -38319,9 +38408,9 @@ var WelcomeScreenMenuItemContent = ({
38319
38408
  }) => {
38320
38409
  const device = useDevice();
38321
38410
  return /* @__PURE__ */ jsxs81(Fragment25, { children: [
38322
- /* @__PURE__ */ jsx153("div", { className: "welcome-screen-menu-item__icon", children: icon }),
38323
- /* @__PURE__ */ jsx153("div", { className: "welcome-screen-menu-item__text", children }),
38324
- shortcut && !device.editor.isMobile && /* @__PURE__ */ jsx153("div", { className: "welcome-screen-menu-item__shortcut", children: shortcut })
38411
+ /* @__PURE__ */ jsx154("div", { className: "welcome-screen-menu-item__icon", children: icon }),
38412
+ /* @__PURE__ */ jsx154("div", { className: "welcome-screen-menu-item__text", children }),
38413
+ shortcut && !device.editor.isMobile && /* @__PURE__ */ jsx154("div", { className: "welcome-screen-menu-item__shortcut", children: shortcut })
38325
38414
  ] });
38326
38415
  };
38327
38416
  WelcomeScreenMenuItemContent.displayName = "WelcomeScreenMenuItemContent";
@@ -38333,14 +38422,14 @@ var WelcomeScreenMenuItem = ({
38333
38422
  className = "",
38334
38423
  ...props
38335
38424
  }) => {
38336
- return /* @__PURE__ */ jsx153(
38425
+ return /* @__PURE__ */ jsx154(
38337
38426
  "button",
38338
38427
  {
38339
38428
  ...props,
38340
38429
  type: "button",
38341
38430
  className: `welcome-screen-menu-item ${className}`,
38342
38431
  onClick: onSelect,
38343
- children: /* @__PURE__ */ jsx153(WelcomeScreenMenuItemContent, { icon, shortcut, children })
38432
+ children: /* @__PURE__ */ jsx154(WelcomeScreenMenuItemContent, { icon, shortcut, children })
38344
38433
  }
38345
38434
  );
38346
38435
  };
@@ -38353,7 +38442,7 @@ var WelcomeScreenMenuItemLink = ({
38353
38442
  className = "",
38354
38443
  ...props
38355
38444
  }) => {
38356
- return /* @__PURE__ */ jsx153(
38445
+ return /* @__PURE__ */ jsx154(
38357
38446
  "a",
38358
38447
  {
38359
38448
  ...props,
@@ -38361,38 +38450,38 @@ var WelcomeScreenMenuItemLink = ({
38361
38450
  href,
38362
38451
  target: "_blank",
38363
38452
  rel: "noreferrer",
38364
- children: /* @__PURE__ */ jsx153(WelcomeScreenMenuItemContent, { icon, shortcut, children })
38453
+ children: /* @__PURE__ */ jsx154(WelcomeScreenMenuItemContent, { icon, shortcut, children })
38365
38454
  }
38366
38455
  );
38367
38456
  };
38368
38457
  WelcomeScreenMenuItemLink.displayName = "WelcomeScreenMenuItemLink";
38369
38458
  var Center = ({ children }) => {
38370
38459
  const { WelcomeScreenCenterTunnel } = useTunnels();
38371
- return /* @__PURE__ */ jsx153(WelcomeScreenCenterTunnel.In, { children: /* @__PURE__ */ jsx153("div", { className: "welcome-screen-center", children: children || /* @__PURE__ */ jsxs81(Fragment25, { children: [
38372
- /* @__PURE__ */ jsx153(Logo, {}),
38373
- /* @__PURE__ */ jsx153(Heading, { children: t("welcomeScreen.defaults.center_heading") }),
38460
+ return /* @__PURE__ */ jsx154(WelcomeScreenCenterTunnel.In, { children: /* @__PURE__ */ jsx154("div", { className: "welcome-screen-center", children: children || /* @__PURE__ */ jsxs81(Fragment25, { children: [
38461
+ /* @__PURE__ */ jsx154(Logo, {}),
38462
+ /* @__PURE__ */ jsx154(Heading, { children: t("welcomeScreen.defaults.center_heading") }),
38374
38463
  /* @__PURE__ */ jsxs81(Menu, { children: [
38375
- /* @__PURE__ */ jsx153(MenuItemLoadScene, {}),
38376
- /* @__PURE__ */ jsx153(MenuItemHelp, {})
38464
+ /* @__PURE__ */ jsx154(MenuItemLoadScene, {}),
38465
+ /* @__PURE__ */ jsx154(MenuItemHelp, {})
38377
38466
  ] })
38378
38467
  ] }) }) });
38379
38468
  };
38380
38469
  Center.displayName = "Center";
38381
38470
  var Logo = ({ children }) => {
38382
- return /* @__PURE__ */ jsx153("div", { className: "welcome-screen-center__logo excalifont welcome-screen-decor", children: children || /* @__PURE__ */ jsx153(ExcalidrawLogo, { withText: true }) });
38471
+ return /* @__PURE__ */ jsx154("div", { className: "welcome-screen-center__logo excalifont welcome-screen-decor", children: children || /* @__PURE__ */ jsx154(ExcalidrawLogo, { withText: true }) });
38383
38472
  };
38384
38473
  Logo.displayName = "Logo";
38385
38474
  var Heading = ({ children }) => {
38386
- return /* @__PURE__ */ jsx153("div", { className: "welcome-screen-center__heading welcome-screen-decor excalifont", children });
38475
+ return /* @__PURE__ */ jsx154("div", { className: "welcome-screen-center__heading welcome-screen-decor excalifont", children });
38387
38476
  };
38388
38477
  Heading.displayName = "Heading";
38389
38478
  var Menu = ({ children }) => {
38390
- return /* @__PURE__ */ jsx153("div", { className: "welcome-screen-menu", children });
38479
+ return /* @__PURE__ */ jsx154("div", { className: "welcome-screen-menu", children });
38391
38480
  };
38392
38481
  Menu.displayName = "Menu";
38393
38482
  var MenuItemHelp = () => {
38394
38483
  const actionManager = useExcalidrawActionManager();
38395
- return /* @__PURE__ */ jsx153(
38484
+ return /* @__PURE__ */ jsx154(
38396
38485
  WelcomeScreenMenuItem,
38397
38486
  {
38398
38487
  onSelect: () => actionManager.executeAction(actionShortcuts),
@@ -38409,7 +38498,7 @@ var MenuItemLoadScene = () => {
38409
38498
  if (appState.viewModeEnabled) {
38410
38499
  return null;
38411
38500
  }
38412
- return /* @__PURE__ */ jsx153(
38501
+ return /* @__PURE__ */ jsx154(
38413
38502
  WelcomeScreenMenuItem,
38414
38503
  {
38415
38504
  onSelect: () => actionManager.executeAction(actionLoadScene),
@@ -38424,7 +38513,7 @@ var MenuItemLiveCollaborationTrigger = ({
38424
38513
  onSelect
38425
38514
  }) => {
38426
38515
  const { t: t2 } = useI18n();
38427
- return /* @__PURE__ */ jsx153(WelcomeScreenMenuItem, { shortcut: null, onSelect, icon: usersIcon, children: t2("labels.liveCollaboration") });
38516
+ return /* @__PURE__ */ jsx154(WelcomeScreenMenuItem, { shortcut: null, onSelect, icon: usersIcon, children: t2("labels.liveCollaboration") });
38428
38517
  };
38429
38518
  MenuItemLiveCollaborationTrigger.displayName = "MenuItemLiveCollaborationTrigger";
38430
38519
  Center.Logo = Logo;
@@ -38437,40 +38526,40 @@ Center.MenuItemLoadScene = MenuItemLoadScene;
38437
38526
  Center.MenuItemLiveCollaborationTrigger = MenuItemLiveCollaborationTrigger;
38438
38527
 
38439
38528
  // components/welcome-screen/WelcomeScreen.Hints.tsx
38440
- import { jsx as jsx154, jsxs as jsxs82 } from "react/jsx-runtime";
38529
+ import { jsx as jsx155, jsxs as jsxs82 } from "react/jsx-runtime";
38441
38530
  var MenuHint = ({ children }) => {
38442
38531
  const { WelcomeScreenMenuHintTunnel } = useTunnels();
38443
- return /* @__PURE__ */ jsx154(WelcomeScreenMenuHintTunnel.In, { children: /* @__PURE__ */ jsxs82("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu", children: [
38532
+ return /* @__PURE__ */ jsx155(WelcomeScreenMenuHintTunnel.In, { children: /* @__PURE__ */ jsxs82("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--menu", children: [
38444
38533
  WelcomeScreenMenuArrow,
38445
- /* @__PURE__ */ jsx154("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.menuHint") })
38534
+ /* @__PURE__ */ jsx155("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.menuHint") })
38446
38535
  ] }) });
38447
38536
  };
38448
38537
  MenuHint.displayName = "MenuHint";
38449
38538
  var ToolbarHint = ({ children }) => {
38450
38539
  const { WelcomeScreenToolbarHintTunnel } = useTunnels();
38451
- return /* @__PURE__ */ jsx154(WelcomeScreenToolbarHintTunnel.In, { children: /* @__PURE__ */ jsxs82("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar", children: [
38452
- /* @__PURE__ */ jsx154("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.toolbarHint") }),
38540
+ return /* @__PURE__ */ jsx155(WelcomeScreenToolbarHintTunnel.In, { children: /* @__PURE__ */ jsxs82("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--toolbar", children: [
38541
+ /* @__PURE__ */ jsx155("div", { className: "welcome-screen-decor-hint__label", children: children || t("welcomeScreen.defaults.toolbarHint") }),
38453
38542
  WelcomeScreenTopToolbarArrow
38454
38543
  ] }) });
38455
38544
  };
38456
38545
  ToolbarHint.displayName = "ToolbarHint";
38457
38546
  var HelpHint = ({ children }) => {
38458
38547
  const { WelcomeScreenHelpHintTunnel } = useTunnels();
38459
- return /* @__PURE__ */ jsx154(WelcomeScreenHelpHintTunnel.In, { children: /* @__PURE__ */ jsxs82("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help", children: [
38460
- /* @__PURE__ */ jsx154("div", { children: children || t("welcomeScreen.defaults.helpHint") }),
38548
+ return /* @__PURE__ */ jsx155(WelcomeScreenHelpHintTunnel.In, { children: /* @__PURE__ */ jsxs82("div", { className: "excalifont welcome-screen-decor welcome-screen-decor-hint welcome-screen-decor-hint--help", children: [
38549
+ /* @__PURE__ */ jsx155("div", { children: children || t("welcomeScreen.defaults.helpHint") }),
38461
38550
  WelcomeScreenHelpArrow
38462
38551
  ] }) });
38463
38552
  };
38464
38553
  HelpHint.displayName = "HelpHint";
38465
38554
 
38466
38555
  // components/welcome-screen/WelcomeScreen.tsx
38467
- import { Fragment as Fragment26, jsx as jsx155, jsxs as jsxs83 } from "react/jsx-runtime";
38556
+ import { Fragment as Fragment26, jsx as jsx156, jsxs as jsxs83 } from "react/jsx-runtime";
38468
38557
  var WelcomeScreen = (props) => {
38469
- return /* @__PURE__ */ jsx155(Fragment26, { children: props.children || /* @__PURE__ */ jsxs83(Fragment26, { children: [
38470
- /* @__PURE__ */ jsx155(Center, {}),
38471
- /* @__PURE__ */ jsx155(MenuHint, {}),
38472
- /* @__PURE__ */ jsx155(ToolbarHint, {}),
38473
- /* @__PURE__ */ jsx155(HelpHint, {})
38558
+ return /* @__PURE__ */ jsx156(Fragment26, { children: props.children || /* @__PURE__ */ jsxs83(Fragment26, { children: [
38559
+ /* @__PURE__ */ jsx156(Center, {}),
38560
+ /* @__PURE__ */ jsx156(MenuHint, {}),
38561
+ /* @__PURE__ */ jsx156(ToolbarHint, {}),
38562
+ /* @__PURE__ */ jsx156(HelpHint, {})
38474
38563
  ] }) });
38475
38564
  };
38476
38565
  WelcomeScreen.displayName = "WelcomeScreen";
@@ -38573,14 +38662,14 @@ var reconcileElements = (localElements, remoteElements, localAppState) => {
38573
38662
  };
38574
38663
 
38575
38664
  // components/TTDDialog/TTDDialogTrigger.tsx
38576
- import { jsx as jsx156, jsxs as jsxs84 } from "react/jsx-runtime";
38665
+ import { jsx as jsx157, jsxs as jsxs84 } from "react/jsx-runtime";
38577
38666
  var TTDDialogTrigger = ({
38578
38667
  children,
38579
38668
  icon
38580
38669
  }) => {
38581
38670
  const { TTDDialogTriggerTunnel } = useTunnels();
38582
38671
  const setAppState = useExcalidrawSetAppState();
38583
- return /* @__PURE__ */ jsx156(TTDDialogTriggerTunnel.In, { children: /* @__PURE__ */ jsxs84(
38672
+ return /* @__PURE__ */ jsx157(TTDDialogTriggerTunnel.In, { children: /* @__PURE__ */ jsxs84(
38584
38673
  DropdownMenu_default.Item,
38585
38674
  {
38586
38675
  onSelect: () => {
@@ -38590,7 +38679,7 @@ var TTDDialogTrigger = ({
38590
38679
  icon: icon ?? brainIcon,
38591
38680
  children: [
38592
38681
  children ?? t("labels.textToDiagram"),
38593
- /* @__PURE__ */ jsx156(DropdownMenu_default.Item.Badge, { children: "AI" })
38682
+ /* @__PURE__ */ jsx157(DropdownMenu_default.Item.Badge, { children: "AI" })
38594
38683
  ]
38595
38684
  }
38596
38685
  ) });
@@ -38610,7 +38699,7 @@ var DiagramToCodePlugin = (props) => {
38610
38699
  };
38611
38700
 
38612
38701
  // index.tsx
38613
- import { jsx as jsx157 } from "react/jsx-runtime";
38702
+ import { jsx as jsx158 } from "react/jsx-runtime";
38614
38703
  polyfill_default();
38615
38704
  var ExcalidrawBase = (props) => {
38616
38705
  const {
@@ -38683,7 +38772,7 @@ var ExcalidrawBase = (props) => {
38683
38772
  document.removeEventListener("touchmove", handleTouchMove);
38684
38773
  };
38685
38774
  }, []);
38686
- return /* @__PURE__ */ jsx157(EditorJotaiProvider, { store: editorJotaiStore, children: /* @__PURE__ */ jsx157(InitializeApp, { langCode, theme, children: /* @__PURE__ */ jsx157(
38775
+ return /* @__PURE__ */ jsx158(EditorJotaiProvider, { store: editorJotaiStore, children: /* @__PURE__ */ jsx158(InitializeApp, { langCode, theme, children: /* @__PURE__ */ jsx158(
38687
38776
  App_default,
38688
38777
  {
38689
38778
  onChange,