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

Sign up to get free protection for your applications and to get access to all the features.
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,