@excalidraw/excalidraw 0.18.0-39ce38a0d-200a6bd94 → 0.18.0-414182f

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 (36) hide show
  1. package/dist/dev/{chunk-Y7B3JU7D.js → chunk-CP5DND7P.js} +2 -2
  2. package/dist/dev/{chunk-Y7B3JU7D.js.map → chunk-CP5DND7P.js.map} +1 -1
  3. package/dist/dev/{chunk-GZYPVQVV.js → chunk-WWDIUJ2Q.js} +34 -30
  4. package/dist/dev/chunk-WWDIUJ2Q.js.map +7 -0
  5. package/dist/dev/data/{image-V3RGFWEQ.js → image-VTYIFRQE.js} +3 -3
  6. package/dist/dev/index.js +960 -734
  7. package/dist/dev/index.js.map +3 -3
  8. package/dist/dev/subset-shared.chunk.js +1 -1
  9. package/dist/dev/subset-worker.chunk.js +1 -1
  10. package/dist/prod/{chunk-ATYYHCCY.js → chunk-A66AFZZU.js} +1 -1
  11. package/dist/prod/{chunk-QH2XZQ34.js → chunk-VTWWEYSQ.js} +3 -3
  12. package/dist/prod/data/image-YQ6UXXDA.js +1 -0
  13. package/dist/prod/index.js +22 -22
  14. package/dist/prod/subset-shared.chunk.js +1 -1
  15. package/dist/prod/subset-worker.chunk.js +1 -1
  16. package/dist/types/common/src/constants.d.ts +12 -3
  17. package/dist/types/element/src/Scene.d.ts +6 -2
  18. package/dist/types/element/src/bounds.d.ts +1 -1
  19. package/dist/types/element/src/delta.d.ts +6 -4
  20. package/dist/types/element/src/index.d.ts +1 -0
  21. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  22. package/dist/types/element/src/store.d.ts +6 -1
  23. package/dist/types/element/src/textElement.d.ts +1 -1
  24. package/dist/types/excalidraw/actions/actionCanvas.d.ts +15 -1
  25. package/dist/types/excalidraw/clipboard.d.ts +62 -1
  26. package/dist/types/excalidraw/components/App.d.ts +11 -8
  27. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  28. package/dist/types/excalidraw/data/blob.d.ts +1 -5
  29. package/dist/types/excalidraw/data/restore.d.ts +6 -1
  30. package/dist/types/excalidraw/index.d.ts +1 -1
  31. package/dist/types/excalidraw/types.d.ts +5 -2
  32. package/history.ts +1 -1
  33. package/package.json +5 -5
  34. package/dist/dev/chunk-GZYPVQVV.js.map +0 -7
  35. package/dist/prod/data/image-4FTETSFG.js +0 -1
  36. /package/dist/dev/data/{image-V3RGFWEQ.js.map → image-VTYIFRQE.js.map} +0 -0
@@ -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:3015", 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: "3000", 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: "@excalidraw/excalidraw", PKG_VERSION: "0.18.0-39ce38a0d", 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:3015", 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: "3000", 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: "@excalidraw/excalidraw", PKG_VERSION: "0.18.0", DEV: true };
3
3
 
4
4
  export {
5
5
  define_import_meta_env_default
6
6
  };
7
- //# sourceMappingURL=chunk-Y7B3JU7D.js.map
7
+ //# sourceMappingURL=chunk-CP5DND7P.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["<define:import.meta.env>"],
4
4
  "sourcesContent": [""],
