@measured/puck 0.14.0-canary.55740c4 → 0.14.0-canary.70cf177

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -8264,8 +8264,8 @@ var require_react_dom_development = __commonJS({
8264
8264
  if (propertyInfo !== null) {
8265
8265
  return !propertyInfo.acceptsBooleans;
8266
8266
  } else {
8267
- var prefix2 = name.toLowerCase().slice(0, 5);
8268
- return prefix2 !== "data-" && prefix2 !== "aria-";
8267
+ var prefix3 = name.toLowerCase().slice(0, 5);
8268
+ return prefix3 !== "data-" && prefix3 !== "aria-";
8269
8269
  }
8270
8270
  }
8271
8271
  default:
@@ -8937,18 +8937,18 @@ var require_react_dom_development = __commonJS({
8937
8937
  }
8938
8938
  }
8939
8939
  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
8940
- var prefix;
8940
+ var prefix2;
8941
8941
  function describeBuiltInComponentFrame(name, source, ownerFn) {
8942
8942
  {
8943
- if (prefix === void 0) {
8943
+ if (prefix2 === void 0) {
8944
8944
  try {
8945
8945
  throw Error();
8946
8946
  } catch (x) {
8947
8947
  var match = x.stack.trim().match(/\n( *(at )?)/);
8948
- prefix = match && match[1] || "";
8948
+ prefix2 = match && match[1] || "";
8949
8949
  }
8950
8950
  }
8951
- return "\n" + prefix + name;
8951
+ return "\n" + prefix2 + name;
8952
8952
  }
8953
8953
  }
8954
8954
  var reentry = false;
@@ -10033,13 +10033,13 @@ var require_react_dom_development = __commonJS({
10033
10033
  strokeOpacity: true,
10034
10034
  strokeWidth: true
10035
10035
  };
10036
- function prefixKey(prefix2, key) {
10037
- return prefix2 + key.charAt(0).toUpperCase() + key.substring(1);
10036
+ function prefixKey(prefix3, key) {
10037
+ return prefix3 + key.charAt(0).toUpperCase() + key.substring(1);
10038
10038
  }
10039
10039
  var prefixes = ["Webkit", "ms", "Moz", "O"];
10040
10040
  Object.keys(isUnitlessNumber).forEach(function(prop) {
10041
- prefixes.forEach(function(prefix2) {
10042
- isUnitlessNumber[prefixKey(prefix2, prop)] = isUnitlessNumber[prop];
10041
+ prefixes.forEach(function(prefix3) {
10042
+ isUnitlessNumber[prefixKey(prefix3, prop)] = isUnitlessNumber[prop];
10043
10043
  });
10044
10044
  });
10045
10045
  function dangerousStyleValue(name, value, isCustomProperty) {
@@ -29173,7 +29173,7 @@ var import_react2 = require("react");
29173
29173
 
29174
29174
  // css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css#css-module
29175
29175
  init_react_import();
29176
- var Button_module_default = { "Button": "_Button_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" };
29176
+ var Button_module_default = { "Button": "_Button_8fn3a_1", "Button--medium": "_Button--medium_8fn3a_29", "Button--large": "_Button--large_8fn3a_37", "Button-icon": "_Button-icon_8fn3a_44", "Button--primary": "_Button--primary_8fn3a_48", "Button--secondary": "_Button--secondary_8fn3a_67", "Button--flush": "_Button--flush_8fn3a_82", "Button--disabled": "_Button--disabled_8fn3a_86", "Button--fullWidth": "_Button--fullWidth_8fn3a_93", "Button-spinner": "_Button-spinner_8fn3a_98" };
29177
29177
 
29178
29178
  // lib/get-class-name-factory.ts
29179
29179
  init_react_import();
@@ -29227,7 +29227,7 @@ var Button = ({
29227
29227
  }) => {
29228
29228
  const [loading, setLoading] = (0, import_react2.useState)(loadingProp);
29229
29229
  (0, import_react2.useEffect)(() => setLoading(loadingProp), [loadingProp]);
29230
- const ElementType = href ? "a" : onClick ? "button" : "div";
29230
+ const ElementType = href ? "a" : type ? "button" : "span";
29231
29231
  const el = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
29232
29232
  ElementType,
29233
29233
  {
@@ -29255,10 +29255,7 @@ var Button = ({
29255
29255
  children: [
29256
29256
  icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: getClassName("icon"), children: icon }),
29257
29257
  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
- ] })
29258
+ 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
29259
  ]
29263
29260
  }
29264
29261
  );
@@ -29267,16 +29264,181 @@ var Button = ({
29267
29264
 
29268
29265
  // components/Drawer/index.tsx
29269
29266
  init_react_import();
29270
- var import_dnd2 = require("@hello-pangea/dnd");
29267
+
29268
+ // components/Droppable/index.tsx
29269
+ init_react_import();
29270
+ var import_dnd = require("@measured/dnd");
29271
+
29272
+ // components/Puck/context.tsx
29273
+ init_react_import();
29274
+ var import_react3 = require("react");
29275
+
29276
+ // lib/get-item.ts
29277
+ init_react_import();
29278
+
29279
+ // lib/root-droppable-id.ts
29280
+ init_react_import();
29281
+ var rootDroppableId = "default-zone";
29282
+
29283
+ // lib/setup-zone.ts
29284
+ init_react_import();
29285
+ var setupZone = (data, zoneKey) => {
29286
+ if (zoneKey === rootDroppableId) {
29287
+ return data;
29288
+ }
29289
+ const newData = __spreadValues({}, data);
29290
+ newData.zones = data.zones || {};
29291
+ newData.zones[zoneKey] = newData.zones[zoneKey] || [];
29292
+ return newData;
29293
+ };
29294
+
29295
+ // lib/get-item.ts
29296
+ var getItem = (selector, data, dynamicProps = {}) => {
29297
+ if (!selector.zone || selector.zone === rootDroppableId) {
29298
+ const item2 = data.content[selector.index];
29299
+ return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
29300
+ }
29301
+ const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
29302
+ return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
29303
+ };
29304
+
29305
+ // components/ViewportControls/default-viewports.ts
29306
+ init_react_import();
29307
+ var defaultViewports = [
29308
+ { width: 360, height: "auto", icon: "Smartphone", label: "Small" },
29309
+ { width: 768, height: "auto", icon: "Tablet", label: "Medium" },
29310
+ { width: 1280, height: "auto", icon: "Monitor", label: "Large" }
29311
+ ];
29312
+
29313
+ // components/Puck/context.tsx
29314
+ var import_jsx_runtime2 = require("react/jsx-runtime");
29315
+ var defaultAppState = {
29316
+ data: { content: [], root: { props: { title: "" } } },
29317
+ ui: {
29318
+ leftSideBarVisible: true,
29319
+ rightSideBarVisible: true,
29320
+ arrayState: {},
29321
+ itemSelector: null,
29322
+ componentList: {},
29323
+ isDragging: false,
29324
+ viewports: {
29325
+ current: {
29326
+ width: defaultViewports[0].width,
29327
+ height: defaultViewports[0].height || "auto"
29328
+ },
29329
+ options: [],
29330
+ controlsVisible: true
29331
+ }
29332
+ }
29333
+ };
29334
+ var defaultContext = {
29335
+ state: defaultAppState,
29336
+ dispatch: () => null,
29337
+ config: { components: {} },
29338
+ componentState: {},
29339
+ resolveData: () => {
29340
+ },
29341
+ plugins: [],
29342
+ overrides: {},
29343
+ history: {},
29344
+ viewports: defaultViewports,
29345
+ zoomConfig: {
29346
+ autoZoom: 0,
29347
+ rootHeight: 0,
29348
+ zoom: 1
29349
+ },
29350
+ setZoomConfig: () => null,
29351
+ status: "LOADING"
29352
+ };
29353
+ var appContext = (0, import_react3.createContext)(defaultContext);
29354
+ var AppProvider = ({
29355
+ children,
29356
+ value
29357
+ }) => {
29358
+ const [zoomConfig, setZoomConfig] = (0, import_react3.useState)(defaultContext.zoomConfig);
29359
+ const [status, setStatus] = (0, import_react3.useState)("LOADING");
29360
+ (0, import_react3.useEffect)(() => {
29361
+ setStatus("READY");
29362
+ }, []);
29363
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29364
+ appContext.Provider,
29365
+ {
29366
+ value: __spreadProps(__spreadValues({}, value), { zoomConfig, setZoomConfig, status }),
29367
+ children
29368
+ }
29369
+ );
29370
+ };
29371
+ function useAppContext() {
29372
+ const mainContext = (0, import_react3.useContext)(appContext);
29373
+ const selectedItem = mainContext.state.ui.itemSelector ? getItem(mainContext.state.ui.itemSelector, mainContext.state.data) : void 0;
29374
+ return __spreadProps(__spreadValues({}, mainContext), {
29375
+ // Helpers
29376
+ selectedItem,
29377
+ setUi: (ui, recordHistory) => {
29378
+ return mainContext.dispatch({
29379
+ type: "setUi",
29380
+ ui,
29381
+ recordHistory
29382
+ });
29383
+ }
29384
+ });
29385
+ }
29386
+
29387
+ // components/Droppable/index.tsx
29388
+ var import_jsx_runtime3 = require("react/jsx-runtime");
29389
+ var defaultProvided = {
29390
+ droppableProps: {
29391
+ "data-rfd-droppable-context-id": "",
29392
+ "data-rfd-droppable-id": ""
29393
+ },
29394
+ placeholder: null,
29395
+ innerRef: () => null
29396
+ };
29397
+ var defaultSnapshot = {
29398
+ isDraggingOver: false,
29399
+ draggingOverWith: null,
29400
+ draggingFromThisWith: null,
29401
+ isUsingPlaceholder: false
29402
+ };
29403
+ var DefaultDroppable = ({ children }) => children(defaultProvided, defaultSnapshot);
29404
+ var Droppable = (props) => {
29405
+ const { status } = useAppContext();
29406
+ const El = status === "READY" ? import_dnd.Droppable : DefaultDroppable;
29407
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, __spreadValues({}, props));
29408
+ };
29271
29409
 
29272
29410
  // css-module:/home/runner/work/puck/puck/packages/core/components/Drawer/styles.module.css#css-module
29273
29411
  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" };
29412
+ var styles_module_default = { "Drawer": "_Drawer_6zh0b_1", "DrawerItem-default": "_DrawerItem-default_6zh0b_5", "DrawerItem-draggableWrapper": "_DrawerItem-draggableWrapper_6zh0b_5", "DrawerItem": "_DrawerItem_6zh0b_5", "DrawerItem-draggable": "_DrawerItem-draggable_6zh0b_5", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_6zh0b_31", "DrawerItem-name": "_DrawerItem-name_6zh0b_47" };
29275
29413
 
29276
29414
  // components/Draggable/index.tsx
29277
29415
  init_react_import();
29278
- var import_dnd = require("@hello-pangea/dnd");
29279
- var import_jsx_runtime2 = require("react/jsx-runtime");
29416
+ var import_dnd2 = require("@measured/dnd");
29417
+ var import_jsx_runtime4 = require("react/jsx-runtime");
29418
+ var defaultProvided2 = {
29419
+ draggableProps: {
29420
+ "data-rfd-draggable-context-id": "",
29421
+ "data-rfd-draggable-id": ""
29422
+ },
29423
+ dragHandleProps: null,
29424
+ innerRef: () => null
29425
+ };
29426
+ var defaultSnapshot2 = {
29427
+ isDragging: false,
29428
+ isDropAnimating: false,
29429
+ isClone: false,
29430
+ dropAnimation: null,
29431
+ draggingOver: null,
29432
+ combineWith: null,
29433
+ combineTargetFor: null,
29434
+ mode: null
29435
+ };
29436
+ var defaultRubric = {
29437
+ draggableId: "",
29438
+ type: "",
29439
+ source: { droppableId: "", index: 0 }
29440
+ };
29441
+ var DefaultDraggable = ({ children }) => children(defaultProvided2, defaultSnapshot2, defaultRubric);
29280
29442
  var Draggable = ({
29281
29443
  className,
29282
29444
  children,
@@ -29286,39 +29448,33 @@ var Draggable = ({
29286
29448
  disableAnimations = false,
29287
29449
  isDragDisabled = false
29288
29450
  }) => {
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
- );
29451
+ const { status } = useAppContext();
29452
+ const El = status === "READY" ? import_dnd2.Draggable : DefaultDraggable;
29453
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => {
29454
+ var _a;
29455
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
29456
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29457
+ "div",
29458
+ __spreadProps(__spreadValues(__spreadValues({
29459
+ className: className && className(provided, snapshot),
29460
+ ref: provided.innerRef
29461
+ }, provided.draggableProps), provided.dragHandleProps), {
29462
+ style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
29463
+ transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
29464
+ }),
29465
+ children: children(provided, snapshot)
29466
+ })
29467
+ ),
29468
+ showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29469
+ "div",
29470
+ {
29471
+ className: className && className(provided, snapshot),
29472
+ style: { transform: "none !important" },
29473
+ children: children(provided, snapshot)
29474
+ }
29475
+ )
29476
+ ] });
29477
+ } });
29322
29478
  };
29323
29479
 
29324
29480
  // components/DragIcon/index.tsx
@@ -29350,26 +29506,26 @@ var replace = (list, index, newItem) => {
29350
29506
 
29351
29507
  // css-module:/home/runner/work/puck/puck/packages/core/components/DragIcon/styles.module.css#css-module
29352
29508
  init_react_import();
29353
- var styles_module_default2 = { "DragIcon": "_DragIcon_o29on_1" };
29509
+ var styles_module_default2 = { "DragIcon": "_DragIcon_1p5wn_1" };
29354
29510
 
29355
29511
  // components/DragIcon/index.tsx
29356
- var import_jsx_runtime3 = require("react/jsx-runtime");
29512
+ var import_jsx_runtime5 = require("react/jsx-runtime");
29357
29513
  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" }) }) });
29514
+ 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
29515
 
29360
29516
  // components/Drawer/index.tsx
29361
- var import_react3 = require("react");
29362
- var import_jsx_runtime4 = require("react/jsx-runtime");
29517
+ var import_react4 = require("react");
29518
+ var import_jsx_runtime6 = require("react/jsx-runtime");
29363
29519
  var getClassName3 = get_class_name_factory_default("Drawer", styles_module_default);
29364
29520
  var getClassNameItem = get_class_name_factory_default("DrawerItem", styles_module_default);
29365
- var drawerContext = (0, import_react3.createContext)({
29521
+ var drawerContext = (0, import_react4.createContext)({
29366
29522
  droppableId: ""
29367
29523
  });
29368
29524
  var DrawerDraggable = ({
29369
29525
  children,
29370
29526
  id,
29371
29527
  index
29372
- }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
29528
+ }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
29373
29529
  Draggable,
29374
29530
  {
29375
29531
  id,
@@ -29385,17 +29541,18 @@ var DrawerItem = ({
29385
29541
  name,
29386
29542
  children,
29387
29543
  id,
29544
+ label,
29388
29545
  index
29389
29546
  }) => {
29390
- const ctx = (0, import_react3.useContext)(drawerContext);
29547
+ const ctx = (0, import_react4.useContext)(drawerContext);
29391
29548
  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 })),
29549
+ const CustomInner = (0, import_react4.useMemo)(
29550
+ () => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("default"), children: children2 })),
29394
29551
  [children]
29395
29552
  );
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, {}) })
29553
+ 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: [
29554
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("name"), children: label != null ? label : name }),
29555
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DragIcon, {}) })
29399
29556
  ] }) }) }) });
29400
29557
  };
29401
29558
  var Drawer = ({
@@ -29403,7 +29560,7 @@ var Drawer = ({
29403
29560
  droppableId = "component-list",
29404
29561
  direction = "vertical"
29405
29562
  }) => {
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)(
29563
+ 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
29564
  "div",
29408
29565
  __spreadProps(__spreadValues({}, provided.droppableProps), {
29409
29566
  ref: provided.innerRef,
@@ -29412,7 +29569,7 @@ var Drawer = ({
29412
29569
  }),
29413
29570
  children: [
29414
29571
  children,
29415
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
29572
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
29416
29573
  ]
29417
29574
  })
29418
29575
  ) }) });
@@ -29425,19 +29582,19 @@ var import_react9 = require("react");
29425
29582
 
29426
29583
  // components/DraggableComponent/index.tsx
