@measured/puck-plugin-heading-analyzer 0.14.3-canary.9df6633 → 0.15.0-canary.aedd401

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
@@ -45807,292 +45807,6 @@ var require_object_hash = __commonJS({
45807
45807
  }
45808
45808
  });
45809
45809
 
45810
- // ../../node_modules/@measured/auto-frame-component/dist/index.js
45811
- var require_dist = __commonJS({
45812
- "../../node_modules/@measured/auto-frame-component/dist/index.js"(exports, module2) {
45813
- "use strict";
45814
- init_react_import();
45815
- var __create2 = Object.create;
45816
- var __defProp2 = Object.defineProperty;
45817
- var __defProps2 = Object.defineProperties;
45818
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
45819
- var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;
45820
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
45821
- var __getOwnPropSymbols2 = Object.getOwnPropertySymbols;
45822
- var __getProtoOf2 = Object.getPrototypeOf;
45823
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
45824
- var __propIsEnum2 = Object.prototype.propertyIsEnumerable;
45825
- var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
45826
- var __spreadValues2 = (a2, b) => {
45827
- for (var prop in b || (b = {}))
45828
- if (__hasOwnProp2.call(b, prop))
45829
- __defNormalProp2(a2, prop, b[prop]);
45830
- if (__getOwnPropSymbols2)
45831
- for (var prop of __getOwnPropSymbols2(b)) {
45832
- if (__propIsEnum2.call(b, prop))
45833
- __defNormalProp2(a2, prop, b[prop]);
45834
- }
45835
- return a2;
45836
- };
45837
- var __spreadProps2 = (a2, b) => __defProps2(a2, __getOwnPropDescs2(b));
45838
- var __objRest2 = (source, exclude) => {
45839
- var target = {};
45840
- for (var prop in source)
45841
- if (__hasOwnProp2.call(source, prop) && exclude.indexOf(prop) < 0)
45842
- target[prop] = source[prop];
45843
- if (source != null && __getOwnPropSymbols2)
45844
- for (var prop of __getOwnPropSymbols2(source)) {
45845
- if (exclude.indexOf(prop) < 0 && __propIsEnum2.call(source, prop))
45846
- target[prop] = source[prop];
45847
- }
45848
- return target;
45849
- };
45850
- var __export2 = (target, all) => {
45851
- for (var name in all)
45852
- __defProp2(target, name, { get: all[name], enumerable: true });
45853
- };
45854
- var __copyProps2 = (to, from, except, desc) => {
45855
- if (from && typeof from === "object" || typeof from === "function") {
45856
- for (let key of __getOwnPropNames2(from))
45857
- if (!__hasOwnProp2.call(to, key) && key !== except)
45858
- __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
45859
- }
45860
- return to;
45861
- };
45862
- var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
45863
- // If the importer is in node compatibility mode or this is not an ESM
45864
- // file that has been converted to a CommonJS file using a Babel-
45865
- // compatible transform (i.e. "__esModule" has not been set), then set
45866
- // "default" to the CommonJS "module.exports" for node compatibility.
45867
- isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
45868
- mod
45869
- ));
45870
- var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
45871
- var __async2 = (__this, __arguments, generator) => {
45872
- return new Promise((resolve, reject) => {
45873
- var fulfilled = (value) => {
45874
- try {
45875
- step(generator.next(value));
45876
- } catch (e2) {
45877
- reject(e2);
45878
- }
45879
- };
45880
- var rejected = (value) => {
45881
- try {
45882
- step(generator.throw(value));
45883
- } catch (e2) {
45884
- reject(e2);
45885
- }
45886
- };
45887
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
45888
- step((generator = generator.apply(__this, __arguments)).next());
45889
- });
45890
- };
45891
- var auto_frame_component_exports = {};
45892
- __export2(auto_frame_component_exports, {
45893
- default: () => AutoFrameComponent_default
45894
- });
45895
- module2.exports = __toCommonJS2(auto_frame_component_exports);
45896
- var import_react13 = __toESM2(require("react"));
45897
- var import_react22 = __toESM2(require("react"));
45898
- var import_react_frame_component = __toESM2(require_lib());
45899
- var import_object_hash = __toESM2(require_object_hash());
45900
- var import_jsx_runtime8 = require("react/jsx-runtime");
45901
- var styleSelector = 'style, link[as="style"], link[rel="stylesheet"]';
45902
- var collectStyles = (doc) => {
45903
- const collected = [];
45904
- doc.head.querySelectorAll(styleSelector).forEach((style2) => {
45905
- collected.push(style2);
45906
- });
45907
- return collected;
45908
- };
45909
- var getStyleSheet = (el) => {
45910
- return Array.from(document.styleSheets).find((ss) => {
45911
- const ownerNode = ss.ownerNode;
45912
- return ownerNode.href === el.href;
45913
- });
45914
- };
45915
- var getStyles2 = (styleSheet) => {
45916
- if (styleSheet) {
45917
- try {
45918
- return [...styleSheet.cssRules].map((rule) => rule.cssText).join("");
45919
- } catch (e2) {
45920
- console.warn(
45921
- "Access to stylesheet %s is denied. Ignoring\u2026",
45922
- styleSheet.href
45923
- );
45924
- }
45925
- }
45926
- return "";
45927
- };
45928
- var defer = (fn) => setTimeout(fn, 0);
45929
- var CopyHostStyles = ({
45930
- children,
45931
- debug = false,
45932
- onStylesLoaded = () => null
45933
- }) => {
45934
- const { document: doc, window: win } = (0, import_react_frame_component.useFrame)();
45935
- (0, import_react22.useEffect)(() => {
45936
- if (!win || !doc) {
45937
- return () => {
45938
- };
45939
- }
45940
- let elements = [];
45941
- const hashes = {};
45942
- const lookupEl = (el) => elements.findIndex((elementMap) => elementMap.original === el);
45943
- const mirrorEl = (el, onLoad = () => {
45944
- }) => __async2(void 0, null, function* () {
45945
- let mirror;
45946
- if (el.nodeName === "LINK") {
45947
- mirror = document.createElement("style");
45948
- mirror.type = "text/css";
45949
- let styleSheet = getStyleSheet(el);
45950
- if (!styleSheet) {
45951
- yield new Promise((resolve) => {
45952
- const fn = () => {
45953
- resolve();
45954
- el.removeEventListener("load", fn);
45955
- };
45956
- el.addEventListener("load", fn);
45957
- });
45958
- styleSheet = getStyleSheet(el);
45959
- }
45960
- const styles = getStyles2(styleSheet);
45961
- if (!styles) {
45962
- if (debug) {
45963
- console.warn(
45964
- `Tried to load styles for link element, but couldn't find them. Skipping...`
45965
- );
45966
- }
45967
- return;
45968
- }
45969
- mirror.innerHTML = styles;
45970
- mirror.setAttribute("data-href", el.getAttribute("href"));
45971
- } else {
45972
- mirror = el.cloneNode(true);
45973
- }
45974
- mirror.onload = onLoad;
45975
- return mirror;
45976
- });
45977
- const addEl = (el, onLoad = () => {
45978
- }) => __async2(void 0, null, function* () {
45979
- const index = lookupEl(el);
45980
- if (index > -1) {
45981
- if (debug)
45982
- console.log(
45983
- `Tried to add an element that was already mirrored. Updating instead...`
45984
- );
45985
- elements[index].mirror.innerText = el.innerText;
45986
- onLoad();
45987
- return;
45988
- }
45989
- const mirror = yield mirrorEl(el, onLoad);
45990
- if (!mirror) {
45991
- onLoad();
45992
- return;
45993
- }
45994
- const elHash = (0, import_object_hash.default)(mirror.outerHTML);
45995
- if (hashes[elHash]) {
45996
- if (debug)
45997
- console.log(
45998
- `iframe already contains element that is being mirrored. Skipping...`
45999
- );
46000
- onLoad();
46001
- return;
46002
- }
46003
- hashes[elHash] = true;
46004
- mirror.onload = onLoad;
46005
- doc.head.append(mirror);
46006
- elements.push({ original: el, mirror });
46007
- if (debug)
46008
- console.log(`Added style node ${el.outerHTML}`);
46009
- });
46010
- const removeEl = (el) => {
46011
- var _a3, _b;
46012
- const index = lookupEl(el);
46013
- if (index === -1) {
46014
- if (debug)
46015
- console.log(
46016
- `Tried to remove an element that did not exist. Skipping...`
46017
- );
46018
- return;
46019
- }
46020
- const elHash = (0, import_object_hash.default)(el.outerHTML);
46021
- (_b = (_a3 = elements[index]) == null ? void 0 : _a3.mirror) == null ? void 0 : _b.remove();
46022
- delete hashes[elHash];
46023
- if (debug)
46024
- console.log(`Removed style node ${el.outerHTML}`);
46025
- };
46026
- const observer = new MutationObserver((mutations) => {
46027
- mutations.forEach((mutation) => {
46028
- if (mutation.type === "childList") {
46029
- mutation.addedNodes.forEach((node) => {
46030
- if (node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE) {
46031
- const el = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
46032
- if (el && el.matches(styleSelector)) {
46033
- defer(() => addEl(el));
46034
- }
46035
- }
46036
- });
46037
- mutation.removedNodes.forEach((node) => {
46038
- if (node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE) {
46039
- const el = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
46040
- if (el && el.matches(styleSelector)) {
46041
- defer(() => removeEl(el));
46042
- }
46043
- }
46044
- });
46045
- }
46046
- });
46047
- });
46048
- const parentDocument = win.parent.document;
46049
- const collectedStyles = collectStyles(parentDocument);
46050
- const hrefs = [];
46051
- Promise.all(
46052
- collectedStyles.map((styleNode, i2) => __async2(void 0, null, function* () {
46053
- if (styleNode.nodeName === "LINK") {
46054
- const linkHref = styleNode.href;
46055
- if (hrefs.indexOf(linkHref) > -1) {
46056
- return;
46057
- }
46058
- hrefs.push(linkHref);
46059
- }
46060
- const mirror = yield mirrorEl(styleNode);
46061
- if (!mirror)
46062
- return;
46063
- elements.push({ original: styleNode, mirror });
46064
- return mirror;
46065
- }))
46066
- ).then((mirrorStyles) => {
46067
- const filtered = mirrorStyles.filter(
46068
- (el) => typeof el !== "undefined"
46069
- );
46070
- doc.head.innerHTML = "";
46071
- doc.head.append(...filtered);
46072
- observer.observe(parentDocument.head, { childList: true, subtree: true });
46073
- filtered.forEach((el) => {
46074
- const elHash = (0, import_object_hash.default)(el.outerHTML);
46075
- hashes[elHash] = true;
46076
- });
46077
- onStylesLoaded();
46078
- });
46079
- return () => {
46080
- observer.disconnect();
46081
- };
46082
- }, []);
46083
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children });
46084
- };
46085
- var AutoFrameComponent = import_react22.default.forwardRef(
46086
- function(_a3, ref2) {
46087
- var _b = _a3, { children, debug, onStylesLoaded } = _b, props = __objRest2(_b, ["children", "debug", "onStylesLoaded"]);
46088
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_frame_component.default, __spreadProps2(__spreadValues2({}, props), { ref: ref2, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CopyHostStyles, { debug, onStylesLoaded, children }) }));
46089
- }
46090
- );
46091
- AutoFrameComponent.displayName = "AutoFrameComponent";
46092
- var AutoFrameComponent_default = AutoFrameComponent;
46093
- }
46094
- });
46095
-
46096
45810
  // ../../node_modules/react-hotkeys-hook/dist/react-hotkeys-hook.esm.js
