@measured/puck 0.18.0-canary.b355ddd → 0.18.0-canary.c6df5b2
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/{chunk-EXKSBUY5.mjs → chunk-CHWFBYEM.mjs} +2 -4
- package/dist/index.css +27 -34
- package/dist/index.d.mts +2 -9
- package/dist/index.d.ts +2 -9
- package/dist/index.js +1244 -954
- package/dist/index.mjs +1146 -853
- package/dist/{resolve-all-data-GYzT3ont.d.mts → resolve-all-data-DzJEE28m.d.mts} +2 -1
- package/dist/{resolve-all-data-GYzT3ont.d.ts → resolve-all-data-DzJEE28m.d.ts} +2 -1
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +2 -4
- package/dist/rsc.mjs +1 -1
- package/package.json +3 -4
package/dist/index.js
CHANGED
@@ -311,7 +311,7 @@ init_react_import();
|
|
311
311
|
var styles_module_default2 = { "InputWrapper": "_InputWrapper_1l5m8_1", "Input": "_Input_1l5m8_1", "Input-label": "_Input-label_1l5m8_26", "Input-labelIcon": "_Input-labelIcon_1l5m8_35", "Input-disabledIcon": "_Input-disabledIcon_1l5m8_42", "Input-input": "_Input-input_1l5m8_47", "Input--readOnly": "_Input--readOnly_1l5m8_91", "Input-radioGroupItems": "_Input-radioGroupItems_1l5m8_102", "Input-radio": "_Input-radio_1l5m8_102", "Input-radioInner": "_Input-radioInner_1l5m8_119", "Input-radioInput": "_Input-radioInput_1l5m8_164" };
|
312
312
|
|
313
313
|
// components/AutoField/index.tsx
|
314
|
-
var
|
314
|
+
var import_react20 = require("react");
|
315
315
|
|
316
316
|
// components/AutoField/fields/index.tsx
|
317
317
|
init_react_import();
|
@@ -771,7 +771,7 @@ var IconButton = ({
|
|
771
771
|
};
|
772
772
|
|
773
773
|
// components/AutoField/fields/ArrayField/index.tsx
|
774
|
-
var
|
774
|
+
var import_react12 = require("react");
|
775
775
|
|
776
776
|
// components/DragIcon/index.tsx
|
777
777
|
init_react_import();
|
@@ -988,13 +988,11 @@ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __asy
|
|
988
988
|
onResolveStart(item);
|
989
989
|
}
|
990
990
|
const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, { changed, lastData: oldItem });
|
991
|
-
const { readOnly: existingReadOnly = {} } = item || {};
|
992
|
-
const newReadOnly = __spreadValues(__spreadValues({}, existingReadOnly), readOnly);
|
993
991
|
const resolvedItem = __spreadProps(__spreadValues({}, item), {
|
994
992
|
props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
|
995
993
|
});
|
996
|
-
if (Object.keys(
|
997
|
-
resolvedItem.readOnly =
|
994
|
+
if (Object.keys(readOnly).length) {
|
995
|
+
resolvedItem.readOnly = readOnly;
|
998
996
|
}
|
999
997
|
cache.lastChange[item.props.id] = {
|
1000
998
|
item,
|
@@ -1161,6 +1159,7 @@ var defaultAppState = {
|
|
1161
1159
|
itemSelector: null,
|
1162
1160
|
componentList: {},
|
1163
1161
|
isDragging: false,
|
1162
|
+
previewMode: "edit",
|
1164
1163
|
viewports: {
|
1165
1164
|
current: {
|
1166
1165
|
width: defaultViewports[0].width,
|
@@ -1283,7 +1282,7 @@ init_react_import();
|
|
1283
1282
|
var import_react9 = require("@dnd-kit/react");
|
1284
1283
|
var import_react10 = require("react");
|
1285
1284
|
|
1286
|
-
// lib/dnd-kit/safe.ts
|
1285
|
+
// lib/dnd/dnd-kit/safe.ts
|
1287
1286
|
init_react_import();
|
1288
1287
|
var import_react8 = require("@dnd-kit/react");
|
1289
1288
|
var import_sortable = require("@dnd-kit/react/sortable");
|
@@ -1360,8 +1359,53 @@ var Sortable = ({
|
|
1360
1359
|
return children({ status, ref: sortableRef });
|
1361
1360
|
};
|
1362
1361
|
|
1363
|
-
// components/AutoField/
|
1362
|
+
// components/AutoField/context.tsx
|
1363
|
+
init_react_import();
|
1364
|
+
var import_react11 = require("react");
|
1364
1365
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
1366
|
+
var NestedFieldContext = (0, import_react11.createContext)({});
|
1367
|
+
var useNestedFieldContext = () => {
|
1368
|
+
const context = (0, import_react11.useContext)(NestedFieldContext);
|
1369
|
+
return __spreadProps(__spreadValues({}, context), {
|
1370
|
+
readOnlyFields: context.readOnlyFields || {}
|
1371
|
+
});
|
1372
|
+
};
|
1373
|
+
var NestedFieldProvider = ({
|
1374
|
+
children,
|
1375
|
+
name,
|
1376
|
+
subName,
|
1377
|
+
wildcardName = name,
|
1378
|
+
readOnlyFields
|
1379
|
+
}) => {
|
1380
|
+
const subPath = `${name}.${subName}`;
|
1381
|
+
const wildcardSubPath = `${wildcardName}.${subName}`;
|
1382
|
+
const subReadOnlyFields = (0, import_react11.useMemo)(
|
1383
|
+
() => Object.keys(readOnlyFields).reduce((acc, readOnlyKey) => {
|
1384
|
+
const isLocal = readOnlyKey.indexOf(subPath) > -1 || readOnlyKey.indexOf(wildcardSubPath) > -1;
|
1385
|
+
if (isLocal) {
|
1386
|
+
const subPathPattern = new RegExp(
|
1387
|
+
`^(${name}|${wildcardName}).`.replace(/\[/g, "\\[").replace(/\]/g, "\\]").replace(/\./g, "\\.").replace(/\*/g, "\\*")
|
1388
|
+
);
|
1389
|
+
const localName = readOnlyKey.replace(subPathPattern, "");
|
1390
|
+
return __spreadProps(__spreadValues({}, acc), {
|
1391
|
+
[localName]: readOnlyFields[readOnlyKey]
|
1392
|
+
});
|
1393
|
+
}
|
1394
|
+
return acc;
|
1395
|
+
}, {}),
|
1396
|
+
[name, subName, wildcardName, readOnlyFields]
|
1397
|
+
);
|
1398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
1399
|
+
NestedFieldContext.Provider,
|
1400
|
+
{
|
1401
|
+
value: { readOnlyFields: subReadOnlyFields, localName: subName },
|
1402
|
+
children
|
1403
|
+
}
|
1404
|
+
);
|
1405
|
+
};
|
1406
|
+
|
1407
|
+
// components/AutoField/fields/ArrayField/index.tsx
|
1408
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
1365
1409
|
var getClassName5 = get_class_name_factory_default("ArrayField", styles_module_default3);
|
1366
1410
|
var getClassNameItem = get_class_name_factory_default("ArrayFieldItem", styles_module_default3);
|
1367
1411
|
var ArrayField = ({
|
@@ -1372,10 +1416,10 @@ var ArrayField = ({
|
|
1372
1416
|
label,
|
1373
1417
|
readOnly,
|
1374
1418
|
id,
|
1375
|
-
Label: Label2 = (props) => /* @__PURE__ */ (0,
|
1419
|
+
Label: Label2 = (props) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", __spreadValues({}, props))
|
1376
1420
|
}) => {
|
1377
1421
|
const { state, setUi, selectedItem, getPermissions } = useAppContext();
|
1378
|
-
const readOnlyFields =
|
1422
|
+
const { readOnlyFields, localName = name } = useNestedFieldContext();
|
1379
1423
|
const value = _value;
|
1380
1424
|
const arrayState = state.ui.arrayState[id] || {
|
1381
1425
|
items: Array.from(value || []).map((item, idx) => {
|
@@ -1386,11 +1430,11 @@ var ArrayField = ({
|
|
1386
1430
|
}),
|
1387
1431
|
openId: ""
|
1388
1432
|
};
|
1389
|
-
const [localState, setLocalState] = (0,
|
1390
|
-
(0,
|
1433
|
+
const [localState, setLocalState] = (0, import_react12.useState)({ arrayState, value });
|
1434
|
+
(0, import_react12.useEffect)(() => {
|
1391
1435
|
setLocalState({ arrayState, value });
|
1392
1436
|
}, [value, state.ui.arrayState[id]]);
|
1393
|
-
const mapArrayStateToUi = (0,
|
1437
|
+
const mapArrayStateToUi = (0, import_react12.useCallback)(
|
1394
1438
|
(partialArrayState) => {
|
1395
1439
|
return {
|
1396
1440
|
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
@@ -1400,13 +1444,13 @@ var ArrayField = ({
|
|
1400
1444
|
},
|
1401
1445
|
[arrayState]
|
1402
1446
|
);
|
1403
|
-
const getHighestIndex = (0,
|
1447
|
+
const getHighestIndex = (0, import_react12.useCallback)(() => {
|
1404
1448
|
return arrayState.items.reduce(
|
1405
1449
|
(acc, item) => item._originalIndex > acc ? item._originalIndex : acc,
|
1406
1450
|
-1
|
1407
1451
|
);
|
1408
1452
|
}, [arrayState]);
|
1409
|
-
const regenerateArrayState = (0,
|
1453
|
+
const regenerateArrayState = (0, import_react12.useCallback)(
|
1410
1454
|
(value2) => {
|
1411
1455
|
let highestIndex = getHighestIndex();
|
1412
1456
|
const newItems = Array.from(value2 || []).map((item, idx) => {
|
@@ -1425,7 +1469,7 @@ var ArrayField = ({
|
|
1425
1469
|
},
|
1426
1470
|
[arrayState]
|
1427
1471
|
);
|
1428
|
-
(0,
|
1472
|
+
(0, import_react12.useEffect)(() => {
|
1429
1473
|
if (arrayState.items.length > 0) {
|
1430
1474
|
setUi(mapArrayStateToUi(arrayState));
|
1431
1475
|
}
|
@@ -1435,14 +1479,14 @@ var ArrayField = ({
|
|
1435
1479
|
return null;
|
1436
1480
|
}
|
1437
1481
|
const addDisabled = field.max !== void 0 && localState.arrayState.items.length >= field.max || readOnly;
|
1438
|
-
return /* @__PURE__ */ (0,
|
1482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1439
1483
|
Label2,
|
1440
1484
|
{
|
1441
1485
|
label: label || name,
|
1442
|
-
icon: /* @__PURE__ */ (0,
|
1486
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(List, { size: 16 }),
|
1443
1487
|
el: "div",
|
1444
1488
|
readOnly,
|
1445
|
-
children: /* @__PURE__ */ (0,
|
1489
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1446
1490
|
SortableProvider,
|
1447
1491
|
{
|
1448
1492
|
onMove: (move) => {
|
@@ -1464,7 +1508,7 @@ var ArrayField = ({
|
|
1464
1508
|
arrayState: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
1465
1509
|
});
|
1466
1510
|
},
|
1467
|
-
children: /* @__PURE__ */ (0,
|
1511
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
1468
1512
|
"div",
|
1469
1513
|
{
|
1470
1514
|
className: getClassName5({
|
@@ -1478,13 +1522,13 @@ var ArrayField = ({
|
|
1478
1522
|
localState.arrayState.items.map((item, i) => {
|
1479
1523
|
const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
|
1480
1524
|
const data = Array.from(localState.value || [])[i] || {};
|
1481
|
-
return /* @__PURE__ */ (0,
|
1525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1482
1526
|
Sortable,
|
1483
1527
|
{
|
1484
1528
|
id: _arrayId,
|
1485
1529
|
index: i,
|
1486
1530
|
disabled: readOnly,
|
1487
|
-
children: ({ status, ref }) => /* @__PURE__ */ (0,
|
1531
|
+
children: ({ status, ref }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
1488
1532
|
"div",
|
1489
1533
|
{
|
1490
1534
|
ref,
|
@@ -1494,7 +1538,7 @@ var ArrayField = ({
|
|
1494
1538
|
readOnly
|
1495
1539
|
}),
|
1496
1540
|
children: [
|
1497
|
-
/* @__PURE__ */ (0,
|
1541
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
1498
1542
|
"div",
|
1499
1543
|
{
|
1500
1544
|
onClick: (e) => {
|
@@ -1517,9 +1561,9 @@ var ArrayField = ({
|
|
1517
1561
|
className: getClassNameItem("summary"),
|
1518
1562
|
children: [
|
1519
1563
|
field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
|
1520
|
-
/* @__PURE__ */ (0,
|
1521
|
-
!readOnly && /* @__PURE__ */ (0,
|
1522
|
-
/* @__PURE__ */ (0,
|
1564
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassNameItem("rhs"), children: [
|
1565
|
+
!readOnly && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassNameItem("actions"), children: [
|
1566
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1523
1567
|
IconButton,
|
1524
1568
|
{
|
1525
1569
|
type: "button",
|
@@ -1536,10 +1580,10 @@ var ArrayField = ({
|
|
1536
1580
|
);
|
1537
1581
|
},
|
1538
1582
|
title: "Duplicate",
|
1539
|
-
children: /* @__PURE__ */ (0,
|
1583
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Copy, { size: 16 })
|
1540
1584
|
}
|
1541
1585
|
) }),
|
1542
|
-
/* @__PURE__ */ (0,
|
1586
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1543
1587
|
IconButton,
|
1544
1588
|
{
|
1545
1589
|
type: "button",
|
@@ -1560,39 +1604,56 @@ var ArrayField = ({
|
|
1560
1604
|
);
|
1561
1605
|
},
|
1562
1606
|
title: "Delete",
|
1563
|
-
children: /* @__PURE__ */ (0,
|
1607
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Trash, { size: 16 })
|
1564
1608
|
}
|
1565
1609
|
) })
|
1566
1610
|
] }),
|
1567
|
-
/* @__PURE__ */ (0,
|
1611
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DragIcon, {}) })
|
1568
1612
|
] })
|
1569
1613
|
]
|
1570
1614
|
}
|
1571
1615
|
),
|
1572
|
-
/* @__PURE__ */ (0,
|
1573
|
-
const subField = field.arrayFields[
|
1574
|
-
const
|
1575
|
-
const
|
1576
|
-
const
|
1577
|
-
|
1578
|
-
|
1616
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassNameItem("body"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("fieldset", { className: getClassNameItem("fieldset"), children: Object.keys(field.arrayFields).map((subName) => {
|
1617
|
+
const subField = field.arrayFields[subName];
|
1618
|
+
const indexName = `${name}[${i}]`;
|
1619
|
+
const subPath = `${indexName}.${subName}`;
|
1620
|
+
const localIndexName = `${localName}[${i}]`;
|
1621
|
+
const localWildcardName = `${localName}[*]`;
|
1622
|
+
const localSubPath = `${localIndexName}.${subName}`;
|
1623
|
+
const localWildcardSubPath = `${localWildcardName}.${subName}`;
|
1624
|
+
const subReadOnly = forceReadOnly ? forceReadOnly : typeof readOnlyFields[subPath] !== "undefined" ? readOnlyFields[localSubPath] : readOnlyFields[localWildcardSubPath];
|
1625
|
+
const label2 = subField.label || subName;
|
1626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1627
|
+
NestedFieldProvider,
|
1579
1628
|
{
|
1580
|
-
name:
|
1581
|
-
|
1582
|
-
|
1583
|
-
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1629
|
+
name: localIndexName,
|
1630
|
+
wildcardName: localWildcardName,
|
1631
|
+
subName,
|
1632
|
+
readOnlyFields,
|
1633
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1634
|
+
AutoFieldPrivate,
|
1635
|
+
{
|
1636
|
+
name: subPath,
|
1637
|
+
label: label2,
|
1638
|
+
id: `${_arrayId}_${subName}`,
|
1639
|
+
readOnly: subReadOnly,
|
1640
|
+
field: __spreadProps(__spreadValues({}, subField), {
|
1641
|
+
label: label2
|
1642
|
+
// May be used by custom fields
|
1643
|
+
}),
|
1644
|
+
value: data[subName],
|
1645
|
+
onChange: (val, ui) => {
|
1646
|
+
onChange(
|
1647
|
+
replace(value, i, __spreadProps(__spreadValues({}, data), {
|
1648
|
+
[subName]: val
|
1649
|
+
})),
|
1650
|
+
ui
|
1651
|
+
);
|
1652
|
+
}
|
1653
|
+
}
|
1654
|
+
)
|
1594
1655
|
},
|
1595
|
-
|
1656
|
+
subPath
|
1596
1657
|
);
|
1597
1658
|
}) }) })
|
1598
1659
|
]
|
@@ -1602,7 +1663,7 @@ var ArrayField = ({
|
|
1602
1663
|
_arrayId
|
1603
1664
|
);
|
1604
1665
|
}),
|
1605
|
-
!addDisabled && /* @__PURE__ */ (0,
|
1666
|
+
!addDisabled && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1606
1667
|
"button",
|
1607
1668
|
{
|
1608
1669
|
type: "button",
|
@@ -1616,7 +1677,7 @@ var ArrayField = ({
|
|
1616
1677
|
const newArrayState = regenerateArrayState(newValue);
|
1617
1678
|
onChange(newValue, mapArrayStateToUi(newArrayState));
|
1618
1679
|
},
|
1619
|
-
children: /* @__PURE__ */ (0,
|
1680
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Plus, { size: 21 })
|
1620
1681
|
}
|
1621
1682
|
)
|
1622
1683
|
]
|
@@ -1630,7 +1691,7 @@ var ArrayField = ({
|
|
1630
1691
|
|
1631
1692
|
// components/AutoField/fields/DefaultField/index.tsx
|
1632
1693
|
init_react_import();
|
1633
|
-
var
|
1694
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
1634
1695
|
var getClassName6 = get_class_name_factory_default("Input", styles_module_default2);
|
1635
1696
|
var DefaultField = ({
|
1636
1697
|
field,
|
@@ -1642,16 +1703,16 @@ var DefaultField = ({
|
|
1642
1703
|
Label: Label2,
|
1643
1704
|
id
|
1644
1705
|
}) => {
|
1645
|
-
return /* @__PURE__ */ (0,
|
1706
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
1646
1707
|
Label2,
|
1647
1708
|
{
|
1648
1709
|
label: label || name,
|
1649
|
-
icon: /* @__PURE__ */ (0,
|
1650
|
-
field.type === "text" && /* @__PURE__ */ (0,
|
1651
|
-
field.type === "number" && /* @__PURE__ */ (0,
|
1710
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
1711
|
+
field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Type, { size: 16 }),
|
1712
|
+
field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Hash, { size: 16 })
|
1652
1713
|
] }),
|
1653
1714
|
readOnly,
|
1654
|
-
children: /* @__PURE__ */ (0,
|
1715
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
1655
1716
|
"input",
|
1656
1717
|
{
|
1657
1718
|
className: getClassName6("input"),
|
@@ -1680,11 +1741,11 @@ var DefaultField = ({
|
|
1680
1741
|
|
1681
1742
|
// components/AutoField/fields/ExternalField/index.tsx
|
1682
1743
|
init_react_import();
|
1683
|
-
var
|
1744
|
+
var import_react16 = require("react");
|
1684
1745
|
|
1685
1746
|
// components/ExternalInput/index.tsx
|
1686
1747
|
init_react_import();
|
1687
|
-
var
|
1748
|
+
var import_react15 = require("react");
|
1688
1749
|
|
1689
1750
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
|
1690
1751
|
init_react_import();
|
@@ -1692,7 +1753,7 @@ var styles_module_default6 = { "ExternalInput-actions": "_ExternalInput-actions_
|
|
1692
1753
|
|
1693
1754
|
// components/Modal/index.tsx
|
1694
1755
|
init_react_import();
|
1695
|
-
var
|
1756
|
+
var import_react13 = require("react");
|
1696
1757
|
|
1697
1758
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Modal/styles.module.css#css-module
|
1698
1759
|
init_react_import();
|
@@ -1700,22 +1761,22 @@ var styles_module_default7 = { "Modal": "_Modal_ikbaj_1", "Modal--isOpen": "_Mod
|
|
1700
1761
|
|
1701
1762
|
// components/Modal/index.tsx
|
1702
1763
|
var import_react_dom = require("react-dom");
|
1703
|
-
var
|
1764
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
1704
1765
|
var getClassName7 = get_class_name_factory_default("Modal", styles_module_default7);
|
1705
1766
|
var Modal = ({
|
1706
1767
|
children,
|
1707
1768
|
onClose,
|
1708
1769
|
isOpen
|
1709
1770
|
}) => {
|
1710
|
-
const [rootEl, setRootEl] = (0,
|
1711
|
-
(0,
|
1771
|
+
const [rootEl, setRootEl] = (0, import_react13.useState)(null);
|
1772
|
+
(0, import_react13.useEffect)(() => {
|
1712
1773
|
setRootEl(document.getElementById("puck-portal-root"));
|
1713
1774
|
}, []);
|
1714
1775
|
if (!rootEl) {
|
1715
|
-
return /* @__PURE__ */ (0,
|
1776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", {});
|
1716
1777
|
}
|
1717
1778
|
return (0, import_react_dom.createPortal)(
|
1718
|
-
/* @__PURE__ */ (0,
|
1779
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName7({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1719
1780
|
"div",
|
1720
1781
|
{
|
1721
1782
|
className: getClassName7("inner"),
|
@@ -1735,11 +1796,11 @@ init_react_import();
|
|
1735
1796
|
var styles_module_default8 = { "Heading": "_Heading_qxrry_1", "Heading--xxxxl": "_Heading--xxxxl_qxrry_12", "Heading--xxxl": "_Heading--xxxl_qxrry_18", "Heading--xxl": "_Heading--xxl_qxrry_22", "Heading--xl": "_Heading--xl_qxrry_26", "Heading--l": "_Heading--l_qxrry_30", "Heading--m": "_Heading--m_qxrry_34", "Heading--s": "_Heading--s_qxrry_38", "Heading--xs": "_Heading--xs_qxrry_42" };
|
1736
1797
|
|
1737
1798
|
// components/Heading/index.tsx
|
1738
|
-
var
|
1799
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
1739
1800
|
var getClassName8 = get_class_name_factory_default("Heading", styles_module_default8);
|
1740
1801
|
var Heading = ({ children, rank, size = "m" }) => {
|
1741
1802
|
const Tag = rank ? `h${rank}` : "span";
|
1742
|
-
return /* @__PURE__ */ (0,
|
1803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
1743
1804
|
Tag,
|
1744
1805
|
{
|
1745
1806
|
className: getClassName8({
|
@@ -1755,7 +1816,7 @@ init_react_import();
|
|
1755
1816
|
|
1756
1817
|
// components/Button/Button.tsx
|
1757
1818
|
init_react_import();
|
1758
|
-
var
|
1819
|
+
var import_react14 = require("react");
|
1759
1820
|
|
1760
1821
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css#css-module
|
1761
1822
|
init_react_import();
|
@@ -1775,7 +1836,7 @@ var filterDataAttrs = (props) => {
|
|
1775
1836
|
};
|
1776
1837
|
|
1777
1838
|
// components/Button/Button.tsx
|
1778
|
-
var
|
1839
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
1779
1840
|
var getClassName9 = get_class_name_factory_default("Button", Button_module_default);
|
1780
1841
|
var Button = (_a) => {
|
1781
1842
|
var _b = _a, {
|
@@ -1805,11 +1866,11 @@ var Button = (_a) => {
|
|
1805
1866
|
"size",
|
1806
1867
|
"loading"
|
1807
1868
|
]);
|
1808
|
-
const [loading, setLoading] = (0,
|
1809
|
-
(0,
|
1869
|
+
const [loading, setLoading] = (0, import_react14.useState)(loadingProp);
|
1870
|
+
(0, import_react14.useEffect)(() => setLoading(loadingProp), [loadingProp]);
|
1810
1871
|
const ElementType = href ? "a" : type ? "button" : "span";
|
1811
1872
|
const dataAttrs = filterDataAttrs(props);
|
1812
|
-
const el = /* @__PURE__ */ (0,
|
1873
|
+
const el = /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
1813
1874
|
ElementType,
|
1814
1875
|
__spreadProps(__spreadValues({
|
1815
1876
|
className: getClassName9({
|
@@ -1834,9 +1895,9 @@ var Button = (_a) => {
|
|
1834
1895
|
href
|
1835
1896
|
}, dataAttrs), {
|
1836
1897
|
children: [
|
1837
|
-
icon && /* @__PURE__ */ (0,
|
1898
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName9("icon"), children: icon }),
|
1838
1899
|
children,
|
1839
|
-
loading && /* @__PURE__ */ (0,
|
1900
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName9("spinner"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Loader, { size: 14 }) })
|
1840
1901
|
]
|
1841
1902
|
})
|
1842
1903
|
);
|
@@ -1844,7 +1905,7 @@ var Button = (_a) => {
|
|
1844
1905
|
};
|
1845
1906
|
|
1846
1907
|
// components/ExternalInput/index.tsx
|
1847
|
-
var
|
1908
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
1848
1909
|
var getClassName10 = get_class_name_factory_default("ExternalInput", styles_module_default6);
|
1849
1910
|
var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_module_default6);
|
1850
1911
|
var dataCache = {};
|
@@ -1861,28 +1922,28 @@ var ExternalInput = ({
|
|
1861
1922
|
mapRow = (val) => val,
|
1862
1923
|
filterFields
|
1863
1924
|
} = field || {};
|
1864
|
-
const [data, setData] = (0,
|
1865
|
-
const [isOpen, setOpen] = (0,
|
1866
|
-
const [isLoading, setIsLoading] = (0,
|
1925
|
+
const [data, setData] = (0, import_react15.useState)([]);
|
1926
|
+
const [isOpen, setOpen] = (0, import_react15.useState)(false);
|
1927
|
+
const [isLoading, setIsLoading] = (0, import_react15.useState)(true);
|
1867
1928
|
const hasFilterFields = !!filterFields;
|
1868
|
-
const [filters, setFilters] = (0,
|
1869
|
-
const [filtersToggled, setFiltersToggled] = (0,
|
1870
|
-
const mappedData = (0,
|
1929
|
+
const [filters, setFilters] = (0, import_react15.useState)(field.initialFilters || {});
|
1930
|
+
const [filtersToggled, setFiltersToggled] = (0, import_react15.useState)(hasFilterFields);
|
1931
|
+
const mappedData = (0, import_react15.useMemo)(() => {
|
1871
1932
|
return data.map(mapRow);
|
1872
1933
|
}, [data]);
|
1873
|
-
const keys = (0,
|
1934
|
+
const keys = (0, import_react15.useMemo)(() => {
|
1874
1935
|
const validKeys = /* @__PURE__ */ new Set();
|
1875
1936
|
for (const item of mappedData) {
|
1876
1937
|
for (const key of Object.keys(item)) {
|
1877
|
-
if (typeof item[key] === "string" || typeof item[key] === "number" || (0,
|
1938
|
+
if (typeof item[key] === "string" || typeof item[key] === "number" || (0, import_react15.isValidElement)(item[key])) {
|
1878
1939
|
validKeys.add(key);
|
1879
1940
|
}
|
1880
1941
|
}
|
1881
1942
|
}
|
1882
1943
|
return Array.from(validKeys);
|
1883
1944
|
}, [mappedData]);
|
1884
|
-
const [searchQuery, setSearchQuery] = (0,
|
1885
|
-
const search = (0,
|
1945
|
+
const [searchQuery, setSearchQuery] = (0, import_react15.useState)(field.initialQuery || "");
|
1946
|
+
const search = (0, import_react15.useCallback)(
|
1886
1947
|
(query, filters2) => __async(void 0, null, function* () {
|
1887
1948
|
setIsLoading(true);
|
1888
1949
|
const cacheKey = `${id}-${query}-${JSON.stringify(filters2)}`;
|
@@ -1895,18 +1956,18 @@ var ExternalInput = ({
|
|
1895
1956
|
}),
|
1896
1957
|
[id, field]
|
1897
1958
|
);
|
1898
|
-
const Footer = (0,
|
1899
|
-
(props) => field.renderFooter ? field.renderFooter(props) : /* @__PURE__ */ (0,
|
1959
|
+
const Footer = (0, import_react15.useCallback)(
|
1960
|
+
(props) => field.renderFooter ? field.renderFooter(props) : /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: getClassNameModal("footer"), children: [
|
1900
1961
|
props.items.length,
|
1901
1962
|
" result",
|
1902
1963
|
props.items.length === 1 ? "" : "s"
|
1903
1964
|
] }),
|
1904
1965
|
[field.renderFooter]
|
1905
1966
|
);
|
1906
|
-
(0,
|
1967
|
+
(0, import_react15.useEffect)(() => {
|
1907
1968
|
search(searchQuery, filters);
|
1908
1969
|
}, []);
|
1909
|
-
return /* @__PURE__ */ (0,
|
1970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
1910
1971
|
"div",
|
1911
1972
|
{
|
1912
1973
|
className: getClassName10({
|
@@ -1916,21 +1977,21 @@ var ExternalInput = ({
|
|
1916
1977
|
}),
|
1917
1978
|
id,
|
1918
1979
|
children: [
|
1919
|
-
/* @__PURE__ */ (0,
|
1920
|
-
/* @__PURE__ */ (0,
|
1980
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName10("actions"), children: [
|
1981
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
1921
1982
|
"button",
|
1922
1983
|
{
|
1923
1984
|
type: "button",
|
1924
1985
|
onClick: () => setOpen(true),
|
1925
1986
|
className: getClassName10("button"),
|
1926
1987
|
disabled: readOnly,
|
1927
|
-
children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0,
|
1928
|
-
/* @__PURE__ */ (0,
|
1929
|
-
/* @__PURE__ */ (0,
|
1988
|
+
children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
1989
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Link, { size: "16" }),
|
1990
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: field.placeholder })
|
1930
1991
|
] })
|
1931
1992
|
}
|
1932
1993
|
),
|
1933
|
-
value && /* @__PURE__ */ (0,
|
1994
|
+
value && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
1934
1995
|
"button",
|
1935
1996
|
{
|
1936
1997
|
type: "button",
|
@@ -1939,11 +2000,11 @@ var ExternalInput = ({
|
|
1939
2000
|
onChange(null);
|
1940
2001
|
},
|
1941
2002
|
disabled: readOnly,
|
1942
|
-
children: /* @__PURE__ */ (0,
|
2003
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(LockOpen, { size: 16 })
|
1943
2004
|
}
|
1944
2005
|
)
|
1945
2006
|
] }),
|
1946
|
-
/* @__PURE__ */ (0,
|
2007
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
1947
2008
|
"form",
|
1948
2009
|
{
|
1949
2010
|
className: getClassNameModal({
|
@@ -1957,11 +2018,11 @@ var ExternalInput = ({
|
|
1957
2018
|
search(searchQuery, filters);
|
1958
2019
|
},
|
1959
2020
|
children: [
|
1960
|
-
/* @__PURE__ */ (0,
|
1961
|
-
/* @__PURE__ */ (0,
|
1962
|
-
/* @__PURE__ */ (0,
|
1963
|
-
/* @__PURE__ */ (0,
|
1964
|
-
/* @__PURE__ */ (0,
|
2021
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
|
2022
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", { className: getClassNameModal("search"), children: [
|
2023
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
|
2024
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Search, { size: "18" }) }),
|
2025
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
1965
2026
|
"input",
|
1966
2027
|
{
|
1967
2028
|
className: getClassNameModal("searchInput"),
|
@@ -1976,9 +2037,9 @@ var ExternalInput = ({
|
|
1976
2037
|
}
|
1977
2038
|
)
|
1978
2039
|
] }),
|
1979
|
-
/* @__PURE__ */ (0,
|
1980
|
-
/* @__PURE__ */ (0,
|
1981
|
-
hasFilterFields && /* @__PURE__ */ (0,
|
2040
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
|
2041
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
|
2042
|
+
hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
1982
2043
|
IconButton,
|
1983
2044
|
{
|
1984
2045
|
title: "Toggle filters",
|
@@ -1987,15 +2048,15 @@ var ExternalInput = ({
|
|
1987
2048
|
e.stopPropagation();
|
1988
2049
|
setFiltersToggled(!filtersToggled);
|
1989
2050
|
},
|
1990
|
-
children: /* @__PURE__ */ (0,
|
2051
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SlidersHorizontal, { size: 20 })
|
1991
2052
|
}
|
1992
2053
|
) })
|
1993
2054
|
] })
|
1994
|
-
] }) : /* @__PURE__ */ (0,
|
1995
|
-
/* @__PURE__ */ (0,
|
1996
|
-
hasFilterFields && /* @__PURE__ */ (0,
|
2055
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Heading, { rank: "2", size: "xs", children: field.placeholder || "Select data" }) }),
|
2056
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassNameModal("grid"), children: [
|
2057
|
+
hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
|
1997
2058
|
const filterField = filterFields[fieldName];
|
1998
|
-
return /* @__PURE__ */ (0,
|
2059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
1999
2060
|
AutoFieldPrivate,
|
2000
2061
|
{
|
2001
2062
|
field: filterField,
|
@@ -2012,9 +2073,9 @@ var ExternalInput = ({
|
|
2012
2073
|
fieldName
|
2013
2074
|
);
|
2014
2075
|
}) }),
|
2015
|
-
/* @__PURE__ */ (0,
|
2016
|
-
/* @__PURE__ */ (0,
|
2017
|
-
/* @__PURE__ */ (0,
|
2076
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
|
2077
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("table", { className: getClassNameModal("table"), children: [
|
2078
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("thead", { className: getClassNameModal("thead"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("tr", { className: getClassNameModal("tr"), children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
2018
2079
|
"th",
|
2019
2080
|
{
|
2020
2081
|
className: getClassNameModal("th"),
|
@@ -2023,8 +2084,8 @@ var ExternalInput = ({
|
|
2023
2084
|
},
|
2024
2085
|
key
|
2025
2086
|
)) }) }),
|
2026
|
-
/* @__PURE__ */ (0,
|
2027
|
-
return /* @__PURE__ */ (0,
|
2087
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
|
2088
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
2028
2089
|
"tr",
|
2029
2090
|
{
|
2030
2091
|
style: { whiteSpace: "nowrap" },
|
@@ -2033,16 +2094,16 @@ var ExternalInput = ({
|
|
2033
2094
|
onChange(mapProp(data[i]));
|
2034
2095
|
setOpen(false);
|
2035
2096
|
},
|
2036
|
-
children: keys.map((key) => /* @__PURE__ */ (0,
|
2097
|
+
children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
|
2037
2098
|
},
|
2038
2099
|
i
|
2039
2100
|
);
|
2040
2101
|
}) })
|
2041
2102
|
] }),
|
2042
|
-
/* @__PURE__ */ (0,
|
2103
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassNameModal("loadingBanner"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Loader, { size: 24 }) })
|
2043
2104
|
] })
|
2044
2105
|
] }),
|
2045
|
-
/* @__PURE__ */ (0,
|
2106
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassNameModal("footerContainer"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Footer, { items: mappedData }) })
|
2046
2107
|
]
|
2047
2108
|
}
|
2048
2109
|
) })
|
@@ -2052,7 +2113,7 @@ var ExternalInput = ({
|
|
2052
2113
|
};
|
2053
2114
|
|
2054
2115
|
// components/AutoField/fields/ExternalField/index.tsx
|
2055
|
-
var
|
2116
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
2056
2117
|
var ExternalField = ({
|
2057
2118
|
field,
|
2058
2119
|
onChange,
|
@@ -2066,7 +2127,7 @@ var ExternalField = ({
|
|
2066
2127
|
var _a, _b, _c;
|
2067
2128
|
const validField = field;
|
2068
2129
|
const deprecatedField = field;
|
2069
|
-
(0,
|
2130
|
+
(0, import_react16.useEffect)(() => {
|
2070
2131
|
if (deprecatedField.adaptor) {
|
2071
2132
|
console.error(
|
2072
2133
|
"Warning: The `adaptor` API is deprecated. Please use updated APIs on the `external` field instead. This will be a breaking change in a future release."
|
@@ -2076,7 +2137,7 @@ var ExternalField = ({
|
|
2076
2137
|
if (field.type !== "external") {
|
2077
2138
|
return null;
|
2078
2139
|
}
|
2079
|
-
return /* @__PURE__ */ (0,
|
2140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Label2, { label: label || name, icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Link, { size: 16 }), el: "div", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
2080
2141
|
ExternalInput,
|
2081
2142
|
{
|
2082
2143
|
name,
|
@@ -2101,7 +2162,7 @@ var ExternalField = ({
|
|
2101
2162
|
|
2102
2163
|
// components/AutoField/fields/RadioField/index.tsx
|
2103
2164
|
init_react_import();
|
2104
|
-
var
|
2165
|
+
var import_react17 = require("react");
|
2105
2166
|
|
2106
2167
|
// lib/safe-json-parse.ts
|
2107
2168
|
init_react_import();
|
@@ -2115,7 +2176,7 @@ var safeJsonParse = (str) => {
|
|
2115
2176
|
};
|
2116
2177
|
|
2117
2178
|
// components/AutoField/fields/RadioField/index.tsx
|
2118
|
-
var
|
2179
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
2119
2180
|
var getClassName11 = get_class_name_factory_default("Input", styles_module_default2);
|
2120
2181
|
var RadioField = ({
|
2121
2182
|
field,
|
@@ -2127,26 +2188,26 @@ var RadioField = ({
|
|
2127
2188
|
label,
|
2128
2189
|
Label: Label2
|
2129
2190
|
}) => {
|
2130
|
-
const flatOptions = (0,
|
2191
|
+
const flatOptions = (0, import_react17.useMemo)(
|
2131
2192
|
() => field.type === "radio" ? field.options.map(({ value: value2 }) => value2) : [],
|
2132
2193
|
[field]
|
2133
2194
|
);
|
2134
2195
|
if (field.type !== "radio" || !field.options) {
|
2135
2196
|
return null;
|
2136
2197
|
}
|
2137
|
-
return /* @__PURE__ */ (0,
|
2198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2138
2199
|
Label2,
|
2139
2200
|
{
|
2140
|
-
icon: /* @__PURE__ */ (0,
|
2201
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CircleCheckBig, { size: 16 }),
|
2141
2202
|
label: label || name,
|
2142
2203
|
readOnly,
|
2143
2204
|
el: "div",
|
2144
|
-
children: /* @__PURE__ */ (0,
|
2205
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassName11("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
2145
2206
|
"label",
|
2146
2207
|
{
|
2147
2208
|
className: getClassName11("radio"),
|
2148
2209
|
children: [
|
2149
|
-
/* @__PURE__ */ (0,
|
2210
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2150
2211
|
"input",
|
2151
2212
|
{
|
2152
2213
|
type: "radio",
|
@@ -2166,7 +2227,7 @@ var RadioField = ({
|
|
2166
2227
|
checked: value === option.value
|
2167
2228
|
}
|
2168
2229
|
),
|
2169
|
-
/* @__PURE__ */ (0,
|
2230
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassName11("radioInner"), children: option.label || option.value })
|
2170
2231
|
]
|
2171
2232
|
},
|
2172
2233
|
option.label + option.value
|
@@ -2177,8 +2238,8 @@ var RadioField = ({
|
|
2177
2238
|
|
2178
2239
|
// components/AutoField/fields/SelectField/index.tsx
|
2179
2240
|
init_react_import();
|
2180
|
-
var
|
2181
|
-
var
|
2241
|
+
var import_react18 = require("react");
|
2242
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
2182
2243
|
var getClassName12 = get_class_name_factory_default("Input", styles_module_default2);
|
2183
2244
|
var SelectField = ({
|
2184
2245
|
field,
|
@@ -2190,20 +2251,20 @@ var SelectField = ({
|
|
2190
2251
|
readOnly,
|
2191
2252
|
id
|
2192
2253
|
}) => {
|
2193
|
-
const flatOptions = (0,
|
2254
|
+
const flatOptions = (0, import_react18.useMemo)(
|
2194
2255
|
() => field.type === "select" ? field.options.map(({ value: value2 }) => value2) : [],
|
2195
2256
|
[field]
|
2196
2257
|
);
|
2197
2258
|
if (field.type !== "select" || !field.options) {
|
2198
2259
|
return null;
|
2199
2260
|
}
|
2200
|
-
return /* @__PURE__ */ (0,
|
2261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
2201
2262
|
Label2,
|
2202
2263
|
{
|
2203
2264
|
label: label || name,
|
2204
|
-
icon: /* @__PURE__ */ (0,
|
2265
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronDown, { size: 16 }),
|
2205
2266
|
readOnly,
|
2206
|
-
children: /* @__PURE__ */ (0,
|
2267
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
2207
2268
|
"select",
|
2208
2269
|
{
|
2209
2270
|
id,
|
@@ -2220,7 +2281,7 @@ var SelectField = ({
|
|
2220
2281
|
}
|
2221
2282
|
},
|
2222
2283
|
value,
|
2223
|
-
children: field.options.map((option) => /* @__PURE__ */ (0,
|
2284
|
+
children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
2224
2285
|
"option",
|
2225
2286
|
{
|
2226
2287
|
label: option.label,
|
@@ -2236,7 +2297,7 @@ var SelectField = ({
|
|
2236
2297
|
|
2237
2298
|
// components/AutoField/fields/TextareaField/index.tsx
|
2238
2299
|
init_react_import();
|
2239
|
-
var
|
2300
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
2240
2301
|
var getClassName13 = get_class_name_factory_default("Input", styles_module_default2);
|
2241
2302
|
var TextareaField = ({
|
2242
2303
|
onChange,
|
@@ -2247,7 +2308,7 @@ var TextareaField = ({
|
|
2247
2308
|
Label: Label2,
|
2248
2309
|
id
|
2249
2310
|
}) => {
|
2250
|
-
return /* @__PURE__ */ (0,
|
2311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Label2, { label: label || name, icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Type, { size: 16 }), readOnly, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
2251
2312
|
"textarea",
|
2252
2313
|
{
|
2253
2314
|
id,
|
@@ -2274,7 +2335,7 @@ init_react_import();
|
|
2274
2335
|
var styles_module_default9 = { "ObjectField": "_ObjectField_1ua3y_5", "ObjectField-fieldset": "_ObjectField-fieldset_1ua3y_13" };
|
2275
2336
|
|
2276
2337
|
// components/AutoField/fields/ObjectField/index.tsx
|
2277
|
-
var
|
2338
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
2278
2339
|
var getClassName14 = get_class_name_factory_default("ObjectField", styles_module_default9);
|
2279
2340
|
var ObjectField = ({
|
2280
2341
|
field,
|
@@ -2286,43 +2347,54 @@ var ObjectField = ({
|
|
2286
2347
|
readOnly,
|
2287
2348
|
id
|
2288
2349
|
}) => {
|
2289
|
-
const {
|
2350
|
+
const { readOnlyFields, localName = name } = useNestedFieldContext();
|
2290
2351
|
if (field.type !== "object" || !field.objectFields) {
|
2291
2352
|
return null;
|
2292
2353
|
}
|
2293
|
-
const readOnlyFields = (selectedItem == null ? void 0 : selectedItem.readOnly) || {};
|
2294
2354
|
const data = value || {};
|
2295
|
-
return /* @__PURE__ */ (0,
|
2355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
2296
2356
|
Label2,
|
2297
2357
|
{
|
2298
2358
|
label: label || name,
|
2299
|
-
icon: /* @__PURE__ */ (0,
|
2359
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(EllipsisVertical, { size: 16 }),
|
2300
2360
|
el: "div",
|
2301
2361
|
readOnly,
|
2302
|
-
children: /* @__PURE__ */ (0,
|
2303
|
-
const subField = field.objectFields[
|
2304
|
-
const
|
2305
|
-
const
|
2306
|
-
const subReadOnly = readOnly ? readOnly :
|
2307
|
-
|
2308
|
-
|
2362
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassName14(), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("fieldset", { className: getClassName14("fieldset"), children: Object.keys(field.objectFields).map((subName) => {
|
2363
|
+
const subField = field.objectFields[subName];
|
2364
|
+
const subPath = `${name}.${subName}`;
|
2365
|
+
const localSubPath = `${localName || name}.${subName}`;
|
2366
|
+
const subReadOnly = readOnly ? readOnly : readOnlyFields[localSubPath];
|
2367
|
+
const label2 = subField.label || subName;
|
2368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
2369
|
+
NestedFieldProvider,
|
2309
2370
|
{
|
2310
|
-
name:
|
2311
|
-
|
2312
|
-
|
2313
|
-
|
2314
|
-
|
2315
|
-
|
2316
|
-
|
2317
|
-
|
2318
|
-
|
2319
|
-
|
2371
|
+
name: localName || id,
|
2372
|
+
subName,
|
2373
|
+
readOnlyFields,
|
2374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
2375
|
+
AutoFieldPrivate,
|
2376
|
+
{
|
2377
|
+
name: subPath,
|
2378
|
+
label: subPath,
|
2379
|
+
id: `${id}_${subName}`,
|
2380
|
+
readOnly: subReadOnly,
|
2381
|
+
field: __spreadProps(__spreadValues({}, subField), {
|
2382
|
+
label: label2
|
2383
|
+
// May be used by custom fields
|
2320
2384
|
}),
|
2321
|
-
|
2322
|
-
|
2323
|
-
|
2385
|
+
value: data[subName],
|
2386
|
+
onChange: (val, ui) => {
|
2387
|
+
onChange(
|
2388
|
+
__spreadProps(__spreadValues({}, data), {
|
2389
|
+
[subName]: val
|
2390
|
+
}),
|
2391
|
+
ui
|
2392
|
+
);
|
2393
|
+
}
|
2394
|
+
}
|
2395
|
+
)
|
2324
2396
|
},
|
2325
|
-
|
2397
|
+
subPath
|
2326
2398
|
);
|
2327
2399
|
}) }) })
|
2328
2400
|
}
|
@@ -2331,7 +2403,7 @@ var ObjectField = ({
|
|
2331
2403
|
|
2332
2404
|
// lib/use-safe-id.ts
|
2333
2405
|
init_react_import();
|
2334
|
-
var
|
2406
|
+
var import_react19 = __toESM(require("react"));
|
2335
2407
|
|
2336
2408
|
// lib/generate-id.ts
|
2337
2409
|
init_react_import();
|
@@ -2340,15 +2412,15 @@ var generateId = (type) => type ? `${type}-${(0, import_uuid.v4)()}` : (0, impor
|
|
2340
2412
|
|
2341
2413
|
// lib/use-safe-id.ts
|
2342
2414
|
var useSafeId = () => {
|
2343
|
-
if (typeof
|
2344
|
-
return
|
2415
|
+
if (typeof import_react19.default.useId !== "undefined") {
|
2416
|
+
return import_react19.default.useId();
|
2345
2417
|
}
|
2346
|
-
const [id] = (0,
|
2418
|
+
const [id] = (0, import_react19.useState)(generateId());
|
2347
2419
|
return id;
|
2348
2420
|
};
|
2349
2421
|
|
2350
2422
|
// components/AutoField/index.tsx
|
2351
|
-
var
|
2423
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
2352
2424
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
|
2353
2425
|
var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
|
2354
2426
|
var FieldLabel = ({
|
@@ -2360,16 +2432,16 @@ var FieldLabel = ({
|
|
2360
2432
|
className
|
2361
2433
|
}) => {
|
2362
2434
|
const El = el;
|
2363
|
-
return /* @__PURE__ */ (0,
|
2364
|
-
/* @__PURE__ */ (0,
|
2365
|
-
icon ? /* @__PURE__ */ (0,
|
2435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(El, { className, children: [
|
2436
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: getClassName15("label"), children: [
|
2437
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassName15("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, {}),
|
2366
2438
|
label,
|
2367
|
-
readOnly && /* @__PURE__ */ (0,
|
2439
|
+
readOnly && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassName15("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Lock, { size: "12" }) })
|
2368
2440
|
] }),
|
2369
2441
|
children
|
2370
2442
|
] });
|
2371
2443
|
};
|
2372
|
-
var
|
2444
|
+
var FieldLabelInternal = ({
|
2373
2445
|
children,
|
2374
2446
|
icon,
|
2375
2447
|
label,
|
@@ -2377,14 +2449,14 @@ var FieldLabelInternal2 = ({
|
|
2377
2449
|
readOnly
|
2378
2450
|
}) => {
|
2379
2451
|
const { overrides } = useAppContext();
|
2380
|
-
const Wrapper = (0,
|
2452
|
+
const Wrapper = (0, import_react20.useMemo)(
|
2381
2453
|
() => overrides.fieldLabel || FieldLabel,
|
2382
2454
|
[overrides]
|
2383
2455
|
);
|
2384
2456
|
if (!label) {
|
2385
|
-
return /* @__PURE__ */ (0,
|
2457
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, { children });
|
2386
2458
|
}
|
2387
|
-
return /* @__PURE__ */ (0,
|
2459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
2388
2460
|
Wrapper,
|
2389
2461
|
{
|
2390
2462
|
label,
|
@@ -2398,8 +2470,8 @@ var FieldLabelInternal2 = ({
|
|
2398
2470
|
};
|
2399
2471
|
function AutoFieldInternal(props) {
|
2400
2472
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2401
|
-
const { dispatch, overrides } = useAppContext();
|
2402
|
-
const { id, Label: Label2 =
|
2473
|
+
const { dispatch, overrides, selectedItem } = useAppContext();
|
2474
|
+
const { id, Label: Label2 = FieldLabelInternal } = props;
|
2403
2475
|
const field = props.field;
|
2404
2476
|
const label = field.label;
|
2405
2477
|
const defaultId = useSafeId();
|
@@ -2430,7 +2502,7 @@ function AutoFieldInternal(props) {
|
|
2430
2502
|
Label: Label2,
|
2431
2503
|
id: resolvedId
|
2432
2504
|
});
|
2433
|
-
const onFocus = (0,
|
2505
|
+
const onFocus = (0, import_react20.useCallback)(
|
2434
2506
|
(e) => {
|
2435
2507
|
if (mergedProps.name && e.target.nodeName === "INPUT") {
|
2436
2508
|
e.stopPropagation();
|
@@ -2444,7 +2516,7 @@ function AutoFieldInternal(props) {
|
|
2444
2516
|
},
|
2445
2517
|
[mergedProps.name]
|
2446
2518
|
);
|
2447
|
-
const onBlur = (0,
|
2519
|
+
const onBlur = (0, import_react20.useCallback)((e) => {
|
2448
2520
|
if ("name" in e.target) {
|
2449
2521
|
dispatch({
|
2450
2522
|
type: "setUi",
|
@@ -2459,27 +2531,37 @@ function AutoFieldInternal(props) {
|
|
2459
2531
|
return null;
|
2460
2532
|
}
|
2461
2533
|
const CustomField = field.render;
|
2462
|
-
return /* @__PURE__ */ (0,
|
2534
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassNameWrapper(), onFocus, onBlur, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassName15(), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CustomField, __spreadValues({}, mergedProps)) }) });
|
2463
2535
|
}
|
2464
2536
|
const children = defaultFields[field.type](mergedProps);
|
2465
2537
|
const Render2 = render[field.type];
|
2466
|
-
|
2467
|
-
|
2538
|
+
const nestedFieldContext = (0, import_react20.useContext)(NestedFieldContext);
|
2539
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
2540
|
+
NestedFieldContext.Provider,
|
2468
2541
|
{
|
2469
|
-
|
2470
|
-
|
2471
|
-
|
2472
|
-
onClick: (e) => {
|
2473
|
-
e.stopPropagation();
|
2542
|
+
value: {
|
2543
|
+
readOnlyFields: nestedFieldContext.readOnlyFields || (selectedItem == null ? void 0 : selectedItem.readOnly) || {},
|
2544
|
+
localName: nestedFieldContext.localName
|
2474
2545
|
},
|
2475
|
-
children: /* @__PURE__ */ (0,
|
2546
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
2547
|
+
"div",
|
2548
|
+
{
|
2549
|
+
className: getClassNameWrapper(),
|
2550
|
+
onFocus,
|
2551
|
+
onBlur,
|
2552
|
+
onClick: (e) => {
|
2553
|
+
e.stopPropagation();
|
2554
|
+
},
|
2555
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }))
|
2556
|
+
}
|
2557
|
+
)
|
2476
2558
|
}
|
2477
2559
|
);
|
2478
2560
|
}
|
2479
2561
|
function AutoFieldPrivate(props) {
|
2480
2562
|
const { state } = useAppContext();
|
2481
2563
|
const { value, onChange } = props;
|
2482
|
-
const [localValue, setLocalValue] = (0,
|
2564
|
+
const [localValue, setLocalValue] = (0, import_react20.useState)(value);
|
2483
2565
|
const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
|
2484
2566
|
(val, ui) => {
|
2485
2567
|
onChange(val, ui);
|
@@ -2487,11 +2569,11 @@ function AutoFieldPrivate(props) {
|
|
2487
2569
|
50,
|
2488
2570
|
{ leading: true }
|
2489
2571
|
);
|
2490
|
-
const onChangeLocal = (0,
|
2572
|
+
const onChangeLocal = (0, import_react20.useCallback)((val, ui) => {
|
2491
2573
|
setLocalValue(val);
|
2492
2574
|
onChangeDb(val, ui);
|
2493
2575
|
}, []);
|
2494
|
-
(0,
|
2576
|
+
(0, import_react20.useEffect)(() => {
|
2495
2577
|
if (state.ui.field.focus !== props.name) {
|
2496
2578
|
setLocalValue(value);
|
2497
2579
|
}
|
@@ -2500,11 +2582,11 @@ function AutoFieldPrivate(props) {
|
|
2500
2582
|
value: localValue,
|
2501
2583
|
onChange: onChangeLocal
|
2502
2584
|
};
|
2503
|
-
return /* @__PURE__ */ (0,
|
2585
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AutoFieldInternal, __spreadValues(__spreadValues({}, props), localProps));
|
2504
2586
|
}
|
2505
2587
|
function AutoField(props) {
|
2506
|
-
const DefaultLabel = (0,
|
2507
|
-
const DefaultLabel2 = (labelProps) => /* @__PURE__ */ (0,
|
2588
|
+
const DefaultLabel = (0, import_react20.useMemo)(() => {
|
2589
|
+
const DefaultLabel2 = (labelProps) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
2508
2590
|
"div",
|
2509
2591
|
__spreadProps(__spreadValues({}, labelProps), {
|
2510
2592
|
className: getClassName15({ readOnly: props.readOnly })
|
@@ -2512,7 +2594,7 @@ function AutoField(props) {
|
|
2512
2594
|
);
|
2513
2595
|
return DefaultLabel2;
|
2514
2596
|
}, [props.readOnly]);
|
2515
|
-
return /* @__PURE__ */ (0,
|
2597
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AutoFieldInternal, __spreadProps(__spreadValues({}, props), { Label: DefaultLabel }));
|
2516
2598
|
}
|
2517
2599
|
|
2518
2600
|
// components/Drawer/index.tsx
|
@@ -2523,64 +2605,38 @@ init_react_import();
|
|
2523
2605
|
var styles_module_default10 = { "Drawer": "_Drawer_fkqfo_1", "Drawer-draggable": "_Drawer-draggable_fkqfo_8", "Drawer-draggableBg": "_Drawer-draggableBg_fkqfo_12", "Drawer-draggableFg": "_Drawer-draggableFg_fkqfo_21", "DrawerItem-draggable": "_DrawerItem-draggable_fkqfo_25", "DrawerItem--disabled": "_DrawerItem--disabled_fkqfo_38", "DrawerItem": "_DrawerItem_fkqfo_25", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_fkqfo_48", "DrawerItem-name": "_DrawerItem-name_fkqfo_66" };
|
2524
2606
|
|
2525
2607
|
// components/Drawer/index.tsx
|
2526
|
-
var
|
2608
|
+
var import_react32 = require("react");
|
2527
2609
|
|
2528
2610
|
// components/DragDropContext/index.tsx
|
2529
2611
|
init_react_import();
|
2530
|
-
var
|
2531
|
-
var
|
2612
|
+
var import_react30 = require("@dnd-kit/react");
|
2613
|
+
var import_react31 = require("react");
|
2532
2614
|
var import_dom = require("@dnd-kit/dom");
|
2533
2615
|
|
2534
2616
|
// components/DropZone/index.tsx
|
2535
2617
|
init_react_import();
|
2536
|
-
var
|
2618
|
+
var import_react29 = require("react");
|
2537
2619
|
|
2538
2620
|
// components/DraggableComponent/index.tsx
|
2539
2621
|
init_react_import();
|
2540
|
-
var
|
2622
|
+
var import_react23 = require("react");
|
2541
2623
|
|
2542
2624
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
|
2543
2625
|
init_react_import();
|
2544
2626
|
var styles_module_default11 = { "DraggableComponent": "_DraggableComponent_1ukn8_1", "DraggableComponent-overlay": "_DraggableComponent-overlay_1ukn8_12", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_1ukn8_29", "DraggableComponent--hover": "_DraggableComponent--hover_1ukn8_45", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_1ukn8_45", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_1ukn8_54", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_1ukn8_66", "DraggableComponent-actions": "_DraggableComponent-actions_1ukn8_66" };
|
2545
2627
|
|
2546
|
-
// lib/use-modifier-held.ts
|
2547
|
-
init_react_import();
|
2548
|
-
var import_react20 = require("react");
|
2549
|
-
var useModifierHeld = (modifier) => {
|
2550
|
-
const [modifierHeld, setModifierHeld] = (0, import_react20.useState)(false);
|
2551
|
-
(0, import_react20.useEffect)(() => {
|
2552
|
-
function downHandler({ key }) {
|
2553
|
-
if (key === modifier) {
|
2554
|
-
setModifierHeld(true);
|
2555
|
-
}
|
2556
|
-
}
|
2557
|
-
function upHandler({ key }) {
|
2558
|
-
if (key === modifier) {
|
2559
|
-
setModifierHeld(false);
|
2560
|
-
}
|
2561
|
-
}
|
2562
|
-
window.addEventListener("keydown", downHandler);
|
2563
|
-
window.addEventListener("keyup", upHandler);
|
2564
|
-
return () => {
|
2565
|
-
window.removeEventListener("keydown", downHandler);
|
2566
|
-
window.removeEventListener("keyup", upHandler);
|
2567
|
-
};
|
2568
|
-
}, [modifier]);
|
2569
|
-
return modifierHeld;
|
2570
|
-
};
|
2571
|
-
|
2572
2628
|
// components/DraggableComponent/index.tsx
|
2573
2629
|
var import_react_dom2 = require("react-dom");
|
2574
2630
|
|
2575
|
-
//
|
2631
|
+
// lib/dnd/collision/dynamic/index.ts
|
2576
2632
|
init_react_import();
|
2577
2633
|
var import_abstract8 = require("@dnd-kit/abstract");
|
2578
2634
|
|
2579
|
-
//
|
2635
|
+
// lib/dnd/collision/directional/index.ts
|
2580
2636
|
init_react_import();
|
2581
2637
|
var import_abstract = require("@dnd-kit/abstract");
|
2582
2638
|
|
2583
|
-
//
|
2639
|
+
// lib/dnd/collision/collision-debug.ts
|
2584
2640
|
init_react_import();
|
2585
2641
|
var DEBUG = false;
|
2586
2642
|
var debugElements = {};
|
@@ -2629,7 +2685,7 @@ var collisionDebug = (a, b, id, color, label) => {
|
|
2629
2685
|
});
|
2630
2686
|
};
|
2631
2687
|
|
2632
|
-
//
|
2688
|
+
// lib/dnd/collision/directional/index.ts
|
2633
2689
|
var distanceChange = "increasing";
|
2634
2690
|
var directionalCollision = (input, previous) => {
|
2635
2691
|
var _a;
|
@@ -2662,7 +2718,7 @@ var directionalCollision = (input, previous) => {
|
|
2662
2718
|
return null;
|
2663
2719
|
};
|
2664
2720
|
|
2665
|
-
//
|
2721
|
+
// lib/dnd/collision/dynamic/get-direction.ts
|
2666
2722
|
init_react_import();
|
2667
2723
|
var getDirection = (dragAxis, delta) => {
|
2668
2724
|
if (dragAxis === "dynamic") {
|
@@ -2677,7 +2733,7 @@ var getDirection = (dragAxis, delta) => {
|
|
2677
2733
|
return delta.y === 0 ? null : delta.y > 0 ? "down" : "up";
|
2678
2734
|
};
|
2679
2735
|
|
2680
|
-
//
|
2736
|
+
// lib/dnd/collision/dynamic/get-midpoint-impact.ts
|
2681
2737
|
init_react_import();
|
2682
2738
|
var getMidpointImpact = (dragShape, dropShape, direction, offsetMultiplier = 0) => {
|
2683
2739
|
const dragRect = dragShape.boundingRectangle;
|
@@ -2696,7 +2752,7 @@ var getMidpointImpact = (dragShape, dropShape, direction, offsetMultiplier = 0)
|
|
2696
2752
|
return dragRect.right - offset >= dropCenter.x;
|
2697
2753
|
};
|
2698
2754
|
|
2699
|
-
//
|
2755
|
+
// lib/dnd/collision/dynamic/track-movement-interval.ts
|
2700
2756
|
init_react_import();
|
2701
2757
|
var import_geometry = require("@dnd-kit/geometry");
|
2702
2758
|
var INTERVAL_SENSITIVITY = 10;
|
@@ -2800,7 +2856,14 @@ var closestCorners = (input) => {
|
|
2800
2856
|
};
|
2801
2857
|
};
|
2802
2858
|
|
2803
|
-
//
|
2859
|
+
// lib/dnd/collision/dynamic/store.ts
|
2860
|
+
init_react_import();
|
2861
|
+
var import_vanilla = require("zustand/vanilla");
|
2862
|
+
var collisionStore = (0, import_vanilla.createStore)(() => ({
|
2863
|
+
fallbackEnabled: false
|
2864
|
+
}));
|
2865
|
+
|
2866
|
+
// lib/dnd/collision/dynamic/index.ts
|
2804
2867
|
var flushNext = "";
|
2805
2868
|
var createDynamicCollisionDetector = (dragAxis, midpointOffset = 0.05) => (input) => {
|
2806
2869
|
var _a, _b, _c, _d, _e;
|
@@ -2812,6 +2875,7 @@ var createDynamicCollisionDetector = (dragAxis, midpointOffset = 0.05) => (input
|
|
2812
2875
|
return null;
|
2813
2876
|
}
|
2814
2877
|
const { center: dragCenter } = dragShape;
|
2878
|
+
const { fallbackEnabled } = collisionStore.getState();
|
2815
2879
|
const interval = trackMovementInterval(position.current, dragAxis);
|
2816
2880
|
dragOperation.data = __spreadProps(__spreadValues({}, dragOperation.data), {
|
2817
2881
|
direction: interval.direction
|
@@ -2857,7 +2921,7 @@ var createDynamicCollisionDetector = (dragAxis, midpointOffset = 0.05) => (input
|
|
2857
2921
|
flushNext = "";
|
2858
2922
|
return __spreadProps(__spreadValues({}, collision), { id: shouldFlushId ? "flush" : collision.id });
|
2859
2923
|
}
|
2860
|
-
if (((_c = dragOperation.source) == null ? void 0 : _c.id) !== droppable.id) {
|
2924
|
+
if (fallbackEnabled && ((_c = dragOperation.source) == null ? void 0 : _c.id) !== droppable.id) {
|
2861
2925
|
const xAxisIntersection = dropShape.boundingRectangle.right > dragShape.boundingRectangle.left && dropShape.boundingRectangle.left < dragShape.boundingRectangle.right;
|
2862
2926
|
const yAxisIntersection = dropShape.boundingRectangle.bottom > dragShape.boundingRectangle.top && dropShape.boundingRectangle.top < dragShape.boundingRectangle.bottom;
|
2863
2927
|
if (dragAxis === "y" && xAxisIntersection || yAxisIntersection) {
|
@@ -2918,8 +2982,102 @@ function getDeepScrollPosition(element) {
|
|
2918
2982
|
return totalScroll;
|
2919
2983
|
}
|
2920
2984
|
|
2985
|
+
// components/DropZone/context.tsx
|
2986
|
+
init_react_import();
|
2987
|
+
var import_react21 = require("react");
|
2988
|
+
var import_zustand = require("zustand");
|
2989
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
2990
|
+
var dropZoneContext = (0, import_react21.createContext)(null);
|
2991
|
+
var ZoneStoreContext = (0, import_react21.createContext)(
|
2992
|
+
(0, import_zustand.createStore)(() => ({
|
2993
|
+
zoneDepthIndex: {},
|
2994
|
+
nextZoneDepthIndex: {},
|
2995
|
+
areaDepthIndex: {},
|
2996
|
+
nextAreaDepthIndex: {},
|
2997
|
+
draggedItem: null,
|
2998
|
+
previewIndex: {}
|
2999
|
+
}))
|
3000
|
+
);
|
3001
|
+
var ZoneStoreProvider = ({
|
3002
|
+
children,
|
3003
|
+
store
|
3004
|
+
}) => {
|
3005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ZoneStoreContext.Provider, { value: store, children });
|
3006
|
+
};
|
3007
|
+
var DropZoneProvider = ({
|
3008
|
+
children,
|
3009
|
+
value
|
3010
|
+
}) => {
|
3011
|
+
const [hoveringComponent, setHoveringComponent] = (0, import_react21.useState)();
|
3012
|
+
const [areasWithZones, setAreasWithZones] = (0, import_react21.useState)(
|
3013
|
+
{}
|
3014
|
+
);
|
3015
|
+
const [activeZones, setActiveZones] = (0, import_react21.useState)({});
|
3016
|
+
const { dispatch } = useAppContext();
|
3017
|
+
const registerZoneArea = (0, import_react21.useCallback)(
|
3018
|
+
(area) => {
|
3019
|
+
setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
|
3020
|
+
},
|
3021
|
+
[setAreasWithZones]
|
3022
|
+
);
|
3023
|
+
const registerZone = (0, import_react21.useCallback)(
|
3024
|
+
(zoneCompound) => {
|
3025
|
+
if (!dispatch) {
|
3026
|
+
return;
|
3027
|
+
}
|
3028
|
+
dispatch({
|
3029
|
+
type: "registerZone",
|
3030
|
+
zone: zoneCompound
|
3031
|
+
});
|
3032
|
+
setActiveZones((latest) => __spreadProps(__spreadValues({}, latest), { [zoneCompound]: true }));
|
3033
|
+
},
|
3034
|
+
[setActiveZones, dispatch]
|
3035
|
+
);
|
3036
|
+
const unregisterZone = (0, import_react21.useCallback)(
|
3037
|
+
(zoneCompound) => {
|
3038
|
+
if (!dispatch) {
|
3039
|
+
return;
|
3040
|
+
}
|
3041
|
+
dispatch({
|
3042
|
+
type: "unregisterZone",
|
3043
|
+
zone: zoneCompound
|
3044
|
+
});
|
3045
|
+
setActiveZones((latest) => __spreadProps(__spreadValues({}, latest), {
|
3046
|
+
[zoneCompound]: false
|
3047
|
+
}));
|
3048
|
+
},
|
3049
|
+
[setActiveZones, dispatch]
|
3050
|
+
);
|
3051
|
+
const memoValue = (0, import_react21.useMemo)(
|
3052
|
+
() => __spreadValues({
|
3053
|
+
hoveringComponent,
|
3054
|
+
setHoveringComponent,
|
3055
|
+
registerZoneArea,
|
3056
|
+
areasWithZones,
|
3057
|
+
registerZone,
|
3058
|
+
unregisterZone,
|
3059
|
+
activeZones
|
3060
|
+
}, value),
|
3061
|
+
[value, hoveringComponent, areasWithZones, activeZones]
|
3062
|
+
);
|
3063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, { children: memoValue && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(dropZoneContext.Provider, { value: memoValue, children }) });
|
3064
|
+
};
|
3065
|
+
|
3066
|
+
// lib/use-context-store.ts
|
3067
|
+
init_react_import();
|
3068
|
+
var import_react22 = require("react");
|
3069
|
+
var import_zustand2 = require("zustand");
|
3070
|
+
var import_shallow = require("zustand/react/shallow");
|
3071
|
+
function useContextStore(context, selector) {
|
3072
|
+
const store = (0, import_react22.useContext)(context);
|
3073
|
+
if (!store) {
|
3074
|
+
throw new Error("useContextStore must be used inside context");
|
3075
|
+
}
|
3076
|
+
return (0, import_zustand2.useStore)(store, (0, import_shallow.useShallow)(selector));
|
3077
|
+
}
|
3078
|
+
|
2921
3079
|
// components/DraggableComponent/index.tsx
|
2922
|
-
var
|
3080
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
2923
3081
|
var getClassName16 = get_class_name_factory_default("DraggableComponent", styles_module_default11);
|
2924
3082
|
var DEBUG2 = false;
|
2925
3083
|
var space = 8;
|
@@ -2930,12 +3088,12 @@ var DefaultActionBar = ({
|
|
2930
3088
|
label,
|
2931
3089
|
children,
|
2932
3090
|
parentAction
|
2933
|
-
}) => /* @__PURE__ */ (0,
|
2934
|
-
/* @__PURE__ */ (0,
|
3091
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(ActionBar, { children: [
|
3092
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(ActionBar.Group, { children: [
|
2935
3093
|
parentAction,
|
2936
|
-
label && /* @__PURE__ */ (0,
|
3094
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ActionBar.Label, { label })
|
2937
3095
|
] }),
|
2938
|
-
/* @__PURE__ */ (0,
|
3096
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ActionBar.Group, { children })
|
2939
3097
|
] });
|
2940
3098
|
var convertIdToSelector = (id, zoneCompound, data) => {
|
2941
3099
|
const content = zoneCompound && data.zones && zoneCompound !== "default-zone" ? data.zones[zoneCompound] : data.content;
|
@@ -2970,10 +3128,9 @@ var DraggableComponent = ({
|
|
2970
3128
|
iframe,
|
2971
3129
|
state
|
2972
3130
|
} = useAppContext();
|
2973
|
-
const
|
2974
|
-
const
|
2975
|
-
const
|
2976
|
-
const registerLocalZone = (0, import_react21.useCallback)(
|
3131
|
+
const ctx = (0, import_react23.useContext)(dropZoneContext);
|
3132
|
+
const [localZones, setLocalZones] = (0, import_react23.useState)({});
|
3133
|
+
const registerLocalZone = (0, import_react23.useCallback)(
|
2977
3134
|
(zoneCompound2, active) => {
|
2978
3135
|
var _a;
|
2979
3136
|
(_a = ctx == null ? void 0 : ctx.registerLocalZone) == null ? void 0 : _a.call(ctx, zoneCompound2, active);
|
@@ -2983,7 +3140,7 @@ var DraggableComponent = ({
|
|
2983
3140
|
},
|
2984
3141
|
[setLocalZones]
|
2985
3142
|
);
|
2986
|
-
const unregisterLocalZone = (0,
|
3143
|
+
const unregisterLocalZone = (0, import_react23.useCallback)(
|
2987
3144
|
(zoneCompound2) => {
|
2988
3145
|
var _a;
|
2989
3146
|
(_a = ctx == null ? void 0 : ctx.unregisterLocalZone) == null ? void 0 : _a.call(ctx, zoneCompound2);
|
@@ -2997,8 +3154,8 @@ var DraggableComponent = ({
|
|
2997
3154
|
);
|
2998
3155
|
const containsActiveZone = Object.values(localZones).filter(Boolean).length > 0;
|
2999
3156
|
const { path = [] } = ctx || {};
|
3000
|
-
const [canDrag, setCanDrag] = (0,
|
3001
|
-
(0,
|
3157
|
+
const [canDrag, setCanDrag] = (0, import_react23.useState)(false);
|
3158
|
+
(0, import_react23.useEffect)(() => {
|
3002
3159
|
var _a;
|
3003
3160
|
const item = getItem({ index, zone: zoneCompound }, state.data);
|
3004
3161
|
if (item) {
|
@@ -3008,10 +3165,13 @@ var DraggableComponent = ({
|
|
3008
3165
|
setCanDrag((_a = perms.drag) != null ? _a : true);
|
3009
3166
|
}
|
3010
3167
|
}, [state, index, zoneCompound, getPermissions]);
|
3011
|
-
const userIsDragging =
|
3168
|
+
const userIsDragging = useContextStore(
|
3169
|
+
ZoneStoreContext,
|
3170
|
+
(s) => !!s.draggedItem
|
3171
|
+
);
|
3012
3172
|
const canCollide = canDrag || userIsDragging;
|
3013
3173
|
const disabled = !isEnabled || !canCollide;
|
3014
|
-
const [dragAxis, setDragAxis] = (0,
|
3174
|
+
const [dragAxis, setDragAxis] = (0, import_react23.useState)(userDragAxis || autoDragAxis);
|
3015
3175
|
const { ref: sortableRef, status } = useSortableSafe({
|
3016
3176
|
id,
|
3017
3177
|
index,
|
@@ -3037,8 +3197,8 @@ var DraggableComponent = ({
|
|
3037
3197
|
}
|
3038
3198
|
});
|
3039
3199
|
const thisIsDragging = status === "dragging";
|
3040
|
-
const ref = (0,
|
3041
|
-
const refSetter = (0,
|
3200
|
+
const ref = (0, import_react23.useRef)(null);
|
3201
|
+
const refSetter = (0, import_react23.useCallback)(
|
3042
3202
|
(el) => {
|
3043
3203
|
sortableRef(el);
|
3044
3204
|
if (el) {
|
@@ -3047,14 +3207,14 @@ var DraggableComponent = ({
|
|
3047
3207
|
},
|
3048
3208
|
[sortableRef]
|
3049
3209
|
);
|
3050
|
-
const [portalEl, setPortalEl] = (0,
|
3051
|
-
(0,
|
3210
|
+
const [portalEl, setPortalEl] = (0, import_react23.useState)();
|
3211
|
+
(0, import_react23.useEffect)(() => {
|
3052
3212
|
var _a, _b, _c;
|
3053
3213
|
setPortalEl(
|
3054
3214
|
iframe.enabled ? (_a = ref.current) == null ? void 0 : _a.ownerDocument.body : (_c = (_b = ref.current) == null ? void 0 : _b.closest("[data-puck-preview]")) != null ? _c : document.body
|
3055
3215
|
);
|
3056
3216
|
}, [iframe.enabled, ref.current]);
|
3057
|
-
const getStyle = (0,
|
3217
|
+
const getStyle = (0, import_react23.useCallback)(() => {
|
3058
3218
|
var _a, _b, _c;
|
3059
3219
|
if (!ref.current) return;
|
3060
3220
|
const rect = ref.current.getBoundingClientRect();
|
@@ -3074,11 +3234,11 @@ var DraggableComponent = ({
|
|
3074
3234
|
};
|
3075
3235
|
return style2;
|
3076
3236
|
}, [ref.current]);
|
3077
|
-
const [style, setStyle] = (0,
|
3078
|
-
const sync = (0,
|
3237
|
+
const [style, setStyle] = (0, import_react23.useState)();
|
3238
|
+
const sync = (0, import_react23.useCallback)(() => {
|
3079
3239
|
setStyle(getStyle());
|
3080
3240
|
}, [ref.current, iframe]);
|
3081
|
-
(0,
|
3241
|
+
(0, import_react23.useEffect)(() => {
|
3082
3242
|
if (ref.current) {
|
3083
3243
|
const observer = new ResizeObserver(sync);
|
3084
3244
|
observer.observe(ref.current);
|
@@ -3087,20 +3247,22 @@ var DraggableComponent = ({
|
|
3087
3247
|
};
|
3088
3248
|
}
|
3089
3249
|
}, [ref.current]);
|
3090
|
-
(0,
|
3091
|
-
|
3092
|
-
|
3093
|
-
|
3094
|
-
|
3250
|
+
(0, import_react23.useEffect)(() => {
|
3251
|
+
if (isSelected) {
|
3252
|
+
ctx == null ? void 0 : ctx.registerPath({
|
3253
|
+
index,
|
3254
|
+
zone: zoneCompound
|
3255
|
+
});
|
3256
|
+
}
|
3095
3257
|
}, [isSelected]);
|
3096
|
-
const CustomActionBar = (0,
|
3258
|
+
const CustomActionBar = (0, import_react23.useMemo)(
|
3097
3259
|
() => overrides.actionBar || DefaultActionBar,
|
3098
3260
|
[overrides.actionBar]
|
3099
3261
|
);
|
3100
3262
|
const permissions = getPermissions({
|
3101
3263
|
item: selectedItem
|
3102
3264
|
});
|
3103
|
-
const onClick = (0,
|
3265
|
+
const onClick = (0, import_react23.useCallback)(
|
3104
3266
|
(e) => {
|
3105
3267
|
e.stopPropagation();
|
3106
3268
|
dispatch({
|
@@ -3112,7 +3274,7 @@ var DraggableComponent = ({
|
|
3112
3274
|
},
|
3113
3275
|
[index, zoneCompound, id]
|
3114
3276
|
);
|
3115
|
-
const onSelectParent = (0,
|
3277
|
+
const onSelectParent = (0, import_react23.useCallback)(() => {
|
3116
3278
|
if (!(ctx == null ? void 0 : ctx.areaId)) {
|
3117
3279
|
return;
|
3118
3280
|
}
|
@@ -3130,23 +3292,23 @@ var DraggableComponent = ({
|
|
3130
3292
|
}
|
3131
3293
|
});
|
3132
3294
|
}, [ctx, path]);
|
3133
|
-
const onDuplicate = (0,
|
3295
|
+
const onDuplicate = (0, import_react23.useCallback)(() => {
|
3134
3296
|
dispatch({
|
3135
3297
|
type: "duplicate",
|
3136
3298
|
sourceIndex: index,
|
3137
3299
|
sourceZone: zoneCompound
|
3138
3300
|
});
|
3139
3301
|
}, [index, zoneCompound]);
|
3140
|
-
const onDelete = (0,
|
3302
|
+
const onDelete = (0, import_react23.useCallback)(() => {
|
3141
3303
|
dispatch({
|
3142
3304
|
type: "remove",
|
3143
3305
|
index,
|
3144
3306
|
zone: zoneCompound
|
3145
3307
|
});
|
3146
3308
|
}, [index, zoneCompound]);
|
3147
|
-
const [hover, setHover] = (0,
|
3309
|
+
const [hover, setHover] = (0, import_react23.useState)(false);
|
3148
3310
|
const indicativeHover = (ctx == null ? void 0 : ctx.hoveringComponent) === id;
|
3149
|
-
(0,
|
3311
|
+
(0, import_react23.useEffect)(() => {
|
3150
3312
|
if (!ref.current) {
|
3151
3313
|
return;
|
3152
3314
|
}
|
@@ -3196,7 +3358,7 @@ var DraggableComponent = ({
|
|
3196
3358
|
thisIsDragging,
|
3197
3359
|
inDroppableZone
|
3198
3360
|
]);
|
3199
|
-
(0,
|
3361
|
+
(0, import_react23.useEffect)(() => {
|
3200
3362
|
if (ref.current && disabled) {
|
3201
3363
|
ref.current.setAttribute("data-puck-disabled", "");
|
3202
3364
|
return () => {
|
@@ -3205,8 +3367,8 @@ var DraggableComponent = ({
|
|
3205
3367
|
};
|
3206
3368
|
}
|
3207
3369
|
}, [disabled, ref]);
|
3208
|
-
const [isVisible, setIsVisible] = (0,
|
3209
|
-
(0,
|
3370
|
+
const [isVisible, setIsVisible] = (0, import_react23.useState)(false);
|
3371
|
+
(0, import_react23.useEffect)(() => {
|
3210
3372
|
sync();
|
3211
3373
|
if ((isSelected || hover || indicativeHover) && !userIsDragging) {
|
3212
3374
|
setIsVisible(true);
|
@@ -3214,7 +3376,7 @@ var DraggableComponent = ({
|
|
3214
3376
|
setIsVisible(false);
|
3215
3377
|
}
|
3216
3378
|
}, [isSelected, hover, indicativeHover, iframe, state.data, userIsDragging]);
|
3217
|
-
const syncActionsPosition = (0,
|
3379
|
+
const syncActionsPosition = (0, import_react23.useCallback)(
|
3218
3380
|
(el) => {
|
3219
3381
|
if (el) {
|
3220
3382
|
const view = el.ownerDocument.defaultView;
|
@@ -3231,7 +3393,7 @@ var DraggableComponent = ({
|
|
3231
3393
|
},
|
3232
3394
|
[zoomConfig]
|
3233
3395
|
);
|
3234
|
-
(0,
|
3396
|
+
(0, import_react23.useEffect)(() => {
|
3235
3397
|
if (userDragAxis) {
|
3236
3398
|
setDragAxis(userDragAxis);
|
3237
3399
|
return;
|
@@ -3245,8 +3407,8 @@ var DraggableComponent = ({
|
|
3245
3407
|
}
|
3246
3408
|
setDragAxis(autoDragAxis);
|
3247
3409
|
}, [ref, userDragAxis, autoDragAxis]);
|
3248
|
-
const parentAction = (ctx == null ? void 0 : ctx.areaId) && (ctx == null ? void 0 : ctx.areaId) !== "root" && /* @__PURE__ */ (0,
|
3249
|
-
return /* @__PURE__ */ (0,
|
3410
|
+
const parentAction = (ctx == null ? void 0 : ctx.areaId) && (ctx == null ? void 0 : ctx.areaId) !== "root" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ActionBar.Action, { onClick: onSelectParent, label: "Select parent", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(CornerLeftUp, { size: 16 }) });
|
3411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
3250
3412
|
DropZoneProvider,
|
3251
3413
|
{
|
3252
3414
|
value: __spreadProps(__spreadValues({}, ctx), {
|
@@ -3260,28 +3422,27 @@ var DraggableComponent = ({
|
|
3260
3422
|
}),
|
3261
3423
|
children: [
|
3262
3424
|
isVisible && (0, import_react_dom2.createPortal)(
|
3263
|
-
/* @__PURE__ */ (0,
|
3425
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
3264
3426
|
"div",
|
3265
3427
|
{
|
3266
3428
|
className: getClassName16({
|
3267
3429
|
isSelected,
|
3268
3430
|
isDragging: thisIsDragging,
|
3269
|
-
isModifierHeld,
|
3270
3431
|
hover: hover || indicativeHover
|
3271
3432
|
}),
|
3272
3433
|
style: __spreadValues({}, style),
|
3273
3434
|
"data-puck-overlay": true,
|
3274
3435
|
children: [
|
3275
3436
|
debug,
|
3276
|
-
isLoading && /* @__PURE__ */ (0,
|
3277
|
-
/* @__PURE__ */ (0,
|
3437
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName16("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Loader, {}) }),
|
3438
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
3278
3439
|
"div",
|
3279
3440
|
{
|
3280
3441
|
className: getClassName16("actionsOverlay"),
|
3281
3442
|
style: {
|
3282
3443
|
top: actionsOverlayTop / zoomConfig.zoom
|
3283
3444
|
},
|
3284
|
-
children: /* @__PURE__ */ (0,
|
3445
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
3285
3446
|
"div",
|
3286
3447
|
{
|
3287
3448
|
className: getClassName16("actions"),
|
@@ -3293,14 +3454,14 @@ var DraggableComponent = ({
|
|
3293
3454
|
paddingRight: actionsSide
|
3294
3455
|
},
|
3295
3456
|
ref: syncActionsPosition,
|
3296
|
-
children: /* @__PURE__ */ (0,
|
3457
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
3297
3458
|
CustomActionBar,
|
3298
3459
|
{
|
3299
3460
|
parentAction,
|
3300
3461
|
label: DEBUG2 ? id : label,
|
3301
3462
|
children: [
|
3302
|
-
permissions.duplicate && /* @__PURE__ */ (0,
|
3303
|
-
permissions.delete && /* @__PURE__ */ (0,
|
3463
|
+
permissions.duplicate && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ActionBar.Action, { onClick: onDuplicate, label: "Duplicate", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Copy, { size: 16 }) }),
|
3464
|
+
permissions.delete && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ActionBar.Action, { onClick: onDelete, label: "Delete", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Trash, { size: 16 }) })
|
3304
3465
|
]
|
3305
3466
|
}
|
3306
3467
|
)
|
@@ -3308,7 +3469,7 @@ var DraggableComponent = ({
|
|
3308
3469
|
)
|
3309
3470
|
}
|
3310
3471
|
),
|
3311
|
-
/* @__PURE__ */ (0,
|
3472
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName16("overlay") })
|
3312
3473
|
]
|
3313
3474
|
}
|
3314
3475
|
),
|
@@ -3324,96 +3485,29 @@ var DraggableComponent = ({
|
|
3324
3485
|
init_react_import();
|
3325
3486
|
var styles_module_default12 = { "DropZone": "_DropZone_kmkdc_1", "DropZone--isActive": "_DropZone--isActive_kmkdc_10", "DropZone--hasChildren": "_DropZone--hasChildren_kmkdc_14", "DropZone--userIsDragging": "_DropZone--userIsDragging_kmkdc_22", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_kmkdc_26", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_kmkdc_27", "DropZone--isRootZone": "_DropZone--isRootZone_kmkdc_27", "DropZone--isDestination": "_DropZone--isDestination_kmkdc_37", "DropZone-item": "_DropZone-item_kmkdc_49", "DropZone-hitbox": "_DropZone-hitbox_kmkdc_53", "DropZone--isEnabled": "_DropZone--isEnabled_kmkdc_61", "DropZone--isAnimating": "_DropZone--isAnimating_kmkdc_70" };
|
3326
3487
|
|
3327
|
-
// components/DropZone/
|
3488
|
+
// components/DropZone/lib/use-min-empty-height.ts
|
3328
3489
|
init_react_import();
|
3329
|
-
var
|
3330
|
-
var
|
3331
|
-
|
3332
|
-
|
3333
|
-
|
3334
|
-
value
|
3490
|
+
var import_react24 = require("react");
|
3491
|
+
var useMinEmptyHeight = ({
|
3492
|
+
zoneCompound,
|
3493
|
+
userMinEmptyHeight,
|
3494
|
+
ref
|
3335
3495
|
}) => {
|
3336
|
-
const [
|
3337
|
-
const [
|
3338
|
-
|
3339
|
-
|
3340
|
-
|
3341
|
-
|
3342
|
-
|
3343
|
-
|
3344
|
-
|
3345
|
-
|
3346
|
-
|
3347
|
-
|
3348
|
-
|
3349
|
-
|
3350
|
-
|
3351
|
-
return;
|
3352
|
-
}
|
3353
|
-
dispatch({
|
3354
|
-
type: "registerZone",
|
3355
|
-
zone: zoneCompound
|
3356
|
-
});
|
3357
|
-
setActiveZones((latest) => __spreadProps(__spreadValues({}, latest), { [zoneCompound]: true }));
|
3358
|
-
},
|
3359
|
-
[setActiveZones, dispatch]
|
3360
|
-
);
|
3361
|
-
const unregisterZone = (0, import_react22.useCallback)(
|
3362
|
-
(zoneCompound) => {
|
3363
|
-
if (!dispatch) {
|
3364
|
-
return;
|
3365
|
-
}
|
3366
|
-
dispatch({
|
3367
|
-
type: "unregisterZone",
|
3368
|
-
zone: zoneCompound
|
3369
|
-
});
|
3370
|
-
setActiveZones((latest) => __spreadProps(__spreadValues({}, latest), {
|
3371
|
-
[zoneCompound]: false
|
3372
|
-
}));
|
3373
|
-
},
|
3374
|
-
[setActiveZones, dispatch]
|
3375
|
-
);
|
3376
|
-
const memoValue = (0, import_react22.useMemo)(
|
3377
|
-
() => __spreadValues({
|
3378
|
-
hoveringComponent,
|
3379
|
-
setHoveringComponent,
|
3380
|
-
registerZoneArea,
|
3381
|
-
areasWithZones,
|
3382
|
-
registerZone,
|
3383
|
-
unregisterZone,
|
3384
|
-
activeZones
|
3385
|
-
}, value),
|
3386
|
-
[value, hoveringComponent, areasWithZones, activeZones]
|
3387
|
-
);
|
3388
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, { children: memoValue && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(dropZoneContext.Provider, { value: memoValue, children }) });
|
3389
|
-
};
|
3390
|
-
|
3391
|
-
// lib/insert.ts
|
3392
|
-
init_react_import();
|
3393
|
-
var insert = (list, index, item) => {
|
3394
|
-
const result = Array.from(list);
|
3395
|
-
result.splice(index, 0, item);
|
3396
|
-
return result;
|
3397
|
-
};
|
3398
|
-
|
3399
|
-
// components/DropZone/use-min-empty-height.ts
|
3400
|
-
init_react_import();
|
3401
|
-
var import_react23 = require("react");
|
3402
|
-
var useMinEmptyHeight = ({
|
3403
|
-
draggedItem,
|
3404
|
-
zoneCompound,
|
3405
|
-
userMinEmptyHeight,
|
3406
|
-
ref
|
3407
|
-
}) => {
|
3408
|
-
const [prevHeight, setPrevHeight] = (0, import_react23.useState)(0);
|
3409
|
-
const [isAnimating, setIsAnimating] = (0, import_react23.useState)(false);
|
3410
|
-
(0, import_react23.useEffect)(() => {
|
3411
|
-
if (draggedItem && ref.current) {
|
3412
|
-
const componentData = draggedItem.data;
|
3413
|
-
if (componentData.zone === zoneCompound) {
|
3414
|
-
const rect = ref.current.getBoundingClientRect();
|
3415
|
-
setPrevHeight(rect.height);
|
3416
|
-
setIsAnimating(true);
|
3496
|
+
const [prevHeight, setPrevHeight] = (0, import_react24.useState)(0);
|
3497
|
+
const [isAnimating, setIsAnimating] = (0, import_react24.useState)(false);
|
3498
|
+
const { draggedItem, isZone } = useContextStore(ZoneStoreContext, (s) => {
|
3499
|
+
var _a, _b;
|
3500
|
+
return {
|
3501
|
+
draggedItem: ((_a = s.draggedItem) == null ? void 0 : _a.data.zone) === zoneCompound ? s.draggedItem : null,
|
3502
|
+
isZone: ((_b = s.draggedItem) == null ? void 0 : _b.data.zone) === zoneCompound
|
3503
|
+
};
|
3504
|
+
});
|
3505
|
+
(0, import_react24.useEffect)(() => {
|
3506
|
+
if (draggedItem && ref.current) {
|
3507
|
+
if (isZone) {
|
3508
|
+
const rect = ref.current.getBoundingClientRect();
|
3509
|
+
setPrevHeight(rect.height);
|
3510
|
+
setIsAnimating(true);
|
3417
3511
|
return;
|
3418
3512
|
}
|
3419
3513
|
}
|
@@ -3440,14 +3534,129 @@ function assignRefs(refs, node) {
|
|
3440
3534
|
});
|
3441
3535
|
}
|
3442
3536
|
|
3443
|
-
// components/DropZone/
|
3444
|
-
|
3445
|
-
var
|
3446
|
-
|
3537
|
+
// components/DropZone/lib/use-content-with-preview.ts
|
3538
|
+
init_react_import();
|
3539
|
+
var import_react27 = require("react");
|
3540
|
+
|
3541
|
+
// lib/dnd/use-rendered-callback.ts
|
3542
|
+
init_react_import();
|
3543
|
+
var import_react25 = require("@dnd-kit/react");
|
3544
|
+
var import_react26 = require("react");
|
3545
|
+
function useRenderedCallback(callback, deps) {
|
3546
|
+
const manager = (0, import_react25.useDragDropManager)();
|
3547
|
+
return (0, import_react26.useCallback)(
|
3548
|
+
(...args) => __async(this, null, function* () {
|
3549
|
+
yield manager == null ? void 0 : manager.renderer.rendering;
|
3550
|
+
return callback(...args);
|
3551
|
+
}),
|
3552
|
+
[...deps, manager]
|
3553
|
+
);
|
3554
|
+
}
|
3555
|
+
|
3556
|
+
// lib/insert.ts
|
3557
|
+
init_react_import();
|
3558
|
+
var insert = (list, index, item) => {
|
3559
|
+
const result = Array.from(list);
|
3560
|
+
result.splice(index, 0, item);
|
3561
|
+
return result;
|
3562
|
+
};
|
3563
|
+
|
3564
|
+
// components/DropZone/lib/use-content-with-preview.ts
|
3565
|
+
var useContentWithPreview = (content, zoneCompound) => {
|
3566
|
+
const { draggedItemId, preview, previewExists } = useContextStore(
|
3567
|
+
ZoneStoreContext,
|
3568
|
+
(s) => {
|
3569
|
+
var _a;
|
3570
|
+
return {
|
3571
|
+
draggedItemId: (_a = s.draggedItem) == null ? void 0 : _a.id,
|
3572
|
+
preview: s.previewIndex[zoneCompound],
|
3573
|
+
previewExists: Object.keys(s.previewIndex || {}).length > 0
|
3574
|
+
};
|
3575
|
+
}
|
3576
|
+
);
|
3577
|
+
const [contentWithPreview, setContentWithPreview] = (0, import_react27.useState)(content);
|
3578
|
+
const updateContent = useRenderedCallback(
|
3579
|
+
(content2, preview2) => {
|
3580
|
+
if (preview2) {
|
3581
|
+
if (preview2.type === "insert") {
|
3582
|
+
setContentWithPreview(
|
3583
|
+
insert(
|
3584
|
+
content2.filter((item) => item.props.id !== preview2.props.id),
|
3585
|
+
preview2.index,
|
3586
|
+
{
|
3587
|
+
type: "preview",
|
3588
|
+
props: { id: preview2.props.id }
|
3589
|
+
}
|
3590
|
+
)
|
3591
|
+
);
|
3592
|
+
} else {
|
3593
|
+
setContentWithPreview(
|
3594
|
+
insert(
|
3595
|
+
content2.filter((item) => item.props.id !== preview2.props.id),
|
3596
|
+
preview2.index,
|
3597
|
+
{
|
3598
|
+
type: preview2.componentType,
|
3599
|
+
props: preview2.props
|
3600
|
+
}
|
3601
|
+
)
|
3602
|
+
);
|
3603
|
+
}
|
3604
|
+
} else {
|
3605
|
+
setContentWithPreview(
|
3606
|
+
previewExists ? content2.filter((item) => item.props.id !== draggedItemId) : content2
|
3607
|
+
);
|
3608
|
+
}
|
3609
|
+
},
|
3610
|
+
[draggedItemId, previewExists]
|
3611
|
+
);
|
3612
|
+
(0, import_react27.useEffect)(() => {
|
3613
|
+
updateContent(content, preview);
|
3614
|
+
}, [content, preview]);
|
3615
|
+
return contentWithPreview;
|
3616
|
+
};
|
3617
|
+
|
3618
|
+
// components/DropZone/lib/use-drag-axis.ts
|
3619
|
+
init_react_import();
|
3620
|
+
var import_react28 = require("react");
|
3447
3621
|
var GRID_DRAG_AXIS = "dynamic";
|
3448
3622
|
var FLEX_ROW_DRAG_AXIS = "x";
|
3449
3623
|
var DEFAULT_DRAG_AXIS = "y";
|
3450
|
-
var
|
3624
|
+
var useDragAxis = (ref, collisionAxis) => {
|
3625
|
+
const { status } = useAppContext();
|
3626
|
+
const [dragAxis, setDragAxis] = (0, import_react28.useState)(
|
3627
|
+
collisionAxis || DEFAULT_DRAG_AXIS
|
3628
|
+
);
|
3629
|
+
const calculateDragAxis = (0, import_react28.useCallback)(() => {
|
3630
|
+
if (ref.current) {
|
3631
|
+
const computedStyle = window.getComputedStyle(ref.current);
|
3632
|
+
if (computedStyle.display === "grid") {
|
3633
|
+
setDragAxis(GRID_DRAG_AXIS);
|
3634
|
+
} else if (computedStyle.display === "flex" && computedStyle.flexDirection === "row") {
|
3635
|
+
setDragAxis(FLEX_ROW_DRAG_AXIS);
|
3636
|
+
} else {
|
3637
|
+
setDragAxis(DEFAULT_DRAG_AXIS);
|
3638
|
+
}
|
3639
|
+
}
|
3640
|
+
}, [ref.current]);
|
3641
|
+
(0, import_react28.useEffect)(() => {
|
3642
|
+
const onViewportChange = () => {
|
3643
|
+
calculateDragAxis();
|
3644
|
+
};
|
3645
|
+
window.addEventListener("viewportchange", onViewportChange);
|
3646
|
+
return () => {
|
3647
|
+
window.removeEventListener("viewportchange", onViewportChange);
|
3648
|
+
};
|
3649
|
+
}, []);
|
3650
|
+
(0, import_react28.useEffect)(calculateDragAxis, [status, collisionAxis]);
|
3651
|
+
return [dragAxis, calculateDragAxis];
|
3652
|
+
};
|
3653
|
+
|
3654
|
+
// components/DropZone/index.tsx
|
3655
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
3656
|
+
var getClassName17 = get_class_name_factory_default("DropZone", styles_module_default12);
|
3657
|
+
var getRandomColor = () => `#${Math.floor(Math.random() * 16777215).toString(16)}`;
|
3658
|
+
var RENDER_DEBUG = false;
|
3659
|
+
var DropZoneEdit = (0, import_react29.forwardRef)(
|
3451
3660
|
function DropZoneEdit2({
|
3452
3661
|
zone,
|
3453
3662
|
allow,
|
@@ -3458,31 +3667,50 @@ var DropZoneEdit = (0, import_react24.forwardRef)(
|
|
3458
3667
|
collisionAxis
|
3459
3668
|
}, userRef) {
|
3460
3669
|
const appContext2 = useAppContext();
|
3461
|
-
const ctx = (0,
|
3670
|
+
const ctx = (0, import_react29.useContext)(dropZoneContext);
|
3462
3671
|
const {
|
3463
3672
|
// These all need setting via context
|
3464
3673
|
data,
|
3465
3674
|
config,
|
3466
3675
|
areaId,
|
3467
|
-
draggedItem,
|
3468
3676
|
registerZoneArea,
|
3469
3677
|
depth,
|
3470
3678
|
registerLocalZone,
|
3471
3679
|
unregisterLocalZone,
|
3472
|
-
deepestZone = rootDroppableId,
|
3473
|
-
deepestArea,
|
3474
|
-
nextDeepestArea,
|
3475
3680
|
path = [],
|
3476
3681
|
activeZones
|
3477
3682
|
} = ctx;
|
3478
|
-
const { itemSelector } = appContext2.state.ui;
|
3479
3683
|
let zoneCompound = rootDroppableId;
|
3480
|
-
|
3684
|
+
if (areaId) {
|
3685
|
+
if (zone !== rootDroppableId) {
|
3686
|
+
zoneCompound = `${areaId}:${zone}`;
|
3687
|
+
}
|
3688
|
+
}
|
3689
|
+
const isRootZone = zoneCompound === rootDroppableId || zone === rootDroppableId || areaId === "root";
|
3690
|
+
const {
|
3691
|
+
isDeepestZone,
|
3692
|
+
inNextDeepestArea,
|
3693
|
+
draggedComponentType,
|
3694
|
+
userIsDragging,
|
3695
|
+
preview
|
3696
|
+
} = useContextStore(ZoneStoreContext, (s) => {
|
3697
|
+
var _a, _b, _c;
|
3698
|
+
return {
|
3699
|
+
isDeepestZone: (_a = s.zoneDepthIndex[zoneCompound]) != null ? _a : false,
|
3700
|
+
inNextDeepestArea: s.nextAreaDepthIndex[areaId || ""],
|
3701
|
+
draggedItemId: (_b = s.draggedItem) == null ? void 0 : _b.id,
|
3702
|
+
draggedComponentType: (_c = s.draggedItem) == null ? void 0 : _c.data.componentType,
|
3703
|
+
userIsDragging: !!s.draggedItem,
|
3704
|
+
preview: s.previewIndex[zoneCompound]
|
3705
|
+
};
|
3706
|
+
});
|
3707
|
+
const { itemSelector } = appContext2.state.ui;
|
3708
|
+
(0, import_react29.useEffect)(() => {
|
3481
3709
|
if (areaId && registerZoneArea) {
|
3482
3710
|
registerZoneArea(areaId);
|
3483
3711
|
}
|
3484
3712
|
}, [areaId]);
|
3485
|
-
(0,
|
3713
|
+
(0, import_react29.useEffect)(() => {
|
3486
3714
|
if (ctx == null ? void 0 : ctx.registerZone) {
|
3487
3715
|
ctx == null ? void 0 : ctx.registerZone(zoneCompound);
|
3488
3716
|
}
|
@@ -3492,25 +3720,18 @@ var DropZoneEdit = (0, import_react24.forwardRef)(
|
|
3492
3720
|
}
|
3493
3721
|
};
|
3494
3722
|
}, []);
|
3495
|
-
|
3496
|
-
if (zone !== rootDroppableId) {
|
3497
|
-
zoneCompound = `${areaId}:${zone}`;
|
3498
|
-
}
|
3499
|
-
}
|
3500
|
-
const content = (0, import_react24.useMemo)(() => {
|
3723
|
+
const content = (0, import_react29.useMemo)(() => {
|
3501
3724
|
if (areaId && zone !== rootDroppableId) {
|
3502
3725
|
return setupZone(data, zoneCompound).zones[zoneCompound];
|
3503
3726
|
}
|
3504
3727
|
return data.content || [];
|
3505
3728
|
}, [data, zoneCompound]);
|
3506
|
-
const ref = (0,
|
3507
|
-
const acceptsTarget = (0,
|
3508
|
-
(
|
3509
|
-
if (!
|
3729
|
+
const ref = (0, import_react29.useRef)(null);
|
3730
|
+
const acceptsTarget = (0, import_react29.useCallback)(
|
3731
|
+
(componentType) => {
|
3732
|
+
if (!componentType) {
|
3510
3733
|
return true;
|
3511
3734
|
}
|
3512
|
-
const data2 = target.data;
|
3513
|
-
const { componentType } = data2;
|
3514
3735
|
if (disallow) {
|
3515
3736
|
const defaultedAllow = allow || [];
|
3516
3737
|
const filteredDisallow = (disallow || []).filter(
|
@@ -3528,49 +3749,26 @@ var DropZoneEdit = (0, import_react24.forwardRef)(
|
|
3528
3749
|
},
|
3529
3750
|
[allow, disallow]
|
3530
3751
|
);
|
3531
|
-
(0,
|
3752
|
+
(0, import_react29.useEffect)(() => {
|
3532
3753
|
if (registerLocalZone) {
|
3533
|
-
registerLocalZone(zoneCompound, acceptsTarget(
|
3754
|
+
registerLocalZone(zoneCompound, acceptsTarget(draggedComponentType));
|
3534
3755
|
}
|
3535
3756
|
return () => {
|
3536
3757
|
if (unregisterLocalZone) {
|
3537
3758
|
unregisterLocalZone(zoneCompound);
|
3538
3759
|
}
|
3539
3760
|
};
|
3540
|
-
}, [
|
3541
|
-
const
|
3542
|
-
const hoveringOverArea = nextDeepestArea ? nextDeepestArea === areaId : isRootZone;
|
3543
|
-
const userIsDragging = !!draggedItem;
|
3761
|
+
}, [draggedComponentType, zoneCompound]);
|
3762
|
+
const hoveringOverArea = inNextDeepestArea || isRootZone;
|
3544
3763
|
let isEnabled = true;
|
3545
|
-
if (
|
3546
|
-
isEnabled =
|
3764
|
+
if (userIsDragging) {
|
3765
|
+
isEnabled = isDeepestZone;
|
3547
3766
|
}
|
3548
3767
|
if (isEnabled) {
|
3549
|
-
isEnabled = acceptsTarget(
|
3550
|
-
}
|
3551
|
-
const
|
3552
|
-
const
|
3553
|
-
const contentWithPreview = (0, import_react24.useMemo)(() => {
|
3554
|
-
let contentWithPreview2 = preview ? content.filter((item) => item.props.id !== preview.props.id) : content;
|
3555
|
-
if (previewInZone) {
|
3556
|
-
contentWithPreview2 = content.filter(
|
3557
|
-
(item) => item.props.id !== preview.props.id
|
3558
|
-
);
|
3559
|
-
if (preview.type === "insert") {
|
3560
|
-
contentWithPreview2 = insert(contentWithPreview2, preview.index, {
|
3561
|
-
type: "preview",
|
3562
|
-
props: { id: preview.props.id }
|
3563
|
-
});
|
3564
|
-
} else {
|
3565
|
-
contentWithPreview2 = insert(contentWithPreview2, preview.index, {
|
3566
|
-
type: preview.componentType,
|
3567
|
-
props: preview.props
|
3568
|
-
});
|
3569
|
-
}
|
3570
|
-
}
|
3571
|
-
return contentWithPreview2;
|
3572
|
-
}, [preview, content]);
|
3573
|
-
const isDropEnabled = isEnabled && (previewInZone ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3768
|
+
isEnabled = acceptsTarget(draggedComponentType);
|
3769
|
+
}
|
3770
|
+
const contentWithPreview = useContentWithPreview(content, zoneCompound);
|
3771
|
+
const isDropEnabled = isEnabled && (preview ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3574
3772
|
const droppableConfig = {
|
3575
3773
|
id: zoneCompound,
|
3576
3774
|
collisionPriority: isEnabled ? depth : 0,
|
@@ -3580,45 +3778,20 @@ var DropZoneEdit = (0, import_react24.forwardRef)(
|
|
3580
3778
|
data: {
|
3581
3779
|
areaId,
|
3582
3780
|
depth,
|
3583
|
-
isDroppableTarget: acceptsTarget(
|
3781
|
+
isDroppableTarget: acceptsTarget(draggedComponentType),
|
3584
3782
|
path
|
3585
3783
|
}
|
3586
3784
|
};
|
3587
3785
|
const { ref: dropRef } = useDroppableSafe(droppableConfig);
|
3588
3786
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
3589
3787
|
const isAreaSelected = selectedItem && areaId === selectedItem.props.id;
|
3590
|
-
const [dragAxis
|
3591
|
-
collisionAxis || DEFAULT_DRAG_AXIS
|
3592
|
-
);
|
3593
|
-
const calculateDragAxis = (0, import_react24.useCallback)(() => {
|
3594
|
-
if (ref.current) {
|
3595
|
-
const computedStyle = window.getComputedStyle(ref.current);
|
3596
|
-
if (computedStyle.display === "grid") {
|
3597
|
-
setDragAxis(GRID_DRAG_AXIS);
|
3598
|
-
} else if (computedStyle.display === "flex" && computedStyle.flexDirection === "row") {
|
3599
|
-
setDragAxis(FLEX_ROW_DRAG_AXIS);
|
3600
|
-
} else {
|
3601
|
-
setDragAxis(DEFAULT_DRAG_AXIS);
|
3602
|
-
}
|
3603
|
-
}
|
3604
|
-
}, [ref.current]);
|
3605
|
-
(0, import_react24.useEffect)(calculateDragAxis, [appContext2.status, collisionAxis]);
|
3606
|
-
(0, import_react24.useEffect)(() => {
|
3607
|
-
const onViewportChange = () => {
|
3608
|
-
calculateDragAxis();
|
3609
|
-
};
|
3610
|
-
window.addEventListener("viewportchange", onViewportChange);
|
3611
|
-
return () => {
|
3612
|
-
window.removeEventListener("viewportchange", onViewportChange);
|
3613
|
-
};
|
3614
|
-
}, []);
|
3788
|
+
const [dragAxis] = useDragAxis(ref, collisionAxis);
|
3615
3789
|
const [minEmptyHeight, isAnimating] = useMinEmptyHeight({
|
3616
|
-
draggedItem,
|
3617
3790
|
zoneCompound,
|
3618
3791
|
userMinEmptyHeight,
|
3619
3792
|
ref
|
3620
3793
|
});
|
3621
|
-
return /* @__PURE__ */ (0,
|
3794
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3622
3795
|
"div",
|
3623
3796
|
{
|
3624
3797
|
className: `${getClassName17({
|
@@ -3638,87 +3811,92 @@ var DropZoneEdit = (0, import_react24.forwardRef)(
|
|
3638
3811
|
"data-puck-dropzone": zoneCompound,
|
3639
3812
|
"data-puck-dnd": zoneCompound,
|
3640
3813
|
style: __spreadProps(__spreadValues({}, style), {
|
3641
|
-
"--min-empty-height": `${minEmptyHeight}px
|
3814
|
+
"--min-empty-height": `${minEmptyHeight}px`,
|
3815
|
+
backgroundColor: RENDER_DEBUG ? getRandomColor() : void 0
|
3642
3816
|
}),
|
3643
|
-
children:
|
3644
|
-
|
3645
|
-
|
3646
|
-
|
3647
|
-
|
3648
|
-
|
3649
|
-
|
3650
|
-
|
3651
|
-
|
3652
|
-
|
3653
|
-
|
3654
|
-
|
3817
|
+
children: contentWithPreview.map((item, i) => {
|
3818
|
+
var _a, _b, _c, _d, _e;
|
3819
|
+
const componentId = item.props.id;
|
3820
|
+
const puckProps = {
|
3821
|
+
renderDropZone: DropZone,
|
3822
|
+
isEditing: true,
|
3823
|
+
dragRef: null
|
3824
|
+
};
|
3825
|
+
const defaultedProps = __spreadProps(__spreadValues(__spreadValues({}, (_a = config.components[item.type]) == null ? void 0 : _a.defaultProps), item.props), {
|
3826
|
+
puck: puckProps,
|
3827
|
+
editMode: true
|
3828
|
+
// DEPRECATED
|
3829
|
+
});
|
3830
|
+
const isSelected = (selectedItem == null ? void 0 : selectedItem.props.id) === componentId || false;
|
3831
|
+
let Render2 = config.components[item.type] && item.type !== "preview" ? config.components[item.type].render : () => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { style: { padding: 48, textAlign: "center" }, children: [
|
3832
|
+
"No configuration for ",
|
3833
|
+
item.type
|
3834
|
+
] });
|
3835
|
+
const componentConfig = config.components[item.type];
|
3836
|
+
let componentType = item.type;
|
3837
|
+
let label = (_b = componentConfig == null ? void 0 : componentConfig["label"]) != null ? _b : item.type.toString();
|
3838
|
+
if (item.type === "preview" && preview) {
|
3839
|
+
let Preview4 = function() {
|
3840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DrawerItemInner, { name: label, children: appContext2.overrides.componentItem });
|
3655
3841
|
};
|
3656
|
-
|
3657
|
-
|
3658
|
-
|
3659
|
-
|
3660
|
-
|
3661
|
-
|
3662
|
-
|
3663
|
-
|
3664
|
-
|
3665
|
-
|
3666
|
-
|
3667
|
-
|
3668
|
-
|
3669
|
-
|
3670
|
-
|
3671
|
-
|
3672
|
-
|
3673
|
-
|
3674
|
-
|
3675
|
-
|
3676
|
-
|
3677
|
-
|
3678
|
-
|
3679
|
-
|
3680
|
-
|
3681
|
-
|
3682
|
-
|
3683
|
-
|
3684
|
-
|
3685
|
-
id: componentId,
|
3686
|
-
componentType,
|
3687
|
-
zoneCompound,
|
3688
|
-
depth: depth + 1,
|
3689
|
-
index: i,
|
3690
|
-
isLoading: ((_e = appContext2.componentState[componentId]) == null ? void 0 : _e.loadingCount) > 0,
|
3691
|
-
isSelected,
|
3692
|
-
label,
|
3693
|
-
isEnabled,
|
3694
|
-
autoDragAxis: dragAxis,
|
3695
|
-
userDragAxis: collisionAxis,
|
3696
|
-
inDroppableZone: acceptsTarget(draggedItem),
|
3697
|
-
children: (dragRef) => (componentConfig == null ? void 0 : componentConfig.inline) ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
3698
|
-
Render2,
|
3699
|
-
__spreadProps(__spreadValues({}, defaultedProps), {
|
3700
|
-
puck: __spreadProps(__spreadValues({}, defaultedProps.puck), {
|
3701
|
-
dragRef
|
3702
|
-
})
|
3842
|
+
var Preview3 = Preview4;
|
3843
|
+
componentType = preview.componentType;
|
3844
|
+
label = (_d = (_c = config.components[componentType]) == null ? void 0 : _c.label) != null ? _d : preview.componentType;
|
3845
|
+
Render2 = Preview4;
|
3846
|
+
}
|
3847
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3848
|
+
DropZoneProvider,
|
3849
|
+
{
|
3850
|
+
value: __spreadProps(__spreadValues({}, ctx), { path: [...path, zoneCompound] }),
|
3851
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3852
|
+
DraggableComponent,
|
3853
|
+
{
|
3854
|
+
id: componentId,
|
3855
|
+
componentType,
|
3856
|
+
zoneCompound,
|
3857
|
+
depth: depth + 1,
|
3858
|
+
index: i,
|
3859
|
+
isLoading: ((_e = appContext2.componentState[componentId]) == null ? void 0 : _e.loadingCount) > 0,
|
3860
|
+
isSelected,
|
3861
|
+
label,
|
3862
|
+
isEnabled,
|
3863
|
+
autoDragAxis: dragAxis,
|
3864
|
+
userDragAxis: collisionAxis,
|
3865
|
+
inDroppableZone: acceptsTarget(draggedComponentType),
|
3866
|
+
children: (dragRef) => (componentConfig == null ? void 0 : componentConfig.inline) ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3867
|
+
Render2,
|
3868
|
+
__spreadProps(__spreadValues({}, defaultedProps), {
|
3869
|
+
puck: __spreadProps(__spreadValues({}, defaultedProps.puck), {
|
3870
|
+
dragRef
|
3703
3871
|
})
|
3704
|
-
|
3705
|
-
}
|
3706
|
-
|
3707
|
-
|
3708
|
-
|
3709
|
-
|
3710
|
-
|
3711
|
-
|
3872
|
+
})
|
3873
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref: dragRef, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Render2, __spreadValues({}, defaultedProps)) })
|
3874
|
+
}
|
3875
|
+
)
|
3876
|
+
},
|
3877
|
+
componentId
|
3878
|
+
);
|
3879
|
+
})
|
3712
3880
|
}
|
3713
3881
|
);
|
3714
3882
|
}
|
3715
3883
|
);
|
3716
|
-
var DropZoneRender = (0,
|
3884
|
+
var DropZoneRender = (0, import_react29.forwardRef)(
|
3717
3885
|
function DropZoneRender2({ className, style, zone }, ref) {
|
3718
|
-
const ctx = (0,
|
3886
|
+
const ctx = (0, import_react29.useContext)(dropZoneContext);
|
3719
3887
|
const { data, areaId = "root", config } = ctx || {};
|
3720
3888
|
let zoneCompound = rootDroppableId;
|
3721
3889
|
let content = (data == null ? void 0 : data.content) || [];
|
3890
|
+
(0, import_react29.useEffect)(() => {
|
3891
|
+
if (ctx == null ? void 0 : ctx.registerZone) {
|
3892
|
+
ctx == null ? void 0 : ctx.registerZone(zoneCompound);
|
3893
|
+
}
|
3894
|
+
return () => {
|
3895
|
+
if (ctx == null ? void 0 : ctx.unregisterZone) {
|
3896
|
+
ctx == null ? void 0 : ctx.unregisterZone(zoneCompound);
|
3897
|
+
}
|
3898
|
+
};
|
3899
|
+
}, []);
|
3722
3900
|
if (!data || !config) {
|
3723
3901
|
return null;
|
3724
3902
|
}
|
@@ -3726,10 +3904,10 @@ var DropZoneRender = (0, import_react24.forwardRef)(
|
|
3726
3904
|
zoneCompound = `${areaId}:${zone}`;
|
3727
3905
|
content = setupZone(data, zoneCompound).zones[zoneCompound];
|
3728
3906
|
}
|
3729
|
-
return /* @__PURE__ */ (0,
|
3907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className, style, ref, children: content.map((item) => {
|
3730
3908
|
const Component = config.components[item.type];
|
3731
3909
|
if (Component) {
|
3732
|
-
return /* @__PURE__ */ (0,
|
3910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3733
3911
|
DropZoneProvider,
|
3734
3912
|
{
|
3735
3913
|
value: {
|
@@ -3739,7 +3917,7 @@ var DropZoneRender = (0, import_react24.forwardRef)(
|
|
3739
3917
|
depth: 1,
|
3740
3918
|
path: []
|
3741
3919
|
},
|
3742
|
-
children: /* @__PURE__ */ (0,
|
3920
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3743
3921
|
Component.render,
|
3744
3922
|
__spreadProps(__spreadValues({}, item.props), {
|
3745
3923
|
puck: { renderDropZone: DropZoneRender2 }
|
@@ -3753,13 +3931,13 @@ var DropZoneRender = (0, import_react24.forwardRef)(
|
|
3753
3931
|
}) });
|
3754
3932
|
}
|
3755
3933
|
);
|
3756
|
-
var DropZone = (0,
|
3934
|
+
var DropZone = (0, import_react29.forwardRef)(
|
3757
3935
|
function DropZone2(props, ref) {
|
3758
|
-
const ctx = (0,
|
3936
|
+
const ctx = (0, import_react29.useContext)(dropZoneContext);
|
3759
3937
|
if ((ctx == null ? void 0 : ctx.mode) === "edit") {
|
3760
|
-
return /* @__PURE__ */ (0,
|
3938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneEdit, __spreadProps(__spreadValues({}, props), { ref })) });
|
3761
3939
|
}
|
3762
|
-
return /* @__PURE__ */ (0,
|
3940
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_jsx_runtime22.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneRender, __spreadProps(__spreadValues({}, props), { ref })) });
|
3763
3941
|
}
|
3764
3942
|
);
|
3765
3943
|
|
@@ -3775,7 +3953,7 @@ var getZoneId = (zoneCompound) => {
|
|
3775
3953
|
return [rootDroppableId, zoneCompound];
|
3776
3954
|
};
|
3777
3955
|
|
3778
|
-
//
|
3956
|
+
// lib/dnd/NestedDroppablePlugin.ts
|
3779
3957
|
init_react_import();
|
3780
3958
|
var import_abstract9 = require("@dnd-kit/abstract");
|
3781
3959
|
var import_state = require("@dnd-kit/state");
|
@@ -3817,7 +3995,7 @@ var getFrame = () => {
|
|
3817
3995
|
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
3818
3996
|
};
|
3819
3997
|
|
3820
|
-
//
|
3998
|
+
// lib/dnd/NestedDroppablePlugin.ts
|
3821
3999
|
var depthSort = (candidates) => {
|
3822
4000
|
return candidates.sort((a, b) => {
|
3823
4001
|
const aData = a.data;
|
@@ -3932,9 +4110,7 @@ var findDeepestCandidate = (position, manager, ownerDocument) => {
|
|
3932
4110
|
area: null
|
3933
4111
|
};
|
3934
4112
|
};
|
3935
|
-
var createNestedDroppablePlugin = ({
|
3936
|
-
onChange
|
3937
|
-
}) => class NestedDroppablePlugin extends import_abstract9.Plugin {
|
4113
|
+
var createNestedDroppablePlugin = ({ onChange }, id) => class NestedDroppablePlugin extends import_abstract9.Plugin {
|
3938
4114
|
constructor(manager, options) {
|
3939
4115
|
super(manager);
|
3940
4116
|
if (typeof window === "undefined") {
|
@@ -3948,10 +4124,17 @@ var createNestedDroppablePlugin = ({
|
|
3948
4124
|
};
|
3949
4125
|
const target = event.originalTarget || event.target;
|
3950
4126
|
const ownerDocument = target == null ? void 0 : target.ownerDocument;
|
3951
|
-
|
3952
|
-
|
3953
|
-
|
4127
|
+
const elements = document.elementsFromPoint(
|
4128
|
+
event.clientX,
|
4129
|
+
event.clientY
|
3954
4130
|
);
|
4131
|
+
const overEl = elements.some((el) => el.id === id);
|
4132
|
+
if (overEl) {
|
4133
|
+
onChange(
|
4134
|
+
findDeepestCandidate(position, manager, ownerDocument),
|
4135
|
+
manager
|
4136
|
+
);
|
4137
|
+
}
|
3955
4138
|
};
|
3956
4139
|
const handleMoveThrottled = throttle(handleMove, 50);
|
3957
4140
|
const handlePointerMove = (event) => {
|
@@ -4368,7 +4551,7 @@ var insertComponent = (componentType, zone, index, {
|
|
4368
4551
|
var import_use_debounce2 = require("use-debounce");
|
4369
4552
|
var import_utilities2 = require("@dnd-kit/dom/utilities");
|
4370
4553
|
|
4371
|
-
//
|
4554
|
+
// lib/dnd/PointerSensor.ts
|
4372
4555
|
init_react_import();
|
4373
4556
|
var import_state3 = require("@dnd-kit/state");
|
4374
4557
|
var import_abstract10 = require("@dnd-kit/abstract");
|
@@ -4630,13 +4813,15 @@ function patchWindow(window2) {
|
|
4630
4813
|
}
|
4631
4814
|
|
4632
4815
|
// components/DragDropContext/index.tsx
|
4633
|
-
var
|
4634
|
-
var
|
4816
|
+
var import_zustand3 = require("zustand");
|
4817
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
4818
|
+
var DEBUG3 = false;
|
4819
|
+
var dragListenerContext = (0, import_react31.createContext)({
|
4635
4820
|
dragListeners: {}
|
4636
4821
|
});
|
4637
4822
|
function useDragListener(type, fn, deps = []) {
|
4638
|
-
const { setDragListeners } = (0,
|
4639
|
-
(0,
|
4823
|
+
const { setDragListeners } = (0, import_react31.useContext)(dragListenerContext);
|
4824
|
+
(0, import_react31.useEffect)(() => {
|
4640
4825
|
if (setDragListeners) {
|
4641
4826
|
setDragListeners((old) => __spreadProps(__spreadValues({}, old), {
|
4642
4827
|
[type]: [...old[type] || [], fn]
|
@@ -4644,80 +4829,147 @@ function useDragListener(type, fn, deps = []) {
|
|
4644
4829
|
}
|
4645
4830
|
}, deps);
|
4646
4831
|
}
|
4647
|
-
var previewContext = (0, import_react26.createContext)(null);
|
4648
4832
|
var AREA_CHANGE_DEBOUNCE_MS = 100;
|
4833
|
+
var useTempDisableFallback = (timeout3) => {
|
4834
|
+
const lastFallbackDisable = (0, import_react31.useRef)(null);
|
4835
|
+
return (0, import_react31.useCallback)((manager) => {
|
4836
|
+
collisionStore.setState({ fallbackEnabled: false });
|
4837
|
+
const fallbackId = generateId();
|
4838
|
+
lastFallbackDisable.current = fallbackId;
|
4839
|
+
setTimeout(() => {
|
4840
|
+
if (lastFallbackDisable.current === fallbackId) {
|
4841
|
+
collisionStore.setState({ fallbackEnabled: true });
|
4842
|
+
manager.collisionObserver.forceUpdate(true);
|
4843
|
+
}
|
4844
|
+
}, timeout3);
|
4845
|
+
}, []);
|
4846
|
+
};
|
4649
4847
|
var DragDropContextClient = ({
|
4650
4848
|
children,
|
4651
4849
|
disableAutoScroll
|
4652
4850
|
}) => {
|
4653
4851
|
const { state, config, dispatch, resolveData } = useAppContext();
|
4654
|
-
const
|
4655
|
-
const previewRef = (0, import_react26.useRef)(null);
|
4852
|
+
const id = (0, import_react31.useId)();
|
4656
4853
|
const { data } = state;
|
4657
|
-
const
|
4658
|
-
const
|
4659
|
-
const
|
4660
|
-
|
4661
|
-
|
4854
|
+
const debouncedParamsRef = (0, import_react31.useRef)(null);
|
4855
|
+
const tempDisableFallback = useTempDisableFallback(100);
|
4856
|
+
const [zoneStore] = (0, import_react31.useState)(
|
4857
|
+
() => (0, import_zustand3.createStore)(() => ({
|
4858
|
+
zoneDepthIndex: {},
|
4859
|
+
nextZoneDepthIndex: {},
|
4860
|
+
areaDepthIndex: {},
|
4861
|
+
nextAreaDepthIndex: {},
|
4862
|
+
draggedItem: null,
|
4863
|
+
previewIndex: {}
|
4864
|
+
}))
|
4865
|
+
);
|
4866
|
+
const getChanged2 = (0, import_react31.useCallback)(
|
4867
|
+
(params, id2) => {
|
4868
|
+
const { zoneDepthIndex = {}, areaDepthIndex = {} } = zoneStore.getState() || {};
|
4869
|
+
const stateHasZone = Object.keys(zoneDepthIndex).length > 0;
|
4870
|
+
const stateHasArea = Object.keys(areaDepthIndex).length > 0;
|
4871
|
+
let zoneChanged = false;
|
4872
|
+
let areaChanged = false;
|
4873
|
+
if (params.zone && !zoneDepthIndex[params.zone]) {
|
4874
|
+
zoneChanged = true;
|
4875
|
+
} else if (!params.zone && stateHasZone) {
|
4876
|
+
zoneChanged = true;
|
4877
|
+
}
|
4878
|
+
if (params.area && !areaDepthIndex[params.area]) {
|
4879
|
+
areaChanged = true;
|
4880
|
+
} else if (!params.area && stateHasArea) {
|
4881
|
+
areaChanged = true;
|
4882
|
+
}
|
4883
|
+
return { zoneChanged, areaChanged };
|
4884
|
+
},
|
4885
|
+
[zoneStore]
|
4886
|
+
);
|
4887
|
+
const setDeepestAndCollide = (0, import_react31.useCallback)(
|
4662
4888
|
(params, manager) => {
|
4663
|
-
|
4889
|
+
const { zoneChanged, areaChanged } = getChanged2(params, id);
|
4890
|
+
if (!zoneChanged && !areaChanged) return;
|
4891
|
+
zoneStore.setState({
|
4892
|
+
zoneDepthIndex: params.zone ? { [params.zone]: true } : {},
|
4893
|
+
areaDepthIndex: params.area ? { [params.area]: true } : {}
|
4894
|
+
});
|
4895
|
+
tempDisableFallback(manager);
|
4664
4896
|
setTimeout(() => {
|
4665
4897
|
manager.collisionObserver.forceUpdate(true);
|
4666
4898
|
}, 50);
|
4667
4899
|
debouncedParamsRef.current = null;
|
4668
4900
|
},
|
4669
|
-
[]
|
4901
|
+
[zoneStore]
|
4670
4902
|
);
|
4671
4903
|
const setDeepestDb = (0, import_use_debounce2.useDebouncedCallback)(
|
4672
4904
|
setDeepestAndCollide,
|
4673
4905
|
AREA_CHANGE_DEBOUNCE_MS
|
4674
4906
|
);
|
4675
|
-
(0, import_react26.useEffect)(() => {
|
4676
|
-
deepestRef.current = deepest;
|
4677
|
-
}, [deepest]);
|
4678
4907
|
const cancelDb = () => {
|
4679
4908
|
setDeepestDb.cancel();
|
4680
4909
|
debouncedParamsRef.current = null;
|
4681
4910
|
};
|
4682
|
-
|
4683
|
-
|
4684
|
-
|
4685
|
-
|
4686
|
-
|
4687
|
-
|
4688
|
-
|
4689
|
-
|
4690
|
-
|
4691
|
-
|
4692
|
-
}
|
4693
|
-
if (params.zone !== "void" && (lastParams == null ? void 0 : lastParams.zone) === "void") {
|
4694
|
-
setDeepest(params);
|
4695
|
-
manager.collisionObserver.forceUpdate(true);
|
4696
|
-
return;
|
4911
|
+
(0, import_react31.useEffect)(() => {
|
4912
|
+
if (DEBUG3) {
|
4913
|
+
zoneStore.subscribe(
|
4914
|
+
(s) => {
|
4915
|
+
var _a, _b;
|
4916
|
+
return console.log(
|
4917
|
+
s.previewIndex,
|
4918
|
+
(_a = Object.entries(s.zoneDepthIndex || {})[0]) == null ? void 0 : _a[0],
|
4919
|
+
(_b = Object.entries(s.areaDepthIndex || {})[0]) == null ? void 0 : _b[0]
|
4920
|
+
);
|
4697
4921
|
}
|
4698
|
-
|
4699
|
-
|
4700
|
-
|
4701
|
-
|
4702
|
-
|
4922
|
+
);
|
4923
|
+
}
|
4924
|
+
}, []);
|
4925
|
+
const [plugins] = (0, import_react31.useState)(() => [
|
4926
|
+
...disableAutoScroll ? import_dom.defaultPreset.plugins.filter((plugin) => plugin !== import_dom.AutoScroller) : import_dom.defaultPreset.plugins,
|
4927
|
+
createNestedDroppablePlugin(
|
4928
|
+
{
|
4929
|
+
onChange: (params, manager) => {
|
4930
|
+
const state2 = zoneStore.getState();
|
4931
|
+
const { zoneChanged, areaChanged } = getChanged2(params, id);
|
4932
|
+
const isDragging = manager.dragOperation.status.dragging;
|
4933
|
+
if (areaChanged || zoneChanged) {
|
4934
|
+
let nextZoneDepthIndex = {};
|
4935
|
+
let nextAreaDepthIndex = {};
|
4936
|
+
if (params.zone) {
|
4937
|
+
nextZoneDepthIndex = { [params.zone]: true };
|
4938
|
+
}
|
4939
|
+
if (params.area) {
|
4940
|
+
nextAreaDepthIndex = { [params.area]: true };
|
4941
|
+
}
|
4942
|
+
zoneStore.setState({ nextZoneDepthIndex, nextAreaDepthIndex });
|
4943
|
+
}
|
4944
|
+
if (params.zone !== "void" && (state2 == null ? void 0 : state2.zoneDepthIndex["void"])) {
|
4945
|
+
setDeepestAndCollide(params, manager);
|
4946
|
+
return;
|
4947
|
+
}
|
4948
|
+
if (areaChanged) {
|
4949
|
+
if (isDragging) {
|
4950
|
+
const debouncedParams = debouncedParamsRef.current;
|
4951
|
+
const isSameParams = debouncedParams && debouncedParams.area === params.area && debouncedParams.zone === params.zone;
|
4952
|
+
if (!isSameParams) {
|
4953
|
+
cancelDb();
|
4954
|
+
setDeepestDb(params, manager);
|
4955
|
+
debouncedParamsRef.current = params;
|
4956
|
+
}
|
4957
|
+
} else {
|
4703
4958
|
cancelDb();
|
4704
|
-
|
4705
|
-
debouncedParamsRef.current = params;
|
4959
|
+
setDeepestAndCollide(params, manager);
|
4706
4960
|
}
|
4707
|
-
|
4708
|
-
|
4961
|
+
return;
|
4962
|
+
}
|
4963
|
+
if (zoneChanged) {
|
4709
4964
|
setDeepestAndCollide(params, manager);
|
4710
4965
|
}
|
4711
|
-
|
4712
|
-
}
|
4713
|
-
if (zoneChanged) {
|
4714
|
-
setDeepestAndCollide(params, manager);
|
4966
|
+
cancelDb();
|
4715
4967
|
}
|
4716
|
-
|
4717
|
-
|
4718
|
-
|
4968
|
+
},
|
4969
|
+
id
|
4970
|
+
)
|
4719
4971
|
]);
|
4720
|
-
const [sensors] = (0,
|
4972
|
+
const [sensors] = (0, import_react31.useState)(() => [
|
4721
4973
|
PointerSensor.configure({
|
4722
4974
|
activationConstraints(event, source) {
|
4723
4975
|
var _a;
|
@@ -4736,11 +4988,10 @@ var DragDropContextClient = ({
|
|
4736
4988
|
}
|
4737
4989
|
})
|
4738
4990
|
]);
|
4739
|
-
const [
|
4740
|
-
const [
|
4741
|
-
const
|
4742
|
-
const
|
4743
|
-
const registerPath = (0, import_react26.useCallback)(
|
4991
|
+
const [dragListeners, setDragListeners] = (0, import_react31.useState)({});
|
4992
|
+
const [pathData, setPathData] = (0, import_react31.useState)();
|
4993
|
+
const dragMode = (0, import_react31.useRef)(null);
|
4994
|
+
const registerPath = (0, import_react31.useCallback)(
|
4744
4995
|
(selector) => {
|
4745
4996
|
const item = getItem(selector, data);
|
4746
4997
|
if (!item) {
|
@@ -4762,41 +5013,41 @@ var DragDropContextClient = ({
|
|
4762
5013
|
},
|
4763
5014
|
[data, setPathData]
|
4764
5015
|
);
|
4765
|
-
const initialSelector = (0,
|
4766
|
-
return /* @__PURE__ */ (0,
|
5016
|
+
const initialSelector = (0, import_react31.useRef)(void 0);
|
5017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { id, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
4767
5018
|
dragListenerContext.Provider,
|
4768
5019
|
{
|
4769
5020
|
value: {
|
4770
5021
|
dragListeners,
|
4771
5022
|
setDragListeners
|
4772
5023
|
},
|
4773
|
-
children: /* @__PURE__ */ (0,
|
4774
|
-
|
5024
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
5025
|
+
import_react30.DragDropProvider,
|
4775
5026
|
{
|
4776
5027
|
plugins,
|
4777
5028
|
sensors,
|
4778
5029
|
onDragEnd: (event, manager) => {
|
5030
|
+
var _a;
|
4779
5031
|
const { source, target } = event.operation;
|
4780
|
-
deepestRef.current = null;
|
4781
5032
|
if (!source) {
|
4782
|
-
|
5033
|
+
zoneStore.setState({ draggedItem: null });
|
4783
5034
|
return;
|
4784
5035
|
}
|
4785
5036
|
const { zone, index } = source.data;
|
4786
|
-
const
|
4787
|
-
|
5037
|
+
const { previewIndex = {} } = zoneStore.getState() || {};
|
5038
|
+
const thisPreview = ((_a = previewIndex[zone]) == null ? void 0 : _a.props.id) === source.id ? previewIndex[zone] : null;
|
4788
5039
|
setTimeout(() => {
|
4789
|
-
var
|
4790
|
-
|
5040
|
+
var _a2, _b;
|
5041
|
+
zoneStore.setState({ draggedItem: null });
|
4791
5042
|
if (event.canceled || (target == null ? void 0 : target.type) === "void") {
|
4792
|
-
|
4793
|
-
(
|
5043
|
+
zoneStore.setState({ previewIndex: {} });
|
5044
|
+
(_a2 = dragListeners.dragend) == null ? void 0 : _a2.forEach((fn) => {
|
4794
5045
|
fn(event, manager);
|
4795
5046
|
});
|
4796
5047
|
return;
|
4797
5048
|
}
|
4798
5049
|
if (thisPreview) {
|
4799
|
-
|
5050
|
+
zoneStore.setState({ previewIndex: {} });
|
4800
5051
|
if (thisPreview.type === "insert") {
|
4801
5052
|
insertComponent(
|
4802
5053
|
thisPreview.componentType,
|
@@ -4831,8 +5082,9 @@ var DragDropContextClient = ({
|
|
4831
5082
|
}, 250);
|
4832
5083
|
},
|
4833
5084
|
onDragOver: (event, manager) => {
|
4834
|
-
var _a, _b, _c, _d;
|
5085
|
+
var _a, _b, _c, _d, _e;
|
4835
5086
|
event.preventDefault();
|
5087
|
+
const draggedItem = (_a = zoneStore.getState()) == null ? void 0 : _a.draggedItem;
|
4836
5088
|
if (!draggedItem) return;
|
4837
5089
|
cancelDb();
|
4838
5090
|
const { source, target } = event.operation;
|
@@ -4848,7 +5100,7 @@ var DragDropContextClient = ({
|
|
4848
5100
|
const targetData = target.data;
|
4849
5101
|
targetZone = targetData.zone;
|
4850
5102
|
targetIndex = targetData.index;
|
4851
|
-
const collisionData = (
|
5103
|
+
const collisionData = (_c = (_b = manager.dragOperation.data) == null ? void 0 : _b.collisionMap) == null ? void 0 : _c[targetId];
|
4852
5104
|
const collisionPosition = (collisionData == null ? void 0 : collisionData.direction) === "up" || (collisionData == null ? void 0 : collisionData.direction) === "left" ? "before" : "after";
|
4853
5105
|
if (targetIndex >= sourceIndex && sourceZone === targetZone) {
|
4854
5106
|
targetIndex = targetIndex - 1;
|
@@ -4860,23 +5112,26 @@ var DragDropContextClient = ({
|
|
4860
5112
|
targetZone = target.id.toString();
|
4861
5113
|
targetIndex = 0;
|
4862
5114
|
}
|
4863
|
-
if (targetId === sourceId || ((
|
5115
|
+
if (targetId === sourceId || ((_d = pathData == null ? void 0 : pathData[target.id]) == null ? void 0 : _d.path.find((path) => {
|
4864
5116
|
const [pathId] = path.split(":");
|
4865
5117
|
return pathId === sourceId;
|
4866
5118
|
}))) {
|
4867
5119
|
return;
|
4868
5120
|
}
|
4869
5121
|
if (dragMode.current === "new") {
|
4870
|
-
|
4871
|
-
|
4872
|
-
|
4873
|
-
|
4874
|
-
|
4875
|
-
|
4876
|
-
|
5122
|
+
zoneStore.setState({
|
5123
|
+
previewIndex: {
|
5124
|
+
[targetZone]: {
|
5125
|
+
componentType: sourceData.componentType,
|
5126
|
+
type: "insert",
|
5127
|
+
index: targetIndex,
|
5128
|
+
zone: targetZone,
|
5129
|
+
props: {
|
5130
|
+
id: source.id.toString()
|
5131
|
+
}
|
5132
|
+
}
|
4877
5133
|
}
|
4878
|
-
};
|
4879
|
-
setPreview(previewRef.current);
|
5134
|
+
});
|
4880
5135
|
} else {
|
4881
5136
|
if (!initialSelector.current) {
|
4882
5137
|
initialSelector.current = {
|
@@ -4886,17 +5141,20 @@ var DragDropContextClient = ({
|
|
4886
5141
|
}
|
4887
5142
|
const item = getItem(initialSelector.current, data);
|
4888
5143
|
if (item) {
|
4889
|
-
|
4890
|
-
|
4891
|
-
|
4892
|
-
|
4893
|
-
|
4894
|
-
|
4895
|
-
|
4896
|
-
|
5144
|
+
zoneStore.setState({
|
5145
|
+
previewIndex: {
|
5146
|
+
[targetZone]: {
|
5147
|
+
componentType: sourceData.componentType,
|
5148
|
+
type: "move",
|
5149
|
+
index: targetIndex,
|
5150
|
+
zone: targetZone,
|
5151
|
+
props: item.props
|
5152
|
+
}
|
5153
|
+
}
|
5154
|
+
});
|
4897
5155
|
}
|
4898
5156
|
}
|
4899
|
-
(
|
5157
|
+
(_e = dragListeners.dragover) == null ? void 0 : _e.forEach((fn) => {
|
4900
5158
|
fn(event, manager);
|
4901
5159
|
});
|
4902
5160
|
},
|
@@ -4906,46 +5164,61 @@ var DragDropContextClient = ({
|
|
4906
5164
|
type: "setUi",
|
4907
5165
|
ui: { itemSelector: null, isDragging: true }
|
4908
5166
|
});
|
5167
|
+
const { source } = event.operation;
|
5168
|
+
if (source && source.type !== "void") {
|
5169
|
+
const sourceData = source.data;
|
5170
|
+
const item = getItem(
|
5171
|
+
{
|
5172
|
+
zone: sourceData.zone,
|
5173
|
+
index: sourceData.index
|
5174
|
+
},
|
5175
|
+
data
|
5176
|
+
);
|
5177
|
+
if (item) {
|
5178
|
+
zoneStore.setState({
|
5179
|
+
previewIndex: {
|
5180
|
+
[sourceData.zone]: {
|
5181
|
+
componentType: sourceData.componentType,
|
5182
|
+
type: "move",
|
5183
|
+
index: sourceData.index,
|
5184
|
+
zone: sourceData.zone,
|
5185
|
+
props: item.props
|
5186
|
+
}
|
5187
|
+
}
|
5188
|
+
});
|
5189
|
+
}
|
5190
|
+
}
|
4909
5191
|
(_a = dragListeners.dragstart) == null ? void 0 : _a.forEach((fn) => {
|
4910
5192
|
fn(event, manager);
|
4911
5193
|
});
|
4912
5194
|
},
|
4913
5195
|
onBeforeDragStart: (event) => {
|
4914
5196
|
var _a;
|
4915
|
-
if (draggedItem) {
|
4916
|
-
console.warn("New drag started before previous drag cleaned up");
|
4917
|
-
}
|
4918
5197
|
const isNewComponent = ((_a = event.operation.source) == null ? void 0 : _a.data.type) === "drawer";
|
4919
5198
|
dragMode.current = isNewComponent ? "new" : "existing";
|
4920
5199
|
initialSelector.current = void 0;
|
4921
|
-
|
5200
|
+
zoneStore.setState({ draggedItem: event.operation.source });
|
4922
5201
|
},
|
4923
|
-
children: /* @__PURE__ */ (0,
|
5202
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ZoneStoreProvider, { store: zoneStore, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
4924
5203
|
DropZoneProvider,
|
4925
5204
|
{
|
4926
5205
|
value: {
|
4927
5206
|
data,
|
4928
5207
|
config,
|
4929
|
-
dispatch,
|
4930
|
-
draggedItem,
|
4931
5208
|
mode: "edit",
|
4932
5209
|
areaId: "root",
|
4933
5210
|
depth: 0,
|
4934
5211
|
registerPath,
|
4935
5212
|
pathData,
|
4936
|
-
deepestZone: deepest == null ? void 0 : deepest.zone,
|
4937
|
-
deepestArea: deepest == null ? void 0 : deepest.area,
|
4938
|
-
nextDeepestZone: nextDeepest == null ? void 0 : nextDeepest.zone,
|
4939
|
-
nextDeepestArea: nextDeepest == null ? void 0 : nextDeepest.area,
|
4940
5213
|
path: []
|
4941
5214
|
},
|
4942
5215
|
children
|
4943
5216
|
}
|
4944
|
-
)
|
5217
|
+
) })
|
4945
5218
|
}
|
4946
|
-
)
|
5219
|
+
)
|
4947
5220
|
}
|
4948
|
-
);
|
5221
|
+
) });
|
4949
5222
|
};
|
4950
5223
|
var DragDropContext = ({
|
4951
5224
|
children,
|
@@ -4955,11 +5228,11 @@ var DragDropContext = ({
|
|
4955
5228
|
if (status === "LOADING") {
|
4956
5229
|
return children;
|
4957
5230
|
}
|
4958
|
-
return /* @__PURE__ */ (0,
|
5231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DragDropContextClient, { disableAutoScroll, children });
|
4959
5232
|
};
|
4960
5233
|
|
4961
5234
|
// components/Drawer/index.tsx
|
4962
|
-
var
|
5235
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
4963
5236
|
var getClassName18 = get_class_name_factory_default("Drawer", styles_module_default10);
|
4964
5237
|
var getClassNameItem2 = get_class_name_factory_default("DrawerItem", styles_module_default10);
|
4965
5238
|
var DrawerItemInner = ({
|
@@ -4969,11 +5242,11 @@ var DrawerItemInner = ({
|
|
4969
5242
|
dragRef,
|
4970
5243
|
isDragDisabled
|
4971
5244
|
}) => {
|
4972
|
-
const CustomInner = (0,
|
4973
|
-
() => children || (({ children: children2 }) => /* @__PURE__ */ (0,
|
5245
|
+
const CustomInner = (0, import_react32.useMemo)(
|
5246
|
+
() => children || (({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassNameItem2("default"), children: children2 })),
|
4974
5247
|
[children]
|
4975
5248
|
);
|
4976
|
-
return /* @__PURE__ */ (0,
|
5249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
4977
5250
|
"div",
|
4978
5251
|
{
|
4979
5252
|
className: getClassNameItem2({ disabled: isDragDisabled }),
|
@@ -4981,9 +5254,9 @@ var DrawerItemInner = ({
|
|
4981
5254
|
onMouseDown: (e) => e.preventDefault(),
|
4982
5255
|
"data-testid": dragRef ? `drawer-item:${name}` : "",
|
4983
5256
|
"data-puck-drawer-item": true,
|
4984
|
-
children: /* @__PURE__ */ (0,
|
4985
|
-
/* @__PURE__ */ (0,
|
4986
|
-
/* @__PURE__ */ (0,
|
5257
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(CustomInner, { name, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassNameItem2("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassNameItem2("draggable"), children: [
|
5258
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassNameItem2("name"), children: label != null ? label : name }),
|
5259
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassNameItem2("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DragIcon, {}) })
|
4987
5260
|
] }) }) })
|
4988
5261
|
}
|
4989
5262
|
);
|
@@ -5000,9 +5273,9 @@ var DrawerItemDraggable = ({
|
|
5000
5273
|
data: { type: "drawer", componentType: name },
|
5001
5274
|
disabled: isDragDisabled
|
5002
5275
|
});
|
5003
|
-
return /* @__PURE__ */ (0,
|
5004
|
-
/* @__PURE__ */ (0,
|
5005
|
-
/* @__PURE__ */ (0,
|
5276
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("draggable"), children: [
|
5277
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("draggableBg"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DrawerItemInner, { name, label, children }) }),
|
5278
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("draggableFg"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
5006
5279
|
DrawerItemInner,
|
5007
5280
|
{
|
5008
5281
|
name,
|
@@ -5023,7 +5296,7 @@ var DrawerItem = ({
|
|
5023
5296
|
isDragDisabled
|
5024
5297
|
}) => {
|
5025
5298
|
const resolvedId = id || name;
|
5026
|
-
const [dynamicId, setDynamicId] = (0,
|
5299
|
+
const [dynamicId, setDynamicId] = (0, import_react32.useState)(generateId(resolvedId));
|
5027
5300
|
if (typeof index !== "undefined") {
|
5028
5301
|
console.error(
|
5029
5302
|
"Warning: The `index` prop on Drawer.Item is deprecated and no longer required."
|
@@ -5036,7 +5309,7 @@ var DrawerItem = ({
|
|
5036
5309
|
},
|
5037
5310
|
[resolvedId]
|
5038
5311
|
);
|
5039
|
-
return /* @__PURE__ */ (0,
|
5312
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
5040
5313
|
DrawerItemDraggable,
|
5041
5314
|
{
|
5042
5315
|
name,
|
@@ -5062,14 +5335,14 @@ var Drawer = ({
|
|
5062
5335
|
"Warning: The `direction` prop on Drawer is deprecated and no longer required to achieve multi-directional dragging."
|
5063
5336
|
);
|
5064
5337
|
}
|
5065
|
-
const [id] = (0,
|
5338
|
+
const [id] = (0, import_react32.useState)(generateId());
|
5066
5339
|
const { ref } = useDroppableSafe({
|
5067
5340
|
id,
|
5068
5341
|
type: "void",
|
5069
5342
|
collisionPriority: 0
|
5070
5343
|
// Never collide with this, but we use it so NestedDroppablePlugin respects the Drawer
|
5071
5344
|
});
|
5072
|
-
return /* @__PURE__ */ (0,
|
5345
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
5073
5346
|
"div",
|
5074
5347
|
{
|
5075
5348
|
className: getClassName18(),
|
@@ -5084,7 +5357,7 @@ Drawer.Item = DrawerItem;
|
|
5084
5357
|
|
5085
5358
|
// components/Puck/index.tsx
|
5086
5359
|
init_react_import();
|
5087
|
-
var
|
5360
|
+
var import_react48 = require("react");
|
5088
5361
|
|
5089
5362
|
// components/SidebarSection/index.tsx
|
5090
5363
|
init_react_import();
|
@@ -5095,7 +5368,7 @@ var styles_module_default13 = { "SidebarSection": "_SidebarSection_125qe_1", "Si
|
|
5095
5368
|
|
5096
5369
|
// lib/use-breadcrumbs.ts
|
5097
5370
|
init_react_import();
|
5098
|
-
var
|
5371
|
+
var import_react33 = require("react");
|
5099
5372
|
var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
|
5100
5373
|
const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
|
5101
5374
|
const currentPathData = pathData && id && pathData[id] ? __spreadValues({}, pathData[id]) : { label: "Page", path: [] };
|
@@ -5145,8 +5418,8 @@ var useBreadcrumbs = (renderCount) => {
|
|
5145
5418
|
state: { data },
|
5146
5419
|
selectedItem
|
5147
5420
|
} = useAppContext();
|
5148
|
-
const dzContext = (0,
|
5149
|
-
return (0,
|
5421
|
+
const dzContext = (0, import_react33.useContext)(dropZoneContext);
|
5422
|
+
return (0, import_react33.useMemo)(() => {
|
5150
5423
|
const breadcrumbs = convertPathDataToBreadcrumbs(
|
5151
5424
|
selectedItem,
|
5152
5425
|
dzContext == null ? void 0 : dzContext.pathData,
|
@@ -5160,7 +5433,7 @@ var useBreadcrumbs = (renderCount) => {
|
|
5160
5433
|
};
|
5161
5434
|
|
5162
5435
|
// components/SidebarSection/index.tsx
|
5163
|
-
var
|
5436
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
5164
5437
|
var getClassName19 = get_class_name_factory_default("SidebarSection", styles_module_default13);
|
5165
5438
|
var SidebarSection = ({
|
5166
5439
|
children,
|
@@ -5173,15 +5446,15 @@ var SidebarSection = ({
|
|
5173
5446
|
}) => {
|
5174
5447
|
const { setUi } = useAppContext();
|
5175
5448
|
const breadcrumbs = useBreadcrumbs(1);
|
5176
|
-
return /* @__PURE__ */ (0,
|
5449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
5177
5450
|
"div",
|
5178
5451
|
{
|
5179
5452
|
className: getClassName19({ noBorderTop, noPadding }),
|
5180
5453
|
style: { background },
|
5181
5454
|
children: [
|
5182
|
-
/* @__PURE__ */ (0,
|
5183
|
-
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0,
|
5184
|
-
/* @__PURE__ */ (0,
|
5455
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: getClassName19("title"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19("breadcrumbs"), children: [
|
5456
|
+
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19("breadcrumb"), children: [
|
5457
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
5185
5458
|
"button",
|
5186
5459
|
{
|
5187
5460
|
type: "button",
|
@@ -5190,12 +5463,12 @@ var SidebarSection = ({
|
|
5190
5463
|
children: breadcrumb.label
|
5191
5464
|
}
|
5192
5465
|
),
|
5193
|
-
/* @__PURE__ */ (0,
|
5466
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ChevronRight, { size: 16 })
|
5194
5467
|
] }, i)) : null,
|
5195
|
-
/* @__PURE__ */ (0,
|
5468
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: getClassName19("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Heading, { rank: "2", size: "xs", children: title }) })
|
5196
5469
|
] }) }),
|
5197
|
-
/* @__PURE__ */ (0,
|
5198
|
-
isLoading && /* @__PURE__ */ (0,
|
5470
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: getClassName19("content"), children }),
|
5471
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: getClassName19("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Loader, { size: 32 }) })
|
5199
5472
|
]
|
5200
5473
|
}
|
5201
5474
|
);
|
@@ -5226,7 +5499,7 @@ init_react_import();
|
|
5226
5499
|
var styles_module_default14 = { "MenuBar": "_MenuBar_8pf8c_1", "MenuBar--menuOpen": "_MenuBar--menuOpen_8pf8c_14", "MenuBar-inner": "_MenuBar-inner_8pf8c_29", "MenuBar-history": "_MenuBar-history_8pf8c_45" };
|
5227
5500
|
|
5228
5501
|
// components/MenuBar/index.tsx
|
5229
|
-
var
|
5502
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
5230
5503
|
var getClassName20 = get_class_name_factory_default("MenuBar", styles_module_default14);
|
5231
5504
|
function MenuBar({
|
5232
5505
|
appState,
|
@@ -5240,7 +5513,7 @@ function MenuBar({
|
|
5240
5513
|
history: { back, forward, historyStore }
|
5241
5514
|
} = useAppContext();
|
5242
5515
|
const { hasFuture = false, hasPast = false } = historyStore || {};
|
5243
|
-
return /* @__PURE__ */ (0,
|
5516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
5244
5517
|
"div",
|
5245
5518
|
{
|
5246
5519
|
className: getClassName20({ menuOpen }),
|
@@ -5254,12 +5527,12 @@ function MenuBar({
|
|
5254
5527
|
setMenuOpen(false);
|
5255
5528
|
}
|
5256
5529
|
},
|
5257
|
-
children: /* @__PURE__ */ (0,
|
5258
|
-
/* @__PURE__ */ (0,
|
5259
|
-
/* @__PURE__ */ (0,
|
5260
|
-
/* @__PURE__ */ (0,
|
5530
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20("inner"), children: [
|
5531
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20("history"), children: [
|
5532
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Undo2, { size: 21 }) }),
|
5533
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Redo2, { size: 21 }) })
|
5261
5534
|
] }),
|
5262
|
-
/* @__PURE__ */ (0,
|
5535
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children: renderHeaderActions && renderHeaderActions({
|
5263
5536
|
state: appState,
|
5264
5537
|
dispatch
|
5265
5538
|
}) })
|
@@ -5270,7 +5543,7 @@ function MenuBar({
|
|
5270
5543
|
|
5271
5544
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/styles.module.css#css-module
|
5272
5545
|
init_react_import();
|
5273
|
-
var styles_module_default15 = { "Puck": "
|
5546
|
+
var styles_module_default15 = { "Puck": "_Puck_12s9r_19", "Puck-portal": "_Puck-portal_12s9r_24", "PuckLayout-inner": "_PuckLayout-inner_12s9r_31", "PuckLayout--mounted": "_PuckLayout--mounted_12s9r_43", "PuckLayout--leftSideBarVisible": "_PuckLayout--leftSideBarVisible_12s9r_47", "PuckLayout--rightSideBarVisible": "_PuckLayout--rightSideBarVisible_12s9r_53", "PuckLayout-mounted": "_PuckLayout-mounted_12s9r_67", "PuckLayout": "_PuckLayout_12s9r_31", "PuckLayout-header": "_PuckLayout-header_12s9r_108", "PuckLayout-headerInner": "_PuckLayout-headerInner_12s9r_117", "PuckLayout-headerToggle": "_PuckLayout-headerToggle_12s9r_127", "PuckLayout-rightSideBarToggle": "_PuckLayout-rightSideBarToggle_12s9r_134", "PuckLayout-leftSideBarToggle": "_PuckLayout-leftSideBarToggle_12s9r_135", "PuckLayout-headerTitle": "_PuckLayout-headerTitle_12s9r_139", "PuckLayout-headerPath": "_PuckLayout-headerPath_12s9r_143", "PuckLayout-headerTools": "_PuckLayout-headerTools_12s9r_150", "PuckLayout-menuButton": "_PuckLayout-menuButton_12s9r_156", "PuckLayout--menuOpen": "_PuckLayout--menuOpen_12s9r_161", "PuckLayout-leftSideBar": "_PuckLayout-leftSideBar_12s9r_135", "PuckLayout-rightSideBar": "_PuckLayout-rightSideBar_12s9r_134" };
|
5274
5547
|
|
5275
5548
|
// components/Puck/components/Fields/index.tsx
|
5276
5549
|
init_react_import();
|
@@ -5280,15 +5553,15 @@ init_react_import();
|
|
5280
5553
|
var styles_module_default16 = { "PuckFields": "_PuckFields_jp3lw_1", "PuckFields--isLoading": "_PuckFields--isLoading_jp3lw_6", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_jp3lw_10", "PuckFields-loadingOverlayInner": "_PuckFields-loadingOverlayInner_jp3lw_25" };
|
5281
5554
|
|
5282
5555
|
// components/Puck/components/Fields/index.tsx
|
5283
|
-
var
|
5556
|
+
var import_react35 = require("react");
|
5284
5557
|
|
5285
5558
|
// lib/use-parent.ts
|
5286
5559
|
init_react_import();
|
5287
|
-
var
|
5560
|
+
var import_react34 = require("react");
|
5288
5561
|
var useParent = (itemSelector) => {
|
5289
5562
|
var _a;
|
5290
5563
|
const { selectedItem, state } = useAppContext();
|
5291
|
-
const { pathData } = (0,
|
5564
|
+
const { pathData } = (0, import_react34.useContext)(dropZoneContext) || {};
|
5292
5565
|
const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
|
5293
5566
|
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
5294
5567
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
@@ -5297,7 +5570,7 @@ var useParent = (itemSelector) => {
|
|
5297
5570
|
};
|
5298
5571
|
|
5299
5572
|
// components/Puck/components/Fields/index.tsx
|
5300
|
-
var
|
5573
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
5301
5574
|
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
5302
5575
|
var defaultPageFields = {
|
5303
5576
|
title: { type: "text" }
|
@@ -5305,7 +5578,7 @@ var defaultPageFields = {
|
|
5305
5578
|
var DefaultFields = ({
|
5306
5579
|
children
|
5307
5580
|
}) => {
|
5308
|
-
return /* @__PURE__ */ (0,
|
5581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
5309
5582
|
};
|
5310
5583
|
var useResolvedFields = () => {
|
5311
5584
|
var _a, _b;
|
@@ -5314,20 +5587,20 @@ var useResolvedFields = () => {
|
|
5314
5587
|
const { data } = state;
|
5315
5588
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
5316
5589
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
5317
|
-
const defaultFields = (0,
|
5590
|
+
const defaultFields = (0, import_react35.useMemo)(
|
5318
5591
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
5319
5592
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
5320
5593
|
);
|
5321
5594
|
const rootProps = data.root.props || data.root;
|
5322
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
5323
|
-
const [resolvedFields, setResolvedFields] = (0,
|
5324
|
-
const [fieldsLoading, setFieldsLoading] = (0,
|
5595
|
+
const [lastSelectedData, setLastSelectedData] = (0, import_react35.useState)({});
|
5596
|
+
const [resolvedFields, setResolvedFields] = (0, import_react35.useState)(defaultFields);
|
5597
|
+
const [fieldsLoading, setFieldsLoading] = (0, import_react35.useState)(false);
|
5325
5598
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5326
5599
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5327
5600
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5328
5601
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5329
5602
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5330
|
-
const resolveFields = (0,
|
5603
|
+
const resolveFields = (0, import_react35.useCallback)(
|
5331
5604
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5332
5605
|
var _a2;
|
5333
5606
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5365,7 +5638,7 @@ var useResolvedFields = () => {
|
|
5365
5638
|
}),
|
5366
5639
|
[data, config, componentData, selectedItem, resolvedFields, state]
|
5367
5640
|
);
|
5368
|
-
(0,
|
5641
|
+
(0, import_react35.useEffect)(() => {
|
5369
5642
|
if (hasResolver) {
|
5370
5643
|
setFieldsLoading(true);
|
5371
5644
|
resolveFields(defaultFields).then((fields) => {
|
@@ -5396,8 +5669,8 @@ var Fields = () => {
|
|
5396
5669
|
const componentResolving = selectedItem ? ((_a = componentState[selectedItem == null ? void 0 : selectedItem.props.id]) == null ? void 0 : _a.loadingCount) > 0 : ((_b = componentState["puck-root"]) == null ? void 0 : _b.loadingCount) > 0;
|
5397
5670
|
const isLoading = fieldsResolving || componentResolving;
|
5398
5671
|
const rootProps = data.root.props || data.root;
|
5399
|
-
const Wrapper = (0,
|
5400
|
-
return /* @__PURE__ */ (0,
|
5672
|
+
const Wrapper = (0, import_react35.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
5673
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
5401
5674
|
"form",
|
5402
5675
|
{
|
5403
5676
|
className: getClassName21(),
|
@@ -5405,7 +5678,7 @@ var Fields = () => {
|
|
5405
5678
|
e.preventDefault();
|
5406
5679
|
},
|
5407
5680
|
children: [
|
5408
|
-
/* @__PURE__ */ (0,
|
5681
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
|
5409
5682
|
const field = fields[fieldName];
|
5410
5683
|
if (!(field == null ? void 0 : field.type)) return null;
|
5411
5684
|
const onChange = (value, updatedUi) => {
|
@@ -5476,7 +5749,7 @@ var Fields = () => {
|
|
5476
5749
|
item: selectedItem
|
5477
5750
|
});
|
5478
5751
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
5479
|
-
return /* @__PURE__ */ (0,
|
5752
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5480
5753
|
AutoFieldPrivate,
|
5481
5754
|
{
|
5482
5755
|
field,
|
@@ -5494,7 +5767,7 @@ var Fields = () => {
|
|
5494
5767
|
root: true
|
5495
5768
|
});
|
5496
5769
|
const id = `root_${field.type}_${fieldName}`;
|
5497
|
-
return /* @__PURE__ */ (0,
|
5770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5498
5771
|
AutoFieldPrivate,
|
5499
5772
|
{
|
5500
5773
|
field,
|
@@ -5508,7 +5781,7 @@ var Fields = () => {
|
|
5508
5781
|
);
|
5509
5782
|
}
|
5510
5783
|
}) }),
|
5511
|
-
isLoading && /* @__PURE__ */ (0,
|
5784
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("loadingOverlayInner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Loader, { size: 16 }) }) })
|
5512
5785
|
]
|
5513
5786
|
}
|
5514
5787
|
);
|
@@ -5519,7 +5792,7 @@ init_react_import();
|
|
5519
5792
|
|
5520
5793
|
// lib/use-component-list.tsx
|
5521
5794
|
init_react_import();
|
5522
|
-
var
|
5795
|
+
var import_react36 = require("react");
|
5523
5796
|
|
5524
5797
|
// components/ComponentList/index.tsx
|
5525
5798
|
init_react_import();
|
@@ -5529,7 +5802,7 @@ init_react_import();
|
|
5529
5802
|
var styles_module_default17 = { "ComponentList": "_ComponentList_odh9d_1", "ComponentList--isExpanded": "_ComponentList--isExpanded_odh9d_5", "ComponentList-content": "_ComponentList-content_odh9d_9", "ComponentList-title": "_ComponentList-title_odh9d_17", "ComponentList-titleIcon": "_ComponentList-titleIcon_odh9d_53" };
|
5530
5803
|
|
5531
5804
|
// components/ComponentList/index.tsx
|
5532
|
-
var
|
5805
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
5533
5806
|
var getClassName22 = get_class_name_factory_default("ComponentList", styles_module_default17);
|
5534
5807
|
var ComponentListItem = ({
|
5535
5808
|
name,
|
@@ -5539,7 +5812,7 @@ var ComponentListItem = ({
|
|
5539
5812
|
const canInsert = getPermissions({
|
5540
5813
|
type: name
|
5541
5814
|
}).insert;
|
5542
|
-
return /* @__PURE__ */ (0,
|
5815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Drawer.Item, { label, name, isDragDisabled: !canInsert, children: overrides.componentItem });
|
5543
5816
|
};
|
5544
5817
|
var ComponentList = ({
|
5545
5818
|
children,
|
@@ -5548,8 +5821,8 @@ var ComponentList = ({
|
|
5548
5821
|
}) => {
|
5549
5822
|
const { config, state, setUi } = useAppContext();
|
5550
5823
|
const { expanded = true } = state.ui.componentList[id] || {};
|
5551
|
-
return /* @__PURE__ */ (0,
|
5552
|
-
title && /* @__PURE__ */ (0,
|
5824
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: getClassName22({ isExpanded: expanded }), children: [
|
5825
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
5553
5826
|
"button",
|
5554
5827
|
{
|
5555
5828
|
type: "button",
|
@@ -5563,14 +5836,14 @@ var ComponentList = ({
|
|
5563
5836
|
}),
|
5564
5837
|
title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
|
5565
5838
|
children: [
|
5566
|
-
/* @__PURE__ */ (0,
|
5567
|
-
/* @__PURE__ */ (0,
|
5839
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { children: title }),
|
5840
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: getClassName22("titleIcon"), children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ChevronUp, { size: 12 }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ChevronDown, { size: 12 }) })
|
5568
5841
|
]
|
5569
5842
|
}
|
5570
5843
|
),
|
5571
|
-
/* @__PURE__ */ (0,
|
5844
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: getClassName22("content"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Drawer, { children: children || Object.keys(config.components).map((componentKey) => {
|
5572
5845
|
var _a;
|
5573
|
-
return /* @__PURE__ */ (0,
|
5846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
5574
5847
|
ComponentListItem,
|
5575
5848
|
{
|
5576
5849
|
label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
|
@@ -5584,10 +5857,10 @@ var ComponentList = ({
|
|
5584
5857
|
ComponentList.Item = ComponentListItem;
|
5585
5858
|
|
5586
5859
|
// lib/use-component-list.tsx
|
5587
|
-
var
|
5860
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
5588
5861
|
var useComponentList = (config, ui) => {
|
5589
|
-
const [componentList, setComponentList] = (0,
|
5590
|
-
(0,
|
5862
|
+
const [componentList, setComponentList] = (0, import_react36.useState)();
|
5863
|
+
(0, import_react36.useEffect)(() => {
|
5591
5864
|
var _a, _b, _c;
|
5592
5865
|
if (Object.keys(ui.componentList).length > 0) {
|
5593
5866
|
const matchedComponents = [];
|
@@ -5597,7 +5870,7 @@ var useComponentList = (config, ui) => {
|
|
5597
5870
|
if (category.visible === false || !category.components) {
|
5598
5871
|
return null;
|
5599
5872
|
}
|
5600
|
-
return /* @__PURE__ */ (0,
|
5873
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
5601
5874
|
ComponentList,
|
5602
5875
|
{
|
5603
5876
|
id: categoryKey,
|
@@ -5606,7 +5879,7 @@ var useComponentList = (config, ui) => {
|
|
5606
5879
|
var _a2;
|
5607
5880
|
matchedComponents.push(componentName);
|
5608
5881
|
const componentConf = config.components[componentName] || {};
|
5609
|
-
return /* @__PURE__ */ (0,
|
5882
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
5610
5883
|
ComponentList.Item,
|
5611
5884
|
{
|
5612
5885
|
label: (_a2 = componentConf["label"]) != null ? _a2 : componentName,
|
@@ -5626,7 +5899,7 @@ var useComponentList = (config, ui) => {
|
|
5626
5899
|
);
|
5627
5900
|
if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
|
5628
5901
|
_componentList.push(
|
5629
|
-
/* @__PURE__ */ (0,
|
5902
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
5630
5903
|
ComponentList,
|
5631
5904
|
{
|
5632
5905
|
id: "other",
|
@@ -5634,7 +5907,7 @@ var useComponentList = (config, ui) => {
|
|
5634
5907
|
children: remainingComponents.map((componentName, i) => {
|
5635
5908
|
var _a2;
|
5636
5909
|
const componentConf = config.components[componentName] || {};
|
5637
|
-
return /* @__PURE__ */ (0,
|
5910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
5638
5911
|
ComponentList.Item,
|
5639
5912
|
{
|
5640
5913
|
name: componentName,
|
@@ -5656,25 +5929,25 @@ var useComponentList = (config, ui) => {
|
|
5656
5929
|
};
|
5657
5930
|
|
5658
5931
|
// components/Puck/components/Components/index.tsx
|
5659
|
-
var
|
5660
|
-
var
|
5932
|
+
var import_react37 = require("react");
|
5933
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
5661
5934
|
var Components = () => {
|
5662
5935
|
const { config, state, overrides } = useAppContext();
|
5663
5936
|
const componentList = useComponentList(config, state.ui);
|
5664
|
-
const Wrapper = (0,
|
5665
|
-
return /* @__PURE__ */ (0,
|
5937
|
+
const Wrapper = (0, import_react37.useMemo)(() => overrides.components || "div", [overrides]);
|
5938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
|
5666
5939
|
};
|
5667
5940
|
|
5668
5941
|
// components/Puck/components/Preview/index.tsx
|
5669
5942
|
init_react_import();
|
5670
|
-
var
|
5943
|
+
var import_react39 = require("react");
|
5671
5944
|
|
5672
5945
|
// components/AutoFrame/index.tsx
|
5673
5946
|
init_react_import();
|
5674
|
-
var
|
5947
|
+
var import_react38 = require("react");
|
5675
5948
|
var import_object_hash = __toESM(require("object-hash"));
|
5676
5949
|
var import_react_dom3 = require("react-dom");
|
5677
|
-
var
|
5950
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
5678
5951
|
var styleSelector = 'style, link[rel="stylesheet"]';
|
5679
5952
|
var collectStyles = (doc) => {
|
5680
5953
|
const collected = [];
|
@@ -5717,7 +5990,7 @@ var CopyHostStyles = ({
|
|
5717
5990
|
onStylesLoaded = () => null
|
5718
5991
|
}) => {
|
5719
5992
|
const { document: doc, window: win } = useFrame();
|
5720
|
-
(0,
|
5993
|
+
(0, import_react38.useEffect)(() => {
|
5721
5994
|
if (!win || !doc) {
|
5722
5995
|
return () => {
|
5723
5996
|
};
|
@@ -5874,10 +6147,10 @@ var CopyHostStyles = ({
|
|
5874
6147
|
observer.disconnect();
|
5875
6148
|
};
|
5876
6149
|
}, []);
|
5877
|
-
return /* @__PURE__ */ (0,
|
6150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
|
5878
6151
|
};
|
5879
|
-
var autoFrameContext = (0,
|
5880
|
-
var useFrame = () => (0,
|
6152
|
+
var autoFrameContext = (0, import_react38.createContext)({});
|
6153
|
+
var useFrame = () => (0, import_react38.useContext)(autoFrameContext);
|
5881
6154
|
function AutoFrame(_a) {
|
5882
6155
|
var _b = _a, {
|
5883
6156
|
children,
|
@@ -5894,10 +6167,10 @@ function AutoFrame(_a) {
|
|
5894
6167
|
"onStylesLoaded",
|
5895
6168
|
"frameRef"
|
5896
6169
|
]);
|
5897
|
-
const [loaded, setLoaded] = (0,
|
5898
|
-
const [ctx, setCtx] = (0,
|
5899
|
-
const [mountTarget, setMountTarget] = (0,
|
5900
|
-
(0,
|
6170
|
+
const [loaded, setLoaded] = (0, import_react38.useState)(false);
|
6171
|
+
const [ctx, setCtx] = (0, import_react38.useState)({});
|
6172
|
+
const [mountTarget, setMountTarget] = (0, import_react38.useState)();
|
6173
|
+
(0, import_react38.useEffect)(() => {
|
5901
6174
|
var _a2;
|
5902
6175
|
if (frameRef.current) {
|
5903
6176
|
setCtx({
|
@@ -5909,7 +6182,7 @@ function AutoFrame(_a) {
|
|
5909
6182
|
);
|
5910
6183
|
}
|
5911
6184
|
}, [frameRef, loaded]);
|
5912
|
-
return /* @__PURE__ */ (0,
|
6185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
5913
6186
|
"iframe",
|
5914
6187
|
__spreadProps(__spreadValues({}, props), {
|
5915
6188
|
className,
|
@@ -5919,7 +6192,7 @@ function AutoFrame(_a) {
|
|
5919
6192
|
onLoad: () => {
|
5920
6193
|
setLoaded(true);
|
5921
6194
|
},
|
5922
|
-
children: /* @__PURE__ */ (0,
|
6195
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(autoFrameContext.Provider, { value: ctx, children: loaded && mountTarget && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(CopyHostStyles, { debug, onStylesLoaded, children: (0, import_react_dom3.createPortal)(children, mountTarget) }) })
|
5923
6196
|
})
|
5924
6197
|
);
|
5925
6198
|
}
|
@@ -5930,12 +6203,68 @@ var AutoFrame_default = AutoFrame;
|
|
5930
6203
|
init_react_import();
|
5931
6204
|
var styles_module_default18 = { "PuckPreview": "_PuckPreview_z2rgu_1", "PuckPreview-frame": "_PuckPreview-frame_z2rgu_6" };
|
5932
6205
|
|
6206
|
+
// components/Render/index.tsx
|
6207
|
+
init_react_import();
|
6208
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
6209
|
+
function Render({
|
6210
|
+
config,
|
6211
|
+
data
|
6212
|
+
}) {
|
6213
|
+
var _a;
|
6214
|
+
const defaultedData = __spreadProps(__spreadValues({}, data), {
|
6215
|
+
root: data.root || {},
|
6216
|
+
content: data.content || []
|
6217
|
+
});
|
6218
|
+
const rootProps = defaultedData.root.props || defaultedData.root;
|
6219
|
+
const title = (rootProps == null ? void 0 : rootProps.title) || "";
|
6220
|
+
if ((_a = config.root) == null ? void 0 : _a.render) {
|
6221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
6222
|
+
DropZoneProvider,
|
6223
|
+
{
|
6224
|
+
value: {
|
6225
|
+
data: defaultedData,
|
6226
|
+
config,
|
6227
|
+
mode: "render",
|
6228
|
+
depth: 0,
|
6229
|
+
path: []
|
6230
|
+
},
|
6231
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
6232
|
+
config.root.render,
|
6233
|
+
__spreadProps(__spreadValues({}, rootProps), {
|
6234
|
+
puck: {
|
6235
|
+
renderDropZone: DropZone,
|
6236
|
+
isEditing: false
|
6237
|
+
},
|
6238
|
+
title,
|
6239
|
+
editMode: false,
|
6240
|
+
id: "puck-root",
|
6241
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DropZone, { zone: rootDroppableId })
|
6242
|
+
})
|
6243
|
+
)
|
6244
|
+
}
|
6245
|
+
);
|
6246
|
+
}
|
6247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
6248
|
+
DropZoneProvider,
|
6249
|
+
{
|
6250
|
+
value: {
|
6251
|
+
data: defaultedData,
|
6252
|
+
config,
|
6253
|
+
mode: "render",
|
6254
|
+
depth: 0,
|
6255
|
+
path: []
|
6256
|
+
},
|
6257
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DropZone, { zone: rootDroppableId })
|
6258
|
+
}
|
6259
|
+
);
|
6260
|
+
}
|
6261
|
+
|
5933
6262
|
// components/Puck/components/Preview/index.tsx
|
5934
|
-
var
|
6263
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
5935
6264
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
5936
6265
|
var useBubbleIframeEvents = (ref) => {
|
5937
6266
|
const { status } = useAppContext();
|
5938
|
-
(0,
|
6267
|
+
(0, import_react39.useEffect)(() => {
|
5939
6268
|
var _a;
|
5940
6269
|
if (ref.current && status === "READY") {
|
5941
6270
|
const iframe = ref.current;
|
@@ -5972,22 +6301,34 @@ var useBubbleIframeEvents = (ref) => {
|
|
5972
6301
|
}
|
5973
6302
|
}, [status]);
|
5974
6303
|
};
|
5975
|
-
var
|
6304
|
+
var Preview2 = ({ id = "puck-preview" }) => {
|
5976
6305
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
5977
|
-
const Page = (0,
|
6306
|
+
const Page = (0, import_react39.useCallback)(
|
5978
6307
|
(pageProps) => {
|
5979
6308
|
var _a, _b;
|
5980
6309
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
5981
6310
|
id: "puck-root"
|
5982
|
-
}, pageProps)) : /* @__PURE__ */ (0,
|
6311
|
+
}, pageProps)) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: pageProps.children });
|
5983
6312
|
},
|
5984
6313
|
[config.root]
|
5985
6314
|
);
|
5986
|
-
const Frame = (0,
|
6315
|
+
const Frame = (0, import_react39.useMemo)(() => overrides.iframe, [overrides]);
|
5987
6316
|
const rootProps = state.data.root.props || state.data.root;
|
5988
|
-
const ref = (0,
|
6317
|
+
const ref = (0, import_react39.useRef)(null);
|
5989
6318
|
useBubbleIframeEvents(ref);
|
5990
|
-
|
6319
|
+
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
6320
|
+
Page,
|
6321
|
+
__spreadProps(__spreadValues({}, rootProps), {
|
6322
|
+
puck: {
|
6323
|
+
renderDropZone: DropZone,
|
6324
|
+
isEditing: true,
|
6325
|
+
dragRef: null
|
6326
|
+
},
|
6327
|
+
editMode: true,
|
6328
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(DropZone, { zone: rootDroppableId })
|
6329
|
+
})
|
6330
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Render, { data: state.data, config });
|
6331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
5991
6332
|
"div",
|
5992
6333
|
{
|
5993
6334
|
className: getClassName23(),
|
@@ -5996,7 +6337,7 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
5996
6337
|
onClick: () => {
|
5997
6338
|
dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
|
5998
6339
|
},
|
5999
|
-
children: iframe.enabled ? /* @__PURE__ */ (0,
|
6340
|
+
children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
6000
6341
|
AutoFrame_default,
|
6001
6342
|
{
|
6002
6343
|
id: "preview-frame",
|
@@ -6006,40 +6347,21 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
6006
6347
|
setStatus("READY");
|
6007
6348
|
},
|
6008
6349
|
frameRef: ref,
|
6009
|
-
children: /* @__PURE__ */ (0,
|
6010
|
-
const inner = /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
6011
|
-
Page,
|
6012
|
-
__spreadProps(__spreadValues({}, rootProps), {
|
6013
|
-
puck: {
|
6014
|
-
renderDropZone: DropZone,
|
6015
|
-
isEditing: true,
|
6016
|
-
dragRef: null
|
6017
|
-
},
|
6018
|
-
editMode: true,
|
6019
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DropZone, { zone: rootDroppableId })
|
6020
|
-
})
|
6021
|
-
);
|
6350
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(autoFrameContext.Consumer, { children: ({ document: document2 }) => {
|
6022
6351
|
if (Frame) {
|
6023
|
-
return /* @__PURE__ */ (0,
|
6352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Frame, { document: document2, children: inner });
|
6024
6353
|
}
|
6025
6354
|
return inner;
|
6026
6355
|
} })
|
6027
6356
|
}
|
6028
|
-
) : /* @__PURE__ */ (0,
|
6357
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
6029
6358
|
"div",
|
6030
6359
|
{
|
6031
6360
|
id: "preview-frame",
|
6032
6361
|
className: getClassName23("frame"),
|
6033
6362
|
ref,
|
6034
6363
|
"data-puck-entry": true,
|
6035
|
-
children:
|
6036
|
-
Page,
|
6037
|
-
__spreadProps(__spreadValues({}, rootProps), {
|
6038
|
-
puck: { renderDropZone: DropZone, isEditing: true, dragRef: null },
|
6039
|
-
editMode: true,
|
6040
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DropZone, { zone: rootDroppableId })
|
6041
|
-
})
|
6042
|
-
)
|
6364
|
+
children: inner
|
6043
6365
|
}
|
6044
6366
|
)
|
6045
6367
|
}
|
@@ -6089,7 +6411,7 @@ var scrollIntoView = (el) => {
|
|
6089
6411
|
};
|
6090
6412
|
|
6091
6413
|
// components/LayerTree/index.tsx
|
6092
|
-
var
|
6414
|
+
var import_react40 = require("react");
|
6093
6415
|
|
6094
6416
|
// lib/is-child-of-zone.ts
|
6095
6417
|
init_react_import();
|
@@ -6122,7 +6444,7 @@ var onScrollEnd = (frame, cb) => {
|
|
6122
6444
|
};
|
6123
6445
|
|
6124
6446
|
// components/LayerTree/index.tsx
|
6125
|
-
var
|
6447
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
6126
6448
|
var getClassName24 = get_class_name_factory_default("LayerTree", styles_module_default19);
|
6127
6449
|
var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default19);
|
6128
6450
|
var LayerTree = ({
|
@@ -6135,15 +6457,15 @@ var LayerTree = ({
|
|
6135
6457
|
label
|
6136
6458
|
}) => {
|
6137
6459
|
const zones = data.zones || {};
|
6138
|
-
const ctx = (0,
|
6139
|
-
return /* @__PURE__ */ (0,
|
6140
|
-
label && /* @__PURE__ */ (0,
|
6141
|
-
/* @__PURE__ */ (0,
|
6460
|
+
const ctx = (0, import_react40.useContext)(dropZoneContext);
|
6461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
6462
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
6463
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Layers, { size: "16" }) }),
|
6142
6464
|
" ",
|
6143
6465
|
label
|
6144
6466
|
] }),
|
6145
|
-
/* @__PURE__ */ (0,
|
6146
|
-
zoneContent.length === 0 && /* @__PURE__ */ (0,
|
6467
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("ul", { className: getClassName24(), children: [
|
6468
|
+
zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("helper"), children: "No items" }),
|
6147
6469
|
zoneContent.map((item, i) => {
|
6148
6470
|
var _a;
|
6149
6471
|
const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
|
@@ -6156,7 +6478,7 @@ var LayerTree = ({
|
|
6156
6478
|
const childIsSelected = isChildOfZone(item, selectedItem, ctx);
|
6157
6479
|
const componentConfig = config.components[item.type];
|
6158
6480
|
const label2 = (_a = componentConfig == null ? void 0 : componentConfig["label"]) != null ? _a : item.type.toString();
|
6159
|
-
return /* @__PURE__ */ (0,
|
6481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
6160
6482
|
"li",
|
6161
6483
|
{
|
6162
6484
|
className: getClassNameLayer({
|
@@ -6166,7 +6488,7 @@ var LayerTree = ({
|
|
6166
6488
|
childIsSelected
|
6167
6489
|
}),
|
6168
6490
|
children: [
|
6169
|
-
/* @__PURE__ */ (0,
|
6491
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
6170
6492
|
"button",
|
6171
6493
|
{
|
6172
6494
|
type: "button",
|
@@ -6205,22 +6527,22 @@ var LayerTree = ({
|
|
6205
6527
|
setHoveringComponent(null);
|
6206
6528
|
},
|
6207
6529
|
children: [
|
6208
|
-
containsZone && /* @__PURE__ */ (0,
|
6530
|
+
containsZone && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
6209
6531
|
"div",
|
6210
6532
|
{
|
6211
6533
|
className: getClassNameLayer("chevron"),
|
6212
6534
|
title: isSelected ? "Collapse" : "Expand",
|
6213
|
-
children: /* @__PURE__ */ (0,
|
6535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { size: "12" })
|
6214
6536
|
}
|
6215
6537
|
),
|
6216
|
-
/* @__PURE__ */ (0,
|
6217
|
-
/* @__PURE__ */ (0,
|
6218
|
-
/* @__PURE__ */ (0,
|
6538
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassNameLayer("title"), children: [
|
6539
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("icon"), children: item.type === "Text" || item.type === "Heading" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Type, { size: "16" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(LayoutGrid, { size: "16" }) }),
|
6540
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("name"), children: label2 })
|
6219
6541
|
] })
|
6220
6542
|
]
|
6221
6543
|
}
|
6222
6544
|
) }),
|
6223
|
-
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0,
|
6545
|
+
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
6224
6546
|
LayerTree,
|
6225
6547
|
{
|
6226
6548
|
config,
|
@@ -6242,13 +6564,13 @@ var LayerTree = ({
|
|
6242
6564
|
};
|
6243
6565
|
|
6244
6566
|
// components/Puck/components/Outline/index.tsx
|
6245
|
-
var
|
6246
|
-
var
|
6567
|
+
var import_react41 = require("react");
|
6568
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
6247
6569
|
var Outline = () => {
|
6248
6570
|
const { dispatch, state, overrides, config } = useAppContext();
|
6249
6571
|
const { data, ui } = state;
|
6250
6572
|
const { itemSelector } = ui;
|
6251
|
-
const setItemSelector = (0,
|
6573
|
+
const setItemSelector = (0, import_react41.useCallback)(
|
6252
6574
|
(newItemSelector) => {
|
6253
6575
|
dispatch({
|
6254
6576
|
type: "setUi",
|
@@ -6257,9 +6579,9 @@ var Outline = () => {
|
|
6257
6579
|
},
|
6258
6580
|
[]
|
6259
6581
|
);
|
6260
|
-
const Wrapper = (0,
|
6261
|
-
return /* @__PURE__ */ (0,
|
6262
|
-
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0,
|
6582
|
+
const Wrapper = (0, import_react41.useMemo)(() => overrides.outline || "div", [overrides]);
|
6583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
6584
|
+
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
6263
6585
|
LayerTree,
|
6264
6586
|
{
|
6265
6587
|
config,
|
@@ -6272,7 +6594,7 @@ var Outline = () => {
|
|
6272
6594
|
),
|
6273
6595
|
Object.entries(findZonesForArea(data, "root")).map(
|
6274
6596
|
([zoneKey, zone]) => {
|
6275
|
-
return /* @__PURE__ */ (0,
|
6597
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
6276
6598
|
LayerTree,
|
6277
6599
|
{
|
6278
6600
|
config,
|
@@ -6371,19 +6693,19 @@ function usePuckHistory({
|
|
6371
6693
|
|
6372
6694
|
// lib/use-history-store.ts
|
6373
6695
|
init_react_import();
|
6374
|
-
var
|
6696
|
+
var import_react42 = require("react");
|
6375
6697
|
var import_use_debounce3 = require("use-debounce");
|
6376
6698
|
var EMPTY_HISTORY_INDEX = 0;
|
6377
6699
|
function useHistoryStore(initialHistory) {
|
6378
6700
|
var _a, _b;
|
6379
|
-
const [histories, setHistories] = (0,
|
6701
|
+
const [histories, setHistories] = (0, import_react42.useState)(
|
6380
6702
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
6381
6703
|
);
|
6382
6704
|
const updateHistories = (histories2) => {
|
6383
6705
|
setHistories(histories2);
|
6384
6706
|
setIndex(histories2.length - 1);
|
6385
6707
|
};
|
6386
|
-
const [index, setIndex] = (0,
|
6708
|
+
const [index, setIndex] = (0, import_react42.useState)(
|
6387
6709
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
6388
6710
|
);
|
6389
6711
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -6543,22 +6865,22 @@ var getBox = function getBox2(el) {
|
|
6543
6865
|
};
|
6544
6866
|
|
6545
6867
|
// components/Puck/components/Canvas/index.tsx
|
6546
|
-
var
|
6868
|
+
var import_react44 = require("react");
|
6547
6869
|
|
6548
6870
|
// components/ViewportControls/index.tsx
|
6549
6871
|
init_react_import();
|
6550
|
-
var
|
6872
|
+
var import_react43 = require("react");
|
6551
6873
|
|
6552
6874
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6553
6875
|
init_react_import();
|
6554
6876
|
var styles_module_default20 = { "ViewportControls": "_ViewportControls_g1wgg_1", "ViewportControls-divider": "_ViewportControls-divider_g1wgg_15", "ViewportControls-zoomSelect": "_ViewportControls-zoomSelect_g1wgg_21", "ViewportButton--isActive": "_ViewportButton--isActive_g1wgg_34", "ViewportButton-inner": "_ViewportButton-inner_g1wgg_34" };
|
6555
6877
|
|
6556
6878
|
// components/ViewportControls/index.tsx
|
6557
|
-
var
|
6879
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
6558
6880
|
var icons = {
|
6559
|
-
Smartphone: /* @__PURE__ */ (0,
|
6560
|
-
Tablet: /* @__PURE__ */ (0,
|
6561
|
-
Monitor: /* @__PURE__ */ (0,
|
6881
|
+
Smartphone: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Smartphone, { size: 16 }),
|
6882
|
+
Tablet: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Tablet, { size: 16 }),
|
6883
|
+
Monitor: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Monitor, { size: 16 })
|
6562
6884
|
};
|
6563
6885
|
var getClassName25 = get_class_name_factory_default("ViewportControls", styles_module_default20);
|
6564
6886
|
var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_module_default20);
|
@@ -6570,11 +6892,11 @@ var ViewportButton = ({
|
|
6570
6892
|
onClick
|
6571
6893
|
}) => {
|
6572
6894
|
const { state } = useAppContext();
|
6573
|
-
const [isActive, setIsActive] = (0,
|
6574
|
-
(0,
|
6895
|
+
const [isActive, setIsActive] = (0, import_react43.useState)(false);
|
6896
|
+
(0, import_react43.useEffect)(() => {
|
6575
6897
|
setIsActive(width === state.ui.viewports.current.width);
|
6576
6898
|
}, [width, state.ui.viewports.current.width]);
|
6577
|
-
return /* @__PURE__ */ (0,
|
6899
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
6578
6900
|
IconButton,
|
6579
6901
|
{
|
6580
6902
|
title,
|
@@ -6583,7 +6905,7 @@ var ViewportButton = ({
|
|
6583
6905
|
e.stopPropagation();
|
6584
6906
|
onClick({ width, height });
|
6585
6907
|
},
|
6586
|
-
children: /* @__PURE__ */ (0,
|
6908
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton("inner"), children })
|
6587
6909
|
}
|
6588
6910
|
) });
|
6589
6911
|
};
|
@@ -6607,7 +6929,7 @@ var ViewportControls = ({
|
|
6607
6929
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6608
6930
|
(option) => option.value === autoZoom
|
6609
6931
|
);
|
6610
|
-
const zoomOptions = (0,
|
6932
|
+
const zoomOptions = (0, import_react43.useMemo)(
|
6611
6933
|
() => [
|
6612
6934
|
...defaultZoomOptions,
|
6613
6935
|
...defaultsContainAutoZoom ? [] : [
|
@@ -6619,8 +6941,8 @@ var ViewportControls = ({
|
|
6619
6941
|
].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
|
6620
6942
|
[autoZoom]
|
6621
6943
|
);
|
6622
|
-
return /* @__PURE__ */ (0,
|
6623
|
-
viewports.map((viewport, i) => /* @__PURE__ */ (0,
|
6944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: getClassName25(), children: [
|
6945
|
+
viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
6624
6946
|
ViewportButton,
|
6625
6947
|
{
|
6626
6948
|
height: viewport.height,
|
@@ -6631,8 +6953,8 @@ var ViewportControls = ({
|
|
6631
6953
|
},
|
6632
6954
|
i
|
6633
6955
|
)),
|
6634
|
-
/* @__PURE__ */ (0,
|
6635
|
-
/* @__PURE__ */ (0,
|
6956
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: getClassName25("divider") }),
|
6957
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
6636
6958
|
IconButton,
|
6637
6959
|
{
|
6638
6960
|
title: "Zoom viewport out",
|
@@ -6646,10 +6968,10 @@ var ViewportControls = ({
|
|
6646
6968
|
)].value
|
6647
6969
|
);
|
6648
6970
|
},
|
6649
|
-
children: /* @__PURE__ */ (0,
|
6971
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ZoomOut, { size: 16 })
|
6650
6972
|
}
|
6651
6973
|
),
|
6652
|
-
/* @__PURE__ */ (0,
|
6974
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
6653
6975
|
IconButton,
|
6654
6976
|
{
|
6655
6977
|
title: "Zoom viewport in",
|
@@ -6663,11 +6985,11 @@ var ViewportControls = ({
|
|
6663
6985
|
)].value
|
6664
6986
|
);
|
6665
6987
|
},
|
6666
|
-
children: /* @__PURE__ */ (0,
|
6988
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ZoomIn, { size: 16 })
|
6667
6989
|
}
|
6668
6990
|
),
|
6669
|
-
/* @__PURE__ */ (0,
|
6670
|
-
/* @__PURE__ */ (0,
|
6991
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: getClassName25("divider") }),
|
6992
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
6671
6993
|
"select",
|
6672
6994
|
{
|
6673
6995
|
className: getClassName25("zoomSelect"),
|
@@ -6675,7 +6997,7 @@ var ViewportControls = ({
|
|
6675
6997
|
onChange: (e) => {
|
6676
6998
|
onZoom(parseFloat(e.currentTarget.value));
|
6677
6999
|
},
|
6678
|
-
children: zoomOptions.map((option) => /* @__PURE__ */ (0,
|
7000
|
+
children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
6679
7001
|
"option",
|
6680
7002
|
{
|
6681
7003
|
value: option.value,
|
@@ -6723,24 +7045,24 @@ var getZoomConfig = (uiViewport, frame, zoom) => {
|
|
6723
7045
|
};
|
6724
7046
|
|
6725
7047
|
// components/Puck/components/Canvas/index.tsx
|
6726
|
-
var
|
7048
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
6727
7049
|
var getClassName26 = get_class_name_factory_default("PuckCanvas", styles_module_default21);
|
6728
7050
|
var ZOOM_ON_CHANGE = true;
|
6729
7051
|
var Canvas = () => {
|
6730
7052
|
const { status, iframe } = useAppContext();
|
6731
7053
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
6732
7054
|
const { ui } = state;
|
6733
|
-
const frameRef = (0,
|
6734
|
-
const [showTransition, setShowTransition] = (0,
|
6735
|
-
const defaultRender = (0,
|
6736
|
-
const PuckDefault = ({ children }) => /* @__PURE__ */ (0,
|
7055
|
+
const frameRef = (0, import_react44.useRef)(null);
|
7056
|
+
const [showTransition, setShowTransition] = (0, import_react44.useState)(false);
|
7057
|
+
const defaultRender = (0, import_react44.useMemo)(() => {
|
7058
|
+
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
|
6737
7059
|
return PuckDefault;
|
6738
7060
|
}, []);
|
6739
|
-
const CustomPreview = (0,
|
7061
|
+
const CustomPreview = (0, import_react44.useMemo)(
|
6740
7062
|
() => overrides.preview || defaultRender,
|
6741
7063
|
[overrides]
|
6742
7064
|
);
|
6743
|
-
const getFrameDimensions = (0,
|
7065
|
+
const getFrameDimensions = (0, import_react44.useCallback)(() => {
|
6744
7066
|
if (frameRef.current) {
|
6745
7067
|
const frame = frameRef.current;
|
6746
7068
|
const box = getBox(frame);
|
@@ -6748,7 +7070,7 @@ var Canvas = () => {
|
|
6748
7070
|
}
|
6749
7071
|
return { width: 0, height: 0 };
|
6750
7072
|
}, [frameRef]);
|
6751
|
-
const resetAutoZoom = (0,
|
7073
|
+
const resetAutoZoom = (0, import_react44.useCallback)(
|
6752
7074
|
(ui2 = state.ui) => {
|
6753
7075
|
if (frameRef.current) {
|
6754
7076
|
setZoomConfig(
|
@@ -6758,11 +7080,11 @@ var Canvas = () => {
|
|
6758
7080
|
},
|
6759
7081
|
[frameRef, zoomConfig, state.ui]
|
6760
7082
|
);
|
6761
|
-
(0,
|
7083
|
+
(0, import_react44.useEffect)(() => {
|
6762
7084
|
setShowTransition(false);
|
6763
7085
|
resetAutoZoom();
|
6764
7086
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
6765
|
-
(0,
|
7087
|
+
(0, import_react44.useEffect)(() => {
|
6766
7088
|
const { height: frameHeight } = getFrameDimensions();
|
6767
7089
|
if (ui.viewports.current.height === "auto") {
|
6768
7090
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -6770,13 +7092,13 @@ var Canvas = () => {
|
|
6770
7092
|
}));
|
6771
7093
|
}
|
6772
7094
|
}, [zoomConfig.zoom]);
|
6773
|
-
(0,
|
7095
|
+
(0, import_react44.useEffect)(() => {
|
6774
7096
|
if (ZOOM_ON_CHANGE) {
|
6775
7097
|
setShowTransition(true);
|
6776
7098
|
resetAutoZoom(ui);
|
6777
7099
|
}
|
6778
7100
|
}, [ui.viewports.current.width]);
|
6779
|
-
(0,
|
7101
|
+
(0, import_react44.useEffect)(() => {
|
6780
7102
|
const cb = () => {
|
6781
7103
|
setShowTransition(false);
|
6782
7104
|
resetAutoZoom();
|
@@ -6786,13 +7108,13 @@ var Canvas = () => {
|
|
6786
7108
|
window.removeEventListener("resize", cb);
|
6787
7109
|
};
|
6788
7110
|
}, []);
|
6789
|
-
const [showLoader, setShowLoader] = (0,
|
6790
|
-
(0,
|
7111
|
+
const [showLoader, setShowLoader] = (0, import_react44.useState)(false);
|
7112
|
+
(0, import_react44.useEffect)(() => {
|
6791
7113
|
setTimeout(() => {
|
6792
7114
|
setShowLoader(true);
|
6793
7115
|
}, 500);
|
6794
7116
|
}, []);
|
6795
|
-
return /* @__PURE__ */ (0,
|
7117
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
6796
7118
|
"div",
|
6797
7119
|
{
|
6798
7120
|
className: getClassName26({
|
@@ -6805,7 +7127,7 @@ var Canvas = () => {
|
|
6805
7127
|
recordHistory: true
|
6806
7128
|
}),
|
6807
7129
|
children: [
|
6808
|
-
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0,
|
7130
|
+
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: getClassName26("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
6809
7131
|
ViewportControls,
|
6810
7132
|
{
|
6811
7133
|
autoZoom: zoomConfig.autoZoom,
|
@@ -6831,8 +7153,8 @@ var Canvas = () => {
|
|
6831
7153
|
}
|
6832
7154
|
}
|
6833
7155
|
) }),
|
6834
|
-
/* @__PURE__ */ (0,
|
6835
|
-
/* @__PURE__ */ (0,
|
7156
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: getClassName26("inner"), ref: frameRef, children: [
|
7157
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
6836
7158
|
"div",
|
6837
7159
|
{
|
6838
7160
|
className: getClassName26("root"),
|
@@ -6853,10 +7175,10 @@ var Canvas = () => {
|
|
6853
7175
|
})
|
6854
7176
|
);
|
6855
7177
|
},
|
6856
|
-
children: /* @__PURE__ */ (0,
|
7178
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Preview2, {}) })
|
6857
7179
|
}
|
6858
7180
|
),
|
6859
|
-
/* @__PURE__ */ (0,
|
7181
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: getClassName26("loader"), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Loader, { size: 24 }) })
|
6860
7182
|
] })
|
6861
7183
|
]
|
6862
7184
|
}
|
@@ -6865,7 +7187,7 @@ var Canvas = () => {
|
|
6865
7187
|
|
6866
7188
|
// lib/use-loaded-overrides.ts
|
6867
7189
|
init_react_import();
|
6868
|
-
var
|
7190
|
+
var import_react45 = require("react");
|
6869
7191
|
|
6870
7192
|
// lib/load-overrides.ts
|
6871
7193
|
init_react_import();
|
@@ -6904,29 +7226,26 @@ var useLoadedOverrides = ({
|
|
6904
7226
|
overrides,
|
6905
7227
|
plugins
|
6906
7228
|
}) => {
|
6907
|
-
return (0,
|
7229
|
+
return (0, import_react45.useMemo)(() => {
|
6908
7230
|
return loadOverrides({ overrides, plugins });
|
6909
7231
|
}, [plugins, overrides]);
|
6910
7232
|
};
|
6911
7233
|
|
6912
7234
|
// components/DefaultOverride/index.tsx
|
6913
7235
|
init_react_import();
|
6914
|
-
var
|
6915
|
-
var DefaultOverride = ({ children }) => /* @__PURE__ */ (0,
|
6916
|
-
|
6917
|
-
// components/Puck/index.tsx
|
6918
|
-
var import_dom2 = require("@dnd-kit/dom");
|
7236
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
7237
|
+
var DefaultOverride = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
|
6919
7238
|
|
6920
7239
|
// lib/use-inject-css.ts
|
6921
7240
|
init_react_import();
|
6922
|
-
var
|
7241
|
+
var import_react46 = require("react");
|
6923
7242
|
var styles = ``;
|
6924
7243
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
6925
|
-
const [el, setEl] = (0,
|
6926
|
-
(0,
|
7244
|
+
const [el, setEl] = (0, import_react46.useState)();
|
7245
|
+
(0, import_react46.useEffect)(() => {
|
6927
7246
|
setEl(document.createElement("style"));
|
6928
7247
|
}, []);
|
6929
|
-
(0,
|
7248
|
+
(0, import_react46.useEffect)(() => {
|
6930
7249
|
var _a;
|
6931
7250
|
if (!el || typeof window === "undefined") {
|
6932
7251
|
return;
|
@@ -6944,8 +7263,35 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
6944
7263
|
return useInjectStyleSheet(styles, iframeEnabled);
|
6945
7264
|
};
|
6946
7265
|
|
7266
|
+
// lib/use-preview-mode-hotkeys.ts
|
7267
|
+
init_react_import();
|
7268
|
+
var import_react47 = require("react");
|
7269
|
+
var import_react_hotkeys_hook2 = require("react-hotkeys-hook");
|
7270
|
+
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7271
|
+
const toggleInteractive = (0, import_react47.useCallback)(() => {
|
7272
|
+
dispatch({
|
7273
|
+
type: "setUi",
|
7274
|
+
ui: (ui) => ({
|
7275
|
+
previewMode: ui.previewMode === "edit" ? "interactive" : "edit"
|
7276
|
+
})
|
7277
|
+
});
|
7278
|
+
}, [dispatch]);
|
7279
|
+
const toggleInteractiveIframe = () => {
|
7280
|
+
if (iframeEnabled) {
|
7281
|
+
toggleInteractive();
|
7282
|
+
}
|
7283
|
+
};
|
7284
|
+
const frame = getFrame();
|
7285
|
+
const resolvedFrame = typeof window !== "undefined" && frame !== document ? frame : void 0;
|
7286
|
+
(0, import_react_hotkeys_hook2.useHotkeys)("meta+i", toggleInteractive, { preventDefault: true });
|
7287
|
+
(0, import_react_hotkeys_hook2.useHotkeys)("meta+i", toggleInteractiveIframe, {
|
7288
|
+
preventDefault: true,
|
7289
|
+
document: resolvedFrame
|
7290
|
+
});
|
7291
|
+
};
|
7292
|
+
|
6947
7293
|
// components/Puck/index.tsx
|
6948
|
-
var
|
7294
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
6949
7295
|
var getClassName27 = get_class_name_factory_default("Puck", styles_module_default15);
|
6950
7296
|
var getLayoutClassName = get_class_name_factory_default("PuckLayout", styles_module_default15);
|
6951
7297
|
function Puck({
|
@@ -6974,7 +7320,7 @@ function Puck({
|
|
6974
7320
|
waitForStyles: true
|
6975
7321
|
}, _iframe);
|
6976
7322
|
useInjectGlobalCss(iframe.enabled);
|
6977
|
-
const [generatedAppState] = (0,
|
7323
|
+
const [generatedAppState] = (0, import_react48.useState)(() => {
|
6978
7324
|
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
6979
7325
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
6980
7326
|
let clientUiState = {};
|
@@ -7046,14 +7392,14 @@ function Puck({
|
|
7046
7392
|
histories,
|
7047
7393
|
index: initialHistoryIndex
|
7048
7394
|
});
|
7049
|
-
const [reducer] = (0,
|
7395
|
+
const [reducer] = (0, import_react48.useState)(
|
7050
7396
|
() => createReducer({
|
7051
7397
|
config,
|
7052
7398
|
record: historyStore.record,
|
7053
7399
|
onAction
|
7054
7400
|
})
|
7055
7401
|
);
|
7056
|
-
const [appState, dispatch] = (0,
|
7402
|
+
const [appState, dispatch] = (0, import_react48.useReducer)(
|
7057
7403
|
reducer,
|
7058
7404
|
flushZones(initialAppState)
|
7059
7405
|
);
|
@@ -7064,14 +7410,14 @@ function Puck({
|
|
7064
7410
|
historyStore,
|
7065
7411
|
iframeEnabled: (_a = _iframe == null ? void 0 : _iframe.enabled) != null ? _a : true
|
7066
7412
|
});
|
7067
|
-
const [menuOpen, setMenuOpen] = (0,
|
7413
|
+
const [menuOpen, setMenuOpen] = (0, import_react48.useState)(false);
|
7068
7414
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7069
7415
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7070
|
-
(0,
|
7416
|
+
(0, import_react48.useEffect)(() => {
|
7071
7417
|
if (onChange) onChange(data);
|
7072
7418
|
}, [data]);
|
7073
7419
|
const rootProps = data.root.props || data.root;
|
7074
|
-
const toggleSidebars = (0,
|
7420
|
+
const toggleSidebars = (0, import_react48.useCallback)(
|
7075
7421
|
(sidebar) => {
|
7076
7422
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7077
7423
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7085,7 +7431,7 @@ function Puck({
|
|
7085
7431
|
},
|
7086
7432
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7087
7433
|
);
|
7088
|
-
(0,
|
7434
|
+
(0, import_react48.useEffect)(() => {
|
7089
7435
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7090
7436
|
dispatch({
|
7091
7437
|
type: "setUi",
|
@@ -7108,7 +7454,7 @@ function Puck({
|
|
7108
7454
|
window.removeEventListener("resize", handleResize);
|
7109
7455
|
};
|
7110
7456
|
}, []);
|
7111
|
-
const defaultHeaderRender = (0,
|
7457
|
+
const defaultHeaderRender = (0, import_react48.useMemo)(() => {
|
7112
7458
|
if (renderHeader) {
|
7113
7459
|
console.warn(
|
7114
7460
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7116,20 +7462,20 @@ function Puck({
|
|
7116
7462
|
const RenderHeader = (_a2) => {
|
7117
7463
|
var _b2 = _a2, { actions } = _b2, props = __objRest(_b2, ["actions"]);
|
7118
7464
|
const Comp = renderHeader;
|
7119
|
-
return /* @__PURE__ */ (0,
|
7465
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
|
7120
7466
|
};
|
7121
7467
|
return RenderHeader;
|
7122
7468
|
}
|
7123
7469
|
return DefaultOverride;
|
7124
7470
|
}, [renderHeader]);
|
7125
|
-
const defaultHeaderActionsRender = (0,
|
7471
|
+
const defaultHeaderActionsRender = (0, import_react48.useMemo)(() => {
|
7126
7472
|
if (renderHeaderActions) {
|
7127
7473
|
console.warn(
|
7128
7474
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
7129
7475
|
);
|
7130
7476
|
const RenderHeader = (props) => {
|
7131
7477
|
const Comp = renderHeaderActions;
|
7132
|
-
return /* @__PURE__ */ (0,
|
7478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
|
7133
7479
|
};
|
7134
7480
|
return RenderHeader;
|
7135
7481
|
}
|
@@ -7139,27 +7485,27 @@ function Puck({
|
|
7139
7485
|
overrides,
|
7140
7486
|
plugins
|
7141
7487
|
});
|
7142
|
-
const CustomPuck = (0,
|
7488
|
+
const CustomPuck = (0, import_react48.useMemo)(
|
7143
7489
|
() => loadedOverrides.puck || DefaultOverride,
|
7144
7490
|
[loadedOverrides]
|
7145
7491
|
);
|
7146
|
-
const CustomHeader = (0,
|
7492
|
+
const CustomHeader = (0, import_react48.useMemo)(
|
7147
7493
|
() => loadedOverrides.header || defaultHeaderRender,
|
7148
7494
|
[loadedOverrides]
|
7149
7495
|
);
|
7150
|
-
const CustomHeaderActions = (0,
|
7496
|
+
const CustomHeaderActions = (0, import_react48.useMemo)(
|
7151
7497
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7152
7498
|
[loadedOverrides]
|
7153
7499
|
);
|
7154
|
-
const [mounted, setMounted] = (0,
|
7155
|
-
(0,
|
7500
|
+
const [mounted, setMounted] = (0, import_react48.useState)(false);
|
7501
|
+
(0, import_react48.useEffect)(() => {
|
7156
7502
|
setMounted(true);
|
7157
7503
|
}, []);
|
7158
7504
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|
7159
7505
|
const selectedComponentLabel = selectedItem ? (_b = selectedComponentConfig == null ? void 0 : selectedComponentConfig["label"]) != null ? _b : selectedItem.type.toString() : "";
|
7160
|
-
|
7161
|
-
return /* @__PURE__ */ (0,
|
7162
|
-
/* @__PURE__ */ (0,
|
7506
|
+
usePreviewModeHotkeys(dispatch, iframe.enabled);
|
7507
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: `Puck ${getClassName27()}`, children: [
|
7508
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7163
7509
|
AppProvider,
|
7164
7510
|
{
|
7165
7511
|
value: {
|
@@ -7181,7 +7527,7 @@ function Puck({
|
|
7181
7527
|
getPermissions: () => ({}),
|
7182
7528
|
refreshPermissions: () => null
|
7183
7529
|
},
|
7184
|
-
children: /* @__PURE__ */ (0,
|
7530
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(DragDropContext, { disableAutoScroll: dnd == null ? void 0 : dnd.disableAutoScroll, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7185
7531
|
"div",
|
7186
7532
|
{
|
7187
7533
|
className: getLayoutClassName({
|
@@ -7190,60 +7536,60 @@ function Puck({
|
|
7190
7536
|
mounted,
|
7191
7537
|
rightSideBarVisible
|
7192
7538
|
}),
|
7193
|
-
children: /* @__PURE__ */ (0,
|
7194
|
-
/* @__PURE__ */ (0,
|
7539
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("inner"), children: [
|
7540
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7195
7541
|
CustomHeader,
|
7196
7542
|
{
|
7197
|
-
actions: /* @__PURE__ */ (0,
|
7543
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CustomHeaderActions, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7198
7544
|
Button,
|
7199
7545
|
{
|
7200
7546
|
onClick: () => {
|
7201
7547
|
onPublish && onPublish(data);
|
7202
7548
|
},
|
7203
|
-
icon: /* @__PURE__ */ (0,
|
7549
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Globe, { size: "14px" }),
|
7204
7550
|
children: "Publish"
|
7205
7551
|
}
|
7206
7552
|
) }) }),
|
7207
|
-
children: /* @__PURE__ */ (0,
|
7208
|
-
/* @__PURE__ */ (0,
|
7209
|
-
/* @__PURE__ */ (0,
|
7553
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("header", { className: getLayoutClassName("header"), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("headerInner"), children: [
|
7554
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("headerToggle"), children: [
|
7555
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7210
7556
|
"div",
|
7211
7557
|
{
|
7212
7558
|
className: getLayoutClassName("leftSideBarToggle"),
|
7213
|
-
children: /* @__PURE__ */ (0,
|
7559
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7214
7560
|
IconButton,
|
7215
7561
|
{
|
7216
7562
|
onClick: () => {
|
7217
7563
|
toggleSidebars("left");
|
7218
7564
|
},
|
7219
7565
|
title: "Toggle left sidebar",
|
7220
|
-
children: /* @__PURE__ */ (0,
|
7566
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PanelLeft, { focusable: "false" })
|
7221
7567
|
}
|
7222
7568
|
)
|
7223
7569
|
}
|
7224
7570
|
),
|
7225
|
-
/* @__PURE__ */ (0,
|
7571
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7226
7572
|
"div",
|
7227
7573
|
{
|
7228
7574
|
className: getLayoutClassName("rightSideBarToggle"),
|
7229
|
-
children: /* @__PURE__ */ (0,
|
7575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7230
7576
|
IconButton,
|
7231
7577
|
{
|
7232
7578
|
onClick: () => {
|
7233
7579
|
toggleSidebars("right");
|
7234
7580
|
},
|
7235
7581
|
title: "Toggle right sidebar",
|
7236
|
-
children: /* @__PURE__ */ (0,
|
7582
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PanelRight, { focusable: "false" })
|
7237
7583
|
}
|
7238
7584
|
)
|
7239
7585
|
}
|
7240
7586
|
)
|
7241
7587
|
] }),
|
7242
|
-
/* @__PURE__ */ (0,
|
7588
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: getLayoutClassName("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Heading, { rank: "2", size: "xs", children: [
|
7243
7589
|
headerTitle || rootProps.title || "Page",
|
7244
|
-
headerPath && /* @__PURE__ */ (0,
|
7590
|
+
headerPath && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
7245
7591
|
" ",
|
7246
|
-
/* @__PURE__ */ (0,
|
7592
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7247
7593
|
"code",
|
7248
7594
|
{
|
7249
7595
|
className: getLayoutClassName("headerPath"),
|
@@ -7252,31 +7598,31 @@ function Puck({
|
|
7252
7598
|
)
|
7253
7599
|
] })
|
7254
7600
|
] }) }),
|
7255
|
-
/* @__PURE__ */ (0,
|
7256
|
-
/* @__PURE__ */ (0,
|
7601
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("headerTools"), children: [
|
7602
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: getLayoutClassName("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7257
7603
|
IconButton,
|
7258
7604
|
{
|
7259
7605
|
onClick: () => {
|
7260
7606
|
return setMenuOpen(!menuOpen);
|
7261
7607
|
},
|
7262
7608
|
title: "Toggle menu bar",
|
7263
|
-
children: menuOpen ? /* @__PURE__ */ (0,
|
7609
|
+
children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ChevronDown, { focusable: "false" })
|
7264
7610
|
}
|
7265
7611
|
) }),
|
7266
|
-
/* @__PURE__ */ (0,
|
7612
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7267
7613
|
MenuBar,
|
7268
7614
|
{
|
7269
7615
|
appState,
|
7270
7616
|
dispatch,
|
7271
7617
|
onPublish,
|
7272
7618
|
menuOpen,
|
7273
|
-
renderHeaderActions: () => /* @__PURE__ */ (0,
|
7619
|
+
renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CustomHeaderActions, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7274
7620
|
Button,
|
7275
7621
|
{
|
7276
7622
|
onClick: () => {
|
7277
7623
|
onPublish && onPublish(data);
|
7278
7624
|
},
|
7279
|
-
icon: /* @__PURE__ */ (0,
|
7625
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Globe, { size: "14px" }),
|
7280
7626
|
children: "Publish"
|
7281
7627
|
}
|
7282
7628
|
) }),
|
@@ -7287,19 +7633,19 @@ function Puck({
|
|
7287
7633
|
] }) })
|
7288
7634
|
}
|
7289
7635
|
),
|
7290
|
-
/* @__PURE__ */ (0,
|
7291
|
-
/* @__PURE__ */ (0,
|
7292
|
-
/* @__PURE__ */ (0,
|
7636
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("leftSideBar"), children: [
|
7637
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Components, {}) }),
|
7638
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Outline, {}) })
|
7293
7639
|
] }),
|
7294
|
-
/* @__PURE__ */ (0,
|
7295
|
-
/* @__PURE__ */ (0,
|
7640
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Canvas, {}),
|
7641
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: getLayoutClassName("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
7296
7642
|
SidebarSection,
|
7297
7643
|
{
|
7298
7644
|
noPadding: true,
|
7299
7645
|
noBorderTop: true,
|
7300
7646
|
showBreadcrumbs: true,
|
7301
7647
|
title: selectedItem ? selectedComponentLabel : "Page",
|
7302
|
-
children: /* @__PURE__ */ (0,
|
7648
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Fields, {})
|
7303
7649
|
}
|
7304
7650
|
) })
|
7305
7651
|
] })
|
@@ -7307,69 +7653,13 @@ function Puck({
|
|
7307
7653
|
) }) })
|
7308
7654
|
}
|
7309
7655
|
),
|
7310
|
-
/* @__PURE__ */ (0,
|
7656
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { id: "puck-portal-root", className: getClassName27("portal") })
|
7311
7657
|
] });
|
7312
7658
|
}
|
7313
7659
|
Puck.Components = Components;
|
7314
7660
|
Puck.Fields = Fields;
|
7315
7661
|
Puck.Outline = Outline;
|
7316
|
-
Puck.Preview =
|
7317
|
-
|
7318
|
-
// components/Render/index.tsx
|
7319
|
-
init_react_import();
|
7320
|
-
var import_jsx_runtime38 = require("react/jsx-runtime");
|
7321
|
-
function Render({
|
7322
|
-
config,
|
7323
|
-
data
|
7324
|
-
}) {
|
7325
|
-
var _a;
|
7326
|
-
const defaultedData = __spreadProps(__spreadValues({}, data), {
|
7327
|
-
root: data.root || {},
|
7328
|
-
content: data.content || []
|
7329
|
-
});
|
7330
|
-
const rootProps = defaultedData.root.props || defaultedData.root;
|
7331
|
-
const title = (rootProps == null ? void 0 : rootProps.title) || "";
|
7332
|
-
if ((_a = config.root) == null ? void 0 : _a.render) {
|
7333
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
7334
|
-
DropZoneProvider,
|
7335
|
-
{
|
7336
|
-
value: {
|
7337
|
-
data: defaultedData,
|
7338
|
-
config,
|
7339
|
-
mode: "render",
|
7340
|
-
depth: 0,
|
7341
|
-
path: []
|
7342
|
-
},
|
7343
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
7344
|
-
config.root.render,
|
7345
|
-
__spreadProps(__spreadValues({}, rootProps), {
|
7346
|
-
puck: {
|
7347
|
-
renderDropZone: DropZone,
|
7348
|
-
isEditing: false
|
7349
|
-
},
|
7350
|
-
title,
|
7351
|
-
editMode: false,
|
7352
|
-
id: "puck-root",
|
7353
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(DropZone, { zone: rootDroppableId })
|
7354
|
-
})
|
7355
|
-
)
|
7356
|
-
}
|
7357
|
-
);
|
7358
|
-
}
|
7359
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
7360
|
-
DropZoneProvider,
|
7361
|
-
{
|
7362
|
-
value: {
|
7363
|
-
data: defaultedData,
|
7364
|
-
config,
|
7365
|
-
mode: "render",
|
7366
|
-
depth: 0,
|
7367
|
-
path: []
|
7368
|
-
},
|
7369
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(DropZone, { zone: rootDroppableId })
|
7370
|
-
}
|
7371
|
-
);
|
7372
|
-
}
|
7662
|
+
Puck.Preview = Preview2;
|
7373
7663
|
|
7374
7664
|
// lib/migrate.ts
|
7375
7665
|
init_react_import();
|