@nous-excalidraw/excalidraw 0.18.8-beta.2 → 0.18.8-beta.4

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.
@@ -1,7 +1,7 @@
1
1
  // <define:import.meta.env>
2
- var define_import_meta_env_default = { MODE: "development", VITE_APP_BACKEND_V2_GET_URL: "https://json-dev.excalidraw.com/api/v2/", VITE_APP_BACKEND_V2_POST_URL: "https://json-dev.excalidraw.com/api/v2/post/", VITE_APP_LIBRARY_URL: "https://libraries.excalidraw.com", VITE_APP_LIBRARY_BACKEND: "https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries", VITE_APP_WS_SERVER_URL: "http://localhost:3002", VITE_APP_PLUS_LP: "https://plus.excalidraw.com", VITE_APP_PLUS_APP: "http://localhost:3000", VITE_APP_AI_BACKEND: "http://localhost:3016", VITE_APP_FIREBASE_CONFIG: '{"apiKey":"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8","authDomain":"excalidraw-oss-dev.firebaseapp.com","projectId":"excalidraw-oss-dev","storageBucket":"excalidraw-oss-dev.appspot.com","messagingSenderId":"664559512677","appId":"1:664559512677:web:a385181f2928d328a7aa8c"}', VITE_APP_DEV_DISABLE_LIVE_RELOAD: "", VITE_APP_ENABLE_TRACKING: "true", FAST_REFRESH: "false", VITE_APP_PORT: "3001", VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX: "", VITE_APP_COLLAPSE_OVERLAY: "true", VITE_APP_ENABLE_ESLINT: "true", VITE_APP_ENABLE_PWA: "false", VITE_APP_PLUS_EXPORT_PUBLIC_KEY: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm2g5T+Rub6Kbf1Mf57t0\n7r2zeHuVg4dla3r5ryXMswtzz6x767octl6oLThn33mQsPSy3GKglFZoCTXJR4ij\nba8SxB04sL/N8eRrKja7TFWjCVtRwTTfyy771NYYNFVJclkxHyE5qw4m27crHF1y\nUNWEjuqNMi/lwAErS9fFa2oJlWyT8U7zzv/5kQREkxZI6y9v0AF3qcbsy2731FnD\ns9ChJvOUW9toIab2gsIdrKW8ZNpu084ZFVKb6LNjvIXI1Se4oMTHeszXzNptzlot\nkdxxjOoaQMAyfljFSot1F1FlU6MQlag7UnFGvFjRHN1JI5q4K+n3a67DX+TMyRqS\nHQIDAQAB", VITE_APP_DISABLE_PREVENT_UNLOAD: "", PKG_NAME: "@nous-excalidraw/excalidraw", PKG_VERSION: "0.18.8-beta.1", DEV: true };
2
+ var define_import_meta_env_default = { MODE: "development", VITE_APP_BACKEND_V2_GET_URL: "https://json-dev.excalidraw.com/api/v2/", VITE_APP_BACKEND_V2_POST_URL: "https://json-dev.excalidraw.com/api/v2/post/", VITE_APP_LIBRARY_URL: "https://libraries.excalidraw.com", VITE_APP_LIBRARY_BACKEND: "https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries", VITE_APP_WS_SERVER_URL: "http://localhost:3002", VITE_APP_PLUS_LP: "https://plus.excalidraw.com", VITE_APP_PLUS_APP: "http://localhost:3000", VITE_APP_AI_BACKEND: "http://localhost:3016", VITE_APP_FIREBASE_CONFIG: '{"apiKey":"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8","authDomain":"excalidraw-oss-dev.firebaseapp.com","projectId":"excalidraw-oss-dev","storageBucket":"excalidraw-oss-dev.appspot.com","messagingSenderId":"664559512677","appId":"1:664559512677:web:a385181f2928d328a7aa8c"}', VITE_APP_DEV_DISABLE_LIVE_RELOAD: "", VITE_APP_ENABLE_TRACKING: "true", FAST_REFRESH: "false", VITE_APP_PORT: "3001", VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX: "", VITE_APP_COLLAPSE_OVERLAY: "true", VITE_APP_ENABLE_ESLINT: "true", VITE_APP_ENABLE_PWA: "false", VITE_APP_PLUS_EXPORT_PUBLIC_KEY: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm2g5T+Rub6Kbf1Mf57t0\n7r2zeHuVg4dla3r5ryXMswtzz6x767octl6oLThn33mQsPSy3GKglFZoCTXJR4ij\nba8SxB04sL/N8eRrKja7TFWjCVtRwTTfyy771NYYNFVJclkxHyE5qw4m27crHF1y\nUNWEjuqNMi/lwAErS9fFa2oJlWyT8U7zzv/5kQREkxZI6y9v0AF3qcbsy2731FnD\ns9ChJvOUW9toIab2gsIdrKW8ZNpu084ZFVKb6LNjvIXI1Se4oMTHeszXzNptzlot\nkdxxjOoaQMAyfljFSot1F1FlU6MQlag7UnFGvFjRHN1JI5q4K+n3a67DX+TMyRqS\nHQIDAQAB", VITE_APP_DISABLE_PREVENT_UNLOAD: "", PKG_NAME: "@nous-excalidraw/excalidraw", PKG_VERSION: "0.18.8-beta.3", DEV: true };
3
3
 
4
4
  export {
5
5
  define_import_meta_env_default
6
6
  };
7
- //# sourceMappingURL=chunk-4XDWWS2U.js.map
7
+ //# sourceMappingURL=chunk-XXIH6KHM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  define_import_meta_env_default
3
- } from "./chunk-4XDWWS2U.js";
3
+ } from "./chunk-XXIH6KHM.js";
4
4
  import {
5
5
  __publicField
6
6
  } from "./chunk-XDFCUUT6.js";
