@nous-excalidraw/excalidraw 0.18.9-beta.14 → 0.18.9-beta.17

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,6 +1,6 @@
1
1
  import {
2
2
  define_import_meta_env_default
3
- } from "./chunk-JCTQVEL2.js";
3
+ } from "./chunk-QC5BMXYR.js";
4
4
  import {
5
5
  __publicField
6
6
  } from "./chunk-XDFCUUT6.js";
@@ -5112,7 +5112,7 @@ var parseFileContents = async (blob) => {
5112
5112
  let contents;
5113
5113
  if (blob.type === MIME_TYPES6.png) {
5114
5114
  try {
5115
- return await (await import("./data/image-2IFHJYKN.js")).decodePngMetadata(blob);
5115
+ return await (await import("./data/image-7WWLMIRY.js")).decodePngMetadata(blob);
5116
5116
  } catch (error) {
5117
5117
  if (error.message === "INVALID") {
5118
5118
  throw new ImageSceneDataError(
@@ -5546,4 +5546,4 @@ export {
5546
5546
  createFile,
5547
5547
  normalizeFile
5548
5548
  };
5549
- //# sourceMappingURL=chunk-WUT5T53W.js.map
5549
+ //# sourceMappingURL=chunk-PB7MJY3E.js.map
@@ -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.9-beta.14", 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.9-beta.17", DEV: true };
3
3
 
4
4
  export {
5
5
  define_import_meta_env_default
6
6
  };
7
- //# sourceMappingURL=chunk-JCTQVEL2.js.map
7
+ //# sourceMappingURL=chunk-QC5BMXYR.js.map
@@ -1,4 +1,4 @@
1
- import "../../chunk-JCTQVEL2.js";
1
+ import "../../chunk-QC5BMXYR.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-DSRONN6H.js.map
259
+ //# sourceMappingURL=CodeMirrorEditor-ZQ7NUPTY.js.map
@@ -2,12 +2,12 @@ import {
2
2
  decodePngMetadata,
3
3
  encodePngMetadata,
4
4
  getTEXtChunk
5
- } from "../chunk-WUT5T53W.js";
6
- import "../chunk-JCTQVEL2.js";
5
+ } from "../chunk-PB7MJY3E.js";
6
+ import "../chunk-QC5BMXYR.js";
7
7
  import "../chunk-XDFCUUT6.js";
8
8
  export {
9
9
  decodePngMetadata,
10
10
  encodePngMetadata,
11
11
  getTEXtChunk
12
12
  };
13
- //# sourceMappingURL=image-2IFHJYKN.js.map
13
+ //# sourceMappingURL=image-7WWLMIRY.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-WUT5T53W.js";
68
+ } from "./chunk-PB7MJY3E.js";
69
69
  import {
70
70
  define_import_meta_env_default
71
- } from "./chunk-JCTQVEL2.js";
71
+ } from "./chunk-QC5BMXYR.js";
72
72
  import {
73
73
  en_default
74
74
  } from "./chunk-IXBA2ET3.js";
@@ -9717,7 +9717,7 @@ var exportCanvas = async (type, elements, appState, files, {
9717
9717
  let blob = canvasToBlob(tempCanvas);
9718
9718
  if (appState.exportEmbedScene) {
9719
9719
  blob = blob.then(
9720
- (blob2) => import("./data/image-2IFHJYKN.js").then(
9720
+ (blob2) => import("./data/image-7WWLMIRY.js").then(
9721
9721
  ({ encodePngMetadata: encodePngMetadata2 }) => encodePngMetadata2({
9722
9722
  blob: blob2,
9723
9723
  metadata: serializeAsJSON(elements, appState, files, "local")
@@ -28773,7 +28773,7 @@ var TTDDialogInput = ({
28773
28773
  setShowSpinner(true);
28774
28774
  }
28775
28775
  }, SPINNER_DELAY_MS);
28776
- import("./components/TTDDialog/CodeMirrorEditor-DSRONN6H.js").then((mod) => {
28776
+ import("./components/TTDDialog/CodeMirrorEditor-ZQ7NUPTY.js").then((mod) => {
28777
28777
  if (!cancelled) {
28778
28778
  setEditorState({ type: "ready", component: mod.default });
28779
28779
  }
@@ -38215,7 +38215,7 @@ var gesture = {
38215
38215
  initialDistance: null,
38216
38216
  initialScale: null
38217
38217
  };
38218
- var App = class _App extends React46.Component {
38218
+ var _App = class _App extends React46.Component {
38219
38219
  constructor(props) {
38220
38220
  super(props);
38221
38221
  __publicField(this, "canvas");
@@ -39667,16 +39667,29 @@ var App = class _App extends React46.Component {
39667
39667
  this.lastViewportPosition.y = event.clientY;
39668
39668
  }
39669
39669
  ));
39670
- __publicField(this, "getEditorUIOffsets", () => {
39670
+ __publicField(this, "getHostUiBottomRelativeToContainer", (selector, containerTop) => {
39671
+ const rect = document.querySelector(selector)?.getBoundingClientRect();
39672
+ if (!rect || rect.width <= 0 || rect.height <= 0) {
39673
+ return 0;
39674
+ }
39675
+ return Math.max(rect.bottom - containerTop, 0);
39676
+ });
39677
+ __publicField(this, "getEditorUIOffsets", (options) => {
39671
39678
  const container = this.excalidrawContainerRef?.current;
39672
39679
  const containerTop = container?.getBoundingClientRect()?.top ?? 0;
39673
39680
  const nativeToolbarBottom = container?.querySelector(".App-toolbar")?.getBoundingClientRect()?.bottom ?? 0;
39674
- const customToolbarBottom = document.querySelector(".tool-bar-wrapper")?.getBoundingClientRect()?.bottom ?? 0;
39675
- const topUiOffset = Math.max(
39681
+ const customToolbarBottom = this.getHostUiBottomRelativeToContainer(
39682
+ _App.HOST_TOOLBAR_SELECTOR,
39683
+ containerTop
39684
+ );
39685
+ let topUiOffset = Math.max(
39676
39686
  nativeToolbarBottom - containerTop,
39677
- customToolbarBottom - containerTop,
39687
+ customToolbarBottom,
39678
39688
  0
39679
39689
  );
39690
+ if (options?.reserveStylebarAboveElement) {
39691
+ topUiOffset += _App.HOST_STYLEBAR_GAP_ABOVE_ELEMENT + _App.HOST_STYLEBAR_HEIGHT;
39692
+ }
39680
39693
  const sidebarRect = container?.querySelector(".sidebar")?.getBoundingClientRect();
39681
39694
  const propertiesPanelRect = container?.querySelector(".App-menu__left")?.getBoundingClientRect();
39682
39695
  const PADDING = 16;
@@ -40586,19 +40599,14 @@ var App = class _App extends React46.Component {
40586
40599
  );
40587
40600
  const hitElement = this.getElementAtPosition(sceneX, sceneY);
40588
40601
  if (hitElement && (isImageElement9(hitElement) || isFrameLikeElement15(hitElement) || isEmbeddableElement5(hitElement))) {
40589
- const canvasOffsets = this.getEditorUIOffsets();
40590
40602
  this.scrollToContent(hitElement, {
40591
40603
  animate: true,
40592
40604
  duration: 500,
40593
40605
  fitToViewport: true,
40594
40606
  viewportZoomFactor: 0.85,
40595
- // minZoom:
40596
- // this.state.zoom.value +
40597
- // getInteractiveZoomStep(this.state.zoom.value, "in"),
40598
- canvasOffsets: {
40599
- ...canvasOffsets,
40600
- top: (canvasOffsets.top ?? 0) + 20
40601
- }
40607
+ canvasOffsets: this.getEditorUIOffsets({
40608
+ reserveStylebarAboveElement: true
40609
+ })
40602
40610
  });
40603
40611
  return;
40604
40612
  }
@@ -47393,6 +47401,17 @@ var App = class _App extends React46.Component {
47393
47401
  this.setAppState({});
47394
47402
  }
47395
47403
  };
47404
+ /**
47405
+ * 宿主业务顶部 UI 占位(与 web-art-flow 布局对齐):
47406
+ * - tool-bar-wrapper: 顶部工具栏
47407
+ * - stylebar-wrapper: 选中元素上方的样式栏(moveStyleMenuBar 定位在元素上方)
47408
+ */
47409
+ __publicField(_App, "HOST_TOOLBAR_SELECTOR", ".tool-bar-wrapper");
47410
+ /** styleBar.vue height: 48px */
47411
+ __publicField(_App, "HOST_STYLEBAR_HEIGHT", 48);
47412
+ /** utils/index.ts: MEUE_LEFT_BAR_HEIGHT(47) + STYLE_BAR_TO_ELEMENT_TOP_GAP_PX(26) */
47413
+ __publicField(_App, "HOST_STYLEBAR_GAP_ABOVE_ELEMENT", 73);
47414
+ var App = _App;
47396
47415
  var createTestHook = () => {
47397
47416
  if (isTestEnv5() || isDevEnv10()) {
47398
47417
  window.h = window.h || {};