46097
45811
  var react_hotkeys_hook_esm_exports = {};
46098
45812
  __export(react_hotkeys_hook_esm_exports, {
@@ -46562,7 +46276,7 @@ var init_react_hotkeys_hook_esm = __esm({
46562
46276
  });
46563
46277
 
46564
46278
  // ../core/dist/index.js
46565
- var require_dist2 = __commonJS({
46279
+ var require_dist = __commonJS({
46566
46280
  "../core/dist/index.js"(exports, module2) {
46567
46281
  "use strict";
46568
46282
  init_react_import();
@@ -54586,9 +54300,9 @@ var require_dist2 = __commonJS({
54586
54300
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
54587
54301
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
54588
54302
  }
54589
- var React210 = require("react");
54303
+ var React32 = require("react");
54590
54304
  var Scheduler = require_scheduler2();
54591
- var ReactSharedInternals = React210.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
54305
+ var ReactSharedInternals = React32.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
54592
54306
  var suppressWarning = false;
54593
54307
  function setSuppressWarning(newSuppressWarning) {
54594
54308
  {
@@ -54637,7 +54351,7 @@ var require_dist2 = __commonJS({
54637
54351
  var HostPortal = 4;
54638
54352
  var HostComponent = 5;
54639
54353
  var HostText = 6;
54640
- var Fragment17 = 7;
54354
+ var Fragment18 = 7;
54641
54355
  var Mode = 8;
54642
54356
  var ContextConsumer = 9;
54643
54357
  var ContextProvider = 10;
@@ -55793,7 +55507,7 @@ var require_dist2 = __commonJS({
55793
55507
  return "DehydratedFragment";
55794
55508
  case ForwardRef:
55795
55509
  return getWrappedName$1(type, type.render, "ForwardRef");
55796
- case Fragment17:
55510
+ case Fragment18:
55797
55511
  return "Fragment";
55798
55512
  case HostComponent:
55799
55513
  return type;
@@ -56193,7 +55907,7 @@ var require_dist2 = __commonJS({
56193
55907
  {
56194
55908
  if (props.value == null) {
56195
55909
  if (typeof props.children === "object" && props.children !== null) {
56196
- React210.Children.forEach(props.children, function(child) {
55910
+ React32.Children.forEach(props.children, function(child) {
56197
55911
  if (child == null) {
56198
55912
  return;
56199
55913
  }
@@ -64640,7 +64354,7 @@ var require_dist2 = __commonJS({
64640
64354
  }
64641
64355
  }
64642
64356
  var fakeInternalInstance = {};
64643
- var emptyRefsObject = new React210.Component().refs;
64357
+ var emptyRefsObject = new React32.Component().refs;
64644
64358
  var didWarnAboutStateAssignmentForComponent;
64645
64359
  var didWarnAboutUninitializedState;
64646
64360
  var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;
@@ -65464,7 +65178,7 @@ var require_dist2 = __commonJS({
65464
65178
  }
65465
65179
  }
65466
65180
  function updateFragment2(returnFiber, current2, fragment, lanes, key) {
65467
- if (current2 === null || current2.tag !== Fragment17) {
65181
+ if (current2 === null || current2.tag !== Fragment18) {
65468
65182
  var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);
65469
65183
  created.return = returnFiber;
65470
65184
  return created;
@@ -65867,7 +65581,7 @@ var require_dist2 = __commonJS({
65867
65581
  if (child.key === key) {
65868
65582
  var elementType = element.type;
65869
65583
  if (elementType === REACT_FRAGMENT_TYPE) {
65870
- if (child.tag === Fragment17) {
65584
+ if (child.tag === Fragment18) {
65871
65585
  deleteRemainingChildren(returnFiber, child.sibling);
65872
65586
  var existing = useFiber(child, element.props.children);
65873
65587
  existing.return = returnFiber;
@@ -70042,7 +69756,7 @@ var require_dist2 = __commonJS({
70042
69756
  var _resolvedProps2 = workInProgress2.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
70043
69757
  return updateForwardRef(current2, workInProgress2, type, _resolvedProps2, renderLanes2);
70044
69758
  }
70045
- case Fragment17:
69759
+ case Fragment18:
70046
69760
  return updateFragment(current2, workInProgress2, renderLanes2);
70047
69761
  case Mode:
70048
69762
  return updateMode(current2, workInProgress2, renderLanes2);
@@ -70315,7 +70029,7 @@ var require_dist2 = __commonJS({
70315
70029
  case SimpleMemoComponent:
70316
70030
  case FunctionComponent:
70317
70031
  case ForwardRef:
70318
- case Fragment17:
70032
+ case Fragment18:
70319
70033
  case Mode:
70320
70034
  case Profiler:
70321
70035
  case ContextConsumer:
@@ -74574,7 +74288,7 @@ var require_dist2 = __commonJS({
74574
74288
  return fiber;
74575
74289
  }
74576
74290
  function createFiberFromFragment(elements, mode, lanes, key) {
74577
- var fiber = createFiber(Fragment17, elements, key, mode);
74291
+ var fiber = createFiber(Fragment18, elements, key, mode);
74578
74292
  fiber.lanes = lanes;
74579
74293
  return fiber;
74580
74294
  }
@@ -75833,7 +75547,7 @@ var require_dist2 = __commonJS({
75833
75547
  var import_ua_parser_js2 = require_ua_parser();
75834
75548
  var import_jsx_runtime22 = require("react/jsx-runtime");
75835
75549
  var defaultAppState2 = {
75836
- data: { content: [], root: { props: { title: "" } } },
75550
+ data: { content: [], root: { props: {} } },
75837
75551
  ui: {
75838
75552
  leftSideBarVisible: true,
75839
75553
  rightSideBarVisible: true,
@@ -76931,7 +76645,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
76931
76645
  return el;
76932
76646
  };
76933
76647
  init_react_import2();
76934
- var import_react28 = require("react");
76648
+ var import_react29 = require("react");
76935
76649
  init_react_import2();
76936
76650
  var import_react112 = require("react");
76937
76651
  init_react_import2();
@@ -77562,7 +77276,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
77562
77276
  const [componentState, setComponentState] = (0, import_react132.useState)({});
77563
77277
  const deferredSetStates = {};
77564
77278
  const setComponentLoading = (0, import_react132.useCallback)(
77565
- (id, loading, defer = 0) => {
77279
+ (id, loading, defer2 = 0) => {
77566
77280
  if (deferredSetStates[id]) {
77567
77281
  clearTimeout(deferredSetStates[id]);
77568
77282
  delete deferredSetStates[id];
@@ -77572,7 +77286,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
77572
77286
  [id]: __spreadProps2(__spreadValues2({}, prev[id]), { loading })
77573
77287
  }));
77574
77288
  delete deferredSetStates[id];
77575
- }, defer);
77289
+ }, defer2);
77576
77290
  },
77577
77291
  []
77578
77292
  );
@@ -77652,7 +77366,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
77652
77366
  var getClassName9 = get_class_name_factory_default2("MenuBar", styles_module_default7);
77653
77367
  var MenuBar = ({
77654
77368
  appState,
77655
- data = { content: [], root: { props: { title: "" } } },
77369
+ data = { content: [], root: {} },
77656
77370
  dispatch,
77657
77371
  menuOpen = false,
77658
77372
  onPublish,
@@ -77697,17 +77411,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
77697
77411
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: renderHeaderActions && renderHeaderActions({
77698
77412
  state: appState,
77699
77413
  dispatch
77700
- }) }),
77701
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
77702
- Button,
77703
- {
77704
- onClick: () => {
77705
- onPublish && onPublish(data);
77706
- },
77707
- icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Globe, { size: "14px" }),
77708
- children: "Publish"
77709
- }
77710
- ) })
77414
+ }) })
77711
77415
  ] })
77712
77416
  }
77713
77417
  );
@@ -78894,15 +78598,212 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78894
78598
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
78895
78599
  };
78896
78600
  init_react_import2();
78897
- var import_react222 = require("react");
78898
- var import_auto_frame_component = __toESM2(require_dist());
78601
+ var import_react23 = require("react");
78899
78602
  init_react_import2();
78900
- var styles_module_default16 = { "PuckPreview": "_PuckPreview_rxwlr_1", "PuckPreview-frame": "_PuckPreview-frame_rxwlr_5" };
78603
+ var import_react222 = __toESM2(require("react"));
78604
+ var import_react_frame_component = __toESM2(require_lib());
78605
+ var import_object_hash = __toESM2(require_object_hash());
78901
78606
  var import_jsx_runtime29 = require("react/jsx-runtime");
78607
+ var styleSelector = 'style, link[rel="stylesheet"]';
78608
+ var collectStyles = (doc) => {
78609
+ const collected = [];
78610
+ doc.head.querySelectorAll(styleSelector).forEach((style2) => {
78611
+ collected.push(style2);
78612
+ });
78613
+ return collected;
78614
+ };
78615
+ var getStyleSheet = (el) => {
78616
+ return Array.from(document.styleSheets).find((ss) => {
78617
+ const ownerNode = ss.ownerNode;
78618
+ return ownerNode.href === el.href;
78619
+ });
78620
+ };
78621
+ var getStyles2 = (styleSheet) => {
78622
+ if (styleSheet) {
78623
+ try {
78624
+ return [...styleSheet.cssRules].map((rule) => rule.cssText).join("");
78625
+ } catch (e2) {
78626
+ console.warn(
78627
+ "Access to stylesheet %s is denied. Ignoring\u2026",
78628
+ styleSheet.href
78629
+ );
78630
+ }
78631
+ }
78632
+ return "";
78633
+ };
78634
+ var defer = (fn) => setTimeout(fn, 0);
78635
+ var CopyHostStyles = ({
78636
+ children,
78637
+ debug = false,
78638
+ onStylesLoaded = () => null
78639
+ }) => {
78640
+ const { document: doc, window: win } = (0, import_react_frame_component.useFrame)();
78641
+ (0, import_react222.useEffect)(() => {
78642
+ if (!win || !doc) {
78643
+ return () => {
78644
+ };
78645
+ }
78646
+ let elements = [];
78647
+ const hashes = {};
78648
+ const lookupEl = (el) => elements.findIndex((elementMap) => elementMap.original === el);
78649
+ const mirrorEl = (el, inlineStyles = false) => __async2(void 0, null, function* () {
78650
+ let mirror;
78651
+ if (el.nodeName === "LINK" && inlineStyles) {
78652
+ mirror = document.createElement("style");
78653
+ mirror.type = "text/css";
78654
+ let styleSheet = getStyleSheet(el);
78655
+ if (!styleSheet) {
78656
+ yield new Promise((resolve) => {
78657
+ const fn = () => {
78658
+ resolve();
78659
+ el.removeEventListener("load", fn);
78660
+ };
78661
+ el.addEventListener("load", fn);
78662
+ });
78663
+ styleSheet = getStyleSheet(el);
78664
+ }
78665
+ const styles = getStyles2(styleSheet);
78666
+ if (!styles) {
78667
+ if (debug) {
78668
+ console.warn(
78669
+ `Tried to load styles for link element, but couldn't find them. Skipping...`
78670
+ );
78671
+ }
78672
+ return;
78673
+ }
78674
+ mirror.innerHTML = styles;
78675
+ mirror.setAttribute("data-href", el.getAttribute("href"));
78676
+ } else {
78677
+ mirror = el.cloneNode(true);
78678
+ }
78679
+ return mirror;
78680
+ });
78681
+ const addEl = (el) => __async2(void 0, null, function* () {
78682
+ const index = lookupEl(el);
78683
+ if (index > -1) {
78684
+ if (debug)
78685
+ console.log(
78686
+ `Tried to add an element that was already mirrored. Updating instead...`
78687
+ );
78688
+ elements[index].mirror.innerText = el.innerText;
78689
+ return;
78690
+ }
78691
+ const mirror = yield mirrorEl(el);
78692
+ if (!mirror) {
78693
+ return;
78694
+ }
78695
+ const elHash = (0, import_object_hash.default)(mirror.outerHTML);
78696
+ if (hashes[elHash]) {
78697
+ if (debug)
78698
+ console.log(
78699
+ `iframe already contains element that is being mirrored. Skipping...`
78700
+ );
78701
+ return;
78702
+ }
78703
+ hashes[elHash] = true;
78704
+ doc.head.append(mirror);
78705
+ elements.push({ original: el, mirror });
78706
+ if (debug)
78707
+ console.log(`Added style node ${el.outerHTML}`);
78708
+ });
78709
+ const removeEl = (el) => {
78710
+ var _a3, _b;
78711
+ const index = lookupEl(el);
78712
+ if (index === -1) {
78713
+ if (debug)
78714
+ console.log(
78715
+ `Tried to remove an element that did not exist. Skipping...`
78716
+ );
78717
+ return;
78718
+ }
78719
+ const elHash = (0, import_object_hash.default)(el.outerHTML);
78720
+ (_b = (_a3 = elements[index]) == null ? void 0 : _a3.mirror) == null ? void 0 : _b.remove();
78721
+ delete hashes[elHash];
78722
+ if (debug)
78723
+ console.log(`Removed style node ${el.outerHTML}`);
78724
+ };
78725
+ const observer = new MutationObserver((mutations) => {
78726
+ mutations.forEach((mutation) => {
78727
+ if (mutation.type === "childList") {
78728
+ mutation.addedNodes.forEach((node) => {
78729
+ if (node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE) {
78730
+ const el = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
78731
+ if (el && el.matches(styleSelector)) {
78732
+ defer(() => addEl(el));
78733
+ }
78734
+ }
78735
+ });
78736
+ mutation.removedNodes.forEach((node) => {
78737
+ if (node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE) {
78738
+ const el = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
78739
+ if (el && el.matches(styleSelector)) {
78740
+ defer(() => removeEl(el));
78741
+ }
78742
+ }
78743
+ });
78744
+ }
78745
+ });
78746
+ });
78747
+ const parentDocument = win.parent.document;
78748
+ const collectedStyles = collectStyles(parentDocument);
78749
+ const hrefs = [];
78750
+ let stylesLoaded = 0;
78751
+ Promise.all(
78752
+ collectedStyles.map((styleNode, i2) => __async2(void 0, null, function* () {
78753
+ if (styleNode.nodeName === "LINK") {
78754
+ const linkHref = styleNode.href;
78755
+ if (hrefs.indexOf(linkHref) > -1) {
78756
+ return;
78757
+ }
78758
+ hrefs.push(linkHref);
78759
+ }
78760
+ const mirror = yield mirrorEl(styleNode);
78761
+ if (!mirror)
78762
+ return;
78763
+ elements.push({ original: styleNode, mirror });
78764
+ return mirror;
78765
+ }))
78766
+ ).then((mirrorStyles) => {
78767
+ const filtered = mirrorStyles.filter(
78768
+ (el) => typeof el !== "undefined"
78769
+ );
78770
+ filtered.forEach((mirror) => {
78771
+ mirror.onload = () => {
78772
+ stylesLoaded = stylesLoaded + 1;
78773
+ if (stylesLoaded >= elements.length) {
78774
+ onStylesLoaded();
78775
+ }
78776
+ };
78777
+ });
78778
+ doc.head.innerHTML = "";
78779
+ doc.head.append(...filtered);
78780
+ observer.observe(parentDocument.head, { childList: true, subtree: true });
78781
+ filtered.forEach((el) => {
78782
+ const elHash = (0, import_object_hash.default)(el.outerHTML);
78783
+ hashes[elHash] = true;
78784
+ });
78785
+ });
78786
+ return () => {
78787
+ observer.disconnect();
78788
+ };
78789
+ }, []);
78790
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children });
78791
+ };
78792
+ var AutoFrameComponent = import_react222.default.forwardRef(
78793
+ function(_a3, ref2) {
78794
+ var _b = _a3, { children, debug, onStylesLoaded } = _b, props = __objRest2(_b, ["children", "debug", "onStylesLoaded"]);
78795
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_frame_component.default, __spreadProps2(__spreadValues2({}, props), { ref: ref2, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CopyHostStyles, { debug, onStylesLoaded, children }) }));
78796
+ }
78797
+ );
78798
+ AutoFrameComponent.displayName = "AutoFrameComponent";
78799
+ var AutoFrame_default = AutoFrameComponent;
78800
+ init_react_import2();
78801
+ var styles_module_default16 = { "PuckPreview": "_PuckPreview_rxwlr_1", "PuckPreview-frame": "_PuckPreview-frame_rxwlr_5" };
78802
+ var import_jsx_runtime30 = require("react/jsx-runtime");
78902
78803
  var getClassName21 = get_class_name_factory_default2("PuckPreview", styles_module_default16);
78903
78804
  var Preview = ({ id = "puck-preview" }) => {
78904
78805
  const { config, dispatch, state, setStatus, iframe } = useAppContext2();
78905
- const Page = (0, import_react222.useCallback)(
78806
+ const Page = (0, import_react23.useCallback)(
78906
78807
  (pageProps) => {
78907
78808
  var _a3, _b;
78908
78809
  return ((_a3 = config.root) == null ? void 0 : _a3.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps2(__spreadValues2({
@@ -78910,13 +78811,13 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78910
78811
  }, pageProps), {
78911
78812
  editMode: true,
78912
78813
  puck: { renderDropZone: DropZone }
78913
- })) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: pageProps.children });
78814
+ })) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: pageProps.children });
78914
78815
  },
78915
78816
  [config.root]
78916
78817
  );
78917
78818
  const rootProps = state.data.root.props || state.data.root;
78918
- const ref2 = (0, import_react222.useRef)(null);
78919
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
78819
+ const ref2 = (0, import_react23.useRef)(null);
78820
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
78920
78821
  "div",
78921
78822
  {
78922
78823
  className: getClassName21(),
@@ -78924,8 +78825,8 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78924
78825
  onClick: () => {
78925
78826
  dispatch({ type: "setUi", ui: __spreadProps2(__spreadValues2({}, state.ui), { itemSelector: null }) });
78926
78827
  },
78927
- children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
78928
- import_auto_frame_component.default,
78828
+ children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
78829
+ AutoFrame_default,
78929
78830
  {
78930
78831
  id: "preview-frame",
78931
78832
  className: getClassName21("frame"),
@@ -78934,9 +78835,9 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78934
78835
  onStylesLoaded: () => {
78935
78836
  setStatus("READY");
78936
78837
  },
78937
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps2(__spreadValues2({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId2 }) }))
78838
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Page, __spreadProps2(__spreadValues2({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId2 }) }))
78938
78839
  }
78939
- ) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "preview-frame", className: getClassName21("frame"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps2(__spreadValues2({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId2 }) })) })
78840
+ ) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { id: "preview-frame", className: getClassName21("frame"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Page, __spreadProps2(__spreadValues2({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId2 }) })) })
78940
78841
  }
