@measured/puck 0.18.0-canary.4a04445 → 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/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");
@@ -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: typeof value === "undefined" ? "" : value.toString(),
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
- if (isSelected) {
3259
- ctx == null ? void 0 : ctx.registerPath({
3259
+ ctx == null ? void 0 : ctx.registerPath(
3260
+ id,
3261
+ {
3260
3262
  index,
3261
3263
  zone: zoneCompound
3262
- });
3263
- }
3264
- }, [isSelected]);
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,6 +3682,7 @@ 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
3687
  function DropZoneEditInternal({
3668
3688
  zone,
@@ -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(content, zoneCompound);
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: (props) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneEdit, __spreadValues({}, props)),
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" && 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 = (_d = (_c = config.components[componentType]) == null ? void 0 : _c.label) != null ? _d : preview.componentType;
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: ((_e = appContext2.componentState[componentId]) == null ? void 0 : _e.loadingCount) > 0,
3886
+ isLoading: ((_g = appContext2.componentState[componentId]) == null ? void 0 : _g.loadingCount) > 0,
3867
3887
  isSelected,
3868
3888
  label,
3869
3889
  isEnabled,
@@ -3888,6 +3908,7 @@ 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
3913
  function DropZoneRenderInternal({ className, style, zone }, ref) {
3893
3914
  const ctx = (0, import_react29.useContext)(dropZoneContext);
@@ -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: { renderDropZone: DropZoneRender }
3951
+ puck: {
3952
+ renderDropZone: DropZoneRenderPure
3953
+ }
3931
3954
  })
3932
3955
  )
3933
3956
  },
@@ -4095,6 +4118,13 @@ var getPointerCollisions = (position, manager) => {
4095
4118
  if (elements) {
4096
4119
  for (let i = 0; i < elements.length; i++) {
4097
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
+ }
4098
4128
  const id = element.getAttribute("data-puck-dnd");
4099
4129
  if (id) {
4100
4130
  const droppable = manager.registry.droppables.get(id);
@@ -4503,6 +4533,11 @@ var reduceUi = (ui, action) => {
4503
4533
  itemSelector: { index: action.sourceIndex + 1, zone: action.sourceZone }
4504
4534
  });
4505
4535
  }
4536
+ if (action.type === "remove") {
4537
+ return __spreadProps(__spreadValues({}, ui), {
4538
+ itemSelector: null
4539
+ });
4540
+ }
4506
4541
  return ui;
4507
4542
  };
4508
4543
 
@@ -4753,6 +4788,9 @@ var _PointerSensor = class _PointerSensor extends import_abstract10.Sensor {
4753
4788
  }
4754
4789
  }
