@measured/puck 0.14.0-canary.55740c4 → 0.14.0-canary.68f97ae

Sign up to get free protection for your applications and to get access to all the features.
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,11 @@ 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
+ disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
31335
31643
  onClick: (e) => {
31336
31644
  e.stopPropagation();
31337
31645
  const existingValue = [
@@ -31350,20 +31658,20 @@ var ArrayField = ({
31350
31658
  );
31351
31659
  },
31352
31660
  title: "Delete",
31353
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Trash, { size: 16 })
31661
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Trash, { size: 16 })
31354
31662
  }
31355
31663
  ) }) }),
31356
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DragIcon, {}) })
31664
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DragIcon, {}) })
31357
31665
  ] })
31358
31666
  ]
31359
31667
  }
31360
31668
  ),
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(
31669
+ /* @__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
31670
  (fieldName) => {
31363
31671
  const subField = field.arrayFields[fieldName];
31364
31672
  const subFieldName = `${name}[${i}].${fieldName}`;
31365
31673
  const wildcardFieldName = `${name}[*].${fieldName}`;
31366
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31674
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31367
31675
  InputOrGroup,
31368
31676
  {
31369
31677
  name: subFieldName,
@@ -31392,10 +31700,11 @@ var ArrayField = ({
31392
31700
  );
31393
31701
  }),
31394
31702
  provided.placeholder,
31395
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31703
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31396
31704
  "button",
31397
31705
  {
31398
31706
  className: getClassName10("addButton"),
31707
+ disabled: field.max !== void 0 && localState.arrayState.items.length >= field.max,
31399
31708
  onClick: () => {
31400
31709
  const existingValue = value || [];
31401
31710
  const newValue = [
@@ -31405,7 +31714,7 @@ var ArrayField = ({
31405
31714
  const newArrayState = regenerateArrayState(newValue);
31406
31715
  onChange(newValue, mapArrayStateToUi(newArrayState));
31407
31716
  },
31408
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Plus, { size: "21" })
31717
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Plus, { size: 21 })
31409
31718
  }
31410
31719
  )
31411
31720
  ]
@@ -31420,8 +31729,8 @@ var ArrayField = ({
31420
31729
 
31421
31730
  // components/InputOrGroup/fields/DefaultField/index.tsx
31422
31731
  init_react_import();
31423
- var import_jsx_runtime13 = require("react/jsx-runtime");
31424
- var getClassName11 = get_class_name_factory_default("Input", styles_module_default9);
31732
+ var import_jsx_runtime16 = require("react/jsx-runtime");
31733
+ var getClassName11 = get_class_name_factory_default("Input", styles_default9);
31425
31734
  var DefaultField = ({
31426
31735
  field,
31427
31736
  onChange,
@@ -31431,16 +31740,16 @@ var DefaultField = ({
31431
31740
  label,
31432
31741
  id
31433
31742
  }) => {
31434
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31743
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31435
31744
  FieldLabelInternal,
31436
31745
  {
31437
31746
  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 })
31747
+ icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
31748
+ field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Type, { size: 16 }),
31749
+ field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Hash, { size: 16 })
31441
31750
  ] }),
31442
31751
  readOnly,
31443
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31752
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31444
31753
  "input",
31445
31754
  {
31446
31755
  className: getClassName11("input"),
@@ -31456,6 +31765,7 @@ var DefaultField = ({
31456
31765
  }
31457
31766
  },
31458
31767
  readOnly,
31768
+ tabIndex: readOnly ? -1 : void 0,
31459
31769
  id,
31460
31770
  min: field.type === "number" ? field.min : void 0,
31461
31771
  max: field.type === "number" ? field.max : void 0
@@ -31467,42 +31777,72 @@ var DefaultField = ({
31467
31777
 
31468
31778
  // components/InputOrGroup/fields/ExternalField/index.tsx
31469
31779
  init_react_import();
31470
- var import_react17 = require("react");
31780
+ var import_react18 = require("react");
31471
31781
 
31472
31782
  // components/ExternalInput/index.tsx
31473
31783
  init_react_import();
31474
- var import_react16 = require("react");
31784
+ var import_react17 = require("react");
31475
31785
 
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" };
31786
+ // components/ExternalInput/styles.module.css
31787
+ var styles_default11 = {
31788
+ "ExternalInput-actions": "styles_ExternalInput-actions",
31789
+ "ExternalInput-button": "styles_ExternalInput-button",
31790
+ "ExternalInput--dataSelected": "styles_ExternalInput--dataSelected",
31791
+ "ExternalInput-detachButton": "styles_ExternalInput-detachButton",
31792
+ ExternalInputModal: "styles_ExternalInputModal",
31793
+ "ExternalInputModal-grid": "styles_ExternalInputModal-grid",
31794
+ "ExternalInputModal--filtersToggled": "styles_ExternalInputModal--filtersToggled",
31795
+ "ExternalInputModal-filters": "styles_ExternalInputModal-filters",
31796
+ "ExternalInputModal-masthead": "styles_ExternalInputModal-masthead",
31797
+ "ExternalInputModal-tableWrapper": "styles_ExternalInputModal-tableWrapper",
31798
+ "ExternalInputModal-table": "styles_ExternalInputModal-table",
31799
+ "ExternalInputModal-thead": "styles_ExternalInputModal-thead",
31800
+ "ExternalInputModal-th": "styles_ExternalInputModal-th",
31801
+ "ExternalInputModal-td": "styles_ExternalInputModal-td",
31802
+ "ExternalInputModal-tr": "styles_ExternalInputModal-tr",
31803
+ "ExternalInputModal-tbody": "styles_ExternalInputModal-tbody",
31804
+ "ExternalInputModal--hasData": "styles_ExternalInputModal--hasData",
31805
+ "ExternalInputModal-loadingBanner": "styles_ExternalInputModal-loadingBanner",
31806
+ "ExternalInputModal--isLoading": "styles_ExternalInputModal--isLoading",
31807
+ "ExternalInputModal-searchForm": "styles_ExternalInputModal-searchForm",
31808
+ "ExternalInputModal-search": "styles_ExternalInputModal-search",
31809
+ "ExternalInputModal-searchIcon": "styles_ExternalInputModal-searchIcon",
31810
+ "ExternalInputModal-searchIconText": "styles_ExternalInputModal-searchIconText",
31811
+ "ExternalInputModal-searchInput": "styles_ExternalInputModal-searchInput",
31812
+ "ExternalInputModal-searchActions": "styles_ExternalInputModal-searchActions",
31813
+ "ExternalInputModal-searchActionIcon": "styles_ExternalInputModal-searchActionIcon",
31814
+ "ExternalInputModal-footer": "styles_ExternalInputModal-footer"
31815
+ };
31479
31816
 
31480
31817
  // components/Modal/index.tsx
31481
31818
  init_react_import();
31482
- var import_react15 = require("react");
31819
+ var import_react16 = require("react");
31483
31820
 
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" };
31821
+ // components/Modal/styles.module.css
31822
+ var styles_default12 = {
31823
+ Modal: "styles_Modal",
31824
+ "Modal--isOpen": "styles_Modal--isOpen",
31825
+ "Modal-inner": "styles_Modal-inner"
31826
+ };
31487
31827
 
31488
31828
  // components/Modal/index.tsx
31489
31829
  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);
31830
+ var import_jsx_runtime17 = require("react/jsx-runtime");
31831
+ var getClassName12 = get_class_name_factory_default("Modal", styles_default12);
31492
31832
  var Modal = ({
31493
31833
  children,
31494
31834
  onClose,
31495
31835
  isOpen
31496
31836
  }) => {
31497
- const [rootEl, setRootEl] = (0, import_react15.useState)(null);
31498
- (0, import_react15.useEffect)(() => {
31837
+ const [rootEl, setRootEl] = (0, import_react16.useState)(null);
31838
+ (0, import_react16.useEffect)(() => {
31499
31839
  setRootEl(document.getElementById("puck-portal-root"));
31500
31840
  }, []);
31501
31841
  if (!rootEl) {
31502
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", {});
31842
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {});
31503
31843
  }
31504
31844
  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)(
31845
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31506
31846
  "div",
31507
31847
  {
31508
31848
  className: getClassName12("inner"),
@@ -31516,9 +31856,9 @@ var Modal = ({
31516
31856
 
31517
31857
  // components/ExternalInput/index.tsx
31518
31858
  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);
31859
+ var import_jsx_runtime18 = require("react/jsx-runtime");
31860
+ var getClassName13 = get_class_name_factory_default("ExternalInput", styles_default11);
31861
+ var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_default11);
31522
31862
  var dataCache = {};
31523
31863
  var ExternalInput = ({
31524
31864
  field,
@@ -31527,13 +31867,23 @@ var ExternalInput = ({
31527
31867
  name,
31528
31868
  id
31529
31869
  }) => {
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)(() => {
31870
+ const {
31871
+ mapProp = (val) => val,
31872
+ mapRow = (val) => val,
31873
+ filterFields
31874
+ } = field || {};
31875
+ const [data, setData] = (0, import_react17.useState)([]);
31876
+ const [isOpen, setOpen] = (0, import_react17.useState)(false);
31877
+ const [isLoading, setIsLoading] = (0, import_react17.useState)(true);
31878
+ const hasFilterFields = !!filterFields;
31879
+ const [filters, setFilters] = (0, import_react17.useState)(field.initialFilters || {});
31880
+ const [filtersToggled, setFiltersToggled] = (0, import_react17.useState)(hasFilterFields);
31881
+ const mappedData = (0, import_react17.useMemo)(() => {
31882
+ return data.map(mapRow);
31883
+ }, [data]);
31884
+ const keys = (0, import_react17.useMemo)(() => {
31535
31885
  const validKeys = /* @__PURE__ */ new Set();
31536
- for (const item of data) {
31886
+ for (const item of mappedData) {
31537
31887
  for (const key of Object.keys(item)) {
31538
31888
  if (typeof item[key] === "string" || typeof item[key] === "number") {
31539
31889
  validKeys.add(key);
@@ -31541,13 +31891,13 @@ var ExternalInput = ({
31541
31891
  }
31542
31892
  }
31543
31893
  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* () {
31894
+ }, [mappedData]);
31895
+ const [searchQuery, setSearchQuery] = (0, import_react17.useState)(field.initialQuery || "");
31896
+ const search = (0, import_react17.useCallback)(
31897
+ (query, filters2) => __async(void 0, null, function* () {
31548
31898
  setIsLoading(true);
31549
- const cacheKey = `${id}-${name}-${query}`;
31550
- const listData = dataCache[cacheKey] || (yield field.fetchList({ query }));
31899
+ const cacheKey = `${id}-${name}-${query}-${JSON.stringify(filters2)}`;
31900
+ const listData = dataCache[cacheKey] || (yield field.fetchList({ query, filters: filters2 }));
31551
31901
  if (listData) {
31552
31902
  setData(listData);
31553
31903
  setIsLoading(false);
@@ -31556,10 +31906,10 @@ var ExternalInput = ({
31556
31906
  }),
31557
31907
  [name, field]
31558
31908
  );
31559
- (0, import_react16.useEffect)(() => {
31560
- search(searchQuery);
31909
+ (0, import_react17.useEffect)(() => {
31910
+ search(searchQuery, filters);
31561
31911
  }, []);
31562
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31912
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31563
31913
  "div",
31564
31914
  {
31565
31915
  className: getClassName13({
@@ -31568,102 +31918,133 @@ var ExternalInput = ({
31568
31918
  }),
31569
31919
  id,
31570
31920
  children: [
31571
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName13("actions"), children: [
31572
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31921
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassName13("actions"), children: [
31922
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31573
31923
  "button",
31574
31924
  {
31575
31925
  onClick: () => setOpen(true),
31576
31926
  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 })
31927
+ children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
31928
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { size: "16" }),
31929
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: field.placeholder })
31580
31930
  ] })
31581
31931
  }
31582
31932
  ),
31583
- value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31933
+ value && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31584
31934
  "button",
31585
31935
  {
31586
31936
  className: getClassName13("detachButton"),
31587
31937
  onClick: () => {
31588
31938
  onChange(null);
31589
31939
  },
31590
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Unlock, { size: 16 })
31940
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Unlock, { size: 16 })
31591
31941
  }
31592
31942
  )
31593
31943
  ] }),