78941
78842
  );
78942
78843
  };
@@ -78968,7 +78869,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78968
78869
  el.style.scrollMargin = oldStyle.scrollMargin || "";
78969
78870
  }
78970
78871
  };
78971
- var import_react23 = require("react");
78872
+ var import_react24 = require("react");
78972
78873
  init_react_import2();
78973
78874
  var isChildOfZone = (item, maybeChild, ctx) => {
78974
78875
  var _a3;
@@ -78978,7 +78879,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78978
78879
  return area === item.props.id;
78979
78880
  })) : false;
78980
78881
  };
78981
- var import_jsx_runtime30 = require("react/jsx-runtime");
78882
+ var import_jsx_runtime31 = require("react/jsx-runtime");
78982
78883
  var getClassName222 = get_class_name_factory_default2("LayerTree", styles_module_default17);
78983
78884
  var getClassNameLayer = get_class_name_factory_default2("Layer", styles_module_default17);
78984
78885
  var LayerTree = ({
@@ -78991,15 +78892,15 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
78991
78892
  label
78992
78893
  }) => {
78993
78894
  const zones = data.zones || {};
78994
- const ctx = (0, import_react23.useContext)(dropZoneContext2);
78995
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
78996
- label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName222("zoneTitle"), children: [
78997
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName222("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
78895
+ const ctx = (0, import_react24.useContext)(dropZoneContext2);
78896
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
78897
+ label && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: getClassName222("zoneTitle"), children: [
78898
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassName222("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Layers, { size: "16" }) }),
78998
78899
  " ",
78999
78900
  label
79000
78901
  ] }),
79001
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName222(), children: [
79002
- zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName222("helper"), children: "No items" }),
78902
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("ul", { className: getClassName222(), children: [
78903
+ zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassName222("helper"), children: "No items" }),
79003
78904
  zoneContent.map((item, i2) => {
79004
78905
  var _a3;
79005
78906
  const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i2 && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId2 && !zone);
@@ -79015,7 +78916,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79015
78916
  const selectedItem = itemSelector && data ? getItem2(itemSelector, data) : null;
79016
78917
  const isHovering = hoveringComponent === item.props.id;
79017
78918
  const childIsSelected = isChildOfZone(item, selectedItem, ctx);
79018
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
78919
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
79019
78920
  "li",
79020
78921
  {
79021
78922
  className: getClassNameLayer({
@@ -79025,7 +78926,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79025
78926
  childIsSelected
79026
78927
  }),
79027
78928
  children: [
79028
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
78929
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
79029
78930
  "button",
79030
78931
  {
79031
78932
  className: getClassNameLayer("clickable"),
@@ -79057,22 +78958,22 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79057
78958
  setHoveringComponent(null);
79058
78959
  },
79059
78960
  children: [
79060
- containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
78961
+ containsZone && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
79061
78962
  "div",
79062
78963
  {
79063
78964
  className: getClassNameLayer("chevron"),
79064
78965
  title: isSelected ? "Collapse" : "Expand",
79065
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
78966
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ChevronDown, { size: "12" })
79066
78967
  }
79067
78968
  ),
79068
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
79069
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("icon"), children: item.type === "Text" || item.type === "Heading" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Type, { size: "16" }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(LayoutGrid, { size: "16" }) }),
79070
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a3 = config.components[item.type]["label"]) != null ? _a3 : item.type })
78969
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: getClassNameLayer("title"), children: [
78970
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("icon"), children: item.type === "Text" || item.type === "Heading" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Type, { size: "16" }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(LayoutGrid, { size: "16" }) }),
78971
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("name"), children: (_a3 = config.components[item.type]["label"]) != null ? _a3 : item.type })
79071
78972
  ] })
