@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.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,7 +1721,7 @@ 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);
|
@@ -3255,13 +3256,19 @@ var DraggableComponent = ({
|
|
3255
3256
|
}
|
3256
3257
|
}, [ref.current]);
|
3257
3258
|
(0, import_react23.useEffect)(() => {
|
3258
|
-
|
3259
|
-
|
3259
|
+
ctx == null ? void 0 : ctx.registerPath(
|
3260
|
+
id,
|
3261
|
+
{
|
3260
3262
|
index,
|
3261
3263
|
zone: zoneCompound
|
3262
|
-
}
|
3263
|
-
|
3264
|
-
|
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]);
|
3265
3272
|
const CustomActionBar = (0, import_react23.useMemo)(
|
3266
3273
|
() => overrides.actionBar || DefaultActionBar,
|
3267
3274
|
[overrides.actionBar]
|
@@ -3581,9 +3588,20 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3581
3588
|
};
|
3582
3589
|
}
|
3583
3590
|
);
|
3591
|
+
const {
|
3592
|
+
state: {
|
3593
|
+
ui: { isDragging }
|
3594
|
+
}
|
3595
|
+
} = useAppContext();
|
3584
3596
|
const [contentWithPreview, setContentWithPreview] = (0, import_react27.useState)(content);
|
3597
|
+
const [localPreview, setLocalPreview] = (0, import_react27.useState)(
|
3598
|
+
preview
|
3599
|
+
);
|
3585
3600
|
const updateContent = useRenderedCallback(
|
3586
|
-
(content2, preview2) => {
|
3601
|
+
(content2, preview2, isDragging2) => {
|
3602
|
+
if (isDragging2 && !previewExists) {
|
3603
|
+
return;
|
3604
|
+
}
|
3587
3605
|
if (preview2) {
|
3588
3606
|
if (preview2.type === "insert") {
|
3589
3607
|
setContentWithPreview(
|
@@ -3613,13 +3631,14 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3613
3631
|
previewExists ? content2.filter((item) => item.props.id !== draggedItemId) : content2
|
3614
3632
|
);
|
3615
3633
|
}
|
3634
|
+
setLocalPreview(preview2);
|
3616
3635
|
},
|
3617
3636
|
[draggedItemId, previewExists]
|
3618
3637
|
);
|
3619
3638
|
(0, import_react27.useEffect)(() => {
|
3620
|
-
updateContent(content, preview);
|
3621
|
-
}, [content, preview]);
|
3622
|
-
return contentWithPreview;
|
3639
|
+
updateContent(content, preview, isDragging);
|
3640
|
+
}, [content, preview, isDragging]);
|
3641
|
+
return [contentWithPreview, localPreview];
|
3623
3642
|
};
|
3624
3643
|
|
3625
3644
|
// components/DropZone/lib/use-drag-axis.ts
|
@@ -3663,8 +3682,9 @@ var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3663
3682
|
var getClassName17 = get_class_name_factory_default("DropZone", styles_module_default12);
|
3664
3683
|
var getRandomColor = () => `#${Math.floor(Math.random() * 16777215).toString(16)}`;
|
3665
3684
|
var RENDER_DEBUG = false;
|
3685
|
+
var DropZoneEditPure = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneEdit, __spreadValues({}, props));
|
3666
3686
|
var DropZoneEdit = (0, import_react29.forwardRef)(
|
3667
|
-
function
|
3687
|
+
function DropZoneEditInternal({
|
3668
3688
|
zone,
|
3669
3689
|
allow,
|
3670
3690
|
disallow,
|
@@ -3698,8 +3718,7 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3698
3718
|
isDeepestZone,
|
3699
3719
|
inNextDeepestArea,
|
3700
3720
|
draggedComponentType,
|
3701
|
-
userIsDragging
|
3702
|
-
preview
|
3721
|
+
userIsDragging
|
3703
3722
|
} = useContextStore(ZoneStoreContext, (s) => {
|
3704
3723
|
var _a, _b, _c;
|
3705
3724
|
return {
|
@@ -3707,8 +3726,7 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3707
3726
|
inNextDeepestArea: s.nextAreaDepthIndex[areaId || ""],
|
3708
3727
|
draggedItemId: (_b = s.draggedItem) == null ? void 0 : _b.id,
|
3709
3728
|
draggedComponentType: (_c = s.draggedItem) == null ? void 0 : _c.data.componentType,
|
3710
|
-
userIsDragging: !!s.draggedItem
|
3711
|
-
preview: s.previewIndex[zoneCompound]
|
3729
|
+
userIsDragging: !!s.draggedItem
|
3712
3730
|
};
|
3713
3731
|
});
|
3714
3732
|
const { itemSelector } = appContext2.state.ui;
|
@@ -3774,7 +3792,10 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3774
3792
|
if (isEnabled) {
|
3775
3793
|
isEnabled = acceptsTarget(draggedComponentType);
|
3776
3794
|
}
|
3777
|
-
const contentWithPreview = useContentWithPreview(
|
3795
|
+
const [contentWithPreview, preview] = useContentWithPreview(
|
3796
|
+
content,
|
3797
|
+
zoneCompound
|
3798
|
+
);
|
3778
3799
|
const isDropEnabled = isEnabled && (preview ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3779
3800
|
const droppableConfig = {
|
3780
3801
|
id: zoneCompound,
|
@@ -3816,16 +3837,15 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3816
3837
|
},
|
3817
3838
|
"data-testid": `dropzone:${zoneCompound}`,
|
3818
3839
|
"data-puck-dropzone": zoneCompound,
|
3819
|
-
"data-puck-dnd": zoneCompound,
|
3820
3840
|
style: __spreadProps(__spreadValues({}, style), {
|
3821
3841
|
"--min-empty-height": `${minEmptyHeight}px`,
|
3822
|
-
backgroundColor: RENDER_DEBUG ? getRandomColor() : void 0
|
3842
|
+
backgroundColor: RENDER_DEBUG ? getRandomColor() : style == null ? void 0 : style.backgroundColor
|
3823
3843
|
}),
|
3824
3844
|
children: contentWithPreview.map((item, i) => {
|
3825
|
-
var _a, _b, _c, _d, _e;
|
3845
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
3826
3846
|
const componentId = item.props.id;
|
3827
3847
|
const puckProps = {
|
3828
|
-
renderDropZone:
|
3848
|
+
renderDropZone: DropZoneEditPure,
|
3829
3849
|
isEditing: true,
|
3830
3850
|
dragRef: null
|
3831
3851
|
};
|
@@ -3842,13 +3862,13 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3842
3862
|
const componentConfig = config.components[item.type];
|
3843
3863
|
let componentType = item.type;
|
3844
3864
|
let label = (_b = componentConfig == null ? void 0 : componentConfig["label"]) != null ? _b : item.type.toString();
|
3845
|
-
if (item.type === "preview"
|
3865
|
+
if (item.type === "preview") {
|
3846
3866
|
let Preview4 = function() {
|
3847
3867
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DrawerItemInner, { name: label, children: appContext2.overrides.componentItem });
|
3848
3868
|
};
|
3849
3869
|
var Preview3 = Preview4;
|
3850
|
-
componentType = preview.componentType;
|
3851
|
-
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";
|
3852
3872
|
Render2 = Preview4;
|
3853
3873
|
}
|
3854
3874
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
@@ -3863,7 +3883,7 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3863
3883
|
zoneCompound,
|
3864
3884
|
depth: depth + 1,
|
3865
3885
|
index: i,
|
3866
|
-
isLoading: ((
|
3886
|
+
isLoading: ((_g = appContext2.componentState[componentId]) == null ? void 0 : _g.loadingCount) > 0,
|
3867
3887
|
isSelected,
|
3868
3888
|
label,
|
3869
3889
|
isEnabled,
|
@@ -3888,8 +3908,9 @@ var DropZoneEdit = (0, import_react29.forwardRef)(
|
|
3888
3908
|
);
|
3889
3909
|
}
|
3890
3910
|
);
|
3911
|
+
var DropZoneRenderPure = (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneRender, __spreadValues({}, props));
|
3891
3912
|
var DropZoneRender = (0, import_react29.forwardRef)(
|
3892
|
-
function
|
3913
|
+
function DropZoneRenderInternal({ className, style, zone }, ref) {
|
3893
3914
|
const ctx = (0, import_react29.useContext)(dropZoneContext);
|
3894
3915
|
const { data, areaId = "root", config } = ctx || {};
|
3895
3916
|
let zoneCompound = rootDroppableId;
|
@@ -3927,7 +3948,9 @@ var DropZoneRender = (0, import_react29.forwardRef)(
|
|
3927
3948
|
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
3928
3949
|
Component.render,
|
3929
3950
|
__spreadProps(__spreadValues({}, item.props), {
|
3930
|
-
puck: {
|
3951
|
+
puck: {
|
3952
|
+
renderDropZone: DropZoneRenderPure
|
3953
|
+
}
|
3931
3954
|
})
|
3932
3955
|
)
|
3933
3956
|
},
|
@@ -4002,6 +4025,48 @@ var getFrame = () => {
|
|
4002
4025
|
return (frameEl == null ? void 0 : frameEl.ownerDocument) || document;
|
4003
4026
|
};
|
4004
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
|
+
|
4005
4070
|
// lib/dnd/NestedDroppablePlugin.ts
|
4006
4071
|
var depthSort = (candidates) => {
|
4007
4072
|
return candidates.sort((a, b) => {
|
@@ -4031,10 +4096,12 @@ var getZoneId2 = (candidate) => {
|
|
4031
4096
|
}
|
4032
4097
|
return id;
|
4033
4098
|
};
|
4034
|
-
var getPointerCollisions = (position, manager
|
4035
|
-
var _a;
|
4099
|
+
var getPointerCollisions = (position, manager) => {
|
4036
4100
|
const candidates = [];
|
4037
|
-
let elements = ownerDocument.elementsFromPoint(
|
4101
|
+
let elements = position.target.ownerDocument.elementsFromPoint(
|
4102
|
+
position.x,
|
4103
|
+
position.y
|
4104
|
+
);
|
4038
4105
|
const previewFrame = elements.find(
|
4039
4106
|
(el) => el.getAttribute("data-puck-preview")
|
4040
4107
|
);
|
@@ -4043,22 +4110,21 @@ var getPointerCollisions = (position, manager, ownerDocument) => {
|
|
4043
4110
|
elements = [drawer];
|
4044
4111
|
}
|
4045
4112
|
if (previewFrame) {
|
4046
|
-
const
|
4047
|
-
if (
|
4048
|
-
|
4049
|
-
const frame = getFrame();
|
4050
|
-
if (frame) {
|
4051
|
-
const scaleFactor = rect.width / (((_a = iframe.contentWindow) == null ? void 0 : _a.innerWidth) || 1);
|
4052
|
-
elements = frame.elementsFromPoint(
|
4053
|
-
(position.x - rect.left) / scaleFactor,
|
4054
|
-
(position.y - rect.top) / scaleFactor
|
4055
|
-
);
|
4056
|
-
}
|
4113
|
+
const frame = getFrame();
|
4114
|
+
if (frame) {
|
4115
|
+
elements = frame.elementsFromPoint(position.frame.x, position.frame.y);
|
4057
4116
|
}
|
4058
4117
|
}
|
4059
4118
|
if (elements) {
|
4060
4119
|
for (let i = 0; i < elements.length; i++) {
|
4061
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
|
+
}
|
4062
4128
|
const id = element.getAttribute("data-puck-dnd");
|
4063
4129
|
if (id) {
|
4064
4130
|
const droppable = manager.registry.droppables.get(id);
|
@@ -4070,9 +4136,9 @@ var getPointerCollisions = (position, manager, ownerDocument) => {
|
|
4070
4136
|
}
|
4071
4137
|
return candidates;
|
4072
4138
|
};
|
4073
|
-
var findDeepestCandidate = (position, manager
|
4139
|
+
var findDeepestCandidate = (position, manager) => {
|
4074
4140
|
var _a;
|
4075
|
-
const candidates = getPointerCollisions(position, manager
|
4141
|
+
const candidates = getPointerCollisions(position, manager);
|
4076
4142
|
if (candidates.length > 0) {
|
4077
4143
|
const sortedCandidates = depthSort(candidates);
|
4078
4144
|
const draggable = manager.dragOperation.source;
|
@@ -4125,22 +4191,18 @@ var createNestedDroppablePlugin = ({ onChange }, id) => class NestedDroppablePlu
|
|
4125
4191
|
}
|
4126
4192
|
const cleanupEffect = (0, import_state.effects)(() => {
|
4127
4193
|
const handleMove = (event) => {
|
4128
|
-
const
|
4194
|
+
const target = event.originalTarget || event.target;
|
4195
|
+
const position = new GlobalPosition(target, {
|
4129
4196
|
x: event.clientX,
|
4130
4197
|
y: event.clientY
|
4131
|
-
};
|
4132
|
-
const target = event.originalTarget || event.target;
|
4133
|
-
const ownerDocument = target == null ? void 0 : target.ownerDocument;
|
4198
|
+
});
|
4134
4199
|
const elements = document.elementsFromPoint(
|
4135
|
-
|
4136
|
-
|
4200
|
+
position.global.x,
|
4201
|
+
position.global.y
|
4137
4202
|
);
|
4138
4203
|
const overEl = elements.some((el) => el.id === id);
|
4139
4204
|
if (overEl) {
|
4140
|
-
onChange(
|
4141
|
-
findDeepestCandidate(position, manager, ownerDocument),
|
4142
|
-
manager
|
4143
|
-
);
|
4205
|
+
onChange(findDeepestCandidate(position, manager), manager);
|
4144
4206
|
}
|
4145
4207
|
};
|
4146
4208
|
const handleMoveThrottled = throttle(handleMove, 50);
|
@@ -4471,6 +4533,11 @@ var reduceUi = (ui, action) => {
|
|
4471
4533
|
itemSelector: { index: action.sourceIndex + 1, zone: action.sourceZone }
|
4472
4534
|
});
|
4473
4535
|
}
|
4536
|
+
if (action.type === "remove") {
|
4537
|
+
return __spreadProps(__spreadValues({}, ui), {
|
4538
|
+
itemSelector: null
|
4539
|
+
});
|
4540
|
+
}
|
4474
4541
|
return ui;
|
4475
4542
|
};
|
4476
4543
|
|
@@ -4721,6 +4788,9 @@ var _PointerSensor = class _PointerSensor extends import_abstract10.Sensor {
|
|
4721
4788
|
}
|
4722
4789
|
}
|
4723
4790
|
handlePointerUp(event) {
|
4791
|
+
if (!this.source) {
|
4792
|
+
return;
|
4793
|
+
}
|
4724
4794
|
event.preventDefault();
|
4725
4795
|
event.stopPropagation();
|
4726
4796
|
const { status } = this.manager.dragOperation;
|
@@ -4999,27 +5069,33 @@ var DragDropContextClient = ({
|
|
4999
5069
|
const [pathData, setPathData] = (0, import_react31.useState)();
|
5000
5070
|
const dragMode = (0, import_react31.useRef)(null);
|
5001
5071
|
const registerPath = (0, import_react31.useCallback)(
|
5002
|
-
(selector) => {
|
5003
|
-
const item = getItem(selector, data);
|
5004
|
-
if (!item) {
|
5005
|
-
return;
|
5006
|
-
}
|
5072
|
+
(id2, selector, label) => {
|
5007
5073
|
const [area] = getZoneId(selector.zone);
|
5008
5074
|
setPathData((latestPathData = {}) => {
|
5009
5075
|
const parentPathData = latestPathData[area] || { path: [] };
|
5010
5076
|
return __spreadProps(__spreadValues({}, latestPathData), {
|
5011
|
-
[
|
5077
|
+
[id2]: {
|
5012
5078
|
path: [
|
5013
5079
|
...parentPathData.path,
|
5014
5080
|
...selector.zone ? [selector.zone] : []
|
5015
5081
|
],
|
5016
|
-
label
|
5082
|
+
label
|
5017
5083
|
}
|
5018
5084
|
});
|
5019
5085
|
});
|
5020
5086
|
},
|
5021
5087
|
[data, setPathData]
|
5022
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
|
+
);
|
5023
5099
|
const initialSelector = (0, import_react31.useRef)(void 0);
|
5024
5100
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { id, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
5025
5101
|
dragListenerContext.Provider,
|
@@ -5216,6 +5292,7 @@ var DragDropContextClient = ({
|
|
5216
5292
|
areaId: "root",
|
5217
5293
|
depth: 0,
|
5218
5294
|
registerPath,
|
5295
|
+
unregisterPath,
|
5219
5296
|
pathData,
|
5220
5297
|
path: []
|
5221
5298
|
},
|
@@ -5342,7 +5419,7 @@ var Drawer = ({
|
|
5342
5419
|
"Warning: The `direction` prop on Drawer is deprecated and no longer required to achieve multi-directional dragging."
|
5343
5420
|
);
|
5344
5421
|
}
|
5345
|
-
const
|
5422
|
+
const id = (0, import_react32.useId)();
|
5346
5423
|
const { ref } = useDroppableSafe({
|
5347
5424
|
id,
|
5348
5425
|
type: "void",
|
@@ -5364,7 +5441,7 @@ Drawer.Item = DrawerItem;
|
|
5364
5441
|
|
5365
5442
|
// components/Puck/index.tsx
|
5366
5443
|
init_react_import();
|
5367
|
-
var
|
5444
|
+
var import_react50 = require("react");
|
5368
5445
|
|
5369
5446
|
// components/SidebarSection/index.tsx
|
5370
5447
|
init_react_import();
|
@@ -5557,36 +5634,61 @@ init_react_import();
|
|
5557
5634
|
|
5558
5635
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
|
5559
5636
|
init_react_import();
|
5560
|
-
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" };
|
5561
5638
|
|
5562
5639
|
// components/Puck/components/Fields/index.tsx
|
5563
|
-
var
|
5640
|
+
var import_react37 = require("react");
|
5641
|
+
|
5642
|
+
// lib/use-resolved-fields.ts
|
5643
|
+
init_react_import();
|
5644
|
+
var import_react36 = require("react");
|
5564
5645
|
|
5565
5646
|
// lib/use-parent.ts
|
5566
5647
|
init_react_import();
|
5567
5648
|
var import_react34 = require("react");
|
5568
|
-
var
|
5649
|
+
var getParent = (itemSelector, pathData, data) => {
|
5569
5650
|
var _a;
|
5570
|
-
|
5571
|
-
const
|
5572
|
-
const
|
5573
|
-
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);
|
5574
5654
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
5575
|
-
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;
|
5576
5656
|
return parent || null;
|
5577
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
|
+
};
|
5578
5669
|
|
5579
|
-
//
|
5580
|
-
|
5581
|
-
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
|
5582
5689
|
var defaultPageFields = {
|
5583
5690
|
title: { type: "text" }
|
5584
5691
|
};
|
5585
|
-
var DefaultFields = ({
|
5586
|
-
children
|
5587
|
-
}) => {
|
5588
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
5589
|
-
};
|
5590
5692
|
var useResolvedFields = () => {
|
5591
5693
|
var _a, _b;
|
5592
5694
|
const { selectedItem, state, config } = useAppContext();
|
@@ -5594,20 +5696,21 @@ var useResolvedFields = () => {
|
|
5594
5696
|
const { data } = state;
|
5595
5697
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
5596
5698
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
5597
|
-
const defaultFields = (0,
|
5699
|
+
const defaultFields = (0, import_react36.useMemo)(
|
5598
5700
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
5599
5701
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
5600
5702
|
);
|
5601
5703
|
const rootProps = data.root.props || data.root;
|
5602
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
5603
|
-
const [resolvedFields, setResolvedFields] = (0,
|
5604
|
-
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);
|
5605
5708
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5606
5709
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5607
5710
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5608
5711
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5609
5712
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5610
|
-
const resolveFields = (0,
|
5713
|
+
const resolveFields = (0, import_react36.useCallback)(
|
5611
5714
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5612
5715
|
var _a2;
|
5613
5716
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5619,7 +5722,7 @@ var useResolvedFields = () => {
|
|
5619
5722
|
{
|
5620
5723
|
changed,
|
5621
5724
|
fields,
|
5622
|
-
lastFields:
|
5725
|
+
lastFields: lastFields.current,
|
5623
5726
|
lastData,
|
5624
5727
|
appState: state,
|
5625
5728
|
parent
|
@@ -5630,7 +5733,7 @@ var useResolvedFields = () => {
|
|
5630
5733
|
return yield config.root.resolveFields(componentData, {
|
5631
5734
|
changed,
|
5632
5735
|
fields,
|
5633
|
-
lastFields:
|
5736
|
+
lastFields: lastFields.current,
|
5634
5737
|
lastData,
|
5635
5738
|
appState: state,
|
5636
5739
|
parent
|
@@ -5639,26 +5742,56 @@ var useResolvedFields = () => {
|
|
5639
5742
|
return defaultResolveFields(componentData, {
|
5640
5743
|
changed,
|
5641
5744
|
fields,
|
5642
|
-
lastFields:
|
5745
|
+
lastFields: lastFields.current,
|
5643
5746
|
lastData
|
5644
5747
|
});
|
5645
5748
|
}),
|
5646
|
-
[data, config, componentData, selectedItem,
|
5749
|
+
[data, config, componentData, selectedItem, state, parent]
|
5647
5750
|
);
|
5648
|
-
(0,
|
5649
|
-
|
5650
|
-
|
5651
|
-
|
5652
|
-
|
5653
|
-
|
5654
|
-
|
5655
|
-
|
5656
|
-
|
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
|
+
}
|
5657
5763
|
}
|
5658
|
-
|
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
|
+
}, []);
|
5659
5783
|
return [resolvedFields, fieldsLoading];
|
5660
5784
|
};
|
5661
|
-
|
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 }) => {
|
5662
5795
|
var _a, _b;
|
5663
5796
|
const {
|
5664
5797
|
selectedItem,
|
@@ -5676,11 +5809,11 @@ var Fields = () => {
|
|
5676
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;
|
5677
5810
|
const isLoading = fieldsResolving || componentResolving;
|
5678
5811
|
const rootProps = data.root.props || data.root;
|
5679
|
-
const Wrapper = (0,
|
5812
|
+
const Wrapper = (0, import_react37.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
5680
5813
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
5681
5814
|
"form",
|
5682
5815
|
{
|
5683
|
-
className: getClassName21(),
|
5816
|
+
className: getClassName21({ wrapFields }),
|
5684
5817
|
onSubmit: (e) => {
|
5685
5818
|
e.preventDefault();
|
5686
5819
|
},
|
@@ -5756,7 +5889,7 @@ var Fields = () => {
|
|
5756
5889
|
item: selectedItem
|
5757
5890
|
});
|
5758
5891
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
5759
|
-
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)(
|
5760
5893
|
AutoFieldPrivate,
|
5761
5894
|
{
|
5762
5895
|
field,
|
@@ -5765,16 +5898,15 @@ var Fields = () => {
|
|
5765
5898
|
readOnly: !edit || readOnly[fieldName],
|
5766
5899
|
value: selectedItem.props[fieldName],
|
5767
5900
|
onChange
|
5768
|
-
}
|
5769
|
-
|
5770
|
-
);
|
5901
|
+
}
|
5902
|
+
) }, id);
|
5771
5903
|
} else {
|
5772
5904
|
const readOnly = data.root.readOnly || {};
|
5773
5905
|
const { edit } = getPermissions({
|
5774
5906
|
root: true
|
5775
5907
|
});
|
5776
5908
|
const id = `root_${field.type}_${fieldName}`;
|
5777
|
-
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)(
|
5778
5910
|
AutoFieldPrivate,
|
5779
5911
|
{
|
5780
5912
|
field,
|
@@ -5783,9 +5915,8 @@ var Fields = () => {
|
|
5783
5915
|
readOnly: !edit || readOnly[fieldName],
|
5784
5916
|
value: rootProps[fieldName],
|
5785
5917
|
onChange
|
5786
|
-
}
|
5787
|
-
|
5788
|
-
);
|
5918
|
+
}
|
5919
|
+
) }, id);
|
5789
5920
|
}
|
5790
5921
|
}) }),
|
5791
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 }) }) })
|
@@ -5799,7 +5930,7 @@ init_react_import();
|
|
5799
5930
|
|
5800
5931
|
// lib/use-component-list.tsx
|
5801
5932
|
init_react_import();
|
5802
|
-
var
|
5933
|
+
var import_react38 = require("react");
|
5803
5934
|
|
5804
5935
|
// components/ComponentList/index.tsx
|
5805
5936
|
init_react_import();
|
@@ -5866,8 +5997,8 @@ ComponentList.Item = ComponentListItem;
|
|
5866
5997
|
// lib/use-component-list.tsx
|
5867
5998
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
5868
5999
|
var useComponentList = (config, ui) => {
|
5869
|
-
const [componentList, setComponentList] = (0,
|
5870
|
-
(0,
|
6000
|
+
const [componentList, setComponentList] = (0, import_react38.useState)();
|
6001
|
+
(0, import_react38.useEffect)(() => {
|
5871
6002
|
var _a, _b, _c;
|
5872
6003
|
if (Object.keys(ui.componentList).length > 0) {
|
5873
6004
|
const matchedComponents = [];
|
@@ -5936,22 +6067,22 @@ var useComponentList = (config, ui) => {
|
|
5936
6067
|
};
|
5937
6068
|
|
5938
6069
|
// components/Puck/components/Components/index.tsx
|
5939
|
-
var
|
6070
|
+
var import_react39 = require("react");
|
5940
6071
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
5941
6072
|
var Components = () => {
|
5942
6073
|
const { config, state, overrides } = useAppContext();
|
5943
6074
|
const componentList = useComponentList(config, state.ui);
|
5944
|
-
const Wrapper = (0,
|
6075
|
+
const Wrapper = (0, import_react39.useMemo)(() => overrides.components || "div", [overrides]);
|
5945
6076
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
|
5946
6077
|
};
|
5947
6078
|
|
5948
6079
|
// components/Puck/components/Preview/index.tsx
|
5949
6080
|
init_react_import();
|
5950
|
-
var
|
6081
|
+
var import_react41 = require("react");
|
5951
6082
|
|
5952
6083
|
// components/AutoFrame/index.tsx
|
5953
6084
|
init_react_import();
|
5954
|
-
var
|
6085
|
+
var import_react40 = require("react");
|
5955
6086
|
var import_object_hash = __toESM(require("object-hash"));
|
5956
6087
|
var import_react_dom3 = require("react-dom");
|
5957
6088
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
@@ -5997,7 +6128,7 @@ var CopyHostStyles = ({
|
|
5997
6128
|
onStylesLoaded = () => null
|
5998
6129
|
}) => {
|
5999
6130
|
const { document: doc, window: win } = useFrame();
|
6000
|
-
(0,
|
6131
|
+
(0, import_react40.useEffect)(() => {
|
6001
6132
|
if (!win || !doc) {
|
6002
6133
|
return () => {
|
6003
6134
|
};
|
@@ -6156,8 +6287,8 @@ var CopyHostStyles = ({
|
|
6156
6287
|
}, []);
|
6157
6288
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
|
6158
6289
|
};
|
6159
|
-
var autoFrameContext = (0,
|
6160
|
-
var useFrame = () => (0,
|
6290
|
+
var autoFrameContext = (0, import_react40.createContext)({});
|
6291
|
+
var useFrame = () => (0, import_react40.useContext)(autoFrameContext);
|
6161
6292
|
function AutoFrame(_a) {
|
6162
6293
|
var _b = _a, {
|
6163
6294
|
children,
|
@@ -6174,10 +6305,10 @@ function AutoFrame(_a) {
|
|
6174
6305
|
"onStylesLoaded",
|
6175
6306
|
"frameRef"
|
6176
6307
|
]);
|
6177
|
-
const [loaded, setLoaded] = (0,
|
6178
|
-
const [ctx, setCtx] = (0,
|
6179
|
-
const [mountTarget, setMountTarget] = (0,
|
6180
|
-
(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)(() => {
|
6181
6312
|
var _a2;
|
6182
6313
|
if (frameRef.current) {
|
6183
6314
|
setCtx({
|
@@ -6271,7 +6402,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
6271
6402
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
6272
6403
|
var useBubbleIframeEvents = (ref) => {
|
6273
6404
|
const { status } = useAppContext();
|
6274
|
-
(0,
|
6405
|
+
(0, import_react41.useEffect)(() => {
|
6275
6406
|
var _a;
|
6276
6407
|
if (ref.current && status === "READY") {
|
6277
6408
|
const iframe = ref.current;
|
@@ -6310,7 +6441,7 @@ var useBubbleIframeEvents = (ref) => {
|
|
6310
6441
|
};
|
6311
6442
|
var Preview2 = ({ id = "puck-preview" }) => {
|
6312
6443
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
6313
|
-
const Page = (0,
|
6444
|
+
const Page = (0, import_react41.useCallback)(
|
6314
6445
|
(pageProps) => {
|
6315
6446
|
var _a, _b;
|
6316
6447
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -6319,9 +6450,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
|
|
6319
6450
|
},
|
6320
6451
|
[config.root]
|
6321
6452
|
);
|
6322
|
-
const Frame = (0,
|
6453
|
+
const Frame = (0, import_react41.useMemo)(() => overrides.iframe, [overrides]);
|
6323
6454
|
const rootProps = state.data.root.props || state.data.root;
|
6324
|
-
const ref = (0,
|
6455
|
+
const ref = (0, import_react41.useRef)(null);
|
6325
6456
|
useBubbleIframeEvents(ref);
|
6326
6457
|
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
6327
6458
|
Page,
|
@@ -6418,7 +6549,7 @@ var scrollIntoView = (el) => {
|
|
6418
6549
|
};
|
6419
6550
|
|
6420
6551
|
// components/LayerTree/index.tsx
|
6421
|
-
var
|
6552
|
+
var import_react42 = require("react");
|
6422
6553
|
|
6423
6554
|
// lib/is-child-of-zone.ts
|
6424
6555
|
init_react_import();
|
@@ -6464,7 +6595,7 @@ var LayerTree = ({
|
|
6464
6595
|
label
|
6465
6596
|
}) => {
|
6466
6597
|
const zones = data.zones || {};
|
6467
|
-
const ctx = (0,
|
6598
|
+
const ctx = (0, import_react42.useContext)(dropZoneContext);
|
6468
6599
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
6469
6600
|
label && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
6470
6601
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Layers, { size: "16" }) }),
|
@@ -6571,13 +6702,13 @@ var LayerTree = ({
|
|
6571
6702
|
};
|
6572
6703
|
|
6573
6704
|
// components/Puck/components/Outline/index.tsx
|
6574
|
-
var
|
6705
|
+
var import_react43 = require("react");
|
6575
6706
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
6576
6707
|
var Outline = () => {
|
6577
6708
|
const { dispatch, state, overrides, config } = useAppContext();
|
6578
6709
|
const { data, ui } = state;
|
6579
6710
|
const { itemSelector } = ui;
|
6580
|
-
const setItemSelector = (0,
|
6711
|
+
const setItemSelector = (0, import_react43.useCallback)(
|
6581
6712
|
(newItemSelector) => {
|
6582
6713
|
dispatch({
|
6583
6714
|
type: "setUi",
|
@@ -6586,7 +6717,7 @@ var Outline = () => {
|
|
6586
6717
|
},
|
6587
6718
|
[]
|
6588
6719
|
);
|
6589
|
-
const Wrapper = (0,
|
6720
|
+
const Wrapper = (0, import_react43.useMemo)(() => overrides.outline || "div", [overrides]);
|
6590
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: [
|
6591
6722
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
6592
6723
|
LayerTree,
|
@@ -6700,19 +6831,19 @@ function usePuckHistory({
|
|
6700
6831
|
|
6701
6832
|
// lib/use-history-store.ts
|
6702
6833
|
init_react_import();
|
6703
|
-
var
|
6834
|
+
var import_react44 = require("react");
|
6704
6835
|
var import_use_debounce3 = require("use-debounce");
|
6705
6836
|
var EMPTY_HISTORY_INDEX = 0;
|
6706
6837
|
function useHistoryStore(initialHistory) {
|
6707
6838
|
var _a, _b;
|
6708
|
-
const [histories, setHistories] = (0,
|
6839
|
+
const [histories, setHistories] = (0, import_react44.useState)(
|
6709
6840
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
6710
6841
|
);
|
6711
6842
|
const updateHistories = (histories2) => {
|
6712
6843
|
setHistories(histories2);
|
6713
6844
|
setIndex(histories2.length - 1);
|
6714
6845
|
};
|
6715
|
-
const [index, setIndex] = (0,
|
6846
|
+
const [index, setIndex] = (0, import_react44.useState)(
|
6716
6847
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
6717
6848
|
);
|
6718
6849
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -6872,11 +7003,11 @@ var getBox = function getBox2(el) {
|
|
6872
7003
|
};
|
6873
7004
|
|
6874
7005
|
// components/Puck/components/Canvas/index.tsx
|
6875
|
-
var
|
7006
|
+
var import_react46 = require("react");
|
6876
7007
|
|
6877
7008
|
// components/ViewportControls/index.tsx
|
6878
7009
|
init_react_import();
|
6879
|
-
var
|
7010
|
+
var import_react45 = require("react");
|
6880
7011
|
|
6881
7012
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6882
7013
|
init_react_import();
|
@@ -6899,8 +7030,8 @@ var ViewportButton = ({
|
|
6899
7030
|
onClick
|
6900
7031
|
}) => {
|
6901
7032
|
const { state } = useAppContext();
|
6902
|
-
const [isActive, setIsActive] = (0,
|
6903
|
-
(0,
|
7033
|
+
const [isActive, setIsActive] = (0, import_react45.useState)(false);
|
7034
|
+
(0, import_react45.useEffect)(() => {
|
6904
7035
|
setIsActive(width === state.ui.viewports.current.width);
|
6905
7036
|
}, [width, state.ui.viewports.current.width]);
|
6906
7037
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
@@ -6936,7 +7067,7 @@ var ViewportControls = ({
|
|
6936
7067
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6937
7068
|
(option) => option.value === autoZoom
|
6938
7069
|
);
|
6939
|
-
const zoomOptions = (0,
|
7070
|
+
const zoomOptions = (0, import_react45.useMemo)(
|
6940
7071
|
() => [
|
6941
7072
|
...defaultZoomOptions,
|
6942
7073
|
...defaultsContainAutoZoom ? [] : [
|
@@ -7059,17 +7190,17 @@ var Canvas = () => {
|
|
7059
7190
|
const { status, iframe } = useAppContext();
|
7060
7191
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
7061
7192
|
const { ui } = state;
|
7062
|
-
const frameRef = (0,
|
7063
|
-
const [showTransition, setShowTransition] = (0,
|
7064
|
-
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)(() => {
|
7065
7196
|
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
|
7066
7197
|
return PuckDefault;
|
7067
7198
|
}, []);
|
7068
|
-
const CustomPreview = (0,
|
7199
|
+
const CustomPreview = (0, import_react46.useMemo)(
|
7069
7200
|
() => overrides.preview || defaultRender,
|
7070
7201
|
[overrides]
|
7071
7202
|
);
|
7072
|
-
const getFrameDimensions = (0,
|
7203
|
+
const getFrameDimensions = (0, import_react46.useCallback)(() => {
|
7073
7204
|
if (frameRef.current) {
|
7074
7205
|
const frame = frameRef.current;
|
7075
7206
|
const box = getBox(frame);
|
@@ -7077,7 +7208,7 @@ var Canvas = () => {
|
|
7077
7208
|
}
|
7078
7209
|
return { width: 0, height: 0 };
|
7079
7210
|
}, [frameRef]);
|
7080
|
-
const resetAutoZoom = (0,
|
7211
|
+
const resetAutoZoom = (0, import_react46.useCallback)(
|
7081
7212
|
(ui2 = state.ui) => {
|
7082
7213
|
if (frameRef.current) {
|
7083
7214
|
setZoomConfig(
|
@@ -7087,11 +7218,11 @@ var Canvas = () => {
|
|
7087
7218
|
},
|
7088
7219
|
[frameRef, zoomConfig, state.ui]
|
7089
7220
|
);
|
7090
|
-
(0,
|
7221
|
+
(0, import_react46.useEffect)(() => {
|
7091
7222
|
setShowTransition(false);
|
7092
7223
|
resetAutoZoom();
|
7093
7224
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
7094
|
-
(0,
|
7225
|
+
(0, import_react46.useEffect)(() => {
|
7095
7226
|
const { height: frameHeight } = getFrameDimensions();
|
7096
7227
|
if (ui.viewports.current.height === "auto") {
|
7097
7228
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -7099,13 +7230,13 @@ var Canvas = () => {
|
|
7099
7230
|
}));
|
7100
7231
|
}
|
7101
7232
|
}, [zoomConfig.zoom]);
|
7102
|
-
(0,
|
7233
|
+
(0, import_react46.useEffect)(() => {
|
7103
7234
|
if (ZOOM_ON_CHANGE) {
|
7104
7235
|
setShowTransition(true);
|
7105
7236
|
resetAutoZoom(ui);
|
7106
7237
|
}
|
7107
7238
|
}, [ui.viewports.current.width]);
|
7108
|
-
(0,
|
7239
|
+
(0, import_react46.useEffect)(() => {
|
7109
7240
|
const cb = () => {
|
7110
7241
|
setShowTransition(false);
|
7111
7242
|
resetAutoZoom();
|
@@ -7115,8 +7246,8 @@ var Canvas = () => {
|
|
7115
7246
|
window.removeEventListener("resize", cb);
|
7116
7247
|
};
|
7117
7248
|
}, []);
|
7118
|
-
const [showLoader, setShowLoader] = (0,
|
7119
|
-
(0,
|
7249
|
+
const [showLoader, setShowLoader] = (0, import_react46.useState)(false);
|
7250
|
+
(0, import_react46.useEffect)(() => {
|
7120
7251
|
setTimeout(() => {
|
7121
7252
|
setShowLoader(true);
|
7122
7253
|
}, 500);
|
@@ -7194,7 +7325,7 @@ var Canvas = () => {
|
|
7194
7325
|
|
7195
7326
|
// lib/use-loaded-overrides.ts
|
7196
7327
|
init_react_import();
|
7197
|
-
var
|
7328
|
+
var import_react47 = require("react");
|
7198
7329
|
|
7199
7330
|
// lib/load-overrides.ts
|
7200
7331
|
init_react_import();
|
@@ -7233,7 +7364,7 @@ var useLoadedOverrides = ({
|
|
7233
7364
|
overrides,
|
7234
7365
|
plugins
|
7235
7366
|
}) => {
|
7236
|
-
return (0,
|
7367
|
+
return (0, import_react47.useMemo)(() => {
|
7237
7368
|
return loadOverrides({ overrides, plugins });
|
7238
7369
|
}, [plugins, overrides]);
|
7239
7370
|
};
|
@@ -7245,14 +7376,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime38
|
|
7245
7376
|
|
7246
7377
|
// lib/use-inject-css.ts
|
7247
7378
|
init_react_import();
|
7248
|
-
var
|
7379
|
+
var import_react48 = require("react");
|
7249
7380
|
var styles = ``;
|
7250
7381
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
7251
|
-
const [el, setEl] = (0,
|
7252
|
-
(0,
|
7382
|
+
const [el, setEl] = (0, import_react48.useState)();
|
7383
|
+
(0, import_react48.useEffect)(() => {
|
7253
7384
|
setEl(document.createElement("style"));
|
7254
7385
|
}, []);
|
7255
|
-
(0,
|
7386
|
+
(0, import_react48.useEffect)(() => {
|
7256
7387
|
var _a;
|
7257
7388
|
if (!el || typeof window === "undefined") {
|
7258
7389
|
return;
|
@@ -7272,10 +7403,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
7272
7403
|
|
7273
7404
|
// lib/use-preview-mode-hotkeys.ts
|
7274
7405
|
init_react_import();
|
7275
|
-
var
|
7406
|
+
var import_react49 = require("react");
|
7276
7407
|
var import_react_hotkeys_hook2 = require("react-hotkeys-hook");
|
7277
7408
|
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7278
|
-
const toggleInteractive = (0,
|
7409
|
+
const toggleInteractive = (0, import_react49.useCallback)(() => {
|
7279
7410
|
dispatch({
|
7280
7411
|
type: "setUi",
|
7281
7412
|
ui: (ui) => ({
|
@@ -7327,7 +7458,7 @@ function Puck({
|
|
7327
7458
|
waitForStyles: true
|
7328
7459
|
}, _iframe);
|
7329
7460
|
useInjectGlobalCss(iframe.enabled);
|
7330
|
-
const [generatedAppState] = (0,
|
7461
|
+
const [generatedAppState] = (0, import_react50.useState)(() => {
|
7331
7462
|
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
7332
7463
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
7333
7464
|
let clientUiState = {};
|
@@ -7399,14 +7530,14 @@ function Puck({
|
|
7399
7530
|
histories,
|
7400
7531
|
index: initialHistoryIndex
|
7401
7532
|
});
|
7402
|
-
const [reducer] = (0,
|
7533
|
+
const [reducer] = (0, import_react50.useState)(
|
7403
7534
|
() => createReducer({
|
7404
7535
|
config,
|
7405
7536
|
record: historyStore.record,
|
7406
7537
|
onAction
|
7407
7538
|
})
|
7408
7539
|
);
|
7409
|
-
const [appState, dispatch] = (0,
|
7540
|
+
const [appState, dispatch] = (0, import_react50.useReducer)(
|
7410
7541
|
reducer,
|
7411
7542
|
flushZones(initialAppState)
|
7412
7543
|
);
|
@@ -7417,14 +7548,14 @@ function Puck({
|
|
7417
7548
|
historyStore,
|
7418
7549
|
iframeEnabled: (_a = _iframe == null ? void 0 : _iframe.enabled) != null ? _a : true
|
7419
7550
|
});
|
7420
|
-
const [menuOpen, setMenuOpen] = (0,
|
7551
|
+
const [menuOpen, setMenuOpen] = (0, import_react50.useState)(false);
|
7421
7552
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7422
7553
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7423
|
-
(0,
|
7554
|
+
(0, import_react50.useEffect)(() => {
|
7424
7555
|
if (onChange) onChange(data);
|
7425
7556
|
}, [data]);
|
7426
7557
|
const rootProps = data.root.props || data.root;
|
7427
|
-
const toggleSidebars = (0,
|
7558
|
+
const toggleSidebars = (0, import_react50.useCallback)(
|
7428
7559
|
(sidebar) => {
|
7429
7560
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7430
7561
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7438,7 +7569,7 @@ function Puck({
|
|
7438
7569
|
},
|
7439
7570
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7440
7571
|
);
|
7441
|
-
(0,
|
7572
|
+
(0, import_react50.useEffect)(() => {
|
7442
7573
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7443
7574
|
dispatch({
|
7444
7575
|
type: "setUi",
|
@@ -7461,7 +7592,7 @@ function Puck({
|
|
7461
7592
|
window.removeEventListener("resize", handleResize);
|
7462
7593
|
};
|
7463
7594
|
}, []);
|
7464
|
-
const defaultHeaderRender = (0,
|
7595
|
+
const defaultHeaderRender = (0, import_react50.useMemo)(() => {
|
7465
7596
|
if (renderHeader) {
|
7466
7597
|
console.warn(
|
7467
7598
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7475,7 +7606,7 @@ function Puck({
|
|
7475
7606
|
}
|
7476
7607
|
return DefaultOverride;
|
7477
7608
|
}, [renderHeader]);
|
7478
|
-
const defaultHeaderActionsRender = (0,
|
7609
|
+
const defaultHeaderActionsRender = (0, import_react50.useMemo)(() => {
|
7479
7610
|
if (renderHeaderActions) {
|
7480
7611
|
console.warn(
|
7481
7612
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -7492,20 +7623,20 @@ function Puck({
|
|
7492
7623
|
overrides,
|
7493
7624
|
plugins
|
7494
7625
|
});
|
7495
|
-
const CustomPuck = (0,
|
7626
|
+
const CustomPuck = (0, import_react50.useMemo)(
|
7496
7627
|
() => loadedOverrides.puck || DefaultOverride,
|
7497
7628
|
[loadedOverrides]
|
7498
7629
|
);
|
7499
|
-
const CustomHeader = (0,
|
7630
|
+
const CustomHeader = (0, import_react50.useMemo)(
|
7500
7631
|
() => loadedOverrides.header || defaultHeaderRender,
|
7501
7632
|
[loadedOverrides]
|
7502
7633
|
);
|
7503
|
-
const CustomHeaderActions = (0,
|
7634
|
+
const CustomHeaderActions = (0, import_react50.useMemo)(
|
7504
7635
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7505
7636
|
[loadedOverrides]
|
7506
7637
|
);
|
7507
|
-
const [mounted, setMounted] = (0,
|
7508
|
-
(0,
|
7638
|
+
const [mounted, setMounted] = (0, import_react50.useState)(false);
|
7639
|
+
(0, import_react50.useEffect)(() => {
|
7509
7640
|
setMounted(true);
|
7510
7641
|
}, []);
|
7511
7642
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|