4755
4790
  handlePointerUp(event) {
4791
+ if (!this.source) {
4792
+ return;
4793
+ }
4756
4794
  event.preventDefault();
4757
4795
  event.stopPropagation();
4758
4796
  const { status } = this.manager.dragOperation;
@@ -5031,27 +5069,33 @@ var DragDropContextClient = ({
5031
5069
  const [pathData, setPathData] = (0, import_react31.useState)();
5032
5070
  const dragMode = (0, import_react31.useRef)(null);
5033
5071
  const registerPath = (0, import_react31.useCallback)(
5034
- (selector) => {
5035
- const item = getItem(selector, data);
5036
- if (!item) {
5037
- return;
5038
- }
5072
+ (id2, selector, label) => {
5039
5073
  const [area] = getZoneId(selector.zone);
5040
5074
  setPathData((latestPathData = {}) => {
5041
5075
  const parentPathData = latestPathData[area] || { path: [] };
5042
5076
  return __spreadProps(__spreadValues({}, latestPathData), {
5043
- [item.props.id]: {
5077
+ [id2]: {
5044
5078
  path: [
5045
5079
  ...parentPathData.path,
5046
5080
  ...selector.zone ? [selector.zone] : []
5047
5081
  ],
5048
- label: item.type
5082
+ label
5049
5083
  }
5050
5084
  });
5051
5085
  });
5052
5086
  },
5053
5087
  [data, setPathData]
5054
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
+ );
5055
5099
  const initialSelector = (0, import_react31.useRef)(void 0);
5056
5100
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { id, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5057
5101
  dragListenerContext.Provider,
@@ -5248,6 +5292,7 @@ var DragDropContextClient = ({
5248
5292
  areaId: "root",
5249
5293
  depth: 0,
5250
5294
  registerPath,
5295
+ unregisterPath,
5251
5296
  pathData,
5252
5297
  path: []
5253
5298
  },
@@ -5396,7 +5441,7 @@ Drawer.Item = DrawerItem;
5396
5441
 
5397
5442
  // components/Puck/index.tsx
5398
5443
  init_react_import();
5399
- var import_react48 = require("react");
5444
+ var import_react50 = require("react");
5400
5445
 
5401
5446
  // components/SidebarSection/index.tsx
5402
5447
  init_react_import();
@@ -5589,36 +5634,61 @@ init_react_import();
5589
5634
 
5590
5635
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
5591
5636
  init_react_import();
5592
- 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" };
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" };
5593
5638
 
5594
5639
  // components/Puck/components/Fields/index.tsx
5595
- var import_react35 = require("react");
5640
+ var import_react37 = require("react");
5641
+
5642
+ // lib/use-resolved-fields.ts
5643
+ init_react_import();
5644
+ var import_react36 = require("react");
5596
5645
 
5597
5646
  // lib/use-parent.ts
5598
5647
  init_react_import();
5599
5648
  var import_react34 = require("react");
5600
- var useParent = (itemSelector) => {
5649
+ var getParent = (itemSelector, pathData, data) => {
5601
5650
  var _a;
5602
- const { selectedItem, state } = useAppContext();
5603
- const { pathData } = (0, import_react34.useContext)(dropZoneContext) || {};
5604
- const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
5605
- 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);
5606
5654
  const lastItem = breadcrumbs[breadcrumbs.length - 1];
5607
- const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, state.data)) != null ? _a : null : null;
5655
+ const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, data)) != null ? _a : null : null;
5608
5656
  return parent || null;
5609
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
+ };
5610
5669
 
5611
- // components/Puck/components/Fields/index.tsx
5612
- var import_jsx_runtime27 = require("react/jsx-runtime");
5613
- var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
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
5614
5689
  var defaultPageFields = {
5615
5690
  title: { type: "text" }
5616
5691
  };
5617
- var DefaultFields = ({
5618
- children
5619
- }) => {
5620
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
5621
- };
5622
5692
  var useResolvedFields = () => {
5623
5693
  var _a, _b;
5624
5694
  const { selectedItem, state, config } = useAppContext();
@@ -5626,20 +5696,21 @@ var useResolvedFields = () => {
5626
5696
  const { data } = state;
5627
5697
  const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
5628
5698
  const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
5629
- const defaultFields = (0, import_react35.useMemo)(
5699
+ const defaultFields = (0, import_react36.useMemo)(
5630
5700
  () => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
5631
5701
  [selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
5632
5702
  );
5633
5703
  const rootProps = data.root.props || data.root;
5634
- const [lastSelectedData, setLastSelectedData] = (0, import_react35.useState)({});
5635
- const [resolvedFields, setResolvedFields] = (0, import_react35.useState)(defaultFields);
5636
- const [fieldsLoading, setFieldsLoading] = (0, import_react35.useState)(false);
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);
5637
5708
  const defaultResolveFields = (_componentData, _params) => defaultFields;
5638
5709
  const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
5639
5710
  const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
5640
5711
  const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
5641
5712
  const hasResolver = hasComponentResolver || hasRootResolver;
5642
- const resolveFields = (0, import_react35.useCallback)(
5713
+ const resolveFields = (0, import_react36.useCallback)(
5643
5714
  (..._0) => __async(void 0, [..._0], function* (fields = {}) {
5644
5715
  var _a2;
5645
5716
  const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
@@ -5651,7 +5722,7 @@ var useResolvedFields = () => {
5651
5722
  {
5652
5723
  changed,
5653
5724
  fields,
5654
- lastFields: resolvedFields,
5725
+ lastFields: lastFields.current,
5655
5726
  lastData,
5656
5727
  appState: state,
5657
5728
  parent
@@ -5662,7 +5733,7 @@ var useResolvedFields = () => {
5662
5733
  return yield config.root.resolveFields(componentData, {
5663
5734
  changed,
5664
5735
  fields,
5665
- lastFields: resolvedFields,
5736
+ lastFields: lastFields.current,
5666
5737
  lastData,
5667
5738
  appState: state,
5668
5739
  parent
@@ -5671,40 +5742,56 @@ var useResolvedFields = () => {
5671
5742
  return defaultResolveFields(componentData, {
5672
5743
  changed,
5673
5744
  fields,
5674
- lastFields: resolvedFields,
5745
+ lastFields: lastFields.current,
5675
5746
  lastData
5676
5747
  });
5677
5748
  }),
5678
- [data, config, componentData, selectedItem, resolvedFields, state, parent]
5749
+ [data, config, componentData, selectedItem, state, parent]
5679
5750
  );
5680
- const [hasParent, setHasParent] = (0, import_react35.useState)(false);
5681
- (0, import_react35.useEffect)(() => {
5682
- setHasParent(!!parent);
5683
- }, [parent]);
5684
- (0, import_react35.useEffect)(() => {
5685
- var _a2;
5686
- if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || hasParent) {
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) {
5687
5754
  if (hasResolver) {
5688
5755
  setFieldsLoading(true);
5689
5756
  resolveFields(defaultFields).then((fields) => {
5690
5757
  setResolvedFields(fields || {});
5758
+ lastFields.current = fields;
5691
5759
  setFieldsLoading(false);
5692
5760
  });
5693
- } else {
5694
- setResolvedFields(defaultFields);
5761
+ return;
5695
5762
  }
5696
5763
  }
5697
- }, [
5698
- data,
5699
- defaultFields,
5764
+ setResolvedFields(defaultFields);
5765
+ }, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
5766
+ useOnValueChange(
5700
5767
  state.ui.itemSelector,
5701
- selectedItem,
5702
- hasResolver,
5703
- hasParent
5704
- ]);
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
+ }, []);
5705
5783
  return [resolvedFields, fieldsLoading];
5706
5784
  };
5707
- var Fields = () => {
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 }) => {
5708
5795
  var _a, _b;
5709
5796
  const {
5710
5797
  selectedItem,
@@ -5722,11 +5809,11 @@ var Fields = () => {
5722
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;
5723
5810
  const isLoading = fieldsResolving || componentResolving;
5724
5811
  const rootProps = data.root.props || data.root;
5725
- const Wrapper = (0, import_react35.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
5812
+ const Wrapper = (0, import_react37.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
5726
5813
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
5727
5814
  "form",
5728
5815
  {
5729
- className: getClassName21(),
5816
+ className: getClassName21({ wrapFields }),
5730
5817
  onSubmit: (e) => {
5731
5818
  e.preventDefault();
5732
5819
  },
@@ -5802,7 +5889,7 @@ var Fields = () => {
5802
5889
  item: selectedItem
5803
5890
  });
5804
5891
  const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
5805
- 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)(
5806
5893
  AutoFieldPrivate,
5807
5894
  {
5808
5895
  field,
@@ -5811,16 +5898,15 @@ var Fields = () => {
5811
5898
  readOnly: !edit || readOnly[fieldName],
5812
5899
  value: selectedItem.props[fieldName],
5813
5900
  onChange
5814
- },
5815
- id
5816
- );
5901
+ }
5902
+ ) }, id);
5817
5903
  } else {
5818
5904
  const readOnly = data.root.readOnly || {};
5819
5905
  const { edit } = getPermissions({
5820
5906
  root: true
5821
5907
  });
5822
5908
  const id = `root_${field.type}_${fieldName}`;
5823
- 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)(
5824
5910
  AutoFieldPrivate,
5825
5911
  {
5826
5912
  field,
@@ -5829,9 +5915,8 @@ var Fields = () => {
5829
5915
  readOnly: !edit || readOnly[fieldName],
5830
5916
  value: rootProps[fieldName],
5831
5917
  onChange
5832
- },
5833
- id
5834
- );
5918
+ }
5919
+ ) }, id);
5835
5920
  }
5836
5921
  }) }),