79072
78973
  ]
79073
78974
  }
79074
78975
  ) }),
79075
- containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
78976
+ containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
79076
78977
  LayerTree,
79077
78978
  {
79078
78979
  config,
@@ -79092,13 +78993,13 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79092
78993
  ] })
79093
78994
  ] });
79094
78995
  };
79095
- var import_react24 = require("react");
79096
- var import_jsx_runtime31 = require("react/jsx-runtime");
78996
+ var import_react25 = require("react");
78997
+ var import_jsx_runtime322 = require("react/jsx-runtime");
79097
78998
  var Outline = () => {
79098
78999
  const { dispatch, state, overrides, config } = useAppContext2();
79099
79000
  const { data, ui } = state;
79100
79001
  const { itemSelector } = ui;
79101
- const setItemSelector = (0, import_react24.useCallback)(
79002
+ const setItemSelector = (0, import_react25.useCallback)(
79102
79003
  (newItemSelector) => {
79103
79004
  dispatch({
79104
79005
  type: "setUi",
@@ -79107,9 +79008,9 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79107
79008
  },
79108
79009
  []
79109
79010
  );
79110
- const Wrapper = (0, import_react24.useMemo)(() => overrides.outline || "div", [overrides]);
79111
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(dropZoneContext2.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
79112
- (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId2]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
79011
+ const Wrapper = (0, import_react25.useMemo)(() => overrides.outline || "div", [overrides]);
79012
+ return /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(dropZoneContext2.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)(import_jsx_runtime322.Fragment, { children: [
79013
+ (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId2]) && /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79113
79014
  LayerTree,
79114
79015
  {
79115
79016
  config,
@@ -79122,7 +79023,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79122
79023
  ),
79123
79024
  Object.entries(findZonesForArea(data, "root")).map(
79124
79025
  ([zoneKey, zone]) => {
79125
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
79026
+ return /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79126
79027
  LayerTree,
79127
79028
  {
79128
79029
  config,
@@ -79201,12 +79102,12 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79201
79102
  };
79202
79103
  }
79203
79104
  init_react_import2();
79204
- var import_react25 = require("react");
79105
+ var import_react26 = require("react");
79205
79106
  var import_use_debounce3 = (init_index_module(), __toCommonJS(index_module_exports));
79206
79107
  var EMPTY_HISTORY_INDEX = -1;
79207
79108
  function useHistoryStore() {
79208
- const [histories, setHistories] = (0, import_react25.useState)([]);
79209
- const [index, setIndex] = (0, import_react25.useState)(EMPTY_HISTORY_INDEX);
79109
+ const [histories, setHistories] = (0, import_react26.useState)([]);
79110
+ const [index, setIndex] = (0, import_react26.useState)(EMPTY_HISTORY_INDEX);
79210
79111
  const hasPast = index > EMPTY_HISTORY_INDEX;
79211
79112
  const hasFuture = index < histories.length - 1;
79212
79113
  const currentHistory = histories[index];
@@ -79356,16 +79257,16 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79356
79257
  var styles = window.getComputedStyle(el);
79357
79258
  return calculateBox3(borderBox, styles);
79358
79259
  };
79359
- var import_react27 = require("react");
79260
+ var import_react28 = require("react");
79360
79261
  init_react_import2();
79361
- var import_react26 = require("react");
79262
+ var import_react27 = require("react");
79362
79263
  init_react_import2();
79363
79264
  var styles_module_default18 = { "ViewportControls": "_ViewportControls_3zdvn_1", "ViewportControls-divider": "_ViewportControls-divider_3zdvn_15", "ViewportControls-zoomSelect": "_ViewportControls-zoomSelect_3zdvn_21", "ViewportButton--isActive": "_ViewportButton--isActive_3zdvn_33", "ViewportButton-inner": "_ViewportButton-inner_3zdvn_33" };
79364
- var import_jsx_runtime322 = require("react/jsx-runtime");
79265
+ var import_jsx_runtime33 = require("react/jsx-runtime");
79365
79266
  var icons = {
79366
- Smartphone: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(Smartphone, { size: 16 }),
79367
- Tablet: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(Tablet, { size: 16 }),
79368
- Monitor: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(Monitor, { size: 16 })
79267
+ Smartphone: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Smartphone, { size: 16 }),
79268
+ Tablet: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Tablet, { size: 16 }),
79269
+ Monitor: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Monitor, { size: 16 })
79369
79270
  };
79370
79271
  var getClassName23 = get_class_name_factory_default2("ViewportControls", styles_module_default18);
79371
79272
  var getClassNameButton = get_class_name_factory_default2("ViewportButton", styles_module_default18);
@@ -79377,11 +79278,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79377
79278
  onClick
79378
79279
  }) => {
79379
79280
  const { state } = useAppContext2();
79380
- const [isActive2, setIsActive] = (0, import_react26.useState)(false);
79381
- (0, import_react26.useEffect)(() => {
79281
+ const [isActive2, setIsActive] = (0, import_react27.useState)(false);
79282
+ (0, import_react27.useEffect)(() => {
79382
79283
  setIsActive(width === state.ui.viewports.current.width);
79383
79284
  }, [width, state.ui.viewports.current.width]);
79384
- return /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("span", { className: getClassNameButton({ isActive: isActive2 }), children: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79285
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: getClassNameButton({ isActive: isActive2 }), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79385
79286
  IconButton,
79386
79287
  {
79387
79288
  title,
@@ -79390,7 +79291,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79390
79291
  e2.stopPropagation();
79391
79292
  onClick({ width, height });
79392
79293
  },
79393
- children: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("span", { className: getClassNameButton("inner"), children })
79294
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: getClassNameButton("inner"), children })
79394
79295
  }
79395
79296
  ) });
79396
79297
  };
@@ -79414,7 +79315,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79414
79315
  const defaultsContainAutoZoom = defaultZoomOptions.find(
79415
79316
  (option) => option.value === autoZoom
79416
79317
  );
79417
- const zoomOptions = (0, import_react26.useMemo)(
79318
+ const zoomOptions = (0, import_react27.useMemo)(
79418
79319
  () => [
79419
79320
  ...defaultZoomOptions,
79420
79321
  ...defaultsContainAutoZoom ? [] : [
@@ -79426,8 +79327,8 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79426
79327
  ].filter((a2) => a2.value <= autoZoom).sort((a2, b) => a2.value > b.value ? 1 : -1),
79427
79328
  [autoZoom]
79428
79329
  );
79429
- return /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)("div", { className: getClassName23(), children: [
79430
- viewports.map((viewport, i2) => /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79330
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: getClassName23(), children: [
79331
+ viewports.map((viewport, i2) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79431
79332
  ViewportButton,
79432
79333
  {
79433
79334
  height: viewport.height,
@@ -79438,8 +79339,8 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79438
79339
  },
79439
79340
  i2
79440
79341
  )),
79441
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("div", { className: getClassName23("divider") }),
79442
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79342
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName23("divider") }),
79343
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79443
79344
  IconButton,
79444
79345
  {
79445
79346
  title: "Zoom viewport out",
@@ -79453,10 +79354,10 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79453
79354
  )].value
79454
79355
  );
79455
79356
  },
79456
- children: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(ZoomOut, { size: 16 })
79357
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ZoomOut, { size: 16 })
79457
79358
  }
