@measured/puck 0.14.0-canary.adac562 → 0.14.0-canary.bf4f527

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 Fragment16 = 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 Fragment16:
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 !== Fragment16) {
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 === Fragment16) {
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 Fragment16:
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 Fragment16:
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(Fragment16, 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
29284
+ init_react_import();
29285
+ var import_react3 = require("react");
29286
+
29287
+ // lib/get-item.ts
29288
+ init_react_import();
29289
+
29290
+ // lib/root-droppable-id.ts
29277
29291
  init_react_import();
29278
- var import_dnd = require("@hello-pangea/dnd");
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);
@@ -29669,8 +29913,12 @@ var useModifierHeld = (modifier) => {
29669
29913
 
29670
29914
  // components/DraggableComponent/index.tsx
29671
29915
  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);
29916
+ var import_jsx_runtime7 = require("react/jsx-runtime");
29917
+ var getClassName4 = get_class_name_factory_default("DraggableComponent", styles_default3);
29918
+ var space = 8;
29919
+ var actionsOverlayTop = space * 6.5;
29920
+ var actionsTop = -(actionsOverlayTop - 8);
29921
+ var actionsRight = space;
29674
29922
  var DraggableComponent = ({
29675
29923
  children,
29676
29924
  id,
@@ -29693,91 +29941,87 @@ var DraggableComponent = ({
29693
29941
  indicativeHover = false,
29694
29942
  style
29695
29943
  }) => {
29944
+ const { zoomConfig } = useAppContext();
29696
29945
  const isModifierHeld = useModifierHeld("Alt");
29697
- (0, import_react6.useEffect)(onMount, []);
29698
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
29699
- import_dnd3.Draggable,
29700
- {
29701
- draggableId: id,
29702
- index,
29703
- isDragDisabled,
29704
- children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
29705
- "div",
29706
- __spreadProps(__spreadValues(__spreadValues({
29707
- ref: provided.innerRef
29708
- }, provided.draggableProps), provided.dragHandleProps), {
29709
- className: getClassName4({
29710
- isSelected,
29711
- isModifierHeld,
29712
- isDragging: snapshot.isDragging,
29713
- isLocked,
29714
- forceHover,
29715
- indicativeHover
29716
- }),
29717
- style: __spreadProps(__spreadValues(__spreadValues({}, style), provided.draggableProps.style), {
29718
- cursor: isModifierHeld ? "initial" : "grab"
29719
- }),
29720
- onMouseOver,
29721
- onMouseOut,
29722
- onMouseDown,
29723
- onMouseUp,
29724
- onClick,
29725
- children: [
29726
- 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 })
29734
- ]
29735
- })
29736
- )
29737
- },
29738
- id
29739
- );
29740
- };
29741
-
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;
29946
+ const { status } = useAppContext();
29947
+ const El = status !== "LOADING" ? import_dnd3.Draggable : DefaultDraggable;
29948
+ (0, import_react7.useEffect)(onMount, []);
29949
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29950
+ "div",
29951
+ __spreadProps(__spreadValues(__spreadValues({
29952
+ ref: provided.innerRef
29953
+ }, provided.draggableProps), provided.dragHandleProps), {
29954
+ className: getClassName4({
29955
+ isSelected,
29956
+ isModifierHeld,
29957
+ isDragging: snapshot.isDragging,
29958
+ isLocked,
29959
+ forceHover,
29960
+ indicativeHover
29961
+ }),
29962
+ style: __spreadProps(__spreadValues(__spreadValues({}, style), provided.draggableProps.style), {
29963
+ cursor: isModifierHeld ? "initial" : "grab"
29964
+ }),
29965
+ onMouseOver,
29966
+ onMouseOut,
29967
+ onMouseDown,
29968
+ onMouseUp,
29969
+ onClick,
29970
+ children: [
29971
+ debug,
29972
+ 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" }) }),
29973
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
29974
+ "div",
29975
+ {
29976
+ className: getClassName4("actionsOverlay"),
29977
+ style: {
29978
+ top: actionsOverlayTop / zoomConfig.zoom
29979
+ },
29980
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29981
+ "div",
29982
+ {
29983
+ className: getClassName4("actions"),
29984
+ style: {
29985
+ transform: `scale(${1 / zoomConfig.zoom}`,
29986
+ top: actionsTop / zoomConfig.zoom,
29987
+ right: actionsRight / zoomConfig.zoom
29988
+ },
29989
+ children: [
29990
+ label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
29991
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Copy, { size: 16 }) }),
29992
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Trash, { size: 16 }) })
29993
+ ]
29994
+ }
29995
+ )
29996
+ }
29997
+ ),
29998
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("overlay") }),
29999
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("contents"), children })
30000
+ ]
30001
+ })
30002
+ ) }, id);
29762
30003
  };
29763
30004
 
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 });
30005
+ // components/DropZone/styles.module.css
30006
+ var styles_default4 = {
30007
+ DropZone: "styles_DropZone",
30008
+ "DropZone-content": "styles_DropZone-content",
30009
+ "DropZone--userIsDragging": "styles_DropZone--userIsDragging",
30010
+ "DropZone--draggingOverArea": "styles_DropZone--draggingOverArea",
30011
+ "DropZone--draggingNewComponent": "styles_DropZone--draggingNewComponent",
30012
+ "DropZone--isAreaSelected": "styles_DropZone--isAreaSelected",
30013
+ "DropZone--hoveringOverArea": "styles_DropZone--hoveringOverArea",
30014
+ "DropZone--isDisabled": "styles_DropZone--isDisabled",
30015
+ "DropZone--isRootZone": "styles_DropZone--isRootZone",
30016
+ "DropZone--hasChildren": "styles_DropZone--hasChildren",
30017
+ "DropZone--isDestination": "styles_DropZone--isDestination",
30018
+ "DropZone-item": "styles_DropZone-item",
30019
+ "DropZone-hitbox": "styles_DropZone-hitbox"
29772
30020
  };
29773
30021
 
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
30022
  // components/DropZone/context.tsx
29779
30023
  init_react_import();
29780
- var import_react7 = require("react");
30024
+ var import_react8 = require("react");
29781
30025
  var import_use_debounce = require("use-debounce");
29782
30026
 
29783
30027
  // lib/get-zone-id.ts
@@ -29793,30 +30037,30 @@ var getZoneId = (zoneCompound) => {
29793
30037
  };
29794
30038
 
29795
30039
  // components/DropZone/context.tsx