5837
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 }) }) })
@@ -5845,7 +5930,7 @@ init_react_import();
5845
5930
 
5846
5931
  // lib/use-component-list.tsx
5847
5932
  init_react_import();
5848
- var import_react36 = require("react");
5933
+ var import_react38 = require("react");
5849
5934
 
5850
5935
  // components/ComponentList/index.tsx
5851
5936
  init_react_import();
@@ -5912,8 +5997,8 @@ ComponentList.Item = ComponentListItem;
5912
5997
  // lib/use-component-list.tsx
5913
5998
  var import_jsx_runtime29 = require("react/jsx-runtime");
5914
5999
  var useComponentList = (config, ui) => {
5915
- const [componentList, setComponentList] = (0, import_react36.useState)();
5916
- (0, import_react36.useEffect)(() => {
6000
+ const [componentList, setComponentList] = (0, import_react38.useState)();
6001
+ (0, import_react38.useEffect)(() => {
5917
6002
  var _a, _b, _c;
5918
6003
  if (Object.keys(ui.componentList).length > 0) {
5919
6004
  const matchedComponents = [];
@@ -5982,22 +6067,22 @@ var useComponentList = (config, ui) => {
5982
6067
  };
5983
6068
 
5984
6069
  // components/Puck/components/Components/index.tsx
5985
- var import_react37 = require("react");
6070
+ var import_react39 = require("react");
5986
6071
  var import_jsx_runtime30 = require("react/jsx-runtime");
5987
6072
  var Components = () => {
5988
6073
  const { config, state, overrides } = useAppContext();
5989
6074
  const componentList = useComponentList(config, state.ui);
5990
- const Wrapper = (0, import_react37.useMemo)(() => overrides.components || "div", [overrides]);
6075
+ const Wrapper = (0, import_react39.useMemo)(() => overrides.components || "div", [overrides]);
5991
6076
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
5992
6077
  };
5993
6078
 
5994
6079
  // components/Puck/components/Preview/index.tsx
5995
6080
  init_react_import();
5996
- var import_react39 = require("react");
6081
+ var import_react41 = require("react");
5997
6082
 
5998
6083
  // components/AutoFrame/index.tsx
5999
6084
  init_react_import();
6000
- var import_react38 = require("react");
6085
+ var import_react40 = require("react");
6001
6086
  var import_object_hash = __toESM(require("object-hash"));
6002
6087
  var import_react_dom3 = require("react-dom");
6003
6088
  var import_jsx_runtime31 = require("react/jsx-runtime");
@@ -6043,7 +6128,7 @@ var CopyHostStyles = ({
6043
6128
  onStylesLoaded = () => null
6044
6129
  }) => {
6045
6130
  const { document: doc, window: win } = useFrame();
6046
- (0, import_react38.useEffect)(() => {
6131
+ (0, import_react40.useEffect)(() => {
6047
6132
  if (!win || !doc) {
6048
6133
  return () => {
6049
6134
  };
@@ -6202,8 +6287,8 @@ var CopyHostStyles = ({
6202
6287
  }, []);
6203
6288
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
6204
6289
  };
6205
- var autoFrameContext = (0, import_react38.createContext)({});
6206
- var useFrame = () => (0, import_react38.useContext)(autoFrameContext);
6290
+ var autoFrameContext = (0, import_react40.createContext)({});
6291
+ var useFrame = () => (0, import_react40.useContext)(autoFrameContext);
6207
6292
  function AutoFrame(_a) {
6208
6293
  var _b = _a, {
6209
6294
  children,
@@ -6220,10 +6305,10 @@ function AutoFrame(_a) {
6220
6305
  "onStylesLoaded",
6221
6306
  "frameRef"
6222
6307
  ]);
6223
- const [loaded, setLoaded] = (0, import_react38.useState)(false);
6224
- const [ctx, setCtx] = (0, import_react38.useState)({});
6225
- const [mountTarget, setMountTarget] = (0, import_react38.useState)();
6226
- (0, import_react38.useEffect)(() => {
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)(() => {
6227
6312
  var _a2;
6228
6313
  if (frameRef.current) {
6229
6314
  setCtx({
@@ -6317,7 +6402,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
6317
6402
  var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
6318
6403
  var useBubbleIframeEvents = (ref) => {
6319
6404
  const { status } = useAppContext();
6320
- (0, import_react39.useEffect)(() => {
6405
+ (0, import_react41.useEffect)(() => {
6321
6406
  var _a;
6322
6407
  if (ref.current && status === "READY") {
6323
6408
  const iframe = ref.current;
@@ -6356,7 +6441,7 @@ var useBubbleIframeEvents = (ref) => {
6356
6441
  };
6357
6442
  var Preview2 = ({ id = "puck-preview" }) => {
6358
6443
  const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
6359
- const Page = (0, import_react39.useCallback)(
6444
+ const Page = (0, import_react41.useCallback)(
6360
6445
  (pageProps) => {
6361
6446
  var _a, _b;
6362
6447
  return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
@@ -6365,9 +6450,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
6365
6450
  },
6366
6451
  [config.root]
6367
6452
  );
6368
- const Frame = (0, import_react39.useMemo)(() => overrides.iframe, [overrides]);
6453
+ const Frame = (0, import_react41.useMemo)(() => overrides.iframe, [overrides]);
6369
6454
  const rootProps = state.data.root.props || state.data.root;
6370
- const ref = (0, import_react39.useRef)(null);
6455
+ const ref = (0, import_react41.useRef)(null);
6371
6456
  useBubbleIframeEvents(ref);
6372
6457
  const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
6373
6458
  Page,
@@ -6464,7 +6549,7 @@ var scrollIntoView = (el) => {
6464
6549
  };
6465
6550
 
6466
6551
  // components/LayerTree/index.tsx
6467
- var import_react40 = require("react");
6552
+ var import_react42 = require("react");
6468
6553
 
6469
6554
  // lib/is-child-of-zone.ts
6470
6555
  init_react_import();
@@ -6510,7 +6595,7 @@ var LayerTree = ({
6510
6595
  label
6511
6596
  }) => {
6512
6597
  const zones = data.zones || {};
6513
- const ctx = (0, import_react40.useContext)(dropZoneContext);
6598
+ const ctx = (0, import_react42.useContext)(dropZoneContext);
6514
6599
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
6515
6600
  label && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
6516
6601
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Layers, { size: "16" }) }),
@@ -6617,13 +6702,13 @@ var LayerTree = ({
6617
6702
  };
6618
6703
 
6619
6704
  // components/Puck/components/Outline/index.tsx
6620
- var import_react41 = require("react");
6705
+ var import_react43 = require("react");
6621
6706
  var import_jsx_runtime35 = require("react/jsx-runtime");
6622
6707
  var Outline = () => {
6623
6708
  const { dispatch, state, overrides, config } = useAppContext();
6624
6709
  const { data, ui } = state;
6625
6710
  const { itemSelector } = ui;
6626
- const setItemSelector = (0, import_react41.useCallback)(
6711
+ const setItemSelector = (0, import_react43.useCallback)(
6627
6712
  (newItemSelector) => {
6628
6713
  dispatch({
6629
6714
  type: "setUi",
@@ -6632,7 +6717,7 @@ var Outline = () => {
6632
6717
  },
6633
6718
  []
6634
6719
  );
6635
- const Wrapper = (0, import_react41.useMemo)(() => overrides.outline || "div", [overrides]);
6720
+ const Wrapper = (0, import_react43.useMemo)(() => overrides.outline || "div", [overrides]);
6636
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: [
6637
6722
  (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
6638
6723
  LayerTree,
@@ -6746,19 +6831,19 @@ function usePuckHistory({
6746
6831
 
6747
6832
  // lib/use-history-store.ts
6748
6833
  init_react_import();
6749
- var import_react42 = require("react");
6834
+ var import_react44 = require("react");
6750
6835
  var import_use_debounce3 = require("use-debounce");
6751
6836
  var EMPTY_HISTORY_INDEX = 0;
6752
6837
  function useHistoryStore(initialHistory) {
6753
6838
  var _a, _b;
6754
- const [histories, setHistories] = (0, import_react42.useState)(
6839
+ const [histories, setHistories] = (0, import_react44.useState)(
6755
6840
  (_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
6756
6841
  );
6757
6842
  const updateHistories = (histories2) => {
6758
6843
  setHistories(histories2);
6759
6844
  setIndex(histories2.length - 1);
6760
6845
  };
6761
- const [index, setIndex] = (0, import_react42.useState)(
6846
+ const [index, setIndex] = (0, import_react44.useState)(
6762
6847
  (_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
6763
6848
  );
6764
6849
  const hasPast = index > EMPTY_HISTORY_INDEX;
@@ -6918,11 +7003,11 @@ var getBox = function getBox2(el) {
6918
7003
  };
6919
7004
 
6920
7005
  // components/Puck/components/Canvas/index.tsx
6921
- var import_react44 = require("react");
7006
+ var import_react46 = require("react");
6922
7007
 
6923
7008
  // components/ViewportControls/index.tsx
6924
7009
  init_react_import();
6925
- var import_react43 = require("react");
7010
+ var import_react45 = require("react");
6926
7011
 
6927
7012
  // css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
6928
7013
  init_react_import();
@@ -6945,8 +7030,8 @@ var ViewportButton = ({
6945
7030
  onClick
6946
7031
  }) => {
6947
7032
  const { state } = useAppContext();
6948
- const [isActive, setIsActive] = (0, import_react43.useState)(false);
6949
- (0, import_react43.useEffect)(() => {
7033
+ const [isActive, setIsActive] = (0, import_react45.useState)(false);
7034
+ (0, import_react45.useEffect)(() => {
6950
7035
  setIsActive(width === state.ui.viewports.current.width);
6951
7036
  }, [width, state.ui.viewports.current.width]);
6952
7037
  return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
@@ -6982,7 +7067,7 @@ var ViewportControls = ({
6982
7067
  const defaultsContainAutoZoom = defaultZoomOptions.find(
6983
7068
  (option) => option.value === autoZoom
6984
7069
  );
6985
- const zoomOptions = (0, import_react43.useMemo)(
7070
+ const zoomOptions = (0, import_react45.useMemo)(
6986
7071
  () => [
6987
7072
  ...defaultZoomOptions,
6988
7073
  ...defaultsContainAutoZoom ? [] : [
@@ -7105,17 +7190,17 @@ var Canvas = () => {
7105
7190
  const { status, iframe } = useAppContext();
7106
7191
  const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
7107
7192
  const { ui } = state;
7108
- const frameRef = (0, import_react44.useRef)(null);
7109
- const [showTransition, setShowTransition] = (0, import_react44.useState)(false);
7110
- const defaultRender = (0, import_react44.useMemo)(() => {
7193
+ const frameRef = (0, import_react46.useRef)(null);
7194
+ const [showTransition, setShowTransition] = (0, import_react46.useState)(false);
7195
+ const defaultRender = (0, import_react46.useMemo)(() => {
7111
7196
  const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
7112
7197
  return PuckDefault;
7113
7198
  }, []);
7114
- const CustomPreview = (0, import_react44.useMemo)(
7199
+ const CustomPreview = (0, import_react46.useMemo)(
7115
7200
  () => overrides.preview || defaultRender,
7116
7201
  [overrides]
7117
7202
  );
7118
- const getFrameDimensions = (0, import_react44.useCallback)(() => {
7203
+ const getFrameDimensions = (0, import_react46.useCallback)(() => {
7119
7204
  if (frameRef.current) {
7120
7205
  const frame = frameRef.current;
7121
7206
  const box = getBox(frame);
@@ -7123,7 +7208,7 @@ var Canvas = () => {
7123
7208
  }
7124
7209
  return { width: 0, height: 0 };
7125
7210
  }, [frameRef]);
7126
- const resetAutoZoom = (0, import_react44.useCallback)(
7211
+ const resetAutoZoom = (0, import_react46.useCallback)(
7127
7212
  (ui2 = state.ui) => {
7128
7213
  if (frameRef.current) {
7129
7214
  setZoomConfig(
@@ -7133,11 +7218,11 @@ var Canvas = () => {
7133
7218
  },
7134
7219
  [frameRef, zoomConfig, state.ui]
7135
7220
  );
7136
- (0, import_react44.useEffect)(() => {
7221
+ (0, import_react46.useEffect)(() => {
7137
7222
  setShowTransition(false);
7138
7223
  resetAutoZoom();
7139
7224
  }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
7140
- (0, import_react44.useEffect)(() => {
7225
+ (0, import_react46.useEffect)(() => {
7141
7226
  const { height: frameHeight } = getFrameDimensions();
7142
7227
  if (ui.viewports.current.height === "auto") {
7143
7228
  setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
@@ -7145,13 +7230,13 @@ var Canvas = () => {
7145
7230
  }));
7146
7231
  }
7147
7232
  }, [zoomConfig.zoom]);
7148
- (0, import_react44.useEffect)(() => {
7233
+ (0, import_react46.useEffect)(() => {
7149
7234
  if (ZOOM_ON_CHANGE) {
7150
7235
  setShowTransition(true);
7151
7236
  resetAutoZoom(ui);
7152
7237
  }
7153
7238
  }, [ui.viewports.current.width]);
7154
- (0, import_react44.useEffect)(() => {
7239
+ (0, import_react46.useEffect)(() => {
7155
7240
  const cb = () => {
7156
7241
  setShowTransition(false);
7157
7242
  resetAutoZoom();
@@ -7161,8 +7246,8 @@ var Canvas = () => {
7161
7246
  window.removeEventListener("resize", cb);
7162
7247
  };
7163
7248
  }, []);
7164
- const [showLoader, setShowLoader] = (0, import_react44.useState)(false);
7165
- (0, import_react44.useEffect)(() => {
7249
+ const [showLoader, setShowLoader] = (0, import_react46.useState)(false);
7250
+ (0, import_react46.useEffect)(() => {
7166
7251
  setTimeout(() => {
7167
7252
  setShowLoader(true);
7168
7253
  }, 500);
@@ -7240,7 +7325,7 @@ var Canvas = () => {
7240
7325
 
7241
7326
  // lib/use-loaded-overrides.ts
7242
7327
  init_react_import();
7243
- var import_react45 = require("react");
7328
+ var import_react47 = require("react");
7244
7329
 
7245
7330
  // lib/load-overrides.ts
7246
7331
  init_react_import();
@@ -7279,7 +7364,7 @@ var useLoadedOverrides = ({
7279
7364
  overrides,
7280
7365
  plugins
7281
7366
  }) => {
7282
- return (0, import_react45.useMemo)(() => {
7367
+ return (0, import_react47.useMemo)(() => {
7283
7368
  return loadOverrides({ overrides, plugins });
7284
7369
  }, [plugins, overrides]);
7285
7370
  };
@@ -7291,14 +7376,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime38
7291
7376
 
7292
7377
  // lib/use-inject-css.ts
7293
7378
  init_react_import();
7294
- var import_react46 = require("react");
7379
+ var import_react48 = require("react");
7295
7380
  var styles = ``;
7296
7381
  var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
7297
- const [el, setEl] = (0, import_react46.useState)();
7298
- (0, import_react46.useEffect)(() => {
7382
+ const [el, setEl] = (0, import_react48.useState)();
7383
+ (0, import_react48.useEffect)(() => {
7299
7384
  setEl(document.createElement("style"));
7300
7385
  }, []);
7301
- (0, import_react46.useEffect)(() => {
7386
+ (0, import_react48.useEffect)(() => {
7302
7387
  var _a;
7303
7388
  if (!el || typeof window === "undefined") {
7304
7389
  return;
@@ -7318,10 +7403,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
7318
7403
 
7319
7404
  // lib/use-preview-mode-hotkeys.ts
7320
7405
  init_react_import();
7321
- var import_react47 = require("react");
7406
+ var import_react49 = require("react");
7322
7407
  var import_react_hotkeys_hook2 = require("react-hotkeys-hook");
7323
7408
  var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
7324
- const toggleInteractive = (0, import_react47.useCallback)(() => {
7409
+ const toggleInteractive = (0, import_react49.useCallback)(() => {
7325
7410
  dispatch({
7326
7411
  type: "setUi",
7327
7412
  ui: (ui) => ({
@@ -7373,7 +7458,7 @@ function Puck({
7373
7458
  waitForStyles: true
7374
7459
  }, _iframe);
7375
7460
  useInjectGlobalCss(iframe.enabled);
7376
- const [generatedAppState] = (0, import_react48.useState)(() => {
7461
+ const [generatedAppState] = (0, import_react50.useState)(() => {
7377
7462
  var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
7378
7463
  const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
7379
7464
  let clientUiState = {};
@@ -7445,14 +7530,14 @@ function Puck({
7445
7530
  histories,
7446
7531
  index: initialHistoryIndex
7447
7532
  });
7448
- const [reducer] = (0, import_react48.useState)(
7533
+ const [reducer] = (0, import_react50.useState)(
7449
7534
  () => createReducer({
7450
7535
  config,
7451
7536
  record: historyStore.record,
7452
7537
  onAction
7453
7538
  })
7454
7539
  );
7455
- const [appState, dispatch] = (0, import_react48.useReducer)(
7540
+ const [appState, dispatch] = (0, import_react50.useReducer)(
7456
7541
  reducer,
7457
7542
  flushZones(initialAppState)
7458
7543
  );
@@ -7463,14 +7548,14 @@ function Puck({
7463
7548
  historyStore,
7464
7549
  iframeEnabled: (_a = _iframe == null ? void 0 : _iframe.enabled) != null ? _a : true
7465
7550
  });
7466
- const [menuOpen, setMenuOpen] = (0, import_react48.useState)(false);
7551
+ const [menuOpen, setMenuOpen] = (0, import_react50.useState)(false);
7467
7552
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
7468
7553
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
7469
- (0, import_react48.useEffect)(() => {
7554
+ (0, import_react50.useEffect)(() => {
7470
7555
  if (onChange) onChange(data);
7471
7556
  }, [data]);
7472
7557
  const rootProps = data.root.props || data.root;
7473
- const toggleSidebars = (0, import_react48.useCallback)(
7558
+ const toggleSidebars = (0, import_react50.useCallback)(
7474
7559
  (sidebar) => {
7475
7560
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
7476
7561
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -7484,7 +7569,7 @@ function Puck({
7484
7569
  },
7485
7570
  [dispatch, leftSideBarVisible, rightSideBarVisible]
7486
7571
  );
7487
- (0, import_react48.useEffect)(() => {
7572
+ (0, import_react50.useEffect)(() => {
7488
7573
  if (!window.matchMedia("(min-width: 638px)").matches) {
7489
7574
  dispatch({
7490
7575
  type: "setUi",
@@ -7507,7 +7592,7 @@ function Puck({
7507
7592
  window.removeEventListener("resize", handleResize);
7508
7593
  };
7509
7594
  }, []);
7510
- const defaultHeaderRender = (0, import_react48.useMemo)(() => {
7595
+ const defaultHeaderRender = (0, import_react50.useMemo)(() => {
7511
7596
  if (renderHeader) {
7512
7597
  console.warn(
7513
7598
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
@@ -7521,7 +7606,7 @@ function Puck({
7521
7606
  }
7522
7607
  return DefaultOverride;
7523
7608
  }, [renderHeader]);
7524
- const defaultHeaderActionsRender = (0, import_react48.useMemo)(() => {
7609
+ const defaultHeaderActionsRender = (0, import_react50.useMemo)(() => {
7525
7610
  if (renderHeaderActions) {
7526
7611
  console.warn(
7527
7612
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
@@ -7538,20 +7623,20 @@ function Puck({
7538
7623
  overrides,
7539
7624
  plugins
7540
7625
  });
7541
- const CustomPuck = (0, import_react48.useMemo)(
7626
+ const CustomPuck = (0, import_react50.useMemo)(
7542
7627
  () => loadedOverrides.puck || DefaultOverride,
7543
7628
  [loadedOverrides]
7544
7629
  );
7545
- const CustomHeader = (0, import_react48.useMemo)(
7630
+ const CustomHeader = (0, import_react50.useMemo)(
7546
7631
  () => loadedOverrides.header || defaultHeaderRender,
7547
7632
  [loadedOverrides]
7548
7633
  );
7549
- const CustomHeaderActions = (0, import_react48.useMemo)(
7634
+ const CustomHeaderActions = (0, import_react50.useMemo)(
7550
7635
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
7551
7636
  [loadedOverrides]
7552
7637
  );
7553
- const [mounted, setMounted] = (0, import_react48.useState)(false);
7554
- (0, import_react48.useEffect)(() => {
7638
+ const [mounted, setMounted] = (0, import_react50.useState)(false);
7639
+ (0, import_react50.useEffect)(() => {
7555
7640
  setMounted(true);
7556
7641
  }, []);
7557
7642
  const selectedComponentConfig = selectedItem && config.components[selectedItem.type];