79458
79359
  ),
79459
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79360
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79460
79361
  IconButton,
79461
79362
  {
79462
79363
  title: "Zoom viewport in",
@@ -79470,11 +79371,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79470
79371
  )].value
79471
79372
  );
79472
79373
  },
79473
- children: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(ZoomIn, { size: 16 })
79374
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ZoomIn, { size: 16 })
79474
79375
  }
79475
79376
  ),
79476
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("div", { className: getClassName23("divider") }),
79477
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79377
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName23("divider") }),
79378
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79478
79379
  "select",
79479
79380
  {
79480
79381
  className: getClassName23("zoomSelect"),
@@ -79482,7 +79383,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79482
79383
  onChange: (e2) => {
79483
79384
  onZoom(parseFloat(e2.currentTarget.value));
79484
79385
  },
79485
- children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
79386
+ children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79486
79387
  "option",
79487
79388
  {
79488
79389
  value: option.value,
@@ -79524,24 +79425,24 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79524
79425
  }
79525
79426
  return { autoZoom, rootHeight, zoom };
79526
79427
  };
79527
- var import_jsx_runtime33 = require("react/jsx-runtime");
79428
+ var import_jsx_runtime34 = require("react/jsx-runtime");
79528
79429
  var getClassName24 = get_class_name_factory_default2("PuckCanvas", styles_module_default19);
