@measured/puck 0.18.0-canary.4b589f6 → 0.18.0-canary.51219fa
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/README.md +3 -3
- package/dist/index.css +45 -48
- package/dist/index.d.mts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +305 -174
- package/dist/index.mjs +297 -166
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -205,7 +205,7 @@ init_react_import();
|
|
205
205
|
|
206
206
|
// css-module:/home/runner/work/puck/puck/packages/core/components/AutoField/styles.module.css#css-module
|
207
207
|
init_react_import();
|
208
|
-
var styles_module_default2 = { "InputWrapper": "
|
208
|
+
var styles_module_default2 = { "InputWrapper": "_InputWrapper_1h1p1_1", "Input-label": "_Input-label_1h1p1_5", "Input-labelIcon": "_Input-labelIcon_1h1p1_14", "Input-disabledIcon": "_Input-disabledIcon_1h1p1_21", "Input-input": "_Input-input_1h1p1_26", "Input": "_Input_1h1p1_1", "Input--readOnly": "_Input--readOnly_1h1p1_70", "Input-radioGroupItems": "_Input-radioGroupItems_1h1p1_81", "Input-radio": "_Input-radio_1h1p1_81", "Input-radioInner": "_Input-radioInner_1h1p1_98", "Input-radioInput": "_Input-radioInput_1h1p1_143" };
|
209
209
|
|
210
210
|
// components/AutoField/index.tsx
|
211
211
|
import {
|
@@ -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);
|
@@ -2425,7 +2426,7 @@ init_react_import();
|
|
2425
2426
|
var styles_module_default10 = { "Drawer": "_Drawer_fkqfo_1", "Drawer-draggable": "_Drawer-draggable_fkqfo_8", "Drawer-draggableBg": "_Drawer-draggableBg_fkqfo_12", "Drawer-draggableFg": "_Drawer-draggableFg_fkqfo_21", "DrawerItem-draggable": "_DrawerItem-draggable_fkqfo_25", "DrawerItem--disabled": "_DrawerItem--disabled_fkqfo_38", "DrawerItem": "_DrawerItem_fkqfo_25", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_fkqfo_48", "DrawerItem-name": "_DrawerItem-name_fkqfo_66" };
|
2426
2427
|
|
2427
2428
|
// components/Drawer/index.tsx
|
2428
|
-
import { useMemo as useMemo9, useState as useState18 } from "react";
|
2429
|
+
import { useId as useId2, useMemo as useMemo9, useState as useState18 } from "react";
|
2429
2430
|
|
2430
2431
|
// components/DragDropContext/index.tsx
|
2431
2432
|
init_react_import();
|
@@ -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
|
@@ -3506,8 +3525,9 @@ import { Fragment as Fragment6, jsx as jsx22, jsxs as jsxs10 } from "react/jsx-r
|
|
3506
3525
|
var getClassName17 = get_class_name_factory_default("DropZone", styles_module_default12);
|
3507
3526
|
var getRandomColor = () => `#${Math.floor(Math.random() * 16777215).toString(16)}`;
|
3508
3527
|
var RENDER_DEBUG = false;
|
3528
|
+
var DropZoneEditPure = (props) => /* @__PURE__ */ jsx22(DropZoneEdit, __spreadValues({}, props));
|
3509
3529
|
var DropZoneEdit = forwardRef3(
|
3510
|
-
function
|
3530
|
+
function DropZoneEditInternal({
|
3511
3531
|
zone,
|
3512
3532
|
allow,
|
3513
3533
|
disallow,
|
@@ -3541,8 +3561,7 @@ var DropZoneEdit = forwardRef3(
|
|
3541
3561
|
isDeepestZone,
|
3542
3562
|
inNextDeepestArea,
|
3543
3563
|
draggedComponentType,
|
3544
|
-
userIsDragging
|
3545
|
-
preview
|
3564
|
+
userIsDragging
|
3546
3565
|
} = useContextStore(ZoneStoreContext, (s) => {
|
3547
3566
|
var _a, _b, _c;
|
3548
3567
|
return {
|
@@ -3550,8 +3569,7 @@ var DropZoneEdit = forwardRef3(
|
|
3550
3569
|
inNextDeepestArea: s.nextAreaDepthIndex[areaId || ""],
|
3551
3570
|
draggedItemId: (_b = s.draggedItem) == null ? void 0 : _b.id,
|
3552
3571
|
draggedComponentType: (_c = s.draggedItem) == null ? void 0 : _c.data.componentType,
|
3553
|
-
userIsDragging: !!s.draggedItem
|
3554
|
-
preview: s.previewIndex[zoneCompound]
|
3572
|
+
userIsDragging: !!s.draggedItem
|
3555
3573
|
};
|
3556
3574
|
});
|
3557
3575
|
const { itemSelector } = appContext2.state.ui;
|
@@ -3576,7 +3594,7 @@ var DropZoneEdit = forwardRef3(
|
|
3576
3594
|
}
|
3577
3595
|
return data.content || [];
|
3578
3596
|
}, [data, zoneCompound]);
|
3579
|
-
const ref =
|
3597
|
+
const ref = useRef2(null);
|
3580
3598
|
const acceptsTarget = useCallback10(
|
3581
3599
|
(componentType) => {
|
3582
3600
|
if (!componentType) {
|
@@ -3617,7 +3635,10 @@ var DropZoneEdit = forwardRef3(
|
|
3617
3635
|
if (isEnabled) {
|
3618
3636
|
isEnabled = acceptsTarget(draggedComponentType);
|
3619
3637
|
}
|
3620
|
-
const contentWithPreview = useContentWithPreview(
|
3638
|
+
const [contentWithPreview, preview] = useContentWithPreview(
|
3639
|
+
content,
|
3640
|
+
zoneCompound
|
3641
|
+
);
|
3621
3642
|
const isDropEnabled = isEnabled && (preview ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3622
3643
|
const droppableConfig = {
|
3623
3644
|
id: zoneCompound,
|
@@ -3659,16 +3680,15 @@ var DropZoneEdit = forwardRef3(
|
|
3659
3680
|
},
|
3660
3681
|
"data-testid": `dropzone:${zoneCompound}`,
|
3661
3682
|
"data-puck-dropzone": zoneCompound,
|
3662
|
-
"data-puck-dnd": zoneCompound,
|
3663
3683
|
style: __spreadProps(__spreadValues({}, style), {
|
3664
3684
|
"--min-empty-height": `${minEmptyHeight}px`,
|
3665
|
-
backgroundColor: RENDER_DEBUG ? getRandomColor() : void 0
|
3685
|
+
backgroundColor: RENDER_DEBUG ? getRandomColor() : style == null ? void 0 : style.backgroundColor
|
3666
3686
|
}),
|
3667
3687
|
children: contentWithPreview.map((item, i) => {
|
3668
|
-
var _a, _b, _c, _d, _e;
|
3688
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
3669
3689
|
const componentId = item.props.id;
|
3670
3690
|
const puckProps = {
|
3671
|
-
renderDropZone:
|
3691
|
+
renderDropZone: DropZoneEditPure,
|
3672
3692
|
isEditing: true,
|
3673
3693
|
dragRef: null
|
3674
3694
|
};
|
@@ -3685,13 +3705,13 @@ var DropZoneEdit = forwardRef3(
|
|
3685
3705
|
const componentConfig = config.components[item.type];
|
3686
3706
|
let componentType = item.type;
|
3687
3707
|
let label = (_b = componentConfig == null ? void 0 : componentConfig["label"]) != null ? _b : item.type.toString();
|
3688
|
-
if (item.type === "preview"
|
3708
|
+
if (item.type === "preview") {
|
3689
3709
|
let Preview4 = function() {
|
3690
3710
|
return /* @__PURE__ */ jsx22(DrawerItemInner, { name: label, children: appContext2.overrides.componentItem });
|
3691
3711
|
};
|
3692
3712
|
var Preview3 = Preview4;
|
3693
|
-
componentType = preview.componentType;
|
3694
|
-
label = (
|
3713
|
+
componentType = (_c = preview == null ? void 0 : preview.componentType) != null ? _c : "__preview";
|
3714
|
+
label = (_f = (_e = (_d = config.components[componentType]) == null ? void 0 : _d.label) != null ? _e : componentType) != null ? _f : "Preview";
|
3695
3715
|
Render2 = Preview4;
|
3696
3716
|
}
|
3697
3717
|
return /* @__PURE__ */ jsx22(
|
@@ -3706,7 +3726,7 @@ var DropZoneEdit = forwardRef3(
|
|
3706
3726
|
zoneCompound,
|
3707
3727
|
depth: depth + 1,
|
3708
3728
|
index: i,
|
3709
|
-
isLoading: ((
|
3729
|
+
isLoading: ((_g = appContext2.componentState[componentId]) == null ? void 0 : _g.loadingCount) > 0,
|
3710
3730
|
isSelected,
|
3711
3731
|
label,
|
3712
3732
|
isEnabled,
|
@@ -3731,8 +3751,9 @@ var DropZoneEdit = forwardRef3(
|
|
3731
3751
|
);
|
3732
3752
|
}
|
3733
3753
|
);
|
3754
|
+
var DropZoneRenderPure = (props) => /* @__PURE__ */ jsx22(DropZoneRender, __spreadValues({}, props));
|
3734
3755
|
var DropZoneRender = forwardRef3(
|
3735
|
-
function
|
3756
|
+
function DropZoneRenderInternal({ className, style, zone }, ref) {
|
3736
3757
|
const ctx = useContext6(dropZoneContext);
|
3737
3758
|
const { data, areaId = "root", config } = ctx || {};
|
3738
3759
|
let zoneCompound = rootDroppableId;
|
@@ -3770,7 +3791,9 @@ var DropZoneRender = forwardRef3(
|
|
3770
3791
|
children: /* @__PURE__ */ jsx22(
|
3771
3792
|
Component.render,
|
3772
3793
|
__spreadProps(__spreadValues({}, item.props), {
|
3773
|
-
puck: {
|
3794
|
+
puck: {
|
3795
|
+
renderDropZone: DropZoneRenderPure
|
3796
|
+
}
|
3774
3797
|
})
|
3775
3798
|
)
|
3776
3799
|
},
|
@@ -3845,6 +3868,48 @@ var getFrame = () => {
|
|
3845
3868
|
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
3846
3869
|
};
|
3847
3870
|
|
3871
|
+
// lib/global-position.ts
|
3872
|
+
init_react_import();
|
3873
|
+
var GlobalPosition = class {
|
3874
|
+
constructor(target, original) {
|
3875
|
+
this.scaleFactor = 1;
|
3876
|
+
this.frameEl = null;
|
3877
|
+
this.frameRect = null;
|
3878
|
+
var _a;
|
3879
|
+
this.target = target;
|
3880
|
+
this.original = original;
|
3881
|
+
this.frameEl = document.querySelector("iframe");
|
3882
|
+
if (this.frameEl) {
|
3883
|
+
this.frameRect = this.frameEl.getBoundingClientRect();
|
3884
|
+
this.scaleFactor = this.frameRect.width / (((_a = this.frameEl.contentWindow) == null ? void 0 : _a.innerWidth) || 1);
|
3885
|
+
}
|
3886
|
+
}
|
3887
|
+
get x() {
|
3888
|
+
return this.original.x;
|
3889
|
+
}
|
3890
|
+
get y() {
|
3891
|
+
return this.original.y;
|
3892
|
+
}
|
3893
|
+
get global() {
|
3894
|
+
if (document !== this.target.ownerDocument && this.frameRect) {
|
3895
|
+
return {
|
3896
|
+
x: this.x * this.scaleFactor + this.frameRect.left,
|
3897
|
+
y: this.y * this.scaleFactor + this.frameRect.top
|
3898
|
+
};
|
3899
|
+
}
|
3900
|
+
return this.original;
|
3901
|
+
}
|
3902
|
+
get frame() {
|
3903
|
+
if (document === this.target.ownerDocument && this.frameRect) {
|
3904
|
+
return {
|
3905
|
+
x: (this.x - this.frameRect.left) / this.scaleFactor,
|
3906
|
+
y: (this.y - this.frameRect.top) / this.scaleFactor
|
3907
|
+
};
|
3908
|
+
}
|
3909
|
+
return this.original;
|
3910
|
+
}
|
3911
|
+
};
|
3912
|
+
|
3848
3913
|
// lib/dnd/NestedDroppablePlugin.ts
|
3849
3914
|
var depthSort = (candidates) => {
|
3850
3915
|
return candidates.sort((a, b) => {
|
@@ -3874,10 +3939,12 @@ var getZoneId2 = (candidate) => {
|
|
3874
3939
|
}
|
3875
3940
|
return id;
|
3876
3941
|
};
|
3877
|
-
var getPointerCollisions = (position, manager
|
3878
|
-
var _a;
|
3942
|
+
var getPointerCollisions = (position, manager) => {
|
3879
3943
|
const candidates = [];
|
3880
|
-
let elements = ownerDocument.elementsFromPoint(
|
3944
|
+
let elements = position.target.ownerDocument.elementsFromPoint(
|
3945
|
+
position.x,
|
3946
|
+
position.y
|
3947
|
+
);
|
3881
3948
|
const previewFrame = elements.find(
|
3882
3949
|
(el) => el.getAttribute("data-puck-preview")
|
3883
3950
|
);
|
@@ -3886,22 +3953,21 @@ var getPointerCollisions = (position, manager, ownerDocument) => {
|
|
3886
3953
|
elements = [drawer];
|
3887
3954
|
}
|
3888
3955
|
if (previewFrame) {
|
3889
|
-
const
|
3890
|
-
if (
|
3891
|
-
|
3892
|
-
const frame = getFrame();
|
3893
|
-
if (frame) {
|
3894
|
-
const scaleFactor = rect.width / (((_a = iframe.contentWindow) == null ? void 0 : _a.innerWidth) || 1);
|
3895
|
-
elements = frame.elementsFromPoint(
|
3896
|
-
(position.x - rect.left) / scaleFactor,
|
3897
|
-
(position.y - rect.top) / scaleFactor
|
3898
|
-
);
|
3899
|
-
}
|
3956
|
+
const frame = getFrame();
|
3957
|
+
if (frame) {
|
3958
|
+
elements = frame.elementsFromPoint(position.frame.x, position.frame.y);
|
3900
3959
|
}
|
3901
3960
|
}
|
3902
3961
|
if (elements) {
|
3903
3962
|
for (let i = 0; i < elements.length; i++) {
|
3904
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
|
+
}
|
3905
3971
|
const id = element.getAttribute("data-puck-dnd");
|
3906
3972
|
if (id) {
|
3907
3973
|
const droppable = manager.registry.droppables.get(id);
|
@@ -3913,9 +3979,9 @@ var getPointerCollisions = (position, manager, ownerDocument) => {
|
|
3913
3979
|
}
|
3914
3980
|
return candidates;
|
3915
3981
|
};
|
3916
|
-
var findDeepestCandidate = (position, manager
|
3982
|
+
var findDeepestCandidate = (position, manager) => {
|
3917
3983
|
var _a;
|
3918
|
-
const candidates = getPointerCollisions(position, manager
|
3984
|
+
const candidates = getPointerCollisions(position, manager);
|
3919
3985
|
if (candidates.length > 0) {
|
3920
3986
|
const sortedCandidates = depthSort(candidates);
|
3921
3987
|
const draggable = manager.dragOperation.source;
|
@@ -3968,22 +4034,18 @@ var createNestedDroppablePlugin = ({ onChange }, id) => class NestedDroppablePlu
|
|
3968
4034
|
}
|
3969
4035
|
const cleanupEffect = effects(() => {
|
3970
4036
|
const handleMove = (event) => {
|
3971
|
-
const
|
4037
|
+
const target = event.originalTarget || event.target;
|
4038
|
+
const position = new GlobalPosition(target, {
|
3972
4039
|
x: event.clientX,
|
3973
4040
|
y: event.clientY
|
3974
|
-
};
|
3975
|
-
const target = event.originalTarget || event.target;
|
3976
|
-
const ownerDocument = target == null ? void 0 : target.ownerDocument;
|
4041
|
+
});
|
3977
4042
|
const elements = document.elementsFromPoint(
|
3978
|
-
|
3979
|
-
|
4043
|
+
position.global.x,
|
4044
|
+
position.global.y
|
3980
4045
|
);
|
3981
4046
|
const overEl = elements.some((el) => el.id === id);
|
3982
4047
|
if (overEl) {
|
3983
|
-
onChange(
|
3984
|
-
findDeepestCandidate(position, manager, ownerDocument),
|
3985
|
-
manager
|
3986
|
-
);
|
4048
|
+
onChange(findDeepestCandidate(position, manager), manager);
|
3987
4049
|
}
|
3988
4050
|
};
|
3989
4051
|
const handleMoveThrottled = throttle(handleMove, 50);
|
@@ -4314,6 +4376,11 @@ var reduceUi = (ui, action) => {
|
|
4314
4376
|
itemSelector: { index: action.sourceIndex + 1, zone: action.sourceZone }
|
4315
4377
|
});
|
4316
4378
|
}
|
4379
|
+
if (action.type === "remove") {
|
4380
|
+
return __spreadProps(__spreadValues({}, ui), {
|
4381
|
+
itemSelector: null
|
4382
|
+
});
|
4383
|
+
}
|
4317
4384
|
return ui;
|
4318
4385
|
};
|
4319
4386
|
|
@@ -4573,6 +4640,9 @@ var _PointerSensor = class _PointerSensor extends Sensor {
|
|
4573
4640
|
}
|
4574
4641
|
}
|
4575
4642
|
handlePointerUp(event) {
|
4643
|
+
if (!this.source) {
|
4644
|
+
return;
|
4645
|
+
}
|
4576
4646
|
event.preventDefault();
|
4577
4647
|
event.stopPropagation();
|
4578
4648
|
const { status } = this.manager.dragOperation;
|
@@ -4690,7 +4760,7 @@ function useDragListener(type, fn, deps = []) {
|
|
4690
4760
|
}
|
4691
4761
|
var AREA_CHANGE_DEBOUNCE_MS = 100;
|
4692
4762
|
var useTempDisableFallback = (timeout3) => {
|
4693
|
-
const lastFallbackDisable =
|
4763
|
+
const lastFallbackDisable = useRef3(null);
|
4694
4764
|
return useCallback11((manager) => {
|
4695
4765
|
collisionStore.setState({ fallbackEnabled: false });
|
4696
4766
|
const fallbackId = generateId();
|
@@ -4710,7 +4780,7 @@ var DragDropContextClient = ({
|
|
4710
4780
|
const { state, config, dispatch, resolveData } = useAppContext();
|
4711
4781
|
const id = useId();
|
4712
4782
|
const { data } = state;
|
4713
|
-
const debouncedParamsRef =
|
4783
|
+
const debouncedParamsRef = useRef3(null);
|
4714
4784
|
const tempDisableFallback = useTempDisableFallback(100);
|
4715
4785
|
const [zoneStore] = useState17(
|
4716
4786
|
() => createStore3(() => ({
|
@@ -4849,30 +4919,36 @@ var DragDropContextClient = ({
|
|
4849
4919
|
]);
|
4850
4920
|
const [dragListeners, setDragListeners] = useState17({});
|
4851
4921
|
const [pathData, setPathData] = useState17();
|
4852
|
-
const dragMode =
|
4922
|
+
const dragMode = useRef3(null);
|
4853
4923
|
const registerPath = useCallback11(
|
4854
|
-
(selector) => {
|
4855
|
-
const item = getItem(selector, data);
|
4856
|
-
if (!item) {
|
4857
|
-
return;
|
4858
|
-
}
|
4924
|
+
(id2, selector, label) => {
|
4859
4925
|
const [area] = getZoneId(selector.zone);
|
4860
4926
|
setPathData((latestPathData = {}) => {
|
4861
4927
|
const parentPathData = latestPathData[area] || { path: [] };
|
4862
4928
|
return __spreadProps(__spreadValues({}, latestPathData), {
|
4863
|
-
[
|
4929
|
+
[id2]: {
|
4864
4930
|
path: [
|
4865
4931
|
...parentPathData.path,
|
4866
4932
|
...selector.zone ? [selector.zone] : []
|
4867
4933
|
],
|
4868
|
-
label
|
4934
|
+
label
|
4869
4935
|
}
|
4870
4936
|
});
|
4871
4937
|
});
|
4872
4938
|
},
|
4873
4939
|
[data, setPathData]
|
4874
4940
|
);
|
4875
|
-
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);
|
4876
4952
|
return /* @__PURE__ */ jsx23("div", { id, children: /* @__PURE__ */ jsx23(
|
4877
4953
|
dragListenerContext.Provider,
|
4878
4954
|
{
|
@@ -5068,6 +5144,7 @@ var DragDropContextClient = ({
|
|
5068
5144
|
areaId: "root",
|
5069
5145
|
depth: 0,
|
5070
5146
|
registerPath,
|
5147
|
+
unregisterPath,
|
5071
5148
|
pathData,
|
5072
5149
|
path: []
|
5073
5150
|
},
|
@@ -5194,7 +5271,7 @@ var Drawer = ({
|
|
5194
5271
|
"Warning: The `direction` prop on Drawer is deprecated and no longer required to achieve multi-directional dragging."
|
5195
5272
|
);
|
5196
5273
|
}
|
5197
|
-
const
|
5274
|
+
const id = useId2();
|
5198
5275
|
const { ref } = useDroppableSafe({
|
5199
5276
|
id,
|
5200
5277
|
type: "void",
|
@@ -5217,9 +5294,9 @@ Drawer.Item = DrawerItem;
|
|
5217
5294
|
// components/Puck/index.tsx
|
5218
5295
|
init_react_import();
|
5219
5296
|
import {
|
5220
|
-
useCallback as
|
5221
|
-
useEffect as
|
5222
|
-
useMemo as
|
5297
|
+
useCallback as useCallback18,
|
5298
|
+
useEffect as useEffect24,
|
5299
|
+
useMemo as useMemo19,
|
5223
5300
|
useReducer,
|
5224
5301
|
useState as useState26
|
5225
5302
|
} from "react";
|
@@ -5415,36 +5492,61 @@ init_react_import();
|
|
5415
5492
|
|
5416
5493
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
|
5417
5494
|
init_react_import();
|
5418
|
-
var styles_module_default16 = { "PuckFields": "
|
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" };
|
5419
5496
|
|
5420
5497
|
// components/Puck/components/Fields/index.tsx
|
5421
|
-
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";
|
5422
5503
|
|
5423
5504
|
// lib/use-parent.ts
|
5424
5505
|
init_react_import();
|
5425
|
-
import { useContext as useContext9 } from "react";
|
5426
|
-
var
|
5506
|
+
import { useCallback as useCallback12, useContext as useContext9 } from "react";
|
5507
|
+
var getParent = (itemSelector, pathData, data) => {
|
5427
5508
|
var _a;
|
5428
|
-
|
5429
|
-
const
|
5430
|
-
const
|
5431
|
-
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);
|
5432
5512
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
5433
|
-
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;
|
5434
5514
|
return parent || null;
|
5435
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
|
+
};
|
5436
5527
|
|
5437
|
-
//
|
5438
|
-
|
5439
|
-
|
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
|
5440
5547
|
var defaultPageFields = {
|
5441
5548
|
title: { type: "text" }
|
5442
5549
|
};
|
5443
|
-
var DefaultFields = ({
|
5444
|
-
children
|
5445
|
-
}) => {
|
5446
|
-
return /* @__PURE__ */ jsx27(Fragment8, { children });
|
5447
|
-
};
|
5448
5550
|
var useResolvedFields = () => {
|
5449
5551
|
var _a, _b;
|
5450
5552
|
const { selectedItem, state, config } = useAppContext();
|
@@ -5460,12 +5562,13 @@ var useResolvedFields = () => {
|
|
5460
5562
|
const [lastSelectedData, setLastSelectedData] = useState19({});
|
5461
5563
|
const [resolvedFields, setResolvedFields] = useState19(defaultFields);
|
5462
5564
|
const [fieldsLoading, setFieldsLoading] = useState19(false);
|
5565
|
+
const lastFields = useRef5(defaultFields);
|
5463
5566
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5464
5567
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5465
5568
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5466
5569
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5467
5570
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5468
|
-
const resolveFields =
|
5571
|
+
const resolveFields = useCallback13(
|
5469
5572
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5470
5573
|
var _a2;
|
5471
5574
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5477,7 +5580,7 @@ var useResolvedFields = () => {
|
|
5477
5580
|
{
|
5478
5581
|
changed,
|
5479
5582
|
fields,
|
5480
|
-
lastFields:
|
5583
|
+
lastFields: lastFields.current,
|
5481
5584
|
lastData,
|
5482
5585
|
appState: state,
|
5483
5586
|
parent
|
@@ -5488,7 +5591,7 @@ var useResolvedFields = () => {
|
|
5488
5591
|
return yield config.root.resolveFields(componentData, {
|
5489
5592
|
changed,
|
5490
5593
|
fields,
|
5491
|
-
lastFields:
|
5594
|
+
lastFields: lastFields.current,
|
5492
5595
|
lastData,
|
5493
5596
|
appState: state,
|
5494
5597
|
parent
|
@@ -5497,26 +5600,56 @@ var useResolvedFields = () => {
|
|
5497
5600
|
return defaultResolveFields(componentData, {
|
5498
5601
|
changed,
|
5499
5602
|
fields,
|
5500
|
-
lastFields:
|
5603
|
+
lastFields: lastFields.current,
|
5501
5604
|
lastData
|
5502
5605
|
});
|
5503
5606
|
}),
|
5504
|
-
[data, config, componentData, selectedItem,
|
5607
|
+
[data, config, componentData, selectedItem, state, parent]
|
5505
5608
|
);
|
5506
|
-
|
5507
|
-
|
5508
|
-
|
5509
|
-
|
5510
|
-
|
5511
|
-
|
5512
|
-
|
5513
|
-
|
5514
|
-
|
5609
|
+
const triggerResolver = useCallback13(() => {
|
5610
|
+
var _a2, _b2;
|
5611
|
+
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" || parent) {
|
5612
|
+
if (hasResolver) {
|
5613
|
+
setFieldsLoading(true);
|
5614
|
+
resolveFields(defaultFields).then((fields) => {
|
5615
|
+
setResolvedFields(fields || {});
|
5616
|
+
lastFields.current = fields;
|
5617
|
+
setFieldsLoading(false);
|
5618
|
+
});
|
5619
|
+
return;
|
5620
|
+
}
|
5515
5621
|
}
|
5516
|
-
|
5622
|
+
setResolvedFields(defaultFields);
|
5623
|
+
}, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
|
5624
|
+
useOnValueChange(
|
5625
|
+
state.ui.itemSelector,
|
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
|
+
}, []);
|
5517
5641
|
return [resolvedFields, fieldsLoading];
|
5518
5642
|
};
|
5519
|
-
|
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
|
+
};
|
5652
|
+
var Fields = ({ wrapFields = true }) => {
|
5520
5653
|
var _a, _b;
|
5521
5654
|
const {
|
5522
5655
|
selectedItem,
|
@@ -5534,11 +5667,11 @@ var Fields = () => {
|
|
5534
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;
|
5535
5668
|
const isLoading = fieldsResolving || componentResolving;
|
5536
5669
|
const rootProps = data.root.props || data.root;
|
5537
|
-
const Wrapper =
|
5670
|
+
const Wrapper = useMemo12(() => overrides.fields || DefaultFields, [overrides]);
|
5538
5671
|
return /* @__PURE__ */ jsxs14(
|
5539
5672
|
"form",
|
5540
5673
|
{
|
5541
|
-
className: getClassName21(),
|
5674
|
+
className: getClassName21({ wrapFields }),
|
5542
5675
|
onSubmit: (e) => {
|
5543
5676
|
e.preventDefault();
|
5544
5677
|
},
|
@@ -5614,7 +5747,7 @@ var Fields = () => {
|
|
5614
5747
|
item: selectedItem
|
5615
5748
|
});
|
5616
5749
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
5617
|
-
return /* @__PURE__ */ jsx27(
|
5750
|
+
return /* @__PURE__ */ jsx27("div", { className: getClassName21("field"), children: /* @__PURE__ */ jsx27(
|
5618
5751
|
AutoFieldPrivate,
|
5619
5752
|
{
|
5620
5753
|
field,
|
@@ -5623,16 +5756,15 @@ var Fields = () => {
|
|
5623
5756
|
readOnly: !edit || readOnly[fieldName],
|
5624
5757
|
value: selectedItem.props[fieldName],
|
5625
5758
|
onChange
|
5626
|
-
}
|
5627
|
-
|
5628
|
-
);
|
5759
|
+
}
|
5760
|
+
) }, id);
|
5629
5761
|
} else {
|
5630
5762
|
const readOnly = data.root.readOnly || {};
|
5631
5763
|
const { edit } = getPermissions({
|
5632
5764
|
root: true
|
5633
5765
|
});
|
5634
5766
|
const id = `root_${field.type}_${fieldName}`;
|
5635
|
-
return /* @__PURE__ */ jsx27(
|
5767
|
+
return /* @__PURE__ */ jsx27("div", { className: getClassName21("field"), children: /* @__PURE__ */ jsx27(
|
5636
5768
|
AutoFieldPrivate,
|
5637
5769
|
{
|
5638
5770
|
field,
|
@@ -5641,9 +5773,8 @@ var Fields = () => {
|
|
5641
5773
|
readOnly: !edit || readOnly[fieldName],
|
5642
5774
|
value: rootProps[fieldName],
|
5643
5775
|
onChange
|
5644
|
-
}
|
5645
|
-
|
5646
|
-
);
|
5776
|
+
}
|
5777
|
+
) }, id);
|
5647
5778
|
}
|
5648
5779
|
}) }),
|
5649
5780
|
isLoading && /* @__PURE__ */ jsx27("div", { className: getClassName21("loadingOverlay"), children: /* @__PURE__ */ jsx27("div", { className: getClassName21("loadingOverlayInner"), children: /* @__PURE__ */ jsx27(Loader, { size: 16 }) }) })
|
@@ -5657,7 +5788,7 @@ init_react_import();
|
|
5657
5788
|
|
5658
5789
|
// lib/use-component-list.tsx
|
5659
5790
|
init_react_import();
|
5660
|
-
import { useEffect as
|
5791
|
+
import { useEffect as useEffect18, useState as useState20 } from "react";
|
5661
5792
|
|
5662
5793
|
// components/ComponentList/index.tsx
|
5663
5794
|
init_react_import();
|
@@ -5725,7 +5856,7 @@ ComponentList.Item = ComponentListItem;
|
|
5725
5856
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
5726
5857
|
var useComponentList = (config, ui) => {
|
5727
5858
|
const [componentList, setComponentList] = useState20();
|
5728
|
-
|
5859
|
+
useEffect18(() => {
|
5729
5860
|
var _a, _b, _c;
|
5730
5861
|
if (Object.keys(ui.componentList).length > 0) {
|
5731
5862
|
const matchedComponents = [];
|
@@ -5794,25 +5925,25 @@ var useComponentList = (config, ui) => {
|
|
5794
5925
|
};
|
5795
5926
|
|
5796
5927
|
// components/Puck/components/Components/index.tsx
|
5797
|
-
import { useMemo as
|
5928
|
+
import { useMemo as useMemo13 } from "react";
|
5798
5929
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
5799
5930
|
var Components = () => {
|
5800
5931
|
const { config, state, overrides } = useAppContext();
|
5801
5932
|
const componentList = useComponentList(config, state.ui);
|
5802
|
-
const Wrapper =
|
5933
|
+
const Wrapper = useMemo13(() => overrides.components || "div", [overrides]);
|
5803
5934
|
return /* @__PURE__ */ jsx30(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ jsx30(ComponentList, { id: "all" }) });
|
5804
5935
|
};
|
5805
5936
|
|
5806
5937
|
// components/Puck/components/Preview/index.tsx
|
5807
5938
|
init_react_import();
|
5808
|
-
import { useCallback as
|
5939
|
+
import { useCallback as useCallback14, useEffect as useEffect20, useRef as useRef7, useMemo as useMemo14 } from "react";
|
5809
5940
|
|
5810
5941
|
// components/AutoFrame/index.tsx
|
5811
5942
|
init_react_import();
|
5812
5943
|
import {
|
5813
5944
|
createContext as createContext5,
|
5814
5945
|
useContext as useContext10,
|
5815
|
-
useEffect as
|
5946
|
+
useEffect as useEffect19,
|
5816
5947
|
useState as useState21
|
5817
5948
|
} from "react";
|
5818
5949
|
import hash from "object-hash";
|
@@ -5860,7 +5991,7 @@ var CopyHostStyles = ({
|
|
5860
5991
|
onStylesLoaded = () => null
|
5861
5992
|
}) => {
|
5862
5993
|
const { document: doc, window: win } = useFrame();
|
5863
|
-
|
5994
|
+
useEffect19(() => {
|
5864
5995
|
if (!win || !doc) {
|
5865
5996
|
return () => {
|
5866
5997
|
};
|
@@ -6040,7 +6171,7 @@ function AutoFrame(_a) {
|
|
6040
6171
|
const [loaded, setLoaded] = useState21(false);
|
6041
6172
|
const [ctx, setCtx] = useState21({});
|
6042
6173
|
const [mountTarget, setMountTarget] = useState21();
|
6043
|
-
|
6174
|
+
useEffect19(() => {
|
6044
6175
|
var _a2;
|
6045
6176
|
if (frameRef.current) {
|
6046
6177
|
setCtx({
|
@@ -6134,7 +6265,7 @@ import { Fragment as Fragment10, jsx as jsx33 } from "react/jsx-runtime";
|
|
6134
6265
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
6135
6266
|
var useBubbleIframeEvents = (ref) => {
|
6136
6267
|
const { status } = useAppContext();
|
6137
|
-
|
6268
|
+
useEffect20(() => {
|
6138
6269
|
var _a;
|
6139
6270
|
if (ref.current && status === "READY") {
|
6140
6271
|
const iframe = ref.current;
|
@@ -6173,7 +6304,7 @@ var useBubbleIframeEvents = (ref) => {
|
|
6173
6304
|
};
|
6174
6305
|
var Preview2 = ({ id = "puck-preview" }) => {
|
6175
6306
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
6176
|
-
const Page =
|
6307
|
+
const Page = useCallback14(
|
6177
6308
|
(pageProps) => {
|
6178
6309
|
var _a, _b;
|
6179
6310
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -6182,9 +6313,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
|
|
6182
6313
|
},
|
6183
6314
|
[config.root]
|
6184
6315
|
);
|
6185
|
-
const Frame =
|
6316
|
+
const Frame = useMemo14(() => overrides.iframe, [overrides]);
|
6186
6317
|
const rootProps = state.data.root.props || state.data.root;
|
6187
|
-
const ref =
|
6318
|
+
const ref = useRef7(null);
|
6188
6319
|
useBubbleIframeEvents(ref);
|
6189
6320
|
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ jsx33(
|
6190
6321
|
Page,
|
@@ -6434,13 +6565,13 @@ var LayerTree = ({
|
|
6434
6565
|
};
|
6435
6566
|
|
6436
6567
|
// components/Puck/components/Outline/index.tsx
|
6437
|
-
import { useCallback as
|
6568
|
+
import { useCallback as useCallback15, useMemo as useMemo15 } from "react";
|
6438
6569
|
import { Fragment as Fragment12, jsx as jsx35, jsxs as jsxs17 } from "react/jsx-runtime";
|
6439
6570
|
var Outline = () => {
|
6440
6571
|
const { dispatch, state, overrides, config } = useAppContext();
|
6441
6572
|
const { data, ui } = state;
|
6442
6573
|
const { itemSelector } = ui;
|
6443
|
-
const setItemSelector =
|
6574
|
+
const setItemSelector = useCallback15(
|
6444
6575
|
(newItemSelector) => {
|
6445
6576
|
dispatch({
|
6446
6577
|
type: "setUi",
|
@@ -6449,7 +6580,7 @@ var Outline = () => {
|
|
6449
6580
|
},
|
6450
6581
|
[]
|
6451
6582
|
);
|
6452
|
-
const Wrapper =
|
6583
|
+
const Wrapper = useMemo15(() => overrides.outline || "div", [overrides]);
|
6453
6584
|
return /* @__PURE__ */ jsx35(Wrapper, { children: /* @__PURE__ */ jsx35(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
6454
6585
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ jsx35(
|
6455
6586
|
LayerTree,
|
@@ -6736,16 +6867,16 @@ var getBox = function getBox2(el) {
|
|
6736
6867
|
|
6737
6868
|
// components/Puck/components/Canvas/index.tsx
|
6738
6869
|
import {
|
6739
|
-
useCallback as
|
6740
|
-
useEffect as
|
6741
|
-
useMemo as
|
6742
|
-
useRef as
|
6870
|
+
useCallback as useCallback16,
|
6871
|
+
useEffect as useEffect22,
|
6872
|
+
useMemo as useMemo17,
|
6873
|
+
useRef as useRef8,
|
6743
6874
|
useState as useState24
|
6744
6875
|
} from "react";
|
6745
6876
|
|
6746
6877
|
// components/ViewportControls/index.tsx
|
6747
6878
|
init_react_import();
|
6748
|
-
import { useEffect as
|
6879
|
+
import { useEffect as useEffect21, useMemo as useMemo16, useState as useState23 } from "react";
|
6749
6880
|
|
6750
6881
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6751
6882
|
init_react_import();
|
@@ -6769,7 +6900,7 @@ var ViewportButton = ({
|
|
6769
6900
|
}) => {
|
6770
6901
|
const { state } = useAppContext();
|
6771
6902
|
const [isActive, setIsActive] = useState23(false);
|
6772
|
-
|
6903
|
+
useEffect21(() => {
|
6773
6904
|
setIsActive(width === state.ui.viewports.current.width);
|
6774
6905
|
}, [width, state.ui.viewports.current.width]);
|
6775
6906
|
return /* @__PURE__ */ jsx36("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ jsx36(
|
@@ -6805,7 +6936,7 @@ var ViewportControls = ({
|
|
6805
6936
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6806
6937
|
(option) => option.value === autoZoom
|
6807
6938
|
);
|
6808
|
-
const zoomOptions =
|
6939
|
+
const zoomOptions = useMemo16(
|
6809
6940
|
() => [
|
6810
6941
|
...defaultZoomOptions,
|
6811
6942
|
...defaultsContainAutoZoom ? [] : [
|
@@ -6928,17 +7059,17 @@ var Canvas = () => {
|
|
6928
7059
|
const { status, iframe } = useAppContext();
|
6929
7060
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
6930
7061
|
const { ui } = state;
|
6931
|
-
const frameRef =
|
7062
|
+
const frameRef = useRef8(null);
|
6932
7063
|
const [showTransition, setShowTransition] = useState24(false);
|
6933
|
-
const defaultRender =
|
7064
|
+
const defaultRender = useMemo17(() => {
|
6934
7065
|
const PuckDefault = ({ children }) => /* @__PURE__ */ jsx37(Fragment13, { children });
|
6935
7066
|
return PuckDefault;
|
6936
7067
|
}, []);
|
6937
|
-
const CustomPreview =
|
7068
|
+
const CustomPreview = useMemo17(
|
6938
7069
|
() => overrides.preview || defaultRender,
|
6939
7070
|
[overrides]
|
6940
7071
|
);
|
6941
|
-
const getFrameDimensions =
|
7072
|
+
const getFrameDimensions = useCallback16(() => {
|
6942
7073
|
if (frameRef.current) {
|
6943
7074
|
const frame = frameRef.current;
|
6944
7075
|
const box = getBox(frame);
|
@@ -6946,7 +7077,7 @@ var Canvas = () => {
|
|
6946
7077
|
}
|
6947
7078
|
return { width: 0, height: 0 };
|
6948
7079
|
}, [frameRef]);
|
6949
|
-
const resetAutoZoom =
|
7080
|
+
const resetAutoZoom = useCallback16(
|
6950
7081
|
(ui2 = state.ui) => {
|
6951
7082
|
if (frameRef.current) {
|
6952
7083
|
setZoomConfig(
|
@@ -6956,11 +7087,11 @@ var Canvas = () => {
|
|
6956
7087
|
},
|
6957
7088
|
[frameRef, zoomConfig, state.ui]
|
6958
7089
|
);
|
6959
|
-
|
7090
|
+
useEffect22(() => {
|
6960
7091
|
setShowTransition(false);
|
6961
7092
|
resetAutoZoom();
|
6962
7093
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
6963
|
-
|
7094
|
+
useEffect22(() => {
|
6964
7095
|
const { height: frameHeight } = getFrameDimensions();
|
6965
7096
|
if (ui.viewports.current.height === "auto") {
|
6966
7097
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -6968,13 +7099,13 @@ var Canvas = () => {
|
|
6968
7099
|
}));
|
6969
7100
|
}
|
6970
7101
|
}, [zoomConfig.zoom]);
|
6971
|
-
|
7102
|
+
useEffect22(() => {
|
6972
7103
|
if (ZOOM_ON_CHANGE) {
|
6973
7104
|
setShowTransition(true);
|
6974
7105
|
resetAutoZoom(ui);
|
6975
7106
|
}
|
6976
7107
|
}, [ui.viewports.current.width]);
|
6977
|
-
|
7108
|
+
useEffect22(() => {
|
6978
7109
|
const cb = () => {
|
6979
7110
|
setShowTransition(false);
|
6980
7111
|
resetAutoZoom();
|
@@ -6985,7 +7116,7 @@ var Canvas = () => {
|
|
6985
7116
|
};
|
6986
7117
|
}, []);
|
6987
7118
|
const [showLoader, setShowLoader] = useState24(false);
|
6988
|
-
|
7119
|
+
useEffect22(() => {
|
6989
7120
|
setTimeout(() => {
|
6990
7121
|
setShowLoader(true);
|
6991
7122
|
}, 500);
|
@@ -7063,7 +7194,7 @@ var Canvas = () => {
|
|
7063
7194
|
|
7064
7195
|
// lib/use-loaded-overrides.ts
|
7065
7196
|
init_react_import();
|
7066
|
-
import { useMemo as
|
7197
|
+
import { useMemo as useMemo18 } from "react";
|
7067
7198
|
|
7068
7199
|
// lib/load-overrides.ts
|
7069
7200
|
init_react_import();
|
@@ -7102,7 +7233,7 @@ var useLoadedOverrides = ({
|
|
7102
7233
|
overrides,
|
7103
7234
|
plugins
|
7104
7235
|
}) => {
|
7105
|
-
return
|
7236
|
+
return useMemo18(() => {
|
7106
7237
|
return loadOverrides({ overrides, plugins });
|
7107
7238
|
}, [plugins, overrides]);
|
7108
7239
|
};
|
@@ -7114,14 +7245,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ jsx38(Fragment14, { chil
|
|
7114
7245
|
|
7115
7246
|
// lib/use-inject-css.ts
|
7116
7247
|
init_react_import();
|
7117
|
-
import { useEffect as
|
7248
|
+
import { useEffect as useEffect23, useState as useState25 } from "react";
|
7118
7249
|
var styles = ``;
|
7119
7250
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
7120
7251
|
const [el, setEl] = useState25();
|
7121
|
-
|
7252
|
+
useEffect23(() => {
|
7122
7253
|
setEl(document.createElement("style"));
|
7123
7254
|
}, []);
|
7124
|
-
|
7255
|
+
useEffect23(() => {
|
7125
7256
|
var _a;
|
7126
7257
|
if (!el || typeof window === "undefined") {
|
7127
7258
|
return;
|
@@ -7141,10 +7272,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
7141
7272
|
|
7142
7273
|
// lib/use-preview-mode-hotkeys.ts
|
7143
7274
|
init_react_import();
|
7144
|
-
import { useCallback as
|
7275
|
+
import { useCallback as useCallback17 } from "react";
|
7145
7276
|
import { useHotkeys as useHotkeys2 } from "react-hotkeys-hook";
|
7146
7277
|
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7147
|
-
const toggleInteractive =
|
7278
|
+
const toggleInteractive = useCallback17(() => {
|
7148
7279
|
dispatch({
|
7149
7280
|
type: "setUi",
|
7150
7281
|
ui: (ui) => ({
|
@@ -7289,11 +7420,11 @@ function Puck({
|
|
7289
7420
|
const [menuOpen, setMenuOpen] = useState26(false);
|
7290
7421
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7291
7422
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7292
|
-
|
7423
|
+
useEffect24(() => {
|
7293
7424
|
if (onChange) onChange(data);
|
7294
7425
|
}, [data]);
|
7295
7426
|
const rootProps = data.root.props || data.root;
|
7296
|
-
const toggleSidebars =
|
7427
|
+
const toggleSidebars = useCallback18(
|
7297
7428
|
(sidebar) => {
|
7298
7429
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7299
7430
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7307,7 +7438,7 @@ function Puck({
|
|
7307
7438
|
},
|
7308
7439
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7309
7440
|
);
|
7310
|
-
|
7441
|
+
useEffect24(() => {
|
7311
7442
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7312
7443
|
dispatch({
|
7313
7444
|
type: "setUi",
|
@@ -7330,7 +7461,7 @@ function Puck({
|
|
7330
7461
|
window.removeEventListener("resize", handleResize);
|
7331
7462
|
};
|
7332
7463
|
}, []);
|
7333
|
-
const defaultHeaderRender =
|
7464
|
+
const defaultHeaderRender = useMemo19(() => {
|
7334
7465
|
if (renderHeader) {
|
7335
7466
|
console.warn(
|
7336
7467
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7344,7 +7475,7 @@ function Puck({
|
|
7344
7475
|
}
|
7345
7476
|
return DefaultOverride;
|
7346
7477
|
}, [renderHeader]);
|
7347
|
-
const defaultHeaderActionsRender =
|
7478
|
+
const defaultHeaderActionsRender = useMemo19(() => {
|
7348
7479
|
if (renderHeaderActions) {
|
7349
7480
|
console.warn(
|
7350
7481
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -7361,20 +7492,20 @@ function Puck({
|
|
7361
7492
|
overrides,
|
7362
7493
|
plugins
|
7363
7494
|
});
|
7364
|
-
const CustomPuck =
|
7495
|
+
const CustomPuck = useMemo19(
|
7365
7496
|
() => loadedOverrides.puck || DefaultOverride,
|
7366
7497
|
[loadedOverrides]
|
7367
7498
|
);
|
7368
|
-
const CustomHeader =
|
7499
|
+
const CustomHeader = useMemo19(
|
7369
7500
|
() => loadedOverrides.header || defaultHeaderRender,
|
7370
7501
|
[loadedOverrides]
|
7371
7502
|
);
|
7372
|
-
const CustomHeaderActions =
|
7503
|
+
const CustomHeaderActions = useMemo19(
|
7373
7504
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7374
7505
|
[loadedOverrides]
|
7375
7506
|
);
|
7376
7507
|
const [mounted, setMounted] = useState26(false);
|
7377
|
-
|
7508
|
+
useEffect24(() => {
|
7378
7509
|
setMounted(true);
|
7379
7510
|
}, []);
|
7380
7511
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|