@measured/puck 0.14.0-canary.1c4c076 → 0.14.0-canary.26bc4ff

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -8084,7 +8084,7 @@ var require_react_dom_development = __commonJS({
8084
8084
  var HostPortal = 4;
8085
8085
  var HostComponent = 5;
8086
8086
  var HostText = 6;
8087
- var Fragment13 = 7;
8087
+ var Fragment17 = 7;
8088
8088
  var Mode = 8;
8089
8089
  var ContextConsumer = 9;
8090
8090
  var ContextProvider = 10;
@@ -8264,8 +8264,8 @@ var require_react_dom_development = __commonJS({
8264
8264
  if (propertyInfo !== null) {
8265
8265
  return !propertyInfo.acceptsBooleans;
8266
8266
  } else {
8267
- var prefix2 = name.toLowerCase().slice(0, 5);
8268
- return prefix2 !== "data-" && prefix2 !== "aria-";
8267
+ var prefix3 = name.toLowerCase().slice(0, 5);
8268
+ return prefix3 !== "data-" && prefix3 !== "aria-";
8269
8269
  }
8270
8270
  }
8271
8271
  default:
@@ -8937,18 +8937,18 @@ var require_react_dom_development = __commonJS({
8937
8937
  }
8938
8938
  }
8939
8939
  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
8940
- var prefix;
8940
+ var prefix2;
8941
8941
  function describeBuiltInComponentFrame(name, source, ownerFn) {
8942
8942
  {
8943
- if (prefix === void 0) {
8943
+ if (prefix2 === void 0) {
8944
8944
  try {
8945
8945
  throw Error();
8946
8946
  } catch (x) {
8947
8947
  var match = x.stack.trim().match(/\n( *(at )?)/);
8948
- prefix = match && match[1] || "";
8948
+ prefix2 = match && match[1] || "";
8949
8949
  }
8950
8950
  }
8951
- return "\n" + prefix + name;
8951
+ return "\n" + prefix2 + name;
8952
8952
  }
8953
8953
  }
8954
8954
  var reentry = false;
@@ -9240,7 +9240,7 @@ var require_react_dom_development = __commonJS({
9240
9240
  return "DehydratedFragment";
9241
9241
  case ForwardRef:
9242
9242
  return getWrappedName$1(type, type.render, "ForwardRef");
9243
- case Fragment13:
9243
+ case Fragment17:
9244
9244
  return "Fragment";
9245
9245
  case HostComponent:
9246
9246
  return type;
@@ -10033,13 +10033,13 @@ var require_react_dom_development = __commonJS({
10033
10033
  strokeOpacity: true,
10034
10034
  strokeWidth: true
10035
10035
  };
10036
- function prefixKey(prefix2, key) {
10037
- return prefix2 + key.charAt(0).toUpperCase() + key.substring(1);
10036
+ function prefixKey(prefix3, key) {
10037
+ return prefix3 + key.charAt(0).toUpperCase() + key.substring(1);
10038
10038
  }
10039
10039
  var prefixes = ["Webkit", "ms", "Moz", "O"];
10040
10040
  Object.keys(isUnitlessNumber).forEach(function(prop) {
10041
- prefixes.forEach(function(prefix2) {
10042
- isUnitlessNumber[prefixKey(prefix2, prop)] = isUnitlessNumber[prop];
10041
+ prefixes.forEach(function(prefix3) {
10042
+ isUnitlessNumber[prefixKey(prefix3, prop)] = isUnitlessNumber[prop];
10043
10043
  });
10044
10044
  });
10045
10045
  function dangerousStyleValue(name, value, isCustomProperty) {
@@ -18911,7 +18911,7 @@ var require_react_dom_development = __commonJS({
18911
18911
  }
18912
18912
  }
18913
18913
  function updateFragment2(returnFiber, current2, fragment, lanes, key) {
18914
- if (current2 === null || current2.tag !== Fragment13) {
18914
+ if (current2 === null || current2.tag !== Fragment17) {
18915
18915
  var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);
18916
18916
  created.return = returnFiber;
18917
18917
  return created;
@@ -19314,7 +19314,7 @@ var require_react_dom_development = __commonJS({
19314
19314
  if (child.key === key) {
19315
19315
  var elementType = element.type;
19316
19316
  if (elementType === REACT_FRAGMENT_TYPE) {
19317
- if (child.tag === Fragment13) {
19317
+ if (child.tag === Fragment17) {
19318
19318
  deleteRemainingChildren(returnFiber, child.sibling);
19319
19319
  var existing = useFiber(child, element.props.children);
19320
19320
  existing.return = returnFiber;
@@ -23489,7 +23489,7 @@ var require_react_dom_development = __commonJS({
23489
23489
  var _resolvedProps2 = workInProgress2.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
23490
23490
  return updateForwardRef(current2, workInProgress2, type, _resolvedProps2, renderLanes2);
23491
23491
  }
23492
- case Fragment13:
23492
+ case Fragment17:
23493
23493
  return updateFragment(current2, workInProgress2, renderLanes2);
23494
23494
  case Mode:
23495
23495
  return updateMode(current2, workInProgress2, renderLanes2);
@@ -23762,7 +23762,7 @@ var require_react_dom_development = __commonJS({
23762
23762
  case SimpleMemoComponent:
23763
23763
  case FunctionComponent:
23764
23764
  case ForwardRef:
23765
- case Fragment13:
23765
+ case Fragment17:
23766
23766
  case Mode:
23767
23767
  case Profiler:
23768
23768
  case ContextConsumer:
@@ -28021,7 +28021,7 @@ var require_react_dom_development = __commonJS({
28021
28021
  return fiber;
28022
28022
  }
28023
28023
  function createFiberFromFragment(elements, mode, lanes, key) {
28024
- var fiber = createFiber(Fragment13, elements, key, mode);
28024
+ var fiber = createFiber(Fragment17, elements, key, mode);
28025
28025
  fiber.lanes = lanes;
28026
28026
  return fiber;
28027
28027
  }
@@ -29173,7 +29173,7 @@ var import_react2 = require("react");
29173
29173
 
29174
29174
  // css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css#css-module
29175
29175
  init_react_import();
29176
- var Button_module_default = { "Button": "_Button_8fn3a_1", "Button--medium": "_Button--medium_8fn3a_29", "Button--large": "_Button--large_8fn3a_37", "Button-icon": "_Button-icon_8fn3a_44", "Button--primary": "_Button--primary_8fn3a_48", "Button--secondary": "_Button--secondary_8fn3a_67", "Button--flush": "_Button--flush_8fn3a_82", "Button--disabled": "_Button--disabled_8fn3a_86", "Button--fullWidth": "_Button--fullWidth_8fn3a_93", "Button-spinner": "_Button-spinner_8fn3a_98" };
29176
+ var Button_module_default = { "Button": "_Button_1t64k_1", "Button--medium": "_Button--medium_1t64k_29", "Button--large": "_Button--large_1t64k_37", "Button-icon": "_Button-icon_1t64k_44", "Button--primary": "_Button--primary_1t64k_48", "Button--secondary": "_Button--secondary_1t64k_67", "Button--flush": "_Button--flush_1t64k_84", "Button--disabled": "_Button--disabled_1t64k_88", "Button--fullWidth": "_Button--fullWidth_1t64k_95", "Button-spinner": "_Button-spinner_1t64k_100" };
29177
29177
 
29178
29178
  // lib/get-class-name-factory.ts
29179
29179
  init_react_import();
@@ -29264,7 +29264,150 @@ var Button = ({
29264
29264
 
29265
29265
  // components/Drawer/index.tsx
29266
29266
  init_react_import();
29267
- var import_dnd2 = require("@hello-pangea/dnd");
29267
+
29268
+ // components/Droppable/index.tsx
29269
+ init_react_import();
29270
+ var import_dnd = require("@measured/dnd");
29271
+
29272
+ // components/Puck/context.tsx
29273
+ init_react_import();
29274
+ var import_react3 = require("react");
29275
+
29276
+ // lib/get-item.ts
29277
+ init_react_import();
29278
+
29279
+ // lib/root-droppable-id.ts
29280
+ init_react_import();
29281
+ var rootDroppableId = "default-zone";
29282
+
29283
+ // lib/setup-zone.ts
29284
+ init_react_import();
29285
+ var setupZone = (data, zoneKey) => {
29286
+ if (zoneKey === rootDroppableId) {
29287
+ return data;
29288
+ }
29289
+ const newData = __spreadValues({}, data);
29290
+ newData.zones = data.zones || {};
29291
+ newData.zones[zoneKey] = newData.zones[zoneKey] || [];
29292
+ return newData;
29293
+ };
29294
+
29295
+ // lib/get-item.ts
29296
+ var getItem = (selector, data, dynamicProps = {}) => {
29297
+ if (!selector.zone || selector.zone === rootDroppableId) {
29298
+ const item2 = data.content[selector.index];
29299
+ return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
29300
+ }
29301
+ const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
29302
+ return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
29303
+ };
29304
+
29305
+ // components/ViewportControls/default-viewports.ts
29306
+ init_react_import();
29307
+ var defaultViewports = [
29308
+ { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
29309
+ { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
29310
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
29311
+ ];
29312
+
29313
+ // components/Puck/context.tsx
29314
+ var import_jsx_runtime2 = require("react/jsx-runtime");
29315
+ var defaultAppState = {
29316
+ data: { content: [], root: { props: { title: "" } } },
29317
+ ui: {
29318
+ leftSideBarVisible: true,
29319
+ rightSideBarVisible: true,
29320
+ arrayState: {},
29321
+ itemSelector: null,
29322
+ componentList: {},
29323
+ isDragging: false,
29324
+ viewports: {
29325
+ current: {
29326
+ width: defaultViewports[0].width,
29327
+ height: defaultViewports[0].height || "auto"
29328
+ },
29329
+ options: [],
29330
+ controlsVisible: true
29331
+ }
29332
+ }
29333
+ };
29334
+ var defaultContext = {
29335
+ state: defaultAppState,
29336
+ dispatch: () => null,
29337
+ config: { components: {} },
29338
+ componentState: {},
29339
+ resolveData: () => {
29340
+ },
29341
+ plugins: [],
29342
+ overrides: {},
29343
+ history: {},
29344
+ viewports: defaultViewports,
29345
+ zoomConfig: {
29346
+ autoZoom: 1,
29347
+ rootHeight: 0,
29348
+ zoom: 1
29349
+ },
29350
+ setZoomConfig: () => null,
29351
+ status: "LOADING",
29352
+ setStatus: () => null,
29353
+ iframe: {}
29354
+ };
29355
+ var appContext = (0, import_react3.createContext)(defaultContext);
29356
+ var AppProvider = ({
29357
+ children,
29358
+ value
29359
+ }) => {
29360
+ const [zoomConfig, setZoomConfig] = (0, import_react3.useState)(defaultContext.zoomConfig);
29361
+ const [status, setStatus] = (0, import_react3.useState)("LOADING");
29362
+ (0, import_react3.useEffect)(() => {
29363
+ setStatus("MOUNTED");
29364
+ }, []);
29365
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29366
+ appContext.Provider,
29367
+ {
29368
+ value: __spreadProps(__spreadValues({}, value), { zoomConfig, setZoomConfig, status, setStatus }),
29369
+ children
29370
+ }
29371
+ );
29372
+ };
29373
+ function useAppContext() {
29374
+ const mainContext = (0, import_react3.useContext)(appContext);
29375
+ const selectedItem = mainContext.state.ui.itemSelector ? getItem(mainContext.state.ui.itemSelector, mainContext.state.data) : void 0;
29376
+ return __spreadProps(__spreadValues({}, mainContext), {
29377
+ // Helpers
29378
+ selectedItem,
29379
+ setUi: (ui, recordHistory) => {
29380
+ return mainContext.dispatch({
29381
+ type: "setUi",
29382
+ ui,
29383
+ recordHistory
29384
+ });
29385
+ }
29386
+ });
29387
+ }
29388
+
29389
+ // components/Droppable/index.tsx
29390
+ var import_jsx_runtime3 = require("react/jsx-runtime");
29391
+ var defaultProvided = {
29392
+ droppableProps: {
29393
+ "data-rfd-droppable-context-id": "",
29394
+ "data-rfd-droppable-id": ""
29395
+ },
29396
+ placeholder: null,
29397
+ innerRef: () => null
29398
+ };
29399
+ var defaultSnapshot = {
29400
+ isDraggingOver: false,
29401
+ draggingOverWith: null,
29402
+ draggingFromThisWith: null,
29403
+ isUsingPlaceholder: false
29404
+ };
29405
+ var DefaultDroppable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: children(defaultProvided, defaultSnapshot) });
29406
+ var Droppable = (props) => {
29407
+ const { status } = useAppContext();
29408
+ const El = status !== "LOADING" ? import_dnd.Droppable : DefaultDroppable;
29409
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, __spreadValues({}, props));
29410
+ };
29268
29411
 
29269
29412
  // css-module:/home/runner/work/puck/puck/packages/core/components/Drawer/styles.module.css#css-module
29270
29413
  init_react_import();
@@ -29272,8 +29415,32 @@ var styles_module_default = { "Drawer": "_Drawer_6zh0b_1", "DrawerItem-default":
29272
29415
 
29273
29416
  // components/Draggable/index.tsx
29274
29417
  init_react_import();
29275
- var import_dnd = require("@hello-pangea/dnd");
29276
- var import_jsx_runtime2 = require("react/jsx-runtime");
29418
+ var import_dnd2 = require("@measured/dnd");
29419
+ var import_jsx_runtime4 = require("react/jsx-runtime");
29420
+ var defaultProvided2 = {
29421
+ draggableProps: {
29422
+ "data-rfd-draggable-context-id": "",
29423
+ "data-rfd-draggable-id": ""
29424
+ },
29425
+ dragHandleProps: null,
29426
+ innerRef: () => null
29427
+ };
29428
+ var defaultSnapshot2 = {
29429
+ isDragging: false,
29430
+ isDropAnimating: false,
29431
+ isClone: false,
29432
+ dropAnimation: null,
29433
+ draggingOver: null,
29434
+ combineWith: null,
29435
+ combineTargetFor: null,
29436
+ mode: null
29437
+ };
29438
+ var defaultRubric = {
29439
+ draggableId: "",
29440
+ type: "",
29441
+ source: { droppableId: "", index: 0 }
29442
+ };
29443
+ var DefaultDraggable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: children(defaultProvided2, defaultSnapshot2, defaultRubric) });
29277
29444
  var Draggable = ({
29278
29445
  className,
29279
29446
  children,
@@ -29283,39 +29450,33 @@ var Draggable = ({
29283
29450
  disableAnimations = false,
29284
29451
  isDragDisabled = false
29285
29452
  }) => {
29286
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29287
- import_dnd.Draggable,
29288
- {
29289
- draggableId: id,
29290
- index,
29291
- isDragDisabled,
29292
- children: (provided, snapshot) => {
29293
- var _a;
29294
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
29295
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29296
- "div",
29297
- __spreadProps(__spreadValues(__spreadValues({
29298
- className: className && className(provided, snapshot),
29299
- ref: provided.innerRef
29300
- }, provided.draggableProps), provided.dragHandleProps), {
29301
- style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
29302
- transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
29303
- }),
29304
- children: children(provided, snapshot)
29305
- })
29306
- ),
29307
- showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29308
- "div",
29309
- {
29310
- className: className && className(provided, snapshot),
29311
- style: { transform: "none !important" },
29312
- children: children(provided, snapshot)
29313
- }
29314
- )
29315
- ] });
29316
- }
29317
- }
29318
- );
29453
+ const { status } = useAppContext();
29454
+ const El = status !== "LOADING" ? import_dnd2.Draggable : DefaultDraggable;
29455
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => {
29456
+ var _a;
29457
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
29458
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29459
+ "div",
29460
+ __spreadProps(__spreadValues(__spreadValues({
29461
+ className: className && className(provided, snapshot),
29462
+ ref: provided.innerRef
29463
+ }, provided.draggableProps), provided.dragHandleProps), {
29464
+ style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
29465
+ transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
29466
+ }),
29467
+ children: children(provided, snapshot)
29468
+ })
29469
+ ),
29470
+ showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29471
+ "div",
29472
+ {
29473
+ className: className && className(provided, snapshot),
29474
+ style: { transform: "none !important" },
29475
+ children: children(provided, snapshot)
29476
+ }
29477
+ )
29478
+ ] });
29479
+ } });
29319
29480
  };
29320
29481
 
29321
29482
  // components/DragIcon/index.tsx
@@ -29350,23 +29511,23 @@ init_react_import();
29350
29511
  var styles_module_default2 = { "DragIcon": "_DragIcon_1p5wn_1" };
29351
29512
 
29352
29513
  // components/DragIcon/index.tsx
29353
- var import_jsx_runtime3 = require("react/jsx-runtime");
29514
+ var import_jsx_runtime5 = require("react/jsx-runtime");
29354
29515
  var getClassName2 = get_class_name_factory_default("DragIcon", styles_module_default2);
29355
- var DragIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: getClassName2(), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { viewBox: "0 0 20 20", width: "12", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" }) }) });
29516
+ var DragIcon = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName2(), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { viewBox: "0 0 20 20", width: "12", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" }) }) });
29356
29517
 
29357
29518
  // components/Drawer/index.tsx
29358
- var import_react3 = require("react");
29359
- var import_jsx_runtime4 = require("react/jsx-runtime");
29519
+ var import_react4 = require("react");
29520
+ var import_jsx_runtime6 = require("react/jsx-runtime");
29360
29521
  var getClassName3 = get_class_name_factory_default("Drawer", styles_module_default);
29361
29522
  var getClassNameItem = get_class_name_factory_default("DrawerItem", styles_module_default);
29362
- var drawerContext = (0, import_react3.createContext)({
29523
+ var drawerContext = (0, import_react4.createContext)({
29363
29524
  droppableId: ""
29364
29525
  });
29365
29526
  var DrawerDraggable = ({
29366
29527
  children,
29367
29528
  id,
29368
29529
  index
29369
- }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29530
+ }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
29370
29531
  Draggable,
29371
29532
  {
29372
29533
  id,
@@ -29382,17 +29543,18 @@ var DrawerItem = ({
29382
29543
  name,
29383
29544
  children,
29384
29545
  id,
29546
+ label,
29385
29547
  index
29386
29548
  }) => {
29387
- const ctx = (0, import_react3.useContext)(drawerContext);
29549
+ const ctx = (0, import_react4.useContext)(drawerContext);
29388
29550
  const resolvedId = `${ctx.droppableId}::${id || name}`;
29389
- const CustomInner = (0, import_react3.useMemo)(
29390
- () => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("default"), children: children2 })),
29551
+ const CustomInner = (0, import_react4.useMemo)(
29552
+ () => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("default"), children: children2 })),
29391
29553
  [children]
29392
29554
  );
29393
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DrawerDraggable, { id: resolvedId, index, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CustomInner, { name, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: getClassNameItem("draggable"), children: [
29394
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("name"), children: name }),
29395
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DragIcon, {}) })
29555
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DrawerDraggable, { id: resolvedId, index, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CustomInner, { name, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: getClassNameItem("draggable"), children: [
29556
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("name"), children: label != null ? label : name }),
29557
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DragIcon, {}) })
29396
29558
  ] }) }) }) });