79529
79430
  var ZOOM_ON_CHANGE = true;
79530
79431
  var Canvas = () => {
79531
79432
  const { status, iframe } = useAppContext2();
79532
79433
  const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext2();
79533
79434
  const { ui } = state;
79534
- const frameRef = (0, import_react27.useRef)(null);
79535
- const [showTransition, setShowTransition] = (0, import_react27.useState)(false);
79536
- const defaultRender = (0, import_react27.useMemo)(() => {
79537
- const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
79435
+ const frameRef = (0, import_react28.useRef)(null);
79436
+ const [showTransition, setShowTransition] = (0, import_react28.useState)(false);
79437
+ const defaultRender = (0, import_react28.useMemo)(() => {
79438
+ const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children });
79538
79439
  return PuckDefault;
79539
79440
  }, []);
79540
- const CustomPreview = (0, import_react27.useMemo)(
79441
+ const CustomPreview = (0, import_react28.useMemo)(
79541
79442
  () => overrides.preview || defaultRender,
79542
79443
  [overrides]
79543
79444
  );
79544
- const getFrameDimensions = (0, import_react27.useCallback)(() => {
79445
+ const getFrameDimensions = (0, import_react28.useCallback)(() => {
79545
79446
  if (frameRef.current) {
79546
79447
  const frame = frameRef.current;
79547
79448
  const box = getBox3(frame);
@@ -79549,7 +79450,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79549
79450
  }
79550
79451
  return { width: 0, height: 0 };
79551
79452
  }, [frameRef]);
79552
- const resetAutoZoom = (0, import_react27.useCallback)(
79453
+ const resetAutoZoom = (0, import_react28.useCallback)(
79553
79454
  (ui2 = state.ui) => {
79554
79455
  if (frameRef.current) {
79555
79456
  setZoomConfig(
@@ -79559,11 +79460,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79559
79460
  },
79560
79461
  [frameRef, zoomConfig, state.ui]
79561
79462
  );
79562
- (0, import_react27.useEffect)(() => {
79463
+ (0, import_react28.useEffect)(() => {
79563
79464
  setShowTransition(false);
79564
79465
  resetAutoZoom();
79565
79466
  }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
79566
- (0, import_react27.useEffect)(() => {
79467
+ (0, import_react28.useEffect)(() => {
79567
79468
  const { height: frameHeight } = getFrameDimensions();
79568
79469
  if (ui.viewports.current.height === "auto") {
79569
79470
  setZoomConfig(__spreadProps2(__spreadValues2({}, zoomConfig), {
@@ -79571,7 +79472,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79571
79472
  }));
79572
79473
  }
79573
79474
  }, [zoomConfig.zoom]);
79574
- (0, import_react27.useEffect)(() => {
79475
+ (0, import_react28.useEffect)(() => {
79575
79476
  const observer = new ResizeObserver(() => {
79576
79477
  setShowTransition(false);
79577
79478
  resetAutoZoom();
@@ -79583,7 +79484,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79583
79484
  observer.disconnect();
79584
79485
  };
79585
79486
  }, []);
79586
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
79487
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
79587
79488
  "div",
79588
79489
  {
79589
79490
  className: getClassName24({
@@ -79595,7 +79496,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79595
79496
  recordHistory: true
79596
79497
  }),
79597
79498
  children: [
79598
- ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79499
+ ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79599
79500
  ViewportControls,
79600
79501
  {
79601
79502
  autoZoom: zoomConfig.autoZoom,
@@ -79620,7 +79521,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79620
79521
  }
79621
79522
  }
79622
79523
  ) }),
79623
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
79524
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79624
79525
  "div",
79625
79526
  {
79626
79527
  className: getClassName24("root"),
@@ -79632,19 +79533,19 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79632
79533
  overflow: iframe.enabled ? void 0 : "auto"
79633
79534
  },
79634
79535
  suppressHydrationWarning: true,
79635
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
79536
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Preview, {}) })
79636
79537
  }
79637
79538
  ) })
79638
79539
  ]
79639
79540
  }
79640
79541
  );
79641
79542
  };
79642
- var import_jsx_runtime34 = require("react/jsx-runtime");
79543
+ var import_jsx_runtime35 = require("react/jsx-runtime");
79643
79544
  var getClassName25 = get_class_name_factory_default2("Puck", styles_module_default8);
79644
79545
  function Puck({
79645
79546
  children,
79646
79547
  config,
79647
- data: initialData = { content: [], root: { props: { title: "" } } },
79548
+ data: initialData = { content: [], root: {} },
79648
79549
  ui: initialUi,
79649
79550
  onChange,
79650
79551
  onPublish,
@@ -79662,11 +79563,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79662
79563
  }) {
79663
79564
  var _a3;
79664
79565
  const historyStore = useHistoryStore();
79665
- const [reducer2] = (0, import_react28.useState)(
79566
+ const [reducer2] = (0, import_react29.useState)(
79666
79567
  () => createReducer({ config, record: historyStore.record })
79667
79568
  );
79668
- const [initialAppState] = (0, import_react28.useState)(() => {
79669
- var _a22, _b, _c, _d;
79569
+ const [initialAppState] = (0, import_react29.useState)(() => {
79570
+ var _a22, _b, _c, _d, _e, _f;
79670
79571
  const initial = __spreadValues2(__spreadValues2({}, defaultAppState2.ui), initialUi);
79671
79572
  let clientUiState = {};
79672
79573
  if (typeof window !== "undefined") {
@@ -79693,8 +79594,13 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79693
79594
  };
79694
79595
  }
79695
79596
  }
79597
+ const rootProps2 = ((_e = initialData == null ? void 0 : initialData.root) == null ? void 0 : _e.props) || initialData.root || {};
79598
+ const defaultedRootProps = __spreadValues2(__spreadValues2({}, (_f = config.root) == null ? void 0 : _f.defaultProps), rootProps2);
79696
79599
  return __spreadProps2(__spreadValues2({}, defaultAppState2), {
79697
- data: initialData,
79600
+ data: __spreadProps2(__spreadValues2({}, initialData), {
79601
+ root: defaultedRootProps,
79602
+ content: initialData.content || []
79603
+ }),
79698
79604
  ui: __spreadProps2(__spreadValues2(__spreadValues2({}, initial), clientUiState), {
79699
79605
  // Store categories under componentList on state to allow render functions and plugins to modify
79700
79606
  componentList: config.categories ? Object.entries(config.categories).reduce(
@@ -79713,7 +79619,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79713
79619
  })
79714
79620
  });
79715
79621
  });
79716
- const [appState, dispatch] = (0, import_react28.useReducer)(
79622
+ const [appState, dispatch] = (0, import_react29.useReducer)(
79717
79623
  reducer2,
79718
79624
  flushZones(initialAppState)
79719
79625
  );
@@ -79724,9 +79630,9 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79724
79630
  config,
79725
79631
  dispatch
79726
79632
  );
79727
- const [menuOpen, setMenuOpen] = (0, import_react28.useState)(false);
79633
+ const [menuOpen, setMenuOpen] = (0, import_react29.useState)(false);
79728
79634
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
79729
- const setItemSelector = (0, import_react28.useCallback)(
79635
+ const setItemSelector = (0, import_react29.useCallback)(
79730
79636
  (newItemSelector) => {
79731
79637
  if (newItemSelector === itemSelector)
79732
79638
  return;
@@ -79739,21 +79645,21 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79739
79645
  [itemSelector]
79740
79646
  );
79741
79647
  const selectedItem = itemSelector ? getItem2(itemSelector, data) : null;
79742
- (0, import_react28.useEffect)(() => {
79648
+ (0, import_react29.useEffect)(() => {
79743
79649
  if (onChange)
79744
79650
  onChange(data);
79745
79651
  }, [data]);
79746
79652
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
79747
- const [draggedItem, setDraggedItem] = (0, import_react28.useState)();
79653
+ const [draggedItem, setDraggedItem] = (0, import_react29.useState)();
79748
79654
  const rootProps = data.root.props || data.root;
79749
- (0, import_react28.useEffect)(() => {
79655
+ (0, import_react29.useEffect)(() => {
79750
79656
  if (Object.keys(data.root).length > 0 && !data.root.props) {
79751
79657
  console.error(
79752
79658
  "Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
79753
79659
  );
79754
79660
  }
79755
79661
  }, []);
79756
- const toggleSidebars = (0, import_react28.useCallback)(
79662
+ const toggleSidebars = (0, import_react29.useCallback)(
79757
79663
  (sidebar) => {
79758
79664
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
79759
79665
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -79767,7 +79673,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79767
79673
  },
79768
79674
  [dispatch, leftSideBarVisible, rightSideBarVisible]
79769
79675
  );
79770
- (0, import_react28.useEffect)(() => {
79676
+ (0, import_react29.useEffect)(() => {
79771
79677
  if (!window.matchMedia("(min-width: 638px)").matches) {
79772
79678
  dispatch({
79773
79679
  type: "setUi",
@@ -79790,11 +79696,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79790
79696
  window.removeEventListener("resize", handleResize);
79791
79697
  };
79792
79698
  }, []);
79793
- const defaultRender = (0, import_react28.useMemo)(() => {
79794
- const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
79699
+ const defaultRender = (0, import_react29.useMemo)(() => {
79700
+ const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: children2 });
79795
79701
  return PuckDefault;
79796
79702
  }, []);
79797
- const defaultHeaderRender = (0, import_react28.useMemo)(() => {
79703
+ const defaultHeaderRender = (0, import_react29.useMemo)(() => {
79798
79704
  if (renderHeader) {
79799
79705
  console.warn(
79800
79706
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
@@ -79802,45 +79708,45 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79802
79708
  const RenderHeader = (_a22) => {
79803
79709
  var _b = _a22, { actions } = _b, props = __objRest2(_b, ["actions"]);
79804
79710
  const Comp = renderHeader;
79805
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps2(__spreadValues2({}, props), { dispatch, state: appState, children: actions }));
79711
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Comp, __spreadProps2(__spreadValues2({}, props), { dispatch, state: appState, children: actions }));
79806
79712
  };
79807
79713
  return RenderHeader;
79808
79714
  }
79809
79715
  return defaultRender;
79810
79716
  }, [renderHeader]);
79811
- const defaultHeaderActionsRender = (0, import_react28.useMemo)(() => {
79717
+ const defaultHeaderActionsRender = (0, import_react29.useMemo)(() => {
79812
79718
  if (renderHeaderActions) {
79813
79719
  console.warn(
79814
79720
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
79815
79721
  );
79816
79722
  const RenderHeader = (props) => {
79817
79723
  const Comp = renderHeaderActions;
79818
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps2(__spreadValues2({}, props), { dispatch, state: appState }));
79724
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Comp, __spreadProps2(__spreadValues2({}, props), { dispatch, state: appState }));
79819
79725
  };
79820
79726
  return RenderHeader;
79821
79727
  }
79822
79728
  return defaultRender;
79823
79729
  }, [renderHeader]);
79824
- const loadedOverrides = (0, import_react28.useMemo)(() => {
79730
+ const loadedOverrides = (0, import_react29.useMemo)(() => {
79825
79731
  return loadOverrides({ overrides, plugins });
79826
79732
  }, [plugins]);
79827
- const CustomPuck = (0, import_react28.useMemo)(
79733
+ const CustomPuck = (0, import_react29.useMemo)(
79828
79734
  () => loadedOverrides.puck || defaultRender,
79829
79735
  [loadedOverrides]
79830
79736
  );
79831
- const CustomHeader = (0, import_react28.useMemo)(
79737
+ const CustomHeader = (0, import_react29.useMemo)(
79832
79738
  () => loadedOverrides.header || defaultHeaderRender,
79833
79739
  [loadedOverrides]
79834
79740
  );
79835
- const CustomHeaderActions = (0, import_react28.useMemo)(
79741
+ const CustomHeaderActions = (0, import_react29.useMemo)(
79836
79742
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
79837
79743
  [loadedOverrides]
79838
79744
  );
79839
- const [mounted, setMounted] = (0, import_react28.useState)(false);
79840
- (0, import_react28.useEffect)(() => {
79745
+ const [mounted, setMounted] = (0, import_react29.useState)(false);
79746
+ (0, import_react29.useEffect)(() => {
79841
79747
  setMounted(true);
79842
79748
  }, []);
79843
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "Puck", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79749
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "Puck", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79844
79750
  AppProvider,
79845
79751
  {
79846
79752
  value: {
@@ -79855,7 +79761,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79855
79761
  viewports,
79856
79762
  iframe
79857
79763
  },
79858
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79764
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79859
79765
  DragDropContext2,
79860
79766
  {
79861
79767
  autoScrollerOptions: { disabled: dnd == null ? void 0 : dnd.disableAutoScroll },
@@ -79911,7 +79817,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79911
79817
  });
79912
79818
  }
79913
79819
  },
79914
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79820
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79915
79821
  DropZoneProvider,
79916
79822
  {
79917
79823
  value: {
@@ -79925,7 +79831,7 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79925
79831
  mode: "edit",
79926
79832
  areaId: "root"
79927
79833
  },
79928
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
79834
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
79929
79835
  "div",
79930
79836
  {
79931
79837
  className: getClassName25({
@@ -79935,65 +79841,62 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
79935
79841
  rightSideBarVisible
79936
79842
  }),
79937
79843
  children: [
79938
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("layout"), children: [
79939
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79844
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("layout"), children: [
79845
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79940
79846
  CustomHeader,
79941
79847
  {
79942
- actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
79943
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
79944
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79945
- Button,
79946
- {
79947
- onClick: () => {
79948
- onPublish && onPublish(data);
79949
- },
79950
- icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
79951
- children: "Publish"
79952
- }
79953
- )
79954
- ] }),
79955
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
79956
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
79957
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79848
+ actions: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CustomHeaderActions, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79849
+ Button,
79850
+ {
79851
+ onClick: () => {
79852
+ onPublish && onPublish(data);
79853
+ },
79854
+ icon: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Globe, { size: "14px" }),
79855
+ children: "Publish"
79856
+ }
79857
+ ) }) }),
79858
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("headerInner"), children: [
79859
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("headerToggle"), children: [
79860
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79958
79861
  IconButton,
79959
79862
  {
79960
79863
  onClick: () => {
79961
79864
  toggleSidebars("left");
79962
79865
  },
79963
79866
  title: "Toggle left sidebar",
79964
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
79867
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PanelLeft, { focusable: "false" })
79965
79868
  }
79966
79869
  ) }),
79967
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79870
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79968
79871
  IconButton,
79969
79872
  {
79970
79873
  onClick: () => {
79971
79874
  toggleSidebars("right");
79972
79875
  },
79973
79876
  title: "Toggle right sidebar",
79974
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
79877
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PanelRight, { focusable: "false" })
79975
79878
  }
79976
79879
  ) })
79977
79880
  ] }),
79978
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading2, { rank: 2, size: "xs", children: [
79881
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Heading2, { rank: 2, size: "xs", children: [
79979
79882
  headerTitle || rootProps.title || "Page",
79980
- headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
79883
+ headerPath && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
79981
79884
  " ",
79982
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
79885
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
79983
79886
  ] })
79984
79887
  ] }) }),
79985
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
79986
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79888
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("headerTools"), children: [
79889
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79987
79890
  IconButton,
79988
79891
  {
79989
79892
  onClick: () => {
79990
79893
  return setMenuOpen(!menuOpen);
79991
79894
  },
79992
79895
  title: "Toggle menu bar",
79993
- children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
79896
+ children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ChevronDown, { focusable: "false" })
79994
79897
  }
79995
79898
  ) }),
79996
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79899
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79997
79900
  MenuBar,
79998
79901
  {
79999
79902
  appState,
@@ -80001,7 +79904,16 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80001
79904
  dispatch,
80002
79905
  onPublish,
80003
79906
  menuOpen,
80004
- renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
79907
+ renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CustomHeaderActions, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79908
+ Button,
79909
+ {
79910
+ onClick: () => {
79911
+ onPublish && onPublish(data);
79912
+ },
79913
+ icon: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Globe, { size: "14px" }),
79914
+ children: "Publish"
79915
+ }
79916
+ ) }),
80005
79917
  setMenuOpen