29796
- var import_jsx_runtime6 = require("react/jsx-runtime");
29797
- var dropZoneContext = (0, import_react7.createContext)(null);
30040
+ var import_jsx_runtime8 = require("react/jsx-runtime");
30041
+ var dropZoneContext = (0, import_react8.createContext)(null);
29798
30042
  var DropZoneProvider = ({
29799
30043
  children,
29800
30044
  value
29801
30045
  }) => {
29802
- const [hoveringArea, setHoveringArea] = (0, import_react7.useState)(null);
29803
- const [hoveringZone, setHoveringZone] = (0, import_react7.useState)(
30046
+ const [hoveringArea, setHoveringArea] = (0, import_react8.useState)(null);
30047
+ const [hoveringZone, setHoveringZone] = (0, import_react8.useState)(
29804
30048
  rootDroppableId
29805
30049
  );
29806
- const [hoveringComponent, setHoveringComponent] = (0, import_react7.useState)();
30050
+ const [hoveringComponent, setHoveringComponent] = (0, import_react8.useState)();
29807
30051
  const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
29808
- const [areasWithZones, setAreasWithZones] = (0, import_react7.useState)(
30052
+ const [areasWithZones, setAreasWithZones] = (0, import_react8.useState)(
29809
30053
  {}
29810
30054
  );
29811
- const [activeZones, setActiveZones] = (0, import_react7.useState)({});
30055
+ const [activeZones, setActiveZones] = (0, import_react8.useState)({});
29812
30056
  const { dispatch = null } = value ? value : {};
29813
- const registerZoneArea = (0, import_react7.useCallback)(
30057
+ const registerZoneArea = (0, import_react8.useCallback)(
29814
30058
  (area) => {
29815
30059
  setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
29816
30060
  },
29817
30061
  [setAreasWithZones]
29818
30062
  );
29819
- const registerZone = (0, import_react7.useCallback)(
30063
+ const registerZone = (0, import_react8.useCallback)(
29820
30064
  (zoneCompound) => {
29821
30065
  if (!dispatch) {
29822
30066
  return;
@@ -29829,7 +30073,7 @@ var DropZoneProvider = ({
29829
30073
  },
29830
30074
  [setActiveZones, dispatch]
29831
30075
  );
29832
- const unregisterZone = (0, import_react7.useCallback)(
30076
+ const unregisterZone = (0, import_react8.useCallback)(
29833
30077
  (zoneCompound) => {
29834
30078
  if (!dispatch) {
29835
30079
  return;
@@ -29844,8 +30088,8 @@ var DropZoneProvider = ({
29844
30088
  },
29845
30089
  [setActiveZones, dispatch]
29846
30090
  );
29847
- const [pathData, setPathData] = (0, import_react7.useState)();
29848
- const registerPath = (0, import_react7.useCallback)(
30091
+ const [pathData, setPathData] = (0, import_react8.useState)();
30092
+ const registerPath = (0, import_react8.useCallback)(
29849
30093
  (selector) => {
29850
30094
  if (!(value == null ? void 0 : value.data)) {
29851
30095
  return;
@@ -29870,7 +30114,8 @@ var DropZoneProvider = ({
29870
30114
  },
29871
30115
  [value, setPathData]
29872
30116
  );
29873
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
30117
+ const [zoneWillDrag, setZoneWillDrag] = (0, import_react8.useState)("");
30118
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
29874
30119
  dropZoneContext.Provider,
29875
30120
  {
29876
30121
  value: __spreadValues({
@@ -29886,58 +30131,18 @@ var DropZoneProvider = ({
29886
30131
  unregisterZone,
29887
30132
  activeZones,
29888
30133
  registerPath,
29889
- pathData
30134
+ pathData,
30135
+ zoneWillDrag,
30136
+ setZoneWillDrag
29890
30137
  }, value),
29891
30138
  children
29892
30139
  }
29893
30140
  ) });
29894
30141
  };
29895
30142
 
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
30143
  // 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);
30144
+ var import_jsx_runtime9 = require("react/jsx-runtime");
30145
+ var getClassName5 = get_class_name_factory_default("DropZone", styles_default4);
29941
30146
  function DropZoneEdit({ zone, allow, disallow, style }) {
29942
30147
  var _a;
29943
30148
  const appContext2 = useAppContext();
@@ -29955,7 +30160,8 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29955
30160
  registerZoneArea,
29956
30161
  areasWithZones,
29957
30162
  hoveringComponent,
29958
- disableZoom = false
30163
+ zoneWillDrag,
30164
+ setZoneWillDrag = () => null
29959
30165
  } = ctx || {};
29960
30166
  let content = data.content || [];
29961
30167
  let zoneCompound = rootDroppableId;
@@ -29985,12 +30191,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29985
30191
  const draggedDestinationId = draggedItem && ((_a = draggedItem.destination) == null ? void 0 : _a.droppableId);
29986
30192
  const [zoneArea] = getZoneId(zoneCompound);
29987
30193
  const [draggedSourceArea] = getZoneId(draggedSourceId);
29988
- const [userWillDrag, setUserWillDrag] = (0, import_react9.useState)(false);
30194
+ const userWillDrag = zoneWillDrag === zone;
29989
30195
  const userIsDragging = !!draggedItem;
29990
30196
  const draggingOverArea = userIsDragging && zoneArea === draggedSourceArea;
29991
30197
  const draggingNewComponent = draggedSourceId == null ? void 0 : draggedSourceId.startsWith("component-list");
29992
30198
  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." });
30199
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: "DropZone requires context to work." });
29994
30200
  }
29995
30201
  const {
29996
30202
  hoveringArea = "root",
@@ -30027,7 +30233,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30027
30233
  }
30028
30234
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
30029
30235
  const isAreaSelected = selectedItem && zoneArea === selectedItem.props.id;
30030
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30236
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30031
30237
  "div",
30032
30238
  {
30033
30239
  className: getClassName5({
@@ -30039,17 +30245,19 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30039
30245
  isDestination: draggedDestinationId === zoneCompound,
30040
30246
  isDisabled: !isEnabled,
30041
30247
  isAreaSelected,
30042
- hasChildren: content.length > 0,
30043
- zoomEnabled: !disableZoom
30248
+ hasChildren: content.length > 0
30044
30249
  }),
30045
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30046
- import_dnd4.Droppable,
30250
+ onMouseUp: () => {
30251
+ setZoneWillDrag("");
30252
+ },
30253
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30254
+ Droppable,
30047
30255
  {
30048
30256
  droppableId: zoneCompound,
30049
30257
  direction: "vertical",
30050
30258
  isDropDisabled: !isEnabled,
30051
30259
  children: (provided, snapshot) => {
30052
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30260
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30053
30261
  "div",
30054
30262
  __spreadProps(__spreadValues({}, (provided || { droppableProps: {} }).droppableProps), {
30055
30263
  className: getClassName5("content"),
@@ -30063,7 +30271,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30063
30271
  },
30064
30272
  children: [
30065
30273
  content.map((item, i) => {
30066
- var _a2, _b;
30274
+ var _a2, _b, _c;
30067
30275
  const componentId = item.props.id;
30068
30276
  const defaultedProps = __spreadProps(__spreadValues(__spreadValues({}, (_a2 = config.components[item.type]) == null ? void 0 : _a2.defaultProps), item.props), {
30069
30277
  puck: { renderDropZone: DropZone },
@@ -30074,33 +30282,33 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30074
30282
  "draggable-"
30075
30283
  )[1] === componentId;
30076
30284
  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: [
30285
+ 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
30286
  "No configuration for ",
30079
30287
  item.type
30080
30288
  ] });
30081
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30289
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30082
30290
  "div",
30083
30291
  {
30084
30292
  className: getClassName5("item"),
30085
30293
  style: { zIndex: isDragging ? 1 : void 0 },
30086
30294
  children: [
30087
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30295
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30088
30296
  DropZoneProvider,
30089
30297
  {
30090
30298
  value: __spreadProps(__spreadValues({}, ctx), {
30091
30299
  areaId: componentId
30092
30300
  }),
30093
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30301
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30094
30302
  DraggableComponent,
30095
30303
  {
30096
- label: item.type.toString(),
30304
+ label: (_b = config.components[item.type]["label"]) != null ? _b : item.type.toString(),
30097
30305
  id: `draggable-${componentId}`,
30098
30306
  index: i,
30099
30307
  isSelected,
30100
30308
  isLocked: userIsDragging,
30101
30309
  forceHover: hoveringComponent === componentId && !userIsDragging,
30102
30310
  indicativeHover: userIsDragging && containsZone && hoveringArea === componentId,
30103
- isLoading: (_b = appContext2.componentState[componentId]) == null ? void 0 : _b.loading,
30311
+ isLoading: (_c = appContext2.componentState[componentId]) == null ? void 0 : _c.loading,
30104
30312
  onMount: () => {
30105
30313
  ctx.registerPath({
30106
30314
  index: i,
@@ -30116,11 +30324,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30116
30324
  },
30117
30325
  onMouseDown: (e) => {
30118
30326
  e.stopPropagation();
30119
- setUserWillDrag(true);
30120
- },
30121
- onMouseUp: (e) => {
30122
- e.stopPropagation();
30123
- setUserWillDrag(false);
30327
+ setZoneWillDrag(zone);
30124
30328
  },
30125
30329
  onMouseOver: (e) => {
30126
30330
  e.stopPropagation();
@@ -30161,12 +30365,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30161
30365
  style: {
30162
30366
  pointerEvents: userIsDragging && draggingNewComponent ? "all" : void 0
30163
30367
  },
30164
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30368
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30165
30369
  }
30166
30370
  )
30167
30371
  }
30168
30372
  ),
30169
- userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30373
+ userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30170
30374
  "div",
30171
30375
  {
30172
30376
  className: getClassName5("hitbox"),
@@ -30183,12 +30387,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30183
30387
  );
30184
30388
  }),
30185
30389
  provided == null ? void 0 : provided.placeholder,
30186
- (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30390
+ (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30187
30391
  "div",
30188
30392
  {
30189
30393
  "data-puck-placeholder": true,
30190
30394
  style: __spreadProps(__spreadValues({}, placeholderStyle), {
30191
- background: "var(--puck-color-azure-5)",
30395
+ background: "var(--puck-color-azure-06)",
30192
30396
  opacity: 0.3,
30193
30397
  zIndex: 0
30194
30398
  })
@@ -30215,14 +30419,14 @@ function DropZoneRender({ zone }) {
30215
30419
  zoneCompound = `${areaId}:${zone}`;
30216
30420
  content = setupZone(data, zoneCompound).zones[zoneCompound];
30217
30421
  }
30218
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: content.map((item) => {
30422
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: content.map((item) => {
30219
30423
  const Component = config.components[item.type];
30220
30424
  if (Component) {
30221
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30425
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30222
30426
  DropZoneProvider,
30223
30427
  {
30224
30428
  value: { data, config, areaId: item.props.id },
30225
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30429
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30226
30430
  Component.render,
30227
30431
  __spreadProps(__spreadValues({}, item.props), {
30228
30432
  puck: { renderDropZone: DropZone }
@@ -30238,9 +30442,9 @@ function DropZoneRender({ zone }) {
30238
30442
  function DropZone(props) {
30239
30443
  const ctx = (0, import_react9.useContext)(dropZoneContext);
30240
30444
  if ((ctx == null ? void 0 : ctx.mode) === "edit") {
30241
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneEdit, __spreadValues({}, props));
30445
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneEdit, __spreadValues({}, props));
30242
30446
  }
30243
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneRender, __spreadValues({}, props));
30447
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneRender, __spreadValues({}, props));
30244
30448
  }
30245
30449
 
30246
30450
  // components/IconButton/index.ts
@@ -30250,14 +30454,17 @@ init_react_import();
30250
30454
  init_react_import();
30251
30455
  var import_react10 = require("react");
30252
30456
 
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" };
30457
+ // components/IconButton/IconButton.module.css
30458
+ var IconButton_default = {
30459
+ IconButton: "IconButton_IconButton",
30460
+ "IconButton--disabled": "IconButton_IconButton--disabled",
30461
+ "IconButton-title": "IconButton_IconButton-title"
30462
+ };
30256
30463
 
30257
30464
  // components/IconButton/IconButton.tsx
30258
30465
  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);
30466
+ var import_jsx_runtime10 = require("react/jsx-runtime");
30467
+ var getClassName6 = get_class_name_factory_default("IconButton", IconButton_default);
30261
30468
  var IconButton = ({
30262
30469
  children,
30263
30470
  href,
@@ -30272,7 +30479,7 @@ var IconButton = ({
30272
30479
  }) => {
30273
30480
  const [loading, setLoading] = (0, import_react10.useState)(false);
30274
30481
  const ElementType = href ? "a" : "button";
30275
- const el = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
30482
+ const el = /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30276
30483
  ElementType,
30277
30484
  {
30278
30485
  className: getClassName6({
@@ -30297,11 +30504,11 @@ var IconButton = ({
30297
30504
  href,
30298
30505
  title,
30299
30506
  children: [
30300
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: getClassName6("title"), children: title }),
30507
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: getClassName6("title"), children: title }),
30301
30508
  children,
30302
- loading && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
30509
+ loading && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
30303
30510
  "\xA0\xA0",
30304
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30511
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30305
30512
  ] })
30306
30513
  ]
30307
30514
  }
@@ -30311,26 +30518,51 @@ var IconButton = ({
30311
30518
 
30312
30519
  // components/Puck/index.tsx
30313
30520
  init_react_import();
30314
- var import_react26 = require("react");
30315
- var import_dnd7 = require("@hello-pangea/dnd");
30521
+ var import_react29 = require("react");
30316
30522
 
30317
30523
  // lib/use-placeholder-style.ts
30318
30524
  init_react_import();
30525
+ var import_react12 = require("react");
30526
+
30527
+ // lib/use-frame.ts
30528
+ init_react_import();
30319
30529
  var import_react11 = require("react");
30530
+
30531
+ // lib/get-frame.ts
30532
+ init_react_import();
30533
+ var getFrame = () => {
30534
+ let frame = document.querySelector("#preview-frame");
30535
+ if ((frame == null ? void 0 : frame.tagName) === "IFRAME") {
30536
+ frame = frame.contentDocument.body;
30537
+ }
30538
+ return frame;
30539
+ };
30540
+
30541
+ // lib/use-frame.ts
30542
+ var useFrame = () => {
30543
+ const [el, setEl] = (0, import_react11.useState)();
30544
+ (0, import_react11.useEffect)(() => {
30545
+ setEl(getFrame());
30546
+ }, []);
30547
+ return el;
30548
+ };
30549
+
30550
+ // lib/use-placeholder-style.ts
30320
30551
  var usePlaceholderStyle = () => {
30321
30552
  const queryAttr = "data-rfd-drag-handle-draggable-id";
30322
- const [placeholderStyle, setPlaceholderStyle] = (0, import_react11.useState)();
30553
+ const [placeholderStyle, setPlaceholderStyle] = (0, import_react12.useState)();
30554
+ const frame = useFrame();
30323
30555
  const onDragStartOrUpdate = (draggedItem) => {
30324
30556
  var _a;
30325
30557
  const draggableId = draggedItem.draggableId;
30326
30558
  const destinationIndex = (draggedItem.destination || draggedItem.source).index;
30327
30559
  const droppableId = (draggedItem.destination || draggedItem.source).droppableId;
30328
30560
  const domQuery = `[${queryAttr}='${draggableId}']`;
30329
- const draggedDOM = document.querySelector(domQuery);
30561
+ const draggedDOM = frame == null ? void 0 : frame.ownerDocument.querySelector(domQuery);
30330
30562
  if (!draggedDOM) {
30331
30563
  return;
30332
30564
  }
30333
- const targetListElement = document.querySelector(
30565
+ const targetListElement = frame == null ? void 0 : frame.ownerDocument.querySelector(
30334
30566
  `[data-rfd-droppable-id='${droppableId}']`
30335
30567
  );
30336
30568
  const { clientHeight } = draggedDOM;
@@ -30365,23 +30597,42 @@ var usePlaceholderStyle = () => {
30365
30597
  // components/SidebarSection/index.tsx
30366
30598
  init_react_import();
30367
30599
 
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" };
30600
+ // components/SidebarSection/styles.module.css
30601
+ var styles_default5 = {
30602
+ SidebarSection: "styles_SidebarSection",
30603
+ "SidebarSection-title": "styles_SidebarSection-title",
30604
+ "SidebarSection--noBorderTop": "styles_SidebarSection--noBorderTop",
30605
+ "SidebarSection-content": "styles_SidebarSection-content",
30606
+ "SidebarSection--noPadding": "styles_SidebarSection--noPadding",
30607
+ "SidebarSection-breadcrumbLabel": "styles_SidebarSection-breadcrumbLabel",
30608
+ "SidebarSection-breadcrumbs": "styles_SidebarSection-breadcrumbs",
30609
+ "SidebarSection-breadcrumb": "styles_SidebarSection-breadcrumb",
30610
+ "SidebarSection-heading": "styles_SidebarSection-heading",
30611
+ "SidebarSection-loadingOverlay": "styles_SidebarSection-loadingOverlay"
30612
+ };
30371
30613
 
30372
30614
  // components/Heading/index.tsx
30373
30615
  init_react_import();
30374
30616
 
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" };
30617
+ // components/Heading/styles.module.css
30618
+ var styles_default6 = {
30619
+ Heading: "styles_Heading",
30620
+ "Heading--xxxxl": "styles_Heading--xxxxl",
30621
+ "Heading--xxxl": "styles_Heading--xxxl",
30622
+ "Heading--xxl": "styles_Heading--xxl",
30623
+ "Heading--xl": "styles_Heading--xl",
30624
+ "Heading--l": "styles_Heading--l",
30625
+ "Heading--m": "styles_Heading--m",
30626
+ "Heading--s": "styles_Heading--s",
30627
+ "Heading--xs": "styles_Heading--xs"
30628
+ };
30378
30629
 
30379
30630
  // 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);
30631
+ var import_jsx_runtime11 = require("react/jsx-runtime");
30632
+ var getClassName7 = get_class_name_factory_default("Heading", styles_default6);
30382
30633
  var Heading = ({ children, rank, size = "m" }) => {
30383
30634
  const Tag = rank ? `h${rank}` : "span";
30384
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30635
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
30385
30636
  Tag,
30386
30637
  {
30387
30638
  className: getClassName7({
@@ -30394,7 +30645,7 @@ var Heading = ({ children, rank, size = "m" }) => {
30394
30645
 
30395
30646
  // lib/use-breadcrumbs.ts
30396
30647
  init_react_import();
30397
- var import_react12 = require("react");
30648
+ var import_react13 = require("react");
30398
30649
  var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
30399
30650
  const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
30400
30651
  const currentPathData = pathData && id && pathData[id] ? __spreadValues({}, pathData[id]) : { label: "Page", path: [] };
@@ -30444,8 +30695,8 @@ var useBreadcrumbs = (renderCount) => {
30444
30695
  state: { data },
30445
30696
  selectedItem
30446
30697
  } = useAppContext();
30447
- const dzContext = (0, import_react12.useContext)(dropZoneContext);
30448
- return (0, import_react12.useMemo)(() => {
30698
+ const dzContext = (0, import_react13.useContext)(dropZoneContext);
30699
+ return (0, import_react13.useMemo)(() => {
30449
30700
  const breadcrumbs = convertPathDataToBreadcrumbs(
30450
30701
  selectedItem,
30451
30702
  dzContext == null ? void 0 : dzContext.pathData,
@@ -30460,8 +30711,8 @@ var useBreadcrumbs = (renderCount) => {
30460
30711
 
30461
30712
  // components/SidebarSection/index.tsx
30462
30713
  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);
30714
+ var import_jsx_runtime12 = require("react/jsx-runtime");
30715
+ var getClassName8 = get_class_name_factory_default("SidebarSection", styles_default5);
30465
30716
  var SidebarSection = ({
30466
30717
  children,
30467
30718
  title,
@@ -30473,28 +30724,28 @@ var SidebarSection = ({
30473
30724
  }) => {
30474
30725
  const { setUi } = useAppContext();
30475
30726
  const breadcrumbs = useBreadcrumbs(1);
30476
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30727
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
30477
30728
  "div",
30478
30729
  {
30479
30730
  className: getClassName8({ noBorderTop, noPadding }),
30480
30731
  style: { background },
30481
30732
  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",
30733
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
30734
+ showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
30735
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
30736
+ "button",
30486
30737
  {
30487
30738
  className: getClassName8("breadcrumbLabel"),
30488
30739
  onClick: () => setUi({ itemSelector: breadcrumb.selector }),
30489
30740
  children: breadcrumb.label
30490
30741
  }
30491
30742
  ),
30492
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronRight, { size: 16 })
30743
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { size: 16 })
30493
30744
  ] }, 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 }) })
30745
+ /* @__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
30746
  ] }) }),
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" }) })
30747
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("content"), children }),
30748
+ 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
30749
  ]
30499
30750
  }
30500
30751
  );
@@ -30862,7 +31113,7 @@ var flushZones = (appState) => {
30862
31113
 
30863
31114
  // lib/use-resolved-data.ts
30864
31115
  init_react_import();
30865
- var import_react13 = require("react");
31116
+ var import_react14 = require("react");
30866
31117
 
30867
31118
  // lib/resolve-component-data.ts
30868
31119
  init_react_import();
@@ -30977,13 +31228,13 @@ var resolveRootData = (data, config) => __async(void 0, null, function* () {
30977
31228
 
30978
31229
  // lib/use-resolved-data.ts
30979
31230
  var useResolvedData = (appState, config, dispatch) => {
30980
- const [{ resolverKey, newAppState }, setResolverState] = (0, import_react13.useState)({
31231
+ const [{ resolverKey, newAppState }, setResolverState] = (0, import_react14.useState)({
30981
31232
  resolverKey: 0,
30982
31233
  newAppState: appState
30983
31234
  });
30984
- const [componentState, setComponentState] = (0, import_react13.useState)({});
31235
+ const [componentState, setComponentState] = (0, import_react14.useState)({});
30985
31236
  const deferredSetStates = {};
30986
- const setComponentLoading = (0, import_react13.useCallback)(
31237
+ const setComponentLoading = (0, import_react14.useCallback)(
30987
31238
  (id, loading, defer = 0) => {
30988
31239
  if (deferredSetStates[id]) {
30989
31240
  clearTimeout(deferredSetStates[id]);
@@ -31000,7 +31251,10 @@ var useResolvedData = (appState, config, dispatch) => {
31000
31251
  );
31001
31252
  const runResolvers = () => __async(void 0, null, function* () {
31002
31253
  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);
31254
+ const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => {
31255
+ var _a;
31256
+ return !!((_a = config.components[item.type]) == null ? void 0 : _a.resolveData);
31257
+ });
31004
31258
  const applyIfChange = (dynamicDataMap, dynamicRoot) => {
31005
31259
  const processed = applyDynamicProps(
31006
31260
  appState.data,
@@ -31050,10 +31304,10 @@ var useResolvedData = (appState, config, dispatch) => {
31050
31304
  });
31051
31305
  yield Promise.all(promises);
31052
31306
  });
31053
- (0, import_react13.useEffect)(() => {
31307
+ (0, import_react14.useEffect)(() => {
31054
31308
  runResolvers();
31055
31309
  }, [resolverKey]);
31056
- const resolveData = (0, import_react13.useCallback)((newAppState2 = appState) => {
31310
+ const resolveData = (0, import_react14.useCallback)((newAppState2 = appState) => {
31057
31311
  setResolverState((curr) => ({
31058
31312
  resolverKey: curr.resolverKey + 1,
31059
31313
  newAppState: newAppState2
@@ -31068,13 +31322,17 @@ var useResolvedData = (appState, config, dispatch) => {
31068
31322
  // components/MenuBar/index.tsx
31069
31323
  init_react_import();
31070
31324
 
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" };
31325
+ // components/MenuBar/styles.module.css
31326
+ var styles_default7 = {
31327
+ MenuBar: "styles_MenuBar",
31328
+ "MenuBar--menuOpen": "styles_MenuBar--menuOpen",
31329
+ "MenuBar-inner": "styles_MenuBar-inner",
31330
+ "MenuBar-history": "styles_MenuBar-history"
31331
+ };
31074
31332
 
31075
31333
  // 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);
31334
+ var import_jsx_runtime13 = require("react/jsx-runtime");
31335
+ var getClassName9 = get_class_name_factory_default("MenuBar", styles_default7);
31078
31336
  var MenuBar = ({
31079
31337
  appState,
31080
31338
  data = { content: [], root: { props: { title: "" } } },
@@ -31088,7 +31346,7 @@ var MenuBar = ({
31088
31346
  history: { back, forward, historyStore }
31089
31347
  } = useAppContext();
31090
31348
  const { hasFuture = false, hasPast = false } = historyStore || {};
31091
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31349
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31092
31350
  "div",
31093
31351
  {
31094
31352
  className: getClassName9({ menuOpen }),
@@ -31102,34 +31360,34 @@ var MenuBar = ({
31102
31360
  setMenuOpen(false);
31103
31361
  }
31104
31362
  },
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)(
31363
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("inner"), children: [
31364
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("history"), children: [
31365
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31108
31366
  ChevronLeft,
31109
31367
  {
31110
31368
  size: 21,
31111
- stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
31369
+ stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31112
31370
  }
31113
31371
  ) }),
31114
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31372
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31115
31373
  ChevronRight,
31116
31374
  {
31117
31375
  size: 21,
31118
- stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
31376
+ stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31119
31377
  }
31120
31378
  ) })
31121
31379
  ] }),
31122
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: renderHeaderActions && renderHeaderActions({
31380
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: renderHeaderActions && renderHeaderActions({
31123
31381
  state: appState,
31124
31382
  dispatch
31125
31383
  }) }),
31126
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31384
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31127
31385
  Button,
31128
31386
  {
31129
31387
  onClick: () => {
31130
31388
  onPublish && onPublish(data);
31131
31389
  },
31132
- icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Globe, { size: "14px" }),
31390
+ icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Globe, { size: "14px" }),
31133
31391
  children: "Publish"
31134
31392
  }
31135
31393
  ) })
@@ -31138,9 +31396,24 @@ var MenuBar = ({
31138
31396
  );
31139
31397
  };
31140
31398
 
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" };
31399
+ // components/Puck/styles.module.css
31400
+ var styles_default8 = {
31401
+ Puck: "styles_Puck",
31402
+ "Puck--leftSideBarVisible": "styles_Puck--leftSideBarVisible",
31403
+ "Puck--rightSideBarVisible": "styles_Puck--rightSideBarVisible",
31404
+ "Puck-header": "styles_Puck-header",
31405
+ "Puck-headerInner": "styles_Puck-headerInner",
31406
+ "Puck-headerToggle": "styles_Puck-headerToggle",
31407
+ "Puck-rightSideBarToggle": "styles_Puck-rightSideBarToggle",
31408
+ "Puck-leftSideBarToggle": "styles_Puck-leftSideBarToggle",
31409
+ "Puck-headerTitle": "styles_Puck-headerTitle",
31410
+ "Puck-headerPath": "styles_Puck-headerPath",
31411
+ "Puck-headerTools": "styles_Puck-headerTools",
31412
+ "Puck-menuButton": "styles_Puck-menuButton",
31413
+ "Puck--menuOpen": "styles_Puck--menuOpen",
31414
+ "Puck-leftSideBar": "styles_Puck-leftSideBar",
31415
+ "Puck-rightSideBar": "styles_Puck-rightSideBar"
31416
+ };
31144
31417
 
31145
31418
  // components/Puck/components/Fields/index.tsx
31146
31419
  init_react_import();
@@ -31149,12 +31422,22 @@ var import_react_spinners6 = require("react-spinners");
31149
31422
  // components/InputOrGroup/index.tsx
31150
31423
  init_react_import();
31151
31424
 
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" };
31425
+ // components/InputOrGroup/styles.module.css
31426
+ var styles_default9 = {
31427
+ Input: "styles_Input",
31428
+ "Input-label": "styles_Input-label",
31429
+ "Input-labelIcon": "styles_Input-labelIcon",
31430
+ "Input-disabledIcon": "styles_Input-disabledIcon",
31431
+ "Input-input": "styles_Input-input",
31432
+ "Input--readOnly": "styles_Input--readOnly",
31433
+ "Input-radioGroupItems": "styles_Input-radioGroupItems",
31434
+ "Input-radio": "styles_Input-radio",
31435
+ "Input-radioInner": "styles_Input-radioInner",
31436
+ "Input-radioInput": "styles_Input-radioInput"
31437
+ };
31155
31438
 
31156
31439
  // components/InputOrGroup/index.tsx
31157
- var import_react18 = require("react");
31440
+ var import_react19 = require("react");
31158
31441
 
31159
31442
  // components/InputOrGroup/fields/index.tsx
31160
31443
  init_react_import();
@@ -31162,17 +31445,41 @@ init_react_import();
31162
31445
  // components/InputOrGroup/fields/ArrayField/index.tsx
31163
31446
  init_react_import();
31164
31447
 
31165
- // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ArrayField/styles.module.css#css-module
31448
+ // components/InputOrGroup/fields/ArrayField/styles.module.css
31449
+ var styles_default10 = {
31450
+ ArrayField: "styles_ArrayField",
31451
+ "ArrayField--isDraggingFrom": "styles_ArrayField--isDraggingFrom",
31452
+ "ArrayField-addButton": "styles_ArrayField-addButton",
31453
+ "ArrayField--hasItems": "styles_ArrayField--hasItems",
31454
+ ArrayFieldItem: "styles_ArrayFieldItem",
31455
+ "ArrayFieldItem--isDragging": "styles_ArrayFieldItem--isDragging",
31456
+ "ArrayFieldItem--isExpanded": "styles_ArrayFieldItem--isExpanded",
31457
+ "ArrayFieldItem-summary": "styles_ArrayFieldItem-summary",
31458
+ "ArrayFieldItem--readOnly": "styles_ArrayFieldItem--readOnly",
31459
+ "ArrayFieldItem-body": "styles_ArrayFieldItem-body",
31460
+ "ArrayFieldItem-fieldset": "styles_ArrayFieldItem-fieldset",
31461
+ "ArrayFieldItem-rhs": "styles_ArrayFieldItem-rhs",
31462
+ "ArrayFieldItem-actions": "styles_ArrayFieldItem-actions"
31463
+ };
31464
+
31465
+ // components/InputOrGroup/fields/ArrayField/index.tsx
31466
+ var import_react15 = require("react");
31467
+
31468
+ // components/DragDropContext/index.tsx
31166
31469
  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" };
31470
+ var import_dnd4 = require("@measured/dnd");
31471
+ var import_jsx_runtime14 = require("react/jsx-runtime");
31472
+ var DefaultDragDropContext = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
31473
+ var DragDropContext = (props) => {
31474
+ const { status } = useAppContext();
31475
+ const El = status !== "LOADING" ? import_dnd4.DragDropContext : DefaultDragDropContext;
31476
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(El, __spreadValues({}, props));
31477
+ };
31168
31478
 
31169
31479
  // components/InputOrGroup/fields/ArrayField/index.tsx
31170
- var import_dnd5 = require("@hello-pangea/dnd");
31171
- var import_dnd6 = require("@hello-pangea/dnd");
31172
- 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);
31480
+ var import_jsx_runtime15 = require("react/jsx-runtime");
31481
+ var getClassName10 = get_class_name_factory_default("ArrayField", styles_default10);
31482
+ var getClassNameItem2 = get_class_name_factory_default("ArrayFieldItem", styles_default10);
31176
31483
  var ArrayField = ({
31177
31484
  field,
31178
31485
  onChange,
@@ -31194,11 +31501,11 @@ var ArrayField = ({
31194
31501
  }),
31195
31502
  openId: ""
31196
31503
  };
31197
- const [localState, setLocalState] = (0, import_react14.useState)({ arrayState, value });
31198
- (0, import_react14.useEffect)(() => {
31504
+ const [localState, setLocalState] = (0, import_react15.useState)({ arrayState, value });
31505
+ (0, import_react15.useEffect)(() => {
31199
31506
  setLocalState({ arrayState, value });
31200
31507
  }, [value, state.ui.arrayState[id]]);
31201
- const mapArrayStateToUi = (0, import_react14.useCallback)(
31508
+ const mapArrayStateToUi = (0, import_react15.useCallback)(
31202
31509
  (partialArrayState) => {
31203
31510
  return {
31204
31511
  arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
@@ -31208,13 +31515,13 @@ var ArrayField = ({
31208
31515
  },
31209
31516
  [arrayState]
31210
31517
  );
31211
- const getHighestIndex = (0, import_react14.useCallback)(() => {
31518
+ const getHighestIndex = (0, import_react15.useCallback)(() => {
31212
31519
  return arrayState.items.reduce(
31213
31520
  (acc, item) => item._originalIndex > acc ? item._originalIndex : acc,
31214
31521
  -1
31215
31522
  );
31216
31523
  }, [arrayState]);
31217
- const regenerateArrayState = (0, import_react14.useCallback)(
31524
+ const regenerateArrayState = (0, import_react15.useCallback)(
31218
31525
  (value2) => {
31219
31526
  let highestIndex = getHighestIndex();
31220
31527
  const newItems = Array.from(value2 || []).map((item, idx) => {
@@ -31233,22 +31540,22 @@ var ArrayField = ({
31233
31540
  },
31234
31541
  [arrayState]
31235
31542
  );
31236
- (0, import_react14.useEffect)(() => {
31543
+ (0, import_react15.useEffect)(() => {
31237
31544
  setUi(mapArrayStateToUi(arrayState));
31238
31545
  }, []);
31239
- const [hovering, setHovering] = (0, import_react14.useState)(false);
31546
+ const [hovering, setHovering] = (0, import_react15.useState)(false);
31240
31547
  if (field.type !== "array" || !field.arrayFields) {
31241
31548
  return null;
31242
31549
  }
31243
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31550
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31244
31551
  FieldLabelInternal,
31245
31552
  {
31246
31553
  label: label || name,
31247
- icon: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(List, { size: 16 }),
31554
+ icon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(List, { size: 16 }),
31248
31555
  el: "div",
31249
31556
  readOnly,
31250
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31251
- import_dnd6.DragDropContext,
31557
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31558
+ DragDropContext,
31252
31559
  {
31253
31560
  onDragEnd: (event) => {
31254
31561
  var _a, _b;
@@ -31274,8 +31581,8 @@ var ArrayField = ({
31274
31581
  });
31275
31582
  }
31276
31583
  },
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)(
31584
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
31585
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31279
31586
  "div",
31280
31587
  __spreadProps(__spreadValues({}, provided.droppableProps), {
31281
31588
  ref: provided.innerRef,
@@ -31295,7 +31602,7 @@ var ArrayField = ({
31295
31602
  localState.arrayState.items.map((item, i) => {
31296
31603
  const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
31297
31604
  const data = Array.from(localState.value || [])[i] || {};
31298
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31605
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31299
31606
  Draggable,
31300
31607
  {
31301
31608
  id: _arrayId,
@@ -31306,8 +31613,8 @@ var ArrayField = ({
31306
31613
  readOnly
31307
31614
  }),
31308
31615
  isDragDisabled: readOnly || !hovering,
31309
- children: () => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
31310
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
31616
+ children: () => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
31617
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31311
31618
  "div",
31312
31619
  {
31313
31620
  onClick: () => {
@@ -31328,10 +31635,12 @@ var ArrayField = ({
31328
31635
  className: getClassNameItem2("summary"),
31329
31636
  children: [
31330
31637
  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)(
31638
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
31639
+ !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
31640
  IconButton,
31334
31641
  {
31642
+ type: "button",
31643
+ disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
31335
31644
  onClick: (e) => {
31336
31645
  e.stopPropagation();
31337
31646
  const existingValue = [
@@ -31350,20 +31659,20 @@ var ArrayField = ({
31350
31659
  );
31351
31660
  },
31352
31661
  title: "Delete",
31353
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Trash, { size: 16 })
31662
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Trash, { size: 16 })
31354
31663
  }
31355
31664
  ) }) }),
31356
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DragIcon, {}) })
31665
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DragIcon, {}) })
31357
31666
  ] })
31358
31667
  ]
31359
31668
  }
31360
31669
  ),
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(
31670
+ /* @__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
31671
  (fieldName) => {
31363
31672
  const subField = field.arrayFields[fieldName];
31364
31673
  const subFieldName = `${name}[${i}].${fieldName}`;
31365
31674
  const wildcardFieldName = `${name}[*].${fieldName}`;
31366
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31675
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31367
31676
  InputOrGroup,
31368
31677
  {
31369
31678
  name: subFieldName,
@@ -31392,10 +31701,12 @@ var ArrayField = ({
31392
31701
  );
31393
31702
  }),
31394
31703
  provided.placeholder,
31395
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31704
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31396
31705
  "button",
31397
31706
  {
31707
+ type: "button",
31398
31708
  className: getClassName10("addButton"),
31709
+ disabled: field.max !== void 0 && localState.arrayState.items.length >= field.max,
31399
31710
  onClick: () => {
31400
31711
  const existingValue = value || [];
31401
31712
  const newValue = [
@@ -31405,7 +31716,7 @@ var ArrayField = ({
31405
31716
  const newArrayState = regenerateArrayState(newValue);
31406
31717
  onChange(newValue, mapArrayStateToUi(newArrayState));
31407
31718
  },
31408
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Plus, { size: "21" })
31719
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Plus, { size: 21 })
31409
31720
  }
31410
31721
  )
31411
31722
  ]
@@ -31420,8 +31731,8 @@ var ArrayField = ({
31420
31731
 
31421
31732
  // components/InputOrGroup/fields/DefaultField/index.tsx
31422
31733
  init_react_import();
31423
- var import_jsx_runtime13 = require("react/jsx-runtime");
31424
- var getClassName11 = get_class_name_factory_default("Input", styles_module_default9);
31734
+ var import_jsx_runtime16 = require("react/jsx-runtime");
31735
+ var getClassName11 = get_class_name_factory_default("Input", styles_default9);
31425
31736
  var DefaultField = ({
31426
31737
  field,
31427
31738
  onChange,
@@ -31431,16 +31742,16 @@ var DefaultField = ({
31431
31742
  label,
31432
31743
  id
31433
31744
  }) => {
31434
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31745
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31435
31746
  FieldLabelInternal,
31436
31747
  {
31437
31748
  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 })
31749
+ icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
31750
+ field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Type, { size: 16 }),
31751
+ field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Hash, { size: 16 })
31441
31752
  ] }),
31442
31753
  readOnly,
31443
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31754
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31444
31755
  "input",
31445
31756
  {
31446
31757
  className: getClassName11("input"),
@@ -31456,6 +31767,7 @@ var DefaultField = ({
31456
31767
  }
31457
31768
  },
31458
31769
  readOnly,
31770
+ tabIndex: readOnly ? -1 : void 0,
31459
31771
  id,
31460
31772
  min: field.type === "number" ? field.min : void 0,
31461
31773
  max: field.type === "number" ? field.max : void 0
@@ -31467,42 +31779,72 @@ var DefaultField = ({
31467
31779
 
31468
31780
  // components/InputOrGroup/fields/ExternalField/index.tsx
31469
31781
  init_react_import();
31470
- var import_react17 = require("react");
31782
+ var import_react18 = require("react");
31471
31783
 
31472
31784
  // components/ExternalInput/index.tsx
31473
31785
  init_react_import();
31474
- var import_react16 = require("react");
31786
+ var import_react17 = require("react");
31475
31787
 
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" };
31788
+ // components/ExternalInput/styles.module.css
31789
+ var styles_default11 = {
31790
+ "ExternalInput-actions": "styles_ExternalInput-actions",
31791
+ "ExternalInput-button": "styles_ExternalInput-button",
31792
+ "ExternalInput--dataSelected": "styles_ExternalInput--dataSelected",
31793
+ "ExternalInput-detachButton": "styles_ExternalInput-detachButton",
31794
+ ExternalInputModal: "styles_ExternalInputModal",
31795
+ "ExternalInputModal-grid": "styles_ExternalInputModal-grid",
31796
+ "ExternalInputModal--filtersToggled": "styles_ExternalInputModal--filtersToggled",
31797
+ "ExternalInputModal-filters": "styles_ExternalInputModal-filters",
31798
+ "ExternalInputModal-masthead": "styles_ExternalInputModal-masthead",
31799
+ "ExternalInputModal-tableWrapper": "styles_ExternalInputModal-tableWrapper",
31800
+ "ExternalInputModal-table": "styles_ExternalInputModal-table",
31801
+ "ExternalInputModal-thead": "styles_ExternalInputModal-thead",
31802
+ "ExternalInputModal-th": "styles_ExternalInputModal-th",
31803
+ "ExternalInputModal-td": "styles_ExternalInputModal-td",
31804
+ "ExternalInputModal-tr": "styles_ExternalInputModal-tr",
31805
+ "ExternalInputModal-tbody": "styles_ExternalInputModal-tbody",
31806
+ "ExternalInputModal--hasData": "styles_ExternalInputModal--hasData",
31807
+ "ExternalInputModal-loadingBanner": "styles_ExternalInputModal-loadingBanner",
31808
+ "ExternalInputModal--isLoading": "styles_ExternalInputModal--isLoading",
31809
+ "ExternalInputModal-searchForm": "styles_ExternalInputModal-searchForm",
31810
+ "ExternalInputModal-search": "styles_ExternalInputModal-search",
31811
+ "ExternalInputModal-searchIcon": "styles_ExternalInputModal-searchIcon",
31812
+ "ExternalInputModal-searchIconText": "styles_ExternalInputModal-searchIconText",
31813
+ "ExternalInputModal-searchInput": "styles_ExternalInputModal-searchInput",
31814
+ "ExternalInputModal-searchActions": "styles_ExternalInputModal-searchActions",
31815
+ "ExternalInputModal-searchActionIcon": "styles_ExternalInputModal-searchActionIcon",
31816
+ "ExternalInputModal-footer": "styles_ExternalInputModal-footer"
31817
+ };
31479
31818
 
31480
31819
  // components/Modal/index.tsx
31481
31820
  init_react_import();
31482
- var import_react15 = require("react");
31821
+ var import_react16 = require("react");
31483
31822
 
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" };
31823
+ // components/Modal/styles.module.css
31824
+ var styles_default12 = {
31825
+ Modal: "styles_Modal",
31826
+ "Modal--isOpen": "styles_Modal--isOpen",
31827
+ "Modal-inner": "styles_Modal-inner"
31828
+ };
31487
31829
 
31488
31830
  // components/Modal/index.tsx
31489
31831
  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);
31832
+ var import_jsx_runtime17 = require("react/jsx-runtime");
31833
+ var getClassName12 = get_class_name_factory_default("Modal", styles_default12);
31492
31834
  var Modal = ({
31493
31835
  children,
31494
31836
  onClose,
31495
31837
  isOpen
31496
31838
  }) => {
31497
- const [rootEl, setRootEl] = (0, import_react15.useState)(null);
31498
- (0, import_react15.useEffect)(() => {
31839
+ const [rootEl, setRootEl] = (0, import_react16.useState)(null);
31840
+ (0, import_react16.useEffect)(() => {
31499
31841
  setRootEl(document.getElementById("puck-portal-root"));
31500
31842
  }, []);
31501
31843
  if (!rootEl) {
31502
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", {});
31844
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {});
31503
31845
  }
31504
31846
  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)(
31847
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31506
31848
  "div",
31507
31849
  {
31508
31850
  className: getClassName12("inner"),
@@ -31516,9 +31858,9 @@ var Modal = ({
31516
31858
 
31517
31859
  // components/ExternalInput/index.tsx
31518
31860
  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);
31861
+ var import_jsx_runtime18 = require("react/jsx-runtime");
31862
+ var getClassName13 = get_class_name_factory_default("ExternalInput", styles_default11);
31863
+ var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_default11);
31522
31864
  var dataCache = {};
31523
31865
  var ExternalInput = ({
31524
31866
  field,
@@ -31527,13 +31869,23 @@ var ExternalInput = ({
31527
31869
  name,
31528
31870
  id
31529
31871
  }) => {
31530
- const { mapProp = (val) => val } = field || {};
31531
- const [data, setData] = (0, import_react16.useState)([]);
31532
- const [isOpen, setOpen] = (0, import_react16.useState)(false);
31533
- const [isLoading, setIsLoading] = (0, import_react16.useState)(true);
31534
- const keys = (0, import_react16.useMemo)(() => {
31872
+ const {
31873
+ mapProp = (val) => val,
31874
+ mapRow = (val) => val,
31875
+ filterFields
31876
+ } = field || {};
31877
+ const [data, setData] = (0, import_react17.useState)([]);
31878
+ const [isOpen, setOpen] = (0, import_react17.useState)(false);
31879
+ const [isLoading, setIsLoading] = (0, import_react17.useState)(true);
31880
+ const hasFilterFields = !!filterFields;
31881
+ const [filters, setFilters] = (0, import_react17.useState)(field.initialFilters || {});
31882
+ const [filtersToggled, setFiltersToggled] = (0, import_react17.useState)(hasFilterFields);
31883
+ const mappedData = (0, import_react17.useMemo)(() => {
31884
+ return data.map(mapRow);
31885
+ }, [data]);
31886
+ const keys = (0, import_react17.useMemo)(() => {
31535
31887
  const validKeys = /* @__PURE__ */ new Set();
31536
- for (const item of data) {
31888
+ for (const item of mappedData) {
31537
31889
  for (const key of Object.keys(item)) {
31538
31890
  if (typeof item[key] === "string" || typeof item[key] === "number") {
31539
31891
  validKeys.add(key);
@@ -31541,13 +31893,13 @@ var ExternalInput = ({
31541
31893
  }
31542
31894
  }
31543
31895
  return Array.from(validKeys);
31544
- }, [data]);
31545
- const [searchQuery, setSearchQuery] = (0, import_react16.useState)(field.initialQuery || "");
31546
- const search = (0, import_react16.useCallback)(
31547
- (query) => __async(void 0, null, function* () {
31896
+ }, [mappedData]);
31897
+ const [searchQuery, setSearchQuery] = (0, import_react17.useState)(field.initialQuery || "");
31898
+ const search = (0, import_react17.useCallback)(
31899
+ (query, filters2) => __async(void 0, null, function* () {
31548
31900
  setIsLoading(true);
31549
- const cacheKey = `${id}-${name}-${query}`;
31550
- const listData = dataCache[cacheKey] || (yield field.fetchList({ query }));
31901
+ const cacheKey = `${id}-${name}-${query}-${JSON.stringify(filters2)}`;
31902
+ const listData = dataCache[cacheKey] || (yield field.fetchList({ query, filters: filters2 }));
31551
31903
  if (listData) {
31552
31904
  setData(listData);
31553
31905
  setIsLoading(false);
@@ -31556,10 +31908,10 @@ var ExternalInput = ({
31556
31908
  }),
31557
31909
  [name, field]
31558
31910
  );
31559
- (0, import_react16.useEffect)(() => {
31560
- search(searchQuery);
31911
+ (0, import_react17.useEffect)(() => {
31912
+ search(searchQuery, filters);
31561
31913
  }, []);
31562
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31914
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31563
31915
  "div",
31564
31916
  {
31565
31917
  className: getClassName13({
@@ -31568,102 +31920,134 @@ var ExternalInput = ({
31568
31920
  }),
31569
31921
  id,
31570
31922
  children: [
31571
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName13("actions"), children: [
31572
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31923
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassName13("actions"), children: [
31924
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31573
31925
  "button",
31574
31926
  {
31927
+ type: "button",
31575
31928
  onClick: () => setOpen(true),
31576
31929
  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 })
31930
+ children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
31931
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { size: "16" }),
31932
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: field.placeholder })
31580
31933
  ] })
31581
31934
  }
31582
31935
  ),
31583
- value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31936
+ value && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31584
31937
  "button",
31585
31938
  {
31586
31939
  className: getClassName13("detachButton"),
31587
31940
  onClick: () => {
31588
31941
  onChange(null);
31589
31942
  },
31590
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Unlock, { size: 16 })
31943
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Unlock, { size: 16 })
31591
31944
  }
31592
31945
  )
31593
31946
  ] }),
31594
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31595
- "div",
31947
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31948
+ "form",
31596
31949
  {
31597
31950
  className: getClassNameModal({
31598
31951
  isLoading,
31599
31952
  loaded: !isLoading,
31600
- hasData: data.length > 0
31953
+ hasData: mappedData.length > 0,
31954
+ filtersToggled
31601
31955
  }),
31956
+ onSubmit: (e) => {
31957
+ e.preventDefault();
31958
+ search(searchQuery, filters);
31959
+ },
31602
31960
  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",
31961
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
31962
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: getClassNameModal("search"), children: [
31963
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31964
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "18" }) }),
31965
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31966
+ "input",
31967
+ {
31968
+ className: getClassNameModal("searchInput"),
31969
+ name: "q",
31970
+ type: "search",
31971
+ placeholder: field.placeholder,
31972
+ onChange: (e) => {
31973
+ setSearchQuery(e.currentTarget.value);
31974
+ },
31975
+ autoComplete: "off",
31976
+ value: searchQuery
31977
+ }
31978
+ )
31979
+ ] }),
31980
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
31981
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
31982
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31983
+ IconButton,
31984
+ {
31985
+ title: "Toggle filters",
31986
+ onClick: (e) => {
31987
+ e.preventDefault();
31988
+ e.stopPropagation();
31989
+ setFiltersToggled(!filtersToggled);
31990
+ },
31991
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SlidersHorizontal, { size: 20 })
31992
+ }
31993
+ ) })
31994
+ ] })
31995
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
31996
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("grid"), children: [
31997
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
31998
+ const filterField = filterFields[fieldName];
31999
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32000
+ InputOrGroup,
31641
32001
  {
31642
- className: getClassNameModal("th"),
31643
- style: { textAlign: "left" },
31644
- children: key
32002
+ field: filterField,
32003
+ name: fieldName,
32004
+ id: `external_field_${fieldName}_filter`,
32005
+ label: filterField.label || fieldName,
32006
+ value: filters[fieldName],
32007
+ onChange: (value2) => {
32008
+ const newFilters = __spreadProps(__spreadValues({}, filters), { [fieldName]: value2 });
32009
+ setFilters(newFilters);
32010
+ search(searchQuery, newFilters);
32011
+ }
31645
32012
  },
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",
32013
+ fieldName
32014
+ );
32015
+ }) }),
32016
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
32017
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: getClassNameModal("table"), children: [
32018
+ /* @__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)(
32019
+ "th",
31651
32020
  {
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))
32021
+ className: getClassNameModal("th"),
32022
+ style: { textAlign: "left" },
32023
+ children: key
31659
32024
  },
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" }) })
32025
+ key
32026
+ )) }) }),
32027
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
32028
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32029
+ "tr",
32030
+ {
32031
+ style: { whiteSpace: "nowrap" },
32032
+ className: getClassNameModal("tr"),
32033
+ onClick: () => {
32034
+ onChange(mapProp(data[i]));
32035
+ setOpen(false);
32036
+ },
32037
+ children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
32038
+ },
32039
+ i
32040
+ );
32041
+ }) })
32042
+ ] }),
32043
+ /* @__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" }) })
32044
+ ] })
31665
32045
  ] }),
31666
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("noContentBanner"), children: "No results." })
32046
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("footer"), children: [
32047
+ mappedData.length,
32048
+ " result",
32049
+ mappedData.length === 1 ? "" : "s"
32050
+ ] })
31667
32051
  ]
31668
32052
  }
31669
32053
  ) })
@@ -31673,7 +32057,7 @@ var ExternalInput = ({
31673
32057
  };
31674
32058
 
31675
32059
  // components/InputOrGroup/fields/ExternalField/index.tsx
31676
- var import_jsx_runtime16 = require("react/jsx-runtime");
32060
+ var import_jsx_runtime19 = require("react/jsx-runtime");
31677
32061
  var ExternalField = ({
31678
32062
  field,
31679
32063
  onChange,
@@ -31685,7 +32069,7 @@ var ExternalField = ({
31685
32069
  var _a, _b, _c;
31686
32070
  const validField = field;
31687
32071
  const deprecatedField = field;
31688
- (0, import_react17.useEffect)(() => {
32072
+ (0, import_react18.useEffect)(() => {
31689
32073
  if (deprecatedField.adaptor) {
31690
32074
  console.error(
31691
32075
  "Warning: The `adaptor` API is deprecated. Please use updated APIs on the `external` field instead. This will be a breaking change in a future release."
@@ -31695,13 +32079,13 @@ var ExternalField = ({
31695
32079
  if (field.type !== "external") {
31696
32080
  return null;
31697
32081
  }
31698
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
32082
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31699
32083
  FieldLabelInternal,
31700
32084
  {
31701
32085
  label: label || name,
31702
- icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { size: 16 }),
32086
+ icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { size: 16 }),
31703
32087
  el: "div",
31704
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
32088
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31705
32089
  ExternalInput,
31706
32090
  {
31707
32091
  name,
@@ -31709,6 +32093,7 @@ var ExternalField = ({
31709
32093
  // DEPRECATED
31710
32094
  placeholder: ((_a = deprecatedField.adaptor) == null ? void 0 : _a.name) ? `Select from ${deprecatedField.adaptor.name}` : validField.placeholder || "Select data",
31711
32095
  mapProp: ((_b = deprecatedField.adaptor) == null ? void 0 : _b.mapProp) || validField.mapProp,
32096
+ mapRow: validField.mapRow,
31712
32097
  fetchList: ((_c = deprecatedField.adaptor) == null ? void 0 : _c.fetchList) ? () => __async(void 0, null, function* () {
31713
32098
  return yield deprecatedField.adaptor.fetchList(
31714
32099
  deprecatedField.adaptorParams
@@ -31726,8 +32111,8 @@ var ExternalField = ({
31726
32111
 
31727
32112
  // components/InputOrGroup/fields/RadioField/index.tsx
31728
32113
  init_react_import();
31729
- var import_jsx_runtime17 = require("react/jsx-runtime");
31730
- var getClassName14 = get_class_name_factory_default("Input", styles_module_default9);
32114
+ var import_jsx_runtime20 = require("react/jsx-runtime");
32115
+ var getClassName14 = get_class_name_factory_default("Input", styles_default9);
31731
32116
  var RadioField = ({
31732
32117
  field,
31733
32118
  onChange,
@@ -31740,19 +32125,19 @@ var RadioField = ({
31740
32125
  if (field.type !== "radio" || !field.options) {
31741
32126
  return null;
31742
32127
  }
31743
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32128
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31744
32129
  FieldLabelInternal,
31745
32130
  {
31746
- icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CheckCircle, { size: 16 }),
32131
+ icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckCircle, { size: 16 }),
31747
32132
  label: label || name,
31748
32133
  readOnly,
31749
32134
  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)(
32135
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
31751
32136
  "label",
31752
32137
  {
31753
32138
  className: getClassName14("radio"),
31754
32139
  children: [
31755
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32140
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31756
32141
  "input",
31757
32142
  {
31758
32143
  type: "radio",
@@ -31770,7 +32155,7 @@ var RadioField = ({
31770
32155
  defaultChecked: value === option.value
31771
32156
  }
31772
32157
  ),
31773
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
32158
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
31774
32159
  ]
31775
32160
  },
31776
32161
  option.label + option.value
@@ -31781,8 +32166,8 @@ var RadioField = ({
31781
32166
 
31782
32167
  // components/InputOrGroup/fields/SelectField/index.tsx
31783
32168
  init_react_import();
31784
- var import_jsx_runtime18 = require("react/jsx-runtime");
31785
- var getClassName15 = get_class_name_factory_default("Input", styles_module_default9);
32169
+ var import_jsx_runtime21 = require("react/jsx-runtime");
32170
+ var getClassName15 = get_class_name_factory_default("Input", styles_default9);
31786
32171
  var SelectField = ({
31787
32172
  field,
31788
32173
  onChange,
@@ -31795,13 +32180,13 @@ var SelectField = ({
31795
32180
  if (field.type !== "select" || !field.options) {
31796
32181
  return null;
31797
32182
  }
31798
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32183
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31799
32184
  FieldLabelInternal,
31800
32185
  {
31801
32186
  label: label || name,
31802
- icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDown, { size: 16 }),
32187
+ icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronDown, { size: 16 }),
31803
32188
  readOnly,
31804
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32189
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31805
32190
  "select",
31806
32191
  {
31807
32192
  id,
@@ -31815,7 +32200,7 @@ var SelectField = ({
31815
32200
  onChange(e.currentTarget.value);
31816
32201
  },
31817
32202
  value,
31818
- children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32203
+ children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31819
32204
  "option",
31820
32205
  {
31821
32206
  label: option.label,
@@ -31831,8 +32216,8 @@ var SelectField = ({
31831
32216
 
31832
32217
  // components/InputOrGroup/fields/TextareaField/index.tsx
31833
32218
  init_react_import();
31834
- var import_jsx_runtime19 = require("react/jsx-runtime");
31835
- var getClassName16 = get_class_name_factory_default("Input", styles_module_default9);
32219
+ var import_jsx_runtime22 = require("react/jsx-runtime");
32220
+ var getClassName16 = get_class_name_factory_default("Input", styles_default9);
31836
32221
  var TextareaField = ({
31837
32222
  onChange,
31838
32223
  readOnly,
@@ -31841,13 +32226,13 @@ var TextareaField = ({
31841
32226
  label,
31842
32227
  id
31843
32228
  }) => {
31844
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32229
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31845
32230
  FieldLabelInternal,
31846
32231
  {
31847
32232
  label: label || name,
31848
- icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Type, { size: 16 }),
32233
+ icon: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Type, { size: 16 }),
31849
32234
  readOnly,
31850
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32235
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31851
32236
  "textarea",
31852
32237
  {
31853
32238
  id,
@@ -31857,6 +32242,7 @@ var TextareaField = ({
31857
32242
  value: typeof value === "undefined" ? "" : value,
31858
32243
  onChange: (e) => onChange(e.currentTarget.value),
31859
32244
  readOnly,
32245
+ tabIndex: readOnly ? -1 : void 0,
31860
32246
  rows: 5
31861
32247
  }
31862
32248
  )
@@ -31870,14 +32256,16 @@ var import_use_debounce2 = require("use-debounce");
31870
32256
  // components/InputOrGroup/fields/ObjectField/index.tsx
31871
32257
  init_react_import();
31872
32258
 
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" };
32259
+ // components/InputOrGroup/fields/ObjectField/styles.module.css
32260
+ var styles_default13 = {
32261
+ ObjectField: "styles_ObjectField",
32262
+ "ObjectField-fieldset": "styles_ObjectField-fieldset"
32263
+ };
31876
32264
 
31877
32265
  // 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);
32266
+ var import_jsx_runtime23 = require("react/jsx-runtime");
32267
+ var getClassName17 = get_class_name_factory_default("ObjectField", styles_default13);
32268
+ var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_default13);
31881
32269
  var ObjectField = ({
31882
32270
  field,
31883
32271
  onChange,
@@ -31892,18 +32280,18 @@ var ObjectField = ({
31892
32280
  return null;
31893
32281
  }
31894
32282
  const data = value || {};
31895
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32283
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31896
32284
  FieldLabelInternal,
31897
32285
  {
31898
32286
  label: label || name,
31899
- icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MoreVertical, { size: 16 }),
32287
+ icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MoreVertical, { size: 16 }),
31900
32288
  el: "div",
31901
32289
  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) => {
32290
+ 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
32291
  const subField = field.objectFields[fieldName];
31904
32292
  const subFieldName = `${name}.${fieldName}`;
31905
32293
  const wildcardFieldName = `${name}.${fieldName}`;
31906
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32294
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31907
32295
  InputOrGroup,
31908
32296
  {
31909
32297
  name: subFieldName,
@@ -31930,8 +32318,8 @@ var ObjectField = ({
31930
32318
  };
31931
32319
 
31932
32320
  // 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);
32321
+ var import_jsx_runtime24 = require("react/jsx-runtime");
32322
+ var getClassName18 = get_class_name_factory_default("Input", styles_default9);
31935
32323
  var FieldLabel = ({
31936
32324
  children,
31937
32325
  icon,
@@ -31941,11 +32329,11 @@ var FieldLabel = ({
31941
32329
  className
31942
32330
  }) => {
31943
32331
  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, {}),
32332
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(El, { className, children: [
32333
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("label"), children: [
32334
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {}),
31947
32335
  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" }) })
32336
+ 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
32337
  ] }),
31950
32338
  children
31951
32339
  ] });
@@ -31958,11 +32346,11 @@ var FieldLabelInternal = ({
31958
32346
  readOnly
31959
32347
  }) => {
31960
32348
  const { overrides } = useAppContext();
31961
- const Wrapper = (0, import_react18.useMemo)(
32349
+ const Wrapper = (0, import_react19.useMemo)(
31962
32350
  () => overrides.fieldLabel || FieldLabel,
31963
32351
  [overrides]
31964
32352
  );
31965
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
32353
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
31966
32354
  Wrapper,
31967
32355
  {
31968
32356
  label,
@@ -31979,7 +32367,7 @@ var InputOrGroup = (_a) => {
31979
32367
  var _a2, _b2, _c, _d, _e, _f, _g, _h;
31980
32368
  const { overrides } = useAppContext();
31981
32369
  const { name, field, value, readOnly } = props;
31982
- const [localValue, setLocalValue] = (0, import_react18.useState)(value);
32370
+ const [localValue, setLocalValue] = (0, import_react19.useState)(value);
31983
32371
  const onChangeDb = (0, import_use_debounce2.useDebouncedCallback)(
31984
32372
  (val, ui) => {
31985
32373
  onChange(val, ui);
@@ -31987,11 +32375,11 @@ var InputOrGroup = (_a) => {
31987
32375
  50,
31988
32376
  { leading: true }
31989
32377
  );
31990
- const onChangeLocal = (0, import_react18.useCallback)((val, ui) => {
32378
+ const onChangeLocal = (0, import_react19.useCallback)((val, ui) => {
31991
32379
  setLocalValue(val);
31992
32380
  onChangeDb(val, ui);
31993
32381
  }, []);
31994
- (0, import_react18.useEffect)(() => {
32382
+ (0, import_react19.useEffect)(() => {
31995
32383
  setLocalValue(value);
31996
32384
  }, [value]);
31997
32385
  const localProps = {
@@ -32002,7 +32390,7 @@ var InputOrGroup = (_a) => {
32002
32390
  if (!field.render) {
32003
32391
  return null;
32004
32392
  }
32005
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32393
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32006
32394
  field,
32007
32395
  name,
32008
32396
  readOnly
@@ -32031,17 +32419,19 @@ var InputOrGroup = (_a) => {
32031
32419
  const mergedProps = __spreadProps(__spreadValues(__spreadValues({}, props), localProps), { field });
32032
32420
  const children = defaultFields[field.type](mergedProps);
32033
32421
  const Render2 = render[field.type];
32034
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32422
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32035
32423
  };
32036
32424
 
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" };
32425
+ // components/Puck/components/Fields/styles.module.css
32426
+ var styles_default14 = {
32427
+ PuckFields: "styles_PuckFields",
32428
+ "PuckFields-loadingOverlay": "styles_PuckFields-loadingOverlay"
32429
+ };
32040
32430
 
32041
32431
  // components/Puck/components/Fields/index.tsx
32042
- 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);
32432
+ var import_react20 = require("react");
32433
+ var import_jsx_runtime25 = require("react/jsx-runtime");
32434
+ var getClassName19 = get_class_name_factory_default("PuckFields", styles_default14);
32045
32435
  var defaultPageFields = {
32046
32436
  title: { type: "text" }
32047
32437
  };
@@ -32049,9 +32439,9 @@ var DefaultFields = ({
32049
32439
  children,
32050
32440
  isLoading
32051
32441
  }) => {
32052
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: getClassName19(), children: [
32442
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19(), children: [
32053
32443
  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" }) })
32444
+ 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
32445
  ] });
32056
32446
  };
32057
32447
  var Fields = () => {
@@ -32071,15 +32461,15 @@ var Fields = () => {
32071
32461
  const fields = selectedItem ? ((_b = config.components[selectedItem.type]) == null ? void 0 : _b.fields) || {} : rootFields;
32072
32462
  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
32463
  const rootProps = data.root.props || data.root;
32074
- const Wrapper = (0, import_react19.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
32075
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32464
+ const Wrapper = (0, import_react20.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
32465
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32076
32466
  "form",
32077
32467
  {
32078
32468
  className: getClassName19(),
32079
32469
  onSubmit: (e) => {
32080
32470
  e.preventDefault();
32081
32471
  },
32082
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32472
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32083
32473
  const field = fields[fieldName];
32084
32474
  const onChange = (value, updatedUi) => {
32085
32475
  var _a2, _b2;
@@ -32145,7 +32535,7 @@ var Fields = () => {
32145
32535
  };
32146
32536
  if (selectedItem && itemSelector) {
32147
32537
  const { readOnly = {} } = selectedItem;
32148
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32538
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32149
32539
  InputOrGroup,
32150
32540
  {
32151
32541
  field,
@@ -32161,7 +32551,7 @@ var Fields = () => {
32161
32551
  );
32162
32552
  } else {
32163
32553
  const { readOnly = {} } = data.root;
32164
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32554
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32165
32555
  InputOrGroup,
32166
32556
  {
32167
32557
  field,
@@ -32186,24 +32576,30 @@ init_react_import();
32186
32576
 
32187
32577
  // lib/use-component-list.tsx
32188
32578
  init_react_import();
32189
- var import_react20 = require("react");
32579
+ var import_react21 = require("react");
32190
32580
 
32191
32581
  // components/ComponentList/index.tsx
32192
32582
  init_react_import();
32193
32583
 
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" };
32584
+ // components/ComponentList/styles.module.css
32585
+ var styles_default15 = {
32586
+ ComponentList: "styles_ComponentList",
32587
+ "ComponentList--isExpanded": "styles_ComponentList--isExpanded",
32588
+ "ComponentList-content": "styles_ComponentList-content",
32589
+ "ComponentList-title": "styles_ComponentList-title",
32590
+ "ComponentList-titleIcon": "styles_ComponentList-titleIcon"
32591
+ };
32197
32592
 
32198
32593
  // 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);
32594
+ var import_jsx_runtime26 = require("react/jsx-runtime");
32595
+ var getClassName20 = get_class_name_factory_default("ComponentList", styles_default15);
32201
32596
  var ComponentListItem = ({
32202
32597
  name,
32598
+ label,
32203
32599
  index
32204
32600
  }) => {
32205
32601
  const { overrides } = useAppContext();
32206
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Drawer.Item, { name, index, children: overrides.componentItem });
32602
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer.Item, { label, name, index, children: overrides.componentItem });
32207
32603
  };
32208
32604
  var ComponentList = ({
32209
32605
  children,
@@ -32212,9 +32608,9 @@ var ComponentList = ({
32212
32608
  }) => {
32213
32609
  const { config, state, setUi } = useAppContext();
32214
32610
  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",
32611
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32612
+ title && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
32613
+ "button",
32218
32614
  {
32219
32615
  className: getClassName20("title"),
32220
32616
  onClick: () => setUi({
@@ -32226,15 +32622,17 @@ var ComponentList = ({
32226
32622
  }),
32227
32623
  title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
32228
32624
  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 }) })
32625
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: title }),
32626
+ /* @__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
32627
  ]
32232
32628
  }
32233
32629
  ),
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)(
32630
+ /* @__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) => {
32631
+ var _a;
32632
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32236
32633
  ComponentListItem,
32237
32634
  {
32635
+ label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
32238
32636
  name: componentKey,
32239
32637
  index: i
32240
32638
  },
@@ -32246,10 +32644,10 @@ var ComponentList = ({
32246
32644
  ComponentList.Item = ComponentListItem;
32247
32645
 
32248
32646
  // lib/use-component-list.tsx
32249
- var import_jsx_runtime24 = require("react/jsx-runtime");
32647
+ var import_jsx_runtime27 = require("react/jsx-runtime");
32250
32648
  var useComponentList = (config, ui) => {
32251
- const [componentList, setComponentList] = (0, import_react20.useState)();
32252
- (0, import_react20.useEffect)(() => {
32649
+ const [componentList, setComponentList] = (0, import_react21.useState)();
32650
+ (0, import_react21.useEffect)(() => {
32253
32651
  var _a, _b, _c;
32254
32652
  if (Object.keys(ui.componentList).length > 0) {
32255
32653
  const matchedComponents = [];
@@ -32259,16 +32657,18 @@ var useComponentList = (config, ui) => {
32259
32657
  if (category.visible === false || !category.components) {
32260
32658
  return null;
32261
32659
  }
32262
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32660
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32263
32661
  ComponentList,
32264
32662
  {
32265
32663
  id: categoryKey,
32266
32664
  title: category.title || categoryKey,
32267
32665
  children: category.components.map((componentName, i) => {
32666
+ var _a2;
32268
32667
  matchedComponents.push(componentName);
32269
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32668
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32270
32669
  ComponentList.Item,
32271
32670
  {
32671
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32272
32672
  name: componentName,
32273
32673
  index: i
32274
32674
  },
@@ -32285,16 +32685,18 @@ var useComponentList = (config, ui) => {
32285
32685
  );
32286
32686
  if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
32287
32687
  _componentList.push(
32288
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32688
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32289
32689
  ComponentList,
32290
32690
  {
32291
32691
  id: "other",
32292
32692
  title: ((_c = ui.componentList.other) == null ? void 0 : _c.title) || "Other",
32293
32693
  children: remainingComponents.map((componentName, i) => {
32294
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32694
+ var _a2;
32695
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32295
32696
  ComponentList.Item,
32296
32697
  {
32297
32698
  name: componentName,
32699
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32298
32700
  index: i
32299
32701
  },
32300
32702
  componentName
@@ -32307,27 +32709,37 @@ var useComponentList = (config, ui) => {
32307
32709
  }
32308
32710
  setComponentList(_componentList);
32309
32711
  }
32310
- }, [config.categories, ui.componentList]);
32712
+ }, [config.categories, config.components, ui.componentList]);
32311
32713
  return componentList;
32312
32714
  };
32313
32715
 
32314
32716
  // components/Puck/components/Components/index.tsx
32315
- var import_react21 = require("react");
32316
- var import_jsx_runtime25 = require("react/jsx-runtime");
32717
+ var import_react22 = require("react");
32718
+ var import_jsx_runtime28 = require("react/jsx-runtime");
32317
32719
  var Components = () => {
32318
32720
  const { config, state, overrides } = useAppContext();
32319
32721
  const componentList = useComponentList(config, state.ui);
32320
- 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" }) });
32722
+ const Wrapper = (0, import_react22.useMemo)(() => overrides.components || "div", [overrides]);
32723
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
32322
32724
  };
32323
32725
 
32324
32726
  // components/Puck/components/Preview/index.tsx
32325
32727
  init_react_import();
32326
- var import_react22 = require("react");
32327
- var import_jsx_runtime26 = require("react/jsx-runtime");
32728
+ var import_react23 = require("react");
32729
+ var import_auto_frame_component = __toESM(require("@measured/auto-frame-component"));
32730
+
32731
+ // components/Puck/components/Preview/styles.module.css
32732
+ var styles_default16 = {
32733
+ PuckPreview: "styles_PuckPreview",
32734
+ "PuckPreview-frame": "styles_PuckPreview-frame"
32735
+ };
32736
+
32737
+ // components/Puck/components/Preview/index.tsx
32738
+ var import_jsx_runtime29 = require("react/jsx-runtime");
32739
+ var getClassName21 = get_class_name_factory_default("PuckPreview", styles_default16);
32328
32740
  var Preview = ({ id = "puck-preview" }) => {
32329
- const { config, dispatch, state } = useAppContext();
32330
- const Page = (0, import_react22.useCallback)(
32741
+ const { config, dispatch, state, setStatus, iframe } = useAppContext();
32742
+ const Page = (0, import_react23.useCallback)(
32331
32743
  (pageProps) => {
32332
32744
  var _a, _b;
32333
32745
  return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({}, pageProps), { editMode: true })) : pageProps.children;
@@ -32335,16 +32747,28 @@ var Preview = ({ id = "puck-preview" }) => {
32335
32747
  [config.root]
32336
32748
  );
32337
32749
  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)(
32750
+ const ref = (0, import_react23.useRef)(null);
32751
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32340
32752
  "div",
32341
32753
  {
32754
+ className: getClassName21(),
32342
32755
  id,
32343
32756
  onClick: () => {
32344
32757
  dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
32345
32758
  },
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 }) }))
32759
+ children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32760
+ import_auto_frame_component.default,
32761
+ {
32762
+ id: "preview-frame",
32763
+ className: getClassName21("frame"),
32764
+ "data-rfd-iframe": true,
32765
+ ref,
32766
+ onStylesLoaded: () => {
32767
+ setStatus("READY");
32768
+ },
32769
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) }))
32770
+ }
32771
+ ) : /* @__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
32772
  }
32349
32773
  );
32350
32774
  };
@@ -32376,9 +32800,24 @@ var areaContainsZones = (data, area) => {
32376
32800
  // components/LayerTree/index.tsx
32377
32801
  init_react_import();
32378
32802
 
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" };
32803
+ // components/LayerTree/styles.module.css
32804
+ var styles_default17 = {
32805
+ LayerTree: "styles_LayerTree",
32806
+ "LayerTree-zoneTitle": "styles_LayerTree-zoneTitle",
32807
+ "LayerTree-helper": "styles_LayerTree-helper",
32808
+ Layer: "styles_Layer",
32809
+ "Layer-inner": "styles_Layer-inner",
32810
+ "Layer--containsZone": "styles_Layer--containsZone",
32811
+ "Layer-clickable": "styles_Layer-clickable",
32812
+ "Layer--isSelected": "styles_Layer--isSelected",
32813
+ "Layer-chevron": "styles_Layer-chevron",
32814
+ "Layer--childIsSelected": "styles_Layer--childIsSelected",
32815
+ "Layer-zones": "styles_Layer-zones",
32816
+ "Layer-title": "styles_Layer-title",
32817
+ "Layer-name": "styles_Layer-name",
32818
+ "Layer-icon": "styles_Layer-icon",
32819
+ "Layer-zoneIcon": "styles_Layer-zoneIcon"
32820
+ };
32382
32821
 
32383
32822
  // lib/scroll-into-view.ts
32384
32823
  init_react_import();
@@ -32392,7 +32831,7 @@ var scrollIntoView = (el) => {
32392
32831
  };
32393
32832
 
32394
32833
  // components/LayerTree/index.tsx
32395
- var import_react23 = require("react");
32834
+ var import_react24 = require("react");
32396
32835
 
32397
32836
  // lib/is-child-of-zone.ts
32398
32837
  init_react_import();
@@ -32406,11 +32845,12 @@ var isChildOfZone = (item, maybeChild, ctx) => {
32406
32845
  };
32407
32846
 
32408
32847
  // 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);
32848
+ var import_jsx_runtime30 = require("react/jsx-runtime");
32849
+ var getClassName22 = get_class_name_factory_default("LayerTree", styles_default17);
32850
+ var getClassNameLayer = get_class_name_factory_default("Layer", styles_default17);
32412
32851
  var LayerTree = ({
32413
32852
  data,
32853
+ config,
32414
32854
  zoneContent,
32415
32855
  itemSelector,
32416
32856
  setItemSelector,
@@ -32418,16 +32858,18 @@ var LayerTree = ({
32418
32858
  label
32419
32859
  }) => {
32420
32860
  const zones = data.zones || {};
32421
- 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" }) }),
32861
+ const ctx = (0, import_react24.useContext)(dropZoneContext);
32862
+ const frame = useFrame();
32863
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
32864
+ label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
32865
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
32425
32866
  " ",
32426
32867
  label
32427
32868
  ] }),
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" }),
32869
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName22(), children: [
32870
+ zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
32430
32871
  zoneContent.map((item, i) => {
32872
+ var _a;
32431
32873
  const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
32432
32874
  const zonesForItem = findZonesForArea(data, item.props.id);
32433
32875
  const containsZone = Object.keys(zonesForItem).length > 0;
@@ -32441,7 +32883,7 @@ var LayerTree = ({
32441
32883
  const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
32442
32884
  const isHovering = hoveringComponent === item.props.id;
32443
32885
  const childIsSelected = isChildOfZone(item, selectedItem, ctx);
32444
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32886
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32445
32887
  "li",
32446
32888
  {
32447
32889
  className: getClassNameLayer({
@@ -32451,8 +32893,8 @@ var LayerTree = ({
32451
32893
  childIsSelected
32452
32894
  }),
32453
32895
  children: [
32454
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32455
- "div",
32896
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32897
+ "button",
32456
32898
  {
32457
32899
  className: getClassNameLayer("clickable"),
32458
32900
  onClick: () => {
@@ -32466,7 +32908,7 @@ var LayerTree = ({
32466
32908
  });
32467
32909
  const id = zoneContent[i].props.id;
32468
32910
  scrollIntoView(
32469
- document.querySelector(
32911
+ frame == null ? void 0 : frame.querySelector(
32470
32912
  `[data-rfd-drag-handle-draggable-id="draggable-${id}"]`
32471
32913
  )
32472
32914
  );
@@ -32482,24 +32924,25 @@ var LayerTree = ({
32482
32924
  setHoveringComponent(null);
32483
32925
  },
32484
32926
  children: [
32485
- containsZone && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32927
+ containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32486
32928
  "div",
32487
32929
  {
32488
32930
  className: getClassNameLayer("chevron"),
32489
32931
  title: isSelected ? "Collapse" : "Expand",
32490
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDown, { size: "12" })
32932
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
32491
32933
  }
32492
32934
  ),
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 })
32935
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
32936
+ /* @__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" }) }),
32937
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
32496
32938
  ] })
32497
32939
  ]
32498
32940
  }
32499
32941
  ) }),
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)(
32942
+ 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
32943
  LayerTree,
32502
32944
  {
32945
+ config,
32503
32946
  data,
32504
32947
  zoneContent: zones[zoneKey],
32505
32948
  setItemSelector,
@@ -32518,13 +32961,13 @@ var LayerTree = ({
32518
32961
  };
32519
32962
 
32520
32963
  // components/Puck/components/Outline/index.tsx
32521
- var import_react24 = require("react");
32522
- var import_jsx_runtime28 = require("react/jsx-runtime");
32964
+ var import_react25 = require("react");
32965
+ var import_jsx_runtime31 = require("react/jsx-runtime");
32523
32966
  var Outline = () => {
32524
- const { dispatch, state, overrides } = useAppContext();
32967
+ const { dispatch, state, overrides, config } = useAppContext();
32525
32968
  const { data, ui } = state;
32526
32969
  const { itemSelector } = ui;
32527
- const setItemSelector = (0, import_react24.useCallback)(
32970
+ const setItemSelector = (0, import_react25.useCallback)(
32528
32971
  (newItemSelector) => {
32529
32972
  dispatch({
32530
32973
  type: "setUi",
@@ -32533,11 +32976,12 @@ var Outline = () => {
32533
32976
  },
32534
32977
  []
32535
32978
  );
32536
- 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)(
32979
+ const Wrapper = (0, import_react25.useMemo)(() => overrides.outline || "div", [overrides]);
32980
+ 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: [
32981
+ (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32539
32982
  LayerTree,
32540
32983
  {
32984
+ config,
32541
32985
  data,
32542
32986
  label: areaContainsZones(data, "root") ? rootDroppableId : "",
32543
32987
  zoneContent: data.content,
@@ -32547,9 +32991,10 @@ var Outline = () => {
32547
32991
  ),
32548
32992
  Object.entries(findZonesForArea(data, "root")).map(
32549
32993
  ([zoneKey, zone]) => {
32550
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
32994
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32551
32995
  LayerTree,
32552
32996
  {
32997
+ config,
32553
32998
  data,
32554
32999
  label: zoneKey,
32555
33000
  zone: zoneKey,
@@ -32631,12 +33076,12 @@ function usePuckHistory({
32631
33076
 
32632
33077
  // lib/use-history-store.ts
32633
33078
  init_react_import();
32634
- var import_react25 = require("react");
33079
+ var import_react26 = require("react");
32635
33080
  var import_use_debounce3 = require("use-debounce");
32636
33081
  var EMPTY_HISTORY_INDEX = -1;
32637
33082
  function useHistoryStore() {
32638
- const [histories, setHistories] = (0, import_react25.useState)([]);
32639
- const [index, setIndex] = (0, import_react25.useState)(EMPTY_HISTORY_INDEX);
33083
+ const [histories, setHistories] = (0, import_react26.useState)([]);
33084
+ const [index, setIndex] = (0, import_react26.useState)(EMPTY_HISTORY_INDEX);
32640
33085
  const hasPast = index > EMPTY_HISTORY_INDEX;
32641
33086
  const hasFuture = index < histories.length - 1;
32642
33087
  const currentHistory = histories[index];
@@ -32673,14 +33118,441 @@ function useHistoryStore() {
32673
33118
  };
32674
33119
  }
32675
33120
 
33121
+ // components/Puck/components/Canvas/index.tsx
33122
+ init_react_import();
33123
+
33124
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33125
+ init_react_import();
33126
+
33127
+ // ../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js
33128
+ init_react_import();
33129
+ var isProduction = process.env.NODE_ENV === "production";
33130
+ var prefix = "Invariant failed";
33131
+ function invariant(condition, message) {
33132
+ if (condition) {
33133
+ return;
33134
+ }
33135
+ if (isProduction) {
33136
+ throw new Error(prefix);
33137
+ }
33138
+ var provided = typeof message === "function" ? message() : message;
33139
+ var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
33140
+ throw new Error(value);
33141
+ }
33142
+
33143
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33144
+ var getRect = function getRect2(_ref) {
33145
+ var top = _ref.top, right = _ref.right, bottom = _ref.bottom, left = _ref.left;
33146
+ var width = right - left;
33147
+ var height = bottom - top;
33148
+ var rect = {
33149
+ top,
33150
+ right,
33151
+ bottom,
33152
+ left,
33153
+ width,
33154
+ height,
33155
+ x: left,
33156
+ y: top,
33157
+ center: {
33158
+ x: (right + left) / 2,
33159
+ y: (bottom + top) / 2
33160
+ }
33161
+ };
33162
+ return rect;
33163
+ };
33164
+ var expand = function expand2(target, expandBy) {
33165
+ return {
33166
+ top: target.top - expandBy.top,
33167
+ left: target.left - expandBy.left,
33168
+ bottom: target.bottom + expandBy.bottom,
33169
+ right: target.right + expandBy.right
33170
+ };
33171
+ };
33172
+ var shrink = function shrink2(target, shrinkBy) {
33173
+ return {
33174
+ top: target.top + shrinkBy.top,
33175
+ left: target.left + shrinkBy.left,
33176
+ bottom: target.bottom - shrinkBy.bottom,
33177
+ right: target.right - shrinkBy.right
33178
+ };
33179
+ };
33180
+ var noSpacing = {
33181
+ top: 0,
33182
+ right: 0,
33183
+ bottom: 0,
33184
+ left: 0
33185
+ };
33186
+ var createBox = function createBox2(_ref2) {
33187
+ 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;
33188
+ var marginBox = getRect(expand(borderBox, margin));
33189
+ var paddingBox = getRect(shrink(borderBox, border));
33190
+ var contentBox = getRect(shrink(paddingBox, padding));
33191
+ return {
33192
+ marginBox,
33193
+ borderBox: getRect(borderBox),
33194
+ paddingBox,
33195
+ contentBox,
33196
+ margin,
33197
+ border,
33198
+ padding
33199
+ };
33200
+ };
33201
+ var parse = function parse2(raw) {
33202
+ var value = raw.slice(0, -2);
33203
+ var suffix = raw.slice(-2);
33204
+ if (suffix !== "px") {
33205
+ return 0;
33206
+ }
33207
+ var result = Number(value);
33208
+ !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0;
33209
+ return result;
33210
+ };
33211
+ var calculateBox = function calculateBox2(borderBox, styles) {
33212
+ var margin = {
33213
+ top: parse(styles.marginTop),
33214
+ right: parse(styles.marginRight),
33215
+ bottom: parse(styles.marginBottom),
33216
+ left: parse(styles.marginLeft)
33217
+ };
33218
+ var padding = {
33219
+ top: parse(styles.paddingTop),
33220
+ right: parse(styles.paddingRight),
33221
+ bottom: parse(styles.paddingBottom),
33222
+ left: parse(styles.paddingLeft)
33223
+ };
33224
+ var border = {
33225
+ top: parse(styles.borderTopWidth),
33226
+ right: parse(styles.borderRightWidth),
33227
+ bottom: parse(styles.borderBottomWidth),
33228
+ left: parse(styles.borderLeftWidth)
33229
+ };
33230
+ return createBox({
33231
+ borderBox,
33232
+ margin,
33233
+ padding,
33234
+ border
33235
+ });
33236
+ };
33237
+ var getBox = function getBox2(el) {
33238
+ var borderBox = el.getBoundingClientRect();
33239
+ var styles = window.getComputedStyle(el);
33240
+ return calculateBox(borderBox, styles);
33241
+ };
33242
+
33243
+ // components/Puck/components/Canvas/index.tsx
33244
+ var import_react28 = require("react");
33245
+
33246
+ // components/ViewportControls/index.tsx
33247
+ init_react_import();
33248
+ var import_react27 = require("react");
33249
+
33250
+ // components/ViewportControls/styles.module.css
33251
+ var styles_default18 = {
33252
+ ViewportControls: "styles_ViewportControls",
33253
+ "ViewportControls-divider": "styles_ViewportControls-divider",
33254
+ "ViewportControls-zoomSelect": "styles_ViewportControls-zoomSelect",
33255
+ "ViewportButton--isActive": "styles_ViewportButton--isActive",
33256
+ "ViewportButton-inner": "styles_ViewportButton-inner"
33257
+ };
33258
+
33259
+ // components/ViewportControls/index.tsx
33260
+ var import_jsx_runtime32 = require("react/jsx-runtime");
33261
+ var icons = {
33262
+ Smartphone: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Smartphone, { size: 16 }),
33263
+ Tablet: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tablet, { size: 16 }),
33264
+ Monitor: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Monitor, { size: 16 })
33265
+ };
33266
+ var getClassName23 = get_class_name_factory_default("ViewportControls", styles_default18);
33267
+ var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_default18);
33268
+ var ViewportButton = ({
33269
+ children,
33270
+ height = "auto",
33271
+ title,
33272
+ width,
33273
+ onClick
33274
+ }) => {
33275
+ const { state } = useAppContext();
33276
+ const [isActive, setIsActive] = (0, import_react27.useState)(false);
33277
+ (0, import_react27.useEffect)(() => {
33278
+ setIsActive(width === state.ui.viewports.current.width);
33279
+ }, [width, state.ui.viewports.current.width]);
33280
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33281
+ IconButton,
33282
+ {
33283
+ title,
33284
+ disabled: isActive,
33285
+ onClick: (e) => {
33286
+ e.stopPropagation();
33287
+ onClick({ width, height });
33288
+ },
33289
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton("inner"), children })
33290
+ }
33291
+ ) });
33292
+ };
33293
+ var defaultZoomOptions = [
33294
+ { label: "25%", value: 0.25 },
33295
+ { label: "50%", value: 0.5 },
33296
+ { label: "75%", value: 0.75 },
33297
+ { label: "100%", value: 1 },
33298
+ { label: "125%", value: 1.25 },
33299
+ { label: "150%", value: 1.5 },
33300
+ { label: "200%", value: 2 }
33301
+ ];
33302
+ var ViewportControls = ({
33303
+ autoZoom,
33304
+ zoom,
33305
+ onViewportChange,
33306
+ onZoom
33307
+ }) => {
33308
+ const { viewports } = useAppContext();
33309
+ const defaultsContainAutoZoom = defaultZoomOptions.find(
33310
+ (option) => option.value === autoZoom
33311
+ );
33312
+ const zoomOptions = (0, import_react27.useMemo)(
33313
+ () => [
33314
+ ...defaultZoomOptions,
33315
+ ...defaultsContainAutoZoom ? [] : [
33316
+ {
33317
+ value: autoZoom,
33318
+ label: `${(autoZoom * 100).toFixed(0)}% (Auto)`
33319
+ }
33320
+ ]
33321
+ ].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
33322
+ [autoZoom]
33323
+ );
33324
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: getClassName23(), children: [
33325
+ viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33326
+ ViewportButton,
33327
+ {
33328
+ height: viewport.height,
33329
+ width: viewport.width,
33330
+ title: viewport.label ? `Switch to ${viewport.label} viewport` : "Switch viewport",
33331
+ onClick: onViewportChange,
33332
+ children: typeof viewport.icon === "string" ? icons[viewport.icon] || viewport.icon : viewport.icon || icons.Smartphone
33333
+ },
33334
+ i
33335
+ )),
33336
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33337
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33338
+ IconButton,
33339
+ {
33340
+ title: "Zoom viewport out",
33341
+ disabled: zoom <= zoomOptions[0].value,
33342
+ onClick: (e) => {
33343
+ e.stopPropagation();
33344
+ onZoom(
33345
+ zoomOptions[Math.max(
33346
+ zoomOptions.findIndex((option) => option.value === zoom) - 1,
33347
+ 0
33348
+ )].value
33349
+ );
33350
+ },
33351
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomOut, { size: 16 })
33352
+ }
33353
+ ),
33354
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33355
+ IconButton,
33356
+ {
33357
+ title: "Zoom viewport in",
33358
+ disabled: zoom >= zoomOptions[zoomOptions.length - 1].value,
33359
+ onClick: (e) => {
33360
+ e.stopPropagation();
33361
+ onZoom(
33362
+ zoomOptions[Math.min(
33363
+ zoomOptions.findIndex((option) => option.value === zoom) + 1,
33364
+ zoomOptions.length - 1
33365
+ )].value
33366
+ );
33367
+ },
33368
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomIn, { size: 16 })
33369
+ }
33370
+ ),
33371
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33372
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33373
+ "select",
33374
+ {
33375
+ className: getClassName23("zoomSelect"),
33376
+ value: zoom.toString(),
33377
+ onChange: (e) => {
33378
+ onZoom(parseFloat(e.currentTarget.value));
33379
+ },
33380
+ children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33381
+ "option",
33382
+ {
33383
+ value: option.value,
33384
+ label: option.label
33385
+ },
33386
+ option.label
33387
+ ))
33388
+ }
33389
+ )
33390
+ ] });
33391
+ };
33392
+
33393
+ // components/Puck/components/Canvas/styles.module.css
33394
+ var styles_default19 = {
33395
+ PuckCanvas: "styles_PuckCanvas",
33396
+ "PuckCanvas-controls": "styles_PuckCanvas-controls",
33397
+ "PuckCanvas-inner": "styles_PuckCanvas-inner",
33398
+ "PuckCanvas-root": "styles_PuckCanvas-root",
33399
+ "PuckCanvas--ready": "styles_PuckCanvas--ready"
33400
+ };
33401
+
33402
+ // lib/get-zoom-config.ts
33403
+ init_react_import();
33404
+ var RESET_ZOOM_SMALLER_THAN_FRAME = true;
33405
+ var getZoomConfig = (uiViewport, frame, zoom) => {
33406
+ const box = getBox(frame);
33407
+ const { width: frameWidth, height: frameHeight } = box.contentBox;
33408
+ const viewportHeight = uiViewport.height === "auto" ? frameHeight : uiViewport.height;
33409
+ let rootHeight = 0;
33410
+ let autoZoom = 1;
33411
+ if (uiViewport.width > frameWidth || viewportHeight > frameHeight) {
33412
+ const widthZoom = Math.min(frameWidth / uiViewport.width, 1);
33413
+ const heightZoom = Math.min(frameHeight / viewportHeight, 1);
33414
+ zoom = widthZoom;
33415
+ if (widthZoom < heightZoom) {
33416
+ rootHeight = viewportHeight / zoom;
33417
+ } else {
33418
+ rootHeight = viewportHeight;
33419
+ zoom = heightZoom;
33420
+ }
33421
+ autoZoom = zoom;
33422
+ } else {
33423
+ if (RESET_ZOOM_SMALLER_THAN_FRAME) {
33424
+ autoZoom = 1;
33425
+ zoom = 1;
33426
+ rootHeight = viewportHeight;
33427
+ }
33428
+ }
33429
+ return { autoZoom, rootHeight, zoom };
33430
+ };
33431
+
33432
+ // components/Puck/components/Canvas/index.tsx
33433
+ var import_jsx_runtime33 = require("react/jsx-runtime");
33434
+ var getClassName24 = get_class_name_factory_default("PuckCanvas", styles_default19);
33435
+ var ZOOM_ON_CHANGE = true;
33436
+ var Canvas = () => {
33437
+ const { status, iframe } = useAppContext();
33438
+ const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
33439
+ const { ui } = state;
33440
+ const frameRef = (0, import_react28.useRef)(null);
33441
+ const [showTransition, setShowTransition] = (0, import_react28.useState)(false);
33442
+ const defaultRender = (0, import_react28.useMemo)(() => {
33443
+ const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
33444
+ return PuckDefault;
33445
+ }, []);
33446
+ const CustomPreview = (0, import_react28.useMemo)(
33447
+ () => overrides.preview || defaultRender,
33448
+ [overrides]
33449
+ );
33450
+ const getFrameDimensions = (0, import_react28.useCallback)(() => {
33451
+ if (frameRef.current) {
33452
+ const frame = frameRef.current;
33453
+ const box = getBox(frame);
33454
+ return { width: box.contentBox.width, height: box.contentBox.height };
33455
+ }
33456
+ return { width: 0, height: 0 };
33457
+ }, [frameRef]);
33458
+ const resetAutoZoom = (0, import_react28.useCallback)(
33459
+ (ui2 = state.ui) => {
33460
+ if (frameRef.current) {
33461
+ setZoomConfig(
33462
+ getZoomConfig(ui2.viewports.current, frameRef.current, zoomConfig.zoom)
33463
+ );
33464
+ }
33465
+ },
33466
+ [frameRef, zoomConfig, state.ui]
33467
+ );
33468
+ (0, import_react28.useEffect)(() => {
33469
+ setShowTransition(false);
33470
+ resetAutoZoom();
33471
+ }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
33472
+ (0, import_react28.useEffect)(() => {
33473
+ const { height: frameHeight } = getFrameDimensions();
33474
+ if (ui.viewports.current.height === "auto") {
33475
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
33476
+ rootHeight: frameHeight / zoomConfig.zoom
33477
+ }));
33478
+ }
33479
+ }, [zoomConfig.zoom]);
33480
+ (0, import_react28.useEffect)(() => {
33481
+ const observer = new ResizeObserver(() => {
33482
+ setShowTransition(false);
33483
+ resetAutoZoom();
33484
+ });
33485
+ if (document.body) {
33486
+ observer.observe(document.body);
33487
+ }
33488
+ return () => {
33489
+ observer.disconnect();
33490
+ };
33491
+ }, []);
33492
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
33493
+ "div",
33494
+ {
33495
+ className: getClassName24({
33496
+ ready: status === "READY" || !iframe.enabled
33497
+ }),
33498
+ onClick: () => dispatch({
33499
+ type: "setUi",
33500
+ ui: { itemSelector: null },
33501
+ recordHistory: true
33502
+ }),
33503
+ children: [
33504
+ ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33505
+ ViewportControls,
33506
+ {
33507
+ autoZoom: zoomConfig.autoZoom,
33508
+ zoom: zoomConfig.zoom,
33509
+ onViewportChange: (viewport) => {
33510
+ setShowTransition(true);
33511
+ const uiViewport = __spreadProps(__spreadValues({}, viewport), {
33512
+ height: viewport.height || "auto",
33513
+ zoom: zoomConfig.zoom
33514
+ });
33515
+ const newUi = __spreadProps(__spreadValues({}, ui), {
33516
+ viewports: __spreadProps(__spreadValues({}, ui.viewports), { current: uiViewport })
33517
+ });
33518
+ setUi(newUi);
33519
+ if (ZOOM_ON_CHANGE) {
33520
+ resetAutoZoom(newUi);
33521
+ }
33522
+ },
33523
+ onZoom: (zoom) => {
33524
+ setShowTransition(true);
33525
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), { zoom }));
33526
+ }
33527
+ }
33528
+ ) }),
33529
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33530
+ "div",
33531
+ {
33532
+ className: getClassName24("root"),
33533
+ style: {
33534
+ width: iframe.enabled ? ui.viewports.current.width : void 0,
33535
+ height: zoomConfig.rootHeight,
33536
+ transform: iframe.enabled ? `scale(${zoomConfig.zoom})` : void 0,
33537
+ transition: showTransition ? "width 150ms ease-out, height 150ms ease-out, transform 150ms ease-out" : "",
33538
+ overflow: iframe.enabled ? void 0 : "auto"
33539
+ },
33540
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
33541
+ }
33542
+ ) })
33543
+ ]
33544
+ }
33545
+ );
33546
+ };
33547
+
32676
33548
  // 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);
33549
+ var import_jsx_runtime34 = require("react/jsx-runtime");
33550
+ var getClassName25 = get_class_name_factory_default("Puck", styles_default8);
32679
33551
  function Puck({
32680
33552
  children,
32681
33553
  config,
32682
33554
  data: initialData = { content: [], root: { props: { title: "" } } },
32683
- ui: initialUi = defaultAppState.ui,
33555
+ ui: initialUi,
32684
33556
  onChange,
32685
33557
  onPublish,
32686
33558
  plugins = [],
@@ -32688,32 +33560,63 @@ function Puck({
32688
33560
  renderHeader,
32689
33561
  renderHeaderActions,
32690
33562
  headerTitle,
32691
- headerPath
33563
+ headerPath,
33564
+ viewports = defaultViewports,
33565
+ iframe = {
33566
+ enabled: true
33567
+ }
32692
33568
  }) {
33569
+ var _a;
32693
33570
  const historyStore = useHistoryStore();
32694
- const [reducer] = (0, import_react26.useState)(
33571
+ const [reducer] = (0, import_react29.useState)(
32695
33572
  () => createReducer({ config, record: historyStore.record })
32696
33573
  );
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)(
33574
+ const [initialAppState] = (0, import_react29.useState)(() => {
33575
+ var _a2, _b, _c, _d;
33576
+ const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
33577
+ let clientUiState = {};
33578
+ if (typeof window !== "undefined") {
33579
+ const viewportWidth = window.innerWidth;
33580
+ const viewportDifferences = Object.entries(viewports).map(([key, value]) => ({
33581
+ key,
33582
+ diff: Math.abs(viewportWidth - value.width)
33583
+ })).sort((a, b) => a.diff > b.diff ? 1 : -1);
33584
+ const closestViewport = viewportDifferences[0].key;
33585
+ if (iframe.enabled) {
33586
+ clientUiState = __spreadProps(__spreadValues({}, window.matchMedia("(min-width: 638px)").matches ? {} : {
33587
+ leftSideBarVisible: false,
33588
+ rightSideBarVisible: false
33589
+ }), {
33590
+ viewports: __spreadProps(__spreadValues({}, initial.viewports), {
33591
+ current: __spreadProps(__spreadValues({}, initial.viewports.current), {
33592
+ height: ((_b = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b.height) || viewports[closestViewport].height || "auto",
33593
+ width: ((_d = (_c = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _c.current) == null ? void 0 : _d.width) || viewports[closestViewport].width
33594
+ })
33595
+ })
33596
+ });
33597
+ }
33598
+ }
33599
+ return __spreadProps(__spreadValues({}, defaultAppState), {
33600
+ data: initialData,
33601
+ ui: __spreadProps(__spreadValues(__spreadValues({}, initial), clientUiState), {
33602
+ // Store categories under componentList on state to allow render functions and plugins to modify
33603
+ componentList: config.categories ? Object.entries(config.categories).reduce(
33604
+ (acc, [categoryName, category]) => {
33605
+ return __spreadProps(__spreadValues({}, acc), {
33606
+ [categoryName]: {
33607
+ title: category.title,
33608
+ components: category.components,
33609
+ expanded: category.defaultExpanded,
33610
+ visible: category.visible
33611
+ }
33612
+ });
33613
+ },
33614
+ {}
33615
+ ) : {}
33616
+ })
33617
+ });
33618
+ });
33619
+ const [appState, dispatch] = (0, import_react29.useReducer)(
32717
33620
  reducer,
32718
33621
  flushZones(initialAppState)
32719
33622
  );
@@ -32724,9 +33627,9 @@ function Puck({
32724
33627
  config,
32725
33628
  dispatch
32726
33629
  );
32727
- const [menuOpen, setMenuOpen] = (0, import_react26.useState)(false);
33630
+ const [menuOpen, setMenuOpen] = (0, import_react29.useState)(false);
32728
33631
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
32729
- const setItemSelector = (0, import_react26.useCallback)(
33632
+ const setItemSelector = (0, import_react29.useCallback)(
32730
33633
  (newItemSelector) => {
32731
33634
  if (newItemSelector === itemSelector)
32732
33635
  return;
@@ -32739,21 +33642,21 @@ function Puck({
32739
33642
  [itemSelector]
32740
33643
  );
32741
33644
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
32742
- (0, import_react26.useEffect)(() => {
33645
+ (0, import_react29.useEffect)(() => {
32743
33646
  if (onChange)
32744
33647
  onChange(data);
32745
33648
  }, [data]);
32746
33649
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
32747
- const [draggedItem, setDraggedItem] = (0, import_react26.useState)();
33650
+ const [draggedItem, setDraggedItem] = (0, import_react29.useState)();
32748
33651
  const rootProps = data.root.props || data.root;
32749
- (0, import_react26.useEffect)(() => {
33652
+ (0, import_react29.useEffect)(() => {
32750
33653
  if (Object.keys(data.root).length > 0 && !data.root.props) {
32751
33654
  console.error(
32752
33655
  "Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
32753
33656
  );
32754
33657
  }
32755
33658
  }, []);
32756
- const toggleSidebars = (0, import_react26.useCallback)(
33659
+ const toggleSidebars = (0, import_react29.useCallback)(
32757
33660
  (sidebar) => {
32758
33661
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
32759
33662
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -32767,7 +33670,7 @@ function Puck({
32767
33670
  },
32768
33671
  [dispatch, leftSideBarVisible, rightSideBarVisible]
32769
33672
  );
32770
- (0, import_react26.useEffect)(() => {
33673
+ (0, import_react29.useEffect)(() => {
32771
33674
  if (!window.matchMedia("(min-width: 638px)").matches) {
32772
33675
  dispatch({
32773
33676
  type: "setUi",
@@ -32790,59 +33693,54 @@ function Puck({
32790
33693
  window.removeEventListener("resize", handleResize);
32791
33694
  };
32792
33695
  }, []);
32793
- const defaultRender = (0, import_react26.useMemo)(() => {
32794
- const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: children2 });
33696
+ const defaultRender = (0, import_react29.useMemo)(() => {
33697
+ const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
32795
33698
  return PuckDefault;
32796
33699
  }, []);
32797
- const defaultHeaderRender = (0, import_react26.useMemo)(() => {
33700
+ const defaultHeaderRender = (0, import_react29.useMemo)(() => {
32798
33701
  if (renderHeader) {
32799
33702
  console.warn(
32800
33703
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
32801
33704
  );
32802
- const RenderHeader = (_a) => {
32803
- var _b = _a, { actions } = _b, props = __objRest(_b, ["actions"]);
33705
+ const RenderHeader = (_a2) => {
33706
+ var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
32804
33707
  const Comp = renderHeader;
32805
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
33708
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
32806
33709
  };
32807
33710
  return RenderHeader;
32808
33711
  }
32809
33712
  return defaultRender;
32810
33713
  }, [renderHeader]);
32811
- const defaultHeaderActionsRender = (0, import_react26.useMemo)(() => {
33714
+ const defaultHeaderActionsRender = (0, import_react29.useMemo)(() => {
32812
33715
  if (renderHeaderActions) {
32813
33716
  console.warn(
32814
33717
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
32815
33718
  );
32816
33719
  const RenderHeader = (props) => {
32817
33720
  const Comp = renderHeaderActions;
32818
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
33721
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
32819
33722
  };
32820
33723
  return RenderHeader;
32821
33724
  }
32822
33725
  return defaultRender;
32823
33726
  }, [renderHeader]);
32824
- const loadedOverrides = (0, import_react26.useMemo)(() => {
33727
+ const loadedOverrides = (0, import_react29.useMemo)(() => {
32825
33728
  return loadOverrides({ overrides, plugins });
32826
33729
  }, [plugins]);
32827
- const CustomPuck = (0, import_react26.useMemo)(
33730
+ const CustomPuck = (0, import_react29.useMemo)(
32828
33731
  () => loadedOverrides.puck || defaultRender,
32829
33732
  [loadedOverrides]
32830
33733
  );
32831
- const CustomPreview = (0, import_react26.useMemo)(
32832
- () => loadedOverrides.preview || defaultRender,
32833
- [loadedOverrides]
32834
- );
32835
- const CustomHeader = (0, import_react26.useMemo)(
33734
+ const CustomHeader = (0, import_react29.useMemo)(
32836
33735
  () => loadedOverrides.header || defaultHeaderRender,
32837
33736
  [loadedOverrides]
32838
33737
  );
32839
- const CustomHeaderActions = (0, import_react26.useMemo)(
33738
+ const CustomHeaderActions = (0, import_react29.useMemo)(
32840
33739
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
32841
33740
  [loadedOverrides]
32842
33741
  );
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)(
33742
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "Puck", children: [
33743
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32846
33744
  AppProvider,
32847
33745
  {
32848
33746
  value: {
@@ -32853,10 +33751,12 @@ function Puck({
32853
33751
  resolveData,
32854
33752
  plugins,
32855
33753
  overrides: loadedOverrides,
32856
- history
33754
+ history,
33755
+ viewports,
33756
+ iframe
32857
33757
  },
32858
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32859
- import_dnd7.DragDropContext,
33758
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33759
+ DragDropContext,
32860
33760
  {
32861
33761
  onDragUpdate: (update) => {
32862
33762
  setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
@@ -32910,7 +33810,7 @@ function Puck({
32910
33810
  });
32911
33811
  }
32912
33812
  },
32913
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33813
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32914
33814
  DropZoneProvider,
32915
33815
  {
32916
33816
  value: {
@@ -32922,77 +33822,75 @@ function Puck({
32922
33822
  draggedItem,
32923
33823
  placeholderStyle,
32924
33824
  mode: "edit",
32925
- areaId: "root",
32926
- disableZoom
33825
+ areaId: "root"
32927
33826
  },
32928
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
33827
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
32929
33828
  "div",
32930
33829
  {
32931
- className: getClassName22({
33830
+ className: getClassName25({
32932
33831
  leftSideBarVisible,
32933
33832
  menuOpen,
32934
- rightSideBarVisible,
32935
- disableZoom
33833
+ rightSideBarVisible
32936
33834
  }),
32937
33835
  children: [
32938
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33836
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32939
33837
  CustomHeader,
32940
33838
  {
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)(
33839
+ actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
33840
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33841
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32944
33842
  Button,
32945
33843
  {
32946
33844
  onClick: () => {
32947
33845
  onPublish && onPublish(data);
32948
33846
  },
32949
- icon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Globe, { size: "14px" }),
33847
+ icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
32950
33848
  children: "Publish"
32951
33849
  }
32952
33850
  )
32953
33851
  ] }),
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)(
33852
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
33853
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
33854
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32957
33855
  IconButton,
32958
33856
  {
32959
33857
  onClick: () => {
32960
33858
  toggleSidebars("left");
32961
33859
  },
32962
33860
  title: "Toggle left sidebar",
32963
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelLeft, { focusable: "false" })
33861
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
32964
33862
  }
32965
33863
  ) }),
32966
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33864
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32967
33865
  IconButton,
32968
33866
  {
32969
33867
  onClick: () => {
32970
33868
  toggleSidebars("right");
32971
33869
  },
32972
33870
  title: "Toggle right sidebar",
32973
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelRight, { focusable: "false" })
33871
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
32974
33872
  }
32975
33873
  ) })
32976
33874
  ] }),
32977
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Heading, { rank: 2, size: "xs", children: [
33875
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading, { rank: 2, size: "xs", children: [
32978
33876
  headerTitle || rootProps.title || "Page",
32979
- headerPath && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
33877
+ headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
32980
33878
  " ",
32981
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("code", { className: getClassName22("headerPath"), children: headerPath })
33879
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
32982
33880
  ] })
32983
33881
  ] }) }),
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)(
33882
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
33883
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32986
33884
  IconButton,
32987
33885
  {
32988
33886
  onClick: () => {
32989
33887
  return setMenuOpen(!menuOpen);
32990
33888
  },
32991
33889
  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" })
33890
+ children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
32993
33891
  }
32994
33892
  ) }),
32995
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33893
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32996
33894
  MenuBar,
32997
33895
  {
32998
33896
  appState,
@@ -33000,7 +33898,7 @@ function Puck({
33000
33898
  dispatch,
33001
33899
  onPublish,
33002
33900
  menuOpen,
33003
- renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
33901
+ renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33004
33902
  setMenuOpen
33005
33903
  }
33006
33904
  )
@@ -33008,38 +33906,19 @@ function Puck({
33008
33906
  ] }) })
33009
33907
  }
33010
33908
  ),
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, {}) })
33909
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
33910
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
33911
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
33014
33912
  ] }),
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)(
33913
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
33914
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33036
33915
  SidebarSection,
33037
33916
  {
33038
33917
  noPadding: true,
33039
33918
  noBorderTop: true,
33040
33919
  showBreadcrumbs: true,
33041
- title: selectedItem ? selectedItem.type : "Page",
33042
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fields, {})
33920
+ title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
33921
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
33043
33922
  }
33044
33923
  ) })
33045
33924
  ]
@@ -33051,7 +33930,7 @@ function Puck({
33051
33930
  )
33052
33931
  }
33053
33932
  ),
33054
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "puck-portal-root" })
33933
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { id: "puck-portal-root" })
33055
33934
  ] });
33056
33935
  }
33057
33936
  Puck.Components = Components;
@@ -33061,13 +33940,13 @@ Puck.Preview = Preview;
33061
33940
 
33062
33941
  // components/Render/index.tsx
33063
33942
  init_react_import();
33064
- var import_jsx_runtime30 = require("react/jsx-runtime");
33943
+ var import_jsx_runtime35 = require("react/jsx-runtime");
33065
33944
  function Render({ config, data }) {
33066
33945
  var _a;
33067
33946
  const rootProps = data.root.props || data.root;
33068
33947
  const title = (rootProps == null ? void 0 : rootProps.title) || "";
33069
33948
  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)(
33949
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
33071
33950
  config.root.render,
33072
33951
  __spreadProps(__spreadValues({}, rootProps), {
33073
33952
  puck: {
@@ -33076,11 +33955,11 @@ function Render({ config, data }) {
33076
33955
  title,
33077
33956
  editMode: false,
33078
33957
  id: "puck-root",
33079
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId })
33958
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId })
33080
33959
  })
33081
33960
  ) });
33082
33961
  }
33083
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) });
33962
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId }) });
33084
33963
  }
33085
33964
 
33086
33965
  // lib/migrate.ts
@@ -33170,8 +34049,8 @@ var resolveAllData = (data, config, onResolveStart, onResolveEnd) => __async(voi
33170
34049
  // lib/use-puck.ts
33171
34050
  init_react_import();
33172
34051
  var usePuck = () => {
33173
- const { state: appState, config, dispatch } = useAppContext();
33174
- return { appState, config, dispatch };
34052
+ const { state: appState, config, history, dispatch } = useAppContext();
34053
+ return { appState, config, dispatch, history };
33175
34054
  };
33176
34055
  // Annotate the CommonJS export names for ESM import in node:
33177
34056
  0 && (module.exports = {
@@ -33375,6 +34254,14 @@ lucide-react/dist/esm/icons/lock.js:
33375
34254
  * See the LICENSE file in the root directory of this source tree.
33376
34255
  *)
33377
34256
 
34257
+ lucide-react/dist/esm/icons/monitor.js:
34258
+ (**
34259
+ * @license lucide-react v0.298.0 - ISC
34260
+ *
34261
+ * This source code is licensed under the ISC license.
34262
+ * See the LICENSE file in the root directory of this source tree.
34263
+ *)
34264
+
33378
34265
  lucide-react/dist/esm/icons/more-vertical.js:
33379
34266
  (**
33380
34267
  * @license lucide-react v0.298.0 - ISC
@@ -33415,6 +34302,30 @@ lucide-react/dist/esm/icons/search.js:
33415
34302
  * See the LICENSE file in the root directory of this source tree.
33416
34303
  *)
33417
34304
 
34305
+ lucide-react/dist/esm/icons/sliders-horizontal.js:
34306
+ (**
34307
+ * @license lucide-react v0.298.0 - ISC
34308
+ *
34309
+ * This source code is licensed under the ISC license.
34310
+ * See the LICENSE file in the root directory of this source tree.
34311
+ *)
34312
+
34313
+ lucide-react/dist/esm/icons/smartphone.js:
34314
+ (**
34315
+ * @license lucide-react v0.298.0 - ISC
34316
+ *
34317
+ * This source code is licensed under the ISC license.
34318
+ * See the LICENSE file in the root directory of this source tree.
34319
+ *)
34320
+
34321
+ lucide-react/dist/esm/icons/tablet.js:
34322
+ (**
34323
+ * @license lucide-react v0.298.0 - ISC
34324
+ *
34325
+ * This source code is licensed under the ISC license.
34326
+ * See the LICENSE file in the root directory of this source tree.
34327
+ *)
34328
+
33418
34329
  lucide-react/dist/esm/icons/trash.js:
33419
34330
  (**
33420
34331
  * @license lucide-react v0.298.0 - ISC
@@ -33439,6 +34350,22 @@ lucide-react/dist/esm/icons/unlock.js:
33439
34350
  * See the LICENSE file in the root directory of this source tree.
33440
34351
  *)
33441
34352
 
34353
+ lucide-react/dist/esm/icons/zoom-in.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/zoom-out.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
+
33442
34369
  lucide-react/dist/esm/lucide-react.js:
33443
34370
  (**
33444
34371
  * @license lucide-react v0.298.0 - ISC