@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/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": "_InputWrapper_1l5m8_1", "Input": "_Input_1l5m8_1", "Input-label": "_Input-label_1l5m8_26", "Input-labelIcon": "_Input-labelIcon_1l5m8_35", "Input-disabledIcon": "_Input-disabledIcon_1l5m8_42", "Input-input": "_Input-input_1l5m8_47", "Input--readOnly": "_Input--readOnly_1l5m8_91", "Input-radioGroupItems": "_Input-radioGroupItems_1l5m8_102", "Input-radio": "_Input-radio_1l5m8_102", "Input-radioInner": "_Input-radioInner_1l5m8_119", "Input-radioInput": "_Input-radioInput_1l5m8_164" };
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 import_react48 = require("react");
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": "_PuckFields_jp3lw_1", "PuckFields--isLoading": "_PuckFields--isLoading_jp3lw_6", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_jp3lw_10", "PuckFields-loadingOverlayInner": "_PuckFields-loadingOverlayInner_jp3lw_25" };
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 import_react35 = require("react");
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 useParent = (itemSelector) => {
5616
+ var getParent = (itemSelector, pathData, data) => {
5608
5617
  var _a;
5609
- const { selectedItem, state } = useAppContext();
5610
- const { pathData } = (0, import_react34.useContext)(dropZoneContext) || {};
5611
- const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
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, state.data)) != null ? _a : null : null;
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
- // components/Puck/components/Fields/index.tsx
5619
- var import_jsx_runtime27 = require("react/jsx-runtime");
5620
- var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
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, import_react35.useMemo)(
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, import_react35.useState)({});
5642
- const [resolvedFields, setResolvedFields] = (0, import_react35.useState)(defaultFields);
5643
- const [fieldsLoading, setFieldsLoading] = (0, import_react35.useState)(false);
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, import_react35.useCallback)(
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: resolvedFields,
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: resolvedFields,
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: resolvedFields,
5712
+ lastFields: lastFields.current,
5682
5713
  lastData
5683
5714
  });
5684
5715
  }),
5685
- [data, config, componentData, selectedItem, resolvedFields, state, parent]
5716
+ [data, config, componentData, selectedItem, state, parent]
5686
5717
  );
5687
- const [hasParent, setHasParent] = (0, import_react35.useState)(false);
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" || hasParent) {
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
- } else {
5701
- setResolvedFields(defaultFields);
5728
+ return;
5702
5729
  }
5703
5730
  }
5704
- }, [
5705
- data,
5706
- defaultFields,
5731
+ setResolvedFields(defaultFields);
5732
+ }, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
5733
+ useOnValueChange(
5707
5734
  state.ui.itemSelector,
5708
- selectedItem,
5709
- hasResolver,
5710
- hasParent
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
- var Fields = () => {
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, import_react35.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
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
- id
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
- id
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 import_react36 = require("react");
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, import_react36.useState)();
5923
- (0, import_react36.useEffect)(() => {
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 import_react37 = require("react");
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, import_react37.useMemo)(() => overrides.components || "div", [overrides]);
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 import_react39 = require("react");
6048
+ var import_react41 = require("react");
6004
6049
 
6005
6050
  // components/AutoFrame/index.tsx
6006
6051
  init_react_import();
6007
- var import_react38 = require("react");
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, import_react38.useEffect)(() => {
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, import_react38.createContext)({});
6213
- var useFrame = () => (0, import_react38.useContext)(autoFrameContext);
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, import_react38.useState)(false);
6231
- const [ctx, setCtx] = (0, import_react38.useState)({});
6232
- const [mountTarget, setMountTarget] = (0, import_react38.useState)();
6233
- (0, import_react38.useEffect)(() => {
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, import_react39.useEffect)(() => {
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, import_react39.useCallback)(
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, import_react39.useMemo)(() => overrides.iframe, [overrides]);
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, import_react39.useRef)(null);
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 import_react40 = require("react");
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, import_react40.useContext)(dropZoneContext);
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 import_react41 = require("react");
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, import_react41.useCallback)(
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, import_react41.useMemo)(() => overrides.outline || "div", [overrides]);
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 import_react42 = require("react");
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, import_react42.useState)(
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, import_react42.useState)(
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 import_react44 = require("react");
6973
+ var import_react46 = require("react");
6929
6974
 
6930
6975
  // components/ViewportControls/index.tsx
6931
6976
  init_react_import();
6932
- var import_react43 = require("react");
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, import_react43.useState)(false);
6956
- (0, import_react43.useEffect)(() => {
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, import_react43.useMemo)(
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, import_react44.useRef)(null);
7116
- const [showTransition, setShowTransition] = (0, import_react44.useState)(false);
7117
- const defaultRender = (0, import_react44.useMemo)(() => {
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, import_react44.useMemo)(
7166
+ const CustomPreview = (0, import_react46.useMemo)(
7122
7167
  () => overrides.preview || defaultRender,
7123
7168
  [overrides]
7124
7169
  );
7125
- const getFrameDimensions = (0, import_react44.useCallback)(() => {
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, import_react44.useCallback)(
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, import_react44.useEffect)(() => {
7188
+ (0, import_react46.useEffect)(() => {
7144
7189
  setShowTransition(false);
7145
7190
  resetAutoZoom();
7146
7191
  }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
7147
- (0, import_react44.useEffect)(() => {
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, import_react44.useEffect)(() => {
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, import_react44.useEffect)(() => {
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, import_react44.useState)(false);
7172
- (0, import_react44.useEffect)(() => {
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 import_react45 = require("react");
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, import_react45.useMemo)(() => {
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 import_react46 = require("react");
7346
+ var import_react48 = require("react");
7302
7347
  var styles = ``;
7303
7348
  var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
7304
- const [el, setEl] = (0, import_react46.useState)();
7305
- (0, import_react46.useEffect)(() => {
7349
+ const [el, setEl] = (0, import_react48.useState)();
7350
+ (0, import_react48.useEffect)(() => {
7306
7351
  setEl(document.createElement("style"));
7307
7352
  }, []);
7308
- (0, import_react46.useEffect)(() => {
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 import_react47 = require("react");
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, import_react47.useCallback)(() => {
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, import_react48.useState)(() => {
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, import_react48.useState)(
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, import_react48.useReducer)(
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, import_react48.useState)(false);
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, import_react48.useEffect)(() => {
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, import_react48.useCallback)(
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, import_react48.useEffect)(() => {
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, import_react48.useMemo)(() => {
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, import_react48.useMemo)(() => {
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, import_react48.useMemo)(
7593
+ const CustomPuck = (0, import_react50.useMemo)(
7549
7594
  () => loadedOverrides.puck || DefaultOverride,
7550
7595
  [loadedOverrides]
7551
7596
  );
7552
- const CustomHeader = (0, import_react48.useMemo)(
7597
+ const CustomHeader = (0, import_react50.useMemo)(
7553
7598
  () => loadedOverrides.header || defaultHeaderRender,
7554
7599
  [loadedOverrides]
7555
7600
  );
7556
- const CustomHeaderActions = (0, import_react48.useMemo)(
7601
+ const CustomHeaderActions = (0, import_react50.useMemo)(
7557
7602
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
7558
7603
  [loadedOverrides]
7559
7604
  );
7560
- const [mounted, setMounted] = (0, import_react48.useState)(false);
7561
- (0, import_react48.useEffect)(() => {
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];