80006
79918
  }
80007
79919
  )
@@ -80009,23 +79921,23 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80009
79921
  ] }) })
80010
79922
  }
80011
79923
  ),
80012
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
80013
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection2, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
80014
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection2, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
79924
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
79925
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SidebarSection2, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Components, {}) }),
79926
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SidebarSection2, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Outline, {}) })
80015
79927
  ] }),
80016
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
80017
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79928
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Canvas, {}),
79929
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
80018
79930
  SidebarSection2,
80019
79931
  {
80020
79932
  noPadding: true,
80021
79933
  noBorderTop: true,
80022
79934
  showBreadcrumbs: true,
80023
79935
  title: selectedItem ? (_a3 = config.components[selectedItem.type]["label"]) != null ? _a3 : selectedItem.type : "Page",
80024
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
79936
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Fields, {})
80025
79937
  }
80026
79938
  ) })
80027
79939
  ] }),
80028
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
79940
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
80029
79941
  "div",
80030
79942
  {
80031
79943
  id: "puck-portal-root",
@@ -80047,16 +79959,20 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80047
79959
  Puck.Outline = Outline;
80048
79960
  Puck.Preview = Preview;
80049
79961
  init_react_import2();
80050
- var import_jsx_runtime35 = require("react/jsx-runtime");
79962
+ var import_jsx_runtime36 = require("react/jsx-runtime");
80051
79963
  function Render({
80052
79964
  config,
80053
79965
  data
80054
79966
  }) {
80055
79967
  var _a3;
80056
- const rootProps = data.root.props || data.root;
79968
+ const defaultedData = __spreadProps2(__spreadValues2({}, data), {
79969
+ root: data.root || {},
79970
+ content: data.content || []
79971
+ });
79972
+ const rootProps = defaultedData.root.props || defaultedData.root;
80057
79973
  const title = (rootProps == null ? void 0 : rootProps.title) || "";
80058
79974
  if ((_a3 = config.root) == null ? void 0 : _a3.render) {
80059
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
79975
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZoneProvider, { value: { data: defaultedData, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
80060
79976
  config.root.render,
80061
79977
  __spreadProps2(__spreadValues2({}, rootProps), {
80062
79978
  puck: {
@@ -80065,11 +79981,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80065
79981
  title,
80066
79982
  editMode: false,
80067
79983
  id: "puck-root",
80068
- children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId2 })
79984
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZone, { zone: rootDroppableId2 })
80069
79985
  })
80070
79986
  ) });
