@dwelle/excalidraw 0.5.0-1b87439 → 0.5.0-1f02022

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 (65) hide show
  1. package/dist/dev/{chunk-X5GXG5KQ.js → chunk-3GXH3W2B.js} +2 -2
  2. package/dist/dev/{chunk-C5SNO36W.js → chunk-W7VARKIN.js} +122 -14
  3. package/dist/dev/chunk-W7VARKIN.js.map +7 -0
  4. package/dist/dev/data/{image-QPYOGIXR.js → image-K6PZNZU5.js} +3 -3
  5. package/dist/dev/index.css +126 -1
  6. package/dist/dev/index.css.map +2 -2
  7. package/dist/dev/index.js +1331 -540
  8. package/dist/dev/index.js.map +4 -4
  9. package/dist/dev/subset-shared.chunk.js +1 -1
  10. package/dist/dev/subset-worker.chunk.js +1 -1
  11. package/dist/prod/{chunk-PUXVCJE2.js → chunk-ECYGWINK.js} +1 -1
  12. package/dist/prod/chunk-EKIPR22Y.js +33 -0
  13. package/dist/prod/data/image-E5NHCYPS.js +1 -0
  14. package/dist/prod/index.css +1 -1
  15. package/dist/prod/index.js +18 -18
  16. package/dist/prod/subset-shared.chunk.js +1 -1
  17. package/dist/prod/subset-worker.chunk.js +1 -1
  18. package/dist/types/common/src/constants.d.ts +5 -3
  19. package/dist/types/common/src/utils.d.ts +1 -0
  20. package/dist/types/element/src/renderElement.d.ts +4 -1
  21. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +6 -3
  22. package/dist/types/excalidraw/actions/actionBoundText.d.ts +4 -2
  23. package/dist/types/excalidraw/actions/actionCanvas.d.ts +40 -27
  24. package/dist/types/excalidraw/actions/actionClipboard.d.ts +12 -6
  25. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +2 -1
  26. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +6 -3
  27. package/dist/types/excalidraw/actions/actionElementLink.d.ts +2 -1
  28. package/dist/types/excalidraw/actions/actionElementLock.d.ts +4 -2
  29. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +2 -1
  30. package/dist/types/excalidraw/actions/actionExport.d.ts +18 -9
  31. package/dist/types/excalidraw/actions/actionFinalize.d.ts +4 -2
  32. package/dist/types/excalidraw/actions/actionFrame.d.ts +8 -4
  33. package/dist/types/excalidraw/actions/actionGroup.d.ts +4 -2
  34. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +3 -2
  35. package/dist/types/excalidraw/actions/actionLink.d.ts +2 -1
  36. package/dist/types/excalidraw/actions/actionMenu.d.ts +6 -3
  37. package/dist/types/excalidraw/actions/actionNavigate.d.ts +4 -2
  38. package/dist/types/excalidraw/actions/actionProperties.d.ts +48 -24
  39. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +2 -1
  40. package/dist/types/excalidraw/actions/actionStyles.d.ts +2 -1
  41. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +2 -1
  42. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +2 -1
  43. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +2 -1
  44. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +2 -1
  45. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +2 -1
  46. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +2 -1
  47. package/dist/types/excalidraw/actions/index.d.ts +1 -1
  48. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  49. package/dist/types/excalidraw/appState.d.ts +1 -0
  50. package/dist/types/excalidraw/components/Actions.d.ts +8 -1
  51. package/dist/types/excalidraw/components/App.d.ts +3 -9
  52. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +2 -1
  53. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  54. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +2 -1
  55. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  56. package/dist/types/excalidraw/components/icons.d.ts +6 -0
  57. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  58. package/dist/types/excalidraw/types.d.ts +3 -1
  59. package/dist/types/math/src/segment.d.ts +1 -0
  60. package/package.json +1 -1
  61. package/dist/dev/chunk-C5SNO36W.js.map +0 -7
  62. package/dist/prod/chunk-PMPXUF47.js +0 -33
  63. package/dist/prod/data/image-QVLKTECB.js +0 -1
  64. /package/dist/dev/{chunk-X5GXG5KQ.js.map → chunk-3GXH3W2B.js.map} +0 -0
  65. /package/dist/dev/data/{image-QPYOGIXR.js.map → image-K6PZNZU5.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.5.0-1b87439", 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.5.0-1f02022", DEV: true };