@@ -5092,7 +5092,7 @@ var parseFileContents = async (blob) => {
5092
5092
  let contents;
5093
5093
  if (blob.type === MIME_TYPES6.png) {
5094
5094
  try {
5095
- return await (await import("./data/image-AWTGBYIS.js")).decodePngMetadata(blob);
5095
+ return await (await import("./data/image-H5HH2ZII.js")).decodePngMetadata(blob);
5096
5096
  } catch (error) {
5097
5097
  if (error.message === "INVALID") {
5098
5098
  throw new ImageSceneDataError(
@@ -5526,4 +5526,4 @@ export {
5526
5526
  createFile,
5527
5527
  normalizeFile
5528
5528
  };
5529
- //# sourceMappingURL=chunk-BKNXJQRC.js.map
5529
+ //# sourceMappingURL=chunk-ZVDW37YC.js.map
@@ -1,4 +1,4 @@
1
- import "../../chunk-4XDWWS2U.js";
1
+ import "../../chunk-XXIH6KHM.js";
2
2
  import "../../chunk-XDFCUUT6.js";
3
3
 
4
4
  // components/TTDDialog/CodeMirrorEditor.tsx
@@ -256,4 +256,4 @@ var CodeMirrorEditor_default = CodeMirrorEditor;
256
256
  export {
257
257
  CodeMirrorEditor_default as default
258
258
  };
259
- //# sourceMappingURL=CodeMirrorEditor-PO23OISH.js.map
259
+ //# sourceMappingURL=CodeMirrorEditor-LSR2DPLH.js.map
@@ -2,12 +2,12 @@ import {
2
2
  decodePngMetadata,
3
3
  encodePngMetadata,
4
4
  getTEXtChunk
5
- } from "../chunk-BKNXJQRC.js";
6
- import "../chunk-4XDWWS2U.js";
5
+ } from "../chunk-ZVDW37YC.js";
6
+ import "../chunk-XXIH6KHM.js";
7
7
  import "../chunk-XDFCUUT6.js";
8
8
  export {
9
9
  decodePngMetadata,
10
10
  encodePngMetadata,
11
11
  getTEXtChunk
12
12
  };
13
- //# sourceMappingURL=image-AWTGBYIS.js.map
13
+ //# sourceMappingURL=image-H5HH2ZII.js.map
package/dist/dev/index.js CHANGED
@@ -65,10 +65,10 @@ import {
65
65
  serializeAsJSON,
66
66
  serializeLibraryAsJSON,
67
67
  strokeRectWithRotation_simple
68
- } from "./chunk-BKNXJQRC.js";
68
+ } from "./chunk-ZVDW37YC.js";
69
69
  import {
70
70
  define_import_meta_env_default
71
- } from "./chunk-4XDWWS2U.js";
71
+ } from "./chunk-XXIH6KHM.js";
72
72
  import {
73
73
  en_default
74
74
  } from "./chunk-4JOINNOK.js";
@@ -9640,7 +9640,7 @@ var exportCanvas = async (type, elements, appState, files, {
9640
9640
  let blob = canvasToBlob(tempCanvas);
9641
9641
  if (appState.exportEmbedScene) {
9642
9642
  blob = blob.then(
9643
- (blob2) => import("./data/image-AWTGBYIS.js").then(
9643
+ (blob2) => import("./data/image-H5HH2ZII.js").then(
9644
9644
  ({ encodePngMetadata: encodePngMetadata2 }) => encodePngMetadata2({
9645
9645
  blob: blob2,
9646
9646
  metadata: serializeAsJSON(elements, appState, files, "local")
@@ -28500,7 +28500,7 @@ var TTDDialogInput = ({
28500
28500
  setShowSpinner(true);
28501
28501
  }
28502
28502
  }, SPINNER_DELAY_MS);
28503
- import("./components/TTDDialog/CodeMirrorEditor-PO23OISH.js").then((mod) => {
28503
+ import("./components/TTDDialog/CodeMirrorEditor-LSR2DPLH.js").then((mod) => {
28504
28504
  if (!cancelled) {
28505
28505
  setEditorState({ type: "ready", component: mod.default });
28506
28506
  }
@@ -38123,7 +38123,8 @@ var App = class _App extends React46.Component {
38123
38123
  const frameTitleMutedColor = isDarkTheme ? FRAME_STYLE4.nameColorDarkTheme : FRAME_STYLE4.nameColorLightTheme;
38124
38124
  const isFrameTitleHovered = this.state.hoveredFrameId === f.id && !this.state.selectedElementIds[f.id];
38125
38125
  const isFrameTitleSelected = !!this.state.selectedElementIds[f.id];
38126
- const frameTitleColor = isFrameTitleSelected ? isDarkTheme ? "#ffffff" : "#000000" : isFrameTitleHovered ? "#C6A6FF" : frameTitleMutedColor;
38126
+ const frameTitleAccentColor = "#8F6AEF";
38127
+ const frameTitleColor = isFrameTitleSelected || isFrameTitleHovered ? frameTitleAccentColor : frameTitleMutedColor;
38127
38128
  if (f.id === this.state.editingFrame) {
38128
38129
  const frameNameInEdit = frameName;
38129
38130
  frameNameJSX = /* @__PURE__ */ jsx162(
@@ -45030,6 +45031,48 @@ var App = class _App extends React46.Component {
45030
45031
  }
45031
45032
  return null;
45032
45033
  }
45034
+ /**
45035
+ * When a frame wins z-order at a point, its full interior still hits — so
45036
+ * images/embeds below it in the stack never surface. Prefer the topmost
45037
+ * descendant in the same hit stack that passes a real geometry hit.
45038
+ */
45039
+ getTopFrameDescendantHitUnderPoint(frame, allHitElements, x, y) {
45040
+ const elementsMap = this.scene.getNonDeletedElementsMap();
45041
+ const point = pointFrom34(x, y);
45042
+ const isUnderFrame = (element) => {
45043
+ let fid = element.frameId;
45044
+ while (fid) {
45045
+ if (fid === frame.id) {
45046
+ return true;
45047
+ }
45048
+ const parent = elementsMap.get(fid);
45049
+ if (!parent) {
45050
+ return false;
45051
+ }
45052
+ fid = parent.frameId;
45053
+ }
45054
+ return false;
45055
+ };
45056
+ for (let i = allHitElements.length - 1; i >= 0; i--) {
45057
+ const e = allHitElements[i];
45058
+ if (e.id === frame.id) {
45059
+ continue;
45060
+ }
45061
+ if (!isUnderFrame(e)) {
45062
+ continue;
45063
+ }
45064
+ if (hitElementItself3({
45065
+ point,
45066
+ element: e,
45067
+ threshold: this.getElementHitThreshold(e),
45068
+ elementsMap,
45069
+ frameNameBound: isFrameLikeElement15(e) ? this.frameNameBoundsCache.get(e) : null
45070
+ })) {
45071
+ return e;
45072
+ }
45073
+ }
45074
+ return null;
45075
+ }
45033
45076
  // NOTE: Hot path for hit testing, so avoid unnecessary computations
45034
45077
  getElementAtPosition(x, y, opts) {
45035
45078
  let allHitElements = [];
@@ -45050,7 +45093,7 @@ var App = class _App extends React46.Component {
45050
45093
  }
45051
45094
  }
45052
45095
  const elementWithHighestZIndex = allHitElements[allHitElements.length - 1];
45053
- return hitElementItself3({
45096
+ let resolved = hitElementItself3({
45054
45097
  point: pointFrom34(x, y),
45055
45098
  element: elementWithHighestZIndex,
45056
45099
  // when overlapping, we would like to be more precise
@@ -45059,6 +45102,18 @@ var App = class _App extends React46.Component {
45059
45102
  elementsMap: this.scene.getNonDeletedElementsMap(),
45060
45103
  frameNameBound: isFrameLikeElement15(elementWithHighestZIndex) ? this.frameNameBoundsCache.get(elementWithHighestZIndex) : null
45061
45104
  }) ? elementWithHighestZIndex : allHitElements[allHitElements.length - 2];
45105
+ if (isFrameLikeElement15(resolved)) {
45106
+ const descendantHit = this.getTopFrameDescendantHitUnderPoint(
45107
+ resolved,
45108
+ allHitElements,
45109
+ x,
45110
+ y
45111
+ );
45112
+ if (descendantHit) {
45113
+ return descendantHit;
45114
+ }
45115
+ }
45116
+ return resolved;
45062
45117
  }
45063
45118
  if (allHitElements.length === 1) {
45064
45119
  return allHitElements[0];