@measured/puck 0.18.0-canary.cfe4ca8 → 0.18.0-canary.d211707
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/index.css +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +204 -129
- package/dist/index.mjs +195 -120
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -1504,12 +1504,13 @@ var DefaultField = ({
|
|
1504
1504
|
field,
|
1505
1505
|
onChange,
|
1506
1506
|
readOnly,
|
1507
|
-
value,
|
1507
|
+
value: _value,
|
1508
1508
|
name,
|
1509
1509
|
label,
|
1510
1510
|
Label: Label2,
|
1511
1511
|
id
|
1512
1512
|
}) => {
|
1513
|
+
const value = _value;
|
1513
1514
|
return /* @__PURE__ */ jsx9(
|
1514
1515
|
Label2,
|
1515
1516
|
{
|
@@ -1527,7 +1528,7 @@ var DefaultField = ({
|
|
1527
1528
|
type: field.type,
|
1528
1529
|
title: label || name,
|
1529
1530
|
name,
|
1530
|
-
value:
|
1531
|
+
value: (value == null ? void 0 : value.toString) ? value.toString() : "",
|
1531
1532
|
onChange: (e) => {
|
1532
1533
|
if (field.type === "number") {
|
1533
1534
|
const numberValue = Number(e.currentTarget.value);
|
@@ -2436,7 +2437,7 @@ import {
|
|
2436
2437
|
useContext as useContext7,
|
2437
2438
|
useEffect as useEffect15,
|
2438
2439
|
useId,
|
2439
|
-
useRef as
|
2440
|
+
useRef as useRef3,
|
2440
2441
|
useState as useState17
|
2441
2442
|
} from "react";
|
2442
2443
|
import { AutoScroller, defaultPreset } from "@dnd-kit/dom";
|
@@ -2449,7 +2450,7 @@ import {
|
|
2449
2450
|
useContext as useContext6,
|
2450
2451
|
useEffect as useEffect14,
|
2451
2452
|
useMemo as useMemo8,
|
2452
|
-
useRef as
|
2453
|
+
useRef as useRef2
|
2453
2454
|
} from "react";
|
2454
2455
|
|
2455
2456
|
// components/DraggableComponent/index.tsx
|
@@ -2459,7 +2460,7 @@ import {
|
|
2459
2460
|
useContext as useContext5,
|
2460
2461
|
useEffect as useEffect10,
|
2461
2462
|
useMemo as useMemo7,
|
2462
|
-
useRef
|
2463
|
+
useRef,
|
2463
2464
|
useState as useState13
|
2464
2465
|
} from "react";
|
2465
2466
|
|
@@ -3047,7 +3048,7 @@ var DraggableComponent = ({
|
|
3047
3048
|
}
|
3048
3049
|
});
|
3049
3050
|
const thisIsDragging = status === "dragging";
|
3050
|
-
const ref =
|
3051
|
+
const ref = useRef(null);
|
3051
3052
|
const refSetter = useCallback7(
|
3052
3053
|
(el) => {
|
3053
3054
|
sortableRef(el);
|
@@ -3098,13 +3099,19 @@ var DraggableComponent = ({
|
|
3098
3099
|
}
|
3099
3100
|
}, [ref.current]);
|
3100
3101
|
useEffect10(() => {
|
3101
|
-
|
3102
|
-
|
3102
|
+
ctx == null ? void 0 : ctx.registerPath(
|
3103
|
+
id,
|
3104
|
+
{
|
3103
3105
|
index,
|
3104
3106
|
zone: zoneCompound
|
3105
|
-
}
|
3106
|
-
|
3107
|
-
|
3107
|
+
},
|
3108
|
+
componentType
|
3109
|
+
);
|
3110
|
+
return () => {
|
3111
|
+
var _a;
|
3112
|
+
(_a = ctx == null ? void 0 : ctx.unregisterPath) == null ? void 0 : _a.call(ctx, id);
|
3113
|
+
};
|
3114
|
+
}, [id, zoneCompound, index, componentType]);
|
3108
3115
|
const CustomActionBar = useMemo7(
|
3109
3116
|
() => overrides.actionBar || DefaultActionBar,
|
3110
3117
|
[overrides.actionBar]
|
@@ -3424,9 +3431,20 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3424
3431
|
};
|
3425
3432
|
}
|
3426
3433
|
);
|
3434
|
+
const {
|
3435
|
+
state: {
|
3436
|
+
ui: { isDragging }
|
3437
|
+
}
|
3438
|
+
} = useAppContext();
|
3427
3439
|
const [contentWithPreview, setContentWithPreview] = useState15(content);
|
3440
|
+
const [localPreview, setLocalPreview] = useState15(
|
3441
|
+
preview
|
3442
|
+
);
|
3428
3443
|
const updateContent = useRenderedCallback(
|
3429
|
-
(content2, preview2) => {
|
3444
|
+
(content2, preview2, isDragging2) => {
|
3445
|
+
if (isDragging2 && !previewExists) {
|
3446
|
+
return;
|
3447
|
+
}
|
3430
3448
|
if (preview2) {
|
3431
3449
|
if (preview2.type === "insert") {
|
3432
3450
|
setContentWithPreview(
|
@@ -3456,13 +3474,14 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3456
3474
|
previewExists ? content2.filter((item) => item.props.id !== draggedItemId) : content2
|
3457
3475
|
);
|
3458
3476
|
}
|
3477
|
+
setLocalPreview(preview2);
|
3459
3478
|
},
|
3460
3479
|
[draggedItemId, previewExists]
|
3461
3480
|
);
|
3462
3481
|
useEffect12(() => {
|
3463
|
-
updateContent(content, preview);
|
3464
|
-
}, [content, preview]);
|
3465
|
-
return contentWithPreview;
|
3482
|
+
updateContent(content, preview, isDragging);
|
3483
|
+
}, [content, preview, isDragging]);
|
3484
|
+
return [contentWithPreview, localPreview];
|
3466
3485
|
};
|
3467
3486
|
|
3468
3487
|
// components/DropZone/lib/use-drag-axis.ts
|
@@ -3542,8 +3561,7 @@ var DropZoneEdit = forwardRef3(
|
|
3542
3561
|
isDeepestZone,
|
3543
3562
|
inNextDeepestArea,
|
3544
3563
|
draggedComponentType,
|
3545
|
-
userIsDragging
|
3546
|
-
preview
|
3564
|
+
userIsDragging
|
3547
3565
|
} = useContextStore(ZoneStoreContext, (s) => {
|
3548
3566
|
var _a, _b, _c;
|
3549
3567
|
return {
|
@@ -3551,8 +3569,7 @@ var DropZoneEdit = forwardRef3(
|
|
3551
3569
|
inNextDeepestArea: s.nextAreaDepthIndex[areaId || ""],
|
3552
3570
|
draggedItemId: (_b = s.draggedItem) == null ? void 0 : _b.id,
|
3553
3571
|
draggedComponentType: (_c = s.draggedItem) == null ? void 0 : _c.data.componentType,
|
3554
|
-
userIsDragging: !!s.draggedItem
|
3555
|
-
preview: s.previewIndex[zoneCompound]
|
3572
|
+
userIsDragging: !!s.draggedItem
|
3556
3573
|
};
|
3557
3574
|
});
|
3558
3575
|
const { itemSelector } = appContext2.state.ui;
|
@@ -3577,7 +3594,7 @@ var DropZoneEdit = forwardRef3(
|
|
3577
3594
|
}
|
3578
3595
|
return data.content || [];
|
3579
3596
|
}, [data, zoneCompound]);
|
3580
|
-
const ref =
|
3597
|
+
const ref = useRef2(null);
|
3581
3598
|
const acceptsTarget = useCallback10(
|
3582
3599
|
(componentType) => {
|
3583
3600
|
if (!componentType) {
|
@@ -3618,7 +3635,10 @@ var DropZoneEdit = forwardRef3(
|
|
3618
3635
|
if (isEnabled) {
|
3619
3636
|
isEnabled = acceptsTarget(draggedComponentType);
|
3620
3637
|
}
|
3621
|
-
const contentWithPreview = useContentWithPreview(
|
3638
|
+
const [contentWithPreview, preview] = useContentWithPreview(
|
3639
|
+
content,
|
3640
|
+
zoneCompound
|
3641
|
+
);
|
3622
3642
|
const isDropEnabled = isEnabled && (preview ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3623
3643
|
const droppableConfig = {
|
3624
3644
|
id: zoneCompound,
|
@@ -3660,10 +3680,9 @@ var DropZoneEdit = forwardRef3(
|
|
3660
3680
|
},
|
3661
3681
|
"data-testid": `dropzone:${zoneCompound}`,
|
3662
3682
|
"data-puck-dropzone": zoneCompound,
|
3663
|
-
"data-puck-dnd": zoneCompound,
|
3664
3683
|
style: __spreadProps(__spreadValues({}, style), {
|
3665
3684
|
"--min-empty-height": `${minEmptyHeight}px`,
|
3666
|
-
backgroundColor: RENDER_DEBUG ? getRandomColor() : void 0
|
3685
|
+
backgroundColor: RENDER_DEBUG ? getRandomColor() : style == null ? void 0 : style.backgroundColor
|
3667
3686
|
}),
|
3668
3687
|
children: contentWithPreview.map((item, i) => {
|
3669
3688
|
var _a, _b, _c, _d, _e, _f, _g;
|
@@ -3942,6 +3961,13 @@ var getPointerCollisions = (position, manager) => {
|
|
3942
3961
|
if (elements) {
|
3943
3962
|
for (let i = 0; i < elements.length; i++) {
|
3944
3963
|
const element = elements[i];
|
3964
|
+
const dropzoneId = element.getAttribute("data-puck-dropzone");
|
3965
|
+
if (dropzoneId) {
|
3966
|
+
const droppable = manager.registry.droppables.get(dropzoneId);
|
3967
|
+
if (droppable) {
|
3968
|
+
candidates.push(droppable);
|
3969
|
+
}
|
3970
|
+
}
|
3945
3971
|
const id = element.getAttribute("data-puck-dnd");
|
3946
3972
|
if (id) {
|
3947
3973
|
const droppable = manager.registry.droppables.get(id);
|
@@ -4734,7 +4760,7 @@ function useDragListener(type, fn, deps = []) {
|
|
4734
4760
|
}
|
4735
4761
|
var AREA_CHANGE_DEBOUNCE_MS = 100;
|
4736
4762
|
var useTempDisableFallback = (timeout3) => {
|
4737
|
-
const lastFallbackDisable =
|
4763
|
+
const lastFallbackDisable = useRef3(null);
|
4738
4764
|
return useCallback11((manager) => {
|
4739
4765
|
collisionStore.setState({ fallbackEnabled: false });
|
4740
4766
|
const fallbackId = generateId();
|
@@ -4754,7 +4780,7 @@ var DragDropContextClient = ({
|
|
4754
4780
|
const { state, config, dispatch, resolveData } = useAppContext();
|
4755
4781
|
const id = useId();
|
4756
4782
|
const { data } = state;
|
4757
|
-
const debouncedParamsRef =
|
4783
|
+
const debouncedParamsRef = useRef3(null);
|
4758
4784
|
const tempDisableFallback = useTempDisableFallback(100);
|
4759
4785
|
const [zoneStore] = useState17(
|
4760
4786
|
() => createStore3(() => ({
|
@@ -4893,30 +4919,36 @@ var DragDropContextClient = ({
|
|
4893
4919
|
]);
|
4894
4920
|
const [dragListeners, setDragListeners] = useState17({});
|
4895
4921
|
const [pathData, setPathData] = useState17();
|
4896
|
-
const dragMode =
|
4922
|
+
const dragMode = useRef3(null);
|
4897
4923
|
const registerPath = useCallback11(
|
4898
|
-
(selector) => {
|
4899
|
-
const item = getItem(selector, data);
|
4900
|
-
if (!item) {
|
4901
|
-
return;
|
4902
|
-
}
|
4924
|
+
(id2, selector, label) => {
|
4903
4925
|
const [area] = getZoneId(selector.zone);
|
4904
4926
|
setPathData((latestPathData = {}) => {
|
4905
4927
|
const parentPathData = latestPathData[area] || { path: [] };
|
4906
4928
|
return __spreadProps(__spreadValues({}, latestPathData), {
|
4907
|
-
[
|
4929
|
+
[id2]: {
|
4908
4930
|
path: [
|
4909
4931
|
...parentPathData.path,
|
4910
4932
|
...selector.zone ? [selector.zone] : []
|
4911
4933
|
],
|
4912
|
-
label
|
4934
|
+
label
|
4913
4935
|
}
|
4914
4936
|
});
|
4915
4937
|
});
|
4916
4938
|
},
|
4917
4939
|
[data, setPathData]
|
4918
4940
|
);
|
4919
|
-
const
|
4941
|
+
const unregisterPath = useCallback11(
|
4942
|
+
(id2) => {
|
4943
|
+
setPathData((latestPathData = {}) => {
|
4944
|
+
const newPathData = __spreadValues({}, latestPathData);
|
4945
|
+
delete newPathData[id2];
|
4946
|
+
return newPathData;
|
4947
|
+
});
|
4948
|
+
},
|
4949
|
+
[data, setPathData]
|
4950
|
+
);
|
4951
|
+
const initialSelector = useRef3(void 0);
|
4920
4952
|
return /* @__PURE__ */ jsx23("div", { id, children: /* @__PURE__ */ jsx23(
|
4921
4953
|
dragListenerContext.Provider,
|
4922
4954
|
{
|
@@ -5112,6 +5144,7 @@ var DragDropContextClient = ({
|
|
5112
5144
|
areaId: "root",
|
5113
5145
|
depth: 0,
|
5114
5146
|
registerPath,
|
5147
|
+
unregisterPath,
|
5115
5148
|
pathData,
|
5116
5149
|
path: []
|
5117
5150
|
},
|
@@ -5261,9 +5294,9 @@ Drawer.Item = DrawerItem;
|
|
5261
5294
|
// components/Puck/index.tsx
|
5262
5295
|
init_react_import();
|
5263
5296
|
import {
|
5264
|
-
useCallback as
|
5265
|
-
useEffect as
|
5266
|
-
useMemo as
|
5297
|
+
useCallback as useCallback18,
|
5298
|
+
useEffect as useEffect24,
|
5299
|
+
useMemo as useMemo19,
|
5267
5300
|
useReducer,
|
5268
5301
|
useState as useState26
|
5269
5302
|
} from "react";
|
@@ -5462,33 +5495,58 @@ init_react_import();
|
|
5462
5495
|
var styles_module_default16 = { "PuckFields": "_PuckFields_10bh7_1", "PuckFields--isLoading": "_PuckFields--isLoading_10bh7_6", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_10bh7_10", "PuckFields-loadingOverlayInner": "_PuckFields-loadingOverlayInner_10bh7_25", "PuckFields-field": "_PuckFields-field_10bh7_32", "PuckFields--wrapFields": "_PuckFields--wrapFields_10bh7_36" };
|
5463
5496
|
|
5464
5497
|
// components/Puck/components/Fields/index.tsx
|
5465
|
-
import {
|
5498
|
+
import { useMemo as useMemo12 } from "react";
|
5499
|
+
|
5500
|
+
// lib/use-resolved-fields.ts
|
5501
|
+
init_react_import();
|
5502
|
+
import { useCallback as useCallback13, useEffect as useEffect17, useMemo as useMemo11, useRef as useRef5, useState as useState19 } from "react";
|
5466
5503
|
|
5467
5504
|
// lib/use-parent.ts
|
5468
5505
|
init_react_import();
|
5469
|
-
import { useContext as useContext9 } from "react";
|
5470
|
-
var
|
5506
|
+
import { useCallback as useCallback12, useContext as useContext9 } from "react";
|
5507
|
+
var getParent = (itemSelector, pathData, data) => {
|
5471
5508
|
var _a;
|
5472
|
-
|
5473
|
-
const
|
5474
|
-
const
|
5475
|
-
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
5509
|
+
if (!itemSelector) return null;
|
5510
|
+
const item = getItem(itemSelector, data);
|
5511
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, data);
|
5476
5512
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
5477
|
-
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector,
|
5513
|
+
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, data)) != null ? _a : null : null;
|
5478
5514
|
return parent || null;
|
5479
5515
|
};
|
5516
|
+
var useGetParent = () => {
|
5517
|
+
const { state } = useAppContext();
|
5518
|
+
const { pathData } = useContext9(dropZoneContext) || {};
|
5519
|
+
return useCallback12(
|
5520
|
+
() => getParent(state.ui.itemSelector, pathData, state.data),
|
5521
|
+
[state.ui.itemSelector, pathData, state.data]
|
5522
|
+
);
|
5523
|
+
};
|
5524
|
+
var useParent = () => {
|
5525
|
+
return useGetParent()();
|
5526
|
+
};
|
5480
5527
|
|
5481
|
-
//
|
5482
|
-
|
5483
|
-
|
5528
|
+
// lib/use-on-value-change.ts
|
5529
|
+
init_react_import();
|
5530
|
+
import { useRef as useRef4, useEffect as useEffect16 } from "react";
|
5531
|
+
function useOnValueChange(value, onChange, compare = Object.is, deps = []) {
|
5532
|
+
const tracked = useRef4(value);
|
5533
|
+
useEffect16(() => {
|
5534
|
+
const oldValue = tracked.current;
|
5535
|
+
if (!compare(value, oldValue)) {
|
5536
|
+
tracked.current = value;
|
5537
|
+
onChange(value, oldValue);
|
5538
|
+
}
|
5539
|
+
}, [onChange, compare, value, ...deps]);
|
5540
|
+
}
|
5541
|
+
|
5542
|
+
// lib/selector-is.ts
|
5543
|
+
init_react_import();
|
5544
|
+
var selectorIs = (a, b) => (a == null ? void 0 : a.zone) === (b == null ? void 0 : b.zone) && (a == null ? void 0 : a.index) === (b == null ? void 0 : b.index);
|
5545
|
+
|
5546
|
+
// lib/use-resolved-fields.ts
|
5484
5547
|
var defaultPageFields = {
|
5485
5548
|
title: { type: "text" }
|
5486
5549
|
};
|
5487
|
-
var DefaultFields = ({
|
5488
|
-
children
|
5489
|
-
}) => {
|
5490
|
-
return /* @__PURE__ */ jsx27(Fragment8, { children });
|
5491
|
-
};
|
5492
5550
|
var useResolvedFields = () => {
|
5493
5551
|
var _a, _b;
|
5494
5552
|
const { selectedItem, state, config } = useAppContext();
|
@@ -5504,12 +5562,13 @@ var useResolvedFields = () => {
|
|
5504
5562
|
const [lastSelectedData, setLastSelectedData] = useState19({});
|
5505
5563
|
const [resolvedFields, setResolvedFields] = useState19(defaultFields);
|
5506
5564
|
const [fieldsLoading, setFieldsLoading] = useState19(false);
|
5565
|
+
const lastFields = useRef5(defaultFields);
|
5507
5566
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5508
5567
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5509
5568
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5510
5569
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5511
5570
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5512
|
-
const resolveFields =
|
5571
|
+
const resolveFields = useCallback13(
|
5513
5572
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5514
5573
|
var _a2;
|
5515
5574
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5521,7 +5580,7 @@ var useResolvedFields = () => {
|
|
5521
5580
|
{
|
5522
5581
|
changed,
|
5523
5582
|
fields,
|
5524
|
-
lastFields:
|
5583
|
+
lastFields: lastFields.current,
|
5525
5584
|
lastData,
|
5526
5585
|
appState: state,
|
5527
5586
|
parent
|
@@ -5532,7 +5591,7 @@ var useResolvedFields = () => {
|
|
5532
5591
|
return yield config.root.resolveFields(componentData, {
|
5533
5592
|
changed,
|
5534
5593
|
fields,
|
5535
|
-
lastFields:
|
5594
|
+
lastFields: lastFields.current,
|
5536
5595
|
lastData,
|
5537
5596
|
appState: state,
|
5538
5597
|
parent
|
@@ -5541,39 +5600,55 @@ var useResolvedFields = () => {
|
|
5541
5600
|
return defaultResolveFields(componentData, {
|
5542
5601
|
changed,
|
5543
5602
|
fields,
|
5544
|
-
lastFields:
|
5603
|
+
lastFields: lastFields.current,
|
5545
5604
|
lastData
|
5546
5605
|
});
|
5547
5606
|
}),
|
5548
|
-
[data, config, componentData, selectedItem,
|
5607
|
+
[data, config, componentData, selectedItem, state, parent]
|
5549
5608
|
);
|
5550
|
-
const
|
5551
|
-
useEffect16(() => {
|
5552
|
-
setHasParent(!!parent);
|
5553
|
-
}, [parent]);
|
5554
|
-
useEffect16(() => {
|
5609
|
+
const triggerResolver = useCallback13(() => {
|
5555
5610
|
var _a2, _b2;
|
5556
|
-
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" ||
|
5611
|
+
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" || parent) {
|
5557
5612
|
if (hasResolver) {
|
5558
5613
|
setFieldsLoading(true);
|
5559
5614
|
resolveFields(defaultFields).then((fields) => {
|
5560
5615
|
setResolvedFields(fields || {});
|
5616
|
+
lastFields.current = fields;
|
5561
5617
|
setFieldsLoading(false);
|
5562
5618
|
});
|
5563
5619
|
return;
|
5564
5620
|
}
|
5565
5621
|
}
|
5566
5622
|
setResolvedFields(defaultFields);
|
5567
|
-
}, [
|
5568
|
-
|
5569
|
-
defaultFields,
|
5623
|
+
}, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
|
5624
|
+
useOnValueChange(
|
5570
5625
|
state.ui.itemSelector,
|
5571
|
-
|
5572
|
-
|
5573
|
-
|
5574
|
-
|
5626
|
+
() => {
|
5627
|
+
lastFields.current = defaultFields;
|
5628
|
+
},
|
5629
|
+
selectorIs
|
5630
|
+
);
|
5631
|
+
useOnValueChange(
|
5632
|
+
{ data, parent, itemSelector: state.ui.itemSelector },
|
5633
|
+
() => {
|
5634
|
+
triggerResolver();
|
5635
|
+
},
|
5636
|
+
(a, b) => JSON.stringify(a) === JSON.stringify(b)
|
5637
|
+
);
|
5638
|
+
useEffect17(() => {
|
5639
|
+
triggerResolver();
|
5640
|
+
}, []);
|
5575
5641
|
return [resolvedFields, fieldsLoading];
|
5576
5642
|
};
|
5643
|
+
|
5644
|
+
// components/Puck/components/Fields/index.tsx
|
5645
|
+
import { Fragment as Fragment8, jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
|
5646
|
+
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
5647
|
+
var DefaultFields = ({
|
5648
|
+
children
|
5649
|
+
}) => {
|
5650
|
+
return /* @__PURE__ */ jsx27(Fragment8, { children });
|
5651
|
+
};
|
5577
5652
|
var Fields = ({ wrapFields = true }) => {
|
5578
5653
|
var _a, _b;
|
5579
5654
|
const {
|
@@ -5592,7 +5667,7 @@ var Fields = ({ wrapFields = true }) => {
|
|
5592
5667
|
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;
|
5593
5668
|
const isLoading = fieldsResolving || componentResolving;
|
5594
5669
|
const rootProps = data.root.props || data.root;
|
5595
|
-
const Wrapper =
|
5670
|
+
const Wrapper = useMemo12(() => overrides.fields || DefaultFields, [overrides]);
|
5596
5671
|
return /* @__PURE__ */ jsxs14(
|
5597
5672
|
"form",
|
5598
5673
|
{
|
@@ -5713,7 +5788,7 @@ init_react_import();
|
|
5713
5788
|
|
5714
5789
|
// lib/use-component-list.tsx
|
5715
5790
|
init_react_import();
|
5716
|
-
import { useEffect as
|
5791
|
+
import { useEffect as useEffect18, useState as useState20 } from "react";
|
5717
5792
|
|
5718
5793
|
// components/ComponentList/index.tsx
|
5719
5794
|
init_react_import();
|
@@ -5781,7 +5856,7 @@ ComponentList.Item = ComponentListItem;
|
|
5781
5856
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
5782
5857
|
var useComponentList = (config, ui) => {
|
5783
5858
|
const [componentList, setComponentList] = useState20();
|
5784
|
-
|
5859
|
+
useEffect18(() => {
|
5785
5860
|
var _a, _b, _c;
|
5786
5861
|
if (Object.keys(ui.componentList).length > 0) {
|
5787
5862
|
const matchedComponents = [];
|
@@ -5850,25 +5925,25 @@ var useComponentList = (config, ui) => {
|
|
5850
5925
|
};
|
5851
5926
|
|
5852
5927
|
// components/Puck/components/Components/index.tsx
|
5853
|
-
import { useMemo as
|
5928
|
+
import { useMemo as useMemo13 } from "react";
|
5854
5929
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
5855
5930
|
var Components = () => {
|
5856
5931
|
const { config, state, overrides } = useAppContext();
|
5857
5932
|
const componentList = useComponentList(config, state.ui);
|
5858
|
-
const Wrapper =
|
5933
|
+
const Wrapper = useMemo13(() => overrides.components || "div", [overrides]);
|
5859
5934
|
return /* @__PURE__ */ jsx30(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ jsx30(ComponentList, { id: "all" }) });
|
5860
5935
|
};
|
5861
5936
|
|
5862
5937
|
// components/Puck/components/Preview/index.tsx
|
5863
5938
|
init_react_import();
|
5864
|
-
import { useCallback as
|
5939
|
+
import { useCallback as useCallback14, useEffect as useEffect20, useRef as useRef7, useMemo as useMemo14 } from "react";
|
5865
5940
|
|
5866
5941
|
// components/AutoFrame/index.tsx
|
5867
5942
|
init_react_import();
|
5868
5943
|
import {
|
5869
5944
|
createContext as createContext5,
|
5870
5945
|
useContext as useContext10,
|
5871
|
-
useEffect as
|
5946
|
+
useEffect as useEffect19,
|
5872
5947
|
useState as useState21
|
5873
5948
|
} from "react";
|
5874
5949
|
import hash from "object-hash";
|
@@ -5916,7 +5991,7 @@ var CopyHostStyles = ({
|
|
5916
5991
|
onStylesLoaded = () => null
|
5917
5992
|
}) => {
|
5918
5993
|
const { document: doc, window: win } = useFrame();
|
5919
|
-
|
5994
|
+
useEffect19(() => {
|
5920
5995
|
if (!win || !doc) {
|
5921
5996
|
return () => {
|
5922
5997
|
};
|
@@ -6096,7 +6171,7 @@ function AutoFrame(_a) {
|
|
6096
6171
|
const [loaded, setLoaded] = useState21(false);
|
6097
6172
|
const [ctx, setCtx] = useState21({});
|
6098
6173
|
const [mountTarget, setMountTarget] = useState21();
|
6099
|
-
|
6174
|
+
useEffect19(() => {
|
6100
6175
|
var _a2;
|
6101
6176
|
if (frameRef.current) {
|
6102
6177
|
setCtx({
|
@@ -6190,7 +6265,7 @@ import { Fragment as Fragment10, jsx as jsx33 } from "react/jsx-runtime";
|
|
6190
6265
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
6191
6266
|
var useBubbleIframeEvents = (ref) => {
|
6192
6267
|
const { status } = useAppContext();
|
6193
|
-
|
6268
|
+
useEffect20(() => {
|
6194
6269
|
var _a;
|
6195
6270
|
if (ref.current && status === "READY") {
|
6196
6271
|
const iframe = ref.current;
|
@@ -6229,7 +6304,7 @@ var useBubbleIframeEvents = (ref) => {
|
|
6229
6304
|
};
|
6230
6305
|
var Preview2 = ({ id = "puck-preview" }) => {
|
6231
6306
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
6232
|
-
const Page =
|
6307
|
+
const Page = useCallback14(
|
6233
6308
|
(pageProps) => {
|
6234
6309
|
var _a, _b;
|
6235
6310
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -6238,9 +6313,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
|
|
6238
6313
|
},
|
6239
6314
|
[config.root]
|
6240
6315
|
);
|
6241
|
-
const Frame =
|
6316
|
+
const Frame = useMemo14(() => overrides.iframe, [overrides]);
|
6242
6317
|
const rootProps = state.data.root.props || state.data.root;
|
6243
|
-
const ref =
|
6318
|
+
const ref = useRef7(null);
|
6244
6319
|
useBubbleIframeEvents(ref);
|
6245
6320
|
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ jsx33(
|
6246
6321
|
Page,
|
@@ -6490,13 +6565,13 @@ var LayerTree = ({
|
|
6490
6565
|
};
|
6491
6566
|
|
6492
6567
|
// components/Puck/components/Outline/index.tsx
|
6493
|
-
import { useCallback as
|
6568
|
+
import { useCallback as useCallback15, useMemo as useMemo15 } from "react";
|
6494
6569
|
import { Fragment as Fragment12, jsx as jsx35, jsxs as jsxs17 } from "react/jsx-runtime";
|
6495
6570
|
var Outline = () => {
|
6496
6571
|
const { dispatch, state, overrides, config } = useAppContext();
|
6497
6572
|
const { data, ui } = state;
|
6498
6573
|
const { itemSelector } = ui;
|
6499
|
-
const setItemSelector =
|
6574
|
+
const setItemSelector = useCallback15(
|
6500
6575
|
(newItemSelector) => {
|
6501
6576
|
dispatch({
|
6502
6577
|
type: "setUi",
|
@@ -6505,7 +6580,7 @@ var Outline = () => {
|
|
6505
6580
|
},
|
6506
6581
|
[]
|
6507
6582
|
);
|
6508
|
-
const Wrapper =
|
6583
|
+
const Wrapper = useMemo15(() => overrides.outline || "div", [overrides]);
|
6509
6584
|
return /* @__PURE__ */ jsx35(Wrapper, { children: /* @__PURE__ */ jsx35(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
6510
6585
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ jsx35(
|
6511
6586
|
LayerTree,
|
@@ -6792,16 +6867,16 @@ var getBox = function getBox2(el) {
|
|
6792
6867
|
|
6793
6868
|
// components/Puck/components/Canvas/index.tsx
|
6794
6869
|
import {
|
6795
|
-
useCallback as
|
6796
|
-
useEffect as
|
6797
|
-
useMemo as
|
6798
|
-
useRef as
|
6870
|
+
useCallback as useCallback16,
|
6871
|
+
useEffect as useEffect22,
|
6872
|
+
useMemo as useMemo17,
|
6873
|
+
useRef as useRef8,
|
6799
6874
|
useState as useState24
|
6800
6875
|
} from "react";
|
6801
6876
|
|
6802
6877
|
// components/ViewportControls/index.tsx
|
6803
6878
|
init_react_import();
|
6804
|
-
import { useEffect as
|
6879
|
+
import { useEffect as useEffect21, useMemo as useMemo16, useState as useState23 } from "react";
|
6805
6880
|
|
6806
6881
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6807
6882
|
init_react_import();
|
@@ -6825,7 +6900,7 @@ var ViewportButton = ({
|
|
6825
6900
|
}) => {
|
6826
6901
|
const { state } = useAppContext();
|
6827
6902
|
const [isActive, setIsActive] = useState23(false);
|
6828
|
-
|
6903
|
+
useEffect21(() => {
|
6829
6904
|
setIsActive(width === state.ui.viewports.current.width);
|
6830
6905
|
}, [width, state.ui.viewports.current.width]);
|
6831
6906
|
return /* @__PURE__ */ jsx36("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ jsx36(
|
@@ -6861,7 +6936,7 @@ var ViewportControls = ({
|
|
6861
6936
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6862
6937
|
(option) => option.value === autoZoom
|
6863
6938
|
);
|
6864
|
-
const zoomOptions =
|
6939
|
+
const zoomOptions = useMemo16(
|
6865
6940
|
() => [
|
6866
6941
|
...defaultZoomOptions,
|
6867
6942
|
...defaultsContainAutoZoom ? [] : [
|
@@ -6984,17 +7059,17 @@ var Canvas = () => {
|
|
6984
7059
|
const { status, iframe } = useAppContext();
|
6985
7060
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
6986
7061
|
const { ui } = state;
|
6987
|
-
const frameRef =
|
7062
|
+
const frameRef = useRef8(null);
|
6988
7063
|
const [showTransition, setShowTransition] = useState24(false);
|
6989
|
-
const defaultRender =
|
7064
|
+
const defaultRender = useMemo17(() => {
|
6990
7065
|
const PuckDefault = ({ children }) => /* @__PURE__ */ jsx37(Fragment13, { children });
|
6991
7066
|
return PuckDefault;
|
6992
7067
|
}, []);
|
6993
|
-
const CustomPreview =
|
7068
|
+
const CustomPreview = useMemo17(
|
6994
7069
|
() => overrides.preview || defaultRender,
|
6995
7070
|
[overrides]
|
6996
7071
|
);
|
6997
|
-
const getFrameDimensions =
|
7072
|
+
const getFrameDimensions = useCallback16(() => {
|
6998
7073
|
if (frameRef.current) {
|
6999
7074
|
const frame = frameRef.current;
|
7000
7075
|
const box = getBox(frame);
|
@@ -7002,7 +7077,7 @@ var Canvas = () => {
|
|
7002
7077
|
}
|
7003
7078
|
return { width: 0, height: 0 };
|
7004
7079
|
}, [frameRef]);
|
7005
|
-
const resetAutoZoom =
|
7080
|
+
const resetAutoZoom = useCallback16(
|
7006
7081
|
(ui2 = state.ui) => {
|
7007
7082
|
if (frameRef.current) {
|
7008
7083
|
setZoomConfig(
|
@@ -7012,11 +7087,11 @@ var Canvas = () => {
|
|
7012
7087
|
},
|
7013
7088
|
[frameRef, zoomConfig, state.ui]
|
7014
7089
|
);
|
7015
|
-
|
7090
|
+
useEffect22(() => {
|
7016
7091
|
setShowTransition(false);
|
7017
7092
|
resetAutoZoom();
|
7018
7093
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
7019
|
-
|
7094
|
+
useEffect22(() => {
|
7020
7095
|
const { height: frameHeight } = getFrameDimensions();
|
7021
7096
|
if (ui.viewports.current.height === "auto") {
|
7022
7097
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -7024,13 +7099,13 @@ var Canvas = () => {
|
|
7024
7099
|
}));
|
7025
7100
|
}
|
7026
7101
|
}, [zoomConfig.zoom]);
|
7027
|
-
|
7102
|
+
useEffect22(() => {
|
7028
7103
|
if (ZOOM_ON_CHANGE) {
|
7029
7104
|
setShowTransition(true);
|
7030
7105
|
resetAutoZoom(ui);
|
7031
7106
|
}
|
7032
7107
|
}, [ui.viewports.current.width]);
|
7033
|
-
|
7108
|
+
useEffect22(() => {
|
7034
7109
|
const cb = () => {
|
7035
7110
|
setShowTransition(false);
|
7036
7111
|
resetAutoZoom();
|
@@ -7041,7 +7116,7 @@ var Canvas = () => {
|
|
7041
7116
|
};
|
7042
7117
|
}, []);
|
7043
7118
|
const [showLoader, setShowLoader] = useState24(false);
|
7044
|
-
|
7119
|
+
useEffect22(() => {
|
7045
7120
|
setTimeout(() => {
|
7046
7121
|
setShowLoader(true);
|
7047
7122
|
}, 500);
|
@@ -7119,7 +7194,7 @@ var Canvas = () => {
|
|
7119
7194
|
|
7120
7195
|
// lib/use-loaded-overrides.ts
|
7121
7196
|
init_react_import();
|
7122
|
-
import { useMemo as
|
7197
|
+
import { useMemo as useMemo18 } from "react";
|
7123
7198
|
|
7124
7199
|
// lib/load-overrides.ts
|
7125
7200
|
init_react_import();
|
@@ -7158,7 +7233,7 @@ var useLoadedOverrides = ({
|
|
7158
7233
|
overrides,
|
7159
7234
|
plugins
|
7160
7235
|
}) => {
|
7161
|
-
return
|
7236
|
+
return useMemo18(() => {
|
7162
7237
|
return loadOverrides({ overrides, plugins });
|
7163
7238
|
}, [plugins, overrides]);
|
7164
7239
|
};
|
@@ -7170,14 +7245,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ jsx38(Fragment14, { chil
|
|
7170
7245
|
|
7171
7246
|
// lib/use-inject-css.ts
|
7172
7247
|
init_react_import();
|
7173
|
-
import { useEffect as
|
7248
|
+
import { useEffect as useEffect23, useState as useState25 } from "react";
|
7174
7249
|
var styles = ``;
|
7175
7250
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
7176
7251
|
const [el, setEl] = useState25();
|
7177
|
-
|
7252
|
+
useEffect23(() => {
|
7178
7253
|
setEl(document.createElement("style"));
|
7179
7254
|
}, []);
|
7180
|
-
|
7255
|
+
useEffect23(() => {
|
7181
7256
|
var _a;
|
7182
7257
|
if (!el || typeof window === "undefined") {
|
7183
7258
|
return;
|
@@ -7197,10 +7272,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
7197
7272
|
|
7198
7273
|
// lib/use-preview-mode-hotkeys.ts
|
7199
7274
|
init_react_import();
|
7200
|
-
import { useCallback as
|
7275
|
+
import { useCallback as useCallback17 } from "react";
|
7201
7276
|
import { useHotkeys as useHotkeys2 } from "react-hotkeys-hook";
|
7202
7277
|
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7203
|
-
const toggleInteractive =
|
7278
|
+
const toggleInteractive = useCallback17(() => {
|
7204
7279
|
dispatch({
|
7205
7280
|
type: "setUi",
|
7206
7281
|
ui: (ui) => ({
|
@@ -7345,11 +7420,11 @@ function Puck({
|
|
7345
7420
|
const [menuOpen, setMenuOpen] = useState26(false);
|
7346
7421
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7347
7422
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7348
|
-
|
7423
|
+
useEffect24(() => {
|
7349
7424
|
if (onChange) onChange(data);
|
7350
7425
|
}, [data]);
|
7351
7426
|
const rootProps = data.root.props || data.root;
|
7352
|
-
const toggleSidebars =
|
7427
|
+
const toggleSidebars = useCallback18(
|
7353
7428
|
(sidebar) => {
|
7354
7429
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7355
7430
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7363,7 +7438,7 @@ function Puck({
|
|
7363
7438
|
},
|
7364
7439
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7365
7440
|
);
|
7366
|
-
|
7441
|
+
useEffect24(() => {
|
7367
7442
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7368
7443
|
dispatch({
|
7369
7444
|
type: "setUi",
|
@@ -7386,7 +7461,7 @@ function Puck({
|
|
7386
7461
|
window.removeEventListener("resize", handleResize);
|
7387
7462
|
};
|
7388
7463
|
}, []);
|
7389
|
-
const defaultHeaderRender =
|
7464
|
+
const defaultHeaderRender = useMemo19(() => {
|
7390
7465
|
if (renderHeader) {
|
7391
7466
|
console.warn(
|
7392
7467
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7400,7 +7475,7 @@ function Puck({
|
|
7400
7475
|
}
|
7401
7476
|
return DefaultOverride;
|
7402
7477
|
}, [renderHeader]);
|
7403
|
-
const defaultHeaderActionsRender =
|
7478
|
+
const defaultHeaderActionsRender = useMemo19(() => {
|
7404
7479
|
if (renderHeaderActions) {
|
7405
7480
|
console.warn(
|
7406
7481
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -7417,20 +7492,20 @@ function Puck({
|
|
7417
7492
|
overrides,
|
7418
7493
|
plugins
|
7419
7494
|
});
|
7420
|
-
const CustomPuck =
|
7495
|
+
const CustomPuck = useMemo19(
|
7421
7496
|
() => loadedOverrides.puck || DefaultOverride,
|
7422
7497
|
[loadedOverrides]
|
7423
7498
|
);
|
7424
|
-
const CustomHeader =
|
7499
|
+
const CustomHeader = useMemo19(
|
7425
7500
|
() => loadedOverrides.header || defaultHeaderRender,
|
7426
7501
|
[loadedOverrides]
|
7427
7502
|
);
|
7428
|
-
const CustomHeaderActions =
|
7503
|
+
const CustomHeaderActions = useMemo19(
|
7429
7504
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7430
7505
|
[loadedOverrides]
|
7431
7506
|
);
|
7432
7507
|
const [mounted, setMounted] = useState26(false);
|
7433
|
-
|
7508
|
+
useEffect24(() => {
|
7434
7509
|
setMounted(true);
|
7435
7510
|
}, []);
|
7436
7511
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|