@excalidraw/common 0.18.0-063e025 → 0.18.0-1118751
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 +159 -17
- package/dist/dev/index.js.map +2 -2
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/colors.d.ts +22 -0
- package/dist/types/common/src/constants.d.ts +54 -0
- package/dist/types/common/src/keys.d.ts +4 -0
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/random.d.ts +7 -0
- package/dist/types/common/src/utils.d.ts +1 -1
- package/dist/types/element/src/Scene.d.ts +1 -1
- 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 +15 -8
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +8 -5
- package/dist/types/element/src/comparisons.d.ts +7 -5
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- package/dist/types/element/src/delta.d.ts +23 -1
- package/dist/types/element/src/dragElements.d.ts +27 -0
- package/dist/types/element/src/duplicate.d.ts +60 -0
- package/dist/types/element/src/flowchart.d.ts +10 -6
- package/dist/types/element/src/frame.d.ts +2 -2
- package/dist/types/element/src/groups.d.ts +1 -1
- package/dist/types/element/src/index.d.ts +4 -0
- package/dist/types/element/src/linearElementEditor.d.ts +17 -0
- package/dist/types/element/src/mutateElement.d.ts +1 -1
- package/dist/types/element/src/newElement.d.ts +37 -2
- package/dist/types/element/src/renderElement.d.ts +21 -4
- package/dist/types/element/src/selection.d.ts +1 -1
- package/dist/types/element/src/shape.d.ts +27 -1
- package/dist/types/element/src/sizeHelpers.d.ts +6 -0
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/stickyNote.d.ts +183 -0
- package/dist/types/element/src/textElement.d.ts +7 -3
- package/dist/types/element/src/transform.d.ts +25 -6
- package/dist/types/element/src/typeChecks.d.ts +3 -2
- package/dist/types/element/src/types.d.ts +35 -6
- package/dist/types/element/src/utils.d.ts +15 -4
- package/dist/types/element/src/zindex.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +48 -9
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +32 -6
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +177 -580
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +32 -6
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +50 -10
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +13 -3
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +32 -6
- package/dist/types/excalidraw/actions/actionExport.d.ts +38 -12
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
- package/dist/types/excalidraw/actions/actionFrame.d.ts +99 -185
- package/dist/types/excalidraw/actions/actionGroup.d.ts +33 -7
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +68 -4
- package/dist/types/excalidraw/actions/actionLink.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionMenu.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionProperties.d.ts +45 -12
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionStyles.d.ts +17 -4
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +17 -4
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +16 -3
- package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
- package/dist/types/excalidraw/actions/index.d.ts +1 -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 +5 -1
- package/dist/types/excalidraw/appState.d.ts +30 -9
- package/dist/types/excalidraw/components/Actions.d.ts +16 -10
- package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
- package/dist/types/excalidraw/components/App.d.ts +468 -99
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.duplicate.d.ts +51 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.pan.d.ts +54 -0
- package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
- package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +8 -2
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -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/colorTopPicksDnD.d.ts +11 -0
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
- package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
- package/dist/types/excalidraw/components/IconButton.d.ts +48 -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/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/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/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +151 -0
- package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
- package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
- package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -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 +2 -0
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -0
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/icons.d.ts +5 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -1
- 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 +44 -18
- package/dist/types/excalidraw/data/json.d.ts +22 -9
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
- package/dist/types/excalidraw/scene/Renderer.d.ts +64 -2
- package/dist/types/excalidraw/scene/index.d.ts +1 -1
- package/dist/types/excalidraw/scene/types.d.ts +6 -1
- package/dist/types/excalidraw/types.d.ts +341 -21
- package/dist/types/excalidraw/viewport.d.ts +31 -66
- package/dist/types/laser-pointer/src/state.d.ts +1 -0
- package/dist/types/math/src/curve.d.ts +19 -12
- 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/polygon.d.ts +25 -1
- package/dist/types/math/src/segment.d.ts +6 -0
- package/dist/types/utils/src/export.d.ts +1 -0
- package/dist/types/utils/src/shape.d.ts +2 -2
- package/package.json +1 -1
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +0 -173
- 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/ToolButton.d.ts +0 -49
- package/dist/types/excalidraw/components/shapes.d.ts +0 -270
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
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;
|
|
@@ -1405,12 +1407,17 @@ var applyDarkModeFilter = (color, enable = true) => {
|
|
|
1405
1407
|
const tc = tinycolor(color);
|
|
1406
1408
|
const alpha = tc.getAlpha();
|
|
1407
1409
|
const rgb = tc.toRgb();
|
|
1408
|
-
const inverted = cssInvert(
|
|
1410
|
+
const inverted = cssInvert(
|
|
1411
|
+
rgb.r,
|
|
1412
|
+
rgb.g,
|
|
1413
|
+
rgb.b,
|
|
1414
|
+
DARK_MODE_FILTER_INVERT_PERCENT
|
|
1415
|
+
);
|
|
1409
1416
|
const rotated = cssHueRotate(
|
|
1410
1417
|
inverted.r,
|
|
1411
1418
|
inverted.g,
|
|
1412
1419
|
inverted.b,
|
|
1413
|
-
|
|
1420
|
+
DARK_MODE_FILTER_HUE_ROTATE_DEGREES
|
|
1414
1421
|
);
|
|
1415
1422
|
const result = rgbToHex2(rotated.r, rotated.g, rotated.b, alpha);
|
|
1416
1423
|
if (DARK_MODE_COLORS_CACHE) {
|
|
@@ -1418,6 +1425,33 @@ var applyDarkModeFilter = (color, enable = true) => {
|
|
|
1418
1425
|
}
|
|
1419
1426
|
return result;
|
|
1420
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
|
+
};
|
|
1421
1455
|
var pick = (source, keys) => {
|
|
1422
1456
|
return keys.reduce((acc, key) => {
|
|
1423
1457
|
if (key in source) {
|
|
@@ -1463,6 +1497,7 @@ var COMMON_ELEMENT_SHADES = pick(COLOR_PALETTE, [
|
|
|
1463
1497
|
"orange",
|
|
1464
1498
|
"red"
|
|
1465
1499
|
]);
|
|
1500
|
+
var COLOR_TOP_PICKS_SLOTS = 5;
|
|
1466
1501
|
var DEFAULT_ELEMENT_STROKE_PICKS = [
|
|
1467
1502
|
COLOR_PALETTE.black,
|
|
1468
1503
|
COLOR_PALETTE.red[DEFAULT_ELEMENT_STROKE_COLOR_INDEX],
|
|
@@ -1477,6 +1512,22 @@ var DEFAULT_ELEMENT_BACKGROUND_PICKS = [
|
|
|
1477
1512
|
COLOR_PALETTE.blue[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX],
|
|
1478
1513
|
COLOR_PALETTE.yellow[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX]
|
|
1479
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
|
+
];
|
|
1522
|
+
var DEFAULT_STICKY_NOTE_BG = "#ffdf6b";
|
|
1523
|
+
var STICKY_NOTE_STROKE_PICKS = DEFAULT_ELEMENT_STROKE_PICKS;
|
|
1524
|
+
var STICKY_NOTE_BACKGROUND_PICKS = [
|
|
1525
|
+
DEFAULT_STICKY_NOTE_BG,
|
|
1526
|
+
COLOR_PALETTE.pink[1],
|
|
1527
|
+
COLOR_PALETTE.green[1],
|
|
1528
|
+
COLOR_PALETTE.blue[1],
|
|
1529
|
+
COLOR_PALETTE.orange[1]
|
|
1530
|
+
];
|
|
1480
1531
|
var DEFAULT_CANVAS_BACKGROUND_PICKS = [
|
|
1481
1532
|
COLOR_PALETTE.white,
|
|
1482
1533
|
// radix slate2
|
|
@@ -1528,6 +1579,14 @@ var rgbToHex2 = (r, g, b, a) => {
|
|
|
1528
1579
|
}
|
|
1529
1580
|
return hex6;
|
|
1530
1581
|
};
|
|
1582
|
+
var setColorAlpha = (color, alpha) => {
|
|
1583
|
+
const tc = tinycolor(color);
|
|
1584
|
+
if (!tc.isValid()) {
|
|
1585
|
+
return color;
|
|
1586
|
+
}
|
|
1587
|
+
const { r, g, b } = tc.toRgb();
|
|
1588
|
+
return rgbToHex2(r, g, b, alpha);
|
|
1589
|
+
};
|
|
1531
1590
|
var colorToHex = (color) => {
|
|
1532
1591
|
const tc = tinycolor(color);
|
|
1533
1592
|
if (!tc.isValid()) {
|
|
@@ -1539,6 +1598,9 @@ var colorToHex = (color) => {
|
|
|
1539
1598
|
var isTransparent = (color) => {
|
|
1540
1599
|
return tinycolor(color).getAlpha() === 0;
|
|
1541
1600
|
};
|
|
1601
|
+
var isOpaqueColor = (color) => {
|
|
1602
|
+
return tinycolor(color).getAlpha() === 1;
|
|
1603
|
+
};
|
|
1542
1604
|
var COLOR_OUTLINE_CONTRAST_THRESHOLD = 240;
|
|
1543
1605
|
var calculateContrast = (r, g, b) => {
|
|
1544
1606
|
const yiq = (r * 299 + g * 587 + b * 114) / 1e3;
|
|
@@ -1629,6 +1691,7 @@ var EVENT = /* @__PURE__ */ ((EVENT2) => {
|
|
|
1629
1691
|
EVENT2["POINTER_MOVE"] = "pointermove";
|
|
1630
1692
|
EVENT2["POINTER_DOWN"] = "pointerdown";
|
|
1631
1693
|
EVENT2["POINTER_UP"] = "pointerup";
|
|
1694
|
+
EVENT2["POINTER_CANCEL"] = "pointercancel";
|
|
1632
1695
|
EVENT2["STATE_CHANGE"] = "statechange";
|
|
1633
1696
|
EVENT2["WHEEL"] = "wheel";
|
|
1634
1697
|
EVENT2["TOUCH_START"] = "touchstart";
|
|
@@ -1740,7 +1803,28 @@ var FRAME_STYLE = {
|
|
|
1740
1803
|
};
|
|
1741
1804
|
var MIN_FONT_SIZE = 1;
|
|
1742
1805
|
var DEFAULT_FONT_SIZE = 20;
|
|
1806
|
+
var STICKY_NOTE_MIN_FONT_SIZE = 16;
|
|
1807
|
+
var STICKY_NOTE_MAX_FONT_SIZE = 512;
|
|
1808
|
+
var STICKY_NOTE_FALLBACK_FONT_SIZE = 28;
|
|
1809
|
+
var STICKY_NOTE_FONT_STEP = 2;
|
|
1810
|
+
var STICKY_NOTE_PADDING = 16;
|
|
1811
|
+
var STICKY_NOTE_FOOTER = {
|
|
1812
|
+
height: 20,
|
|
1813
|
+
fontSize: 12,
|
|
1814
|
+
fontFamily: "Helvetica, Arial, sans-serif",
|
|
1815
|
+
baselineFromBottom: 14,
|
|
1816
|
+
opacity: 1,
|
|
1817
|
+
minBodyWidthForYear: 80
|
|
1818
|
+
};
|
|
1819
|
+
var STICKY_NOTE_BODY_INSET_Y = STICKY_NOTE_PADDING * 2 + STICKY_NOTE_FOOTER.height;
|
|
1820
|
+
var DEFAULT_STICKY_NOTE_SIZE = 250;
|
|
1821
|
+
var STICKY_NOTE_MIN_SIZE = 75;
|
|
1822
|
+
var STICKY_NOTE_SHADOW_OFFSET = 3;
|
|
1823
|
+
var STICKY_NOTE_SHADOW_OPACITY = 0.16;
|
|
1824
|
+
var STICKY_NOTE_EDGE_SHADOW_WIDTH = 0.5;
|
|
1825
|
+
var STICKY_NOTE_EDGE_SHADOW_OPACITY = 0.08;
|
|
1743
1826
|
var DEFAULT_FONT_FAMILY = FONT_FAMILY.Excalifont;
|
|
1827
|
+
var FONT_TOP_PICKS_SLOTS = 3;
|
|
1744
1828
|
var DEFAULT_TEXT_ALIGN = "left";
|
|
1745
1829
|
var DEFAULT_VERTICAL_ALIGN = "top";
|
|
1746
1830
|
var DEFAULT_VERSION = "{version}";
|
|
@@ -1813,6 +1897,9 @@ var SCROLL_TIMEOUT = 100;
|
|
|
1813
1897
|
var ZOOM_STEP = 0.1;
|
|
1814
1898
|
var MIN_ZOOM = 0.1;
|
|
1815
1899
|
var MAX_ZOOM = 30;
|
|
1900
|
+
var DEFAULT_ZOOM = Object.freeze({
|
|
1901
|
+
value: 1
|
|
1902
|
+
});
|
|
1816
1903
|
var HYPERLINK_TOOLTIP_DELAY = 300;
|
|
1817
1904
|
var IDLE_THRESHOLD = 6e4;
|
|
1818
1905
|
var ACTIVE_THRESHOLD = 3e3;
|
|
@@ -1866,6 +1953,7 @@ var TEXT_ALIGN = {
|
|
|
1866
1953
|
RIGHT: "right"
|
|
1867
1954
|
};
|
|
1868
1955
|
var ELEMENT_READY_TO_ERASE_OPACITY = 20;
|
|
1956
|
+
var ELEMENT_PENDING_DRAW_SHAPE_OPACITY = 70;
|
|
1869
1957
|
var DEFAULT_PROPORTIONAL_RADIUS = 0.25;
|
|
1870
1958
|
var DEFAULT_ADAPTIVE_RADIUS = 32;
|
|
1871
1959
|
var ROUNDNESS = {
|
|
@@ -1948,8 +2036,11 @@ var TOOL_TYPE = {
|
|
|
1948
2036
|
hand: "hand",
|
|
1949
2037
|
frame: "frame",
|
|
1950
2038
|
magicframe: "magicframe",
|
|
2039
|
+
stickynote: "stickynote",
|
|
1951
2040
|
embeddable: "embeddable",
|
|
1952
|
-
laser: "laser"
|
|
2041
|
+
laser: "laser",
|
|
2042
|
+
autoshape: "autoshape",
|
|
2043
|
+
bucketfill: "bucketfill"
|
|
1953
2044
|
};
|
|
1954
2045
|
var EDITOR_LS_KEYS = {
|
|
1955
2046
|
OAI_API_KEY: "excalidraw-oai-api-key",
|
|
@@ -2311,6 +2402,7 @@ var KEYS = {
|
|
|
2311
2402
|
SUBTRACT: "-",
|
|
2312
2403
|
SLASH: "/",
|
|
2313
2404
|
A: "a",
|
|
2405
|
+
B: "b",
|
|
2314
2406
|
C: "c",
|
|
2315
2407
|
D: "d",
|
|
2316
2408
|
E: "e",
|
|
@@ -2319,6 +2411,7 @@ var KEYS = {
|
|
|
2319
2411
|
H: "h",
|
|
2320
2412
|
I: "i",
|
|
2321
2413
|
L: "l",
|
|
2414
|
+
N: "n",
|
|
2322
2415
|
O: "o",
|
|
2323
2416
|
P: "p",
|
|
2324
2417
|
Q: "q",
|
|
@@ -2362,6 +2455,7 @@ var shouldRotateWithDiscreteAngle = (event) => event.shiftKey;
|
|
|
2362
2455
|
// src/points.ts
|
|
2363
2456
|
init_define_import_meta_env();
|
|
2364
2457
|
import {
|
|
2458
|
+
pointFrom,
|
|
2365
2459
|
pointFromPair
|
|
2366
2460
|
} from "@excalidraw/math";
|
|
2367
2461
|
var getSizeFromPoints = (points) => {
|
|
@@ -2406,12 +2500,12 @@ var rescalePoints = (dimension, newSize, points, normalize) => {
|
|
|
2406
2500
|
};
|
|
2407
2501
|
var getGridPoint = (x, y, gridSize) => {
|
|
2408
2502
|
if (gridSize) {
|
|
2409
|
-
return
|
|
2503
|
+
return pointFrom(
|
|
2410
2504
|
Math.round(x / gridSize) * gridSize,
|
|
2411
2505
|
Math.round(y / gridSize) * gridSize
|
|
2412
|
-
|
|
2506
|
+
);
|
|
2413
2507
|
}
|
|
2414
|
-
return
|
|
2508
|
+
return pointFrom(x, y);
|
|
2415
2509
|
};
|
|
2416
2510
|
|
|
2417
2511
|
// src/promise-pool.ts
|
|
@@ -2502,14 +2596,25 @@ var getDateTime = () => {
|
|
|
2502
2596
|
return `${year}-${month}-${day}-${hr}${min}`;
|
|
2503
2597
|
};
|
|
2504
2598
|
var capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
2505
|
-
var
|
|
2506
|
-
var
|
|
2507
|
-
|
|
2599
|
+
var getTargetWindow = (target) => target?.ownerDocument?.defaultView ?? (typeof window === "undefined" ? null : window);
|
|
2600
|
+
var isToolIcon = (target) => {
|
|
2601
|
+
const targetWindow = getTargetWindow(target);
|
|
2602
|
+
return !!targetWindow && target instanceof targetWindow.HTMLElement && target.className.includes("ToolIcon");
|
|
2603
|
+
};
|
|
2604
|
+
var isInputLike = (target) => {
|
|
2605
|
+
const targetWindow = getTargetWindow(target);
|
|
2606
|
+
return !!targetWindow && (target instanceof targetWindow.HTMLElement && target.dataset.type === "wysiwyg" || target instanceof targetWindow.HTMLBRElement || // newline in wysiwyg
|
|
2607
|
+
target instanceof targetWindow.HTMLInputElement || target instanceof targetWindow.HTMLTextAreaElement || target instanceof targetWindow.HTMLSelectElement);
|
|
2608
|
+
};
|
|
2508
2609
|
var isInteractive = (target) => {
|
|
2509
|
-
|
|
2610
|
+
const targetWindow = getTargetWindow(target);
|
|
2611
|
+
return isInputLike(target) || !!targetWindow && target instanceof targetWindow.Element && !!target.closest("label, button");
|
|
2612
|
+
};
|
|
2613
|
+
var isWritableElement = (target) => {
|
|
2614
|
+
const targetWindow = getTargetWindow(target);
|
|
2615
|
+
return !!targetWindow && (target instanceof targetWindow.HTMLElement && target.dataset.type === "wysiwyg" || target instanceof targetWindow.HTMLBRElement || // newline in wysiwyg
|
|
2616
|
+
target instanceof targetWindow.HTMLTextAreaElement || target instanceof targetWindow.HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search") || target instanceof targetWindow.HTMLElement && target.closest(".cm-editor") !== null);
|
|
2510
2617
|
};
|
|
2511
|
-
var isWritableElement = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
|
|
2512
|
-
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search") || target instanceof HTMLElement && target.closest(".cm-editor") !== null;
|
|
2513
2618
|
var getFontFamilyString = ({
|
|
2514
2619
|
fontFamily
|
|
2515
2620
|
}) => {
|
|
@@ -2637,7 +2742,7 @@ var updateActiveTool = (appState, data) => {
|
|
|
2637
2742
|
}
|
|
2638
2743
|
return {
|
|
2639
2744
|
...appState.activeTool,
|
|
2640
|
-
lastActiveTool: data.
|
|
2745
|
+
lastActiveTool: data.lastActiveTool === void 0 ? appState.activeTool.lastActiveTool : data.lastActiveTool,
|
|
2641
2746
|
type: data.type,
|
|
2642
2747
|
customType: null,
|
|
2643
2748
|
locked: data.locked ?? appState.activeTool.locked,
|
|
@@ -2764,19 +2869,21 @@ var supportsEmoji = () => {
|
|
|
2764
2869
|
return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;
|
|
2765
2870
|
};
|
|
2766
2871
|
var getNearestScrollableContainer = (element) => {
|
|
2872
|
+
const ownerDocument = element.ownerDocument;
|
|
2873
|
+
const ownerWindow = ownerDocument.defaultView ?? window;
|
|
2767
2874
|
let parent = element.parentElement;
|
|
2768
2875
|
while (parent) {
|
|
2769
|
-
if (parent ===
|
|
2770
|
-
return
|
|
2876
|
+
if (parent === ownerDocument.body) {
|
|
2877
|
+
return ownerDocument;
|
|
2771
2878
|
}
|
|
2772
|
-
const { overflowY } =
|
|
2879
|
+
const { overflowY } = ownerWindow.getComputedStyle(parent);
|
|
2773
2880
|
const hasScrollableContent = parent.scrollHeight > parent.clientHeight;
|
|
2774
2881
|
if (hasScrollableContent && (overflowY === "auto" || overflowY === "scroll" || overflowY === "overlay")) {
|
|
2775
2882
|
return parent;
|
|
2776
2883
|
}
|
|
2777
2884
|
parent = parent.parentElement;
|
|
2778
2885
|
}
|
|
2779
|
-
return
|
|
2886
|
+
return ownerDocument;
|
|
2780
2887
|
};
|
|
2781
2888
|
var focusNearestParent = (element) => {
|
|
2782
2889
|
let parent = element.parentElement;
|
|
@@ -3127,6 +3234,16 @@ var reseed = (seed) => {
|
|
|
3127
3234
|
testIdBase = 0;
|
|
3128
3235
|
};
|
|
3129
3236
|
var randomId = () => isTestEnv() ? `id${testIdBase++}` : nanoid();
|
|
3237
|
+
var seededRandom = (seed) => {
|
|
3238
|
+
let value = seed >>> 0;
|
|
3239
|
+
return () => {
|
|
3240
|
+
value += 1831565813;
|
|
3241
|
+
let next = value;
|
|
3242
|
+
next = Math.imul(next ^ next >>> 15, next | 1);
|
|
3243
|
+
next ^= next + Math.imul(next ^ next >>> 7, next | 61);
|
|
3244
|
+
return ((next ^ next >>> 14) >>> 0) / 4294967296;
|
|
3245
|
+
};
|
|
3246
|
+
};
|
|
3130
3247
|
|
|
3131
3248
|
// src/url.ts
|
|
3132
3249
|
init_define_import_meta_env();
|
|
@@ -3492,6 +3609,7 @@ export {
|
|
|
3492
3609
|
AppEventBus,
|
|
3493
3610
|
BIND_MODE_TIMEOUT,
|
|
3494
3611
|
BOUND_TEXT_PADDING,
|
|
3612
|
+
BUCKET_FILL_BACKGROUND_PICKS,
|
|
3495
3613
|
BinaryHeap,
|
|
3496
3614
|
CANVAS_ONLY_ACTIONS,
|
|
3497
3615
|
CANVAS_SEARCH_TAB,
|
|
@@ -3502,6 +3620,7 @@ export {
|
|
|
3502
3620
|
COLOR_CHARCOAL_BLACK,
|
|
3503
3621
|
COLOR_OUTLINE_CONTRAST_THRESHOLD,
|
|
3504
3622
|
COLOR_PALETTE,
|
|
3623
|
+
COLOR_TOP_PICKS_SLOTS,
|
|
3505
3624
|
COLOR_VOICE_CALL,
|
|
3506
3625
|
COLOR_WHITE,
|
|
3507
3626
|
CURSOR_TYPE,
|
|
@@ -3529,6 +3648,8 @@ export {
|
|
|
3529
3648
|
DEFAULT_PROPORTIONAL_RADIUS,
|
|
3530
3649
|
DEFAULT_REDUCED_GLOBAL_ALPHA,
|
|
3531
3650
|
DEFAULT_SIDEBAR,
|
|
3651
|
+
DEFAULT_STICKY_NOTE_BG,
|
|
3652
|
+
DEFAULT_STICKY_NOTE_SIZE,
|
|
3532
3653
|
DEFAULT_STROKE_STREAMLINE,
|
|
3533
3654
|
DEFAULT_STROKE_STREAMLINE_PRECISE,
|
|
3534
3655
|
DEFAULT_TEXT_ALIGN,
|
|
@@ -3536,11 +3657,13 @@ export {
|
|
|
3536
3657
|
DEFAULT_UI_OPTIONS,
|
|
3537
3658
|
DEFAULT_VERSION,
|
|
3538
3659
|
DEFAULT_VERTICAL_ALIGN,
|
|
3660
|
+
DEFAULT_ZOOM,
|
|
3539
3661
|
DOUBLE_TAP_POSITION_THRESHOLD,
|
|
3540
3662
|
DRAGGING_THRESHOLD,
|
|
3541
3663
|
Debug,
|
|
3542
3664
|
EDITOR_LS_KEYS,
|
|
3543
3665
|
ELEMENT_LINK_KEY,
|
|
3666
|
+
ELEMENT_PENDING_DRAW_SHAPE_OPACITY,
|
|
3544
3667
|
ELEMENT_READY_TO_ERASE_OPACITY,
|
|
3545
3668
|
ELEMENT_SHIFT_TRANSLATE_AMOUNT,
|
|
3546
3669
|
ELEMENT_TRANSLATE_AMOUNT,
|
|
@@ -3557,6 +3680,7 @@ export {
|
|
|
3557
3680
|
FONT_FAMILY_GENERIC_FALLBACKS,
|
|
3558
3681
|
FONT_METADATA,
|
|
3559
3682
|
FONT_SIZES,
|
|
3683
|
+
FONT_TOP_PICKS_SLOTS,
|
|
3560
3684
|
FRAME_STYLE,
|
|
3561
3685
|
FREEDRAW_STROKE_WIDTH,
|
|
3562
3686
|
GOOGLE_FONTS_RANGES,
|
|
@@ -3600,6 +3724,20 @@ export {
|
|
|
3600
3724
|
SHIFT_LOCKING_ANGLE,
|
|
3601
3725
|
SIDE_RESIZING_THRESHOLD,
|
|
3602
3726
|
STATS_PANELS,
|
|
3727
|
+
STICKY_NOTE_BACKGROUND_PICKS,
|
|
3728
|
+
STICKY_NOTE_BODY_INSET_Y,
|
|
3729
|
+
STICKY_NOTE_EDGE_SHADOW_OPACITY,
|
|
3730
|
+
STICKY_NOTE_EDGE_SHADOW_WIDTH,
|
|
3731
|
+
STICKY_NOTE_FALLBACK_FONT_SIZE,
|
|
3732
|
+
STICKY_NOTE_FONT_STEP,
|
|
3733
|
+
STICKY_NOTE_FOOTER,
|
|
3734
|
+
STICKY_NOTE_MAX_FONT_SIZE,
|
|
3735
|
+
STICKY_NOTE_MIN_FONT_SIZE,
|
|
3736
|
+
STICKY_NOTE_MIN_SIZE,
|
|
3737
|
+
STICKY_NOTE_PADDING,
|
|
3738
|
+
STICKY_NOTE_SHADOW_OFFSET,
|
|
3739
|
+
STICKY_NOTE_SHADOW_OPACITY,
|
|
3740
|
+
STICKY_NOTE_STROKE_PICKS,
|
|
3603
3741
|
STRING_MIME_TYPES,
|
|
3604
3742
|
STROKE_WIDTH,
|
|
3605
3743
|
STROKE_WIDTH_KEYS,
|
|
@@ -3687,6 +3825,7 @@ export {
|
|
|
3687
3825
|
isLocalLink,
|
|
3688
3826
|
isMemberOf,
|
|
3689
3827
|
isMobileBreakpoint,
|
|
3828
|
+
isOpaqueColor,
|
|
3690
3829
|
isPrimitive,
|
|
3691
3830
|
isProdEnv,
|
|
3692
3831
|
isPromiseLike,
|
|
@@ -3720,6 +3859,7 @@ export {
|
|
|
3720
3859
|
randomId,
|
|
3721
3860
|
randomInteger,
|
|
3722
3861
|
reduceToCommonValue,
|
|
3862
|
+
removeDarkModeFilter,
|
|
3723
3863
|
removeSelection,
|
|
3724
3864
|
rescalePoints,
|
|
3725
3865
|
reseed,
|
|
@@ -3727,7 +3867,9 @@ export {
|
|
|
3727
3867
|
rgbToHex2 as rgbToHex,
|
|
3728
3868
|
safelyParseJSON,
|
|
3729
3869
|
sceneCoordsToViewportCoords,
|
|
3870
|
+
seededRandom,
|
|
3730
3871
|
selectNode,
|
|
3872
|
+
setColorAlpha,
|
|
3731
3873
|
setDateTimeForTests,
|
|
3732
3874
|
setDesktopUIMode,
|
|
3733
3875
|
setFeatureFlag,
|