29397
29559
  };
29398
29560
  var Drawer = ({
@@ -29400,7 +29562,7 @@ var Drawer = ({
29400
29562
  droppableId = "component-list",
29401
29563
  direction = "vertical"
29402
29564
  }) => {
29403
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(drawerContext.Provider, { value: { droppableId }, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_dnd2.Droppable, { droppableId, isDropDisabled: true, direction, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
29565
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(drawerContext.Provider, { value: { droppableId }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Droppable, { droppableId, isDropDisabled: true, direction, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
29404
29566
  "div",
29405
29567
  __spreadProps(__spreadValues({}, provided.droppableProps), {
29406
29568
  ref: provided.innerRef,
@@ -29409,7 +29571,7 @@ var Drawer = ({
29409
29571
  }),
29410
29572
  children: [
29411
29573
  children,
29412
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
29574
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
29413
29575
  ]
29414
29576
  })
29415
29577
  ) }) });
@@ -29422,19 +29584,19 @@ var import_react9 = require("react");
29422
29584
 
29423
29585
  // components/DraggableComponent/index.tsx
29424
29586
  init_react_import();
29425
- var import_react6 = require("react");
29426
- var import_dnd3 = require("@hello-pangea/dnd");
29587
+ var import_react7 = require("react");
29588
+ var import_dnd3 = require("@measured/dnd");
29427
29589
 
29428
29590
  // css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
29429
29591
  init_react_import();
29430
- var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_1vpvt_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_1vpvt_10", "DraggableComponent-contents": "_DraggableComponent-contents_1vpvt_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_1vpvt_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_1vpvt_42", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_1vpvt_58", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_1vpvt_64", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_1vpvt_69", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_1vpvt_74", "DraggableComponent-actions": "_DraggableComponent-actions_1vpvt_100", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_1vpvt_125", "DraggableComponent-action": "_DraggableComponent-action_1vpvt_100" };
29592
+ var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_1542z_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_1542z_11", "DraggableComponent-contents": "_DraggableComponent-contents_1542z_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_1542z_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_1542z_49", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_1542z_65", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_1542z_71", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_1542z_76", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_1542z_81", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_1542z_97", "DraggableComponent-actions": "_DraggableComponent-actions_1542z_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_1542z_127", "DraggableComponent-action": "_DraggableComponent-action_1542z_97" };
29431
29593
 
29432
29594
  // ../../node_modules/lucide-react/dist/esm/lucide-react.js
29433
29595
  init_react_import();
29434
29596
 
29435
29597
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
29436
29598
  init_react_import();
29437
- var import_react4 = require("react");
29599
+ var import_react5 = require("react");
29438
29600
 
29439
29601
  // ../../node_modules/lucide-react/dist/esm/defaultAttributes.js
29440
29602
  init_react_import();
@@ -29453,10 +29615,10 @@ var defaultAttributes = {
29453
29615
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
29454
29616
  var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim();
29455
29617
  var createLucideIcon = (iconName, iconNode) => {
29456
- const Component = (0, import_react4.forwardRef)(
29618
+ const Component = (0, import_react5.forwardRef)(
29457
29619
  (_a, ref) => {
29458
29620
  var _b = _a, { color = "currentColor", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = "", children } = _b, rest = __objRest(_b, ["color", "size", "strokeWidth", "absoluteStrokeWidth", "className", "children"]);
29459
- return (0, import_react4.createElement)(
29621
+ return (0, import_react5.createElement)(
29460
29622
  "svg",
29461
29623
  __spreadValues(__spreadProps(__spreadValues({
29462
29624
  ref
@@ -29468,7 +29630,7 @@ var createLucideIcon = (iconName, iconNode) => {
29468
29630
  className: ["lucide", `lucide-${toKebabCase(iconName)}`, className].join(" ")
29469
29631
  }), rest),
29470
29632
  [
29471
- ...iconNode.map(([tag, attrs]) => (0, import_react4.createElement)(tag, attrs)),
29633
+ ...iconNode.map(([tag, attrs]) => (0, import_react5.createElement)(tag, attrs)),
29472
29634
  ...Array.isArray(children) ? children : [children]
29473
29635
  ]
29474
29636
  );
@@ -29579,6 +29741,14 @@ var Lock = createLucideIcon("Lock", [
29579
29741
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
29580
29742
  ]);
29581
29743
 
29744
+ // ../../node_modules/lucide-react/dist/esm/icons/monitor.js
29745
+ init_react_import();
29746
+ var Monitor = createLucideIcon("Monitor", [
29747
+ ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
29748
+ ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
29749
+ ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
29750
+ ]);
29751
+
29582
29752
  // ../../node_modules/lucide-react/dist/esm/icons/more-vertical.js
29583
29753
  init_react_import();
29584
29754
  var MoreVertical = createLucideIcon("MoreVertical", [
@@ -29629,6 +29799,20 @@ var SlidersHorizontal = createLucideIcon("SlidersHorizontal", [
29629
29799
  ["line", { x1: "16", x2: "16", y1: "18", y2: "22", key: "1lctlv" }]
29630
29800
  ]);
29631
29801
 
29802
+ // ../../node_modules/lucide-react/dist/esm/icons/smartphone.js
29803
+ init_react_import();
29804
+ var Smartphone = createLucideIcon("Smartphone", [
29805
+ ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
29806
+ ["path", { d: "M12 18h.01", key: "mhygvu" }]
29807
+ ]);
29808
+
29809
+ // ../../node_modules/lucide-react/dist/esm/icons/tablet.js
29810
+ init_react_import();
29811
+ var Tablet = createLucideIcon("Tablet", [
29812
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
29813
+ ["line", { x1: "12", x2: "12.01", y1: "18", y2: "18", key: "1dp563" }]
29814
+ ]);
29815
+
29632
29816
  // ../../node_modules/lucide-react/dist/esm/icons/trash.js
29633
29817
  init_react_import();
29634
29818
  var Trash = createLucideIcon("Trash", [
@@ -29652,12 +29836,29 @@ var Unlock = createLucideIcon("Unlock", [
29652
29836
  ["path", { d: "M7 11V7a5 5 0 0 1 9.9-1", key: "1mm8w8" }]
29653
29837
  ]);
29654
29838
 
29839
+ // ../../node_modules/lucide-react/dist/esm/icons/zoom-in.js
29840
+ init_react_import();
29841
+ var ZoomIn = createLucideIcon("ZoomIn", [
29842
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
29843
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
29844
+ ["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
29845
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
29846
+ ]);
29847
+
29848
+ // ../../node_modules/lucide-react/dist/esm/icons/zoom-out.js
29849
+ init_react_import();
29850
+ var ZoomOut = createLucideIcon("ZoomOut", [
29851
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
29852
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
29853
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
29854
+ ]);
29855
+
29655
29856
  // lib/use-modifier-held.ts
29656
29857
  init_react_import();
29657
- var import_react5 = require("react");
29858
+ var import_react6 = require("react");
29658
29859
  var useModifierHeld = (modifier) => {
29659
- const [modifierHeld, setModifierHeld] = (0, import_react5.useState)(false);
29660
- (0, import_react5.useEffect)(() => {
29860
+ const [modifierHeld, setModifierHeld] = (0, import_react6.useState)(false);
29861
+ (0, import_react6.useEffect)(() => {
29661
29862
  function downHandler({ key }) {
29662
29863
  if (key === modifier) {
29663
29864
  setModifierHeld(true);
@@ -29678,10 +29879,26 @@ var useModifierHeld = (modifier) => {
29678
29879
  return modifierHeld;
29679
29880
  };
29680
29881
 
29882
+ // lib/is-ios.ts
29883
+ init_react_import();
29884
+ var isIos = () => [
29885
+ "iPad Simulator",
29886
+ "iPhone Simulator",
29887
+ "iPod Simulator",
29888
+ "iPad",
29889
+ "iPhone",
29890
+ "iPod"
29891
+ ].includes(navigator.platform) || // iPad on iOS 13 detection
29892
+ navigator.userAgent.includes("Mac") && "ontouchend" in document;
29893
+
29681
29894
  // components/DraggableComponent/index.tsx
29682
29895
  var import_react_spinners2 = require("react-spinners");
29683
- var import_jsx_runtime5 = require("react/jsx-runtime");
29896
+ var import_jsx_runtime7 = require("react/jsx-runtime");
29684
29897
  var getClassName4 = get_class_name_factory_default("DraggableComponent", styles_module_default3);
29898
+ var space = 8;
29899
+ var actionsOverlayTop = space * 6.5;
29900
+ var actionsTop = -(actionsOverlayTop - 8);
29901
+ var actionsRight = space;
29685
29902
  var DraggableComponent = ({
29686
29903
  children,
29687
29904
  id,
@@ -29704,15 +29921,25 @@ var DraggableComponent = ({
29704
29921
  indicativeHover = false,
29705
29922
  style
29706
29923
  }) => {
29924
+ const { zoomConfig } = useAppContext();
29707
29925
  const isModifierHeld = useModifierHeld("Alt");
29708
- (0, import_react6.useEffect)(onMount, []);
29709
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
29710
- import_dnd3.Draggable,
29926
+ const { status } = useAppContext();
29927
+ const El = status !== "LOADING" ? import_dnd3.Draggable : DefaultDraggable;
29928
+ (0, import_react7.useEffect)(onMount, []);
29929
+ const [disableSecondaryAnimation, setDisableSecondaryAnimation] = (0, import_react7.useState)(false);
29930
+ (0, import_react7.useEffect)(() => {
29931
+ if (isIos()) {
29932
+ setDisableSecondaryAnimation(true);
29933
+ }
29934
+ }, []);
29935
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
29936
+ El,
29711
29937
  {
29712
29938
  draggableId: id,
29713
29939
  index,
29714
29940
  isDragDisabled,
29715
- children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
29941
+ disableSecondaryAnimation,
29942
+ children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29716
29943
  "div",
29717
29944
  __spreadProps(__spreadValues(__spreadValues({
29718
29945
  ref: provided.innerRef
@@ -29735,13 +29962,34 @@ var DraggableComponent = ({
29735
29962
  onClick,
29736
29963
  children: [
29737
29964
  debug,
29738
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_spinners2.ClipLoader, { "aria-label": "loading", size: 16, color: "inherit" }) }),
29739
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("overlay"), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: getClassName4("actions"), children: [
29740
- label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
29741
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Copy, { size: 16 }) }),
29742
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Trash, { size: 16 }) })
29743
- ] }) }),
29744
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("contents"), children })
29965
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_spinners2.ClipLoader, { "aria-label": "loading", size: 16, color: "inherit" }) }),
29966
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
29967
+ "div",
29968
+ {
29969
+ className: getClassName4("actionsOverlay"),
29970
+ style: {
29971
+ top: actionsOverlayTop / zoomConfig.zoom
29972
+ },
29973
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29974
+ "div",
29975
+ {
29976
+ className: getClassName4("actions"),
29977
+ style: {
29978
+ transform: `scale(${1 / zoomConfig.zoom}`,
29979
+ top: actionsTop / zoomConfig.zoom,
29980
+ right: actionsRight / zoomConfig.zoom
29981
+ },
29982
+ children: [
29983
+ label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
29984
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Copy, { size: 16 }) }),
29985
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Trash, { size: 16 }) })
29986
+ ]
29987
+ }
29988
+ )
29989
+ }
29990
+ ),
29991
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("overlay") }),
29992
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("contents"), children })
29745
29993
  ]
29746
29994
  })
29747
29995
  )
@@ -29750,45 +29998,13 @@ var DraggableComponent = ({
29750
29998
  );
29751
29999
  };
29752
30000
 
29753
- // components/DropZone/index.tsx
29754
- var import_dnd4 = require("@hello-pangea/dnd");
29755
-
29756
- // lib/get-item.ts
29757
- init_react_import();
29758
-
29759
- // lib/root-droppable-id.ts
29760
- init_react_import();
29761
- var rootDroppableId = "default-zone";
29762
-
29763
- // lib/setup-zone.ts
29764
- init_react_import();
29765
- var setupZone = (data, zoneKey) => {
29766
- if (zoneKey === rootDroppableId) {
29767
- return data;
29768
- }
29769
- const newData = __spreadValues({}, data);
29770
- newData.zones = data.zones || {};
29771
- newData.zones[zoneKey] = newData.zones[zoneKey] || [];
29772
- return newData;
29773
- };
29774
-
29775
- // lib/get-item.ts
29776
- var getItem = (selector, data, dynamicProps = {}) => {
29777
- if (!selector.zone || selector.zone === rootDroppableId) {
29778
- const item2 = data.content[selector.index];
29779
- return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
29780
- }
29781
- const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
29782
- return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
29783
- };
29784
-
29785
30001
  // css-module:/home/runner/work/puck/puck/packages/core/components/DropZone/styles.module.css#css-module
29786
30002
  init_react_import();
29787
- var styles_module_default4 = { "DropZone": "_DropZone_utidm_1", "DropZone--zoomEnabled": "_DropZone--zoomEnabled_utidm_10", "DropZone-renderWrapper": "_DropZone-renderWrapper_utidm_14", "DropZone-content": "_DropZone-content_utidm_18", "DropZone--userIsDragging": "_DropZone--userIsDragging_utidm_23", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_utidm_27", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_utidm_28", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_utidm_34", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_utidm_35", "DropZone--isDisabled": "_DropZone--isDisabled_utidm_36", "DropZone--isRootZone": "_DropZone--isRootZone_utidm_37", "DropZone--hasChildren": "_DropZone--hasChildren_utidm_43", "DropZone--isDestination": "_DropZone--isDestination_utidm_48", "DropZone-item": "_DropZone-item_utidm_56", "DropZone-hitbox": "_DropZone-hitbox_utidm_60" };
30003
+ var styles_module_default4 = { "DropZone": "_DropZone_jtf9d_1", "DropZone-content": "_DropZone-content_jtf9d_10", "DropZone--userIsDragging": "_DropZone--userIsDragging_jtf9d_15", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_jtf9d_19", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_jtf9d_20", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_jtf9d_26", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_jtf9d_27", "DropZone--isDisabled": "_DropZone--isDisabled_jtf9d_28", "DropZone--isRootZone": "_DropZone--isRootZone_jtf9d_29", "DropZone--hasChildren": "_DropZone--hasChildren_jtf9d_30", "DropZone--isDestination": "_DropZone--isDestination_jtf9d_40", "DropZone-item": "_DropZone-item_jtf9d_48", "DropZone-hitbox": "_DropZone-hitbox_jtf9d_52" };
29788
30004
 
29789
30005
  // components/DropZone/context.tsx
29790
30006
  init_react_import();
29791
- var import_react7 = require("react");
30007
+ var import_react8 = require("react");
29792
30008
  var import_use_debounce = require("use-debounce");
29793
30009
 
29794
30010
  // lib/get-zone-id.ts
@@ -29804,30 +30020,30 @@ var getZoneId = (zoneCompound) => {
29804
30020
  };
29805
30021
 
29806
30022
  // components/DropZone/context.tsx
