@excalidraw/common 0.18.0-0457ac9 → 0.18.0-063e025

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 (122) hide show
  1. package/dist/dev/index.js +36 -68
  2. package/dist/dev/index.js.map +3 -3
  3. package/dist/prod/index.js +3 -3
  4. package/dist/types/common/src/colors.d.ts +1 -1
  5. package/dist/types/common/src/constants.d.ts +9 -7
  6. package/dist/types/common/src/utils.d.ts +0 -42
  7. package/dist/types/element/src/Scene.d.ts +1 -1
  8. package/dist/types/element/src/align.d.ts +2 -2
  9. package/dist/types/element/src/binding.d.ts +6 -6
  10. package/dist/types/element/src/bounds.d.ts +19 -6
  11. package/dist/types/element/src/collision.d.ts +1 -1
  12. package/dist/types/element/src/comparisons.d.ts +1 -0
  13. package/dist/types/element/src/distribute.d.ts +2 -2
  14. package/dist/types/element/src/duplicate.d.ts +3 -3
  15. package/dist/types/element/src/embeddable.d.ts +2 -2
  16. package/dist/types/element/src/flowchart.d.ts +3 -3
  17. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  18. package/dist/types/element/src/frame.d.ts +4 -4
  19. package/dist/types/element/src/groups.d.ts +9 -9
  20. package/dist/types/element/src/index.d.ts +1 -1
  21. package/dist/types/element/src/linearElementEditor.d.ts +10 -10
  22. package/dist/types/element/src/newElement.d.ts +1 -0
  23. package/dist/types/element/src/renderElement.d.ts +0 -3
  24. package/dist/types/element/src/resizeElements.d.ts +2 -2
  25. package/dist/types/element/src/selection.d.ts +5 -5
  26. package/dist/types/element/src/textElement.d.ts +7 -7
  27. package/dist/types/element/src/transform.d.ts +2 -2
  28. package/dist/types/element/src/typeChecks.d.ts +25 -25
  29. package/dist/types/element/src/types.d.ts +8 -1
  30. package/dist/types/element/src/zindex.d.ts +2 -2
  31. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +12 -6
  32. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  33. package/dist/types/excalidraw/actions/actionBoundText.d.ts +8 -4
  34. package/dist/types/excalidraw/actions/actionCanvas.d.ts +61 -389
  35. package/dist/types/excalidraw/actions/actionClipboard.d.ts +8 -4
  36. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +4 -2
  37. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +13 -7
  38. package/dist/types/excalidraw/actions/actionDeselect.d.ts +4 -2
  39. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  40. package/dist/types/excalidraw/actions/actionElementLink.d.ts +4 -2
  41. package/dist/types/excalidraw/actions/actionElementLock.d.ts +9 -5
  42. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +4 -2
  43. package/dist/types/excalidraw/actions/actionExport.d.ts +8 -4
  44. package/dist/types/excalidraw/actions/actionFrame.d.ts +29 -20
  45. package/dist/types/excalidraw/actions/actionGroup.d.ts +23 -19
  46. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +7 -4
  47. package/dist/types/excalidraw/actions/actionLink.d.ts +5 -3
  48. package/dist/types/excalidraw/actions/actionMenu.d.ts +4 -2
  49. package/dist/types/excalidraw/actions/actionProperties.d.ts +35 -22
  50. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +9 -7
  51. package/dist/types/excalidraw/actions/actionStyles.d.ts +4 -2
  52. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +5 -3
  53. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +8 -7
  54. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +5 -3
  55. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +5 -3
  56. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +8 -7
  57. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  58. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +5 -3
  59. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +5 -3
  60. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +5 -3
  61. package/dist/types/excalidraw/actions/index.d.ts +1 -1
  62. package/dist/types/excalidraw/actions/types.d.ts +4 -4
  63. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  64. package/dist/types/excalidraw/appState.d.ts +2 -1
  65. package/dist/types/excalidraw/components/Actions.d.ts +2 -3
  66. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  67. package/dist/types/excalidraw/components/App.d.ts +61 -32
  68. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +2 -2
  69. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  70. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  71. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  72. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  73. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  74. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  75. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  76. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  77. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  78. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  79. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  80. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  81. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  82. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  83. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  84. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  85. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  86. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  87. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  88. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  89. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  90. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  91. package/dist/types/excalidraw/components/icons.d.ts +2 -0
  92. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +6 -3
  93. package/dist/types/excalidraw/data/blob.d.ts +8 -4
  94. package/dist/types/excalidraw/data/index.d.ts +4 -4
  95. package/dist/types/excalidraw/data/json.d.ts +10 -8
  96. package/dist/types/excalidraw/data/library.d.ts +1 -1
  97. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  98. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  99. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  100. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  101. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  102. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  103. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
  104. package/dist/types/excalidraw/scene/Renderer.d.ts +12 -11
  105. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  106. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  107. package/dist/types/excalidraw/scene/types.d.ts +1 -3
  108. package/dist/types/excalidraw/snapping.d.ts +7 -7
  109. package/dist/types/excalidraw/types.d.ts +168 -11
  110. package/dist/types/excalidraw/viewport.d.ts +316 -0
  111. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -3
  112. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  113. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  114. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  115. package/dist/types/laser-pointer/src/state.d.ts +35 -0
  116. package/dist/types/utils/src/export.d.ts +3 -3
  117. package/dist/types/utils/src/index.d.ts +1 -2
  118. package/package.json +1 -1
  119. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  120. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  121. package/dist/types/utils/src/bbox.d.ts +0 -9
  122. package/dist/types/utils/src/withinBounds.d.ts +0 -19
