@excalidraw/common 0.18.0-f0063e113 → 0.18.0-f2600fe

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 (96) hide show
  1. package/dist/dev/index.js +180 -44
  2. package/dist/dev/index.js.map +3 -3
  3. package/dist/prod/index.js +3 -3
  4. package/dist/types/common/src/constants.d.ts +19 -15
  5. package/dist/types/common/src/editorInterface.d.ts +34 -0
  6. package/dist/types/common/src/index.d.ts +1 -0
  7. package/dist/types/common/src/utils.d.ts +2 -1
  8. package/dist/types/element/src/Scene.d.ts +6 -2
  9. package/dist/types/element/src/align.d.ts +2 -1
  10. package/dist/types/element/src/bounds.d.ts +1 -1
  11. package/dist/types/element/src/delta.d.ts +16 -4
  12. package/dist/types/element/src/distribute.d.ts +2 -1
  13. package/dist/types/element/src/groups.d.ts +1 -0
  14. package/dist/types/element/src/index.d.ts +1 -0
  15. package/dist/types/element/src/linearElementEditor.d.ts +2 -1
  16. package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
  17. package/dist/types/element/src/renderElement.d.ts +4 -1
  18. package/dist/types/element/src/resizeTest.d.ts +5 -4
  19. package/dist/types/element/src/store.d.ts +8 -2
  20. package/dist/types/element/src/textElement.d.ts +1 -1
  21. package/dist/types/element/src/transformHandles.d.ts +5 -4
  22. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +21 -12
  23. package/dist/types/excalidraw/actions/actionBoundText.d.ts +14 -8
  24. package/dist/types/excalidraw/actions/actionCanvas.d.ts +94 -54
  25. package/dist/types/excalidraw/actions/actionClipboard.d.ts +45 -26
  26. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +7 -4
  27. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +25 -16
  28. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +1 -1
  29. package/dist/types/excalidraw/actions/actionElementLink.d.ts +7 -4
  30. package/dist/types/excalidraw/actions/actionElementLock.d.ts +14 -8
  31. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +7 -4
  32. package/dist/types/excalidraw/actions/actionExport.d.ts +63 -36
  33. package/dist/types/excalidraw/actions/actionFinalize.d.ts +16 -9
  34. package/dist/types/excalidraw/actions/actionFrame.d.ts +28 -16
  35. package/dist/types/excalidraw/actions/actionGroup.d.ts +14 -8
  36. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +41 -7
  37. package/dist/types/excalidraw/actions/actionLink.d.ts +5 -2
  38. package/dist/types/excalidraw/actions/actionMenu.d.ts +7 -372
  39. package/dist/types/excalidraw/actions/actionNavigate.d.ts +14 -8
  40. package/dist/types/excalidraw/actions/actionProperties.d.ts +122 -68
  41. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +7 -4
  42. package/dist/types/excalidraw/actions/actionStyles.d.ts +7 -4
  43. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +7 -4
  44. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +7 -4
  45. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +7 -4
  46. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +7 -4
  47. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +7 -4
  48. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +8 -5
  49. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  50. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  51. package/dist/types/excalidraw/appState.d.ts +5 -1
  52. package/dist/types/excalidraw/clipboard.d.ts +64 -1
  53. package/dist/types/excalidraw/components/Actions.d.ts +20 -7
  54. package/dist/types/excalidraw/components/App.d.ts +29 -23
  55. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
  56. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
  57. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
  58. package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
  59. package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
  60. package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -1
  61. package/dist/types/excalidraw/components/FilledButton.d.ts +1 -1
  62. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
  63. package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
  64. package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
  65. package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
  66. package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
  67. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
  68. package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
  69. package/dist/types/excalidraw/components/MobileToolBar.d.ts +11 -0
  70. package/dist/types/excalidraw/components/Popover.d.ts +2 -1
  71. package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
  72. package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -2
  73. package/dist/types/excalidraw/components/TextField.d.ts +1 -0
  74. package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
  75. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -2
  76. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +4 -2
  77. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +2 -1
  78. package/dist/types/excalidraw/components/icons.d.ts +10 -0
  79. package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +13 -1
  80. package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +0 -3
  81. package/dist/types/excalidraw/components/shapes.d.ts +129 -1
  82. package/dist/types/excalidraw/data/blob.d.ts +3 -7
  83. package/dist/types/excalidraw/data/reconcile.d.ts +1 -0
  84. package/dist/types/excalidraw/data/restore.d.ts +6 -1
  85. package/dist/types/excalidraw/data/types.d.ts +4 -1
  86. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  87. package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +3 -1
  88. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
  89. package/dist/types/excalidraw/index.d.ts +4 -4
  90. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
  91. package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
  92. package/dist/types/excalidraw/scene/types.d.ts +3 -3
  93. package/dist/types/excalidraw/shortcut.d.ts +1 -0
  94. package/dist/types/excalidraw/types.d.ts +23 -19
  95. package/dist/types/math/src/segment.d.ts +1 -0
  96. package/package.json +5 -2