80071
79987
  }
80072
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId2 }) });
79988
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZoneProvider, { value: { data: defaultedData, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZone, { zone: rootDroppableId2 }) });
80073
79989
  }
80074
79990
  init_react_import2();
80075
79991
  var migrations = [
@@ -80093,6 +80009,11 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80093
80009
  return migrations == null ? void 0 : migrations.reduce((acc, migration) => migration(acc), data);
80094
80010
  }
80095
80011
  init_react_import2();
80012
+ init_react_import2();
80013
+ var defaultData = (data) => __spreadProps2(__spreadValues2({}, data), {
80014
+ root: data.root || {},
80015
+ content: data.content || []
80016
+ });
80096
80017
  function transformProps(data, propTransforms) {
80097
80018
  const mapItem = (item) => {
80098
80019
  if (propTransforms[item.type]) {
@@ -80102,18 +80023,19 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80102
80023
  }
80103
80024
  return item;
80104
80025
  };
80105
- const rootProps = data.root.props || data.root;
80106
- let newRoot = __spreadValues2({}, data.root);
80026
+ const defaultedData = defaultData(data);
80027
+ const rootProps = defaultedData.root.props || defaultedData.root;
80028
+ let newRoot = __spreadValues2({}, defaultedData.root);
80107
80029
  if (propTransforms["root"]) {
80108
- if (data.root.props) {
80030
+ if (defaultedData.root.props) {
80109
80031
  newRoot.props = propTransforms["root"](rootProps);
80110
80032
  } else {
80111
80033
  newRoot = propTransforms["root"](rootProps);
80112
80034
  }
80113
80035
  }
80114
- const afterPropTransforms = __spreadProps2(__spreadValues2({}, data), {
80036
+ const afterPropTransforms = __spreadProps2(__spreadValues2({}, defaultedData), {
80115
80037
  root: newRoot,
80116
- content: data.content.map(mapItem),
80038
+ content: defaultedData.content.map(mapItem),
80117
80039
  zones: Object.keys(data.zones || {}).reduce(
80118
80040
  (acc, zoneKey) => __spreadProps2(__spreadValues2({}, acc), {
80119
80041
  [zoneKey]: data.zones[zoneKey].map(mapItem)
@@ -80126,7 +80048,8 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80126
80048
  init_react_import2();
80127
80049
  function resolveAllData(data, config, onResolveStart, onResolveEnd) {
80128
80050
  return __async2(this, null, function* () {
80129
- const dynamicRoot = yield resolveRootData(data, config);
80051
+ const defaultedData = defaultData(data);
80052
+ const dynamicRoot = yield resolveRootData(defaultedData, config);
80130
80053
  const { zones = {} } = data;
80131
80054
  const zoneKeys = Object.keys(zones);
80132
80055
  const resolvedZones = {};
@@ -80139,10 +80062,10 @@ See https://github.com/measuredco/puck/issues/411 for more information. This mes
80139
80062
  onResolveEnd
80140
80063
  );
80141
80064
  }
80142
- return __spreadProps2(__spreadValues2({}, data), {
80065
+ return __spreadProps2(__spreadValues2({}, defaultedData), {
80143
80066
  root: dynamicRoot,
80144
80067
  content: yield resolveAllComponentData(
80145
- data.content,
80068
+ defaultedData.content,
80146
80069
  config,
80147
80070
  onResolveStart,
80148
80071
  onResolveEnd
@@ -80234,7 +80157,7 @@ init_react_import();
80234
80157
  // src/HeadingAnalyzer.tsx
80235
80158
  init_react_import();
80236
80159
  var import_react12 = require("react");
80237
- var import_puck = __toESM(require_dist2());
80160
+ var import_puck = __toESM(require_dist());
80238
80161
 
80239
80162
  // ../core/components/SidebarSection/index.tsx
80240
80163
  init_react_import();
@@ -80422,7 +80345,7 @@ var defaultViewports = [
80422
80345
  var import_ua_parser_js = __toESM(require_ua_parser());
80423
80346
  var import_jsx_runtime4 = require("react/jsx-runtime");
80424
80347
  var defaultAppState = {
80425
- data: { content: [], root: { props: { title: "" } } },
80348
+ data: { content: [], root: { props: {} } },
80426
80349
  ui: {
80427
80350
  leftSideBarVisible: true,
80428
80351
  rightSideBarVisible: true,