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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -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