29427
29584
  init_react_import();
29428
- var import_react6 = require("react");
29429
- var import_dnd3 = require("@hello-pangea/dnd");
29585
+ var import_react7 = require("react");
29586
+ var import_dnd3 = require("@measured/dnd");
29430
29587
 
29431
29588
  // css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
29432
29589
  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" };
29590
+ var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_175tf_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_175tf_11", "DraggableComponent-contents": "_DraggableComponent-contents_175tf_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_175tf_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_175tf_49", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_175tf_65", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_175tf_71", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_175tf_76", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_175tf_81", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_175tf_97", "DraggableComponent-actions": "_DraggableComponent-actions_175tf_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_175tf_127", "DraggableComponent-action": "_DraggableComponent-action_175tf_97" };
29434
29591
 
29435
29592
  // ../../node_modules/lucide-react/dist/esm/lucide-react.js
29436
29593
  init_react_import();
29437
29594
 
29438
29595
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
29439
29596
  init_react_import();
29440
- var import_react4 = require("react");
29597
+ var import_react5 = require("react");
29441
29598
 
29442
29599
  // ../../node_modules/lucide-react/dist/esm/defaultAttributes.js
29443
29600
  init_react_import();
@@ -29456,10 +29613,10 @@ var defaultAttributes = {
29456
29613
  // ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
29457
29614
  var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim();
29458
29615
  var createLucideIcon = (iconName, iconNode) => {
29459
- const Component = (0, import_react4.forwardRef)(
29616
+ const Component = (0, import_react5.forwardRef)(
29460
29617
  (_a, ref) => {
29461
29618
  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)(
29619
+ return (0, import_react5.createElement)(
29463
29620
  "svg",
29464
29621
  __spreadValues(__spreadProps(__spreadValues({
29465
29622
  ref
@@ -29471,7 +29628,7 @@ var createLucideIcon = (iconName, iconNode) => {
29471
29628
  className: ["lucide", `lucide-${toKebabCase(iconName)}`, className].join(" ")
29472
29629
  }), rest),
29473
29630
  [
29474
- ...iconNode.map(([tag, attrs]) => (0, import_react4.createElement)(tag, attrs)),
29631
+ ...iconNode.map(([tag, attrs]) => (0, import_react5.createElement)(tag, attrs)),
29475
29632
  ...Array.isArray(children) ? children : [children]
29476
29633
  ]
29477
29634
  );
@@ -29582,6 +29739,14 @@ var Lock = createLucideIcon("Lock", [
29582
29739
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
29583
29740
  ]);
29584
29741
 
29742
+ // ../../node_modules/lucide-react/dist/esm/icons/monitor.js
29743
+ init_react_import();
29744
+ var Monitor = createLucideIcon("Monitor", [
29745
+ ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
29746
+ ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
29747
+ ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
29748
+ ]);
29749
+
29585
29750
  // ../../node_modules/lucide-react/dist/esm/icons/more-vertical.js
29586
29751
  init_react_import();
29587
29752
  var MoreVertical = createLucideIcon("MoreVertical", [
@@ -29618,6 +29783,34 @@ var Search = createLucideIcon("Search", [
29618
29783
  ["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
29619
29784
  ]);
29620
29785
 
29786
+ // ../../node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js
29787
+ init_react_import();
29788
+ var SlidersHorizontal = createLucideIcon("SlidersHorizontal", [
29789
+ ["line", { x1: "21", x2: "14", y1: "4", y2: "4", key: "obuewd" }],
29790
+ ["line", { x1: "10", x2: "3", y1: "4", y2: "4", key: "1q6298" }],
29791
+ ["line", { x1: "21", x2: "12", y1: "12", y2: "12", key: "1iu8h1" }],
29792
+ ["line", { x1: "8", x2: "3", y1: "12", y2: "12", key: "ntss68" }],
29793
+ ["line", { x1: "21", x2: "16", y1: "20", y2: "20", key: "14d8ph" }],
29794
+ ["line", { x1: "12", x2: "3", y1: "20", y2: "20", key: "m0wm8r" }],
29795
+ ["line", { x1: "14", x2: "14", y1: "2", y2: "6", key: "14e1ph" }],
29796
+ ["line", { x1: "8", x2: "8", y1: "10", y2: "14", key: "1i6ji0" }],
29797
+ ["line", { x1: "16", x2: "16", y1: "18", y2: "22", key: "1lctlv" }]
29798
+ ]);
29799
+
29800
+ // ../../node_modules/lucide-react/dist/esm/icons/smartphone.js
29801
+ init_react_import();
29802
+ var Smartphone = createLucideIcon("Smartphone", [
29803
+ ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
29804
+ ["path", { d: "M12 18h.01", key: "mhygvu" }]
29805
+ ]);
29806
+
29807
+ // ../../node_modules/lucide-react/dist/esm/icons/tablet.js
29808
+ init_react_import();
29809
+ var Tablet = createLucideIcon("Tablet", [
29810
+ ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
29811
+ ["line", { x1: "12", x2: "12.01", y1: "18", y2: "18", key: "1dp563" }]
29812
+ ]);
29813
+
29621
29814
  // ../../node_modules/lucide-react/dist/esm/icons/trash.js
29622
29815
  init_react_import();
29623
29816
  var Trash = createLucideIcon("Trash", [
@@ -29641,12 +29834,29 @@ var Unlock = createLucideIcon("Unlock", [
29641
29834
  ["path", { d: "M7 11V7a5 5 0 0 1 9.9-1", key: "1mm8w8" }]
29642
29835
  ]);
29643
29836
 
29837
+ // ../../node_modules/lucide-react/dist/esm/icons/zoom-in.js
29838
+ init_react_import();
29839
+ var ZoomIn = createLucideIcon("ZoomIn", [
29840
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
29841
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
29842
+ ["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
29843
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
29844
+ ]);
29845
+
29846
+ // ../../node_modules/lucide-react/dist/esm/icons/zoom-out.js
29847
+ init_react_import();
29848
+ var ZoomOut = createLucideIcon("ZoomOut", [
29849
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
29850
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
29851
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
29852
+ ]);
29853
+
29644
29854
  // lib/use-modifier-held.ts
29645
29855
  init_react_import();
29646
- var import_react5 = require("react");
29856
+ var import_react6 = require("react");
29647
29857
  var useModifierHeld = (modifier) => {
29648
- const [modifierHeld, setModifierHeld] = (0, import_react5.useState)(false);
29649
- (0, import_react5.useEffect)(() => {
29858
+ const [modifierHeld, setModifierHeld] = (0, import_react6.useState)(false);
29859
+ (0, import_react6.useEffect)(() => {
29650
29860
  function downHandler({ key }) {
29651
29861
  if (key === modifier) {
29652
29862
  setModifierHeld(true);
@@ -29669,8 +29879,12 @@ var useModifierHeld = (modifier) => {
29669
29879
 
29670
29880
  // components/DraggableComponent/index.tsx
29671
29881
  var import_react_spinners2 = require("react-spinners");
29672
- var import_jsx_runtime5 = require("react/jsx-runtime");
29882
+ var import_jsx_runtime7 = require("react/jsx-runtime");
29673
29883
  var getClassName4 = get_class_name_factory_default("DraggableComponent", styles_module_default3);
29884
+ var space = 8;
29885
+ var actionsOverlayTop = space * 6.5;
29886
+ var actionsTop = -(actionsOverlayTop - 8);
29887
+ var actionsRight = space;
29674
29888
  var DraggableComponent = ({
29675
29889
  children,
29676
29890
  id,
@@ -29693,91 +29907,74 @@ var DraggableComponent = ({
29693
29907
  indicativeHover = false,
29694
29908
  style
29695
29909
  }) => {
29910
+ const { zoomConfig } = useAppContext();
29696
29911
  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;
29762
- };
29763
-
29764
- // lib/get-item.ts
29765
- var getItem = (selector, data, dynamicProps = {}) => {
29766
- if (!selector.zone || selector.zone === rootDroppableId) {
29767
- const item2 = data.content[selector.index];
29768
- return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
29769
- }
29770
- const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
29771
- return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
29912
+ const { status } = useAppContext();
29913
+ const El = status === "READY" ? import_dnd3.Draggable : DefaultDraggable;
29914
+ (0, import_react7.useEffect)(onMount, []);
29915
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29916
+ "div",
29917
+ __spreadProps(__spreadValues(__spreadValues({
29918
+ ref: provided.innerRef
29919
+ }, provided.draggableProps), provided.dragHandleProps), {
29920
+ className: getClassName4({
29921
+ isSelected,
29922
+ isModifierHeld,
29923
+ isDragging: snapshot.isDragging,
29924
+ isLocked,
29925
+ forceHover,
29926
+ indicativeHover
29927
+ }),
29928
+ style: __spreadProps(__spreadValues(__spreadValues({}, style), provided.draggableProps.style), {
29929
+ cursor: isModifierHeld ? "initial" : "grab"
29930
+ }),
29931
+ onMouseOver,
29932
+ onMouseOut,
29933
+ onMouseDown,
29934
+ onMouseUp,
29935
+ onClick,
29936
+ children: [
29937
+ debug,
29938
+ 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" }) }),
29939
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
29940
+ "div",
29941
+ {
29942
+ className: getClassName4("actionsOverlay"),
29943
+ style: {
29944
+ top: actionsOverlayTop / zoomConfig.zoom
29945
+ },
29946
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
29947
+ "div",
29948
+ {
29949
+ className: getClassName4("actions"),
29950
+ style: {
29951
+ transform: `scale(${1 / zoomConfig.zoom}`,
29952
+ top: actionsTop / zoomConfig.zoom,
29953
+ right: actionsRight / zoomConfig.zoom
29954
+ },
29955
+ children: [
29956
+ label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
29957
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Copy, { size: 16 }) }),
29958
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Trash, { size: 16 }) })
29959
+ ]
29960
+ }
29961
+ )
29962
+ }
29963
+ ),
29964
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("overlay") }),
29965
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("contents"), children })
29966
+ ]
29967
+ })
29968
+ ) }, id);
29772
29969
  };
29773
29970
 
29774
29971
  // css-module:/home/runner/work/puck/puck/packages/core/components/DropZone/styles.module.css#css-module
29775
29972
  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" };
29973
+ var styles_module_default4 = { "DropZone": "_DropZone_jtf9d_1", "DropZone-content": "_DropZone-content_jtf9d_10", "DropZone--userIsDragging": "_DropZone--userIsDragging_jtf9d_15", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_jtf9d_19", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_jtf9d_20", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_jtf9d_26", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_jtf9d_27", "DropZone--isDisabled": "_DropZone--isDisabled_jtf9d_28", "DropZone--isRootZone": "_DropZone--isRootZone_jtf9d_29", "DropZone--hasChildren": "_DropZone--hasChildren_jtf9d_30", "DropZone--isDestination": "_DropZone--isDestination_jtf9d_40", "DropZone-item": "_DropZone-item_jtf9d_48", "DropZone-hitbox": "_DropZone-hitbox_jtf9d_52" };
29777
29974
 
29778
29975
  // components/DropZone/context.tsx
29779
29976
  init_react_import();
29780
- var import_react7 = require("react");
29977
+ var import_react8 = require("react");
29781
29978
  var import_use_debounce = require("use-debounce");
29782
29979
 
29783
29980
  // lib/get-zone-id.ts
@@ -29793,30 +29990,30 @@ var getZoneId = (zoneCompound) => {
29793
29990
  };
29794
29991
 
29795
29992
  // components/DropZone/context.tsx
29796
- var import_jsx_runtime6 = require("react/jsx-runtime");
29797
- var dropZoneContext = (0, import_react7.createContext)(null);
29993
+ var import_jsx_runtime8 = require("react/jsx-runtime");
29994
+ var dropZoneContext = (0, import_react8.createContext)(null);
29798
29995
  var DropZoneProvider = ({
29799
29996
  children,
29800
29997
  value
29801
29998
  }) => {
29802
- const [hoveringArea, setHoveringArea] = (0, import_react7.useState)(null);
29803
- const [hoveringZone, setHoveringZone] = (0, import_react7.useState)(
29999
+ const [hoveringArea, setHoveringArea] = (0, import_react8.useState)(null);
30000
+ const [hoveringZone, setHoveringZone] = (0, import_react8.useState)(
29804
30001
  rootDroppableId
29805
30002
  );
29806
- const [hoveringComponent, setHoveringComponent] = (0, import_react7.useState)();
30003
+ const [hoveringComponent, setHoveringComponent] = (0, import_react8.useState)();
29807
30004
  const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
29808
- const [areasWithZones, setAreasWithZones] = (0, import_react7.useState)(
30005
+ const [areasWithZones, setAreasWithZones] = (0, import_react8.useState)(
29809
30006
  {}
29810
30007
  );
29811
- const [activeZones, setActiveZones] = (0, import_react7.useState)({});
30008
+ const [activeZones, setActiveZones] = (0, import_react8.useState)({});
29812
30009
  const { dispatch = null } = value ? value : {};
29813
- const registerZoneArea = (0, import_react7.useCallback)(
30010
+ const registerZoneArea = (0, import_react8.useCallback)(
29814
30011
  (area) => {
29815
30012
  setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
29816
30013
  },
29817
30014
  [setAreasWithZones]
29818
30015
  );
29819
- const registerZone = (0, import_react7.useCallback)(
30016
+ const registerZone = (0, import_react8.useCallback)(
29820
30017
  (zoneCompound) => {
29821
30018
  if (!dispatch) {
29822
30019
  return;
@@ -29829,7 +30026,7 @@ var DropZoneProvider = ({
29829
30026
  },
29830
30027
  [setActiveZones, dispatch]
29831
30028
  );
29832
- const unregisterZone = (0, import_react7.useCallback)(
30029
+ const unregisterZone = (0, import_react8.useCallback)(
29833
30030
  (zoneCompound) => {
29834
30031
  if (!dispatch) {
29835
30032
  return;
@@ -29844,8 +30041,8 @@ var DropZoneProvider = ({
29844
30041
  },
29845
30042
  [setActiveZones, dispatch]
29846
30043
  );
29847
- const [pathData, setPathData] = (0, import_react7.useState)();
29848
- const registerPath = (0, import_react7.useCallback)(
30044
+ const [pathData, setPathData] = (0, import_react8.useState)();
30045
+ const registerPath = (0, import_react8.useCallback)(
29849
30046
  (selector) => {
29850
30047
  if (!(value == null ? void 0 : value.data)) {
29851
30048
  return;
@@ -29870,7 +30067,8 @@ var DropZoneProvider = ({
29870
30067
  },
29871
30068
  [value, setPathData]
29872
30069
  );
29873
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
30070
+ const [zoneWillDrag, setZoneWillDrag] = (0, import_react8.useState)("");
30071
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
29874
30072
  dropZoneContext.Provider,
29875
30073
  {
29876
30074
  value: __spreadValues({
@@ -29886,57 +30084,17 @@ var DropZoneProvider = ({
29886
30084
  unregisterZone,
29887
30085
  activeZones,
29888
30086
  registerPath,
29889
- pathData
30087
+ pathData,
30088
+ zoneWillDrag,
30089
+ setZoneWillDrag
29890
30090
  }, value),
29891
30091
  children
29892
30092
  }
29893
30093
  ) });
29894
30094
  };
29895
30095
 
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
30096
  // components/DropZone/index.tsx
29939
- var import_jsx_runtime7 = require("react/jsx-runtime");
30097
+ var import_jsx_runtime9 = require("react/jsx-runtime");
29940
30098
  var getClassName5 = get_class_name_factory_default("DropZone", styles_module_default4);
29941
30099
  function DropZoneEdit({ zone, allow, disallow, style }) {
29942
30100
  var _a;
@@ -29955,7 +30113,8 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29955
30113
  registerZoneArea,
29956
30114
  areasWithZones,
29957
30115
  hoveringComponent,
29958
- disableZoom = false
30116
+ zoneWillDrag,
30117
+ setZoneWillDrag = () => null
29959
30118
  } = ctx || {};
29960
30119
  let content = data.content || [];
29961
30120
  let zoneCompound = rootDroppableId;
@@ -29985,12 +30144,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
29985
30144
  const draggedDestinationId = draggedItem && ((_a = draggedItem.destination) == null ? void 0 : _a.droppableId);
29986
30145
  const [zoneArea] = getZoneId(zoneCompound);
29987
30146
  const [draggedSourceArea] = getZoneId(draggedSourceId);
29988
- const [userWillDrag, setUserWillDrag] = (0, import_react9.useState)(false);
30147
+ const userWillDrag = zoneWillDrag === zone;
29989
30148
  const userIsDragging = !!draggedItem;
29990
30149
  const draggingOverArea = userIsDragging && zoneArea === draggedSourceArea;
29991
30150
  const draggingNewComponent = draggedSourceId == null ? void 0 : draggedSourceId.startsWith("component-list");
29992
30151
  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." });
30152
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: "DropZone requires context to work." });
29994
30153
  }
29995
30154
  const {
29996
30155
  hoveringArea = "root",
@@ -30027,7 +30186,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30027
30186
  }
30028
30187
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
30029
30188
  const isAreaSelected = selectedItem && zoneArea === selectedItem.props.id;
30030
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30189
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30031
30190
  "div",
30032
30191
  {
30033
30192
  className: getClassName5({
@@ -30039,17 +30198,19 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30039
30198
  isDestination: draggedDestinationId === zoneCompound,
30040
30199
  isDisabled: !isEnabled,
30041
30200
  isAreaSelected,
30042
- hasChildren: content.length > 0,
30043
- zoomEnabled: !disableZoom
30201
+ hasChildren: content.length > 0
30044
30202
  }),
30045
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30046
- import_dnd4.Droppable,
30203
+ onMouseUp: () => {
30204
+ setZoneWillDrag("");
30205
+ },
30206
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30207
+ Droppable,
30047
30208
  {
30048
30209
  droppableId: zoneCompound,
30049
30210
  direction: "vertical",
30050
30211
  isDropDisabled: !isEnabled,
30051
30212
  children: (provided, snapshot) => {
30052
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30213
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30053
30214
  "div",
30054
30215
  __spreadProps(__spreadValues({}, (provided || { droppableProps: {} }).droppableProps), {
30055
30216
  className: getClassName5("content"),
@@ -30063,7 +30224,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30063
30224
  },
30064
30225
  children: [
30065
30226
  content.map((item, i) => {
30066
- var _a2, _b;
30227
+ var _a2, _b, _c;
30067
30228
  const componentId = item.props.id;
30068
30229
  const defaultedProps = __spreadProps(__spreadValues(__spreadValues({}, (_a2 = config.components[item.type]) == null ? void 0 : _a2.defaultProps), item.props), {
30069
30230
  puck: { renderDropZone: DropZone },
@@ -30074,33 +30235,33 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30074
30235
  "draggable-"
30075
30236
  )[1] === componentId;
30076
30237
  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: [
30238
+ 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
30239
  "No configuration for ",
30079
30240
  item.type
30080
30241
  ] });
30081
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
30242
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
30082
30243
  "div",
30083
30244
  {
30084
30245
  className: getClassName5("item"),
30085
30246
  style: { zIndex: isDragging ? 1 : void 0 },
30086
30247
  children: [
30087
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30248
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30088
30249
  DropZoneProvider,
30089
30250
  {
30090
30251
  value: __spreadProps(__spreadValues({}, ctx), {
30091
30252
  areaId: componentId
30092
30253
  }),
30093
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30254
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30094
30255
  DraggableComponent,
30095
30256
  {
30096
- label: item.type.toString(),
30257
+ label: (_b = config.components[item.type]["label"]) != null ? _b : item.type.toString(),
30097
30258
  id: `draggable-${componentId}`,
30098
30259
  index: i,
30099
30260
  isSelected,
30100
30261
  isLocked: userIsDragging,
30101
30262
  forceHover: hoveringComponent === componentId && !userIsDragging,
30102
30263
  indicativeHover: userIsDragging && containsZone && hoveringArea === componentId,
30103
- isLoading: (_b = appContext2.componentState[componentId]) == null ? void 0 : _b.loading,
30264
+ isLoading: (_c = appContext2.componentState[componentId]) == null ? void 0 : _c.loading,
30104
30265
  onMount: () => {
30105
30266
  ctx.registerPath({
30106
30267
  index: i,
@@ -30116,11 +30277,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30116
30277
  },
30117
30278
  onMouseDown: (e) => {
30118
30279
  e.stopPropagation();
30119
- setUserWillDrag(true);
30120
- },
30121
- onMouseUp: (e) => {
30122
- e.stopPropagation();
30123
- setUserWillDrag(false);
30280
+ setZoneWillDrag(zone);
30124
30281
  },
30125
30282
  onMouseOver: (e) => {
30126
30283
  e.stopPropagation();
@@ -30161,12 +30318,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30161
30318
  style: {
30162
30319
  pointerEvents: userIsDragging && draggingNewComponent ? "all" : void 0
30163
30320
  },
30164
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30321
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Render2, __spreadValues({}, defaultedProps)) })
30165
30322
  }
30166
30323
  )
30167
30324
  }
30168
30325
  ),
30169
- userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30326
+ userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30170
30327
  "div",
30171
30328
  {
30172
30329
  className: getClassName5("hitbox"),
@@ -30183,12 +30340,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30183
30340
  );
30184
30341
  }),
30185
30342
  provided == null ? void 0 : provided.placeholder,
30186
- (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30343
+ (snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30187
30344
  "div",
30188
30345
  {
30189
30346
  "data-puck-placeholder": true,
30190
30347
  style: __spreadProps(__spreadValues({}, placeholderStyle), {
30191
- background: "var(--puck-color-azure-5)",
30348
+ background: "var(--puck-color-azure-06)",
30192
30349
  opacity: 0.3,
30193
30350
  zIndex: 0
30194
30351
  })
@@ -30215,14 +30372,14 @@ function DropZoneRender({ zone }) {
30215
30372
  zoneCompound = `${areaId}:${zone}`;
30216
30373
  content = setupZone(data, zoneCompound).zones[zoneCompound];
30217
30374
  }
30218
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: content.map((item) => {
30375
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: content.map((item) => {
30219
30376
  const Component = config.components[item.type];
30220
30377
  if (Component) {
30221
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30378
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30222
30379
  DropZoneProvider,
30223
30380
  {
30224
30381
  value: { data, config, areaId: item.props.id },
30225
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
30382
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30226
30383
  Component.render,
30227
30384
  __spreadProps(__spreadValues({}, item.props), {
30228
30385
  puck: { renderDropZone: DropZone }
@@ -30238,9 +30395,9 @@ function DropZoneRender({ zone }) {
30238
30395
  function DropZone(props) {
30239
30396
  const ctx = (0, import_react9.useContext)(dropZoneContext);
30240
30397
  if ((ctx == null ? void 0 : ctx.mode) === "edit") {
30241
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneEdit, __spreadValues({}, props));
30398
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneEdit, __spreadValues({}, props));
30242
30399
  }
30243
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropZoneRender, __spreadValues({}, props));
30400
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneRender, __spreadValues({}, props));
30244
30401
  }
30245
30402
 
30246
30403
  // components/IconButton/index.ts
@@ -30252,11 +30409,11 @@ var import_react10 = require("react");
30252
30409
 
30253
30410
  // css-module:/home/runner/work/puck/puck/packages/core/components/IconButton/IconButton.module.css#css-module
30254
30411
  init_react_import();
30255
- var IconButton_module_default = { "IconButton": "_IconButton_38xdr_1", "IconButton-title": "_IconButton-title_38xdr_18" };
30412
+ var IconButton_module_default = { "IconButton": "_IconButton_swpni_1", "IconButton--disabled": "_IconButton--disabled_swpni_20", "IconButton-title": "_IconButton-title_swpni_33" };
30256
30413
 
30257
30414
  // components/IconButton/IconButton.tsx
30258
30415
  var import_react_spinners3 = require("react-spinners");
30259
- var import_jsx_runtime8 = require("react/jsx-runtime");
30416
+ var import_jsx_runtime10 = require("react/jsx-runtime");
30260
30417
  var getClassName6 = get_class_name_factory_default("IconButton", IconButton_module_default);
30261
30418
  var IconButton = ({
30262
30419
  children,
@@ -30272,7 +30429,7 @@ var IconButton = ({
30272
30429
  }) => {
30273
30430
  const [loading, setLoading] = (0, import_react10.useState)(false);
30274
30431
  const ElementType = href ? "a" : "button";
30275
- const el = /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
30432
+ const el = /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30276
30433
  ElementType,
30277
30434
  {
30278
30435
  className: getClassName6({
@@ -30297,11 +30454,11 @@ var IconButton = ({
30297
30454
  href,
30298
30455
  title,
30299
30456
  children: [
30300
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: getClassName6("title"), children: title }),
30457
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: getClassName6("title"), children: title }),
30301
30458
  children,
30302
- loading && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
30459
+ loading && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
30303
30460
  "\xA0\xA0",
30304
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30461
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
30305
30462
  ] })
30306
30463
  ]
30307
30464
  }
@@ -30311,8 +30468,7 @@ var IconButton = ({
30311
30468
 
30312
30469
  // components/Puck/index.tsx
30313
30470
  init_react_import();
30314
- var import_react26 = require("react");
30315
- var import_dnd7 = require("@hello-pangea/dnd");
30471
+ var import_react28 = require("react");
30316
30472
 
30317
30473
  // lib/use-placeholder-style.ts
30318
30474
  init_react_import();
@@ -30321,16 +30477,17 @@ var usePlaceholderStyle = () => {
30321
30477
  const queryAttr = "data-rfd-drag-handle-draggable-id";
30322
30478
  const [placeholderStyle, setPlaceholderStyle] = (0, import_react11.useState)();
30323
30479
  const onDragStartOrUpdate = (draggedItem) => {
30324
- var _a;
30480
+ var _a, _b, _c;
30325
30481
  const draggableId = draggedItem.draggableId;
30326
30482
  const destinationIndex = (draggedItem.destination || draggedItem.source).index;
30327
30483
  const droppableId = (draggedItem.destination || draggedItem.source).droppableId;
30328
30484
  const domQuery = `[${queryAttr}='${draggableId}']`;
30329
- const draggedDOM = document.querySelector(domQuery);
30485
+ const iframe = document.querySelector(`#preview-iframe`);
30486
+ const draggedDOM = document.querySelector(domQuery) || ((_a = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _a.document.querySelector(domQuery));
30330
30487
  if (!draggedDOM) {
30331
30488
  return;
30332
30489
  }
30333
- const targetListElement = document.querySelector(
30490
+ const targetListElement = (_b = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _b.document.querySelector(
30334
30491
  `[data-rfd-droppable-id='${droppableId}']`
30335
30492
  );
30336
30493
  const { clientHeight } = draggedDOM;
@@ -30338,7 +30495,7 @@ var usePlaceholderStyle = () => {
30338
30495
  return;
30339
30496
  }
30340
30497
  let clientY = 0;
30341
- const isSameDroppable = draggedItem.source.droppableId === ((_a = draggedItem.destination) == null ? void 0 : _a.droppableId);
30498
+ const isSameDroppable = draggedItem.source.droppableId === ((_c = draggedItem.destination) == null ? void 0 : _c.droppableId);
30342
30499
  if (destinationIndex > 0) {
30343
30500
  const end = destinationIndex > draggedItem.source.index && isSameDroppable ? destinationIndex + 1 : destinationIndex;
30344
30501
  const children = Array.from(targetListElement.children).filter(
@@ -30367,21 +30524,21 @@ init_react_import();
30367
30524
 
30368
30525
  // css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css#css-module
30369
30526
  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" };
30527
+ var styles_module_default5 = { "SidebarSection": "_SidebarSection_125qe_1", "SidebarSection-title": "_SidebarSection-title_125qe_12", "SidebarSection--noBorderTop": "_SidebarSection--noBorderTop_125qe_20", "SidebarSection-content": "_SidebarSection-content_125qe_24", "SidebarSection--noPadding": "_SidebarSection--noPadding_125qe_28", "SidebarSection-breadcrumbLabel": "_SidebarSection-breadcrumbLabel_125qe_41", "SidebarSection-breadcrumbs": "_SidebarSection-breadcrumbs_125qe_70", "SidebarSection-breadcrumb": "_SidebarSection-breadcrumb_125qe_41", "SidebarSection-heading": "_SidebarSection-heading_125qe_82", "SidebarSection-loadingOverlay": "_SidebarSection-loadingOverlay_125qe_86" };
30371
30528
 
30372
30529
  // components/Heading/index.tsx
30373
30530
  init_react_import();
30374
30531
 
30375
30532
  // css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
30376
30533
  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" };
30534
+ var styles_module_default6 = { "Heading": "_Heading_qxrry_1", "Heading--xxxxl": "_Heading--xxxxl_qxrry_12", "Heading--xxxl": "_Heading--xxxl_qxrry_18", "Heading--xxl": "_Heading--xxl_qxrry_22", "Heading--xl": "_Heading--xl_qxrry_26", "Heading--l": "_Heading--l_qxrry_30", "Heading--m": "_Heading--m_qxrry_34", "Heading--s": "_Heading--s_qxrry_38", "Heading--xs": "_Heading--xs_qxrry_42" };
30378
30535
 
30379
30536
  // components/Heading/index.tsx
30380
- var import_jsx_runtime9 = require("react/jsx-runtime");
30537
+ var import_jsx_runtime11 = require("react/jsx-runtime");
30381
30538
  var getClassName7 = get_class_name_factory_default("Heading", styles_module_default6);
30382
30539
  var Heading = ({ children, rank, size = "m" }) => {
30383
30540
  const Tag = rank ? `h${rank}` : "span";
30384
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
30541
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
30385
30542
  Tag,
30386
30543
  {
30387
30544
  className: getClassName7({
@@ -30460,7 +30617,7 @@ var useBreadcrumbs = (renderCount) => {
30460
30617
 
30461
30618
  // components/SidebarSection/index.tsx
30462
30619
  var import_react_spinners4 = require("react-spinners");
30463
- var import_jsx_runtime10 = require("react/jsx-runtime");
30620
+ var import_jsx_runtime12 = require("react/jsx-runtime");
30464
30621
  var getClassName8 = get_class_name_factory_default("SidebarSection", styles_module_default5);
30465
30622
  var SidebarSection = ({
30466
30623
  children,
@@ -30473,28 +30630,28 @@ var SidebarSection = ({
30473
30630
  }) => {
30474
30631
  const { setUi } = useAppContext();
30475
30632
  const breadcrumbs = useBreadcrumbs(1);
30476
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
30633
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
30477
30634
  "div",
30478
30635
  {
30479
30636
  className: getClassName8({ noBorderTop, noPadding }),
30480
30637
  style: { background },
30481
30638
  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",
30639
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
30640
+ showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
30641
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
30642
+ "button",
30486
30643
  {
30487
30644
  className: getClassName8("breadcrumbLabel"),
30488
30645
  onClick: () => setUi({ itemSelector: breadcrumb.selector }),
30489
30646
  children: breadcrumb.label
30490
30647
  }
30491
30648
  ),
30492
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronRight, { size: 16 })
30649
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { size: 16 })
30493
30650
  ] }, 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 }) })
30651
+ /* @__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
30652
  ] }) }),
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" }) })
30653
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("content"), children }),
30654
+ 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
30655
  ]
30499
30656
  }
30500
30657
  );
@@ -31000,7 +31157,10 @@ var useResolvedData = (appState, config, dispatch) => {
31000
31157
  );
31001
31158
  const runResolvers = () => __async(void 0, null, function* () {
31002
31159
  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);
31160
+ const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => {
31161
+ var _a;
31162
+ return !!((_a = config.components[item.type]) == null ? void 0 : _a.resolveData);
31163
+ });
31004
31164
  const applyIfChange = (dynamicDataMap, dynamicRoot) => {
31005
31165
  const processed = applyDynamicProps(
31006
31166
  appState.data,
@@ -31070,10 +31230,10 @@ init_react_import();
31070
31230
 
31071
31231
  // css-module:/home/runner/work/puck/puck/packages/core/components/MenuBar/styles.module.css#css-module
31072
31232
  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" };
31233
+ var styles_module_default7 = { "MenuBar": "_MenuBar_8pf8c_1", "MenuBar--menuOpen": "_MenuBar--menuOpen_8pf8c_14", "MenuBar-inner": "_MenuBar-inner_8pf8c_29", "MenuBar-history": "_MenuBar-history_8pf8c_45" };
31074
31234
 
31075
31235
  // components/MenuBar/index.tsx
31076
- var import_jsx_runtime11 = require("react/jsx-runtime");
31236
+ var import_jsx_runtime13 = require("react/jsx-runtime");
31077
31237
  var getClassName9 = get_class_name_factory_default("MenuBar", styles_module_default7);
31078
31238
  var MenuBar = ({
31079
31239
  appState,
@@ -31088,7 +31248,7 @@ var MenuBar = ({
31088
31248
  history: { back, forward, historyStore }
31089
31249
  } = useAppContext();
31090
31250
  const { hasFuture = false, hasPast = false } = historyStore || {};
31091
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31251
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31092
31252
  "div",
31093
31253
  {
31094
31254
  className: getClassName9({ menuOpen }),
@@ -31102,34 +31262,34 @@ var MenuBar = ({
31102
31262
  setMenuOpen(false);
31103
31263
  }
31104
31264
  },
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)(
31265
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("inner"), children: [
31266
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("history"), children: [
31267
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31108
31268
  ChevronLeft,
31109
31269
  {
31110
31270
  size: 21,
31111
- stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
31271
+ stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31112
31272
  }
31113
31273
  ) }),
31114
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31274
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31115
31275
  ChevronRight,
31116
31276
  {
31117
31277
  size: 21,
31118
- stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-7)"
31278
+ stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
31119
31279
  }
31120
31280
  ) })
31121
31281
  ] }),
31122
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: renderHeaderActions && renderHeaderActions({
31282
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: renderHeaderActions && renderHeaderActions({
31123
31283
  state: appState,
31124
31284
  dispatch
31125
31285
  }) }),
31126
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
31286
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31127
31287
  Button,
31128
31288
  {
31129
31289
  onClick: () => {
31130
31290
  onPublish && onPublish(data);
31131
31291
  },
31132
- icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Globe, { size: "14px" }),
31292
+ icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Globe, { size: "14px" }),
31133
31293
  children: "Publish"
31134
31294
  }
31135
31295
  ) })
@@ -31140,7 +31300,7 @@ var MenuBar = ({
31140
31300
 
31141
31301
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/styles.module.css#css-module
31142
31302
  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" };
31303
+ var styles_module_default8 = { "Puck": "_Puck_3qn7l_19", "Puck--leftSideBarVisible": "_Puck--leftSideBarVisible_3qn7l_36", "Puck--rightSideBarVisible": "_Puck--rightSideBarVisible_3qn7l_42", "Puck-header": "_Puck-header_3qn7l_96", "Puck-headerInner": "_Puck-headerInner_3qn7l_105", "Puck-headerToggle": "_Puck-headerToggle_3qn7l_115", "Puck-rightSideBarToggle": "_Puck-rightSideBarToggle_3qn7l_122", "Puck-leftSideBarToggle": "_Puck-leftSideBarToggle_3qn7l_123", "Puck-headerTitle": "_Puck-headerTitle_3qn7l_127", "Puck-headerPath": "_Puck-headerPath_3qn7l_131", "Puck-headerTools": "_Puck-headerTools_3qn7l_138", "Puck-menuButton": "_Puck-menuButton_3qn7l_144", "Puck--menuOpen": "_Puck--menuOpen_3qn7l_149", "Puck-leftSideBar": "_Puck-leftSideBar_3qn7l_123", "Puck-frame": "_Puck-frame_3qn7l_168", "Puck-root": "_Puck-root_3qn7l_179", "Puck-rightSideBar": "_Puck-rightSideBar_3qn7l_122", "Puck-canvas": "_Puck-canvas_3qn7l_211", "Puck-canvasControls": "_Puck-canvasControls_3qn7l_226" };
31144
31304
 
31145
31305
  // components/Puck/components/Fields/index.tsx
31146
31306
  init_react_import();
@@ -31151,7 +31311,7 @@ init_react_import();
31151
31311
 
31152
31312
  // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/styles.module.css#css-module
31153
31313
  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" };
31314
+ var styles_module_default9 = { "Input": "_Input_1qi5b_1", "Input-label": "_Input-label_1qi5b_26", "Input-labelIcon": "_Input-labelIcon_1qi5b_34", "Input-disabledIcon": "_Input-disabledIcon_1qi5b_41", "Input-input": "_Input-input_1qi5b_46", "Input--readOnly": "_Input--readOnly_1qi5b_90", "Input-radioGroupItems": "_Input-radioGroupItems_1qi5b_101", "Input-radio": "_Input-radio_1qi5b_101", "Input-radioInner": "_Input-radioInner_1qi5b_118", "Input-radioInput": "_Input-radioInput_1qi5b_163" };
31155
31315
 
31156
31316
  // components/InputOrGroup/index.tsx
31157
31317
  var import_react18 = require("react");
@@ -31164,13 +31324,24 @@ init_react_import();
31164
31324
 
31165
31325
  // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ArrayField/styles.module.css#css-module
31166
31326
  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" };
31327
+ var styles_module_default10 = { "ArrayField": "_ArrayField_1txra_5", "ArrayField--isDraggingFrom": "_ArrayField--isDraggingFrom_1txra_13", "ArrayField-addButton": "_ArrayField-addButton_1txra_17", "ArrayField--hasItems": "_ArrayField--hasItems_1txra_32", "ArrayFieldItem": "_ArrayFieldItem_1txra_61", "ArrayFieldItem--isDragging": "_ArrayFieldItem--isDragging_1txra_69", "ArrayFieldItem--isExpanded": "_ArrayFieldItem--isExpanded_1txra_74", "ArrayFieldItem-summary": "_ArrayFieldItem-summary_1txra_84", "ArrayFieldItem--readOnly": "_ArrayFieldItem--readOnly_1txra_108", "ArrayFieldItem-body": "_ArrayFieldItem-body_1txra_142", "ArrayFieldItem-fieldset": "_ArrayFieldItem-fieldset_1txra_150", "ArrayFieldItem-rhs": "_ArrayFieldItem-rhs_1txra_157", "ArrayFieldItem-actions": "_ArrayFieldItem-actions_1txra_163" };
31168
31328
 
31169
31329
  // components/InputOrGroup/fields/ArrayField/index.tsx
31170
- var import_dnd5 = require("@hello-pangea/dnd");
31171
- var import_dnd6 = require("@hello-pangea/dnd");
31172
31330
  var import_react14 = require("react");
31173
- var import_jsx_runtime12 = require("react/jsx-runtime");
31331
+
31332
+ // components/DragDropContext/index.tsx
31333
+ init_react_import();
31334
+ var import_dnd4 = require("@measured/dnd");
31335
+ var import_jsx_runtime14 = require("react/jsx-runtime");
31336
+ var DefaultDragDropContext = ({ children }) => children;
31337
+ var DragDropContext = (props) => {
31338
+ const { status } = useAppContext();
31339
+ const El = status === "READY" ? import_dnd4.DragDropContext : DefaultDragDropContext;
31340
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(El, __spreadValues({}, props));
31341
+ };
31342
+
31343
+ // components/InputOrGroup/fields/ArrayField/index.tsx
31344
+ var import_jsx_runtime15 = require("react/jsx-runtime");
31174
31345
  var getClassName10 = get_class_name_factory_default("ArrayField", styles_module_default10);
31175
31346
  var getClassNameItem2 = get_class_name_factory_default("ArrayFieldItem", styles_module_default10);
31176
31347
  var ArrayField = ({
@@ -31240,15 +31411,15 @@ var ArrayField = ({
31240
31411
  if (field.type !== "array" || !field.arrayFields) {
31241
31412
  return null;
31242
31413
  }
31243
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31414
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31244
31415
  FieldLabelInternal,
31245
31416
  {
31246
31417
  label: label || name,
31247
- icon: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(List, { size: 16 }),
31418
+ icon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(List, { size: 16 }),
31248
31419
  el: "div",
31249
31420
  readOnly,
31250
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31251
- import_dnd6.DragDropContext,
31421
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31422
+ DragDropContext,
31252
31423
  {
31253
31424
  onDragEnd: (event) => {
31254
31425
  var _a, _b;
@@ -31274,8 +31445,8 @@ var ArrayField = ({
31274
31445
  });
31275
31446
  }
31276
31447
  },
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)(
31448
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
31449
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31279
31450
  "div",
31280
31451
  __spreadProps(__spreadValues({}, provided.droppableProps), {
31281
31452
  ref: provided.innerRef,
@@ -31295,7 +31466,7 @@ var ArrayField = ({
31295
31466
  localState.arrayState.items.map((item, i) => {
31296
31467
  const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
31297
31468
  const data = Array.from(localState.value || [])[i] || {};
31298
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31469
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31299
31470
  Draggable,
31300
31471
  {
31301
31472
  id: _arrayId,
@@ -31306,8 +31477,8 @@ var ArrayField = ({
31306
31477
  readOnly
31307
31478
  }),
31308
31479
  isDragDisabled: readOnly || !hovering,
31309
- children: () => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
31310
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
31480
+ children: () => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
31481
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31311
31482
  "div",
31312
31483
  {
31313
31484
  onClick: () => {
@@ -31328,10 +31499,11 @@ var ArrayField = ({
31328
31499
  className: getClassNameItem2("summary"),
31329
31500
  children: [
31330
31501
  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)(
31502
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
31503
+ !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
31504
  IconButton,
31334
31505
  {
31506
+ disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
31335
31507
  onClick: (e) => {
31336
31508
  e.stopPropagation();
31337
31509
  const existingValue = [
@@ -31350,20 +31522,20 @@ var ArrayField = ({
31350
31522
  );
31351
31523
  },
31352
31524
  title: "Delete",
31353
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Trash, { size: 16 })
31525
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Trash, { size: 16 })
31354
31526
  }
31355
31527
  ) }) }),
31356
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DragIcon, {}) })
31528
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DragIcon, {}) })
31357
31529
  ] })
31358
31530
  ]
31359
31531
  }
31360
31532
  ),
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(
31533
+ /* @__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
31534
  (fieldName) => {
31363
31535
  const subField = field.arrayFields[fieldName];
31364
31536
  const subFieldName = `${name}[${i}].${fieldName}`;
31365
31537
  const wildcardFieldName = `${name}[*].${fieldName}`;
31366
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31538
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31367
31539
  InputOrGroup,
31368
31540
  {
31369
31541
  name: subFieldName,
@@ -31392,10 +31564,11 @@ var ArrayField = ({
31392
31564
  );
31393
31565
  }),
31394
31566
  provided.placeholder,
31395
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
31567
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31396
31568
  "button",
31397
31569
  {
31398
31570
  className: getClassName10("addButton"),
31571
+ disabled: field.max !== void 0 && localState.arrayState.items.length >= field.max,
31399
31572
  onClick: () => {
31400
31573
  const existingValue = value || [];
31401
31574
  const newValue = [
@@ -31405,7 +31578,7 @@ var ArrayField = ({
31405
31578
  const newArrayState = regenerateArrayState(newValue);
31406
31579
  onChange(newValue, mapArrayStateToUi(newArrayState));
31407
31580
  },
31408
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Plus, { size: "21" })
31581
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Plus, { size: 21 })
31409
31582
  }
31410
31583
  )
31411
31584
  ]
@@ -31420,7 +31593,7 @@ var ArrayField = ({
31420
31593
 
31421
31594
  // components/InputOrGroup/fields/DefaultField/index.tsx
31422
31595
  init_react_import();
31423
- var import_jsx_runtime13 = require("react/jsx-runtime");
31596
+ var import_jsx_runtime16 = require("react/jsx-runtime");
31424
31597
  var getClassName11 = get_class_name_factory_default("Input", styles_module_default9);
31425
31598
  var DefaultField = ({
31426
31599
  field,
@@ -31431,16 +31604,16 @@ var DefaultField = ({
31431
31604
  label,
31432
31605
  id
31433
31606
  }) => {
31434
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31607
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31435
31608
  FieldLabelInternal,
31436
31609
  {
31437
31610
  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 })
31611
+ icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
31612
+ field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Type, { size: 16 }),
31613
+ field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Hash, { size: 16 })
31441
31614
  ] }),
31442
31615
  readOnly,
31443
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
31616
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31444
31617
  "input",
31445
31618
  {
31446
31619
  className: getClassName11("input"),
@@ -31456,6 +31629,7 @@ var DefaultField = ({
31456
31629
  }
31457
31630
  },
31458
31631
  readOnly,
31632
+ tabIndex: readOnly ? -1 : void 0,
31459
31633
  id,
31460
31634
  min: field.type === "number" ? field.min : void 0,
31461
31635
  max: field.type === "number" ? field.max : void 0
@@ -31475,7 +31649,7 @@ var import_react16 = require("react");
31475
31649
 
31476
31650
  // css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
31477
31651
  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" };
31652
+ var styles_module_default11 = { "ExternalInput-actions": "_ExternalInput-actions_19obq_1", "ExternalInput-button": "_ExternalInput-button_19obq_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_19obq_25", "ExternalInput-detachButton": "_ExternalInput-detachButton_19obq_32", "ExternalInputModal": "_ExternalInputModal_19obq_74", "ExternalInputModal-grid": "_ExternalInputModal-grid_19obq_84", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_19obq_95", "ExternalInputModal-filters": "_ExternalInputModal-filters_19obq_100", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_19obq_119", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_19obq_128", "ExternalInputModal-table": "_ExternalInputModal-table_19obq_128", "ExternalInputModal-thead": "_ExternalInputModal-thead_19obq_144", "ExternalInputModal-th": "_ExternalInputModal-th_19obq_144", "ExternalInputModal-td": "_ExternalInputModal-td_19obq_159", "ExternalInputModal-tr": "_ExternalInputModal-tr_19obq_164", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_19obq_171", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_19obq_197", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_19obq_201", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_19obq_218", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_19obq_222", "ExternalInputModal-search": "_ExternalInputModal-search_19obq_222", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_19obq_259", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_19obq_284", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_19obq_294", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_19obq_308", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_19obq_321", "ExternalInputModal-footer": "_ExternalInputModal-footer_19obq_325" };
31479
31653
 
31480
31654
  // components/Modal/index.tsx
31481
31655
  init_react_import();
@@ -31483,11 +31657,11 @@ var import_react15 = require("react");
31483
31657
 
31484
31658
  // css-module:/home/runner/work/puck/puck/packages/core/components/Modal/styles.module.css#css-module
31485
31659
  init_react_import();
31486
- var styles_module_default12 = { "Modal": "_Modal_hx2u6_1", "Modal--isOpen": "_Modal--isOpen_hx2u6_15", "Modal-inner": "_Modal-inner_hx2u6_19" };
31660
+ var styles_module_default12 = { "Modal": "_Modal_ikbaj_1", "Modal--isOpen": "_Modal--isOpen_ikbaj_15", "Modal-inner": "_Modal-inner_ikbaj_19" };
31487
31661
 
31488
31662
  // components/Modal/index.tsx
31489
31663
  var import_react_dom = __toESM(require_react_dom());
31490
- var import_jsx_runtime14 = require("react/jsx-runtime");
31664
+ var import_jsx_runtime17 = require("react/jsx-runtime");
31491
31665
  var getClassName12 = get_class_name_factory_default("Modal", styles_module_default12);
31492
31666
  var Modal = ({
31493
31667
  children,
@@ -31499,10 +31673,10 @@ var Modal = ({
31499
31673
  setRootEl(document.getElementById("puck-portal-root"));
31500
31674
  }, []);
31501
31675
  if (!rootEl) {
31502
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", {});
31676
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {});
31503
31677
  }
31504
31678
  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)(
31679
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31506
31680
  "div",
31507
31681
  {
31508
31682
  className: getClassName12("inner"),
@@ -31516,7 +31690,7 @@ var Modal = ({
31516
31690
 
31517
31691
  // components/ExternalInput/index.tsx
31518
31692
  var import_react_spinners5 = require("react-spinners");
31519
- var import_jsx_runtime15 = require("react/jsx-runtime");
31693
+ var import_jsx_runtime18 = require("react/jsx-runtime");
31520
31694
  var getClassName13 = get_class_name_factory_default("ExternalInput", styles_module_default11);
31521
31695
  var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_module_default11);
31522
31696
  var dataCache = {};
@@ -31527,13 +31701,23 @@ var ExternalInput = ({
31527
31701
  name,
31528
31702
  id
31529
31703
  }) => {
31530
- const { mapProp = (val) => val } = field || {};
31704
+ const {
31705
+ mapProp = (val) => val,
31706
+ mapRow = (val) => val,
31707
+ filterFields
31708
+ } = field || {};
31531
31709
  const [data, setData] = (0, import_react16.useState)([]);
31532
31710
  const [isOpen, setOpen] = (0, import_react16.useState)(false);
31533
31711
  const [isLoading, setIsLoading] = (0, import_react16.useState)(true);
31712
+ const hasFilterFields = !!filterFields;
31713
+ const [filters, setFilters] = (0, import_react16.useState)(field.initialFilters || {});
31714
+ const [filtersToggled, setFiltersToggled] = (0, import_react16.useState)(hasFilterFields);
31715
+ const mappedData = (0, import_react16.useMemo)(() => {
31716
+ return data.map(mapRow);
31717
+ }, [data]);
31534
31718
  const keys = (0, import_react16.useMemo)(() => {
31535
31719
  const validKeys = /* @__PURE__ */ new Set();
31536
- for (const item of data) {
31720
+ for (const item of mappedData) {
31537
31721
  for (const key of Object.keys(item)) {
31538
31722
  if (typeof item[key] === "string" || typeof item[key] === "number") {
31539
31723
  validKeys.add(key);
@@ -31541,13 +31725,13 @@ var ExternalInput = ({
31541
31725
  }
31542
31726
  }
31543
31727
  return Array.from(validKeys);
31544
- }, [data]);
31728
+ }, [mappedData]);
31545
31729
  const [searchQuery, setSearchQuery] = (0, import_react16.useState)(field.initialQuery || "");
31546
31730
  const search = (0, import_react16.useCallback)(
31547
- (query) => __async(void 0, null, function* () {
31731
+ (query, filters2) => __async(void 0, null, function* () {
31548
31732
  setIsLoading(true);
31549
- const cacheKey = `${id}-${name}-${query}`;
31550
- const listData = dataCache[cacheKey] || (yield field.fetchList({ query }));
31733
+ const cacheKey = `${id}-${name}-${query}-${JSON.stringify(filters2)}`;
31734
+ const listData = dataCache[cacheKey] || (yield field.fetchList({ query, filters: filters2 }));
31551
31735
  if (listData) {
31552
31736
  setData(listData);
31553
31737
  setIsLoading(false);
@@ -31557,9 +31741,9 @@ var ExternalInput = ({
31557
31741
  [name, field]
31558
31742
  );
31559
31743
  (0, import_react16.useEffect)(() => {
31560
- search(searchQuery);
31744
+ search(searchQuery, filters);
31561
31745
  }, []);
31562
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31746
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31563
31747
  "div",
31564
31748
  {
31565
31749
  className: getClassName13({
@@ -31568,102 +31752,133 @@ var ExternalInput = ({
31568
31752
  }),
31569
31753
  id,
31570
31754
  children: [
31571
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName13("actions"), children: [
31572
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31755
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassName13("actions"), children: [
31756
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31573
31757
  "button",
31574
31758
  {
31575
31759
  onClick: () => setOpen(true),
31576
31760
  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 })
31761
+ children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
31762
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { size: "16" }),
31763
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: field.placeholder })
31580
31764
  ] })
31581
31765
  }
31582
31766
  ),
31583
- value && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
31767
+ value && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31584
31768
  "button",
31585
31769
  {
31586
31770
  className: getClassName13("detachButton"),
31587
31771
  onClick: () => {
31588
31772
  onChange(null);
31589
31773
  },
31590
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Unlock, { size: 16 })
31774
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Unlock, { size: 16 })
31591
31775
  }
31592
31776
  )
31593
31777
  ] }),
31594
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
31595
- "div",
31778
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
31779
+ "form",
31596
31780
  {
31597
31781
  className: getClassNameModal({
31598
31782
  isLoading,
31599
31783
  loaded: !isLoading,
31600
- hasData: data.length > 0
31784
+ hasData: mappedData.length > 0,
31785
+ filtersToggled
31601
31786
  }),
31787
+ onSubmit: (e) => {
31788
+ e.preventDefault();
31789
+ search(searchQuery, filters);
31790
+ },
31602
31791
  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",
31792
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
31793
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: getClassNameModal("search"), children: [
31794
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
31795
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "18" }) }),
31796
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31797
+ "input",
31798
+ {
31799
+ className: getClassNameModal("searchInput"),
31800
+ name: "q",
31801
+ type: "search",
31802
+ placeholder: field.placeholder,
31803
+ onChange: (e) => {
31804
+ setSearchQuery(e.currentTarget.value);
31805
+ },
31806
+ autoComplete: "off",
31807
+ value: searchQuery
31808
+ }
31809
+ )
31810
+ ] }),
31811
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
31812
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
31813
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31814
+ IconButton,
31815
+ {
31816
+ title: "Toggle filters",
31817
+ onClick: (e) => {
31818
+ e.preventDefault();
31819
+ e.stopPropagation();
31820
+ setFiltersToggled(!filtersToggled);
31821
+ },
31822
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SlidersHorizontal, { size: 20 })
31823
+ }
31824
+ ) })
31825
+ ] })
31826
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
31827
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("grid"), children: [
31828
+ hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
31829
+ const filterField = filterFields[fieldName];
31830
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31831
+ InputOrGroup,
31641
31832
  {
31642
- className: getClassNameModal("th"),
31643
- style: { textAlign: "left" },
31644
- children: key
31833
+ field: filterField,
31834
+ name: fieldName,
31835
+ id: `external_field_${fieldName}_filter`,
31836
+ label: filterField.label || fieldName,
31837
+ value: filters[fieldName],
31838
+ onChange: (value2) => {
31839
+ const newFilters = __spreadProps(__spreadValues({}, filters), { [fieldName]: value2 });
31840
+ setFilters(newFilters);
31841
+ search(searchQuery, newFilters);
31842
+ }
31645
31843
  },
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",
31844
+ fieldName
31845
+ );
31846
+ }) }),
31847
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
31848
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: getClassNameModal("table"), children: [
31849
+ /* @__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)(
31850
+ "th",
31651
31851
  {
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))
31852
+ className: getClassNameModal("th"),
31853
+ style: { textAlign: "left" },
31854
+ children: key
31659
31855
  },
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" }) })
31856
+ key
31857
+ )) }) }),
31858
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
31859
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
31860
+ "tr",
31861
+ {
31862
+ style: { whiteSpace: "nowrap" },
31863
+ className: getClassNameModal("tr"),
31864
+ onClick: () => {
31865
+ onChange(mapProp(data[i]));
31866
+ setOpen(false);
31867
+ },
31868
+ children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
31869
+ },
31870
+ i
31871
+ );
31872
+ }) })
31873
+ ] }),
31874
+ /* @__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" }) })
31875
+ ] })
31665
31876
  ] }),
31666
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("noContentBanner"), children: "No results." })
31877
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("footer"), children: [
31878
+ mappedData.length,
31879
+ " result",
31880
+ mappedData.length === 1 ? "" : "s"
31881
+ ] })
31667
31882
  ]
31668
31883
  }
31669
31884
  ) })
@@ -31673,7 +31888,7 @@ var ExternalInput = ({
31673
31888
  };
31674
31889
 
31675
31890
  // components/InputOrGroup/fields/ExternalField/index.tsx
31676
- var import_jsx_runtime16 = require("react/jsx-runtime");
31891
+ var import_jsx_runtime19 = require("react/jsx-runtime");
31677
31892
  var ExternalField = ({
31678
31893
  field,
31679
31894
  onChange,
@@ -31695,13 +31910,13 @@ var ExternalField = ({
31695
31910
  if (field.type !== "external") {
31696
31911
  return null;
31697
31912
  }
31698
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31913
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31699
31914
  FieldLabelInternal,
31700
31915
  {
31701
31916
  label: label || name,
31702
- icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { size: 16 }),
31917
+ icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { size: 16 }),
31703
31918
  el: "div",
31704
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
31919
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
31705
31920
  ExternalInput,
31706
31921
  {
31707
31922
  name,
@@ -31709,6 +31924,7 @@ var ExternalField = ({
31709
31924
  // DEPRECATED
31710
31925
  placeholder: ((_a = deprecatedField.adaptor) == null ? void 0 : _a.name) ? `Select from ${deprecatedField.adaptor.name}` : validField.placeholder || "Select data",
31711
31926
  mapProp: ((_b = deprecatedField.adaptor) == null ? void 0 : _b.mapProp) || validField.mapProp,
31927
+ mapRow: validField.mapRow,
31712
31928
  fetchList: ((_c = deprecatedField.adaptor) == null ? void 0 : _c.fetchList) ? () => __async(void 0, null, function* () {
31713
31929
  return yield deprecatedField.adaptor.fetchList(
31714
31930
  deprecatedField.adaptorParams
@@ -31726,7 +31942,7 @@ var ExternalField = ({
31726
31942
 
31727
31943
  // components/InputOrGroup/fields/RadioField/index.tsx
31728
31944
  init_react_import();
31729
- var import_jsx_runtime17 = require("react/jsx-runtime");
31945
+ var import_jsx_runtime20 = require("react/jsx-runtime");
31730
31946
  var getClassName14 = get_class_name_factory_default("Input", styles_module_default9);
31731
31947
  var RadioField = ({
31732
31948
  field,
@@ -31740,19 +31956,19 @@ var RadioField = ({
31740
31956
  if (field.type !== "radio" || !field.options) {
31741
31957
  return null;
31742
31958
  }
31743
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31959
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31744
31960
  FieldLabelInternal,
31745
31961
  {
31746
- icon: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CheckCircle, { size: 16 }),
31962
+ icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckCircle, { size: 16 }),
31747
31963
  label: label || name,
31748
31964
  readOnly,
31749
31965
  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)(
31966
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
31751
31967
  "label",
31752
31968
  {
31753
31969
  className: getClassName14("radio"),
31754
31970
  children: [
31755
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
31971
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
31756
31972
  "input",
31757
31973
  {
31758
31974
  type: "radio",
@@ -31770,7 +31986,7 @@ var RadioField = ({
31770
31986
  defaultChecked: value === option.value
31771
31987
  }
31772
31988
  ),
31773
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
31989
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
31774
31990
  ]
31775
31991
  },
31776
31992
  option.label + option.value
@@ -31781,7 +31997,7 @@ var RadioField = ({
31781
31997
 
31782
31998
  // components/InputOrGroup/fields/SelectField/index.tsx
31783
31999
  init_react_import();
31784
- var import_jsx_runtime18 = require("react/jsx-runtime");
32000
+ var import_jsx_runtime21 = require("react/jsx-runtime");
31785
32001
  var getClassName15 = get_class_name_factory_default("Input", styles_module_default9);
31786
32002
  var SelectField = ({
31787
32003
  field,
@@ -31795,13 +32011,13 @@ var SelectField = ({
31795
32011
  if (field.type !== "select" || !field.options) {
31796
32012
  return null;
31797
32013
  }
31798
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32014
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31799
32015
  FieldLabelInternal,
31800
32016
  {
31801
32017
  label: label || name,
31802
- icon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronDown, { size: 16 }),
32018
+ icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronDown, { size: 16 }),
31803
32019
  readOnly,
31804
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32020
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31805
32021
  "select",
31806
32022
  {
31807
32023
  id,
@@ -31815,7 +32031,7 @@ var SelectField = ({
31815
32031
  onChange(e.currentTarget.value);
31816
32032
  },
31817
32033
  value,
31818
- children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
32034
+ children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
31819
32035
  "option",
31820
32036
  {
31821
32037
  label: option.label,
@@ -31831,7 +32047,7 @@ var SelectField = ({
31831
32047
 
31832
32048
  // components/InputOrGroup/fields/TextareaField/index.tsx
31833
32049
  init_react_import();
31834
- var import_jsx_runtime19 = require("react/jsx-runtime");
32050
+ var import_jsx_runtime22 = require("react/jsx-runtime");
31835
32051
  var getClassName16 = get_class_name_factory_default("Input", styles_module_default9);
31836
32052
  var TextareaField = ({
31837
32053
  onChange,
@@ -31841,13 +32057,13 @@ var TextareaField = ({
31841
32057
  label,
31842
32058
  id
31843
32059
  }) => {
31844
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32060
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31845
32061
  FieldLabelInternal,
31846
32062
  {
31847
32063
  label: label || name,
31848
- icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Type, { size: 16 }),
32064
+ icon: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Type, { size: 16 }),
31849
32065
  readOnly,
31850
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
32066
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
31851
32067
  "textarea",
31852
32068
  {
31853
32069
  id,
@@ -31857,6 +32073,7 @@ var TextareaField = ({
31857
32073
  value: typeof value === "undefined" ? "" : value,
31858
32074
  onChange: (e) => onChange(e.currentTarget.value),
31859
32075
  readOnly,
32076
+ tabIndex: readOnly ? -1 : void 0,
31860
32077
  rows: 5
31861
32078
  }
31862
32079
  )
@@ -31872,10 +32089,10 @@ init_react_import();
31872
32089
 
31873
32090
  // css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ObjectField/styles.module.css#css-module
31874
32091
  init_react_import();
31875
- var styles_module_default13 = { "ObjectField": "_ObjectField_56z4t_5", "ObjectField-fieldset": "_ObjectField-fieldset_56z4t_13" };
32092
+ var styles_module_default13 = { "ObjectField": "_ObjectField_15j63_5", "ObjectField-fieldset": "_ObjectField-fieldset_15j63_13" };
31876
32093
 
31877
32094
  // components/InputOrGroup/fields/ObjectField/index.tsx
31878
- var import_jsx_runtime20 = require("react/jsx-runtime");
32095
+ var import_jsx_runtime23 = require("react/jsx-runtime");
31879
32096
  var getClassName17 = get_class_name_factory_default("ObjectField", styles_module_default13);
31880
32097
  var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_module_default13);
31881
32098
  var ObjectField = ({
@@ -31892,18 +32109,18 @@ var ObjectField = ({
31892
32109
  return null;
31893
32110
  }
31894
32111
  const data = value || {};
31895
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32112
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31896
32113
  FieldLabelInternal,
31897
32114
  {
31898
32115
  label: label || name,
31899
- icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MoreVertical, { size: 16 }),
32116
+ icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MoreVertical, { size: 16 }),
31900
32117
  el: "div",
31901
32118
  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) => {
32119
+ 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
32120
  const subField = field.objectFields[fieldName];
31904
32121
  const subFieldName = `${name}.${fieldName}`;
31905
32122
  const wildcardFieldName = `${name}.${fieldName}`;
31906
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
32123
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
31907
32124
  InputOrGroup,
31908
32125
  {
31909
32126
  name: subFieldName,
@@ -31930,7 +32147,7 @@ var ObjectField = ({
31930
32147
  };
31931
32148
 
31932
32149
  // components/InputOrGroup/index.tsx
31933
- var import_jsx_runtime21 = require("react/jsx-runtime");
32150
+ var import_jsx_runtime24 = require("react/jsx-runtime");
31934
32151
  var getClassName18 = get_class_name_factory_default("Input", styles_module_default9);
31935
32152
  var FieldLabel = ({
31936
32153
  children,
@@ -31941,11 +32158,11 @@ var FieldLabel = ({
31941
32158
  className
31942
32159
  }) => {
31943
32160
  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, {}),
32161
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(El, { className, children: [
32162
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("label"), children: [
32163
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {}),
31947
32164
  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" }) })
32165
+ 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
32166
  ] }),
31950
32167
  children
31951
32168
  ] });
@@ -31962,7 +32179,7 @@ var FieldLabelInternal = ({
31962
32179
  () => overrides.fieldLabel || FieldLabel,
31963
32180
  [overrides]
31964
32181
  );
31965
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
32182
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
31966
32183
  Wrapper,
31967
32184
  {
31968
32185
  label,
@@ -32002,7 +32219,7 @@ var InputOrGroup = (_a) => {
32002
32219
  if (!field.render) {
32003
32220
  return null;
32004
32221
  }
32005
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32222
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
32006
32223
  field,
32007
32224
  name,
32008
32225
  readOnly
@@ -32031,16 +32248,16 @@ var InputOrGroup = (_a) => {
32031
32248
  const mergedProps = __spreadProps(__spreadValues(__spreadValues({}, props), localProps), { field });
32032
32249
  const children = defaultFields[field.type](mergedProps);
32033
32250
  const Render2 = render[field.type];
32034
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32251
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
32035
32252
  };
32036
32253
 
32037
32254
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
32038
32255
  init_react_import();
32039
- var styles_module_default14 = { "PuckFields": "_PuckFields_1276r_1", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_1276r_5" };
32256
+ var styles_module_default14 = { "PuckFields": "_PuckFields_17k3p_1", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_17k3p_6" };
32040
32257
 
32041
32258
  // components/Puck/components/Fields/index.tsx
32042
32259
  var import_react19 = require("react");
32043
- var import_jsx_runtime22 = require("react/jsx-runtime");
32260
+ var import_jsx_runtime25 = require("react/jsx-runtime");
32044
32261
  var getClassName19 = get_class_name_factory_default("PuckFields", styles_module_default14);
32045
32262
  var defaultPageFields = {
32046
32263
  title: { type: "text" }
@@ -32049,9 +32266,9 @@ var DefaultFields = ({
32049
32266
  children,
32050
32267
  isLoading
32051
32268
  }) => {
32052
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: getClassName19(), children: [
32269
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19(), children: [
32053
32270
  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" }) })
32271
+ 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
32272
  ] });
32056
32273
  };
32057
32274
  var Fields = () => {
@@ -32072,14 +32289,14 @@ var Fields = () => {
32072
32289
  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
32290
  const rootProps = data.root.props || data.root;
32074
32291
  const Wrapper = (0, import_react19.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
32075
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32292
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32076
32293
  "form",
32077
32294
  {
32078
32295
  className: getClassName19(),
32079
32296
  onSubmit: (e) => {
32080
32297
  e.preventDefault();
32081
32298
  },
32082
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32299
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
32083
32300
  const field = fields[fieldName];
32084
32301
  const onChange = (value, updatedUi) => {
32085
32302
  var _a2, _b2;
@@ -32145,7 +32362,7 @@ var Fields = () => {
32145
32362
  };
32146
32363
  if (selectedItem && itemSelector) {
32147
32364
  const { readOnly = {} } = selectedItem;
32148
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32365
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32149
32366
  InputOrGroup,
32150
32367
  {
32151
32368
  field,
@@ -32161,7 +32378,7 @@ var Fields = () => {
32161
32378
  );
32162
32379
  } else {
32163
32380
  const { readOnly = {} } = data.root;
32164
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
32381
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
32165
32382
  InputOrGroup,
32166
32383
  {
32167
32384
  field,
@@ -32193,17 +32410,18 @@ init_react_import();
32193
32410
 
32194
32411
  // css-module:/home/runner/work/puck/puck/packages/core/components/ComponentList/styles.module.css#css-module
32195
32412
  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" };
32413
+ var styles_module_default15 = { "ComponentList": "_ComponentList_odh9d_1", "ComponentList--isExpanded": "_ComponentList--isExpanded_odh9d_5", "ComponentList-content": "_ComponentList-content_odh9d_9", "ComponentList-title": "_ComponentList-title_odh9d_17", "ComponentList-titleIcon": "_ComponentList-titleIcon_odh9d_53" };
32197
32414
 
32198
32415
  // components/ComponentList/index.tsx
32199
- var import_jsx_runtime23 = require("react/jsx-runtime");
32416
+ var import_jsx_runtime26 = require("react/jsx-runtime");
32200
32417
  var getClassName20 = get_class_name_factory_default("ComponentList", styles_module_default15);
32201
32418
  var ComponentListItem = ({
32202
32419
  name,
32420
+ label,
32203
32421
  index
32204
32422
  }) => {
32205
32423
  const { overrides } = useAppContext();
32206
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Drawer.Item, { name, index, children: overrides.componentItem });
32424
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer.Item, { label, name, index, children: overrides.componentItem });
32207
32425
  };
32208
32426
  var ComponentList = ({
32209
32427
  children,
@@ -32212,9 +32430,9 @@ var ComponentList = ({
32212
32430
  }) => {
32213
32431
  const { config, state, setUi } = useAppContext();
32214
32432
  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",
32433
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
32434
+ title && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
32435
+ "button",
32218
32436
  {
32219
32437
  className: getClassName20("title"),
32220
32438
  onClick: () => setUi({
@@ -32226,15 +32444,17 @@ var ComponentList = ({
32226
32444
  }),
32227
32445
  title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
32228
32446
  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 }) })
32447
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: title }),
32448
+ /* @__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
32449
  ]
32232
32450
  }
32233
32451
  ),
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)(
32452
+ /* @__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) => {
32453
+ var _a;
32454
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
32236
32455
  ComponentListItem,
32237
32456
  {
32457
+ label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
32238
32458
  name: componentKey,
32239
32459
  index: i
32240
32460
  },
@@ -32246,7 +32466,7 @@ var ComponentList = ({
32246
32466
  ComponentList.Item = ComponentListItem;
32247
32467
 
32248
32468
  // lib/use-component-list.tsx
32249
- var import_jsx_runtime24 = require("react/jsx-runtime");
32469
+ var import_jsx_runtime27 = require("react/jsx-runtime");
32250
32470
  var useComponentList = (config, ui) => {
32251
32471
  const [componentList, setComponentList] = (0, import_react20.useState)();
32252
32472
  (0, import_react20.useEffect)(() => {
@@ -32259,16 +32479,18 @@ var useComponentList = (config, ui) => {
32259
32479
  if (category.visible === false || !category.components) {
32260
32480
  return null;
32261
32481
  }
32262
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32482
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32263
32483
  ComponentList,
32264
32484
  {
32265
32485
  id: categoryKey,
32266
32486
  title: category.title || categoryKey,
32267
32487
  children: category.components.map((componentName, i) => {
32488
+ var _a2;
32268
32489
  matchedComponents.push(componentName);
32269
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32490
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32270
32491
  ComponentList.Item,
32271
32492
  {
32493
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32272
32494
  name: componentName,
32273
32495
  index: i
32274
32496
  },
@@ -32285,16 +32507,18 @@ var useComponentList = (config, ui) => {
32285
32507
  );
32286
32508
  if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
32287
32509
  _componentList.push(
32288
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32510
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32289
32511
  ComponentList,
32290
32512
  {
32291
32513
  id: "other",
32292
32514
  title: ((_c = ui.componentList.other) == null ? void 0 : _c.title) || "Other",
32293
32515
  children: remainingComponents.map((componentName, i) => {
32294
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
32516
+ var _a2;
32517
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32295
32518
  ComponentList.Item,
32296
32519
  {
32297
32520
  name: componentName,
32521
+ label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
32298
32522
  index: i
32299
32523
  },
32300
32524
  componentName
@@ -32307,24 +32531,32 @@ var useComponentList = (config, ui) => {
32307
32531
  }
32308
32532
  setComponentList(_componentList);
32309
32533
  }
32310
- }, [config.categories, ui.componentList]);
32534
+ }, [config.categories, config.components, ui.componentList]);
32311
32535
  return componentList;
32312
32536
  };
32313
32537
 
32314
32538
  // components/Puck/components/Components/index.tsx
32315
32539
  var import_react21 = require("react");
32316
- var import_jsx_runtime25 = require("react/jsx-runtime");
32540
+ var import_jsx_runtime28 = require("react/jsx-runtime");
32317
32541
  var Components = () => {
32318
32542
  const { config, state, overrides } = useAppContext();
32319
32543
  const componentList = useComponentList(config, state.ui);
32320
32544
  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" }) });
32545
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
32322
32546
  };
32323
32547
 
32324
32548
  // components/Puck/components/Preview/index.tsx
32325
32549
  init_react_import();
32326
32550
  var import_react22 = require("react");
32327
- var import_jsx_runtime26 = require("react/jsx-runtime");
32551
+ var import_auto_frame_component = __toESM(require("@measured/auto-frame-component"));
32552
+
32553
+ // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Preview/styles.module.css#css-module
32554
+ init_react_import();
32555
+ var styles_module_default16 = { "PuckPreview": "_PuckPreview_29rm6_1", "PuckPreview-iframe": "_PuckPreview-iframe_29rm6_5" };
32556
+
32557
+ // components/Puck/components/Preview/index.tsx
32558
+ var import_jsx_runtime29 = require("react/jsx-runtime");
32559
+ var getClassName21 = get_class_name_factory_default("PuckPreview", styles_module_default16);
32328
32560
  var Preview = ({ id = "puck-preview" }) => {
32329
32561
  const { config, dispatch, state } = useAppContext();
32330
32562
  const Page = (0, import_react22.useCallback)(
@@ -32335,16 +32567,25 @@ var Preview = ({ id = "puck-preview" }) => {
32335
32567
  [config.root]
32336
32568
  );
32337
32569
  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)(
32570
+ const ref = (0, import_react22.useRef)(null);
32571
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32340
32572
  "div",
32341
32573
  {
32574
+ className: getClassName21(),
32342
32575
  id,
32343
32576
  onClick: () => {
32344
32577
  dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
32345
32578
  },
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 }) }))
32579
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32580
+ import_auto_frame_component.default,
32581
+ {
32582
+ id: "preview-iframe",
32583
+ className: getClassName21("iframe"),
32584
+ "data-rfd-iframe": true,
32585
+ ref,
32586
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) }))
32587
+ }
32588
+ )
32348
32589
  }
32349
32590
  );
32350
32591
  };
@@ -32378,7 +32619,7 @@ init_react_import();
32378
32619
 
32379
32620
  // css-module:/home/runner/work/puck/puck/packages/core/components/LayerTree/styles.module.css#css-module
32380
32621
  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" };
32622
+ var styles_module_default17 = { "LayerTree": "_LayerTree_1pgw8_1", "LayerTree-zoneTitle": "_LayerTree-zoneTitle_1pgw8_11", "LayerTree-helper": "_LayerTree-helper_1pgw8_17", "Layer": "_Layer_1pgw8_1", "Layer-inner": "_Layer-inner_1pgw8_29", "Layer--containsZone": "_Layer--containsZone_1pgw8_35", "Layer-clickable": "_Layer-clickable_1pgw8_39", "Layer--isSelected": "_Layer--isSelected_1pgw8_61", "Layer-chevron": "_Layer-chevron_1pgw8_77", "Layer--childIsSelected": "_Layer--childIsSelected_1pgw8_78", "Layer-zones": "_Layer-zones_1pgw8_82", "Layer-title": "_Layer-title_1pgw8_96", "Layer-name": "_Layer-name_1pgw8_105", "Layer-icon": "_Layer-icon_1pgw8_111", "Layer-zoneIcon": "_Layer-zoneIcon_1pgw8_116" };
32382
32623
 
32383
32624
  // lib/scroll-into-view.ts
32384
32625
  init_react_import();
@@ -32406,11 +32647,12 @@ var isChildOfZone = (item, maybeChild, ctx) => {
32406
32647
  };
32407
32648
 
32408
32649
  // 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);
32650
+ var import_jsx_runtime30 = require("react/jsx-runtime");
32651
+ var getClassName22 = get_class_name_factory_default("LayerTree", styles_module_default17);
32652
+ var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default17);
32412
32653
  var LayerTree = ({
32413
32654
  data,
32655
+ config,
32414
32656
  zoneContent,
32415
32657
  itemSelector,
32416
32658
  setItemSelector,
@@ -32419,15 +32661,16 @@ var LayerTree = ({
32419
32661
  }) => {
32420
32662
  const zones = data.zones || {};
32421
32663
  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" }) }),
32664
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
32665
+ label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
32666
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
32425
32667
  " ",
32426
32668
  label
32427
32669
  ] }),
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" }),
32670
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName22(), children: [
32671
+ zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
32430
32672
  zoneContent.map((item, i) => {
32673
+ var _a;
32431
32674
  const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
32432
32675
  const zonesForItem = findZonesForArea(data, item.props.id);
32433
32676
  const containsZone = Object.keys(zonesForItem).length > 0;
@@ -32441,7 +32684,7 @@ var LayerTree = ({
32441
32684
  const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
32442
32685
  const isHovering = hoveringComponent === item.props.id;
32443
32686
  const childIsSelected = isChildOfZone(item, selectedItem, ctx);
32444
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32687
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32445
32688
  "li",
32446
32689
  {
32447
32690
  className: getClassNameLayer({
@@ -32451,8 +32694,8 @@ var LayerTree = ({
32451
32694
  childIsSelected
32452
32695
  }),
32453
32696
  children: [
32454
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
32455
- "div",
32697
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
32698
+ "button",
32456
32699
  {
32457
32700
  className: getClassNameLayer("clickable"),
32458
32701
  onClick: () => {
@@ -32465,8 +32708,14 @@ var LayerTree = ({
32465
32708
  zone
32466
32709
  });
32467
32710
  const id = zoneContent[i].props.id;
32711
+ const iframe = document.querySelector("#preview-iframe");
32712
+ if (!(iframe == null ? void 0 : iframe.contentDocument)) {
32713
+ throw new Error(
32714
+ `Preview iframe could not be found when trying to scroll to item ${id}`
32715
+ );
32716
+ }
32468
32717
  scrollIntoView(
32469
- document.querySelector(
32718
+ iframe.contentDocument.querySelector(
32470
32719
  `[data-rfd-drag-handle-draggable-id="draggable-${id}"]`
32471
32720
  )
32472
32721
  );
@@ -32482,24 +32731,25 @@ var LayerTree = ({
32482
32731
  setHoveringComponent(null);
32483
32732
  },
32484
32733
  children: [
32485
- containsZone && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
32734
+ containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
32486
32735
  "div",
32487
32736
  {
32488
32737
  className: getClassNameLayer("chevron"),
32489
32738
  title: isSelected ? "Collapse" : "Expand",
32490
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevronDown, { size: "12" })
32739
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
32491
32740
  }
32492
32741
  ),
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 })
32742
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
32743
+ /* @__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" }) }),
32744
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
32496
32745
  ] })
32497
32746
  ]
32498
32747
  }
32499
32748
  ) }),
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)(
32749
+ 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
32750
  LayerTree,
32502
32751
  {
32752
+ config,
32503
32753
  data,
32504
32754
  zoneContent: zones[zoneKey],
32505
32755
  setItemSelector,
@@ -32519,9 +32769,9 @@ var LayerTree = ({
32519
32769
 
32520
32770
  // components/Puck/components/Outline/index.tsx
32521
32771
  var import_react24 = require("react");
32522
- var import_jsx_runtime28 = require("react/jsx-runtime");
32772
+ var import_jsx_runtime31 = require("react/jsx-runtime");
32523
32773
  var Outline = () => {
32524
- const { dispatch, state, overrides } = useAppContext();
32774
+ const { dispatch, state, overrides, config } = useAppContext();
32525
32775
  const { data, ui } = state;
32526
32776
  const { itemSelector } = ui;
32527
32777
  const setItemSelector = (0, import_react24.useCallback)(
@@ -32534,10 +32784,11 @@ var Outline = () => {
32534
32784
  []
32535
32785
  );
32536
32786
  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)(
32787
+ 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: [
32788
+ (ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32539
32789
  LayerTree,
32540
32790
  {
32791
+ config,
32541
32792
  data,
32542
32793
  label: areaContainsZones(data, "root") ? rootDroppableId : "",
32543
32794
  zoneContent: data.content,
@@ -32547,9 +32798,10 @@ var Outline = () => {
32547
32798
  ),
32548
32799
  Object.entries(findZonesForArea(data, "root")).map(
32549
32800
  ([zoneKey, zone]) => {
32550
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
32801
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
32551
32802
  LayerTree,
32552
32803
  {
32804
+ config,
32553
32805
  data,
32554
32806
  label: zoneKey,
32555
32807
  zone: zoneKey,
@@ -32673,14 +32925,421 @@ function useHistoryStore() {
32673
32925
  };
32674
32926
  }
32675
32927
 
32928
+ // components/Puck/components/Canvas/index.tsx
32929
+ init_react_import();
32930
+
32931
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
32932
+ init_react_import();
32933
+
32934
+ // ../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js
32935
+ init_react_import();
32936
+ var isProduction = process.env.NODE_ENV === "production";
32937
+ var prefix = "Invariant failed";
32938
+ function invariant(condition, message) {
32939
+ if (condition) {
32940
+ return;
32941
+ }
32942
+ if (isProduction) {
32943
+ throw new Error(prefix);
32944
+ }
32945
+ var provided = typeof message === "function" ? message() : message;
32946
+ var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
32947
+ throw new Error(value);
32948
+ }
32949
+
32950
+ // ../../node_modules/css-box-model/dist/css-box-model.esm.js
32951
+ var getRect = function getRect2(_ref) {
32952
+ var top = _ref.top, right = _ref.right, bottom = _ref.bottom, left = _ref.left;
32953
+ var width = right - left;
32954
+ var height = bottom - top;
32955
+ var rect = {
32956
+ top,
32957
+ right,
32958
+ bottom,
32959
+ left,
32960
+ width,
32961
+ height,
32962
+ x: left,
32963
+ y: top,
32964
+ center: {
32965
+ x: (right + left) / 2,
32966
+ y: (bottom + top) / 2
32967
+ }
32968
+ };
32969
+ return rect;
32970
+ };
32971
+ var expand = function expand2(target, expandBy) {
32972
+ return {
32973
+ top: target.top - expandBy.top,
32974
+ left: target.left - expandBy.left,
32975
+ bottom: target.bottom + expandBy.bottom,
32976
+ right: target.right + expandBy.right
32977
+ };
32978
+ };
32979
+ var shrink = function shrink2(target, shrinkBy) {
32980
+ return {
32981
+ top: target.top + shrinkBy.top,
32982
+ left: target.left + shrinkBy.left,
32983
+ bottom: target.bottom - shrinkBy.bottom,
32984
+ right: target.right - shrinkBy.right
32985
+ };
32986
+ };
32987
+ var noSpacing = {
32988
+ top: 0,
32989
+ right: 0,
32990
+ bottom: 0,
32991
+ left: 0
32992
+ };
32993
+ var createBox = function createBox2(_ref2) {
32994
+ 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;
32995
+ var marginBox = getRect(expand(borderBox, margin));
32996
+ var paddingBox = getRect(shrink(borderBox, border));
32997
+ var contentBox = getRect(shrink(paddingBox, padding));
32998
+ return {
32999
+ marginBox,
33000
+ borderBox: getRect(borderBox),
33001
+ paddingBox,
33002
+ contentBox,
33003
+ margin,
33004
+ border,
33005
+ padding
33006
+ };
33007
+ };
33008
+ var parse = function parse2(raw) {
33009
+ var value = raw.slice(0, -2);
33010
+ var suffix = raw.slice(-2);
33011
+ if (suffix !== "px") {
33012
+ return 0;
33013
+ }
33014
+ var result = Number(value);
33015
+ !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0;
33016
+ return result;
33017
+ };
33018
+ var calculateBox = function calculateBox2(borderBox, styles) {
33019
+ var margin = {
33020
+ top: parse(styles.marginTop),
33021
+ right: parse(styles.marginRight),
33022
+ bottom: parse(styles.marginBottom),
33023
+ left: parse(styles.marginLeft)
33024
+ };
33025
+ var padding = {
33026
+ top: parse(styles.paddingTop),
33027
+ right: parse(styles.paddingRight),
33028
+ bottom: parse(styles.paddingBottom),
33029
+ left: parse(styles.paddingLeft)
33030
+ };
33031
+ var border = {
33032
+ top: parse(styles.borderTopWidth),
33033
+ right: parse(styles.borderRightWidth),
33034
+ bottom: parse(styles.borderBottomWidth),
33035
+ left: parse(styles.borderLeftWidth)
33036
+ };
33037
+ return createBox({
33038
+ borderBox,
33039
+ margin,
33040
+ padding,
33041
+ border
33042
+ });
33043
+ };
33044
+ var getBox = function getBox2(el) {
33045
+ var borderBox = el.getBoundingClientRect();
33046
+ var styles = window.getComputedStyle(el);
33047
+ return calculateBox(borderBox, styles);
33048
+ };
33049
+
33050
+ // components/Puck/components/Canvas/index.tsx
33051
+ var import_react27 = require("react");
33052
+
33053
+ // components/ViewportControls/index.tsx
33054
+ init_react_import();
33055
+ var import_react26 = require("react");
33056
+
33057
+ // css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
33058
+ init_react_import();
33059
+ var styles_module_default18 = { "ViewportControls": "_ViewportControls_14bhf_1", "ViewportControls-divider": "_ViewportControls-divider_14bhf_15", "ViewportControls-zoomSelect": "_ViewportControls-zoomSelect_14bhf_21", "ViewportButton--isActive": "_ViewportButton--isActive_14bhf_33", "ViewportButton-inner": "_ViewportButton-inner_14bhf_33" };
33060
+
33061
+ // components/ViewportControls/index.tsx
33062
+ var import_jsx_runtime32 = require("react/jsx-runtime");
33063
+ var icons = {
33064
+ Smartphone: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Smartphone, { size: 16 }),
33065
+ Tablet: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tablet, { size: 16 }),
33066
+ Monitor: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Monitor, { size: 16 })
33067
+ };
33068
+ var getClassName23 = get_class_name_factory_default("ViewportControls", styles_module_default18);
33069
+ var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_module_default18);
33070
+ var ViewportButton = ({
33071
+ children,
33072
+ height = "auto",
33073
+ title,
33074
+ width,
33075
+ onClick
33076
+ }) => {
33077
+ const { state } = useAppContext();
33078
+ const isActive = width === state.ui.viewports.current.width;
33079
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33080
+ IconButton,
33081
+ {
33082
+ title,
33083
+ disabled: isActive,
33084
+ onClick: (e) => {
33085
+ e.stopPropagation();
33086
+ onClick({ width, height });
33087
+ },
33088
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton("inner"), children })
33089
+ }
33090
+ ) });
33091
+ };
33092
+ var defaultZoomOptions = [
33093
+ { label: "25%", value: 0.25 },
33094
+ { label: "50%", value: 0.5 },
33095
+ { label: "75%", value: 0.75 },
33096
+ { label: "100%", value: 1 },
33097
+ { label: "125%", value: 1.25 },
33098
+ { label: "150%", value: 1.5 },
33099
+ { label: "200%", value: 2 }
33100
+ ];
33101
+ var ViewportControls = ({
33102
+ autoZoom,
33103
+ zoom,
33104
+ onViewportChange,
33105
+ onZoom
33106
+ }) => {
33107
+ const { state, viewports } = useAppContext();
33108
+ const viewport = state.ui.viewports.current;
33109
+ const defaultsContainAutoZoom = defaultZoomOptions.find(
33110
+ (option) => option.value === autoZoom
33111
+ );
33112
+ const zoomOptions = (0, import_react26.useMemo)(
33113
+ () => [
33114
+ ...defaultZoomOptions,
33115
+ ...defaultsContainAutoZoom ? [] : [
33116
+ {
33117
+ value: autoZoom,
33118
+ label: `${(autoZoom * 100).toFixed(0)}% (Auto)`
33119
+ }
33120
+ ]
33121
+ ].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
33122
+ [autoZoom]
33123
+ );
33124
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: getClassName23(), children: [
33125
+ viewports.map((viewport2, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33126
+ ViewportButton,
33127
+ {
33128
+ height: viewport2.height,
33129
+ width: viewport2.width,
33130
+ title: viewport2.label ? `Switch to ${viewport2.label} viewport` : "Switch viewport",
33131
+ onClick: onViewportChange,
33132
+ children: typeof viewport2.icon === "string" ? icons[viewport2.icon] || viewport2.icon : viewport2.icon || icons.Smartphone
33133
+ },
33134
+ i
33135
+ )),
33136
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33137
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33138
+ IconButton,
33139
+ {
33140
+ title: "Zoom viewport out",
33141
+ disabled: zoom <= zoomOptions[0].value,
33142
+ onClick: (e) => {
33143
+ e.stopPropagation();
33144
+ onZoom(
33145
+ zoomOptions[Math.max(
33146
+ zoomOptions.findIndex((option) => option.value === zoom) - 1,
33147
+ 0
33148
+ )].value
33149
+ );
33150
+ },
33151
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomOut, { size: 16 })
33152
+ }
33153
+ ),
33154
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33155
+ IconButton,
33156
+ {
33157
+ title: "Zoom viewport in",
33158
+ disabled: zoom >= zoomOptions[zoomOptions.length - 1].value,
33159
+ onClick: (e) => {
33160
+ e.stopPropagation();
33161
+ onZoom(
33162
+ zoomOptions[Math.min(
33163
+ zoomOptions.findIndex((option) => option.value === zoom) + 1,
33164
+ zoomOptions.length - 1
33165
+ )].value
33166
+ );
33167
+ },
33168
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomIn, { size: 16 })
33169
+ }
33170
+ ),
33171
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
33172
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33173
+ "select",
33174
+ {
33175
+ className: getClassName23("zoomSelect"),
33176
+ value: zoom.toString(),
33177
+ onChange: (e) => {
33178
+ onZoom(parseFloat(e.currentTarget.value));
33179
+ },
33180
+ children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
33181
+ "option",
33182
+ {
33183
+ value: option.value,
33184
+ label: option.label
33185
+ },
33186
+ option.label
33187
+ ))
33188
+ }
33189
+ )
33190
+ ] });
33191
+ };
33192
+
33193
+ // lib/get-zoom-config.ts
33194
+ init_react_import();
33195
+ var RESET_ZOOM_SMALLER_THAN_FRAME = true;
33196
+ var getZoomConfig = (uiViewport, frame, zoom) => {
33197
+ const box = getBox(frame);
33198
+ const { width: frameWidth, height: frameHeight } = box.contentBox;
33199
+ const viewportHeight = uiViewport.height === "auto" ? frameHeight : uiViewport.height;
33200
+ let rootHeight = 0;
33201
+ let autoZoom = 1;
33202
+ if (uiViewport.width > frameWidth || viewportHeight > frameHeight) {
33203
+ const widthZoom = Math.min(frameWidth / uiViewport.width, 1);
33204
+ const heightZoom = Math.min(frameHeight / viewportHeight, 1);
33205
+ zoom = widthZoom;
33206
+ if (widthZoom < heightZoom) {
33207
+ rootHeight = viewportHeight / zoom;
33208
+ } else {
33209
+ rootHeight = viewportHeight;
33210
+ zoom = heightZoom;
33211
+ }
33212
+ autoZoom = zoom;
33213
+ } else {
33214
+ if (RESET_ZOOM_SMALLER_THAN_FRAME) {
33215
+ autoZoom = 1;
33216
+ zoom = 1;
33217
+ rootHeight = viewportHeight;
33218
+ }
33219
+ }
33220
+ return { autoZoom, rootHeight, zoom };
33221
+ };
33222
+
33223
+ // components/Puck/components/Canvas/index.tsx
33224
+ var import_jsx_runtime33 = require("react/jsx-runtime");
33225
+ var getClassName24 = get_class_name_factory_default("Puck", styles_module_default8);
33226
+ var ZOOM_ON_CHANGE = true;
33227
+ var Canvas = () => {
33228
+ const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
33229
+ const { ui } = state;
33230
+ const frameRef = (0, import_react27.useRef)(null);
33231
+ const [showTransition, setShowTransition] = (0, import_react27.useState)(false);
33232
+ const defaultRender = (0, import_react27.useMemo)(() => {
33233
+ const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
33234
+ return PuckDefault;
33235
+ }, []);
33236
+ const CustomPreview = (0, import_react27.useMemo)(
33237
+ () => overrides.preview || defaultRender,
33238
+ [overrides]
33239
+ );
33240
+ const getFrameDimensions = (0, import_react27.useCallback)(() => {
33241
+ if (frameRef.current) {
33242
+ const frame = frameRef.current;
33243
+ const box = getBox(frame);
33244
+ return { width: box.contentBox.width, height: box.contentBox.height };
33245
+ }
33246
+ return { width: 0, height: 0 };
33247
+ }, [frameRef]);
33248
+ const resetAutoZoom = (0, import_react27.useCallback)(
33249
+ (ui2 = state.ui) => {
33250
+ if (frameRef.current) {
33251
+ setZoomConfig(
33252
+ getZoomConfig(ui2.viewports.current, frameRef.current, zoomConfig.zoom)
33253
+ );
33254
+ }
33255
+ },
33256
+ [frameRef, zoomConfig, state.ui]
33257
+ );
33258
+ (0, import_react27.useEffect)(() => {
33259
+ setShowTransition(false);
33260
+ resetAutoZoom();
33261
+ }, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
33262
+ (0, import_react27.useEffect)(() => {
33263
+ const { height: frameHeight } = getFrameDimensions();
33264
+ if (ui.viewports.current.height === "auto") {
33265
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
33266
+ rootHeight: frameHeight / zoomConfig.zoom
33267
+ }));
33268
+ }
33269
+ }, [zoomConfig.zoom]);
33270
+ (0, import_react27.useEffect)(() => {
33271
+ const observer = new ResizeObserver(() => {
33272
+ setShowTransition(false);
33273
+ resetAutoZoom();
33274
+ });
33275
+ if (document.body) {
33276
+ observer.observe(document.body);
33277
+ }
33278
+ return () => {
33279
+ observer.disconnect();
33280
+ };
33281
+ }, []);
33282
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
33283
+ "div",
33284
+ {
33285
+ className: getClassName24("canvas"),
33286
+ onClick: () => dispatch({
33287
+ type: "setUi",
33288
+ ui: { itemSelector: null },
33289
+ recordHistory: true
33290
+ }),
33291
+ children: [
33292
+ ui.viewports.controlsVisible && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("canvasControls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33293
+ ViewportControls,
33294
+ {
33295
+ autoZoom: zoomConfig.autoZoom,
33296
+ zoom: zoomConfig.zoom,
33297
+ onViewportChange: (viewport) => {
33298
+ setShowTransition(true);
33299
+ const uiViewport = __spreadProps(__spreadValues({}, viewport), {
33300
+ height: viewport.height || "auto",
33301
+ zoom: zoomConfig.zoom
33302
+ });
33303
+ const newUi = __spreadProps(__spreadValues({}, ui), {
33304
+ viewports: __spreadProps(__spreadValues({}, ui.viewports), { current: uiViewport })
33305
+ });
33306
+ setUi(newUi);
33307
+ if (ZOOM_ON_CHANGE) {
33308
+ resetAutoZoom(newUi);
33309
+ }
33310
+ },
33311
+ onZoom: (zoom) => {
33312
+ setShowTransition(true);
33313
+ setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), { zoom }));
33314
+ }
33315
+ }
33316
+ ) }),
33317
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("frame"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
33318
+ "div",
33319
+ {
33320
+ className: getClassName24("root"),
33321
+ style: {
33322
+ width: ui.viewports.current.width,
33323
+ height: zoomConfig.rootHeight,
33324
+ transform: `scale(${zoomConfig.zoom})`,
33325
+ transition: showTransition ? "width 150ms ease-out, height 150ms ease-out, transform 150ms ease-out" : ""
33326
+ },
33327
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
33328
+ }
33329
+ ) })
33330
+ ]
33331
+ }
33332
+ );
33333
+ };
33334
+
32676
33335
  // 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);
33336
+ var import_jsx_runtime34 = require("react/jsx-runtime");
33337
+ var getClassName25 = get_class_name_factory_default("Puck", styles_module_default8);
32679
33338
  function Puck({
32680
33339
  children,
32681
33340
  config,
32682
33341
  data: initialData = { content: [], root: { props: { title: "" } } },
32683
- ui: initialUi = defaultAppState.ui,
33342
+ ui: initialUi,
32684
33343
  onChange,
32685
33344
  onPublish,
32686
33345
  plugins = [],
@@ -32688,32 +33347,58 @@ function Puck({
32688
33347
  renderHeader,
32689
33348
  renderHeaderActions,
32690
33349
  headerTitle,
32691
- headerPath
33350
+ headerPath,
33351
+ viewports = defaultViewports
32692
33352
  }) {
33353
+ var _a;
32693
33354
  const historyStore = useHistoryStore();
32694
- const [reducer] = (0, import_react26.useState)(
33355
+ const [reducer] = (0, import_react28.useState)(
32695
33356
  () => createReducer({ config, record: historyStore.record })
32696
33357
  );
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)(
33358
+ const [initialAppState] = (0, import_react28.useState)(() => {
33359
+ var _a2, _b, _c, _d;
33360
+ const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
33361
+ let clientUiState = {};
33362
+ if (typeof window !== "undefined") {
33363
+ const viewportWidth = window.innerWidth;
33364
+ const viewportDifferences = Object.entries(viewports).map(([key, value]) => ({
33365
+ key,
33366
+ diff: Math.abs(viewportWidth - value.width)
33367
+ })).sort((a, b) => a.diff > b.diff ? 1 : -1);
33368
+ const closestViewport = viewportDifferences[0].key;
33369
+ clientUiState = __spreadProps(__spreadValues({}, window.matchMedia("(min-width: 638px)").matches ? {} : {
33370
+ leftSideBarVisible: false,
33371
+ rightSideBarVisible: false
33372
+ }), {
33373
+ viewports: __spreadProps(__spreadValues({}, initial.viewports), {
33374
+ current: __spreadProps(__spreadValues({}, initial.viewports.current), {
33375
+ height: ((_b = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b.height) || viewports[closestViewport].height || "auto",
33376
+ width: ((_d = (_c = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _c.current) == null ? void 0 : _d.width) || viewports[closestViewport].width
33377
+ })
33378
+ })
33379
+ });
33380
+ }
33381
+ return __spreadProps(__spreadValues({}, defaultAppState), {
33382
+ data: initialData,
33383
+ ui: __spreadProps(__spreadValues(__spreadValues({}, initial), clientUiState), {
33384
+ // Store categories under componentList on state to allow render functions and plugins to modify
33385
+ componentList: config.categories ? Object.entries(config.categories).reduce(
33386
+ (acc, [categoryName, category]) => {
33387
+ return __spreadProps(__spreadValues({}, acc), {
33388
+ [categoryName]: {
33389
+ title: category.title,
33390
+ components: category.components,
33391
+ expanded: category.defaultExpanded,
33392
+ visible: category.visible
33393
+ }
33394
+ });
33395
+ },
33396
+ {}
33397
+ ) : {}
33398
+ })
33399
+ });
33400
+ });
33401
+ const [appState, dispatch] = (0, import_react28.useReducer)(
32717
33402
  reducer,
32718
33403
  flushZones(initialAppState)
32719
33404
  );
@@ -32724,9 +33409,9 @@ function Puck({
32724
33409
  config,
32725
33410
  dispatch
32726
33411
  );
32727
- const [menuOpen, setMenuOpen] = (0, import_react26.useState)(false);
33412
+ const [menuOpen, setMenuOpen] = (0, import_react28.useState)(false);
32728
33413
  const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
32729
- const setItemSelector = (0, import_react26.useCallback)(
33414
+ const setItemSelector = (0, import_react28.useCallback)(
32730
33415
  (newItemSelector) => {
32731
33416
  if (newItemSelector === itemSelector)
32732
33417
  return;
@@ -32739,21 +33424,21 @@ function Puck({
32739
33424
  [itemSelector]
32740
33425
  );
32741
33426
  const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
32742
- (0, import_react26.useEffect)(() => {
33427
+ (0, import_react28.useEffect)(() => {
32743
33428
  if (onChange)
32744
33429
  onChange(data);
32745
33430
  }, [data]);
32746
33431
  const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
32747
- const [draggedItem, setDraggedItem] = (0, import_react26.useState)();
33432
+ const [draggedItem, setDraggedItem] = (0, import_react28.useState)();
32748
33433
  const rootProps = data.root.props || data.root;
32749
- (0, import_react26.useEffect)(() => {
33434
+ (0, import_react28.useEffect)(() => {
32750
33435
  if (Object.keys(data.root).length > 0 && !data.root.props) {
32751
33436
  console.error(
32752
33437
  "Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
32753
33438
  );
32754
33439
  }
32755
33440
  }, []);
32756
- const toggleSidebars = (0, import_react26.useCallback)(
33441
+ const toggleSidebars = (0, import_react28.useCallback)(
32757
33442
  (sidebar) => {
32758
33443
  const widerViewport = window.matchMedia("(min-width: 638px)").matches;
32759
33444
  const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
@@ -32767,7 +33452,7 @@ function Puck({
32767
33452
  },
32768
33453
  [dispatch, leftSideBarVisible, rightSideBarVisible]
32769
33454
  );
32770
- (0, import_react26.useEffect)(() => {
33455
+ (0, import_react28.useEffect)(() => {
32771
33456
  if (!window.matchMedia("(min-width: 638px)").matches) {
32772
33457
  dispatch({
32773
33458
  type: "setUi",
@@ -32790,59 +33475,54 @@ function Puck({
32790
33475
  window.removeEventListener("resize", handleResize);
32791
33476
  };
32792
33477
  }, []);
32793
- const defaultRender = (0, import_react26.useMemo)(() => {
32794
- const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: children2 });
33478
+ const defaultRender = (0, import_react28.useMemo)(() => {
33479
+ const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
32795
33480
  return PuckDefault;
32796
33481
  }, []);
32797
- const defaultHeaderRender = (0, import_react26.useMemo)(() => {
33482
+ const defaultHeaderRender = (0, import_react28.useMemo)(() => {
32798
33483
  if (renderHeader) {
32799
33484
  console.warn(
32800
33485
  "`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
32801
33486
  );
32802
- const RenderHeader = (_a) => {
32803
- var _b = _a, { actions } = _b, props = __objRest(_b, ["actions"]);
33487
+ const RenderHeader = (_a2) => {
33488
+ var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
32804
33489
  const Comp = renderHeader;
32805
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
33490
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
32806
33491
  };
32807
33492
  return RenderHeader;
32808
33493
  }
32809
33494
  return defaultRender;
32810
33495
  }, [renderHeader]);
32811
- const defaultHeaderActionsRender = (0, import_react26.useMemo)(() => {
33496
+ const defaultHeaderActionsRender = (0, import_react28.useMemo)(() => {
32812
33497
  if (renderHeaderActions) {
32813
33498
  console.warn(
32814
33499
  "`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
32815
33500
  );
32816
33501
  const RenderHeader = (props) => {
32817
33502
  const Comp = renderHeaderActions;
32818
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
33503
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
32819
33504
  };
32820
33505
  return RenderHeader;
32821
33506
  }
32822
33507
  return defaultRender;
32823
33508
  }, [renderHeader]);
32824
- const loadedOverrides = (0, import_react26.useMemo)(() => {
33509
+ const loadedOverrides = (0, import_react28.useMemo)(() => {
32825
33510
  return loadOverrides({ overrides, plugins });
32826
33511
  }, [plugins]);
32827
- const CustomPuck = (0, import_react26.useMemo)(
33512
+ const CustomPuck = (0, import_react28.useMemo)(
32828
33513
  () => loadedOverrides.puck || defaultRender,
32829
33514
  [loadedOverrides]
32830
33515
  );
32831
- const CustomPreview = (0, import_react26.useMemo)(
32832
- () => loadedOverrides.preview || defaultRender,
32833
- [loadedOverrides]
32834
- );
32835
- const CustomHeader = (0, import_react26.useMemo)(
33516
+ const CustomHeader = (0, import_react28.useMemo)(
32836
33517
  () => loadedOverrides.header || defaultHeaderRender,
32837
33518
  [loadedOverrides]
32838
33519
  );
32839
- const CustomHeaderActions = (0, import_react26.useMemo)(
33520
+ const CustomHeaderActions = (0, import_react28.useMemo)(
32840
33521
  () => loadedOverrides.headerActions || defaultHeaderActionsRender,
32841
33522
  [loadedOverrides]
32842
33523
  );
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)(
33524
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "Puck", children: [
33525
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32846
33526
  AppProvider,
32847
33527
  {
32848
33528
  value: {
@@ -32853,10 +33533,11 @@ function Puck({
32853
33533
  resolveData,
32854
33534
  plugins,
32855
33535
  overrides: loadedOverrides,
32856
- history
33536
+ history,
33537
+ viewports
32857
33538
  },
32858
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
32859
- import_dnd7.DragDropContext,
33539
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33540
+ DragDropContext,
32860
33541
  {
32861
33542
  onDragUpdate: (update) => {
32862
33543
  setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
@@ -32910,7 +33591,7 @@ function Puck({
32910
33591
  });
32911
33592
  }
32912
33593
  },
32913
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33594
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32914
33595
  DropZoneProvider,
32915
33596
  {
32916
33597
  value: {
@@ -32922,77 +33603,75 @@ function Puck({
32922
33603
  draggedItem,
32923
33604
  placeholderStyle,
32924
33605
  mode: "edit",
32925
- areaId: "root",
32926
- disableZoom
33606
+ areaId: "root"
32927
33607
  },
32928
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
33608
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
32929
33609
  "div",
32930
33610
  {
32931
- className: getClassName22({
33611
+ className: getClassName25({
32932
33612
  leftSideBarVisible,
32933
33613
  menuOpen,
32934
- rightSideBarVisible,
32935
- disableZoom
33614
+ rightSideBarVisible
32936
33615
  }),
32937
33616
  children: [
32938
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33617
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32939
33618
  CustomHeader,
32940
33619
  {
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)(
33620
+ actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
33621
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33622
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32944
33623
  Button,
32945
33624
  {
32946
33625
  onClick: () => {
32947
33626
  onPublish && onPublish(data);
32948
33627
  },
32949
- icon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Globe, { size: "14px" }),
33628
+ icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
32950
33629
  children: "Publish"
32951
33630
  }
32952
33631
  )
32953
33632
  ] }),
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)(
33633
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
33634
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
33635
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32957
33636
  IconButton,
32958
33637
  {
32959
33638
  onClick: () => {
32960
33639
  toggleSidebars("left");
32961
33640
  },
32962
33641
  title: "Toggle left sidebar",
32963
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelLeft, { focusable: "false" })
33642
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
32964
33643
  }
32965
33644
  ) }),
32966
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33645
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32967
33646
  IconButton,
32968
33647
  {
32969
33648
  onClick: () => {
32970
33649
  toggleSidebars("right");
32971
33650
  },
32972
33651
  title: "Toggle right sidebar",
32973
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PanelRight, { focusable: "false" })
33652
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
32974
33653
  }
32975
33654
  ) })
32976
33655
  ] }),
32977
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Heading, { rank: 2, size: "xs", children: [
33656
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading, { rank: 2, size: "xs", children: [
32978
33657
  headerTitle || rootProps.title || "Page",
32979
- headerPath && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
33658
+ headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
32980
33659
  " ",
32981
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("code", { className: getClassName22("headerPath"), children: headerPath })
33660
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
32982
33661
  ] })
32983
33662
  ] }) }),
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)(
33663
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
33664
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32986
33665
  IconButton,
32987
33666
  {
32988
33667
  onClick: () => {
32989
33668
  return setMenuOpen(!menuOpen);
32990
33669
  },
32991
33670
  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" })
33671
+ children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
32993
33672
  }
32994
33673
  ) }),
32995
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
33674
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
32996
33675
  MenuBar,
32997
33676
  {
32998
33677
  appState,
@@ -33000,7 +33679,7 @@ function Puck({
33000
33679
  dispatch,
33001
33680
  onPublish,
33002
33681
  menuOpen,
33003
- renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomHeaderActions, {}),
33682
+ renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
33004
33683
  setMenuOpen
33005
33684
  }
33006
33685
  )
@@ -33008,38 +33687,19 @@ function Puck({
33008
33687
  ] }) })
33009
33688
  }
33010
33689
  ),
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, {}) })
33690
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
33691
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
33692
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
33014
33693
  ] }),
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)(
33694
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
33695
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
33036
33696
  SidebarSection,
33037
33697
  {
33038
33698
  noPadding: true,
33039
33699
  noBorderTop: true,
33040
33700
  showBreadcrumbs: true,
33041
- title: selectedItem ? selectedItem.type : "Page",
33042
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fields, {})
33701
+ title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
33702
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
33043
33703
  }
33044
33704
  ) })
33045
33705
  ]
@@ -33051,7 +33711,7 @@ function Puck({
33051
33711
  )
33052
33712
  }
33053
33713
  ),
33054
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "puck-portal-root" })
33714
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { id: "puck-portal-root" })
33055
33715
  ] });
33056
33716
  }
33057
33717
  Puck.Components = Components;
@@ -33061,13 +33721,13 @@ Puck.Preview = Preview;
33061
33721
 
33062
33722
  // components/Render/index.tsx
33063
33723
  init_react_import();
33064
- var import_jsx_runtime30 = require("react/jsx-runtime");
33724
+ var import_jsx_runtime35 = require("react/jsx-runtime");
33065
33725
  function Render({ config, data }) {
33066
33726
  var _a;
33067
33727
  const rootProps = data.root.props || data.root;
33068
33728
  const title = (rootProps == null ? void 0 : rootProps.title) || "";
33069
33729
  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)(
33730
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
33071
33731
  config.root.render,
33072
33732
  __spreadProps(__spreadValues({}, rootProps), {
33073
33733
  puck: {
@@ -33076,11 +33736,11 @@ function Render({ config, data }) {
33076
33736
  title,
33077
33737
  editMode: false,
33078
33738
  id: "puck-root",
33079
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId })
33739
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId })
33080
33740
  })
33081
33741
  ) });
33082
33742
  }
33083
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) });
33743
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId }) });
33084
33744
  }
33085
33745
 
33086
33746
  // lib/migrate.ts
@@ -33170,8 +33830,8 @@ var resolveAllData = (data, config, onResolveStart, onResolveEnd) => __async(voi
33170
33830
  // lib/use-puck.ts
33171
33831
  init_react_import();
33172
33832
  var usePuck = () => {
33173
- const { state: appState, config, dispatch } = useAppContext();
33174
- return { appState, config, dispatch };
33833
+ const { state: appState, config, history, dispatch } = useAppContext();
33834
+ return { appState, config, dispatch, history };
33175
33835
  };
33176
33836
  // Annotate the CommonJS export names for ESM import in node:
33177
33837
  0 && (module.exports = {
@@ -33375,6 +34035,14 @@ lucide-react/dist/esm/icons/lock.js:
33375
34035
  * See the LICENSE file in the root directory of this source tree.
33376
34036
  *)
33377
34037
 
34038
+ lucide-react/dist/esm/icons/monitor.js:
34039
+ (**
34040
+ * @license lucide-react v0.298.0 - ISC
34041
+ *
34042
+ * This source code is licensed under the ISC license.
34043
+ * See the LICENSE file in the root directory of this source tree.
34044
+ *)
34045
+
33378
34046
  lucide-react/dist/esm/icons/more-vertical.js:
33379
34047
  (**
33380
34048
  * @license lucide-react v0.298.0 - ISC
@@ -33415,6 +34083,30 @@ lucide-react/dist/esm/icons/search.js:
33415
34083
  * See the LICENSE file in the root directory of this source tree.
33416
34084
  *)
33417
34085
 
34086
+ lucide-react/dist/esm/icons/sliders-horizontal.js:
34087
+ (**
34088
+ * @license lucide-react v0.298.0 - ISC
34089
+ *
34090
+ * This source code is licensed under the ISC license.
34091
+ * See the LICENSE file in the root directory of this source tree.
34092
+ *)
34093
+
34094
+ lucide-react/dist/esm/icons/smartphone.js:
34095
+ (**
34096
+ * @license lucide-react v0.298.0 - ISC
34097
+ *
34098
+ * This source code is licensed under the ISC license.
34099
+ * See the LICENSE file in the root directory of this source tree.
34100
+ *)
34101
+
34102
+ lucide-react/dist/esm/icons/tablet.js:
34103
+ (**
34104
+ * @license lucide-react v0.298.0 - ISC
34105
+ *
34106
+ * This source code is licensed under the ISC license.
34107
+ * See the LICENSE file in the root directory of this source tree.
34108
+ *)
34109
+
33418
34110
  lucide-react/dist/esm/icons/trash.js:
33419
34111
  (**
33420
34112
  * @license lucide-react v0.298.0 - ISC
@@ -33439,6 +34131,22 @@ lucide-react/dist/esm/icons/unlock.js:
33439
34131
  * See the LICENSE file in the root directory of this source tree.
33440
34132
  *)
33441
34133
 
34134
+ lucide-react/dist/esm/icons/zoom-in.js:
34135
+ (**
34136
+ * @license lucide-react v0.298.0 - ISC
34137
+ *
34138
+ * This source code is licensed under the ISC license.
34139
+ * See the LICENSE file in the root directory of this source tree.
34140
+ *)
34141
+
34142
+ lucide-react/dist/esm/icons/zoom-out.js:
34143
+ (**
34144
+ * @license lucide-react v0.298.0 - ISC
34145
+ *
34146
+ * This source code is licensed under the ISC license.
34147
+ * See the LICENSE file in the root directory of this source tree.
34148
+ *)
34149
+
33442
34150
  lucide-react/dist/esm/lucide-react.js:
33443
34151
  (**
33444
34152
  * @license lucide-react v0.298.0 - ISC