29807
- var import_jsx_runtime6 = require("react/jsx-runtime");
29808
- var dropZoneContext = (0, import_react7.createContext)(null);
30023
+ var import_jsx_runtime8 = require("react/jsx-runtime");
30024
+ var dropZoneContext = (0, import_react8.createContext)(null);
29809
30025
  var DropZoneProvider = ({
29810
30026
  children,
29811
30027
  value
29812
30028
  }) => {
29813
- const [hoveringArea, setHoveringArea] = (0, import_react7.useState)(null);
29814
- const [hoveringZone, setHoveringZone] = (0, import_react7.useState)(
30029
+ const [hoveringArea, setHoveringArea] = (0, import_react8.useState)(null);
30030
+ const [hoveringZone, setHoveringZone] = (0, import_react8.useState)(
29815
30031
  rootDroppableId
29816
30032
  );
29817
- const [hoveringComponent, setHoveringComponent] = (0, import_react7.useState)();
30033
+ const [hoveringComponent, setHoveringComponent] = (0, import_react8.useState)();
29818
30034
  const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
29819
- const [areasWithZones, setAreasWithZones] = (0, import_react7.useState)(
30035
+ const [areasWithZones, setAreasWithZones] = (0, import_react8.useState)(
29820
30036
  {}
29821
30037
  );
29822
- const [activeZones, setActiveZones] = (0, import_react7.useState)({});
30038
+ const [activeZones, setActiveZones] = (0, import_react8.useState)({});
29823
30039
  const { dispatch = null } = value ? value : {};
29824
- const registerZoneArea = (0, import_react7.useCallback)(
30040
+ const registerZoneArea = (0, import_react8.useCallback)(
29825
30041
  (area) => {
29826
30042
  setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
29827
30043
  },
29828
30044
  [setAreasWithZones]
29829
30045
  );
29830
- const registerZone = (0, import_react7.useCallback)(
30046
+ const registerZone = (0, import_react8.useCallback)(
29831
30047
  (zoneCompound) => {
29832
30048
  if (!dispatch) {
29833
30049
  return;
@@ -29840,7 +30056,7 @@ var DropZoneProvider = ({
29840
30056
  },
29841
30057
  [setActiveZones, dispatch]
29842
30058
  );
29843
- const unregisterZone = (0, import_react7.useCallback)(
30059
+ const unregisterZone = (0, import_react8.useCallback)(
29844
30060
  (zoneCompound) => {
29845
30061
  if (!dispatch) {
29846
30062
  return;
@@ -29855,8 +30071,8 @@ var DropZoneProvider = ({
29855
30071
  },
29856
30072
  [setActiveZones, dispatch]
29857
30073
  );
29858
- const [pathData, setPathData] = (0, import_react7.useState)();
29859
- const registerPath = (0, import_react7.useCallback)(
30074
+ const [pathData, setPathData] = (0, import_react8.useState)();
30075
+ const registerPath = (0, import_react8.useCallback)(
29860
30076
  (selector) => {
29861
30077
  if (!(value == null ? void 0 : value.data)) {
29862
30078
  return;
@@ -29881,7 +30097,8 @@ var DropZoneProvider = ({
29881
30097
  },
29882
30098
  [value, setPathData]
29883
30099
  );
29884
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
30100
+ const [zoneWillDrag, setZoneWillDrag] = (0, import_react8.useState)("");
30101
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
29885
30102
  dropZoneContext.Provider,
29886
30103
  {
29887
30104
  value: __spreadValues({
@@ -29897,57 +30114,17 @@ var DropZoneProvider = ({
29897
30114
  unregisterZone,
29898
30115
  activeZones,
29899
30116
  registerPath,
29900
- pathData
30117
+ pathData,
30118
+ zoneWillDrag,
30119
+ setZoneWillDrag
29901
30120
  }, value),
29902
30121
  children
29903
30122
  }
29904
30123
  ) });
29905
30124
  };
29906
30125
 
29907
- // components/Puck/context.tsx
29908
- init_react_import();
29909
- var import_react8 = require("react");
29910
- var defaultAppState = {
29911
- data: { content: [], root: { props: { title: "" } } },
29912
- ui: {
29913
- leftSideBarVisible: true,
29914
- rightSideBarVisible: true,
29915
- arrayState: {},
29916
- itemSelector: null,
29917
- componentList: {},
29918
- isDragging: false
29919
- }
29920
- };
29921
- var appContext = (0, import_react8.createContext)({
29922
- state: defaultAppState,
29923
- dispatch: () => null,
29924
- config: { components: {} },
29925
- componentState: {},
29926
- resolveData: () => {
29927
- },
29928
- plugins: [],
29929
- overrides: {},
29930
- history: {}
29931
- });
29932
- var AppProvider = appContext.Provider;
29933
- function useAppContext() {
29934
- const mainContext = (0, import_react8.useContext)(appContext);
29935
- const selectedItem = mainContext.state.ui.itemSelector ? getItem(mainContext.state.ui.itemSelector, mainContext.state.data) : void 0;
29936
- return __spreadProps(__spreadValues({}, mainContext), {
29937
- // Helpers
29938
- selectedItem,
29939
- setUi: (ui, recordHistory) => {
29940
- return mainContext.dispatch({
29941
- type: "setUi",
29942
- ui,
29943
- recordHistory
29944
- });
29945
- }
29946
- });
29947
- }
29948
-
29949
30126
  // components/DropZone/index.tsx
29950
- var import_jsx_runtime7 = require("react/jsx-runtime");
30127
+ var import_jsx_runtime9 = require("react/jsx-runtime");
29951
30128
  var getClassName5 = get_class_name_factory_default("DropZone", styles_module_default4);
29952
30129
  function DropZoneEdit({ zone, allow, disallow, style }) {
29953
30130
  var _a;
@@ -29966,7 +30143,8 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29966
30143
  registerZoneArea,
29967
30144
  areasWithZones,
29968
30145
  hoveringComponent,
29969
- disableZoom = false
30146
+ zoneWillDrag,
30147
+ setZoneWillDrag = () => null
29970
30148
  } = ctx || {};
29971
30149
  let content = data.content || [];
29972
30150
  let zoneCompound = rootDroppableId;
@@ -29996,12 +30174,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29996
30174
  const draggedDestinationId = draggedItem && ((_a = draggedItem.destination) == null ? void 0 : _a.droppableId);
29997
30175
  const [zoneArea] = getZoneId(zoneCompound);
29998
30176
  const [draggedSourceArea] = getZoneId(draggedSourceId);
29999
- const [userWillDrag, setUserWillDrag] = (0, import_react9.useState)(false);
30177
+ const userWillDrag = zoneWillDrag === zone;
30000
30178
  const userIsDragging = !!draggedItem;
30001
30179
  const draggingOverArea = userIsDragging && zoneArea === draggedSourceArea;
30002
30180
  const draggingNewComponent = draggedSourceId == null ? void 0 : draggedSourceId.startsWith("component-list");
30003
30181
  if (!(ctx == null ? void 0 : ctx.config) || !ctx.setHoveringArea || !ctx.setHoveringZone || !ctx.setHoveringComponent || !ctx.setItemSelector || !ctx.registerPath || !ctx.dispatch) {
30004
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { children: "DropZone requires context to work." });
30182
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: "DropZone requires context to work." });
30005
30183
  }
30006
30184
  const {
30007
30185
  hoveringArea = "root",
@@ -30038,7 +30216,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30038
30216
  }
30039
30217
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
30040
30218
  const isAreaSelected = selectedItem && zoneArea === selectedItem.props.id;
30041
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30219
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30042
30220
  "div",
30043
30221
  {
30044
30222
  className: getClassName5({
@@ -30050,17 +30228,19 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30050
30228
  isDestination: draggedDestinationId === zoneCompound,
30051
30229
  isDisabled: !isEnabled,
30052
30230
  isAreaSelected,
30053
- hasChildren: content.length > 0,
30054
- zoomEnabled: !disableZoom
30231
+ hasChildren: content.length > 0
30055
30232
  }),
30056
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30057
- import_dnd4.Droppable,
30233
+ onMouseUp: () => {
30234
+ setZoneWillDrag("");
30235
+ },
30236
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30237
+ Droppable,
30058
30238
  {
30059
30239
  droppableId: zoneCompound,
30060
30240
  direction: "vertical",
30061
30241
  isDropDisabled: !isEnabled,
30062
30242
  children: (provided, snapshot) => {
30063
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30243
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30064
30244
  "div",
30065
30245
  __spreadProps(__spreadValues({}, (provided || { droppableProps: {} }).droppableProps), {
30066
30246
  className: getClassName5("content"),
@@ -30074,7 +30254,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30074
30254
  },
30075
30255
  children: [
30076
30256
  content.map((item, i) => {
30077
- var _a2, _b;
30257
+ var _a2, _b, _c;
30078
30258
  const componentId = item.props.id;
30079
30259
  const defaultedProps = __spreadProps(__spreadValues(__spreadValues({}, (_a2 = config.components[item.type]) == null ? void 0 : _a2.defaultProps), item.props), {
30080
30260
  puck: { renderDropZone: DropZone },
@@ -30085,33 +30265,33 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30085
30265
  "draggable-"
30086
30266
  )[1] === componentId;
30087
30267
  const containsZone = areasWithZones ? areasWithZones[componentId] : false;
30088
- const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { padding: 48, textAlign: "center" }, children: [
30268
+ const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { padding: 48, textAlign: "center" }, children: [
30089
30269
  "No configuration for ",
30090
30270
  item.type
30091
30271
  ] });
30092
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30272
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30093
30273
  "div",
30094
30274
  {
30095
30275
  className: getClassName5("item"),
30096
30276
  style: { zIndex: isDragging ? 1 : void 0 },
30097
30277
  children: [
30098
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30278
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30099
30279
  DropZoneProvider,
30100
30280
  {
30101
30281
  value: __spreadProps(__spreadValues({}, ctx), {
30102
30282
  areaId: componentId
30103
30283
  }),
30104
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30284
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30105
30285
  DraggableComponent,
30106
30286
  {
30107
- label: item.type.toString(),
30287
+ label: (_b = config.components[item.type]["label"]) != null ? _b : item.type.toString(),
30108
30288
  id: `draggable-${componentId}`,
30109
30289
  index: i,
30110
30290
  isSelected,
30111
30291
  isLocked: userIsDragging,
30112
30292
  forceHover: hoveringComponent === componentId && !userIsDragging,
30113
30293
  indicativeHover: userIsDragging && containsZone && hoveringArea === componentId,
30114
- isLoading: (_b = appContext2.componentState[componentId]) == null ? void 0 : _b.loading,
30294
+ isLoading: (_c = appContext2.componentState[componentId]) == null ? void 0 : _c.loading,
30115
30295
  onMount: () => {
30116
30296
  ctx.registerPath({
30117
30297
  index: i,
@@ -30127,11 +30307,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30127
30307
  },
30128
30308
  onMouseDown: (e) => {
30129
30309
  e.stopPropagation();
30130
- setUserWillDrag(true);
30131
- },
30132
- onMouseUp: (e) => {
30133
- e.stopPropagation();
30134
- setUserWillDrag(false);
30310
+ setZoneWillDrag(zone);
30135
30311
  },
30136
30312
  onMouseOver: (e) => {
30137
30313
  e.stopPropagation();
@@ -30172,12 +30348,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30172
30348
  style: {
30173
30349
  pointerEvents: userIsDragging && draggingNewComponent ? "all" : void 0
30174
30350
  },
30175
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30351
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30176
30352
  }
30177
30353
  )
30178
30354
  }
30179
30355
  ),
30180
- userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30356
+ userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30181
30357
  "div",
30182
30358
  {
30183
30359
  className: getClassName5("hitbox"),
@@ -30194,7 +30370,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30194
30370
  );
30195
30371
  }),
30196
30372
  provided == null ? void 0 : provided.placeholder,
30197
- (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30373
+ (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30198
30374
  "div",
30199
30375
  {
30200
30376
  "data-puck-placeholder": true,
@@ -30226,14 +30402,14 @@ function DropZoneRender({ zone }) {
30226
30402
  zoneCompound = `${areaId}:${zone}`;
30227
30403
  content = setupZone(data, zoneCompound).zones[zoneCompound];
30228
30404
  }
30229
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: content.map((item) => {
30405
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: content.map((item) => {
30230
30406
  const Component = config.components[item.type];
30231
30407
  if (Component) {
30232
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30408
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30233
30409
  DropZoneProvider,
30234
30410
  {
30235
30411
  value: { data, config, areaId: item.props.id },
30236
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30412
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30237
30413
  Component.render,
30238
30414
  __spreadProps(__spreadValues({}, item.props), {
30239
30415
  puck: { renderDropZone: DropZone }
@@ -30249,9 +30425,9 @@ function DropZoneRender({ zone }) {
30249
30425
  function DropZone(props) {
30250
30426
  const ctx = (0, import_react9.useContext)(dropZoneContext);
30251
30427
  if ((ctx == null ? void 0 : ctx.mode) === "edit") {
30252
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneEdit, __spreadValues({}, props));
30428
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneEdit, __spreadValues({}, props));
30253
30429
  }
30254
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneRender, __spreadValues({}, props));
30430
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneRender, __spreadValues({}, props));
30255
30431
  }
30256
30432
 
30257
30433
  // components/IconButton/index.ts
@@ -30263,11 +30439,11 @@ var import_react10 = require("react");
30263
30439
 
30264
30440
  // css-module:/home/runner/work/puck/puck/packages/core/components/IconButton/IconButton.module.css#css-module
30265
30441
  init_react_import();
30266
- var IconButton_module_default = { "IconButton": "_IconButton_1xqlg_1", "IconButton-title": "_IconButton-title_1xqlg_33" };
30442
+ var IconButton_module_default = { "IconButton": "_IconButton_swpni_1", "IconButton--disabled": "_IconButton--disabled_swpni_20", "IconButton-title": "_IconButton-title_swpni_33" };
30267
30443
 
30268
30444
  // components/IconButton/IconButton.tsx
30269
30445
  var import_react_spinners3 = require("react-spinners");
30270
- var import_jsx_runtime8 = require("react/jsx-runtime");
30446
+ var import_jsx_runtime10 = require("react/jsx-runtime");
30271
30447
  var getClassName6 = get_class_name_factory_default("IconButton", IconButton_module_default);
30272
30448
  var IconButton = ({
30273
30449
  children,
@@ -30283,7 +30459,7 @@ var IconButton = ({
30283
30459
  }) => {
30284
30460
  const [loading, setLoading] = (0, import_react10.useState)(false);
30285
30461
  const ElementType = href ? "a" : "button";
30286
- const el = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
30462
+ const el = /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30287
30463
  ElementType,
30288
30464
  {
30289
30465
  className: getClassName6({
@@ -30308,11 +30484,11 @@ var IconButton = ({
30308
30484
  href,
30309
30485
  title,
30310
30486
  children: [
30311
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: getClassName6("title"), children: title }),
30487
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: getClassName6("title"), children: title }),
30312
30488
  children,
30313
- loading && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
30489
+ loading && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
30314
30490
  "\xA0\xA0",
30315
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30491
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30316
30492
  ] })
30317
30493
  ]
30318
30494
  }
@@ -30322,14 +30498,25 @@ var IconButton = ({
30322
30498
 
30323
30499
  // components/Puck/index.tsx
30324
30500
  init_react_import();
30325
- var import_react26 = require("react");
30326
- var import_dnd7 = require("@hello-pangea/dnd");
30501
+ var import_react28 = require("react");
30327
30502
 
30328
30503
  // lib/use-placeholder-style.ts
30329
30504
  init_react_import();
30330
30505
  var import_react11 = require("react");
30331
- var usePlaceholderStyle = () => {
30332
- const queryAttr = "data-rfd-drag-handle-draggable-id";
30506
+
30507
+ // lib/get-frame.ts
30508
+ init_react_import();
30509
+ var getFrame = () => {
30510
+ let frame = document.querySelector("#preview-frame");
30511
+ if ((frame == null ? void 0 : frame.tagName) === "IFRAME") {
30512
+ frame = frame.contentDocument;
30513
+ }
30514
+ return frame;
30515
+ };
30516
+
30517
+ // lib/use-placeholder-style.ts
30518
+ var usePlaceholderStyle = () => {
30519
+ const queryAttr = "data-rfd-drag-handle-draggable-id";
30333
30520
  const [placeholderStyle, setPlaceholderStyle] = (0, import_react11.useState)();
30334
30521
  const onDragStartOrUpdate = (draggedItem) => {
30335
30522
  var _a;
@@ -30337,11 +30524,12 @@ var usePlaceholderStyle = () => {
30337
30524
  const destinationIndex = (draggedItem.destination || draggedItem.source).index;
30338
30525
  const droppableId = (draggedItem.destination || draggedItem.source).droppableId;
30339
30526
  const domQuery = `[${queryAttr}='${draggableId}']`;
30340
- const draggedDOM = document.querySelector(domQuery);
30527
+ const frame = getFrame();
30528
+ const draggedDOM = document.querySelector(domQuery) || (frame == null ? void 0 : frame.querySelector(domQuery));
30341
30529
  if (!draggedDOM) {
30342
30530
  return;
30343
30531
  }
30344
- const targetListElement = document.querySelector(
30532
+ const targetListElement = frame == null ? void 0 : frame.querySelector(
30345
30533
  `[data-rfd-droppable-id='${droppableId}']`
30346
30534
  );
30347
30535
  const { clientHeight } = draggedDOM;
@@ -30388,11 +30576,11 @@ init_react_import();
30388
30576
  var styles_module_default6 = { "Heading": "_Heading_qxrry_1", "Heading--xxxxl": "_Heading--xxxxl_qxrry_12", "Heading--xxxl": "_Heading--xxxl_qxrry_18", "Heading--xxl": "_Heading--xxl_qxrry_22", "Heading--xl": "_Heading--xl_qxrry_26", "Heading--l": "_Heading--l_qxrry_30", "Heading--m": "_Heading--m_qxrry_34", "Heading--s": "_Heading--s_qxrry_38", "Heading--xs": "_Heading--xs_qxrry_42" };
30389
30577
 
30390
30578
  // components/Heading/index.tsx
30391
- var import_jsx_runtime9 = require("react/jsx-runtime");
30579
+ var import_jsx_runtime11 = require("react/jsx-runtime");
30392
30580
  var getClassName7 = get_class_name_factory_default("Heading", styles_module_default6);
30393
30581
  var Heading = ({ children, rank, size = "m" }) => {
30394
30582
  const Tag = rank ? `h${rank}` : "span";
30395
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30583
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
30396
30584
  Tag,
30397
30585
  {
30398
30586
  className: getClassName7({
@@ -30471,7 +30659,7 @@ var useBreadcrumbs = (renderCount) => {
30471
30659
 
30472
30660
  // components/SidebarSection/index.tsx
30473
30661
  var import_react_spinners4 = require("react-spinners");
30474
- var import_jsx_runtime10 = require("react/jsx-runtime");
30662
+ var import_jsx_runtime12 = require("react/jsx-runtime");
30475
30663
  var getClassName8 = get_class_name_factory_default("SidebarSection", styles_module_default5);
30476
30664
  var SidebarSection = ({
30477
30665
  children,
@@ -30484,15 +30672,15 @@ var SidebarSection = ({
30484
30672
  }) => {
30485
30673
  const { setUi } = useAppContext();
30486
30674
  const breadcrumbs = useBreadcrumbs(1);
30487
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30675
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
30488
30676
  "div",
30489
30677
  {
30490
30678
  className: getClassName8({ noBorderTop, noPadding }),
30491
30679
  style: { background },
30492
30680
  children: [
30493
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
30494
- showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
30495
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
30681
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
30682
+ showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
30683
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
30496
30684
  "button",
30497
30685
  {
30498
30686
  className: getClassName8("breadcrumbLabel"),
@@ -30500,12 +30688,12 @@ var SidebarSection = ({
30500
30688
  children: breadcrumb.label
30501
30689
  }
30502
30690
  ),
30503
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronRight, { size: 16 })
30691
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { size: 16 })
30504
30692
  ] }, i)) : null,
30505
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading, { rank: 2, size: "xs", children: title }) })
30693
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Heading, { rank: 2, size: "xs", children: title }) })
30506
30694
  ] }) }),
30507
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("content"), children }),
30508
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spinners4.ClipLoader, { "aria-label": "loading" }) })
30695
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("content"), children }),
30696
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_spinners4.ClipLoader, { "aria-label": "loading" }) })
30509
30697
  ]
30510
30698
  }
30511
30699
  );
@@ -31011,7 +31199,10 @@ var useResolvedData = (appState, config, dispatch) => {
31011
31199
  );
31012
31200
  const runResolvers = () => __async(void 0, null, function* () {
31013
31201
  const newData = newAppState.data;
31014
- const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => !!config.components[item.type].resolveData);
31202
+ const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => {
31203
+ var _a;
31204
+ return !!((_a = config.components[item.type]) == null ? void 0 : _a.resolveData);
31205
+ });
31015
31206
  const applyIfChange = (dynamicDataMap, dynamicRoot) => {
31016
31207
  const processed = applyDynamicProps(
31017
31208
  appState.data,
@@ -31084,7 +31275,7 @@ init_react_import();
31084
31275
  var styles_module_default7 = { "MenuBar": "_MenuBar_8pf8c_1", "MenuBar--menuOpen": "_MenuBar--menuOpen_8pf8c_14", "MenuBar-inner": "_MenuBar-inner_8pf8c_29", "MenuBar-history": "_MenuBar-history_8pf8c_45" };
31085
31276
 
31086
31277
  // components/MenuBar/index.tsx
31087
- var import_jsx_runtime11 = require("react/jsx-runtime");
31278
+ var import_jsx_runtime13 = require("react/jsx-runtime");
31088
31279
  var getClassName9 = get_class_name_factory_default("MenuBar", styles_module_default7);
31089
31280
  var MenuBar = ({
31090
31281
  appState,
@@ -31099,7 +31290,7 @@ var MenuBar = ({
31099
31290
  history: { back, forward, historyStore }
31100
31291
  } = useAppContext();
31101
31292
  const { hasFuture = false, hasPast = false } = historyStore || {};
31102
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31293
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31103
31294
  "div",
31104
31295
  {
31105
31296
  className: getClassName9({ menuOpen }),
@@ -31113,16 +31304,16 @@ var MenuBar = ({
31113
31304
  setMenuOpen(false);
31114
31305
  }
31115
31306
  },
31116
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: getClassName9("inner"), children: [
31117
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: getClassName9("history"), children: [
31118
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31307
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("inner"), children: [
31308
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("history"), children: [
31309
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31119
31310
  ChevronLeft,
31120
31311
  {
31121
31312
  size: 21,
31122
31313
  stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31123
31314
  }
31124
31315
  ) }),
31125
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31316
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31126
31317
  ChevronRight,
31127
31318
  {
31128
31319
  size: 21,
@@ -31130,17 +31321,17 @@ var MenuBar = ({
31130
31321
  }
31131
31322
  ) })
31132
31323
  ] }),
31133
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: renderHeaderActions && renderHeaderActions({
31324
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: renderHeaderActions && renderHeaderActions({
31134
31325
  state: appState,
31135
31326
  dispatch
31136
31327
  }) }),
31137
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31328
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31138
31329
  Button,
31139
31330
  {
31140
31331
  onClick: () => {
31141
31332
  onPublish && onPublish(data);
31142
31333
  },
31143
- icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Globe, { size: "14px" }),
31334
+ icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Globe, { size: "14px" }),
31144
31335
  children: "Publish"
31145
31336
  }
31146
31337
  ) })
@@ -31151,7 +31342,7 @@ var MenuBar = ({
31151
31342
 
31152
31343
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/styles.module.css#css-module
31153
31344
  init_react_import();
31154
- var styles_module_default8 = { "Puck": "_Puck_1mnww_19", "Puck--leftSideBarVisible": "_Puck--leftSideBarVisible_1mnww_36", "Puck--rightSideBarVisible": "_Puck--rightSideBarVisible_1mnww_42", "Puck-header": "_Puck-header_1mnww_96", "Puck-headerInner": "_Puck-headerInner_1mnww_105", "Puck-headerToggle": "_Puck-headerToggle_1mnww_115", "Puck-rightSideBarToggle": "_Puck-rightSideBarToggle_1mnww_122", "Puck-leftSideBarToggle": "_Puck-leftSideBarToggle_1mnww_123", "Puck-headerTitle": "_Puck-headerTitle_1mnww_127", "Puck-headerPath": "_Puck-headerPath_1mnww_131", "Puck-headerTools": "_Puck-headerTools_1mnww_138", "Puck-menuButton": "_Puck-menuButton_1mnww_144", "Puck--menuOpen": "_Puck--menuOpen_1mnww_149", "Puck-leftSideBar": "_Puck-leftSideBar_1mnww_123", "Puck-frame": "_Puck-frame_1mnww_168", "Puck-root": "_Puck-root_1mnww_176", "Puck-rightSideBar": "_Puck-rightSideBar_1mnww_122" };
31345
+ var styles_module_default8 = { "Puck": "_Puck_1d0ul_19", "Puck--leftSideBarVisible": "_Puck--leftSideBarVisible_1d0ul_36", "Puck--rightSideBarVisible": "_Puck--rightSideBarVisible_1d0ul_42", "Puck-header": "_Puck-header_1d0ul_96", "Puck-headerInner": "_Puck-headerInner_1d0ul_105", "Puck-headerToggle": "_Puck-headerToggle_1d0ul_115", "Puck-rightSideBarToggle": "_Puck-rightSideBarToggle_1d0ul_122", "Puck-leftSideBarToggle": "_Puck-leftSideBarToggle_1d0ul_123", "Puck-headerTitle": "_Puck-headerTitle_1d0ul_127", "Puck-headerPath": "_Puck-headerPath_1d0ul_131", "Puck-headerTools": "_Puck-headerTools_1d0ul_138", "Puck-menuButton": "_Puck-menuButton_1d0ul_144", "Puck--menuOpen": "_Puck--menuOpen_1d0ul_149", "Puck-leftSideBar": "_Puck-leftSideBar_1d0ul_123", "Puck-rightSideBar": "_Puck-rightSideBar_1d0ul_122", "Puck-portal": "_Puck-portal_1d0ul_177" };
31155
31346
 
31156
31347
  // components/Puck/components/Fields/index.tsx
31157
31348
  init_react_import();
@@ -31175,13 +31366,24 @@ init_react_import();
31175
31366
 
31176
31367
  // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ArrayField/styles.module.css#css-module
31177
31368
  init_react_import();
31178
- var styles_module_default10 = { "ArrayField": "_ArrayField_1txra_5", "ArrayField--isDraggingFrom": "_ArrayField--isDraggingFrom_1txra_13", "ArrayField-addButton": "_ArrayField-addButton_1txra_17", "ArrayField--hasItems": "_ArrayField--hasItems_1txra_32", "ArrayFieldItem": "_ArrayFieldItem_1txra_61", "ArrayFieldItem--isDragging": "_ArrayFieldItem--isDragging_1txra_69", "ArrayFieldItem--isExpanded": "_ArrayFieldItem--isExpanded_1txra_74", "ArrayFieldItem-summary": "_ArrayFieldItem-summary_1txra_84", "ArrayFieldItem--readOnly": "_ArrayFieldItem--readOnly_1txra_108", "ArrayFieldItem-body": "_ArrayFieldItem-body_1txra_142", "ArrayFieldItem-fieldset": "_ArrayFieldItem-fieldset_1txra_150", "ArrayFieldItem-rhs": "_ArrayFieldItem-rhs_1txra_157", "ArrayFieldItem-actions": "_ArrayFieldItem-actions_1txra_163" };
31369
+ var styles_module_default10 = { "ArrayField": "_ArrayField_1lr58_5", "ArrayField--isDraggingFrom": "_ArrayField--isDraggingFrom_1lr58_13", "ArrayField-addButton": "_ArrayField-addButton_1lr58_18", "ArrayField--hasItems": "_ArrayField--hasItems_1lr58_33", "ArrayFieldItem": "_ArrayFieldItem_1lr58_63", "ArrayFieldItem--isDragging": "_ArrayFieldItem--isDragging_1lr58_71", "ArrayFieldItem--isExpanded": "_ArrayFieldItem--isExpanded_1lr58_81", "ArrayFieldItem-summary": "_ArrayFieldItem-summary_1lr58_97", "ArrayField--addDisabled": "_ArrayField--addDisabled_1lr58_128", "ArrayFieldItem-body": "_ArrayFieldItem-body_1lr58_164", "ArrayFieldItem-fieldset": "_ArrayFieldItem-fieldset_1lr58_173", "ArrayFieldItem-rhs": "_ArrayFieldItem-rhs_1lr58_180", "ArrayFieldItem-actions": "_ArrayFieldItem-actions_1lr58_186" };
31179
31370
 
31180
31371
  // components/InputOrGroup/fields/ArrayField/index.tsx
31181
- var import_dnd5 = require("@hello-pangea/dnd");
31182
- var import_dnd6 = require("@hello-pangea/dnd");
31183
31372
  var import_react14 = require("react");
31184
- var import_jsx_runtime12 = require("react/jsx-runtime");
31373
+
31374
+ // components/DragDropContext/index.tsx
31375
+ init_react_import();
31376
+ var import_dnd4 = require("@measured/dnd");
31377
+ var import_jsx_runtime14 = require("react/jsx-runtime");
31378
+ var DefaultDragDropContext = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
31379
+ var DragDropContext = (props) => {
31380
+ const { status } = useAppContext();
31381
+ const El = status !== "LOADING" ? import_dnd4.DragDropContext : DefaultDragDropContext;
31382
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(El, __spreadValues({}, props));
31383
+ };
31384
+
31385
+ // components/InputOrGroup/fields/ArrayField/index.tsx
31386
+ var import_jsx_runtime15 = require("react/jsx-runtime");
31185
31387
  var getClassName10 = get_class_name_factory_default("ArrayField", styles_module_default10);
31186
31388
  var getClassNameItem2 = get_class_name_factory_default("ArrayFieldItem", styles_module_default10);
31187
31389
  var ArrayField = ({
@@ -31245,21 +31447,24 @@ var ArrayField = ({
31245
31447
  [arrayState]
31246
31448
  );
31247
31449
  (0, import_react14.useEffect)(() => {
31248
- setUi(mapArrayStateToUi(arrayState));
31450
+ if (arrayState.items.length > 0) {
31451
+ setUi(mapArrayStateToUi(arrayState));
31452
+ }
31249
31453
  }, []);
31250
31454
  const [hovering, setHovering] = (0, import_react14.useState)(false);
31251
31455
  if (field.type !== "array" || !field.arrayFields) {
31252
31456
  return null;
31253
31457
  }
31254
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31458
+ const addDisabled = field.max !== void 0 && localState.arrayState.items.length >= field.max || readOnly;
31459
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31255
31460
  FieldLabelInternal,
31256
31461
  {
31257
31462
  label: label || name,
31258
- icon: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(List, { size: 16 }),
31463
+ icon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(List, { size: 16 }),
31259
31464
  el: "div",
31260
31465
  readOnly,
31261
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31262
- import_dnd6.DragDropContext,
31466
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31467
+ DragDropContext,
31263
31468
  {
31264
31469
  onDragEnd: (event) => {
31265
31470
  var _a, _b;
@@ -31285,14 +31490,15 @@ var ArrayField = ({
31285
31490
  });
31286
31491
  }
31287
31492
  },
31288
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_dnd5.Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
31289
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
31493
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
31494
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31290
31495
  "div",
31291
31496
  __spreadProps(__spreadValues({}, provided.droppableProps), {
31292
31497
  ref: provided.innerRef,
31293
31498
  className: getClassName10({
31294
31499
  isDraggingFrom: !!snapshot.draggingFromThisWith,
31295
- hasItems: Array.isArray(value) && value.length > 0
31500
+ hasItems: Array.isArray(value) && value.length > 0,
31501
+ addDisabled
31296
31502
  }),
31297
31503
  onMouseOver: (e) => {
31298
31504
  e.stopPropagation();
@@ -31306,7 +31512,7 @@ var ArrayField = ({
31306
31512
  localState.arrayState.items.map((item, i) => {
31307
31513
  const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
31308
31514
  const data = Array.from(localState.value || [])[i] || {};
31309
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31515
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31310
31516
  Draggable,
31311
31517
  {
31312
31518
  id: _arrayId,
@@ -31317,8 +31523,8 @@ var ArrayField = ({
31317
31523
  readOnly
31318
31524
  }),
31319
31525
  isDragDisabled: readOnly || !hovering,
31320
- children: () => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
31321
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
31526
+ children: () => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
31527
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31322
31528
  "div",
31323
31529
  {
31324
31530
  onClick: () => {
@@ -31339,10 +31545,12 @@ var ArrayField = ({
31339
31545
  className: getClassNameItem2("summary"),
31340
31546
  children: [
31341
31547
  field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
31342
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
31343
- !readOnly && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassNameItem2("actions"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassNameItem2("action"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31548
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
31549
+ !readOnly && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameItem2("actions"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameItem2("action"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31344
31550
  IconButton,
31345
31551
  {
31552
+ type: "button",
31553
+ disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
31346
31554
  onClick: (e) => {
31347
31555
  e.stopPropagation();
31348
31556
  const existingValue = [
@@ -31361,20 +31569,20 @@ var ArrayField = ({
31361
31569
  );
31362
31570
  },
31363
31571
  title: "Delete",
31364
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Trash, { size: 16 })
31572
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Trash, { size: 16 })
31365
31573
  }
31366
31574
  ) }) }),
31367
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DragIcon, {}) })
31575
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DragIcon, {}) })
31368
31576
  ] })
31369
31577
  ]
31370
31578
  }
31371
31579
  ),
31372
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassNameItem2("body"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("fieldset", { className: getClassNameItem2("fieldset"), children: Object.keys(field.arrayFields).map(
31580
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameItem2("body"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("fieldset", { className: getClassNameItem2("fieldset"), children: Object.keys(field.arrayFields).map(
31373
31581
  (fieldName) => {
31374
31582
  const subField = field.arrayFields[fieldName];
31375
31583
  const subFieldName = `${name}[${i}].${fieldName}`;
31376
31584
  const wildcardFieldName = `${name}[*].${fieldName}`;
31377
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31585
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31378
31586
  InputOrGroup,
31379
31587
  {
31380
31588
  name: subFieldName,
@@ -31403,9 +31611,10 @@ var ArrayField = ({
31403
31611
  );
31404
31612
  }),
31405
31613
  provided.placeholder,
31406
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31614
+ !addDisabled && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31407
31615
  "button",
31408
31616
  {
31617
+ type: "button",
31409
31618
  className: getClassName10("addButton"),
31410
31619
  onClick: () => {
31411
31620
  const existingValue = value || [];
@@ -31416,7 +31625,7 @@ var ArrayField = ({
31416
31625
  const newArrayState = regenerateArrayState(newValue);
31417
31626
  onChange(newValue, mapArrayStateToUi(newArrayState));
31418
31627
  },
31419
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Plus, { size: "21" })
31628
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Plus, { size: 21 })
31420
31629
  }
31421
31630
  )
31422
31631
  ]
@@ -31431,7 +31640,7 @@ var ArrayField = ({
31431
31640
 
31432
31641
  // components/InputOrGroup/fields/DefaultField/index.tsx
31433
31642
  init_react_import();
31434
- var import_jsx_runtime13 = require("react/jsx-runtime");
31643
+ var import_jsx_runtime16 = require("react/jsx-runtime");
31435
31644
  var getClassName11 = get_class_name_factory_default("Input", styles_module_default9);
31436
31645
  var DefaultField = ({
31437
31646
  field,
@@ -31442,16 +31651,16 @@ var DefaultField = ({
31442
31651
  label,
31443
31652
  id
31444
31653
  }) => {
31445
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31654
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31446
31655
  FieldLabelInternal,
31447
31656
  {
31448
31657
  label: label || name,
31449
- icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
31450
- field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Type, { size: 16 }),
31451
- field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Hash, { size: 16 })
31658
+ icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
31659
+ field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Type, { size: 16 }),
31660
+ field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Hash, { size: 16 })
31452
31661
  ] }),
31453
31662
  readOnly,
31454
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31663
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31455
31664
  "input",
31456
31665
  {
31457
31666
  className: getClassName11("input"),
@@ -31487,7 +31696,7 @@ var import_react16 = require("react");
31487
31696
 
31488
31697
  // css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
31489
31698
  init_react_import();
31490
- var styles_module_default11 = { "ExternalInput-actions": "_ExternalInput-actions_q3l5a_1", "ExternalInput-button": "_ExternalInput-button_q3l5a_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_q3l5a_25", "ExternalInput-detachButton": "_ExternalInput-detachButton_q3l5a_32", "ExternalInputModal": "_ExternalInputModal_q3l5a_74", "ExternalInputModal-grid": "_ExternalInputModal-grid_q3l5a_84", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_q3l5a_95", "ExternalInputModal-filters": "_ExternalInputModal-filters_q3l5a_100", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_q3l5a_119", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_q3l5a_128", "ExternalInputModal-table": "_ExternalInputModal-table_q3l5a_128", "ExternalInputModal-thead": "_ExternalInputModal-thead_q3l5a_144", "ExternalInputModal-th": "_ExternalInputModal-th_q3l5a_144", "ExternalInputModal-td": "_ExternalInputModal-td_q3l5a_159", "ExternalInputModal-tr": "_ExternalInputModal-tr_q3l5a_164", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_q3l5a_171", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_q3l5a_197", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_q3l5a_201", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_q3l5a_218", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_q3l5a_222", "ExternalInputModal-search": "_ExternalInputModal-search_q3l5a_222", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_q3l5a_259", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_q3l5a_284", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_q3l5a_294", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_q3l5a_308", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_q3l5a_321", "ExternalInputModal-footer": "_ExternalInputModal-footer_q3l5a_325" };
31699
+ var styles_module_default11 = { "ExternalInput-actions": "_ExternalInput-actions_19obq_1", "ExternalInput-button": "_ExternalInput-button_19obq_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_19obq_25", "ExternalInput-detachButton": "_ExternalInput-detachButton_19obq_32", "ExternalInputModal": "_ExternalInputModal_19obq_74", "ExternalInputModal-grid": "_ExternalInputModal-grid_19obq_84", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_19obq_95", "ExternalInputModal-filters": "_ExternalInputModal-filters_19obq_100", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_19obq_119", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_19obq_128", "ExternalInputModal-table": "_ExternalInputModal-table_19obq_128", "ExternalInputModal-thead": "_ExternalInputModal-thead_19obq_144", "ExternalInputModal-th": "_ExternalInputModal-th_19obq_144", "ExternalInputModal-td": "_ExternalInputModal-td_19obq_159", "ExternalInputModal-tr": "_ExternalInputModal-tr_19obq_164", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_19obq_171", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_19obq_197", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_19obq_201", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_19obq_218", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_19obq_222", "ExternalInputModal-search": "_ExternalInputModal-search_19obq_222", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_19obq_259", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_19obq_284", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_19obq_294", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_19obq_308", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_19obq_321", "ExternalInputModal-footer": "_ExternalInputModal-footer_19obq_325" };
31491
31700
 
31492
31701
  // components/Modal/index.tsx
31493
31702
  init_react_import();
@@ -31495,11 +31704,11 @@ var import_react15 = require("react");
31495
31704
 
31496
31705
  // css-module:/home/runner/work/puck/puck/packages/core/components/Modal/styles.module.css#css-module
31497
31706
  init_react_import();
31498
- var styles_module_default12 = { "Modal": "_Modal_zud0i_1", "Modal--isOpen": "_Modal--isOpen_zud0i_15", "Modal-inner": "_Modal-inner_zud0i_19" };
31707
+ var styles_module_default12 = { "Modal": "_Modal_ikbaj_1", "Modal--isOpen": "_Modal--isOpen_ikbaj_15", "Modal-inner": "_Modal-inner_ikbaj_19" };
31499
31708
 
31500
31709
  // components/Modal/index.tsx
31501
31710
  var import_react_dom = __toESM(require_react_dom());
31502
- var import_jsx_runtime14 = require("react/jsx-runtime");
31711
+ var import_jsx_runtime17 = require("react/jsx-runtime");
31503
31712
  var getClassName12 = get_class_name_factory_default("Modal", styles_module_default12);
31504
31713
  var Modal = ({
31505
31714
  children,
@@ -31511,10 +31720,10 @@ var Modal = ({
31511
31720
  setRootEl(document.getElementById("puck-portal-root"));
31512
31721
  }, []);
31513
31722
  if (!rootEl) {
31514
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", {});
31723
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {});
31515
31724
  }
31516
31725
  return (0, import_react_dom.createPortal)(
31517
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
31726
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31518
31727
  "div",
31519
31728
  {
31520
31729
  className: getClassName12("inner"),
@@ -31528,7 +31737,7 @@ var Modal = ({
31528
31737
 
31529
31738
  // components/ExternalInput/index.tsx
31530
31739
  var import_react_spinners5 = require("react-spinners");
31531
- var import_jsx_runtime15 = require("react/jsx-runtime");
31740
+ var import_jsx_runtime18 = require("react/jsx-runtime");
31532
31741
  var getClassName13 = get_class_name_factory_default("ExternalInput", styles_module_default11);
31533
31742
  var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_module_default11);
31534
31743
  var dataCache = {};
@@ -31568,7 +31777,7 @@ var ExternalInput = ({
31568
31777
  const search = (0, import_react16.useCallback)(
31569
31778
  (query, filters2) => __async(void 0, null, function* () {
31570
31779
  setIsLoading(true);
31571
- const cacheKey = `${id}-${name}-${query}-${JSON.stringify(filters2)}`;
31780
+ const cacheKey = `${id}-${query}-${JSON.stringify(filters2)}`;
31572
31781
  const listData = dataCache[cacheKey] || (yield field.fetchList({ query, filters: filters2 }));
31573
31782
  if (listData) {
31574
31783
  setData(listData);
@@ -31581,7 +31790,7 @@ var ExternalInput = ({
31581
31790
  (0, import_react16.useEffect)(() => {
31582
31791
  search(searchQuery, filters);
31583
31792
  }, []);
31584
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31793
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31585
31794
  "div",
31586
31795
  {
31587
31796
  className: getClassName13({
@@ -31590,30 +31799,31 @@ var ExternalInput = ({
31590
31799
  }),
31591
31800
  id,
31592
31801
  children: [
31593
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName13("actions"), children: [
31594
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31802
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassName13("actions"), children: [
31803
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31595
31804
  "button",
31596
31805
  {
31806
+ type: "button",
31597
31807
  onClick: () => setOpen(true),
31598
31808
  className: getClassName13("button"),
31599
- children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
31600
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Link, { size: "16" }),
31601
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: field.placeholder })
31809
+ children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
31810
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { size: "16" }),
31811
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: field.placeholder })
31602
31812
  ] })
31603
31813
  }
31604
31814
  ),
31605
- value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31815
+ value && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31606
31816
  "button",
31607
31817
  {
31608
31818
  className: getClassName13("detachButton"),
31609
31819
  onClick: () => {
31610
31820
  onChange(null);
31611
31821
  },
31612
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Unlock, { size: 16 })
31822
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Unlock, { size: 16 })
31613
31823
  }
31614
31824
  )
31615
31825
  ] }),
31616
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31826
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31617
31827
  "form",
31618
31828
  {
31619
31829
  className: getClassNameModal({
@@ -31627,11 +31837,11 @@ var ExternalInput = ({
31627
31837
  search(searchQuery, filters);
31628
31838
  },
31629
31839
  children: [
31630
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
31631
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: getClassNameModal("search"), children: [
31632
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31633
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Search, { size: "18" }) }),
31634
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31840
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
31841
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: getClassNameModal("search"), children: [
31842
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31843
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "18" }) }),
31844
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31635
31845
  "input",
31636
31846
  {
31637
31847
  className: getClassNameModal("searchInput"),
@@ -31646,9 +31856,9 @@ var ExternalInput = ({
31646
31856
  }
31647
31857
  )
31648
31858
  ] }),
31649
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
31650
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
31651
- hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31859
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
31860
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
31861
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31652
31862
  IconButton,
31653
31863
  {
31654
31864
  title: "Toggle filters",
@@ -31657,15 +31867,15 @@ var ExternalInput = ({
31657
31867
  e.stopPropagation();
31658
31868
  setFiltersToggled(!filtersToggled);
31659
31869
  },
31660
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlidersHorizontal, { size: 20 })
31870
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SlidersHorizontal, { size: 20 })
31661
31871
  }
31662
31872
  ) })
31663
31873
  ] })
31664
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
31665
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("grid"), children: [
31666
- hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
31874
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
31875
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("grid"), children: [
31876
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
31667
31877
  const filterField = filterFields[fieldName];
31668
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31878
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31669
31879
  InputOrGroup,
31670
31880
  {
31671
31881
  field: filterField,
@@ -31682,9 +31892,9 @@ var ExternalInput = ({
31682
31892
  fieldName
31683
31893
  );
31684
31894
  }) }),
31685
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
31686
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("table", { className: getClassNameModal("table"), children: [
31687
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("thead", { className: getClassNameModal("thead"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tr", { className: getClassNameModal("tr"), children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31895
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
31896
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: getClassNameModal("table"), children: [
31897
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("thead", { className: getClassNameModal("thead"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tr", { className: getClassNameModal("tr"), children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31688
31898
  "th",
31689
31899
  {
31690
31900
  className: getClassNameModal("th"),
@@ -31693,8 +31903,8 @@ var ExternalInput = ({
31693
31903
  },
31694
31904
  key
31695
31905
  )) }) }),
31696
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
31697
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31906
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
31907
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31698
31908
  "tr",
31699
31909
  {
31700
31910
  style: { whiteSpace: "nowrap" },
@@ -31703,16 +31913,16 @@ var ExternalInput = ({
31703
31913
  onChange(mapProp(data[i]));
31704
31914
  setOpen(false);
31705
31915
  },
31706
- children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
31916
+ children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
31707
31917
  },
31708
31918
  i
31709
31919
  );
31710
31920
  }) })
31711
31921
  ] }),
31712
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("loadingBanner"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_spinners5.ClipLoader, { size: 24, "aria-label": "Loading" }) })
31922
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("loadingBanner"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_spinners5.ClipLoader, { size: 24, "aria-label": "Loading" }) })
31713
31923
  ] })
31714
31924
  ] }),
31715
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("footer"), children: [
31925
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("footer"), children: [
31716
31926
  mappedData.length,
31717
31927
  " result",
31718
31928
  mappedData.length === 1 ? "" : "s"
@@ -31726,7 +31936,7 @@ var ExternalInput = ({
31726
31936
  };
31727
31937
 
31728
31938
  // components/InputOrGroup/fields/ExternalField/index.tsx
31729
- var import_jsx_runtime16 = require("react/jsx-runtime");
31939
+ var import_jsx_runtime19 = require("react/jsx-runtime");
31730
31940
  var ExternalField = ({
31731
31941
  field,
31732
31942
  onChange,
@@ -31748,13 +31958,13 @@ var ExternalField = ({
31748
31958
  if (field.type !== "external") {
31749
31959
  return null;
31750
31960
  }
31751
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31961
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31752
31962
  FieldLabelInternal,
31753
31963
  {
31754
31964
  label: label || name,
31755
- icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { size: 16 }),
31965
+ icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { size: 16 }),
31756
31966
  el: "div",
31757
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31967
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31758
31968
  ExternalInput,
31759
31969
  {
31760
31970
  name,
@@ -31780,7 +31990,7 @@ var ExternalField = ({
31780
31990
 
31781
31991
  // components/InputOrGroup/fields/RadioField/index.tsx
31782
31992
  init_react_import();
31783
- var import_jsx_runtime17 = require("react/jsx-runtime");
31993
+ var import_jsx_runtime20 = require("react/jsx-runtime");
31784
31994
  var getClassName14 = get_class_name_factory_default("Input", styles_module_default9);
31785
31995
  var RadioField = ({
31786
31996
  field,
@@ -31794,19 +32004,19 @@ var RadioField = ({
31794
32004
  if (field.type !== "radio" || !field.options) {
31795
32005
  return null;
31796
32006
  }
31797
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32007
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31798
32008
  FieldLabelInternal,
31799
32009
  {
31800
- icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CheckCircle, { size: 16 }),
32010
+ icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckCircle, { size: 16 }),
31801
32011
  label: label || name,
31802
32012
  readOnly,
31803
32013
  el: "div",
31804
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
32014
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
31805
32015
  "label",
31806
32016
  {
31807
32017
  className: getClassName14("radio"),
31808
32018
  children: [
31809
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32019
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31810
32020
  "input",
31811
32021
  {
31812
32022
  type: "radio",
@@ -31824,7 +32034,7 @@ var RadioField = ({
31824
32034
  defaultChecked: value === option.value
31825
32035
  }
31826
32036
  ),
31827
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
32037
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
31828
32038
  ]
31829
32039
  },
31830
32040
  option.label + option.value
@@ -31835,7 +32045,7 @@ var RadioField = ({
31835
32045
 
31836
32046
  // components/InputOrGroup/fields/SelectField/index.tsx
31837
32047
  init_react_import();
31838
- var import_jsx_runtime18 = require("react/jsx-runtime");
32048
+ var import_jsx_runtime21 = require("react/jsx-runtime");
31839
32049
  var getClassName15 = get_class_name_factory_default("Input", styles_module_default9);
31840
32050
  var SelectField = ({
31841
32051
  field,
@@ -31849,13 +32059,13 @@ var SelectField = ({
31849
32059
  if (field.type !== "select" || !field.options) {
31850
32060
  return null;
31851
32061
  }
31852
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32062
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31853
32063
  FieldLabelInternal,
31854
32064
  {
31855
32065
  label: label || name,
31856
- icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDown, { size: 16 }),
32066
+ icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronDown, { size: 16 }),
31857
32067
  readOnly,
31858
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32068
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31859
32069
  "select",
31860
32070
  {
31861
32071
  id,
@@ -31869,7 +32079,7 @@ var SelectField = ({
31869
32079
  onChange(e.currentTarget.value);
31870
32080
  },
31871
32081
  value,
31872
- children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32082
+ children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31873
32083
  "option",
31874
32084
  {
31875
32085
  label: option.label,
@@ -31885,7 +32095,7 @@ var SelectField = ({
31885
32095
 
31886
32096
  // components/InputOrGroup/fields/TextareaField/index.tsx
31887
32097
  init_react_import();
31888
- var import_jsx_runtime19 = require("react/jsx-runtime");
32098
+ var import_jsx_runtime22 = require("react/jsx-runtime");
31889
32099
  var getClassName16 = get_class_name_factory_default("Input", styles_module_default9);
31890
32100
  var TextareaField = ({
31891
32101
  onChange,
@@ -31895,13 +32105,13 @@ var TextareaField = ({
31895
32105
  label,
31896
32106
  id
31897
32107
  }) => {
31898
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32108
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31899
32109
  FieldLabelInternal,
31900
32110
  {
31901
32111
  label: label || name,
31902
- icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Type, { size: 16 }),
32112
+ icon: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Type, { size: 16 }),
31903
32113
  readOnly,
31904
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32114
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31905
32115
  "textarea",
31906
32116
  {
31907
32117
  id,
@@ -31930,7 +32140,7 @@ init_react_import();
31930
32140
  var styles_module_default13 = { "ObjectField": "_ObjectField_15j63_5", "ObjectField-fieldset": "_ObjectField-fieldset_15j63_13" };
31931
32141
 
31932
32142
  // components/InputOrGroup/fields/ObjectField/index.tsx
31933
- var import_jsx_runtime20 = require("react/jsx-runtime");
32143
+ var import_jsx_runtime23 = require("react/jsx-runtime");
31934
32144
  var getClassName17 = get_class_name_factory_default("ObjectField", styles_module_default13);
31935
32145
  var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_module_default13);
31936
32146
  var ObjectField = ({
@@ -31947,18 +32157,18 @@ var ObjectField = ({
31947
32157
  return null;
31948
32158
  }
31949
32159
  const data = value || {};
31950
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32160
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31951
32161
  FieldLabelInternal,
31952
32162
  {
31953
32163
  label: label || name,
31954
- icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MoreVertical, { size: 16 }),
32164
+ icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MoreVertical, { size: 16 }),
31955
32165
  el: "div",
31956
32166
  readOnly,
31957
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName17(), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("fieldset", { className: getClassName17("fieldset"), children: Object.keys(field.objectFields).map((fieldName) => {
32167
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: getClassName17(), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("fieldset", { className: getClassName17("fieldset"), children: Object.keys(field.objectFields).map((fieldName) => {
31958
32168
  const subField = field.objectFields[fieldName];
31959
32169
  const subFieldName = `${name}.${fieldName}`;
31960
32170
  const wildcardFieldName = `${name}.${fieldName}`;
31961
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32171
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31962
32172
  InputOrGroup,
31963
32173
  {
31964
32174
  name: subFieldName,
@@ -31985,7 +32195,7 @@ var ObjectField = ({
31985
32195
  };
31986
32196
 
31987
32197
  // components/InputOrGroup/index.tsx
31988
- var import_jsx_runtime21 = require("react/jsx-runtime");
32198
+ var import_jsx_runtime24 = require("react/jsx-runtime");
31989
32199
  var getClassName18 = get_class_name_factory_default("Input", styles_module_default9);
31990
32200
  var FieldLabel = ({
31991
32201
  children,
@@ -31996,11 +32206,11 @@ var FieldLabel = ({
31996
32206
  className
31997
32207
  }) => {
31998
32208
  const El = el;
31999
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(El, { className, children: [
32000
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: getClassName18("label"), children: [
32001
- icon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_jsx_runtime21.Fragment, {}),
32209
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(El, { className, children: [
32210
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("label"), children: [
32211
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {}),
32002
32212
  label,
32003
- readOnly && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Lock, { size: "12" }) })
32213
+ readOnly && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Lock, { size: "12" }) })
32004
32214
  ] }),
32005
32215
  children
32006
32216
  ] });
@@ -32017,7 +32227,7 @@ var FieldLabelInternal = ({
32017
32227
  () => overrides.fieldLabel || FieldLabel,
32018
32228
  [overrides]
32019
32229
  );
32020
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
32230
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32021
32231
  Wrapper,
32022
32232
  {
32023
32233
  label,
@@ -32057,7 +32267,7 @@ var InputOrGroup = (_a) => {
32057
32267
  if (!field.render) {
32058
32268
  return null;
32059
32269
  }
32060
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32270
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32061
32271
  field,
32062
32272
  name,
32063
32273
  readOnly
@@ -32086,7 +32296,7 @@ var InputOrGroup = (_a) => {
32086
32296
  const mergedProps = __spreadProps(__spreadValues(__spreadValues({}, props), localProps), { field });
32087
32297
  const children = defaultFields[field.type](mergedProps);
32088
32298
  const Render2 = render[field.type];
32089
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32299
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32090
32300
  };
32091
32301
 
32092
32302
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
@@ -32095,7 +32305,7 @@ var styles_module_default14 = { "PuckFields": "_PuckFields_17k3p_1", "PuckFields
32095
32305
 
32096
32306
  // components/Puck/components/Fields/index.tsx
32097
32307
  var import_react19 = require("react");
32098
- var import_jsx_runtime22 = require("react/jsx-runtime");
32308
+ var import_jsx_runtime25 = require("react/jsx-runtime");
32099
32309
  var getClassName19 = get_class_name_factory_default("PuckFields", styles_module_default14);
32100
32310
  var defaultPageFields = {
32101
32311
  title: { type: "text" }
@@ -32104,9 +32314,9 @@ var DefaultFields = ({
32104
32314
  children,
32105
32315
  isLoading
32106
32316
  }) => {
32107
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: getClassName19(), children: [
32317
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19(), children: [
32108
32318
  children,
32109
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: getClassName19("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_spinners6.ClipLoader, { "aria-label": "loading" }) })
32319
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: getClassName19("loadingOverlay"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_spinners6.ClipLoader, { "aria-label": "loading" }) })
32110
32320
  ] });
32111
32321
  };
32112
32322
  var Fields = () => {
@@ -32127,14 +32337,14 @@ var Fields = () => {
32127
32337
  const isLoading = selectedItem ? (_c = componentState[selectedItem == null ? void 0 : selectedItem.props.id]) == null ? void 0 : _c.loading : (_d = componentState["puck-root"]) == null ? void 0 : _d.loading;
32128
32338
  const rootProps = data.root.props || data.root;
32129
32339
  const Wrapper = (0, import_react19.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
32130
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32340
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32131
32341
  "form",
32132
32342
  {
32133
32343
  className: getClassName19(),
32134
32344
  onSubmit: (e) => {
32135
32345
  e.preventDefault();
32136
32346
  },
32137
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32347
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32138
32348
  const field = fields[fieldName];
32139
32349
  const onChange = (value, updatedUi) => {
32140
32350
  var _a2, _b2;
@@ -32200,7 +32410,7 @@ var Fields = () => {
32200
32410
  };
32201
32411
  if (selectedItem && itemSelector) {
32202
32412
  const { readOnly = {} } = selectedItem;
32203
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32413
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32204
32414
  InputOrGroup,
32205
32415
  {
32206
32416
  field,
@@ -32216,7 +32426,7 @@ var Fields = () => {
32216
32426
  );
32217
32427
  } else {
32218
32428
  const { readOnly = {} } = data.root;
32219
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32429
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32220
32430
  InputOrGroup,
32221
32431
  {
32222
32432
  field,
@@ -32251,14 +32461,15 @@ init_react_import();
32251
32461
  var styles_module_default15 = { "ComponentList": "_ComponentList_odh9d_1", "ComponentList--isExpanded": "_ComponentList--isExpanded_odh9d_5", "ComponentList-content": "_ComponentList-content_odh9d_9", "ComponentList-title": "_ComponentList-title_odh9d_17", "ComponentList-titleIcon": "_ComponentList-titleIcon_odh9d_53" };
32252
32462
 
32253
32463
  // components/ComponentList/index.tsx
32254
- var import_jsx_runtime23 = require("react/jsx-runtime");
32464
+ var import_jsx_runtime26 = require("react/jsx-runtime");
32255
32465
  var getClassName20 = get_class_name_factory_default("ComponentList", styles_module_default15);
32256
32466
  var ComponentListItem = ({
32257
32467
  name,
32468
+ label,
32258
32469
  index
32259
32470
  }) => {
32260
32471
  const { overrides } = useAppContext();
32261
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Drawer.Item, { name, index, children: overrides.componentItem });
32472
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer.Item, { label, name, index, children: overrides.componentItem });
32262
32473
  };
32263
32474
  var ComponentList = ({
32264
32475
  children,
@@ -32267,8 +32478,8 @@ var ComponentList = ({
32267
32478
  }) => {
32268
32479
  const { config, state, setUi } = useAppContext();
32269
32480
  const { expanded = true } = state.ui.componentList[id] || {};
32270
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32271
- title && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
32481
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32482
+ title && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
32272
32483
  "button",
32273
32484
  {
32274
32485
  className: getClassName20("title"),
@@ -32281,15 +32492,17 @@ var ComponentList = ({
32281
32492
  }),
32282
32493
  title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
32283
32494
  children: [
32284
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { children: title }),
32285
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: getClassName20("titleIcon"), children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronUp, { size: 12 }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronDown, { size: 12 }) })
32495
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: title }),
32496
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: getClassName20("titleIcon"), children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChevronUp, { size: 12 }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ChevronDown, { size: 12 }) })
32286
32497
  ]
32287
32498
  }
32288
32499
  ),
32289
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: getClassName20("content"), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Drawer, { droppableId: `component-list${title ? `:${title}` : ""}`, children: children || Object.keys(config.components).map((componentKey, i) => {
32290
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
32500
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: getClassName20("content"), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer, { droppableId: `component-list${title ? `:${title}` : ""}`, children: children || Object.keys(config.components).map((componentKey, i) => {
32501
+ var _a;
32502
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32291
32503
  ComponentListItem,
32292
32504
  {
32505
+ label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
32293
32506
  name: componentKey,
32294
32507
  index: i
32295
32508
  },
@@ -32301,7 +32514,7 @@ var ComponentList = ({
32301
32514
  ComponentList.Item = ComponentListItem;
32302
32515
 
32303
32516
  // lib/use-component-list.tsx
32304
- var import_jsx_runtime24 = require("react/jsx-runtime");
32517
+ var import_jsx_runtime27 = require("react/jsx-runtime");
32305
32518
  var useComponentList = (config, ui) => {
32306
32519
  const [componentList, setComponentList] = (0, import_react20.useState)();
32307
32520
  (0, import_react20.useEffect)(() => {
@@ -32314,16 +32527,18 @@ var useComponentList = (config, ui) => {
32314
32527
  if (category.visible === false || !category.components) {
32315
32528
  return null;
32316
32529
  }
32317
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32530
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32318
32531
  ComponentList,
32319
32532
  {
32320
32533
  id: categoryKey,
32321
32534
  title: category.title || categoryKey,
32322
32535
  children: category.components.map((componentName, i) => {
32536
+ var _a2;
32323
32537
  matchedComponents.push(componentName);
32324
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32538
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32325
32539
  ComponentList.Item,
32326
32540
  {
32541
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32327
32542
  name: componentName,
32328
32543
  index: i
32329
32544
  },
@@ -32340,16 +32555,18 @@ var useComponentList = (config, ui) => {
32340
32555
  );
32341
32556
  if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
32342
32557
  _componentList.push(
32343
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32558
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32344
32559
  ComponentList,
32345
32560
  {
32346
32561
  id: "other",
32347
32562
  title: ((_c = ui.componentList.other) == null ? void 0 : _c.title) || "Other",
32348
32563
  children: remainingComponents.map((componentName, i) => {
32349
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32564
+ var _a2;
32565
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32350
32566
  ComponentList.Item,
32351
32567
  {
32352
32568
  name: componentName,
32569
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32353
32570
  index: i
32354
32571
  },
32355
32572
  componentName
@@ -32362,44 +32579,69 @@ var useComponentList = (config, ui) => {
32362
32579
  }
32363
32580
  setComponentList(_componentList);
32364
32581
  }
32365
- }, [config.categories, ui.componentList]);
32582
+ }, [config.categories, config.components, ui.componentList]);
32366
32583
  return componentList;
32367
32584
  };
32368
32585
 
32369
32586
  // components/Puck/components/Components/index.tsx
32370
32587
  var import_react21 = require("react");
32371
- var import_jsx_runtime25 = require("react/jsx-runtime");
32588
+ var import_jsx_runtime28 = require("react/jsx-runtime");
32372
32589
  var Components = () => {
32373
32590
  const { config, state, overrides } = useAppContext();
32374
32591
  const componentList = useComponentList(config, state.ui);
32375
32592
  const Wrapper = (0, import_react21.useMemo)(() => overrides.components || "div", [overrides]);
32376
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ComponentList, { id: "all" }) });
32593
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
32377
32594
  };
32378
32595
 
32379
32596
  // components/Puck/components/Preview/index.tsx
32380
32597
  init_react_import();
32381
32598
  var import_react22 = require("react");
32382
- var import_jsx_runtime26 = require("react/jsx-runtime");
32599
+ var import_auto_frame_component = __toESM(require("@measured/auto-frame-component"));
32600
+
32601
+ // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Preview/styles.module.css#css-module
32602
+ init_react_import();
32603
+ var styles_module_default16 = { "PuckPreview": "_PuckPreview_1mia0_1", "PuckPreview-frame": "_PuckPreview-frame_1mia0_5" };
32604
+
32605
+ // components/Puck/components/Preview/index.tsx
32606
+ var import_jsx_runtime29 = require("react/jsx-runtime");
32607
+ var getClassName21 = get_class_name_factory_default("PuckPreview", styles_module_default16);
32383
32608
  var Preview = ({ id = "puck-preview" }) => {
32384
- const { config, dispatch, state } = useAppContext();
32609
+ const { config, dispatch, state, setStatus, iframe } = useAppContext();
32385
32610
  const Page = (0, import_react22.useCallback)(
32386
32611
  (pageProps) => {
32387
32612
  var _a, _b;
32388
- return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({}, pageProps), { editMode: true })) : pageProps.children;
32613
+ return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({
32614
+ id: "puck-root"
32615
+ }, pageProps), {
32616
+ editMode: true,
32617
+ puck: { renderDropZone: DropZone }
32618
+ })) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: pageProps.children });
32389
32619
  },
32390
32620
  [config.root]
32391
32621
  );
32392
32622
  const rootProps = state.data.root.props || state.data.root;
32393
- const { disableZoom = false } = (0, import_react22.useContext)(dropZoneContext) || {};
32394
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32623
+ const ref = (0, import_react22.useRef)(null);
32624
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32395
32625
  "div",
32396
32626
  {
32627
+ className: getClassName21(),
32397
32628
  id,
32398
32629
  onClick: () => {
32399
32630
  dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
32400
32631
  },
32401
- style: { zoom: disableZoom ? 1 : 0.75 },
32402
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DropZone, { zone: rootDroppableId }) }))
32632
+ children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32633
+ import_auto_frame_component.default,
32634
+ {
32635
+ id: "preview-frame",
32636
+ className: getClassName21("frame"),
32637
+ "data-rfd-iframe": true,
32638
+ ref,
32639
+ onStylesLoaded: () => {
32640
+ setStatus("READY");
32641
+ },
32642
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) }))
32643
+ }
32644
+ ) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "preview-frame", className: getClassName21("frame"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) })) })
32403
32645
  }
32404
32646
  );
32405
32647
  };
@@ -32433,7 +32675,7 @@ init_react_import();
32433
32675
 
32434
32676
  // css-module:/home/runner/work/puck/puck/packages/core/components/LayerTree/styles.module.css#css-module
32435
32677
  init_react_import();
32436
- var styles_module_default16 = { "LayerTree": "_LayerTree_1pgw8_1", "LayerTree-zoneTitle": "_LayerTree-zoneTitle_1pgw8_11", "LayerTree-helper": "_LayerTree-helper_1pgw8_17", "Layer": "_Layer_1pgw8_1", "Layer-inner": "_Layer-inner_1pgw8_29", "Layer--containsZone": "_Layer--containsZone_1pgw8_35", "Layer-clickable": "_Layer-clickable_1pgw8_39", "Layer--isSelected": "_Layer--isSelected_1pgw8_61", "Layer-chevron": "_Layer-chevron_1pgw8_77", "Layer--childIsSelected": "_Layer--childIsSelected_1pgw8_78", "Layer-zones": "_Layer-zones_1pgw8_82", "Layer-title": "_Layer-title_1pgw8_96", "Layer-name": "_Layer-name_1pgw8_105", "Layer-icon": "_Layer-icon_1pgw8_111", "Layer-zoneIcon": "_Layer-zoneIcon_1pgw8_116" };
32678
+ var styles_module_default17 = { "LayerTree": "_LayerTree_1pgw8_1", "LayerTree-zoneTitle": "_LayerTree-zoneTitle_1pgw8_11", "LayerTree-helper": "_LayerTree-helper_1pgw8_17", "Layer": "_Layer_1pgw8_1", "Layer-inner": "_Layer-inner_1pgw8_29", "Layer--containsZone": "_Layer--containsZone_1pgw8_35", "Layer-clickable": "_Layer-clickable_1pgw8_39", "Layer--isSelected": "_Layer--isSelected_1pgw8_61", "Layer-chevron": "_Layer-chevron_1pgw8_77", "Layer--childIsSelected": "_Layer--childIsSelected_1pgw8_78", "Layer-zones": "_Layer-zones_1pgw8_82", "Layer-title": "_Layer-title_1pgw8_96", "Layer-name": "_Layer-name_1pgw8_105", "Layer-icon": "_Layer-icon_1pgw8_111", "Layer-zoneIcon": "_Layer-zoneIcon_1pgw8_116" };
32437
32679
 
32438
32680
  // lib/scroll-into-view.ts
32439
32681
  init_react_import();
@@ -32461,11 +32703,12 @@ var isChildOfZone = (item, maybeChild, ctx) => {
32461
32703
  };
32462
32704
 
32463
32705
  // components/LayerTree/index.tsx
32464
- var import_jsx_runtime27 = require("react/jsx-runtime");
32465
- var getClassName21 = get_class_name_factory_default("LayerTree", styles_module_default16);
32466
- var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default16);
32706
+ var import_jsx_runtime30 = require("react/jsx-runtime");
32707
+ var getClassName22 = get_class_name_factory_default("LayerTree", styles_module_default17);
32708
+ var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default17);
32467
32709
  var LayerTree = ({
32468
32710
  data,
32711
+ config,
32469
32712
  zoneContent,
32470
32713
  itemSelector,
32471
32714
  setItemSelector,
@@ -32474,15 +32717,16 @@ var LayerTree = ({
32474
32717
  }) => {
32475
32718
  const zones = data.zones || {};
32476
32719
  const ctx = (0, import_react23.useContext)(dropZoneContext);
32477
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
32478
- label && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: getClassName21("zoneTitle"), children: [
32479
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Layers, { size: "16" }) }),
32720
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
32721
+ label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
32722
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
32480
32723
  " ",
32481
32724
  label
32482
32725
  ] }),
32483
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("ul", { className: getClassName21(), children: [
32484
- zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("helper"), children: "No items" }),
32726
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName22(), children: [
32727
+ zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
32485
32728
  zoneContent.map((item, i) => {
32729
+ var _a;
32486
32730
  const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
32487
32731
  const zonesForItem = findZonesForArea(data, item.props.id);
32488
32732
  const containsZone = Object.keys(zonesForItem).length > 0;
@@ -32496,7 +32740,7 @@ var LayerTree = ({
32496
32740
  const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
32497
32741
  const isHovering = hoveringComponent === item.props.id;
32498
32742
  const childIsSelected = isChildOfZone(item, selectedItem, ctx);
32499
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32743
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32500
32744
  "li",
32501
32745
  {
32502
32746
  className: getClassNameLayer({
@@ -32506,7 +32750,7 @@ var LayerTree = ({
32506
32750
  childIsSelected
32507
32751
  }),
32508
32752
  children: [
32509
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32753
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32510
32754
  "button",
32511
32755
  {
32512
32756
  className: getClassNameLayer("clickable"),
@@ -32520,8 +32764,9 @@ var LayerTree = ({
32520
32764
  zone
32521
32765
  });
32522
32766
  const id = zoneContent[i].props.id;
32767
+ const frame = getFrame();
32523
32768
  scrollIntoView(
32524
- document.querySelector(
32769
+ frame == null ? void 0 : frame.querySelector(
32525
32770
  `[data-rfd-drag-handle-draggable-id="draggable-${id}"]`
32526
32771
  )
32527
32772
  );
@@ -32537,24 +32782,25 @@ var LayerTree = ({
32537
32782
  setHoveringComponent(null);
32538
32783
  },
32539
32784
  children: [
32540
- containsZone && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32785
+ containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32541
32786
  "div",
32542
32787
  {
32543
32788
  className: getClassNameLayer("chevron"),
32544
32789
  title: isSelected ? "Collapse" : "Expand",
32545
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDown, { size: "12" })
32790
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
32546
32791
  }
32547
32792
  ),
32548
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: getClassNameLayer("title"), children: [
32549
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("icon"), children: item.type === "Text" || item.type === "Heading" ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Type, { size: "16" }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(LayoutGrid, { size: "16" }) }),
32550
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("name"), children: item.type })
32793
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
32794
+ /* @__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" }) }),
32795
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
32551
32796
  ] })
32552
32797
  ]
32553
32798
  }
32554
32799
  ) }),
32555
- containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32800
+ containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32556
32801
  LayerTree,
32557
32802
  {
32803
+ config,
32558
32804
  data,
32559
32805
  zoneContent: zones[zoneKey],
32560
32806
  setItemSelector,
@@ -32574,9 +32820,9 @@ var LayerTree = ({
32574
32820
 
32575
32821
  // components/Puck/components/Outline/index.tsx
32576
32822
  var import_react24 = require("react");
32577
- var import_jsx_runtime28 = require("react/jsx-runtime");
32823
+ var import_jsx_runtime31 = require("react/jsx-runtime");
32578
32824
  var Outline = () => {
32579
- const { dispatch, state, overrides } = useAppContext();
32825
+ const { dispatch, state, overrides, config } = useAppContext();
32580
32826
  const { data, ui } = state;
32581
32827
  const { itemSelector } = ui;
32582
32828
  const setItemSelector = (0, import_react24.useCallback)(
@@ -32589,10 +32835,11 @@ var Outline = () => {
32589
32835
  []
32590
32836
  );
32591
32837
  const Wrapper = (0, import_react24.useMemo)(() => overrides.outline || "div", [overrides]);
32592
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
32593
- (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
32838
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
32839
+ (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32594
32840
  LayerTree,
32595
32841
  {
32842
+ config,
32596
32843
  data,
32597
32844
  label: areaContainsZones(data, "root") ? rootDroppableId : "",
32598
32845
  zoneContent: data.content,
@@ -32602,9 +32849,10 @@ var Outline = () => {
32602
32849
  ),
32603
32850
  Object.entries(findZonesForArea(data, "root")).map(
32604
32851
  ([zoneKey, zone]) => {
32605
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
32852
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32606
32853
  LayerTree,
32607
32854
  {
32855
+ config,
32608
32856
  data,
32609
32857
  label: zoneKey,
32610
32858
  zone: zoneKey,
@@ -32728,14 +32976,431 @@ function useHistoryStore() {
32728
32976
  };
32729
32977
  }
32730
32978
 
32979
+ // components/Puck/components/Canvas/index.tsx
32980
+ init_react_import();
32981
+
32982
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
32983
+ init_react_import();
32984
+
32985
+ // ../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js
32986
+ init_react_import();
32987
+ var isProduction = process.env.NODE_ENV === "production";
32988
+ var prefix = "Invariant failed";
32989
+ function invariant(condition, message) {
32990
+ if (condition) {
32991
+ return;
32992
+ }
32993
+ if (isProduction) {
32994
+ throw new Error(prefix);
32995
+ }
32996
+ var provided = typeof message === "function" ? message() : message;
32997
+ var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
32998
+ throw new Error(value);
32999
+ }
33000
+
33001
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33002
+ var getRect = function getRect2(_ref) {
33003
+ var top = _ref.top, right = _ref.right, bottom = _ref.bottom, left = _ref.left;
33004
+ var width = right - left;
33005
+ var height = bottom - top;
33006
+ var rect = {
33007
+ top,
33008
+ right,
33009
+ bottom,
33010
+ left,
33011
+ width,
33012
+ height,
33013
+ x: left,
33014
+ y: top,
33015
+ center: {
33016
+ x: (right + left) / 2,
33017
+ y: (bottom + top) / 2
33018
+ }
33019
+ };
33020
+ return rect;
33021
+ };
33022
+ var expand = function expand2(target, expandBy) {
33023
+ return {
33024
+ top: target.top - expandBy.top,
33025
+ left: target.left - expandBy.left,
33026
+ bottom: target.bottom + expandBy.bottom,
33027
+ right: target.right + expandBy.right
33028
+ };
33029
+ };
33030
+ var shrink = function shrink2(target, shrinkBy) {
33031
+ return {
33032
+ top: target.top + shrinkBy.top,
33033
+ left: target.left + shrinkBy.left,
33034
+ bottom: target.bottom - shrinkBy.bottom,
33035
+ right: target.right - shrinkBy.right
33036
+ };
33037
+ };
33038
+ var noSpacing = {
33039
+ top: 0,
33040
+ right: 0,
33041
+ bottom: 0,
33042
+ left: 0
33043
+ };
33044
+ var createBox = function createBox2(_ref2) {
33045
+ var borderBox = _ref2.borderBox, _ref2$margin = _ref2.margin, margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin, _ref2$border = _ref2.border, border = _ref2$border === void 0 ? noSpacing : _ref2$border, _ref2$padding = _ref2.padding, padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;
33046
+ var marginBox = getRect(expand(borderBox, margin));
33047
+ var paddingBox = getRect(shrink(borderBox, border));
33048
+ var contentBox = getRect(shrink(paddingBox, padding));
33049
+ return {
33050
+ marginBox,
33051
+ borderBox: getRect(borderBox),
33052
+ paddingBox,
33053
+ contentBox,
33054
+ margin,
33055
+ border,
33056
+ padding
33057
+ };
33058
+ };
33059
+ var parse = function parse2(raw) {
33060
+ var value = raw.slice(0, -2);
33061
+ var suffix = raw.slice(-2);
33062
+ if (suffix !== "px") {
33063
+ return 0;
33064
+ }
33065
+ var result = Number(value);
33066
+ !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0;
33067
+ return result;
33068
+ };
33069
+ var calculateBox = function calculateBox2(borderBox, styles) {
33070
+ var margin = {
33071
+ top: parse(styles.marginTop),
33072
+ right: parse(styles.marginRight),
33073
+ bottom: parse(styles.marginBottom),
33074
+ left: parse(styles.marginLeft)
33075
+ };
33076
+ var padding = {
33077
+ top: parse(styles.paddingTop),
33078
+ right: parse(styles.paddingRight),
33079
+ bottom: parse(styles.paddingBottom),
33080
+ left: parse(styles.paddingLeft)
33081
+ };
33082
+ var border = {
33083
+ top: parse(styles.borderTopWidth),
33084
+ right: parse(styles.borderRightWidth),
33085
+ bottom: parse(styles.borderBottomWidth),
33086
+ left: parse(styles.borderLeftWidth)
33087
+ };
33088
+ return createBox({
33089
+ borderBox,
33090
+ margin,
33091
+ padding,
33092
+ border
33093
+ });
33094
+ };
33095
+ var getBox = function getBox2(el) {
33096
+ var borderBox = el.getBoundingClientRect();
33097
+ var styles = window.getComputedStyle(el);
33098
+ return calculateBox(borderBox, styles);
33099
+ };
33100
+
33101
+ // components/Puck/components/Canvas/index.tsx
33102
+ var import_react27 = require("react");
33103
+
33104
+ // components/ViewportControls/index.tsx
33105
+ init_react_import();
33106
+ var import_react26 = require("react");
33107
+
33108
+ // css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
33109
+ init_react_import();
33110
+ 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" };
33111
+
33112
+ // components/ViewportControls/index.tsx
33113
+ var import_jsx_runtime32 = require("react/jsx-runtime");
33114
+ var icons = {
33115
+ Smartphone: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Smartphone, { size: 16 }),
33116
+ Tablet: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tablet, { size: 16 }),
33117
+ Monitor: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Monitor, { size: 16 })
33118
+ };
33119
+ var getClassName23 = get_class_name_factory_default("ViewportControls", styles_module_default18);
33120
+ var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_module_default18);
33121
+ var ViewportButton = ({
33122
+ children,
33123
+ height = "auto",
33124
+ title,
33125
+ width,
33126
+ onClick
33127
+ }) => {
33128
+ const { state } = useAppContext();
33129
+ const [isActive, setIsActive] = (0, import_react26.useState)(false);
33130
+ (0, import_react26.useEffect)(() => {
33131
+ setIsActive(width === state.ui.viewports.current.width);
33132
+ }, [width, state.ui.viewports.current.width]);
33133
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33134
+ IconButton,
33135
+ {
33136
+ title,
33137
+ disabled: isActive,
33138
+ onClick: (e) => {
33139
+ e.stopPropagation();
33140
+ onClick({ width, height });
33141
+ },
33142
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton("inner"), children })
33143
+ }
33144
+ ) });
33145
+ };
33146
+ var defaultZoomOptions = [
33147
+ { label: "25%", value: 0.25 },
33148
+ { label: "50%", value: 0.5 },
33149
+ { label: "75%", value: 0.75 },
33150
+ { label: "100%", value: 1 },
33151
+ { label: "125%", value: 1.25 },
33152
+ { label: "150%", value: 1.5 },
33153
+ { label: "200%", value: 2 }
33154
+ ];
33155
+ var ViewportControls = ({
33156
+ autoZoom,
33157
+ zoom,
33158
+ onViewportChange,
33159
+ onZoom
33160
+ }) => {
33161
+ const { viewports } = useAppContext();
33162
+ const defaultsContainAutoZoom = defaultZoomOptions.find(
33163
+ (option) => option.value === autoZoom
33164
+ );
33165
+ const zoomOptions = (0, import_react26.useMemo)(
33166
+ () => [
33167
+ ...defaultZoomOptions,
33168
+ ...defaultsContainAutoZoom ? [] : [
33169
+ {
33170
+ value: autoZoom,
33171
+ label: `${(autoZoom * 100).toFixed(0)}% (Auto)`
33172
+ }
33173
+ ]
33174
+ ].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
33175
+ [autoZoom]
33176
+ );
33177
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: getClassName23(), children: [
33178
+ viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33179
+ ViewportButton,
33180
+ {
33181
+ height: viewport.height,
33182
+ width: viewport.width,
33183
+ title: viewport.label ? `Switch to ${viewport.label} viewport` : "Switch viewport",
33184
+ onClick: onViewportChange,
33185
+ children: typeof viewport.icon === "string" ? icons[viewport.icon] || viewport.icon : viewport.icon || icons.Smartphone
33186
+ },
33187
+ i
33188
+ )),
33189
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33190
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33191
+ IconButton,
33192
+ {
33193
+ title: "Zoom viewport out",
33194
+ disabled: zoom <= zoomOptions[0].value,
33195
+ onClick: (e) => {
33196
+ e.stopPropagation();
33197
+ onZoom(
33198
+ zoomOptions[Math.max(
33199
+ zoomOptions.findIndex((option) => option.value === zoom) - 1,
33200
+ 0
33201
+ )].value
33202
+ );
33203
+ },
33204
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomOut, { size: 16 })
33205
+ }
33206
+ ),
33207
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33208
+ IconButton,
33209
+ {
33210
+ title: "Zoom viewport in",
33211
+ disabled: zoom >= zoomOptions[zoomOptions.length - 1].value,
33212
+ onClick: (e) => {
33213
+ e.stopPropagation();
33214
+ onZoom(
33215
+ zoomOptions[Math.min(
33216
+ zoomOptions.findIndex((option) => option.value === zoom) + 1,
33217
+ zoomOptions.length - 1
33218
+ )].value
33219
+ );
33220
+ },
33221
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomIn, { size: 16 })
33222
+ }
33223
+ ),
33224
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33225
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33226
+ "select",
33227
+ {
33228
+ className: getClassName23("zoomSelect"),
33229
+ value: zoom.toString(),
33230
+ onChange: (e) => {
33231
+ onZoom(parseFloat(e.currentTarget.value));
33232
+ },
33233
+ children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33234
+ "option",
33235
+ {
33236
+ value: option.value,
33237
+ label: option.label
33238
+ },
33239
+ option.label
33240
+ ))
33241
+ }
33242
+ )
33243
+ ] });
33244
+ };
33245
+
33246
+ // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Canvas/styles.module.css#css-module
33247
+ init_react_import();
33248
+ var styles_module_default19 = { "PuckCanvas": "_PuckCanvas_6zd4y_1", "PuckCanvas-controls": "_PuckCanvas-controls_6zd4y_16", "PuckCanvas-inner": "_PuckCanvas-inner_6zd4y_21", "PuckCanvas-root": "_PuckCanvas-root_6zd4y_32", "PuckCanvas--ready": "_PuckCanvas--ready_6zd4y_56" };
33249
+
33250
+ // lib/get-zoom-config.ts
33251
+ init_react_import();
33252
+ var RESET_ZOOM_SMALLER_THAN_FRAME = true;
33253
+ var getZoomConfig = (uiViewport, frame, zoom) => {
33254
+ const box = getBox(frame);
33255
+ const { width: frameWidth, height: frameHeight } = box.contentBox;
33256
+ const viewportHeight = uiViewport.height === "auto" ? frameHeight : uiViewport.height;
33257
+ let rootHeight = 0;
33258
+ let autoZoom = 1;
33259
+ if (uiViewport.width > frameWidth || viewportHeight > frameHeight) {
33260
+ const widthZoom = Math.min(frameWidth / uiViewport.width, 1);
33261
+ const heightZoom = Math.min(frameHeight / viewportHeight, 1);
33262
+ zoom = widthZoom;
33263
+ if (widthZoom < heightZoom) {
33264
+ rootHeight = viewportHeight / zoom;
33265
+ } else {
33266
+ rootHeight = viewportHeight;
33267
+ zoom = heightZoom;
33268
+ }
33269
+ autoZoom = zoom;
33270
+ } else {
33271
+ if (RESET_ZOOM_SMALLER_THAN_FRAME) {
33272
+ autoZoom = 1;
33273
+ zoom = 1;
33274
+ rootHeight = viewportHeight;
33275
+ }
33276
+ }
33277
+ return { autoZoom, rootHeight, zoom };
33278
+ };
33279
+
33280
+ // components/Puck/components/Canvas/index.tsx
33281
+ var import_jsx_runtime33 = require("react/jsx-runtime");
33282
+ var getClassName24 = get_class_name_factory_default("PuckCanvas", styles_module_default19);
33283
+ var ZOOM_ON_CHANGE = true;
33284
+ var Canvas = () => {
33285
+ const { status, iframe } = useAppContext();
33286
+ const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
33287
+ const { ui } = state;
33288
+ const frameRef = (0, import_react27.useRef)(null);
33289
+ const [showTransition, setShowTransition] = (0, import_react27.useState)(false);
33290
+ const defaultRender = (0, import_react27.useMemo)(() => {
33291
+ const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
33292
+ return PuckDefault;
33293
+ }, []);
33294
+ const CustomPreview = (0, import_react27.useMemo)(
33295
+ () => overrides.preview || defaultRender,
33296
+ [overrides]
33297
+ );
33298
+ const getFrameDimensions = (0, import_react27.useCallback)(() => {
33299
+ if (frameRef.current) {
33300
+ const frame = frameRef.current;
33301
+ const box = getBox(frame);
33302
+ return { width: box.contentBox.width, height: box.contentBox.height };
33303
+ }
33304
+ return { width: 0, height: 0 };
33305
+ }, [frameRef]);
33306
+ const resetAutoZoom = (0, import_react27.useCallback)(
33307
+ (ui2 = state.ui) => {
33308
+ if (frameRef.current) {
33309
+ setZoomConfig(
33310
+ getZoomConfig(ui2.viewports.current, frameRef.current, zoomConfig.zoom)
33311
+ );
33312
+ }
33313
+ },
33314
+ [frameRef, zoomConfig, state.ui]
33315
+ );
33316
+ (0, import_react27.useEffect)(() => {
33317
+ setShowTransition(false);
33318
+ resetAutoZoom();
33319
+ }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
33320
+ (0, import_react27.useEffect)(() => {
33321
+ const { height: frameHeight } = getFrameDimensions();
33322
+ if (ui.viewports.current.height === "auto") {
33323
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
33324
+ rootHeight: frameHeight / zoomConfig.zoom
33325
+ }));
33326
+ }
33327
+ }, [zoomConfig.zoom]);
33328
+ (0, import_react27.useEffect)(() => {
33329
+ const observer = new ResizeObserver(() => {
33330
+ setShowTransition(false);
33331
+ resetAutoZoom();
33332
+ });
33333
+ if (document.body) {
33334
+ observer.observe(document.body);
33335
+ }
33336
+ return () => {
33337
+ observer.disconnect();
33338
+ };
33339
+ }, []);
33340
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
33341
+ "div",
33342
+ {
33343
+ className: getClassName24({
33344
+ ready: status === "READY" || !iframe.enabled
33345
+ }),
33346
+ onClick: () => dispatch({
33347
+ type: "setUi",
33348
+ ui: { itemSelector: null },
33349
+ recordHistory: true
33350
+ }),
33351
+ children: [
33352
+ ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33353
+ ViewportControls,
33354
+ {
33355
+ autoZoom: zoomConfig.autoZoom,
33356
+ zoom: zoomConfig.zoom,
33357
+ onViewportChange: (viewport) => {
33358
+ setShowTransition(true);
33359
+ const uiViewport = __spreadProps(__spreadValues({}, viewport), {
33360
+ height: viewport.height || "auto",
33361
+ zoom: zoomConfig.zoom
33362
+ });
33363
+ const newUi = __spreadProps(__spreadValues({}, ui), {
33364
+ viewports: __spreadProps(__spreadValues({}, ui.viewports), { current: uiViewport })
33365
+ });
33366
+ setUi(newUi);
33367
+ if (ZOOM_ON_CHANGE) {
33368
+ resetAutoZoom(newUi);
33369
+ }
33370
+ },
33371
+ onZoom: (zoom) => {
33372
+ setShowTransition(true);
33373
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), { zoom }));
33374
+ }
33375
+ }
33376
+ ) }),
33377
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33378
+ "div",
33379
+ {
33380
+ className: getClassName24("root"),
33381
+ style: {
33382
+ width: iframe.enabled ? ui.viewports.current.width : void 0,
33383
+ height: zoomConfig.rootHeight,
33384
+ transform: iframe.enabled ? `scale(${zoomConfig.zoom})` : void 0,
33385
+ transition: showTransition ? "width 150ms ease-out, height 150ms ease-out, transform 150ms ease-out" : "",
33386
+ overflow: iframe.enabled ? void 0 : "auto"
33387
+ },
33388
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
33389
+ }
33390
+ ) })
33391
+ ]
33392
+ }
33393
+ );
33394
+ };
33395
+
32731
33396
  // components/Puck/index.tsx
32732
- var import_jsx_runtime29 = require("react/jsx-runtime");
32733
- var getClassName22 = get_class_name_factory_default("Puck", styles_module_default8);
33397
+ var import_jsx_runtime34 = require("react/jsx-runtime");
33398
+ var getClassName25 = get_class_name_factory_default("Puck", styles_module_default8);
32734
33399
  function Puck({
32735
33400
  children,
32736
33401
  config,
32737
33402
  data: initialData = { content: [], root: { props: { title: "" } } },
32738
- ui: initialUi = defaultAppState.ui,
33403
+ ui: initialUi,
32739
33404
  onChange,
32740
33405
  onPublish,
32741
33406
  plugins = [],
@@ -32743,32 +33408,71 @@ function Puck({
32743
33408
  renderHeader,
32744
33409
  renderHeaderActions,
32745
33410
  headerTitle,
32746
- headerPath
33411
+ headerPath,
33412
+ viewports = defaultViewports,
33413
+ iframe = {
33414
+ enabled: true
33415
+ }
32747
33416
  }) {
33417
+ var _a;
32748
33418
  const historyStore = useHistoryStore();
32749
- const [reducer] = (0, import_react26.useState)(
33419
+ const [reducer] = (0, import_react28.useState)(
32750
33420
  () => createReducer({ config, record: historyStore.record })
32751
33421
  );
32752
- const [initialAppState] = (0, import_react26.useState)(() => __spreadProps(__spreadValues({}, defaultAppState), {
32753
- data: initialData,
32754
- ui: __spreadProps(__spreadValues(__spreadValues({}, defaultAppState.ui), initialUi), {
32755
- // Store categories under componentList on state to allow render functions and plugins to modify
32756
- componentList: config.categories ? Object.entries(config.categories).reduce(
32757
- (acc, [categoryName, category]) => {
32758
- return __spreadProps(__spreadValues({}, acc), {
32759
- [categoryName]: {
32760
- title: category.title,
32761
- components: category.components,
32762
- expanded: category.defaultExpanded,
32763
- visible: category.visible
32764
- }
32765
- });
32766
- },
32767
- {}
32768
- ) : {}
32769
- })
32770
- }));
32771
- const [appState, dispatch] = (0, import_react26.useReducer)(
33422
+ const [initialAppState] = (0, import_react28.useState)(() => {
33423
+ const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
33424
+ return __spreadProps(__spreadValues({}, defaultAppState), {
33425
+ data: initialData,
33426
+ ui: __spreadProps(__spreadValues({}, initial), {
33427
+ // Store categories under componentList on state to allow render functions and plugins to modify
33428
+ componentList: config.categories ? Object.entries(config.categories).reduce(
33429
+ (acc, [categoryName, category]) => {
33430
+ return __spreadProps(__spreadValues({}, acc), {
33431
+ [categoryName]: {
33432
+ title: category.title,
33433
+ components: category.components,
33434
+ expanded: category.defaultExpanded,
33435
+ visible: category.visible
33436
+ }
33437
+ });
33438
+ },
33439
+ {}
33440
+ ) : {}
33441
+ })
33442
+ });
33443
+ });
33444
+ (0, import_react28.useEffect)(() => {
33445
+ var _a2, _b, _c, _d;
33446
+ const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
33447
+ let clientUiState = {};
33448
+ if (window.matchMedia("(max-width: 638px)").matches) {
33449
+ clientUiState = __spreadProps(__spreadValues({}, clientUiState), {
33450
+ leftSideBarVisible: false,
33451
+ rightSideBarVisible: false
33452
+ });
33453
+ }
33454
+ const viewportWidth = window.innerWidth;
33455
+ const viewportDifferences = Object.entries(viewports).map(([key, value]) => ({
33456
+ key,
33457
+ diff: Math.abs(viewportWidth - value.width)
33458
+ })).sort((a, b) => a.diff > b.diff ? 1 : -1);
33459
+ const closestViewport = viewportDifferences[0].key;
33460
+ if (iframe.enabled) {
33461
+ clientUiState = __spreadProps(__spreadValues({}, clientUiState), {
33462
+ viewports: __spreadProps(__spreadValues({}, initial.viewports), {
33463
+ current: __spreadProps(__spreadValues({}, initial.viewports.current), {
33464
+ height: ((_b = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b.height) || viewports[closestViewport].height || "auto",
33465
+ width: ((_d = (_c = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _c.current) == null ? void 0 : _d.width) || viewports[closestViewport].width
33466
+ })
33467
+ })
33468
+ });
33469
+ }
33470
+ dispatch({
33471
+ type: "setUi",
33472
+ ui: clientUiState
33473
+ });
33474
+ }, []);
33475
+ const [appState, dispatch] = (0, import_react28.useReducer)(
32772
33476
  reducer,
32773
33477
  flushZones(initialAppState)
32774
33478
  );
@@ -32779,9 +33483,9 @@ function Puck({
32779
33483
  config,
32780
33484
  dispatch
32781
33485
  );
32782
- const [menuOpen, setMenuOpen] = (0, import_react26.useState)(false);
33486
+ const [menuOpen, setMenuOpen] = (0, import_react28.useState)(false);
32783
33487
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
32784
- const setItemSelector = (0, import_react26.useCallback)(
33488
+ const setItemSelector = (0, import_react28.useCallback)(
32785
33489
  (newItemSelector) => {
32786
33490
  if (newItemSelector === itemSelector)
32787
33491
  return;
@@ -32794,21 +33498,21 @@ function Puck({
32794
33498
  [itemSelector]
32795
33499
  );
32796
33500
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
32797
- (0, import_react26.useEffect)(() => {
33501
+ (0, import_react28.useEffect)(() => {
32798
33502
  if (onChange)
32799
33503
  onChange(data);
32800
33504
  }, [data]);
32801
33505
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
32802
- const [draggedItem, setDraggedItem] = (0, import_react26.useState)();
33506
+ const [draggedItem, setDraggedItem] = (0, import_react28.useState)();
32803
33507
  const rootProps = data.root.props || data.root;
32804
- (0, import_react26.useEffect)(() => {
33508
+ (0, import_react28.useEffect)(() => {
32805
33509
  if (Object.keys(data.root).length > 0 && !data.root.props) {
32806
33510
  console.error(
32807
33511
  "Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
32808
33512
  );
32809
33513
  }
32810
33514
  }, []);
32811
- const toggleSidebars = (0, import_react26.useCallback)(
33515
+ const toggleSidebars = (0, import_react28.useCallback)(
32812
33516
  (sidebar) => {
32813
33517
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
32814
33518
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -32822,7 +33526,7 @@ function Puck({
32822
33526
  },
32823
33527
  [dispatch, leftSideBarVisible, rightSideBarVisible]
32824
33528
  );
32825
- (0, import_react26.useEffect)(() => {
33529
+ (0, import_react28.useEffect)(() => {
32826
33530
  if (!window.matchMedia("(min-width: 638px)").matches) {
32827
33531
  dispatch({
32828
33532
  type: "setUi",
@@ -32845,269 +33549,249 @@ function Puck({
32845
33549
  window.removeEventListener("resize", handleResize);
32846
33550
  };
32847
33551
  }, []);
32848
- const defaultRender = (0, import_react26.useMemo)(() => {
32849
- const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: children2 });
33552
+ const defaultRender = (0, import_react28.useMemo)(() => {
33553
+ const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
32850
33554
  return PuckDefault;
32851
33555
  }, []);
32852
- const defaultHeaderRender = (0, import_react26.useMemo)(() => {
33556
+ const defaultHeaderRender = (0, import_react28.useMemo)(() => {
32853
33557
  if (renderHeader) {
32854
33558
  console.warn(
32855
33559
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
32856
33560
  );
32857
- const RenderHeader = (_a) => {
32858
- var _b = _a, { actions } = _b, props = __objRest(_b, ["actions"]);
33561
+ const RenderHeader = (_a2) => {
33562
+ var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
32859
33563
  const Comp = renderHeader;
32860
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
33564
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
32861
33565
  };
32862
33566
  return RenderHeader;
32863
33567
  }
32864
33568
  return defaultRender;
32865
33569
  }, [renderHeader]);
32866
- const defaultHeaderActionsRender = (0, import_react26.useMemo)(() => {
33570
+ const defaultHeaderActionsRender = (0, import_react28.useMemo)(() => {
32867
33571
  if (renderHeaderActions) {
32868
33572
  console.warn(
32869
33573
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
32870
33574
  );
32871
33575
  const RenderHeader = (props) => {
32872
33576
  const Comp = renderHeaderActions;
32873
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
33577
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
32874
33578
  };
32875
33579
  return RenderHeader;
32876
33580
  }
32877
33581
  return defaultRender;
32878
33582
  }, [renderHeader]);
32879
- const loadedOverrides = (0, import_react26.useMemo)(() => {
33583
+ const loadedOverrides = (0, import_react28.useMemo)(() => {
32880
33584
  return loadOverrides({ overrides, plugins });
32881
33585
  }, [plugins]);
32882
- const CustomPuck = (0, import_react26.useMemo)(
33586
+ const CustomPuck = (0, import_react28.useMemo)(
32883
33587
  () => loadedOverrides.puck || defaultRender,
32884
33588
  [loadedOverrides]
32885
33589
  );
32886
- const CustomPreview = (0, import_react26.useMemo)(
32887
- () => loadedOverrides.preview || defaultRender,
32888
- [loadedOverrides]
32889
- );
32890
- const CustomHeader = (0, import_react26.useMemo)(
33590
+ const CustomHeader = (0, import_react28.useMemo)(
32891
33591
  () => loadedOverrides.header || defaultHeaderRender,
32892
33592
  [loadedOverrides]
32893
33593
  );
32894
- const CustomHeaderActions = (0, import_react26.useMemo)(
33594
+ const CustomHeaderActions = (0, import_react28.useMemo)(
32895
33595
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
32896
33596
  [loadedOverrides]
32897
33597
  );
32898
- const disableZoom = children || loadedOverrides.puck ? true : false;
32899
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "Puck", children: [
32900
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32901
- AppProvider,
32902
- {
32903
- value: {
32904
- state: appState,
32905
- dispatch,
32906
- config,
32907
- componentState,
32908
- resolveData,
32909
- plugins,
32910
- overrides: loadedOverrides,
32911
- history
32912
- },
32913
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32914
- import_dnd7.DragDropContext,
32915
- {
32916
- onDragUpdate: (update) => {
32917
- setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
32918
- onDragStartOrUpdate(update);
32919
- },
32920
- onBeforeDragStart: (start) => {
32921
- onDragStartOrUpdate(start);
32922
- setItemSelector(null);
32923
- dispatch({ type: "setUi", ui: { isDragging: true } });
32924
- },
32925
- onDragEnd: (droppedItem) => {
32926
- setDraggedItem(void 0);
32927
- dispatch({ type: "setUi", ui: { isDragging: false } });
32928
- if (!droppedItem.destination) {
32929
- return;
32930
- }
32931
- if (droppedItem.source.droppableId.startsWith("component-list") && droppedItem.destination) {
32932
- const [_, componentType] = droppedItem.draggableId.split("::");
33598
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "Puck", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33599
+ AppProvider,
33600
+ {
33601
+ value: {
33602
+ state: appState,
33603
+ dispatch,
33604
+ config,
33605
+ componentState,
33606
+ resolveData,
33607
+ plugins,
33608
+ overrides: loadedOverrides,
33609
+ history,
33610
+ viewports,
33611
+ iframe
33612
+ },
33613
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33614
+ DragDropContext,
33615
+ {
33616
+ onDragUpdate: (update) => {
33617
+ setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
33618
+ onDragStartOrUpdate(update);
33619
+ },
33620
+ onBeforeDragStart: (start) => {
33621
+ onDragStartOrUpdate(start);
33622
+ setItemSelector(null);
33623
+ dispatch({ type: "setUi", ui: { isDragging: true } });
33624
+ },
33625
+ onDragEnd: (droppedItem) => {
33626
+ setDraggedItem(void 0);
33627
+ dispatch({ type: "setUi", ui: { isDragging: false } });
33628
+ if (!droppedItem.destination) {
33629
+ return;
33630
+ }
33631
+ if (droppedItem.source.droppableId.startsWith("component-list") && droppedItem.destination) {
33632
+ const [_, componentType] = droppedItem.draggableId.split("::");
33633
+ dispatch({
33634
+ type: "insert",
33635
+ componentType: componentType || droppedItem.draggableId,
33636
+ destinationIndex: droppedItem.destination.index,
33637
+ destinationZone: droppedItem.destination.droppableId
33638
+ });
33639
+ setItemSelector({
33640
+ index: droppedItem.destination.index,
33641
+ zone: droppedItem.destination.droppableId
33642
+ });
33643
+ return;
33644
+ } else {
33645
+ const { source, destination } = droppedItem;
33646
+ if (source.droppableId === destination.droppableId) {
32933
33647
  dispatch({
32934
- type: "insert",
32935
- componentType: componentType || droppedItem.draggableId,
32936
- destinationIndex: droppedItem.destination.index,
32937
- destinationZone: droppedItem.destination.droppableId
32938
- });
32939
- setItemSelector({
32940
- index: droppedItem.destination.index,
32941
- zone: droppedItem.destination.droppableId
33648
+ type: "reorder",
33649
+ sourceIndex: source.index,
33650
+ destinationIndex: destination.index,
33651
+ destinationZone: destination.droppableId
32942
33652
  });
32943
- return;
32944
33653
  } else {
32945
- const { source, destination } = droppedItem;
32946
- if (source.droppableId === destination.droppableId) {
32947
- dispatch({
32948
- type: "reorder",
32949
- sourceIndex: source.index,
32950
- destinationIndex: destination.index,
32951
- destinationZone: destination.droppableId
32952
- });
32953
- } else {
32954
- dispatch({
32955
- type: "move",
32956
- sourceZone: source.droppableId,
32957
- sourceIndex: source.index,
32958
- destinationIndex: destination.index,
32959
- destinationZone: destination.droppableId
32960
- });
32961
- }
32962
- setItemSelector({
32963
- index: destination.index,
32964
- zone: destination.droppableId
33654
+ dispatch({
33655
+ type: "move",
33656
+ sourceZone: source.droppableId,
33657
+ sourceIndex: source.index,
33658
+ destinationIndex: destination.index,
33659
+ destinationZone: destination.droppableId
32965
33660
  });
32966
33661
  }
32967
- },
32968
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32969
- DropZoneProvider,
32970
- {
32971
- value: {
32972
- data,
32973
- itemSelector,
32974
- setItemSelector,
32975
- config,
32976
- dispatch,
32977
- draggedItem,
32978
- placeholderStyle,
32979
- mode: "edit",
32980
- areaId: "root",
32981
- disableZoom
32982
- },
32983
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
32984
- "div",
32985
- {
32986
- className: getClassName22({
32987
- leftSideBarVisible,
32988
- menuOpen,
32989
- rightSideBarVisible,
32990
- disableZoom
32991
- }),
32992
- children: [
32993
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32994
- CustomHeader,
32995
- {
32996
- actions: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
32997
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
32998
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32999
- Button,
33662
+ setItemSelector({
33663
+ index: destination.index,
33664
+ zone: destination.droppableId
33665
+ });
33666
+ }
33667
+ },
33668
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33669
+ DropZoneProvider,
33670
+ {
33671
+ value: {
33672
+ data,
33673
+ itemSelector,
33674
+ setItemSelector,
33675
+ config,
33676
+ dispatch,
33677
+ draggedItem,
33678
+ placeholderStyle,
33679
+ mode: "edit",
33680
+ areaId: "root"
33681
+ },
33682
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
33683
+ "div",
33684
+ {
33685
+ className: getClassName25({
33686
+ leftSideBarVisible,
33687
+ menuOpen,
33688
+ rightSideBarVisible
33689
+ }),
33690
+ children: [
33691
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33692
+ CustomHeader,
33693
+ {
33694
+ actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
33695
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33696
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33697
+ Button,
33698
+ {
33699
+ onClick: () => {
33700
+ onPublish && onPublish(data);
33701
+ },
33702
+ icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
33703
+ children: "Publish"
33704
+ }
33705
+ )
33706
+ ] }),
33707
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
33708
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
33709
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33710
+ IconButton,
33000
33711
  {
33001
33712
  onClick: () => {
33002
- onPublish && onPublish(data);
33713
+ toggleSidebars("left");
33003
33714
  },
33004
- icon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Globe, { size: "14px" }),
33005
- children: "Publish"
33715
+ title: "Toggle left sidebar",
33716
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
33006
33717
  }
33007
- )
33718
+ ) }),
33719
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33720
+ IconButton,
33721
+ {
33722
+ onClick: () => {
33723
+ toggleSidebars("right");
33724
+ },
33725
+ title: "Toggle right sidebar",
33726
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
33727
+ }
33728
+ ) })
33008
33729
  ] }),
33009
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("header", { className: getClassName22("header"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("headerInner"), children: [
33010
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("headerToggle"), children: [
33011
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33012
- IconButton,
33013
- {
33014
- onClick: () => {
33015
- toggleSidebars("left");
33016
- },
33017
- title: "Toggle left sidebar",
33018
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelLeft, { focusable: "false" })
33019
- }
33020
- ) }),
33021
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33022
- IconButton,
33023
- {
33024
- onClick: () => {
33025
- toggleSidebars("right");
33026
- },
33027
- title: "Toggle right sidebar",
33028
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelRight, { focusable: "false" })
33029
- }
33030
- ) })
33031
- ] }),
33032
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Heading, { rank: 2, size: "xs", children: [
33033
- headerTitle || rootProps.title || "Page",
33034
- headerPath && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
33035
- " ",
33036
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("code", { className: getClassName22("headerPath"), children: headerPath })
33037
- ] })
33038
- ] }) }),
33039
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("headerTools"), children: [
33040
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33041
- IconButton,
33042
- {
33043
- onClick: () => {
33044
- return setMenuOpen(!menuOpen);
33045
- },
33046
- title: "Toggle menu bar",
33047
- children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronDown, { focusable: "false" })
33048
- }
33049
- ) }),
33050
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33051
- MenuBar,
33052
- {
33053
- appState,
33054
- data,
33055
- dispatch,
33056
- onPublish,
33057
- menuOpen,
33058
- renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
33059
- setMenuOpen
33060
- }
33061
- )
33730
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading, { rank: 2, size: "xs", children: [
33731
+ headerTitle || rootProps.title || "Page",
33732
+ headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
33733
+ " ",
33734
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
33062
33735
  ] })
33063
- ] }) })
33064
- }
33065
- ),
33066
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("leftSideBar"), children: [
33067
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Components, {}) }),
33068
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Outline, {}) })
33069
- ] }),
33070
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
33071
- "div",
33072
- {
33073
- className: getClassName22("frame"),
33074
- onClick: () => setItemSelector(null),
33075
- children: [
33076
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("root"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Preview, {}) }) }),
33077
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33078
- "div",
33736
+ ] }) }),
33737
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
33738
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33739
+ IconButton,
33079
33740
  {
33080
- style: {
33081
- background: "var(--puck-color-grey-11)",
33082
- height: "100%",
33083
- flexGrow: 1
33084
- }
33741
+ onClick: () => {
33742
+ return setMenuOpen(!menuOpen);
33743
+ },
33744
+ title: "Toggle menu bar",
33745
+ children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
33746
+ }
33747
+ ) }),
33748
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33749
+ MenuBar,
33750
+ {
33751
+ appState,
33752
+ data,
33753
+ dispatch,
33754
+ onPublish,
33755
+ menuOpen,
33756
+ renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33757
+ setMenuOpen
33085
33758
  }
33086
33759
  )
33087
- ]
33088
- }
33089
- ),
33090
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33091
- SidebarSection,
33092
- {
33093
- noPadding: true,
33094
- noBorderTop: true,
33095
- showBreadcrumbs: true,
33096
- title: selectedItem ? selectedItem.type : "Page",
33097
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fields, {})
33098
- }
33099
- ) })
33100
- ]
33101
- }
33102
- ) })
33103
- }
33104
- )
33105
- }
33106
- )
33107
- }
33108
- ),
33109
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "puck-portal-root" })
33110
- ] });
33760
+ ] })
33761
+ ] }) })
33762
+ }
33763
+ ),
33764
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
33765
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
33766
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
33767
+ ] }),
33768
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
33769
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33770
+ SidebarSection,
33771
+ {
33772
+ noPadding: true,
33773
+ noBorderTop: true,
33774
+ showBreadcrumbs: true,
33775
+ title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
33776
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
33777
+ }
33778
+ ) }),
33779
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33780
+ "div",
33781
+ {
33782
+ id: "puck-portal-root",
33783
+ className: getClassName25("portal")
33784
+ }
33785
+ )
33786
+ ]
33787
+ }
33788
+ ) })
33789
+ }
33790
+ )
33791
+ }
33792
+ )
33793
+ }
33794
+ ) });
33111
33795
  }
33112
33796
  Puck.Components = Components;
33113
33797
  Puck.Fields = Fields;
@@ -33116,13 +33800,16 @@ Puck.Preview = Preview;
33116
33800
 
33117
33801
  // components/Render/index.tsx
33118
33802
  init_react_import();
33119
- var import_jsx_runtime30 = require("react/jsx-runtime");
33120
- function Render({ config, data }) {
33803
+ var import_jsx_runtime35 = require("react/jsx-runtime");
33804
+ function Render({
33805
+ config,
33806
+ data
33807
+ }) {
33121
33808
  var _a;
33122
33809
  const rootProps = data.root.props || data.root;
33123
33810
  const title = (rootProps == null ? void 0 : rootProps.title) || "";
33124
33811
  if ((_a = config.root) == null ? void 0 : _a.render) {
33125
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
33812
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
33126
33813
  config.root.render,
33127
33814
  __spreadProps(__spreadValues({}, rootProps), {
33128
33815
  puck: {
@@ -33131,11 +33818,11 @@ function Render({ config, data }) {
33131
33818
  title,
33132
33819
  editMode: false,
33133
33820
  id: "puck-root",
33134
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId })
33821
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId })
33135
33822
  })
33136
33823
  ) });
33137
33824
  }
33138
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) });
33825
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId }) });
33139
33826
  }
33140
33827
 
33141
33828
  // lib/migrate.ts
@@ -33196,37 +33883,51 @@ function transformProps(data, propTransforms) {
33196
33883
 
33197
33884
  // lib/resolve-all-data.ts
33198
33885
  init_react_import();
33199
- var resolveAllData = (data, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
33200
- const dynamicRoot = yield resolveRootData(data, config);
33201
- const { zones = {} } = data;
33202
- const zoneKeys = Object.keys(zones);
33203
- const resolvedZones = {};
33204
- for (let i = 0; i < zoneKeys.length; i++) {
33205
- const zoneKey = zoneKeys[i];
33206
- resolvedZones[zoneKey] = yield resolveAllComponentData(
33207
- zones[zoneKey],
33208
- config,
33209
- onResolveStart,
33210
- onResolveEnd
33211
- );
33212
- }
33213
- return __spreadProps(__spreadValues({}, data), {
33214
- root: dynamicRoot,
33215
- content: yield resolveAllComponentData(
33216
- data.content,
33217
- config,
33218
- onResolveStart,
33219
- onResolveEnd
33220
- ),
33221
- zones: resolvedZones
33886
+ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
33887
+ return __async(this, null, function* () {
33888
+ const dynamicRoot = yield resolveRootData(data, config);
33889
+ const { zones = {} } = data;
33890
+ const zoneKeys = Object.keys(zones);
33891
+ const resolvedZones = {};
33892
+ for (let i = 0; i < zoneKeys.length; i++) {
33893
+ const zoneKey = zoneKeys[i];
33894
+ resolvedZones[zoneKey] = yield resolveAllComponentData(
33895
+ zones[zoneKey],
33896
+ config,
33897
+ onResolveStart,
33898
+ onResolveEnd
33899
+ );
33900
+ }
33901
+ return __spreadProps(__spreadValues({}, data), {
33902
+ root: dynamicRoot,
33903
+ content: yield resolveAllComponentData(
33904
+ data.content,
33905
+ config,
33906
+ onResolveStart,
33907
+ onResolveEnd
33908
+ ),
33909
+ zones: resolvedZones
33910
+ });
33222
33911
  });
33223
- });
33912
+ }
33224
33913
 
33225
33914
  // lib/use-puck.ts
33226
33915
  init_react_import();
33227
33916
  var usePuck = () => {
33228
- const { state: appState, config, dispatch } = useAppContext();
33229
- return { appState, config, dispatch };
33917
+ const {
33918
+ state: appState,
33919
+ config,
33920
+ history,
33921
+ dispatch,
33922
+ selectedItem
33923
+ } = useAppContext();
33924
+ return {
33925
+ appState,
33926
+ config,
33927
+ dispatch,
33928
+ history,
33929
+ selectedItem: selectedItem || null
33930
+ };
33230
33931
  };
33231
33932
  // Annotate the CommonJS export names for ESM import in node:
33232
33933
  0 && (module.exports = {
@@ -33430,6 +34131,14 @@ lucide-react/dist/esm/icons/lock.js:
33430
34131
  * See the LICENSE file in the root directory of this source tree.
33431
34132
  *)
33432
34133
 
34134
+ lucide-react/dist/esm/icons/monitor.js:
34135
+ (**
34136
+ * @license lucide-react v0.298.0 - ISC
34137
+ *
34138
+ * This source code is licensed under the ISC license.
34139
+ * See the LICENSE file in the root directory of this source tree.
34140
+ *)
34141
+
33433
34142
  lucide-react/dist/esm/icons/more-vertical.js:
33434
34143
  (**
33435
34144
  * @license lucide-react v0.298.0 - ISC
@@ -33478,6 +34187,22 @@ lucide-react/dist/esm/icons/sliders-horizontal.js:
33478
34187
  * See the LICENSE file in the root directory of this source tree.
33479
34188
  *)
33480
34189
 
34190
+ lucide-react/dist/esm/icons/smartphone.js:
34191
+ (**
34192
+ * @license lucide-react v0.298.0 - ISC
34193
+ *
34194
+ * This source code is licensed under the ISC license.
34195
+ * See the LICENSE file in the root directory of this source tree.
34196
+ *)
34197
+
34198
+ lucide-react/dist/esm/icons/tablet.js:
34199
+ (**
34200
+ * @license lucide-react v0.298.0 - ISC
34201
+ *
34202
+ * This source code is licensed under the ISC license.
34203
+ * See the LICENSE file in the root directory of this source tree.
34204
+ *)
34205
+
33481
34206
  lucide-react/dist/esm/icons/trash.js:
33482
34207
  (**
33483
34208
  * @license lucide-react v0.298.0 - ISC
@@ -33502,6 +34227,22 @@ lucide-react/dist/esm/icons/unlock.js:
33502
34227
  * See the LICENSE file in the root directory of this source tree.
33503
34228
  *)
33504
34229
 
34230
+ lucide-react/dist/esm/icons/zoom-in.js:
34231
+ (**
34232
+ * @license lucide-react v0.298.0 - ISC
34233
+ *
34234
+ * This source code is licensed under the ISC license.
34235
+ * See the LICENSE file in the root directory of this source tree.
34236
+ *)
34237
+
34238
+ lucide-react/dist/esm/icons/zoom-out.js:
34239
+ (**
34240
+ * @license lucide-react v0.298.0 - ISC
34241
+ *
34242
+ * This source code is licensed under the ISC license.
34243
+ * See the LICENSE file in the root directory of this source tree.
34244
+ *)
34245
+
33505
34246
  lucide-react/dist/esm/lucide-react.js:
33506
34247
  (**
33507
34248
  * @license lucide-react v0.298.0 - ISC