@measured/puck 0.18.0-canary.c6df5b2 → 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/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 +314 -176
- package/dist/index.mjs +306 -168
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -308,7 +308,7 @@ init_react_import();
|
|
308
308
|
|
309
309
|
// css-module:/home/runner/work/puck/puck/packages/core/components/AutoField/styles.module.css#css-module
|
310
310
|
init_react_import();
|
311
|
-
var styles_module_default2 = { "InputWrapper": "
|
311
|
+
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" };
|
312
312
|
|
313
313
|
// components/AutoField/index.tsx
|
314
314
|
var import_react20 = require("react");
|
@@ -1697,12 +1697,13 @@ var DefaultField = ({
|
|
1697
1697
|
field,
|
1698
1698
|
onChange,
|
1699
1699
|
readOnly,
|
1700
|
-
value,
|
1700
|
+
value: _value,
|
1701
1701
|
name,
|
1702
1702
|
label,
|
1703
1703
|
Label: Label2,
|
1704
1704
|
id
|
1705
1705
|
}) => {
|
1706
|
+
const value = _value;
|
1706
1707
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
1707
1708
|
Label2,
|
1708
1709
|
{
|
@@ -1720,10 +1721,17 @@ var DefaultField = ({
|
|
1720
1721
|
type: field.type,
|
1721
1722
|
title: label || name,
|
1722
1723
|
name,
|
1723
|
-
value:
|
1724
|
+
value: (value == null ? void 0 : value.toString) ? value.toString() : "",
|
1724
1725
|
onChange: (e) => {
|
1725
1726
|
if (field.type === "number") {
|
1726
|
-
|
1727
|
+
const numberValue = Number(e.currentTarget.value);
|
1728
|
+
if (typeof field.min !== "undefined" && numberValue < field.min) {
|
1729
|
+
return;
|
1730
|
+
}
|
1731
|
+
if (typeof field.max !== "undefined" && numberValue > field.max) {
|
1732
|
+
return;
|
1733
|
+
}
|
1734
|
+
onChange(numberValue);
|
1727
1735
|
} else {
|
1728
1736
|
onChange(e.currentTarget.value);
|
1729
1737
|
}
|
@@ -2471,6 +2479,7 @@ var FieldLabelInternal = ({
|
|
2471
2479
|
function AutoFieldInternal(props) {
|
2472
2480
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2473
2481
|
const { dispatch, overrides, selectedItem } = useAppContext();
|
2482
|
+
const nestedFieldContext = (0, import_react20.useContext)(NestedFieldContext);
|
2474
2483
|
const { id, Label: Label2 = FieldLabelInternal } = props;
|
2475
2484
|
const field = props.field;
|
2476
2485
|
const label = field.label;
|
@@ -2535,7 +2544,6 @@ function AutoFieldInternal(props) {
|
|
2535
2544
|
}
|
2536
2545
|
const children = defaultFields[field.type](mergedProps);
|
2537
2546
|
const Render2 = render[field.type];
|
2538
|
-
const nestedFieldContext = (0, import_react20.useContext)(NestedFieldContext);
|
2539
2547
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
2540
2548
|
NestedFieldContext.Provider,
|
2541
2549
|
{
|
@@ -3248,13 +3256,19 @@ var DraggableComponent = ({
|
|
3248
3256
|
}
|
3249
3257
|
}, [ref.current]);
|
3250
3258
|
(0, import_react23.useEffect)(() => {
|
3251
|
-
|
3252
|
-
|
3259
|
+
ctx == null ? void 0 : ctx.registerPath(
|
3260
|
+
id,
|
3261
|
+
{
|
3253
3262
|
index,
|
3254
3263
|
zone: zoneCompound
|
3255
|
-
}
|
3256
|
-
|
3257
|
-
|
3264
|
+
},
|
3265
|
+
componentType
|
3266
|
+
);
|
3267
|
+
return () => {
|
3268
|
+
var _a;
|
3269
|
+
(_a = ctx == null ? void 0 : ctx.unregisterPath) == null ? void 0 : _a.call(ctx, id);
|
3270
|
+
};
|
3271
|
+
}, [id, zoneCompound, index, componentType]);
|
3258
3272
|
const CustomActionBar = (0, import_react23.useMemo)(
|
3259
3273
|
() => overrides.actionBar || DefaultActionBar,
|
3260
3274
|
[overrides.actionBar]
|
@@ -3574,9 +3588,20 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3574
3588
|
};
|
3575
3589
|
}
|
3576
3590
|
);
|
3591
|
+
const {
|
3592
|
+
state: {
|
3593
|
+
ui: { isDragging }
|
3594
|
+
}
|
3595
|
+
} = useAppContext();
|
3577
3596
|
const [contentWithPreview, setContentWithPreview] = (0, import_react27.useState)(content);
|
3597
|
+
const [localPreview, setLocalPreview] = (0, import_react27.useState)(
|
3598
|
+
preview
|
3599
|
+
);
|
3578
3600
|
const updateContent = useRenderedCallback(
|
3579
|
-
(content2, preview2) => {
|
3601
|
+
(content2, preview2, isDragging2) => {
|
3602
|
+
if (isDragging2 && !previewExists) {
|
3603
|
+
return;
|
3604
|
+
}
|
3580
3605
|
if (preview2) {
|
3581
3606
|
if (preview2.type === "insert") {
|
3582
3607
|
setContentWithPreview(
|
@@ -3606,13 +3631,14 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3606
3631
|
previewExists ? content2.filter((item) => item.props.id !== draggedItemId) : content2
|
3607
3632
|
);
|
3608
3633
|
}
|
3634
|
+
setLocalPreview(preview2);
|
3609
3635
|
},
|
3610
3636
|
[draggedItemId, previewExists]
|
3611
3637
|
);
|
3612
3638
|
(0, import_react27.useEffect)(() => {
|
3613
|
-
updateContent(content, preview);
|
3614
|
-
}, [content, preview]);
|
3615
|
-
return contentWithPreview;
|
3639
|
+
updateContent(content, preview, isDragging);
|
3640
|
+
}, [content, preview, isDragging]);
|
3641
|
+
return [contentWithPreview, localPreview];
|
3616
3642
|
};
|
3617
3643
|
|
3618
3644
|
// components/DropZone/lib/use-drag-axis.ts
|
@@ -3656,8 +3682,9 @@ var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3656
3682
|
var getClassName17 = get_class_name_factory_default("DropZone", styles_module_default12);
|
3657
3683
|
var getRandomColor = () => `#${Math.floor(Math.random() * 16777215).toString(16)}`;
|
3658
3684
|
var RENDER_DEBUG = false;
|
3685
|
+
var DropZoneEditPure = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneEdit, __spreadValues({}, props));
|
3659
3686
|
var DropZoneEdit = (0, import_react29.forwardRef)(
|
3660
|
-
function
|
3687
|
+
function DropZoneEditInternal({
|
3661
3688
|
zone,
|
3662
3689
|
allow,
|
3663
3690
|
disallow,
|
@@ -3691,8 +3718,7 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3691
3718
|
isDeepestZone,
|
3692
3719
|
inNextDeepestArea,
|
3693
3720
|
draggedComponentType,
|
3694
|
-
userIsDragging
|
3695
|
-
preview
|
3721
|
+
userIsDragging
|
3696
3722
|
} = useContextStore(ZoneStoreContext, (s) => {
|
3697
3723
|
var _a, _b, _c;
|
3698
3724
|
return {
|
@@ -3700,8 +3726,7 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3700
3726
|
inNextDeepestArea: s.nextAreaDepthIndex[areaId || ""],
|
3701
3727
|
draggedItemId: (_b = s.draggedItem) == null ? void 0 : _b.id,
|
3702
3728
|
draggedComponentType: (_c = s.draggedItem) == null ? void 0 : _c.data.componentType,
|
3703
|
-
userIsDragging: !!s.draggedItem
|
3704
|
-
preview: s.previewIndex[zoneCompound]
|
3729
|
+
userIsDragging: !!s.draggedItem
|
3705
3730
|
};
|
3706
3731
|
});
|
3707
3732
|
const { itemSelector } = appContext2.state.ui;
|
@@ -3767,7 +3792,10 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3767
3792
|
if (isEnabled) {
|
3768
3793
|
isEnabled = acceptsTarget(draggedComponentType);
|
3769
3794
|
}
|
3770
|
-
const contentWithPreview = useContentWithPreview(
|
3795
|
+
const [contentWithPreview, preview] = useContentWithPreview(
|
3796
|
+
content,
|
3797
|
+
zoneCompound
|
3798
|
+
);
|
3771
3799
|
const isDropEnabled = isEnabled && (preview ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3772
3800
|
const droppableConfig = {
|
3773
3801
|
id: zoneCompound,
|
@@ -3809,16 +3837,15 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3809
3837
|
},
|
3810
3838
|
"data-testid": `dropzone:${zoneCompound}`,
|
3811
3839
|
"data-puck-dropzone": zoneCompound,
|
3812
|
-
"data-puck-dnd": zoneCompound,
|
3813
3840
|
style: __spreadProps(__spreadValues({}, style), {
|
3814
3841
|
"--min-empty-height": `${minEmptyHeight}px`,
|
3815
|
-
backgroundColor: RENDER_DEBUG ? getRandomColor() : void 0
|
3842
|
+
backgroundColor: RENDER_DEBUG ? getRandomColor() : style == null ? void 0 : style.backgroundColor
|
3816
3843
|
}),
|
3817
3844
|
children: contentWithPreview.map((item, i) => {
|
3818
|
-
var _a, _b, _c, _d, _e;
|
3845
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
3819
3846
|
const componentId = item.props.id;
|
3820
3847
|
const puckProps = {
|
3821
|
-
renderDropZone:
|
3848
|
+
renderDropZone: DropZoneEditPure,
|
3822
3849
|
isEditing: true,
|
3823
3850
|
dragRef: null
|
3824
3851
|
};
|
@@ -3835,13 +3862,13 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3835
3862
|
const componentConfig = config.components[item.type];
|
3836
3863
|
let componentType = item.type;
|
3837
3864
|
let label = (_b = componentConfig == null ? void 0 : componentConfig["label"]) != null ? _b : item.type.toString();
|
3838
|
-
if (item.type === "preview"
|
3865
|
+
if (item.type === "preview") {
|
3839
3866
|
let Preview4 = function() {
|
3840
3867
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DrawerItemInner, { name: label, children: appContext2.overrides.componentItem });
|
3841
3868
|
};
|
3842
3869
|
var Preview3 = Preview4;
|
3843
|
-
componentType = preview.componentType;
|
3844
|
-
label = (
|
3870
|
+
componentType = (_c = preview == null ? void 0 : preview.componentType) != null ? _c : "__preview";
|
3871
|
+
label = (_f = (_e = (_d = config.components[componentType]) == null ? void 0 : _d.label) != null ? _e : componentType) != null ? _f : "Preview";
|
3845
3872
|
Render2 = Preview4;
|
3846
3873
|
}
|
3847
3874
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
@@ -3856,7 +3883,7 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3856
3883
|
zoneCompound,
|
3857
3884
|
depth: depth + 1,
|
3858
3885
|
index: i,
|
3859
|
-
isLoading: ((
|
3886
|
+
isLoading: ((_g = appContext2.componentState[componentId]) == null ? void 0 : _g.loadingCount) > 0,
|
3860
3887
|
isSelected,
|
3861
3888
|
label,
|
3862
3889
|
isEnabled,
|
@@ -3881,8 +3908,9 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3881
3908
|
);
|
3882
3909
|
}
|
3883
3910
|
);
|
3911
|
+
var DropZoneRenderPure = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneRender, __spreadValues({}, props));
|
3884
3912
|
var DropZoneRender = (0, import_react29.forwardRef)(
|
3885
|
-
function
|
3913
|
+
function DropZoneRenderInternal({ className, style, zone }, ref) {
|
3886
3914
|
const ctx = (0, import_react29.useContext)(dropZoneContext);
|
3887
3915
|
const { data, areaId = "root", config } = ctx || {};
|
3888
3916
|
let zoneCompound = rootDroppableId;
|
@@ -3920,7 +3948,9 @@ var DropZoneRender = (0, import_react29.forwardRef)(
|
|
3920
3948
|
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3921
3949
|
Component.render,
|
3922
3950
|
__spreadProps(__spreadValues({}, item.props), {
|
3923
|
-
puck: {
|
3951
|
+
puck: {
|
3952
|
+
renderDropZone: DropZoneRenderPure
|
3953
|
+
}
|
3924
3954
|
})
|
3925
3955
|
)
|
3926
3956
|
},
|
@@ -3995,6 +4025,48 @@ var getFrame = () => {
|
|
3995
4025
|
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
3996
4026
|
};
|
3997
4027
|
|
4028
|
+
// lib/global-position.ts
|
4029
|
+
init_react_import();
|
4030
|
+
var GlobalPosition = class {
|
4031
|
+
constructor(target, original) {
|
4032
|
+
this.scaleFactor = 1;
|
4033
|
+
this.frameEl = null;
|
4034
|
+
this.frameRect = null;
|
4035
|
+
var _a;
|
4036
|
+
this.target = target;
|
4037
|
+
this.original = original;
|
4038
|
+
this.frameEl = document.querySelector("iframe");
|
4039
|
+
if (this.frameEl) {
|
4040
|
+
this.frameRect = this.frameEl.getBoundingClientRect();
|
4041
|
+
this.scaleFactor = this.frameRect.width / (((_a = this.frameEl.contentWindow) == null ? void 0 : _a.innerWidth) || 1);
|
4042
|
+
}
|
4043
|
+
}
|
4044
|
+
get x() {
|
4045
|
+
return this.original.x;
|
4046
|
+
}
|
4047
|
+
get y() {
|
4048
|
+
return this.original.y;
|
4049
|
+
}
|
4050
|
+
get global() {
|
4051
|
+
if (document !== this.target.ownerDocument && this.frameRect) {
|
4052
|
+
return {
|
4053
|
+
x: this.x * this.scaleFactor + this.frameRect.left,
|
4054
|
+
y: this.y * this.scaleFactor + this.frameRect.top
|
4055
|
+
};
|
4056
|
+
}
|
4057
|
+
return this.original;
|
4058
|
+
}
|
4059
|
+
get frame() {
|
4060
|
+
if (document === this.target.ownerDocument && this.frameRect) {
|
4061
|
+
return {
|
4062
|
+
x: (this.x - this.frameRect.left) / this.scaleFactor,
|
4063
|
+
y: (this.y - this.frameRect.top) / this.scaleFactor
|
4064
|
+
};
|
4065
|
+
}
|
4066
|
+
return this.original;
|
4067
|
+
}
|
4068
|
+
};
|
4069
|
+
|
3998
4070
|
// lib/dnd/NestedDroppablePlugin.ts
|
3999
4071
|
var depthSort = (candidates) => {
|
4000
4072
|
return candidates.sort((a, b) => {
|
@@ -4024,10 +4096,12 @@ var getZoneId2 = (candidate) => {
|
|
4024
4096
|
}
|
4025
4097
|
return id;
|
4026
4098
|
};
|
4027
|
-
var getPointerCollisions = (position, manager
|
4028
|
-
var _a;
|
4099
|
+
var getPointerCollisions = (position, manager) => {
|
4029
4100
|
const candidates = [];
|
4030
|
-
let elements = ownerDocument.elementsFromPoint(
|
4101
|
+
let elements = position.target.ownerDocument.elementsFromPoint(
|
4102
|
+
position.x,
|
4103
|
+
position.y
|
4104
|
+
);
|
4031
4105
|
const previewFrame = elements.find(
|
4032
4106
|
(el) => el.getAttribute("data-puck-preview")
|
4033
4107
|
);
|
@@ -4036,22 +4110,21 @@ var getPointerCollisions = (position, manager, ownerDocument) => {
|
|
4036
4110
|
elements = [drawer];
|
4037
4111
|
}
|
4038
4112
|
if (previewFrame) {
|
4039
|
-
const
|
4040
|
-
if (
|
4041
|
-
|
4042
|
-
const frame = getFrame();
|
4043
|
-
if (frame) {
|
4044
|
-
const scaleFactor = rect.width / (((_a = iframe.contentWindow) == null ? void 0 : _a.innerWidth) || 1);
|
4045
|
-
elements = frame.elementsFromPoint(
|
4046
|
-
(position.x - rect.left) / scaleFactor,
|
4047
|
-
(position.y - rect.top) / scaleFactor
|
4048
|
-
);
|
4049
|
-
}
|
4113
|
+
const frame = getFrame();
|
4114
|
+
if (frame) {
|
4115
|
+
elements = frame.elementsFromPoint(position.frame.x, position.frame.y);
|
4050
4116
|
}
|
4051
4117
|
}
|
4052
4118
|
if (elements) {
|
4053
4119
|
for (let i = 0; i < elements.length; i++) {
|
4054
4120
|
const element = elements[i];
|
4121
|
+
const dropzoneId = element.getAttribute("data-puck-dropzone");
|
4122
|
+
if (dropzoneId) {
|
4123
|
+
const droppable = manager.registry.droppables.get(dropzoneId);
|
4124
|
+
if (droppable) {
|
4125
|
+
candidates.push(droppable);
|
4126
|
+
}
|
4127
|
+
}
|
4055
4128
|
const id = element.getAttribute("data-puck-dnd");
|
4056
4129
|
if (id) {
|
4057
4130
|
const droppable = manager.registry.droppables.get(id);
|
@@ -4063,9 +4136,9 @@ var getPointerCollisions = (position, manager, ownerDocument) => {
|
|
4063
4136
|
}
|
4064
4137
|
return candidates;
|
4065
4138
|
};
|
4066
|
-
var findDeepestCandidate = (position, manager
|
4139
|
+
var findDeepestCandidate = (position, manager) => {
|
4067
4140
|
var _a;
|
4068
|
-
const candidates = getPointerCollisions(position, manager
|
4141
|
+
const candidates = getPointerCollisions(position, manager);
|
4069
4142
|
if (candidates.length > 0) {
|
4070
4143
|
const sortedCandidates = depthSort(candidates);
|
4071
4144
|
const draggable = manager.dragOperation.source;
|
@@ -4118,22 +4191,18 @@ var createNestedDroppablePlugin = ({ onChange }, id) => class NestedDroppablePlu
|
|
4118
4191
|
}
|
4119
4192
|
const cleanupEffect = (0, import_state.effects)(() => {
|
4120
4193
|
const handleMove = (event) => {
|
4121
|
-
const
|
4194
|
+
const target = event.originalTarget || event.target;
|
4195
|
+
const position = new GlobalPosition(target, {
|
4122
4196
|
x: event.clientX,
|
4123
4197
|
y: event.clientY
|
4124
|
-
};
|
4125
|
-
const target = event.originalTarget || event.target;
|
4126
|
-
const ownerDocument = target == null ? void 0 : target.ownerDocument;
|
4198
|
+
});
|
4127
4199
|
const elements = document.elementsFromPoint(
|
4128
|
-
|
4129
|
-
|
4200
|
+
position.global.x,
|
4201
|
+
position.global.y
|
4130
4202
|
);
|
4131
4203
|
const overEl = elements.some((el) => el.id === id);
|
4132
4204
|
if (overEl) {
|
4133
|
-
onChange(
|
4134
|
-
findDeepestCandidate(position, manager, ownerDocument),
|
4135
|
-
manager
|
4136
|
-
);
|
4205
|
+
onChange(findDeepestCandidate(position, manager), manager);
|
4137
4206
|
}
|
4138
4207
|
};
|
4139
4208
|
const handleMoveThrottled = throttle(handleMove, 50);
|
@@ -4464,6 +4533,11 @@ var reduceUi = (ui, action) => {
|
|
4464
4533
|
itemSelector: { index: action.sourceIndex + 1, zone: action.sourceZone }
|
4465
4534
|
});
|
4466
4535
|
}
|
4536
|
+
if (action.type === "remove") {
|
4537
|
+
return __spreadProps(__spreadValues({}, ui), {
|
4538
|
+
itemSelector: null
|
4539
|
+
});
|
4540
|
+
}
|
4467
4541
|
return ui;
|
4468
4542
|
};
|
4469
4543
|
|
@@ -4714,6 +4788,9 @@ var _PointerSensor = class _PointerSensor extends import_abstract10.Sensor {
|
|
4714
4788
|
}
|
4715
4789
|
}
|
4716
4790
|
handlePointerUp(event) {
|
4791
|
+
if (!this.source) {
|
4792
|
+
return;
|
4793
|
+
}
|
4717
4794
|
event.preventDefault();
|
4718
4795
|
event.stopPropagation();
|
4719
4796
|
const { status } = this.manager.dragOperation;
|
@@ -4992,27 +5069,33 @@ var DragDropContextClient = ({
|
|
4992
5069
|
const [pathData, setPathData] = (0, import_react31.useState)();
|
4993
5070
|
const dragMode = (0, import_react31.useRef)(null);
|
4994
5071
|
const registerPath = (0, import_react31.useCallback)(
|
4995
|
-
(selector) => {
|
4996
|
-
const item = getItem(selector, data);
|
4997
|
-
if (!item) {
|
4998
|
-
return;
|
4999
|
-
}
|
5072
|
+
(id2, selector, label) => {
|
5000
5073
|
const [area] = getZoneId(selector.zone);
|
5001
5074
|
setPathData((latestPathData = {}) => {
|
5002
5075
|
const parentPathData = latestPathData[area] || { path: [] };
|
5003
5076
|
return __spreadProps(__spreadValues({}, latestPathData), {
|
5004
|
-
[
|
5077
|
+
[id2]: {
|
5005
5078
|
path: [
|
5006
5079
|
...parentPathData.path,
|
5007
5080
|
...selector.zone ? [selector.zone] : []
|
5008
5081
|
],
|
5009
|
-
label
|
5082
|
+
label
|
5010
5083
|
}
|
5011
5084
|
});
|
5012
5085
|
});
|
5013
5086
|
},
|
5014
5087
|
[data, setPathData]
|
5015
5088
|
);
|
5089
|
+
const unregisterPath = (0, import_react31.useCallback)(
|
5090
|
+
(id2) => {
|
5091
|
+
setPathData((latestPathData = {}) => {
|
5092
|
+
const newPathData = __spreadValues({}, latestPathData);
|
5093
|
+
delete newPathData[id2];
|
5094
|
+
return newPathData;
|
5095
|
+
});
|
5096
|
+
},
|
5097
|
+
[data, setPathData]
|
5098
|
+
);
|
5016
5099
|
const initialSelector = (0, import_react31.useRef)(void 0);
|
5017
5100
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { id, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
5018
5101
|
dragListenerContext.Provider,
|
@@ -5209,6 +5292,7 @@ var DragDropContextClient = ({
|
|
5209
5292
|
areaId: "root",
|
5210
5293
|
depth: 0,
|
5211
5294
|
registerPath,
|
5295
|
+
unregisterPath,
|
5212
5296
|
pathData,
|
5213
5297
|
path: []
|
5214
5298
|
},
|
@@ -5335,7 +5419,7 @@ var Drawer = ({
|
|
5335
5419
|
"Warning: The `direction` prop on Drawer is deprecated and no longer required to achieve multi-directional dragging."
|
5336
5420
|
);
|
5337
5421
|
}
|
5338
|
-
const
|
5422
|
+
const id = (0, import_react32.useId)();
|
5339
5423
|
const { ref } = useDroppableSafe({
|
5340
5424
|
id,
|
5341
5425
|
type: "void",
|
@@ -5357,7 +5441,7 @@ Drawer.Item = DrawerItem;
|
|
5357
5441
|
|
5358
5442
|
// components/Puck/index.tsx
|
5359
5443
|
init_react_import();
|
5360
|
-
var
|
5444
|
+
var import_react50 = require("react");
|
5361
5445
|
|
5362
5446
|
// components/SidebarSection/index.tsx
|
5363
5447
|
init_react_import();
|
@@ -5550,36 +5634,61 @@ init_react_import();
|
|
5550
5634
|
|
5551
5635
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
|
5552
5636
|
init_react_import();
|
5553
|
-
var styles_module_default16 = { "PuckFields": "
|
5637
|
+
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" };
|
5554
5638
|
|
5555
5639
|
// components/Puck/components/Fields/index.tsx
|
5556
|
-
var
|
5640
|
+
var import_react37 = require("react");
|
5641
|
+
|
5642
|
+
// lib/use-resolved-fields.ts
|
5643
|
+
init_react_import();
|
5644
|
+
var import_react36 = require("react");
|
5557
5645
|
|
5558
5646
|
// lib/use-parent.ts
|
5559
5647
|
init_react_import();
|
5560
5648
|
var import_react34 = require("react");
|
5561
|
-
var
|
5649
|
+
var getParent = (itemSelector, pathData, data) => {
|
5562
5650
|
var _a;
|
5563
|
-
|
5564
|
-
const
|
5565
|
-
const
|
5566
|
-
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
5651
|
+
if (!itemSelector) return null;
|
5652
|
+
const item = getItem(itemSelector, data);
|
5653
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, data);
|
5567
5654
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
5568
|
-
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector,
|
5655
|
+
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, data)) != null ? _a : null : null;
|
5569
5656
|
return parent || null;
|
5570
5657
|
};
|
5658
|
+
var useGetParent = () => {
|
5659
|
+
const { state } = useAppContext();
|
5660
|
+
const { pathData } = (0, import_react34.useContext)(dropZoneContext) || {};
|
5661
|
+
return (0, import_react34.useCallback)(
|
5662
|
+
() => getParent(state.ui.itemSelector, pathData, state.data),
|
5663
|
+
[state.ui.itemSelector, pathData, state.data]
|
5664
|
+
);
|
5665
|
+
};
|
5666
|
+
var useParent = () => {
|
5667
|
+
return useGetParent()();
|
5668
|
+
};
|
5571
5669
|
|
5572
|
-
//
|
5573
|
-
|
5574
|
-
var
|
5670
|
+
// lib/use-on-value-change.ts
|
5671
|
+
init_react_import();
|
5672
|
+
var import_react35 = require("react");
|
5673
|
+
function useOnValueChange(value, onChange, compare = Object.is, deps = []) {
|
5674
|
+
const tracked = (0, import_react35.useRef)(value);
|
5675
|
+
(0, import_react35.useEffect)(() => {
|
5676
|
+
const oldValue = tracked.current;
|
5677
|
+
if (!compare(value, oldValue)) {
|
5678
|
+
tracked.current = value;
|
5679
|
+
onChange(value, oldValue);
|
5680
|
+
}
|
5681
|
+
}, [onChange, compare, value, ...deps]);
|
5682
|
+
}
|
5683
|
+
|
5684
|
+
// lib/selector-is.ts
|
5685
|
+
init_react_import();
|
5686
|
+
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);
|
5687
|
+
|
5688
|
+
// lib/use-resolved-fields.ts
|
5575
5689
|
var defaultPageFields = {
|
5576
5690
|
title: { type: "text" }
|
5577
5691
|
};
|
5578
|
-
var DefaultFields = ({
|
5579
|
-
children
|
5580
|
-
}) => {
|
5581
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
5582
|
-
};
|
5583
5692
|
var useResolvedFields = () => {
|
5584
5693
|
var _a, _b;
|
5585
5694
|
const { selectedItem, state, config } = useAppContext();
|
@@ -5587,20 +5696,21 @@ var useResolvedFields = () => {
|
|
5587
5696
|
const { data } = state;
|
5588
5697
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
5589
5698
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
5590
|
-
const defaultFields = (0,
|
5699
|
+
const defaultFields = (0, import_react36.useMemo)(
|
5591
5700
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
5592
5701
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
5593
5702
|
);
|
5594
5703
|
const rootProps = data.root.props || data.root;
|
5595
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
5596
|
-
const [resolvedFields, setResolvedFields] = (0,
|
5597
|
-
const [fieldsLoading, setFieldsLoading] = (0,
|
5704
|
+
const [lastSelectedData, setLastSelectedData] = (0, import_react36.useState)({});
|
5705
|
+
const [resolvedFields, setResolvedFields] = (0, import_react36.useState)(defaultFields);
|
5706
|
+
const [fieldsLoading, setFieldsLoading] = (0, import_react36.useState)(false);
|
5707
|
+
const lastFields = (0, import_react36.useRef)(defaultFields);
|
5598
5708
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5599
5709
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5600
5710
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5601
5711
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5602
5712
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5603
|
-
const resolveFields = (0,
|
5713
|
+
const resolveFields = (0, import_react36.useCallback)(
|
5604
5714
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5605
5715
|
var _a2;
|
5606
5716
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5612,7 +5722,7 @@ var useResolvedFields = () => {
|
|
5612
5722
|
{
|
5613
5723
|
changed,
|
5614
5724
|
fields,
|
5615
|
-
lastFields:
|
5725
|
+
lastFields: lastFields.current,
|
5616
5726
|
lastData,
|
5617
5727
|
appState: state,
|
5618
5728
|
parent
|
@@ -5623,7 +5733,7 @@ var useResolvedFields = () => {
|
|
5623
5733
|
return yield config.root.resolveFields(componentData, {
|
5624
5734
|
changed,
|
5625
5735
|
fields,
|
5626
|
-
lastFields:
|
5736
|
+
lastFields: lastFields.current,
|
5627
5737
|
lastData,
|
5628
5738
|
appState: state,
|
5629
5739
|
parent
|
@@ -5632,26 +5742,56 @@ var useResolvedFields = () => {
|
|
5632
5742
|
return defaultResolveFields(componentData, {
|
5633
5743
|
changed,
|
5634
5744
|
fields,
|
5635
|
-
lastFields:
|
5745
|
+
lastFields: lastFields.current,
|
5636
5746
|
lastData
|
5637
5747
|
});
|
5638
5748
|
}),
|
5639
|
-
[data, config, componentData, selectedItem,
|
5749
|
+
[data, config, componentData, selectedItem, state, parent]
|
5640
5750
|
);
|
5641
|
-
(0,
|
5642
|
-
|
5643
|
-
|
5644
|
-
|
5645
|
-
|
5646
|
-
|
5647
|
-
|
5648
|
-
|
5649
|
-
|
5751
|
+
const triggerResolver = (0, import_react36.useCallback)(() => {
|
5752
|
+
var _a2, _b2;
|
5753
|
+
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" || parent) {
|
5754
|
+
if (hasResolver) {
|
5755
|
+
setFieldsLoading(true);
|
5756
|
+
resolveFields(defaultFields).then((fields) => {
|
5757
|
+
setResolvedFields(fields || {});
|
5758
|
+
lastFields.current = fields;
|
5759
|
+
setFieldsLoading(false);
|
5760
|
+
});
|
5761
|
+
return;
|
5762
|
+
}
|
5650
5763
|
}
|
5651
|
-
|
5764
|
+
setResolvedFields(defaultFields);
|
5765
|
+
}, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
|
5766
|
+
useOnValueChange(
|
5767
|
+
state.ui.itemSelector,
|
5768
|
+
() => {
|
5769
|
+
lastFields.current = defaultFields;
|
5770
|
+
},
|
5771
|
+
selectorIs
|
5772
|
+
);
|
5773
|
+
useOnValueChange(
|
5774
|
+
{ data, parent, itemSelector: state.ui.itemSelector },
|
5775
|
+
() => {
|
5776
|
+
triggerResolver();
|
5777
|
+
},
|
5778
|
+
(a, b) => JSON.stringify(a) === JSON.stringify(b)
|
5779
|
+
);
|
5780
|
+
(0, import_react36.useEffect)(() => {
|
5781
|
+
triggerResolver();
|
5782
|
+
}, []);
|
5652
5783
|
return [resolvedFields, fieldsLoading];
|
5653
5784
|
};
|
5654
|
-
|
5785
|
+
|
5786
|
+
// components/Puck/components/Fields/index.tsx
|
5787
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
5788
|
+
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
5789
|
+
var DefaultFields = ({
|
5790
|
+
children
|
5791
|
+
}) => {
|
5792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
5793
|
+
};
|
5794
|
+
var Fields = ({ wrapFields = true }) => {
|
5655
5795
|
var _a, _b;
|
5656
5796
|
const {
|
5657
5797
|
selectedItem,
|
@@ -5669,11 +5809,11 @@ var Fields = () => {
|
|
5669
5809
|
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;
|
5670
5810
|
const isLoading = fieldsResolving || componentResolving;
|
5671
5811
|
const rootProps = data.root.props || data.root;
|
5672
|
-
const Wrapper = (0,
|
5812
|
+
const Wrapper = (0, import_react37.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
5673
5813
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
5674
5814
|
"form",
|
5675
5815
|
{
|
5676
|
-
className: getClassName21(),
|
5816
|
+
className: getClassName21({ wrapFields }),
|
5677
5817
|
onSubmit: (e) => {
|
5678
5818
|
e.preventDefault();
|
5679
5819
|
},
|
@@ -5749,7 +5889,7 @@ var Fields = () => {
|
|
5749
5889
|
item: selectedItem
|
5750
5890
|
});
|
5751
5891
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
5752
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5892
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("field"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5753
5893
|
AutoFieldPrivate,
|
5754
5894
|
{
|
5755
5895
|
field,
|
@@ -5758,16 +5898,15 @@ var Fields = () => {
|
|
5758
5898
|
readOnly: !edit || readOnly[fieldName],
|
5759
5899
|
value: selectedItem.props[fieldName],
|
5760
5900
|
onChange
|
5761
|
-
}
|
5762
|
-
|
5763
|
-
);
|
5901
|
+
}
|
5902
|
+
) }, id);
|
5764
5903
|
} else {
|
5765
5904
|
const readOnly = data.root.readOnly || {};
|
5766
5905
|
const { edit } = getPermissions({
|
5767
5906
|
root: true
|
5768
5907
|
});
|
5769
5908
|
const id = `root_${field.type}_${fieldName}`;
|
5770
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("field"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5771
5910
|
AutoFieldPrivate,
|
5772
5911
|
{
|
5773
5912
|
field,
|
@@ -5776,9 +5915,8 @@ var Fields = () => {
|
|
5776
5915
|
readOnly: !edit || readOnly[fieldName],
|
5777
5916
|
value: rootProps[fieldName],
|
5778
5917
|
onChange
|
5779
|
-
}
|
5780
|
-
|
5781
|
-
);
|
5918
|
+
}
|
5919
|
+
) }, id);
|
5782
5920
|
}
|
5783
5921
|
}) }),
|
5784
5922
|
isLoading && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("loadingOverlayInner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Loader, { size: 16 }) }) })
|
@@ -5792,7 +5930,7 @@ init_react_import();
|
|
5792
5930
|
|
5793
5931
|
// lib/use-component-list.tsx
|
5794
5932
|
init_react_import();
|
5795
|
-
var
|
5933
|
+
var import_react38 = require("react");
|
5796
5934
|
|
5797
5935
|
// components/ComponentList/index.tsx
|
5798
5936
|
init_react_import();
|
@@ -5859,8 +5997,8 @@ ComponentList.Item = ComponentListItem;
|
|
5859
5997
|
// lib/use-component-list.tsx
|
5860
5998
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
5861
5999
|
var useComponentList = (config, ui) => {
|
5862
|
-
const [componentList, setComponentList] = (0,
|
5863
|
-
(0,
|
6000
|
+
const [componentList, setComponentList] = (0, import_react38.useState)();
|
6001
|
+
(0, import_react38.useEffect)(() => {
|
5864
6002
|
var _a, _b, _c;
|
5865
6003
|
if (Object.keys(ui.componentList).length > 0) {
|
5866
6004
|
const matchedComponents = [];
|
@@ -5929,22 +6067,22 @@ var useComponentList = (config, ui) => {
|
|
5929
6067
|
};
|
5930
6068
|
|
5931
6069
|
// components/Puck/components/Components/index.tsx
|
5932
|
-
var
|
6070
|
+
var import_react39 = require("react");
|
5933
6071
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
5934
6072
|
var Components = () => {
|
5935
6073
|
const { config, state, overrides } = useAppContext();
|
5936
6074
|
const componentList = useComponentList(config, state.ui);
|
5937
|
-
const Wrapper = (0,
|
6075
|
+
const Wrapper = (0, import_react39.useMemo)(() => overrides.components || "div", [overrides]);
|
5938
6076
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
|
5939
6077
|
};
|
5940
6078
|
|
5941
6079
|
// components/Puck/components/Preview/index.tsx
|
5942
6080
|
init_react_import();
|
5943
|
-
var
|
6081
|
+
var import_react41 = require("react");
|
5944
6082
|
|
5945
6083
|
// components/AutoFrame/index.tsx
|
5946
6084
|
init_react_import();
|
5947
|
-
var
|
6085
|
+
var import_react40 = require("react");
|
5948
6086
|
var import_object_hash = __toESM(require("object-hash"));
|
5949
6087
|
var import_react_dom3 = require("react-dom");
|
5950
6088
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
@@ -5990,7 +6128,7 @@ var CopyHostStyles = ({
|
|
5990
6128
|
onStylesLoaded = () => null
|
5991
6129
|
}) => {
|
5992
6130
|
const { document: doc, window: win } = useFrame();
|
5993
|
-
(0,
|
6131
|
+
(0, import_react40.useEffect)(() => {
|
5994
6132
|
if (!win || !doc) {
|
5995
6133
|
return () => {
|
5996
6134
|
};
|
@@ -6149,8 +6287,8 @@ var CopyHostStyles = ({
|
|
6149
6287
|
}, []);
|
6150
6288
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
|
6151
6289
|
};
|
6152
|
-
var autoFrameContext = (0,
|
6153
|
-
var useFrame = () => (0,
|
6290
|
+
var autoFrameContext = (0, import_react40.createContext)({});
|
6291
|
+
var useFrame = () => (0, import_react40.useContext)(autoFrameContext);
|
6154
6292
|
function AutoFrame(_a) {
|
6155
6293
|
var _b = _a, {
|
6156
6294
|
children,
|
@@ -6167,10 +6305,10 @@ function AutoFrame(_a) {
|
|
6167
6305
|
"onStylesLoaded",
|
6168
6306
|
"frameRef"
|
6169
6307
|
]);
|
6170
|
-
const [loaded, setLoaded] = (0,
|
6171
|
-
const [ctx, setCtx] = (0,
|
6172
|
-
const [mountTarget, setMountTarget] = (0,
|
6173
|
-
(0,
|
6308
|
+
const [loaded, setLoaded] = (0, import_react40.useState)(false);
|
6309
|
+
const [ctx, setCtx] = (0, import_react40.useState)({});
|
6310
|
+
const [mountTarget, setMountTarget] = (0, import_react40.useState)();
|
6311
|
+
(0, import_react40.useEffect)(() => {
|
6174
6312
|
var _a2;
|
6175
6313
|
if (frameRef.current) {
|
6176
6314
|
setCtx({
|
@@ -6264,7 +6402,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
6264
6402
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
6265
6403
|
var useBubbleIframeEvents = (ref) => {
|
6266
6404
|
const { status } = useAppContext();
|
6267
|
-
(0,
|
6405
|
+
(0, import_react41.useEffect)(() => {
|
6268
6406
|
var _a;
|
6269
6407
|
if (ref.current && status === "READY") {
|
6270
6408
|
const iframe = ref.current;
|
@@ -6303,7 +6441,7 @@ var useBubbleIframeEvents = (ref) => {
|
|
6303
6441
|
};
|
6304
6442
|
var Preview2 = ({ id = "puck-preview" }) => {
|
6305
6443
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
6306
|
-
const Page = (0,
|
6444
|
+
const Page = (0, import_react41.useCallback)(
|
6307
6445
|
(pageProps) => {
|
6308
6446
|
var _a, _b;
|
6309
6447
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -6312,9 +6450,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
|
|
6312
6450
|
},
|
6313
6451
|
[config.root]
|
6314
6452
|
);
|
6315
|
-
const Frame = (0,
|
6453
|
+
const Frame = (0, import_react41.useMemo)(() => overrides.iframe, [overrides]);
|
6316
6454
|
const rootProps = state.data.root.props || state.data.root;
|
6317
|
-
const ref = (0,
|
6455
|
+
const ref = (0, import_react41.useRef)(null);
|
6318
6456
|
useBubbleIframeEvents(ref);
|
6319
6457
|
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
6320
6458
|
Page,
|
@@ -6411,7 +6549,7 @@ var scrollIntoView = (el) => {
|
|
6411
6549
|
};
|
6412
6550
|
|
6413
6551
|
// components/LayerTree/index.tsx
|
6414
|
-
var
|
6552
|
+
var import_react42 = require("react");
|
6415
6553
|
|
6416
6554
|
// lib/is-child-of-zone.ts
|
6417
6555
|
init_react_import();
|
@@ -6457,7 +6595,7 @@ var LayerTree = ({
|
|
6457
6595
|
label
|
6458
6596
|
}) => {
|
6459
6597
|
const zones = data.zones || {};
|
6460
|
-
const ctx = (0,
|
6598
|
+
const ctx = (0, import_react42.useContext)(dropZoneContext);
|
6461
6599
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
6462
6600
|
label && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
6463
6601
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Layers, { size: "16" }) }),
|
@@ -6564,13 +6702,13 @@ var LayerTree = ({
|
|
6564
6702
|
};
|
6565
6703
|
|
6566
6704
|
// components/Puck/components/Outline/index.tsx
|
6567
|
-
var
|
6705
|
+
var import_react43 = require("react");
|
6568
6706
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
6569
6707
|
var Outline = () => {
|
6570
6708
|
const { dispatch, state, overrides, config } = useAppContext();
|
6571
6709
|
const { data, ui } = state;
|
6572
6710
|
const { itemSelector } = ui;
|
6573
|
-
const setItemSelector = (0,
|
6711
|
+
const setItemSelector = (0, import_react43.useCallback)(
|
6574
6712
|
(newItemSelector) => {
|
6575
6713
|
dispatch({
|
6576
6714
|
type: "setUi",
|
@@ -6579,7 +6717,7 @@ var Outline = () => {
|
|
6579
6717
|
},
|
6580
6718
|
[]
|
6581
6719
|
);
|
6582
|
-
const Wrapper = (0,
|
6720
|
+
const Wrapper = (0, import_react43.useMemo)(() => overrides.outline || "div", [overrides]);
|
6583
6721
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
6584
6722
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
6585
6723
|
LayerTree,
|
@@ -6693,19 +6831,19 @@ function usePuckHistory({
|
|
6693
6831
|
|
6694
6832
|
// lib/use-history-store.ts
|
6695
6833
|
init_react_import();
|
6696
|
-
var
|
6834
|
+
var import_react44 = require("react");
|
6697
6835
|
var import_use_debounce3 = require("use-debounce");
|
6698
6836
|
var EMPTY_HISTORY_INDEX = 0;
|
6699
6837
|
function useHistoryStore(initialHistory) {
|
6700
6838
|
var _a, _b;
|
6701
|
-
const [histories, setHistories] = (0,
|
6839
|
+
const [histories, setHistories] = (0, import_react44.useState)(
|
6702
6840
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
6703
6841
|
);
|
6704
6842
|
const updateHistories = (histories2) => {
|
6705
6843
|
setHistories(histories2);
|
6706
6844
|
setIndex(histories2.length - 1);
|
6707
6845
|
};
|
6708
|
-
const [index, setIndex] = (0,
|
6846
|
+
const [index, setIndex] = (0, import_react44.useState)(
|
6709
6847
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
6710
6848
|
);
|
6711
6849
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -6865,11 +7003,11 @@ var getBox = function getBox2(el) {
|
|
6865
7003
|
};
|
6866
7004
|
|
6867
7005
|
// components/Puck/components/Canvas/index.tsx
|
6868
|
-
var
|
7006
|
+
var import_react46 = require("react");
|
6869
7007
|
|
6870
7008
|
// components/ViewportControls/index.tsx
|
6871
7009
|
init_react_import();
|
6872
|
-
var
|
7010
|
+
var import_react45 = require("react");
|
6873
7011
|
|
6874
7012
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6875
7013
|
init_react_import();
|
@@ -6892,8 +7030,8 @@ var ViewportButton = ({
|
|
6892
7030
|
onClick
|
6893
7031
|
}) => {
|
6894
7032
|
const { state } = useAppContext();
|
6895
|
-
const [isActive, setIsActive] = (0,
|
6896
|
-
(0,
|
7033
|
+
const [isActive, setIsActive] = (0, import_react45.useState)(false);
|
7034
|
+
(0, import_react45.useEffect)(() => {
|
6897
7035
|
setIsActive(width === state.ui.viewports.current.width);
|
6898
7036
|
}, [width, state.ui.viewports.current.width]);
|
6899
7037
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
@@ -6929,7 +7067,7 @@ var ViewportControls = ({
|
|
6929
7067
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6930
7068
|
(option) => option.value === autoZoom
|
6931
7069
|
);
|
6932
|
-
const zoomOptions = (0,
|
7070
|
+
const zoomOptions = (0, import_react45.useMemo)(
|
6933
7071
|
() => [
|
6934
7072
|
...defaultZoomOptions,
|
6935
7073
|
...defaultsContainAutoZoom ? [] : [
|
@@ -7052,17 +7190,17 @@ var Canvas = () => {
|
|
7052
7190
|
const { status, iframe } = useAppContext();
|
7053
7191
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
7054
7192
|
const { ui } = state;
|
7055
|
-
const frameRef = (0,
|
7056
|
-
const [showTransition, setShowTransition] = (0,
|
7057
|
-
const defaultRender = (0,
|
7193
|
+
const frameRef = (0, import_react46.useRef)(null);
|
7194
|
+
const [showTransition, setShowTransition] = (0, import_react46.useState)(false);
|
7195
|
+
const defaultRender = (0, import_react46.useMemo)(() => {
|
7058
7196
|
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
|
7059
7197
|
return PuckDefault;
|
7060
7198
|
}, []);
|
7061
|
-
const CustomPreview = (0,
|
7199
|
+
const CustomPreview = (0, import_react46.useMemo)(
|
7062
7200
|
() => overrides.preview || defaultRender,
|
7063
7201
|
[overrides]
|
7064
7202
|
);
|
7065
|
-
const getFrameDimensions = (0,
|
7203
|
+
const getFrameDimensions = (0, import_react46.useCallback)(() => {
|
7066
7204
|
if (frameRef.current) {
|
7067
7205
|
const frame = frameRef.current;
|
7068
7206
|
const box = getBox(frame);
|
@@ -7070,7 +7208,7 @@ var Canvas = () => {
|
|
7070
7208
|
}
|
7071
7209
|
return { width: 0, height: 0 };
|
7072
7210
|
}, [frameRef]);
|
7073
|
-
const resetAutoZoom = (0,
|
7211
|
+
const resetAutoZoom = (0, import_react46.useCallback)(
|
7074
7212
|
(ui2 = state.ui) => {
|
7075
7213
|
if (frameRef.current) {
|
7076
7214
|
setZoomConfig(
|
@@ -7080,11 +7218,11 @@ var Canvas = () => {
|
|
7080
7218
|
},
|
7081
7219
|
[frameRef, zoomConfig, state.ui]
|
7082
7220
|
);
|
7083
|
-
(0,
|
7221
|
+
(0, import_react46.useEffect)(() => {
|
7084
7222
|
setShowTransition(false);
|
7085
7223
|
resetAutoZoom();
|
7086
7224
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
7087
|
-
(0,
|
7225
|
+
(0, import_react46.useEffect)(() => {
|
7088
7226
|
const { height: frameHeight } = getFrameDimensions();
|
7089
7227
|
if (ui.viewports.current.height === "auto") {
|
7090
7228
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -7092,13 +7230,13 @@ var Canvas = () => {
|
|
7092
7230
|
}));
|
7093
7231
|
}
|
7094
7232
|
}, [zoomConfig.zoom]);
|
7095
|
-
(0,
|
7233
|
+
(0, import_react46.useEffect)(() => {
|
7096
7234
|
if (ZOOM_ON_CHANGE) {
|
7097
7235
|
setShowTransition(true);
|
7098
7236
|
resetAutoZoom(ui);
|
7099
7237
|
}
|
7100
7238
|
}, [ui.viewports.current.width]);
|
7101
|
-
(0,
|
7239
|
+
(0, import_react46.useEffect)(() => {
|
7102
7240
|
const cb = () => {
|
7103
7241
|
setShowTransition(false);
|
7104
7242
|
resetAutoZoom();
|
@@ -7108,8 +7246,8 @@ var Canvas = () => {
|
|
7108
7246
|
window.removeEventListener("resize", cb);
|
7109
7247
|
};
|
7110
7248
|
}, []);
|
7111
|
-
const [showLoader, setShowLoader] = (0,
|
7112
|
-
(0,
|
7249
|
+
const [showLoader, setShowLoader] = (0, import_react46.useState)(false);
|
7250
|
+
(0, import_react46.useEffect)(() => {
|
7113
7251
|
setTimeout(() => {
|
7114
7252
|
setShowLoader(true);
|
7115
7253
|
}, 500);
|
@@ -7187,7 +7325,7 @@ var Canvas = () => {
|
|
7187
7325
|
|
7188
7326
|
// lib/use-loaded-overrides.ts
|
7189
7327
|
init_react_import();
|
7190
|
-
var
|
7328
|
+
var import_react47 = require("react");
|
7191
7329
|
|
7192
7330
|
// lib/load-overrides.ts
|
7193
7331
|
init_react_import();
|
@@ -7226,7 +7364,7 @@ var useLoadedOverrides = ({
|
|
7226
7364
|
overrides,
|
7227
7365
|
plugins
|
7228
7366
|
}) => {
|
7229
|
-
return (0,
|
7367
|
+
return (0, import_react47.useMemo)(() => {
|
7230
7368
|
return loadOverrides({ overrides, plugins });
|
7231
7369
|
}, [plugins, overrides]);
|
7232
7370
|
};
|
@@ -7238,14 +7376,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime38
|
|
7238
7376
|
|
7239
7377
|
// lib/use-inject-css.ts
|
7240
7378
|
init_react_import();
|
7241
|
-
var
|
7379
|
+
var import_react48 = require("react");
|
7242
7380
|
var styles = ``;
|
7243
7381
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
7244
|
-
const [el, setEl] = (0,
|
7245
|
-
(0,
|
7382
|
+
const [el, setEl] = (0, import_react48.useState)();
|
7383
|
+
(0, import_react48.useEffect)(() => {
|
7246
7384
|
setEl(document.createElement("style"));
|
7247
7385
|
}, []);
|
7248
|
-
(0,
|
7386
|
+
(0, import_react48.useEffect)(() => {
|
7249
7387
|
var _a;
|
7250
7388
|
if (!el || typeof window === "undefined") {
|
7251
7389
|
return;
|
@@ -7265,10 +7403,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
7265
7403
|
|
7266
7404
|
// lib/use-preview-mode-hotkeys.ts
|
7267
7405
|
init_react_import();
|
7268
|
-
var
|
7406
|
+
var import_react49 = require("react");
|
7269
7407
|
var import_react_hotkeys_hook2 = require("react-hotkeys-hook");
|
7270
7408
|
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7271
|
-
const toggleInteractive = (0,
|
7409
|
+
const toggleInteractive = (0, import_react49.useCallback)(() => {
|
7272
7410
|
dispatch({
|
7273
7411
|
type: "setUi",
|
7274
7412
|
ui: (ui) => ({
|
@@ -7320,7 +7458,7 @@ function Puck({
|
|
7320
7458
|
waitForStyles: true
|
7321
7459
|
}, _iframe);
|
7322
7460
|
useInjectGlobalCss(iframe.enabled);
|
7323
|
-
const [generatedAppState] = (0,
|
7461
|
+
const [generatedAppState] = (0, import_react50.useState)(() => {
|
7324
7462
|
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
7325
7463
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
7326
7464
|
let clientUiState = {};
|
@@ -7392,14 +7530,14 @@ function Puck({
|
|
7392
7530
|
histories,
|
7393
7531
|
index: initialHistoryIndex
|
7394
7532
|
});
|
7395
|
-
const [reducer] = (0,
|
7533
|
+
const [reducer] = (0, import_react50.useState)(
|
7396
7534
|
() => createReducer({
|
7397
7535
|
config,
|
7398
7536
|
record: historyStore.record,
|
7399
7537
|
onAction
|
7400
7538
|
})
|
7401
7539
|
);
|
7402
|
-
const [appState, dispatch] = (0,
|
7540
|
+
const [appState, dispatch] = (0, import_react50.useReducer)(
|
7403
7541
|
reducer,
|
7404
7542
|
flushZones(initialAppState)
|
7405
7543
|
);
|
@@ -7410,14 +7548,14 @@ function Puck({
|
|
7410
7548
|
historyStore,
|
7411
7549
|
iframeEnabled: (_a = _iframe == null ? void 0 : _iframe.enabled) != null ? _a : true
|
7412
7550
|
});
|
7413
|
-
const [menuOpen, setMenuOpen] = (0,
|
7551
|
+
const [menuOpen, setMenuOpen] = (0, import_react50.useState)(false);
|
7414
7552
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7415
7553
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7416
|
-
(0,
|
7554
|
+
(0, import_react50.useEffect)(() => {
|
7417
7555
|
if (onChange) onChange(data);
|
7418
7556
|
}, [data]);
|
7419
7557
|
const rootProps = data.root.props || data.root;
|
7420
|
-
const toggleSidebars = (0,
|
7558
|
+
const toggleSidebars = (0, import_react50.useCallback)(
|
7421
7559
|
(sidebar) => {
|
7422
7560
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7423
7561
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7431,7 +7569,7 @@ function Puck({
|
|
7431
7569
|
},
|
7432
7570
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7433
7571
|
);
|
7434
|
-
(0,
|
7572
|
+
(0, import_react50.useEffect)(() => {
|
7435
7573
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7436
7574
|
dispatch({
|
7437
7575
|
type: "setUi",
|
@@ -7454,7 +7592,7 @@ function Puck({
|
|
7454
7592
|
window.removeEventListener("resize", handleResize);
|
7455
7593
|
};
|
7456
7594
|
}, []);
|
7457
|
-
const defaultHeaderRender = (0,
|
7595
|
+
const defaultHeaderRender = (0, import_react50.useMemo)(() => {
|
7458
7596
|
if (renderHeader) {
|
7459
7597
|
console.warn(
|
7460
7598
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7468,7 +7606,7 @@ function Puck({
|
|
7468
7606
|
}
|
7469
7607
|
return DefaultOverride;
|
7470
7608
|
}, [renderHeader]);
|
7471
|
-
const defaultHeaderActionsRender = (0,
|
7609
|
+
const defaultHeaderActionsRender = (0, import_react50.useMemo)(() => {
|
7472
7610
|
if (renderHeaderActions) {
|
7473
7611
|
console.warn(
|
7474
7612
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -7485,20 +7623,20 @@ function Puck({
|
|
7485
7623
|
overrides,
|
7486
7624
|
plugins
|
7487
7625
|
});
|
7488
|
-
const CustomPuck = (0,
|
7626
|
+
const CustomPuck = (0, import_react50.useMemo)(
|
7489
7627
|
() => loadedOverrides.puck || DefaultOverride,
|
7490
7628
|
[loadedOverrides]
|
7491
7629
|
);
|
7492
|
-
const CustomHeader = (0,
|
7630
|
+
const CustomHeader = (0, import_react50.useMemo)(
|
7493
7631
|
() => loadedOverrides.header || defaultHeaderRender,
|
7494
7632
|
[loadedOverrides]
|
7495
7633
|
);
|
7496
|
-
const CustomHeaderActions = (0,
|
7634
|
+
const CustomHeaderActions = (0, import_react50.useMemo)(
|
7497
7635
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7498
7636
|
[loadedOverrides]
|
7499
7637
|
);
|
7500
|
-
const [mounted, setMounted] = (0,
|
7501
|
-
(0,
|
7638
|
+
const [mounted, setMounted] = (0, import_react50.useState)(false);
|
7639
|
+
(0, import_react50.useEffect)(() => {
|
7502
7640
|
setMounted(true);
|
7503
7641
|
}, []);
|
7504
7642
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|