3
3
 
4
4
  export {
5
5
  define_import_meta_env_default
6
6
  };
7
- //# sourceMappingURL=chunk-X5GXG5KQ.js.map
7
+ //# sourceMappingURL=chunk-3GXH3W2B.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  define_import_meta_env_default
3
- } from "./chunk-X5GXG5KQ.js";
3
+ } from "./chunk-3GXH3W2B.js";
4
4
  import {
5
5
  __publicField
6
6
  } from "./chunk-XDFCUUT6.js";
@@ -168,7 +168,8 @@ var CLASSES = {
168
168
  SHAPE_ACTIONS_MENU: "App-menu__left",
169
169
  ZOOM_ACTIONS: "zoom-actions",
170
170
  SEARCH_MENU_INPUT_WRAPPER: "layer-ui__search-inputWrapper",
171
- CONVERT_ELEMENT_TYPE_POPUP: "ConvertElementTypePopup"
171
+ CONVERT_ELEMENT_TYPE_POPUP: "ConvertElementTypePopup",
172
+ SHAPE_ACTIONS_THEME_SCOPE: "shape-actions-theme-scope"
172
173
  };
173
174
  var CJK_HAND_DRAWN_FALLBACK_FONT = "Xiaolai";
174
175
  var WINDOWS_EMOJI_FALLBACK_FONT = "Segoe UI Emoji";
@@ -327,9 +328,10 @@ var DEFAULT_UI_OPTIONS = {
327
328
  image: true
328
329
  }
329
330
  };
330
- var MQ_MAX_WIDTH_PORTRAIT = 800;
331
- var MQ_MAX_WIDTH_LANDSCAPE = 1e3;
332
- var MQ_MAX_HEIGHT_LANDSCAPE = 500;
331
+ var MQ_MAX_MOBILE = 800;
332
+ var MQ_MIN_TABLET = MQ_MAX_MOBILE + 1;
333
+ var MQ_MAX_TABLET = 1400;
334
+ var MQ_MIN_WIDTH_DESKTOP = 1440;
333
335
  var MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;
334
336
  var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
335
337
  var EXPORT_SCALES = [1, 2, 3];
@@ -1429,6 +1431,17 @@ function lineSegmentIntersectionPoints(l, s, threshold) {
1429
1431
  }
1430
1432
  return candidate;
1431
1433
  }
1434
+ function lineSegmentsDistance(s1, s2) {
1435
+ if (lineSegmentIntersectionPoints(s1, s2)) {
1436
+ return 0;
1437
+ }
1438
+ return Math.min(
1439
+ distanceToLineSegment(s1[0], s2),
1440
+ distanceToLineSegment(s1[1], s2),
1441
+ distanceToLineSegment(s2[0], s1),
1442
+ distanceToLineSegment(s2[1], s1)
1443
+ );
1444
+ }
1432
1445
 
1433
1446
  // ../math/src/polygon.ts
1434
1447
  function polygon(...points) {
@@ -2199,6 +2212,41 @@ var reduceToCommonValue = (collection, getValue) => {
2199
2212
  }
2200
2213
  return commonValue;
2201
2214
  };
2215
+ var isMobileOrTablet = () => {
2216
+ const ua = navigator.userAgent || "";
2217
+ const platform = navigator.platform || "";
2218
+ const uaData = navigator.userAgentData;
2219
+ if (uaData) {
2220
+ const plat = (uaData.platform || "").toLowerCase();
2221
+ const isDesktopOS = plat === "windows" || plat === "macos" || plat === "linux" || plat === "chrome os";
2222
+ if (uaData.mobile === true) {
2223
+ return true;
2224
+ }
2225
+ if (uaData.mobile === false && plat === "android") {
2226
+ const looksTouchTablet = matchMedia?.("(hover: none)").matches && matchMedia?.("(pointer: coarse)").matches;
2227
+ return looksTouchTablet;
2228
+ }
2229
+ if (isDesktopOS) {
2230
+ return false;
2231
+ }
2232
+ }
2233
+ if (isIOS) {
2234
+ return true;
2235
+ }
2236
+ if (isAndroid) {
2237
+ const isAndroidPhone = /Mobile/i.test(ua);
2238
+ const isAndroidTablet = !isAndroidPhone;
2239
+ if (isAndroidPhone || isAndroidTablet) {
2240
+ const looksTouchTablet = matchMedia?.("(hover: none)").matches && matchMedia?.("(pointer: coarse)").matches;
2241
+ return looksTouchTablet;
2242
+ }
2243
+ }
2244
+ const looksDesktopPlatform = /Win|Linux|CrOS|Mac/.test(platform) || /Windows NT|X11|CrOS|Macintosh/.test(ua);
2245
+ if (looksDesktopPlatform) {
2246
+ return false;
2247
+ }
2248
+ return false;
2249
+ };
2202
2250
 
