@excalidraw/common 0.18.0-a9ca16e → 0.18.0-abeeaeb
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.
- package/dist/dev/index.js +98 -75
- package/dist/dev/index.js.map +3 -3
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/colors.d.ts +15 -1
- package/dist/types/common/src/constants.d.ts +12 -7
- package/dist/types/common/src/keys.d.ts +2 -0
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/utils.d.ts +1 -43
- package/dist/types/element/src/Scene.d.ts +6 -4
- package/dist/types/element/src/align.d.ts +2 -2
- package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
- package/dist/types/element/src/arrows/focus.d.ts +5 -2
- package/dist/types/element/src/binding.d.ts +17 -8
- package/dist/types/element/src/bounds.d.ts +22 -7
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +1 -1
- package/dist/types/element/src/comparisons.d.ts +5 -4
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- package/dist/types/element/src/distribute.d.ts +2 -2
- package/dist/types/element/src/dragElements.d.ts +27 -0
- package/dist/types/element/src/duplicate.d.ts +4 -3
- package/dist/types/element/src/embeddable.d.ts +2 -2
- package/dist/types/element/src/flowchart.d.ts +7 -7
- package/dist/types/element/src/fractionalIndex.d.ts +2 -2
- package/dist/types/element/src/frame.d.ts +9 -8
- package/dist/types/element/src/groups.d.ts +9 -9
- package/dist/types/element/src/index.d.ts +4 -1
- package/dist/types/element/src/linearElementEditor.d.ts +17 -10
- package/dist/types/element/src/newElement.d.ts +14 -0
- package/dist/types/element/src/renderElement.d.ts +0 -3
- package/dist/types/element/src/resizeElements.d.ts +2 -2
- package/dist/types/element/src/selection.d.ts +6 -6
- package/dist/types/element/src/shape.d.ts +13 -1
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/textElement.d.ts +12 -9
- package/dist/types/element/src/transform.d.ts +2 -2
- package/dist/types/element/src/typeChecks.d.ts +26 -25
- package/dist/types/element/src/types.d.ts +8 -1
- package/dist/types/element/src/utils.d.ts +1 -1
- package/dist/types/element/src/zindex.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +45 -18
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +30 -12
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +167 -940
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +30 -12
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +15 -6
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +47 -19
- package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionDeselect.d.ts} +29 -35
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +15 -6
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +31 -13
- package/dist/types/excalidraw/actions/actionExport.d.ts +35 -17
- package/dist/types/excalidraw/actions/actionFrame.d.ts +57 -202
- package/dist/types/excalidraw/actions/actionGroup.d.ts +45 -27
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +19 -8
- package/dist/types/excalidraw/actions/actionLink.d.ts +16 -7
- package/dist/types/excalidraw/actions/actionMenu.d.ts +15 -6
- package/dist/types/excalidraw/actions/actionProperties.d.ts +60 -30
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +20 -11
- package/dist/types/excalidraw/actions/actionStyles.d.ts +15 -6
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +16 -7
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +19 -11
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +16 -7
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +16 -7
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +19 -11
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +16 -7
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +17 -8
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +16 -7
- package/dist/types/excalidraw/actions/index.d.ts +2 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +8 -4
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +13 -6
- package/dist/types/excalidraw/components/Actions.d.ts +17 -12
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/App.arrowText.d.ts +72 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +30 -0
- package/dist/types/excalidraw/components/App.d.ts +363 -66
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
- package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
- package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
- package/dist/types/excalidraw/components/Island.d.ts +7 -0
- package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
- package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
- package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
- package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +146 -0
- package/dist/types/excalidraw/components/UserList.d.ts +3 -2
- package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -1
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
- package/dist/types/excalidraw/components/icons.d.ts +6 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +8 -4
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/data/blob.d.ts +40 -22
- package/dist/types/excalidraw/data/index.d.ts +4 -4
- package/dist/types/excalidraw/data/json.d.ts +26 -17
- package/dist/types/excalidraw/data/library.d.ts +1 -1
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
- package/dist/types/excalidraw/scene/Renderer.d.ts +426 -19
- package/dist/types/excalidraw/scene/export.d.ts +3 -3
- package/dist/types/excalidraw/scene/index.d.ts +2 -2
- package/dist/types/excalidraw/scene/types.d.ts +4 -3
- package/dist/types/excalidraw/snapping.d.ts +7 -7
- package/dist/types/excalidraw/types.d.ts +415 -23
- package/dist/types/excalidraw/viewport.d.ts +275 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -3
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/laser-pointer/src/index.d.ts +2 -0
- package/dist/types/laser-pointer/src/math.d.ts +16 -0
- package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
- package/dist/types/laser-pointer/src/state.d.ts +36 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +4 -1
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/point.d.ts +1 -0
- package/dist/types/math/src/polygon.d.ts +25 -1
- package/dist/types/utils/src/export.d.ts +3 -3
- package/dist/types/utils/src/index.d.ts +1 -2
- package/package.json +1 -1
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
- package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
- package/dist/types/excalidraw/components/shapes.d.ts +0 -263
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
package/dist/dev/index.js
CHANGED
|
@@ -1356,6 +1356,8 @@ function validateWCAG2Parms(parms) {
|
|
|
1356
1356
|
import { clamp } from "@excalidraw/math";
|
|
1357
1357
|
import { degreesToRadians } from "@excalidraw/math";
|
|
1358
1358
|
var DARK_MODE_COLORS_CACHE = typeof window !== "undefined" ? /* @__PURE__ */ new Map() : null;
|
|
1359
|
+
var DARK_MODE_FILTER_INVERT_PERCENT = 93;
|
|
1360
|
+
var DARK_MODE_FILTER_HUE_ROTATE_DEGREES = 180;
|
|
1359
1361
|
function cssHueRotate(red, green, blue, degrees) {
|
|
1360
1362
|
const r = red / 255;
|
|
1361
1363
|
const g = green / 255;
|
|
@@ -1394,7 +1396,10 @@ var cssInvert = (r, g, b, percent) => {
|
|
|
1394
1396
|
const invertedB = invertComponent(b);
|
|
1395
1397
|
return { r: invertedR, g: invertedG, b: invertedB };
|
|
1396
1398
|
};
|
|
1397
|
-
var applyDarkModeFilter = (color) => {
|
|
1399
|
+
var applyDarkModeFilter = (color, enable = true) => {
|
|
1400
|
+
if (!enable) {
|
|
1401
|
+
return color;
|
|
1402
|
+
}
|
|
1398
1403
|
const cached = DARK_MODE_COLORS_CACHE?.get(color);
|
|
1399
1404
|
if (cached) {
|
|
1400
1405
|
return cached;
|
|
@@ -1402,12 +1407,17 @@ var applyDarkModeFilter = (color) => {
|
|
|
1402
1407
|
const tc = tinycolor(color);
|
|
1403
1408
|
const alpha = tc.getAlpha();
|
|
1404
1409
|
const rgb = tc.toRgb();
|
|
1405
|
-
const inverted = cssInvert(
|
|
1410
|
+
const inverted = cssInvert(
|
|
1411
|
+
rgb.r,
|
|
1412
|
+
rgb.g,
|
|
1413
|
+
rgb.b,
|
|
1414
|
+
DARK_MODE_FILTER_INVERT_PERCENT
|
|
1415
|
+
);
|
|
1406
1416
|
const rotated = cssHueRotate(
|
|
1407
1417
|
inverted.r,
|
|
1408
1418
|
inverted.g,
|
|
1409
1419
|
inverted.b,
|
|
1410
|
-
|
|
1420
|
+
DARK_MODE_FILTER_HUE_ROTATE_DEGREES
|
|
1411
1421
|
);
|
|
1412
1422
|
const result = rgbToHex2(rotated.r, rotated.g, rotated.b, alpha);
|
|
1413
1423
|
if (DARK_MODE_COLORS_CACHE) {
|
|
@@ -1415,6 +1425,33 @@ var applyDarkModeFilter = (color) => {
|
|
|
1415
1425
|
}
|
|
1416
1426
|
return result;
|
|
1417
1427
|
};
|
|
1428
|
+
var _reverseDarkModeInvert = (r, g, b) => {
|
|
1429
|
+
const p = DARK_MODE_FILTER_INVERT_PERCENT / 100;
|
|
1430
|
+
const denominator = 1 - 2 * p;
|
|
1431
|
+
const restore = (color) => Math.round(clamp((color - 255 * p) / denominator, 0, 255));
|
|
1432
|
+
return {
|
|
1433
|
+
r: restore(r),
|
|
1434
|
+
g: restore(g),
|
|
1435
|
+
b: restore(b)
|
|
1436
|
+
};
|
|
1437
|
+
};
|
|
1438
|
+
var removeDarkModeFilter = (color) => {
|
|
1439
|
+
const tc = tinycolor(color);
|
|
1440
|
+
const alpha = tc.getAlpha();
|
|
1441
|
+
const rgb = tc.toRgb();
|
|
1442
|
+
const rotatedBack = cssHueRotate(
|
|
1443
|
+
rgb.r,
|
|
1444
|
+
rgb.g,
|
|
1445
|
+
rgb.b,
|
|
1446
|
+
DARK_MODE_FILTER_HUE_ROTATE_DEGREES
|
|
1447
|
+
);
|
|
1448
|
+
const restored = _reverseDarkModeInvert(
|
|
1449
|
+
rotatedBack.r,
|
|
1450
|
+
rotatedBack.g,
|
|
1451
|
+
rotatedBack.b
|
|
1452
|
+
);
|
|
1453
|
+
return rgbToHex2(restored.r, restored.g, restored.b, alpha);
|
|
1454
|
+
};
|
|
1418
1455
|
var pick = (source, keys) => {
|
|
1419
1456
|
return keys.reduce((acc, key) => {
|
|
1420
1457
|
if (key in source) {
|
|
@@ -1460,6 +1497,7 @@ var COMMON_ELEMENT_SHADES = pick(COLOR_PALETTE, [
|
|
|
1460
1497
|
"orange",
|
|
1461
1498
|
"red"
|
|
1462
1499
|
]);
|
|
1500
|
+
var COLOR_TOP_PICKS_SLOTS = 5;
|
|
1463
1501
|
var DEFAULT_ELEMENT_STROKE_PICKS = [
|
|
1464
1502
|
COLOR_PALETTE.black,
|
|
1465
1503
|
COLOR_PALETTE.red[DEFAULT_ELEMENT_STROKE_COLOR_INDEX],
|
|
@@ -1474,6 +1512,13 @@ var DEFAULT_ELEMENT_BACKGROUND_PICKS = [
|
|
|
1474
1512
|
COLOR_PALETTE.blue[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX],
|
|
1475
1513
|
COLOR_PALETTE.yellow[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX]
|
|
1476
1514
|
];
|
|
1515
|
+
var BUCKET_FILL_BACKGROUND_PICKS = [
|
|
1516
|
+
COLOR_PALETTE.white,
|
|
1517
|
+
COLOR_PALETTE.red[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX],
|
|
1518
|
+
COLOR_PALETTE.green[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX],
|
|
1519
|
+
COLOR_PALETTE.blue[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX],
|
|
1520
|
+
COLOR_PALETTE.yellow[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX]
|
|
1521
|
+
];
|
|
1477
1522
|
var DEFAULT_CANVAS_BACKGROUND_PICKS = [
|
|
1478
1523
|
COLOR_PALETTE.white,
|
|
1479
1524
|
// radix slate2
|
|
@@ -1536,6 +1581,9 @@ var colorToHex = (color) => {
|
|
|
1536
1581
|
var isTransparent = (color) => {
|
|
1537
1582
|
return tinycolor(color).getAlpha() === 0;
|
|
1538
1583
|
};
|
|
1584
|
+
var isOpaqueColor = (color) => {
|
|
1585
|
+
return tinycolor(color).getAlpha() === 1;
|
|
1586
|
+
};
|
|
1539
1587
|
var COLOR_OUTLINE_CONTRAST_THRESHOLD = 240;
|
|
1540
1588
|
var calculateContrast = (r, g, b) => {
|
|
1541
1589
|
const yiq = (r * 299 + g * 587 + b * 114) / 1e3;
|
|
@@ -1836,8 +1884,10 @@ var DEFAULT_UI_OPTIONS = {
|
|
|
1836
1884
|
var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
|
|
1837
1885
|
var EXPORT_SCALES = [1, 2, 3];
|
|
1838
1886
|
var DEFAULT_EXPORT_PADDING = 10;
|
|
1839
|
-
var
|
|
1840
|
-
|
|
1887
|
+
var DEFAULT_IMAGE_OPTIONS = {
|
|
1888
|
+
maxWidthOrHeight: 1440,
|
|
1889
|
+
maxFileSizeBytes: 4 * 1024 * 1024
|
|
1890
|
+
};
|
|
1841
1891
|
var SVG_NS = "http://www.w3.org/2000/svg";
|
|
1842
1892
|
var SVG_DOCUMENT_PREAMBLE = `<?xml version="1.0" standalone="no"?>
|
|
1843
1893
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
@@ -1861,6 +1911,7 @@ var TEXT_ALIGN = {
|
|
|
1861
1911
|
RIGHT: "right"
|
|
1862
1912
|
};
|
|
1863
1913
|
var ELEMENT_READY_TO_ERASE_OPACITY = 20;
|
|
1914
|
+
var ELEMENT_PENDING_DRAW_SHAPE_OPACITY = 70;
|
|
1864
1915
|
var DEFAULT_PROPORTIONAL_RADIUS = 0.25;
|
|
1865
1916
|
var DEFAULT_ADAPTIVE_RADIUS = 32;
|
|
1866
1917
|
var ROUNDNESS = {
|
|
@@ -1884,16 +1935,34 @@ var ROUGHNESS = {
|
|
|
1884
1935
|
artist: 1,
|
|
1885
1936
|
cartoonist: 2
|
|
1886
1937
|
};
|
|
1938
|
+
var STROKE_WIDTH_KEYS = [
|
|
1939
|
+
"thin",
|
|
1940
|
+
"medium",
|
|
1941
|
+
"bold"
|
|
1942
|
+
];
|
|
1887
1943
|
var STROKE_WIDTH = {
|
|
1888
1944
|
thin: 1,
|
|
1945
|
+
medium: 2,
|
|
1946
|
+
bold: 4,
|
|
1947
|
+
extraBold: 8
|
|
1948
|
+
// unused (may be introduced in the future)
|
|
1949
|
+
};
|
|
1950
|
+
var FREEDRAW_STROKE_WIDTH = {
|
|
1951
|
+
thin: 0.5,
|
|
1952
|
+
medium: 1,
|
|
1889
1953
|
bold: 2,
|
|
1890
1954
|
extraBold: 4
|
|
1955
|
+
// legacy (may be used again in the future)
|
|
1891
1956
|
};
|
|
1957
|
+
var getStrokeWidthByKey = (elementType, strokeWidthKey) => {
|
|
1958
|
+
return elementType === "freedraw" ? FREEDRAW_STROKE_WIDTH[strokeWidthKey] : STROKE_WIDTH[strokeWidthKey];
|
|
1959
|
+
};
|
|
1960
|
+
var DEFAULT_ELEMENT_STROKE_WIDTH_KEY = "medium";
|
|
1892
1961
|
var DEFAULT_ELEMENT_PROPS = {
|
|
1893
1962
|
strokeColor: COLOR_PALETTE.black,
|
|
1894
1963
|
backgroundColor: COLOR_PALETTE.transparent,
|
|
1895
1964
|
fillStyle: "solid",
|
|
1896
|
-
strokeWidth:
|
|
1965
|
+
strokeWidth: STROKE_WIDTH[DEFAULT_ELEMENT_STROKE_WIDTH_KEY],
|
|
1897
1966
|
strokeStyle: "solid",
|
|
1898
1967
|
roughness: ROUGHNESS.artist,
|
|
1899
1968
|
opacity: 100,
|
|
@@ -1926,7 +1995,9 @@ var TOOL_TYPE = {
|
|
|
1926
1995
|
frame: "frame",
|
|
1927
1996
|
magicframe: "magicframe",
|
|
1928
1997
|
embeddable: "embeddable",
|
|
1929
|
-
laser: "laser"
|
|
1998
|
+
laser: "laser",
|
|
1999
|
+
autoshape: "autoshape",
|
|
2000
|
+
bucketfill: "bucketfill"
|
|
1930
2001
|
};
|
|
1931
2002
|
var EDITOR_LS_KEYS = {
|
|
1932
2003
|
OAI_API_KEY: "excalidraw-oai-api-key",
|
|
@@ -1957,6 +2028,8 @@ var BIND_MODE_TIMEOUT = 700;
|
|
|
1957
2028
|
var MOBILE_ACTION_BUTTON_BG = {
|
|
1958
2029
|
background: "var(--mobile-action-button-bg)"
|
|
1959
2030
|
};
|
|
2031
|
+
var DEFAULT_STROKE_STREAMLINE = 0.5;
|
|
2032
|
+
var DEFAULT_STROKE_STREAMLINE_PRECISE = 0.2;
|
|
1960
2033
|
|
|
1961
2034
|
// src/font-metadata.ts
|
|
1962
2035
|
init_define_import_meta_env();
|
|
@@ -2286,6 +2359,7 @@ var KEYS = {
|
|
|
2286
2359
|
SUBTRACT: "-",
|
|
2287
2360
|
SLASH: "/",
|
|
2288
2361
|
A: "a",
|
|
2362
|
+
B: "b",
|
|
2289
2363
|
C: "c",
|
|
2290
2364
|
D: "d",
|
|
2291
2365
|
E: "e",
|
|
@@ -2337,6 +2411,7 @@ var shouldRotateWithDiscreteAngle = (event) => event.shiftKey;
|
|
|
2337
2411
|
// src/points.ts
|
|
2338
2412
|
init_define_import_meta_env();
|
|
2339
2413
|
import {
|
|
2414
|
+
pointFrom,
|
|
2340
2415
|
pointFromPair
|
|
2341
2416
|
} from "@excalidraw/math";
|
|
2342
2417
|
var getSizeFromPoints = (points) => {
|
|
@@ -2381,12 +2456,12 @@ var rescalePoints = (dimension, newSize, points, normalize) => {
|
|
|
2381
2456
|
};
|
|
2382
2457
|
var getGridPoint = (x, y, gridSize) => {
|
|
2383
2458
|
if (gridSize) {
|
|
2384
|
-
return
|
|
2459
|
+
return pointFrom(
|
|
2385
2460
|
Math.round(x / gridSize) * gridSize,
|
|
2386
2461
|
Math.round(y / gridSize) * gridSize
|
|
2387
|
-
|
|
2462
|
+
);
|
|
2388
2463
|
}
|
|
2389
|
-
return
|
|
2464
|
+
return pointFrom(x, y);
|
|
2390
2465
|
};
|
|
2391
2466
|
|
|
2392
2467
|
// src/promise-pool.ts
|
|
@@ -2570,67 +2645,6 @@ var throttleRAF = (fn) => {
|
|
|
2570
2645
|
var easeOut = (k) => {
|
|
2571
2646
|
return 1 - Math.pow(1 - k, 4);
|
|
2572
2647
|
};
|
|
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
2648
|
var chunk = (array, size) => {
|
|
2635
2649
|
if (!array.length || size < 1) {
|
|
2636
2650
|
return [];
|
|
@@ -2673,7 +2687,7 @@ var updateActiveTool = (appState, data) => {
|
|
|
2673
2687
|
}
|
|
2674
2688
|
return {
|
|
2675
2689
|
...appState.activeTool,
|
|
2676
|
-
lastActiveTool: data.
|
|
2690
|
+
lastActiveTool: data.lastActiveTool === void 0 ? appState.activeTool.lastActiveTool : data.lastActiveTool,
|
|
2677
2691
|
type: data.type,
|
|
2678
2692
|
customType: null,
|
|
2679
2693
|
locked: data.locked ?? appState.activeTool.locked,
|
|
@@ -3528,6 +3542,7 @@ export {
|
|
|
3528
3542
|
AppEventBus,
|
|
3529
3543
|
BIND_MODE_TIMEOUT,
|
|
3530
3544
|
BOUND_TEXT_PADDING,
|
|
3545
|
+
BUCKET_FILL_BACKGROUND_PICKS,
|
|
3531
3546
|
BinaryHeap,
|
|
3532
3547
|
CANVAS_ONLY_ACTIONS,
|
|
3533
3548
|
CANVAS_SEARCH_TAB,
|
|
@@ -3538,6 +3553,7 @@ export {
|
|
|
3538
3553
|
COLOR_CHARCOAL_BLACK,
|
|
3539
3554
|
COLOR_OUTLINE_CONTRAST_THRESHOLD,
|
|
3540
3555
|
COLOR_PALETTE,
|
|
3556
|
+
COLOR_TOP_PICKS_SLOTS,
|
|
3541
3557
|
COLOR_VOICE_CALL,
|
|
3542
3558
|
COLOR_WHITE,
|
|
3543
3559
|
CURSOR_TYPE,
|
|
@@ -3553,17 +3569,20 @@ export {
|
|
|
3553
3569
|
DEFAULT_ELEMENT_STROKE_COLOR_INDEX,
|
|
3554
3570
|
DEFAULT_ELEMENT_STROKE_COLOR_PALETTE,
|
|
3555
3571
|
DEFAULT_ELEMENT_STROKE_PICKS,
|
|
3572
|
+
DEFAULT_ELEMENT_STROKE_WIDTH_KEY,
|
|
3556
3573
|
DEFAULT_EXPORT_PADDING,
|
|
3557
3574
|
DEFAULT_FILENAME,
|
|
3558
3575
|
DEFAULT_FONT_FAMILY,
|
|
3559
3576
|
DEFAULT_FONT_SIZE,
|
|
3560
3577
|
DEFAULT_GRID_SIZE,
|
|
3561
3578
|
DEFAULT_GRID_STEP,
|
|
3579
|
+
DEFAULT_IMAGE_OPTIONS,
|
|
3562
3580
|
DEFAULT_LASER_COLOR,
|
|
3563
|
-
DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,
|
|
3564
3581
|
DEFAULT_PROPORTIONAL_RADIUS,
|
|
3565
3582
|
DEFAULT_REDUCED_GLOBAL_ALPHA,
|
|
3566
3583
|
DEFAULT_SIDEBAR,
|
|
3584
|
+
DEFAULT_STROKE_STREAMLINE,
|
|
3585
|
+
DEFAULT_STROKE_STREAMLINE_PRECISE,
|
|
3567
3586
|
DEFAULT_TEXT_ALIGN,
|
|
3568
3587
|
DEFAULT_TRANSFORM_HANDLE_SPACING,
|
|
3569
3588
|
DEFAULT_UI_OPTIONS,
|
|
@@ -3574,6 +3593,7 @@ export {
|
|
|
3574
3593
|
Debug,
|
|
3575
3594
|
EDITOR_LS_KEYS,
|
|
3576
3595
|
ELEMENT_LINK_KEY,
|
|
3596
|
+
ELEMENT_PENDING_DRAW_SHAPE_OPACITY,
|
|
3577
3597
|
ELEMENT_READY_TO_ERASE_OPACITY,
|
|
3578
3598
|
ELEMENT_SHIFT_TRANSLATE_AMOUNT,
|
|
3579
3599
|
ELEMENT_TRANSLATE_AMOUNT,
|
|
@@ -3591,6 +3611,7 @@ export {
|
|
|
3591
3611
|
FONT_METADATA,
|
|
3592
3612
|
FONT_SIZES,
|
|
3593
3613
|
FRAME_STYLE,
|
|
3614
|
+
FREEDRAW_STROKE_WIDTH,
|
|
3594
3615
|
GOOGLE_FONTS_RANGES,
|
|
3595
3616
|
HYPERLINK_TOOLTIP_DELAY,
|
|
3596
3617
|
IDLE_THRESHOLD,
|
|
@@ -3603,7 +3624,6 @@ export {
|
|
|
3603
3624
|
LINE_CONFIRM_THRESHOLD,
|
|
3604
3625
|
LINE_POLYGON_POINT_MERGE_DISTANCE,
|
|
3605
3626
|
LOCAL_FONT_PROTOCOL,
|
|
3606
|
-
MAX_ALLOWED_FILE_BYTES,
|
|
3607
3627
|
MAX_CUSTOM_COLORS_USED_IN_CANVAS,
|
|
3608
3628
|
MAX_DECIMALS_FOR_SVG_EXPORT,
|
|
3609
3629
|
MAX_ZOOM,
|
|
@@ -3635,6 +3655,7 @@ export {
|
|
|
3635
3655
|
STATS_PANELS,
|
|
3636
3656
|
STRING_MIME_TYPES,
|
|
3637
3657
|
STROKE_WIDTH,
|
|
3658
|
+
STROKE_WIDTH_KEYS,
|
|
3638
3659
|
SVG_DOCUMENT_PREAMBLE,
|
|
3639
3660
|
SVG_NS,
|
|
3640
3661
|
TAP_TWICE_TIMEOUT,
|
|
@@ -3675,7 +3696,6 @@ export {
|
|
|
3675
3696
|
deriveStylesPanelMode,
|
|
3676
3697
|
distance,
|
|
3677
3698
|
easeOut,
|
|
3678
|
-
easeToValuesRAF,
|
|
3679
3699
|
escapeDoubleQuotes,
|
|
3680
3700
|
exitFullScreen,
|
|
3681
3701
|
findIndex,
|
|
@@ -3696,6 +3716,7 @@ export {
|
|
|
3696
3716
|
getLineHeight,
|
|
3697
3717
|
getNearestScrollableContainer,
|
|
3698
3718
|
getSizeFromPoints,
|
|
3719
|
+
getStrokeWidthByKey,
|
|
3699
3720
|
getSvgPathFromStroke,
|
|
3700
3721
|
getUpdatedTimestamp,
|
|
3701
3722
|
getVersion,
|
|
@@ -3719,6 +3740,7 @@ export {
|
|
|
3719
3740
|
isLocalLink,
|
|
3720
3741
|
isMemberOf,
|
|
3721
3742
|
isMobileBreakpoint,
|
|
3743
|
+
isOpaqueColor,
|
|
3722
3744
|
isPrimitive,
|
|
3723
3745
|
isProdEnv,
|
|
3724
3746
|
isPromiseLike,
|
|
@@ -3752,6 +3774,7 @@ export {
|
|
|
3752
3774
|
randomId,
|
|
3753
3775
|
randomInteger,
|
|
3754
3776
|
reduceToCommonValue,
|
|
3777
|
+
removeDarkModeFilter,
|
|
3755
3778
|
removeSelection,
|
|
3756
3779
|
rescalePoints,
|
|
3757
3780
|
reseed,
|