package/dist/dev/index.js CHANGED
@@ -1394,7 +1394,10 @@ var cssInvert = (r, g, b, percent) => {
1394
1394
  const invertedB = invertComponent(b);
1395
1395
  return { r: invertedR, g: invertedG, b: invertedB };
1396
1396
  };
1397
- var applyDarkModeFilter = (color) => {
1397
+ var applyDarkModeFilter = (color, enable = true) => {
1398
+ if (!enable) {
1399
+ return color;
1400
+ }
1398
1401
  const cached = DARK_MODE_COLORS_CACHE?.get(color);
1399
1402
  if (cached) {
1400
1403
  return cached;
@@ -1836,8 +1839,10 @@ var DEFAULT_UI_OPTIONS = {
1836
1839
  var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
1837
1840
  var EXPORT_SCALES = [1, 2, 3];
1838
1841
  var DEFAULT_EXPORT_PADDING = 10;
1839
- var DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT = 1440;
1840
- var MAX_ALLOWED_FILE_BYTES = 4 * 1024 * 1024;
1842
+ var DEFAULT_IMAGE_OPTIONS = {
1843
+ maxWidthOrHeight: 1440,
1844
+ maxFileSizeBytes: 4 * 1024 * 1024
1845
+ };
1841
1846
  var SVG_NS = "http://www.w3.org/2000/svg";
1842
1847
  var SVG_DOCUMENT_PREAMBLE = `<?xml version="1.0" standalone="no"?>
1843
1848
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
@@ -1884,16 +1889,34 @@ var ROUGHNESS = {
1884
1889
  artist: 1,
1885
1890
  cartoonist: 2
1886
1891
  };
1892
+ var STROKE_WIDTH_KEYS = [
1893
+ "thin",
1894
+ "medium",
1895
+ "bold"
1896
+ ];
1887
1897
  var STROKE_WIDTH = {
1888
1898
  thin: 1,
1899
+ medium: 2,
1900
+ bold: 4,
1901
+ extraBold: 8
1902
+ // unused (may be introduced in the future)
1903
+ };
1904
+ var FREEDRAW_STROKE_WIDTH = {
1905
+ thin: 0.5,
1906
+ medium: 1,
1889
1907
  bold: 2,
1890
1908
  extraBold: 4
1909
+ // legacy (may be used again in the future)
1910
+ };
1911
+ var getStrokeWidthByKey = (elementType, strokeWidthKey) => {
1912
+ return elementType === "freedraw" ? FREEDRAW_STROKE_WIDTH[strokeWidthKey] : STROKE_WIDTH[strokeWidthKey];
1891
1913
  };
1914
+ var DEFAULT_ELEMENT_STROKE_WIDTH_KEY = "medium";
1892
1915
  var DEFAULT_ELEMENT_PROPS = {
1893
1916
  strokeColor: COLOR_PALETTE.black,
1894
1917
  backgroundColor: COLOR_PALETTE.transparent,
1895
1918
  fillStyle: "solid",
1896
- strokeWidth: 2,
1919
+ strokeWidth: STROKE_WIDTH[DEFAULT_ELEMENT_STROKE_WIDTH_KEY],
1897
1920
  strokeStyle: "solid",
1898
1921
  roughness: ROUGHNESS.artist,
1899
1922
  opacity: 100,
@@ -1957,6 +1980,8 @@ var BIND_MODE_TIMEOUT = 700;
1957
1980
  var MOBILE_ACTION_BUTTON_BG = {
1958
1981
  background: "var(--mobile-action-button-bg)"
1959
1982
  };
1983
+ var DEFAULT_STROKE_STREAMLINE = 0.5;
1984
+ var DEFAULT_STROKE_STREAMLINE_PRECISE = 0.2;
1960
1985
 
1961
1986
  // src/font-metadata.ts
1962
1987
  init_define_import_meta_env();
@@ -2570,67 +2595,6 @@ var throttleRAF = (fn) => {
2570
2595
  var easeOut = (k) => {
2571
2596
  return 1 - Math.pow(1 - k, 4);
2572
2597
  };
2573
- var easeOutInterpolate = (from, to, progress) => {
2574
- return (to - from) * easeOut(progress) + from;
2575
- };
2576
- var easeToValuesRAF = ({
2577
- fromValues,
2578
- toValues,
2579
- onStep,
2580
- duration = 250,
2581
- interpolateValue,
2582
- onStart,
2583
- onEnd,
2584
- onCancel
2585
- }) => {
2586
- let canceled = false;
2587
- let frameId = 0;
2588
- let startTime;
2589
- function step(timestamp) {
2590
- if (canceled) {
2591
- return;
2592
- }
2593
- if (startTime === void 0) {
2594
- startTime = timestamp;
2595
- onStart?.();
2596
- }
2597
- const elapsed = Math.min(timestamp - startTime, duration);
2598
- const factor = easeOut(elapsed / duration);
2599
- const newValues = {};
2600
- Object.keys(fromValues).forEach((key) => {
2601
- const _key = key;
2602
- const result = (toValues[_key] - fromValues[_key]) * factor + fromValues[_key];
2603
- newValues[_key] = result;
2604
- });
2605
- onStep(newValues);
2606
- if (elapsed < duration) {
2607
- const progress = elapsed / duration;
2608
- const newValues2 = {};
2609
- Object.keys(fromValues).forEach((key) => {
2610
- const _key = key;
2611
- const startValue = fromValues[_key];
2612
- const endValue = toValues[_key];
2613
- let result;
2614
- result = interpolateValue ? interpolateValue(startValue, endValue, progress, _key) : easeOutInterpolate(startValue, endValue, progress);
2615
- if (result == null) {
2616
- result = easeOutInterpolate(startValue, endValue, progress);
2617
- }
2618
- newValues2[_key] = result;
2619
- });
2620
- onStep(newValues2);
2621
- frameId = window.requestAnimationFrame(step);
2622
- } else {
2623
- onStep(toValues);
2624
- onEnd?.();
2625
- }
2626
- }
2627
- frameId = window.requestAnimationFrame(step);
2628
- return () => {
2629
- onCancel?.();
2630
- canceled = true;
2631
- window.cancelAnimationFrame(frameId);
2632
- };
2633
- };
2634
2598
  var chunk = (array, size) => {
2635
2599
  if (!array.length || size < 1) {
2636
2600
  return [];
@@ -3553,17 +3517,20 @@ export {
3553
3517
  DEFAULT_ELEMENT_STROKE_COLOR_INDEX,
3554
3518
  DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,
3555
3519
  DEFAULT_ELEMENT_STROKE_PICKS,
3520
+ DEFAULT_ELEMENT_STROKE_WIDTH_KEY,
3556
3521
  DEFAULT_EXPORT_PADDING,
3557
3522
  DEFAULT_FILENAME,
3558
3523
  DEFAULT_FONT_FAMILY,
3559
3524
  DEFAULT_FONT_SIZE,
3560
3525
  DEFAULT_GRID_SIZE,
3561
3526
  DEFAULT_GRID_STEP,
3527
+ DEFAULT_IMAGE_OPTIONS,
3562
3528
  DEFAULT_LASER_COLOR,
3563
- DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,
3564
3529
  DEFAULT_PROPORTIONAL_RADIUS,
3565
3530
  DEFAULT_REDUCED_GLOBAL_ALPHA,
3566
3531
  DEFAULT_SIDEBAR,
3532
+ DEFAULT_STROKE_STREAMLINE,
3533
+ DEFAULT_STROKE_STREAMLINE_PRECISE,
3567
3534
  DEFAULT_TEXT_ALIGN,
3568
3535
  DEFAULT_TRANSFORM_HANDLE_SPACING,
3569
3536
  DEFAULT_UI_OPTIONS,
@@ -3591,6 +3558,7 @@ export {
3591
3558
  FONT_METADATA,
3592
3559
  FONT_SIZES,
3593
3560
  FRAME_STYLE,
3561
+ FREEDRAW_STROKE_WIDTH,
3594
3562
  GOOGLE_FONTS_RANGES,
3595
3563
  HYPERLINK_TOOLTIP_DELAY,
3596
3564
  IDLE_THRESHOLD,
@@ -3603,7 +3571,6 @@ export {
3603
3571
  LINE_CONFIRM_THRESHOLD,
3604
3572
  LINE_POLYGON_POINT_MERGE_DISTANCE,
3605
3573
  LOCAL_FONT_PROTOCOL,
3606
- MAX_ALLOWED_FILE_BYTES,
3607
3574
  MAX_CUSTOM_COLORS_USED_IN_CANVAS,
3608
3575
  MAX_DECIMALS_FOR_SVG_EXPORT,
3609
3576
  MAX_ZOOM,
@@ -3635,6 +3602,7 @@ export {
3635
3602
  STATS_PANELS,
3636
3603
  STRING_MIME_TYPES,
3637
3604
  STROKE_WIDTH,
3605
+ STROKE_WIDTH_KEYS,
3638
3606
  SVG_DOCUMENT_PREAMBLE,
3639
3607
  SVG_NS,
3640
3608
  TAP_TWICE_TIMEOUT,
@@ -3675,7 +3643,6 @@ export {
3675
3643
  deriveStylesPanelMode,
3676
3644
  distance,
3677
3645
  easeOut,
3678
- easeToValuesRAF,
3679
3646
  escapeDoubleQuotes,
3680
3647
  exitFullScreen,
3681
3648
  findIndex,
@@ -3696,6 +3663,7 @@ export {
3696
3663
  getLineHeight,
3697
3664
  getNearestScrollableContainer,
3698
3665
  getSizeFromPoints,
3666
+ getStrokeWidthByKey,
3699
3667
  getSvgPathFromStroke,
3700
3668
  getUpdatedTimestamp,
3701
3669
  getVersion,