package/dist/dev/index.js CHANGED
@@ -281,49 +281,48 @@ var BinaryHeap = class {
281
281
  content = [];
282
282
  sinkDown(idx) {
283
283
  const node = this.content[idx];
284
+ const nodeScore = this.scoreFunction(node);
284
285
  while (idx > 0) {
285
286
  const parentN = (idx + 1 >> 1) - 1;
286
287
  const parent = this.content[parentN];
287
- if (this.scoreFunction(node) < this.scoreFunction(parent)) {
288
- this.content[parentN] = node;
288
+ if (nodeScore < this.scoreFunction(parent)) {
289
289
  this.content[idx] = parent;
290
290
  idx = parentN;
291
291
  } else {
292
292
  break;
293
293
  }
294
294
  }
295
+ this.content[idx] = node;
295
296
  }
296
297
  bubbleUp(idx) {
297
298
  const length = this.content.length;
298
299
  const node = this.content[idx];
299
300
  const score = this.scoreFunction(node);
300
301
  while (true) {
301
- const child2N = idx + 1 << 1;
302
- const child1N = child2N - 1;
303
- let swap = null;
304
- let child1Score = 0;
302
+ const child1N = (idx + 1 << 1) - 1;
303
+ const child2N = child1N + 1;
304
+ let smallestIdx = idx;
305
+ let smallestScore = score;
305
306
  if (child1N < length) {
306
- const child1 = this.content[child1N];
307
- child1Score = this.scoreFunction(child1);
308
- if (child1Score < score) {
309
- swap = child1N;
307
+ const child1Score = this.scoreFunction(this.content[child1N]);
308
+ if (child1Score < smallestScore) {
309
+ smallestIdx = child1N;
310
+ smallestScore = child1Score;
310
311
  }
311
312
  }
312
313
  if (child2N < length) {
313
- const child2 = this.content[child2N];
314
- const child2Score = this.scoreFunction(child2);
315
- if (child2Score < (swap === null ? score : child1Score)) {
316
- swap = child2N;
314
+ const child2Score = this.scoreFunction(this.content[child2N]);
315
+ if (child2Score < smallestScore) {
316
+ smallestIdx = child2N;
317
317
  }
318
318
  }
319
- if (swap !== null) {
320
- this.content[idx] = this.content[swap];
321
- this.content[swap] = node;
322
- idx = swap;
323
- } else {
319
+ if (smallestIdx === idx) {
324
320
  break;
325
321
  }
322
+ this.content[idx] = this.content[smallestIdx];
323
+ idx = smallestIdx;
326
324
  }
325
+ this.content[idx] = node;
327
326
  }
328
327
  push(node) {
329
328
  this.content.push(node);
@@ -641,19 +640,11 @@ var rgbToHex = (r, g, b) => `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(
641
640
 
642
641
  // src/constants.ts
643
642
  init_define_import_meta_env();
644
- var isDarwin = /Mac|iPod|iPhone|iPad/.test(navigator.platform);
645
- var isWindows = /^Win/.test(navigator.platform);
646
- var isAndroid = /\b(android)\b/i.test(navigator.userAgent);
647
- var isFirefox = typeof window !== "undefined" && "netscape" in window && navigator.userAgent.indexOf("rv:") > 1 && navigator.userAgent.indexOf("Gecko") > 1;
648
- var isChrome = navigator.userAgent.indexOf("Chrome") !== -1;
649
- var isSafari = !isChrome && navigator.userAgent.indexOf("Safari") !== -1;
650
- var isIOS = /iPad|iPhone/.test(navigator.platform) || // iPadOS 13+
651
- navigator.userAgent.includes("Mac") && "ontouchend" in document;
652
- var isBrave = () => navigator.brave?.isBrave?.name === "isBrave";
653
643
  var supportsResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
654
644
  var APP_NAME = "Excalidraw";
655
645
  var TEXT_AUTOWRAP_THRESHOLD = 36;
656
646
  var DRAGGING_THRESHOLD = 10;
647
+ var MINIMUM_ARROW_SIZE = 20;
657
648
  var LINE_CONFIRM_THRESHOLD = 8;
658
649
  var ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;
659
650
  var ELEMENT_TRANSLATE_AMOUNT = 1;
@@ -730,10 +721,12 @@ var ENV = {
730
721
  PRODUCTION: "production"
731
722
  };
732
723
  var CLASSES = {
724
+ SIDEBAR: "sidebar",
733
725
  SHAPE_ACTIONS_MENU: "App-menu__left",
734
726
  ZOOM_ACTIONS: "zoom-actions",
735
727
  SEARCH_MENU_INPUT_WRAPPER: "layer-ui__search-inputWrapper",
736
- CONVERT_ELEMENT_TYPE_POPUP: "ConvertElementTypePopup"
728
+ CONVERT_ELEMENT_TYPE_POPUP: "ConvertElementTypePopup",
729
+ SHAPE_ACTIONS_THEME_SCOPE: "shape-actions-theme-scope"
737
730
  };
738
731
  var CJK_HAND_DRAWN_FALLBACK_FONT = "Xiaolai";
739
732
  var WINDOWS_EMOJI_FALLBACK_FONT = "Segoe UI Emoji";
@@ -828,13 +821,19 @@ var IMAGE_MIME_TYPES = {
828
821
  avif: "image/avif",
829
822
  jfif: "image/jfif"
830
823
  };
831
- var MIME_TYPES = {
824
+ var STRING_MIME_TYPES = {
832
825
  text: "text/plain",
833
826
  html: "text/html",
834
827
  json: "application/json",
835
828
  // excalidraw data
836
829
  excalidraw: "application/vnd.excalidraw+json",
830
+ // LEGACY: fully-qualified library JSON data
837
831
  excalidrawlib: "application/vnd.excalidrawlib+json",
832
+ // list of excalidraw library item ids
833
+ excalidrawlibIds: "application/vnd.excalidrawlib.ids+json"
834
+ };
835
+ var MIME_TYPES = {
836
+ ...STRING_MIME_TYPES,
838
837
  // image-encoded excalidraw data
839
838
  "excalidraw.svg": "image/svg+xml",
840
839
  "excalidraw.png": "image/png",
@@ -893,10 +892,6 @@ var DEFAULT_UI_OPTIONS = {
893
892
  image: true
894
893
  }
895
894
  };
896
- var MQ_MAX_WIDTH_PORTRAIT = 730;
897
- var MQ_MAX_WIDTH_LANDSCAPE = 1e3;
898
- var MQ_MAX_HEIGHT_LANDSCAPE = 500;
899
- var MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;
900
895
  var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
901
896
  var EXPORT_SCALES = [1, 2, 3];
902
897
  var DEFAULT_EXPORT_PADDING = 10;
@@ -1016,6 +1011,10 @@ var UserIdleState = /* @__PURE__ */ ((UserIdleState2) => {
1016
1011
  return UserIdleState2;
1017
1012
  })(UserIdleState || {});
1018
1013
  var LINE_POLYGON_POINT_MERGE_DISTANCE = 20;
1014
+ var DOUBLE_TAP_POSITION_THRESHOLD = 35;
1015
+ var MOBILE_ACTION_BUTTON_BG = {
1016
+ background: "var(--mobile-action-button-bg)"
1017
+ };
1019
1018
 
1020
1019
  // src/font-metadata.ts
1021
1020
  init_define_import_meta_env();
@@ -1171,6 +1170,133 @@ var Queue = class {
1171
1170
 
1172
1171
  // src/keys.ts
1173
1172
  init_define_import_meta_env();
1173
+
1174
+ // src/editorInterface.ts
1175
+ init_define_import_meta_env();
1176
+ var DESKTOP_UI_MODE_STORAGE_KEY = "excalidraw.desktopUIMode";
1177
+ var MQ_MAX_MOBILE = 599;
1178
+ var MQ_MAX_WIDTH_LANDSCAPE = 1e3;
1179
+ var MQ_MAX_HEIGHT_LANDSCAPE = 500;
1180
+ var MQ_MIN_TABLET = MQ_MAX_MOBILE + 1;
1181
+ var MQ_MAX_TABLET = 1400;
1182
+ var MQ_MIN_WIDTH_DESKTOP = 1440;
1183
+ var MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;
1184
+ var isDarwin = /Mac|iPod|iPhone|iPad/.test(navigator.platform);
1185
+ var isWindows = /^Win/.test(navigator.platform);
1186
+ var isAndroid = /\b(android)\b/i.test(navigator.userAgent);
1187
+ var isFirefox = typeof window !== "undefined" && "netscape" in window && navigator.userAgent.indexOf("rv:") > 1 && navigator.userAgent.indexOf("Gecko") > 1;
1188
+ var isChrome = navigator.userAgent.indexOf("Chrome") !== -1;
1189
+ var isSafari = !isChrome && navigator.userAgent.indexOf("Safari") !== -1;
1190
+ var isIOS = /iPad|iPhone/i.test(navigator.platform) || // iPadOS 13+
1191
+ navigator.userAgent.includes("Mac") && "ontouchend" in document;
1192
+ var isBrave = () => navigator.brave?.isBrave?.name === "isBrave";
1193
+ var isMobileBreakpoint = (width, height) => {
1194
+ return width <= MQ_MAX_MOBILE || height < MQ_MAX_HEIGHT_LANDSCAPE && width < MQ_MAX_WIDTH_LANDSCAPE;
1195
+ };
1196
+ var isTabletBreakpoint = (editorWidth, editorHeight) => {
1197
+ const minSide = Math.min(editorWidth, editorHeight);
1198
+ const maxSide = Math.max(editorWidth, editorHeight);
1199
+ return minSide >= MQ_MIN_TABLET && maxSide <= MQ_MAX_TABLET;
1200
+ };
1201
+ var isMobileOrTablet = () => {
1202
+ const ua = navigator.userAgent || "";
1203
+ const platform = navigator.platform || "";
1204
+ const uaData = navigator.userAgentData;
1205
+ if (uaData) {
1206
+ const plat = (uaData.platform || "").toLowerCase();
1207
+ const isDesktopOS = plat === "windows" || plat === "macos" || plat === "linux" || plat === "chrome os";
1208
+ if (uaData.mobile === true) {
1209
+ return true;
1210
+ }
1211
+ if (uaData.mobile === false && plat === "android") {
1212
+ const looksTouchTablet = matchMedia?.("(hover: none)").matches && matchMedia?.("(pointer: coarse)").matches;
1213
+ return looksTouchTablet;
1214
+ }
1215
+ if (isDesktopOS) {
1216
+ return false;
1217
+ }
1218
+ }
1219
+ if (isIOS) {
1220
+ return true;
1221
+ }
1222
+ if (isAndroid) {
1223
+ const isAndroidPhone = /Mobile/i.test(ua);
1224
+ const isAndroidTablet = !isAndroidPhone;
1225
+ if (isAndroidPhone || isAndroidTablet) {
1226
+ const looksTouchTablet = matchMedia?.("(hover: none)").matches && matchMedia?.("(pointer: coarse)").matches;
1227
+ return looksTouchTablet;
1228
+ }
1229
+ }
1230
+ const looksDesktopPlatform = /Win|Linux|CrOS|Mac/.test(platform) || /Windows NT|X11|CrOS|Macintosh/.test(ua);
1231
+ if (looksDesktopPlatform) {
1232
+ return false;
1233
+ }
1234
+ return false;
1235
+ };
1236
+ var getFormFactor = (editorWidth, editorHeight) => {
1237
+ if (isMobileBreakpoint(editorWidth, editorHeight)) {
1238
+ return "phone";
1239
+ }
1240
+ if (isTabletBreakpoint(editorWidth, editorHeight)) {
1241
+ return "tablet";
1242
+ }
1243
+ return "desktop";
1244
+ };
1245
+ var deriveStylesPanelMode = (editorInterface) => {
1246
+ if (editorInterface.formFactor === "phone") {
1247
+ return "mobile";
1248
+ }
1249
+ if (editorInterface.formFactor === "tablet") {
1250
+ return "compact";
1251
+ }
1252
+ return editorInterface.desktopUIMode;
1253
+ };
1254
+ var createUserAgentDescriptor = (userAgentString) => {
1255
+ const normalizedUA = userAgentString ?? "";
1256
+ let platform = "unknown";
1257
+ if (isIOS) {
1258
+ platform = "ios";
1259
+ } else if (isAndroid) {
1260
+ platform = "android";
1261
+ } else if (normalizedUA) {
1262
+ platform = "other";
1263
+ }
1264
+ return {
1265
+ isMobileDevice: isMobileOrTablet(),
1266
+ platform
1267
+ };
1268
+ };
1269
+ var loadDesktopUIModePreference = () => {
1270
+ if (typeof window === "undefined") {
1271
+ return null;
1272
+ }
1273
+ try {
1274
+ const stored = window.localStorage.getItem(DESKTOP_UI_MODE_STORAGE_KEY);
1275
+ if (stored === "compact" || stored === "full") {
1276
+ return stored;
1277
+ }
1278
+ } catch (error) {
1279
+ }
1280
+ return null;
1281
+ };
1282
+ var persistDesktopUIMode = (mode) => {
1283
+ if (typeof window === "undefined") {
1284
+ return;
1285
+ }
1286
+ try {
1287
+ window.localStorage.setItem(DESKTOP_UI_MODE_STORAGE_KEY, mode);
1288
+ } catch (error) {
1289
+ }
1290
+ };
1291
+ var setDesktopUIMode = (mode) => {
1292
+ if (mode !== "compact" && mode !== "full") {
1293
+ return;
1294
+ }
1295
+ persistDesktopUIMode(mode);
1296
+ return mode;
1297
+ };
1298
+
1299
+ // src/keys.ts
1174
1300
  var CODES = {
1175
1301
  EQUAL: "Equal",
1176
1302
  MINUS: "Minus",
@@ -1416,7 +1542,7 @@ var isInteractive = (target) => {
1416
1542
  return isInputLike(target) || target instanceof Element && !!target.closest("label, button");
1417
1543
  };
1418
1544
  var isWritableElement = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
1419
- target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password");
1545
+ target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search");
1420
1546
  var getFontFamilyString = ({
1421
1547
  fontFamily
1422
1548
  }) => {
@@ -1433,6 +1559,9 @@ var getFontString = ({
1433
1559
  }) => {
1434
1560
  return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;
1435
1561
  };
1562
+ var nextAnimationFrame = async (cb) => {
1563
+ requestAnimationFrame(() => requestAnimationFrame(cb));
1564
+ };
1436
1565
  var debounce = (fn, timeout) => {
1437
1566
  let handle = 0;
1438
1567
  let lastArgs = null;
@@ -1618,13 +1747,6 @@ var updateActiveTool = (appState, data) => {
1618
1747
  var isFullScreen = () => document.fullscreenElement?.nodeName === "HTML";
1619
1748
  var allowFullScreen = () => document.documentElement.requestFullscreen();
1620
1749
  var exitFullScreen = () => document.exitFullscreen();
1621
- var getShortcutKey = (shortcut) => {
1622
- shortcut = shortcut.replace(/\bAlt\b/i, "Alt").replace(/\bShift\b/i, "Shift").replace(/\b(Enter|Return)\b/i, "Enter");
1623
- if (isDarwin) {
1624
- return shortcut.replace(/\bCtrlOrCmd\b/gi, "Cmd").replace(/\bAlt\b/i, "Option");
1625
- }
1626
- return shortcut.replace(/\bCtrlOrCmd\b/gi, "Ctrl");
1627
- };
1628
1750
  var viewportCoordsToSceneCoords = ({ clientX, clientY }, {
1629
1751
  zoom,
1630
1752
  offsetLeft,
@@ -2188,6 +2310,7 @@ export {
2188
2310
  DEFAULT_UI_OPTIONS,
2189
2311
  DEFAULT_VERSION,
2190
2312
  DEFAULT_VERTICAL_ALIGN,
2313
+ DOUBLE_TAP_POSITION_THRESHOLD,
2191
2314
  DRAGGING_THRESHOLD,
2192
2315
  EDITOR_LS_KEYS,
2193
2316
  ELEMENTS_PALETTE_SHADE_INDEXES,
@@ -2225,13 +2348,18 @@ export {
2225
2348
  MAX_DECIMALS_FOR_SVG_EXPORT,
2226
2349
  MAX_ZOOM,
2227
2350
  MIME_TYPES,
2351
+ MINIMUM_ARROW_SIZE,
2228
2352
  MIN_FONT_SIZE,
2229
2353
  MIN_WIDTH_OR_HEIGHT,
2230
2354
  MIN_ZOOM,
2355
+ MOBILE_ACTION_BUTTON_BG,
2231
2356
  MONOSPACE_GENERIC_FONT,
2232
2357
  MQ_MAX_HEIGHT_LANDSCAPE,
2358
+ MQ_MAX_MOBILE,
2359
+ MQ_MAX_TABLET,
2233
2360
  MQ_MAX_WIDTH_LANDSCAPE,
2234
- MQ_MAX_WIDTH_PORTRAIT,
2361
+ MQ_MIN_TABLET,
2362
+ MQ_MIN_WIDTH_DESKTOP,
2235
2363
  MQ_RIGHT_SIDEBAR_MIN_WIDTH,
2236
2364
  ORIG_ID,
2237
2365
  POINTER_BUTTON,
@@ -2245,6 +2373,7 @@ export {
2245
2373
  SHIFT_LOCKING_ANGLE,
2246
2374
  SIDE_RESIZING_THRESHOLD,
2247
2375
  STATS_PANELS,
2376
+ STRING_MIME_TYPES,
2248
2377
  STROKE_WIDTH,
2249
2378
  SVG_DOCUMENT_PREAMBLE,
2250
2379
  SVG_NS,
@@ -2279,7 +2408,9 @@ export {
2279
2408
  chunk,
2280
2409
  cloneJSON,
2281
2410
  composeEventHandlers,
2411
+ createUserAgentDescriptor,
2282
2412
  debounce,
2413
+ deriveStylesPanelMode,
2283
2414
  distance,
2284
2415
  easeOut,
2285
2416
  easeToValuesRAF,
@@ -2294,13 +2425,13 @@ export {
2294
2425
  getFontFamilyFallbacks,
2295
2426
  getFontFamilyString,
2296
2427
  getFontString,
2428
+ getFormFactor,
2297
2429
  getFrame,
2298
2430
  getGenericFontFamilyFallback,
2299
2431
  getGlobalCSSVariable,
2300
2432
  getGridPoint,
2301
2433
  getLineHeight,
2302
2434
  getNearestScrollableContainer,
2303
- getShortcutKey,
2304
2435
  getSizeFromPoints,
2305
2436
  getSpecificColorShades,
2306
2437
  getSvgPathFromStroke,
@@ -2324,6 +2455,7 @@ export {
2324
2455
  isLatinChar,
2325
2456
  isLocalLink,
2326
2457
  isMemberOf,
2458
+ isMobileBreakpoint,
2327
2459
  isPrimitive,
2328
2460
  isProdEnv,
2329
2461
  isPromiseLike,
@@ -2333,16 +2465,19 @@ export {
2333
2465
  isSafari,
2334
2466
  isServerEnv,
2335
2467
  isShallowEqual,
2468
+ isTabletBreakpoint,
2336
2469
  isTestEnv,
2337
2470
  isToolIcon,
2338
2471
  isTransparent,
2339
2472
  isWindows,
2340
2473
  isWritableElement,
2474
+ loadDesktopUIModePreference,
2341
2475
  mapFind,
2342
2476
  matchKey,
2343
2477
  memoize,
2344
2478
  muteFSAbortError,
2345
2479
  nFormatter,
2480
+ nextAnimationFrame,
2346
2481
  normalizeEOL,
2347
2482
  normalizeLink,
2348
2483
  preventUnload,
@@ -2360,6 +2495,7 @@ export {
2360
2495
  sceneCoordsToViewportCoords,
2361
2496
  selectNode,
2362
2497
  setDateTimeForTests,
2498
+ setDesktopUIMode,
2363
2499
  shouldMaintainAspectRatio,
2364
2500
  shouldResizeFromCenter,
2365
2501
  shouldRotateWithDiscreteAngle,