@measured/puck 0.8.0 → 0.9.0-canary.2bf48af

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/dist/index.js +428 -205
  2. package/package.json +12 -1
package/dist/index.js CHANGED
@@ -1214,11 +1214,11 @@ var Button = ({
1214
1214
 
1215
1215
  // components/DropZone/index.tsx
1216
1216
  init_react_import();
1217
- var import_react20 = require("react");
1217
+ var import_react21 = require("react");
1218
1218
 
1219
1219
  // components/DraggableComponent/index.tsx
1220
1220
  init_react_import();
1221
- var import_react17 = require("react");
1221
+ var import_react18 = require("react");
1222
1222
  var import_react_beautiful_dnd = require("react-beautiful-dnd");
1223
1223
 
1224
1224
  // css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
@@ -1378,7 +1378,7 @@ ChevronDown.propTypes = {
1378
1378
  ChevronDown.displayName = "ChevronDown";
1379
1379
  var chevron_down_default = ChevronDown;
1380
1380
 
1381
- // ../../node_modules/react-feather/dist/icons/chevron-right.js
1381
+ // ../../node_modules/react-feather/dist/icons/chevron-left.js
1382
1382
  init_react_import();
1383
1383
  var import_react5 = __toESM(require("react"));
1384
1384
  var import_prop_types3 = __toESM(require_prop_types());
@@ -1428,7 +1428,7 @@ function _objectWithoutPropertiesLoose3(source, excluded) {
1428
1428
  }
1429
1429
  return target;
1430
1430
  }
1431
- var ChevronRight = (0, import_react5.forwardRef)(function(_ref, ref) {
1431
+ var ChevronLeft = (0, import_react5.forwardRef)(function(_ref, ref) {
1432
1432
  var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties3(_ref, ["color", "size"]);
1433
1433
  return /* @__PURE__ */ import_react5.default.createElement("svg", _extends3({
1434
1434
  ref,
@@ -1442,17 +1442,17 @@ var ChevronRight = (0, import_react5.forwardRef)(function(_ref, ref) {
1442
1442
  strokeLinecap: "round",
1443
1443
  strokeLinejoin: "round"
1444
1444
  }, rest), /* @__PURE__ */ import_react5.default.createElement("polyline", {
1445
- points: "9 18 15 12 9 6"
1445
+ points: "15 18 9 12 15 6"
1446
1446
  }));
1447
1447
  });
1448
- ChevronRight.propTypes = {
1448
+ ChevronLeft.propTypes = {
1449
1449
  color: import_prop_types3.default.string,
1450
1450
  size: import_prop_types3.default.oneOfType([import_prop_types3.default.string, import_prop_types3.default.number])
1451
1451
  };
1452
- ChevronRight.displayName = "ChevronRight";
1453
- var chevron_right_default = ChevronRight;
1452
+ ChevronLeft.displayName = "ChevronLeft";
1453
+ var chevron_left_default = ChevronLeft;
1454
1454
 
1455
- // ../../node_modules/react-feather/dist/icons/copy.js
1455
+ // ../../node_modules/react-feather/dist/icons/chevron-right.js
1456
1456
  init_react_import();
1457
1457
  var import_react6 = __toESM(require("react"));
1458
1458
  var import_prop_types4 = __toESM(require_prop_types());
@@ -1502,7 +1502,7 @@ function _objectWithoutPropertiesLoose4(source, excluded) {
1502
1502
  }
1503
1503
  return target;
1504
1504
  }
1505
- var Copy = (0, import_react6.forwardRef)(function(_ref, ref) {
1505
+ var ChevronRight = (0, import_react6.forwardRef)(function(_ref, ref) {
1506
1506
  var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties4(_ref, ["color", "size"]);
1507
1507
  return /* @__PURE__ */ import_react6.default.createElement("svg", _extends4({
1508
1508
  ref,
@@ -1515,25 +1515,18 @@ var Copy = (0, import_react6.forwardRef)(function(_ref, ref) {
1515
1515
  strokeWidth: "2",
1516
1516
  strokeLinecap: "round",
1517
1517
  strokeLinejoin: "round"
1518
- }, rest), /* @__PURE__ */ import_react6.default.createElement("rect", {
1519
- x: "9",
1520
- y: "9",
1521
- width: "13",
1522
- height: "13",
1523
- rx: "2",
1524
- ry: "2"
1525
- }), /* @__PURE__ */ import_react6.default.createElement("path", {
1526
- d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"
1518
+ }, rest), /* @__PURE__ */ import_react6.default.createElement("polyline", {
1519
+ points: "9 18 15 12 9 6"
1527
1520
  }));
1528
1521
  });
1529
- Copy.propTypes = {
1522
+ ChevronRight.propTypes = {
1530
1523
  color: import_prop_types4.default.string,
1531
1524
  size: import_prop_types4.default.oneOfType([import_prop_types4.default.string, import_prop_types4.default.number])
1532
1525
  };
1533
- Copy.displayName = "Copy";
1534
- var copy_default = Copy;
1526
+ ChevronRight.displayName = "ChevronRight";
1527
+ var chevron_right_default = ChevronRight;
1535
1528
 
1536
- // ../../node_modules/react-feather/dist/icons/globe.js
1529
+ // ../../node_modules/react-feather/dist/icons/copy.js
1537
1530
  init_react_import();
1538
1531
  var import_react7 = __toESM(require("react"));
1539
1532
  var import_prop_types5 = __toESM(require_prop_types());
@@ -1583,7 +1576,7 @@ function _objectWithoutPropertiesLoose5(source, excluded) {
1583
1576
  }
1584
1577
  return target;
1585
1578
  }
1586
- var Globe = (0, import_react7.forwardRef)(function(_ref, ref) {
1579
+ var Copy = (0, import_react7.forwardRef)(function(_ref, ref) {
1587
1580
  var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties5(_ref, ["color", "size"]);
1588
1581
  return /* @__PURE__ */ import_react7.default.createElement("svg", _extends5({
1589
1582
  ref,
@@ -1596,27 +1589,25 @@ var Globe = (0, import_react7.forwardRef)(function(_ref, ref) {
1596
1589
  strokeWidth: "2",
1597
1590
  strokeLinecap: "round",
1598
1591
  strokeLinejoin: "round"
1599
- }, rest), /* @__PURE__ */ import_react7.default.createElement("circle", {
1600
- cx: "12",
1601
- cy: "12",
1602
- r: "10"
1603
- }), /* @__PURE__ */ import_react7.default.createElement("line", {
1604
- x1: "2",
1605
- y1: "12",
1606
- x2: "22",
1607
- y2: "12"
1592
+ }, rest), /* @__PURE__ */ import_react7.default.createElement("rect", {
1593
+ x: "9",
1594
+ y: "9",
1595
+ width: "13",
1596
+ height: "13",
1597
+ rx: "2",
1598
+ ry: "2"
1608
1599
  }), /* @__PURE__ */ import_react7.default.createElement("path", {
1609
- d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"
1600
+ d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"
1610
1601
  }));
1611
1602
  });
1612
- Globe.propTypes = {
1603
+ Copy.propTypes = {
1613
1604
  color: import_prop_types5.default.string,
1614
1605
  size: import_prop_types5.default.oneOfType([import_prop_types5.default.string, import_prop_types5.default.number])
1615
1606
  };
1616
- Globe.displayName = "Globe";
1617
- var globe_default = Globe;
1607
+ Copy.displayName = "Copy";
1608
+ var copy_default = Copy;
1618
1609
 
1619
- // ../../node_modules/react-feather/dist/icons/grid.js
1610
+ // ../../node_modules/react-feather/dist/icons/globe.js
1620
1611
  init_react_import();
1621
1612
  var import_react8 = __toESM(require("react"));
1622
1613
  var import_prop_types6 = __toESM(require_prop_types());
@@ -1666,7 +1657,7 @@ function _objectWithoutPropertiesLoose6(source, excluded) {
1666
1657
  }
1667
1658
  return target;
1668
1659
  }
1669
- var Grid = (0, import_react8.forwardRef)(function(_ref, ref) {
1660
+ var Globe = (0, import_react8.forwardRef)(function(_ref, ref) {
1670
1661
  var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties6(_ref, ["color", "size"]);
1671
1662
  return /* @__PURE__ */ import_react8.default.createElement("svg", _extends6({
1672
1663
  ref,
@@ -1679,22 +1670,105 @@ var Grid = (0, import_react8.forwardRef)(function(_ref, ref) {
1679
1670
  strokeWidth: "2",
1680
1671
  strokeLinecap: "round",
1681
1672
  strokeLinejoin: "round"
1682
- }, rest), /* @__PURE__ */ import_react8.default.createElement("rect", {
1673
+ }, rest), /* @__PURE__ */ import_react8.default.createElement("circle", {
1674
+ cx: "12",
1675
+ cy: "12",
1676
+ r: "10"
1677
+ }), /* @__PURE__ */ import_react8.default.createElement("line", {
1678
+ x1: "2",
1679
+ y1: "12",
1680
+ x2: "22",
1681
+ y2: "12"
1682
+ }), /* @__PURE__ */ import_react8.default.createElement("path", {
1683
+ d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"
1684
+ }));
1685
+ });
1686
+ Globe.propTypes = {
1687
+ color: import_prop_types6.default.string,
1688
+ size: import_prop_types6.default.oneOfType([import_prop_types6.default.string, import_prop_types6.default.number])
1689
+ };
1690
+ Globe.displayName = "Globe";
1691
+ var globe_default = Globe;
1692
+
1693
+ // ../../node_modules/react-feather/dist/icons/grid.js
1694
+ init_react_import();
1695
+ var import_react9 = __toESM(require("react"));
1696
+ var import_prop_types7 = __toESM(require_prop_types());
1697
+ function _extends7() {
1698
+ _extends7 = Object.assign || function(target) {
1699
+ for (var i = 1; i < arguments.length; i++) {
1700
+ var source = arguments[i];
1701
+ for (var key in source) {
1702
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1703
+ target[key] = source[key];
1704
+ }
1705
+ }
1706
+ }
1707
+ return target;
1708
+ };
1709
+ return _extends7.apply(this, arguments);
1710
+ }
1711
+ function _objectWithoutProperties7(source, excluded) {
1712
+ if (source == null)
1713
+ return {};
1714
+ var target = _objectWithoutPropertiesLoose7(source, excluded);
1715
+ var key, i;
1716
+ if (Object.getOwnPropertySymbols) {
1717
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1718
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
1719
+ key = sourceSymbolKeys[i];
1720
+ if (excluded.indexOf(key) >= 0)
1721
+ continue;
1722
+ if (!Object.prototype.propertyIsEnumerable.call(source, key))
1723
+ continue;
1724
+ target[key] = source[key];
1725
+ }
1726
+ }
1727
+ return target;
1728
+ }
1729
+ function _objectWithoutPropertiesLoose7(source, excluded) {
1730
+ if (source == null)
1731
+ return {};
1732
+ var target = {};
1733
+ var sourceKeys = Object.keys(source);
1734
+ var key, i;
1735
+ for (i = 0; i < sourceKeys.length; i++) {
1736
+ key = sourceKeys[i];
1737
+ if (excluded.indexOf(key) >= 0)
1738
+ continue;
1739
+ target[key] = source[key];
1740
+ }
1741
+ return target;
1742
+ }
1743
+ var Grid = (0, import_react9.forwardRef)(function(_ref, ref) {
1744
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties7(_ref, ["color", "size"]);
1745
+ return /* @__PURE__ */ import_react9.default.createElement("svg", _extends7({
1746
+ ref,
1747
+ xmlns: "http://www.w3.org/2000/svg",
1748
+ width: size,
1749
+ height: size,
1750
+ viewBox: "0 0 24 24",
1751
+ fill: "none",
1752
+ stroke: color,
1753
+ strokeWidth: "2",
1754
+ strokeLinecap: "round",
1755
+ strokeLinejoin: "round"
1756
+ }, rest), /* @__PURE__ */ import_react9.default.createElement("rect", {
1683
1757
  x: "3",
1684
1758
  y: "3",
1685
1759
  width: "7",
1686
1760
  height: "7"
1687
- }), /* @__PURE__ */ import_react8.default.createElement("rect", {
1761
+ }), /* @__PURE__ */ import_react9.default.createElement("rect", {
1688
1762
  x: "14",
1689
1763
  y: "3",
1690
1764
  width: "7",
1691
1765
  height: "7"
1692
- }), /* @__PURE__ */ import_react8.default.createElement("rect", {
1766
+ }), /* @__PURE__ */ import_react9.default.createElement("rect", {
1693
1767
  x: "14",
1694
1768
  y: "14",
1695
1769
  width: "7",
1696
1770
  height: "7"
1697
- }), /* @__PURE__ */ import_react8.default.createElement("rect", {
1771
+ }), /* @__PURE__ */ import_react9.default.createElement("rect", {
1698
1772
  x: "3",
1699
1773
  y: "14",
1700
1774
  width: "7",
@@ -1702,18 +1776,18 @@ var Grid = (0, import_react8.forwardRef)(function(_ref, ref) {
1702
1776
  }));
1703
1777
  });
1704
1778
  Grid.propTypes = {
1705
- color: import_prop_types6.default.string,
1706
- size: import_prop_types6.default.oneOfType([import_prop_types6.default.string, import_prop_types6.default.number])
1779
+ color: import_prop_types7.default.string,
1780
+ size: import_prop_types7.default.oneOfType([import_prop_types7.default.string, import_prop_types7.default.number])
1707
1781
  };
1708
1782
  Grid.displayName = "Grid";
1709
1783
  var grid_default = Grid;
1710
1784
 
1711
1785
  // ../../node_modules/react-feather/dist/icons/hash.js
1712
1786
  init_react_import();
1713
- var import_react9 = __toESM(require("react"));
1714
- var import_prop_types7 = __toESM(require_prop_types());
1715
- function _extends7() {
1716
- _extends7 = Object.assign || function(target) {
1787
+ var import_react10 = __toESM(require("react"));
1788
+ var import_prop_types8 = __toESM(require_prop_types());
1789
+ function _extends8() {
1790
+ _extends8 = Object.assign || function(target) {
1717
1791
  for (var i = 1; i < arguments.length; i++) {
1718
1792
  var source = arguments[i];
1719
1793
  for (var key in source) {
@@ -1724,12 +1798,12 @@ function _extends7() {
1724
1798
  }
1725
1799
  return target;
1726
1800
  };
1727
- return _extends7.apply(this, arguments);
1801
+ return _extends8.apply(this, arguments);
1728
1802
  }
1729
- function _objectWithoutProperties7(source, excluded) {
1803
+ function _objectWithoutProperties8(source, excluded) {
1730
1804
  if (source == null)
1731
1805
  return {};
1732
- var target = _objectWithoutPropertiesLoose7(source, excluded);
1806
+ var target = _objectWithoutPropertiesLoose8(source, excluded);
1733
1807
  var key, i;
1734
1808
  if (Object.getOwnPropertySymbols) {
1735
1809
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -1744,7 +1818,7 @@ function _objectWithoutProperties7(source, excluded) {
1744
1818
  }
1745
1819
  return target;
1746
1820
  }
1747
- function _objectWithoutPropertiesLoose7(source, excluded) {
1821
+ function _objectWithoutPropertiesLoose8(source, excluded) {
1748
1822
  if (source == null)
1749
1823
  return {};
1750
1824
  var target = {};
@@ -1758,9 +1832,9 @@ function _objectWithoutPropertiesLoose7(source, excluded) {
1758
1832
  }
1759
1833
  return target;
1760
1834
  }
1761
- var Hash = (0, import_react9.forwardRef)(function(_ref, ref) {
1762
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties7(_ref, ["color", "size"]);
1763
- return /* @__PURE__ */ import_react9.default.createElement("svg", _extends7({
1835
+ var Hash = (0, import_react10.forwardRef)(function(_ref, ref) {
1836
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties8(_ref, ["color", "size"]);
1837
+ return /* @__PURE__ */ import_react10.default.createElement("svg", _extends8({
1764
1838
  ref,
1765
1839
  xmlns: "http://www.w3.org/2000/svg",
1766
1840
  width: size,
@@ -1771,22 +1845,22 @@ var Hash = (0, import_react9.forwardRef)(function(_ref, ref) {
1771
1845
  strokeWidth: "2",
1772
1846
  strokeLinecap: "round",
1773
1847
  strokeLinejoin: "round"
1774
- }, rest), /* @__PURE__ */ import_react9.default.createElement("line", {
1848
+ }, rest), /* @__PURE__ */ import_react10.default.createElement("line", {
1775
1849
  x1: "4",
1776
1850
  y1: "9",
1777
1851
  x2: "20",
1778
1852
  y2: "9"
1779
- }), /* @__PURE__ */ import_react9.default.createElement("line", {
1853
+ }), /* @__PURE__ */ import_react10.default.createElement("line", {
1780
1854
  x1: "4",
1781
1855
  y1: "15",
1782
1856
  x2: "20",
1783
1857
  y2: "15"
1784
- }), /* @__PURE__ */ import_react9.default.createElement("line", {
1858
+ }), /* @__PURE__ */ import_react10.default.createElement("line", {
1785
1859
  x1: "10",
1786
1860
  y1: "3",
1787
1861
  x2: "8",
1788
1862
  y2: "21"
1789
- }), /* @__PURE__ */ import_react9.default.createElement("line", {
1863
+ }), /* @__PURE__ */ import_react10.default.createElement("line", {
1790
1864
  x1: "16",
1791
1865
  y1: "3",
1792
1866
  x2: "14",
@@ -1794,18 +1868,18 @@ var Hash = (0, import_react9.forwardRef)(function(_ref, ref) {
1794
1868
  }));
1795
1869
  });
1796
1870
  Hash.propTypes = {
1797
- color: import_prop_types7.default.string,
1798
- size: import_prop_types7.default.oneOfType([import_prop_types7.default.string, import_prop_types7.default.number])
1871
+ color: import_prop_types8.default.string,
1872
+ size: import_prop_types8.default.oneOfType([import_prop_types8.default.string, import_prop_types8.default.number])
1799
1873
  };
1800
1874
  Hash.displayName = "Hash";
1801
1875
  var hash_default = Hash;
1802
1876
 
1803
1877
  // ../../node_modules/react-feather/dist/icons/layers.js
1804
1878
  init_react_import();
1805
- var import_react10 = __toESM(require("react"));
1806
- var import_prop_types8 = __toESM(require_prop_types());
1807
- function _extends8() {
1808
- _extends8 = Object.assign || function(target) {
1879
+ var import_react11 = __toESM(require("react"));
1880
+ var import_prop_types9 = __toESM(require_prop_types());
1881
+ function _extends9() {
1882
+ _extends9 = Object.assign || function(target) {
1809
1883
  for (var i = 1; i < arguments.length; i++) {
1810
1884
  var source = arguments[i];
1811
1885
  for (var key in source) {
@@ -1816,12 +1890,12 @@ function _extends8() {
1816
1890
  }
1817
1891
  return target;
1818
1892
  };
1819
- return _extends8.apply(this, arguments);
1893
+ return _extends9.apply(this, arguments);
1820
1894
  }
1821
- function _objectWithoutProperties8(source, excluded) {
1895
+ function _objectWithoutProperties9(source, excluded) {
1822
1896
  if (source == null)
1823
1897
  return {};
1824
- var target = _objectWithoutPropertiesLoose8(source, excluded);
1898
+ var target = _objectWithoutPropertiesLoose9(source, excluded);
1825
1899
  var key, i;
1826
1900
  if (Object.getOwnPropertySymbols) {
1827
1901
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -1836,7 +1910,7 @@ function _objectWithoutProperties8(source, excluded) {
1836
1910
  }
1837
1911
  return target;
1838
1912
  }
1839
- function _objectWithoutPropertiesLoose8(source, excluded) {
1913
+ function _objectWithoutPropertiesLoose9(source, excluded) {
1840
1914
  if (source == null)
1841
1915
  return {};
1842
1916
  var target = {};
@@ -1850,9 +1924,9 @@ function _objectWithoutPropertiesLoose8(source, excluded) {
1850
1924
  }
1851
1925
  return target;
1852
1926
  }
1853
- var Layers = (0, import_react10.forwardRef)(function(_ref, ref) {
1854
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties8(_ref, ["color", "size"]);
1855
- return /* @__PURE__ */ import_react10.default.createElement("svg", _extends8({
1927
+ var Layers = (0, import_react11.forwardRef)(function(_ref, ref) {
1928
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties9(_ref, ["color", "size"]);
1929
+ return /* @__PURE__ */ import_react11.default.createElement("svg", _extends9({
1856
1930
  ref,
1857
1931
  xmlns: "http://www.w3.org/2000/svg",
1858
1932
  width: size,
@@ -1863,27 +1937,27 @@ var Layers = (0, import_react10.forwardRef)(function(_ref, ref) {
1863
1937
  strokeWidth: "2",
1864
1938
  strokeLinecap: "round",
1865
1939
  strokeLinejoin: "round"
1866
- }, rest), /* @__PURE__ */ import_react10.default.createElement("polygon", {
1940
+ }, rest), /* @__PURE__ */ import_react11.default.createElement("polygon", {
1867
1941
  points: "12 2 2 7 12 12 22 7 12 2"
1868
- }), /* @__PURE__ */ import_react10.default.createElement("polyline", {
1942
+ }), /* @__PURE__ */ import_react11.default.createElement("polyline", {
1869
1943
  points: "2 17 12 22 22 17"
1870
- }), /* @__PURE__ */ import_react10.default.createElement("polyline", {
1944
+ }), /* @__PURE__ */ import_react11.default.createElement("polyline", {
1871
1945
  points: "2 12 12 17 22 12"
1872
1946
  }));
1873
1947
  });
1874
1948
  Layers.propTypes = {
1875
- color: import_prop_types8.default.string,
1876
- size: import_prop_types8.default.oneOfType([import_prop_types8.default.string, import_prop_types8.default.number])
1949
+ color: import_prop_types9.default.string,
1950
+ size: import_prop_types9.default.oneOfType([import_prop_types9.default.string, import_prop_types9.default.number])
1877
1951
  };
1878
1952
  Layers.displayName = "Layers";
1879
1953
  var layers_default = Layers;
1880
1954
 
1881
1955
  // ../../node_modules/react-feather/dist/icons/link.js
1882
1956
  init_react_import();
1883
- var import_react11 = __toESM(require("react"));
1884
- var import_prop_types9 = __toESM(require_prop_types());
1885
- function _extends9() {
1886
- _extends9 = Object.assign || function(target) {
1957
+ var import_react12 = __toESM(require("react"));
1958
+ var import_prop_types10 = __toESM(require_prop_types());
1959
+ function _extends10() {
1960
+ _extends10 = Object.assign || function(target) {
1887
1961
  for (var i = 1; i < arguments.length; i++) {
1888
1962
  var source = arguments[i];
1889
1963
  for (var key in source) {
@@ -1894,12 +1968,12 @@ function _extends9() {
1894
1968
  }
1895
1969
  return target;
1896
1970
  };
1897
- return _extends9.apply(this, arguments);
1971
+ return _extends10.apply(this, arguments);
1898
1972
  }
1899
- function _objectWithoutProperties9(source, excluded) {
1973
+ function _objectWithoutProperties10(source, excluded) {
1900
1974
  if (source == null)
1901
1975
  return {};
1902
- var target = _objectWithoutPropertiesLoose9(source, excluded);
1976
+ var target = _objectWithoutPropertiesLoose10(source, excluded);
1903
1977
  var key, i;
1904
1978
  if (Object.getOwnPropertySymbols) {
1905
1979
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -1914,7 +1988,7 @@ function _objectWithoutProperties9(source, excluded) {
1914
1988
  }
1915
1989
  return target;
1916
1990
  }
1917
- function _objectWithoutPropertiesLoose9(source, excluded) {
1991
+ function _objectWithoutPropertiesLoose10(source, excluded) {
1918
1992
  if (source == null)
1919
1993
  return {};
1920
1994
  var target = {};
@@ -1928,9 +2002,9 @@ function _objectWithoutPropertiesLoose9(source, excluded) {
1928
2002
  }
1929
2003
  return target;
1930
2004
  }
1931
- var Link = (0, import_react11.forwardRef)(function(_ref, ref) {
1932
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties9(_ref, ["color", "size"]);
1933
- return /* @__PURE__ */ import_react11.default.createElement("svg", _extends9({
2005
+ var Link = (0, import_react12.forwardRef)(function(_ref, ref) {
2006
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties10(_ref, ["color", "size"]);
2007
+ return /* @__PURE__ */ import_react12.default.createElement("svg", _extends10({
1934
2008
  ref,
1935
2009
  xmlns: "http://www.w3.org/2000/svg",
1936
2010
  width: size,
@@ -1941,25 +2015,25 @@ var Link = (0, import_react11.forwardRef)(function(_ref, ref) {
1941
2015
  strokeWidth: "2",
1942
2016
  strokeLinecap: "round",
1943
2017
  strokeLinejoin: "round"
1944
- }, rest), /* @__PURE__ */ import_react11.default.createElement("path", {
2018
+ }, rest), /* @__PURE__ */ import_react12.default.createElement("path", {
1945
2019
  d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"
1946
- }), /* @__PURE__ */ import_react11.default.createElement("path", {
2020
+ }), /* @__PURE__ */ import_react12.default.createElement("path", {
1947
2021
  d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"
1948
2022
  }));
1949
2023
  });
1950
2024
  Link.propTypes = {
1951
- color: import_prop_types9.default.string,
1952
- size: import_prop_types9.default.oneOfType([import_prop_types9.default.string, import_prop_types9.default.number])
2025
+ color: import_prop_types10.default.string,
2026
+ size: import_prop_types10.default.oneOfType([import_prop_types10.default.string, import_prop_types10.default.number])
1953
2027
  };
1954
2028
  Link.displayName = "Link";
1955
2029
  var link_default = Link;
1956
2030
 
1957
2031
  // ../../node_modules/react-feather/dist/icons/list.js
1958
2032
  init_react_import();
1959
- var import_react12 = __toESM(require("react"));
1960
- var import_prop_types10 = __toESM(require_prop_types());
1961
- function _extends10() {
1962
- _extends10 = Object.assign || function(target) {
2033
+ var import_react13 = __toESM(require("react"));
2034
+ var import_prop_types11 = __toESM(require_prop_types());
2035
+ function _extends11() {
2036
+ _extends11 = Object.assign || function(target) {
1963
2037
  for (var i = 1; i < arguments.length; i++) {
1964
2038
  var source = arguments[i];
1965
2039
  for (var key in source) {
@@ -1970,12 +2044,12 @@ function _extends10() {
1970
2044
  }
1971
2045
  return target;
1972
2046
  };
1973
- return _extends10.apply(this, arguments);
2047
+ return _extends11.apply(this, arguments);
1974
2048
  }
1975
- function _objectWithoutProperties10(source, excluded) {
2049
+ function _objectWithoutProperties11(source, excluded) {
1976
2050
  if (source == null)
1977
2051
  return {};
1978
- var target = _objectWithoutPropertiesLoose10(source, excluded);
2052
+ var target = _objectWithoutPropertiesLoose11(source, excluded);
1979
2053
  var key, i;
1980
2054
  if (Object.getOwnPropertySymbols) {
1981
2055
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -1990,7 +2064,7 @@ function _objectWithoutProperties10(source, excluded) {
1990
2064
  }
1991
2065
  return target;
1992
2066
  }
1993
- function _objectWithoutPropertiesLoose10(source, excluded) {
2067
+ function _objectWithoutPropertiesLoose11(source, excluded) {
1994
2068
  if (source == null)
1995
2069
  return {};
1996
2070
  var target = {};
@@ -2004,9 +2078,9 @@ function _objectWithoutPropertiesLoose10(source, excluded) {
2004
2078
  }
2005
2079
  return target;
2006
2080
  }
2007
- var List = (0, import_react12.forwardRef)(function(_ref, ref) {
2008
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties10(_ref, ["color", "size"]);
2009
- return /* @__PURE__ */ import_react12.default.createElement("svg", _extends10({
2081
+ var List = (0, import_react13.forwardRef)(function(_ref, ref) {
2082
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties11(_ref, ["color", "size"]);
2083
+ return /* @__PURE__ */ import_react13.default.createElement("svg", _extends11({
2010
2084
  ref,
2011
2085
  xmlns: "http://www.w3.org/2000/svg",
2012
2086
  width: size,
@@ -2017,32 +2091,32 @@ var List = (0, import_react12.forwardRef)(function(_ref, ref) {
2017
2091
  strokeWidth: "2",
2018
2092
  strokeLinecap: "round",
2019
2093
  strokeLinejoin: "round"
2020
- }, rest), /* @__PURE__ */ import_react12.default.createElement("line", {
2094
+ }, rest), /* @__PURE__ */ import_react13.default.createElement("line", {
2021
2095
  x1: "8",
2022
2096
  y1: "6",
2023
2097
  x2: "21",
2024
2098
  y2: "6"
2025
- }), /* @__PURE__ */ import_react12.default.createElement("line", {
2099
+ }), /* @__PURE__ */ import_react13.default.createElement("line", {
2026
2100
  x1: "8",
2027
2101
  y1: "12",
2028
2102
  x2: "21",
2029
2103
  y2: "12"
2030
- }), /* @__PURE__ */ import_react12.default.createElement("line", {
2104
+ }), /* @__PURE__ */ import_react13.default.createElement("line", {
2031
2105
  x1: "8",
2032
2106
  y1: "18",
2033
2107
  x2: "21",
2034
2108
  y2: "18"
2035
- }), /* @__PURE__ */ import_react12.default.createElement("line", {
2109
+ }), /* @__PURE__ */ import_react13.default.createElement("line", {
2036
2110
  x1: "3",
2037
2111
  y1: "6",
2038
2112
  x2: "3.01",
2039
2113
  y2: "6"
2040
- }), /* @__PURE__ */ import_react12.default.createElement("line", {
2114
+ }), /* @__PURE__ */ import_react13.default.createElement("line", {
2041
2115
  x1: "3",
2042
2116
  y1: "12",
2043
2117
  x2: "3.01",
2044
2118
  y2: "12"
2045
- }), /* @__PURE__ */ import_react12.default.createElement("line", {
2119
+ }), /* @__PURE__ */ import_react13.default.createElement("line", {
2046
2120
  x1: "3",
2047
2121
  y1: "18",
2048
2122
  x2: "3.01",
@@ -2050,18 +2124,18 @@ var List = (0, import_react12.forwardRef)(function(_ref, ref) {
2050
2124
  }));
2051
2125
  });
2052
2126
  List.propTypes = {
2053
- color: import_prop_types10.default.string,
2054
- size: import_prop_types10.default.oneOfType([import_prop_types10.default.string, import_prop_types10.default.number])
2127
+ color: import_prop_types11.default.string,
2128
+ size: import_prop_types11.default.oneOfType([import_prop_types11.default.string, import_prop_types11.default.number])
2055
2129
  };
2056
2130
  List.displayName = "List";
2057
2131
  var list_default = List;
2058
2132
 
2059
2133
  // ../../node_modules/react-feather/dist/icons/sidebar.js
2060
2134
  init_react_import();
2061
- var import_react13 = __toESM(require("react"));
2062
- var import_prop_types11 = __toESM(require_prop_types());
2063
- function _extends11() {
2064
- _extends11 = Object.assign || function(target) {
2135
+ var import_react14 = __toESM(require("react"));
2136
+ var import_prop_types12 = __toESM(require_prop_types());
2137
+ function _extends12() {
2138
+ _extends12 = Object.assign || function(target) {
2065
2139
  for (var i = 1; i < arguments.length; i++) {
2066
2140
  var source = arguments[i];
2067
2141
  for (var key in source) {
@@ -2072,12 +2146,12 @@ function _extends11() {
2072
2146
  }
2073
2147
  return target;
2074
2148
  };
2075
- return _extends11.apply(this, arguments);
2149
+ return _extends12.apply(this, arguments);
2076
2150
  }
2077
- function _objectWithoutProperties11(source, excluded) {
2151
+ function _objectWithoutProperties12(source, excluded) {
2078
2152
  if (source == null)
2079
2153
  return {};
2080
- var target = _objectWithoutPropertiesLoose11(source, excluded);
2154
+ var target = _objectWithoutPropertiesLoose12(source, excluded);
2081
2155
  var key, i;
2082
2156
  if (Object.getOwnPropertySymbols) {
2083
2157
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -2092,7 +2166,7 @@ function _objectWithoutProperties11(source, excluded) {
2092
2166
  }
2093
2167
  return target;
2094
2168
  }
2095
- function _objectWithoutPropertiesLoose11(source, excluded) {
2169
+ function _objectWithoutPropertiesLoose12(source, excluded) {
2096
2170
  if (source == null)
2097
2171
  return {};
2098
2172
  var target = {};
@@ -2106,9 +2180,9 @@ function _objectWithoutPropertiesLoose11(source, excluded) {
2106
2180
  }
2107
2181
  return target;
2108
2182
  }
2109
- var Sidebar = (0, import_react13.forwardRef)(function(_ref, ref) {
2110
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties11(_ref, ["color", "size"]);
2111
- return /* @__PURE__ */ import_react13.default.createElement("svg", _extends11({
2183
+ var Sidebar = (0, import_react14.forwardRef)(function(_ref, ref) {
2184
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties12(_ref, ["color", "size"]);
2185
+ return /* @__PURE__ */ import_react14.default.createElement("svg", _extends12({
2112
2186
  ref,
2113
2187
  xmlns: "http://www.w3.org/2000/svg",
2114
2188
  width: size,
@@ -2119,14 +2193,14 @@ var Sidebar = (0, import_react13.forwardRef)(function(_ref, ref) {
2119
2193
  strokeWidth: "2",
2120
2194
  strokeLinecap: "round",
2121
2195
  strokeLinejoin: "round"
2122
- }, rest), /* @__PURE__ */ import_react13.default.createElement("rect", {
2196
+ }, rest), /* @__PURE__ */ import_react14.default.createElement("rect", {
2123
2197
  x: "3",
2124
2198
  y: "3",
2125
2199
  width: "18",
2126
2200
  height: "18",
2127
2201
  rx: "2",
2128
2202
  ry: "2"
2129
- }), /* @__PURE__ */ import_react13.default.createElement("line", {
2203
+ }), /* @__PURE__ */ import_react14.default.createElement("line", {
2130
2204
  x1: "9",
2131
2205
  y1: "3",
2132
2206
  x2: "9",
@@ -2134,18 +2208,18 @@ var Sidebar = (0, import_react13.forwardRef)(function(_ref, ref) {
2134
2208
  }));
2135
2209
  });
2136
2210
  Sidebar.propTypes = {
2137
- color: import_prop_types11.default.string,
2138
- size: import_prop_types11.default.oneOfType([import_prop_types11.default.string, import_prop_types11.default.number])
2211
+ color: import_prop_types12.default.string,
2212
+ size: import_prop_types12.default.oneOfType([import_prop_types12.default.string, import_prop_types12.default.number])
2139
2213
  };
2140
2214
  Sidebar.displayName = "Sidebar";
2141
2215
  var sidebar_default = Sidebar;
2142
2216
 
2143
2217
  // ../../node_modules/react-feather/dist/icons/trash.js
2144
2218
  init_react_import();
2145
- var import_react14 = __toESM(require("react"));
2146
- var import_prop_types12 = __toESM(require_prop_types());
2147
- function _extends12() {
2148
- _extends12 = Object.assign || function(target) {
2219
+ var import_react15 = __toESM(require("react"));
2220
+ var import_prop_types13 = __toESM(require_prop_types());
2221
+ function _extends13() {
2222
+ _extends13 = Object.assign || function(target) {
2149
2223
  for (var i = 1; i < arguments.length; i++) {
2150
2224
  var source = arguments[i];
2151
2225
  for (var key in source) {
@@ -2156,12 +2230,12 @@ function _extends12() {
2156
2230
  }
2157
2231
  return target;
2158
2232
  };
2159
- return _extends12.apply(this, arguments);
2233
+ return _extends13.apply(this, arguments);
2160
2234
  }
2161
- function _objectWithoutProperties12(source, excluded) {
2235
+ function _objectWithoutProperties13(source, excluded) {
2162
2236
  if (source == null)
2163
2237
  return {};
2164
- var target = _objectWithoutPropertiesLoose12(source, excluded);
2238
+ var target = _objectWithoutPropertiesLoose13(source, excluded);
2165
2239
  var key, i;
2166
2240
  if (Object.getOwnPropertySymbols) {
2167
2241
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -2176,7 +2250,7 @@ function _objectWithoutProperties12(source, excluded) {
2176
2250
  }
2177
2251
  return target;
2178
2252
  }
2179
- function _objectWithoutPropertiesLoose12(source, excluded) {
2253
+ function _objectWithoutPropertiesLoose13(source, excluded) {
2180
2254
  if (source == null)
2181
2255
  return {};
2182
2256
  var target = {};
@@ -2190,9 +2264,9 @@ function _objectWithoutPropertiesLoose12(source, excluded) {
2190
2264
  }
2191
2265
  return target;
2192
2266
  }
2193
- var Trash = (0, import_react14.forwardRef)(function(_ref, ref) {
2194
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties12(_ref, ["color", "size"]);
2195
- return /* @__PURE__ */ import_react14.default.createElement("svg", _extends12({
2267
+ var Trash = (0, import_react15.forwardRef)(function(_ref, ref) {
2268
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties13(_ref, ["color", "size"]);
2269
+ return /* @__PURE__ */ import_react15.default.createElement("svg", _extends13({
2196
2270
  ref,
2197
2271
  xmlns: "http://www.w3.org/2000/svg",
2198
2272
  width: size,
@@ -2203,25 +2277,25 @@ var Trash = (0, import_react14.forwardRef)(function(_ref, ref) {
2203
2277
  strokeWidth: "2",
2204
2278
  strokeLinecap: "round",
2205
2279
  strokeLinejoin: "round"
2206
- }, rest), /* @__PURE__ */ import_react14.default.createElement("polyline", {
2280
+ }, rest), /* @__PURE__ */ import_react15.default.createElement("polyline", {
2207
2281
  points: "3 6 5 6 21 6"
2208
- }), /* @__PURE__ */ import_react14.default.createElement("path", {
2282
+ }), /* @__PURE__ */ import_react15.default.createElement("path", {
2209
2283
  d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"
2210
2284
  }));
2211
2285
  });
2212
2286
  Trash.propTypes = {
2213
- color: import_prop_types12.default.string,
2214
- size: import_prop_types12.default.oneOfType([import_prop_types12.default.string, import_prop_types12.default.number])
2287
+ color: import_prop_types13.default.string,
2288
+ size: import_prop_types13.default.oneOfType([import_prop_types13.default.string, import_prop_types13.default.number])
2215
2289
  };
2216
2290
  Trash.displayName = "Trash";
2217
2291
  var trash_default = Trash;
2218
2292
 
2219
2293
  // ../../node_modules/react-feather/dist/icons/type.js
2220
2294
  init_react_import();
2221
- var import_react15 = __toESM(require("react"));
2222
- var import_prop_types13 = __toESM(require_prop_types());
2223
- function _extends13() {
2224
- _extends13 = Object.assign || function(target) {
2295
+ var import_react16 = __toESM(require("react"));
2296
+ var import_prop_types14 = __toESM(require_prop_types());
2297
+ function _extends14() {
2298
+ _extends14 = Object.assign || function(target) {
2225
2299
  for (var i = 1; i < arguments.length; i++) {
2226
2300
  var source = arguments[i];
2227
2301
  for (var key in source) {
@@ -2232,12 +2306,12 @@ function _extends13() {
2232
2306
  }
2233
2307
  return target;
2234
2308
  };
2235
- return _extends13.apply(this, arguments);
2309
+ return _extends14.apply(this, arguments);
2236
2310
  }
2237
- function _objectWithoutProperties13(source, excluded) {
2311
+ function _objectWithoutProperties14(source, excluded) {
2238
2312
  if (source == null)
2239
2313
  return {};
2240
- var target = _objectWithoutPropertiesLoose13(source, excluded);
2314
+ var target = _objectWithoutPropertiesLoose14(source, excluded);
2241
2315
  var key, i;
2242
2316
  if (Object.getOwnPropertySymbols) {
2243
2317
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -2252,7 +2326,7 @@ function _objectWithoutProperties13(source, excluded) {
2252
2326
  }
2253
2327
  return target;
2254
2328
  }
2255
- function _objectWithoutPropertiesLoose13(source, excluded) {
2329
+ function _objectWithoutPropertiesLoose14(source, excluded) {
2256
2330
  if (source == null)
2257
2331
  return {};
2258
2332
  var target = {};
@@ -2266,9 +2340,9 @@ function _objectWithoutPropertiesLoose13(source, excluded) {
2266
2340
  }
2267
2341
  return target;
2268
2342
  }
2269
- var Type = (0, import_react15.forwardRef)(function(_ref, ref) {
2270
- var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties13(_ref, ["color", "size"]);
2271
- return /* @__PURE__ */ import_react15.default.createElement("svg", _extends13({
2343
+ var Type = (0, import_react16.forwardRef)(function(_ref, ref) {
2344
+ var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties14(_ref, ["color", "size"]);
2345
+ return /* @__PURE__ */ import_react16.default.createElement("svg", _extends14({
2272
2346
  ref,
2273
2347
  xmlns: "http://www.w3.org/2000/svg",
2274
2348
  width: size,
@@ -2279,14 +2353,14 @@ var Type = (0, import_react15.forwardRef)(function(_ref, ref) {
2279
2353
  strokeWidth: "2",
2280
2354
  strokeLinecap: "round",
2281
2355
  strokeLinejoin: "round"
2282
- }, rest), /* @__PURE__ */ import_react15.default.createElement("polyline", {
2356
+ }, rest), /* @__PURE__ */ import_react16.default.createElement("polyline", {
2283
2357
  points: "4 7 4 4 20 4 20 7"
2284
- }), /* @__PURE__ */ import_react15.default.createElement("line", {
2358
+ }), /* @__PURE__ */ import_react16.default.createElement("line", {
2285
2359
  x1: "9",
2286
2360
  y1: "20",
2287
2361
  x2: "15",
2288
2362
  y2: "20"
2289
- }), /* @__PURE__ */ import_react15.default.createElement("line", {
2363
+ }), /* @__PURE__ */ import_react16.default.createElement("line", {
2290
2364
  x1: "12",
2291
2365
  y1: "4",
2292
2366
  x2: "12",
@@ -2294,18 +2368,18 @@ var Type = (0, import_react15.forwardRef)(function(_ref, ref) {
2294
2368
  }));
2295
2369
  });
2296
2370
  Type.propTypes = {
2297
- color: import_prop_types13.default.string,
2298
- size: import_prop_types13.default.oneOfType([import_prop_types13.default.string, import_prop_types13.default.number])
2371
+ color: import_prop_types14.default.string,
2372
+ size: import_prop_types14.default.oneOfType([import_prop_types14.default.string, import_prop_types14.default.number])
2299
2373
  };
2300
2374
  Type.displayName = "Type";
2301
2375
  var type_default = Type;
2302
2376
 
2303
2377
  // lib/use-modifier-held.ts
2304
2378
  init_react_import();
2305
- var import_react16 = require("react");
2379
+ var import_react17 = require("react");
2306
2380
  var useModifierHeld = (modifier) => {
2307
- const [modifierHeld, setModifierHeld] = (0, import_react16.useState)(false);
2308
- (0, import_react16.useEffect)(() => {
2381
+ const [modifierHeld, setModifierHeld] = (0, import_react17.useState)(false);
2382
+ (0, import_react17.useEffect)(() => {
2309
2383
  function downHandler({ key }) {
2310
2384
  if (key === modifier) {
2311
2385
  setModifierHeld(true);
@@ -2349,7 +2423,7 @@ var DraggableComponent = ({
2349
2423
  style
2350
2424
  }) => {
2351
2425
  const isModifierHeld = useModifierHeld("Alt");
2352
- (0, import_react17.useEffect)(onMount, []);
2426
+ (0, import_react18.useEffect)(onMount, []);
2353
2427
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2354
2428
  import_react_beautiful_dnd.Draggable,
2355
2429
  {
@@ -2393,13 +2467,13 @@ var DraggableComponent = ({
2393
2467
 
2394
2468
  // components/DroppableStrictMode/index.tsx
2395
2469
  init_react_import();
2396
- var import_react18 = require("react");
2470
+ var import_react19 = require("react");
2397
2471
  var import_react_beautiful_dnd2 = require("react-beautiful-dnd");
2398
2472
  var import_jsx_runtime3 = require("react/jsx-runtime");
2399
2473
  var DroppableStrictMode = (_a) => {
2400
2474
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
2401
- const [enabled, setEnabled] = (0, import_react18.useState)(false);
2402
- (0, import_react18.useEffect)(() => {
2475
+ const [enabled, setEnabled] = (0, import_react19.useState)(false);
2476
+ (0, import_react19.useEffect)(() => {
2403
2477
  const animation = requestAnimationFrame(() => setEnabled(true));
2404
2478
  return () => {
2405
2479
  cancelAnimationFrame(animation);
@@ -2478,7 +2552,7 @@ var styles_module_default2 = { "DropZone": "_DropZone_1980k_1", "DropZone-conten
2478
2552
 
2479
2553
  // components/DropZone/context.tsx
2480
2554
  init_react_import();
2481
- var import_react19 = require("react");
2555
+ var import_react20 = require("react");
2482
2556
  var import_use_debounce = require("use-debounce");
2483
2557
 
2484
2558
  // lib/get-zone-id.ts
@@ -2495,29 +2569,29 @@ var getZoneId = (zoneCompound) => {
2495
2569
 
2496
2570
  // components/DropZone/context.tsx
2497
2571
  var import_jsx_runtime4 = require("react/jsx-runtime");
2498
- var dropZoneContext = (0, import_react19.createContext)(null);
2572
+ var dropZoneContext = (0, import_react20.createContext)(null);
2499
2573
  var DropZoneProvider = ({
2500
2574
  children,
2501
2575
  value
2502
2576
  }) => {
2503
- const [hoveringArea, setHoveringArea] = (0, import_react19.useState)(null);
2504
- const [hoveringZone, setHoveringZone] = (0, import_react19.useState)(
2577
+ const [hoveringArea, setHoveringArea] = (0, import_react20.useState)(null);
2578
+ const [hoveringZone, setHoveringZone] = (0, import_react20.useState)(
2505
2579
  rootDroppableId
2506
2580
  );
2507
- const [hoveringComponent, setHoveringComponent] = (0, import_react19.useState)();
2581
+ const [hoveringComponent, setHoveringComponent] = (0, import_react20.useState)();
2508
2582
  const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
2509
- const [areasWithZones, setAreasWithZones] = (0, import_react19.useState)(
2583
+ const [areasWithZones, setAreasWithZones] = (0, import_react20.useState)(
2510
2584
  {}
2511
2585
  );
2512
- const [activeZones, setActiveZones] = (0, import_react19.useState)({});
2586
+ const [activeZones, setActiveZones] = (0, import_react20.useState)({});
2513
2587
  const { dispatch = null } = value ? value : {};
2514
- const registerZoneArea = (0, import_react19.useCallback)(
2588
+ const registerZoneArea = (0, import_react20.useCallback)(
2515
2589
  (area) => {
2516
2590
  setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
2517
2591
  },
2518
2592
  [setAreasWithZones]
2519
2593
  );
2520
- const registerZone = (0, import_react19.useCallback)(
2594
+ const registerZone = (0, import_react20.useCallback)(
2521
2595
  (zoneCompound) => {
2522
2596
  if (!dispatch) {
2523
2597
  return;
@@ -2530,7 +2604,7 @@ var DropZoneProvider = ({
2530
2604
  },
2531
2605
  [setActiveZones, dispatch]
2532
2606
  );
2533
- const unregisterZone = (0, import_react19.useCallback)(
2607
+ const unregisterZone = (0, import_react20.useCallback)(
2534
2608
  (zoneCompound) => {
2535
2609
  if (!dispatch) {
2536
2610
  return;
@@ -2545,8 +2619,8 @@ var DropZoneProvider = ({
2545
2619
  },
2546
2620
  [setActiveZones, dispatch]
2547
2621
  );
2548
- const [pathData, setPathData] = (0, import_react19.useState)();
2549
- const registerPath = (0, import_react19.useCallback)(
2622
+ const [pathData, setPathData] = (0, import_react20.useState)();
2623
+ const registerPath = (0, import_react20.useCallback)(
2550
2624
  (selector) => {
2551
2625
  if (!(value == null ? void 0 : value.data)) {
2552
2626
  return;
@@ -2599,7 +2673,7 @@ var import_jsx_runtime5 = require("react/jsx-runtime");
2599
2673
  var getClassName3 = get_class_name_factory_default("DropZone", styles_module_default2);
2600
2674
  function DropZoneEdit({ zone, style }) {
2601
2675
  var _a;
2602
- const ctx = (0, import_react20.useContext)(dropZoneContext);
2676
+ const ctx = (0, import_react21.useContext)(dropZoneContext);
2603
2677
  const {
2604
2678
  // These all need setting via context
2605
2679
  data,
@@ -2616,12 +2690,12 @@ function DropZoneEdit({ zone, style }) {
2616
2690
  } = ctx || {};
2617
2691
  let content = data.content || [];
2618
2692
  let zoneCompound = rootDroppableId;
2619
- (0, import_react20.useEffect)(() => {
2693
+ (0, import_react21.useEffect)(() => {
2620
2694
  if (areaId && registerZoneArea) {
2621
2695
  registerZoneArea(areaId);
2622
2696
  }
2623
2697
  }, [areaId]);
2624
- (0, import_react20.useEffect)(() => {
2698
+ (0, import_react21.useEffect)(() => {
2625
2699
  if (ctx == null ? void 0 : ctx.registerZone) {
2626
2700
  ctx == null ? void 0 : ctx.registerZone(zoneCompound);
2627
2701
  }
@@ -2822,7 +2896,7 @@ function DropZoneEdit({ zone, style }) {
2822
2896
  );
2823
2897
  }
2824
2898
  function DropZoneRender({ zone }) {
2825
- const ctx = (0, import_react20.useContext)(dropZoneContext);
2899
+ const ctx = (0, import_react21.useContext)(dropZoneContext);
2826
2900
  const { data, areaId = "root", config } = ctx || {};
2827
2901
  let zoneCompound = rootDroppableId;
2828
2902
  let content = (data == null ? void 0 : data.content) || [];
@@ -2849,7 +2923,7 @@ function DropZoneRender({ zone }) {
2849
2923
  }) });
2850
2924
  }
2851
2925
  function DropZone(props) {
2852
- const ctx = (0, import_react20.useContext)(dropZoneContext);
2926
+ const ctx = (0, import_react21.useContext)(dropZoneContext);
2853
2927
  if ((ctx == null ? void 0 : ctx.mode) === "edit") {
2854
2928
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DropZoneEdit, __spreadValues({}, props));
2855
2929
  }
@@ -2861,7 +2935,7 @@ init_react_import();
2861
2935
 
2862
2936
  // components/IconButton/IconButton.tsx
2863
2937
  init_react_import();
2864
- var import_react21 = require("react");
2938
+ var import_react22 = require("react");
2865
2939
 
2866
2940
  // css-module:/home/runner/work/puck/puck/packages/core/components/IconButton/IconButton.module.css#css-module
2867
2941
  init_react_import();
@@ -2883,7 +2957,7 @@ var IconButton = ({
2883
2957
  fullWidth,
2884
2958
  title
2885
2959
  }) => {
2886
- const [loading, setLoading] = (0, import_react21.useState)(false);
2960
+ const [loading, setLoading] = (0, import_react22.useState)(false);
2887
2961
  const ElementType = href ? "a" : "button";
2888
2962
  const el = /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
2889
2963
  ElementType,
@@ -2923,7 +2997,7 @@ var IconButton = ({
2923
2997
 
2924
2998
  // components/Puck/index.tsx
2925
2999
  init_react_import();
2926
- var import_react25 = require("react");
3000
+ var import_react28 = require("react");
2927
3001
  var import_react_beautiful_dnd4 = require("react-beautiful-dnd");
2928
3002
 
2929
3003
  // components/InputOrGroup/index.tsx
@@ -2931,7 +3005,7 @@ init_react_import();
2931
3005
 
2932
3006
  // components/ExternalInput/index.tsx
2933
3007
  init_react_import();
2934
- var import_react22 = require("react");
3008
+ var import_react23 = require("react");
2935
3009
 
2936
3010
  // css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
2937
3011
  init_react_import();
@@ -2945,10 +3019,10 @@ var ExternalInput = ({
2945
3019
  onChange,
2946
3020
  value = null
2947
3021
  }) => {
2948
- const [data, setData] = (0, import_react22.useState)([]);
2949
- const [isOpen, setOpen] = (0, import_react22.useState)(false);
2950
- const [selectedData, setSelectedData] = (0, import_react22.useState)(value);
2951
- (0, import_react22.useEffect)(() => {
3022
+ const [data, setData] = (0, import_react23.useState)([]);
3023
+ const [isOpen, setOpen] = (0, import_react23.useState)(false);
3024
+ const [selectedData, setSelectedData] = (0, import_react23.useState)(value);
3025
+ (0, import_react23.useEffect)(() => {
2952
3026
  (() => __async(void 0, null, function* () {
2953
3027
  if (field.adaptor) {
2954
3028
  const listData = yield field.adaptor.fetchList(field.adaptorParams);
@@ -3331,10 +3405,10 @@ var ComponentList = ({ config }) => {
3331
3405
 
3332
3406
  // lib/use-placeholder-style.ts
3333
3407
  init_react_import();
3334
- var import_react23 = require("react");
3408
+ var import_react24 = require("react");
3335
3409
  var usePlaceholderStyle = () => {
3336
3410
  const queryAttr = "data-rbd-drag-handle-draggable-id";
3337
- const [placeholderStyle, setPlaceholderStyle] = (0, import_react23.useState)();
3411
+ const [placeholderStyle, setPlaceholderStyle] = (0, import_react24.useState)();
3338
3412
  const onDragStartOrUpdate = (draggedItem) => {
3339
3413
  var _a;
3340
3414
  const draggableId = draggedItem.draggableId;
@@ -3527,12 +3601,125 @@ var duplicateRelatedZones = (item, data, newId) => {
3527
3601
  });
3528
3602
  };
3529
3603
 
3604
+ // lib/use-puck-history.ts
3605
+ init_react_import();
3606
+ var import_react26 = require("react");
3607
+
3608
+ // lib/use-action-history.ts
3609
+ init_react_import();
3610
+ var import_react25 = require("react");
3611
+ var EMPTY_HISTORY_INDEX = -1;
3612
+ function useActionHistory() {
3613
+ const [histories, setHistories] = (0, import_react25.useState)([]);
3614
+ const [currentHistoryIndex, setCurrentHistoryIndex] = (0, import_react25.useState)(EMPTY_HISTORY_INDEX);
3615
+ const currentHistory = histories[currentHistoryIndex];
3616
+ const canRewind = currentHistoryIndex > EMPTY_HISTORY_INDEX;
3617
+ const canForward = currentHistoryIndex < histories.length - 1;
3618
+ const record = (params) => {
3619
+ const history = __spreadValues({
3620
+ id: Math.random().toString()
3621
+ }, params);
3622
+ setHistories((prev) => [
3623
+ ...prev.slice(0, currentHistoryIndex + 1),
3624
+ history
3625
+ ]);
3626
+ setCurrentHistoryIndex((prev) => prev + 1);
3627
+ };
3628
+ const rewind = () => {
3629
+ if (canRewind) {
3630
+ currentHistory.rewind();
3631
+ setCurrentHistoryIndex((prev) => prev - 1);
3632
+ }
3633
+ };
3634
+ const forward = () => {
3635
+ const forwardHistory = histories[currentHistoryIndex + 1];
3636
+ if (canForward && forwardHistory) {
3637
+ forwardHistory.forward();
3638
+ setCurrentHistoryIndex((prev) => prev + 1);
3639
+ }
3640
+ };
3641
+ return {
3642
+ currentHistory,
3643
+ canRewind,
3644
+ canForward,
3645
+ record,
3646
+ rewind,
3647
+ forward
3648
+ };
3649
+ }
3650
+
3651
+ // lib/use-puck-history.ts
3652
+ var import_react_hotkeys_hook = require("react-hotkeys-hook");
3653
+ var import_event_emitter = __toESM(require("event-emitter"));
3654
+ var import_use_debounce2 = require("use-debounce");
3655
+ var import_deep_diff = require("deep-diff");
3656
+ var DEBOUNCE_TIME = 250;
3657
+ var RECORD_DIFF = "RECORD_DIFF";
3658
+ var historyEmitter = (0, import_event_emitter.default)();
3659
+ var recordDiff = (newData) => historyEmitter.emit(RECORD_DIFF, newData);
3660
+ function usePuckHistory({
3661
+ data,
3662
+ dispatch
3663
+ }) {
3664
+ const { canForward, canRewind, rewind, forward, record } = useActionHistory();
3665
+ (0, import_react_hotkeys_hook.useHotkeys)("meta+z", rewind, { preventDefault: true });
3666
+ (0, import_react_hotkeys_hook.useHotkeys)("meta+shift+z", forward, { preventDefault: true });
3667
+ (0, import_react_hotkeys_hook.useHotkeys)("meta+y", forward, { preventDefault: true });
3668
+ const [snapshot] = (0, import_use_debounce2.useDebounce)(data, DEBOUNCE_TIME);
3669
+ const handleRecordDiff = (0, import_use_debounce2.useDebouncedCallback)((newData) => {
3670
+ const _diff = (0, import_deep_diff.diff)(snapshot, newData);
3671
+ if (!_diff) {
3672
+ return;
3673
+ }
3674
+ record({
3675
+ forward: () => {
3676
+ const target = structuredClone(data);
3677
+ _diff.reduce((target2, change) => {
3678
+ (0, import_deep_diff.applyChange)(target2, true, change);
3679
+ return target2;
3680
+ }, target);
3681
+ dispatch({ type: "set", data: target });
3682
+ },
3683
+ rewind: () => {
3684
+ const target = structuredClone(data);
3685
+ _diff.reduce((target2, change) => {
3686
+ (0, import_deep_diff.revertChange)(target2, true, change);
3687
+ return target2;
3688
+ }, target);
3689
+ dispatch({ type: "set", data: target });
3690
+ }
3691
+ });
3692
+ }, DEBOUNCE_TIME);
3693
+ (0, import_react26.useEffect)(() => {
3694
+ historyEmitter.on(RECORD_DIFF, handleRecordDiff);
3695
+ return () => {
3696
+ historyEmitter.off(RECORD_DIFF, handleRecordDiff);
3697
+ };
3698
+ }, [handleRecordDiff]);
3699
+ return {
3700
+ canForward,
3701
+ canRewind,
3702
+ rewind,
3703
+ forward,
3704
+ record
3705
+ };
3706
+ }
3707
+
3530
3708
  // lib/reducer.ts
3531
3709
  var zoneCache = {};
3532
3710
  var addToZoneCache = (key, data) => {
3533
3711
  zoneCache[key] = data;
3534
3712
  };
3535
- var createReducer = ({ config }) => (data, action) => {
3713
+ var storeInterceptor = (reducer) => {
3714
+ return (data, action) => {
3715
+ const newData = reducer(data, action);
3716
+ if (!["registerZone", "unregisterZone", "set"].includes(action.type)) {
3717
+ recordDiff(newData);
3718
+ }
3719
+ return newData;
3720
+ };
3721
+ };
3722
+ var createReducer = ({ config }) => storeInterceptor((data, action) => {
3536
3723
  if (action.type === "insert") {
3537
3724
  const emptyComponentData = {
3538
3725
  type: action.componentType,
@@ -3716,7 +3903,7 @@ var createReducer = ({ config }) => (data, action) => {
3716
3903
  return __spreadValues(__spreadValues({}, data), action.data);
3717
3904
  }
3718
3905
  return data;
3719
- };
3906
+ });
3720
3907
 
3721
3908
  // components/LayerTree/index.tsx
3722
3909
  init_react_import();
@@ -3737,7 +3924,7 @@ var scrollIntoView = (el) => {
3737
3924
  };
3738
3925
 
3739
3926
  // components/LayerTree/index.tsx
3740
- var import_react24 = require("react");
3927
+ var import_react27 = require("react");
3741
3928
 
3742
3929
  // lib/find-zones-for-area.ts
3743
3930
  init_react_import();
@@ -3778,7 +3965,7 @@ var LayerTree = ({
3778
3965
  label
3779
3966
  }) => {
3780
3967
  const zones = data.zones || {};
3781
- const ctx = (0, import_react24.useContext)(dropZoneContext);
3968
+ const ctx = (0, import_react27.useContext)(dropZoneContext);
3782
3969
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
3783
3970
  label && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName10("zoneTitle"), children: [
3784
3971
  /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName10("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(layers_default, { size: "16" }) }),
@@ -3927,14 +4114,18 @@ function Puck({
3927
4114
  headerPath
3928
4115
  }) {
3929
4116
  var _a, _b;
3930
- const [reducer] = (0, import_react25.useState)(() => createReducer({ config }));
3931
- const [data, dispatch] = (0, import_react25.useReducer)(
4117
+ const [reducer] = (0, import_react28.useState)(() => createReducer({ config }));
4118
+ const [data, dispatch] = (0, import_react28.useReducer)(
3932
4119
  reducer,
3933
4120
  flushZones(initialData)
3934
4121
  );
3935
- const [itemSelector, setItemSelector] = (0, import_react25.useState)(null);
4122
+ const { canForward, canRewind, rewind, forward } = usePuckHistory({
4123
+ data,
4124
+ dispatch
4125
+ });
4126
+ const [itemSelector, setItemSelector] = (0, import_react28.useState)(null);
3936
4127
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
3937
- const Page = (0, import_react25.useCallback)(
4128
+ const Page = (0, import_react28.useCallback)(
3938
4129
  (pageProps) => {
3939
4130
  var _a2, _b2;
3940
4131
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
@@ -3949,7 +4140,7 @@ function Puck({
3949
4140
  },
3950
4141
  [config.root]
3951
4142
  );
3952
- const PageFieldWrapper = (0, import_react25.useCallback)(
4143
+ const PageFieldWrapper = (0, import_react28.useCallback)(
3953
4144
  (props) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3954
4145
  PluginRenderer,
3955
4146
  {
@@ -3961,7 +4152,7 @@ function Puck({
3961
4152
  ),
3962
4153
  []
3963
4154
  );
3964
- const ComponentFieldWrapper = (0, import_react25.useCallback)(
4155
+ const ComponentFieldWrapper = (0, import_react28.useCallback)(
3965
4156
  (props) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3966
4157
  PluginRenderer,
3967
4158
  {
@@ -3976,13 +4167,13 @@ function Puck({
3976
4167
  const FieldWrapper = itemSelector ? ComponentFieldWrapper : PageFieldWrapper;
3977
4168
  const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
3978
4169
  let fields = selectedItem ? ((_b = config.components[selectedItem.type]) == null ? void 0 : _b.fields) || {} : rootFields;
3979
- (0, import_react25.useEffect)(() => {
4170
+ (0, import_react28.useEffect)(() => {
3980
4171
  if (onChange)
3981
4172
  onChange(data);
3982
4173
  }, [data]);
3983
4174
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
3984
- const [leftSidebarVisible, setLeftSidebarVisible] = (0, import_react25.useState)(true);
3985
- const [draggedItem, setDraggedItem] = (0, import_react25.useState)();
4175
+ const [leftSidebarVisible, setLeftSidebarVisible] = (0, import_react28.useState)(true);
4176
+ const [draggedItem, setDraggedItem] = (0, import_react28.useState)();
3986
4177
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "puck", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3987
4178
  import_react_beautiful_dnd4.DragDropContext,
3988
4179
  {
@@ -4144,6 +4335,38 @@ function Puck({
4144
4335
  justifyContent: "flex-end"
4145
4336
  },
4146
4337
  children: [
4338
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { display: "flex" }, children: [
4339
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4340
+ IconButton,
4341
+ {
4342
+ title: "undo",
4343
+ disabled: !canRewind,
4344
+ onClick: rewind,
4345
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4346
+ chevron_left_default,
4347
+ {
4348
+ size: 21,
4349
+ stroke: canRewind ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
4350
+ }
4351
+ )
4352
+ }
4353
+ ),
4354
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4355
+ IconButton,
4356
+ {
4357
+ title: "redo",
4358
+ disabled: !canForward,
4359
+ onClick: forward,
4360
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4361
+ chevron_right_default,
4362
+ {
4363
+ size: 21,
4364
+ stroke: canForward ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
4365
+ }
4366
+ )
4367
+ }
4368
+ )
4369
+ ] }),
4147
4370
  renderHeaderActions && renderHeaderActions({ data, dispatch }),
4148
4371
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4149
4372
  Button,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.8.0",
3
+ "version": "0.9.0-canary.2bf48af",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -8,6 +8,7 @@
8
8
  "scripts": {
9
9
  "lint": "eslint \"**/*.ts*\"",
10
10
  "build": "rm -rf dist && tsup index.ts",
11
+ "test": "jest",
11
12
  "prepare": "cp ../../README.md . && yarn build",
12
13
  "postpublish": "rm README.md"
13
14
  },
@@ -15,19 +16,29 @@
15
16
  "dist"
16
17
  ],
17
18
  "devDependencies": {
19
+ "@testing-library/react": "^14.0.0",
20
+ "@types/deep-diff": "^1.0.3",
21
+ "@types/event-emitter": "^0.3.3",
22
+ "@types/jest": "^29.5.4",
18
23
  "@types/react": "^18.2.0",
19
24
  "@types/react-beautiful-dnd": "^13.1.4",
20
25
  "@types/react-dom": "^18.2.0",
21
26
  "eslint": "^7.32.0",
22
27
  "eslint-config-custom": "*",
28
+ "jest": "^29.6.4",
29
+ "jest-environment-jsdom": "^29.6.4",
23
30
  "react-feather": "^2.0.10",
31
+ "ts-jest": "^29.1.1",
24
32
  "tsconfig": "*",
25
33
  "tsup": "^6.7.0",
26
34
  "tsup-config": "*",
27
35
  "typescript": "^4.5.2"
28
36
  },
29
37
  "dependencies": {
38
+ "deep-diff": "^1.0.2",
39
+ "event-emitter": "^0.3.5",
30
40
  "react-beautiful-dnd": "^13.1.1",
41
+ "react-hotkeys-hook": "^4.4.1",
31
42
  "react-spinners": "^0.13.8",
32
43
  "use-debounce": "^9.0.4"
33
44
  },