@nous-excalidraw/excalidraw 0.18.8-beta.3 → 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.2", 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-THDF6G4R.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-THDF6G4R.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-HQZA4ZXO.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-C54LEWVC.js.map
5529
+ //# sourceMappingURL=chunk-ZVDW37YC.js.map
@@ -1,4 +1,4 @@
1
- import "../../chunk-THDF6G4R.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-676CGAJL.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-C54LEWVC.js";
6
- import "../chunk-THDF6G4R.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-HQZA4ZXO.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-C54LEWVC.js";
68
+ } from "./chunk-ZVDW37YC.js";
69
69
  import {
70
70
  define_import_meta_env_default
71
- } from "./chunk-THDF6G4R.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-HQZA4ZXO.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-676CGAJL.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
  }
@@ -45031,6 +45031,48 @@ var App = class _App extends React46.Component {
45031
45031
  }
45032
45032
  return null;
45033
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
+ }
45034
45076
  // NOTE: Hot path for hit testing, so avoid unnecessary computations
45035
45077
  getElementAtPosition(x, y, opts) {
45036
45078
  let allHitElements = [];
@@ -45051,7 +45093,7 @@ var App = class _App extends React46.Component {
45051
45093
  }
45052
45094
  }
45053
45095
  const elementWithHighestZIndex = allHitElements[allHitElements.length - 1];
45054
- return hitElementItself3({
45096
+ let resolved = hitElementItself3({
45055
45097
  point: pointFrom34(x, y),
45056
45098
  element: elementWithHighestZIndex,
45057
45099
  // when overlapping, we would like to be more precise
@@ -45060,6 +45102,18 @@ var App = class _App extends React46.Component {
45060
45102
  elementsMap: this.scene.getNonDeletedElementsMap(),
45061
45103
  frameNameBound: isFrameLikeElement15(elementWithHighestZIndex) ? this.frameNameBoundsCache.get(elementWithHighestZIndex) : null
45062
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;
45063
45117
  }
45064
45118
  if (allHitElements.length === 1) {
45065
45119
  return allHitElements[0];