@excalidraw/common 0.18.0-4872083 → 0.18.0-4ce38fb

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 (119) hide show
  1. package/dist/dev/index.js +145 -14
  2. package/dist/dev/index.js.map +2 -2
  3. package/dist/prod/index.js +3 -3
  4. package/dist/types/common/src/colors.d.ts +13 -7
  5. package/dist/types/common/src/constants.d.ts +54 -0
  6. package/dist/types/common/src/keys.d.ts +2 -0
  7. package/dist/types/common/src/random.d.ts +7 -0
  8. package/dist/types/common/src/utils.d.ts +5 -0
  9. package/dist/types/element/src/Scene.d.ts +1 -1
  10. package/dist/types/element/src/binding.d.ts +13 -7
  11. package/dist/types/element/src/collision.d.ts +14 -5
  12. package/dist/types/element/src/comparisons.d.ts +5 -3
  13. package/dist/types/element/src/delta.d.ts +23 -1
  14. package/dist/types/element/src/duplicate.d.ts +60 -0
  15. package/dist/types/element/src/flowchart.d.ts +5 -1
  16. package/dist/types/element/src/frame.d.ts +2 -2
  17. package/dist/types/element/src/index.d.ts +2 -0
  18. package/dist/types/element/src/linearElementEditor.d.ts +10 -0
  19. package/dist/types/element/src/listMarker.d.ts +34 -0
  20. package/dist/types/element/src/mutateElement.d.ts +1 -1
  21. package/dist/types/element/src/newElement.d.ts +39 -3
  22. package/dist/types/element/src/renderElement.d.ts +21 -4
  23. package/dist/types/element/src/shape.d.ts +15 -1
  24. package/dist/types/element/src/sizeHelpers.d.ts +6 -0
  25. package/dist/types/element/src/stickyNote.d.ts +183 -0
  26. package/dist/types/element/src/textElement.d.ts +9 -1
  27. package/dist/types/element/src/transform.d.ts +25 -6
  28. package/dist/types/element/src/typeChecks.d.ts +3 -2
  29. package/dist/types/element/src/types.d.ts +35 -6
  30. package/dist/types/element/src/utils.d.ts +15 -4
  31. package/dist/types/element/src/zindex.d.ts +1 -1
  32. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +60 -3
  33. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  34. package/dist/types/excalidraw/actions/actionBoundText.d.ts +40 -2
  35. package/dist/types/excalidraw/actions/actionCanvas.d.ts +147 -14
  36. package/dist/types/excalidraw/actions/actionClipboard.d.ts +40 -2
  37. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +20 -1
  38. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +61 -4
  39. package/dist/types/excalidraw/actions/actionDeselect.d.ts +23 -1
  40. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -2
  41. package/dist/types/excalidraw/actions/actionElementLink.d.ts +20 -1
  42. package/dist/types/excalidraw/actions/actionElementLock.d.ts +40 -2
  43. package/dist/types/excalidraw/actions/actionExport.d.ts +41 -3
  44. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  45. package/dist/types/excalidraw/actions/actionFrame.d.ts +111 -4
  46. package/dist/types/excalidraw/actions/actionGroup.d.ts +40 -2
  47. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +71 -2
  48. package/dist/types/excalidraw/actions/actionLink.d.ts +20 -1
  49. package/dist/types/excalidraw/actions/actionMenu.d.ts +20 -1
  50. package/dist/types/excalidraw/actions/actionProperties.d.ts +50 -8
  51. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +20 -1
  52. package/dist/types/excalidraw/actions/actionStyles.d.ts +21 -2
  53. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +20 -1
  54. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +20 -1
  55. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +20 -1
  56. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +20 -1
  57. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +20 -1
  58. package/dist/types/excalidraw/actions/actionToggleShowHints.d.ts +197 -0
  59. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +20 -1
  60. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +20 -1
  61. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +20 -1
  62. package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
  63. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  64. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  65. package/dist/types/excalidraw/appState.d.ts +26 -4
  66. package/dist/types/excalidraw/components/App.arrowText.d.ts +28 -30
  67. package/dist/types/excalidraw/components/App.bucketFill.d.ts +10 -0
  68. package/dist/types/excalidraw/components/App.clipboard.d.ts +31 -0
  69. package/dist/types/excalidraw/components/App.cursor.d.ts +8 -0
  70. package/dist/types/excalidraw/components/App.d.ts +110 -199
  71. package/dist/types/excalidraw/components/App.duplicate.d.ts +101 -0
  72. package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
  73. package/dist/types/excalidraw/components/App.text.d.ts +146 -0
  74. package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
  75. package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
  76. package/dist/types/excalidraw/components/App.viewport.d.ts +41 -1
  77. package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
  78. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +6 -2
  79. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  80. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +4 -1
  81. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +4 -2
  82. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  83. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  84. package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
  85. package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
  86. package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
  87. package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
  88. package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
  89. package/dist/types/excalidraw/components/IconButton.d.ts +2 -0
  90. package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
  91. package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
  92. package/dist/types/excalidraw/components/Tools.d.ts +7 -2
  93. package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
  94. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
  95. package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
  96. package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
  97. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -0
  98. package/dist/types/excalidraw/components/icons.d.ts +2 -0
  99. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -0
  100. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +2 -2
  101. package/dist/types/excalidraw/data/blob.d.ts +42 -4
  102. package/dist/types/excalidraw/data/json.d.ts +21 -2
  103. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  104. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  105. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  106. package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
  107. package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
  108. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
  109. package/dist/types/excalidraw/scene/Renderer.d.ts +64 -2
  110. package/dist/types/excalidraw/scene/index.d.ts +1 -1
  111. package/dist/types/excalidraw/scene/types.d.ts +3 -1
  112. package/dist/types/excalidraw/types.d.ts +140 -18
  113. package/dist/types/excalidraw/viewport.d.ts +33 -1
  114. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +12 -1
  115. package/dist/types/math/src/curve.d.ts +19 -12
  116. package/dist/types/math/src/segment.d.ts +6 -0
  117. package/dist/types/utils/src/export.d.ts +1 -0
  118. package/dist/types/utils/src/shape.d.ts +2 -2
  119. package/package.json +1 -1
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(rgb.r, rgb.g, rgb.b, 93);
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
- 180
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],
@@ -1484,6 +1519,15 @@ var BUCKET_FILL_BACKGROUND_PICKS = [
1484
1519
  COLOR_PALETTE.blue[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX],
1485
1520
  COLOR_PALETTE.yellow[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX]
1486
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
+ ];
1487
1531
  var DEFAULT_CANVAS_BACKGROUND_PICKS = [
1488
1532
  COLOR_PALETTE.white,
1489
1533
  // radix slate2
@@ -1513,7 +1557,6 @@ var DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE = {
1513
1557
  bronze: COLOR_PALETTE.bronze,
1514
1558
  ...COMMON_ELEMENT_SHADES
1515
1559
  };
1516
- var getBucketFillBackgroundColor = (backgroundColor) => isTransparent(backgroundColor) ? COLOR_PALETTE.green[DEFAULT_ELEMENT_BACKGROUND_COLOR_INDEX] : backgroundColor;
1517
1560
  var getAllColorsSpecificShade = (index) => [
1518
1561
  // 2nd row
1519
1562
  COLOR_PALETTE.cyan[index],
@@ -1536,6 +1579,14 @@ var rgbToHex2 = (r, g, b, a) => {
1536
1579
  }
1537
1580
  return hex6;
1538
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
+ };
1539
1590
  var colorToHex = (color) => {
1540
1591
  const tc = tinycolor(color);
1541
1592
  if (!tc.isValid()) {
@@ -1589,6 +1640,8 @@ init_define_import_meta_env();
1589
1640
  var supportsResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
1590
1641
  var APP_NAME = "Excalidraw";
1591
1642
  var TEXT_AUTOWRAP_THRESHOLD = 36;
1643
+ var TEXT_VIEWPORT_PADDING = 20;
1644
+ var TEXT_MAX_WRAP_WIDTH = 800;
1592
1645
  var DRAGGING_THRESHOLD = 10;
1593
1646
  var MINIMUM_ARROW_SIZE = 20;
1594
1647
  var LINE_CONFIRM_THRESHOLD = 8;
@@ -1640,6 +1693,7 @@ var EVENT = /* @__PURE__ */ ((EVENT2) => {
1640
1693
  EVENT2["POINTER_MOVE"] = "pointermove";
1641
1694
  EVENT2["POINTER_DOWN"] = "pointerdown";
1642
1695
  EVENT2["POINTER_UP"] = "pointerup";
1696
+ EVENT2["POINTER_CANCEL"] = "pointercancel";
1643
1697
  EVENT2["STATE_CHANGE"] = "statechange";
1644
1698
  EVENT2["WHEEL"] = "wheel";
1645
1699
  EVENT2["TOUCH_START"] = "touchstart";
@@ -1751,7 +1805,28 @@ var FRAME_STYLE = {
1751
1805
  };
1752
1806
  var MIN_FONT_SIZE = 1;
1753
1807
  var DEFAULT_FONT_SIZE = 20;
1808
+ var STICKY_NOTE_MIN_FONT_SIZE = 16;
1809
+ var STICKY_NOTE_MAX_FONT_SIZE = 512;
1810
+ var STICKY_NOTE_FALLBACK_FONT_SIZE = 28;
1811
+ var STICKY_NOTE_FONT_STEP = 2;
1812
+ var STICKY_NOTE_PADDING = 16;
1813
+ var STICKY_NOTE_FOOTER = {
1814
+ height: 20,
1815
+ fontSize: 12,
1816
+ fontFamily: "Helvetica, Arial, sans-serif",
1817
+ baselineFromBottom: 14,
1818
+ opacity: 1,
1819
+ minBodyWidthForYear: 80
1820
+ };
1821
+ var STICKY_NOTE_BODY_INSET_Y = STICKY_NOTE_PADDING * 2 + STICKY_NOTE_FOOTER.height;
1822
+ var DEFAULT_STICKY_NOTE_SIZE = 250;
1823
+ var STICKY_NOTE_MIN_SIZE = 75;
1824
+ var STICKY_NOTE_SHADOW_OFFSET = 3;
1825
+ var STICKY_NOTE_SHADOW_OPACITY = 0.16;
1826
+ var STICKY_NOTE_EDGE_SHADOW_WIDTH = 0.5;
1827
+ var STICKY_NOTE_EDGE_SHADOW_OPACITY = 0.08;
1754
1828
  var DEFAULT_FONT_FAMILY = FONT_FAMILY.Excalifont;
1829
+ var FONT_TOP_PICKS_SLOTS = 3;
1755
1830
  var DEFAULT_TEXT_ALIGN = "left";
1756
1831
  var DEFAULT_VERTICAL_ALIGN = "top";
1757
1832
  var DEFAULT_VERSION = "{version}";
@@ -1821,9 +1896,13 @@ var TOUCH_CTX_MENU_TIMEOUT = 500;
1821
1896
  var TITLE_TIMEOUT = 1e4;
1822
1897
  var VERSION_TIMEOUT = 3e4;
1823
1898
  var SCROLL_TIMEOUT = 100;
1899
+ var ZEN_MODE_TRANSITION_DURATION = 250;
1824
1900
  var ZOOM_STEP = 0.1;
1825
1901
  var MIN_ZOOM = 0.1;
1826
1902
  var MAX_ZOOM = 30;
1903
+ var DEFAULT_ZOOM = Object.freeze({
1904
+ value: 1
1905
+ });
1827
1906
  var HYPERLINK_TOOLTIP_DELAY = 300;
1828
1907
  var IDLE_THRESHOLD = 6e4;
1829
1908
  var ACTIVE_THRESHOLD = 3e3;
@@ -1960,6 +2039,7 @@ var TOOL_TYPE = {
1960
2039
  hand: "hand",
1961
2040
  frame: "frame",
1962
2041
  magicframe: "magicframe",
2042
+ stickynote: "stickynote",
1963
2043
  embeddable: "embeddable",
1964
2044
  laser: "laser",
1965
2045
  autoshape: "autoshape",
@@ -2334,6 +2414,7 @@ var KEYS = {
2334
2414
  H: "h",
2335
2415
  I: "i",
2336
2416
  L: "l",
2417
+ N: "n",
2337
2418
  O: "o",
2338
2419
  P: "p",
2339
2420
  Q: "q",
@@ -2518,14 +2599,25 @@ var getDateTime = () => {
2518
2599
  return `${year}-${month}-${day}-${hr}${min}`;
2519
2600
  };
2520
2601
  var capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);
2521
- var isToolIcon = (target) => target instanceof HTMLElement && target.className.includes("ToolIcon");
2522
- var isInputLike = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
2523
- target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target instanceof HTMLSelectElement;
2602
+ var getTargetWindow = (target) => target?.ownerDocument?.defaultView ?? (typeof window === "undefined" ? null : window);
2603
+ var isToolIcon = (target) => {
2604
+ const targetWindow = getTargetWindow(target);
2605
+ return !!targetWindow && target instanceof targetWindow.HTMLElement && target.className.includes("ToolIcon");
2606
+ };
2607
+ var isInputLike = (target) => {
2608
+ const targetWindow = getTargetWindow(target);
2609
+ return !!targetWindow && (target instanceof targetWindow.HTMLElement && target.dataset.type === "wysiwyg" || target instanceof targetWindow.HTMLBRElement || // newline in wysiwyg
2610
+ target instanceof targetWindow.HTMLInputElement || target instanceof targetWindow.HTMLTextAreaElement || target instanceof targetWindow.HTMLSelectElement);
2611
+ };
2524
2612
  var isInteractive = (target) => {
2525
- return isInputLike(target) || target instanceof Element && !!target.closest("label, button");
2613
+ const targetWindow = getTargetWindow(target);
2614
+ return isInputLike(target) || !!targetWindow && target instanceof targetWindow.Element && !!target.closest("label, button");
2615
+ };
2616
+ var isWritableElement = (target) => {
2617
+ const targetWindow = getTargetWindow(target);
2618
+ return !!targetWindow && (target instanceof targetWindow.HTMLElement && target.dataset.type === "wysiwyg" || target instanceof targetWindow.HTMLBRElement || // newline in wysiwyg
2619
+ 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);
2526
2620
  };
2527
- var isWritableElement = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
2528
- 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;
2529
2621
  var getFontFamilyString = ({
2530
2622
  fontFamily
2531
2623
  }) => {
@@ -2690,6 +2782,8 @@ var RS_LTR_CHARS = "A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FF
2690
2782
  var RS_RTL_CHARS = "\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC";
2691
2783
  var RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);
2692
2784
  var isRTL = (text) => RE_RTL_CHECK.test(text);
2785
+ var RE_RTL_CHARS = new RegExp(`[${RS_RTL_CHARS}]`);
2786
+ var hasRTLChars = (text) => RE_RTL_CHARS.test(text);
2693
2787
  var tupleToCoors = (xyTuple) => {
2694
2788
  const [x, y] = xyTuple;
2695
2789
  return { x, y };
@@ -2780,19 +2874,21 @@ var supportsEmoji = () => {
2780
2874
  return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;
2781
2875
  };
2782
2876
  var getNearestScrollableContainer = (element) => {
2877
+ const ownerDocument = element.ownerDocument;
2878
+ const ownerWindow = ownerDocument.defaultView ?? window;
2783
2879
  let parent = element.parentElement;
2784
2880
  while (parent) {
2785
- if (parent === document.body) {
2786
- return document;
2881
+ if (parent === ownerDocument.body) {
2882
+ return ownerDocument;
2787
2883
  }
2788
- const { overflowY } = window.getComputedStyle(parent);
2884
+ const { overflowY } = ownerWindow.getComputedStyle(parent);
2789
2885
  const hasScrollableContent = parent.scrollHeight > parent.clientHeight;
2790
2886
  if (hasScrollableContent && (overflowY === "auto" || overflowY === "scroll" || overflowY === "overlay")) {
2791
2887
  return parent;
2792
2888
  }
2793
2889
  parent = parent.parentElement;
2794
2890
  }
2795
- return document;
2891
+ return ownerDocument;
2796
2892
  };
2797
2893
  var focusNearestParent = (element) => {
2798
2894
  let parent = element.parentElement;
@@ -3143,6 +3239,16 @@ var reseed = (seed) => {
3143
3239
  testIdBase = 0;
3144
3240
  };
3145
3241
  var randomId = () => isTestEnv() ? `id${testIdBase++}` : nanoid();
3242
+ var seededRandom = (seed) => {
3243
+ let value = seed >>> 0;
3244
+ return () => {
3245
+ value += 1831565813;
3246
+ let next = value;
3247
+ next = Math.imul(next ^ next >>> 15, next | 1);
3248
+ next ^= next + Math.imul(next ^ next >>> 7, next | 61);
3249
+ return ((next ^ next >>> 14) >>> 0) / 4294967296;
3250
+ };
3251
+ };
3146
3252
 
3147
3253
  // src/url.ts
3148
3254
  init_define_import_meta_env();
@@ -3519,6 +3625,7 @@ export {
3519
3625
  COLOR_CHARCOAL_BLACK,
3520
3626
  COLOR_OUTLINE_CONTRAST_THRESHOLD,
3521
3627
  COLOR_PALETTE,
3628
+ COLOR_TOP_PICKS_SLOTS,
3522
3629
  COLOR_VOICE_CALL,
3523
3630
  COLOR_WHITE,
3524
3631
  CURSOR_TYPE,
@@ -3546,6 +3653,8 @@ export {
3546
3653
  DEFAULT_PROPORTIONAL_RADIUS,
3547
3654
  DEFAULT_REDUCED_GLOBAL_ALPHA,
3548
3655
  DEFAULT_SIDEBAR,
3656
+ DEFAULT_STICKY_NOTE_BG,
3657
+ DEFAULT_STICKY_NOTE_SIZE,
3549
3658
  DEFAULT_STROKE_STREAMLINE,
3550
3659
  DEFAULT_STROKE_STREAMLINE_PRECISE,
3551
3660
  DEFAULT_TEXT_ALIGN,
@@ -3553,6 +3662,7 @@ export {
3553
3662
  DEFAULT_UI_OPTIONS,
3554
3663
  DEFAULT_VERSION,
3555
3664
  DEFAULT_VERTICAL_ALIGN,
3665
+ DEFAULT_ZOOM,
3556
3666
  DOUBLE_TAP_POSITION_THRESHOLD,
3557
3667
  DRAGGING_THRESHOLD,
3558
3668
  Debug,
@@ -3575,6 +3685,7 @@ export {
3575
3685
  FONT_FAMILY_GENERIC_FALLBACKS,
3576
3686
  FONT_METADATA,
3577
3687
  FONT_SIZES,
3688
+ FONT_TOP_PICKS_SLOTS,
3578
3689
  FRAME_STYLE,
3579
3690
  FREEDRAW_STROKE_WIDTH,
3580
3691
  GOOGLE_FONTS_RANGES,
@@ -3618,6 +3729,20 @@ export {
3618
3729
  SHIFT_LOCKING_ANGLE,
3619
3730
  SIDE_RESIZING_THRESHOLD,
3620
3731
  STATS_PANELS,
3732
+ STICKY_NOTE_BACKGROUND_PICKS,
3733
+ STICKY_NOTE_BODY_INSET_Y,
3734
+ STICKY_NOTE_EDGE_SHADOW_OPACITY,
3735
+ STICKY_NOTE_EDGE_SHADOW_WIDTH,
3736
+ STICKY_NOTE_FALLBACK_FONT_SIZE,
3737
+ STICKY_NOTE_FONT_STEP,
3738
+ STICKY_NOTE_FOOTER,
3739
+ STICKY_NOTE_MAX_FONT_SIZE,
3740
+ STICKY_NOTE_MIN_FONT_SIZE,
3741
+ STICKY_NOTE_MIN_SIZE,
3742
+ STICKY_NOTE_PADDING,
3743
+ STICKY_NOTE_SHADOW_OFFSET,
3744
+ STICKY_NOTE_SHADOW_OPACITY,
3745
+ STICKY_NOTE_STROKE_PICKS,
3621
3746
  STRING_MIME_TYPES,
3622
3747
  STROKE_WIDTH,
3623
3748
  STROKE_WIDTH_KEYS,
@@ -3626,7 +3751,9 @@ export {
3626
3751
  TAP_TWICE_TIMEOUT,
3627
3752
  TEXT_ALIGN,
3628
3753
  TEXT_AUTOWRAP_THRESHOLD,
3754
+ TEXT_MAX_WRAP_WIDTH,
3629
3755
  TEXT_TO_CENTER_SNAP_THRESHOLD,
3756
+ TEXT_VIEWPORT_PADDING,
3630
3757
  THEME,
3631
3758
  TITLE_TIMEOUT,
3632
3759
  TOOL_TYPE,
@@ -3640,6 +3767,7 @@ export {
3640
3767
  VersionedSnapshotStore,
3641
3768
  WINDOWS_EMOJI_FALLBACK_FONT,
3642
3769
  YOUTUBE_STATES,
3770
+ ZEN_MODE_TRANSITION_DURATION,
3643
3771
  ZOOM_STEP,
3644
3772
  addEventListener,
3645
3773
  allowFullScreen,
@@ -3667,7 +3795,6 @@ export {
3667
3795
  findLastIndex,
3668
3796
  focusNearestParent,
3669
3797
  getAllColorsSpecificShade,
3670
- getBucketFillBackgroundColor,
3671
3798
  getDateTime,
3672
3799
  getExportSource,
3673
3800
  getFeatureFlag,
@@ -3687,6 +3814,7 @@ export {
3687
3814
  getUpdatedTimestamp,
3688
3815
  getVersion,
3689
3816
  getVerticalOffset,
3817
+ hasRTLChars,
3690
3818
  invariant,
3691
3819
  isAndroid,
3692
3820
  isAnyTrue,
@@ -3740,6 +3868,7 @@ export {
3740
3868
  randomId,
3741
3869
  randomInteger,
3742
3870
  reduceToCommonValue,
3871
+ removeDarkModeFilter,
3743
3872
  removeSelection,
3744
3873
  rescalePoints,
3745
3874
  reseed,
@@ -3747,7 +3876,9 @@ export {
3747
3876
  rgbToHex2 as rgbToHex,
3748
3877
  safelyParseJSON,
3749
3878
  sceneCoordsToViewportCoords,
3879
+ seededRandom,
3750
3880
  selectNode,
3881
+ setColorAlpha,
3751
3882
  setDateTimeForTests,
3752
3883
  setDesktopUIMode,
3753
3884
  setFeatureFlag,