31594
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31595
- "div",
31944
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31945
+ "form",
31596
31946
  {
31597
31947
  className: getClassNameModal({
31598
31948
  isLoading,
31599
31949
  loaded: !isLoading,
31600
- hasData: data.length > 0
31950
+ hasData: mappedData.length > 0,
31951
+ filtersToggled
31601
31952
  }),
31953
+ onSubmit: (e) => {
31954
+ e.preventDefault();
31955
+ search(searchQuery, filters);
31956
+ },
31602
31957
  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",
31958
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
31959
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: getClassNameModal("search"), children: [
31960
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31961
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "18" }) }),
31962
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31963
+ "input",
31964
+ {
31965
+ className: getClassNameModal("searchInput"),
31966
+ name: "q",
31967
+ type: "search",
31968
+ placeholder: field.placeholder,
31969
+ onChange: (e) => {
31970
+ setSearchQuery(e.currentTarget.value);
31971
+ },
31972
+ autoComplete: "off",
31973
+ value: searchQuery
31974
+ }
31975
+ )
31976
+ ] }),
31977
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
31978
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
31979
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31980
+ IconButton,
31981
+ {
31982
+ title: "Toggle filters",
31983
+ onClick: (e) => {
31984
+ e.preventDefault();
31985
+ e.stopPropagation();
31986
+ setFiltersToggled(!filtersToggled);
31987
+ },
31988
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SlidersHorizontal, { size: 20 })
31989
+ }
31990
+ ) })
31991
+ ] })
31992
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
31993
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("grid"), children: [
31994
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
31995
+ const filterField = filterFields[fieldName];
31996
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31997
+ InputOrGroup,
31641
31998
  {
31642
- className: getClassNameModal("th"),
31643
- style: { textAlign: "left" },
31644
- children: key
31999
+ field: filterField,
32000
+ name: fieldName,
32001
+ id: `external_field_${fieldName}_filter`,
32002
+ label: filterField.label || fieldName,
32003
+ value: filters[fieldName],
32004
+ onChange: (value2) => {
32005
+ const newFilters = __spreadProps(__spreadValues({}, filters), { [fieldName]: value2 });
32006
+ setFilters(newFilters);
32007
+ search(searchQuery, newFilters);
32008
+ }
31645
32009
  },
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",
32010
+ fieldName
32011
+ );
32012
+ }) }),
32013
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
32014
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: getClassNameModal("table"), children: [
32015
+ /* @__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)(
32016
+ "th",
31651
32017
  {
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))
32018
+ className: getClassNameModal("th"),
32019
+ style: { textAlign: "left" },
32020
+ children: key
31659
32021
  },
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" }) })
32022
+ key
32023
+ )) }) }),
32024
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
32025
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32026
+ "tr",
32027
+ {
32028
+ style: { whiteSpace: "nowrap" },
32029
+ className: getClassNameModal("tr"),
32030
+ onClick: () => {
32031
+ onChange(mapProp(data[i]));
32032
+ setOpen(false);
32033
+ },
32034
+ children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
32035
+ },
32036
+ i
32037
+ );
32038
+ }) })
32039
+ ] }),
32040
+ /* @__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" }) })
32041
+ ] })
31665
32042
  ] }),
31666
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("noContentBanner"), children: "No results." })
32043
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("footer"), children: [
32044
+ mappedData.length,
32045
+ " result",
32046
+ mappedData.length === 1 ? "" : "s"
32047
+ ] })
31667
32048
  ]
31668
32049
  }
31669
32050
  ) })
@@ -31673,7 +32054,7 @@ var ExternalInput = ({
31673
32054
  };
31674
32055
 
31675
32056
  // components/InputOrGroup/fields/ExternalField/index.tsx
31676
- var import_jsx_runtime16 = require("react/jsx-runtime");
32057
+ var import_jsx_runtime19 = require("react/jsx-runtime");
31677
32058
  var ExternalField = ({
31678
32059
  field,
31679
32060
  onChange,
@@ -31685,7 +32066,7 @@ var ExternalField = ({
31685
32066
  var _a, _b, _c;
31686
32067
  const validField = field;
31687
32068
  const deprecatedField = field;
31688
- (0, import_react17.useEffect)(() => {
32069
+ (0, import_react18.useEffect)(() => {
31689
32070
  if (deprecatedField.adaptor) {
31690
32071
  console.error(
31691
32072
  "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 +32076,13 @@ var ExternalField = ({
31695
32076
  if (field.type !== "external") {
31696
32077
  return null;
31697
32078
  }
31698
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
32079
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31699
32080
  FieldLabelInternal,
31700
32081
  {
31701
32082
  label: label || name,
31702
- icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { size: 16 }),
32083
+ icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { size: 16 }),
31703
32084
  el: "div",
31704
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
32085
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31705
32086
  ExternalInput,
31706
32087
  {
31707
32088
  name,
@@ -31709,6 +32090,7 @@ var ExternalField = ({
31709
32090
  // DEPRECATED
31710
32091
  placeholder: ((_a = deprecatedField.adaptor) == null ? void 0 : _a.name) ? `Select from ${deprecatedField.adaptor.name}` : validField.placeholder || "Select data",
31711
32092
  mapProp: ((_b = deprecatedField.adaptor) == null ? void 0 : _b.mapProp) || validField.mapProp,
32093
+ mapRow: validField.mapRow,
31712
32094
  fetchList: ((_c = deprecatedField.adaptor) == null ? void 0 : _c.fetchList) ? () => __async(void 0, null, function* () {
31713
32095
  return yield deprecatedField.adaptor.fetchList(
31714
32096
  deprecatedField.adaptorParams
@@ -31726,8 +32108,8 @@ var ExternalField = ({
31726
32108
 
31727
32109
  // components/InputOrGroup/fields/RadioField/index.tsx
31728
32110
  init_react_import();
31729
- var import_jsx_runtime17 = require("react/jsx-runtime");
31730
- var getClassName14 = get_class_name_factory_default("Input", styles_module_default9);
32111
+ var import_jsx_runtime20 = require("react/jsx-runtime");
32112
+ var getClassName14 = get_class_name_factory_default("Input", styles_default9);
31731
32113
  var RadioField = ({
31732
32114
  field,
31733
32115
  onChange,
@@ -31740,19 +32122,19 @@ var RadioField = ({
31740
32122
  if (field.type !== "radio" || !field.options) {
31741
32123
  return null;
31742
32124
  }
31743
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32125
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31744
32126
  FieldLabelInternal,
31745
32127
  {
31746
- icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CheckCircle, { size: 16 }),
32128
+ icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckCircle, { size: 16 }),
31747
32129
  label: label || name,
31748
32130
  readOnly,
31749
32131
  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)(
32132
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
31751
32133
  "label",
31752
32134
  {
31753
32135
  className: getClassName14("radio"),
31754
32136
  children: [
31755
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
32137
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31756
32138
  "input",
31757
32139
  {
31758
32140
  type: "radio",
@@ -31770,7 +32152,7 @@ var RadioField = ({
31770
32152
  defaultChecked: value === option.value
31771
32153
  }
31772
32154
  ),
31773
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
32155
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
31774
32156
  ]
31775
32157
  },
31776
32158
  option.label + option.value
@@ -31781,8 +32163,8 @@ var RadioField = ({
31781
32163
 
31782
32164
  // components/InputOrGroup/fields/SelectField/index.tsx
31783
32165
  init_react_import();
31784
- var import_jsx_runtime18 = require("react/jsx-runtime");
31785
- var getClassName15 = get_class_name_factory_default("Input", styles_module_default9);
32166
+ var import_jsx_runtime21 = require("react/jsx-runtime");
32167
+ var getClassName15 = get_class_name_factory_default("Input", styles_default9);
31786
32168
  var SelectField = ({
31787
32169
  field,
31788
32170
  onChange,
@@ -31795,13 +32177,13 @@ var SelectField = ({
31795
32177
  if (field.type !== "select" || !field.options) {
31796
32178
  return null;
31797
32179
  }
31798
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32180
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31799
32181
  FieldLabelInternal,
31800
32182
  {
31801
32183
  label: label || name,
31802
- icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDown, { size: 16 }),
32184
+ icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronDown, { size: 16 }),
31803
32185
  readOnly,
31804
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32186
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31805
32187
  "select",
31806
32188
  {
31807
32189
  id,
@@ -31815,7 +32197,7 @@ var SelectField = ({
31815
32197
  onChange(e.currentTarget.value);
31816
32198
  },
31817
32199
  value,
31818
- children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32200
+ children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31819
32201
  "option",
31820
32202
  {
31821
32203
  label: option.label,
@@ -31831,8 +32213,8 @@ var SelectField = ({
31831
32213
 
31832
32214
  // components/InputOrGroup/fields/TextareaField/index.tsx
31833
32215
  init_react_import();
31834
- var import_jsx_runtime19 = require("react/jsx-runtime");
31835
- var getClassName16 = get_class_name_factory_default("Input", styles_module_default9);
32216
+ var import_jsx_runtime22 = require("react/jsx-runtime");
32217
+ var getClassName16 = get_class_name_factory_default("Input", styles_default9);
31836
32218
  var TextareaField = ({
31837
32219
  onChange,
31838
32220
  readOnly,
@@ -31841,13 +32223,13 @@ var TextareaField = ({
31841
32223
  label,
31842
32224
  id
31843
32225
  }) => {
31844
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32226
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31845
32227
  FieldLabelInternal,
31846
32228
  {
31847
32229
  label: label || name,
31848
- icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Type, { size: 16 }),
32230
+ icon: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Type, { size: 16 }),
31849
32231
  readOnly,
31850
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32232
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31851
32233
  "textarea",
31852
32234
  {
31853
32235
  id,
@@ -31857,6 +32239,7 @@ var TextareaField = ({
31857
32239
  value: typeof value === "undefined" ? "" : value,
31858
32240
  onChange: (e) => onChange(e.currentTarget.value),
31859
32241
  readOnly,
32242
+ tabIndex: readOnly ? -1 : void 0,
31860
32243
  rows: 5
31861
32244
  }
31862
32245
  )
@@ -31870,14 +32253,16 @@ var import_use_debounce2 = require("use-debounce");
31870
32253
  // components/InputOrGroup/fields/ObjectField/index.tsx
31871
32254
  init_react_import();
31872
32255
 
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" };
32256
+ // components/InputOrGroup/fields/ObjectField/styles.module.css
32257
+ var styles_default13 = {
32258
+ ObjectField: "styles_ObjectField",
32259
+ "ObjectField-fieldset": "styles_ObjectField-fieldset"
32260
+ };
31876
32261
 
31877
32262
  // 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);
32263
+ var import_jsx_runtime23 = require("react/jsx-runtime");
32264
+ var getClassName17 = get_class_name_factory_default("ObjectField", styles_default13);
32265
+ var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_default13);
31881
32266
  var ObjectField = ({
31882
32267
  field,
31883
32268
  onChange,
@@ -31892,18 +32277,18 @@ var ObjectField = ({
31892
32277
  return null;
31893
32278
  }
31894
32279
  const data = value || {};
31895
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32280
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31896
32281
  FieldLabelInternal,
31897
32282
  {
31898
32283
  label: label || name,
31899
- icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MoreVertical, { size: 16 }),
32284
+ icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MoreVertical, { size: 16 }),
31900
32285
  el: "div",
31901
32286
  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) => {
32287
+ 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
32288
  const subField = field.objectFields[fieldName];
31904
32289
  const subFieldName = `${name}.${fieldName}`;
31905
32290
  const wildcardFieldName = `${name}.${fieldName}`;
31906
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32291
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31907
32292
  InputOrGroup,
31908
32293
  {
31909
32294
  name: subFieldName,
@@ -31930,8 +32315,8 @@ var ObjectField = ({
31930
32315
  };
31931
32316
 
31932
32317
  // 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);
32318
+ var import_jsx_runtime24 = require("react/jsx-runtime");
32319
+ var getClassName18 = get_class_name_factory_default("Input", styles_default9);
31935
32320
  var FieldLabel = ({
31936
32321
  children,
31937
32322
  icon,
@@ -31941,11 +32326,11 @@ var FieldLabel = ({
31941
32326
  className
31942
32327
  }) => {
31943
32328
  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, {}),
32329
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(El, { className, children: [
32330
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("label"), children: [
32331
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {}),
31947
32332
  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" }) })
32333
+ 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
32334
  ] }),
31950
32335
  children
31951
32336
  ] });
@@ -31958,11 +32343,11 @@ var FieldLabelInternal = ({
31958
32343
  readOnly
31959
32344
  }) => {
31960
32345
  const { overrides } = useAppContext();
31961
- const Wrapper = (0, import_react18.useMemo)(
32346
+ const Wrapper = (0, import_react19.useMemo)(
31962
32347
  () => overrides.fieldLabel || FieldLabel,
31963
32348
  [overrides]
31964
32349
  );
31965
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
32350
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
31966
32351
  Wrapper,
31967
32352
  {
31968
32353
  label,
@@ -31979,7 +32364,7 @@ var InputOrGroup = (_a) => {
31979
32364
  var _a2, _b2, _c, _d, _e, _f, _g, _h;
31980
32365
  const { overrides } = useAppContext();
31981
32366
  const { name, field, value, readOnly } = props;
31982
- const [localValue, setLocalValue] = (0, import_react18.useState)(value);
32367
+ const [localValue, setLocalValue] = (0, import_react19.useState)(value);
31983
32368
  const onChangeDb = (0, import_use_debounce2.useDebouncedCallback)(
31984
32369
  (val, ui) => {
31985
32370
  onChange(val, ui);
@@ -31987,11 +32372,11 @@ var InputOrGroup = (_a) => {
31987
32372
  50,
31988
32373
  { leading: true }
31989
32374
  );
31990
- const onChangeLocal = (0, import_react18.useCallback)((val, ui) => {
32375
+ const onChangeLocal = (0, import_react19.useCallback)((val, ui) => {
31991
32376
  setLocalValue(val);
31992
32377
  onChangeDb(val, ui);
31993
32378
  }, []);
31994
- (0, import_react18.useEffect)(() => {
32379
+ (0, import_react19.useEffect)(() => {
31995
32380
  setLocalValue(value);
31996
32381
  }, [value]);
31997
32382
  const localProps = {
@@ -32002,7 +32387,7 @@ var InputOrGroup = (_a) => {
32002
32387
  if (!field.render) {
32003
32388
  return null;
32004
32389
  }
32005
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32390
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32006
32391
  field,
32007
32392
  name,
32008
32393
  readOnly
@@ -32031,17 +32416,19 @@ var InputOrGroup = (_a) => {
32031
32416
  const mergedProps = __spreadProps(__spreadValues(__spreadValues({}, props), localProps), { field });
32032
32417
  const children = defaultFields[field.type](mergedProps);
32033
32418
  const Render2 = render[field.type];
32034
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32419
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32035
32420
  };
32036
32421
 
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" };
32422
+ // components/Puck/components/Fields/styles.module.css
32423
+ var styles_default14 = {
32424
+ PuckFields: "styles_PuckFields",
32425
+ "PuckFields-loadingOverlay": "styles_PuckFields-loadingOverlay"
32426
+ };
32040
32427
 
32041
32428
  // 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);
32429
+ var import_react20 = require("react");
32430
+ var import_jsx_runtime25 = require("react/jsx-runtime");
32431
+ var getClassName19 = get_class_name_factory_default("PuckFields", styles_default14);
32045
32432
  var defaultPageFields = {
32046
32433
  title: { type: "text" }
32047
32434
  };
@@ -32049,9 +32436,9 @@ var DefaultFields = ({
32049
32436
  children,
32050
32437
  isLoading
32051
32438
  }) => {
32052
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: getClassName19(), children: [
32439
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19(), children: [
32053
32440
  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" }) })
32441
+ 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
32442
  ] });
32056
32443
  };
32057
32444
  var Fields = () => {
@@ -32071,15 +32458,15 @@ var Fields = () => {
32071
32458
  const fields = selectedItem ? ((_b = config.components[selectedItem.type]) == null ? void 0 : _b.fields) || {} : rootFields;
32072
32459
  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
32460
  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)(
32461
+ const Wrapper = (0, import_react20.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
32462
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32076
32463
  "form",
32077
32464
  {
32078
32465
  className: getClassName19(),
32079
32466
  onSubmit: (e) => {
32080
32467
  e.preventDefault();
32081
32468
  },
32082
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32469
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32083
32470
  const field = fields[fieldName];
32084
32471
  const onChange = (value, updatedUi) => {
32085
32472
  var _a2, _b2;
@@ -32145,7 +32532,7 @@ var Fields = () => {
32145
32532
  };
32146
32533
  if (selectedItem && itemSelector) {
32147
32534
  const { readOnly = {} } = selectedItem;
32148
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32535
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32149
32536
  InputOrGroup,
32150
32537
  {
32151
32538
  field,
@@ -32161,7 +32548,7 @@ var Fields = () => {
32161
32548
  );
32162
32549
  } else {
32163
32550
  const { readOnly = {} } = data.root;
32164
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32551
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32165
32552
  InputOrGroup,
32166
32553
  {
32167
32554
  field,
@@ -32186,24 +32573,30 @@ init_react_import();
32186
32573
 
32187
32574
  // lib/use-component-list.tsx
32188
32575
  init_react_import();
32189
- var import_react20 = require("react");
32576
+ var import_react21 = require("react");
32190
32577
 
32191
32578
  // components/ComponentList/index.tsx
32192
32579
  init_react_import();
32193
32580
 
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" };
32581
+ // components/ComponentList/styles.module.css
32582
+ var styles_default15 = {
32583
+ ComponentList: "styles_ComponentList",
32584
+ "ComponentList--isExpanded": "styles_ComponentList--isExpanded",
32585
+ "ComponentList-content": "styles_ComponentList-content",
32586
+ "ComponentList-title": "styles_ComponentList-title",
32587
+ "ComponentList-titleIcon": "styles_ComponentList-titleIcon"
32588
+ };
32197
32589
 
32198
32590
  // 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);
32591
+ var import_jsx_runtime26 = require("react/jsx-runtime");
32592
+ var getClassName20 = get_class_name_factory_default("ComponentList", styles_default15);
32201
32593
  var ComponentListItem = ({
32202
32594
  name,
32595
+ label,
32203
32596
  index
32204
32597
  }) => {
32205
32598
  const { overrides } = useAppContext();
32206
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Drawer.Item, { name, index, children: overrides.componentItem });
32599
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer.Item, { label, name, index, children: overrides.componentItem });
32207
32600
  };
32208
32601
  var ComponentList = ({
32209
32602
  children,
@@ -32212,9 +32605,9 @@ var ComponentList = ({
32212
32605
  }) => {
32213
32606
  const { config, state, setUi } = useAppContext();
32214
32607
  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",
32608
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32609
+ title && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
32610
+ "button",
32218
32611
  {
32219
32612
  className: getClassName20("title"),
32220
32613
  onClick: () => setUi({
@@ -32226,15 +32619,17 @@ var ComponentList = ({
32226
32619
  }),
32227
32620
  title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
32228
32621
  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 }) })
32622
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: title }),
32623
+ /* @__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
32624
  ]
32232
32625
  }
32233
32626
  ),
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)(
32627
+ /* @__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) => {
32628
+ var _a;
32629
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32236
32630
  ComponentListItem,
32237
32631
  {
32632
+ label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
32238
32633
  name: componentKey,
32239
32634
  index: i
32240
32635
  },
@@ -32246,10 +32641,10 @@ var ComponentList = ({
32246
32641
  ComponentList.Item = ComponentListItem;
32247
32642
 
32248
32643
  // lib/use-component-list.tsx
32249
- var import_jsx_runtime24 = require("react/jsx-runtime");
32644
+ var import_jsx_runtime27 = require("react/jsx-runtime");
32250
32645
  var useComponentList = (config, ui) => {
32251
- const [componentList, setComponentList] = (0, import_react20.useState)();
32252
- (0, import_react20.useEffect)(() => {
32646
+ const [componentList, setComponentList] = (0, import_react21.useState)();
32647
+ (0, import_react21.useEffect)(() => {
32253
32648
  var _a, _b, _c;
32254
32649
  if (Object.keys(ui.componentList).length > 0) {
32255
32650
  const matchedComponents = [];
@@ -32259,16 +32654,18 @@ var useComponentList = (config, ui) => {
32259
32654
  if (category.visible === false || !category.components) {
32260
32655
  return null;
32261
32656
  }
32262
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32657
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32263
32658
  ComponentList,
32264
32659
  {
32265
32660
  id: categoryKey,
32266
32661
  title: category.title || categoryKey,
32267
32662
  children: category.components.map((componentName, i) => {
32663
+ var _a2;
32268
32664
  matchedComponents.push(componentName);
32269
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32665
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32270
32666
  ComponentList.Item,
32271
32667
  {
32668
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32272
32669
  name: componentName,
32273
32670
  index: i
32274
32671
  },
@@ -32285,16 +32682,18 @@ var useComponentList = (config, ui) => {
32285
32682
  );
32286
32683
  if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
32287
32684
  _componentList.push(
32288
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32685
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32289
32686
  ComponentList,
32290
32687
  {
32291
32688
  id: "other",
32292
32689
  title: ((_c = ui.componentList.other) == null ? void 0 : _c.title) || "Other",
32293
32690
  children: remainingComponents.map((componentName, i) => {
32294
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32691
+ var _a2;
32692
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32295
32693
  ComponentList.Item,
32296
32694
  {
32297
32695
  name: componentName,
32696
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32298
32697
  index: i
32299
32698
  },
32300
32699
  componentName
@@ -32307,27 +32706,37 @@ var useComponentList = (config, ui) => {
32307
32706
  }
32308
32707
  setComponentList(_componentList);
32309
32708
  }
32310
- }, [config.categories, ui.componentList]);
32709
+ }, [config.categories, config.components, ui.componentList]);
32311
32710
  return componentList;
32312
32711
  };
32313
32712
 
32314
32713
  // components/Puck/components/Components/index.tsx
32315
- var import_react21 = require("react");
32316
- var import_jsx_runtime25 = require("react/jsx-runtime");
32714
+ var import_react22 = require("react");
32715
+ var import_jsx_runtime28 = require("react/jsx-runtime");
32317
32716
  var Components = () => {
32318
32717
  const { config, state, overrides } = useAppContext();
32319
32718
  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" }) });
32719
+ const Wrapper = (0, import_react22.useMemo)(() => overrides.components || "div", [overrides]);
32720
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
32322
32721
  };
32323
32722
 
32324
32723
  // components/Puck/components/Preview/index.tsx
32325
32724
  init_react_import();
32326
- var import_react22 = require("react");
32327
- var import_jsx_runtime26 = require("react/jsx-runtime");
32725
+ var import_react23 = require("react");
32726
+ var import_auto_frame_component = __toESM(require("@measured/auto-frame-component"));
32727
+
32728
+ // components/Puck/components/Preview/styles.module.css
32729
+ var styles_default16 = {
32730
+ PuckPreview: "styles_PuckPreview",
32731
+ "PuckPreview-frame": "styles_PuckPreview-frame"
32732
+ };
32733
+
32734
+ // components/Puck/components/Preview/index.tsx
32735
+ var import_jsx_runtime29 = require("react/jsx-runtime");
32736
+ var getClassName21 = get_class_name_factory_default("PuckPreview", styles_default16);
32328
32737
  var Preview = ({ id = "puck-preview" }) => {
32329
- const { config, dispatch, state } = useAppContext();
32330
- const Page = (0, import_react22.useCallback)(
32738
+ const { config, dispatch, state, setStatus, iframe } = useAppContext();
32739
+ const Page = (0, import_react23.useCallback)(
32331
32740
  (pageProps) => {
32332
32741
  var _a, _b;
32333
32742
  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 +32744,28 @@ var Preview = ({ id = "puck-preview" }) => {
32335
32744
  [config.root]
32336
32745
  );
32337
32746
  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)(
32747
+ const ref = (0, import_react23.useRef)(null);
32748
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32340
32749
  "div",
32341
32750
  {
32751
+ className: getClassName21(),
32342
32752
  id,
32343
32753
  onClick: () => {
32344
32754
  dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
32345
32755
  },
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 }) }))
32756
+ children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32757
+ import_auto_frame_component.default,
32758
+ {
32759
+ id: "preview-frame",
32760
+ className: getClassName21("frame"),
32761
+ "data-rfd-iframe": true,
32762
+ ref,
32763
+ onStylesLoaded: () => {
32764
+ setStatus("READY");
32765
+ },
32766
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) }))
32767
+ }
32768
+ ) : /* @__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
32769
  }
32349
32770
  );
32350
32771
  };
@@ -32376,9 +32797,24 @@ var areaContainsZones = (data, area) => {
32376
32797
  // components/LayerTree/index.tsx
32377
32798
  init_react_import();
32378
32799
 
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" };
32800
+ // components/LayerTree/styles.module.css
32801
+ var styles_default17 = {
32802
+ LayerTree: "styles_LayerTree",
32803
+ "LayerTree-zoneTitle": "styles_LayerTree-zoneTitle",
32804
+ "LayerTree-helper": "styles_LayerTree-helper",
32805
+ Layer: "styles_Layer",
32806
+ "Layer-inner": "styles_Layer-inner",
32807
+ "Layer--containsZone": "styles_Layer--containsZone",
32808
+ "Layer-clickable": "styles_Layer-clickable",
32809
+ "Layer--isSelected": "styles_Layer--isSelected",
32810
+ "Layer-chevron": "styles_Layer-chevron",
32811
+ "Layer--childIsSelected": "styles_Layer--childIsSelected",
32812
+ "Layer-zones": "styles_Layer-zones",
32813
+ "Layer-title": "styles_Layer-title",
32814
+ "Layer-name": "styles_Layer-name",
32815
+ "Layer-icon": "styles_Layer-icon",
32816
+ "Layer-zoneIcon": "styles_Layer-zoneIcon"
32817
+ };
32382
32818
 
32383
32819
  // lib/scroll-into-view.ts
32384
32820
  init_react_import();
@@ -32392,7 +32828,7 @@ var scrollIntoView = (el) => {
32392
32828
  };
32393
32829
 
32394
32830
  // components/LayerTree/index.tsx
32395
- var import_react23 = require("react");
32831
+ var import_react24 = require("react");
32396
32832
 
32397
32833
  // lib/is-child-of-zone.ts
32398
32834
  init_react_import();
@@ -32406,11 +32842,12 @@ var isChildOfZone = (item, maybeChild, ctx) => {
32406
32842
  };
32407
32843
 
32408
32844
  // 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);
32845
+ var import_jsx_runtime30 = require("react/jsx-runtime");
32846
+ var getClassName22 = get_class_name_factory_default("LayerTree", styles_default17);
32847
+ var getClassNameLayer = get_class_name_factory_default("Layer", styles_default17);
32412
32848
  var LayerTree = ({
32413
32849
  data,
32850
+ config,
32414
32851
  zoneContent,
32415
32852
  itemSelector,
32416
32853
  setItemSelector,
@@ -32418,16 +32855,18 @@ var LayerTree = ({
32418
32855
  label
32419
32856
  }) => {
32420
32857
  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" }) }),
32858
+ const ctx = (0, import_react24.useContext)(dropZoneContext);
32859
+ const frame = useFrame();
32860
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
32861
+ label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
32862
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
32425
32863
  " ",
32426
32864
  label
32427
32865
  ] }),
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" }),
32866
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName22(), children: [
32867
+ zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
32430
32868
  zoneContent.map((item, i) => {
32869
+ var _a;
32431
32870
  const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
32432
32871
  const zonesForItem = findZonesForArea(data, item.props.id);
32433
32872
  const containsZone = Object.keys(zonesForItem).length > 0;
@@ -32441,7 +32880,7 @@ var LayerTree = ({
32441
32880
  const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
32442
32881
  const isHovering = hoveringComponent === item.props.id;
32443
32882
  const childIsSelected = isChildOfZone(item, selectedItem, ctx);
32444
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32883
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32445
32884
  "li",
32446
32885
  {
32447
32886
  className: getClassNameLayer({
@@ -32451,8 +32890,8 @@ var LayerTree = ({
32451
32890
  childIsSelected
32452
32891
  }),
32453
32892
  children: [
32454
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32455
- "div",
32893
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32894
+ "button",
32456
32895
  {
32457
32896
  className: getClassNameLayer("clickable"),
32458
32897
  onClick: () => {
@@ -32466,7 +32905,7 @@ var LayerTree = ({
32466
32905
  });
32467
32906
  const id = zoneContent[i].props.id;
32468
32907
  scrollIntoView(
32469
- document.querySelector(
32908
+ frame == null ? void 0 : frame.querySelector(
32470
32909
  `[data-rfd-drag-handle-draggable-id="draggable-${id}"]`
32471
32910
  )
32472
32911
  );
@@ -32482,24 +32921,25 @@ var LayerTree = ({
32482
32921
  setHoveringComponent(null);
32483
32922
  },
32484
32923
  children: [
32485
- containsZone && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32924
+ containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32486
32925
  "div",
32487
32926
  {
32488
32927
  className: getClassNameLayer("chevron"),
32489
32928
  title: isSelected ? "Collapse" : "Expand",
32490
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDown, { size: "12" })
32929
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
32491
32930
  }
32492
32931
  ),
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 })
32932
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
32933
+ /* @__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" }) }),
32934
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
32496
32935
  ] })
32497
32936
  ]
32498
32937
  }
32499
32938
  ) }),
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)(
32939
+ 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
32940
  LayerTree,
32502
32941
  {
32942
+ config,
32503
32943
  data,
32504
32944
  zoneContent: zones[zoneKey],
32505
32945
  setItemSelector,
@@ -32518,13 +32958,13 @@ var LayerTree = ({
32518
32958
  };
32519
32959
 
32520
32960
  // components/Puck/components/Outline/index.tsx
32521
- var import_react24 = require("react");
32522
- var import_jsx_runtime28 = require("react/jsx-runtime");
32961
+ var import_react25 = require("react");
32962
+ var import_jsx_runtime31 = require("react/jsx-runtime");
32523
32963
  var Outline = () => {
32524
- const { dispatch, state, overrides } = useAppContext();
32964
+ const { dispatch, state, overrides, config } = useAppContext();
32525
32965
  const { data, ui } = state;
32526
32966
  const { itemSelector } = ui;
32527
- const setItemSelector = (0, import_react24.useCallback)(
32967
+ const setItemSelector = (0, import_react25.useCallback)(
32528
32968
  (newItemSelector) => {
32529
32969
  dispatch({
32530
32970
  type: "setUi",
@@ -32533,11 +32973,12 @@ var Outline = () => {
32533
32973
  },
32534
32974
  []
32535
32975
  );
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)(
32976
+ const Wrapper = (0, import_react25.useMemo)(() => overrides.outline || "div", [overrides]);
32977
+ 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: [
32978
+ (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32539
32979
  LayerTree,
32540
32980
  {
32981
+ config,
32541
32982
  data,
32542
32983
  label: areaContainsZones(data, "root") ? rootDroppableId : "",
32543
32984
  zoneContent: data.content,
@@ -32547,9 +32988,10 @@ var Outline = () => {
32547
32988
  ),
32548
32989
  Object.entries(findZonesForArea(data, "root")).map(
32549
32990
  ([zoneKey, zone]) => {
32550
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
32991
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32551
32992
  LayerTree,
32552
32993
  {
32994
+ config,
32553
32995
  data,
32554
32996
  label: zoneKey,
32555
32997
  zone: zoneKey,
@@ -32631,12 +33073,12 @@ function usePuckHistory({
32631
33073
 
32632
33074
  // lib/use-history-store.ts
32633
33075
  init_react_import();
32634
- var import_react25 = require("react");
33076
+ var import_react26 = require("react");
32635
33077
  var import_use_debounce3 = require("use-debounce");
32636
33078
  var EMPTY_HISTORY_INDEX = -1;
32637
33079
  function useHistoryStore() {
32638
- const [histories, setHistories] = (0, import_react25.useState)([]);
32639
- const [index, setIndex] = (0, import_react25.useState)(EMPTY_HISTORY_INDEX);
33080
+ const [histories, setHistories] = (0, import_react26.useState)([]);
33081
+ const [index, setIndex] = (0, import_react26.useState)(EMPTY_HISTORY_INDEX);
32640
33082
  const hasPast = index > EMPTY_HISTORY_INDEX;
32641
33083
  const hasFuture = index < histories.length - 1;
32642
33084
  const currentHistory = histories[index];
@@ -32673,14 +33115,441 @@ function useHistoryStore() {
32673
33115
  };
32674
33116
  }
32675
33117
 
33118
+ // components/Puck/components/Canvas/index.tsx
33119
+ init_react_import();
33120
+
33121
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33122
+ init_react_import();
33123
+
33124
+ // ../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js
33125
+ init_react_import();
33126
+ var isProduction = process.env.NODE_ENV === "production";
33127
+ var prefix = "Invariant failed";
33128
+ function invariant(condition, message) {
33129
+ if (condition) {
33130
+ return;
33131
+ }
33132
+ if (isProduction) {
33133
+ throw new Error(prefix);
33134
+ }
33135
+ var provided = typeof message === "function" ? message() : message;
33136
+ var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
33137
+ throw new Error(value);
33138
+ }
33139
+
33140
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
33141
+ var getRect = function getRect2(_ref) {
33142
+ var top = _ref.top, right = _ref.right, bottom = _ref.bottom, left = _ref.left;
33143
+ var width = right - left;
33144
+ var height = bottom - top;
33145
+ var rect = {
33146
+ top,
33147
+ right,
33148
+ bottom,
33149
+ left,
33150
+ width,
33151
+ height,
33152
+ x: left,
33153
+ y: top,
33154
+ center: {
33155
+ x: (right + left) / 2,
33156
+ y: (bottom + top) / 2
33157
+ }
33158
+ };
33159
+ return rect;
33160
+ };
33161
+ var expand = function expand2(target, expandBy) {
33162
+ return {
33163
+ top: target.top - expandBy.top,
33164
+ left: target.left - expandBy.left,
33165
+ bottom: target.bottom + expandBy.bottom,
33166
+ right: target.right + expandBy.right
33167
+ };
33168
+ };
33169
+ var shrink = function shrink2(target, shrinkBy) {
33170
+ return {
33171
+ top: target.top + shrinkBy.top,
33172
+ left: target.left + shrinkBy.left,
33173
+ bottom: target.bottom - shrinkBy.bottom,
33174
+ right: target.right - shrinkBy.right
33175
+ };
33176
+ };
33177
+ var noSpacing = {
33178
+ top: 0,
33179
+ right: 0,
33180
+ bottom: 0,
33181
+ left: 0
33182
+ };
33183
+ var createBox = function createBox2(_ref2) {
33184
+ 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;
33185
+ var marginBox = getRect(expand(borderBox, margin));
33186
+ var paddingBox = getRect(shrink(borderBox, border));
33187
+ var contentBox = getRect(shrink(paddingBox, padding));
33188
+ return {
33189
+ marginBox,
33190
+ borderBox: getRect(borderBox),
33191
+ paddingBox,
33192
+ contentBox,
33193
+ margin,
33194
+ border,
33195
+ padding
33196
+ };
33197
+ };
33198
+ var parse = function parse2(raw) {
33199
+ var value = raw.slice(0, -2);
33200
+ var suffix = raw.slice(-2);
33201
+ if (suffix !== "px") {
33202
+ return 0;
33203
+ }
33204
+ var result = Number(value);
33205
+ !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0;
33206
+ return result;
33207
+ };
33208
+ var calculateBox = function calculateBox2(borderBox, styles) {
33209
+ var margin = {
33210
+ top: parse(styles.marginTop),
33211
+ right: parse(styles.marginRight),
33212
+ bottom: parse(styles.marginBottom),
33213
+ left: parse(styles.marginLeft)
33214
+ };
33215
+ var padding = {
33216
+ top: parse(styles.paddingTop),
33217
+ right: parse(styles.paddingRight),
33218
+ bottom: parse(styles.paddingBottom),
33219
+ left: parse(styles.paddingLeft)
33220
+ };
33221
+ var border = {
33222
+ top: parse(styles.borderTopWidth),
33223
+ right: parse(styles.borderRightWidth),
33224
+ bottom: parse(styles.borderBottomWidth),
33225
+ left: parse(styles.borderLeftWidth)
33226
+ };
33227
+ return createBox({
33228
+ borderBox,
33229
+ margin,
33230
+ padding,
33231
+ border
33232
+ });
33233
+ };
33234
+ var getBox = function getBox2(el) {
33235
+ var borderBox = el.getBoundingClientRect();
33236
+ var styles = window.getComputedStyle(el);
33237
+ return calculateBox(borderBox, styles);
33238
+ };
33239
+
33240
+ // components/Puck/components/Canvas/index.tsx
33241
+ var import_react28 = require("react");
33242
+
33243
+ // components/ViewportControls/index.tsx
33244
+ init_react_import();
33245
+ var import_react27 = require("react");
33246
+
33247
+ // components/ViewportControls/styles.module.css
33248
+ var styles_default18 = {
33249
+ ViewportControls: "styles_ViewportControls",
33250
+ "ViewportControls-divider": "styles_ViewportControls-divider",
33251
+ "ViewportControls-zoomSelect": "styles_ViewportControls-zoomSelect",
33252
+ "ViewportButton--isActive": "styles_ViewportButton--isActive",
33253
+ "ViewportButton-inner": "styles_ViewportButton-inner"
33254
+ };
33255
+
33256
+ // components/ViewportControls/index.tsx
33257
+ var import_jsx_runtime32 = require("react/jsx-runtime");
33258
+ var icons = {
33259
+ Smartphone: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Smartphone, { size: 16 }),
33260
+ Tablet: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tablet, { size: 16 }),
33261
+ Monitor: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Monitor, { size: 16 })
33262
+ };
33263
+ var getClassName23 = get_class_name_factory_default("ViewportControls", styles_default18);
33264
+ var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_default18);
33265
+ var ViewportButton = ({
33266
+ children,
33267
+ height = "auto",
33268
+ title,
33269
+ width,
33270
+ onClick
33271
+ }) => {
33272
+ const { state } = useAppContext();
33273
+ const [isActive, setIsActive] = (0, import_react27.useState)(false);
33274
+ (0, import_react27.useEffect)(() => {
33275
+ setIsActive(width === state.ui.viewports.current.width);
33276
+ }, [width, state.ui.viewports.current.width]);
33277
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33278
+ IconButton,
33279
+ {
33280
+ title,
33281
+ disabled: isActive,
33282
+ onClick: (e) => {
33283
+ e.stopPropagation();
33284
+ onClick({ width, height });
33285
+ },
33286
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton("inner"), children })
33287
+ }
33288
+ ) });
33289
+ };
33290
+ var defaultZoomOptions = [
33291
+ { label: "25%", value: 0.25 },
33292
+ { label: "50%", value: 0.5 },
33293
+ { label: "75%", value: 0.75 },
33294
+ { label: "100%", value: 1 },
33295
+ { label: "125%", value: 1.25 },
33296
+ { label: "150%", value: 1.5 },
33297
+ { label: "200%", value: 2 }
33298
+ ];
33299
+ var ViewportControls = ({
33300
+ autoZoom,
33301
+ zoom,
33302
+ onViewportChange,
33303
+ onZoom
33304
+ }) => {
33305
+ const { viewports } = useAppContext();
33306
+ const defaultsContainAutoZoom = defaultZoomOptions.find(
33307
+ (option) => option.value === autoZoom
33308
+ );
33309
+ const zoomOptions = (0, import_react27.useMemo)(
33310
+ () => [
33311
+ ...defaultZoomOptions,
33312
+ ...defaultsContainAutoZoom ? [] : [
33313
+ {
33314
+ value: autoZoom,
33315
+ label: `${(autoZoom * 100).toFixed(0)}% (Auto)`
33316
+ }
33317
+ ]
33318
+ ].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
33319
+ [autoZoom]
33320
+ );
33321
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: getClassName23(), children: [
33322
+ viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33323
+ ViewportButton,
33324
+ {
33325
+ height: viewport.height,
33326
+ width: viewport.width,
33327
+ title: viewport.label ? `Switch to ${viewport.label} viewport` : "Switch viewport",
33328
+ onClick: onViewportChange,
33329
+ children: typeof viewport.icon === "string" ? icons[viewport.icon] || viewport.icon : viewport.icon || icons.Smartphone
33330
+ },
33331
+ i
33332
+ )),
33333
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33334
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33335
+ IconButton,
33336
+ {
33337
+ title: "Zoom viewport out",
33338
+ disabled: zoom <= zoomOptions[0].value,
33339
+ onClick: (e) => {
33340
+ e.stopPropagation();
33341
+ onZoom(
33342
+ zoomOptions[Math.max(
33343
+ zoomOptions.findIndex((option) => option.value === zoom) - 1,
33344
+ 0
33345
+ )].value
33346
+ );
33347
+ },
33348
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomOut, { size: 16 })
33349
+ }
33350
+ ),
33351
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33352
+ IconButton,
33353
+ {
33354
+ title: "Zoom viewport in",
33355
+ disabled: zoom >= zoomOptions[zoomOptions.length - 1].value,
33356
+ onClick: (e) => {
33357
+ e.stopPropagation();
33358
+ onZoom(
33359
+ zoomOptions[Math.min(
33360
+ zoomOptions.findIndex((option) => option.value === zoom) + 1,
33361
+ zoomOptions.length - 1
33362
+ )].value
33363
+ );
33364
+ },
33365
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomIn, { size: 16 })
33366
+ }
33367
+ ),
33368
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33369
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33370
+ "select",
33371
+ {
33372
+ className: getClassName23("zoomSelect"),
33373
+ value: zoom.toString(),
33374
+ onChange: (e) => {
33375
+ onZoom(parseFloat(e.currentTarget.value));
33376
+ },
33377
+ children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33378
+ "option",
33379
+ {
33380
+ value: option.value,
33381
+ label: option.label
33382
+ },
33383
+ option.label
33384
+ ))
33385
+ }
33386
+ )
33387
+ ] });
33388
+ };
33389
+
33390
+ // components/Puck/components/Canvas/styles.module.css
33391
+ var styles_default19 = {
33392
+ PuckCanvas: "styles_PuckCanvas",
33393
+ "PuckCanvas-controls": "styles_PuckCanvas-controls",
33394
+ "PuckCanvas-inner": "styles_PuckCanvas-inner",
33395
+ "PuckCanvas-root": "styles_PuckCanvas-root",
33396
+ "PuckCanvas--ready": "styles_PuckCanvas--ready"
33397
+ };
33398
+
33399
+ // lib/get-zoom-config.ts
33400
+ init_react_import();
33401
+ var RESET_ZOOM_SMALLER_THAN_FRAME = true;
33402
+ var getZoomConfig = (uiViewport, frame, zoom) => {
33403
+ const box = getBox(frame);
33404
+ const { width: frameWidth, height: frameHeight } = box.contentBox;
33405
+ const viewportHeight = uiViewport.height === "auto" ? frameHeight : uiViewport.height;
33406
+ let rootHeight = 0;
33407
+ let autoZoom = 1;
33408
+ if (uiViewport.width > frameWidth || viewportHeight > frameHeight) {
33409
+ const widthZoom = Math.min(frameWidth / uiViewport.width, 1);
33410
+ const heightZoom = Math.min(frameHeight / viewportHeight, 1);
33411
+ zoom = widthZoom;
33412
+ if (widthZoom < heightZoom) {
33413
+ rootHeight = viewportHeight / zoom;
33414
+ } else {
33415
+ rootHeight = viewportHeight;
33416
+ zoom = heightZoom;
33417
+ }
33418
+ autoZoom = zoom;
33419
+ } else {
33420
+ if (RESET_ZOOM_SMALLER_THAN_FRAME) {
33421
+ autoZoom = 1;
33422
+ zoom = 1;
33423
+ rootHeight = viewportHeight;
33424
+ }
33425
+ }
33426
+ return { autoZoom, rootHeight, zoom };
33427
+ };
33428
+
33429
+ // components/Puck/components/Canvas/index.tsx
33430
+ var import_jsx_runtime33 = require("react/jsx-runtime");
33431
+ var getClassName24 = get_class_name_factory_default("PuckCanvas", styles_default19);
33432
+ var ZOOM_ON_CHANGE = true;
33433
+ var Canvas = () => {
33434
+ const { status, iframe } = useAppContext();
33435
+ const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
33436
+ const { ui } = state;
33437
+ const frameRef = (0, import_react28.useRef)(null);
33438
+ const [showTransition, setShowTransition] = (0, import_react28.useState)(false);
33439
+ const defaultRender = (0, import_react28.useMemo)(() => {
33440
+ const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
33441
+ return PuckDefault;
33442
+ }, []);
33443
+ const CustomPreview = (0, import_react28.useMemo)(
33444
+ () => overrides.preview || defaultRender,
33445
+ [overrides]
33446
+ );
33447
+ const getFrameDimensions = (0, import_react28.useCallback)(() => {
33448
+ if (frameRef.current) {
33449
+ const frame = frameRef.current;
33450
+ const box = getBox(frame);
33451
+ return { width: box.contentBox.width, height: box.contentBox.height };
33452
+ }
33453
+ return { width: 0, height: 0 };
33454
+ }, [frameRef]);
33455
+ const resetAutoZoom = (0, import_react28.useCallback)(
33456
+ (ui2 = state.ui) => {
33457
+ if (frameRef.current) {
33458
+ setZoomConfig(
33459
+ getZoomConfig(ui2.viewports.current, frameRef.current, zoomConfig.zoom)
33460
+ );
33461
+ }
33462
+ },
33463
+ [frameRef, zoomConfig, state.ui]
33464
+ );
33465
+ (0, import_react28.useEffect)(() => {
33466
+ setShowTransition(false);
33467
+ resetAutoZoom();
33468
+ }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
33469
+ (0, import_react28.useEffect)(() => {
33470
+ const { height: frameHeight } = getFrameDimensions();
33471
+ if (ui.viewports.current.height === "auto") {
33472
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
33473
+ rootHeight: frameHeight / zoomConfig.zoom
33474
+ }));
33475
+ }
33476
+ }, [zoomConfig.zoom]);
33477
+ (0, import_react28.useEffect)(() => {
33478
+ const observer = new ResizeObserver(() => {
33479
+ setShowTransition(false);
33480
+ resetAutoZoom();
33481
+ });
33482
+ if (document.body) {
33483
+ observer.observe(document.body);
33484
+ }
33485
+ return () => {
33486
+ observer.disconnect();
33487
+ };
33488
+ }, []);
33489
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
33490
+ "div",
33491
+ {
33492
+ className: getClassName24({
33493
+ ready: status === "READY" || !iframe.enabled
33494
+ }),
33495
+ onClick: () => dispatch({
33496
+ type: "setUi",
33497
+ ui: { itemSelector: null },
33498
+ recordHistory: true
33499
+ }),
33500
+ children: [
33501
+ ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33502
+ ViewportControls,
33503
+ {
33504
+ autoZoom: zoomConfig.autoZoom,
33505
+ zoom: zoomConfig.zoom,
33506
+ onViewportChange: (viewport) => {
33507
+ setShowTransition(true);
33508
+ const uiViewport = __spreadProps(__spreadValues({}, viewport), {
33509
+ height: viewport.height || "auto",
33510
+ zoom: zoomConfig.zoom
33511
+ });
33512
+ const newUi = __spreadProps(__spreadValues({}, ui), {
33513
+ viewports: __spreadProps(__spreadValues({}, ui.viewports), { current: uiViewport })
33514
+ });
33515
+ setUi(newUi);
33516
+ if (ZOOM_ON_CHANGE) {
33517
+ resetAutoZoom(newUi);
33518
+ }
33519
+ },
33520
+ onZoom: (zoom) => {
33521
+ setShowTransition(true);
33522
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), { zoom }));
33523
+ }
33524
+ }
33525
+ ) }),
33526
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33527
+ "div",
33528
+ {
33529
+ className: getClassName24("root"),
33530
+ style: {
33531
+ width: iframe.enabled ? ui.viewports.current.width : void 0,
33532
+ height: zoomConfig.rootHeight,
33533
+ transform: iframe.enabled ? `scale(${zoomConfig.zoom})` : void 0,
33534
+ transition: showTransition ? "width 150ms ease-out, height 150ms ease-out, transform 150ms ease-out" : "",
33535
+ overflow: iframe.enabled ? void 0 : "auto"
33536
+ },
33537
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
33538
+ }
33539
+ ) })
33540
+ ]
33541
+ }
33542
+ );
33543
+ };
33544
+
32676
33545
  // 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);
33546
+ var import_jsx_runtime34 = require("react/jsx-runtime");
33547
+ var getClassName25 = get_class_name_factory_default("Puck", styles_default8);
32679
33548
  function Puck({
32680
33549
  children,
32681
33550
  config,
32682
33551
  data: initialData = { content: [], root: { props: { title: "" } } },
32683
- ui: initialUi = defaultAppState.ui,
33552
+ ui: initialUi,
32684
33553
  onChange,
32685
33554
  onPublish,
32686
33555
  plugins = [],
@@ -32688,32 +33557,63 @@ function Puck({
32688
33557
  renderHeader,
32689
33558
  renderHeaderActions,
32690
33559
  headerTitle,
32691
- headerPath
33560
+ headerPath,
33561
+ viewports = defaultViewports,
33562
+ iframe = {
33563
+ enabled: true
33564
+ }
32692
33565
  }) {
33566
+ var _a;
32693
33567
  const historyStore = useHistoryStore();
32694
- const [reducer] = (0, import_react26.useState)(
33568
+ const [reducer] = (0, import_react29.useState)(
32695
33569
  () => createReducer({ config, record: historyStore.record })
32696
33570
  );
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)(
33571
+ const [initialAppState] = (0, import_react29.useState)(() => {
33572
+ var _a2, _b, _c, _d;
33573
+ const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
33574
+ let clientUiState = {};
33575
+ if (typeof window !== "undefined") {
33576
+ const viewportWidth = window.innerWidth;
33577
+ const viewportDifferences = Object.entries(viewports).map(([key, value]) => ({
33578
+ key,
33579
+ diff: Math.abs(viewportWidth - value.width)
33580
+ })).sort((a, b) => a.diff > b.diff ? 1 : -1);
33581
+ const closestViewport = viewportDifferences[0].key;
33582
+ if (iframe.enabled) {
33583
+ clientUiState = __spreadProps(__spreadValues({}, window.matchMedia("(min-width: 638px)").matches ? {} : {
33584
+ leftSideBarVisible: false,
33585
+ rightSideBarVisible: false
33586
+ }), {
33587
+ viewports: __spreadProps(__spreadValues({}, initial.viewports), {
33588
+ current: __spreadProps(__spreadValues({}, initial.viewports.current), {
33589
+ height: ((_b = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b.height) || viewports[closestViewport].height || "auto",
33590
+ width: ((_d = (_c = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _c.current) == null ? void 0 : _d.width) || viewports[closestViewport].width
33591
+ })
33592
+ })
33593
+ });
33594
+ }
33595
+ }
33596
+ return __spreadProps(__spreadValues({}, defaultAppState), {
33597
+ data: initialData,
33598
+ ui: __spreadProps(__spreadValues(__spreadValues({}, initial), clientUiState), {
33599
+ // Store categories under componentList on state to allow render functions and plugins to modify
33600
+ componentList: config.categories ? Object.entries(config.categories).reduce(
33601
+ (acc, [categoryName, category]) => {
33602
+ return __spreadProps(__spreadValues({}, acc), {
33603
+ [categoryName]: {
33604
+ title: category.title,
33605
+ components: category.components,
33606
+ expanded: category.defaultExpanded,
33607
+ visible: category.visible
33608
+ }
33609
+ });
33610
+ },
33611
+ {}
33612
+ ) : {}
33613
+ })
33614
+ });
33615
+ });
33616
+ const [appState, dispatch] = (0, import_react29.useReducer)(
32717
33617
  reducer,
32718
33618
  flushZones(initialAppState)
32719
33619
  );
@@ -32724,9 +33624,9 @@ function Puck({
32724
33624
  config,
32725
33625
  dispatch
32726
33626
  );
32727
- const [menuOpen, setMenuOpen] = (0, import_react26.useState)(false);
33627
+ const [menuOpen, setMenuOpen] = (0, import_react29.useState)(false);
32728
33628
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
32729
- const setItemSelector = (0, import_react26.useCallback)(
33629
+ const setItemSelector = (0, import_react29.useCallback)(
32730
33630
  (newItemSelector) => {
32731
33631
  if (newItemSelector === itemSelector)
32732
33632
  return;
@@ -32739,21 +33639,21 @@ function Puck({
32739
33639
  [itemSelector]
32740
33640
  );
32741
33641
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
32742
- (0, import_react26.useEffect)(() => {
33642
+ (0, import_react29.useEffect)(() => {
32743
33643
  if (onChange)
32744
33644
  onChange(data);
32745
33645
  }, [data]);
32746
33646
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
32747
- const [draggedItem, setDraggedItem] = (0, import_react26.useState)();
33647
+ const [draggedItem, setDraggedItem] = (0, import_react29.useState)();
32748
33648
  const rootProps = data.root.props || data.root;
32749
- (0, import_react26.useEffect)(() => {
33649
+ (0, import_react29.useEffect)(() => {
32750
33650
  if (Object.keys(data.root).length > 0 && !data.root.props) {
32751
33651
  console.error(
32752
33652
  "Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
32753
33653
  );
32754
33654
  }
32755
33655
  }, []);
32756
- const toggleSidebars = (0, import_react26.useCallback)(
33656
+ const toggleSidebars = (0, import_react29.useCallback)(
32757
33657
  (sidebar) => {
32758
33658
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
32759
33659
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -32767,7 +33667,7 @@ function Puck({
32767
33667
  },
32768
33668
  [dispatch, leftSideBarVisible, rightSideBarVisible]
32769
33669
  );
32770
- (0, import_react26.useEffect)(() => {
33670
+ (0, import_react29.useEffect)(() => {
32771
33671
  if (!window.matchMedia("(min-width: 638px)").matches) {
32772
33672
  dispatch({
32773
33673
  type: "setUi",
@@ -32790,59 +33690,54 @@ function Puck({
32790
33690
  window.removeEventListener("resize", handleResize);
32791
33691
  };
32792
33692
  }, []);
32793
- const defaultRender = (0, import_react26.useMemo)(() => {
32794
- const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: children2 });
33693
+ const defaultRender = (0, import_react29.useMemo)(() => {
33694
+ const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
32795
33695
  return PuckDefault;
32796
33696
  }, []);
32797
- const defaultHeaderRender = (0, import_react26.useMemo)(() => {
33697
+ const defaultHeaderRender = (0, import_react29.useMemo)(() => {
32798
33698
  if (renderHeader) {
32799
33699
  console.warn(
32800
33700
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
32801
33701
  );
32802
- const RenderHeader = (_a) => {
32803
- var _b = _a, { actions } = _b, props = __objRest(_b, ["actions"]);
33702
+ const RenderHeader = (_a2) => {
33703
+ var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
32804
33704
  const Comp = renderHeader;
32805
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
33705
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
32806
33706
  };
32807
33707
  return RenderHeader;
32808
33708
  }
32809
33709
  return defaultRender;
32810
33710
  }, [renderHeader]);
32811
- const defaultHeaderActionsRender = (0, import_react26.useMemo)(() => {
33711
+ const defaultHeaderActionsRender = (0, import_react29.useMemo)(() => {
32812
33712
  if (renderHeaderActions) {
32813
33713
  console.warn(
32814
33714
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
32815
33715
  );
32816
33716
  const RenderHeader = (props) => {
32817
33717
  const Comp = renderHeaderActions;
32818
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
33718
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
32819
33719
  };
32820
33720
  return RenderHeader;
32821
33721
  }
32822
33722
  return defaultRender;
32823
33723
  }, [renderHeader]);
32824
- const loadedOverrides = (0, import_react26.useMemo)(() => {
33724
+ const loadedOverrides = (0, import_react29.useMemo)(() => {
32825
33725
  return loadOverrides({ overrides, plugins });
32826
33726
  }, [plugins]);
32827
- const CustomPuck = (0, import_react26.useMemo)(
33727
+ const CustomPuck = (0, import_react29.useMemo)(
32828
33728
  () => loadedOverrides.puck || defaultRender,
32829
33729
  [loadedOverrides]
32830
33730
  );
32831
- const CustomPreview = (0, import_react26.useMemo)(
32832
- () => loadedOverrides.preview || defaultRender,
32833
- [loadedOverrides]
32834
- );
32835
- const CustomHeader = (0, import_react26.useMemo)(
33731
+ const CustomHeader = (0, import_react29.useMemo)(
32836
33732
  () => loadedOverrides.header || defaultHeaderRender,
32837
33733
  [loadedOverrides]
32838
33734
  );
32839
- const CustomHeaderActions = (0, import_react26.useMemo)(
33735
+ const CustomHeaderActions = (0, import_react29.useMemo)(
32840
33736
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
32841
33737
  [loadedOverrides]
32842
33738
  );
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)(
33739
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "Puck", children: [
33740
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32846
33741
  AppProvider,
32847
33742
  {
32848
33743
  value: {
@@ -32853,10 +33748,12 @@ function Puck({
32853
33748
  resolveData,
32854
33749
  plugins,
32855
33750
  overrides: loadedOverrides,
32856
- history
33751
+ history,
33752
+ viewports,
33753
+ iframe
32857
33754
  },
32858
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32859
- import_dnd7.DragDropContext,
33755
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33756
+ DragDropContext,
32860
33757
  {
32861
33758
  onDragUpdate: (update) => {
32862
33759
  setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
@@ -32910,7 +33807,7 @@ function Puck({
32910
33807
  });
32911
33808
  }
32912
33809
  },
32913
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33810
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32914
33811
  DropZoneProvider,
32915
33812
  {
32916
33813
  value: {
@@ -32922,77 +33819,75 @@ function Puck({
32922
33819
  draggedItem,
32923
33820
  placeholderStyle,
32924
33821
  mode: "edit",
32925
- areaId: "root",
32926
- disableZoom
33822
+ areaId: "root"
32927
33823
  },
32928
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
33824
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
32929
33825
  "div",
32930
33826
  {
32931
- className: getClassName22({
33827
+ className: getClassName25({
32932
33828
  leftSideBarVisible,
32933
33829
  menuOpen,
32934
- rightSideBarVisible,
32935
- disableZoom
33830
+ rightSideBarVisible
32936
33831
  }),
32937
33832
  children: [
32938
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33833
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32939
33834
  CustomHeader,
32940
33835
  {
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)(
33836
+ actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
33837
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33838
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32944
33839
  Button,
32945
33840
  {
32946
33841
  onClick: () => {
32947
33842
  onPublish && onPublish(data);
32948
33843
  },
32949
- icon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Globe, { size: "14px" }),
33844
+ icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
32950
33845
  children: "Publish"
32951
33846
  }
32952
33847
  )
32953
33848
  ] }),
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)(
33849
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
33850
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
33851
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32957
33852
  IconButton,
32958
33853
  {
32959
33854
  onClick: () => {
32960
33855
  toggleSidebars("left");
32961
33856
  },
32962
33857
  title: "Toggle left sidebar",
32963
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelLeft, { focusable: "false" })
33858
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
32964
33859
  }
32965
33860
  ) }),
32966
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33861
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32967
33862
  IconButton,
32968
33863
  {
32969
33864
  onClick: () => {
32970
33865
  toggleSidebars("right");
32971
33866
  },
32972
33867
  title: "Toggle right sidebar",
32973
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelRight, { focusable: "false" })
33868
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
32974
33869
  }
32975
33870
  ) })
32976
33871
  ] }),
32977
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Heading, { rank: 2, size: "xs", children: [
33872
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading, { rank: 2, size: "xs", children: [
32978
33873
  headerTitle || rootProps.title || "Page",
32979
- headerPath && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
33874
+ headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
32980
33875
  " ",
32981
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("code", { className: getClassName22("headerPath"), children: headerPath })
33876
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
32982
33877
  ] })
32983
33878
  ] }) }),
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)(
33879
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
33880
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32986
33881
  IconButton,
32987
33882
  {
32988
33883
  onClick: () => {
32989
33884
  return setMenuOpen(!menuOpen);
32990
33885
  },
32991
33886
  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" })
33887
+ children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
32993
33888
  }
32994
33889
  ) }),
32995
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33890
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32996
33891
  MenuBar,
32997
33892
  {
32998
33893
  appState,
@@ -33000,7 +33895,7 @@ function Puck({
33000
33895
  dispatch,
33001
33896
  onPublish,
33002
33897
  menuOpen,
33003
- renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
33898
+ renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33004
33899
  setMenuOpen
33005
33900
  }
33006
33901
  )
@@ -33008,38 +33903,19 @@ function Puck({
33008
33903
  ] }) })
33009
33904
  }
33010
33905
  ),
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, {}) })
33906
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
33907
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
33908
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
33014
33909
  ] }),
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)(
33910
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
33911
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33036
33912
  SidebarSection,
33037
33913
  {
33038
33914
  noPadding: true,
33039
33915
  noBorderTop: true,
33040
33916
  showBreadcrumbs: true,
33041
- title: selectedItem ? selectedItem.type : "Page",
33042
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fields, {})
33917
+ title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
33918
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
33043
33919
  }
33044
33920
  ) })
33045
33921
  ]
@@ -33051,7 +33927,7 @@ function Puck({
33051
33927
  )
33052
33928
  }
33053
33929
  ),
33054
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "puck-portal-root" })
33930
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { id: "puck-portal-root" })
33055
33931
  ] });
33056
33932
  }
33057
33933
  Puck.Components = Components;
@@ -33061,13 +33937,13 @@ Puck.Preview = Preview;
33061
33937
 
33062
33938
  // components/Render/index.tsx
33063
33939
  init_react_import();
33064
- var import_jsx_runtime30 = require("react/jsx-runtime");
33940
+ var import_jsx_runtime35 = require("react/jsx-runtime");
33065
33941
  function Render({ config, data }) {
33066
33942
  var _a;
33067
33943
  const rootProps = data.root.props || data.root;
33068
33944
  const title = (rootProps == null ? void 0 : rootProps.title) || "";
33069
33945
  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)(
33946
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
33071
33947
  config.root.render,
33072
33948
  __spreadProps(__spreadValues({}, rootProps), {
33073
33949
  puck: {
@@ -33076,11 +33952,11 @@ function Render({ config, data }) {
33076
33952
  title,
33077
33953
  editMode: false,
33078
33954
  id: "puck-root",
33079
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId })
33955
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId })
33080
33956
  })
33081
33957
  ) });
33082
33958
  }
33083
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) });
33959
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId }) });
33084
33960
  }
33085
33961
 
33086
33962
  // lib/migrate.ts
@@ -33170,8 +34046,8 @@ var resolveAllData = (data, config, onResolveStart, onResolveEnd) => __async(voi
33170
34046
  // lib/use-puck.ts
33171
34047
  init_react_import();
33172
34048
  var usePuck = () => {
33173
- const { state: appState, config, dispatch } = useAppContext();
33174
- return { appState, config, dispatch };
34049
+ const { state: appState, config, history, dispatch } = useAppContext();
34050
+ return { appState, config, dispatch, history };
33175
34051
  };
33176
34052
  // Annotate the CommonJS export names for ESM import in node:
33177
34053
  0 && (module.exports = {
@@ -33375,6 +34251,14 @@ lucide-react/dist/esm/icons/lock.js:
33375
34251
  * See the LICENSE file in the root directory of this source tree.
33376
34252
  *)
33377
34253
 
34254
+ lucide-react/dist/esm/icons/monitor.js:
34255
+ (**
34256
+ * @license lucide-react v0.298.0 - ISC
34257
+ *
34258
+ * This source code is licensed under the ISC license.
34259
+ * See the LICENSE file in the root directory of this source tree.
34260
+ *)
34261
+
33378
34262
  lucide-react/dist/esm/icons/more-vertical.js:
33379
34263
  (**
33380
34264
  * @license lucide-react v0.298.0 - ISC
@@ -33415,6 +34299,30 @@ lucide-react/dist/esm/icons/search.js:
33415
34299
  * See the LICENSE file in the root directory of this source tree.
33416
34300
  *)
33417
34301
 
34302
+ lucide-react/dist/esm/icons/sliders-horizontal.js:
34303
+ (**
34304
+ * @license lucide-react v0.298.0 - ISC
34305
+ *
34306
+ * This source code is licensed under the ISC license.
34307
+ * See the LICENSE file in the root directory of this source tree.
34308
+ *)
34309
+
34310
+ lucide-react/dist/esm/icons/smartphone.js:
34311
+ (**
34312
+ * @license lucide-react v0.298.0 - ISC
34313
+ *
34314
+ * This source code is licensed under the ISC license.
34315
+ * See the LICENSE file in the root directory of this source tree.
34316
+ *)
34317
+
34318
+ lucide-react/dist/esm/icons/tablet.js:
34319
+ (**
34320
+ * @license lucide-react v0.298.0 - ISC
34321
+ *
34322
+ * This source code is licensed under the ISC license.
34323
+ * See the LICENSE file in the root directory of this source tree.
34324
+ *)
34325
+
33418
34326
  lucide-react/dist/esm/icons/trash.js:
33419
34327
  (**
33420
34328
  * @license lucide-react v0.298.0 - ISC
@@ -33439,6 +34347,22 @@ lucide-react/dist/esm/icons/unlock.js:
33439
34347
  * See the LICENSE file in the root directory of this source tree.
33440
34348
  *)
33441
34349
 
34350
+ lucide-react/dist/esm/icons/zoom-in.js:
34351
+ (**
34352
+ * @license lucide-react v0.298.0 - ISC
34353
+ *
34354
+ * This source code is licensed under the ISC license.
34355
+ * See the LICENSE file in the root directory of this source tree.
34356
+ *)
34357
+
34358
+ lucide-react/dist/esm/icons/zoom-out.js:
34359
+ (**
34360
+ * @license lucide-react v0.298.0 - ISC
34361
+ *
34362
+ * This source code is licensed under the ISC license.
34363
+ * See the LICENSE file in the root directory of this source tree.
34364
+ *)
34365
+
33442
34366
  lucide-react/dist/esm/lucide-react.js:
33443
34367
  (**
33444
34368
  * @license lucide-react v0.298.0 - ISC