5
- "mappings": ";AAAA,uCAAC,MAAO,eAAc,6BAA8B,2CAA0C,8BAA+B,gDAA+C,sBAAuB,oCAAmC,0BAA2B,gFAA+E,wBAAyB,yBAAwB,kBAAmB,+BAA8B,mBAAoB,yBAAwB,qBAAsB,yBAAwB,0BAA2B,mRAA0S,kCAAmC,IAAG,0BAA2B,QAAO,cAAe,SAAQ,eAAgB,QAAO,mDAAoD,IAAG,2BAA4B,QAAO,wBAAyB,QAAO,qBAAsB,SAAQ,iCAAkC,wZAAuZ,iCAAkC,IAAG,UAAW,0BAAyB,aAAc,oBAAmB,KAAM,KAAI;",
5
+ "mappings": ";AAAA,uCAAC,MAAO,eAAc,6BAA8B,2CAA0C,8BAA+B,gDAA+C,sBAAuB,oCAAmC,0BAA2B,gFAA+E,wBAAyB,yBAAwB,kBAAmB,+BAA8B,mBAAoB,yBAAwB,qBAAsB,yBAAwB,0BAA2B,mRAA0S,kCAAmC,IAAG,0BAA2B,QAAO,cAAe,SAAQ,eAAgB,QAAO,mDAAoD,IAAG,2BAA4B,QAAO,wBAAyB,QAAO,qBAAsB,SAAQ,iCAAkC,wZAAuZ,iCAAkC,IAAG,UAAW,0BAAyB,aAAc,UAAS,KAAM,KAAI;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  define_import_meta_env_default
3
- } from "./chunk-Y7B3JU7D.js";
3
+ } from "./chunk-CP5DND7P.js";
4
4
  import {
5
5
  __publicField
6
6
  } from "./chunk-XDFCUUT6.js";
@@ -4815,7 +4815,7 @@ var restoreElementWithProperties = (element, extra) => {
4815
4815
  delete ret.boundElementIds;
4816
4816
  return ret;
4817
4817
  };
