@measured/puck 0.14.0-canary.55740c4 → 0.14.0-canary.674ac43

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
@@ -93,7 +93,8 @@ var init_react_import = __esm({
93
93
 
94
94
  // ../../node_modules/classnames/index.js
95
95
  var require_classnames = __commonJS({
96
- "../../node_modules/classnames/index.js"(exports, module2) {
96
+ "../../node_modules/classnames/index.js"(exports2, module2) {
97
+ "use strict";
97
98
  init_react_import();
98
99
  (function() {
99
100
  "use strict";
@@ -145,7 +146,7 @@ var require_classnames = __commonJS({
145
146
 
146
147
  // ../../node_modules/scheduler/cjs/scheduler.production.min.js
147
148
  var require_scheduler_production_min = __commonJS({
148
- "../../node_modules/scheduler/cjs/scheduler.production.min.js"(exports) {
149
+ "../../node_modules/scheduler/cjs/scheduler.production.min.js"(exports2) {
149
150
  "use strict";
150
151
  init_react_import();
151
152
  function f(a, b) {
@@ -188,12 +189,12 @@ var require_scheduler_production_min = __commonJS({
188
189
  }
189
190
  if ("object" === typeof performance && "function" === typeof performance.now) {
190
191
  l = performance;
191
- exports.unstable_now = function() {
192
+ exports2.unstable_now = function() {
192
193
  return l.now();
193
194
  };
194
195
  } else {
195
196
  p = Date, q = p.now();
196
- exports.unstable_now = function() {
197
+ exports2.unstable_now = function() {
197
198
  return p.now() - q;
198
199
  };
199
200
  }
@@ -247,7 +248,7 @@ var require_scheduler_production_min = __commonJS({
247
248
  v.callback = null;
248
249
  y = v.priorityLevel;
249
250
  var e = d(v.expirationTime <= b);
250
- b = exports.unstable_now();
251
+ b = exports2.unstable_now();
251
252
  "function" === typeof e ? v.callback = e : v === h(r) && k(r);
252
253
  G(b);
253
254
  } else
@@ -272,11 +273,11 @@ var require_scheduler_production_min = __commonJS({
272
273
  var P = 5;
273
274
  var Q = -1;
274
275
  function M() {
275
- return exports.unstable_now() - Q < P ? false : true;
276
+ return exports2.unstable_now() - Q < P ? false : true;
276
277
  }
277
278
  function R() {
278
279
  if (null !== O) {
279
- var a = exports.unstable_now();
280
+ var a = exports2.unstable_now();
280
281
  Q = a;
281
282
  var b = true;
282
283
  try {
@@ -310,31 +311,31 @@ var require_scheduler_production_min = __commonJS({
310
311
  }
311
312
  function K(a, b) {
312
313
  L = D(function() {
313
- a(exports.unstable_now());
314
+ a(exports2.unstable_now());
314
315
  }, b);
315
316
  }
316
- exports.unstable_IdlePriority = 5;
317
- exports.unstable_ImmediatePriority = 1;
318
- exports.unstable_LowPriority = 4;
319
- exports.unstable_NormalPriority = 3;
320
- exports.unstable_Profiling = null;
321
- exports.unstable_UserBlockingPriority = 2;
322
- exports.unstable_cancelCallback = function(a) {
317
+ exports2.unstable_IdlePriority = 5;
318
+ exports2.unstable_ImmediatePriority = 1;
319
+ exports2.unstable_LowPriority = 4;
320
+ exports2.unstable_NormalPriority = 3;
321
+ exports2.unstable_Profiling = null;
322
+ exports2.unstable_UserBlockingPriority = 2;
323
+ exports2.unstable_cancelCallback = function(a) {
323
324
  a.callback = null;
324
325
  };
325
- exports.unstable_continueExecution = function() {
326
+ exports2.unstable_continueExecution = function() {
326
327
  A || z || (A = true, I(J));
327
328
  };
328
- exports.unstable_forceFrameRate = function(a) {
329
+ exports2.unstable_forceFrameRate = function(a) {
329
330
  0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : P = 0 < a ? Math.floor(1e3 / a) : 5;
330
331
  };
331
- exports.unstable_getCurrentPriorityLevel = function() {
332
+ exports2.unstable_getCurrentPriorityLevel = function() {
332
333
  return y;
333
334
  };
334
- exports.unstable_getFirstCallbackNode = function() {
335
+ exports2.unstable_getFirstCallbackNode = function() {
335
336
  return h(r);
336
337
  };
337
- exports.unstable_next = function(a) {
338
+ exports2.unstable_next = function(a) {
338
339
  switch (y) {
339
340
  case 1:
340
341
  case 2:
@@ -352,11 +353,11 @@ var require_scheduler_production_min = __commonJS({
352
353
  y = c;
353
354
  }
354
355
  };
355
- exports.unstable_pauseExecution = function() {
356
+ exports2.unstable_pauseExecution = function() {
356
357
  };
357
- exports.unstable_requestPaint = function() {
358
+ exports2.unstable_requestPaint = function() {
358
359
  };
359
- exports.unstable_runWithPriority = function(a, b) {
360
+ exports2.unstable_runWithPriority = function(a, b) {
360
361
  switch (a) {
361
362
  case 1:
362
363
  case 2:
@@ -375,8 +376,8 @@ var require_scheduler_production_min = __commonJS({
375
376
  y = c;
376
377
  }
377
378
  };
378
- exports.unstable_scheduleCallback = function(a, b, c) {
379
- var d = exports.unstable_now();
379
+ exports2.unstable_scheduleCallback = function(a, b, c) {
380
+ var d = exports2.unstable_now();
380
381
  "object" === typeof c && null !== c ? (c = c.delay, c = "number" === typeof c && 0 < c ? d + c : d) : c = d;
381
382
  switch (a) {
382
383
  case 1:
@@ -399,8 +400,8 @@ var require_scheduler_production_min = __commonJS({
399
400
  c > d ? (a.sortIndex = c, f(t, a), null === h(r) && a === h(t) && (B ? (E(L), L = -1) : B = true, K(H, c - d))) : (a.sortIndex = e, f(r, a), A || z || (A = true, I(J)));
400
401
  return a;
401
402
  };
402
- exports.unstable_shouldYield = M;
403
- exports.unstable_wrapCallback = function(a) {
403
+ exports2.unstable_shouldYield = M;
404
+ exports2.unstable_wrapCallback = function(a) {
404
405
  var b = y;
405
406
  return function() {
406
407
  var c = y;
@@ -417,7 +418,7 @@ var require_scheduler_production_min = __commonJS({
417
418
 
418
419
  // ../../node_modules/scheduler/cjs/scheduler.development.js
419
420
  var require_scheduler_development = __commonJS({
420
- "../../node_modules/scheduler/cjs/scheduler.development.js"(exports) {
421
+ "../../node_modules/scheduler/cjs/scheduler.development.js"(exports2) {
421
422
  "use strict";
422
423
  init_react_import();
423
424
  if (process.env.NODE_ENV !== "production") {
@@ -505,13 +506,13 @@ var require_scheduler_development = __commonJS({
505
506
  var hasPerformanceNow = typeof performance === "object" && typeof performance.now === "function";
506
507
  if (hasPerformanceNow) {
507
508
  var localPerformance = performance;
508
- exports.unstable_now = function() {
509
+ exports2.unstable_now = function() {
509
510
  return localPerformance.now();
510
511
  };
511
512
  } else {
512
513
  var localDate = Date;
513
514
  var initialTime = localDate.now();
514
- exports.unstable_now = function() {
515
+ exports2.unstable_now = function() {
515
516
  return localDate.now() - initialTime;
516
517
  };
517
518
  }
@@ -577,7 +578,7 @@ var require_scheduler_development = __commonJS({
577
578
  return workLoop(hasTimeRemaining, initialTime2);
578
579
  } catch (error) {
579
580
  if (currentTask !== null) {
580
- var currentTime = exports.unstable_now();
581
+ var currentTime = exports2.unstable_now();
581
582
  markTaskErrored(currentTask, currentTime);
582
583
  currentTask.isQueued = false;
583
584
  }
@@ -606,7 +607,7 @@ var require_scheduler_development = __commonJS({
606
607
  currentPriorityLevel = currentTask.priorityLevel;
607
608
  var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;
608
609
  var continuationCallback = callback(didUserCallbackTimeout);
609
- currentTime = exports.unstable_now();
610
+ currentTime = exports2.unstable_now();
610
611
  if (typeof continuationCallback === "function") {
611
612
  currentTask.callback = continuationCallback;
612
613
  } else {
@@ -682,7 +683,7 @@ var require_scheduler_development = __commonJS({
682
683
  };
683
684
  }
684
685
  function unstable_scheduleCallback(priorityLevel, callback, options) {
685
- var currentTime = exports.unstable_now();
686
+ var currentTime = exports2.unstable_now();
686
687
  var startTime2;
687
688
  if (typeof options === "object" && options !== null) {
688
689
  var delay = options.delay;
@@ -766,7 +767,7 @@ var require_scheduler_development = __commonJS({
766
767
  var frameInterval = frameYieldMs;
767
768
  var startTime = -1;
768
769
  function shouldYieldToHost() {
769
- var timeElapsed = exports.unstable_now() - startTime;
770
+ var timeElapsed = exports2.unstable_now() - startTime;
770
771
  if (timeElapsed < frameInterval) {
771
772
  return false;
772
773
  }
@@ -787,7 +788,7 @@ var require_scheduler_development = __commonJS({
787
788
  }
788
789
  var performWorkUntilDeadline = function() {
789
790
  if (scheduledHostCallback !== null) {
790
- var currentTime = exports.unstable_now();
791
+ var currentTime = exports2.unstable_now();
791
792
  startTime = currentTime;
792
793
  var hasTimeRemaining = true;
793
794
  var hasMoreWork = true;
@@ -831,7 +832,7 @@ var require_scheduler_development = __commonJS({
831
832
  }
832
833
  function requestHostTimeout(callback, ms) {
833
834
  taskTimeoutID = localSetTimeout(function() {
834
- callback(exports.unstable_now());
835
+ callback(exports2.unstable_now());
835
836
  }, ms);
836
837
  }
837
838
  function cancelHostTimeout() {
@@ -840,24 +841,24 @@ var require_scheduler_development = __commonJS({
840
841
  }
841
842
  var unstable_requestPaint = requestPaint;
842
843
  var unstable_Profiling = null;
843
- exports.unstable_IdlePriority = IdlePriority;
844
- exports.unstable_ImmediatePriority = ImmediatePriority;
845
- exports.unstable_LowPriority = LowPriority;
846
- exports.unstable_NormalPriority = NormalPriority;
847
- exports.unstable_Profiling = unstable_Profiling;
848
- exports.unstable_UserBlockingPriority = UserBlockingPriority;
849
- exports.unstable_cancelCallback = unstable_cancelCallback;
850
- exports.unstable_continueExecution = unstable_continueExecution;
851
- exports.unstable_forceFrameRate = forceFrameRate;
852
- exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
853
- exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;
854
- exports.unstable_next = unstable_next;
855
- exports.unstable_pauseExecution = unstable_pauseExecution;
856
- exports.unstable_requestPaint = unstable_requestPaint;
857
- exports.unstable_runWithPriority = unstable_runWithPriority;
858
- exports.unstable_scheduleCallback = unstable_scheduleCallback;
859
- exports.unstable_shouldYield = shouldYieldToHost;
860
- exports.unstable_wrapCallback = unstable_wrapCallback;
844
+ exports2.unstable_IdlePriority = IdlePriority;
845
+ exports2.unstable_ImmediatePriority = ImmediatePriority;
846
+ exports2.unstable_LowPriority = LowPriority;
847
+ exports2.unstable_NormalPriority = NormalPriority;
848
+ exports2.unstable_Profiling = unstable_Profiling;
849
+ exports2.unstable_UserBlockingPriority = UserBlockingPriority;
850
+ exports2.unstable_cancelCallback = unstable_cancelCallback;
851
+ exports2.unstable_continueExecution = unstable_continueExecution;
852
+ exports2.unstable_forceFrameRate = forceFrameRate;
853
+ exports2.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
854
+ exports2.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;
855
+ exports2.unstable_next = unstable_next;
856
+ exports2.unstable_pauseExecution = unstable_pauseExecution;
857
+ exports2.unstable_requestPaint = unstable_requestPaint;
858
+ exports2.unstable_runWithPriority = unstable_runWithPriority;
859
+ exports2.unstable_scheduleCallback = unstable_scheduleCallback;
860
+ exports2.unstable_shouldYield = shouldYieldToHost;
861
+ exports2.unstable_wrapCallback = unstable_wrapCallback;
861
862
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
862
863
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
863
864
  }
@@ -868,7 +869,7 @@ var require_scheduler_development = __commonJS({
868
869
 
869
870
  // ../../node_modules/scheduler/index.js
870
871
  var require_scheduler = __commonJS({
871
- "../../node_modules/scheduler/index.js"(exports, module2) {
872
+ "../../node_modules/scheduler/index.js"(exports2, module2) {
872
873
  "use strict";
873
874
  init_react_import();
874
875
  if (process.env.NODE_ENV === "production") {
@@ -881,7 +882,7 @@ var require_scheduler = __commonJS({
881
882
 
882
883
  // ../../node_modules/react-dom/cjs/react-dom.production.min.js
883
884
  var require_react_dom_production_min = __commonJS({
884
- "../../node_modules/react-dom/cjs/react-dom.production.min.js"(exports) {
885
+ "../../node_modules/react-dom/cjs/react-dom.production.min.js"(exports2) {
885
886
  "use strict";
886
887
  init_react_import();
887
888
  var aa = require("react");
@@ -7938,14 +7939,14 @@ var require_react_dom_production_min = __commonJS({
7938
7939
  }
7939
7940
  }
7940
7941
  var wl;
7941
- exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = tl;
7942
- exports.createPortal = function(a, b) {
7942
+ exports2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = tl;
7943
+ exports2.createPortal = function(a, b) {
7943
7944
  var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
7944
7945
  if (!ol(b))
7945
7946
  throw Error(p(200));
7946
7947
  return dl(a, b, null, c);
7947
7948
  };
7948
- exports.createRoot = function(a, b) {
7949
+ exports2.createRoot = function(a, b) {
7949
7950
  if (!ol(a))
7950
7951
  throw Error(p(299));
7951
7952
  var c = false, d = "", e = ll;
@@ -7955,7 +7956,7 @@ var require_react_dom_production_min = __commonJS({
7955
7956
  sf(8 === a.nodeType ? a.parentNode : a);
7956
7957
  return new ml(b);
7957
7958
  };
7958
- exports.findDOMNode = function(a) {
7959
+ exports2.findDOMNode = function(a) {
7959
7960
  if (null == a)
7960
7961
  return null;
7961
7962
  if (1 === a.nodeType)
@@ -7971,15 +7972,15 @@ var require_react_dom_production_min = __commonJS({
7971
7972
  a = null === a ? null : a.stateNode;
7972
7973
  return a;
7973
7974
  };
7974
- exports.flushSync = function(a) {
7975
+ exports2.flushSync = function(a) {
7975
7976
  return Sk(a);
7976
7977
  };
7977
- exports.hydrate = function(a, b, c) {
7978
+ exports2.hydrate = function(a, b, c) {
7978
7979
  if (!pl(b))
7979
7980
  throw Error(p(200));
7980
7981
  return sl(null, a, b, true, c);
7981
7982
  };
7982
- exports.hydrateRoot = function(a, b, c) {
7983
+ exports2.hydrateRoot = function(a, b, c) {
7983
7984
  if (!ol(a))
7984
7985
  throw Error(p(405));
7985
7986
  var d = null != c && c.hydratedSources || null, e = false, f = "", g = ll;
@@ -7995,12 +7996,12 @@ var require_react_dom_production_min = __commonJS({
7995
7996
  );
7996
7997
  return new nl(b);
7997
7998
  };
7998
- exports.render = function(a, b, c) {
7999
+ exports2.render = function(a, b, c) {
7999
8000
  if (!pl(b))
8000
8001
  throw Error(p(200));
8001
8002
  return sl(null, a, b, false, c);
8002
8003
  };
8003
- exports.unmountComponentAtNode = function(a) {
8004
+ exports2.unmountComponentAtNode = function(a) {
8004
8005
  if (!pl(a))
8005
8006
  throw Error(p(40));
8006
8007
  return a._reactRootContainer ? (Sk(function() {
@@ -8010,21 +8011,21 @@ var require_react_dom_production_min = __commonJS({
8010
8011
  });
8011
8012
  }), true) : false;
8012
8013
  };
8013
- exports.unstable_batchedUpdates = Rk;
8014
- exports.unstable_renderSubtreeIntoContainer = function(a, b, c, d) {
8014
+ exports2.unstable_batchedUpdates = Rk;
8015
+ exports2.unstable_renderSubtreeIntoContainer = function(a, b, c, d) {
8015
8016
  if (!pl(c))
8016
8017
  throw Error(p(200));
8017
8018
  if (null == a || void 0 === a._reactInternals)
8018
8019
  throw Error(p(38));
8019
8020
  return sl(a, b, c, false, d);
8020
8021
  };
8021
- exports.version = "18.2.0-next-9e3b772b8-20220608";
8022
+ exports2.version = "18.2.0-next-9e3b772b8-20220608";
8022
8023
  }
8023
8024
  });
8024
8025
 
8025
8026
  // ../../node_modules/react-dom/cjs/react-dom.development.js
8026
8027
  var require_react_dom_development = __commonJS({
8027
- "../../node_modules/react-dom/cjs/react-dom.development.js"(exports) {
8028
+ "../../node_modules/react-dom/cjs/react-dom.development.js"(exports2) {
8028
8029
  "use strict";
8029
8030
  init_react_import();
8030
8031
  if (process.env.NODE_ENV !== "production") {
@@ -8084,7 +8085,7 @@ var require_react_dom_development = __commonJS({
8084
8085
  var HostPortal = 4;
8085
8086
  var HostComponent = 5;
8086
8087
  var HostText = 6;
8087
- var Fragment14 = 7;
8088
+ var Fragment17 = 7;
8088
8089
  var Mode = 8;
8089
8090
  var ContextConsumer = 9;
8090
8091
  var ContextProvider = 10;
@@ -8264,8 +8265,8 @@ var require_react_dom_development = __commonJS({
8264
8265
  if (propertyInfo !== null) {
8265
8266
  return !propertyInfo.acceptsBooleans;
8266
8267
  } else {
8267
- var prefix2 = name.toLowerCase().slice(0, 5);
8268
- return prefix2 !== "data-" && prefix2 !== "aria-";
8268
+ var prefix3 = name.toLowerCase().slice(0, 5);
8269
+ return prefix3 !== "data-" && prefix3 !== "aria-";
8269
8270
  }
8270
8271
  }
8271
8272
  default:
@@ -8937,18 +8938,18 @@ var require_react_dom_development = __commonJS({
8937
8938
  }
8938
8939
  }
8939
8940
  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
8940
- var prefix;
8941
+ var prefix2;
8941
8942
  function describeBuiltInComponentFrame(name, source, ownerFn) {
8942
8943
  {
8943
- if (prefix === void 0) {
8944
+ if (prefix2 === void 0) {
8944
8945
  try {
8945
8946
  throw Error();
8946
8947
  } catch (x) {
8947
8948
  var match = x.stack.trim().match(/\n( *(at )?)/);
8948
- prefix = match && match[1] || "";
8949
+ prefix2 = match && match[1] || "";
8949
8950
  }
8950
8951
  }
8951
- return "\n" + prefix + name;
8952
+ return "\n" + prefix2 + name;
8952
8953
  }
8953
8954
  }
8954
8955
  var reentry = false;
@@ -9240,7 +9241,7 @@ var require_react_dom_development = __commonJS({
9240
9241
  return "DehydratedFragment";
9241
9242
  case ForwardRef:
9242
9243
  return getWrappedName$1(type, type.render, "ForwardRef");
9243
- case Fragment14:
9244
+ case Fragment17:
9244
9245
  return "Fragment";
9245
9246
  case HostComponent:
9246
9247
  return type;
@@ -10033,13 +10034,13 @@ var require_react_dom_development = __commonJS({
10033
10034
  strokeOpacity: true,
10034
10035
  strokeWidth: true
10035
10036
  };
10036
- function prefixKey(prefix2, key) {
10037
- return prefix2 + key.charAt(0).toUpperCase() + key.substring(1);
10037
+ function prefixKey(prefix3, key) {
10038
+ return prefix3 + key.charAt(0).toUpperCase() + key.substring(1);
10038
10039
  }
10039
10040
  var prefixes = ["Webkit", "ms", "Moz", "O"];
10040
10041
  Object.keys(isUnitlessNumber).forEach(function(prop) {
10041
- prefixes.forEach(function(prefix2) {
10042
- isUnitlessNumber[prefixKey(prefix2, prop)] = isUnitlessNumber[prop];
10042
+ prefixes.forEach(function(prefix3) {
10043
+ isUnitlessNumber[prefixKey(prefix3, prop)] = isUnitlessNumber[prop];
10043
10044
  });
10044
10045
  });
10045
10046
  function dangerousStyleValue(name, value, isCustomProperty) {
@@ -18911,7 +18912,7 @@ var require_react_dom_development = __commonJS({
18911
18912
  }
18912
18913
  }
18913
18914
  function updateFragment2(returnFiber, current2, fragment, lanes, key) {
18914
- if (current2 === null || current2.tag !== Fragment14) {
18915
+ if (current2 === null || current2.tag !== Fragment17) {
18915
18916
  var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);
18916
18917
  created.return = returnFiber;
18917
18918
  return created;
@@ -19314,7 +19315,7 @@ var require_react_dom_development = __commonJS({
19314
19315
  if (child.key === key) {
19315
19316
  var elementType = element.type;
19316
19317
  if (elementType === REACT_FRAGMENT_TYPE) {
19317
- if (child.tag === Fragment14) {
19318
+ if (child.tag === Fragment17) {
19318
19319
  deleteRemainingChildren(returnFiber, child.sibling);
19319
19320
  var existing = useFiber(child, element.props.children);
19320
19321
  existing.return = returnFiber;
@@ -23489,7 +23490,7 @@ var require_react_dom_development = __commonJS({
23489
23490
  var _resolvedProps2 = workInProgress2.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
23490
23491
  return updateForwardRef(current2, workInProgress2, type, _resolvedProps2, renderLanes2);
23491
23492
  }
23492
- case Fragment14:
23493
+ case Fragment17:
23493
23494
  return updateFragment(current2, workInProgress2, renderLanes2);
23494
23495
  case Mode:
23495
23496
  return updateMode(current2, workInProgress2, renderLanes2);
@@ -23762,7 +23763,7 @@ var require_react_dom_development = __commonJS({
23762
23763
  case SimpleMemoComponent:
23763
23764
  case FunctionComponent:
23764
23765
  case ForwardRef:
23765
- case Fragment14:
23766
+ case Fragment17:
23766
23767
  case Mode:
23767
23768
  case Profiler:
23768
23769
  case ContextConsumer:
@@ -28021,7 +28022,7 @@ var require_react_dom_development = __commonJS({
28021
28022
  return fiber;
28022
28023
  }
28023
28024
  function createFiberFromFragment(elements, mode, lanes, key) {
28024
- var fiber = createFiber(Fragment14, elements, key, mode);
28025
+ var fiber = createFiber(Fragment17, elements, key, mode);
28025
28026
  fiber.lanes = lanes;
28026
28027
  return fiber;
28027
28028
  }
@@ -29094,18 +29095,18 @@ var require_react_dom_development = __commonJS({
29094
29095
  }
29095
29096
  }
29096
29097
  }
29097
- exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;
29098
- exports.createPortal = createPortal$1;
29099
- exports.createRoot = createRoot$1;
29100
- exports.findDOMNode = findDOMNode;
29101
- exports.flushSync = flushSync$1;
29102
- exports.hydrate = hydrate;
29103
- exports.hydrateRoot = hydrateRoot$1;
29104
- exports.render = render;
29105
- exports.unmountComponentAtNode = unmountComponentAtNode;
29106
- exports.unstable_batchedUpdates = batchedUpdates$1;
29107
- exports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;
29108
- exports.version = ReactVersion;
29098
+ exports2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;
29099
+ exports2.createPortal = createPortal$1;
29100
+ exports2.createRoot = createRoot$1;
29101
+ exports2.findDOMNode = findDOMNode;
29102
+ exports2.flushSync = flushSync$1;
29103
+ exports2.hydrate = hydrate;
29104
+ exports2.hydrateRoot = hydrateRoot$1;
29105
+ exports2.render = render;
29106
+ exports2.unmountComponentAtNode = unmountComponentAtNode;
29107
+ exports2.unstable_batchedUpdates = batchedUpdates$1;
29108
+ exports2.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;
29109
+ exports2.version = ReactVersion;
29109
29110
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
29110
29111
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
29111
29112
  }
@@ -29116,7 +29117,7 @@ var require_react_dom_development = __commonJS({
29116
29117
 
29117
29118
  // ../../node_modules/react-dom/index.js
29118
29119
  var require_react_dom = __commonJS({
29119
- "../../node_modules/react-dom/index.js"(exports, module2) {
29120
+ "../../node_modules/react-dom/index.js"(exports2, module2) {
29120
29121
  "use strict";
29121
29122
  init_react_import();
29122
29123
  function checkDCE() {
@@ -29171,9 +29172,19 @@ init_react_import();
29171
29172
  init_react_import();
29172
29173
  var import_react2 = require("react");
29173
29174
 
29174
- // css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css#css-module
29175
- init_react_import();
29176
- var Button_module_default = { "Button": "_Button_1brfa_1", "Button--medium": "_Button--medium_1brfa_22", "Button--large": "_Button--large_1brfa_29", "Button-icon": "_Button-icon_1brfa_36", "Button--primary": "_Button--primary_1brfa_44", "Button--secondary": "_Button--secondary_1brfa_53", "Button--flush": "_Button--flush_1brfa_64", "Button--disabled": "_Button--disabled_1brfa_68", "Button--fullWidth": "_Button--fullWidth_1brfa_78" };
29175
+ // components/Button/Button.module.css
29176
+ var Button_default = {
29177
+ Button: "Button_Button",
29178
+ "Button--medium": "Button_Button--medium",
29179
+ "Button--large": "Button_Button--large",
29180
+ "Button-icon": "Button_Button-icon",
29181
+ "Button--primary": "Button_Button--primary",
29182
+ "Button--secondary": "Button_Button--secondary",
29183
+ "Button--flush": "Button_Button--flush",
29184
+ "Button--disabled": "Button_Button--disabled",
29185
+ "Button--fullWidth": "Button_Button--fullWidth",
29186
+ "Button-spinner": "Button_Button-spinner"
29187
+ };
29177
29188
 
29178
29189
  // lib/get-class-name-factory.ts
29179
29190
  init_react_import();
@@ -29210,7 +29221,7 @@ var get_class_name_factory_default = getClassNameFactory;
29210
29221
  // components/Button/Button.tsx
29211
29222
  var import_react_spinners = require("react-spinners");
29212
29223
  var import_jsx_runtime = require("react/jsx-runtime");
29213
- var getClassName = get_class_name_factory_default("Button", Button_module_default);
29224
+ var getClassName = get_class_name_factory_default("Button", Button_default);
29214
29225
  var Button = ({
29215
29226
  children,
29216
29227
  href,
@@ -29227,7 +29238,7 @@ var Button = ({
29227
29238
  }) => {
29228
29239
  const [loading, setLoading] = (0, import_react2.useState)(loadingProp);
29229
29240
  (0, import_react2.useEffect)(() => setLoading(loadingProp), [loadingProp]);
29230
- const ElementType = href ? "a" : onClick ? "button" : "div";
29241
+ const ElementType = href ? "a" : type ? "button" : "span";
29231
29242
  const el = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
29232
29243
  ElementType,
29233
29244
  {
@@ -29255,10 +29266,7 @@ var Button = ({
29255
29266
  children: [
29256
29267
  icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: getClassName("icon"), children: icon }),
29257
29268
  children,
29258
- loading && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
29259
- "\xA0\xA0",
29260
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_spinners.ClipLoader, { "aria-label": "loading", color: "inherit", size: "14px" })
29261
- ] })
29269
+ loading && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: getClassName("spinner"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_spinners.ClipLoader, { "aria-label": "loading", color: "inherit", size: "14px" }) })
29262
29270
  ]
29263
29271
  }
29264
29272
  );
@@ -29267,16 +29275,190 @@ var Button = ({
29267
29275
 
29268
29276
  // components/Drawer/index.tsx
29269
29277
  init_react_import();
29270
- var import_dnd2 = require("@hello-pangea/dnd");
29271
29278
 
29272
- // css-module:/home/runner/work/puck/puck/packages/core/components/Drawer/styles.module.css#css-module
29279
+ // components/Droppable/index.tsx
29273
29280
  init_react_import();
29274
- var styles_module_default = { "DrawerItem": "_DrawerItem_1qydx_1", "DrawerItem-default": "_DrawerItem-default_1qydx_1", "DrawerItem-draggableWrapper": "_DrawerItem-draggableWrapper_1qydx_1", "DrawerItem-draggable": "_DrawerItem-draggable_1qydx_1", "Drawer": "_Drawer_1qydx_1", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_1qydx_21", "DrawerItem-name": "_DrawerItem-name_1qydx_26" };
29281
+ var import_dnd = require("@measured/dnd");
29275
29282
 
29276
- // components/Draggable/index.tsx
29283
+ // components/Puck/context.tsx
29277
29284
  init_react_import();
29278
- var import_dnd = require("@hello-pangea/dnd");
29285
+ var import_react3 = require("react");
29286
+
29287
+ // lib/get-item.ts
29288
+ init_react_import();
29289
+
29290
+ // lib/root-droppable-id.ts
29291
+ init_react_import();
29292
+ var rootDroppableId = "default-zone";
29293
+
29294
+ // lib/setup-zone.ts
29295
+ init_react_import();
29296
+ var setupZone = (data, zoneKey) => {
29297
+ if (zoneKey === rootDroppableId) {
29298
+ return data;
29299
+ }
29300
+ const newData = __spreadValues({}, data);
29301
+ newData.zones = data.zones || {};
29302
+ newData.zones[zoneKey] = newData.zones[zoneKey] || [];
29303
+ return newData;
29304
+ };
29305
+
29306
+ // lib/get-item.ts
29307
+ var getItem = (selector, data, dynamicProps = {}) => {
29308
+ if (!selector.zone || selector.zone === rootDroppableId) {
29309
+ const item2 = data.content[selector.index];
29310
+ return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
29311
+ }
29312
+ const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
29313
+ return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
29314
+ };
29315
+
29316
+ // components/ViewportControls/default-viewports.ts
29317
+ init_react_import();
29318
+ var defaultViewports = [
29319
+ { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
29320
+ { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
29321
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
29322
+ ];
29323
+
29324
+ // components/Puck/context.tsx
29279
29325
  var import_jsx_runtime2 = require("react/jsx-runtime");
29326
+ var defaultAppState = {
29327
+ data: { content: [], root: { props: { title: "" } } },
29328
+ ui: {
29329
+ leftSideBarVisible: true,
29330
+ rightSideBarVisible: true,
29331
+ arrayState: {},
29332
+ itemSelector: null,
29333
+ componentList: {},
29334
+ isDragging: false,
29335
+ viewports: {
29336
+ current: {
29337
+ width: defaultViewports[0].width,
29338
+ height: defaultViewports[0].height || "auto"
29339
+ },
29340
+ options: [],
29341
+ controlsVisible: true
29342
+ }
29343
+ }
29344
+ };
29345
+ var defaultContext = {
29346
+ state: defaultAppState,
29347
+ dispatch: () => null,
29348
+ config: { components: {} },
29349
+ componentState: {},
29350
+ resolveData: () => {
29351
+ },
29352
+ plugins: [],
29353
+ overrides: {},
29354
+ history: {},
29355
+ viewports: defaultViewports,
29356
+ zoomConfig: {
29357
+ autoZoom: 1,
29358
+ rootHeight: 0,
29359
+ zoom: 1
29360
+ },
29361
+ setZoomConfig: () => null,
29362
+ status: "LOADING",
29363
+ setStatus: () => null,
29364
+ iframe: {}
29365
+ };
29366
+ var appContext = (0, import_react3.createContext)(defaultContext);
29367
+ var AppProvider = ({
29368
+ children,
29369
+ value
29370
+ }) => {
29371
+ const [zoomConfig, setZoomConfig] = (0, import_react3.useState)(defaultContext.zoomConfig);
29372
+ const [status, setStatus] = (0, import_react3.useState)("LOADING");
29373
+ (0, import_react3.useEffect)(() => {
29374
+ setStatus("MOUNTED");
29375
+ }, []);
29376
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29377
+ appContext.Provider,
29378
+ {
29379
+ value: __spreadProps(__spreadValues({}, value), { zoomConfig, setZoomConfig, status, setStatus }),
29380
+ children
29381
+ }
29382
+ );
29383
+ };
29384
+ function useAppContext() {
29385
+ const mainContext = (0, import_react3.useContext)(appContext);
29386
+ const selectedItem = mainContext.state.ui.itemSelector ? getItem(mainContext.state.ui.itemSelector, mainContext.state.data) : void 0;
29387
+ return __spreadProps(__spreadValues({}, mainContext), {
29388
+ // Helpers
29389
+ selectedItem,
29390
+ setUi: (ui, recordHistory) => {
29391
+ return mainContext.dispatch({
29392
+ type: "setUi",
29393
+ ui,
29394
+ recordHistory
29395
+ });
29396
+ }
29397
+ });
29398
+ }
29399
+
29400
+ // components/Droppable/index.tsx
29401
+ var import_jsx_runtime3 = require("react/jsx-runtime");
29402
+ var defaultProvided = {
29403
+ droppableProps: {
29404
+ "data-rfd-droppable-context-id": "",
29405
+ "data-rfd-droppable-id": ""
29406
+ },
29407
+ placeholder: null,
29408
+ innerRef: () => null
29409
+ };
29410
+ var defaultSnapshot = {
29411
+ isDraggingOver: false,
29412
+ draggingOverWith: null,
29413
+ draggingFromThisWith: null,
29414
+ isUsingPlaceholder: false
29415
+ };
29416
+ var DefaultDroppable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: children(defaultProvided, defaultSnapshot) });
29417
+ var Droppable = (props) => {
29418
+ const { status } = useAppContext();
29419
+ const El = status !== "LOADING" ? import_dnd.Droppable : DefaultDroppable;
29420
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, __spreadValues({}, props));
29421
+ };
29422
+
29423
+ // components/Drawer/styles.module.css
29424
+ var styles_default = {
29425
+ Drawer: "styles_Drawer",
29426
+ "DrawerItem-default": "styles_DrawerItem-default",
29427
+ "DrawerItem-draggableWrapper": "styles_DrawerItem-draggableWrapper",
29428
+ DrawerItem: "styles_DrawerItem",
29429
+ "DrawerItem-draggable": "styles_DrawerItem-draggable",
29430
+ "Drawer--isDraggingFrom": "styles_Drawer--isDraggingFrom",
29431
+ "DrawerItem-name": "styles_DrawerItem-name"
29432
+ };
29433
+
29434
+ // components/Draggable/index.tsx
29435
+ init_react_import();
29436
+ var import_dnd2 = require("@measured/dnd");
29437
+ var import_jsx_runtime4 = require("react/jsx-runtime");
29438
+ var defaultProvided2 = {
29439
+ draggableProps: {
29440
+ "data-rfd-draggable-context-id": "",
29441
+ "data-rfd-draggable-id": ""
29442
+ },
29443
+ dragHandleProps: null,
29444
+ innerRef: () => null
29445
+ };
29446
+ var defaultSnapshot2 = {
29447
+ isDragging: false,
29448
+ isDropAnimating: false,
29449
+ isClone: false,
29450
+ dropAnimation: null,
29451
+ draggingOver: null,
29452
+ combineWith: null,
29453
+ combineTargetFor: null,
29454
+ mode: null
29455
+ };
29456
+ var defaultRubric = {
29457
+ draggableId: "",
29458
+ type: "",
29459
+ source: { droppableId: "", index: 0 }
29460
+ };
29461
+ var DefaultDraggable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: children(defaultProvided2, defaultSnapshot2, defaultRubric) });
29280
29462
  var Draggable = ({
29281
29463
  className,
29282
29464
  children,
@@ -29286,39 +29468,33 @@ var Draggable = ({
29286
29468
  disableAnimations = false,
29287
29469
  isDragDisabled = false
29288
29470
  }) => {
29289
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29290
- import_dnd.Draggable,
29291
- {
29292
- draggableId: id,
29293
- index,
29294
- isDragDisabled,
29295
- children: (provided, snapshot) => {
29296
- var _a;
29297
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
29298
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29299
- "div",
29300
- __spreadProps(__spreadValues(__spreadValues({
29301
- className: className && className(provided, snapshot),
29302
- ref: provided.innerRef
29303
- }, provided.draggableProps), provided.dragHandleProps), {
29304
- style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
29305
- transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
29306
- }),
29307
- children: children(provided, snapshot)
29308
- })
29309
- ),
29310
- showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29311
- "div",
29312
- {
29313
- className: className && className(provided, snapshot),
29314
- style: { transform: "none !important" },
29315
- children: children(provided, snapshot)
29316
- }
29317
- )
29318
- ] });
29319
- }
29320
- }
29321
- );
29471
+ const { status } = useAppContext();
29472
+ const El = status !== "LOADING" ? import_dnd2.Draggable : DefaultDraggable;
29473
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => {
29474
+ var _a;
29475
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
29476
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29477
+ "div",
29478
+ __spreadProps(__spreadValues(__spreadValues({
29479
+ className: className && className(provided, snapshot),
29480
+ ref: provided.innerRef
29481
+ }, provided.draggableProps), provided.dragHandleProps), {
29482
+ style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
29483
+ transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
29484
+ }),
29485
+ children: children(provided, snapshot)
29486
+ })
29487
+ ),
29488
+ showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29489
+ "div",
29490
+ {
29491
+ className: className && className(provided, snapshot),
29492
+ style: { transform: "none !important" },
29493
+ children: children(provided, snapshot)
29494
+ }
29495
+ )
29496
+ ] });
29497
+ } });
29322
29498
  };
29323
29499
 
29324
29500
  // components/DragIcon/index.tsx
@@ -29348,28 +29524,29 @@ var replace = (list, index, newItem) => {
29348
29524
  return result;
29349
29525
  };
29350
29526
 
29351
- // css-module:/home/runner/work/puck/puck/packages/core/components/DragIcon/styles.module.css#css-module
29352
- init_react_import();
29353
- var styles_module_default2 = { "DragIcon": "_DragIcon_o29on_1" };
29527
+ // components/DragIcon/styles.module.css
29528
+ var styles_default2 = {
29529
+ DragIcon: "styles_DragIcon"
29530
+ };
29354
29531
 
29355
29532
  // components/DragIcon/index.tsx
29356
- var import_jsx_runtime3 = require("react/jsx-runtime");
29357
- var getClassName2 = get_class_name_factory_default("DragIcon", styles_module_default2);
29358
- 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" }) }) });
29533
+ var import_jsx_runtime5 = require("react/jsx-runtime");
29534
+ var getClassName2 = get_class_name_factory_default("DragIcon", styles_default2);
29535
+ 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" }) }) });
29359
29536
 
29360
29537
  // components/Drawer/index.tsx
29361
- var import_react3 = require("react");
29362
- var import_jsx_runtime4 = require("react/jsx-runtime");
29363
- var getClassName3 = get_class_name_factory_default("Drawer", styles_module_default);
29364
- var getClassNameItem = get_class_name_factory_default("DrawerItem", styles_module_default);
29365
- var drawerContext = (0, import_react3.createContext)({
29538
+ var import_react4 = require("react");
29539
+ var import_jsx_runtime6 = require("react/jsx-runtime");
29540
+ var getClassName3 = get_class_name_factory_default("Drawer", styles_default);
29541
+ var getClassNameItem = get_class_name_factory_default("DrawerItem", styles_default);
29542
+ var drawerContext = (0, import_react4.createContext)({
29366
29543
  droppableId: ""
29367
29544
  });
29368
29545
  var DrawerDraggable = ({
29369
29546
  children,
29370
29547
  id,
29371
29548
  index
29372
- }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29549
+ }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
29373
29550
  Draggable,
29374
29551
  {
29375
29552
  id,
@@ -29385,17 +29562,18 @@ var DrawerItem = ({
29385
29562
  name,
29386
29563
  children,
29387
29564
  id,
29565
+ label,
29388
29566
  index
29389
29567
  }) => {
29390
- const ctx = (0, import_react3.useContext)(drawerContext);
29568
+ const ctx = (0, import_react4.useContext)(drawerContext);
29391
29569
  const resolvedId = `${ctx.droppableId}::${id || name}`;
29392
- const CustomInner = (0, import_react3.useMemo)(
29393
- () => children || (({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("default"), children: children2 })),
29570
+ const CustomInner = (0, import_react4.useMemo)(
29571
+ () => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("default"), children: children2 })),
29394
29572
  [children]
29395
29573
  );
29396
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DrawerDraggable, { id: resolvedId, index, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CustomInner, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: getClassNameItem("draggable"), children: [
29397
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("name"), children: name }),
29398
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: getClassNameItem("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DragIcon, {}) })
29574
+ 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: [
29575
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("name"), children: label != null ? label : name }),
29576
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DragIcon, {}) })
29399
29577
  ] }) }) }) });
29400
29578
  };
29401
29579
  var Drawer = ({
@@ -29403,7 +29581,7 @@ var Drawer = ({
29403
29581
  droppableId = "component-list",
29404
29582
  direction = "vertical"
29405
29583
  }) => {
29406
- 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)(
29584
+ 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)(
29407
29585
  "div",
29408
29586
  __spreadProps(__spreadValues({}, provided.droppableProps), {
29409
29587
  ref: provided.innerRef,
@@ -29412,7 +29590,7 @@ var Drawer = ({
29412
29590
  }),
29413
29591
  children: [
29414
29592
  children,
29415
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
29593
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
29416
29594
  ]
29417
29595
  })
29418
29596
  ) }) });
@@ -29425,19 +29603,32 @@ var import_react9 = require("react");
29425
29603
 
29426
29604
  // components/DraggableComponent/index.tsx
29427
29605
  init_react_import();
29428
- var import_react6 = require("react");
29429
- var import_dnd3 = require("@hello-pangea/dnd");
29606
+ var import_react7 = require("react");
29607
+ var import_dnd3 = require("@measured/dnd");
29430
29608
 
29431
- // css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
29432
- init_react_import();
29433
- var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_foluk_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_foluk_6", "DraggableComponent-contents": "_DraggableComponent-contents_foluk_12", "DraggableComponent-overlay": "_DraggableComponent-overlay_foluk_25", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_foluk_39", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_foluk_55", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_foluk_61", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_foluk_66", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_foluk_71", "DraggableComponent-actions": "_DraggableComponent-actions_foluk_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_foluk_120", "DraggableComponent-action": "_DraggableComponent-action_foluk_97" };
29609
+ // components/DraggableComponent/styles.module.css
29610
+ var styles_default3 = {
29611
+ DraggableComponent: "styles_DraggableComponent",
29612
+ "DraggableComponent--isDragging": "styles_DraggableComponent--isDragging",
29613
+ "DraggableComponent-contents": "styles_DraggableComponent-contents",
29614
+ "DraggableComponent-overlay": "styles_DraggableComponent-overlay",
29615
+ "DraggableComponent-loadingOverlay": "styles_DraggableComponent-loadingOverlay",
29616
+ "DraggableComponent--isLocked": "styles_DraggableComponent--isLocked",
29617
+ "DraggableComponent--forceHover": "styles_DraggableComponent--forceHover",
29618
+ "DraggableComponent--isSelected": "styles_DraggableComponent--isSelected",
29619
+ "DraggableComponent--indicativeHover": "styles_DraggableComponent--indicativeHover",
29620
+ "DraggableComponent-actionsOverlay": "styles_DraggableComponent-actionsOverlay",
29621
+ "DraggableComponent-actions": "styles_DraggableComponent-actions",
29622
+ "DraggableComponent-actionsLabel": "styles_DraggableComponent-actionsLabel",
29623
+ "DraggableComponent-action": "styles_DraggableComponent-action"
29624
+ };
29434
29625
 
29435
29626
  // ../../node_modules/lucide-react/dist/esm/lucide-react.js
29436
29627
  init_react_import();
29437
29628
 
29438
29629
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
29439
29630
  init_react_import();
29440
- var import_react4 = require("react");
29631
+ var import_react5 = require("react");
29441
29632
 
29442
29633
  // ../../node_modules/lucide-react/dist/esm/defaultAttributes.js
29443
29634
  init_react_import();
@@ -29456,10 +29647,10 @@ var defaultAttributes = {
29456
29647
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
29457
29648
  var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim();
29458
29649
  var createLucideIcon = (iconName, iconNode) => {
29459
- const Component = (0, import_react4.forwardRef)(
29650
+ const Component = (0, import_react5.forwardRef)(
29460
29651
  (_a, ref) => {
29461
29652
  var _b = _a, { color = "currentColor", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = "", children } = _b, rest = __objRest(_b, ["color", "size", "strokeWidth", "absoluteStrokeWidth", "className", "children"]);
29462
- return (0, import_react4.createElement)(
29653
+ return (0, import_react5.createElement)(
29463
29654
  "svg",
29464
29655
  __spreadValues(__spreadProps(__spreadValues({
29465
29656
  ref
@@ -29471,7 +29662,7 @@ var createLucideIcon = (iconName, iconNode) => {
29471
29662
  className: ["lucide", `lucide-${toKebabCase(iconName)}`, className].join(" ")
29472
29663
  }), rest),
29473
29664
  [
29474
- ...iconNode.map(([tag, attrs]) => (0, import_react4.createElement)(tag, attrs)),
29665
+ ...iconNode.map(([tag, attrs]) => (0, import_react5.createElement)(tag, attrs)),
29475
29666
  ...Array.isArray(children) ? children : [children]
29476
29667
  ]
29477
29668
  );
@@ -29582,6 +29773,14 @@ var Lock = createLucideIcon("Lock", [
29582
29773
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
29583
29774
  ]);
29584
29775
 
29776
+ // ../../node_modules/lucide-react/dist/esm/icons/monitor.js
29777
+ init_react_import();
29778
+ var Monitor = createLucideIcon("Monitor", [
29779
+ ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
29780
+ ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
29781
+ ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
29782
+ ]);
29783
+
29585
29784
  // ../../node_modules/lucide-react/dist/esm/icons/more-vertical.js
29586
29785
  init_react_import();
29587
29786
  var MoreVertical = createLucideIcon("MoreVertical", [
@@ -29618,6 +29817,34 @@ var Search = createLucideIcon("Search", [
29618
29817
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
29619
29818
  ]);
29620
29819
 
29820
+ // ../../node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js
29821
+ init_react_import();
29822
+ var SlidersHorizontal = createLucideIcon("SlidersHorizontal", [
29823
+ ["line", { x1: "21", x2: "14", y1: "4", y2: "4", key: "obuewd" }],
29824
+ ["line", { x1: "10", x2: "3", y1: "4", y2: "4", key: "1q6298" }],
29825
+ ["line", { x1: "21", x2: "12", y1: "12", y2: "12", key: "1iu8h1" }],
29826
+ ["line", { x1: "8", x2: "3", y1: "12", y2: "12", key: "ntss68" }],
29827
+ ["line", { x1: "21", x2: "16", y1: "20", y2: "20", key: "14d8ph" }],
29828
+ ["line", { x1: "12", x2: "3", y1: "20", y2: "20", key: "m0wm8r" }],
29829
+ ["line", { x1: "14", x2: "14", y1: "2", y2: "6", key: "14e1ph" }],
29830
+ ["line", { x1: "8", x2: "8", y1: "10", y2: "14", key: "1i6ji0" }],
29831
+ ["line", { x1: "16", x2: "16", y1: "18", y2: "22", key: "1lctlv" }]
29832
+ ]);
29833
+
29834
+ // ../../node_modules/lucide-react/dist/esm/icons/smartphone.js
29835
+ init_react_import();
29836
+ var Smartphone = createLucideIcon("Smartphone", [
29837
+ ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
29838
+ ["path", { d: "M12 18h.01", key: "mhygvu" }]
29839
+ ]);
29840
+
29841
+ // ../../node_modules/lucide-react/dist/esm/icons/tablet.js
29842
+ init_react_import();
29843
+ var Tablet = createLucideIcon("Tablet", [
29844
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
29845
+ ["line", { x1: "12", x2: "12.01", y1: "18", y2: "18", key: "1dp563" }]
29846
+ ]);
29847
+
29621
29848
  // ../../node_modules/lucide-react/dist/esm/icons/trash.js
29622
29849
  init_react_import();
29623
29850
  var Trash = createLucideIcon("Trash", [
@@ -29641,12 +29868,29 @@ var Unlock = createLucideIcon("Unlock", [
29641
29868
  ["path", { d: "M7 11V7a5 5 0 0 1 9.9-1", key: "1mm8w8" }]
29642
29869
  ]);
29643
29870
 
29871
+ // ../../node_modules/lucide-react/dist/esm/icons/zoom-in.js
29872
+ init_react_import();
29873
+ var ZoomIn = createLucideIcon("ZoomIn", [
29874
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
29875
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
29876
+ ["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
29877
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
29878
+ ]);
29879
+
29880
+ // ../../node_modules/lucide-react/dist/esm/icons/zoom-out.js
29881
+ init_react_import();
29882
+ var ZoomOut = createLucideIcon("ZoomOut", [
29883
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
29884
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
29885
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
29886
+ ]);
29887
+
29644
29888
  // lib/use-modifier-held.ts
29645
29889
  init_react_import();
29646
- var import_react5 = require("react");
29890
+ var import_react6 = require("react");
29647
29891
  var useModifierHeld = (modifier) => {
29648
- const [modifierHeld, setModifierHeld] = (0, import_react5.useState)(false);
29649
- (0, import_react5.useEffect)(() => {
29892
+ const [modifierHeld, setModifierHeld] = (0, import_react6.useState)(false);
29893
+ (0, import_react6.useEffect)(() => {
29650
29894
  function downHandler({ key }) {
29651
29895
  if (key === modifier) {
29652
29896
  setModifierHeld(true);
@@ -29667,10 +29911,26 @@ var useModifierHeld = (modifier) => {
29667
29911
  return modifierHeld;
29668
29912
  };
29669
29913
 
29914
+ // lib/is-ios.ts
29915
+ init_react_import();
29916
+ var isIos = () => [
29917
+ "iPad Simulator",
29918
+ "iPhone Simulator",
29919
+ "iPod Simulator",
29920
+ "iPad",
29921
+ "iPhone",
29922
+ "iPod"
29923
+ ].includes(navigator.platform) || // iPad on iOS 13 detection
29924
+ navigator.userAgent.includes("Mac") && "ontouchend" in document;
29925
+
29670
29926
  // components/DraggableComponent/index.tsx
29671
29927
  var import_react_spinners2 = require("react-spinners");
29672
- var import_jsx_runtime5 = require("react/jsx-runtime");
29673
- var getClassName4 = get_class_name_factory_default("DraggableComponent", styles_module_default3);
29928
+ var import_jsx_runtime7 = require("react/jsx-runtime");
29929
+ var getClassName4 = get_class_name_factory_default("DraggableComponent", styles_default3);
29930
+ var space = 8;
29931
+ var actionsOverlayTop = space * 6.5;
29932
+ var actionsTop = -(actionsOverlayTop - 8);
29933
+ var actionsRight = space;
29674
29934
  var DraggableComponent = ({
29675
29935
  children,
29676
29936
  id,
@@ -29693,15 +29953,25 @@ var DraggableComponent = ({
29693
29953
  indicativeHover = false,
29694
29954
  style
29695
29955
  }) => {
29956
+ const { zoomConfig } = useAppContext();
29696
29957
  const isModifierHeld = useModifierHeld("Alt");
29697
- (0, import_react6.useEffect)(onMount, []);
29698
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
29699
- import_dnd3.Draggable,
29958
+ const { status } = useAppContext();
29959
+ const El = status !== "LOADING" ? import_dnd3.Draggable : DefaultDraggable;
29960
+ (0, import_react7.useEffect)(onMount, []);
29961
+ const [disableSecondaryAnimation, setDisableSecondaryAnimation] = (0, import_react7.useState)(false);
29962
+ (0, import_react7.useEffect)(() => {
29963
+ if (isIos()) {
29964
+ setDisableSecondaryAnimation(true);
29965
+ }
29966
+ }, []);
29967
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
29968
+ El,
29700
29969
  {
29701
29970
  draggableId: id,
29702
29971
  index,
29703
29972
  isDragDisabled,
29704
- children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
29973
+ disableSecondaryAnimation,
29974
+ children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29705
29975
  "div",
29706
29976
  __spreadProps(__spreadValues(__spreadValues({
29707
29977
  ref: provided.innerRef
@@ -29724,13 +29994,34 @@ var DraggableComponent = ({
29724
29994
  onClick,
29725
29995
  children: [
29726
29996
  debug,
29727
- 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" }) }),
29728
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("overlay"), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: getClassName4("actions"), children: [
29729
- label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
29730
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Copy, { size: 16 }) }),
29731
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Trash, { size: 16 }) })
29732
- ] }) }),
29733
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName4("contents"), children })
29997
+ 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" }) }),
29998
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
29999
+ "div",
30000
+ {
30001
+ className: getClassName4("actionsOverlay"),
30002
+ style: {
30003
+ top: actionsOverlayTop / zoomConfig.zoom
30004
+ },
30005
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30006
+ "div",
30007
+ {
30008
+ className: getClassName4("actions"),
30009
+ style: {
30010
+ transform: `scale(${1 / zoomConfig.zoom}`,
30011
+ top: actionsTop / zoomConfig.zoom,
30012
+ right: actionsRight / zoomConfig.zoom
30013
+ },
30014
+ children: [
30015
+ label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
30016
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Copy, { size: 16 }) }),
30017
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Trash, { size: 16 }) })
30018
+ ]
30019
+ }
30020
+ )
30021
+ }
30022
+ ),
30023
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("overlay") }),
30024
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("contents"), children })
29734
30025
  ]
29735
30026
  })
29736
30027
  )
@@ -29739,45 +30030,26 @@ var DraggableComponent = ({
29739
30030
  );
29740
30031
  };
29741
30032
 
29742
- // components/DropZone/index.tsx
29743
- var import_dnd4 = require("@hello-pangea/dnd");
29744
-
29745
- // lib/get-item.ts
29746
- init_react_import();
29747
-
29748
- // lib/root-droppable-id.ts
29749
- init_react_import();
29750
- var rootDroppableId = "default-zone";
29751
-
29752
- // lib/setup-zone.ts
29753
- init_react_import();
29754
- var setupZone = (data, zoneKey) => {
29755
- if (zoneKey === rootDroppableId) {
29756
- return data;
29757
- }
29758
- const newData = __spreadValues({}, data);
29759
- newData.zones = data.zones || {};
29760
- newData.zones[zoneKey] = newData.zones[zoneKey] || [];
29761
- return newData;
29762
- };
29763
-
29764
- // lib/get-item.ts
29765
- var getItem = (selector, data, dynamicProps = {}) => {
29766
- if (!selector.zone || selector.zone === rootDroppableId) {
29767
- const item2 = data.content[selector.index];
29768
- return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
29769
- }
29770
- const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
29771
- return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
30033
+ // components/DropZone/styles.module.css
30034
+ var styles_default4 = {
30035
+ DropZone: "styles_DropZone",
30036
+ "DropZone-content": "styles_DropZone-content",
30037
+ "DropZone--userIsDragging": "styles_DropZone--userIsDragging",
30038
+ "DropZone--draggingOverArea": "styles_DropZone--draggingOverArea",
30039
+ "DropZone--draggingNewComponent": "styles_DropZone--draggingNewComponent",
30040
+ "DropZone--isAreaSelected": "styles_DropZone--isAreaSelected",
30041
+ "DropZone--hoveringOverArea": "styles_DropZone--hoveringOverArea",
30042
+ "DropZone--isDisabled": "styles_DropZone--isDisabled",
30043
+ "DropZone--isRootZone": "styles_DropZone--isRootZone",
30044
+ "DropZone--hasChildren": "styles_DropZone--hasChildren",
30045
+ "DropZone--isDestination": "styles_DropZone--isDestination",
30046
+ "DropZone-item": "styles_DropZone-item",
30047
+ "DropZone-hitbox": "styles_DropZone-hitbox"
29772
30048
  };
29773
30049
 
29774
- // css-module:/home/runner/work/puck/puck/packages/core/components/DropZone/styles.module.css#css-module
29775
- init_react_import();
29776
- var styles_module_default4 = { "DropZone": "_DropZone_i675d_1", "DropZone--zoomEnabled": "_DropZone--zoomEnabled_i675d_10", "DropZone-renderWrapper": "_DropZone-renderWrapper_i675d_14", "DropZone-content": "_DropZone-content_i675d_18", "DropZone--userIsDragging": "_DropZone--userIsDragging_i675d_23", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_i675d_27", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_i675d_28", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_i675d_34", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_i675d_35", "DropZone--isDisabled": "_DropZone--isDisabled_i675d_36", "DropZone--isRootZone": "_DropZone--isRootZone_i675d_37", "DropZone--hasChildren": "_DropZone--hasChildren_i675d_43", "DropZone--isDestination": "_DropZone--isDestination_i675d_48", "DropZone-item": "_DropZone-item_i675d_56", "DropZone-hitbox": "_DropZone-hitbox_i675d_60" };
29777
-
29778
30050
  // components/DropZone/context.tsx
29779
30051
  init_react_import();
29780
- var import_react7 = require("react");
30052
+ var import_react8 = require("react");
29781
30053
  var import_use_debounce = require("use-debounce");
29782
30054
 
29783
30055
  // lib/get-zone-id.ts
@@ -29793,30 +30065,30 @@ var getZoneId = (zoneCompound) => {
29793
30065
  };
29794
30066
 
29795
30067
  // components/DropZone/context.tsx
29796
- var import_jsx_runtime6 = require("react/jsx-runtime");
29797
- var dropZoneContext = (0, import_react7.createContext)(null);
30068
+ var import_jsx_runtime8 = require("react/jsx-runtime");
30069
+ var dropZoneContext = (0, import_react8.createContext)(null);
29798
30070
  var DropZoneProvider = ({
29799
30071
  children,
29800
30072
  value
29801
30073
  }) => {
29802
- const [hoveringArea, setHoveringArea] = (0, import_react7.useState)(null);
29803
- const [hoveringZone, setHoveringZone] = (0, import_react7.useState)(
30074
+ const [hoveringArea, setHoveringArea] = (0, import_react8.useState)(null);
30075
+ const [hoveringZone, setHoveringZone] = (0, import_react8.useState)(
29804
30076
  rootDroppableId
29805
30077
  );
29806
- const [hoveringComponent, setHoveringComponent] = (0, import_react7.useState)();
30078
+ const [hoveringComponent, setHoveringComponent] = (0, import_react8.useState)();
29807
30079
  const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
29808
- const [areasWithZones, setAreasWithZones] = (0, import_react7.useState)(
30080
+ const [areasWithZones, setAreasWithZones] = (0, import_react8.useState)(
29809
30081
  {}
29810
30082
  );
29811
- const [activeZones, setActiveZones] = (0, import_react7.useState)({});
30083
+ const [activeZones, setActiveZones] = (0, import_react8.useState)({});
29812
30084
  const { dispatch = null } = value ? value : {};
29813
- const registerZoneArea = (0, import_react7.useCallback)(
30085
+ const registerZoneArea = (0, import_react8.useCallback)(
29814
30086
  (area) => {
29815
30087
  setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
29816
30088
  },
29817
30089
  [setAreasWithZones]
29818
30090
  );
29819
- const registerZone = (0, import_react7.useCallback)(
30091
+ const registerZone = (0, import_react8.useCallback)(
29820
30092
  (zoneCompound) => {
29821
30093
  if (!dispatch) {
29822
30094
  return;
@@ -29829,7 +30101,7 @@ var DropZoneProvider = ({
29829
30101
  },
29830
30102
  [setActiveZones, dispatch]
29831
30103
  );
29832
- const unregisterZone = (0, import_react7.useCallback)(
30104
+ const unregisterZone = (0, import_react8.useCallback)(
29833
30105
  (zoneCompound) => {
29834
30106
  if (!dispatch) {
29835
30107
  return;
@@ -29844,8 +30116,8 @@ var DropZoneProvider = ({
29844
30116
  },
29845
30117
  [setActiveZones, dispatch]
29846
30118
  );
29847
- const [pathData, setPathData] = (0, import_react7.useState)();
29848
- const registerPath = (0, import_react7.useCallback)(
30119
+ const [pathData, setPathData] = (0, import_react8.useState)();
30120
+ const registerPath = (0, import_react8.useCallback)(
29849
30121
  (selector) => {
29850
30122
  if (!(value == null ? void 0 : value.data)) {
29851
30123
  return;
@@ -29870,7 +30142,8 @@ var DropZoneProvider = ({
29870
30142
  },
29871
30143
  [value, setPathData]
29872
30144
  );
29873
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
30145
+ const [zoneWillDrag, setZoneWillDrag] = (0, import_react8.useState)("");
30146
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
29874
30147
  dropZoneContext.Provider,
29875
30148
  {
29876
30149
  value: __spreadValues({
@@ -29886,58 +30159,18 @@ var DropZoneProvider = ({
29886
30159
  unregisterZone,
29887
30160
  activeZones,
29888
30161
  registerPath,
29889
- pathData
30162
+ pathData,
30163
+ zoneWillDrag,
30164
+ setZoneWillDrag
29890
30165
  }, value),
29891
30166
  children
29892
30167
  }
29893
30168
  ) });
29894
30169
  };
29895
30170
 
29896
- // components/Puck/context.tsx
29897
- init_react_import();
29898
- var import_react8 = require("react");
29899
- var defaultAppState = {
29900
- data: { content: [], root: { props: { title: "" } } },
29901
- ui: {
29902
- leftSideBarVisible: true,
29903
- rightSideBarVisible: true,
29904
- arrayState: {},
29905
- itemSelector: null,
29906
- componentList: {},
29907
- isDragging: false
29908
- }
29909
- };
29910
- var appContext = (0, import_react8.createContext)({
29911
- state: defaultAppState,
29912
- dispatch: () => null,
29913
- config: { components: {} },
29914
- componentState: {},
29915
- resolveData: () => {
29916
- },
29917
- plugins: [],
29918
- overrides: {},
29919
- history: {}
29920
- });
29921
- var AppProvider = appContext.Provider;
29922
- function useAppContext() {
29923
- const mainContext = (0, import_react8.useContext)(appContext);
29924
- const selectedItem = mainContext.state.ui.itemSelector ? getItem(mainContext.state.ui.itemSelector, mainContext.state.data) : void 0;
29925
- return __spreadProps(__spreadValues({}, mainContext), {
29926
- // Helpers
29927
- selectedItem,
29928
- setUi: (ui, recordHistory) => {
29929
- return mainContext.dispatch({
29930
- type: "setUi",
29931
- ui,
29932
- recordHistory
29933
- });
29934
- }
29935
- });
29936
- }
29937
-
29938
30171
  // components/DropZone/index.tsx
29939
- var import_jsx_runtime7 = require("react/jsx-runtime");
29940
- var getClassName5 = get_class_name_factory_default("DropZone", styles_module_default4);
30172
+ var import_jsx_runtime9 = require("react/jsx-runtime");
30173
+ var getClassName5 = get_class_name_factory_default("DropZone", styles_default4);
29941
30174
  function DropZoneEdit({ zone, allow, disallow, style }) {
29942
30175
  var _a;
29943
30176
  const appContext2 = useAppContext();
@@ -29955,7 +30188,8 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29955
30188
  registerZoneArea,
29956
30189
  areasWithZones,
29957
30190
  hoveringComponent,
29958
- disableZoom = false
30191
+ zoneWillDrag,
30192
+ setZoneWillDrag = () => null
29959
30193
  } = ctx || {};
29960
30194
  let content = data.content || [];
29961
30195
  let zoneCompound = rootDroppableId;
@@ -29985,12 +30219,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29985
30219
  const draggedDestinationId = draggedItem && ((_a = draggedItem.destination) == null ? void 0 : _a.droppableId);
29986
30220
  const [zoneArea] = getZoneId(zoneCompound);
29987
30221
  const [draggedSourceArea] = getZoneId(draggedSourceId);
29988
- const [userWillDrag, setUserWillDrag] = (0, import_react9.useState)(false);
30222
+ const userWillDrag = zoneWillDrag === zone;
29989
30223
  const userIsDragging = !!draggedItem;
29990
30224
  const draggingOverArea = userIsDragging && zoneArea === draggedSourceArea;
29991
30225
  const draggingNewComponent = draggedSourceId == null ? void 0 : draggedSourceId.startsWith("component-list");
29992
30226
  if (!(ctx == null ? void 0 : ctx.config) || !ctx.setHoveringArea || !ctx.setHoveringZone || !ctx.setHoveringComponent || !ctx.setItemSelector || !ctx.registerPath || !ctx.dispatch) {
29993
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { children: "DropZone requires context to work." });
30227
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: "DropZone requires context to work." });
29994
30228
  }
29995
30229
  const {
29996
30230
  hoveringArea = "root",
@@ -30027,7 +30261,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30027
30261
  }
30028
30262
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
30029
30263
  const isAreaSelected = selectedItem && zoneArea === selectedItem.props.id;
30030
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30264
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30031
30265
  "div",
30032
30266
  {
30033
30267
  className: getClassName5({
@@ -30039,17 +30273,19 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30039
30273
  isDestination: draggedDestinationId === zoneCompound,
30040
30274
  isDisabled: !isEnabled,
30041
30275
  isAreaSelected,
30042
- hasChildren: content.length > 0,
30043
- zoomEnabled: !disableZoom
30276
+ hasChildren: content.length > 0
30044
30277
  }),
30045
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30046
- import_dnd4.Droppable,
30278
+ onMouseUp: () => {
30279
+ setZoneWillDrag("");
30280
+ },
30281
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30282
+ Droppable,
30047
30283
  {
30048
30284
  droppableId: zoneCompound,
30049
30285
  direction: "vertical",
30050
30286
  isDropDisabled: !isEnabled,
30051
30287
  children: (provided, snapshot) => {
30052
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30288
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30053
30289
  "div",
30054
30290
  __spreadProps(__spreadValues({}, (provided || { droppableProps: {} }).droppableProps), {
30055
30291
  className: getClassName5("content"),
@@ -30063,7 +30299,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30063
30299
  },
30064
30300
  children: [
30065
30301
  content.map((item, i) => {
30066
- var _a2, _b;
30302
+ var _a2, _b, _c;
30067
30303
  const componentId = item.props.id;
30068
30304
  const defaultedProps = __spreadProps(__spreadValues(__spreadValues({}, (_a2 = config.components[item.type]) == null ? void 0 : _a2.defaultProps), item.props), {
30069
30305
  puck: { renderDropZone: DropZone },
@@ -30074,33 +30310,33 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30074
30310
  "draggable-"
30075
30311
  )[1] === componentId;
30076
30312
  const containsZone = areasWithZones ? areasWithZones[componentId] : false;
30077
- const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { padding: 48, textAlign: "center" }, children: [
30313
+ const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { padding: 48, textAlign: "center" }, children: [
30078
30314
  "No configuration for ",
30079
30315
  item.type
30080
30316
  ] });
30081
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30317
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30082
30318
  "div",
30083
30319
  {
30084
30320
  className: getClassName5("item"),
30085
30321
  style: { zIndex: isDragging ? 1 : void 0 },
30086
30322
  children: [
30087
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30323
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30088
30324
  DropZoneProvider,
30089
30325
  {
30090
30326
  value: __spreadProps(__spreadValues({}, ctx), {
30091
30327
  areaId: componentId
30092
30328
  }),
30093
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30329
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30094
30330
  DraggableComponent,
30095
30331
  {
30096
- label: item.type.toString(),
30332
+ label: (_b = config.components[item.type]["label"]) != null ? _b : item.type.toString(),
30097
30333
  id: `draggable-${componentId}`,
30098
30334
  index: i,
30099
30335
  isSelected,
30100
30336
  isLocked: userIsDragging,
30101
30337
  forceHover: hoveringComponent === componentId && !userIsDragging,
30102
30338
  indicativeHover: userIsDragging && containsZone && hoveringArea === componentId,
30103
- isLoading: (_b = appContext2.componentState[componentId]) == null ? void 0 : _b.loading,
30339
+ isLoading: (_c = appContext2.componentState[componentId]) == null ? void 0 : _c.loading,
30104
30340
  onMount: () => {
30105
30341
  ctx.registerPath({
30106
30342
  index: i,
@@ -30116,11 +30352,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30116
30352
  },
30117
30353
  onMouseDown: (e) => {
30118
30354
  e.stopPropagation();
30119
- setUserWillDrag(true);
30120
- },
30121
- onMouseUp: (e) => {
30122
- e.stopPropagation();
30123
- setUserWillDrag(false);
30355
+ setZoneWillDrag(zone);
30124
30356
  },
30125
30357
  onMouseOver: (e) => {
30126
30358
  e.stopPropagation();
@@ -30161,12 +30393,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30161
30393
  style: {
30162
30394
  pointerEvents: userIsDragging && draggingNewComponent ? "all" : void 0
30163
30395
  },
30164
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30396
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30165
30397
  }
30166
30398
  )
30167
30399
  }
30168
30400
  ),
30169
- userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30401
+ userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30170
30402
  "div",
30171
30403
  {
30172
30404
  className: getClassName5("hitbox"),
@@ -30183,12 +30415,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30183
30415
  );
30184
30416
  }),
30185
30417
  provided == null ? void 0 : provided.placeholder,
30186
- (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30418
+ (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30187
30419
  "div",
30188
30420
  {
30189
30421
  "data-puck-placeholder": true,
30190
30422
  style: __spreadProps(__spreadValues({}, placeholderStyle), {
30191
- background: "var(--puck-color-azure-5)",
30423
+ background: "var(--puck-color-azure-06)",
30192
30424
  opacity: 0.3,
30193
30425
  zIndex: 0
30194
30426
  })
@@ -30215,14 +30447,14 @@ function DropZoneRender({ zone }) {
30215
30447
  zoneCompound = `${areaId}:${zone}`;
30216
30448
  content = setupZone(data, zoneCompound).zones[zoneCompound];
30217
30449
  }
30218
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: content.map((item) => {
30450
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: content.map((item) => {
30219
30451
  const Component = config.components[item.type];
30220
30452
  if (Component) {
30221
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30453
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30222
30454
  DropZoneProvider,
30223
30455
  {
30224
30456
  value: { data, config, areaId: item.props.id },
30225
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30457
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30226
30458
  Component.render,
30227
30459
  __spreadProps(__spreadValues({}, item.props), {
30228
30460
  puck: { renderDropZone: DropZone }
@@ -30238,9 +30470,9 @@ function DropZoneRender({ zone }) {
30238
30470
  function DropZone(props) {
30239
30471
  const ctx = (0, import_react9.useContext)(dropZoneContext);
30240
30472
  if ((ctx == null ? void 0 : ctx.mode) === "edit") {
30241
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneEdit, __spreadValues({}, props));
30473
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneEdit, __spreadValues({}, props));
30242
30474
  }
30243
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneRender, __spreadValues({}, props));
30475
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneRender, __spreadValues({}, props));
30244
30476
  }
30245
30477
 
30246
30478
  // components/IconButton/index.ts
@@ -30250,14 +30482,17 @@ init_react_import();
30250
30482
  init_react_import();
30251
30483
  var import_react10 = require("react");
30252
30484
 
30253
- // css-module:/home/runner/work/puck/puck/packages/core/components/IconButton/IconButton.module.css#css-module
30254
- init_react_import();
30255
- var IconButton_module_default = { "IconButton": "_IconButton_38xdr_1", "IconButton-title": "_IconButton-title_38xdr_18" };
30485
+ // components/IconButton/IconButton.module.css
30486
+ var IconButton_default = {
30487
+ IconButton: "IconButton_IconButton",
30488
+ "IconButton--disabled": "IconButton_IconButton--disabled",
30489
+ "IconButton-title": "IconButton_IconButton-title"
30490
+ };
30256
30491
 
30257
30492
  // components/IconButton/IconButton.tsx
30258
30493
  var import_react_spinners3 = require("react-spinners");
30259
- var import_jsx_runtime8 = require("react/jsx-runtime");
30260
- var getClassName6 = get_class_name_factory_default("IconButton", IconButton_module_default);
30494
+ var import_jsx_runtime10 = require("react/jsx-runtime");
30495
+ var getClassName6 = get_class_name_factory_default("IconButton", IconButton_default);
30261
30496
  var IconButton = ({
30262
30497
  children,
30263
30498
  href,
@@ -30272,7 +30507,7 @@ var IconButton = ({
30272
30507
  }) => {
30273
30508
  const [loading, setLoading] = (0, import_react10.useState)(false);
30274
30509
  const ElementType = href ? "a" : "button";
30275
- const el = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
30510
+ const el = /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30276
30511
  ElementType,
30277
30512
  {
30278
30513
  className: getClassName6({
@@ -30297,11 +30532,11 @@ var IconButton = ({
30297
30532
  href,
30298
30533
  title,
30299
30534
  children: [
30300
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: getClassName6("title"), children: title }),
30535
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: getClassName6("title"), children: title }),
30301
30536
  children,
30302
- loading && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
30537
+ loading && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
30303
30538
  "\xA0\xA0",
30304
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30539
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30305
30540
  ] })
30306
30541
  ]
30307
30542
  }
@@ -30311,12 +30546,23 @@ var IconButton = ({
30311
30546
 
30312
30547
  // components/Puck/index.tsx
30313
30548
  init_react_import();
30314
- var import_react26 = require("react");
30315
- var import_dnd7 = require("@hello-pangea/dnd");
30549
+ var import_react28 = require("react");
30316
30550
 
30317
30551
  // lib/use-placeholder-style.ts
30318
30552
  init_react_import();
30319
30553
  var import_react11 = require("react");
30554
+
30555
+ // lib/get-frame.ts
30556
+ init_react_import();
30557
+ var getFrame = () => {
30558
+ let frame = document.querySelector("#preview-frame");
30559
+ if ((frame == null ? void 0 : frame.tagName) === "IFRAME") {
30560
+ frame = frame.contentDocument;
30561
+ }
30562
+ return frame;
30563
+ };
30564
+
30565
+ // lib/use-placeholder-style.ts
30320
30566
  var usePlaceholderStyle = () => {
30321
30567
  const queryAttr = "data-rfd-drag-handle-draggable-id";
30322
30568
  const [placeholderStyle, setPlaceholderStyle] = (0, import_react11.useState)();
@@ -30326,11 +30572,12 @@ var usePlaceholderStyle = () => {
30326
30572
  const destinationIndex = (draggedItem.destination || draggedItem.source).index;
30327
30573
  const droppableId = (draggedItem.destination || draggedItem.source).droppableId;
30328
30574
  const domQuery = `[${queryAttr}='${draggableId}']`;
30329
- const draggedDOM = document.querySelector(domQuery);
30575
+ const frame = getFrame();
30576
+ const draggedDOM = document.querySelector(domQuery) || (frame == null ? void 0 : frame.querySelector(domQuery));
30330
30577
  if (!draggedDOM) {
30331
30578
  return;
30332
30579
  }
30333
- const targetListElement = document.querySelector(
30580
+ const targetListElement = frame == null ? void 0 : frame.querySelector(
30334
30581
  `[data-rfd-droppable-id='${droppableId}']`
30335
30582
  );
30336
30583
  const { clientHeight } = draggedDOM;
@@ -30365,23 +30612,42 @@ var usePlaceholderStyle = () => {
30365
30612
  // components/SidebarSection/index.tsx
30366
30613
  init_react_import();
30367
30614
 
30368
- // css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css#css-module
30369
- init_react_import();
30370
- var styles_module_default5 = { "SidebarSection": "_SidebarSection_170gs_1", "SidebarSection-title": "_SidebarSection-title_170gs_12", "SidebarSection--noBorderTop": "_SidebarSection--noBorderTop_170gs_20", "SidebarSection-content": "_SidebarSection-content_170gs_24", "SidebarSection--noPadding": "_SidebarSection--noPadding_170gs_28", "SidebarSection-breadcrumbLabel": "_SidebarSection-breadcrumbLabel_170gs_41", "SidebarSection-breadcrumbs": "_SidebarSection-breadcrumbs_170gs_52", "SidebarSection-breadcrumb": "_SidebarSection-breadcrumb_170gs_41", "SidebarSection-heading": "_SidebarSection-heading_170gs_64", "SidebarSection-loadingOverlay": "_SidebarSection-loadingOverlay_170gs_68" };
30615
+ // components/SidebarSection/styles.module.css
30616
+ var styles_default5 = {
30617
+ SidebarSection: "styles_SidebarSection",
30618
+ "SidebarSection-title": "styles_SidebarSection-title",
30619
+ "SidebarSection--noBorderTop": "styles_SidebarSection--noBorderTop",
30620
+ "SidebarSection-content": "styles_SidebarSection-content",
30621
+ "SidebarSection--noPadding": "styles_SidebarSection--noPadding",
30622
+ "SidebarSection-breadcrumbLabel": "styles_SidebarSection-breadcrumbLabel",
30623
+ "SidebarSection-breadcrumbs": "styles_SidebarSection-breadcrumbs",
30624
+ "SidebarSection-breadcrumb": "styles_SidebarSection-breadcrumb",
30625
+ "SidebarSection-heading": "styles_SidebarSection-heading",
30626
+ "SidebarSection-loadingOverlay": "styles_SidebarSection-loadingOverlay"
30627
+ };
30371
30628
 
30372
30629
  // components/Heading/index.tsx
30373
30630
  init_react_import();
30374
30631
 
30375
- // css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
30376
- init_react_import();
30377
- var styles_module_default6 = { "Heading": "_Heading_1bvy5_1", "Heading--xxxxl": "_Heading--xxxxl_1bvy5_13", "Heading--xxxl": "_Heading--xxxl_1bvy5_19", "Heading--xxl": "_Heading--xxl_1bvy5_23", "Heading--xl": "_Heading--xl_1bvy5_27", "Heading--l": "_Heading--l_1bvy5_31", "Heading--m": "_Heading--m_1bvy5_35", "Heading--s": "_Heading--s_1bvy5_39", "Heading--xs": "_Heading--xs_1bvy5_43" };
30632
+ // components/Heading/styles.module.css
30633
+ var styles_default6 = {
30634
+ Heading: "styles_Heading",
30635
+ "Heading--xxxxl": "styles_Heading--xxxxl",
30636
+ "Heading--xxxl": "styles_Heading--xxxl",
30637
+ "Heading--xxl": "styles_Heading--xxl",
30638
+ "Heading--xl": "styles_Heading--xl",
30639
+ "Heading--l": "styles_Heading--l",
30640
+ "Heading--m": "styles_Heading--m",
30641
+ "Heading--s": "styles_Heading--s",
30642
+ "Heading--xs": "styles_Heading--xs"
30643
+ };
30378
30644
 
30379
30645
  // components/Heading/index.tsx
30380
- var import_jsx_runtime9 = require("react/jsx-runtime");
30381
- var getClassName7 = get_class_name_factory_default("Heading", styles_module_default6);
30646
+ var import_jsx_runtime11 = require("react/jsx-runtime");
30647
+ var getClassName7 = get_class_name_factory_default("Heading", styles_default6);
30382
30648
  var Heading = ({ children, rank, size = "m" }) => {
30383
30649
  const Tag = rank ? `h${rank}` : "span";
30384
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30650
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
30385
30651
  Tag,
30386
30652
  {
30387
30653
  className: getClassName7({
@@ -30460,8 +30726,8 @@ var useBreadcrumbs = (renderCount) => {
30460
30726
 
30461
30727
  // components/SidebarSection/index.tsx
30462
30728
  var import_react_spinners4 = require("react-spinners");
30463
- var import_jsx_runtime10 = require("react/jsx-runtime");
30464
- var getClassName8 = get_class_name_factory_default("SidebarSection", styles_module_default5);
30729
+ var import_jsx_runtime12 = require("react/jsx-runtime");
30730
+ var getClassName8 = get_class_name_factory_default("SidebarSection", styles_default5);
30465
30731
  var SidebarSection = ({
30466
30732
  children,
30467
30733
  title,
@@ -30473,28 +30739,28 @@ var SidebarSection = ({
30473
30739
  }) => {
30474
30740
  const { setUi } = useAppContext();
30475
30741
  const breadcrumbs = useBreadcrumbs(1);
30476
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30742
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
30477
30743
  "div",
30478
30744
  {
30479
30745
  className: getClassName8({ noBorderTop, noPadding }),
30480
30746
  style: { background },
30481
30747
  children: [
30482
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
30483
- showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
30484
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
30485
- "div",
30748
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
30749
+ showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
30750
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
30751
+ "button",
30486
30752
  {
30487
30753
  className: getClassName8("breadcrumbLabel"),
30488
30754
  onClick: () => setUi({ itemSelector: breadcrumb.selector }),
30489
30755
  children: breadcrumb.label
30490
30756
  }
30491
30757
  ),
30492
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronRight, { size: 16 })
30758
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { size: 16 })
30493
30759
  ] }, i)) : null,
30494
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading, { rank: 2, size: "xs", children: title }) })
30760
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Heading, { rank: 2, size: "xs", children: title }) })
30495
30761
  ] }) }),
30496
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: getClassName8("content"), children }),
30497
- 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" }) })
30762
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("content"), children }),
30763
+ 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" }) })
30498
30764
  ]
30499
30765
  }
30500
30766
  );
@@ -31000,7 +31266,10 @@ var useResolvedData = (appState, config, dispatch) => {
31000
31266
  );
31001
31267
  const runResolvers = () => __async(void 0, null, function* () {
31002
31268
  const newData = newAppState.data;
31003
- const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => !!config.components[item.type].resolveData);
31269
+ const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => {
31270
+ var _a;
31271
+ return !!((_a = config.components[item.type]) == null ? void 0 : _a.resolveData);
31272
+ });
31004
31273
  const applyIfChange = (dynamicDataMap, dynamicRoot) => {
31005
31274
  const processed = applyDynamicProps(
31006
31275
  appState.data,
@@ -31068,13 +31337,17 @@ var useResolvedData = (appState, config, dispatch) => {
31068
31337
  // components/MenuBar/index.tsx
31069
31338
  init_react_import();
31070
31339
 
31071
- // css-module:/home/runner/work/puck/puck/packages/core/components/MenuBar/styles.module.css#css-module
31072
- init_react_import();
31073
- var styles_module_default7 = { "MenuBar": "_MenuBar_12sp7_1", "MenuBar--menuOpen": "_MenuBar--menuOpen_12sp7_14", "MenuBar-inner": "_MenuBar-inner_12sp7_29", "MenuBar-history": "_MenuBar-history_12sp7_45" };
31340
+ // components/MenuBar/styles.module.css
31341
+ var styles_default7 = {
31342
+ MenuBar: "styles_MenuBar",
31343
+ "MenuBar--menuOpen": "styles_MenuBar--menuOpen",
31344
+ "MenuBar-inner": "styles_MenuBar-inner",
31345
+ "MenuBar-history": "styles_MenuBar-history"
31346
+ };
31074
31347
 
31075
31348
  // components/MenuBar/index.tsx
31076
- var import_jsx_runtime11 = require("react/jsx-runtime");
31077
- var getClassName9 = get_class_name_factory_default("MenuBar", styles_module_default7);
31349
+ var import_jsx_runtime13 = require("react/jsx-runtime");
31350
+ var getClassName9 = get_class_name_factory_default("MenuBar", styles_default7);
31078
31351
  var MenuBar = ({
31079
31352
  appState,
31080
31353
  data = { content: [], root: { props: { title: "" } } },
@@ -31088,7 +31361,7 @@ var MenuBar = ({
31088
31361
  history: { back, forward, historyStore }
31089
31362
  } = useAppContext();
31090
31363
  const { hasFuture = false, hasPast = false } = historyStore || {};
31091
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31364
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31092
31365
  "div",
31093
31366
  {
31094
31367
  className: getClassName9({ menuOpen }),
@@ -31102,34 +31375,34 @@ var MenuBar = ({
31102
31375
  setMenuOpen(false);
31103
31376
  }
31104
31377
  },
31105
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: getClassName9("inner"), children: [
31106
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: getClassName9("history"), children: [
31107
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31378
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("inner"), children: [
31379
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("history"), children: [
31380
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31108
31381
  ChevronLeft,
31109
31382
  {
31110
31383
  size: 21,
31111
- stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
31384
+ stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31112
31385
  }
31113
31386
  ) }),
31114
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31387
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31115
31388
  ChevronRight,
31116
31389
  {
31117
31390
  size: 21,
31118
- stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
31391
+ stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31119
31392
  }
31120
31393
  ) })
31121
31394
  ] }),
31122
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: renderHeaderActions && renderHeaderActions({
31395
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: renderHeaderActions && renderHeaderActions({
31123
31396
  state: appState,
31124
31397
  dispatch
31125
31398
  }) }),
31126
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31399
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31127
31400
  Button,
31128
31401
  {
31129
31402
  onClick: () => {
31130
31403
  onPublish && onPublish(data);
31131
31404
  },
31132
- icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Globe, { size: "14px" }),
31405
+ icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Globe, { size: "14px" }),
31133
31406
  children: "Publish"
31134
31407
  }
31135
31408
  ) })
@@ -31138,9 +31411,24 @@ var MenuBar = ({
31138
31411
  );
31139
31412
  };
31140
31413
 
31141
- // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/styles.module.css#css-module
31142
- init_react_import();
31143
- var styles_module_default8 = { "Puck": "_Puck_17hk3_19", "Puck--leftSideBarVisible": "_Puck--leftSideBarVisible_17hk3_35", "Puck--rightSideBarVisible": "_Puck--rightSideBarVisible_17hk3_41", "Puck-header": "_Puck-header_17hk3_95", "Puck-headerInner": "_Puck-headerInner_17hk3_104", "Puck-headerToggle": "_Puck-headerToggle_17hk3_114", "Puck-rightSideBarToggle": "_Puck-rightSideBarToggle_17hk3_121", "Puck-leftSideBarToggle": "_Puck-leftSideBarToggle_17hk3_122", "Puck-headerTitle": "_Puck-headerTitle_17hk3_126", "Puck-headerPath": "_Puck-headerPath_17hk3_130", "Puck-headerTools": "_Puck-headerTools_17hk3_137", "Puck-menuButton": "_Puck-menuButton_17hk3_143", "Puck--menuOpen": "_Puck--menuOpen_17hk3_148", "Puck-leftSideBar": "_Puck-leftSideBar_17hk3_122", "Puck-frame": "_Puck-frame_17hk3_167", "Puck-root": "_Puck-root_17hk3_175", "Puck-rightSideBar": "_Puck-rightSideBar_17hk3_121" };
31414
+ // components/Puck/styles.module.css
31415
+ var styles_default8 = {
31416
+ Puck: "styles_Puck",
31417
+ "Puck--leftSideBarVisible": "styles_Puck--leftSideBarVisible",
31418
+ "Puck--rightSideBarVisible": "styles_Puck--rightSideBarVisible",
31419
+ "Puck-header": "styles_Puck-header",
31420
+ "Puck-headerInner": "styles_Puck-headerInner",
31421
+ "Puck-headerToggle": "styles_Puck-headerToggle",
31422
+ "Puck-rightSideBarToggle": "styles_Puck-rightSideBarToggle",
31423
+ "Puck-leftSideBarToggle": "styles_Puck-leftSideBarToggle",
31424
+ "Puck-headerTitle": "styles_Puck-headerTitle",
31425
+ "Puck-headerPath": "styles_Puck-headerPath",
31426
+ "Puck-headerTools": "styles_Puck-headerTools",
31427
+ "Puck-menuButton": "styles_Puck-menuButton",
31428
+ "Puck--menuOpen": "styles_Puck--menuOpen",
31429
+ "Puck-leftSideBar": "styles_Puck-leftSideBar",
31430
+ "Puck-rightSideBar": "styles_Puck-rightSideBar"
31431
+ };
31144
31432
 
31145
31433
  // components/Puck/components/Fields/index.tsx
31146
31434
  init_react_import();
@@ -31149,9 +31437,19 @@ var import_react_spinners6 = require("react-spinners");
31149
31437
  // components/InputOrGroup/index.tsx
31150
31438
  init_react_import();
31151
31439
 
31152
- // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/styles.module.css#css-module
31153
- init_react_import();
31154
- var styles_module_default9 = { "Input": "_Input_1v7zr_1", "Input-label": "_Input-label_1v7zr_27", "Input-labelIcon": "_Input-labelIcon_1v7zr_35", "Input-disabledIcon": "_Input-disabledIcon_1v7zr_41", "Input-input": "_Input-input_1v7zr_46", "Input--readOnly": "_Input--readOnly_1v7zr_69", "Input-radioGroupItems": "_Input-radioGroupItems_1v7zr_87", "Input-radio": "_Input-radio_1v7zr_87", "Input-radioInner": "_Input-radioInner_1v7zr_104", "Input-radioInput": "_Input-radioInput_1v7zr_126" };
31440
+ // components/InputOrGroup/styles.module.css
31441
+ var styles_default9 = {
31442
+ Input: "styles_Input",
31443
+ "Input-label": "styles_Input-label",
31444
+ "Input-labelIcon": "styles_Input-labelIcon",
31445
+ "Input-disabledIcon": "styles_Input-disabledIcon",
31446
+ "Input-input": "styles_Input-input",
31447
+ "Input--readOnly": "styles_Input--readOnly",
31448
+ "Input-radioGroupItems": "styles_Input-radioGroupItems",
31449
+ "Input-radio": "styles_Input-radio",
31450
+ "Input-radioInner": "styles_Input-radioInner",
31451
+ "Input-radioInput": "styles_Input-radioInput"
31452
+ };
31155
31453
 
31156
31454
  // components/InputOrGroup/index.tsx
31157
31455
  var import_react18 = require("react");
@@ -31162,17 +31460,41 @@ init_react_import();
31162
31460
  // components/InputOrGroup/fields/ArrayField/index.tsx
31163
31461
  init_react_import();
31164
31462
 
31165
- // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ArrayField/styles.module.css#css-module
31166
- init_react_import();
31167
- var styles_module_default10 = { "ArrayField": "_ArrayField_1auyc_5", "ArrayField--isDraggingFrom": "_ArrayField--isDraggingFrom_1auyc_13", "ArrayField-addButton": "_ArrayField-addButton_1auyc_17", "ArrayField--hasItems": "_ArrayField--hasItems_1auyc_31", "ArrayFieldItem": "_ArrayFieldItem_1auyc_45", "ArrayFieldItem--isDragging": "_ArrayFieldItem--isDragging_1auyc_53", "ArrayFieldItem--isExpanded": "_ArrayFieldItem--isExpanded_1auyc_58", "ArrayFieldItem-summary": "_ArrayFieldItem-summary_1auyc_73", "ArrayFieldItem--readOnly": "_ArrayFieldItem--readOnly_1auyc_86", "ArrayFieldItem-body": "_ArrayFieldItem-body_1auyc_107", "ArrayFieldItem-fieldset": "_ArrayFieldItem-fieldset_1auyc_115", "ArrayFieldItem-rhs": "_ArrayFieldItem-rhs_1auyc_122", "ArrayFieldItem-actions": "_ArrayFieldItem-actions_1auyc_128", "ArrayFieldItem-action": "_ArrayFieldItem-action_1auyc_128" };
31463
+ // components/InputOrGroup/fields/ArrayField/styles.module.css
31464
+ var styles_default10 = {
31465
+ ArrayField: "styles_ArrayField",
31466
+ "ArrayField--isDraggingFrom": "styles_ArrayField--isDraggingFrom",
31467
+ "ArrayField-addButton": "styles_ArrayField-addButton",
31468
+ "ArrayField--hasItems": "styles_ArrayField--hasItems",
31469
+ ArrayFieldItem: "styles_ArrayFieldItem",
31470
+ "ArrayFieldItem--isDragging": "styles_ArrayFieldItem--isDragging",
31471
+ "ArrayFieldItem--isExpanded": "styles_ArrayFieldItem--isExpanded",
31472
+ "ArrayFieldItem-summary": "styles_ArrayFieldItem-summary",
31473
+ "ArrayField--addDisabled": "styles_ArrayField--addDisabled",
31474
+ "ArrayFieldItem-body": "styles_ArrayFieldItem-body",
31475
+ "ArrayFieldItem-fieldset": "styles_ArrayFieldItem-fieldset",
31476
+ "ArrayFieldItem-rhs": "styles_ArrayFieldItem-rhs",
31477
+ "ArrayFieldItem-actions": "styles_ArrayFieldItem-actions"
31478
+ };
31168
31479
 
31169
31480
  // components/InputOrGroup/fields/ArrayField/index.tsx
31170
- var import_dnd5 = require("@hello-pangea/dnd");
31171
- var import_dnd6 = require("@hello-pangea/dnd");
31172
31481
  var import_react14 = require("react");
31173
- var import_jsx_runtime12 = require("react/jsx-runtime");
31174
- var getClassName10 = get_class_name_factory_default("ArrayField", styles_module_default10);
31175
- var getClassNameItem2 = get_class_name_factory_default("ArrayFieldItem", styles_module_default10);
31482
+
31483
+ // components/DragDropContext/index.tsx
31484
+ init_react_import();
31485
+ var import_dnd4 = require("@measured/dnd");
31486
+ var import_jsx_runtime14 = require("react/jsx-runtime");
31487
+ var DefaultDragDropContext = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
31488
+ var DragDropContext = (props) => {
31489
+ const { status } = useAppContext();
31490
+ const El = status !== "LOADING" ? import_dnd4.DragDropContext : DefaultDragDropContext;
31491
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(El, __spreadValues({}, props));
31492
+ };
31493
+
31494
+ // components/InputOrGroup/fields/ArrayField/index.tsx
31495
+ var import_jsx_runtime15 = require("react/jsx-runtime");
31496
+ var getClassName10 = get_class_name_factory_default("ArrayField", styles_default10);
31497
+ var getClassNameItem2 = get_class_name_factory_default("ArrayFieldItem", styles_default10);
31176
31498
  var ArrayField = ({
31177
31499
  field,
31178
31500
  onChange,
@@ -31234,21 +31556,24 @@ var ArrayField = ({
31234
31556
  [arrayState]
31235
31557
  );
31236
31558
  (0, import_react14.useEffect)(() => {
31237
- setUi(mapArrayStateToUi(arrayState));
31559
+ if (arrayState.items.length > 0) {
31560
+ setUi(mapArrayStateToUi(arrayState));
31561
+ }
31238
31562
  }, []);
31239
31563
  const [hovering, setHovering] = (0, import_react14.useState)(false);
31240
31564
  if (field.type !== "array" || !field.arrayFields) {
31241
31565
  return null;
31242
31566
  }
31243
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31567
+ const addDisabled = field.max !== void 0 && localState.arrayState.items.length >= field.max || readOnly;
31568
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31244
31569
  FieldLabelInternal,
31245
31570
  {
31246
31571
  label: label || name,
31247
- icon: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(List, { size: 16 }),
31572
+ icon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(List, { size: 16 }),
31248
31573
  el: "div",
31249
31574
  readOnly,
31250
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31251
- import_dnd6.DragDropContext,
31575
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31576
+ DragDropContext,
31252
31577
  {
31253
31578
  onDragEnd: (event) => {
31254
31579
  var _a, _b;
@@ -31274,14 +31599,15 @@ var ArrayField = ({
31274
31599
  });
31275
31600
  }
31276
31601
  },
31277
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_dnd5.Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
31278
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
31602
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
31603
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31279
31604
  "div",
31280
31605
  __spreadProps(__spreadValues({}, provided.droppableProps), {
31281
31606
  ref: provided.innerRef,
31282
31607
  className: getClassName10({
31283
31608
  isDraggingFrom: !!snapshot.draggingFromThisWith,
31284
- hasItems: Array.isArray(value) && value.length > 0
31609
+ hasItems: Array.isArray(value) && value.length > 0,
31610
+ addDisabled
31285
31611
  }),
31286
31612
  onMouseOver: (e) => {
31287
31613
  e.stopPropagation();
@@ -31295,7 +31621,7 @@ var ArrayField = ({
31295
31621
  localState.arrayState.items.map((item, i) => {
31296
31622
  const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
31297
31623
  const data = Array.from(localState.value || [])[i] || {};
31298
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31624
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31299
31625
  Draggable,
31300
31626
  {
31301
31627
  id: _arrayId,
@@ -31306,8 +31632,8 @@ var ArrayField = ({
31306
31632
  readOnly
31307
31633
  }),
31308
31634
  isDragDisabled: readOnly || !hovering,
31309
- children: () => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
31310
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
31635
+ children: () => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
31636
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31311
31637
  "div",
31312
31638
  {
31313
31639
  onClick: () => {
@@ -31328,10 +31654,12 @@ var ArrayField = ({
31328
31654
  className: getClassNameItem2("summary"),
31329
31655
  children: [
31330
31656
  field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
31331
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
31332
- !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)(
31657
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
31658
+ !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)(
31333
31659
  IconButton,
31334
31660
  {
31661
+ type: "button",
31662
+ disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
31335
31663
  onClick: (e) => {
31336
31664
  e.stopPropagation();
31337
31665
  const existingValue = [
@@ -31350,20 +31678,20 @@ var ArrayField = ({
31350
31678
  );
31351
31679
  },
31352
31680
  title: "Delete",
31353
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Trash, { size: 16 })
31681
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Trash, { size: 16 })
31354
31682
  }
31355
31683
  ) }) }),
31356
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DragIcon, {}) })
31684
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DragIcon, {}) })
31357
31685
  ] })
31358
31686
  ]
31359
31687
  }
31360
31688
  ),
31361
- /* @__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(
31689
+ /* @__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(
31362
31690
  (fieldName) => {
31363
31691
  const subField = field.arrayFields[fieldName];
31364
31692
  const subFieldName = `${name}[${i}].${fieldName}`;
31365
31693
  const wildcardFieldName = `${name}[*].${fieldName}`;
31366
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31694
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31367
31695
  InputOrGroup,
31368
31696
  {
31369
31697
  name: subFieldName,
@@ -31392,9 +31720,10 @@ var ArrayField = ({
31392
31720
  );
31393
31721
  }),
31394
31722
  provided.placeholder,
31395
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31723
+ !addDisabled && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31396
31724
  "button",
31397
31725
  {
31726
+ type: "button",
31398
31727
  className: getClassName10("addButton"),
31399
31728
  onClick: () => {
31400
31729
  const existingValue = value || [];
@@ -31405,7 +31734,7 @@ var ArrayField = ({
31405
31734
  const newArrayState = regenerateArrayState(newValue);
31406
31735
  onChange(newValue, mapArrayStateToUi(newArrayState));
31407
31736
  },
31408
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Plus, { size: "21" })
31737
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Plus, { size: 21 })
31409
31738
  }
31410
31739
  )
31411
31740
  ]
@@ -31420,8 +31749,8 @@ var ArrayField = ({
31420
31749
 
31421
31750
  // components/InputOrGroup/fields/DefaultField/index.tsx
31422
31751
  init_react_import();
31423
- var import_jsx_runtime13 = require("react/jsx-runtime");
31424
- var getClassName11 = get_class_name_factory_default("Input", styles_module_default9);
31752
+ var import_jsx_runtime16 = require("react/jsx-runtime");
31753
+ var getClassName11 = get_class_name_factory_default("Input", styles_default9);
31425
31754
  var DefaultField = ({
31426
31755
  field,
31427
31756
  onChange,
@@ -31431,16 +31760,16 @@ var DefaultField = ({
31431
31760
  label,
31432
31761
  id
31433
31762
  }) => {
31434
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31763
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31435
31764
  FieldLabelInternal,
31436
31765
  {
31437
31766
  label: label || name,
31438
- icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
31439
- field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Type, { size: 16 }),
31440
- field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Hash, { size: 16 })
31767
+ icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
31768
+ field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Type, { size: 16 }),
31769
+ field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Hash, { size: 16 })
31441
31770
  ] }),
31442
31771
  readOnly,
31443
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31772
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31444
31773
  "input",
31445
31774
  {
31446
31775
  className: getClassName11("input"),
@@ -31456,6 +31785,7 @@ var DefaultField = ({
31456
31785
  }
31457
31786
  },
31458
31787
  readOnly,
31788
+ tabIndex: readOnly ? -1 : void 0,
31459
31789
  id,
31460
31790
  min: field.type === "number" ? field.min : void 0,
31461
31791
  max: field.type === "number" ? field.max : void 0
@@ -31473,22 +31803,52 @@ var import_react17 = require("react");
31473
31803
  init_react_import();
31474
31804
  var import_react16 = require("react");
31475
31805
 
31476
- // css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
31477
- init_react_import();
31478
- var styles_module_default11 = { "ExternalInput": "_ExternalInput_s6fxy_1", "ExternalInput-actions": "_ExternalInput-actions_s6fxy_5", "ExternalInput-button": "_ExternalInput-button_s6fxy_9", "ExternalInput-detachButton": "_ExternalInput-detachButton_s6fxy_28", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_s6fxy_35", "ExternalInputModal": "_ExternalInputModal_s6fxy_56", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_s6fxy_64", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_s6fxy_72", "ExternalInputModal-table": "_ExternalInputModal-table_s6fxy_72", "ExternalInputModal-thead": "_ExternalInputModal-thead_s6fxy_88", "ExternalInputModal-th": "_ExternalInputModal-th_s6fxy_88", "ExternalInputModal-td": "_ExternalInputModal-td_s6fxy_102", "ExternalInputModal-tr": "_ExternalInputModal-tr_s6fxy_107", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_s6fxy_119", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_s6fxy_138", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_s6fxy_142", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_s6fxy_155", "ExternalInputModal-noContentBanner": "_ExternalInputModal-noContentBanner_s6fxy_159", "ExternalInputModal--loaded": "_ExternalInputModal--loaded_s6fxy_166", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_s6fxy_171", "ExternalInputModal-search": "_ExternalInputModal-search_s6fxy_171", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_s6fxy_194", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_s6fxy_206", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_s6fxy_216" };
31806
+ // components/ExternalInput/styles.module.css
31807
+ var styles_default11 = {
31808
+ "ExternalInput-actions": "styles_ExternalInput-actions",
31809
+ "ExternalInput-button": "styles_ExternalInput-button",
31810
+ "ExternalInput--dataSelected": "styles_ExternalInput--dataSelected",
31811
+ "ExternalInput-detachButton": "styles_ExternalInput-detachButton",
31812
+ ExternalInputModal: "styles_ExternalInputModal",
31813
+ "ExternalInputModal-grid": "styles_ExternalInputModal-grid",
31814
+ "ExternalInputModal--filtersToggled": "styles_ExternalInputModal--filtersToggled",
31815
+ "ExternalInputModal-filters": "styles_ExternalInputModal-filters",
31816
+ "ExternalInputModal-masthead": "styles_ExternalInputModal-masthead",
31817
+ "ExternalInputModal-tableWrapper": "styles_ExternalInputModal-tableWrapper",
31818
+ "ExternalInputModal-table": "styles_ExternalInputModal-table",
31819
+ "ExternalInputModal-thead": "styles_ExternalInputModal-thead",
31820
+ "ExternalInputModal-th": "styles_ExternalInputModal-th",
31821
+ "ExternalInputModal-td": "styles_ExternalInputModal-td",
31822
+ "ExternalInputModal-tr": "styles_ExternalInputModal-tr",
31823
+ "ExternalInputModal-tbody": "styles_ExternalInputModal-tbody",
31824
+ "ExternalInputModal--hasData": "styles_ExternalInputModal--hasData",
31825
+ "ExternalInputModal-loadingBanner": "styles_ExternalInputModal-loadingBanner",
31826
+ "ExternalInputModal--isLoading": "styles_ExternalInputModal--isLoading",
31827
+ "ExternalInputModal-searchForm": "styles_ExternalInputModal-searchForm",
31828
+ "ExternalInputModal-search": "styles_ExternalInputModal-search",
31829
+ "ExternalInputModal-searchIcon": "styles_ExternalInputModal-searchIcon",
31830
+ "ExternalInputModal-searchIconText": "styles_ExternalInputModal-searchIconText",
31831
+ "ExternalInputModal-searchInput": "styles_ExternalInputModal-searchInput",
31832
+ "ExternalInputModal-searchActions": "styles_ExternalInputModal-searchActions",
31833
+ "ExternalInputModal-searchActionIcon": "styles_ExternalInputModal-searchActionIcon",
31834
+ "ExternalInputModal-footer": "styles_ExternalInputModal-footer"
31835
+ };
31479
31836
 
31480
31837
  // components/Modal/index.tsx
31481
31838
  init_react_import();
31482
31839
  var import_react15 = require("react");
31483
31840
 
31484
- // css-module:/home/runner/work/puck/puck/packages/core/components/Modal/styles.module.css#css-module
31485
- init_react_import();
31486
- var styles_module_default12 = { "Modal": "_Modal_hx2u6_1", "Modal--isOpen": "_Modal--isOpen_hx2u6_15", "Modal-inner": "_Modal-inner_hx2u6_19" };
31841
+ // components/Modal/styles.module.css
31842
+ var styles_default12 = {
31843
+ Modal: "styles_Modal",
31844
+ "Modal--isOpen": "styles_Modal--isOpen",
31845
+ "Modal-inner": "styles_Modal-inner"
31846
+ };
31487
31847
 
31488
31848
  // components/Modal/index.tsx
31489
31849
  var import_react_dom = __toESM(require_react_dom());
31490
- var import_jsx_runtime14 = require("react/jsx-runtime");
31491
- var getClassName12 = get_class_name_factory_default("Modal", styles_module_default12);
31850
+ var import_jsx_runtime17 = require("react/jsx-runtime");
31851
+ var getClassName12 = get_class_name_factory_default("Modal", styles_default12);
31492
31852
  var Modal = ({
31493
31853
  children,
31494
31854
  onClose,
@@ -31499,10 +31859,10 @@ var Modal = ({
31499
31859
  setRootEl(document.getElementById("puck-portal-root"));
31500
31860
  }, []);
31501
31861
  if (!rootEl) {
31502
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", {});
31862
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {});
31503
31863
  }
31504
31864
  return (0, import_react_dom.createPortal)(
31505
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
31865
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31506
31866
  "div",
31507
31867
  {
31508
31868
  className: getClassName12("inner"),
@@ -31516,9 +31876,9 @@ var Modal = ({
31516
31876
 
31517
31877
  // components/ExternalInput/index.tsx
31518
31878
  var import_react_spinners5 = require("react-spinners");
31519
- var import_jsx_runtime15 = require("react/jsx-runtime");
31520
- var getClassName13 = get_class_name_factory_default("ExternalInput", styles_module_default11);
31521
- var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_module_default11);
31879
+ var import_jsx_runtime18 = require("react/jsx-runtime");
31880
+ var getClassName13 = get_class_name_factory_default("ExternalInput", styles_default11);
31881
+ var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_default11);
31522
31882
  var dataCache = {};
31523
31883
  var ExternalInput = ({
31524
31884
  field,
@@ -31527,13 +31887,23 @@ var ExternalInput = ({
31527
31887
  name,
31528
31888
  id
31529
31889
  }) => {
31530
- const { mapProp = (val) => val } = field || {};
31890
+ const {
31891
+ mapProp = (val) => val,
31892
+ mapRow = (val) => val,
31893
+ filterFields
31894
+ } = field || {};
31531
31895
  const [data, setData] = (0, import_react16.useState)([]);
31532
31896
  const [isOpen, setOpen] = (0, import_react16.useState)(false);
31533
31897
  const [isLoading, setIsLoading] = (0, import_react16.useState)(true);
31898
+ const hasFilterFields = !!filterFields;
31899
+ const [filters, setFilters] = (0, import_react16.useState)(field.initialFilters || {});
31900
+ const [filtersToggled, setFiltersToggled] = (0, import_react16.useState)(hasFilterFields);
31901
+ const mappedData = (0, import_react16.useMemo)(() => {
31902
+ return data.map(mapRow);
31903
+ }, [data]);
31534
31904
  const keys = (0, import_react16.useMemo)(() => {
31535
31905
  const validKeys = /* @__PURE__ */ new Set();
31536
- for (const item of data) {
31906
+ for (const item of mappedData) {
31537
31907
  for (const key of Object.keys(item)) {
31538
31908
  if (typeof item[key] === "string" || typeof item[key] === "number") {
31539
31909
  validKeys.add(key);
@@ -31541,13 +31911,13 @@ var ExternalInput = ({
31541
31911
  }
31542
31912
  }
31543
31913
  return Array.from(validKeys);
31544
- }, [data]);
31914
+ }, [mappedData]);
31545
31915
  const [searchQuery, setSearchQuery] = (0, import_react16.useState)(field.initialQuery || "");
31546
31916
  const search = (0, import_react16.useCallback)(
31547
- (query) => __async(void 0, null, function* () {
31917
+ (query, filters2) => __async(void 0, null, function* () {
31548
31918
  setIsLoading(true);
31549
- const cacheKey = `${id}-${name}-${query}`;
31550
- const listData = dataCache[cacheKey] || (yield field.fetchList({ query }));
31919
+ const cacheKey = `${id}-${query}-${JSON.stringify(filters2)}`;
31920
+ const listData = dataCache[cacheKey] || (yield field.fetchList({ query, filters: filters2 }));
31551
31921
  if (listData) {
31552
31922
  setData(listData);
31553
31923
  setIsLoading(false);
@@ -31557,9 +31927,9 @@ var ExternalInput = ({
31557
31927
  [name, field]
31558
31928
  );
31559
31929
  (0, import_react16.useEffect)(() => {
31560
- search(searchQuery);
31930
+ search(searchQuery, filters);
31561
31931
  }, []);
31562
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31932
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31563
31933
  "div",
31564
31934
  {
31565
31935
  className: getClassName13({
@@ -31568,102 +31938,134 @@ var ExternalInput = ({
31568
31938
  }),
31569
31939
  id,
31570
31940
  children: [
31571
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName13("actions"), children: [
31572
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31941
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassName13("actions"), children: [
31942
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31573
31943
  "button",
31574
31944
  {
31945
+ type: "button",
31575
31946
  onClick: () => setOpen(true),
31576
31947
  className: getClassName13("button"),
31577
- children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
31578
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Link, { size: "16" }),
31579
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: field.placeholder })
31948
+ children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
31949
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { size: "16" }),
31950
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: field.placeholder })
31580
31951
  ] })
31581
31952
  }
31582
31953
  ),
31583
- value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31954
+ value && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31584
31955
  "button",
31585
31956
  {
31586
31957
  className: getClassName13("detachButton"),
31587
31958
  onClick: () => {
31588
31959
  onChange(null);
31589
31960
  },
31590
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Unlock, { size: 16 })
31961
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Unlock, { size: 16 })
31591
31962
  }
31592
31963
  )
31593
31964
  ] }),
31594
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31595
- "div",
31965
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31966
+ "form",
31596
31967
  {
31597
31968
  className: getClassNameModal({
31598
31969
  isLoading,
31599
31970
  loaded: !isLoading,
31600
- hasData: data.length > 0
31971
+ hasData: mappedData.length > 0,
31972
+ filtersToggled
31601
31973
  }),
31974
+ onSubmit: (e) => {
31975
+ e.preventDefault();
31976
+ search(searchQuery, filters);
31977
+ },
31602
31978
  children: [
31603
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("masthead"), children: [
31604
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Heading, { rank: 2, size: "xxl", children: "Select content" }),
31605
- field.showSearch && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31606
- "form",
31607
- {
31608
- className: getClassNameModal("searchForm"),
31609
- onSubmit: (e) => {
31610
- e.preventDefault();
31611
- search(searchQuery);
31612
- },
31613
- children: [
31614
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: getClassNameModal("search"), children: [
31615
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31616
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Search, { size: "18" }) }),
31617
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31618
- "input",
31619
- {
31620
- className: getClassNameModal("searchInput"),
31621
- name: "q",
31622
- type: "search",
31623
- placeholder: "Search",
31624
- onChange: (e) => {
31625
- setSearchQuery(e.currentTarget.value);
31626
- },
31627
- autoComplete: "off",
31628
- value: searchQuery
31629
- }
31630
- )
31631
- ] }),
31632
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { type: "submit", loading: isLoading, disabled: isLoading, children: "Search" })
31633
- ]
31634
- }
31635
- )
31636
- ] }),
31637
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
31638
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("table", { className: getClassNameModal("table"), children: [
31639
- /* @__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)(
31640
- "th",
31979
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
31980
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: getClassNameModal("search"), children: [
31981
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31982
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "18" }) }),
31983
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31984
+ "input",
31985
+ {
31986
+ className: getClassNameModal("searchInput"),
31987
+ name: "q",
31988
+ type: "search",
31989
+ placeholder: field.placeholder,
31990
+ onChange: (e) => {
31991
+ setSearchQuery(e.currentTarget.value);
31992
+ },
31993
+ autoComplete: "off",
31994
+ value: searchQuery
31995
+ }
31996
+ )
31997
+ ] }),
31998
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
31999
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
32000
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32001
+ IconButton,
32002
+ {
32003
+ title: "Toggle filters",
32004
+ onClick: (e) => {
32005
+ e.preventDefault();
32006
+ e.stopPropagation();
32007
+ setFiltersToggled(!filtersToggled);
32008
+ },
32009
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SlidersHorizontal, { size: 20 })
32010
+ }
32011
+ ) })
32012
+ ] })
32013
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
32014
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("grid"), children: [
32015
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
32016
+ const filterField = filterFields[fieldName];
32017
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32018
+ InputOrGroup,
31641
32019
  {
31642
- className: getClassNameModal("th"),
31643
- style: { textAlign: "left" },
31644
- children: key
32020
+ field: filterField,
32021
+ name: fieldName,
32022
+ id: `external_field_${fieldName}_filter`,
32023
+ label: filterField.label || fieldName,
32024
+ value: filters[fieldName],
32025
+ onChange: (value2) => {
32026
+ const newFilters = __spreadProps(__spreadValues({}, filters), { [fieldName]: value2 });
32027
+ setFilters(newFilters);
32028
+ search(searchQuery, newFilters);
32029
+ }
31645
32030
  },
31646
- key
31647
- )) }) }),
31648
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tbody", { className: getClassNameModal("tbody"), children: data.map((item, i) => {
31649
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31650
- "tr",
32031
+ fieldName
32032
+ );
32033
+ }) }),
32034
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
32035
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: getClassNameModal("table"), children: [
32036
+ /* @__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)(
32037
+ "th",
31651
32038
  {
31652
- style: { whiteSpace: "nowrap" },
31653
- className: getClassNameModal("tr"),
31654
- onClick: (e) => {
31655
- onChange(mapProp(item));
31656
- setOpen(false);
31657
- },
31658
- children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
32039
+ className: getClassNameModal("th"),
32040
+ style: { textAlign: "left" },
32041
+ children: key
31659
32042
  },
31660
- i
31661
- );
31662
- }) })
31663
- ] }),
31664
- /* @__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" }) })
32043
+ key
32044
+ )) }) }),
32045
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
32046
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32047
+ "tr",
32048
+ {
32049
+ style: { whiteSpace: "nowrap" },
32050
+ className: getClassNameModal("tr"),
32051
+ onClick: () => {
32052
+ onChange(mapProp(data[i]));
32053
+ setOpen(false);
32054
+ },
32055
+ children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
32056
+ },
32057
+ i
32058
+ );
32059
+ }) })
32060
+ ] }),
32061
+ /* @__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" }) })
32062
+ ] })
31665
32063
  ] }),
31666
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("noContentBanner"), children: "No results." })
32064
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("footer"), children: [
32065
+ mappedData.length,
32066
+ " result",
32067
+ mappedData.length === 1 ? "" : "s"
32068
+ ] })
31667
32069
  ]
31668
32070
  }
31669
32071
  ) })
@@ -31673,7 +32075,7 @@ var ExternalInput = ({
31673
32075
  };
31674
32076
 
31675
32077
  // components/InputOrGroup/fields/ExternalField/index.tsx
31676
- var import_jsx_runtime16 = require("react/jsx-runtime");
32078
+ var import_jsx_runtime19 = require("react/jsx-runtime");
31677
32079
  var ExternalField = ({
31678
32080
  field,
31679
32081
  onChange,
@@ -31695,13 +32097,13 @@ var ExternalField = ({
31695
32097
  if (field.type !== "external") {
31696
32098
  return null;
31697
32099
  }
31698
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
32100
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31699
32101
  FieldLabelInternal,
31700
32102
  {
31701
32103
  label: label || name,
31702
- icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { size: 16 }),
32104
+ icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { size: 16 }),
31703
32105
  el: "div",
31704
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
32106
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31705
32107
  ExternalInput,
31706
32108
  {
31707
32109
  name,
@@ -31709,6 +32111,7 @@ var ExternalField = ({
31709
32111
  // DEPRECATED
31710
32112
  placeholder: ((_a = deprecatedField.adaptor) == null ? void 0 : _a.name) ? `Select from ${deprecatedField.adaptor.name}` : validField.placeholder || "Select data",
31711
32113
  mapProp: ((_b = deprecatedField.adaptor) == null ? void 0 : _b.mapProp) || validField.mapProp,
32114
+ mapRow: validField.mapRow,
31712
32115
  fetchList: ((_c = deprecatedField.adaptor) == null ? void 0 : _c.fetchList) ? () => __async(void 0, null, function* () {
31713
32116
  return yield deprecatedField.adaptor.fetchList(
31714
32117
  deprecatedField.adaptorParams
@@ -31726,8 +32129,8 @@ var ExternalField = ({
31726
32129
 
31727
32130
  // components/InputOrGroup/fields/RadioField/index.tsx
31728
32131
  init_react_import();
31729
- var import_jsx_runtime17 = require("react/jsx-runtime");
31730
- var getClassName14 = get_class_name_factory_default("Input", styles_module_default9);
32132
+ var import_jsx_runtime20 = require("react/jsx-runtime");
32133
+ var getClassName14 = get_class_name_factory_default("Input", styles_default9);
31731
32134
  var RadioField = ({
31732
32135
  field,
31733
32136
  onChange,
@@ -31740,19 +32143,19 @@ var RadioField = ({
31740
32143
  if (field.type !== "radio" || !field.options) {
31741
32144
  return null;
31742
32145
  }
31743
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32146
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31744
32147
  FieldLabelInternal,
31745
32148
  {
31746
- icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CheckCircle, { size: 16 }),
32149
+ icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckCircle, { size: 16 }),
31747
32150
  label: label || name,
31748
32151
  readOnly,
31749
32152
  el: "div",
31750
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
32153
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
31751
32154
  "label",
31752
32155
  {
31753
32156
  className: getClassName14("radio"),
31754
32157
  children: [
31755
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32158
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31756
32159
  "input",
31757
32160
  {
31758
32161
  type: "radio",
@@ -31770,7 +32173,7 @@ var RadioField = ({
31770
32173
  defaultChecked: value === option.value
31771
32174
  }
31772
32175
  ),
31773
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
32176
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
31774
32177
  ]
31775
32178
  },
31776
32179
  option.label + option.value
@@ -31781,8 +32184,8 @@ var RadioField = ({
31781
32184
 
31782
32185
  // components/InputOrGroup/fields/SelectField/index.tsx
31783
32186
  init_react_import();
31784
- var import_jsx_runtime18 = require("react/jsx-runtime");
31785
- var getClassName15 = get_class_name_factory_default("Input", styles_module_default9);
32187
+ var import_jsx_runtime21 = require("react/jsx-runtime");
32188
+ var getClassName15 = get_class_name_factory_default("Input", styles_default9);
31786
32189
  var SelectField = ({
31787
32190
  field,
31788
32191
  onChange,
@@ -31795,13 +32198,13 @@ var SelectField = ({
31795
32198
  if (field.type !== "select" || !field.options) {
31796
32199
  return null;
31797
32200
  }
31798
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32201
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31799
32202
  FieldLabelInternal,
31800
32203
  {
31801
32204
  label: label || name,
31802
- icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDown, { size: 16 }),
32205
+ icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronDown, { size: 16 }),
31803
32206
  readOnly,
31804
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32207
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31805
32208
  "select",
31806
32209
  {
31807
32210
  id,
@@ -31815,7 +32218,7 @@ var SelectField = ({
31815
32218
  onChange(e.currentTarget.value);
31816
32219
  },
31817
32220
  value,
31818
- children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32221
+ children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31819
32222
  "option",
31820
32223
  {
31821
32224
  label: option.label,
@@ -31831,8 +32234,8 @@ var SelectField = ({
31831
32234
 
31832
32235
  // components/InputOrGroup/fields/TextareaField/index.tsx
31833
32236
  init_react_import();
31834
- var import_jsx_runtime19 = require("react/jsx-runtime");
31835
- var getClassName16 = get_class_name_factory_default("Input", styles_module_default9);
32237
+ var import_jsx_runtime22 = require("react/jsx-runtime");
32238
+ var getClassName16 = get_class_name_factory_default("Input", styles_default9);
31836
32239
  var TextareaField = ({
31837
32240
  onChange,
31838
32241
  readOnly,
@@ -31841,13 +32244,13 @@ var TextareaField = ({
31841
32244
  label,
31842
32245
  id
31843
32246
  }) => {
31844
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32247
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31845
32248
  FieldLabelInternal,
31846
32249
  {
31847
32250
  label: label || name,
31848
- icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Type, { size: 16 }),
32251
+ icon: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Type, { size: 16 }),
31849
32252
  readOnly,
31850
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32253
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31851
32254
  "textarea",
31852
32255
  {
31853
32256
  id,
@@ -31857,6 +32260,7 @@ var TextareaField = ({
31857
32260
  value: typeof value === "undefined" ? "" : value,
31858
32261
  onChange: (e) => onChange(e.currentTarget.value),
31859
32262
  readOnly,
32263
+ tabIndex: readOnly ? -1 : void 0,
31860
32264
  rows: 5
31861
32265
  }
31862
32266
  )
@@ -31870,14 +32274,16 @@ var import_use_debounce2 = require("use-debounce");
31870
32274
  // components/InputOrGroup/fields/ObjectField/index.tsx
31871
32275
  init_react_import();
31872
32276
 
31873
- // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ObjectField/styles.module.css#css-module
31874
- init_react_import();
31875
- var styles_module_default13 = { "ObjectField": "_ObjectField_56z4t_5", "ObjectField-fieldset": "_ObjectField-fieldset_56z4t_13" };
32277
+ // components/InputOrGroup/fields/ObjectField/styles.module.css
32278
+ var styles_default13 = {
32279
+ ObjectField: "styles_ObjectField",
32280
+ "ObjectField-fieldset": "styles_ObjectField-fieldset"
32281
+ };
31876
32282
 
31877
32283
  // components/InputOrGroup/fields/ObjectField/index.tsx
31878
- var import_jsx_runtime20 = require("react/jsx-runtime");
31879
- var getClassName17 = get_class_name_factory_default("ObjectField", styles_module_default13);
31880
- var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_module_default13);
32284
+ var import_jsx_runtime23 = require("react/jsx-runtime");
32285
+ var getClassName17 = get_class_name_factory_default("ObjectField", styles_default13);
32286
+ var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_default13);
31881
32287
  var ObjectField = ({
31882
32288
  field,
31883
32289
  onChange,
@@ -31892,18 +32298,18 @@ var ObjectField = ({
31892
32298
  return null;
31893
32299
  }
31894
32300
  const data = value || {};
31895
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32301
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31896
32302
  FieldLabelInternal,
31897
32303
  {
31898
32304
  label: label || name,
31899
- icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MoreVertical, { size: 16 }),
32305
+ icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MoreVertical, { size: 16 }),
31900
32306
  el: "div",
31901
32307
  readOnly,
31902
- 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) => {
32308
+ 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) => {
31903
32309
  const subField = field.objectFields[fieldName];
31904
32310
  const subFieldName = `${name}.${fieldName}`;
31905
32311
  const wildcardFieldName = `${name}.${fieldName}`;
31906
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32312
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31907
32313
  InputOrGroup,
31908
32314
  {
31909
32315
  name: subFieldName,
@@ -31930,8 +32336,8 @@ var ObjectField = ({
31930
32336
  };
31931
32337
 
31932
32338
  // components/InputOrGroup/index.tsx
31933
- var import_jsx_runtime21 = require("react/jsx-runtime");
31934
- var getClassName18 = get_class_name_factory_default("Input", styles_module_default9);
32339
+ var import_jsx_runtime24 = require("react/jsx-runtime");
32340
+ var getClassName18 = get_class_name_factory_default("Input", styles_default9);
31935
32341
  var FieldLabel = ({
31936
32342
  children,
31937
32343
  icon,
@@ -31941,11 +32347,11 @@ var FieldLabel = ({
31941
32347
  className
31942
32348
  }) => {
31943
32349
  const El = el;
31944
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(El, { className, children: [
31945
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: getClassName18("label"), children: [
31946
- icon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_jsx_runtime21.Fragment, {}),
32350
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(El, { className, children: [
32351
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("label"), children: [
32352
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {}),
31947
32353
  label,
31948
- readOnly && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Lock, { size: "12" }) })
32354
+ readOnly && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Lock, { size: "12" }) })
31949
32355
  ] }),
31950
32356
  children
31951
32357
  ] });
@@ -31962,7 +32368,7 @@ var FieldLabelInternal = ({
31962
32368
  () => overrides.fieldLabel || FieldLabel,
31963
32369
  [overrides]
31964
32370
  );
31965
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
32371
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
31966
32372
  Wrapper,
31967
32373
  {
31968
32374
  label,
@@ -32002,7 +32408,7 @@ var InputOrGroup = (_a) => {
32002
32408
  if (!field.render) {
32003
32409
  return null;
32004
32410
  }
32005
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32411
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32006
32412
  field,
32007
32413
  name,
32008
32414
  readOnly
@@ -32031,17 +32437,19 @@ var InputOrGroup = (_a) => {
32031
32437
  const mergedProps = __spreadProps(__spreadValues(__spreadValues({}, props), localProps), { field });
32032
32438
  const children = defaultFields[field.type](mergedProps);
32033
32439
  const Render2 = render[field.type];
32034
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32440
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32035
32441
  };
32036
32442
 
32037
- // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
32038
- init_react_import();
32039
- var styles_module_default14 = { "PuckFields": "_PuckFields_1276r_1", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_1276r_5" };
32443
+ // components/Puck/components/Fields/styles.module.css
32444
+ var styles_default14 = {
32445
+ PuckFields: "styles_PuckFields",
32446
+ "PuckFields-loadingOverlay": "styles_PuckFields-loadingOverlay"
32447
+ };
32040
32448
 
32041
32449
  // components/Puck/components/Fields/index.tsx
32042
32450
  var import_react19 = require("react");
32043
- var import_jsx_runtime22 = require("react/jsx-runtime");
32044
- var getClassName19 = get_class_name_factory_default("PuckFields", styles_module_default14);
32451
+ var import_jsx_runtime25 = require("react/jsx-runtime");
32452
+ var getClassName19 = get_class_name_factory_default("PuckFields", styles_default14);
32045
32453
  var defaultPageFields = {
32046
32454
  title: { type: "text" }
32047
32455
  };
@@ -32049,9 +32457,9 @@ var DefaultFields = ({
32049
32457
  children,
32050
32458
  isLoading
32051
32459
  }) => {
32052
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: getClassName19(), children: [
32460
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19(), children: [
32053
32461
  children,
32054
- 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" }) })
32462
+ 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" }) })
32055
32463
  ] });
32056
32464
  };
32057
32465
  var Fields = () => {
@@ -32072,14 +32480,14 @@ var Fields = () => {
32072
32480
  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;
32073
32481
  const rootProps = data.root.props || data.root;
32074
32482
  const Wrapper = (0, import_react19.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
32075
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32483
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32076
32484
  "form",
32077
32485
  {
32078
32486
  className: getClassName19(),
32079
32487
  onSubmit: (e) => {
32080
32488
  e.preventDefault();
32081
32489
  },
32082
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32490
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32083
32491
  const field = fields[fieldName];
32084
32492
  const onChange = (value, updatedUi) => {
32085
32493
  var _a2, _b2;
@@ -32145,7 +32553,7 @@ var Fields = () => {
32145
32553
  };
32146
32554
  if (selectedItem && itemSelector) {
32147
32555
  const { readOnly = {} } = selectedItem;
32148
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32556
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32149
32557
  InputOrGroup,
32150
32558
  {
32151
32559
  field,
@@ -32161,7 +32569,7 @@ var Fields = () => {
32161
32569
  );
32162
32570
  } else {
32163
32571
  const { readOnly = {} } = data.root;
32164
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32572
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32165
32573
  InputOrGroup,
32166
32574
  {
32167
32575
  field,
@@ -32191,19 +32599,25 @@ var import_react20 = require("react");
32191
32599
  // components/ComponentList/index.tsx
32192
32600
  init_react_import();
32193
32601
 
32194
- // css-module:/home/runner/work/puck/puck/packages/core/components/ComponentList/styles.module.css#css-module
32195
- init_react_import();
32196
- var styles_module_default15 = { "ComponentList": "_ComponentList_1di93_1", "ComponentList--isExpanded": "_ComponentList--isExpanded_1di93_6", "ComponentList-content": "_ComponentList-content_1di93_10", "ComponentList-title": "_ComponentList-title_1di93_18", "ComponentList-titleIcon": "_ComponentList-titleIcon_1di93_39" };
32602
+ // components/ComponentList/styles.module.css
32603
+ var styles_default15 = {
32604
+ ComponentList: "styles_ComponentList",
32605
+ "ComponentList--isExpanded": "styles_ComponentList--isExpanded",
32606
+ "ComponentList-content": "styles_ComponentList-content",
32607
+ "ComponentList-title": "styles_ComponentList-title",
32608
+ "ComponentList-titleIcon": "styles_ComponentList-titleIcon"
32609
+ };
32197
32610
 
32198
32611
  // components/ComponentList/index.tsx
32199
- var import_jsx_runtime23 = require("react/jsx-runtime");
32200
- var getClassName20 = get_class_name_factory_default("ComponentList", styles_module_default15);
32612
+ var import_jsx_runtime26 = require("react/jsx-runtime");
32613
+ var getClassName20 = get_class_name_factory_default("ComponentList", styles_default15);
32201
32614
  var ComponentListItem = ({
32202
32615
  name,
32616
+ label,
32203
32617
  index
32204
32618
  }) => {
32205
32619
  const { overrides } = useAppContext();
32206
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Drawer.Item, { name, index, children: overrides.componentItem });
32620
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer.Item, { label, name, index, children: overrides.componentItem });
32207
32621
  };
32208
32622
  var ComponentList = ({
32209
32623
  children,
@@ -32212,9 +32626,9 @@ var ComponentList = ({
32212
32626
  }) => {
32213
32627
  const { config, state, setUi } = useAppContext();
32214
32628
  const { expanded = true } = state.ui.componentList[id] || {};
32215
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32216
- title && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
32217
- "div",
32629
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32630
+ title && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
32631
+ "button",
32218
32632
  {
32219
32633
  className: getClassName20("title"),
32220
32634
  onClick: () => setUi({
@@ -32226,15 +32640,17 @@ var ComponentList = ({
32226
32640
  }),
32227
32641
  title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
32228
32642
  children: [
32229
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { children: title }),
32230
- /* @__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 }) })
32643
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: title }),
32644
+ /* @__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 }) })
32231
32645
  ]
32232
32646
  }
32233
32647
  ),
32234
- /* @__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) => {
32235
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
32648
+ /* @__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) => {
32649
+ var _a;
32650
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32236
32651
  ComponentListItem,
32237
32652
  {
32653
+ label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
32238
32654
  name: componentKey,
32239
32655
  index: i
32240
32656
  },
@@ -32246,7 +32662,7 @@ var ComponentList = ({
32246
32662
  ComponentList.Item = ComponentListItem;
32247
32663
 
32248
32664
  // lib/use-component-list.tsx
32249
- var import_jsx_runtime24 = require("react/jsx-runtime");
32665
+ var import_jsx_runtime27 = require("react/jsx-runtime");
32250
32666
  var useComponentList = (config, ui) => {
32251
32667
  const [componentList, setComponentList] = (0, import_react20.useState)();
32252
32668
  (0, import_react20.useEffect)(() => {
@@ -32259,16 +32675,18 @@ var useComponentList = (config, ui) => {
32259
32675
  if (category.visible === false || !category.components) {
32260
32676
  return null;
32261
32677
  }
32262
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32678
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32263
32679
  ComponentList,
32264
32680
  {
32265
32681
  id: categoryKey,
32266
32682
  title: category.title || categoryKey,
32267
32683
  children: category.components.map((componentName, i) => {
32684
+ var _a2;
32268
32685
  matchedComponents.push(componentName);
32269
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32686
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32270
32687
  ComponentList.Item,
32271
32688
  {
32689
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32272
32690
  name: componentName,
32273
32691
  index: i
32274
32692
  },
@@ -32285,16 +32703,18 @@ var useComponentList = (config, ui) => {
32285
32703
  );
32286
32704
  if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
32287
32705
  _componentList.push(
32288
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32706
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32289
32707
  ComponentList,
32290
32708
  {
32291
32709
  id: "other",
32292
32710
  title: ((_c = ui.componentList.other) == null ? void 0 : _c.title) || "Other",
32293
32711
  children: remainingComponents.map((componentName, i) => {
32294
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32712
+ var _a2;
32713
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32295
32714
  ComponentList.Item,
32296
32715
  {
32297
32716
  name: componentName,
32717
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32298
32718
  index: i
32299
32719
  },
32300
32720
  componentName
@@ -32307,44 +32727,71 @@ var useComponentList = (config, ui) => {
32307
32727
  }
32308
32728
  setComponentList(_componentList);
32309
32729
  }
32310
- }, [config.categories, ui.componentList]);
32730
+ }, [config.categories, config.components, ui.componentList]);
32311
32731
  return componentList;
32312
32732
  };
32313
32733
 
32314
32734
  // components/Puck/components/Components/index.tsx
32315
32735
  var import_react21 = require("react");
32316
- var import_jsx_runtime25 = require("react/jsx-runtime");
32736
+ var import_jsx_runtime28 = require("react/jsx-runtime");
32317
32737
  var Components = () => {
32318
32738
  const { config, state, overrides } = useAppContext();
32319
32739
  const componentList = useComponentList(config, state.ui);
32320
32740
  const Wrapper = (0, import_react21.useMemo)(() => overrides.components || "div", [overrides]);
32321
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ComponentList, { id: "all" }) });
32741
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
32322
32742
  };
32323
32743
 
32324
32744
  // components/Puck/components/Preview/index.tsx
32325
32745
  init_react_import();
32326
32746
  var import_react22 = require("react");
32327
- var import_jsx_runtime26 = require("react/jsx-runtime");
32747
+ var import_auto_frame_component = __toESM(require("@measured/auto-frame-component"));
32748
+
32749
+ // components/Puck/components/Preview/styles.module.css
32750
+ var styles_default16 = {
32751
+ PuckPreview: "styles_PuckPreview",
32752
+ "PuckPreview-frame": "styles_PuckPreview-frame"
32753
+ };
32754
+
32755
+ // components/Puck/components/Preview/index.tsx
32756
+ var import_jsx_runtime29 = require("react/jsx-runtime");
32757
+ var getClassName21 = get_class_name_factory_default("PuckPreview", styles_default16);
32328
32758
  var Preview = ({ id = "puck-preview" }) => {
32329
- const { config, dispatch, state } = useAppContext();
32759
+ const { config, dispatch, state, setStatus, iframe } = useAppContext();
32330
32760
  const Page = (0, import_react22.useCallback)(
32331
32761
  (pageProps) => {
32332
32762
  var _a, _b;
32333
- return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({}, pageProps), { editMode: true })) : pageProps.children;
32763
+ return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({
32764
+ id: "puck-root"
32765
+ }, pageProps), {
32766
+ editMode: true,
32767
+ puck: { renderDropZone: DropZone }
32768
+ })) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: pageProps.children });
32334
32769
  },
32335
32770
  [config.root]
32336
32771
  );
32337
32772
  const rootProps = state.data.root.props || state.data.root;
32338
- const { disableZoom = false } = (0, import_react22.useContext)(dropZoneContext) || {};
32339
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32773
+ const ref = (0, import_react22.useRef)(null);
32774
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32340
32775
  "div",
32341
32776
  {
32777
+ className: getClassName21(),
32342
32778
  id,
32343
32779
  onClick: () => {
32344
32780
  dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
32345
32781
  },
32346
- style: { zoom: disableZoom ? 1 : 0.75 },
32347
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DropZone, { zone: rootDroppableId }) }))
32782
+ children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32783
+ import_auto_frame_component.default,
32784
+ {
32785
+ id: "preview-frame",
32786
+ className: getClassName21("frame"),
32787
+ "data-rfd-iframe": true,
32788
+ ref,
32789
+ onStylesLoaded: () => {
32790
+ setStatus("READY");
32791
+ },
32792
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) }))
32793
+ }
32794
+ ) : /* @__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 }) })) })
32348
32795
  }
32349
32796
  );
32350
32797
  };
@@ -32376,9 +32823,24 @@ var areaContainsZones = (data, area) => {
32376
32823
  // components/LayerTree/index.tsx
32377
32824
  init_react_import();
32378
32825
 
32379
- // css-module:/home/runner/work/puck/puck/packages/core/components/LayerTree/styles.module.css#css-module
32380
- init_react_import();
32381
- var styles_module_default16 = { "LayerTree": "_LayerTree_o89yt_1", "LayerTree-zoneTitle": "_LayerTree-zoneTitle_o89yt_11", "LayerTree-helper": "_LayerTree-helper_o89yt_17", "Layer": "_Layer_o89yt_1", "Layer-inner": "_Layer-inner_o89yt_29", "Layer--containsZone": "_Layer--containsZone_o89yt_35", "Layer-clickable": "_Layer-clickable_o89yt_39", "Layer--isSelected": "_Layer--isSelected_o89yt_48", "Layer--isHovering": "_Layer--isHovering_o89yt_49", "Layer-chevron": "_Layer-chevron_o89yt_65", "Layer--childIsSelected": "_Layer--childIsSelected_o89yt_66", "Layer-zones": "_Layer-zones_o89yt_70", "Layer-title": "_Layer-title_o89yt_84", "Layer-name": "_Layer-name_o89yt_93", "Layer-icon": "_Layer-icon_o89yt_99", "Layer-zoneIcon": "_Layer-zoneIcon_o89yt_104" };
32826
+ // components/LayerTree/styles.module.css
32827
+ var styles_default17 = {
32828
+ LayerTree: "styles_LayerTree",
32829
+ "LayerTree-zoneTitle": "styles_LayerTree-zoneTitle",
32830
+ "LayerTree-helper": "styles_LayerTree-helper",
32831
+ Layer: "styles_Layer",
32832
+ "Layer-inner": "styles_Layer-inner",
32833
+ "Layer--containsZone": "styles_Layer--containsZone",
32834
+ "Layer-clickable": "styles_Layer-clickable",
32835
+ "Layer--isSelected": "styles_Layer--isSelected",
32836
+ "Layer-chevron": "styles_Layer-chevron",
32837
+ "Layer--childIsSelected": "styles_Layer--childIsSelected",
32838
+ "Layer-zones": "styles_Layer-zones",
32839
+ "Layer-title": "styles_Layer-title",
32840
+ "Layer-name": "styles_Layer-name",
32841
+ "Layer-icon": "styles_Layer-icon",
32842
+ "Layer-zoneIcon": "styles_Layer-zoneIcon"
32843
+ };
32382
32844
 
32383
32845
  // lib/scroll-into-view.ts
32384
32846
  init_react_import();
@@ -32406,11 +32868,12 @@ var isChildOfZone = (item, maybeChild, ctx) => {
32406
32868
  };
32407
32869
 
32408
32870
  // components/LayerTree/index.tsx
32409
- var import_jsx_runtime27 = require("react/jsx-runtime");
32410
- var getClassName21 = get_class_name_factory_default("LayerTree", styles_module_default16);
32411
- var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default16);
32871
+ var import_jsx_runtime30 = require("react/jsx-runtime");
32872
+ var getClassName22 = get_class_name_factory_default("LayerTree", styles_default17);
32873
+ var getClassNameLayer = get_class_name_factory_default("Layer", styles_default17);
32412
32874
  var LayerTree = ({
32413
32875
  data,
32876
+ config,
32414
32877
  zoneContent,
32415
32878
  itemSelector,
32416
32879
  setItemSelector,
@@ -32419,15 +32882,16 @@ var LayerTree = ({
32419
32882
  }) => {
32420
32883
  const zones = data.zones || {};
32421
32884
  const ctx = (0, import_react23.useContext)(dropZoneContext);
32422
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
32423
- label && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: getClassName21("zoneTitle"), children: [
32424
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Layers, { size: "16" }) }),
32885
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
32886
+ label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
32887
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
32425
32888
  " ",
32426
32889
  label
32427
32890
  ] }),
32428
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("ul", { className: getClassName21(), children: [
32429
- zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassName21("helper"), children: "No items" }),
32891
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName22(), children: [
32892
+ zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
32430
32893
  zoneContent.map((item, i) => {
32894
+ var _a;
32431
32895
  const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
32432
32896
  const zonesForItem = findZonesForArea(data, item.props.id);
32433
32897
  const containsZone = Object.keys(zonesForItem).length > 0;
@@ -32441,7 +32905,7 @@ var LayerTree = ({
32441
32905
  const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
32442
32906
  const isHovering = hoveringComponent === item.props.id;
32443
32907
  const childIsSelected = isChildOfZone(item, selectedItem, ctx);
32444
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32908
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32445
32909
  "li",
32446
32910
  {
32447
32911
  className: getClassNameLayer({
@@ -32451,8 +32915,8 @@ var LayerTree = ({
32451
32915
  childIsSelected
32452
32916
  }),
32453
32917
  children: [
32454
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32455
- "div",
32918
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32919
+ "button",
32456
32920
  {
32457
32921
  className: getClassNameLayer("clickable"),
32458
32922
  onClick: () => {
@@ -32465,8 +32929,9 @@ var LayerTree = ({
32465
32929
  zone
32466
32930
  });
32467
32931
  const id = zoneContent[i].props.id;
32932
+ const frame = getFrame();
32468
32933
  scrollIntoView(
32469
- document.querySelector(
32934
+ frame == null ? void 0 : frame.querySelector(
32470
32935
  `[data-rfd-drag-handle-draggable-id="draggable-${id}"]`
32471
32936
  )
32472
32937
  );
@@ -32482,24 +32947,25 @@ var LayerTree = ({
32482
32947
  setHoveringComponent(null);
32483
32948
  },
32484
32949
  children: [
32485
- containsZone && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32950
+ containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32486
32951
  "div",
32487
32952
  {
32488
32953
  className: getClassNameLayer("chevron"),
32489
32954
  title: isSelected ? "Collapse" : "Expand",
32490
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDown, { size: "12" })
32955
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
32491
32956
  }
32492
32957
  ),
32493
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: getClassNameLayer("title"), children: [
32494
- /* @__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" }) }),
32495
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("name"), children: item.type })
32958
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
32959
+ /* @__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" }) }),
32960
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
32496
32961
  ] })
32497
32962
  ]
32498
32963
  }
32499
32964
  ) }),
32500
- containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32965
+ containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32501
32966
  LayerTree,
32502
32967
  {
32968
+ config,
32503
32969
  data,
32504
32970
  zoneContent: zones[zoneKey],
32505
32971
  setItemSelector,
@@ -32519,9 +32985,9 @@ var LayerTree = ({
32519
32985
 
32520
32986
  // components/Puck/components/Outline/index.tsx
32521
32987
  var import_react24 = require("react");
32522
- var import_jsx_runtime28 = require("react/jsx-runtime");
32988
+ var import_jsx_runtime31 = require("react/jsx-runtime");
32523
32989
  var Outline = () => {
32524
- const { dispatch, state, overrides } = useAppContext();
32990
+ const { dispatch, state, overrides, config } = useAppContext();
32525
32991
  const { data, ui } = state;
32526
32992
  const { itemSelector } = ui;
32527
32993
  const setItemSelector = (0, import_react24.useCallback)(
@@ -32534,10 +33000,11 @@ var Outline = () => {
32534
33000
  []
32535
33001
  );
32536
33002
  const Wrapper = (0, import_react24.useMemo)(() => overrides.outline || "div", [overrides]);
32537
- 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: [
32538
- (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
33003
+ 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: [
33004
+ (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32539
33005
  LayerTree,
32540
33006
  {
33007
+ config,
32541
33008
  data,
32542
33009
  label: areaContainsZones(data, "root") ? rootDroppableId : "",
32543
33010
  zoneContent: data.content,
@@ -32547,9 +33014,10 @@ var Outline = () => {
32547
33014
  ),
32548
33015
  Object.entries(findZonesForArea(data, "root")).map(
32549
33016
  ([zoneKey, zone]) => {
32550
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
33017
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32551
33018
  LayerTree,
32552
33019
  {
33020
+ config,
32553
33021
  data,
32554
33022
  label: zoneKey,
32555
33023
  zone: zoneKey,
@@ -32673,14 +33141,441 @@ function useHistoryStore() {
32673
33141
  };
32674
33142
  }
32675
33143
 
33144
+ // components/Puck/components/Canvas/index.tsx
33145
+ init_react_import();
33146
+
33147
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33148
+ init_react_import();
33149
+
33150
+ // ../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js
33151
+ init_react_import();
33152
+ var isProduction = process.env.NODE_ENV === "production";
33153
+ var prefix = "Invariant failed";
33154
+ function invariant(condition, message) {
33155
+ if (condition) {
33156
+ return;
33157
+ }
33158
+ if (isProduction) {
33159
+ throw new Error(prefix);
33160
+ }
33161
+ var provided = typeof message === "function" ? message() : message;
33162
+ var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
33163
+ throw new Error(value);
33164
+ }
33165
+
33166
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33167
+ var getRect = function getRect2(_ref) {
33168
+ var top = _ref.top, right = _ref.right, bottom = _ref.bottom, left = _ref.left;
33169
+ var width = right - left;
33170
+ var height = bottom - top;
33171
+ var rect = {
33172
+ top,
33173
+ right,
33174
+ bottom,
33175
+ left,
33176
+ width,
33177
+ height,
33178
+ x: left,
33179
+ y: top,
33180
+ center: {
33181
+ x: (right + left) / 2,
33182
+ y: (bottom + top) / 2
33183
+ }
33184
+ };
33185
+ return rect;
33186
+ };
33187
+ var expand = function expand2(target, expandBy) {
33188
+ return {
33189
+ top: target.top - expandBy.top,
33190
+ left: target.left - expandBy.left,
33191
+ bottom: target.bottom + expandBy.bottom,
33192
+ right: target.right + expandBy.right
33193
+ };
33194
+ };
33195
+ var shrink = function shrink2(target, shrinkBy) {
33196
+ return {
33197
+ top: target.top + shrinkBy.top,
33198
+ left: target.left + shrinkBy.left,
33199
+ bottom: target.bottom - shrinkBy.bottom,
33200
+ right: target.right - shrinkBy.right
33201
+ };
33202
+ };
33203
+ var noSpacing = {
33204
+ top: 0,
33205
+ right: 0,
33206
+ bottom: 0,
33207
+ left: 0
33208
+ };
33209
+ var createBox = function createBox2(_ref2) {
33210
+ 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;
33211
+ var marginBox = getRect(expand(borderBox, margin));
33212
+ var paddingBox = getRect(shrink(borderBox, border));
33213
+ var contentBox = getRect(shrink(paddingBox, padding));
33214
+ return {
33215
+ marginBox,
33216
+ borderBox: getRect(borderBox),
33217
+ paddingBox,
33218
+ contentBox,
33219
+ margin,
33220
+ border,
33221
+ padding
33222
+ };
33223
+ };
33224
+ var parse = function parse2(raw) {
33225
+ var value = raw.slice(0, -2);
33226
+ var suffix = raw.slice(-2);
33227
+ if (suffix !== "px") {
33228
+ return 0;
33229
+ }
33230
+ var result = Number(value);
33231
+ !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0;
33232
+ return result;
33233
+ };
33234
+ var calculateBox = function calculateBox2(borderBox, styles) {
33235
+ var margin = {
33236
+ top: parse(styles.marginTop),
33237
+ right: parse(styles.marginRight),
33238
+ bottom: parse(styles.marginBottom),
33239
+ left: parse(styles.marginLeft)
33240
+ };
33241
+ var padding = {
33242
+ top: parse(styles.paddingTop),
33243
+ right: parse(styles.paddingRight),
33244
+ bottom: parse(styles.paddingBottom),
33245
+ left: parse(styles.paddingLeft)
33246
+ };
33247
+ var border = {
33248
+ top: parse(styles.borderTopWidth),
33249
+ right: parse(styles.borderRightWidth),
33250
+ bottom: parse(styles.borderBottomWidth),
33251
+ left: parse(styles.borderLeftWidth)
33252
+ };
33253
+ return createBox({
33254
+ borderBox,
33255
+ margin,
33256
+ padding,
33257
+ border
33258
+ });
33259
+ };
33260
+ var getBox = function getBox2(el) {
33261
+ var borderBox = el.getBoundingClientRect();
33262
+ var styles = window.getComputedStyle(el);
33263
+ return calculateBox(borderBox, styles);
33264
+ };
33265
+
33266
+ // components/Puck/components/Canvas/index.tsx
33267
+ var import_react27 = require("react");
33268
+
33269
+ // components/ViewportControls/index.tsx
33270
+ init_react_import();
33271
+ var import_react26 = require("react");
33272
+
33273
+ // components/ViewportControls/styles.module.css
33274
+ var styles_default18 = {
33275
+ ViewportControls: "styles_ViewportControls",
33276
+ "ViewportControls-divider": "styles_ViewportControls-divider",
33277
+ "ViewportControls-zoomSelect": "styles_ViewportControls-zoomSelect",
33278
+ "ViewportButton--isActive": "styles_ViewportButton--isActive",
33279
+ "ViewportButton-inner": "styles_ViewportButton-inner"
33280
+ };
33281
+
33282
+ // components/ViewportControls/index.tsx
33283
+ var import_jsx_runtime32 = require("react/jsx-runtime");
33284
+ var icons = {
33285
+ Smartphone: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Smartphone, { size: 16 }),
33286
+ Tablet: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tablet, { size: 16 }),
33287
+ Monitor: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Monitor, { size: 16 })
33288
+ };
33289
+ var getClassName23 = get_class_name_factory_default("ViewportControls", styles_default18);
33290
+ var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_default18);
33291
+ var ViewportButton = ({
33292
+ children,
33293
+ height = "auto",
33294
+ title,
33295
+ width,
33296
+ onClick
33297
+ }) => {
33298
+ const { state } = useAppContext();
33299
+ const [isActive, setIsActive] = (0, import_react26.useState)(false);
33300
+ (0, import_react26.useEffect)(() => {
33301
+ setIsActive(width === state.ui.viewports.current.width);
33302
+ }, [width, state.ui.viewports.current.width]);
33303
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33304
+ IconButton,
33305
+ {
33306
+ title,
33307
+ disabled: isActive,
33308
+ onClick: (e) => {
33309
+ e.stopPropagation();
33310
+ onClick({ width, height });
33311
+ },
33312
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton("inner"), children })
33313
+ }
33314
+ ) });
33315
+ };
33316
+ var defaultZoomOptions = [
33317
+ { label: "25%", value: 0.25 },
33318
+ { label: "50%", value: 0.5 },
33319
+ { label: "75%", value: 0.75 },
33320
+ { label: "100%", value: 1 },
33321
+ { label: "125%", value: 1.25 },
33322
+ { label: "150%", value: 1.5 },
33323
+ { label: "200%", value: 2 }
33324
+ ];
33325
+ var ViewportControls = ({
33326
+ autoZoom,
33327
+ zoom,
33328
+ onViewportChange,
33329
+ onZoom
33330
+ }) => {
33331
+ const { viewports } = useAppContext();
33332
+ const defaultsContainAutoZoom = defaultZoomOptions.find(
33333
+ (option) => option.value === autoZoom
33334
+ );
33335
+ const zoomOptions = (0, import_react26.useMemo)(
33336
+ () => [
33337
+ ...defaultZoomOptions,
33338
+ ...defaultsContainAutoZoom ? [] : [
33339
+ {
33340
+ value: autoZoom,
33341
+ label: `${(autoZoom * 100).toFixed(0)}% (Auto)`
33342
+ }
33343
+ ]
33344
+ ].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
33345
+ [autoZoom]
33346
+ );
33347
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: getClassName23(), children: [
33348
+ viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33349
+ ViewportButton,
33350
+ {
33351
+ height: viewport.height,
33352
+ width: viewport.width,
33353
+ title: viewport.label ? `Switch to ${viewport.label} viewport` : "Switch viewport",
33354
+ onClick: onViewportChange,
33355
+ children: typeof viewport.icon === "string" ? icons[viewport.icon] || viewport.icon : viewport.icon || icons.Smartphone
33356
+ },
33357
+ i
33358
+ )),
33359
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33360
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33361
+ IconButton,
33362
+ {
33363
+ title: "Zoom viewport out",
33364
+ disabled: zoom <= zoomOptions[0].value,
33365
+ onClick: (e) => {
33366
+ e.stopPropagation();
33367
+ onZoom(
33368
+ zoomOptions[Math.max(
33369
+ zoomOptions.findIndex((option) => option.value === zoom) - 1,
33370
+ 0
33371
+ )].value
33372
+ );
33373
+ },
33374
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomOut, { size: 16 })
33375
+ }
33376
+ ),
33377
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33378
+ IconButton,
33379
+ {
33380
+ title: "Zoom viewport in",
33381
+ disabled: zoom >= zoomOptions[zoomOptions.length - 1].value,
33382
+ onClick: (e) => {
33383
+ e.stopPropagation();
33384
+ onZoom(
33385
+ zoomOptions[Math.min(
33386
+ zoomOptions.findIndex((option) => option.value === zoom) + 1,
33387
+ zoomOptions.length - 1
33388
+ )].value
33389
+ );
33390
+ },
33391
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomIn, { size: 16 })
33392
+ }
33393
+ ),
33394
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33395
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33396
+ "select",
33397
+ {
33398
+ className: getClassName23("zoomSelect"),
33399
+ value: zoom.toString(),
33400
+ onChange: (e) => {
33401
+ onZoom(parseFloat(e.currentTarget.value));
33402
+ },
33403
+ children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33404
+ "option",
33405
+ {
33406
+ value: option.value,
33407
+ label: option.label
33408
+ },
33409
+ option.label
33410
+ ))
33411
+ }
33412
+ )
33413
+ ] });
33414
+ };
33415
+
33416
+ // components/Puck/components/Canvas/styles.module.css
33417
+ var styles_default19 = {
33418
+ PuckCanvas: "styles_PuckCanvas",
33419
+ "PuckCanvas-controls": "styles_PuckCanvas-controls",
33420
+ "PuckCanvas-inner": "styles_PuckCanvas-inner",
33421
+ "PuckCanvas-root": "styles_PuckCanvas-root",
33422
+ "PuckCanvas--ready": "styles_PuckCanvas--ready"
33423
+ };
33424
+
33425
+ // lib/get-zoom-config.ts
33426
+ init_react_import();
33427
+ var RESET_ZOOM_SMALLER_THAN_FRAME = true;
33428
+ var getZoomConfig = (uiViewport, frame, zoom) => {
33429
+ const box = getBox(frame);
33430
+ const { width: frameWidth, height: frameHeight } = box.contentBox;
33431
+ const viewportHeight = uiViewport.height === "auto" ? frameHeight : uiViewport.height;
33432
+ let rootHeight = 0;
33433
+ let autoZoom = 1;
33434
+ if (uiViewport.width > frameWidth || viewportHeight > frameHeight) {
33435
+ const widthZoom = Math.min(frameWidth / uiViewport.width, 1);
33436
+ const heightZoom = Math.min(frameHeight / viewportHeight, 1);
33437
+ zoom = widthZoom;
33438
+ if (widthZoom < heightZoom) {
33439
+ rootHeight = viewportHeight / zoom;
33440
+ } else {
33441
+ rootHeight = viewportHeight;
33442
+ zoom = heightZoom;
33443
+ }
33444
+ autoZoom = zoom;
33445
+ } else {
33446
+ if (RESET_ZOOM_SMALLER_THAN_FRAME) {
33447
+ autoZoom = 1;
33448
+ zoom = 1;
33449
+ rootHeight = viewportHeight;
33450
+ }
33451
+ }
33452
+ return { autoZoom, rootHeight, zoom };
33453
+ };
33454
+
33455
+ // components/Puck/components/Canvas/index.tsx
33456
+ var import_jsx_runtime33 = require("react/jsx-runtime");
33457
+ var getClassName24 = get_class_name_factory_default("PuckCanvas", styles_default19);
33458
+ var ZOOM_ON_CHANGE = true;
33459
+ var Canvas = () => {
33460
+ const { status, iframe } = useAppContext();
33461
+ const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
33462
+ const { ui } = state;
33463
+ const frameRef = (0, import_react27.useRef)(null);
33464
+ const [showTransition, setShowTransition] = (0, import_react27.useState)(false);
33465
+ const defaultRender = (0, import_react27.useMemo)(() => {
33466
+ const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
33467
+ return PuckDefault;
33468
+ }, []);
33469
+ const CustomPreview = (0, import_react27.useMemo)(
33470
+ () => overrides.preview || defaultRender,
33471
+ [overrides]
33472
+ );
33473
+ const getFrameDimensions = (0, import_react27.useCallback)(() => {
33474
+ if (frameRef.current) {
33475
+ const frame = frameRef.current;
33476
+ const box = getBox(frame);
33477
+ return { width: box.contentBox.width, height: box.contentBox.height };
33478
+ }
33479
+ return { width: 0, height: 0 };
33480
+ }, [frameRef]);
33481
+ const resetAutoZoom = (0, import_react27.useCallback)(
33482
+ (ui2 = state.ui) => {
33483
+ if (frameRef.current) {
33484
+ setZoomConfig(
33485
+ getZoomConfig(ui2.viewports.current, frameRef.current, zoomConfig.zoom)
33486
+ );
33487
+ }
33488
+ },
33489
+ [frameRef, zoomConfig, state.ui]
33490
+ );
33491
+ (0, import_react27.useEffect)(() => {
33492
+ setShowTransition(false);
33493
+ resetAutoZoom();
33494
+ }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
33495
+ (0, import_react27.useEffect)(() => {
33496
+ const { height: frameHeight } = getFrameDimensions();
33497
+ if (ui.viewports.current.height === "auto") {
33498
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
33499
+ rootHeight: frameHeight / zoomConfig.zoom
33500
+ }));
33501
+ }
33502
+ }, [zoomConfig.zoom]);
33503
+ (0, import_react27.useEffect)(() => {
33504
+ const observer = new ResizeObserver(() => {
33505
+ setShowTransition(false);
33506
+ resetAutoZoom();
33507
+ });
33508
+ if (document.body) {
33509
+ observer.observe(document.body);
33510
+ }
33511
+ return () => {
33512
+ observer.disconnect();
33513
+ };
33514
+ }, []);
33515
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
33516
+ "div",
33517
+ {
33518
+ className: getClassName24({
33519
+ ready: status === "READY" || !iframe.enabled
33520
+ }),
33521
+ onClick: () => dispatch({
33522
+ type: "setUi",
33523
+ ui: { itemSelector: null },
33524
+ recordHistory: true
33525
+ }),
33526
+ children: [
33527
+ ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33528
+ ViewportControls,
33529
+ {
33530
+ autoZoom: zoomConfig.autoZoom,
33531
+ zoom: zoomConfig.zoom,
33532
+ onViewportChange: (viewport) => {
33533
+ setShowTransition(true);
33534
+ const uiViewport = __spreadProps(__spreadValues({}, viewport), {
33535
+ height: viewport.height || "auto",
33536
+ zoom: zoomConfig.zoom
33537
+ });
33538
+ const newUi = __spreadProps(__spreadValues({}, ui), {
33539
+ viewports: __spreadProps(__spreadValues({}, ui.viewports), { current: uiViewport })
33540
+ });
33541
+ setUi(newUi);
33542
+ if (ZOOM_ON_CHANGE) {
33543
+ resetAutoZoom(newUi);
33544
+ }
33545
+ },
33546
+ onZoom: (zoom) => {
33547
+ setShowTransition(true);
33548
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), { zoom }));
33549
+ }
33550
+ }
33551
+ ) }),
33552
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33553
+ "div",
33554
+ {
33555
+ className: getClassName24("root"),
33556
+ style: {
33557
+ width: iframe.enabled ? ui.viewports.current.width : void 0,
33558
+ height: zoomConfig.rootHeight,
33559
+ transform: iframe.enabled ? `scale(${zoomConfig.zoom})` : void 0,
33560
+ transition: showTransition ? "width 150ms ease-out, height 150ms ease-out, transform 150ms ease-out" : "",
33561
+ overflow: iframe.enabled ? void 0 : "auto"
33562
+ },
33563
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
33564
+ }
33565
+ ) })
33566
+ ]
33567
+ }
33568
+ );
33569
+ };
33570
+
32676
33571
  // components/Puck/index.tsx
32677
- var import_jsx_runtime29 = require("react/jsx-runtime");
32678
- var getClassName22 = get_class_name_factory_default("Puck", styles_module_default8);
33572
+ var import_jsx_runtime34 = require("react/jsx-runtime");
33573
+ var getClassName25 = get_class_name_factory_default("Puck", styles_default8);
32679
33574
  function Puck({
32680
33575
  children,
32681
33576
  config,
32682
33577
  data: initialData = { content: [], root: { props: { title: "" } } },
32683
- ui: initialUi = defaultAppState.ui,
33578
+ ui: initialUi,
32684
33579
  onChange,
32685
33580
  onPublish,
32686
33581
  plugins = [],
@@ -32688,32 +33583,63 @@ function Puck({
32688
33583
  renderHeader,
32689
33584
  renderHeaderActions,
32690
33585
  headerTitle,
32691
- headerPath
33586
+ headerPath,
33587
+ viewports = defaultViewports,
33588
+ iframe = {
33589
+ enabled: true
33590
+ }
32692
33591
  }) {
33592
+ var _a;
32693
33593
  const historyStore = useHistoryStore();
32694
- const [reducer] = (0, import_react26.useState)(
33594
+ const [reducer] = (0, import_react28.useState)(
32695
33595
  () => createReducer({ config, record: historyStore.record })
32696
33596
  );
32697
- const [initialAppState] = (0, import_react26.useState)(() => __spreadProps(__spreadValues({}, defaultAppState), {
32698
- data: initialData,
32699
- ui: __spreadProps(__spreadValues(__spreadValues({}, defaultAppState.ui), initialUi), {
32700
- // Store categories under componentList on state to allow render functions and plugins to modify
32701
- componentList: config.categories ? Object.entries(config.categories).reduce(
32702
- (acc, [categoryName, category]) => {
32703
- return __spreadProps(__spreadValues({}, acc), {
32704
- [categoryName]: {
32705
- title: category.title,
32706
- components: category.components,
32707
- expanded: category.defaultExpanded,
32708
- visible: category.visible
32709
- }
32710
- });
32711
- },
32712
- {}
32713
- ) : {}
32714
- })
32715
- }));
32716
- const [appState, dispatch] = (0, import_react26.useReducer)(
33597
+ const [initialAppState] = (0, import_react28.useState)(() => {
33598
+ var _a2, _b, _c, _d;
33599
+ const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
33600
+ let clientUiState = {};
33601
+ if (typeof window !== "undefined") {
33602
+ const viewportWidth = window.innerWidth;
33603
+ const viewportDifferences = Object.entries(viewports).map(([key, value]) => ({
33604
+ key,
33605
+ diff: Math.abs(viewportWidth - value.width)
33606
+ })).sort((a, b) => a.diff > b.diff ? 1 : -1);
33607
+ const closestViewport = viewportDifferences[0].key;
33608
+ if (iframe.enabled) {
33609
+ clientUiState = __spreadProps(__spreadValues({}, window.matchMedia("(min-width: 638px)").matches ? {} : {
33610
+ leftSideBarVisible: false,
33611
+ rightSideBarVisible: false
33612
+ }), {
33613
+ viewports: __spreadProps(__spreadValues({}, initial.viewports), {
33614
+ current: __spreadProps(__spreadValues({}, initial.viewports.current), {
33615
+ height: ((_b = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b.height) || viewports[closestViewport].height || "auto",
33616
+ width: ((_d = (_c = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _c.current) == null ? void 0 : _d.width) || viewports[closestViewport].width
33617
+ })
33618
+ })
33619
+ });
33620
+ }
33621
+ }
33622
+ return __spreadProps(__spreadValues({}, defaultAppState), {
33623
+ data: initialData,
33624
+ ui: __spreadProps(__spreadValues(__spreadValues({}, initial), clientUiState), {
33625
+ // Store categories under componentList on state to allow render functions and plugins to modify
33626
+ componentList: config.categories ? Object.entries(config.categories).reduce(
33627
+ (acc, [categoryName, category]) => {
33628
+ return __spreadProps(__spreadValues({}, acc), {
33629
+ [categoryName]: {
33630
+ title: category.title,
33631
+ components: category.components,
33632
+ expanded: category.defaultExpanded,
33633
+ visible: category.visible
33634
+ }
33635
+ });
33636
+ },
33637
+ {}
33638
+ ) : {}
33639
+ })
33640
+ });
33641
+ });
33642
+ const [appState, dispatch] = (0, import_react28.useReducer)(
32717
33643
  reducer,
32718
33644
  flushZones(initialAppState)
32719
33645
  );
@@ -32724,9 +33650,9 @@ function Puck({
32724
33650
  config,
32725
33651
  dispatch
32726
33652
  );
32727
- const [menuOpen, setMenuOpen] = (0, import_react26.useState)(false);
33653
+ const [menuOpen, setMenuOpen] = (0, import_react28.useState)(false);
32728
33654
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
32729
- const setItemSelector = (0, import_react26.useCallback)(
33655
+ const setItemSelector = (0, import_react28.useCallback)(
32730
33656
  (newItemSelector) => {
32731
33657
  if (newItemSelector === itemSelector)
32732
33658
  return;
@@ -32739,21 +33665,21 @@ function Puck({
32739
33665
  [itemSelector]
32740
33666
  );
32741
33667
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
32742
- (0, import_react26.useEffect)(() => {
33668
+ (0, import_react28.useEffect)(() => {
32743
33669
  if (onChange)
32744
33670
  onChange(data);
32745
33671
  }, [data]);
32746
33672
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
32747
- const [draggedItem, setDraggedItem] = (0, import_react26.useState)();
33673
+ const [draggedItem, setDraggedItem] = (0, import_react28.useState)();
32748
33674
  const rootProps = data.root.props || data.root;
32749
- (0, import_react26.useEffect)(() => {
33675
+ (0, import_react28.useEffect)(() => {
32750
33676
  if (Object.keys(data.root).length > 0 && !data.root.props) {
32751
33677
  console.error(
32752
33678
  "Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
32753
33679
  );
32754
33680
  }
32755
33681
  }, []);
32756
- const toggleSidebars = (0, import_react26.useCallback)(
33682
+ const toggleSidebars = (0, import_react28.useCallback)(
32757
33683
  (sidebar) => {
32758
33684
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
32759
33685
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -32767,7 +33693,7 @@ function Puck({
32767
33693
  },
32768
33694
  [dispatch, leftSideBarVisible, rightSideBarVisible]
32769
33695
  );
32770
- (0, import_react26.useEffect)(() => {
33696
+ (0, import_react28.useEffect)(() => {
32771
33697
  if (!window.matchMedia("(min-width: 638px)").matches) {
32772
33698
  dispatch({
32773
33699
  type: "setUi",
@@ -32790,59 +33716,54 @@ function Puck({
32790
33716
  window.removeEventListener("resize", handleResize);
32791
33717
  };
32792
33718
  }, []);
32793
- const defaultRender = (0, import_react26.useMemo)(() => {
32794
- const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: children2 });
33719
+ const defaultRender = (0, import_react28.useMemo)(() => {
33720
+ const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
32795
33721
  return PuckDefault;
32796
33722
  }, []);
32797
- const defaultHeaderRender = (0, import_react26.useMemo)(() => {
33723
+ const defaultHeaderRender = (0, import_react28.useMemo)(() => {
32798
33724
  if (renderHeader) {
32799
33725
  console.warn(
32800
33726
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
32801
33727
  );
32802
- const RenderHeader = (_a) => {
32803
- var _b = _a, { actions } = _b, props = __objRest(_b, ["actions"]);
33728
+ const RenderHeader = (_a2) => {
33729
+ var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
32804
33730
  const Comp = renderHeader;
32805
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
33731
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
32806
33732
  };
32807
33733
  return RenderHeader;
32808
33734
  }
32809
33735
  return defaultRender;
32810
33736
  }, [renderHeader]);
32811
- const defaultHeaderActionsRender = (0, import_react26.useMemo)(() => {
33737
+ const defaultHeaderActionsRender = (0, import_react28.useMemo)(() => {
32812
33738
  if (renderHeaderActions) {
32813
33739
  console.warn(
32814
33740
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
32815
33741
  );
32816
33742
  const RenderHeader = (props) => {
32817
33743
  const Comp = renderHeaderActions;
32818
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
33744
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
32819
33745
  };
32820
33746
  return RenderHeader;
32821
33747
  }
32822
33748
  return defaultRender;
32823
33749
  }, [renderHeader]);
32824
- const loadedOverrides = (0, import_react26.useMemo)(() => {
33750
+ const loadedOverrides = (0, import_react28.useMemo)(() => {
32825
33751
  return loadOverrides({ overrides, plugins });
32826
33752
  }, [plugins]);
32827
- const CustomPuck = (0, import_react26.useMemo)(
33753
+ const CustomPuck = (0, import_react28.useMemo)(
32828
33754
  () => loadedOverrides.puck || defaultRender,
32829
33755
  [loadedOverrides]
32830
33756
  );
32831
- const CustomPreview = (0, import_react26.useMemo)(
32832
- () => loadedOverrides.preview || defaultRender,
32833
- [loadedOverrides]
32834
- );
32835
- const CustomHeader = (0, import_react26.useMemo)(
33757
+ const CustomHeader = (0, import_react28.useMemo)(
32836
33758
  () => loadedOverrides.header || defaultHeaderRender,
32837
33759
  [loadedOverrides]
32838
33760
  );
32839
- const CustomHeaderActions = (0, import_react26.useMemo)(
33761
+ const CustomHeaderActions = (0, import_react28.useMemo)(
32840
33762
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
32841
33763
  [loadedOverrides]
32842
33764
  );
32843
- const disableZoom = children || loadedOverrides.puck ? true : false;
32844
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "Puck", children: [
32845
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33765
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "Puck", children: [
33766
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32846
33767
  AppProvider,
32847
33768
  {
32848
33769
  value: {
@@ -32853,10 +33774,12 @@ function Puck({
32853
33774
  resolveData,
32854
33775
  plugins,
32855
33776
  overrides: loadedOverrides,
32856
- history
33777
+ history,
33778
+ viewports,
33779
+ iframe
32857
33780
  },
32858
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32859
- import_dnd7.DragDropContext,
33781
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33782
+ DragDropContext,
32860
33783
  {
32861
33784
  onDragUpdate: (update) => {
32862
33785
  setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
@@ -32910,7 +33833,7 @@ function Puck({
32910
33833
  });
32911
33834
  }
32912
33835
  },
32913
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33836
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32914
33837
  DropZoneProvider,
32915
33838
  {
32916
33839
  value: {
@@ -32922,77 +33845,75 @@ function Puck({
32922
33845
  draggedItem,
32923
33846
  placeholderStyle,
32924
33847
  mode: "edit",
32925
- areaId: "root",
32926
- disableZoom
33848
+ areaId: "root"
32927
33849
  },
32928
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
33850
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
32929
33851
  "div",
32930
33852
  {
32931
- className: getClassName22({
33853
+ className: getClassName25({
32932
33854
  leftSideBarVisible,
32933
33855
  menuOpen,
32934
- rightSideBarVisible,
32935
- disableZoom
33856
+ rightSideBarVisible
32936
33857
  }),
32937
33858
  children: [
32938
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33859
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32939
33860
  CustomHeader,
32940
33861
  {
32941
- actions: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
32942
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
32943
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33862
+ actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
33863
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33864
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32944
33865
  Button,
32945
33866
  {
32946
33867
  onClick: () => {
32947
33868
  onPublish && onPublish(data);
32948
33869
  },
32949
- icon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Globe, { size: "14px" }),
33870
+ icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
32950
33871
  children: "Publish"
32951
33872
  }
32952
33873
  )
32953
33874
  ] }),
32954
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("header", { className: getClassName22("header"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("headerInner"), children: [
32955
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("headerToggle"), children: [
32956
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33875
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
33876
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
33877
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32957
33878
  IconButton,
32958
33879
  {
32959
33880
  onClick: () => {
32960
33881
  toggleSidebars("left");
32961
33882
  },
32962
33883
  title: "Toggle left sidebar",
32963
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelLeft, { focusable: "false" })
33884
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
32964
33885
  }
32965
33886
  ) }),
32966
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33887
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32967
33888
  IconButton,
32968
33889
  {
32969
33890
  onClick: () => {
32970
33891
  toggleSidebars("right");
32971
33892
  },
32972
33893
  title: "Toggle right sidebar",
32973
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelRight, { focusable: "false" })
33894
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
32974
33895
  }
32975
33896
  ) })
32976
33897
  ] }),
32977
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Heading, { rank: 2, size: "xs", children: [
33898
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading, { rank: 2, size: "xs", children: [
32978
33899
  headerTitle || rootProps.title || "Page",
32979
- headerPath && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
33900
+ headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
32980
33901
  " ",
32981
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("code", { className: getClassName22("headerPath"), children: headerPath })
33902
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
32982
33903
  ] })
32983
33904
  ] }) }),
32984
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("headerTools"), children: [
32985
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33905
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
33906
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32986
33907
  IconButton,
32987
33908
  {
32988
33909
  onClick: () => {
32989
33910
  return setMenuOpen(!menuOpen);
32990
33911
  },
32991
33912
  title: "Toggle menu bar",
32992
- children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronDown, { focusable: "false" })
33913
+ children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
32993
33914
  }
32994
33915
  ) }),
32995
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33916
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32996
33917
  MenuBar,
32997
33918
  {
32998
33919
  appState,
@@ -33000,7 +33921,7 @@ function Puck({
33000
33921
  dispatch,
33001
33922
  onPublish,
33002
33923
  menuOpen,
33003
- renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
33924
+ renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33004
33925
  setMenuOpen
33005
33926
  }
33006
33927
  )
@@ -33008,38 +33929,19 @@ function Puck({
33008
33929
  ] }) })
33009
33930
  }
33010
33931
  ),
33011
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getClassName22("leftSideBar"), children: [
33012
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Components, {}) }),
33013
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Outline, {}) })
33932
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
33933
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
33934
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
33014
33935
  ] }),
33015
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
33016
- "div",
33017
- {
33018
- className: getClassName22("frame"),
33019
- onClick: () => setItemSelector(null),
33020
- children: [
33021
- /* @__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, {}) }) }),
33022
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33023
- "div",
33024
- {
33025
- style: {
33026
- background: "var(--puck-color-grey-10)",
33027
- height: "100%",
33028
- flexGrow: 1
33029
- }
33030
- }
33031
- )
33032
- ]
33033
- }
33034
- ),
33035
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33936
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
33937
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33036
33938
  SidebarSection,
33037
33939
  {
33038
33940
  noPadding: true,
33039
33941
  noBorderTop: true,
33040
33942
  showBreadcrumbs: true,
33041
- title: selectedItem ? selectedItem.type : "Page",
33042
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fields, {})
33943
+ title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
33944
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
33043
33945
  }
33044
33946
  ) })
33045
33947
  ]
@@ -33051,7 +33953,7 @@ function Puck({
33051
33953
  )
33052
33954
  }
33053
33955
  ),
33054
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "puck-portal-root" })
33956
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { id: "puck-portal-root" })
33055
33957
  ] });
33056
33958
  }
33057
33959
  Puck.Components = Components;
@@ -33061,13 +33963,16 @@ Puck.Preview = Preview;
33061
33963
 
33062
33964
  // components/Render/index.tsx
33063
33965
  init_react_import();
33064
- var import_jsx_runtime30 = require("react/jsx-runtime");
33065
- function Render({ config, data }) {
33966
+ var import_jsx_runtime35 = require("react/jsx-runtime");
33967
+ function Render({
33968
+ config,
33969
+ data
33970
+ }) {
33066
33971
  var _a;
33067
33972
  const rootProps = data.root.props || data.root;
33068
33973
  const title = (rootProps == null ? void 0 : rootProps.title) || "";
33069
33974
  if ((_a = config.root) == null ? void 0 : _a.render) {
33070
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
33975
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
33071
33976
  config.root.render,
33072
33977
  __spreadProps(__spreadValues({}, rootProps), {
33073
33978
  puck: {
@@ -33076,11 +33981,11 @@ function Render({ config, data }) {
33076
33981
  title,
33077
33982
  editMode: false,
33078
33983
  id: "puck-root",
33079
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId })
33984
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId })
33080
33985
  })
33081
33986
  ) });
33082
33987
  }
33083
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) });
33988
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId }) });
33084
33989
  }
33085
33990
 
33086
33991
  // lib/migrate.ts
@@ -33141,37 +34046,51 @@ function transformProps(data, propTransforms) {
33141
34046
 
33142
34047
  // lib/resolve-all-data.ts
33143
34048
  init_react_import();
33144
- var resolveAllData = (data, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
33145
- const dynamicRoot = yield resolveRootData(data, config);
33146
- const { zones = {} } = data;
33147
- const zoneKeys = Object.keys(zones);
33148
- const resolvedZones = {};
33149
- for (let i = 0; i < zoneKeys.length; i++) {
33150
- const zoneKey = zoneKeys[i];
33151
- resolvedZones[zoneKey] = yield resolveAllComponentData(
33152
- zones[zoneKey],
33153
- config,
33154
- onResolveStart,
33155
- onResolveEnd
33156
- );
33157
- }
33158
- return __spreadProps(__spreadValues({}, data), {
33159
- root: dynamicRoot,
33160
- content: yield resolveAllComponentData(
33161
- data.content,
33162
- config,
33163
- onResolveStart,
33164
- onResolveEnd
33165
- ),
33166
- zones: resolvedZones
34049
+ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
34050
+ return __async(this, null, function* () {
34051
+ const dynamicRoot = yield resolveRootData(data, config);
34052
+ const { zones = {} } = data;
34053
+ const zoneKeys = Object.keys(zones);
34054
+ const resolvedZones = {};
34055
+ for (let i = 0; i < zoneKeys.length; i++) {
34056
+ const zoneKey = zoneKeys[i];
34057
+ resolvedZones[zoneKey] = yield resolveAllComponentData(
34058
+ zones[zoneKey],
34059
+ config,
34060
+ onResolveStart,
34061
+ onResolveEnd
34062
+ );
34063
+ }
34064
+ return __spreadProps(__spreadValues({}, data), {
34065
+ root: dynamicRoot,
34066
+ content: yield resolveAllComponentData(
34067
+ data.content,
34068
+ config,
34069
+ onResolveStart,
34070
+ onResolveEnd
34071
+ ),
34072
+ zones: resolvedZones
34073
+ });
33167
34074
  });
33168
- });
34075
+ }
33169
34076
 
33170
34077
  // lib/use-puck.ts
33171
34078
  init_react_import();
33172
34079
  var usePuck = () => {
33173
- const { state: appState, config, dispatch } = useAppContext();
33174
- return { appState, config, dispatch };
34080
+ const {
34081
+ state: appState,
34082
+ config,
34083
+ history,
34084
+ dispatch,
34085
+ selectedItem
34086
+ } = useAppContext();
34087
+ return {
34088
+ appState,
34089
+ config,
34090
+ dispatch,
34091
+ history,
34092
+ selectedItem: selectedItem || null
34093
+ };
33175
34094
  };
33176
34095
  // Annotate the CommonJS export names for ESM import in node:
33177
34096
  0 && (module.exports = {
@@ -33375,6 +34294,14 @@ lucide-react/dist/esm/icons/lock.js:
33375
34294
  * See the LICENSE file in the root directory of this source tree.
33376
34295
  *)
33377
34296
 
34297
+ lucide-react/dist/esm/icons/monitor.js:
34298
+ (**
34299
+ * @license lucide-react v0.298.0 - ISC
34300
+ *
34301
+ * This source code is licensed under the ISC license.
34302
+ * See the LICENSE file in the root directory of this source tree.
34303
+ *)
34304
+
33378
34305
  lucide-react/dist/esm/icons/more-vertical.js:
33379
34306
  (**
33380
34307
  * @license lucide-react v0.298.0 - ISC
@@ -33415,6 +34342,30 @@ lucide-react/dist/esm/icons/search.js:
33415
34342
  * See the LICENSE file in the root directory of this source tree.
33416
34343
  *)
33417
34344
 
34345
+ lucide-react/dist/esm/icons/sliders-horizontal.js:
34346
+ (**
34347
+ * @license lucide-react v0.298.0 - ISC
34348
+ *
34349
+ * This source code is licensed under the ISC license.
34350
+ * See the LICENSE file in the root directory of this source tree.
34351
+ *)
34352
+
34353
+ lucide-react/dist/esm/icons/smartphone.js:
34354
+ (**
34355
+ * @license lucide-react v0.298.0 - ISC
34356
+ *
34357
+ * This source code is licensed under the ISC license.
34358
+ * See the LICENSE file in the root directory of this source tree.
34359
+ *)
34360
+
34361
+ lucide-react/dist/esm/icons/tablet.js:
34362
+ (**
34363
+ * @license lucide-react v0.298.0 - ISC
34364
+ *
34365
+ * This source code is licensed under the ISC license.
34366
+ * See the LICENSE file in the root directory of this source tree.
34367
+ *)
34368
+
33418
34369
  lucide-react/dist/esm/icons/trash.js:
33419
34370
  (**
33420
34371
  * @license lucide-react v0.298.0 - ISC
@@ -33439,6 +34390,22 @@ lucide-react/dist/esm/icons/unlock.js:
33439
34390
  * See the LICENSE file in the root directory of this source tree.
33440
34391
  *)
33441
34392
 
34393
+ lucide-react/dist/esm/icons/zoom-in.js:
34394
+ (**
34395
+ * @license lucide-react v0.298.0 - ISC
34396
+ *
34397
+ * This source code is licensed under the ISC license.
34398
+ * See the LICENSE file in the root directory of this source tree.
34399
+ *)
34400
+
34401
+ lucide-react/dist/esm/icons/zoom-out.js:
34402
+ (**
34403
+ * @license lucide-react v0.298.0 - ISC
34404
+ *
34405
+ * This source code is licensed under the ISC license.
34406
+ * See the LICENSE file in the root directory of this source tree.
34407
+ *)
34408
+
33442
34409
  lucide-react/dist/esm/lucide-react.js:
33443
34410
  (**
33444
34411
  * @license lucide-react v0.298.0 - ISC