@measured/puck 0.17.2-canary.f323610 → 0.17.3-canary.f61dd4a
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-7IH6SUIT.mjs → chunk-LNGCTWA7.mjs} +2 -4
- package/dist/index.css +12 -14
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +666 -559
- package/dist/index.mjs +530 -420
- package/dist/rsc.js +2 -4
- package/dist/rsc.mjs +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -289,7 +289,7 @@ init_react_import();
|
|
289
289
|
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" };
|
290
290
|
|
291
291
|
// components/AutoField/index.tsx
|
292
|
-
var
|
292
|
+
var import_react17 = require("react");
|
293
293
|
|
294
294
|
// components/AutoField/fields/index.tsx
|
295
295
|
init_react_import();
|
@@ -951,13 +951,11 @@ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __asy
|
|
951
951
|
onResolveStart(item);
|
952
952
|
}
|
953
953
|
const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, { changed, lastData: oldItem });
|
954
|
-
const { readOnly: existingReadOnly = {} } = item || {};
|
955
|
-
const newReadOnly = __spreadValues(__spreadValues({}, existingReadOnly), readOnly);
|
956
954
|
const resolvedItem = __spreadProps(__spreadValues({}, item), {
|
957
955
|
props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
|
958
956
|
});
|
959
|
-
if (Object.keys(
|
960
|
-
resolvedItem.readOnly =
|
957
|
+
if (Object.keys(readOnly).length) {
|
958
|
+
resolvedItem.readOnly = readOnly;
|
961
959
|
}
|
962
960
|
cache.lastChange[item.props.id] = {
|
963
961
|
item,
|
@@ -1352,7 +1350,7 @@ var Draggable = ({
|
|
1352
1350
|
};
|
1353
1351
|
|
1354
1352
|
// components/AutoField/fields/ArrayField/index.tsx
|
1355
|
-
var
|
1353
|
+
var import_react9 = require("react");
|
1356
1354
|
|
1357
1355
|
// components/DragIcon/index.tsx
|
1358
1356
|
init_react_import();
|
@@ -1366,19 +1364,64 @@ var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1366
1364
|
var getClassName4 = get_class_name_factory_default("DragIcon", styles_module_default5);
|
1367
1365
|
var DragIcon = ({ isDragDisabled }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4({ disabled: isDragDisabled }), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { viewBox: "0 0 20 20", width: "12", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" }) }) });
|
1368
1366
|
|
1367
|
+
// components/AutoField/context.tsx
|
1368
|
+
init_react_import();
|
1369
|
+
var import_react8 = require("react");
|
1370
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
1371
|
+
var NestedFieldContext = (0, import_react8.createContext)({});
|
1372
|
+
var useNestedFieldContext = () => {
|
1373
|
+
const context = (0, import_react8.useContext)(NestedFieldContext);
|
1374
|
+
return __spreadProps(__spreadValues({}, context), {
|
1375
|
+
readOnlyFields: context.readOnlyFields || {}
|
1376
|
+
});
|
1377
|
+
};
|
1378
|
+
var NestedFieldProvider = ({
|
1379
|
+
children,
|
1380
|
+
name,
|
1381
|
+
subName,
|
1382
|
+
wildcardName = name,
|
1383
|
+
readOnlyFields
|
1384
|
+
}) => {
|
1385
|
+
const subPath = `${name}.${subName}`;
|
1386
|
+
const wildcardSubPath = `${wildcardName}.${subName}`;
|
1387
|
+
const subReadOnlyFields = (0, import_react8.useMemo)(
|
1388
|
+
() => Object.keys(readOnlyFields).reduce((acc, readOnlyKey) => {
|
1389
|
+
const isLocal = readOnlyKey.indexOf(subPath) > -1 || readOnlyKey.indexOf(wildcardSubPath) > -1;
|
1390
|
+
if (isLocal) {
|
1391
|
+
const subPathPattern = new RegExp(
|
1392
|
+
`^(${name}|${wildcardName}).`.replace(/\[/g, "\\[").replace(/\]/g, "\\]").replace(/\./g, "\\.").replace(/\*/g, "\\*")
|
1393
|
+
);
|
1394
|
+
const localName = readOnlyKey.replace(subPathPattern, "");
|
1395
|
+
return __spreadProps(__spreadValues({}, acc), {
|
1396
|
+
[localName]: readOnlyFields[readOnlyKey]
|
1397
|
+
});
|
1398
|
+
}
|
1399
|
+
return acc;
|
1400
|
+
}, {}),
|
1401
|
+
[name, subName, wildcardName, readOnlyFields]
|
1402
|
+
);
|
1403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
1404
|
+
NestedFieldContext.Provider,
|
1405
|
+
{
|
1406
|
+
value: { readOnlyFields: subReadOnlyFields, localName: subName },
|
1407
|
+
children
|
1408
|
+
}
|
1409
|
+
);
|
1410
|
+
};
|
1411
|
+
|
1369
1412
|
// components/DragDropContext/index.tsx
|
1370
1413
|
init_react_import();
|
1371
1414
|
var import_dnd3 = require("@measured/dnd");
|
1372
|
-
var
|
1373
|
-
var DefaultDragDropContext = ({ children }) => /* @__PURE__ */ (0,
|
1415
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
1416
|
+
var DefaultDragDropContext = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children });
|
1374
1417
|
var DragDropContext = (props) => {
|
1375
1418
|
const { status } = useAppContext();
|
1376
1419
|
const El = status !== "LOADING" ? import_dnd3.DragDropContext : DefaultDragDropContext;
|
1377
|
-
return /* @__PURE__ */ (0,
|
1420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(El, __spreadValues({}, props));
|
1378
1421
|
};
|
1379
1422
|
|
1380
1423
|
// components/AutoField/fields/ArrayField/index.tsx
|
1381
|
-
var
|
1424
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
1382
1425
|
var getClassName5 = get_class_name_factory_default("ArrayField", styles_module_default3);
|
1383
1426
|
var getClassNameItem = get_class_name_factory_default("ArrayFieldItem", styles_module_default3);
|
1384
1427
|
var ArrayField = ({
|
@@ -1389,10 +1432,10 @@ var ArrayField = ({
|
|
1389
1432
|
label,
|
1390
1433
|
readOnly,
|
1391
1434
|
id,
|
1392
|
-
Label = (props) => /* @__PURE__ */ (0,
|
1435
|
+
Label = (props) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", __spreadValues({}, props))
|
1393
1436
|
}) => {
|
1394
1437
|
const { state, setUi, selectedItem, getPermissions } = useAppContext();
|
1395
|
-
const readOnlyFields =
|
1438
|
+
const { readOnlyFields, localName = name } = useNestedFieldContext();
|
1396
1439
|
const value = _value;
|
1397
1440
|
const arrayState = state.ui.arrayState[id] || {
|
1398
1441
|
items: Array.from(value || []).map((item, idx) => {
|
@@ -1403,11 +1446,11 @@ var ArrayField = ({
|
|
1403
1446
|
}),
|
1404
1447
|
openId: ""
|
1405
1448
|
};
|
1406
|
-
const [localState, setLocalState] = (0,
|
1407
|
-
(0,
|
1449
|
+
const [localState, setLocalState] = (0, import_react9.useState)({ arrayState, value });
|
1450
|
+
(0, import_react9.useEffect)(() => {
|
1408
1451
|
setLocalState({ arrayState, value });
|
1409
1452
|
}, [value, state.ui.arrayState[id]]);
|
1410
|
-
const mapArrayStateToUi = (0,
|
1453
|
+
const mapArrayStateToUi = (0, import_react9.useCallback)(
|
1411
1454
|
(partialArrayState) => {
|
1412
1455
|
return {
|
1413
1456
|
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
@@ -1417,13 +1460,13 @@ var ArrayField = ({
|
|
1417
1460
|
},
|
1418
1461
|
[arrayState]
|
1419
1462
|
);
|
1420
|
-
const getHighestIndex = (0,
|
1463
|
+
const getHighestIndex = (0, import_react9.useCallback)(() => {
|
1421
1464
|
return arrayState.items.reduce(
|
1422
1465
|
(acc, item) => item._originalIndex > acc ? item._originalIndex : acc,
|
1423
1466
|
-1
|
1424
1467
|
);
|
1425
1468
|
}, [arrayState]);
|
1426
|
-
const regenerateArrayState = (0,
|
1469
|
+
const regenerateArrayState = (0, import_react9.useCallback)(
|
1427
1470
|
(value2) => {
|
1428
1471
|
let highestIndex = getHighestIndex();
|
1429
1472
|
const newItems = Array.from(value2 || []).map((item, idx) => {
|
@@ -1442,25 +1485,25 @@ var ArrayField = ({
|
|
1442
1485
|
},
|
1443
1486
|
[arrayState]
|
1444
1487
|
);
|
1445
|
-
(0,
|
1488
|
+
(0, import_react9.useEffect)(() => {
|
1446
1489
|
if (arrayState.items.length > 0) {
|
1447
1490
|
setUi(mapArrayStateToUi(arrayState));
|
1448
1491
|
}
|
1449
1492
|
}, []);
|
1450
|
-
const [hovering, setHovering] = (0,
|
1493
|
+
const [hovering, setHovering] = (0, import_react9.useState)(false);
|
1451
1494
|
const forceReadOnly = getPermissions({ item: selectedItem }).edit === false;
|
1452
1495
|
if (field.type !== "array" || !field.arrayFields) {
|
1453
1496
|
return null;
|
1454
1497
|
}
|
1455
1498
|
const addDisabled = field.max !== void 0 && localState.arrayState.items.length >= field.max || readOnly;
|
1456
|
-
return /* @__PURE__ */ (0,
|
1499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1457
1500
|
Label,
|
1458
1501
|
{
|
1459
1502
|
label: label || name,
|
1460
|
-
icon: /* @__PURE__ */ (0,
|
1503
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(List, { size: 16 }),
|
1461
1504
|
el: "div",
|
1462
1505
|
readOnly,
|
1463
|
-
children: /* @__PURE__ */ (0,
|
1506
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1464
1507
|
DragDropContext,
|
1465
1508
|
{
|
1466
1509
|
onDragEnd: (event) => {
|
@@ -1489,8 +1532,8 @@ var ArrayField = ({
|
|
1489
1532
|
});
|
1490
1533
|
}
|
1491
1534
|
},
|
1492
|
-
children: /* @__PURE__ */ (0,
|
1493
|
-
return /* @__PURE__ */ (0,
|
1535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
|
1536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
1494
1537
|
"div",
|
1495
1538
|
__spreadProps(__spreadValues({}, provided.droppableProps), {
|
1496
1539
|
ref: provided.innerRef,
|
@@ -1514,7 +1557,7 @@ var ArrayField = ({
|
|
1514
1557
|
localState.arrayState.items.map((item, i) => {
|
1515
1558
|
const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
|
1516
1559
|
const data = Array.from(localState.value || [])[i] || {};
|
1517
|
-
return /* @__PURE__ */ (0,
|
1560
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1518
1561
|
Draggable,
|
1519
1562
|
{
|
1520
1563
|
id: _arrayId,
|
@@ -1525,8 +1568,8 @@ var ArrayField = ({
|
|
1525
1568
|
readOnly
|
1526
1569
|
}),
|
1527
1570
|
isDragDisabled: readOnly || !hovering,
|
1528
|
-
children: () => /* @__PURE__ */ (0,
|
1529
|
-
/* @__PURE__ */ (0,
|
1571
|
+
children: () => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
|
1572
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
1530
1573
|
"div",
|
1531
1574
|
{
|
1532
1575
|
onClick: () => {
|
@@ -1547,9 +1590,9 @@ var ArrayField = ({
|
|
1547
1590
|
className: getClassNameItem("summary"),
|
1548
1591
|
children: [
|
1549
1592
|
field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
|
1550
|
-
/* @__PURE__ */ (0,
|
1551
|
-
!readOnly && /* @__PURE__ */ (0,
|
1552
|
-
/* @__PURE__ */ (0,
|
1593
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassNameItem("rhs"), children: [
|
1594
|
+
!readOnly && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassNameItem("actions"), children: [
|
1595
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1553
1596
|
IconButton,
|
1554
1597
|
{
|
1555
1598
|
type: "button",
|
@@ -1572,10 +1615,10 @@ var ArrayField = ({
|
|
1572
1615
|
);
|
1573
1616
|
},
|
1574
1617
|
title: "Duplicate",
|
1575
|
-
children: /* @__PURE__ */ (0,
|
1618
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Copy, { size: 16 })
|
1576
1619
|
}
|
1577
1620
|
) }),
|
1578
|
-
/* @__PURE__ */ (0,
|
1621
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1579
1622
|
IconButton,
|
1580
1623
|
{
|
1581
1624
|
type: "button",
|
@@ -1598,40 +1641,57 @@ var ArrayField = ({
|
|
1598
1641
|
);
|
1599
1642
|
},
|
1600
1643
|
title: "Delete",
|
1601
|
-
children: /* @__PURE__ */ (0,
|
1644
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Trash, { size: 16 })
|
1602
1645
|
}
|
1603
1646
|
) })
|
1604
1647
|
] }),
|
1605
|
-
/* @__PURE__ */ (0,
|
1648
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DragIcon, {}) })
|
1606
1649
|
] })
|
1607
1650
|
]
|
1608
1651
|
}
|
1609
1652
|
),
|
1610
|
-
/* @__PURE__ */ (0,
|
1611
|
-
(
|
1612
|
-
const subField = field.arrayFields[
|
1613
|
-
const
|
1614
|
-
const
|
1615
|
-
const
|
1616
|
-
|
1617
|
-
|
1653
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassNameItem("body"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("fieldset", { className: getClassNameItem("fieldset"), children: Object.keys(field.arrayFields).map(
|
1654
|
+
(subName) => {
|
1655
|
+
const subField = field.arrayFields[subName];
|
1656
|
+
const indexName = `${name}[${i}]`;
|
1657
|
+
const subPath = `${indexName}.${subName}`;
|
1658
|
+
const localIndexName = `${localName}[${i}]`;
|
1659
|
+
const localWildcardName = `${localName}[*]`;
|
1660
|
+
const localSubPath = `${localIndexName}.${subName}`;
|
1661
|
+
const localWildcardSubPath = `${localWildcardName}.${subName}`;
|
1662
|
+
const subReadOnly = forceReadOnly ? forceReadOnly : typeof readOnlyFields[subPath] !== "undefined" ? readOnlyFields[localSubPath] : readOnlyFields[localWildcardSubPath];
|
1663
|
+
const label2 = subField.label || subName;
|
1664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1665
|
+
NestedFieldProvider,
|
1618
1666
|
{
|
1619
|
-
name:
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1667
|
+
name: localIndexName,
|
1668
|
+
wildcardName: localWildcardName,
|
1669
|
+
subName,
|
1670
|
+
readOnlyFields,
|
1671
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1672
|
+
AutoFieldPrivate,
|
1673
|
+
{
|
1674
|
+
name: subPath,
|
1675
|
+
label: label2,
|
1676
|
+
id: `${_arrayId}_${subName}`,
|
1677
|
+
readOnly: subReadOnly,
|
1678
|
+
field: __spreadProps(__spreadValues({}, subField), {
|
1679
|
+
label: label2
|
1680
|
+
// May be used by custom fields
|
1681
|
+
}),
|
1682
|
+
value: data[subName],
|
1683
|
+
onChange: (val, ui) => {
|
1684
|
+
onChange(
|
1685
|
+
replace(value, i, __spreadProps(__spreadValues({}, data), {
|
1686
|
+
[subName]: val
|
1687
|
+
})),
|
1688
|
+
ui
|
1689
|
+
);
|
1690
|
+
}
|
1691
|
+
}
|
1692
|
+
)
|
1633
1693
|
},
|
1634
|
-
|
1694
|
+
subPath
|
1635
1695
|
);
|
1636
1696
|
}
|
1637
1697
|
) }) })
|
@@ -1641,7 +1701,7 @@ var ArrayField = ({
|
|
1641
1701
|
);
|
1642
1702
|
}),
|
1643
1703
|
provided.placeholder,
|
1644
|
-
!addDisabled && /* @__PURE__ */ (0,
|
1704
|
+
!addDisabled && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
1645
1705
|
"button",
|
1646
1706
|
{
|
1647
1707
|
type: "button",
|
@@ -1655,7 +1715,7 @@ var ArrayField = ({
|
|
1655
1715
|
const newArrayState = regenerateArrayState(newValue);
|
1656
1716
|
onChange(newValue, mapArrayStateToUi(newArrayState));
|
1657
1717
|
},
|
1658
|
-
children: /* @__PURE__ */ (0,
|
1718
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Plus, { size: 21 })
|
1659
1719
|
}
|
1660
1720
|
)
|
1661
1721
|
]
|
@@ -1670,7 +1730,7 @@ var ArrayField = ({
|
|
1670
1730
|
|
1671
1731
|
// components/AutoField/fields/DefaultField/index.tsx
|
1672
1732
|
init_react_import();
|
1673
|
-
var
|
1733
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
1674
1734
|
var getClassName6 = get_class_name_factory_default("Input", styles_module_default2);
|
1675
1735
|
var DefaultField = ({
|
1676
1736
|
field,
|
@@ -1682,16 +1742,16 @@ var DefaultField = ({
|
|
1682
1742
|
Label,
|
1683
1743
|
id
|
1684
1744
|
}) => {
|
1685
|
-
return /* @__PURE__ */ (0,
|
1745
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
1686
1746
|
Label,
|
1687
1747
|
{
|
1688
1748
|
label: label || name,
|
1689
|
-
icon: /* @__PURE__ */ (0,
|
1690
|
-
field.type === "text" && /* @__PURE__ */ (0,
|
1691
|
-
field.type === "number" && /* @__PURE__ */ (0,
|
1749
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
1750
|
+
field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Type, { size: 16 }),
|
1751
|
+
field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Hash, { size: 16 })
|
1692
1752
|
] }),
|
1693
1753
|
readOnly,
|
1694
|
-
children: /* @__PURE__ */ (0,
|
1754
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
1695
1755
|
"input",
|
1696
1756
|
{
|
1697
1757
|
className: getClassName6("input"),
|
@@ -1702,7 +1762,14 @@ var DefaultField = ({
|
|
1702
1762
|
value: typeof value === "undefined" ? "" : value.toString(),
|
1703
1763
|
onChange: (e) => {
|
1704
1764
|
if (field.type === "number") {
|
1705
|
-
|
1765
|
+
const numberValue = Number(e.currentTarget.value);
|
1766
|
+
if (typeof field.min !== "undefined" && numberValue < field.min) {
|
1767
|
+
return;
|
1768
|
+
}
|
1769
|
+
if (typeof field.max !== "undefined" && numberValue > field.max) {
|
1770
|
+
return;
|
1771
|
+
}
|
1772
|
+
onChange(numberValue);
|
1706
1773
|
} else {
|
1707
1774
|
onChange(e.currentTarget.value);
|
1708
1775
|
}
|
@@ -1720,11 +1787,11 @@ var DefaultField = ({
|
|
1720
1787
|
|
1721
1788
|
// components/AutoField/fields/ExternalField/index.tsx
|
1722
1789
|
init_react_import();
|
1723
|
-
var
|
1790
|
+
var import_react13 = require("react");
|
1724
1791
|
|
1725
1792
|
// components/ExternalInput/index.tsx
|
1726
1793
|
init_react_import();
|
1727
|
-
var
|
1794
|
+
var import_react12 = require("react");
|
1728
1795
|
|
1729
1796
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
|
1730
1797
|
init_react_import();
|
@@ -1732,7 +1799,7 @@ var styles_module_default6 = { "ExternalInput-actions": "_ExternalInput-actions_
|
|
1732
1799
|
|
1733
1800
|
// components/Modal/index.tsx
|
1734
1801
|
init_react_import();
|
1735
|
-
var
|
1802
|
+
var import_react10 = require("react");
|
1736
1803
|
|
1737
1804
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Modal/styles.module.css#css-module
|
1738
1805
|
init_react_import();
|
@@ -1740,22 +1807,22 @@ var styles_module_default7 = { "Modal": "_Modal_ikbaj_1", "Modal--isOpen": "_Mod
|
|
1740
1807
|
|
1741
1808
|
// components/Modal/index.tsx
|
1742
1809
|
var import_react_dom = require("react-dom");
|
1743
|
-
var
|
1810
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
1744
1811
|
var getClassName7 = get_class_name_factory_default("Modal", styles_module_default7);
|
1745
1812
|
var Modal = ({
|
1746
1813
|
children,
|
1747
1814
|
onClose,
|
1748
1815
|
isOpen
|
1749
1816
|
}) => {
|
1750
|
-
const [rootEl, setRootEl] = (0,
|
1751
|
-
(0,
|
1817
|
+
const [rootEl, setRootEl] = (0, import_react10.useState)(null);
|
1818
|
+
(0, import_react10.useEffect)(() => {
|
1752
1819
|
setRootEl(document.getElementById("puck-portal-root"));
|
1753
1820
|
}, []);
|
1754
1821
|
if (!rootEl) {
|
1755
|
-
return /* @__PURE__ */ (0,
|
1822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", {});
|
1756
1823
|
}
|
1757
1824
|
return (0, import_react_dom.createPortal)(
|
1758
|
-
/* @__PURE__ */ (0,
|
1825
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName7({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
1759
1826
|
"div",
|
1760
1827
|
{
|
1761
1828
|
className: getClassName7("inner"),
|
@@ -1775,11 +1842,11 @@ init_react_import();
|
|
1775
1842
|
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" };
|
1776
1843
|
|
1777
1844
|
// components/Heading/index.tsx
|
1778
|
-
var
|
1845
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
1779
1846
|
var getClassName8 = get_class_name_factory_default("Heading", styles_module_default8);
|
1780
1847
|
var Heading = ({ children, rank, size = "m" }) => {
|
1781
1848
|
const Tag = rank ? `h${rank}` : "span";
|
1782
|
-
return /* @__PURE__ */ (0,
|
1849
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
1783
1850
|
Tag,
|
1784
1851
|
{
|
1785
1852
|
className: getClassName8({
|
@@ -1795,63 +1862,35 @@ init_react_import();
|
|
1795
1862
|
|
1796
1863
|
// components/Button/Button.tsx
|
1797
1864
|
init_react_import();
|
1798
|
-
var
|
1865
|
+
var import_react11 = require("react");
|
1799
1866
|
|
1800
1867
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css#css-module
|
1801
1868
|
init_react_import();
|
1802
1869
|
var Button_module_default = { "Button": "_Button_1t64k_1", "Button--medium": "_Button--medium_1t64k_29", "Button--large": "_Button--large_1t64k_37", "Button-icon": "_Button-icon_1t64k_44", "Button--primary": "_Button--primary_1t64k_48", "Button--secondary": "_Button--secondary_1t64k_67", "Button--flush": "_Button--flush_1t64k_84", "Button--disabled": "_Button--disabled_1t64k_88", "Button--fullWidth": "_Button--fullWidth_1t64k_95", "Button-spinner": "_Button-spinner_1t64k_100" };
|
1803
1870
|
|
1804
|
-
// lib/filter-data-attrs.ts
|
1805
|
-
init_react_import();
|
1806
|
-
var dataAttrRe = /^(data-.*)$/;
|
1807
|
-
var filterDataAttrs = (props) => {
|
1808
|
-
let filteredProps = {};
|
1809
|
-
for (const prop in props) {
|
1810
|
-
if (Object.prototype.hasOwnProperty.call(props, prop) && dataAttrRe.test(prop)) {
|
1811
|
-
filteredProps[prop] = props[prop];
|
1812
|
-
}
|
1813
|
-
}
|
1814
|
-
return filteredProps;
|
1815
|
-
};
|
1816
|
-
|
1817
1871
|
// components/Button/Button.tsx
|
1818
|
-
var
|
1872
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
1819
1873
|
var getClassName9 = get_class_name_factory_default("Button", Button_module_default);
|
1820
|
-
var Button = (
|
1821
|
-
|
1822
|
-
|
1823
|
-
|
1824
|
-
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
"href",
|
1837
|
-
"onClick",
|
1838
|
-
"variant",
|
1839
|
-
"type",
|
1840
|
-
"disabled",
|
1841
|
-
"tabIndex",
|
1842
|
-
"newTab",
|
1843
|
-
"fullWidth",
|
1844
|
-
"icon",
|
1845
|
-
"size",
|
1846
|
-
"loading"
|
1847
|
-
]);
|
1848
|
-
const [loading, setLoading] = (0, import_react10.useState)(loadingProp);
|
1849
|
-
(0, import_react10.useEffect)(() => setLoading(loadingProp), [loadingProp]);
|
1874
|
+
var Button = ({
|
1875
|
+
children,
|
1876
|
+
href,
|
1877
|
+
onClick,
|
1878
|
+
variant = "primary",
|
1879
|
+
type,
|
1880
|
+
disabled,
|
1881
|
+
tabIndex,
|
1882
|
+
newTab,
|
1883
|
+
fullWidth,
|
1884
|
+
icon,
|
1885
|
+
size = "medium",
|
1886
|
+
loading: loadingProp = false
|
1887
|
+
}) => {
|
1888
|
+
const [loading, setLoading] = (0, import_react11.useState)(loadingProp);
|
1889
|
+
(0, import_react11.useEffect)(() => setLoading(loadingProp), [loadingProp]);
|
1850
1890
|
const ElementType = href ? "a" : type ? "button" : "span";
|
1851
|
-
const
|
1852
|
-
const el = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
1891
|
+
const el = /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
1853
1892
|
ElementType,
|
1854
|
-
|
1893
|
+
{
|
1855
1894
|
className: getClassName9({
|
1856
1895
|
primary: variant === "primary",
|
1857
1896
|
secondary: variant === "secondary",
|
@@ -1871,20 +1910,19 @@ var Button = (_a) => {
|
|
1871
1910
|
tabIndex,
|
1872
1911
|
target: newTab ? "_blank" : void 0,
|
1873
1912
|
rel: newTab ? "noreferrer" : void 0,
|
1874
|
-
href
|
1875
|
-
}, dataAttrs), {
|
1913
|
+
href,
|
1876
1914
|
children: [
|
1877
|
-
icon && /* @__PURE__ */ (0,
|
1915
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName9("icon"), children: icon }),
|
1878
1916
|
children,
|
1879
|
-
loading && /* @__PURE__ */ (0,
|
1917
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName9("spinner"), children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Loader, { size: 14 }) })
|
1880
1918
|
]
|
1881
|
-
}
|
1919
|
+
}
|
1882
1920
|
);
|
1883
1921
|
return el;
|
1884
1922
|
};
|
1885
1923
|
|
1886
1924
|
// components/ExternalInput/index.tsx
|
1887
|
-
var
|
1925
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
1888
1926
|
var getClassName10 = get_class_name_factory_default("ExternalInput", styles_module_default6);
|
1889
1927
|
var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_module_default6);
|
1890
1928
|
var dataCache = {};
|
@@ -1901,28 +1939,28 @@ var ExternalInput = ({
|
|
1901
1939
|
mapRow = (val) => val,
|
1902
1940
|
filterFields
|
1903
1941
|
} = field || {};
|
1904
|
-
const [data, setData] = (0,
|
1905
|
-
const [isOpen, setOpen] = (0,
|
1906
|
-
const [isLoading, setIsLoading] = (0,
|
1942
|
+
const [data, setData] = (0, import_react12.useState)([]);
|
1943
|
+
const [isOpen, setOpen] = (0, import_react12.useState)(false);
|
1944
|
+
const [isLoading, setIsLoading] = (0, import_react12.useState)(true);
|
1907
1945
|
const hasFilterFields = !!filterFields;
|
1908
|
-
const [filters, setFilters] = (0,
|
1909
|
-
const [filtersToggled, setFiltersToggled] = (0,
|
1910
|
-
const mappedData = (0,
|
1946
|
+
const [filters, setFilters] = (0, import_react12.useState)(field.initialFilters || {});
|
1947
|
+
const [filtersToggled, setFiltersToggled] = (0, import_react12.useState)(hasFilterFields);
|
1948
|
+
const mappedData = (0, import_react12.useMemo)(() => {
|
1911
1949
|
return data.map(mapRow);
|
1912
1950
|
}, [data]);
|
1913
|
-
const keys = (0,
|
1951
|
+
const keys = (0, import_react12.useMemo)(() => {
|
1914
1952
|
const validKeys = /* @__PURE__ */ new Set();
|
1915
1953
|
for (const item of mappedData) {
|
1916
1954
|
for (const key of Object.keys(item)) {
|
1917
|
-
if (typeof item[key] === "string" || typeof item[key] === "number" || (0,
|
1955
|
+
if (typeof item[key] === "string" || typeof item[key] === "number" || (0, import_react12.isValidElement)(item[key])) {
|
1918
1956
|
validKeys.add(key);
|
1919
1957
|
}
|
1920
1958
|
}
|
1921
1959
|
}
|
1922
1960
|
return Array.from(validKeys);
|
1923
1961
|
}, [mappedData]);
|
1924
|
-
const [searchQuery, setSearchQuery] = (0,
|
1925
|
-
const search = (0,
|
1962
|
+
const [searchQuery, setSearchQuery] = (0, import_react12.useState)(field.initialQuery || "");
|
1963
|
+
const search = (0, import_react12.useCallback)(
|
1926
1964
|
(query, filters2) => __async(void 0, null, function* () {
|
1927
1965
|
setIsLoading(true);
|
1928
1966
|
const cacheKey = `${id}-${query}-${JSON.stringify(filters2)}`;
|
@@ -1935,18 +1973,18 @@ var ExternalInput = ({
|
|
1935
1973
|
}),
|
1936
1974
|
[id, field]
|
1937
1975
|
);
|
1938
|
-
const Footer = (0,
|
1939
|
-
(props) => field.renderFooter ? field.renderFooter(props) : /* @__PURE__ */ (0,
|
1976
|
+
const Footer = (0, import_react12.useCallback)(
|
1977
|
+
(props) => field.renderFooter ? field.renderFooter(props) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: getClassNameModal("footer"), children: [
|
1940
1978
|
props.items.length,
|
1941
1979
|
" result",
|
1942
1980
|
props.items.length === 1 ? "" : "s"
|
1943
1981
|
] }),
|
1944
1982
|
[field.renderFooter]
|
1945
1983
|
);
|
1946
|
-
(0,
|
1984
|
+
(0, import_react12.useEffect)(() => {
|
1947
1985
|
search(searchQuery, filters);
|
1948
1986
|
}, []);
|
1949
|
-
return /* @__PURE__ */ (0,
|
1987
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
1950
1988
|
"div",
|
1951
1989
|
{
|
1952
1990
|
className: getClassName10({
|
@@ -1956,21 +1994,21 @@ var ExternalInput = ({
|
|
1956
1994
|
}),
|
1957
1995
|
id,
|
1958
1996
|
children: [
|
1959
|
-
/* @__PURE__ */ (0,
|
1960
|
-
/* @__PURE__ */ (0,
|
1997
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName10("actions"), children: [
|
1998
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
1961
1999
|
"button",
|
1962
2000
|
{
|
1963
2001
|
type: "button",
|
1964
2002
|
onClick: () => setOpen(true),
|
1965
2003
|
className: getClassName10("button"),
|
1966
2004
|
disabled: readOnly,
|
1967
|
-
children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0,
|
1968
|
-
/* @__PURE__ */ (0,
|
1969
|
-
/* @__PURE__ */ (0,
|
2005
|
+
children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
2006
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Link, { size: "16" }),
|
2007
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: field.placeholder })
|
1970
2008
|
] })
|
1971
2009
|
}
|
1972
2010
|
),
|
1973
|
-
value && /* @__PURE__ */ (0,
|
2011
|
+
value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
1974
2012
|
"button",
|
1975
2013
|
{
|
1976
2014
|
type: "button",
|
@@ -1979,11 +2017,11 @@ var ExternalInput = ({
|
|
1979
2017
|
onChange(null);
|
1980
2018
|
},
|
1981
2019
|
disabled: readOnly,
|
1982
|
-
children: /* @__PURE__ */ (0,
|
2020
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LockOpen, { size: 16 })
|
1983
2021
|
}
|
1984
2022
|
)
|
1985
2023
|
] }),
|
1986
|
-
/* @__PURE__ */ (0,
|
2024
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
1987
2025
|
"form",
|
1988
2026
|
{
|
1989
2027
|
className: getClassNameModal({
|
@@ -1997,11 +2035,11 @@ var ExternalInput = ({
|
|
1997
2035
|
search(searchQuery, filters);
|
1998
2036
|
},
|
1999
2037
|
children: [
|
2000
|
-
/* @__PURE__ */ (0,
|
2001
|
-
/* @__PURE__ */ (0,
|
2002
|
-
/* @__PURE__ */ (0,
|
2003
|
-
/* @__PURE__ */ (0,
|
2004
|
-
/* @__PURE__ */ (0,
|
2038
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
|
2039
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: getClassNameModal("search"), children: [
|
2040
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
|
2041
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Search, { size: "18" }) }),
|
2042
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2005
2043
|
"input",
|
2006
2044
|
{
|
2007
2045
|
className: getClassNameModal("searchInput"),
|
@@ -2016,9 +2054,9 @@ var ExternalInput = ({
|
|
2016
2054
|
}
|
2017
2055
|
)
|
2018
2056
|
] }),
|
2019
|
-
/* @__PURE__ */ (0,
|
2020
|
-
/* @__PURE__ */ (0,
|
2021
|
-
hasFilterFields && /* @__PURE__ */ (0,
|
2057
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
|
2058
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
|
2059
|
+
hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2022
2060
|
IconButton,
|
2023
2061
|
{
|
2024
2062
|
title: "Toggle filters",
|
@@ -2027,15 +2065,15 @@ var ExternalInput = ({
|
|
2027
2065
|
e.stopPropagation();
|
2028
2066
|
setFiltersToggled(!filtersToggled);
|
2029
2067
|
},
|
2030
|
-
children: /* @__PURE__ */ (0,
|
2068
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlidersHorizontal, { size: 20 })
|
2031
2069
|
}
|
2032
2070
|
) })
|
2033
2071
|
] })
|
2034
|
-
] }) : /* @__PURE__ */ (0,
|
2035
|
-
/* @__PURE__ */ (0,
|
2036
|
-
hasFilterFields && /* @__PURE__ */ (0,
|
2072
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Heading, { rank: "2", size: "xs", children: field.placeholder || "Select data" }) }),
|
2073
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("grid"), children: [
|
2074
|
+
hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
|
2037
2075
|
const filterField = filterFields[fieldName];
|
2038
|
-
return /* @__PURE__ */ (0,
|
2076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2039
2077
|
AutoFieldPrivate,
|
2040
2078
|
{
|
2041
2079
|
field: filterField,
|
@@ -2052,9 +2090,9 @@ var ExternalInput = ({
|
|
2052
2090
|
fieldName
|
2053
2091
|
);
|
2054
2092
|
}) }),
|
2055
|
-
/* @__PURE__ */ (0,
|
2056
|
-
/* @__PURE__ */ (0,
|
2057
|
-
/* @__PURE__ */ (0,
|
2093
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
|
2094
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("table", { className: getClassNameModal("table"), children: [
|
2095
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("thead", { className: getClassNameModal("thead"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tr", { className: getClassNameModal("tr"), children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2058
2096
|
"th",
|
2059
2097
|
{
|
2060
2098
|
className: getClassNameModal("th"),
|
@@ -2063,8 +2101,8 @@ var ExternalInput = ({
|
|
2063
2101
|
},
|
2064
2102
|
key
|
2065
2103
|
)) }) }),
|
2066
|
-
/* @__PURE__ */ (0,
|
2067
|
-
return /* @__PURE__ */ (0,
|
2104
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
|
2105
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
2068
2106
|
"tr",
|
2069
2107
|
{
|
2070
2108
|
style: { whiteSpace: "nowrap" },
|
@@ -2073,16 +2111,16 @@ var ExternalInput = ({
|
|
2073
2111
|
onChange(mapProp(data[i]));
|
2074
2112
|
setOpen(false);
|
2075
2113
|
},
|
2076
|
-
children: keys.map((key) => /* @__PURE__ */ (0,
|
2114
|
+
children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
|
2077
2115
|
},
|
2078
2116
|
i
|
2079
2117
|
);
|
2080
2118
|
}) })
|
2081
2119
|
] }),
|
2082
|
-
/* @__PURE__ */ (0,
|
2120
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("loadingBanner"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Loader, { size: 24 }) })
|
2083
2121
|
] })
|
2084
2122
|
] }),
|
2085
|
-
/* @__PURE__ */ (0,
|
2123
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("footerContainer"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Footer, { items: mappedData }) })
|
2086
2124
|
]
|
2087
2125
|
}
|
2088
2126
|
) })
|
@@ -2092,7 +2130,7 @@ var ExternalInput = ({
|
|
2092
2130
|
};
|
2093
2131
|
|
2094
2132
|
// components/AutoField/fields/ExternalField/index.tsx
|
2095
|
-
var
|
2133
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
2096
2134
|
var ExternalField = ({
|
2097
2135
|
field,
|
2098
2136
|
onChange,
|
@@ -2106,7 +2144,7 @@ var ExternalField = ({
|
|
2106
2144
|
var _a, _b, _c;
|
2107
2145
|
const validField = field;
|
2108
2146
|
const deprecatedField = field;
|
2109
|
-
(0,
|
2147
|
+
(0, import_react13.useEffect)(() => {
|
2110
2148
|
if (deprecatedField.adaptor) {
|
2111
2149
|
console.error(
|
2112
2150
|
"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."
|
@@ -2116,7 +2154,7 @@ var ExternalField = ({
|
|
2116
2154
|
if (field.type !== "external") {
|
2117
2155
|
return null;
|
2118
2156
|
}
|
2119
|
-
return /* @__PURE__ */ (0,
|
2157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Label, { label: label || name, icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { size: 16 }), el: "div", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
2120
2158
|
ExternalInput,
|
2121
2159
|
{
|
2122
2160
|
name,
|
@@ -2141,7 +2179,7 @@ var ExternalField = ({
|
|
2141
2179
|
|
2142
2180
|
// components/AutoField/fields/RadioField/index.tsx
|
2143
2181
|
init_react_import();
|
2144
|
-
var
|
2182
|
+
var import_react14 = require("react");
|
2145
2183
|
|
2146
2184
|
// lib/safe-json-parse.ts
|
2147
2185
|
init_react_import();
|
@@ -2155,7 +2193,7 @@ var safeJsonParse = (str) => {
|
|
2155
2193
|
};
|
2156
2194
|
|
2157
2195
|
// components/AutoField/fields/RadioField/index.tsx
|
2158
|
-
var
|
2196
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
2159
2197
|
var getClassName11 = get_class_name_factory_default("Input", styles_module_default2);
|
2160
2198
|
var RadioField = ({
|
2161
2199
|
field,
|
@@ -2167,26 +2205,26 @@ var RadioField = ({
|
|
2167
2205
|
label,
|
2168
2206
|
Label
|
2169
2207
|
}) => {
|
2170
|
-
const flatOptions = (0,
|
2208
|
+
const flatOptions = (0, import_react14.useMemo)(
|
2171
2209
|
() => field.type === "radio" ? field.options.map(({ value: value2 }) => value2) : [],
|
2172
2210
|
[field]
|
2173
2211
|
);
|
2174
2212
|
if (field.type !== "radio" || !field.options) {
|
2175
2213
|
return null;
|
2176
2214
|
}
|
2177
|
-
return /* @__PURE__ */ (0,
|
2215
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
2178
2216
|
Label,
|
2179
2217
|
{
|
2180
|
-
icon: /* @__PURE__ */ (0,
|
2218
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CircleCheckBig, { size: 16 }),
|
2181
2219
|
label: label || name,
|
2182
2220
|
readOnly,
|
2183
2221
|
el: "div",
|
2184
|
-
children: /* @__PURE__ */ (0,
|
2222
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName11("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
2185
2223
|
"label",
|
2186
2224
|
{
|
2187
2225
|
className: getClassName11("radio"),
|
2188
2226
|
children: [
|
2189
|
-
/* @__PURE__ */ (0,
|
2227
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
2190
2228
|
"input",
|
2191
2229
|
{
|
2192
2230
|
type: "radio",
|
@@ -2206,7 +2244,7 @@ var RadioField = ({
|
|
2206
2244
|
checked: value === option.value
|
2207
2245
|
}
|
2208
2246
|
),
|
2209
|
-
/* @__PURE__ */ (0,
|
2247
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName11("radioInner"), children: option.label || option.value })
|
2210
2248
|
]
|
2211
2249
|
},
|
2212
2250
|
option.label + option.value
|
@@ -2217,8 +2255,8 @@ var RadioField = ({
|
|
2217
2255
|
|
2218
2256
|
// components/AutoField/fields/SelectField/index.tsx
|
2219
2257
|
init_react_import();
|
2220
|
-
var
|
2221
|
-
var
|
2258
|
+
var import_react15 = require("react");
|
2259
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
2222
2260
|
var getClassName12 = get_class_name_factory_default("Input", styles_module_default2);
|
2223
2261
|
var SelectField = ({
|
2224
2262
|
field,
|
@@ -2230,20 +2268,20 @@ var SelectField = ({
|
|
2230
2268
|
readOnly,
|
2231
2269
|
id
|
2232
2270
|
}) => {
|
2233
|
-
const flatOptions = (0,
|
2271
|
+
const flatOptions = (0, import_react15.useMemo)(
|
2234
2272
|
() => field.type === "select" ? field.options.map(({ value: value2 }) => value2) : [],
|
2235
2273
|
[field]
|
2236
2274
|
);
|
2237
2275
|
if (field.type !== "select" || !field.options) {
|
2238
2276
|
return null;
|
2239
2277
|
}
|
2240
|
-
return /* @__PURE__ */ (0,
|
2278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
2241
2279
|
Label,
|
2242
2280
|
{
|
2243
2281
|
label: label || name,
|
2244
|
-
icon: /* @__PURE__ */ (0,
|
2282
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDown, { size: 16 }),
|
2245
2283
|
readOnly,
|
2246
|
-
children: /* @__PURE__ */ (0,
|
2284
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
2247
2285
|
"select",
|
2248
2286
|
{
|
2249
2287
|
id,
|
@@ -2260,7 +2298,7 @@ var SelectField = ({
|
|
2260
2298
|
}
|
2261
2299
|
},
|
2262
2300
|
value,
|
2263
|
-
children: field.options.map((option) => /* @__PURE__ */ (0,
|
2301
|
+
children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
2264
2302
|
"option",
|
2265
2303
|
{
|
2266
2304
|
label: option.label,
|
@@ -2276,7 +2314,7 @@ var SelectField = ({
|
|
2276
2314
|
|
2277
2315
|
// components/AutoField/fields/TextareaField/index.tsx
|
2278
2316
|
init_react_import();
|
2279
|
-
var
|
2317
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
2280
2318
|
var getClassName13 = get_class_name_factory_default("Input", styles_module_default2);
|
2281
2319
|
var TextareaField = ({
|
2282
2320
|
onChange,
|
@@ -2287,7 +2325,7 @@ var TextareaField = ({
|
|
2287
2325
|
Label,
|
2288
2326
|
id
|
2289
2327
|
}) => {
|
2290
|
-
return /* @__PURE__ */ (0,
|
2328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Label, { label: label || name, icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Type, { size: 16 }), readOnly, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
2291
2329
|
"textarea",
|
2292
2330
|
{
|
2293
2331
|
id,
|
@@ -2314,7 +2352,7 @@ init_react_import();
|
|
2314
2352
|
var styles_module_default9 = { "ObjectField": "_ObjectField_1ua3y_5", "ObjectField-fieldset": "_ObjectField-fieldset_1ua3y_13" };
|
2315
2353
|
|
2316
2354
|
// components/AutoField/fields/ObjectField/index.tsx
|
2317
|
-
var
|
2355
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
2318
2356
|
var getClassName14 = get_class_name_factory_default("ObjectField", styles_module_default9);
|
2319
2357
|
var ObjectField = ({
|
2320
2358
|
field,
|
@@ -2326,43 +2364,54 @@ var ObjectField = ({
|
|
2326
2364
|
readOnly,
|
2327
2365
|
id
|
2328
2366
|
}) => {
|
2329
|
-
const {
|
2367
|
+
const { readOnlyFields, localName = name } = useNestedFieldContext();
|
2330
2368
|
if (field.type !== "object" || !field.objectFields) {
|
2331
2369
|
return null;
|
2332
2370
|
}
|
2333
|
-
const readOnlyFields = (selectedItem == null ? void 0 : selectedItem.readOnly) || {};
|
2334
2371
|
const data = value || {};
|
2335
|
-
return /* @__PURE__ */ (0,
|
2372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
2336
2373
|
Label,
|
2337
2374
|
{
|
2338
2375
|
label: label || name,
|
2339
|
-
icon: /* @__PURE__ */ (0,
|
2376
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(EllipsisVertical, { size: 16 }),
|
2340
2377
|
el: "div",
|
2341
2378
|
readOnly,
|
2342
|
-
children: /* @__PURE__ */ (0,
|
2343
|
-
const subField = field.objectFields[
|
2344
|
-
const
|
2345
|
-
const
|
2346
|
-
const subReadOnly = readOnly ? readOnly :
|
2347
|
-
|
2348
|
-
|
2379
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14(), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("fieldset", { className: getClassName14("fieldset"), children: Object.keys(field.objectFields).map((subName) => {
|
2380
|
+
const subField = field.objectFields[subName];
|
2381
|
+
const subPath = `${name}.${subName}`;
|
2382
|
+
const localSubPath = `${localName || name}.${subName}`;
|
2383
|
+
const subReadOnly = readOnly ? readOnly : readOnlyFields[localSubPath];
|
2384
|
+
const label2 = subField.label || subName;
|
2385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
2386
|
+
NestedFieldProvider,
|
2349
2387
|
{
|
2350
|
-
name:
|
2351
|
-
|
2352
|
-
|
2353
|
-
|
2354
|
-
|
2355
|
-
|
2356
|
-
|
2357
|
-
|
2358
|
-
|
2359
|
-
|
2388
|
+
name: localName || id,
|
2389
|
+
subName,
|
2390
|
+
readOnlyFields,
|
2391
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
2392
|
+
AutoFieldPrivate,
|
2393
|
+
{
|
2394
|
+
name: subPath,
|
2395
|
+
label: subPath,
|
2396
|
+
id: `${id}_${subName}`,
|
2397
|
+
readOnly: subReadOnly,
|
2398
|
+
field: __spreadProps(__spreadValues({}, subField), {
|
2399
|
+
label: label2
|
2400
|
+
// May be used by custom fields
|
2360
2401
|
}),
|
2361
|
-
|
2362
|
-
|
2363
|
-
|
2402
|
+
value: data[subName],
|
2403
|
+
onChange: (val, ui) => {
|
2404
|
+
onChange(
|
2405
|
+
__spreadProps(__spreadValues({}, data), {
|
2406
|
+
[subName]: val
|
2407
|
+
}),
|
2408
|
+
ui
|
2409
|
+
);
|
2410
|
+
}
|
2411
|
+
}
|
2412
|
+
)
|
2364
2413
|
},
|
2365
|
-
|
2414
|
+
subPath
|
2366
2415
|
);
|
2367
2416
|
}) }) })
|
2368
2417
|
}
|
@@ -2371,7 +2420,7 @@ var ObjectField = ({
|
|
2371
2420
|
|
2372
2421
|
// lib/use-safe-id.ts
|
2373
2422
|
init_react_import();
|
2374
|
-
var
|
2423
|
+
var import_react16 = __toESM(require("react"));
|
2375
2424
|
|
2376
2425
|
// lib/generate-id.ts
|
2377
2426
|
init_react_import();
|
@@ -2380,15 +2429,15 @@ var generateId = (type) => type ? `${type}-${(0, import_uuid.v4)()}` : (0, impor
|
|
2380
2429
|
|
2381
2430
|
// lib/use-safe-id.ts
|
2382
2431
|
var useSafeId = () => {
|
2383
|
-
if (typeof
|
2384
|
-
return
|
2432
|
+
if (typeof import_react16.default.useId !== "undefined") {
|
2433
|
+
return import_react16.default.useId();
|
2385
2434
|
}
|
2386
|
-
const [id] = (0,
|
2435
|
+
const [id] = (0, import_react16.useState)(generateId());
|
2387
2436
|
return id;
|
2388
2437
|
};
|
2389
2438
|
|
2390
2439
|
// components/AutoField/index.tsx
|
2391
|
-
var
|
2440
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
2392
2441
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
|
2393
2442
|
var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
|
2394
2443
|
var FieldLabel = ({
|
@@ -2400,16 +2449,16 @@ var FieldLabel = ({
|
|
2400
2449
|
className
|
2401
2450
|
}) => {
|
2402
2451
|
const El = el;
|
2403
|
-
return /* @__PURE__ */ (0,
|
2404
|
-
/* @__PURE__ */ (0,
|
2405
|
-
icon ? /* @__PURE__ */ (0,
|
2452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(El, { className, children: [
|
2453
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: getClassName15("label"), children: [
|
2454
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName15("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_jsx_runtime21.Fragment, {}),
|
2406
2455
|
label,
|
2407
|
-
readOnly && /* @__PURE__ */ (0,
|
2456
|
+
readOnly && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName15("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Lock, { size: "12" }) })
|
2408
2457
|
] }),
|
2409
2458
|
children
|
2410
2459
|
] });
|
2411
2460
|
};
|
2412
|
-
var
|
2461
|
+
var FieldLabelInternal = ({
|
2413
2462
|
children,
|
2414
2463
|
icon,
|
2415
2464
|
label,
|
@@ -2417,14 +2466,14 @@ var FieldLabelInternal2 = ({
|
|
2417
2466
|
readOnly
|
2418
2467
|
}) => {
|
2419
2468
|
const { overrides } = useAppContext();
|
2420
|
-
const Wrapper = (0,
|
2469
|
+
const Wrapper = (0, import_react17.useMemo)(
|
2421
2470
|
() => overrides.fieldLabel || FieldLabel,
|
2422
2471
|
[overrides]
|
2423
2472
|
);
|
2424
2473
|
if (!label) {
|
2425
|
-
return /* @__PURE__ */ (0,
|
2474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_jsx_runtime21.Fragment, { children });
|
2426
2475
|
}
|
2427
|
-
return /* @__PURE__ */ (0,
|
2476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
2428
2477
|
Wrapper,
|
2429
2478
|
{
|
2430
2479
|
label,
|
@@ -2438,8 +2487,9 @@ var FieldLabelInternal2 = ({
|
|
2438
2487
|
};
|
2439
2488
|
function AutoFieldInternal(props) {
|
2440
2489
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2441
|
-
const { dispatch, overrides } = useAppContext();
|
2442
|
-
const
|
2490
|
+
const { dispatch, overrides, selectedItem } = useAppContext();
|
2491
|
+
const nestedFieldContext = (0, import_react17.useContext)(NestedFieldContext);
|
2492
|
+
const { id, Label = FieldLabelInternal } = props;
|
2443
2493
|
const field = props.field;
|
2444
2494
|
const label = field.label;
|
2445
2495
|
const defaultId = useSafeId();
|
@@ -2470,7 +2520,7 @@ function AutoFieldInternal(props) {
|
|
2470
2520
|
Label,
|
2471
2521
|
id: resolvedId
|
2472
2522
|
});
|
2473
|
-
const onFocus = (0,
|
2523
|
+
const onFocus = (0, import_react17.useCallback)(
|
2474
2524
|
(e) => {
|
2475
2525
|
if (mergedProps.name && e.target.nodeName === "INPUT") {
|
2476
2526
|
e.stopPropagation();
|
@@ -2484,7 +2534,7 @@ function AutoFieldInternal(props) {
|
|
2484
2534
|
},
|
2485
2535
|
[mergedProps.name]
|
2486
2536
|
);
|
2487
|
-
const onBlur = (0,
|
2537
|
+
const onBlur = (0, import_react17.useCallback)((e) => {
|
2488
2538
|
if ("name" in e.target) {
|
2489
2539
|
dispatch({
|
2490
2540
|
type: "setUi",
|
@@ -2499,27 +2549,36 @@ function AutoFieldInternal(props) {
|
|
2499
2549
|
return null;
|
2500
2550
|
}
|
2501
2551
|
const CustomField = field.render;
|
2502
|
-
return /* @__PURE__ */ (0,
|
2552
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassNameWrapper(), onFocus, onBlur, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName15(), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(CustomField, __spreadValues({}, mergedProps)) }) });
|
2503
2553
|
}
|
2504
2554
|
const children = defaultFields[field.type](mergedProps);
|
2505
2555
|
const Render2 = render[field.type];
|
2506
|
-
return /* @__PURE__ */ (0,
|
2507
|
-
|
2556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
2557
|
+
NestedFieldContext.Provider,
|
2508
2558
|
{
|
2509
|
-
|
2510
|
-
|
2511
|
-
|
2512
|
-
onClick: (e) => {
|
2513
|
-
e.stopPropagation();
|
2559
|
+
value: {
|
2560
|
+
readOnlyFields: nestedFieldContext.readOnlyFields || (selectedItem == null ? void 0 : selectedItem.readOnly) || {},
|
2561
|
+
localName: nestedFieldContext.localName
|
2514
2562
|
},
|
2515
|
-
children: /* @__PURE__ */ (0,
|
2563
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
2564
|
+
"div",
|
2565
|
+
{
|
2566
|
+
className: getClassNameWrapper(),
|
2567
|
+
onFocus,
|
2568
|
+
onBlur,
|
2569
|
+
onClick: (e) => {
|
2570
|
+
e.stopPropagation();
|
2571
|
+
},
|
2572
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }))
|
2573
|
+
}
|
2574
|
+
)
|
2516
2575
|
}
|
2517
2576
|
);
|
2518
2577
|
}
|
2519
2578
|
function AutoFieldPrivate(props) {
|
2520
2579
|
const { state } = useAppContext();
|
2521
2580
|
const { value, onChange } = props;
|
2522
|
-
const [localValue, setLocalValue] = (0,
|
2581
|
+
const [localValue, setLocalValue] = (0, import_react17.useState)(value);
|
2523
2582
|
const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
|
2524
2583
|
(val, ui) => {
|
2525
2584
|
onChange(val, ui);
|
@@ -2527,11 +2586,11 @@ function AutoFieldPrivate(props) {
|
|
2527
2586
|
50,
|
2528
2587
|
{ leading: true }
|
2529
2588
|
);
|
2530
|
-
const onChangeLocal = (0,
|
2589
|
+
const onChangeLocal = (0, import_react17.useCallback)((val, ui) => {
|
2531
2590
|
setLocalValue(val);
|
2532
2591
|
onChangeDb(val, ui);
|
2533
2592
|
}, []);
|
2534
|
-
(0,
|
2593
|
+
(0, import_react17.useEffect)(() => {
|
2535
2594
|
if (state.ui.field.focus !== props.name) {
|
2536
2595
|
setLocalValue(value);
|
2537
2596
|
}
|
@@ -2540,11 +2599,11 @@ function AutoFieldPrivate(props) {
|
|
2540
2599
|
value: localValue,
|
2541
2600
|
onChange: onChangeLocal
|
2542
2601
|
};
|
2543
|
-
return /* @__PURE__ */ (0,
|
2602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AutoFieldInternal, __spreadValues(__spreadValues({}, props), localProps));
|
2544
2603
|
}
|
2545
2604
|
function AutoField(props) {
|
2546
|
-
const DefaultLabel = (0,
|
2547
|
-
const DefaultLabel2 = (labelProps) => /* @__PURE__ */ (0,
|
2605
|
+
const DefaultLabel = (0, import_react17.useMemo)(() => {
|
2606
|
+
const DefaultLabel2 = (labelProps) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
2548
2607
|
"div",
|
2549
2608
|
__spreadProps(__spreadValues({}, labelProps), {
|
2550
2609
|
className: getClassName15({ readOnly: props.readOnly })
|
@@ -2552,7 +2611,7 @@ function AutoField(props) {
|
|
2552
2611
|
);
|
2553
2612
|
return DefaultLabel2;
|
2554
2613
|
}, [props.readOnly]);
|
2555
|
-
return /* @__PURE__ */ (0,
|
2614
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AutoFieldInternal, __spreadProps(__spreadValues({}, props), { Label: DefaultLabel }));
|
2556
2615
|
}
|
2557
2616
|
|
2558
2617
|
// components/Drawer/index.tsx
|
@@ -2563,11 +2622,11 @@ init_react_import();
|
|
2563
2622
|
var styles_module_default10 = { "Drawer": "_Drawer_1oa7v_1", "DrawerItem--disabled": "_DrawerItem--disabled_1oa7v_5", "DrawerItem-draggable": "_DrawerItem-draggable_1oa7v_5", "DrawerItem-default": "_DrawerItem-default_1oa7v_11", "DrawerItem-draggableWrapper": "_DrawerItem-draggableWrapper_1oa7v_11", "DrawerItem": "_DrawerItem_1oa7v_5", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_1oa7v_36", "DrawerItem-name": "_DrawerItem-name_1oa7v_54" };
|
2564
2623
|
|
2565
2624
|
// components/Drawer/index.tsx
|
2566
|
-
var
|
2567
|
-
var
|
2625
|
+
var import_react18 = require("react");
|
2626
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
2568
2627
|
var getClassName16 = get_class_name_factory_default("Drawer", styles_module_default10);
|
2569
2628
|
var getClassNameItem2 = get_class_name_factory_default("DrawerItem", styles_module_default10);
|
2570
|
-
var drawerContext = (0,
|
2629
|
+
var drawerContext = (0, import_react18.createContext)({
|
2571
2630
|
droppableId: ""
|
2572
2631
|
});
|
2573
2632
|
var DrawerDraggable = ({
|
@@ -2576,7 +2635,7 @@ var DrawerDraggable = ({
|
|
2576
2635
|
index,
|
2577
2636
|
isDragDisabled
|
2578
2637
|
}) => {
|
2579
|
-
return /* @__PURE__ */ (0,
|
2638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
2580
2639
|
Draggable,
|
2581
2640
|
{
|
2582
2641
|
id,
|
@@ -2598,21 +2657,21 @@ var DrawerItem = ({
|
|
2598
2657
|
index,
|
2599
2658
|
isDragDisabled
|
2600
2659
|
}) => {
|
2601
|
-
const ctx = (0,
|
2660
|
+
const ctx = (0, import_react18.useContext)(drawerContext);
|
2602
2661
|
const resolvedId = `${ctx.droppableId}::${id || name}`;
|
2603
|
-
const CustomInner = (0,
|
2604
|
-
() => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0,
|
2662
|
+
const CustomInner = (0, import_react18.useMemo)(
|
2663
|
+
() => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: getClassNameItem2("default"), children: children2 })),
|
2605
2664
|
[children]
|
2606
2665
|
);
|
2607
|
-
return /* @__PURE__ */ (0,
|
2666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
2608
2667
|
DrawerDraggable,
|
2609
2668
|
{
|
2610
2669
|
id: resolvedId,
|
2611
2670
|
index,
|
2612
2671
|
isDragDisabled,
|
2613
|
-
children: /* @__PURE__ */ (0,
|
2614
|
-
/* @__PURE__ */ (0,
|
2615
|
-
/* @__PURE__ */ (0,
|
2672
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CustomInner, { name, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: getClassNameItem2("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: getClassNameItem2("draggable"), children: [
|
2673
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: getClassNameItem2("name"), children: label != null ? label : name }),
|
2674
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: getClassNameItem2("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DragIcon, { isDragDisabled }) })
|
2616
2675
|
] }) }) })
|
2617
2676
|
}
|
2618
2677
|
);
|
@@ -2623,7 +2682,7 @@ var Drawer = ({
|
|
2623
2682
|
direction = "vertical"
|
2624
2683
|
}) => {
|
2625
2684
|
const droppableId = `component-list:${_droppableId}`;
|
2626
|
-
return /* @__PURE__ */ (0,
|
2685
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(drawerContext.Provider, { value: { droppableId }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Droppable, { droppableId, isDropDisabled: true, direction, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
2627
2686
|
"div",
|
2628
2687
|
__spreadProps(__spreadValues({}, provided.droppableProps), {
|
2629
2688
|
ref: provided.innerRef,
|
@@ -2632,7 +2691,7 @@ var Drawer = ({
|
|
2632
2691
|
}),
|
2633
2692
|
children: [
|
2634
2693
|
children,
|
2635
|
-
/* @__PURE__ */ (0,
|
2694
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
|
2636
2695
|
]
|
2637
2696
|
})
|
2638
2697
|
) }) });
|
@@ -2641,11 +2700,11 @@ Drawer.Item = DrawerItem;
|
|
2641
2700
|
|
2642
2701
|
// components/DropZone/index.tsx
|
2643
2702
|
init_react_import();
|
2644
|
-
var
|
2703
|
+
var import_react22 = require("react");
|
2645
2704
|
|
2646
2705
|
// components/DraggableComponent/index.tsx
|
2647
2706
|
init_react_import();
|
2648
|
-
var
|
2707
|
+
var import_react20 = require("react");
|
2649
2708
|
var import_dnd4 = require("@measured/dnd");
|
2650
2709
|
|
2651
2710
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
|
@@ -2654,10 +2713,10 @@ var styles_module_default11 = { "DraggableComponent": "_DraggableComponent_1bhad
|
|
2654
2713
|
|
2655
2714
|
// lib/use-modifier-held.ts
|
2656
2715
|
init_react_import();
|
2657
|
-
var
|
2716
|
+
var import_react19 = require("react");
|
2658
2717
|
var useModifierHeld = (modifier) => {
|
2659
|
-
const [modifierHeld, setModifierHeld] = (0,
|
2660
|
-
(0,
|
2718
|
+
const [modifierHeld, setModifierHeld] = (0, import_react19.useState)(false);
|
2719
|
+
(0, import_react19.useEffect)(() => {
|
2661
2720
|
function downHandler({ key }) {
|
2662
2721
|
if (key === modifier) {
|
2663
2722
|
setModifierHeld(true);
|
@@ -2691,7 +2750,7 @@ var isIos = () => [
|
|
2691
2750
|
navigator.userAgent.includes("Mac") && "ontouchend" in document;
|
2692
2751
|
|
2693
2752
|
// components/DraggableComponent/index.tsx
|
2694
|
-
var
|
2753
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
2695
2754
|
var getClassName17 = get_class_name_factory_default("DraggableComponent", styles_module_default11);
|
2696
2755
|
var space = 8;
|
2697
2756
|
var actionsOverlayTop = space * 6.5;
|
@@ -2700,7 +2759,7 @@ var actionsRight = space;
|
|
2700
2759
|
var DefaultActionBar = ({
|
2701
2760
|
label,
|
2702
2761
|
children
|
2703
|
-
}) => /* @__PURE__ */ (0,
|
2762
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ActionBar, { label, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ActionBar.Group, { children }) });
|
2704
2763
|
var DraggableComponent = ({
|
2705
2764
|
children,
|
2706
2765
|
id,
|
@@ -2726,28 +2785,28 @@ var DraggableComponent = ({
|
|
2726
2785
|
const { zoomConfig, status, overrides, selectedItem, getPermissions } = useAppContext();
|
2727
2786
|
const isModifierHeld = useModifierHeld("Alt");
|
2728
2787
|
const El = status !== "LOADING" ? import_dnd4.Draggable : DefaultDraggable;
|
2729
|
-
(0,
|
2730
|
-
const [disableSecondaryAnimation, setDisableSecondaryAnimation] = (0,
|
2731
|
-
(0,
|
2788
|
+
(0, import_react20.useEffect)(onMount, []);
|
2789
|
+
const [disableSecondaryAnimation, setDisableSecondaryAnimation] = (0, import_react20.useState)(false);
|
2790
|
+
(0, import_react20.useEffect)(() => {
|
2732
2791
|
if (isIos()) {
|
2733
2792
|
setDisableSecondaryAnimation(true);
|
2734
2793
|
}
|
2735
2794
|
}, []);
|
2736
|
-
const CustomActionBar = (0,
|
2795
|
+
const CustomActionBar = (0, import_react20.useMemo)(
|
2737
2796
|
() => overrides.actionBar || DefaultActionBar,
|
2738
2797
|
[overrides.actionBar]
|
2739
2798
|
);
|
2740
2799
|
const permissions = getPermissions({
|
2741
2800
|
item: selectedItem
|
2742
2801
|
});
|
2743
|
-
return /* @__PURE__ */ (0,
|
2802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
2744
2803
|
El,
|
2745
2804
|
{
|
2746
2805
|
draggableId: id,
|
2747
2806
|
index,
|
2748
2807
|
isDragDisabled,
|
2749
2808
|
disableSecondaryAnimation,
|
2750
|
-
children: (provided, snapshot) => /* @__PURE__ */ (0,
|
2809
|
+
children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
2751
2810
|
"div",
|
2752
2811
|
__spreadProps(__spreadValues(__spreadValues({
|
2753
2812
|
ref: provided.innerRef
|
@@ -2770,15 +2829,15 @@ var DraggableComponent = ({
|
|
2770
2829
|
onClick,
|
2771
2830
|
children: [
|
2772
2831
|
debug,
|
2773
|
-
isLoading && /* @__PURE__ */ (0,
|
2774
|
-
isSelected && /* @__PURE__ */ (0,
|
2832
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: getClassName17("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Loader, {}) }),
|
2833
|
+
isSelected && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
2775
2834
|
"div",
|
2776
2835
|
{
|
2777
2836
|
className: getClassName17("actionsOverlay"),
|
2778
2837
|
style: {
|
2779
2838
|
top: actionsOverlayTop / zoomConfig.zoom
|
2780
2839
|
},
|
2781
|
-
children: /* @__PURE__ */ (0,
|
2840
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
2782
2841
|
"div",
|
2783
2842
|
{
|
2784
2843
|
className: getClassName17("actions"),
|
@@ -2787,16 +2846,16 @@ var DraggableComponent = ({
|
|
2787
2846
|
top: actionsTop / zoomConfig.zoom,
|
2788
2847
|
right: actionsRight / zoomConfig.zoom
|
2789
2848
|
},
|
2790
|
-
children: /* @__PURE__ */ (0,
|
2791
|
-
permissions.duplicate && /* @__PURE__ */ (0,
|
2792
|
-
permissions.delete && /* @__PURE__ */ (0,
|
2849
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(CustomActionBar, { label, children: [
|
2850
|
+
permissions.duplicate && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ActionBar.Action, { onClick: onDuplicate, label: "Duplicate", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Copy, { size: 16 }) }),
|
2851
|
+
permissions.delete && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ActionBar.Action, { onClick: onDelete, label: "Delete", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Trash, { size: 16 }) })
|
2793
2852
|
] })
|
2794
2853
|
}
|
2795
2854
|
)
|
2796
2855
|
}
|
2797
2856
|
),
|
2798
|
-
/* @__PURE__ */ (0,
|
2799
|
-
/* @__PURE__ */ (0,
|
2857
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: getClassName17("overlay") }),
|
2858
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: getClassName17("contents"), children })
|
2800
2859
|
]
|
2801
2860
|
})
|
2802
2861
|
)
|
@@ -2811,7 +2870,7 @@ var styles_module_default12 = { "DropZone": "_DropZone_djoti_1", "DropZone-conte
|
|
2811
2870
|
|
2812
2871
|
// components/DropZone/context.tsx
|
2813
2872
|
init_react_import();
|
2814
|
-
var
|
2873
|
+
var import_react21 = require("react");
|
2815
2874
|
var import_use_debounce2 = require("use-debounce");
|
2816
2875
|
|
2817
2876
|
// lib/get-zone-id.ts
|
@@ -2827,30 +2886,30 @@ var getZoneId = (zoneCompound) => {
|
|
2827
2886
|
};
|
2828
2887
|
|
2829
2888
|
// components/DropZone/context.tsx
|
2830
|
-
var
|
2831
|
-
var dropZoneContext = (0,
|
2889
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
2890
|
+
var dropZoneContext = (0, import_react21.createContext)(null);
|
2832
2891
|
var DropZoneProvider = ({
|
2833
2892
|
children,
|
2834
2893
|
value
|
2835
2894
|
}) => {
|
2836
|
-
const [hoveringArea, setHoveringArea] = (0,
|
2837
|
-
const [hoveringZone, setHoveringZone] = (0,
|
2895
|
+
const [hoveringArea, setHoveringArea] = (0, import_react21.useState)(null);
|
2896
|
+
const [hoveringZone, setHoveringZone] = (0, import_react21.useState)(
|
2838
2897
|
rootDroppableId
|
2839
2898
|
);
|
2840
|
-
const [hoveringComponent, setHoveringComponent] = (0,
|
2899
|
+
const [hoveringComponent, setHoveringComponent] = (0, import_react21.useState)();
|
2841
2900
|
const [hoveringAreaDb] = (0, import_use_debounce2.useDebounce)(hoveringArea, 75, { leading: false });
|
2842
|
-
const [areasWithZones, setAreasWithZones] = (0,
|
2901
|
+
const [areasWithZones, setAreasWithZones] = (0, import_react21.useState)(
|
2843
2902
|
{}
|
2844
2903
|
);
|
2845
|
-
const [activeZones, setActiveZones] = (0,
|
2904
|
+
const [activeZones, setActiveZones] = (0, import_react21.useState)({});
|
2846
2905
|
const { dispatch = null } = value ? value : {};
|
2847
|
-
const registerZoneArea = (0,
|
2906
|
+
const registerZoneArea = (0, import_react21.useCallback)(
|
2848
2907
|
(area) => {
|
2849
2908
|
setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
|
2850
2909
|
},
|
2851
2910
|
[setAreasWithZones]
|
2852
2911
|
);
|
2853
|
-
const registerZone = (0,
|
2912
|
+
const registerZone = (0, import_react21.useCallback)(
|
2854
2913
|
(zoneCompound) => {
|
2855
2914
|
if (!dispatch) {
|
2856
2915
|
return;
|
@@ -2863,7 +2922,7 @@ var DropZoneProvider = ({
|
|
2863
2922
|
},
|
2864
2923
|
[setActiveZones, dispatch]
|
2865
2924
|
);
|
2866
|
-
const unregisterZone = (0,
|
2925
|
+
const unregisterZone = (0, import_react21.useCallback)(
|
2867
2926
|
(zoneCompound) => {
|
2868
2927
|
if (!dispatch) {
|
2869
2928
|
return;
|
@@ -2878,8 +2937,8 @@ var DropZoneProvider = ({
|
|
2878
2937
|
},
|
2879
2938
|
[setActiveZones, dispatch]
|
2880
2939
|
);
|
2881
|
-
const [pathData, setPathData] = (0,
|
2882
|
-
const registerPath = (0,
|
2940
|
+
const [pathData, setPathData] = (0, import_react21.useState)();
|
2941
|
+
const registerPath = (0, import_react21.useCallback)(
|
2883
2942
|
(selector) => {
|
2884
2943
|
if (!(value == null ? void 0 : value.data)) {
|
2885
2944
|
return;
|
@@ -2904,8 +2963,8 @@ var DropZoneProvider = ({
|
|
2904
2963
|
},
|
2905
2964
|
[value, setPathData]
|
2906
2965
|
);
|
2907
|
-
const [zoneWillDrag, setZoneWillDrag] = (0,
|
2908
|
-
return /* @__PURE__ */ (0,
|
2966
|
+
const [zoneWillDrag, setZoneWillDrag] = (0, import_react21.useState)("");
|
2967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
2909
2968
|
dropZoneContext.Provider,
|
2910
2969
|
{
|
2911
2970
|
value: __spreadValues({
|
@@ -2931,12 +2990,12 @@ var DropZoneProvider = ({
|
|
2931
2990
|
};
|
2932
2991
|
|
2933
2992
|
// components/DropZone/index.tsx
|
2934
|
-
var
|
2993
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
2935
2994
|
var getClassName18 = get_class_name_factory_default("DropZone", styles_module_default12);
|
2936
2995
|
function DropZoneEdit({ zone, allow, disallow, style }) {
|
2937
2996
|
var _a;
|
2938
2997
|
const appContext2 = useAppContext();
|
2939
|
-
const ctx = (0,
|
2998
|
+
const ctx = (0, import_react22.useContext)(dropZoneContext);
|
2940
2999
|
const {
|
2941
3000
|
// These all need setting via context
|
2942
3001
|
data,
|
@@ -2955,12 +3014,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
2955
3014
|
} = ctx || {};
|
2956
3015
|
let content = data.content || [];
|
2957
3016
|
let zoneCompound = rootDroppableId;
|
2958
|
-
(0,
|
3017
|
+
(0, import_react22.useEffect)(() => {
|
2959
3018
|
if (areaId && registerZoneArea) {
|
2960
3019
|
registerZoneArea(areaId);
|
2961
3020
|
}
|
2962
3021
|
}, [areaId]);
|
2963
|
-
(0,
|
3022
|
+
(0, import_react22.useEffect)(() => {
|
2964
3023
|
if (ctx == null ? void 0 : ctx.registerZone) {
|
2965
3024
|
ctx == null ? void 0 : ctx.registerZone(zoneCompound);
|
2966
3025
|
}
|
@@ -2986,7 +3045,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
2986
3045
|
const draggingOverArea = userIsDragging && zoneArea === draggedSourceArea;
|
2987
3046
|
const draggingNewComponent = draggedSourceId == null ? void 0 : draggedSourceId.startsWith("component-list");
|
2988
3047
|
if (!(ctx == null ? void 0 : ctx.config) || !ctx.setHoveringArea || !ctx.setHoveringZone || !ctx.setHoveringComponent || !ctx.setItemSelector || !ctx.registerPath || !ctx.dispatch) {
|
2989
|
-
return /* @__PURE__ */ (0,
|
3048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { children: "DropZone requires context to work." });
|
2990
3049
|
}
|
2991
3050
|
const {
|
2992
3051
|
hoveringArea = "root",
|
@@ -3027,7 +3086,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3027
3086
|
}
|
3028
3087
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
3029
3088
|
const isAreaSelected = selectedItem && zoneArea === selectedItem.props.id;
|
3030
|
-
return /* @__PURE__ */ (0,
|
3089
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3031
3090
|
"div",
|
3032
3091
|
{
|
3033
3092
|
className: getClassName18({
|
@@ -3044,14 +3103,14 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3044
3103
|
onMouseUp: () => {
|
3045
3104
|
setZoneWillDrag("");
|
3046
3105
|
},
|
3047
|
-
children: /* @__PURE__ */ (0,
|
3106
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3048
3107
|
Droppable,
|
3049
3108
|
{
|
3050
3109
|
droppableId: zoneCompound,
|
3051
3110
|
direction: "vertical",
|
3052
3111
|
isDropDisabled: !isEnabled,
|
3053
3112
|
children: (provided, snapshot) => {
|
3054
|
-
return /* @__PURE__ */ (0,
|
3113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
3055
3114
|
"div",
|
3056
3115
|
__spreadProps(__spreadValues({}, (provided || { droppableProps: {} }).droppableProps), {
|
3057
3116
|
className: getClassName18("content"),
|
@@ -3081,7 +3140,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3081
3140
|
"draggable-"
|
3082
3141
|
)[1] === componentId;
|
3083
3142
|
const containsZone = areasWithZones ? areasWithZones[componentId] : false;
|
3084
|
-
const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0,
|
3143
|
+
const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { style: { padding: 48, textAlign: "center" }, children: [
|
3085
3144
|
"No configuration for ",
|
3086
3145
|
item.type
|
3087
3146
|
] });
|
@@ -3093,19 +3152,19 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3093
3152
|
appContext2.state.data
|
3094
3153
|
)
|
3095
3154
|
}).drag;
|
3096
|
-
return /* @__PURE__ */ (0,
|
3155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
3097
3156
|
"div",
|
3098
3157
|
{
|
3099
3158
|
className: getClassName18("item"),
|
3100
3159
|
style: { zIndex: isDragging ? 1 : void 0 },
|
3101
3160
|
children: [
|
3102
|
-
/* @__PURE__ */ (0,
|
3161
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3103
3162
|
DropZoneProvider,
|
3104
3163
|
{
|
3105
3164
|
value: __spreadProps(__spreadValues({}, ctx), {
|
3106
3165
|
areaId: componentId
|
3107
3166
|
}),
|
3108
|
-
children: /* @__PURE__ */ (0,
|
3167
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3109
3168
|
DraggableComponent,
|
3110
3169
|
{
|
3111
3170
|
label,
|
@@ -3173,12 +3232,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3173
3232
|
style: {
|
3174
3233
|
pointerEvents: userIsDragging && draggingNewComponent ? "all" : void 0
|
3175
3234
|
},
|
3176
|
-
children: /* @__PURE__ */ (0,
|
3235
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: getClassName18("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Render2, __spreadValues({}, defaultedProps)) })
|
3177
3236
|
}
|
3178
3237
|
)
|
3179
3238
|
}
|
3180
3239
|
),
|
3181
|
-
userIsDragging && /* @__PURE__ */ (0,
|
3240
|
+
userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3182
3241
|
"div",
|
3183
3242
|
{
|
3184
3243
|
className: getClassName18("hitbox"),
|
@@ -3195,7 +3254,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3195
3254
|
);
|
3196
3255
|
}),
|
3197
3256
|
provided == null ? void 0 : provided.placeholder,
|
3198
|
-
(snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0,
|
3257
|
+
(snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3199
3258
|
"div",
|
3200
3259
|
{
|
3201
3260
|
"data-puck-placeholder": true,
|
@@ -3216,7 +3275,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3216
3275
|
);
|
3217
3276
|
}
|
3218
3277
|
function DropZoneRender({ zone }) {
|
3219
|
-
const ctx = (0,
|
3278
|
+
const ctx = (0, import_react22.useContext)(dropZoneContext);
|
3220
3279
|
const { data, areaId = "root", config } = ctx || {};
|
3221
3280
|
let zoneCompound = rootDroppableId;
|
3222
3281
|
let content = (data == null ? void 0 : data.content) || [];
|
@@ -3227,14 +3286,14 @@ function DropZoneRender({ zone }) {
|
|
3227
3286
|
zoneCompound = `${areaId}:${zone}`;
|
3228
3287
|
content = setupZone(data, zoneCompound).zones[zoneCompound];
|
3229
3288
|
}
|
3230
|
-
return /* @__PURE__ */ (0,
|
3289
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children: content.map((item) => {
|
3231
3290
|
const Component = config.components[item.type];
|
3232
3291
|
if (Component) {
|
3233
|
-
return /* @__PURE__ */ (0,
|
3292
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3234
3293
|
DropZoneProvider,
|
3235
3294
|
{
|
3236
3295
|
value: { data, config, areaId: item.props.id },
|
3237
|
-
children: /* @__PURE__ */ (0,
|
3296
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
3238
3297
|
Component.render,
|
3239
3298
|
__spreadProps(__spreadValues({}, item.props), {
|
3240
3299
|
puck: { renderDropZone: DropZone }
|
@@ -3248,35 +3307,36 @@ function DropZoneRender({ zone }) {
|
|
3248
3307
|
}) });
|
3249
3308
|
}
|
3250
3309
|
function DropZone(props) {
|
3251
|
-
const ctx = (0,
|
3310
|
+
const ctx = (0, import_react22.useContext)(dropZoneContext);
|
3252
3311
|
if ((ctx == null ? void 0 : ctx.mode) === "edit") {
|
3253
|
-
return /* @__PURE__ */ (0,
|
3312
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropZoneEdit, __spreadValues({}, props));
|
3254
3313
|
}
|
3255
|
-
return /* @__PURE__ */ (0,
|
3314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropZoneRender, __spreadValues({}, props));
|
3256
3315
|
}
|
3257
3316
|
|
3258
3317
|
// components/Puck/index.tsx
|
3259
3318
|
init_react_import();
|
3260
|
-
var
|
3319
|
+
var import_react37 = require("react");
|
3261
3320
|
|
3262
3321
|
// lib/use-placeholder-style.ts
|
3263
3322
|
init_react_import();
|
3264
|
-
var
|
3323
|
+
var import_react23 = require("react");
|
3265
3324
|
|
3266
3325
|
// lib/get-frame.ts
|
3267
3326
|
init_react_import();
|
3268
3327
|
var getFrame = () => {
|
3269
|
-
|
3270
|
-
|
3271
|
-
|
3328
|
+
if (typeof window === "undefined") return;
|
3329
|
+
let frameEl = document.querySelector("#preview-frame");
|
3330
|
+
if ((frameEl == null ? void 0 : frameEl.tagName) === "IFRAME") {
|
3331
|
+
return frameEl.contentDocument || document;
|
3272
3332
|
}
|
3273
|
-
return
|
3333
|
+
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
3274
3334
|
};
|
3275
3335
|
|
3276
3336
|
// lib/use-placeholder-style.ts
|
3277
3337
|
var usePlaceholderStyle = () => {
|
3278
3338
|
const queryAttr = "data-rfd-drag-handle-draggable-id";
|
3279
|
-
const [placeholderStyle, setPlaceholderStyle] = (0,
|
3339
|
+
const [placeholderStyle, setPlaceholderStyle] = (0, import_react23.useState)();
|
3280
3340
|
const onDragStartOrUpdate = (draggedItem) => {
|
3281
3341
|
var _a;
|
3282
3342
|
const draggableId = draggedItem.draggableId;
|
@@ -3329,7 +3389,7 @@ var styles_module_default13 = { "SidebarSection": "_SidebarSection_125qe_1", "Si
|
|
3329
3389
|
|
3330
3390
|
// lib/use-breadcrumbs.ts
|
3331
3391
|
init_react_import();
|
3332
|
-
var
|
3392
|
+
var import_react24 = require("react");
|
3333
3393
|
var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
|
3334
3394
|
const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
|
3335
3395
|
const currentPathData = pathData && id && pathData[id] ? __spreadValues({}, pathData[id]) : { label: "Page", path: [] };
|
@@ -3379,8 +3439,8 @@ var useBreadcrumbs = (renderCount) => {
|
|
3379
3439
|
state: { data },
|
3380
3440
|
selectedItem
|
3381
3441
|
} = useAppContext();
|
3382
|
-
const dzContext = (0,
|
3383
|
-
return (0,
|
3442
|
+
const dzContext = (0, import_react24.useContext)(dropZoneContext);
|
3443
|
+
return (0, import_react24.useMemo)(() => {
|
3384
3444
|
const breadcrumbs = convertPathDataToBreadcrumbs(
|
3385
3445
|
selectedItem,
|
3386
3446
|
dzContext == null ? void 0 : dzContext.pathData,
|
@@ -3394,7 +3454,7 @@ var useBreadcrumbs = (renderCount) => {
|
|
3394
3454
|
};
|
3395
3455
|
|
3396
3456
|
// components/SidebarSection/index.tsx
|
3397
|
-
var
|
3457
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
3398
3458
|
var getClassName19 = get_class_name_factory_default("SidebarSection", styles_module_default13);
|
3399
3459
|
var SidebarSection = ({
|
3400
3460
|
children,
|
@@ -3407,15 +3467,15 @@ var SidebarSection = ({
|
|
3407
3467
|
}) => {
|
3408
3468
|
const { setUi } = useAppContext();
|
3409
3469
|
const breadcrumbs = useBreadcrumbs(1);
|
3410
|
-
return /* @__PURE__ */ (0,
|
3470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
3411
3471
|
"div",
|
3412
3472
|
{
|
3413
3473
|
className: getClassName19({ noBorderTop, noPadding }),
|
3414
3474
|
style: { background },
|
3415
3475
|
children: [
|
3416
|
-
/* @__PURE__ */ (0,
|
3417
|
-
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0,
|
3418
|
-
/* @__PURE__ */ (0,
|
3476
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: getClassName19("title"), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName19("breadcrumbs"), children: [
|
3477
|
+
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName19("breadcrumb"), children: [
|
3478
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
3419
3479
|
"button",
|
3420
3480
|
{
|
3421
3481
|
type: "button",
|
@@ -3424,12 +3484,12 @@ var SidebarSection = ({
|
|
3424
3484
|
children: breadcrumb.label
|
3425
3485
|
}
|
3426
3486
|
),
|
3427
|
-
/* @__PURE__ */ (0,
|
3487
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChevronRight, { size: 16 })
|
3428
3488
|
] }, i)) : null,
|
3429
|
-
/* @__PURE__ */ (0,
|
3489
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: getClassName19("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Heading, { rank: "2", size: "xs", children: title }) })
|
3430
3490
|
] }) }),
|
3431
|
-
/* @__PURE__ */ (0,
|
3432
|
-
isLoading && /* @__PURE__ */ (0,
|
3491
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: getClassName19("content"), children }),
|
3492
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: getClassName19("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Loader, { size: 32 }) })
|
3433
3493
|
]
|
3434
3494
|
}
|
3435
3495
|
);
|
@@ -3632,6 +3692,9 @@ function reduceData(data, action, config) {
|
|
3632
3692
|
});
|
3633
3693
|
}
|
3634
3694
|
if (action.type === "move") {
|
3695
|
+
if (action.sourceZone === action.destinationZone && action.sourceIndex === action.destinationIndex) {
|
3696
|
+
return data;
|
3697
|
+
}
|
3635
3698
|
const newData = setupZone(
|
3636
3699
|
setupZone(data, action.sourceZone),
|
3637
3700
|
action.destinationZone
|
@@ -3810,7 +3873,7 @@ init_react_import();
|
|
3810
3873
|
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" };
|
3811
3874
|
|
3812
3875
|
// components/MenuBar/index.tsx
|
3813
|
-
var
|
3876
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
3814
3877
|
var getClassName20 = get_class_name_factory_default("MenuBar", styles_module_default14);
|
3815
3878
|
function MenuBar({
|
3816
3879
|
appState,
|
@@ -3824,7 +3887,7 @@ function MenuBar({
|
|
3824
3887
|
history: { back, forward, historyStore }
|
3825
3888
|
} = useAppContext();
|
3826
3889
|
const { hasFuture = false, hasPast = false } = historyStore || {};
|
3827
|
-
return /* @__PURE__ */ (0,
|
3890
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
3828
3891
|
"div",
|
3829
3892
|
{
|
3830
3893
|
className: getClassName20({ menuOpen }),
|
@@ -3838,12 +3901,12 @@ function MenuBar({
|
|
3838
3901
|
setMenuOpen(false);
|
3839
3902
|
}
|
3840
3903
|
},
|
3841
|
-
children: /* @__PURE__ */ (0,
|
3842
|
-
/* @__PURE__ */ (0,
|
3843
|
-
/* @__PURE__ */ (0,
|
3844
|
-
/* @__PURE__ */ (0,
|
3904
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: getClassName20("inner"), children: [
|
3905
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: getClassName20("history"), children: [
|
3906
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Undo2, { size: 21 }) }),
|
3907
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Redo2, { size: 21 }) })
|
3845
3908
|
] }),
|
3846
|
-
/* @__PURE__ */ (0,
|
3909
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children: renderHeaderActions && renderHeaderActions({
|
3847
3910
|
state: appState,
|
3848
3911
|
dispatch
|
3849
3912
|
}) })
|
@@ -3864,15 +3927,15 @@ init_react_import();
|
|
3864
3927
|
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" };
|
3865
3928
|
|
3866
3929
|
// components/Puck/components/Fields/index.tsx
|
3867
|
-
var
|
3930
|
+
var import_react26 = require("react");
|
3868
3931
|
|
3869
3932
|
// lib/use-parent.ts
|
3870
3933
|
init_react_import();
|
3871
|
-
var
|
3934
|
+
var import_react25 = require("react");
|
3872
3935
|
var useParent = (itemSelector) => {
|
3873
3936
|
var _a;
|
3874
3937
|
const { selectedItem, state } = useAppContext();
|
3875
|
-
const { pathData } = (0,
|
3938
|
+
const { pathData } = (0, import_react25.useContext)(dropZoneContext) || {};
|
3876
3939
|
const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
|
3877
3940
|
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
3878
3941
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
@@ -3881,7 +3944,7 @@ var useParent = (itemSelector) => {
|
|
3881
3944
|
};
|
3882
3945
|
|
3883
3946
|
// components/Puck/components/Fields/index.tsx
|
3884
|
-
var
|
3947
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
3885
3948
|
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
3886
3949
|
var defaultPageFields = {
|
3887
3950
|
title: { type: "text" }
|
@@ -3889,7 +3952,7 @@ var defaultPageFields = {
|
|
3889
3952
|
var DefaultFields = ({
|
3890
3953
|
children
|
3891
3954
|
}) => {
|
3892
|
-
return /* @__PURE__ */ (0,
|
3955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_jsx_runtime28.Fragment, { children });
|
3893
3956
|
};
|
3894
3957
|
var useResolvedFields = () => {
|
3895
3958
|
var _a, _b;
|
@@ -3898,20 +3961,20 @@ var useResolvedFields = () => {
|
|
3898
3961
|
const { data } = state;
|
3899
3962
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
3900
3963
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
3901
|
-
const defaultFields = (0,
|
3964
|
+
const defaultFields = (0, import_react26.useMemo)(
|
3902
3965
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
3903
3966
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
3904
3967
|
);
|
3905
3968
|
const rootProps = data.root.props || data.root;
|
3906
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
3907
|
-
const [resolvedFields, setResolvedFields] = (0,
|
3908
|
-
const [fieldsLoading, setFieldsLoading] = (0,
|
3969
|
+
const [lastSelectedData, setLastSelectedData] = (0, import_react26.useState)({});
|
3970
|
+
const [resolvedFields, setResolvedFields] = (0, import_react26.useState)(defaultFields);
|
3971
|
+
const [fieldsLoading, setFieldsLoading] = (0, import_react26.useState)(false);
|
3909
3972
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
3910
3973
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
3911
3974
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
3912
3975
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
3913
3976
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
3914
|
-
const resolveFields = (0,
|
3977
|
+
const resolveFields = (0, import_react26.useCallback)(
|
3915
3978
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
3916
3979
|
var _a2;
|
3917
3980
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -3947,19 +4010,33 @@ var useResolvedFields = () => {
|
|
3947
4010
|
lastData
|
3948
4011
|
});
|
3949
4012
|
}),
|
3950
|
-
[data, config, componentData, selectedItem, resolvedFields, state]
|
4013
|
+
[data, config, componentData, selectedItem, resolvedFields, state, parent]
|
3951
4014
|
);
|
3952
|
-
(0,
|
3953
|
-
|
3954
|
-
|
3955
|
-
|
3956
|
-
|
3957
|
-
|
3958
|
-
|
3959
|
-
|
3960
|
-
|
4015
|
+
const [hasParent, setHasParent] = (0, import_react26.useState)(false);
|
4016
|
+
(0, import_react26.useEffect)(() => {
|
4017
|
+
setHasParent(!!parent);
|
4018
|
+
}, [parent]);
|
4019
|
+
(0, import_react26.useEffect)(() => {
|
4020
|
+
var _a2, _b2;
|
4021
|
+
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" || hasParent) {
|
4022
|
+
if (hasResolver) {
|
4023
|
+
setFieldsLoading(true);
|
4024
|
+
resolveFields(defaultFields).then((fields) => {
|
4025
|
+
setResolvedFields(fields || {});
|
4026
|
+
setFieldsLoading(false);
|
4027
|
+
});
|
4028
|
+
} else {
|
4029
|
+
setResolvedFields(defaultFields);
|
4030
|
+
}
|
3961
4031
|
}
|
3962
|
-
}, [
|
4032
|
+
}, [
|
4033
|
+
data,
|
4034
|
+
defaultFields,
|
4035
|
+
state.ui.itemSelector,
|
4036
|
+
selectedItem,
|
4037
|
+
hasResolver,
|
4038
|
+
hasParent
|
4039
|
+
]);
|
3963
4040
|
return [resolvedFields, fieldsLoading];
|
3964
4041
|
};
|
3965
4042
|
var Fields = () => {
|
@@ -3980,8 +4057,8 @@ var Fields = () => {
|
|
3980
4057
|
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;
|
3981
4058
|
const isLoading = fieldsResolving || componentResolving;
|
3982
4059
|
const rootProps = data.root.props || data.root;
|
3983
|
-
const Wrapper = (0,
|
3984
|
-
return /* @__PURE__ */ (0,
|
4060
|
+
const Wrapper = (0, import_react26.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
4061
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
3985
4062
|
"form",
|
3986
4063
|
{
|
3987
4064
|
className: getClassName21(),
|
@@ -3989,7 +4066,7 @@ var Fields = () => {
|
|
3989
4066
|
e.preventDefault();
|
3990
4067
|
},
|
3991
4068
|
children: [
|
3992
|
-
/* @__PURE__ */ (0,
|
4069
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
|
3993
4070
|
const field = fields[fieldName];
|
3994
4071
|
if (!(field == null ? void 0 : field.type)) return null;
|
3995
4072
|
const onChange = (value, updatedUi) => {
|
@@ -4060,7 +4137,7 @@ var Fields = () => {
|
|
4060
4137
|
item: selectedItem
|
4061
4138
|
});
|
4062
4139
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
4063
|
-
return /* @__PURE__ */ (0,
|
4140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
4064
4141
|
AutoFieldPrivate,
|
4065
4142
|
{
|
4066
4143
|
field,
|
@@ -4078,7 +4155,7 @@ var Fields = () => {
|
|
4078
4155
|
root: true
|
4079
4156
|
});
|
4080
4157
|
const id = `root_${field.type}_${fieldName}`;
|
4081
|
-
return /* @__PURE__ */ (0,
|
4158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
4082
4159
|
AutoFieldPrivate,
|
4083
4160
|
{
|
4084
4161
|
field,
|
@@ -4092,7 +4169,7 @@ var Fields = () => {
|
|
4092
4169
|
);
|
4093
4170
|
}
|
4094
4171
|
}) }),
|
4095
|
-
isLoading && /* @__PURE__ */ (0,
|
4172
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: getClassName21("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: getClassName21("loadingOverlayInner"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Loader, { size: 16 }) }) })
|
4096
4173
|
]
|
4097
4174
|
}
|
4098
4175
|
);
|
@@ -4103,7 +4180,7 @@ init_react_import();
|
|
4103
4180
|
|
4104
4181
|
// lib/use-component-list.tsx
|
4105
4182
|
init_react_import();
|
4106
|
-
var
|
4183
|
+
var import_react27 = require("react");
|
4107
4184
|
|
4108
4185
|
// components/ComponentList/index.tsx
|
4109
4186
|
init_react_import();
|
@@ -4113,7 +4190,7 @@ init_react_import();
|
|
4113
4190
|
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" };
|
4114
4191
|
|
4115
4192
|
// components/ComponentList/index.tsx
|
4116
|
-
var
|
4193
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
4117
4194
|
var getClassName22 = get_class_name_factory_default("ComponentList", styles_module_default17);
|
4118
4195
|
var ComponentListItem = ({
|
4119
4196
|
name,
|
@@ -4124,7 +4201,7 @@ var ComponentListItem = ({
|
|
4124
4201
|
const canInsert = getPermissions({
|
4125
4202
|
type: name
|
4126
4203
|
}).insert;
|
4127
|
-
return /* @__PURE__ */ (0,
|
4204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
4128
4205
|
Drawer.Item,
|
4129
4206
|
{
|
4130
4207
|
label,
|
@@ -4142,8 +4219,8 @@ var ComponentList = ({
|
|
4142
4219
|
}) => {
|
4143
4220
|
const { config, state, setUi } = useAppContext();
|
4144
4221
|
const { expanded = true } = state.ui.componentList[id] || {};
|
4145
|
-
return /* @__PURE__ */ (0,
|
4146
|
-
title && /* @__PURE__ */ (0,
|
4222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22({ isExpanded: expanded }), children: [
|
4223
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
4147
4224
|
"button",
|
4148
4225
|
{
|
4149
4226
|
type: "button",
|
@@ -4157,14 +4234,14 @@ var ComponentList = ({
|
|
4157
4234
|
}),
|
4158
4235
|
title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
|
4159
4236
|
children: [
|
4160
|
-
/* @__PURE__ */ (0,
|
4161
|
-
/* @__PURE__ */ (0,
|
4237
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { children: title }),
|
4238
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("titleIcon"), children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronUp, { size: 12 }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronDown, { size: 12 }) })
|
4162
4239
|
]
|
4163
4240
|
}
|
4164
4241
|
),
|
4165
|
-
/* @__PURE__ */ (0,
|
4242
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("content"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Drawer, { droppableId: title, children: children || Object.keys(config.components).map((componentKey, i) => {
|
4166
4243
|
var _a;
|
4167
|
-
return /* @__PURE__ */ (0,
|
4244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
4168
4245
|
ComponentListItem,
|
4169
4246
|
{
|
4170
4247
|
label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
|
@@ -4179,10 +4256,10 @@ var ComponentList = ({
|
|
4179
4256
|
ComponentList.Item = ComponentListItem;
|
4180
4257
|
|
4181
4258
|
// lib/use-component-list.tsx
|
4182
|
-
var
|
4259
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
4183
4260
|
var useComponentList = (config, ui) => {
|
4184
|
-
const [componentList, setComponentList] = (0,
|
4185
|
-
(0,
|
4261
|
+
const [componentList, setComponentList] = (0, import_react27.useState)();
|
4262
|
+
(0, import_react27.useEffect)(() => {
|
4186
4263
|
var _a, _b, _c;
|
4187
4264
|
if (Object.keys(ui.componentList).length > 0) {
|
4188
4265
|
const matchedComponents = [];
|
@@ -4192,7 +4269,7 @@ var useComponentList = (config, ui) => {
|
|
4192
4269
|
if (category.visible === false || !category.components) {
|
4193
4270
|
return null;
|
4194
4271
|
}
|
4195
|
-
return /* @__PURE__ */ (0,
|
4272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
4196
4273
|
ComponentList,
|
4197
4274
|
{
|
4198
4275
|
id: categoryKey,
|
@@ -4201,7 +4278,7 @@ var useComponentList = (config, ui) => {
|
|
4201
4278
|
var _a2;
|
4202
4279
|
matchedComponents.push(componentName);
|
4203
4280
|
const componentConf = config.components[componentName] || {};
|
4204
|
-
return /* @__PURE__ */ (0,
|
4281
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
4205
4282
|
ComponentList.Item,
|
4206
4283
|
{
|
4207
4284
|
label: (_a2 = componentConf["label"]) != null ? _a2 : componentName,
|
@@ -4221,7 +4298,7 @@ var useComponentList = (config, ui) => {
|
|
4221
4298
|
);
|
4222
4299
|
if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
|
4223
4300
|
_componentList.push(
|
4224
|
-
/* @__PURE__ */ (0,
|
4301
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
4225
4302
|
ComponentList,
|
4226
4303
|
{
|
4227
4304
|
id: "other",
|
@@ -4229,7 +4306,7 @@ var useComponentList = (config, ui) => {
|
|
4229
4306
|
children: remainingComponents.map((componentName, i) => {
|
4230
4307
|
var _a2;
|
4231
4308
|
const componentConf = config.components[componentName] || {};
|
4232
|
-
return /* @__PURE__ */ (0,
|
4309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
4233
4310
|
ComponentList.Item,
|
4234
4311
|
{
|
4235
4312
|
name: componentName,
|
@@ -4251,25 +4328,25 @@ var useComponentList = (config, ui) => {
|
|
4251
4328
|
};
|
4252
4329
|
|
4253
4330
|
// components/Puck/components/Components/index.tsx
|
4254
|
-
var
|
4255
|
-
var
|
4331
|
+
var import_react28 = require("react");
|
4332
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
4256
4333
|
var Components = () => {
|
4257
4334
|
const { config, state, overrides } = useAppContext();
|
4258
4335
|
const componentList = useComponentList(config, state.ui);
|
4259
|
-
const Wrapper = (0,
|
4260
|
-
return /* @__PURE__ */ (0,
|
4336
|
+
const Wrapper = (0, import_react28.useMemo)(() => overrides.components || "div", [overrides]);
|
4337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ComponentList, { id: "all" }) });
|
4261
4338
|
};
|
4262
4339
|
|
4263
4340
|
// components/Puck/components/Preview/index.tsx
|
4264
4341
|
init_react_import();
|
4265
|
-
var
|
4342
|
+
var import_react30 = require("react");
|
4266
4343
|
|
4267
4344
|
// components/AutoFrame/index.tsx
|
4268
4345
|
init_react_import();
|
4269
|
-
var
|
4346
|
+
var import_react29 = require("react");
|
4270
4347
|
var import_object_hash = __toESM(require("object-hash"));
|
4271
4348
|
var import_react_dom2 = require("react-dom");
|
4272
|
-
var
|
4349
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
4273
4350
|
var styleSelector = 'style, link[rel="stylesheet"]';
|
4274
4351
|
var collectStyles = (doc) => {
|
4275
4352
|
const collected = [];
|
@@ -4312,7 +4389,7 @@ var CopyHostStyles = ({
|
|
4312
4389
|
onStylesLoaded = () => null
|
4313
4390
|
}) => {
|
4314
4391
|
const { document: doc, window: win } = useFrame();
|
4315
|
-
(0,
|
4392
|
+
(0, import_react29.useEffect)(() => {
|
4316
4393
|
if (!win || !doc) {
|
4317
4394
|
return () => {
|
4318
4395
|
};
|
@@ -4469,10 +4546,10 @@ var CopyHostStyles = ({
|
|
4469
4546
|
observer.disconnect();
|
4470
4547
|
};
|
4471
4548
|
}, []);
|
4472
|
-
return /* @__PURE__ */ (0,
|
4549
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_jsx_runtime32.Fragment, { children });
|
4473
4550
|
};
|
4474
|
-
var autoFrameContext = (0,
|
4475
|
-
var useFrame = () => (0,
|
4551
|
+
var autoFrameContext = (0, import_react29.createContext)({});
|
4552
|
+
var useFrame = () => (0, import_react29.useContext)(autoFrameContext);
|
4476
4553
|
function AutoFrame(_a) {
|
4477
4554
|
var _b = _a, {
|
4478
4555
|
children,
|
@@ -4487,11 +4564,11 @@ function AutoFrame(_a) {
|
|
4487
4564
|
"id",
|
4488
4565
|
"onStylesLoaded"
|
4489
4566
|
]);
|
4490
|
-
const [loaded, setLoaded] = (0,
|
4491
|
-
const [ctx, setCtx] = (0,
|
4492
|
-
const ref = (0,
|
4493
|
-
const [mountTarget, setMountTarget] = (0,
|
4494
|
-
(0,
|
4567
|
+
const [loaded, setLoaded] = (0, import_react29.useState)(false);
|
4568
|
+
const [ctx, setCtx] = (0, import_react29.useState)({});
|
4569
|
+
const ref = (0, import_react29.useRef)(null);
|
4570
|
+
const [mountTarget, setMountTarget] = (0, import_react29.useState)();
|
4571
|
+
(0, import_react29.useEffect)(() => {
|
4495
4572
|
var _a2;
|
4496
4573
|
if (ref.current) {
|
4497
4574
|
setCtx({
|
@@ -4501,7 +4578,7 @@ function AutoFrame(_a) {
|
|
4501
4578
|
setMountTarget((_a2 = ref.current.contentDocument) == null ? void 0 : _a2.getElementById("frame-root"));
|
4502
4579
|
}
|
4503
4580
|
}, [ref, loaded]);
|
4504
|
-
return /* @__PURE__ */ (0,
|
4581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
4505
4582
|
"iframe",
|
4506
4583
|
__spreadProps(__spreadValues({}, props), {
|
4507
4584
|
className,
|
@@ -4511,7 +4588,7 @@ function AutoFrame(_a) {
|
|
4511
4588
|
onLoad: () => {
|
4512
4589
|
setLoaded(true);
|
4513
4590
|
},
|
4514
|
-
children: /* @__PURE__ */ (0,
|
4591
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(autoFrameContext.Provider, { value: ctx, children: loaded && mountTarget && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(CopyHostStyles, { debug, onStylesLoaded, children: (0, import_react_dom2.createPortal)(children, mountTarget) }) })
|
4515
4592
|
})
|
4516
4593
|
);
|
4517
4594
|
}
|
@@ -4523,22 +4600,22 @@ init_react_import();
|
|
4523
4600
|
var styles_module_default18 = { "PuckPreview": "_PuckPreview_rxwlr_1", "PuckPreview-frame": "_PuckPreview-frame_rxwlr_5" };
|
4524
4601
|
|
4525
4602
|
// components/Puck/components/Preview/index.tsx
|
4526
|
-
var
|
4603
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
4527
4604
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
4528
4605
|
var Preview = ({ id = "puck-preview" }) => {
|
4529
4606
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
4530
|
-
const Page = (0,
|
4607
|
+
const Page = (0, import_react30.useCallback)(
|
4531
4608
|
(pageProps) => {
|
4532
4609
|
var _a, _b;
|
4533
4610
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
4534
4611
|
id: "puck-root"
|
4535
|
-
}, pageProps)) : /* @__PURE__ */ (0,
|
4612
|
+
}, pageProps)) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: pageProps.children });
|
4536
4613
|
},
|
4537
4614
|
[config.root]
|
4538
4615
|
);
|
4539
|
-
const Frame = (0,
|
4616
|
+
const Frame = (0, import_react30.useMemo)(() => overrides.iframe, [overrides]);
|
4540
4617
|
const rootProps = state.data.root.props || state.data.root;
|
4541
|
-
return /* @__PURE__ */ (0,
|
4618
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
4542
4619
|
"div",
|
4543
4620
|
{
|
4544
4621
|
className: getClassName23(),
|
@@ -4546,7 +4623,7 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
4546
4623
|
onClick: () => {
|
4547
4624
|
dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
|
4548
4625
|
},
|
4549
|
-
children: iframe.enabled ? /* @__PURE__ */ (0,
|
4626
|
+
children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
4550
4627
|
AutoFrame_default,
|
4551
4628
|
{
|
4552
4629
|
id: "preview-frame",
|
@@ -4555,27 +4632,27 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
4555
4632
|
onStylesLoaded: () => {
|
4556
4633
|
setStatus("READY");
|
4557
4634
|
},
|
4558
|
-
children: /* @__PURE__ */ (0,
|
4559
|
-
const inner = /* @__PURE__ */ (0,
|
4635
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(autoFrameContext.Consumer, { children: ({ document: document2 }) => {
|
4636
|
+
const inner = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
4560
4637
|
Page,
|
4561
4638
|
__spreadProps(__spreadValues({}, rootProps), {
|
4562
4639
|
puck: { renderDropZone: DropZone, isEditing: true },
|
4563
4640
|
editMode: true,
|
4564
|
-
children: /* @__PURE__ */ (0,
|
4641
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(DropZone, { zone: rootDroppableId })
|
4565
4642
|
})
|
4566
4643
|
);
|
4567
4644
|
if (Frame) {
|
4568
|
-
return /* @__PURE__ */ (0,
|
4645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Frame, { document: document2, children: inner });
|
4569
4646
|
}
|
4570
4647
|
return inner;
|
4571
4648
|
} })
|
4572
4649
|
}
|
4573
|
-
) : /* @__PURE__ */ (0,
|
4650
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { id: "preview-frame", className: getClassName23("frame"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
4574
4651
|
Page,
|
4575
4652
|
__spreadProps(__spreadValues({}, rootProps), {
|
4576
4653
|
puck: { renderDropZone: DropZone, isEditing: true },
|
4577
4654
|
editMode: true,
|
4578
|
-
children: /* @__PURE__ */ (0,
|
4655
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(DropZone, { zone: rootDroppableId })
|
4579
4656
|
})
|
4580
4657
|
) })
|
4581
4658
|
}
|
@@ -4625,7 +4702,7 @@ var scrollIntoView = (el) => {
|
|
4625
4702
|
};
|
4626
4703
|
|
4627
4704
|
// components/LayerTree/index.tsx
|
4628
|
-
var
|
4705
|
+
var import_react31 = require("react");
|
4629
4706
|
|
4630
4707
|
// lib/is-child-of-zone.ts
|
4631
4708
|
init_react_import();
|
@@ -4639,7 +4716,7 @@ var isChildOfZone = (item, maybeChild, ctx) => {
|
|
4639
4716
|
};
|
4640
4717
|
|
4641
4718
|
// components/LayerTree/index.tsx
|
4642
|
-
var
|
4719
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
4643
4720
|
var getClassName24 = get_class_name_factory_default("LayerTree", styles_module_default19);
|
4644
4721
|
var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default19);
|
4645
4722
|
var LayerTree = ({
|
@@ -4652,15 +4729,15 @@ var LayerTree = ({
|
|
4652
4729
|
label
|
4653
4730
|
}) => {
|
4654
4731
|
const zones = data.zones || {};
|
4655
|
-
const ctx = (0,
|
4656
|
-
return /* @__PURE__ */ (0,
|
4657
|
-
label && /* @__PURE__ */ (0,
|
4658
|
-
/* @__PURE__ */ (0,
|
4732
|
+
const ctx = (0, import_react31.useContext)(dropZoneContext);
|
4733
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
4734
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
4735
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Layers, { size: "16" }) }),
|
4659
4736
|
" ",
|
4660
4737
|
label
|
4661
4738
|
] }),
|
4662
|
-
/* @__PURE__ */ (0,
|
4663
|
-
zoneContent.length === 0 && /* @__PURE__ */ (0,
|
4739
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("ul", { className: getClassName24(), children: [
|
4740
|
+
zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("helper"), children: "No items" }),
|
4664
4741
|
zoneContent.map((item, i) => {
|
4665
4742
|
var _a;
|
4666
4743
|
const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
|
@@ -4678,7 +4755,7 @@ var LayerTree = ({
|
|
4678
4755
|
const childIsSelected = isChildOfZone(item, selectedItem, ctx);
|
4679
4756
|
const componentConfig = config.components[item.type];
|
4680
4757
|
const label2 = (_a = componentConfig == null ? void 0 : componentConfig["label"]) != null ? _a : item.type.toString();
|
4681
|
-
return /* @__PURE__ */ (0,
|
4758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
4682
4759
|
"li",
|
4683
4760
|
{
|
4684
4761
|
className: getClassNameLayer({
|
@@ -4688,7 +4765,7 @@ var LayerTree = ({
|
|
4688
4765
|
childIsSelected
|
4689
4766
|
}),
|
4690
4767
|
children: [
|
4691
|
-
/* @__PURE__ */ (0,
|
4768
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
4692
4769
|
"button",
|
4693
4770
|
{
|
4694
4771
|
type: "button",
|
@@ -4721,22 +4798,22 @@ var LayerTree = ({
|
|
4721
4798
|
setHoveringComponent(null);
|
4722
4799
|
},
|
4723
4800
|
children: [
|
4724
|
-
containsZone && /* @__PURE__ */ (0,
|
4801
|
+
containsZone && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
4725
4802
|
"div",
|
4726
4803
|
{
|
4727
4804
|
className: getClassNameLayer("chevron"),
|
4728
4805
|
title: isSelected ? "Collapse" : "Expand",
|
4729
|
-
children: /* @__PURE__ */ (0,
|
4806
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { size: "12" })
|
4730
4807
|
}
|
4731
4808
|
),
|
4732
|
-
/* @__PURE__ */ (0,
|
4733
|
-
/* @__PURE__ */ (0,
|
4734
|
-
/* @__PURE__ */ (0,
|
4809
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassNameLayer("title"), children: [
|
4810
|
+
/* @__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" }) }),
|
4811
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("name"), children: label2 })
|
4735
4812
|
] })
|
4736
4813
|
]
|
4737
4814
|
}
|
4738
4815
|
) }),
|
4739
|
-
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0,
|
4816
|
+
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
4740
4817
|
LayerTree,
|
4741
4818
|
{
|
4742
4819
|
config,
|
@@ -4758,13 +4835,13 @@ var LayerTree = ({
|
|
4758
4835
|
};
|
4759
4836
|
|
4760
4837
|
// components/Puck/components/Outline/index.tsx
|
4761
|
-
var
|
4762
|
-
var
|
4838
|
+
var import_react32 = require("react");
|
4839
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
4763
4840
|
var Outline = () => {
|
4764
4841
|
const { dispatch, state, overrides, config } = useAppContext();
|
4765
4842
|
const { data, ui } = state;
|
4766
4843
|
const { itemSelector } = ui;
|
4767
|
-
const setItemSelector = (0,
|
4844
|
+
const setItemSelector = (0, import_react32.useCallback)(
|
4768
4845
|
(newItemSelector) => {
|
4769
4846
|
dispatch({
|
4770
4847
|
type: "setUi",
|
@@ -4773,9 +4850,9 @@ var Outline = () => {
|
|
4773
4850
|
},
|
4774
4851
|
[]
|
4775
4852
|
);
|
4776
|
-
const Wrapper = (0,
|
4777
|
-
return /* @__PURE__ */ (0,
|
4778
|
-
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0,
|
4853
|
+
const Wrapper = (0, import_react32.useMemo)(() => overrides.outline || "div", [overrides]);
|
4854
|
+
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: [
|
4855
|
+
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
4779
4856
|
LayerTree,
|
4780
4857
|
{
|
4781
4858
|
config,
|
@@ -4788,7 +4865,7 @@ var Outline = () => {
|
|
4788
4865
|
),
|
4789
4866
|
Object.entries(findZonesForArea(data, "root")).map(
|
4790
4867
|
([zoneKey, zone]) => {
|
4791
|
-
return /* @__PURE__ */ (0,
|
4868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
4792
4869
|
LayerTree,
|
4793
4870
|
{
|
4794
4871
|
config,
|
@@ -4812,7 +4889,8 @@ var import_react_hotkeys_hook = require("react-hotkeys-hook");
|
|
4812
4889
|
function usePuckHistory({
|
4813
4890
|
dispatch,
|
4814
4891
|
initialAppState,
|
4815
|
-
historyStore
|
4892
|
+
historyStore,
|
4893
|
+
iframeEnabled
|
4816
4894
|
}) {
|
4817
4895
|
const back = () => {
|
4818
4896
|
var _a;
|
@@ -4830,6 +4908,16 @@ function usePuckHistory({
|
|
4830
4908
|
historyStore.forward();
|
4831
4909
|
}
|
4832
4910
|
};
|
4911
|
+
const backIframe = () => {
|
4912
|
+
if (iframeEnabled) {
|
4913
|
+
back();
|
4914
|
+
}
|
4915
|
+
};
|
4916
|
+
const forwardIframe = () => {
|
4917
|
+
if (iframeEnabled) {
|
4918
|
+
forward();
|
4919
|
+
}
|
4920
|
+
};
|
4833
4921
|
const setHistories = (histories) => {
|
4834
4922
|
var _a;
|
4835
4923
|
dispatch({
|
@@ -4848,9 +4936,23 @@ function usePuckHistory({
|
|
4848
4936
|
historyStore.setHistoryIndex(index);
|
4849
4937
|
}
|
4850
4938
|
};
|
4939
|
+
const frame = getFrame();
|
4940
|
+
const resolvedFrame = typeof window !== "undefined" && frame !== document ? frame : void 0;
|
4851
4941
|
(0, import_react_hotkeys_hook.useHotkeys)("meta+z", back, { preventDefault: true });
|
4852
4942
|
(0, import_react_hotkeys_hook.useHotkeys)("meta+shift+z", forward, { preventDefault: true });
|
4853
4943
|
(0, import_react_hotkeys_hook.useHotkeys)("meta+y", forward, { preventDefault: true });
|
4944
|
+
(0, import_react_hotkeys_hook.useHotkeys)("meta+z", backIframe, {
|
4945
|
+
preventDefault: true,
|
4946
|
+
document: resolvedFrame
|
4947
|
+
});
|
4948
|
+
(0, import_react_hotkeys_hook.useHotkeys)("meta+shift+z", forwardIframe, {
|
4949
|
+
preventDefault: true,
|
4950
|
+
document: resolvedFrame
|
4951
|
+
});
|
4952
|
+
(0, import_react_hotkeys_hook.useHotkeys)("meta+y", forwardIframe, {
|
4953
|
+
preventDefault: true,
|
4954
|
+
document: resolvedFrame
|
4955
|
+
});
|
4854
4956
|
return {
|
4855
4957
|
back,
|
4856
4958
|
forward,
|
@@ -4862,19 +4964,19 @@ function usePuckHistory({
|
|
4862
4964
|
|
4863
4965
|
// lib/use-history-store.ts
|
4864
4966
|
init_react_import();
|
4865
|
-
var
|
4967
|
+
var import_react33 = require("react");
|
4866
4968
|
var import_use_debounce3 = require("use-debounce");
|
4867
4969
|
var EMPTY_HISTORY_INDEX = 0;
|
4868
4970
|
function useHistoryStore(initialHistory) {
|
4869
4971
|
var _a, _b;
|
4870
|
-
const [histories, setHistories] = (0,
|
4972
|
+
const [histories, setHistories] = (0, import_react33.useState)(
|
4871
4973
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
4872
4974
|
);
|
4873
4975
|
const updateHistories = (histories2) => {
|
4874
4976
|
setHistories(histories2);
|
4875
4977
|
setIndex(histories2.length - 1);
|
4876
4978
|
};
|
4877
|
-
const [index, setIndex] = (0,
|
4979
|
+
const [index, setIndex] = (0, import_react33.useState)(
|
4878
4980
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
4879
4981
|
);
|
4880
4982
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -5034,22 +5136,22 @@ var getBox = function getBox2(el) {
|
|
5034
5136
|
};
|
5035
5137
|
|
5036
5138
|
// components/Puck/components/Canvas/index.tsx
|
5037
|
-
var
|
5139
|
+
var import_react35 = require("react");
|
5038
5140
|
|
5039
5141
|
// components/ViewportControls/index.tsx
|
5040
5142
|
init_react_import();
|
5041
|
-
var
|
5143
|
+
var import_react34 = require("react");
|
5042
5144
|
|
5043
5145
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
5044
5146
|
init_react_import();
|
5045
5147
|
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" };
|
5046
5148
|
|
5047
5149
|
// components/ViewportControls/index.tsx
|
5048
|
-
var
|
5150
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
5049
5151
|
var icons = {
|
5050
|
-
Smartphone: /* @__PURE__ */ (0,
|
5051
|
-
Tablet: /* @__PURE__ */ (0,
|
5052
|
-
Monitor: /* @__PURE__ */ (0,
|
5152
|
+
Smartphone: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Smartphone, { size: 16 }),
|
5153
|
+
Tablet: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Tablet, { size: 16 }),
|
5154
|
+
Monitor: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Monitor, { size: 16 })
|
5053
5155
|
};
|
5054
5156
|
var getClassName25 = get_class_name_factory_default("ViewportControls", styles_module_default20);
|
5055
5157
|
var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_module_default20);
|
@@ -5061,11 +5163,11 @@ var ViewportButton = ({
|
|
5061
5163
|
onClick
|
5062
5164
|
}) => {
|
5063
5165
|
const { state } = useAppContext();
|
5064
|
-
const [isActive, setIsActive] = (0,
|
5065
|
-
(0,
|
5166
|
+
const [isActive, setIsActive] = (0, import_react34.useState)(false);
|
5167
|
+
(0, import_react34.useEffect)(() => {
|
5066
5168
|
setIsActive(width === state.ui.viewports.current.width);
|
5067
5169
|
}, [width, state.ui.viewports.current.width]);
|
5068
|
-
return /* @__PURE__ */ (0,
|
5170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
5069
5171
|
IconButton,
|
5070
5172
|
{
|
5071
5173
|
title,
|
@@ -5074,7 +5176,7 @@ var ViewportButton = ({
|
|
5074
5176
|
e.stopPropagation();
|
5075
5177
|
onClick({ width, height });
|
5076
5178
|
},
|
5077
|
-
children: /* @__PURE__ */ (0,
|
5179
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton("inner"), children })
|
5078
5180
|
}
|
5079
5181
|
) });
|
5080
5182
|
};
|
@@ -5098,7 +5200,7 @@ var ViewportControls = ({
|
|
5098
5200
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
5099
5201
|
(option) => option.value === autoZoom
|
5100
5202
|
);
|
5101
|
-
const zoomOptions = (0,
|
5203
|
+
const zoomOptions = (0, import_react34.useMemo)(
|
5102
5204
|
() => [
|
5103
5205
|
...defaultZoomOptions,
|
5104
5206
|
...defaultsContainAutoZoom ? [] : [
|
@@ -5110,8 +5212,8 @@ var ViewportControls = ({
|
|
5110
5212
|
].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
|
5111
5213
|
[autoZoom]
|
5112
5214
|
);
|
5113
|
-
return /* @__PURE__ */ (0,
|
5114
|
-
viewports.map((viewport, i) => /* @__PURE__ */ (0,
|
5215
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: getClassName25(), children: [
|
5216
|
+
viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
5115
5217
|
ViewportButton,
|
5116
5218
|
{
|
5117
5219
|
height: viewport.height,
|
@@ -5122,8 +5224,8 @@ var ViewportControls = ({
|
|
5122
5224
|
},
|
5123
5225
|
i
|
5124
5226
|
)),
|
5125
|
-
/* @__PURE__ */ (0,
|
5126
|
-
/* @__PURE__ */ (0,
|
5227
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: getClassName25("divider") }),
|
5228
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
5127
5229
|
IconButton,
|
5128
5230
|
{
|
5129
5231
|
title: "Zoom viewport out",
|
@@ -5137,10 +5239,10 @@ var ViewportControls = ({
|
|
5137
5239
|
)].value
|
5138
5240
|
);
|
5139
5241
|
},
|
5140
|
-
children: /* @__PURE__ */ (0,
|
5242
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ZoomOut, { size: 16 })
|
5141
5243
|
}
|
5142
5244
|
),
|
5143
|
-
/* @__PURE__ */ (0,
|
5245
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
5144
5246
|
IconButton,
|
5145
5247
|
{
|
5146
5248
|
title: "Zoom viewport in",
|
@@ -5154,11 +5256,11 @@ var ViewportControls = ({
|
|
5154
5256
|
)].value
|
5155
5257
|
);
|
5156
5258
|
},
|
5157
|
-
children: /* @__PURE__ */ (0,
|
5259
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ZoomIn, { size: 16 })
|
5158
5260
|
}
|
5159
5261
|
),
|
5160
|
-
/* @__PURE__ */ (0,
|
5161
|
-
/* @__PURE__ */ (0,
|
5262
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: getClassName25("divider") }),
|
5263
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
5162
5264
|
"select",
|
5163
5265
|
{
|
5164
5266
|
className: getClassName25("zoomSelect"),
|
@@ -5166,7 +5268,7 @@ var ViewportControls = ({
|
|
5166
5268
|
onChange: (e) => {
|
5167
5269
|
onZoom(parseFloat(e.currentTarget.value));
|
5168
5270
|
},
|
5169
|
-
children: zoomOptions.map((option) => /* @__PURE__ */ (0,
|
5271
|
+
children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
5170
5272
|
"option",
|
5171
5273
|
{
|
5172
5274
|
value: option.value,
|
@@ -5181,7 +5283,7 @@ var ViewportControls = ({
|
|
5181
5283
|
|
5182
5284
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Canvas/styles.module.css#css-module
|
5183
5285
|
init_react_import();
|
5184
|
-
var styles_module_default21 = { "PuckCanvas": "
|
5286
|
+
var styles_module_default21 = { "PuckCanvas": "_PuckCanvas_18jay_1", "PuckCanvas-controls": "_PuckCanvas-controls_18jay_16", "PuckCanvas-inner": "_PuckCanvas-inner_18jay_21", "PuckCanvas-root": "_PuckCanvas-root_18jay_30", "PuckCanvas--ready": "_PuckCanvas--ready_18jay_55", "PuckCanvas-loader": "_PuckCanvas-loader_18jay_60", "PuckCanvas--showLoader": "_PuckCanvas--showLoader_18jay_70" };
|
5185
5287
|
|
5186
5288
|
// lib/get-zoom-config.ts
|
5187
5289
|
init_react_import();
|
@@ -5214,24 +5316,24 @@ var getZoomConfig = (uiViewport, frame, zoom) => {
|
|
5214
5316
|
};
|
5215
5317
|
|
5216
5318
|
// components/Puck/components/Canvas/index.tsx
|
5217
|
-
var
|
5319
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
5218
5320
|
var getClassName26 = get_class_name_factory_default("PuckCanvas", styles_module_default21);
|
5219
5321
|
var ZOOM_ON_CHANGE = true;
|
5220
5322
|
var Canvas = () => {
|
5221
5323
|
const { status, iframe } = useAppContext();
|
5222
5324
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
5223
5325
|
const { ui } = state;
|
5224
|
-
const frameRef = (0,
|
5225
|
-
const [showTransition, setShowTransition] = (0,
|
5226
|
-
const defaultRender = (0,
|
5227
|
-
const PuckDefault = ({ children }) => /* @__PURE__ */ (0,
|
5326
|
+
const frameRef = (0, import_react35.useRef)(null);
|
5327
|
+
const [showTransition, setShowTransition] = (0, import_react35.useState)(false);
|
5328
|
+
const defaultRender = (0, import_react35.useMemo)(() => {
|
5329
|
+
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
|
5228
5330
|
return PuckDefault;
|
5229
5331
|
}, []);
|
5230
|
-
const CustomPreview = (0,
|
5332
|
+
const CustomPreview = (0, import_react35.useMemo)(
|
5231
5333
|
() => overrides.preview || defaultRender,
|
5232
5334
|
[overrides]
|
5233
5335
|
);
|
5234
|
-
const getFrameDimensions = (0,
|
5336
|
+
const getFrameDimensions = (0, import_react35.useCallback)(() => {
|
5235
5337
|
if (frameRef.current) {
|
5236
5338
|
const frame = frameRef.current;
|
5237
5339
|
const box = getBox(frame);
|
@@ -5239,7 +5341,7 @@ var Canvas = () => {
|
|
5239
5341
|
}
|
5240
5342
|
return { width: 0, height: 0 };
|
5241
5343
|
}, [frameRef]);
|
5242
|
-
const resetAutoZoom = (0,
|
5344
|
+
const resetAutoZoom = (0, import_react35.useCallback)(
|
5243
5345
|
(ui2 = state.ui) => {
|
5244
5346
|
if (frameRef.current) {
|
5245
5347
|
setZoomConfig(
|
@@ -5249,11 +5351,11 @@ var Canvas = () => {
|
|
5249
5351
|
},
|
5250
5352
|
[frameRef, zoomConfig, state.ui]
|
5251
5353
|
);
|
5252
|
-
(0,
|
5354
|
+
(0, import_react35.useEffect)(() => {
|
5253
5355
|
setShowTransition(false);
|
5254
5356
|
resetAutoZoom();
|
5255
5357
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
5256
|
-
(0,
|
5358
|
+
(0, import_react35.useEffect)(() => {
|
5257
5359
|
const { height: frameHeight } = getFrameDimensions();
|
5258
5360
|
if (ui.viewports.current.height === "auto") {
|
5259
5361
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -5261,13 +5363,13 @@ var Canvas = () => {
|
|
5261
5363
|
}));
|
5262
5364
|
}
|
5263
5365
|
}, [zoomConfig.zoom]);
|
5264
|
-
(0,
|
5366
|
+
(0, import_react35.useEffect)(() => {
|
5265
5367
|
if (ZOOM_ON_CHANGE) {
|
5266
5368
|
setShowTransition(true);
|
5267
5369
|
resetAutoZoom(ui);
|
5268
5370
|
}
|
5269
5371
|
}, [ui.viewports.current.width]);
|
5270
|
-
(0,
|
5372
|
+
(0, import_react35.useEffect)(() => {
|
5271
5373
|
const observer = new ResizeObserver(() => {
|
5272
5374
|
setShowTransition(false);
|
5273
5375
|
resetAutoZoom();
|
@@ -5279,13 +5381,13 @@ var Canvas = () => {
|
|
5279
5381
|
observer.disconnect();
|
5280
5382
|
};
|
5281
5383
|
}, []);
|
5282
|
-
const [showLoader, setShowLoader] = (0,
|
5283
|
-
(0,
|
5384
|
+
const [showLoader, setShowLoader] = (0, import_react35.useState)(false);
|
5385
|
+
(0, import_react35.useEffect)(() => {
|
5284
5386
|
setTimeout(() => {
|
5285
5387
|
setShowLoader(true);
|
5286
5388
|
}, 500);
|
5287
5389
|
}, []);
|
5288
|
-
return /* @__PURE__ */ (0,
|
5390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
5289
5391
|
"div",
|
5290
5392
|
{
|
5291
5393
|
className: getClassName26({
|
@@ -5298,7 +5400,7 @@ var Canvas = () => {
|
|
5298
5400
|
recordHistory: true
|
5299
5401
|
}),
|
5300
5402
|
children: [
|
5301
|
-
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0,
|
5403
|
+
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: getClassName26("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
5302
5404
|
ViewportControls,
|
5303
5405
|
{
|
5304
5406
|
autoZoom: zoomConfig.autoZoom,
|
@@ -5323,8 +5425,8 @@ var Canvas = () => {
|
|
5323
5425
|
}
|
5324
5426
|
}
|
5325
5427
|
) }),
|
5326
|
-
/* @__PURE__ */ (0,
|
5327
|
-
/* @__PURE__ */ (0,
|
5428
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: getClassName26("inner"), ref: frameRef, children: [
|
5429
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
5328
5430
|
"div",
|
5329
5431
|
{
|
5330
5432
|
className: getClassName26("root"),
|
@@ -5336,10 +5438,10 @@ var Canvas = () => {
|
|
5336
5438
|
overflow: iframe.enabled ? void 0 : "auto"
|
5337
5439
|
},
|
5338
5440
|
suppressHydrationWarning: true,
|
5339
|
-
children: /* @__PURE__ */ (0,
|
5441
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Preview, {}) })
|
5340
5442
|
}
|
5341
5443
|
),
|
5342
|
-
/* @__PURE__ */ (0,
|
5444
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: getClassName26("loader"), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Loader, { size: 24 }) })
|
5343
5445
|
] })
|
5344
5446
|
]
|
5345
5447
|
}
|
@@ -5383,7 +5485,7 @@ var insertComponent = (componentType, zone, index, {
|
|
5383
5485
|
|
5384
5486
|
// lib/use-loaded-overrides.ts
|
5385
5487
|
init_react_import();
|
5386
|
-
var
|
5488
|
+
var import_react36 = require("react");
|
5387
5489
|
|
5388
5490
|
// lib/load-overrides.ts
|
5389
5491
|
init_react_import();
|
@@ -5422,18 +5524,18 @@ var useLoadedOverrides = ({
|
|
5422
5524
|
overrides,
|
5423
5525
|
plugins
|
5424
5526
|
}) => {
|
5425
|
-
return (0,
|
5527
|
+
return (0, import_react36.useMemo)(() => {
|
5426
5528
|
return loadOverrides({ overrides, plugins });
|
5427
5529
|
}, [plugins, overrides]);
|
5428
5530
|
};
|
5429
5531
|
|
5430
5532
|
// components/DefaultOverride/index.tsx
|
5431
5533
|
init_react_import();
|
5432
|
-
var
|
5433
|
-
var DefaultOverride = ({ children }) => /* @__PURE__ */ (0,
|
5534
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
5535
|
+
var DefaultOverride = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
|
5434
5536
|
|
5435
5537
|
// components/Puck/index.tsx
|
5436
|
-
var
|
5538
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
5437
5539
|
var getClassName27 = get_class_name_factory_default("Puck", styles_module_default15);
|
5438
5540
|
var getLayoutClassName = get_class_name_factory_default("PuckLayout", styles_module_default15);
|
5439
5541
|
function Puck({
|
@@ -5456,13 +5558,13 @@ function Puck({
|
|
5456
5558
|
dnd,
|
5457
5559
|
initialHistory: _initialHistory
|
5458
5560
|
}) {
|
5459
|
-
var _a;
|
5561
|
+
var _a, _b;
|
5460
5562
|
const iframe = __spreadValues({
|
5461
5563
|
enabled: true,
|
5462
5564
|
waitForStyles: true
|
5463
5565
|
}, _iframe);
|
5464
|
-
const [generatedAppState] = (0,
|
5465
|
-
var _a2,
|
5566
|
+
const [generatedAppState] = (0, import_react37.useState)(() => {
|
5567
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
5466
5568
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
5467
5569
|
let clientUiState = {};
|
5468
5570
|
if (typeof window !== "undefined") {
|
@@ -5482,7 +5584,7 @@ function Puck({
|
|
5482
5584
|
clientUiState = __spreadProps(__spreadValues({}, clientUiState), {
|
5483
5585
|
viewports: __spreadProps(__spreadValues({}, initial.viewports), {
|
5484
5586
|
current: __spreadProps(__spreadValues({}, initial.viewports.current), {
|
5485
|
-
height: ((
|
5587
|
+
height: ((_b2 = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b2.height) || ((_c = viewports[closestViewport]) == null ? void 0 : _c.height) || "auto",
|
5486
5588
|
width: ((_e = (_d = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _d.current) == null ? void 0 : _e.width) || ((_f = viewports[closestViewport]) == null ? void 0 : _f.width)
|
5487
5589
|
})
|
5488
5590
|
})
|
@@ -5533,22 +5635,27 @@ function Puck({
|
|
5533
5635
|
histories,
|
5534
5636
|
index: initialHistoryIndex
|
5535
5637
|
});
|
5536
|
-
const [reducer] = (0,
|
5638
|
+
const [reducer] = (0, import_react37.useState)(
|
5537
5639
|
() => createReducer({
|
5538
5640
|
config,
|
5539
5641
|
record: historyStore.record,
|
5540
5642
|
onAction
|
5541
5643
|
})
|
5542
5644
|
);
|
5543
|
-
const [appState, dispatch] = (0,
|
5645
|
+
const [appState, dispatch] = (0, import_react37.useReducer)(
|
5544
5646
|
reducer,
|
5545
5647
|
flushZones(initialAppState)
|
5546
5648
|
);
|
5547
5649
|
const { data, ui } = appState;
|
5548
|
-
const history = usePuckHistory({
|
5549
|
-
|
5650
|
+
const history = usePuckHistory({
|
5651
|
+
dispatch,
|
5652
|
+
initialAppState,
|
5653
|
+
historyStore,
|
5654
|
+
iframeEnabled: (_a = _iframe == null ? void 0 : _iframe.enabled) != null ? _a : true
|
5655
|
+
});
|
5656
|
+
const [menuOpen, setMenuOpen] = (0, import_react37.useState)(false);
|
5550
5657
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
5551
|
-
const setItemSelector = (0,
|
5658
|
+
const setItemSelector = (0, import_react37.useCallback)(
|
5552
5659
|
(newItemSelector) => {
|
5553
5660
|
if (newItemSelector === itemSelector) return;
|
5554
5661
|
dispatch({
|
@@ -5560,13 +5667,13 @@ function Puck({
|
|
5560
5667
|
[itemSelector]
|
5561
5668
|
);
|
5562
5669
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
5563
|
-
(0,
|
5670
|
+
(0, import_react37.useEffect)(() => {
|
5564
5671
|
if (onChange) onChange(data);
|
5565
5672
|
}, [data]);
|
5566
5673
|
const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
|
5567
|
-
const [draggedItem, setDraggedItem] = (0,
|
5674
|
+
const [draggedItem, setDraggedItem] = (0, import_react37.useState)();
|
5568
5675
|
const rootProps = data.root.props || data.root;
|
5569
|
-
const toggleSidebars = (0,
|
5676
|
+
const toggleSidebars = (0, import_react37.useCallback)(
|
5570
5677
|
(sidebar) => {
|
5571
5678
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
5572
5679
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -5580,7 +5687,7 @@ function Puck({
|
|
5580
5687
|
},
|
5581
5688
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
5582
5689
|
);
|
5583
|
-
(0,
|
5690
|
+
(0, import_react37.useEffect)(() => {
|
5584
5691
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
5585
5692
|
dispatch({
|
5586
5693
|
type: "setUi",
|
@@ -5603,28 +5710,28 @@ function Puck({
|
|
5603
5710
|
window.removeEventListener("resize", handleResize);
|
5604
5711
|
};
|
5605
5712
|
}, []);
|
5606
|
-
const defaultHeaderRender = (0,
|
5713
|
+
const defaultHeaderRender = (0, import_react37.useMemo)(() => {
|
5607
5714
|
if (renderHeader) {
|
5608
5715
|
console.warn(
|
5609
5716
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
5610
5717
|
);
|
5611
5718
|
const RenderHeader = (_a2) => {
|
5612
|
-
var
|
5719
|
+
var _b2 = _a2, { actions } = _b2, props = __objRest(_b2, ["actions"]);
|
5613
5720
|
const Comp = renderHeader;
|
5614
|
-
return /* @__PURE__ */ (0,
|
5721
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
|
5615
5722
|
};
|
5616
5723
|
return RenderHeader;
|
5617
5724
|
}
|
5618
5725
|
return DefaultOverride;
|
5619
5726
|
}, [renderHeader]);
|
5620
|
-
const defaultHeaderActionsRender = (0,
|
5727
|
+
const defaultHeaderActionsRender = (0, import_react37.useMemo)(() => {
|
5621
5728
|
if (renderHeaderActions) {
|
5622
5729
|
console.warn(
|
5623
5730
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
5624
5731
|
);
|
5625
5732
|
const RenderHeader = (props) => {
|
5626
5733
|
const Comp = renderHeaderActions;
|
5627
|
-
return /* @__PURE__ */ (0,
|
5734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
|
5628
5735
|
};
|
5629
5736
|
return RenderHeader;
|
5630
5737
|
}
|
@@ -5634,26 +5741,26 @@ function Puck({
|
|
5634
5741
|
overrides,
|
5635
5742
|
plugins
|
5636
5743
|
});
|
5637
|
-
const CustomPuck = (0,
|
5744
|
+
const CustomPuck = (0, import_react37.useMemo)(
|
5638
5745
|
() => loadedOverrides.puck || DefaultOverride,
|
5639
5746
|
[loadedOverrides]
|
5640
5747
|
);
|
5641
|
-
const CustomHeader = (0,
|
5748
|
+
const CustomHeader = (0, import_react37.useMemo)(
|
5642
5749
|
() => loadedOverrides.header || defaultHeaderRender,
|
5643
5750
|
[loadedOverrides]
|
5644
5751
|
);
|
5645
|
-
const CustomHeaderActions = (0,
|
5752
|
+
const CustomHeaderActions = (0, import_react37.useMemo)(
|
5646
5753
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
5647
5754
|
[loadedOverrides]
|
5648
5755
|
);
|
5649
|
-
const [mounted, setMounted] = (0,
|
5650
|
-
(0,
|
5756
|
+
const [mounted, setMounted] = (0, import_react37.useState)(false);
|
5757
|
+
(0, import_react37.useEffect)(() => {
|
5651
5758
|
setMounted(true);
|
5652
5759
|
}, []);
|
5653
5760
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|
5654
|
-
const selectedComponentLabel = selectedItem ? (
|
5655
|
-
return /* @__PURE__ */ (0,
|
5656
|
-
/* @__PURE__ */ (0,
|
5761
|
+
const selectedComponentLabel = selectedItem ? (_b = selectedComponentConfig == null ? void 0 : selectedComponentConfig["label"]) != null ? _b : selectedItem.type.toString() : "";
|
5762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: `Puck ${getClassName27()}`, children: [
|
5763
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5657
5764
|
AppProvider,
|
5658
5765
|
{
|
5659
5766
|
value: {
|
@@ -5675,7 +5782,7 @@ function Puck({
|
|
5675
5782
|
getPermissions: () => ({}),
|
5676
5783
|
refreshPermissions: () => null
|
5677
5784
|
},
|
5678
|
-
children: /* @__PURE__ */ (0,
|
5785
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(appContext.Consumer, { children: ({ resolveData }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5679
5786
|
DragDropContext,
|
5680
5787
|
{
|
5681
5788
|
autoScrollerOptions: { disabled: dnd == null ? void 0 : dnd.disableAutoScroll },
|
@@ -5727,7 +5834,7 @@ function Puck({
|
|
5727
5834
|
});
|
5728
5835
|
}
|
5729
5836
|
},
|
5730
|
-
children: /* @__PURE__ */ (0,
|
5837
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5731
5838
|
DropZoneProvider,
|
5732
5839
|
{
|
5733
5840
|
value: {
|
@@ -5741,7 +5848,7 @@ function Puck({
|
|
5741
5848
|
mode: "edit",
|
5742
5849
|
areaId: "root"
|
5743
5850
|
},
|
5744
|
-
children: /* @__PURE__ */ (0,
|
5851
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5745
5852
|
"div",
|
5746
5853
|
{
|
5747
5854
|
className: getLayoutClassName({
|
@@ -5750,58 +5857,58 @@ function Puck({
|
|
5750
5857
|
mounted,
|
5751
5858
|
rightSideBarVisible
|
5752
5859
|
}),
|
5753
|
-
children: /* @__PURE__ */ (0,
|
5754
|
-
/* @__PURE__ */ (0,
|
5860
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("inner"), children: [
|
5861
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5755
5862
|
CustomHeader,
|
5756
5863
|
{
|
5757
|
-
actions: /* @__PURE__ */ (0,
|
5864
|
+
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)(
|
5758
5865
|
Button,
|
5759
5866
|
{
|
5760
5867
|
onClick: () => {
|
5761
5868
|
onPublish && onPublish(data);
|
5762
5869
|
},
|
5763
|
-
icon: /* @__PURE__ */ (0,
|
5870
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Globe, { size: "14px" }),
|
5764
5871
|
children: "Publish"
|
5765
5872
|
}
|
5766
5873
|
) }) }),
|
5767
|
-
children: /* @__PURE__ */ (0,
|
5768
|
-
/* @__PURE__ */ (0,
|
5874
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("header", { className: getLayoutClassName("header"), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("headerInner"), children: [
|
5875
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
5769
5876
|
"div",
|
5770
5877
|
{
|
5771
5878
|
className: getLayoutClassName("headerToggle"),
|
5772
5879
|
children: [
|
5773
|
-
/* @__PURE__ */ (0,
|
5880
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5774
5881
|
"div",
|
5775
5882
|
{
|
5776
5883
|
className: getLayoutClassName(
|
5777
5884
|
"leftSideBarToggle"
|
5778
5885
|
),
|
5779
|
-
children: /* @__PURE__ */ (0,
|
5886
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5780
5887
|
IconButton,
|
5781
5888
|
{
|
5782
5889
|
onClick: () => {
|
5783
5890
|
toggleSidebars("left");
|
5784
5891
|
},
|
5785
5892
|
title: "Toggle left sidebar",
|
5786
|
-
children: /* @__PURE__ */ (0,
|
5893
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PanelLeft, { focusable: "false" })
|
5787
5894
|
}
|
5788
5895
|
)
|
5789
5896
|
}
|
5790
5897
|
),
|
5791
|
-
/* @__PURE__ */ (0,
|
5898
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5792
5899
|
"div",
|
5793
5900
|
{
|
5794
5901
|
className: getLayoutClassName(
|
5795
5902
|
"rightSideBarToggle"
|
5796
5903
|
),
|
5797
|
-
children: /* @__PURE__ */ (0,
|
5904
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5798
5905
|
IconButton,
|
5799
5906
|
{
|
5800
5907
|
onClick: () => {
|
5801
5908
|
toggleSidebars("right");
|
5802
5909
|
},
|
5803
5910
|
title: "Toggle right sidebar",
|
5804
|
-
children: /* @__PURE__ */ (0,
|
5911
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(PanelRight, { focusable: "false" })
|
5805
5912
|
}
|
5806
5913
|
)
|
5807
5914
|
}
|
@@ -5809,15 +5916,15 @@ function Puck({
|
|
5809
5916
|
]
|
5810
5917
|
}
|
5811
5918
|
),
|
5812
|
-
/* @__PURE__ */ (0,
|
5919
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5813
5920
|
"div",
|
5814
5921
|
{
|
5815
5922
|
className: getLayoutClassName("headerTitle"),
|
5816
|
-
children: /* @__PURE__ */ (0,
|
5923
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Heading, { rank: "2", size: "xs", children: [
|
5817
5924
|
headerTitle || rootProps.title || "Page",
|
5818
|
-
headerPath && /* @__PURE__ */ (0,
|
5925
|
+
headerPath && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
5819
5926
|
" ",
|
5820
|
-
/* @__PURE__ */ (0,
|
5927
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5821
5928
|
"code",
|
5822
5929
|
{
|
5823
5930
|
className: getLayoutClassName(
|
@@ -5830,41 +5937,41 @@ function Puck({
|
|
5830
5937
|
] })
|
5831
5938
|
}
|
5832
5939
|
),
|
5833
|
-
/* @__PURE__ */ (0,
|
5940
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
5834
5941
|
"div",
|
5835
5942
|
{
|
5836
5943
|
className: getLayoutClassName("headerTools"),
|
5837
5944
|
children: [
|
5838
|
-
/* @__PURE__ */ (0,
|
5945
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5839
5946
|
"div",
|
5840
5947
|
{
|
5841
5948
|
className: getLayoutClassName("menuButton"),
|
5842
|
-
children: /* @__PURE__ */ (0,
|
5949
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5843
5950
|
IconButton,
|
5844
5951
|
{
|
5845
5952
|
onClick: () => {
|
5846
5953
|
return setMenuOpen(!menuOpen);
|
5847
5954
|
},
|
5848
5955
|
title: "Toggle menu bar",
|
5849
|
-
children: menuOpen ? /* @__PURE__ */ (0,
|
5956
|
+
children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ChevronDown, { focusable: "false" })
|
5850
5957
|
}
|
5851
5958
|
)
|
5852
5959
|
}
|
5853
5960
|
),
|
5854
|
-
/* @__PURE__ */ (0,
|
5961
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5855
5962
|
MenuBar,
|
5856
5963
|
{
|
5857
5964
|
appState,
|
5858
5965
|
dispatch,
|
5859
5966
|
onPublish,
|
5860
5967
|
menuOpen,
|
5861
|
-
renderHeaderActions: () => /* @__PURE__ */ (0,
|
5968
|
+
renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(CustomHeaderActions, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5862
5969
|
Button,
|
5863
5970
|
{
|
5864
5971
|
onClick: () => {
|
5865
5972
|
onPublish && onPublish(data);
|
5866
5973
|
},
|
5867
|
-
icon: /* @__PURE__ */ (0,
|
5974
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Globe, { size: "14px" }),
|
5868
5975
|
children: "Publish"
|
5869
5976
|
}
|
5870
5977
|
) }),
|
@@ -5877,19 +5984,19 @@ function Puck({
|
|
5877
5984
|
] }) })
|
5878
5985
|
}
|
5879
5986
|
),
|
5880
|
-
/* @__PURE__ */ (0,
|
5881
|
-
/* @__PURE__ */ (0,
|
5882
|
-
/* @__PURE__ */ (0,
|
5987
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: getLayoutClassName("leftSideBar"), children: [
|
5988
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Components, {}) }),
|
5989
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Outline, {}) })
|
5883
5990
|
] }),
|
5884
|
-
/* @__PURE__ */ (0,
|
5885
|
-
/* @__PURE__ */ (0,
|
5991
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Canvas, {}),
|
5992
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: getLayoutClassName("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
5886
5993
|
SidebarSection,
|
5887
5994
|
{
|
5888
5995
|
noPadding: true,
|
5889
5996
|
noBorderTop: true,
|
5890
5997
|
showBreadcrumbs: true,
|
5891
5998
|
title: selectedItem ? selectedComponentLabel : "Page",
|
5892
|
-
children: /* @__PURE__ */ (0,
|
5999
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Fields, {})
|
5893
6000
|
}
|
5894
6001
|
) })
|
5895
6002
|
] })
|
@@ -5901,7 +6008,7 @@ function Puck({
|
|
5901
6008
|
) })
|
5902
6009
|
}
|
5903
6010
|
),
|
5904
|
-
/* @__PURE__ */ (0,
|
6011
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { id: "puck-portal-root", className: getClassName27("portal") })
|
5905
6012
|
] });
|
5906
6013
|
}
|
5907
6014
|
Puck.Components = Components;
|
@@ -5911,7 +6018,7 @@ Puck.Preview = Preview;
|
|
5911
6018
|
|
5912
6019
|
// components/Render/index.tsx
|
5913
6020
|
init_react_import();
|
5914
|
-
var
|
6021
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
5915
6022
|
function Render({
|
5916
6023
|
config,
|
5917
6024
|
data
|
@@ -5924,7 +6031,7 @@ function Render({
|
|
5924
6031
|
const rootProps = defaultedData.root.props || defaultedData.root;
|
5925
6032
|
const title = (rootProps == null ? void 0 : rootProps.title) || "";
|
5926
6033
|
if ((_a = config.root) == null ? void 0 : _a.render) {
|
5927
|
-
return /* @__PURE__ */ (0,
|
6034
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(DropZoneProvider, { value: { data: defaultedData, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
5928
6035
|
config.root.render,
|
5929
6036
|
__spreadProps(__spreadValues({}, rootProps), {
|
5930
6037
|
puck: {
|
@@ -5934,11 +6041,11 @@ function Render({
|
|
5934
6041
|
title,
|
5935
6042
|
editMode: false,
|
5936
6043
|
id: "puck-root",
|
5937
|
-
children: /* @__PURE__ */ (0,
|
6044
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(DropZone, { zone: rootDroppableId })
|
5938
6045
|
})
|
5939
6046
|
) });
|
5940
6047
|
}
|
5941
|
-
return /* @__PURE__ */ (0,
|
6048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(DropZoneProvider, { value: { data: defaultedData, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(DropZone, { zone: rootDroppableId }) });
|
5942
6049
|
}
|
5943
6050
|
|
5944
6051
|
// lib/migrate.ts
|