4818
- var restoreElement = (element) => {
4818
+ var restoreElement = (element, opts) => {
4819
4819
  element = { ...element };
4820
4820
  switch (element.type) {
4821
4821
  case "text":
@@ -4847,7 +4847,7 @@ var restoreElement = (element) => {
4847
4847
  autoResize: element.autoResize ?? true,
4848
4848
  lineHeight
4849
4849
  });
4850
- if (!text && !element.isDeleted) {
4850
+ if (opts?.deleteInvisibleElements && !text && !element.isDeleted) {
4851
4851
  element = { ...element, originalText: text, isDeleted: true };
4852
4852
  element = bumpVersion(element);
4853
4853
  }
@@ -4923,7 +4923,7 @@ var restoreElement = (element) => {
4923
4923
  elbowed: true,
4924
4924
  startBinding: repairBinding(element, element.startBinding),
4925
4925
  endBinding: repairBinding(element, element.endBinding),
4926
- fixedSegments: element.fixedSegments,
4926
+ fixedSegments: element.fixedSegments?.length && base.points.length >= 4 ? element.fixedSegments : null,
4927
4927
  startIsSpecial: element.startIsSpecial,
4928
4928
  endIsSpecial: element.endIsSpecial
4929
4929
  }) : restoreElementWithProperties(element, base);
@@ -4996,22 +4996,26 @@ var restoreElements = (elements, localElements, opts) => {
4996
4996
  const localElementsMap = localElements ? arrayToMap2(localElements) : null;
4997
4997
  const restoredElements = syncInvalidIndices2(
4998
4998
  (elements || []).reduce((elements2, element) => {
4999
- if (element.type !== "selection" && !isInvisiblySmallElement(element)) {
5000
- let migratedElement = restoreElement(element);
5001
- if (migratedElement) {
5002
- const localElement = localElementsMap?.get(element.id);
5003
- if (localElement && localElement.version > migratedElement.version) {
5004
- migratedElement = bumpVersion(
5005
- migratedElement,
5006
- localElement.version
5007
- );
5008
- }
5009
- if (existingIds.has(migratedElement.id)) {
5010
- migratedElement = { ...migratedElement, id: randomId() };
5011
- }
5012
- existingIds.add(migratedElement.id);
5013
- elements2.push(migratedElement);
4999
+ if (element.type === "selection") {
5000
+ return elements2;
5001
+ }
5002
+ let migratedElement = restoreElement(element, {
5003
+ deleteInvisibleElements: opts?.deleteInvisibleElements
5004
+ });
5005
+ if (migratedElement) {
5006
+ const localElement = localElementsMap?.get(element.id);
5007
+ const shouldMarkAsDeleted = opts?.deleteInvisibleElements && isInvisiblySmallElement(element);
5008
+ if (shouldMarkAsDeleted || localElement && localElement.version > migratedElement.version) {
5009
+ migratedElement = bumpVersion(migratedElement, localElement?.version);
5014
5010
  }
5011
+ if (shouldMarkAsDeleted) {
5012
+ migratedElement = { ...migratedElement, isDeleted: true };
5013
+ }
5014
+ if (existingIds.has(migratedElement.id)) {
5015
+ migratedElement = { ...migratedElement, id: randomId() };
5016
+ }
5017
+ existingIds.add(migratedElement.id);
5018
+ elements2.push(migratedElement);
5015
5019
  }
5016
5020
  return elements2;
5017
5021
  }, [])
@@ -5215,7 +5219,7 @@ var parseFileContents = async (blob) => {
5215
5219
  let contents;
5216
5220
  if (blob.type === MIME_TYPES6.png) {
5217
5221
  try {
5218
- return await (await import("./data/image-V3RGFWEQ.js")).decodePngMetadata(blob);
5222
+ return await (await import("./data/image-VTYIFRQE.js")).decodePngMetadata(blob);
5219
5223
  } catch (error) {
5220
5224
  if (error.message === "INVALID") {
5221
5225
  throw new ImageSceneDataError(
@@ -5310,7 +5314,11 @@ var loadSceneOrLibraryFromBlob = async (blob, localAppState, localElements, file
5310
5314
  },
5311
5315
  localAppState,
5312
5316
  localElements,
5313
- { repairBindings: true, refreshDimensions: false }
5317
+ {
5318
+ repairBindings: true,
5319
+ refreshDimensions: false,
5320
+ deleteInvisibleElements: true
5321
+ }
5314
5322
  )
5315
5323
  };
5316
5324
  } else if (isValidLibrary(data)) {
@@ -5455,16 +5463,11 @@ var ImageURLToFile = async (imageUrl, filename = "") => {
5455
5463
  }
5456
5464
  throw new Error("Error: unsupported file type", { cause: "UNSUPPORTED" });
5457
5465
  };
5458
- var getFileFromEvent = async (event) => {
5459
- const file = event.dataTransfer.files.item(0);
5460
- const fileHandle = await getFileHandle(event);
5461
- return { file: file ? await normalizeFile(file) : null, fileHandle };
5462
- };
5463
5466
  var getFileHandle = async (event) => {
5464
5467
  if (nativeFileSystemSupported) {
5465
5468
  try {
5466
- const item = event.dataTransfer.items[0];
5467
- const handle = await item.getAsFileSystemHandle() || null;
5469
+ const dataTransferItem = event instanceof DataTransferItem ? event : event.dataTransfer?.items?.[0];
5470
+ const handle = await dataTransferItem.getAsFileSystemHandle() || null;
5468
5471
  return handle;
5469
5472
  } catch (error) {
5470
5473
  console.warn(error.name, error.message);
@@ -5637,6 +5640,7 @@ export {
5637
5640
  exportToCanvas,
5638
5641
  exportToSvg,
5639
5642
  getExportSize,
5643
+ restoreElement,
5640
5644
  restoreElements,
5641
5645
  restoreAppState,
5642
5646
  restore,
@@ -5661,8 +5665,8 @@ export {
5661
5665
  resizeImageFile,
5662
5666
  SVGStringToFile,
5663
5667
  ImageURLToFile,
5664
- getFileFromEvent,
5668
+ getFileHandle,
5665
5669
  createFile,
5666
5670
  normalizeFile
5667
5671
  };
5668
- //# sourceMappingURL=chunk-GZYPVQVV.js.map
5672
+ //# sourceMappingURL=chunk-WWDIUJ2Q.js.map