2203
2251
  // ../common/src/random.ts
2204
2252
  var random = new Random(Date.now());
@@ -10723,6 +10771,58 @@ function getFreeDrawPath2D(element) {
10723
10771
  return pathsCache.get(element);
10724
10772
  }
10725
10773
  function getFreeDrawSvgPath(element) {
10774
+ return getSvgPathFromStroke2(getFreedrawOutlinePoints(element));
10775
+ }
10776
+ function getFreedrawOutlineAsSegments(element, points, elementsMap) {
10777
+ const bounds = getElementBounds(
10778
+ {
10779
+ ...element,
10780
+ angle: 0
10781
+ },
10782
+ elementsMap
10783
+ );
10784
+ const center = pointFrom(
10785
+ (bounds[0] + bounds[2]) / 2,
10786
+ (bounds[1] + bounds[3]) / 2
10787
+ );
10788
+ invariant(points.length >= 2, "Freepath outline must have at least 2 points");
10789
+ return points.slice(2).reduce(
10790
+ (acc, curr) => {
10791
+ acc.push(
10792
+ lineSegment(
10793
+ acc[acc.length - 1][1],
10794
+ pointRotateRads(
10795
+ pointFrom(curr[0] + element.x, curr[1] + element.y),
10796
+ center,
10797
+ element.angle
10798
+ )
10799
+ )
10800
+ );
10801
+ return acc;
10802
+ },
10803
+ [
10804
+ lineSegment(
10805
+ pointRotateRads(
10806
+ pointFrom(
10807
+ points[0][0] + element.x,
10808
+ points[0][1] + element.y
10809
+ ),
10810
+ center,
10811
+ element.angle
10812
+ ),
10813
+ pointRotateRads(
10814
+ pointFrom(
10815
+ points[1][0] + element.x,
10816
+ points[1][1] + element.y
10817
+ ),
10818
+ center,
10819
+ element.angle
10820
+ )
10821
+ )
10822
+ ]
10823
+ );
10824
+ }
10825
+ function getFreedrawOutlinePoints(element) {
10726
10826
  const inputPoints = element.simulatePressure ? element.points : element.points.length ? element.points.map(([x, y], i) => [x, y, element.pressures[i]]) : [[0, 0, 0.5]];
10727
10827
  const options = {
10728
10828
  simulatePressure: element.simulatePressure,
@@ -10735,7 +10835,7 @@ function getFreeDrawSvgPath(element) {
10735
10835
  last: !!element.lastCommittedPoint
10736
10836
  // LastCommittedPoint is added on pointerup
10737
10837
  };
10738
- return getSvgPathFromStroke2(getStroke(inputPoints, options));
10838
+ return getStroke(inputPoints, options);
10739
10839
  }
10740
10840
  function med(A, B) {
10741
10841
  return [(A[0] + B[0]) / 2, (A[1] + B[1]) / 2];
@@ -18585,7 +18685,8 @@ var getDefaultAppState = () => {
18585
18685
  croppingElementId: null,
18586
18686
  searchMatches: null,
18587
18687
  lockedMultiSelections: {},
18588
- activeLockedId: null
18688
+ activeLockedId: null,
18689
+ stylesPanelMode: "full"
18589
18690
  };
18590
18691
  };
18591
18692
  var APP_STATE_STORAGE_CONF = /* @__PURE__ */ ((config) => config)({
@@ -18693,7 +18794,8 @@ var APP_STATE_STORAGE_CONF = /* @__PURE__ */ ((config) => config)({
18693
18794
  croppingElementId: { browser: false, export: false, server: false },
18694
18795
  searchMatches: { browser: false, export: false, server: false },
18695
18796
  lockedMultiSelections: { browser: true, export: true, server: true },
18696
- activeLockedId: { browser: false, export: false, server: false }
18797
+ activeLockedId: { browser: false, export: false, server: false },
18798
+ stylesPanelMode: { browser: true, export: false, server: false }
18697
18799
  });
18698
18800
  var _clearAppStateForStorage = (appState, exportType) => {
18699
18801
  const stateForExport = {};
@@ -23580,7 +23682,7 @@ var parseFileContents = async (blob) => {
23580
23682
  let contents;
23581
23683
  if (blob.type === MIME_TYPES.png) {
23582
23684
  try {
23583
- return await (await import("./data/image-QPYOGIXR.js")).decodePngMetadata(blob);
23685
+ return await (await import("./data/image-K6PZNZU5.js")).decodePngMetadata(blob);
23584
23686
  } catch (error) {
23585
23687
  if (error.message === "INVALID") {
23586
23688
  throw new ImageSceneDataError(
@@ -23963,7 +24065,6 @@ export {
23963
24065
  isSafari,
23964
24066
  isIOS,
23965
24067
  isBrave,
23966
- isMobile,
23967
24068
  supportsResizeObserver,
23968
24069
  APP_NAME,
23969
24070
  DRAGGING_THRESHOLD,
@@ -24009,9 +24110,10 @@ export {
24009
24110
  URL_QUERY_KEYS,
24010
24111
  URL_HASH_KEYS,
24011
24112
  DEFAULT_UI_OPTIONS,
24012
- MQ_MAX_WIDTH_PORTRAIT,
24013
- MQ_MAX_WIDTH_LANDSCAPE,
24014
- MQ_MAX_HEIGHT_LANDSCAPE,
24113
+ MQ_MAX_MOBILE,
24114
+ MQ_MIN_TABLET,
24115
+ MQ_MAX_TABLET,
24116
+ MQ_MIN_WIDTH_DESKTOP,
24015
24117
  MQ_RIGHT_SIDEBAR_MIN_WIDTH,
24016
24118
  EXPORT_SCALES,
24017
24119
  DEFAULT_EXPORT_PADDING,
@@ -24078,6 +24180,8 @@ export {
24078
24180
  pointRotateRads,
24079
24181
  pointDistance,
24080
24182
  lineSegment,
24183
+ lineSegmentsDistance,
24184
+ polygon,
24081
24185
  polygonFromPoints,
24082
24186
  polygonIncludesPointNonZero,
24083
24187
  rangeInclusive,
@@ -24136,6 +24240,7 @@ export {
24136
24240
  toBrandedType,
24137
24241
  promiseTry,
24138
24242
  reduceToCommonValue,
24243
+ isMobileOrTablet,
24139
24244
  randomInteger,
24140
24245
  randomId,
24141
24246
  normalizeLink,
@@ -24207,6 +24312,7 @@ export {
24207
24312
  getBoundTextMaxWidth,
24208
24313
  getBoundTextMaxHeight,
24209
24314
  getTextFromElements,
24315
+ distanceToElement,
24210
24316
  shouldTestInside,
24211
24317
  hitElementItself,
24212
24318
  hitElementBoundingBox,
@@ -24287,6 +24393,8 @@ export {
24287
24393
  renderSelectionElement,
24288
24394
  renderElement,
24289
24395
  getFreeDrawSvgPath,
24396
+ getFreedrawOutlineAsSegments,
24397
+ getFreedrawOutlinePoints,
24290
24398
  hasBackground,
24291
24399
  hasStrokeColor,
24292
24400
  hasStrokeWidth,
@@ -24444,4 +24552,4 @@ export {
24444
24552
  createFile,
24445
24553
  normalizeFile
24446
24554
  };
24447
- //# sourceMappingURL=chunk-C5SNO36W.js.map
24555
+ //# sourceMappingURL=chunk-W7VARKIN.js.map