@measured/puck 0.18.0-canary.01d9695 → 0.18.0-canary.057e23b
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 +44 -47
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +163 -118
- package/dist/index.mjs +145 -100
- 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");
|
@@ -4507,6 +4507,11 @@ var reduceUi = (ui, action) => {
|
|
4507
4507
|
itemSelector: { index: action.sourceIndex + 1, zone: action.sourceZone }
|
4508
4508
|
});
|
4509
4509
|
}
|
4510
|
+
if (action.type === "remove") {
|
4511
|
+
return __spreadProps(__spreadValues({}, ui), {
|
4512
|
+
itemSelector: null
|
4513
|
+
});
|
4514
|
+
}
|
4510
4515
|
return ui;
|
4511
4516
|
};
|
4512
4517
|
|
@@ -5403,7 +5408,7 @@ Drawer.Item = DrawerItem;
|
|
5403
5408
|
|
5404
5409
|
// components/Puck/index.tsx
|
5405
5410
|
init_react_import();
|
5406
|
-
var
|
5411
|
+
var import_react50 = require("react");
|
5407
5412
|
|
5408
5413
|
// components/SidebarSection/index.tsx
|
5409
5414
|
init_react_import();
|
@@ -5596,36 +5601,61 @@ init_react_import();
|
|
5596
5601
|
|
5597
5602
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
|
5598
5603
|
init_react_import();
|
5599
|
-
var styles_module_default16 = { "PuckFields": "
|
5604
|
+
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" };
|
5600
5605
|
|
5601
5606
|
// components/Puck/components/Fields/index.tsx
|
5602
|
-
var
|
5607
|
+
var import_react37 = require("react");
|
5608
|
+
|
5609
|
+
// lib/use-resolved-fields.ts
|
5610
|
+
init_react_import();
|
5611
|
+
var import_react36 = require("react");
|
5603
5612
|
|
5604
5613
|
// lib/use-parent.ts
|
5605
5614
|
init_react_import();
|
5606
5615
|
var import_react34 = require("react");
|
5607
|
-
var
|
5616
|
+
var getParent = (itemSelector, pathData, data) => {
|
5608
5617
|
var _a;
|
5609
|
-
|
5610
|
-
const
|
5611
|
-
const
|
5612
|
-
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
5618
|
+
if (!itemSelector) return null;
|
5619
|
+
const item = getItem(itemSelector, data);
|
5620
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, data);
|
5613
5621
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
5614
|
-
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector,
|
5622
|
+
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, data)) != null ? _a : null : null;
|
5615
5623
|
return parent || null;
|
5616
5624
|
};
|
5625
|
+
var useGetParent = () => {
|
5626
|
+
const { state } = useAppContext();
|
5627
|
+
const { pathData } = (0, import_react34.useContext)(dropZoneContext) || {};
|
5628
|
+
return (0, import_react34.useCallback)(
|
5629
|
+
() => getParent(state.ui.itemSelector, pathData, state.data),
|
5630
|
+
[state.ui.itemSelector, pathData, state.data]
|
5631
|
+
);
|
5632
|
+
};
|
5633
|
+
var useParent = () => {
|
5634
|
+
return useGetParent()();
|
5635
|
+
};
|
5617
5636
|
|
5618
|
-
//
|
5619
|
-
|
5620
|
-
var
|
5637
|
+
// lib/use-on-value-change.ts
|
5638
|
+
init_react_import();
|
5639
|
+
var import_react35 = require("react");
|
5640
|
+
function useOnValueChange(value, onChange, compare = Object.is, deps = []) {
|
5641
|
+
const tracked = (0, import_react35.useRef)(value);
|
5642
|
+
(0, import_react35.useEffect)(() => {
|
5643
|
+
const oldValue = tracked.current;
|
5644
|
+
if (!compare(value, oldValue)) {
|
5645
|
+
tracked.current = value;
|
5646
|
+
onChange(value, oldValue);
|
5647
|
+
}
|
5648
|
+
}, [onChange, compare, value, ...deps]);
|
5649
|
+
}
|
5650
|
+
|
5651
|
+
// lib/selector-is.ts
|
5652
|
+
init_react_import();
|
5653
|
+
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);
|
5654
|
+
|
5655
|
+
// lib/use-resolved-fields.ts
|
5621
5656
|
var defaultPageFields = {
|
5622
5657
|
title: { type: "text" }
|
5623
5658
|
};
|
5624
|
-
var DefaultFields = ({
|
5625
|
-
children
|
5626
|
-
}) => {
|
5627
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
5628
|
-
};
|
5629
5659
|
var useResolvedFields = () => {
|
5630
5660
|
var _a, _b;
|
5631
5661
|
const { selectedItem, state, config } = useAppContext();
|
@@ -5633,20 +5663,21 @@ var useResolvedFields = () => {
|
|
5633
5663
|
const { data } = state;
|
5634
5664
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
5635
5665
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
5636
|
-
const defaultFields = (0,
|
5666
|
+
const defaultFields = (0, import_react36.useMemo)(
|
5637
5667
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
5638
5668
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
5639
5669
|
);
|
5640
5670
|
const rootProps = data.root.props || data.root;
|
5641
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
5642
|
-
const [resolvedFields, setResolvedFields] = (0,
|
5643
|
-
const [fieldsLoading, setFieldsLoading] = (0,
|
5671
|
+
const [lastSelectedData, setLastSelectedData] = (0, import_react36.useState)({});
|
5672
|
+
const [resolvedFields, setResolvedFields] = (0, import_react36.useState)(defaultFields);
|
5673
|
+
const [fieldsLoading, setFieldsLoading] = (0, import_react36.useState)(false);
|
5674
|
+
const lastFields = (0, import_react36.useRef)(defaultFields);
|
5644
5675
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5645
5676
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5646
5677
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5647
5678
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5648
5679
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5649
|
-
const resolveFields = (0,
|
5680
|
+
const resolveFields = (0, import_react36.useCallback)(
|
5650
5681
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5651
5682
|
var _a2;
|
5652
5683
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5658,7 +5689,7 @@ var useResolvedFields = () => {
|
|
5658
5689
|
{
|
5659
5690
|
changed,
|
5660
5691
|
fields,
|
5661
|
-
lastFields:
|
5692
|
+
lastFields: lastFields.current,
|
5662
5693
|
lastData,
|
5663
5694
|
appState: state,
|
5664
5695
|
parent
|
@@ -5669,7 +5700,7 @@ var useResolvedFields = () => {
|
|
5669
5700
|
return yield config.root.resolveFields(componentData, {
|
5670
5701
|
changed,
|
5671
5702
|
fields,
|
5672
|
-
lastFields:
|
5703
|
+
lastFields: lastFields.current,
|
5673
5704
|
lastData,
|
5674
5705
|
appState: state,
|
5675
5706
|
parent
|
@@ -5678,40 +5709,56 @@ var useResolvedFields = () => {
|
|
5678
5709
|
return defaultResolveFields(componentData, {
|
5679
5710
|
changed,
|
5680
5711
|
fields,
|
5681
|
-
lastFields:
|
5712
|
+
lastFields: lastFields.current,
|
5682
5713
|
lastData
|
5683
5714
|
});
|
5684
5715
|
}),
|
5685
|
-
[data, config, componentData, selectedItem,
|
5716
|
+
[data, config, componentData, selectedItem, state, parent]
|
5686
5717
|
);
|
5687
|
-
const
|
5688
|
-
(0, import_react35.useEffect)(() => {
|
5689
|
-
setHasParent(!!parent);
|
5690
|
-
}, [parent]);
|
5691
|
-
(0, import_react35.useEffect)(() => {
|
5718
|
+
const triggerResolver = (0, import_react36.useCallback)(() => {
|
5692
5719
|
var _a2, _b2;
|
5693
|
-
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" ||
|
5720
|
+
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" || parent) {
|
5694
5721
|
if (hasResolver) {
|
5695
5722
|
setFieldsLoading(true);
|
5696
5723
|
resolveFields(defaultFields).then((fields) => {
|
5697
5724
|
setResolvedFields(fields || {});
|
5725
|
+
lastFields.current = fields;
|
5698
5726
|
setFieldsLoading(false);
|
5699
5727
|
});
|
5700
|
-
|
5701
|
-
setResolvedFields(defaultFields);
|
5728
|
+
return;
|
5702
5729
|
}
|
5703
5730
|
}
|
5704
|
-
|
5705
|
-
|
5706
|
-
|
5731
|
+
setResolvedFields(defaultFields);
|
5732
|
+
}, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
|
5733
|
+
useOnValueChange(
|
5707
5734
|
state.ui.itemSelector,
|
5708
|
-
|
5709
|
-
|
5710
|
-
|
5711
|
-
|
5735
|
+
() => {
|
5736
|
+
lastFields.current = defaultFields;
|
5737
|
+
},
|
5738
|
+
selectorIs
|
5739
|
+
);
|
5740
|
+
useOnValueChange(
|
5741
|
+
{ data, parent, itemSelector: state.ui.itemSelector },
|
5742
|
+
() => {
|
5743
|
+
triggerResolver();
|
5744
|
+
},
|
5745
|
+
(a, b) => JSON.stringify(a) === JSON.stringify(b)
|
5746
|
+
);
|
5747
|
+
(0, import_react36.useEffect)(() => {
|
5748
|
+
triggerResolver();
|
5749
|
+
}, []);
|
5712
5750
|
return [resolvedFields, fieldsLoading];
|
5713
5751
|
};
|
5714
|
-
|
5752
|
+
|
5753
|
+
// components/Puck/components/Fields/index.tsx
|
5754
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
5755
|
+
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
5756
|
+
var DefaultFields = ({
|
5757
|
+
children
|
5758
|
+
}) => {
|
5759
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
|
5760
|
+
};
|
5761
|
+
var Fields = ({ wrapFields = true }) => {
|
5715
5762
|
var _a, _b;
|
5716
5763
|
const {
|
5717
5764
|
selectedItem,
|
@@ -5729,11 +5776,11 @@ var Fields = () => {
|
|
5729
5776
|
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;
|
5730
5777
|
const isLoading = fieldsResolving || componentResolving;
|
5731
5778
|
const rootProps = data.root.props || data.root;
|
5732
|
-
const Wrapper = (0,
|
5779
|
+
const Wrapper = (0, import_react37.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
5733
5780
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
5734
5781
|
"form",
|
5735
5782
|
{
|
5736
|
-
className: getClassName21(),
|
5783
|
+
className: getClassName21({ wrapFields }),
|
5737
5784
|
onSubmit: (e) => {
|
5738
5785
|
e.preventDefault();
|
5739
5786
|
},
|
@@ -5809,7 +5856,7 @@ var Fields = () => {
|
|
5809
5856
|
item: selectedItem
|
5810
5857
|
});
|
5811
5858
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
5812
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5859
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("field"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5813
5860
|
AutoFieldPrivate,
|
5814
5861
|
{
|
5815
5862
|
field,
|
@@ -5818,16 +5865,15 @@ var Fields = () => {
|
|
5818
5865
|
readOnly: !edit || readOnly[fieldName],
|
5819
5866
|
value: selectedItem.props[fieldName],
|
5820
5867
|
onChange
|
5821
|
-
}
|
5822
|
-
|
5823
|
-
);
|
5868
|
+
}
|
5869
|
+
) }, id);
|
5824
5870
|
} else {
|
5825
5871
|
const readOnly = data.root.readOnly || {};
|
5826
5872
|
const { edit } = getPermissions({
|
5827
5873
|
root: true
|
5828
5874
|
});
|
5829
5875
|
const id = `root_${field.type}_${fieldName}`;
|
5830
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("field"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
5831
5877
|
AutoFieldPrivate,
|
5832
5878
|
{
|
5833
5879
|
field,
|
@@ -5836,9 +5882,8 @@ var Fields = () => {
|
|
5836
5882
|
readOnly: !edit || readOnly[fieldName],
|
5837
5883
|
value: rootProps[fieldName],
|
5838
5884
|
onChange
|
5839
|
-
}
|
5840
|
-
|
5841
|
-
);
|
5885
|
+
}
|
5886
|
+
) }, id);
|
5842
5887
|
}
|
5843
5888
|
}) }),
|
5844
5889
|
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 }) }) })
|
@@ -5852,7 +5897,7 @@ init_react_import();
|
|
5852
5897
|
|
5853
5898
|
// lib/use-component-list.tsx
|
5854
5899
|
init_react_import();
|
5855
|
-
var
|
5900
|
+
var import_react38 = require("react");
|
5856
5901
|
|
5857
5902
|
// components/ComponentList/index.tsx
|
5858
5903
|
init_react_import();
|
@@ -5919,8 +5964,8 @@ ComponentList.Item = ComponentListItem;
|
|
5919
5964
|
// lib/use-component-list.tsx
|
5920
5965
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
5921
5966
|
var useComponentList = (config, ui) => {
|
5922
|
-
const [componentList, setComponentList] = (0,
|
5923
|
-
(0,
|
5967
|
+
const [componentList, setComponentList] = (0, import_react38.useState)();
|
5968
|
+
(0, import_react38.useEffect)(() => {
|
5924
5969
|
var _a, _b, _c;
|
5925
5970
|
if (Object.keys(ui.componentList).length > 0) {
|
5926
5971
|
const matchedComponents = [];
|
@@ -5989,22 +6034,22 @@ var useComponentList = (config, ui) => {
|
|
5989
6034
|
};
|
5990
6035
|
|
5991
6036
|
// components/Puck/components/Components/index.tsx
|
5992
|
-
var
|
6037
|
+
var import_react39 = require("react");
|
5993
6038
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
5994
6039
|
var Components = () => {
|
5995
6040
|
const { config, state, overrides } = useAppContext();
|
5996
6041
|
const componentList = useComponentList(config, state.ui);
|
5997
|
-
const Wrapper = (0,
|
6042
|
+
const Wrapper = (0, import_react39.useMemo)(() => overrides.components || "div", [overrides]);
|
5998
6043
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
|
5999
6044
|
};
|
6000
6045
|
|
6001
6046
|
// components/Puck/components/Preview/index.tsx
|
6002
6047
|
init_react_import();
|
6003
|
-
var
|
6048
|
+
var import_react41 = require("react");
|
6004
6049
|
|
6005
6050
|
// components/AutoFrame/index.tsx
|
6006
6051
|
init_react_import();
|
6007
|
-
var
|
6052
|
+
var import_react40 = require("react");
|
6008
6053
|
var import_object_hash = __toESM(require("object-hash"));
|
6009
6054
|
var import_react_dom3 = require("react-dom");
|
6010
6055
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
@@ -6050,7 +6095,7 @@ var CopyHostStyles = ({
|
|
6050
6095
|
onStylesLoaded = () => null
|
6051
6096
|
}) => {
|
6052
6097
|
const { document: doc, window: win } = useFrame();
|
6053
|
-
(0,
|
6098
|
+
(0, import_react40.useEffect)(() => {
|
6054
6099
|
if (!win || !doc) {
|
6055
6100
|
return () => {
|
6056
6101
|
};
|
@@ -6209,8 +6254,8 @@ var CopyHostStyles = ({
|
|
6209
6254
|
}, []);
|
6210
6255
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
|
6211
6256
|
};
|
6212
|
-
var autoFrameContext = (0,
|
6213
|
-
var useFrame = () => (0,
|
6257
|
+
var autoFrameContext = (0, import_react40.createContext)({});
|
6258
|
+
var useFrame = () => (0, import_react40.useContext)(autoFrameContext);
|
6214
6259
|
function AutoFrame(_a) {
|
6215
6260
|
var _b = _a, {
|
6216
6261
|
children,
|
@@ -6227,10 +6272,10 @@ function AutoFrame(_a) {
|
|
6227
6272
|
"onStylesLoaded",
|
6228
6273
|
"frameRef"
|
6229
6274
|
]);
|
6230
|
-
const [loaded, setLoaded] = (0,
|
6231
|
-
const [ctx, setCtx] = (0,
|
6232
|
-
const [mountTarget, setMountTarget] = (0,
|
6233
|
-
(0,
|
6275
|
+
const [loaded, setLoaded] = (0, import_react40.useState)(false);
|
6276
|
+
const [ctx, setCtx] = (0, import_react40.useState)({});
|
6277
|
+
const [mountTarget, setMountTarget] = (0, import_react40.useState)();
|
6278
|
+
(0, import_react40.useEffect)(() => {
|
6234
6279
|
var _a2;
|
6235
6280
|
if (frameRef.current) {
|
6236
6281
|
setCtx({
|
@@ -6324,7 +6369,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
6324
6369
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
6325
6370
|
var useBubbleIframeEvents = (ref) => {
|
6326
6371
|
const { status } = useAppContext();
|
6327
|
-
(0,
|
6372
|
+
(0, import_react41.useEffect)(() => {
|
6328
6373
|
var _a;
|
6329
6374
|
if (ref.current && status === "READY") {
|
6330
6375
|
const iframe = ref.current;
|
@@ -6363,7 +6408,7 @@ var useBubbleIframeEvents = (ref) => {
|
|
6363
6408
|
};
|
6364
6409
|
var Preview2 = ({ id = "puck-preview" }) => {
|
6365
6410
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
6366
|
-
const Page = (0,
|
6411
|
+
const Page = (0, import_react41.useCallback)(
|
6367
6412
|
(pageProps) => {
|
6368
6413
|
var _a, _b;
|
6369
6414
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -6372,9 +6417,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
|
|
6372
6417
|
},
|
6373
6418
|
[config.root]
|
6374
6419
|
);
|
6375
|
-
const Frame = (0,
|
6420
|
+
const Frame = (0, import_react41.useMemo)(() => overrides.iframe, [overrides]);
|
6376
6421
|
const rootProps = state.data.root.props || state.data.root;
|
6377
|
-
const ref = (0,
|
6422
|
+
const ref = (0, import_react41.useRef)(null);
|
6378
6423
|
useBubbleIframeEvents(ref);
|
6379
6424
|
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
6380
6425
|
Page,
|
@@ -6471,7 +6516,7 @@ var scrollIntoView = (el) => {
|
|
6471
6516
|
};
|
6472
6517
|
|
6473
6518
|
// components/LayerTree/index.tsx
|
6474
|
-
var
|
6519
|
+
var import_react42 = require("react");
|
6475
6520
|
|
6476
6521
|
// lib/is-child-of-zone.ts
|
6477
6522
|
init_react_import();
|
@@ -6517,7 +6562,7 @@ var LayerTree = ({
|
|
6517
6562
|
label
|
6518
6563
|
}) => {
|
6519
6564
|
const zones = data.zones || {};
|
6520
|
-
const ctx = (0,
|
6565
|
+
const ctx = (0, import_react42.useContext)(dropZoneContext);
|
6521
6566
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
6522
6567
|
label && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
6523
6568
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Layers, { size: "16" }) }),
|
@@ -6624,13 +6669,13 @@ var LayerTree = ({
|
|
6624
6669
|
};
|
6625
6670
|
|
6626
6671
|
// components/Puck/components/Outline/index.tsx
|
6627
|
-
var
|
6672
|
+
var import_react43 = require("react");
|
6628
6673
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
6629
6674
|
var Outline = () => {
|
6630
6675
|
const { dispatch, state, overrides, config } = useAppContext();
|
6631
6676
|
const { data, ui } = state;
|
6632
6677
|
const { itemSelector } = ui;
|
6633
|
-
const setItemSelector = (0,
|
6678
|
+
const setItemSelector = (0, import_react43.useCallback)(
|
6634
6679
|
(newItemSelector) => {
|
6635
6680
|
dispatch({
|
6636
6681
|
type: "setUi",
|
@@ -6639,7 +6684,7 @@ var Outline = () => {
|
|
6639
6684
|
},
|
6640
6685
|
[]
|
6641
6686
|
);
|
6642
|
-
const Wrapper = (0,
|
6687
|
+
const Wrapper = (0, import_react43.useMemo)(() => overrides.outline || "div", [overrides]);
|
6643
6688
|
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: [
|
6644
6689
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
6645
6690
|
LayerTree,
|
@@ -6753,19 +6798,19 @@ function usePuckHistory({
|
|
6753
6798
|
|
6754
6799
|
// lib/use-history-store.ts
|
6755
6800
|
init_react_import();
|
6756
|
-
var
|
6801
|
+
var import_react44 = require("react");
|
6757
6802
|
var import_use_debounce3 = require("use-debounce");
|
6758
6803
|
var EMPTY_HISTORY_INDEX = 0;
|
6759
6804
|
function useHistoryStore(initialHistory) {
|
6760
6805
|
var _a, _b;
|
6761
|
-
const [histories, setHistories] = (0,
|
6806
|
+
const [histories, setHistories] = (0, import_react44.useState)(
|
6762
6807
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
6763
6808
|
);
|
6764
6809
|
const updateHistories = (histories2) => {
|
6765
6810
|
setHistories(histories2);
|
6766
6811
|
setIndex(histories2.length - 1);
|
6767
6812
|
};
|
6768
|
-
const [index, setIndex] = (0,
|
6813
|
+
const [index, setIndex] = (0, import_react44.useState)(
|
6769
6814
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
6770
6815
|
);
|
6771
6816
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -6925,11 +6970,11 @@ var getBox = function getBox2(el) {
|
|
6925
6970
|
};
|
6926
6971
|
|
6927
6972
|
// components/Puck/components/Canvas/index.tsx
|
6928
|
-
var
|
6973
|
+
var import_react46 = require("react");
|
6929
6974
|
|
6930
6975
|
// components/ViewportControls/index.tsx
|
6931
6976
|
init_react_import();
|
6932
|
-
var
|
6977
|
+
var import_react45 = require("react");
|
6933
6978
|
|
6934
6979
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6935
6980
|
init_react_import();
|
@@ -6952,8 +6997,8 @@ var ViewportButton = ({
|
|
6952
6997
|
onClick
|
6953
6998
|
}) => {
|
6954
6999
|
const { state } = useAppContext();
|
6955
|
-
const [isActive, setIsActive] = (0,
|
6956
|
-
(0,
|
7000
|
+
const [isActive, setIsActive] = (0, import_react45.useState)(false);
|
7001
|
+
(0, import_react45.useEffect)(() => {
|
6957
7002
|
setIsActive(width === state.ui.viewports.current.width);
|
6958
7003
|
}, [width, state.ui.viewports.current.width]);
|
6959
7004
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
@@ -6989,7 +7034,7 @@ var ViewportControls = ({
|
|
6989
7034
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6990
7035
|
(option) => option.value === autoZoom
|
6991
7036
|
);
|
6992
|
-
const zoomOptions = (0,
|
7037
|
+
const zoomOptions = (0, import_react45.useMemo)(
|
6993
7038
|
() => [
|
6994
7039
|
...defaultZoomOptions,
|
6995
7040
|
...defaultsContainAutoZoom ? [] : [
|
@@ -7112,17 +7157,17 @@ var Canvas = () => {
|
|
7112
7157
|
const { status, iframe } = useAppContext();
|
7113
7158
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
7114
7159
|
const { ui } = state;
|
7115
|
-
const frameRef = (0,
|
7116
|
-
const [showTransition, setShowTransition] = (0,
|
7117
|
-
const defaultRender = (0,
|
7160
|
+
const frameRef = (0, import_react46.useRef)(null);
|
7161
|
+
const [showTransition, setShowTransition] = (0, import_react46.useState)(false);
|
7162
|
+
const defaultRender = (0, import_react46.useMemo)(() => {
|
7118
7163
|
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
|
7119
7164
|
return PuckDefault;
|
7120
7165
|
}, []);
|
7121
|
-
const CustomPreview = (0,
|
7166
|
+
const CustomPreview = (0, import_react46.useMemo)(
|
7122
7167
|
() => overrides.preview || defaultRender,
|
7123
7168
|
[overrides]
|
7124
7169
|
);
|
7125
|
-
const getFrameDimensions = (0,
|
7170
|
+
const getFrameDimensions = (0, import_react46.useCallback)(() => {
|
7126
7171
|
if (frameRef.current) {
|
7127
7172
|
const frame = frameRef.current;
|
7128
7173
|
const box = getBox(frame);
|
@@ -7130,7 +7175,7 @@ var Canvas = () => {
|
|
7130
7175
|
}
|
7131
7176
|
return { width: 0, height: 0 };
|
7132
7177
|
}, [frameRef]);
|
7133
|
-
const resetAutoZoom = (0,
|
7178
|
+
const resetAutoZoom = (0, import_react46.useCallback)(
|
7134
7179
|
(ui2 = state.ui) => {
|
7135
7180
|
if (frameRef.current) {
|
7136
7181
|
setZoomConfig(
|
@@ -7140,11 +7185,11 @@ var Canvas = () => {
|
|
7140
7185
|
},
|
7141
7186
|
[frameRef, zoomConfig, state.ui]
|
7142
7187
|
);
|
7143
|
-
(0,
|
7188
|
+
(0, import_react46.useEffect)(() => {
|
7144
7189
|
setShowTransition(false);
|
7145
7190
|
resetAutoZoom();
|
7146
7191
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
7147
|
-
(0,
|
7192
|
+
(0, import_react46.useEffect)(() => {
|
7148
7193
|
const { height: frameHeight } = getFrameDimensions();
|
7149
7194
|
if (ui.viewports.current.height === "auto") {
|
7150
7195
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -7152,13 +7197,13 @@ var Canvas = () => {
|
|
7152
7197
|
}));
|
7153
7198
|
}
|
7154
7199
|
}, [zoomConfig.zoom]);
|
7155
|
-
(0,
|
7200
|
+
(0, import_react46.useEffect)(() => {
|
7156
7201
|
if (ZOOM_ON_CHANGE) {
|
7157
7202
|
setShowTransition(true);
|
7158
7203
|
resetAutoZoom(ui);
|
7159
7204
|
}
|
7160
7205
|
}, [ui.viewports.current.width]);
|
7161
|
-
(0,
|
7206
|
+
(0, import_react46.useEffect)(() => {
|
7162
7207
|
const cb = () => {
|
7163
7208
|
setShowTransition(false);
|
7164
7209
|
resetAutoZoom();
|
@@ -7168,8 +7213,8 @@ var Canvas = () => {
|
|
7168
7213
|
window.removeEventListener("resize", cb);
|
7169
7214
|
};
|
7170
7215
|
}, []);
|
7171
|
-
const [showLoader, setShowLoader] = (0,
|
7172
|
-
(0,
|
7216
|
+
const [showLoader, setShowLoader] = (0, import_react46.useState)(false);
|
7217
|
+
(0, import_react46.useEffect)(() => {
|
7173
7218
|
setTimeout(() => {
|
7174
7219
|
setShowLoader(true);
|
7175
7220
|
}, 500);
|
@@ -7247,7 +7292,7 @@ var Canvas = () => {
|
|
7247
7292
|
|
7248
7293
|
// lib/use-loaded-overrides.ts
|
7249
7294
|
init_react_import();
|
7250
|
-
var
|
7295
|
+
var import_react47 = require("react");
|
7251
7296
|
|
7252
7297
|
// lib/load-overrides.ts
|
7253
7298
|
init_react_import();
|
@@ -7286,7 +7331,7 @@ var useLoadedOverrides = ({
|
|
7286
7331
|
overrides,
|
7287
7332
|
plugins
|
7288
7333
|
}) => {
|
7289
|
-
return (0,
|
7334
|
+
return (0, import_react47.useMemo)(() => {
|
7290
7335
|
return loadOverrides({ overrides, plugins });
|
7291
7336
|
}, [plugins, overrides]);
|
7292
7337
|
};
|
@@ -7298,14 +7343,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime38
|
|
7298
7343
|
|
7299
7344
|
// lib/use-inject-css.ts
|
7300
7345
|
init_react_import();
|
7301
|
-
var
|
7346
|
+
var import_react48 = require("react");
|
7302
7347
|
var styles = ``;
|
7303
7348
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
7304
|
-
const [el, setEl] = (0,
|
7305
|
-
(0,
|
7349
|
+
const [el, setEl] = (0, import_react48.useState)();
|
7350
|
+
(0, import_react48.useEffect)(() => {
|
7306
7351
|
setEl(document.createElement("style"));
|
7307
7352
|
}, []);
|
7308
|
-
(0,
|
7353
|
+
(0, import_react48.useEffect)(() => {
|
7309
7354
|
var _a;
|
7310
7355
|
if (!el || typeof window === "undefined") {
|
7311
7356
|
return;
|
@@ -7325,10 +7370,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
7325
7370
|
|
7326
7371
|
// lib/use-preview-mode-hotkeys.ts
|
7327
7372
|
init_react_import();
|
7328
|
-
var
|
7373
|
+
var import_react49 = require("react");
|
7329
7374
|
var import_react_hotkeys_hook2 = require("react-hotkeys-hook");
|
7330
7375
|
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7331
|
-
const toggleInteractive = (0,
|
7376
|
+
const toggleInteractive = (0, import_react49.useCallback)(() => {
|
7332
7377
|
dispatch({
|
7333
7378
|
type: "setUi",
|
7334
7379
|
ui: (ui) => ({
|
@@ -7380,7 +7425,7 @@ function Puck({
|
|
7380
7425
|
waitForStyles: true
|
7381
7426
|
}, _iframe);
|
7382
7427
|
useInjectGlobalCss(iframe.enabled);
|
7383
|
-
const [generatedAppState] = (0,
|
7428
|
+
const [generatedAppState] = (0, import_react50.useState)(() => {
|
7384
7429
|
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
7385
7430
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
7386
7431
|
let clientUiState = {};
|
@@ -7452,14 +7497,14 @@ function Puck({
|
|
7452
7497
|
histories,
|
7453
7498
|
index: initialHistoryIndex
|
7454
7499
|
});
|
7455
|
-
const [reducer] = (0,
|
7500
|
+
const [reducer] = (0, import_react50.useState)(
|
7456
7501
|
() => createReducer({
|
7457
7502
|
config,
|
7458
7503
|
record: historyStore.record,
|
7459
7504
|
onAction
|
7460
7505
|
})
|
7461
7506
|
);
|
7462
|
-
const [appState, dispatch] = (0,
|
7507
|
+
const [appState, dispatch] = (0, import_react50.useReducer)(
|
7463
7508
|
reducer,
|
7464
7509
|
flushZones(initialAppState)
|
7465
7510
|
);
|
@@ -7470,14 +7515,14 @@ function Puck({
|
|
7470
7515
|
historyStore,
|
7471
7516
|
iframeEnabled: (_a = _iframe == null ? void 0 : _iframe.enabled) != null ? _a : true
|
7472
7517
|
});
|
7473
|
-
const [menuOpen, setMenuOpen] = (0,
|
7518
|
+
const [menuOpen, setMenuOpen] = (0, import_react50.useState)(false);
|
7474
7519
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7475
7520
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7476
|
-
(0,
|
7521
|
+
(0, import_react50.useEffect)(() => {
|
7477
7522
|
if (onChange) onChange(data);
|
7478
7523
|
}, [data]);
|
7479
7524
|
const rootProps = data.root.props || data.root;
|
7480
|
-
const toggleSidebars = (0,
|
7525
|
+
const toggleSidebars = (0, import_react50.useCallback)(
|
7481
7526
|
(sidebar) => {
|
7482
7527
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7483
7528
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7491,7 +7536,7 @@ function Puck({
|
|
7491
7536
|
},
|
7492
7537
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7493
7538
|
);
|
7494
|
-
(0,
|
7539
|
+
(0, import_react50.useEffect)(() => {
|
7495
7540
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7496
7541
|
dispatch({
|
7497
7542
|
type: "setUi",
|
@@ -7514,7 +7559,7 @@ function Puck({
|
|
7514
7559
|
window.removeEventListener("resize", handleResize);
|
7515
7560
|
};
|
7516
7561
|
}, []);
|
7517
|
-
const defaultHeaderRender = (0,
|
7562
|
+
const defaultHeaderRender = (0, import_react50.useMemo)(() => {
|
7518
7563
|
if (renderHeader) {
|
7519
7564
|
console.warn(
|
7520
7565
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7528,7 +7573,7 @@ function Puck({
|
|
7528
7573
|
}
|
7529
7574
|
return DefaultOverride;
|
7530
7575
|
}, [renderHeader]);
|
7531
|
-
const defaultHeaderActionsRender = (0,
|
7576
|
+
const defaultHeaderActionsRender = (0, import_react50.useMemo)(() => {
|
7532
7577
|
if (renderHeaderActions) {
|
7533
7578
|
console.warn(
|
7534
7579
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -7545,20 +7590,20 @@ function Puck({
|
|
7545
7590
|
overrides,
|
7546
7591
|
plugins
|
7547
7592
|
});
|
7548
|
-
const CustomPuck = (0,
|
7593
|
+
const CustomPuck = (0, import_react50.useMemo)(
|
7549
7594
|
() => loadedOverrides.puck || DefaultOverride,
|
7550
7595
|
[loadedOverrides]
|
7551
7596
|
);
|
7552
|
-
const CustomHeader = (0,
|
7597
|
+
const CustomHeader = (0, import_react50.useMemo)(
|
7553
7598
|
() => loadedOverrides.header || defaultHeaderRender,
|
7554
7599
|
[loadedOverrides]
|
7555
7600
|
);
|
7556
|
-
const CustomHeaderActions = (0,
|
7601
|
+
const CustomHeaderActions = (0, import_react50.useMemo)(
|
7557
7602
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7558
7603
|
[loadedOverrides]
|
7559
7604
|
);
|
7560
|
-
const [mounted, setMounted] = (0,
|
7561
|
-
(0,
|
7605
|
+
const [mounted, setMounted] = (0, import_react50.useState)(false);
|
7606
|
+
(0, import_react50.useEffect)(() => {
|
7562
7607
|
setMounted(true);
|
7563
7608
|
}, []);
|
7564
7609
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|