@measured/puck 0.13.2-canary.8d7db7b → 0.14.0-canary.03dd90b
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{Config-5804f327.d.ts → Config-29dc2731.d.ts} +36 -11
- package/dist/index.css +894 -570
- package/dist/index.d.ts +44 -8
- package/dist/index.js +1406 -655
- package/dist/rsc.d.ts +1 -1
- package/package.json +4 -2
package/dist/index.js
CHANGED
@@ -8084,7 +8084,7 @@ var require_react_dom_development = __commonJS({
|
|
8084
8084
|
var HostPortal = 4;
|
8085
8085
|
var HostComponent = 5;
|
8086
8086
|
var HostText = 6;
|
8087
|
-
var
|
8087
|
+
var Fragment16 = 7;
|
8088
8088
|
var Mode = 8;
|
8089
8089
|
var ContextConsumer = 9;
|
8090
8090
|
var ContextProvider = 10;
|
@@ -8264,8 +8264,8 @@ var require_react_dom_development = __commonJS({
|
|
8264
8264
|
if (propertyInfo !== null) {
|
8265
8265
|
return !propertyInfo.acceptsBooleans;
|
8266
8266
|
} else {
|
8267
|
-
var
|
8268
|
-
return
|
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
|
8940
|
+
var prefix2;
|
8941
8941
|
function describeBuiltInComponentFrame(name, source, ownerFn) {
|
8942
8942
|
{
|
8943
|
-
if (
|
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
|
-
|
8948
|
+
prefix2 = match && match[1] || "";
|
8949
8949
|
}
|
8950
8950
|
}
|
8951
|
-
return "\n" +
|
8951
|
+
return "\n" + prefix2 + name;
|
8952
8952
|
}
|
8953
8953
|
}
|
8954
8954
|
var reentry = false;
|
@@ -9240,7 +9240,7 @@ var require_react_dom_development = __commonJS({
|
|
9240
9240
|
return "DehydratedFragment";
|
9241
9241
|
case ForwardRef:
|
9242
9242
|
return getWrappedName$1(type, type.render, "ForwardRef");
|
9243
|
-
case
|
9243
|
+
case Fragment16:
|
9244
9244
|
return "Fragment";
|
9245
9245
|
case HostComponent:
|
9246
9246
|
return type;
|
@@ -10033,13 +10033,13 @@ var require_react_dom_development = __commonJS({
|
|
10033
10033
|
strokeOpacity: true,
|
10034
10034
|
strokeWidth: true
|
10035
10035
|
};
|
10036
|
-
function prefixKey(
|
10037
|
-
return
|
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(
|
10042
|
-
isUnitlessNumber[prefixKey(
|
10041
|
+
prefixes.forEach(function(prefix3) {
|
10042
|
+
isUnitlessNumber[prefixKey(prefix3, prop)] = isUnitlessNumber[prop];
|
10043
10043
|
});
|
10044
10044
|
});
|
10045
10045
|
function dangerousStyleValue(name, value, isCustomProperty) {
|
@@ -18911,7 +18911,7 @@ var require_react_dom_development = __commonJS({
|
|
18911
18911
|
}
|
18912
18912
|
}
|
18913
18913
|
function updateFragment2(returnFiber, current2, fragment, lanes, key) {
|
18914
|
-
if (current2 === null || current2.tag !==
|
18914
|
+
if (current2 === null || current2.tag !== Fragment16) {
|
18915
18915
|
var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);
|
18916
18916
|
created.return = returnFiber;
|
18917
18917
|
return created;
|
@@ -19314,7 +19314,7 @@ var require_react_dom_development = __commonJS({
|
|
19314
19314
|
if (child.key === key) {
|
19315
19315
|
var elementType = element.type;
|
19316
19316
|
if (elementType === REACT_FRAGMENT_TYPE) {
|
19317
|
-
if (child.tag ===
|
19317
|
+
if (child.tag === Fragment16) {
|
19318
19318
|
deleteRemainingChildren(returnFiber, child.sibling);
|
19319
19319
|
var existing = useFiber(child, element.props.children);
|
19320
19320
|
existing.return = returnFiber;
|
@@ -23489,7 +23489,7 @@ var require_react_dom_development = __commonJS({
|
|
23489
23489
|
var _resolvedProps2 = workInProgress2.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
|
23490
23490
|
return updateForwardRef(current2, workInProgress2, type, _resolvedProps2, renderLanes2);
|
23491
23491
|
}
|
23492
|
-
case
|
23492
|
+
case Fragment16:
|
23493
23493
|
return updateFragment(current2, workInProgress2, renderLanes2);
|
23494
23494
|
case Mode:
|
23495
23495
|
return updateMode(current2, workInProgress2, renderLanes2);
|
@@ -23762,7 +23762,7 @@ var require_react_dom_development = __commonJS({
|
|
23762
23762
|
case SimpleMemoComponent:
|
23763
23763
|
case FunctionComponent:
|
23764
23764
|
case ForwardRef:
|
23765
|
-
case
|
23765
|
+
case Fragment16:
|
23766
23766
|
case Mode:
|
23767
23767
|
case Profiler:
|
23768
23768
|
case ContextConsumer:
|
@@ -28021,7 +28021,7 @@ var require_react_dom_development = __commonJS({
|
|
28021
28021
|
return fiber;
|
28022
28022
|
}
|
28023
28023
|
function createFiberFromFragment(elements, mode, lanes, key) {
|
28024
|
-
var fiber = createFiber(
|
28024
|
+
var fiber = createFiber(Fragment16, elements, key, mode);
|
28025
28025
|
fiber.lanes = lanes;
|
28026
28026
|
return fiber;
|
28027
28027
|
}
|
@@ -29173,7 +29173,7 @@ var import_react2 = require("react");
|
|
29173
29173
|
|
29174
29174
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css#css-module
|
29175
29175
|
init_react_import();
|
29176
|
-
var Button_module_default = { "Button": "
|
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" :
|
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.
|
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,183 @@ var Button = ({
|
|
29267
29264
|
|
29268
29265
|
// components/Drawer/index.tsx
|
29269
29266
|
init_react_import();
|
29270
|
-
|
29267
|
+
|
29268
|
+
// components/Droppable/index.tsx
|
29269
|
+
init_react_import();
|
29270
|
+
var import_dnd = require("@measured/dnd");
|
29271
|
+
|
29272
|
+
// components/Puck/context.tsx
|
29273
|
+
init_react_import();
|
29274
|
+
var import_react3 = require("react");
|
29275
|
+
|
29276
|
+
// lib/get-item.ts
|
29277
|
+
init_react_import();
|
29278
|
+
|
29279
|
+
// lib/root-droppable-id.ts
|
29280
|
+
init_react_import();
|
29281
|
+
var rootDroppableId = "default-zone";
|
29282
|
+
|
29283
|
+
// lib/setup-zone.ts
|
29284
|
+
init_react_import();
|
29285
|
+
var setupZone = (data, zoneKey) => {
|
29286
|
+
if (zoneKey === rootDroppableId) {
|
29287
|
+
return data;
|
29288
|
+
}
|
29289
|
+
const newData = __spreadValues({}, data);
|
29290
|
+
newData.zones = data.zones || {};
|
29291
|
+
newData.zones[zoneKey] = newData.zones[zoneKey] || [];
|
29292
|
+
return newData;
|
29293
|
+
};
|
29294
|
+
|
29295
|
+
// lib/get-item.ts
|
29296
|
+
var getItem = (selector, data, dynamicProps = {}) => {
|
29297
|
+
if (!selector.zone || selector.zone === rootDroppableId) {
|
29298
|
+
const item2 = data.content[selector.index];
|
29299
|
+
return __spreadProps(__spreadValues({}, item2), { props: dynamicProps[item2.props.id] || item2.props });
|
29300
|
+
}
|
29301
|
+
const item = setupZone(data, selector.zone).zones[selector.zone][selector.index];
|
29302
|
+
return __spreadProps(__spreadValues({}, item), { props: dynamicProps[item.props.id] || item.props });
|
29303
|
+
};
|
29304
|
+
|
29305
|
+
// components/ViewportControls/default-viewports.ts
|
29306
|
+
init_react_import();
|
29307
|
+
var defaultViewports = [
|
29308
|
+
{ width: 360, height: "auto", icon: "Smartphone", label: "Small" },
|
29309
|
+
{ width: 768, height: "auto", icon: "Tablet", label: "Medium" },
|
29310
|
+
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" }
|
29311
|
+
];
|
29312
|
+
|
29313
|
+
// components/Puck/context.tsx
|
29314
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
29315
|
+
var defaultAppState = {
|
29316
|
+
data: { content: [], root: { props: { title: "" } } },
|
29317
|
+
ui: {
|
29318
|
+
leftSideBarVisible: true,
|
29319
|
+
rightSideBarVisible: true,
|
29320
|
+
arrayState: {},
|
29321
|
+
itemSelector: null,
|
29322
|
+
componentList: {},
|
29323
|
+
isDragging: false,
|
29324
|
+
viewports: {
|
29325
|
+
current: {
|
29326
|
+
width: defaultViewports[0].width,
|
29327
|
+
height: defaultViewports[0].height || "auto"
|
29328
|
+
},
|
29329
|
+
options: [],
|
29330
|
+
controlsVisible: true
|
29331
|
+
}
|
29332
|
+
}
|
29333
|
+
};
|
29334
|
+
var defaultContext = {
|
29335
|
+
state: defaultAppState,
|
29336
|
+
dispatch: () => null,
|
29337
|
+
config: { components: {} },
|
29338
|
+
componentState: {},
|
29339
|
+
resolveData: () => {
|
29340
|
+
},
|
29341
|
+
plugins: [],
|
29342
|
+
overrides: {},
|
29343
|
+
history: {},
|
29344
|
+
viewports: defaultViewports,
|
29345
|
+
zoomConfig: {
|
29346
|
+
autoZoom: 1,
|
29347
|
+
rootHeight: 0,
|
29348
|
+
zoom: 1
|
29349
|
+
},
|
29350
|
+
setZoomConfig: () => null,
|
29351
|
+
status: "LOADING",
|
29352
|
+
setStatus: () => null,
|
29353
|
+
iframe: {}
|
29354
|
+
};
|
29355
|
+
var appContext = (0, import_react3.createContext)(defaultContext);
|
29356
|
+
var AppProvider = ({
|
29357
|
+
children,
|
29358
|
+
value
|
29359
|
+
}) => {
|
29360
|
+
const [zoomConfig, setZoomConfig] = (0, import_react3.useState)(defaultContext.zoomConfig);
|
29361
|
+
const [status, setStatus] = (0, import_react3.useState)("LOADING");
|
29362
|
+
(0, import_react3.useEffect)(() => {
|
29363
|
+
setStatus("MOUNTED");
|
29364
|
+
}, []);
|
29365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
29366
|
+
appContext.Provider,
|
29367
|
+
{
|
29368
|
+
value: __spreadProps(__spreadValues({}, value), { zoomConfig, setZoomConfig, status, setStatus }),
|
29369
|
+
children
|
29370
|
+
}
|
29371
|
+
);
|
29372
|
+
};
|
29373
|
+
function useAppContext() {
|
29374
|
+
const mainContext = (0, import_react3.useContext)(appContext);
|
29375
|
+
const selectedItem = mainContext.state.ui.itemSelector ? getItem(mainContext.state.ui.itemSelector, mainContext.state.data) : void 0;
|
29376
|
+
return __spreadProps(__spreadValues({}, mainContext), {
|
29377
|
+
// Helpers
|
29378
|
+
selectedItem,
|
29379
|
+
setUi: (ui, recordHistory) => {
|
29380
|
+
return mainContext.dispatch({
|
29381
|
+
type: "setUi",
|
29382
|
+
ui,
|
29383
|
+
recordHistory
|
29384
|
+
});
|
29385
|
+
}
|
29386
|
+
});
|
29387
|
+
}
|
29388
|
+
|
29389
|
+
// components/Droppable/index.tsx
|
29390
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
29391
|
+
var defaultProvided = {
|
29392
|
+
droppableProps: {
|
29393
|
+
"data-rfd-droppable-context-id": "",
|
29394
|
+
"data-rfd-droppable-id": ""
|
29395
|
+
},
|
29396
|
+
placeholder: null,
|
29397
|
+
innerRef: () => null
|
29398
|
+
};
|
29399
|
+
var defaultSnapshot = {
|
29400
|
+
isDraggingOver: false,
|
29401
|
+
draggingOverWith: null,
|
29402
|
+
draggingFromThisWith: null,
|
29403
|
+
isUsingPlaceholder: false
|
29404
|
+
};
|
29405
|
+
var DefaultDroppable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: children(defaultProvided, defaultSnapshot) });
|
29406
|
+
var Droppable = (props) => {
|
29407
|
+
const { status } = useAppContext();
|
29408
|
+
const El = status !== "LOADING" ? import_dnd.Droppable : DefaultDroppable;
|
29409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(El, __spreadValues({}, props));
|
29410
|
+
};
|
29271
29411
|
|
29272
29412
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Drawer/styles.module.css#css-module
|
29273
29413
|
init_react_import();
|
29274
|
-
var styles_module_default = { "
|
29414
|
+
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
29415
|
|
29276
29416
|
// components/Draggable/index.tsx
|
29277
29417
|
init_react_import();
|
29278
|
-
var
|
29279
|
-
var
|
29418
|
+
var import_dnd2 = require("@measured/dnd");
|
29419
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
29420
|
+
var defaultProvided2 = {
|
29421
|
+
draggableProps: {
|
29422
|
+
"data-rfd-draggable-context-id": "",
|
29423
|
+
"data-rfd-draggable-id": ""
|
29424
|
+
},
|
29425
|
+
dragHandleProps: null,
|
29426
|
+
innerRef: () => null
|
29427
|
+
};
|
29428
|
+
var defaultSnapshot2 = {
|
29429
|
+
isDragging: false,
|
29430
|
+
isDropAnimating: false,
|
29431
|
+
isClone: false,
|
29432
|
+
dropAnimation: null,
|
29433
|
+
draggingOver: null,
|
29434
|
+
combineWith: null,
|
29435
|
+
combineTargetFor: null,
|
29436
|
+
mode: null
|
29437
|
+
};
|
29438
|
+
var defaultRubric = {
|
29439
|
+
draggableId: "",
|
29440
|
+
type: "",
|
29441
|
+
source: { droppableId: "", index: 0 }
|
29442
|
+
};
|
29443
|
+
var DefaultDraggable = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: children(defaultProvided2, defaultSnapshot2, defaultRubric) });
|
29280
29444
|
var Draggable = ({
|
29281
29445
|
className,
|
29282
29446
|
children,
|
@@ -29286,39 +29450,33 @@ var Draggable = ({
|
|
29286
29450
|
disableAnimations = false,
|
29287
29451
|
isDragDisabled = false
|
29288
29452
|
}) => {
|
29289
|
-
|
29290
|
-
|
29291
|
-
|
29292
|
-
|
29293
|
-
|
29294
|
-
|
29295
|
-
|
29296
|
-
|
29297
|
-
|
29298
|
-
|
29299
|
-
|
29300
|
-
|
29301
|
-
|
29302
|
-
|
29303
|
-
|
29304
|
-
|
29305
|
-
|
29306
|
-
|
29307
|
-
|
29308
|
-
|
29309
|
-
),
|
29310
|
-
|
29311
|
-
|
29312
|
-
|
29313
|
-
|
29314
|
-
|
29315
|
-
|
29316
|
-
}
|
29317
|
-
)
|
29318
|
-
] });
|
29319
|
-
}
|
29320
|
-
}
|
29321
|
-
);
|
29453
|
+
const { status } = useAppContext();
|
29454
|
+
const El = status !== "LOADING" ? import_dnd2.Draggable : DefaultDraggable;
|
29455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => {
|
29456
|
+
var _a;
|
29457
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
29458
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
29459
|
+
"div",
|
29460
|
+
__spreadProps(__spreadValues(__spreadValues({
|
29461
|
+
className: className && className(provided, snapshot),
|
29462
|
+
ref: provided.innerRef
|
29463
|
+
}, provided.draggableProps), provided.dragHandleProps), {
|
29464
|
+
style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
|
29465
|
+
transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
|
29466
|
+
}),
|
29467
|
+
children: children(provided, snapshot)
|
29468
|
+
})
|
29469
|
+
),
|
29470
|
+
showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
29471
|
+
"div",
|
29472
|
+
{
|
29473
|
+
className: className && className(provided, snapshot),
|
29474
|
+
style: { transform: "none !important" },
|
29475
|
+
children: children(provided, snapshot)
|
29476
|
+
}
|
29477
|
+
)
|
29478
|
+
] });
|
29479
|
+
} });
|
29322
29480
|
};
|
29323
29481
|
|
29324
29482
|
// components/DragIcon/index.tsx
|
@@ -29350,26 +29508,26 @@ var replace = (list, index, newItem) => {
|
|
29350
29508
|
|
29351
29509
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DragIcon/styles.module.css#css-module
|
29352
29510
|
init_react_import();
|
29353
|
-
var styles_module_default2 = { "DragIcon": "
|
29511
|
+
var styles_module_default2 = { "DragIcon": "_DragIcon_1p5wn_1" };
|
29354
29512
|
|
29355
29513
|
// components/DragIcon/index.tsx
|
29356
|
-
var
|
29514
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
29357
29515
|
var getClassName2 = get_class_name_factory_default("DragIcon", styles_module_default2);
|
29358
|
-
var DragIcon = () => /* @__PURE__ */ (0,
|
29516
|
+
var DragIcon = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: getClassName2(), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { viewBox: "0 0 20 20", width: "12", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" }) }) });
|
29359
29517
|
|
29360
29518
|
// components/Drawer/index.tsx
|
29361
|
-
var
|
29362
|
-
var
|
29519
|
+
var import_react4 = require("react");
|
29520
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
29363
29521
|
var getClassName3 = get_class_name_factory_default("Drawer", styles_module_default);
|
29364
29522
|
var getClassNameItem = get_class_name_factory_default("DrawerItem", styles_module_default);
|
29365
|
-
var drawerContext = (0,
|
29523
|
+
var drawerContext = (0, import_react4.createContext)({
|
29366
29524
|
droppableId: ""
|
29367
29525
|
});
|
29368
29526
|
var DrawerDraggable = ({
|
29369
29527
|
children,
|
29370
29528
|
id,
|
29371
29529
|
index
|
29372
|
-
}) => /* @__PURE__ */ (0,
|
29530
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
29373
29531
|
Draggable,
|
29374
29532
|
{
|
29375
29533
|
id,
|
@@ -29385,17 +29543,18 @@ var DrawerItem = ({
|
|
29385
29543
|
name,
|
29386
29544
|
children,
|
29387
29545
|
id,
|
29546
|
+
label,
|
29388
29547
|
index
|
29389
29548
|
}) => {
|
29390
|
-
const ctx = (0,
|
29549
|
+
const ctx = (0, import_react4.useContext)(drawerContext);
|
29391
29550
|
const resolvedId = `${ctx.droppableId}::${id || name}`;
|
29392
|
-
const CustomInner = (0,
|
29393
|
-
() => children || (({ children: children2 }) => /* @__PURE__ */ (0,
|
29551
|
+
const CustomInner = (0, import_react4.useMemo)(
|
29552
|
+
() => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("default"), children: children2 })),
|
29394
29553
|
[children]
|
29395
29554
|
);
|
29396
|
-
return /* @__PURE__ */ (0,
|
29397
|
-
/* @__PURE__ */ (0,
|
29398
|
-
/* @__PURE__ */ (0,
|
29555
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DrawerDraggable, { id: resolvedId, index, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CustomInner, { name, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: getClassNameItem("draggable"), children: [
|
29556
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("name"), children: label != null ? label : name }),
|
29557
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: getClassNameItem("icon"), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DragIcon, {}) })
|
29399
29558
|
] }) }) }) });
|
29400
29559
|
};
|
29401
29560
|
var Drawer = ({
|
@@ -29403,7 +29562,7 @@ var Drawer = ({
|
|
29403
29562
|
droppableId = "component-list",
|
29404
29563
|
direction = "vertical"
|
29405
29564
|
}) => {
|
29406
|
-
return /* @__PURE__ */ (0,
|
29565
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(drawerContext.Provider, { value: { droppableId }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Droppable, { droppableId, isDropDisabled: true, direction, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
29407
29566
|
"div",
|
29408
29567
|
__spreadProps(__spreadValues({}, provided.droppableProps), {
|
29409
29568
|
ref: provided.innerRef,
|
@@ -29412,7 +29571,7 @@ var Drawer = ({
|
|
29412
29571
|
}),
|
29413
29572
|
children: [
|
29414
29573
|
children,
|
29415
|
-
/* @__PURE__ */ (0,
|
29574
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
|
29416
29575
|
]
|
29417
29576
|
})
|
29418
29577
|
) }) });
|
@@ -29425,19 +29584,19 @@ var import_react9 = require("react");
|
|
29425
29584
|
|
29426
29585
|
// components/DraggableComponent/index.tsx
|
29427
29586
|
init_react_import();
|
29428
|
-
var
|
29429
|
-
var import_dnd3 = require("@
|
29587
|
+
var import_react7 = require("react");
|
29588
|
+
var import_dnd3 = require("@measured/dnd");
|
29430
29589
|
|
29431
29590
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
|
29432
29591
|
init_react_import();
|
29433
|
-
var styles_module_default3 = { "DraggableComponent": "
|
29592
|
+
var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_1542z_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_1542z_11", "DraggableComponent-contents": "_DraggableComponent-contents_1542z_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_1542z_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_1542z_49", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_1542z_65", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_1542z_71", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_1542z_76", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_1542z_81", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_1542z_97", "DraggableComponent-actions": "_DraggableComponent-actions_1542z_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_1542z_127", "DraggableComponent-action": "_DraggableComponent-action_1542z_97" };
|
29434
29593
|
|
29435
29594
|
// ../../node_modules/lucide-react/dist/esm/lucide-react.js
|
29436
29595
|
init_react_import();
|
29437
29596
|
|
29438
29597
|
// ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
|
29439
29598
|
init_react_import();
|
29440
|
-
var
|
29599
|
+
var import_react5 = require("react");
|
29441
29600
|
|
29442
29601
|
// ../../node_modules/lucide-react/dist/esm/defaultAttributes.js
|
29443
29602
|
init_react_import();
|
@@ -29456,10 +29615,10 @@ var defaultAttributes = {
|
|
29456
29615
|
// ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
|
29457
29616
|
var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim();
|
29458
29617
|
var createLucideIcon = (iconName, iconNode) => {
|
29459
|
-
const Component = (0,
|
29618
|
+
const Component = (0, import_react5.forwardRef)(
|
29460
29619
|
(_a, ref) => {
|
29461
29620
|
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,
|
29621
|
+
return (0, import_react5.createElement)(
|
29463
29622
|
"svg",
|
29464
29623
|
__spreadValues(__spreadProps(__spreadValues({
|
29465
29624
|
ref
|
@@ -29471,7 +29630,7 @@ var createLucideIcon = (iconName, iconNode) => {
|
|
29471
29630
|
className: ["lucide", `lucide-${toKebabCase(iconName)}`, className].join(" ")
|
29472
29631
|
}), rest),
|
29473
29632
|
[
|
29474
|
-
...iconNode.map(([tag, attrs]) => (0,
|
29633
|
+
...iconNode.map(([tag, attrs]) => (0, import_react5.createElement)(tag, attrs)),
|
29475
29634
|
...Array.isArray(children) ? children : [children]
|
29476
29635
|
]
|
29477
29636
|
);
|
@@ -29582,6 +29741,14 @@ var Lock = createLucideIcon("Lock", [
|
|
29582
29741
|
["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
|
29583
29742
|
]);
|
29584
29743
|
|
29744
|
+
// ../../node_modules/lucide-react/dist/esm/icons/monitor.js
|
29745
|
+
init_react_import();
|
29746
|
+
var Monitor = createLucideIcon("Monitor", [
|
29747
|
+
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
29748
|
+
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
29749
|
+
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
29750
|
+
]);
|
29751
|
+
|
29585
29752
|
// ../../node_modules/lucide-react/dist/esm/icons/more-vertical.js
|
29586
29753
|
init_react_import();
|
29587
29754
|
var MoreVertical = createLucideIcon("MoreVertical", [
|
@@ -29618,6 +29785,34 @@ var Search = createLucideIcon("Search", [
|
|
29618
29785
|
["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
|
29619
29786
|
]);
|
29620
29787
|
|
29788
|
+
// ../../node_modules/lucide-react/dist/esm/icons/sliders-horizontal.js
|
29789
|
+
init_react_import();
|
29790
|
+
var SlidersHorizontal = createLucideIcon("SlidersHorizontal", [
|
29791
|
+
["line", { x1: "21", x2: "14", y1: "4", y2: "4", key: "obuewd" }],
|
29792
|
+
["line", { x1: "10", x2: "3", y1: "4", y2: "4", key: "1q6298" }],
|
29793
|
+
["line", { x1: "21", x2: "12", y1: "12", y2: "12", key: "1iu8h1" }],
|
29794
|
+
["line", { x1: "8", x2: "3", y1: "12", y2: "12", key: "ntss68" }],
|
29795
|
+
["line", { x1: "21", x2: "16", y1: "20", y2: "20", key: "14d8ph" }],
|
29796
|
+
["line", { x1: "12", x2: "3", y1: "20", y2: "20", key: "m0wm8r" }],
|
29797
|
+
["line", { x1: "14", x2: "14", y1: "2", y2: "6", key: "14e1ph" }],
|
29798
|
+
["line", { x1: "8", x2: "8", y1: "10", y2: "14", key: "1i6ji0" }],
|
29799
|
+
["line", { x1: "16", x2: "16", y1: "18", y2: "22", key: "1lctlv" }]
|
29800
|
+
]);
|
29801
|
+
|
29802
|
+
// ../../node_modules/lucide-react/dist/esm/icons/smartphone.js
|
29803
|
+
init_react_import();
|
29804
|
+
var Smartphone = createLucideIcon("Smartphone", [
|
29805
|
+
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
29806
|
+
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
29807
|
+
]);
|
29808
|
+
|
29809
|
+
// ../../node_modules/lucide-react/dist/esm/icons/tablet.js
|
29810
|
+
init_react_import();
|
29811
|
+
var Tablet = createLucideIcon("Tablet", [
|
29812
|
+
["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
|
29813
|
+
["line", { x1: "12", x2: "12.01", y1: "18", y2: "18", key: "1dp563" }]
|
29814
|
+
]);
|
29815
|
+
|
29621
29816
|
// ../../node_modules/lucide-react/dist/esm/icons/trash.js
|
29622
29817
|
init_react_import();
|
29623
29818
|
var Trash = createLucideIcon("Trash", [
|
@@ -29641,12 +29836,29 @@ var Unlock = createLucideIcon("Unlock", [
|
|
29641
29836
|
["path", { d: "M7 11V7a5 5 0 0 1 9.9-1", key: "1mm8w8" }]
|
29642
29837
|
]);
|
29643
29838
|
|
29839
|
+
// ../../node_modules/lucide-react/dist/esm/icons/zoom-in.js
|
29840
|
+
init_react_import();
|
29841
|
+
var ZoomIn = createLucideIcon("ZoomIn", [
|
29842
|
+
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
|
29843
|
+
["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
|
29844
|
+
["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
|
29845
|
+
["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
|
29846
|
+
]);
|
29847
|
+
|
29848
|
+
// ../../node_modules/lucide-react/dist/esm/icons/zoom-out.js
|
29849
|
+
init_react_import();
|
29850
|
+
var ZoomOut = createLucideIcon("ZoomOut", [
|
29851
|
+
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
|
29852
|
+
["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
|
29853
|
+
["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
|
29854
|
+
]);
|
29855
|
+
|
29644
29856
|
// lib/use-modifier-held.ts
|
29645
29857
|
init_react_import();
|
29646
|
-
var
|
29858
|
+
var import_react6 = require("react");
|
29647
29859
|
var useModifierHeld = (modifier) => {
|
29648
|
-
const [modifierHeld, setModifierHeld] = (0,
|
29649
|
-
(0,
|
29860
|
+
const [modifierHeld, setModifierHeld] = (0, import_react6.useState)(false);
|
29861
|
+
(0, import_react6.useEffect)(() => {
|
29650
29862
|
function downHandler({ key }) {
|
29651
29863
|
if (key === modifier) {
|
29652
29864
|
setModifierHeld(true);
|
@@ -29669,8 +29881,12 @@ var useModifierHeld = (modifier) => {
|
|
29669
29881
|
|
29670
29882
|
// components/DraggableComponent/index.tsx
|
29671
29883
|
var import_react_spinners2 = require("react-spinners");
|
29672
|
-
var
|
29884
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
29673
29885
|
var getClassName4 = get_class_name_factory_default("DraggableComponent", styles_module_default3);
|
29886
|
+
var space = 8;
|
29887
|
+
var actionsOverlayTop = space * 6.5;
|
29888
|
+
var actionsTop = -(actionsOverlayTop - 8);
|
29889
|
+
var actionsRight = space;
|
29674
29890
|
var DraggableComponent = ({
|
29675
29891
|
children,
|
29676
29892
|
id,
|
@@ -29693,91 +29909,74 @@ var DraggableComponent = ({
|
|
29693
29909
|
indicativeHover = false,
|
29694
29910
|
style
|
29695
29911
|
}) => {
|
29912
|
+
const { zoomConfig } = useAppContext();
|
29696
29913
|
const isModifierHeld = useModifierHeld("Alt");
|
29697
|
-
|
29698
|
-
|
29699
|
-
|
29700
|
-
|
29701
|
-
|
29702
|
-
|
29703
|
-
|
29704
|
-
|
29705
|
-
|
29706
|
-
|
29707
|
-
|
29708
|
-
|
29709
|
-
|
29710
|
-
|
29711
|
-
|
29712
|
-
|
29713
|
-
|
29714
|
-
|
29715
|
-
|
29716
|
-
|
29717
|
-
|
29718
|
-
|
29719
|
-
|
29720
|
-
|
29721
|
-
|
29722
|
-
|
29723
|
-
|
29724
|
-
|
29725
|
-
|
29726
|
-
|
29727
|
-
|
29728
|
-
|
29729
|
-
|
29730
|
-
|
29731
|
-
|
29732
|
-
|
29733
|
-
|
29734
|
-
|
29735
|
-
|
29736
|
-
|
29737
|
-
|
29738
|
-
|
29739
|
-
|
29740
|
-
|
29741
|
-
|
29742
|
-
|
29743
|
-
|
29744
|
-
|
29745
|
-
|
29746
|
-
|
29747
|
-
|
29748
|
-
|
29749
|
-
|
29750
|
-
|
29751
|
-
|
29752
|
-
|
29753
|
-
|
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 });
|
29914
|
+
const { status } = useAppContext();
|
29915
|
+
const El = status !== "LOADING" ? import_dnd3.Draggable : DefaultDraggable;
|
29916
|
+
(0, import_react7.useEffect)(onMount, []);
|
29917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(El, { draggableId: id, index, isDragDisabled, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
29918
|
+
"div",
|
29919
|
+
__spreadProps(__spreadValues(__spreadValues({
|
29920
|
+
ref: provided.innerRef
|
29921
|
+
}, provided.draggableProps), provided.dragHandleProps), {
|
29922
|
+
className: getClassName4({
|
29923
|
+
isSelected,
|
29924
|
+
isModifierHeld,
|
29925
|
+
isDragging: snapshot.isDragging,
|
29926
|
+
isLocked,
|
29927
|
+
forceHover,
|
29928
|
+
indicativeHover
|
29929
|
+
}),
|
29930
|
+
style: __spreadProps(__spreadValues(__spreadValues({}, style), provided.draggableProps.style), {
|
29931
|
+
cursor: isModifierHeld ? "initial" : "grab"
|
29932
|
+
}),
|
29933
|
+
onMouseOver,
|
29934
|
+
onMouseOut,
|
29935
|
+
onMouseDown,
|
29936
|
+
onMouseUp,
|
29937
|
+
onClick,
|
29938
|
+
children: [
|
29939
|
+
debug,
|
29940
|
+
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" }) }),
|
29941
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
29942
|
+
"div",
|
29943
|
+
{
|
29944
|
+
className: getClassName4("actionsOverlay"),
|
29945
|
+
style: {
|
29946
|
+
top: actionsOverlayTop / zoomConfig.zoom
|
29947
|
+
},
|
29948
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
29949
|
+
"div",
|
29950
|
+
{
|
29951
|
+
className: getClassName4("actions"),
|
29952
|
+
style: {
|
29953
|
+
transform: `scale(${1 / zoomConfig.zoom}`,
|
29954
|
+
top: actionsTop / zoomConfig.zoom,
|
29955
|
+
right: actionsRight / zoomConfig.zoom
|
29956
|
+
},
|
29957
|
+
children: [
|
29958
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("actionsLabel"), children: label }),
|
29959
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDuplicate, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Copy, { size: 16 }) }),
|
29960
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: getClassName4("action"), onClick: onDelete, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Trash, { size: 16 }) })
|
29961
|
+
]
|
29962
|
+
}
|
29963
|
+
)
|
29964
|
+
}
|
29965
|
+
),
|
29966
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("overlay") }),
|
29967
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: getClassName4("contents"), children })
|
29968
|
+
]
|
29969
|
+
})
|
29970
|
+
) }, id);
|
29772
29971
|
};
|
29773
29972
|
|
29774
29973
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DropZone/styles.module.css#css-module
|
29775
29974
|
init_react_import();
|
29776
|
-
var styles_module_default4 = { "DropZone": "
|
29975
|
+
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
29976
|
|
29778
29977
|
// components/DropZone/context.tsx
|
29779
29978
|
init_react_import();
|
29780
|
-
var
|
29979
|
+
var import_react8 = require("react");
|
29781
29980
|
var import_use_debounce = require("use-debounce");
|
29782
29981
|
|
29783
29982
|
// lib/get-zone-id.ts
|
@@ -29793,30 +29992,30 @@ var getZoneId = (zoneCompound) => {
|
|
29793
29992
|
};
|
29794
29993
|
|
29795
29994
|
// components/DropZone/context.tsx
|
29796
|
-
var
|
29797
|
-
var dropZoneContext = (0,
|
29995
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
29996
|
+
var dropZoneContext = (0, import_react8.createContext)(null);
|
29798
29997
|
var DropZoneProvider = ({
|
29799
29998
|
children,
|
29800
29999
|
value
|
29801
30000
|
}) => {
|
29802
|
-
const [hoveringArea, setHoveringArea] = (0,
|
29803
|
-
const [hoveringZone, setHoveringZone] = (0,
|
30001
|
+
const [hoveringArea, setHoveringArea] = (0, import_react8.useState)(null);
|
30002
|
+
const [hoveringZone, setHoveringZone] = (0, import_react8.useState)(
|
29804
30003
|
rootDroppableId
|
29805
30004
|
);
|
29806
|
-
const [hoveringComponent, setHoveringComponent] = (0,
|
30005
|
+
const [hoveringComponent, setHoveringComponent] = (0, import_react8.useState)();
|
29807
30006
|
const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
|
29808
|
-
const [areasWithZones, setAreasWithZones] = (0,
|
30007
|
+
const [areasWithZones, setAreasWithZones] = (0, import_react8.useState)(
|
29809
30008
|
{}
|
29810
30009
|
);
|
29811
|
-
const [activeZones, setActiveZones] = (0,
|
30010
|
+
const [activeZones, setActiveZones] = (0, import_react8.useState)({});
|
29812
30011
|
const { dispatch = null } = value ? value : {};
|
29813
|
-
const registerZoneArea = (0,
|
30012
|
+
const registerZoneArea = (0, import_react8.useCallback)(
|
29814
30013
|
(area) => {
|
29815
30014
|
setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
|
29816
30015
|
},
|
29817
30016
|
[setAreasWithZones]
|
29818
30017
|
);
|
29819
|
-
const registerZone = (0,
|
30018
|
+
const registerZone = (0, import_react8.useCallback)(
|
29820
30019
|
(zoneCompound) => {
|
29821
30020
|
if (!dispatch) {
|
29822
30021
|
return;
|
@@ -29829,7 +30028,7 @@ var DropZoneProvider = ({
|
|
29829
30028
|
},
|
29830
30029
|
[setActiveZones, dispatch]
|
29831
30030
|
);
|
29832
|
-
const unregisterZone = (0,
|
30031
|
+
const unregisterZone = (0, import_react8.useCallback)(
|
29833
30032
|
(zoneCompound) => {
|
29834
30033
|
if (!dispatch) {
|
29835
30034
|
return;
|
@@ -29844,8 +30043,8 @@ var DropZoneProvider = ({
|
|
29844
30043
|
},
|
29845
30044
|
[setActiveZones, dispatch]
|
29846
30045
|
);
|
29847
|
-
const [pathData, setPathData] = (0,
|
29848
|
-
const registerPath = (0,
|
30046
|
+
const [pathData, setPathData] = (0, import_react8.useState)();
|
30047
|
+
const registerPath = (0, import_react8.useCallback)(
|
29849
30048
|
(selector) => {
|
29850
30049
|
if (!(value == null ? void 0 : value.data)) {
|
29851
30050
|
return;
|
@@ -29870,7 +30069,8 @@ var DropZoneProvider = ({
|
|
29870
30069
|
},
|
29871
30070
|
[value, setPathData]
|
29872
30071
|
);
|
29873
|
-
|
30072
|
+
const [zoneWillDrag, setZoneWillDrag] = (0, import_react8.useState)("");
|
30073
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
29874
30074
|
dropZoneContext.Provider,
|
29875
30075
|
{
|
29876
30076
|
value: __spreadValues({
|
@@ -29886,57 +30086,17 @@ var DropZoneProvider = ({
|
|
29886
30086
|
unregisterZone,
|
29887
30087
|
activeZones,
|
29888
30088
|
registerPath,
|
29889
|
-
pathData
|
30089
|
+
pathData,
|
30090
|
+
zoneWillDrag,
|
30091
|
+
setZoneWillDrag
|
29890
30092
|
}, value),
|
29891
30093
|
children
|
29892
30094
|
}
|
29893
30095
|
) });
|
29894
30096
|
};
|
29895
30097
|
|
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
30098
|
// components/DropZone/index.tsx
|
29939
|
-
var
|
30099
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
29940
30100
|
var getClassName5 = get_class_name_factory_default("DropZone", styles_module_default4);
|
29941
30101
|
function DropZoneEdit({ zone, allow, disallow, style }) {
|
29942
30102
|
var _a;
|
@@ -29955,7 +30115,8 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
29955
30115
|
registerZoneArea,
|
29956
30116
|
areasWithZones,
|
29957
30117
|
hoveringComponent,
|
29958
|
-
|
30118
|
+
zoneWillDrag,
|
30119
|
+
setZoneWillDrag = () => null
|
29959
30120
|
} = ctx || {};
|
29960
30121
|
let content = data.content || [];
|
29961
30122
|
let zoneCompound = rootDroppableId;
|
@@ -29985,12 +30146,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
29985
30146
|
const draggedDestinationId = draggedItem && ((_a = draggedItem.destination) == null ? void 0 : _a.droppableId);
|
29986
30147
|
const [zoneArea] = getZoneId(zoneCompound);
|
29987
30148
|
const [draggedSourceArea] = getZoneId(draggedSourceId);
|
29988
|
-
const
|
30149
|
+
const userWillDrag = zoneWillDrag === zone;
|
29989
30150
|
const userIsDragging = !!draggedItem;
|
29990
30151
|
const draggingOverArea = userIsDragging && zoneArea === draggedSourceArea;
|
29991
30152
|
const draggingNewComponent = draggedSourceId == null ? void 0 : draggedSourceId.startsWith("component-list");
|
29992
30153
|
if (!(ctx == null ? void 0 : ctx.config) || !ctx.setHoveringArea || !ctx.setHoveringZone || !ctx.setHoveringComponent || !ctx.setItemSelector || !ctx.registerPath || !ctx.dispatch) {
|
29993
|
-
return /* @__PURE__ */ (0,
|
30154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: "DropZone requires context to work." });
|
29994
30155
|
}
|
29995
30156
|
const {
|
29996
30157
|
hoveringArea = "root",
|
@@ -30027,7 +30188,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30027
30188
|
}
|
30028
30189
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
30029
30190
|
const isAreaSelected = selectedItem && zoneArea === selectedItem.props.id;
|
30030
|
-
return /* @__PURE__ */ (0,
|
30191
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30031
30192
|
"div",
|
30032
30193
|
{
|
30033
30194
|
className: getClassName5({
|
@@ -30039,17 +30200,19 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30039
30200
|
isDestination: draggedDestinationId === zoneCompound,
|
30040
30201
|
isDisabled: !isEnabled,
|
30041
30202
|
isAreaSelected,
|
30042
|
-
hasChildren: content.length > 0
|
30043
|
-
zoomEnabled: !disableZoom
|
30203
|
+
hasChildren: content.length > 0
|
30044
30204
|
}),
|
30045
|
-
|
30046
|
-
|
30205
|
+
onMouseUp: () => {
|
30206
|
+
setZoneWillDrag("");
|
30207
|
+
},
|
30208
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30209
|
+
Droppable,
|
30047
30210
|
{
|
30048
30211
|
droppableId: zoneCompound,
|
30049
30212
|
direction: "vertical",
|
30050
30213
|
isDropDisabled: !isEnabled,
|
30051
30214
|
children: (provided, snapshot) => {
|
30052
|
-
return /* @__PURE__ */ (0,
|
30215
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
30053
30216
|
"div",
|
30054
30217
|
__spreadProps(__spreadValues({}, (provided || { droppableProps: {} }).droppableProps), {
|
30055
30218
|
className: getClassName5("content"),
|
@@ -30063,7 +30226,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30063
30226
|
},
|
30064
30227
|
children: [
|
30065
30228
|
content.map((item, i) => {
|
30066
|
-
var _a2, _b;
|
30229
|
+
var _a2, _b, _c;
|
30067
30230
|
const componentId = item.props.id;
|
30068
30231
|
const defaultedProps = __spreadProps(__spreadValues(__spreadValues({}, (_a2 = config.components[item.type]) == null ? void 0 : _a2.defaultProps), item.props), {
|
30069
30232
|
puck: { renderDropZone: DropZone },
|
@@ -30074,33 +30237,33 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30074
30237
|
"draggable-"
|
30075
30238
|
)[1] === componentId;
|
30076
30239
|
const containsZone = areasWithZones ? areasWithZones[componentId] : false;
|
30077
|
-
const Render2 = config.components[item.type] ? config.components[item.type].render : () => /* @__PURE__ */ (0,
|
30240
|
+
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
30241
|
"No configuration for ",
|
30079
30242
|
item.type
|
30080
30243
|
] });
|
30081
|
-
return /* @__PURE__ */ (0,
|
30244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
30082
30245
|
"div",
|
30083
30246
|
{
|
30084
30247
|
className: getClassName5("item"),
|
30085
30248
|
style: { zIndex: isDragging ? 1 : void 0 },
|
30086
30249
|
children: [
|
30087
|
-
/* @__PURE__ */ (0,
|
30250
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30088
30251
|
DropZoneProvider,
|
30089
30252
|
{
|
30090
30253
|
value: __spreadProps(__spreadValues({}, ctx), {
|
30091
30254
|
areaId: componentId
|
30092
30255
|
}),
|
30093
|
-
children: /* @__PURE__ */ (0,
|
30256
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30094
30257
|
DraggableComponent,
|
30095
30258
|
{
|
30096
|
-
label: item.type.toString(),
|
30259
|
+
label: (_b = config.components[item.type]["label"]) != null ? _b : item.type.toString(),
|
30097
30260
|
id: `draggable-${componentId}`,
|
30098
30261
|
index: i,
|
30099
30262
|
isSelected,
|
30100
30263
|
isLocked: userIsDragging,
|
30101
30264
|
forceHover: hoveringComponent === componentId && !userIsDragging,
|
30102
30265
|
indicativeHover: userIsDragging && containsZone && hoveringArea === componentId,
|
30103
|
-
isLoading: (
|
30266
|
+
isLoading: (_c = appContext2.componentState[componentId]) == null ? void 0 : _c.loading,
|
30104
30267
|
onMount: () => {
|
30105
30268
|
ctx.registerPath({
|
30106
30269
|
index: i,
|
@@ -30116,11 +30279,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30116
30279
|
},
|
30117
30280
|
onMouseDown: (e) => {
|
30118
30281
|
e.stopPropagation();
|
30119
|
-
|
30120
|
-
},
|
30121
|
-
onMouseUp: (e) => {
|
30122
|
-
e.stopPropagation();
|
30123
|
-
setUserWillDrag(false);
|
30282
|
+
setZoneWillDrag(zone);
|
30124
30283
|
},
|
30125
30284
|
onMouseOver: (e) => {
|
30126
30285
|
e.stopPropagation();
|
@@ -30161,12 +30320,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30161
30320
|
style: {
|
30162
30321
|
pointerEvents: userIsDragging && draggingNewComponent ? "all" : void 0
|
30163
30322
|
},
|
30164
|
-
children: /* @__PURE__ */ (0,
|
30323
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName5("renderWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Render2, __spreadValues({}, defaultedProps)) })
|
30165
30324
|
}
|
30166
30325
|
)
|
30167
30326
|
}
|
30168
30327
|
),
|
30169
|
-
userIsDragging && /* @__PURE__ */ (0,
|
30328
|
+
userIsDragging && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30170
30329
|
"div",
|
30171
30330
|
{
|
30172
30331
|
className: getClassName5("hitbox"),
|
@@ -30183,12 +30342,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30183
30342
|
);
|
30184
30343
|
}),
|
30185
30344
|
provided == null ? void 0 : provided.placeholder,
|
30186
|
-
(snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0,
|
30345
|
+
(snapshot == null ? void 0 : snapshot.isDraggingOver) && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30187
30346
|
"div",
|
30188
30347
|
{
|
30189
30348
|
"data-puck-placeholder": true,
|
30190
30349
|
style: __spreadProps(__spreadValues({}, placeholderStyle), {
|
30191
|
-
background: "var(--puck-color-azure-
|
30350
|
+
background: "var(--puck-color-azure-06)",
|
30192
30351
|
opacity: 0.3,
|
30193
30352
|
zIndex: 0
|
30194
30353
|
})
|
@@ -30215,14 +30374,14 @@ function DropZoneRender({ zone }) {
|
|
30215
30374
|
zoneCompound = `${areaId}:${zone}`;
|
30216
30375
|
content = setupZone(data, zoneCompound).zones[zoneCompound];
|
30217
30376
|
}
|
30218
|
-
return /* @__PURE__ */ (0,
|
30377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: content.map((item) => {
|
30219
30378
|
const Component = config.components[item.type];
|
30220
30379
|
if (Component) {
|
30221
|
-
return /* @__PURE__ */ (0,
|
30380
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30222
30381
|
DropZoneProvider,
|
30223
30382
|
{
|
30224
30383
|
value: { data, config, areaId: item.props.id },
|
30225
|
-
children: /* @__PURE__ */ (0,
|
30384
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
30226
30385
|
Component.render,
|
30227
30386
|
__spreadProps(__spreadValues({}, item.props), {
|
30228
30387
|
puck: { renderDropZone: DropZone }
|
@@ -30238,9 +30397,9 @@ function DropZoneRender({ zone }) {
|
|
30238
30397
|
function DropZone(props) {
|
30239
30398
|
const ctx = (0, import_react9.useContext)(dropZoneContext);
|
30240
30399
|
if ((ctx == null ? void 0 : ctx.mode) === "edit") {
|
30241
|
-
return /* @__PURE__ */ (0,
|
30400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneEdit, __spreadValues({}, props));
|
30242
30401
|
}
|
30243
|
-
return /* @__PURE__ */ (0,
|
30402
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropZoneRender, __spreadValues({}, props));
|
30244
30403
|
}
|
30245
30404
|
|
30246
30405
|
// components/IconButton/index.ts
|
@@ -30252,11 +30411,11 @@ var import_react10 = require("react");
|
|
30252
30411
|
|
30253
30412
|
// css-module:/home/runner/work/puck/puck/packages/core/components/IconButton/IconButton.module.css#css-module
|
30254
30413
|
init_react_import();
|
30255
|
-
var IconButton_module_default = { "IconButton": "
|
30414
|
+
var IconButton_module_default = { "IconButton": "_IconButton_swpni_1", "IconButton--disabled": "_IconButton--disabled_swpni_20", "IconButton-title": "_IconButton-title_swpni_33" };
|
30256
30415
|
|
30257
30416
|
// components/IconButton/IconButton.tsx
|
30258
30417
|
var import_react_spinners3 = require("react-spinners");
|
30259
|
-
var
|
30418
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
30260
30419
|
var getClassName6 = get_class_name_factory_default("IconButton", IconButton_module_default);
|
30261
30420
|
var IconButton = ({
|
30262
30421
|
children,
|
@@ -30272,7 +30431,7 @@ var IconButton = ({
|
|
30272
30431
|
}) => {
|
30273
30432
|
const [loading, setLoading] = (0, import_react10.useState)(false);
|
30274
30433
|
const ElementType = href ? "a" : "button";
|
30275
|
-
const el = /* @__PURE__ */ (0,
|
30434
|
+
const el = /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
30276
30435
|
ElementType,
|
30277
30436
|
{
|
30278
30437
|
className: getClassName6({
|
@@ -30297,11 +30456,11 @@ var IconButton = ({
|
|
30297
30456
|
href,
|
30298
30457
|
title,
|
30299
30458
|
children: [
|
30300
|
-
/* @__PURE__ */ (0,
|
30459
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: getClassName6("title"), children: title }),
|
30301
30460
|
children,
|
30302
|
-
loading && /* @__PURE__ */ (0,
|
30461
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
|
30303
30462
|
"\xA0\xA0",
|
30304
|
-
/* @__PURE__ */ (0,
|
30463
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spinners3.ClipLoader, { "aria-label": "Loading", color: "inherit", size: "14px" })
|
30305
30464
|
] })
|
30306
30465
|
]
|
30307
30466
|
}
|
@@ -30311,26 +30470,51 @@ var IconButton = ({
|
|
30311
30470
|
|
30312
30471
|
// components/Puck/index.tsx
|
30313
30472
|
init_react_import();
|
30314
|
-
var
|
30315
|
-
var import_dnd7 = require("@hello-pangea/dnd");
|
30473
|
+
var import_react29 = require("react");
|
30316
30474
|
|
30317
30475
|
// lib/use-placeholder-style.ts
|
30318
30476
|
init_react_import();
|
30477
|
+
var import_react12 = require("react");
|
30478
|
+
|
30479
|
+
// lib/use-frame.ts
|
30480
|
+
init_react_import();
|
30319
30481
|
var import_react11 = require("react");
|
30482
|
+
|
30483
|
+
// lib/get-frame.ts
|
30484
|
+
init_react_import();
|
30485
|
+
var getFrame = () => {
|
30486
|
+
let frame = document.querySelector("#preview-frame");
|
30487
|
+
if ((frame == null ? void 0 : frame.tagName) === "IFRAME") {
|
30488
|
+
frame = frame.contentDocument.body;
|
30489
|
+
}
|
30490
|
+
return frame;
|
30491
|
+
};
|
30492
|
+
|
30493
|
+
// lib/use-frame.ts
|
30494
|
+
var useFrame = () => {
|
30495
|
+
const [el, setEl] = (0, import_react11.useState)();
|
30496
|
+
(0, import_react11.useEffect)(() => {
|
30497
|
+
setEl(getFrame());
|
30498
|
+
}, []);
|
30499
|
+
return el;
|
30500
|
+
};
|
30501
|
+
|
30502
|
+
// lib/use-placeholder-style.ts
|
30320
30503
|
var usePlaceholderStyle = () => {
|
30321
30504
|
const queryAttr = "data-rfd-drag-handle-draggable-id";
|
30322
|
-
const [placeholderStyle, setPlaceholderStyle] = (0,
|
30505
|
+
const [placeholderStyle, setPlaceholderStyle] = (0, import_react12.useState)();
|
30506
|
+
const frame = useFrame();
|
30323
30507
|
const onDragStartOrUpdate = (draggedItem) => {
|
30324
30508
|
var _a;
|
30325
30509
|
const draggableId = draggedItem.draggableId;
|
30326
30510
|
const destinationIndex = (draggedItem.destination || draggedItem.source).index;
|
30327
30511
|
const droppableId = (draggedItem.destination || draggedItem.source).droppableId;
|
30328
30512
|
const domQuery = `[${queryAttr}='${draggableId}']`;
|
30329
|
-
const draggedDOM =
|
30513
|
+
const draggedDOM = frame == null ? void 0 : frame.ownerDocument.querySelector(domQuery);
|
30330
30514
|
if (!draggedDOM) {
|
30331
30515
|
return;
|
30332
30516
|
}
|
30333
|
-
const targetListElement =
|
30517
|
+
const targetListElement = frame == null ? void 0 : frame.ownerDocument.querySelector(
|
30334
30518
|
`[data-rfd-droppable-id='${droppableId}']`
|
30335
30519
|
);
|
30336
30520
|
const { clientHeight } = draggedDOM;
|
@@ -30367,21 +30551,21 @@ init_react_import();
|
|
30367
30551
|
|
30368
30552
|
// css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css#css-module
|
30369
30553
|
init_react_import();
|
30370
|
-
var styles_module_default5 = { "SidebarSection": "
|
30554
|
+
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
30555
|
|
30372
30556
|
// components/Heading/index.tsx
|
30373
30557
|
init_react_import();
|
30374
30558
|
|
30375
30559
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
|
30376
30560
|
init_react_import();
|
30377
|
-
var styles_module_default6 = { "Heading": "
|
30561
|
+
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
30562
|
|
30379
30563
|
// components/Heading/index.tsx
|
30380
|
-
var
|
30564
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
30381
30565
|
var getClassName7 = get_class_name_factory_default("Heading", styles_module_default6);
|
30382
30566
|
var Heading = ({ children, rank, size = "m" }) => {
|
30383
30567
|
const Tag = rank ? `h${rank}` : "span";
|
30384
|
-
return /* @__PURE__ */ (0,
|
30568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
30385
30569
|
Tag,
|
30386
30570
|
{
|
30387
30571
|
className: getClassName7({
|
@@ -30394,7 +30578,7 @@ var Heading = ({ children, rank, size = "m" }) => {
|
|
30394
30578
|
|
30395
30579
|
// lib/use-breadcrumbs.ts
|
30396
30580
|
init_react_import();
|
30397
|
-
var
|
30581
|
+
var import_react13 = require("react");
|
30398
30582
|
var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
|
30399
30583
|
const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
|
30400
30584
|
const currentPathData = pathData && id && pathData[id] ? __spreadValues({}, pathData[id]) : { label: "Page", path: [] };
|
@@ -30444,8 +30628,8 @@ var useBreadcrumbs = (renderCount) => {
|
|
30444
30628
|
state: { data },
|
30445
30629
|
selectedItem
|
30446
30630
|
} = useAppContext();
|
30447
|
-
const dzContext = (0,
|
30448
|
-
return (0,
|
30631
|
+
const dzContext = (0, import_react13.useContext)(dropZoneContext);
|
30632
|
+
return (0, import_react13.useMemo)(() => {
|
30449
30633
|
const breadcrumbs = convertPathDataToBreadcrumbs(
|
30450
30634
|
selectedItem,
|
30451
30635
|
dzContext == null ? void 0 : dzContext.pathData,
|
@@ -30460,7 +30644,7 @@ var useBreadcrumbs = (renderCount) => {
|
|
30460
30644
|
|
30461
30645
|
// components/SidebarSection/index.tsx
|
30462
30646
|
var import_react_spinners4 = require("react-spinners");
|
30463
|
-
var
|
30647
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
30464
30648
|
var getClassName8 = get_class_name_factory_default("SidebarSection", styles_module_default5);
|
30465
30649
|
var SidebarSection = ({
|
30466
30650
|
children,
|
@@ -30473,28 +30657,28 @@ var SidebarSection = ({
|
|
30473
30657
|
}) => {
|
30474
30658
|
const { setUi } = useAppContext();
|
30475
30659
|
const breadcrumbs = useBreadcrumbs(1);
|
30476
|
-
return /* @__PURE__ */ (0,
|
30660
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
30477
30661
|
"div",
|
30478
30662
|
{
|
30479
30663
|
className: getClassName8({ noBorderTop, noPadding }),
|
30480
30664
|
style: { background },
|
30481
30665
|
children: [
|
30482
|
-
/* @__PURE__ */ (0,
|
30483
|
-
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0,
|
30484
|
-
/* @__PURE__ */ (0,
|
30485
|
-
"
|
30666
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("title"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumbs"), children: [
|
30667
|
+
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName8("breadcrumb"), children: [
|
30668
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
30669
|
+
"button",
|
30486
30670
|
{
|
30487
30671
|
className: getClassName8("breadcrumbLabel"),
|
30488
30672
|
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
30489
30673
|
children: breadcrumb.label
|
30490
30674
|
}
|
30491
30675
|
),
|
30492
|
-
/* @__PURE__ */ (0,
|
30676
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { size: 16 })
|
30493
30677
|
] }, i)) : null,
|
30494
|
-
/* @__PURE__ */ (0,
|
30678
|
+
/* @__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
30679
|
] }) }),
|
30496
|
-
/* @__PURE__ */ (0,
|
30497
|
-
isLoading && /* @__PURE__ */ (0,
|
30680
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName8("content"), children }),
|
30681
|
+
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
30682
|
]
|
30499
30683
|
}
|
30500
30684
|
);
|
@@ -30862,7 +31046,7 @@ var flushZones = (appState) => {
|
|
30862
31046
|
|
30863
31047
|
// lib/use-resolved-data.ts
|
30864
31048
|
init_react_import();
|
30865
|
-
var
|
31049
|
+
var import_react14 = require("react");
|
30866
31050
|
|
30867
31051
|
// lib/resolve-component-data.ts
|
30868
31052
|
init_react_import();
|
@@ -30977,13 +31161,13 @@ var resolveRootData = (data, config) => __async(void 0, null, function* () {
|
|
30977
31161
|
|
30978
31162
|
// lib/use-resolved-data.ts
|
30979
31163
|
var useResolvedData = (appState, config, dispatch) => {
|
30980
|
-
const [{ resolverKey, newAppState }, setResolverState] = (0,
|
31164
|
+
const [{ resolverKey, newAppState }, setResolverState] = (0, import_react14.useState)({
|
30981
31165
|
resolverKey: 0,
|
30982
31166
|
newAppState: appState
|
30983
31167
|
});
|
30984
|
-
const [componentState, setComponentState] = (0,
|
31168
|
+
const [componentState, setComponentState] = (0, import_react14.useState)({});
|
30985
31169
|
const deferredSetStates = {};
|
30986
|
-
const setComponentLoading = (0,
|
31170
|
+
const setComponentLoading = (0, import_react14.useCallback)(
|
30987
31171
|
(id, loading, defer = 0) => {
|
30988
31172
|
if (deferredSetStates[id]) {
|
30989
31173
|
clearTimeout(deferredSetStates[id]);
|
@@ -31000,7 +31184,10 @@ var useResolvedData = (appState, config, dispatch) => {
|
|
31000
31184
|
);
|
31001
31185
|
const runResolvers = () => __async(void 0, null, function* () {
|
31002
31186
|
const newData = newAppState.data;
|
31003
|
-
const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) =>
|
31187
|
+
const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => {
|
31188
|
+
var _a;
|
31189
|
+
return !!((_a = config.components[item.type]) == null ? void 0 : _a.resolveData);
|
31190
|
+
});
|
31004
31191
|
const applyIfChange = (dynamicDataMap, dynamicRoot) => {
|
31005
31192
|
const processed = applyDynamicProps(
|
31006
31193
|
appState.data,
|
@@ -31050,10 +31237,10 @@ var useResolvedData = (appState, config, dispatch) => {
|
|
31050
31237
|
});
|
31051
31238
|
yield Promise.all(promises);
|
31052
31239
|
});
|
31053
|
-
(0,
|
31240
|
+
(0, import_react14.useEffect)(() => {
|
31054
31241
|
runResolvers();
|
31055
31242
|
}, [resolverKey]);
|
31056
|
-
const resolveData = (0,
|
31243
|
+
const resolveData = (0, import_react14.useCallback)((newAppState2 = appState) => {
|
31057
31244
|
setResolverState((curr) => ({
|
31058
31245
|
resolverKey: curr.resolverKey + 1,
|
31059
31246
|
newAppState: newAppState2
|
@@ -31070,10 +31257,10 @@ init_react_import();
|
|
31070
31257
|
|
31071
31258
|
// css-module:/home/runner/work/puck/puck/packages/core/components/MenuBar/styles.module.css#css-module
|
31072
31259
|
init_react_import();
|
31073
|
-
var styles_module_default7 = { "MenuBar": "
|
31260
|
+
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
31261
|
|
31075
31262
|
// components/MenuBar/index.tsx
|
31076
|
-
var
|
31263
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
31077
31264
|
var getClassName9 = get_class_name_factory_default("MenuBar", styles_module_default7);
|
31078
31265
|
var MenuBar = ({
|
31079
31266
|
appState,
|
@@ -31088,7 +31275,7 @@ var MenuBar = ({
|
|
31088
31275
|
history: { back, forward, historyStore }
|
31089
31276
|
} = useAppContext();
|
31090
31277
|
const { hasFuture = false, hasPast = false } = historyStore || {};
|
31091
|
-
return /* @__PURE__ */ (0,
|
31278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
31092
31279
|
"div",
|
31093
31280
|
{
|
31094
31281
|
className: getClassName9({ menuOpen }),
|
@@ -31102,34 +31289,34 @@ var MenuBar = ({
|
|
31102
31289
|
setMenuOpen(false);
|
31103
31290
|
}
|
31104
31291
|
},
|
31105
|
-
children: /* @__PURE__ */ (0,
|
31106
|
-
/* @__PURE__ */ (0,
|
31107
|
-
/* @__PURE__ */ (0,
|
31292
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("inner"), children: [
|
31293
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName9("history"), children: [
|
31294
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "undo", disabled: !hasPast, onClick: back, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
31108
31295
|
ChevronLeft,
|
31109
31296
|
{
|
31110
31297
|
size: 21,
|
31111
|
-
stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-
|
31298
|
+
stroke: hasPast ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
|
31112
31299
|
}
|
31113
31300
|
) }),
|
31114
|
-
/* @__PURE__ */ (0,
|
31301
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { title: "redo", disabled: !hasFuture, onClick: forward, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
31115
31302
|
ChevronRight,
|
31116
31303
|
{
|
31117
31304
|
size: 21,
|
31118
|
-
stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-
|
31305
|
+
stroke: hasFuture ? "var(--puck-color-black)" : "var(--puck-color-grey-08)"
|
31119
31306
|
}
|
31120
31307
|
) })
|
31121
31308
|
] }),
|
31122
|
-
/* @__PURE__ */ (0,
|
31309
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: renderHeaderActions && renderHeaderActions({
|
31123
31310
|
state: appState,
|
31124
31311
|
dispatch
|
31125
31312
|
}) }),
|
31126
|
-
/* @__PURE__ */ (0,
|
31313
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
31127
31314
|
Button,
|
31128
31315
|
{
|
31129
31316
|
onClick: () => {
|
31130
31317
|
onPublish && onPublish(data);
|
31131
31318
|
},
|
31132
|
-
icon: /* @__PURE__ */ (0,
|
31319
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Globe, { size: "14px" }),
|
31133
31320
|
children: "Publish"
|
31134
31321
|
}
|
31135
31322
|
) })
|
@@ -31140,7 +31327,7 @@ var MenuBar = ({
|
|
31140
31327
|
|
31141
31328
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/styles.module.css#css-module
|
31142
31329
|
init_react_import();
|
31143
|
-
var styles_module_default8 = { "Puck": "
|
31330
|
+
var styles_module_default8 = { "Puck": "_Puck_1lfcm_19", "Puck--leftSideBarVisible": "_Puck--leftSideBarVisible_1lfcm_36", "Puck--rightSideBarVisible": "_Puck--rightSideBarVisible_1lfcm_42", "Puck-header": "_Puck-header_1lfcm_96", "Puck-headerInner": "_Puck-headerInner_1lfcm_105", "Puck-headerToggle": "_Puck-headerToggle_1lfcm_115", "Puck-rightSideBarToggle": "_Puck-rightSideBarToggle_1lfcm_122", "Puck-leftSideBarToggle": "_Puck-leftSideBarToggle_1lfcm_123", "Puck-headerTitle": "_Puck-headerTitle_1lfcm_127", "Puck-headerPath": "_Puck-headerPath_1lfcm_131", "Puck-headerTools": "_Puck-headerTools_1lfcm_138", "Puck-menuButton": "_Puck-menuButton_1lfcm_144", "Puck--menuOpen": "_Puck--menuOpen_1lfcm_149", "Puck-leftSideBar": "_Puck-leftSideBar_1lfcm_123", "Puck-rightSideBar": "_Puck-rightSideBar_1lfcm_122" };
|
31144
31331
|
|
31145
31332
|
// components/Puck/components/Fields/index.tsx
|
31146
31333
|
init_react_import();
|
@@ -31151,10 +31338,10 @@ init_react_import();
|
|
31151
31338
|
|
31152
31339
|
// css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/styles.module.css#css-module
|
31153
31340
|
init_react_import();
|
31154
|
-
var styles_module_default9 = { "Input": "
|
31341
|
+
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
31342
|
|
31156
31343
|
// components/InputOrGroup/index.tsx
|
31157
|
-
var
|
31344
|
+
var import_react19 = require("react");
|
31158
31345
|
|
31159
31346
|
// components/InputOrGroup/fields/index.tsx
|
31160
31347
|
init_react_import();
|
@@ -31164,13 +31351,24 @@ init_react_import();
|
|
31164
31351
|
|
31165
31352
|
// css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ArrayField/styles.module.css#css-module
|
31166
31353
|
init_react_import();
|
31167
|
-
var styles_module_default10 = { "ArrayField": "
|
31354
|
+
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
31355
|
|
31169
31356
|
// components/InputOrGroup/fields/ArrayField/index.tsx
|
31170
|
-
var
|
31171
|
-
|
31172
|
-
|
31173
|
-
|
31357
|
+
var import_react15 = require("react");
|
31358
|
+
|
31359
|
+
// components/DragDropContext/index.tsx
|
31360
|
+
init_react_import();
|
31361
|
+
var import_dnd4 = require("@measured/dnd");
|
31362
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
31363
|
+
var DefaultDragDropContext = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
|
31364
|
+
var DragDropContext = (props) => {
|
31365
|
+
const { status } = useAppContext();
|
31366
|
+
const El = status !== "LOADING" ? import_dnd4.DragDropContext : DefaultDragDropContext;
|
31367
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(El, __spreadValues({}, props));
|
31368
|
+
};
|
31369
|
+
|
31370
|
+
// components/InputOrGroup/fields/ArrayField/index.tsx
|
31371
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
31174
31372
|
var getClassName10 = get_class_name_factory_default("ArrayField", styles_module_default10);
|
31175
31373
|
var getClassNameItem2 = get_class_name_factory_default("ArrayFieldItem", styles_module_default10);
|
31176
31374
|
var ArrayField = ({
|
@@ -31194,11 +31392,11 @@ var ArrayField = ({
|
|
31194
31392
|
}),
|
31195
31393
|
openId: ""
|
31196
31394
|
};
|
31197
|
-
const [localState, setLocalState] = (0,
|
31198
|
-
(0,
|
31395
|
+
const [localState, setLocalState] = (0, import_react15.useState)({ arrayState, value });
|
31396
|
+
(0, import_react15.useEffect)(() => {
|
31199
31397
|
setLocalState({ arrayState, value });
|
31200
31398
|
}, [value, state.ui.arrayState[id]]);
|
31201
|
-
const mapArrayStateToUi = (0,
|
31399
|
+
const mapArrayStateToUi = (0, import_react15.useCallback)(
|
31202
31400
|
(partialArrayState) => {
|
31203
31401
|
return {
|
31204
31402
|
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
@@ -31208,13 +31406,13 @@ var ArrayField = ({
|
|
31208
31406
|
},
|
31209
31407
|
[arrayState]
|
31210
31408
|
);
|
31211
|
-
const getHighestIndex = (0,
|
31409
|
+
const getHighestIndex = (0, import_react15.useCallback)(() => {
|
31212
31410
|
return arrayState.items.reduce(
|
31213
31411
|
(acc, item) => item._originalIndex > acc ? item._originalIndex : acc,
|
31214
31412
|
-1
|
31215
31413
|
);
|
31216
31414
|
}, [arrayState]);
|
31217
|
-
const regenerateArrayState = (0,
|
31415
|
+
const regenerateArrayState = (0, import_react15.useCallback)(
|
31218
31416
|
(value2) => {
|
31219
31417
|
let highestIndex = getHighestIndex();
|
31220
31418
|
const newItems = Array.from(value2 || []).map((item, idx) => {
|
@@ -31233,22 +31431,22 @@ var ArrayField = ({
|
|
31233
31431
|
},
|
31234
31432
|
[arrayState]
|
31235
31433
|
);
|
31236
|
-
(0,
|
31434
|
+
(0, import_react15.useEffect)(() => {
|
31237
31435
|
setUi(mapArrayStateToUi(arrayState));
|
31238
31436
|
}, []);
|
31239
|
-
const [hovering, setHovering] = (0,
|
31437
|
+
const [hovering, setHovering] = (0, import_react15.useState)(false);
|
31240
31438
|
if (field.type !== "array" || !field.arrayFields) {
|
31241
31439
|
return null;
|
31242
31440
|
}
|
31243
|
-
return /* @__PURE__ */ (0,
|
31441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
31244
31442
|
FieldLabelInternal,
|
31245
31443
|
{
|
31246
31444
|
label: label || name,
|
31247
|
-
icon: /* @__PURE__ */ (0,
|
31445
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(List, { size: 16 }),
|
31248
31446
|
el: "div",
|
31249
31447
|
readOnly,
|
31250
|
-
children: /* @__PURE__ */ (0,
|
31251
|
-
|
31448
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
31449
|
+
DragDropContext,
|
31252
31450
|
{
|
31253
31451
|
onDragEnd: (event) => {
|
31254
31452
|
var _a, _b;
|
@@ -31274,8 +31472,8 @@ var ArrayField = ({
|
|
31274
31472
|
});
|
31275
31473
|
}
|
31276
31474
|
},
|
31277
|
-
children: /* @__PURE__ */ (0,
|
31278
|
-
return /* @__PURE__ */ (0,
|
31475
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
|
31476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
31279
31477
|
"div",
|
31280
31478
|
__spreadProps(__spreadValues({}, provided.droppableProps), {
|
31281
31479
|
ref: provided.innerRef,
|
@@ -31295,7 +31493,7 @@ var ArrayField = ({
|
|
31295
31493
|
localState.arrayState.items.map((item, i) => {
|
31296
31494
|
const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
|
31297
31495
|
const data = Array.from(localState.value || [])[i] || {};
|
31298
|
-
return /* @__PURE__ */ (0,
|
31496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
31299
31497
|
Draggable,
|
31300
31498
|
{
|
31301
31499
|
id: _arrayId,
|
@@ -31306,8 +31504,8 @@ var ArrayField = ({
|
|
31306
31504
|
readOnly
|
31307
31505
|
}),
|
31308
31506
|
isDragDisabled: readOnly || !hovering,
|
31309
|
-
children: () => /* @__PURE__ */ (0,
|
31310
|
-
/* @__PURE__ */ (0,
|
31507
|
+
children: () => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
31508
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
31311
31509
|
"div",
|
31312
31510
|
{
|
31313
31511
|
onClick: () => {
|
@@ -31328,10 +31526,11 @@ var ArrayField = ({
|
|
31328
31526
|
className: getClassNameItem2("summary"),
|
31329
31527
|
children: [
|
31330
31528
|
field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
|
31331
|
-
/* @__PURE__ */ (0,
|
31332
|
-
!readOnly && /* @__PURE__ */ (0,
|
31529
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameItem2("rhs"), children: [
|
31530
|
+
!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
31531
|
IconButton,
|
31334
31532
|
{
|
31533
|
+
disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
|
31335
31534
|
onClick: (e) => {
|
31336
31535
|
e.stopPropagation();
|
31337
31536
|
const existingValue = [
|
@@ -31350,20 +31549,20 @@ var ArrayField = ({
|
|
31350
31549
|
);
|
31351
31550
|
},
|
31352
31551
|
title: "Delete",
|
31353
|
-
children: /* @__PURE__ */ (0,
|
31552
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Trash, { size: 16 })
|
31354
31553
|
}
|
31355
31554
|
) }) }),
|
31356
|
-
/* @__PURE__ */ (0,
|
31555
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DragIcon, {}) })
|
31357
31556
|
] })
|
31358
31557
|
]
|
31359
31558
|
}
|
31360
31559
|
),
|
31361
|
-
/* @__PURE__ */ (0,
|
31560
|
+
/* @__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
31561
|
(fieldName) => {
|
31363
31562
|
const subField = field.arrayFields[fieldName];
|
31364
31563
|
const subFieldName = `${name}[${i}].${fieldName}`;
|
31365
31564
|
const wildcardFieldName = `${name}[*].${fieldName}`;
|
31366
|
-
return /* @__PURE__ */ (0,
|
31565
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
31367
31566
|
InputOrGroup,
|
31368
31567
|
{
|
31369
31568
|
name: subFieldName,
|
@@ -31392,10 +31591,11 @@ var ArrayField = ({
|
|
31392
31591
|
);
|
31393
31592
|
}),
|
31394
31593
|
provided.placeholder,
|
31395
|
-
/* @__PURE__ */ (0,
|
31594
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
31396
31595
|
"button",
|
31397
31596
|
{
|
31398
31597
|
className: getClassName10("addButton"),
|
31598
|
+
disabled: field.max !== void 0 && localState.arrayState.items.length >= field.max,
|
31399
31599
|
onClick: () => {
|
31400
31600
|
const existingValue = value || [];
|
31401
31601
|
const newValue = [
|
@@ -31405,7 +31605,7 @@ var ArrayField = ({
|
|
31405
31605
|
const newArrayState = regenerateArrayState(newValue);
|
31406
31606
|
onChange(newValue, mapArrayStateToUi(newArrayState));
|
31407
31607
|
},
|
31408
|
-
children: /* @__PURE__ */ (0,
|
31608
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Plus, { size: 21 })
|
31409
31609
|
}
|
31410
31610
|
)
|
31411
31611
|
]
|
@@ -31420,7 +31620,7 @@ var ArrayField = ({
|
|
31420
31620
|
|
31421
31621
|
// components/InputOrGroup/fields/DefaultField/index.tsx
|
31422
31622
|
init_react_import();
|
31423
|
-
var
|
31623
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
31424
31624
|
var getClassName11 = get_class_name_factory_default("Input", styles_module_default9);
|
31425
31625
|
var DefaultField = ({
|
31426
31626
|
field,
|
@@ -31431,16 +31631,16 @@ var DefaultField = ({
|
|
31431
31631
|
label,
|
31432
31632
|
id
|
31433
31633
|
}) => {
|
31434
|
-
return /* @__PURE__ */ (0,
|
31634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
31435
31635
|
FieldLabelInternal,
|
31436
31636
|
{
|
31437
31637
|
label: label || name,
|
31438
|
-
icon: /* @__PURE__ */ (0,
|
31439
|
-
field.type === "text" && /* @__PURE__ */ (0,
|
31440
|
-
field.type === "number" && /* @__PURE__ */ (0,
|
31638
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
31639
|
+
field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Type, { size: 16 }),
|
31640
|
+
field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Hash, { size: 16 })
|
31441
31641
|
] }),
|
31442
31642
|
readOnly,
|
31443
|
-
children: /* @__PURE__ */ (0,
|
31643
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
31444
31644
|
"input",
|
31445
31645
|
{
|
31446
31646
|
className: getClassName11("input"),
|
@@ -31456,7 +31656,10 @@ var DefaultField = ({
|
|
31456
31656
|
}
|
31457
31657
|
},
|
31458
31658
|
readOnly,
|
31459
|
-
|
31659
|
+
tabIndex: readOnly ? -1 : void 0,
|
31660
|
+
id,
|
31661
|
+
min: field.type === "number" ? field.min : void 0,
|
31662
|
+
max: field.type === "number" ? field.max : void 0
|
31460
31663
|
}
|
31461
31664
|
)
|
31462
31665
|
}
|
@@ -31465,42 +31668,42 @@ var DefaultField = ({
|
|
31465
31668
|
|
31466
31669
|
// components/InputOrGroup/fields/ExternalField/index.tsx
|
31467
31670
|
init_react_import();
|
31468
|
-
var
|
31671
|
+
var import_react18 = require("react");
|
31469
31672
|
|
31470
31673
|
// components/ExternalInput/index.tsx
|
31471
31674
|
init_react_import();
|
31472
|
-
var
|
31675
|
+
var import_react17 = require("react");
|
31473
31676
|
|
31474
31677
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
|
31475
31678
|
init_react_import();
|
31476
|
-
var styles_module_default11 = { "ExternalInput": "
|
31679
|
+
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" };
|
31477
31680
|
|
31478
31681
|
// components/Modal/index.tsx
|
31479
31682
|
init_react_import();
|
31480
|
-
var
|
31683
|
+
var import_react16 = require("react");
|
31481
31684
|
|
31482
31685
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Modal/styles.module.css#css-module
|
31483
31686
|
init_react_import();
|
31484
|
-
var styles_module_default12 = { "Modal": "
|
31687
|
+
var styles_module_default12 = { "Modal": "_Modal_ikbaj_1", "Modal--isOpen": "_Modal--isOpen_ikbaj_15", "Modal-inner": "_Modal-inner_ikbaj_19" };
|
31485
31688
|
|
31486
31689
|
// components/Modal/index.tsx
|
31487
31690
|
var import_react_dom = __toESM(require_react_dom());
|
31488
|
-
var
|
31691
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
31489
31692
|
var getClassName12 = get_class_name_factory_default("Modal", styles_module_default12);
|
31490
31693
|
var Modal = ({
|
31491
31694
|
children,
|
31492
31695
|
onClose,
|
31493
31696
|
isOpen
|
31494
31697
|
}) => {
|
31495
|
-
const [rootEl, setRootEl] = (0,
|
31496
|
-
(0,
|
31698
|
+
const [rootEl, setRootEl] = (0, import_react16.useState)(null);
|
31699
|
+
(0, import_react16.useEffect)(() => {
|
31497
31700
|
setRootEl(document.getElementById("puck-portal-root"));
|
31498
31701
|
}, []);
|
31499
31702
|
if (!rootEl) {
|
31500
|
-
return /* @__PURE__ */ (0,
|
31703
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {});
|
31501
31704
|
}
|
31502
31705
|
return (0, import_react_dom.createPortal)(
|
31503
|
-
/* @__PURE__ */ (0,
|
31706
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName12({ isOpen }), onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
31504
31707
|
"div",
|
31505
31708
|
{
|
31506
31709
|
className: getClassName12("inner"),
|
@@ -31514,7 +31717,7 @@ var Modal = ({
|
|
31514
31717
|
|
31515
31718
|
// components/ExternalInput/index.tsx
|
31516
31719
|
var import_react_spinners5 = require("react-spinners");
|
31517
|
-
var
|
31720
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
31518
31721
|
var getClassName13 = get_class_name_factory_default("ExternalInput", styles_module_default11);
|
31519
31722
|
var getClassNameModal = get_class_name_factory_default("ExternalInputModal", styles_module_default11);
|
31520
31723
|
var dataCache = {};
|
@@ -31525,13 +31728,23 @@ var ExternalInput = ({
|
|
31525
31728
|
name,
|
31526
31729
|
id
|
31527
31730
|
}) => {
|
31528
|
-
const {
|
31529
|
-
|
31530
|
-
|
31531
|
-
|
31532
|
-
|
31731
|
+
const {
|
31732
|
+
mapProp = (val) => val,
|
31733
|
+
mapRow = (val) => val,
|
31734
|
+
filterFields
|
31735
|
+
} = field || {};
|
31736
|
+
const [data, setData] = (0, import_react17.useState)([]);
|
31737
|
+
const [isOpen, setOpen] = (0, import_react17.useState)(false);
|
31738
|
+
const [isLoading, setIsLoading] = (0, import_react17.useState)(true);
|
31739
|
+
const hasFilterFields = !!filterFields;
|
31740
|
+
const [filters, setFilters] = (0, import_react17.useState)(field.initialFilters || {});
|
31741
|
+
const [filtersToggled, setFiltersToggled] = (0, import_react17.useState)(hasFilterFields);
|
31742
|
+
const mappedData = (0, import_react17.useMemo)(() => {
|
31743
|
+
return data.map(mapRow);
|
31744
|
+
}, [data]);
|
31745
|
+
const keys = (0, import_react17.useMemo)(() => {
|
31533
31746
|
const validKeys = /* @__PURE__ */ new Set();
|
31534
|
-
for (const item of
|
31747
|
+
for (const item of mappedData) {
|
31535
31748
|
for (const key of Object.keys(item)) {
|
31536
31749
|
if (typeof item[key] === "string" || typeof item[key] === "number") {
|
31537
31750
|
validKeys.add(key);
|
@@ -31539,13 +31752,13 @@ var ExternalInput = ({
|
|
31539
31752
|
}
|
31540
31753
|
}
|
31541
31754
|
return Array.from(validKeys);
|
31542
|
-
}, [
|
31543
|
-
const [searchQuery, setSearchQuery] = (0,
|
31544
|
-
const search = (0,
|
31545
|
-
(query) => __async(void 0, null, function* () {
|
31755
|
+
}, [mappedData]);
|
31756
|
+
const [searchQuery, setSearchQuery] = (0, import_react17.useState)(field.initialQuery || "");
|
31757
|
+
const search = (0, import_react17.useCallback)(
|
31758
|
+
(query, filters2) => __async(void 0, null, function* () {
|
31546
31759
|
setIsLoading(true);
|
31547
|
-
const cacheKey = `${id}-${name}-${query}`;
|
31548
|
-
const listData = dataCache[cacheKey] || (yield field.fetchList({ query }));
|
31760
|
+
const cacheKey = `${id}-${name}-${query}-${JSON.stringify(filters2)}`;
|
31761
|
+
const listData = dataCache[cacheKey] || (yield field.fetchList({ query, filters: filters2 }));
|
31549
31762
|
if (listData) {
|
31550
31763
|
setData(listData);
|
31551
31764
|
setIsLoading(false);
|
@@ -31554,10 +31767,10 @@ var ExternalInput = ({
|
|
31554
31767
|
}),
|
31555
31768
|
[name, field]
|
31556
31769
|
);
|
31557
|
-
(0,
|
31558
|
-
search(searchQuery);
|
31770
|
+
(0, import_react17.useEffect)(() => {
|
31771
|
+
search(searchQuery, filters);
|
31559
31772
|
}, []);
|
31560
|
-
return /* @__PURE__ */ (0,
|
31773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
31561
31774
|
"div",
|
31562
31775
|
{
|
31563
31776
|
className: getClassName13({
|
@@ -31566,102 +31779,133 @@ var ExternalInput = ({
|
|
31566
31779
|
}),
|
31567
31780
|
id,
|
31568
31781
|
children: [
|
31569
|
-
/* @__PURE__ */ (0,
|
31570
|
-
/* @__PURE__ */ (0,
|
31782
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassName13("actions"), children: [
|
31783
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
31571
31784
|
"button",
|
31572
31785
|
{
|
31573
31786
|
onClick: () => setOpen(true),
|
31574
31787
|
className: getClassName13("button"),
|
31575
|
-
children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0,
|
31576
|
-
/* @__PURE__ */ (0,
|
31577
|
-
/* @__PURE__ */ (0,
|
31788
|
+
children: value ? field.getItemSummary ? field.getItemSummary(value) : "External item" : /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
31789
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Link, { size: "16" }),
|
31790
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: field.placeholder })
|
31578
31791
|
] })
|
31579
31792
|
}
|
31580
31793
|
),
|
31581
|
-
value && /* @__PURE__ */ (0,
|
31794
|
+
value && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
31582
31795
|
"button",
|
31583
31796
|
{
|
31584
31797
|
className: getClassName13("detachButton"),
|
31585
31798
|
onClick: () => {
|
31586
31799
|
onChange(null);
|
31587
31800
|
},
|
31588
|
-
children: /* @__PURE__ */ (0,
|
31801
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Unlock, { size: 16 })
|
31589
31802
|
}
|
31590
31803
|
)
|
31591
31804
|
] }),
|
31592
|
-
/* @__PURE__ */ (0,
|
31593
|
-
"
|
31805
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Modal, { onClose: () => setOpen(false), isOpen, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
31806
|
+
"form",
|
31594
31807
|
{
|
31595
31808
|
className: getClassNameModal({
|
31596
31809
|
isLoading,
|
31597
31810
|
loaded: !isLoading,
|
31598
|
-
hasData:
|
31811
|
+
hasData: mappedData.length > 0,
|
31812
|
+
filtersToggled
|
31599
31813
|
}),
|
31814
|
+
onSubmit: (e) => {
|
31815
|
+
e.preventDefault();
|
31816
|
+
search(searchQuery, filters);
|
31817
|
+
},
|
31600
31818
|
children: [
|
31601
|
-
/* @__PURE__ */ (0,
|
31602
|
-
/* @__PURE__ */ (0,
|
31603
|
-
|
31604
|
-
"
|
31605
|
-
|
31606
|
-
|
31607
|
-
onSubmit: (e) => {
|
31608
|
-
e.preventDefault();
|
31609
|
-
search(searchQuery);
|
31610
|
-
},
|
31611
|
-
children: [
|
31612
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: getClassNameModal("search"), children: [
|
31613
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
|
31614
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Search, { size: "18" }) }),
|
31615
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
31616
|
-
"input",
|
31617
|
-
{
|
31618
|
-
className: getClassNameModal("searchInput"),
|
31619
|
-
name: "q",
|
31620
|
-
type: "search",
|
31621
|
-
placeholder: "Search",
|
31622
|
-
onChange: (e) => {
|
31623
|
-
setSearchQuery(e.currentTarget.value);
|
31624
|
-
},
|
31625
|
-
autoComplete: "off",
|
31626
|
-
value: searchQuery
|
31627
|
-
}
|
31628
|
-
)
|
31629
|
-
] }),
|
31630
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { type: "submit", loading: isLoading, disabled: isLoading, children: "Search" })
|
31631
|
-
]
|
31632
|
-
}
|
31633
|
-
)
|
31634
|
-
] }),
|
31635
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
|
31636
|
-
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("table", { className: getClassNameModal("table"), children: [
|
31637
|
-
/* @__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)(
|
31638
|
-
"th",
|
31819
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("masthead"), children: field.showSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchForm"), children: [
|
31820
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: getClassNameModal("search"), children: [
|
31821
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: getClassNameModal("searchIconText"), children: "Search" }),
|
31822
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "18" }) }),
|
31823
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
31824
|
+
"input",
|
31639
31825
|
{
|
31640
|
-
className: getClassNameModal("
|
31641
|
-
|
31642
|
-
|
31826
|
+
className: getClassNameModal("searchInput"),
|
31827
|
+
name: "q",
|
31828
|
+
type: "search",
|
31829
|
+
placeholder: field.placeholder,
|
31830
|
+
onChange: (e) => {
|
31831
|
+
setSearchQuery(e.currentTarget.value);
|
31832
|
+
},
|
31833
|
+
autoComplete: "off",
|
31834
|
+
value: searchQuery
|
31835
|
+
}
|
31836
|
+
)
|
31837
|
+
] }),
|
31838
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("searchActions"), children: [
|
31839
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { type: "submit", loading: isLoading, fullWidth: true, children: "Search" }),
|
31840
|
+
hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("searchActionIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
31841
|
+
IconButton,
|
31842
|
+
{
|
31843
|
+
title: "Toggle filters",
|
31844
|
+
onClick: (e) => {
|
31845
|
+
e.preventDefault();
|
31846
|
+
e.stopPropagation();
|
31847
|
+
setFiltersToggled(!filtersToggled);
|
31848
|
+
},
|
31849
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SlidersHorizontal, { size: 20 })
|
31850
|
+
}
|
31851
|
+
) })
|
31852
|
+
] })
|
31853
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Heading, { rank: 2, size: "xs", children: field.placeholder || "Select data" }) }),
|
31854
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("grid"), children: [
|
31855
|
+
hasFilterFields && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: getClassNameModal("filters"), children: hasFilterFields && Object.keys(filterFields).map((fieldName) => {
|
31856
|
+
const filterField = filterFields[fieldName];
|
31857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
31858
|
+
InputOrGroup,
|
31859
|
+
{
|
31860
|
+
field: filterField,
|
31861
|
+
name: fieldName,
|
31862
|
+
id: `external_field_${fieldName}_filter`,
|
31863
|
+
label: filterField.label || fieldName,
|
31864
|
+
value: filters[fieldName],
|
31865
|
+
onChange: (value2) => {
|
31866
|
+
const newFilters = __spreadProps(__spreadValues({}, filters), { [fieldName]: value2 });
|
31867
|
+
setFilters(newFilters);
|
31868
|
+
search(searchQuery, newFilters);
|
31869
|
+
}
|
31643
31870
|
},
|
31644
|
-
|
31645
|
-
)
|
31646
|
-
|
31647
|
-
|
31648
|
-
|
31871
|
+
fieldName
|
31872
|
+
);
|
31873
|
+
}) }),
|
31874
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("tableWrapper"), children: [
|
31875
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: getClassNameModal("table"), children: [
|
31876
|
+
/* @__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)(
|
31877
|
+
"th",
|
31649
31878
|
{
|
31650
|
-
|
31651
|
-
|
31652
|
-
|
31653
|
-
onChange(mapProp(item));
|
31654
|
-
setOpen(false);
|
31655
|
-
},
|
31656
|
-
children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
|
31879
|
+
className: getClassNameModal("th"),
|
31880
|
+
style: { textAlign: "left" },
|
31881
|
+
children: key
|
31657
31882
|
},
|
31658
|
-
|
31659
|
-
)
|
31660
|
-
|
31661
|
-
|
31662
|
-
|
31883
|
+
key
|
31884
|
+
)) }) }),
|
31885
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: getClassNameModal("tbody"), children: mappedData.map((item, i) => {
|
31886
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
31887
|
+
"tr",
|
31888
|
+
{
|
31889
|
+
style: { whiteSpace: "nowrap" },
|
31890
|
+
className: getClassNameModal("tr"),
|
31891
|
+
onClick: () => {
|
31892
|
+
onChange(mapProp(data[i]));
|
31893
|
+
setOpen(false);
|
31894
|
+
},
|
31895
|
+
children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("td", { className: getClassNameModal("td"), children: item[key] }, key))
|
31896
|
+
},
|
31897
|
+
i
|
31898
|
+
);
|
31899
|
+
}) })
|
31900
|
+
] }),
|
31901
|
+
/* @__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" }) })
|
31902
|
+
] })
|
31663
31903
|
] }),
|
31664
|
-
/* @__PURE__ */ (0,
|
31904
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: getClassNameModal("footer"), children: [
|
31905
|
+
mappedData.length,
|
31906
|
+
" result",
|
31907
|
+
mappedData.length === 1 ? "" : "s"
|
31908
|
+
] })
|
31665
31909
|
]
|
31666
31910
|
}
|
31667
31911
|
) })
|
@@ -31671,7 +31915,7 @@ var ExternalInput = ({
|
|
31671
31915
|
};
|
31672
31916
|
|
31673
31917
|
// components/InputOrGroup/fields/ExternalField/index.tsx
|
31674
|
-
var
|
31918
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
31675
31919
|
var ExternalField = ({
|
31676
31920
|
field,
|
31677
31921
|
onChange,
|
@@ -31683,7 +31927,7 @@ var ExternalField = ({
|
|
31683
31927
|
var _a, _b, _c;
|
31684
31928
|
const validField = field;
|
31685
31929
|
const deprecatedField = field;
|
31686
|
-
(0,
|
31930
|
+
(0, import_react18.useEffect)(() => {
|
31687
31931
|
if (deprecatedField.adaptor) {
|
31688
31932
|
console.error(
|
31689
31933
|
"Warning: The `adaptor` API is deprecated. Please use updated APIs on the `external` field instead. This will be a breaking change in a future release."
|
@@ -31693,13 +31937,13 @@ var ExternalField = ({
|
|
31693
31937
|
if (field.type !== "external") {
|
31694
31938
|
return null;
|
31695
31939
|
}
|
31696
|
-
return /* @__PURE__ */ (0,
|
31940
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
31697
31941
|
FieldLabelInternal,
|
31698
31942
|
{
|
31699
31943
|
label: label || name,
|
31700
|
-
icon: /* @__PURE__ */ (0,
|
31944
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { size: 16 }),
|
31701
31945
|
el: "div",
|
31702
|
-
children: /* @__PURE__ */ (0,
|
31946
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
31703
31947
|
ExternalInput,
|
31704
31948
|
{
|
31705
31949
|
name,
|
@@ -31707,6 +31951,7 @@ var ExternalField = ({
|
|
31707
31951
|
// DEPRECATED
|
31708
31952
|
placeholder: ((_a = deprecatedField.adaptor) == null ? void 0 : _a.name) ? `Select from ${deprecatedField.adaptor.name}` : validField.placeholder || "Select data",
|
31709
31953
|
mapProp: ((_b = deprecatedField.adaptor) == null ? void 0 : _b.mapProp) || validField.mapProp,
|
31954
|
+
mapRow: validField.mapRow,
|
31710
31955
|
fetchList: ((_c = deprecatedField.adaptor) == null ? void 0 : _c.fetchList) ? () => __async(void 0, null, function* () {
|
31711
31956
|
return yield deprecatedField.adaptor.fetchList(
|
31712
31957
|
deprecatedField.adaptorParams
|
@@ -31724,7 +31969,7 @@ var ExternalField = ({
|
|
31724
31969
|
|
31725
31970
|
// components/InputOrGroup/fields/RadioField/index.tsx
|
31726
31971
|
init_react_import();
|
31727
|
-
var
|
31972
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
31728
31973
|
var getClassName14 = get_class_name_factory_default("Input", styles_module_default9);
|
31729
31974
|
var RadioField = ({
|
31730
31975
|
field,
|
@@ -31738,19 +31983,19 @@ var RadioField = ({
|
|
31738
31983
|
if (field.type !== "radio" || !field.options) {
|
31739
31984
|
return null;
|
31740
31985
|
}
|
31741
|
-
return /* @__PURE__ */ (0,
|
31986
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
31742
31987
|
FieldLabelInternal,
|
31743
31988
|
{
|
31744
|
-
icon: /* @__PURE__ */ (0,
|
31989
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckCircle, { size: 16 }),
|
31745
31990
|
label: label || name,
|
31746
31991
|
readOnly,
|
31747
31992
|
el: "div",
|
31748
|
-
children: /* @__PURE__ */ (0,
|
31993
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
31749
31994
|
"label",
|
31750
31995
|
{
|
31751
31996
|
className: getClassName14("radio"),
|
31752
31997
|
children: [
|
31753
|
-
/* @__PURE__ */ (0,
|
31998
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
31754
31999
|
"input",
|
31755
32000
|
{
|
31756
32001
|
type: "radio",
|
@@ -31768,7 +32013,7 @@ var RadioField = ({
|
|
31768
32013
|
defaultChecked: value === option.value
|
31769
32014
|
}
|
31770
32015
|
),
|
31771
|
-
/* @__PURE__ */ (0,
|
32016
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
|
31772
32017
|
]
|
31773
32018
|
},
|
31774
32019
|
option.label + option.value
|
@@ -31779,7 +32024,7 @@ var RadioField = ({
|
|
31779
32024
|
|
31780
32025
|
// components/InputOrGroup/fields/SelectField/index.tsx
|
31781
32026
|
init_react_import();
|
31782
|
-
var
|
32027
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
31783
32028
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default9);
|
31784
32029
|
var SelectField = ({
|
31785
32030
|
field,
|
@@ -31793,13 +32038,13 @@ var SelectField = ({
|
|
31793
32038
|
if (field.type !== "select" || !field.options) {
|
31794
32039
|
return null;
|
31795
32040
|
}
|
31796
|
-
return /* @__PURE__ */ (0,
|
32041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
31797
32042
|
FieldLabelInternal,
|
31798
32043
|
{
|
31799
32044
|
label: label || name,
|
31800
|
-
icon: /* @__PURE__ */ (0,
|
32045
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronDown, { size: 16 }),
|
31801
32046
|
readOnly,
|
31802
|
-
children: /* @__PURE__ */ (0,
|
32047
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
31803
32048
|
"select",
|
31804
32049
|
{
|
31805
32050
|
id,
|
@@ -31813,7 +32058,7 @@ var SelectField = ({
|
|
31813
32058
|
onChange(e.currentTarget.value);
|
31814
32059
|
},
|
31815
32060
|
value,
|
31816
|
-
children: field.options.map((option) => /* @__PURE__ */ (0,
|
32061
|
+
children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
31817
32062
|
"option",
|
31818
32063
|
{
|
31819
32064
|
label: option.label,
|
@@ -31829,7 +32074,7 @@ var SelectField = ({
|
|
31829
32074
|
|
31830
32075
|
// components/InputOrGroup/fields/TextareaField/index.tsx
|
31831
32076
|
init_react_import();
|
31832
|
-
var
|
32077
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
31833
32078
|
var getClassName16 = get_class_name_factory_default("Input", styles_module_default9);
|
31834
32079
|
var TextareaField = ({
|
31835
32080
|
onChange,
|
@@ -31839,13 +32084,13 @@ var TextareaField = ({
|
|
31839
32084
|
label,
|
31840
32085
|
id
|
31841
32086
|
}) => {
|
31842
|
-
return /* @__PURE__ */ (0,
|
32087
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
31843
32088
|
FieldLabelInternal,
|
31844
32089
|
{
|
31845
32090
|
label: label || name,
|
31846
|
-
icon: /* @__PURE__ */ (0,
|
32091
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Type, { size: 16 }),
|
31847
32092
|
readOnly,
|
31848
|
-
children: /* @__PURE__ */ (0,
|
32093
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
31849
32094
|
"textarea",
|
31850
32095
|
{
|
31851
32096
|
id,
|
@@ -31855,6 +32100,7 @@ var TextareaField = ({
|
|
31855
32100
|
value: typeof value === "undefined" ? "" : value,
|
31856
32101
|
onChange: (e) => onChange(e.currentTarget.value),
|
31857
32102
|
readOnly,
|
32103
|
+
tabIndex: readOnly ? -1 : void 0,
|
31858
32104
|
rows: 5
|
31859
32105
|
}
|
31860
32106
|
)
|
@@ -31870,10 +32116,10 @@ init_react_import();
|
|
31870
32116
|
|
31871
32117
|
// css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ObjectField/styles.module.css#css-module
|
31872
32118
|
init_react_import();
|
31873
|
-
var styles_module_default13 = { "ObjectField": "
|
32119
|
+
var styles_module_default13 = { "ObjectField": "_ObjectField_15j63_5", "ObjectField-fieldset": "_ObjectField-fieldset_15j63_13" };
|
31874
32120
|
|
31875
32121
|
// components/InputOrGroup/fields/ObjectField/index.tsx
|
31876
|
-
var
|
32122
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
31877
32123
|
var getClassName17 = get_class_name_factory_default("ObjectField", styles_module_default13);
|
31878
32124
|
var getClassNameItem3 = get_class_name_factory_default("ObjectFieldItem", styles_module_default13);
|
31879
32125
|
var ObjectField = ({
|
@@ -31890,18 +32136,18 @@ var ObjectField = ({
|
|
31890
32136
|
return null;
|
31891
32137
|
}
|
31892
32138
|
const data = value || {};
|
31893
|
-
return /* @__PURE__ */ (0,
|
32139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
31894
32140
|
FieldLabelInternal,
|
31895
32141
|
{
|
31896
32142
|
label: label || name,
|
31897
|
-
icon: /* @__PURE__ */ (0,
|
32143
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MoreVertical, { size: 16 }),
|
31898
32144
|
el: "div",
|
31899
32145
|
readOnly,
|
31900
|
-
children: /* @__PURE__ */ (0,
|
32146
|
+
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) => {
|
31901
32147
|
const subField = field.objectFields[fieldName];
|
31902
32148
|
const subFieldName = `${name}.${fieldName}`;
|
31903
32149
|
const wildcardFieldName = `${name}.${fieldName}`;
|
31904
|
-
return /* @__PURE__ */ (0,
|
32150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
31905
32151
|
InputOrGroup,
|
31906
32152
|
{
|
31907
32153
|
name: subFieldName,
|
@@ -31928,7 +32174,7 @@ var ObjectField = ({
|
|
31928
32174
|
};
|
31929
32175
|
|
31930
32176
|
// components/InputOrGroup/index.tsx
|
31931
|
-
var
|
32177
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
31932
32178
|
var getClassName18 = get_class_name_factory_default("Input", styles_module_default9);
|
31933
32179
|
var FieldLabel = ({
|
31934
32180
|
children,
|
@@ -31939,11 +32185,11 @@ var FieldLabel = ({
|
|
31939
32185
|
className
|
31940
32186
|
}) => {
|
31941
32187
|
const El = el;
|
31942
|
-
return /* @__PURE__ */ (0,
|
31943
|
-
/* @__PURE__ */ (0,
|
31944
|
-
icon ? /* @__PURE__ */ (0,
|
32188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(El, { className, children: [
|
32189
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: getClassName18("label"), children: [
|
32190
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {}),
|
31945
32191
|
label,
|
31946
|
-
readOnly && /* @__PURE__ */ (0,
|
32192
|
+
readOnly && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18("disabledIcon"), title: "Read-only", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Lock, { size: "12" }) })
|
31947
32193
|
] }),
|
31948
32194
|
children
|
31949
32195
|
] });
|
@@ -31956,11 +32202,11 @@ var FieldLabelInternal = ({
|
|
31956
32202
|
readOnly
|
31957
32203
|
}) => {
|
31958
32204
|
const { overrides } = useAppContext();
|
31959
|
-
const Wrapper = (0,
|
32205
|
+
const Wrapper = (0, import_react19.useMemo)(
|
31960
32206
|
() => overrides.fieldLabel || FieldLabel,
|
31961
32207
|
[overrides]
|
31962
32208
|
);
|
31963
|
-
return /* @__PURE__ */ (0,
|
32209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
31964
32210
|
Wrapper,
|
31965
32211
|
{
|
31966
32212
|
label,
|
@@ -31977,7 +32223,7 @@ var InputOrGroup = (_a) => {
|
|
31977
32223
|
var _a2, _b2, _c, _d, _e, _f, _g, _h;
|
31978
32224
|
const { overrides } = useAppContext();
|
31979
32225
|
const { name, field, value, readOnly } = props;
|
31980
|
-
const [localValue, setLocalValue] = (0,
|
32226
|
+
const [localValue, setLocalValue] = (0, import_react19.useState)(value);
|
31981
32227
|
const onChangeDb = (0, import_use_debounce2.useDebouncedCallback)(
|
31982
32228
|
(val, ui) => {
|
31983
32229
|
onChange(val, ui);
|
@@ -31985,11 +32231,11 @@ var InputOrGroup = (_a) => {
|
|
31985
32231
|
50,
|
31986
32232
|
{ leading: true }
|
31987
32233
|
);
|
31988
|
-
const onChangeLocal = (0,
|
32234
|
+
const onChangeLocal = (0, import_react19.useCallback)((val, ui) => {
|
31989
32235
|
setLocalValue(val);
|
31990
32236
|
onChangeDb(val, ui);
|
31991
32237
|
}, []);
|
31992
|
-
(0,
|
32238
|
+
(0, import_react19.useEffect)(() => {
|
31993
32239
|
setLocalValue(value);
|
31994
32240
|
}, [value]);
|
31995
32241
|
const localProps = {
|
@@ -32000,7 +32246,7 @@ var InputOrGroup = (_a) => {
|
|
32000
32246
|
if (!field.render) {
|
32001
32247
|
return null;
|
32002
32248
|
}
|
32003
|
-
return /* @__PURE__ */ (0,
|
32249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: getClassName18(), children: field.render(__spreadValues({
|
32004
32250
|
field,
|
32005
32251
|
name,
|
32006
32252
|
readOnly
|
@@ -32029,16 +32275,16 @@ var InputOrGroup = (_a) => {
|
|
32029
32275
|
const mergedProps = __spreadProps(__spreadValues(__spreadValues({}, props), localProps), { field });
|
32030
32276
|
const children = defaultFields[field.type](mergedProps);
|
32031
32277
|
const Render2 = render[field.type];
|
32032
|
-
return /* @__PURE__ */ (0,
|
32278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
|
32033
32279
|
};
|
32034
32280
|
|
32035
32281
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
|
32036
32282
|
init_react_import();
|
32037
|
-
var styles_module_default14 = { "PuckFields": "
|
32283
|
+
var styles_module_default14 = { "PuckFields": "_PuckFields_17k3p_1", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_17k3p_6" };
|
32038
32284
|
|
32039
32285
|
// components/Puck/components/Fields/index.tsx
|
32040
|
-
var
|
32041
|
-
var
|
32286
|
+
var import_react20 = require("react");
|
32287
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
32042
32288
|
var getClassName19 = get_class_name_factory_default("PuckFields", styles_module_default14);
|
32043
32289
|
var defaultPageFields = {
|
32044
32290
|
title: { type: "text" }
|
@@ -32047,9 +32293,9 @@ var DefaultFields = ({
|
|
32047
32293
|
children,
|
32048
32294
|
isLoading
|
32049
32295
|
}) => {
|
32050
|
-
return /* @__PURE__ */ (0,
|
32296
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getClassName19(), children: [
|
32051
32297
|
children,
|
32052
|
-
isLoading && /* @__PURE__ */ (0,
|
32298
|
+
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" }) })
|
32053
32299
|
] });
|
32054
32300
|
};
|
32055
32301
|
var Fields = () => {
|
@@ -32069,15 +32315,15 @@ var Fields = () => {
|
|
32069
32315
|
const fields = selectedItem ? ((_b = config.components[selectedItem.type]) == null ? void 0 : _b.fields) || {} : rootFields;
|
32070
32316
|
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;
|
32071
32317
|
const rootProps = data.root.props || data.root;
|
32072
|
-
const Wrapper = (0,
|
32073
|
-
return /* @__PURE__ */ (0,
|
32318
|
+
const Wrapper = (0, import_react20.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
32319
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
32074
32320
|
"form",
|
32075
32321
|
{
|
32076
32322
|
className: getClassName19(),
|
32077
32323
|
onSubmit: (e) => {
|
32078
32324
|
e.preventDefault();
|
32079
32325
|
},
|
32080
|
-
children: /* @__PURE__ */ (0,
|
32326
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Wrapper, { isLoading, itemSelector, children: Object.keys(fields).map((fieldName) => {
|
32081
32327
|
const field = fields[fieldName];
|
32082
32328
|
const onChange = (value, updatedUi) => {
|
32083
32329
|
var _a2, _b2;
|
@@ -32143,7 +32389,7 @@ var Fields = () => {
|
|
32143
32389
|
};
|
32144
32390
|
if (selectedItem && itemSelector) {
|
32145
32391
|
const { readOnly = {} } = selectedItem;
|
32146
|
-
return /* @__PURE__ */ (0,
|
32392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
32147
32393
|
InputOrGroup,
|
32148
32394
|
{
|
32149
32395
|
field,
|
@@ -32159,7 +32405,7 @@ var Fields = () => {
|
|
32159
32405
|
);
|
32160
32406
|
} else {
|
32161
32407
|
const { readOnly = {} } = data.root;
|
32162
|
-
return /* @__PURE__ */ (0,
|
32408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
32163
32409
|
InputOrGroup,
|
32164
32410
|
{
|
32165
32411
|
field,
|
@@ -32184,24 +32430,25 @@ init_react_import();
|
|
32184
32430
|
|
32185
32431
|
// lib/use-component-list.tsx
|
32186
32432
|
init_react_import();
|
32187
|
-
var
|
32433
|
+
var import_react21 = require("react");
|
32188
32434
|
|
32189
32435
|
// components/ComponentList/index.tsx
|
32190
32436
|
init_react_import();
|
32191
32437
|
|
32192
32438
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ComponentList/styles.module.css#css-module
|
32193
32439
|
init_react_import();
|
32194
|
-
var styles_module_default15 = { "ComponentList": "
|
32440
|
+
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" };
|
32195
32441
|
|
32196
32442
|
// components/ComponentList/index.tsx
|
32197
|
-
var
|
32443
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
32198
32444
|
var getClassName20 = get_class_name_factory_default("ComponentList", styles_module_default15);
|
32199
32445
|
var ComponentListItem = ({
|
32200
32446
|
name,
|
32447
|
+
label,
|
32201
32448
|
index
|
32202
32449
|
}) => {
|
32203
32450
|
const { overrides } = useAppContext();
|
32204
|
-
return /* @__PURE__ */ (0,
|
32451
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Drawer.Item, { label, name, index, children: overrides.componentItem });
|
32205
32452
|
};
|
32206
32453
|
var ComponentList = ({
|
32207
32454
|
children,
|
@@ -32210,9 +32457,9 @@ var ComponentList = ({
|
|
32210
32457
|
}) => {
|
32211
32458
|
const { config, state, setUi } = useAppContext();
|
32212
32459
|
const { expanded = true } = state.ui.componentList[id] || {};
|
32213
|
-
return /* @__PURE__ */ (0,
|
32214
|
-
title && /* @__PURE__ */ (0,
|
32215
|
-
"
|
32460
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: getClassName20({ isExpanded: expanded }), children: [
|
32461
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
32462
|
+
"button",
|
32216
32463
|
{
|
32217
32464
|
className: getClassName20("title"),
|
32218
32465
|
onClick: () => setUi({
|
@@ -32224,15 +32471,17 @@ var ComponentList = ({
|
|
32224
32471
|
}),
|
32225
32472
|
title: expanded ? `Collapse${title ? ` ${title}` : ""}` : `Expand${title ? ` ${title}` : ""}`,
|
32226
32473
|
children: [
|
32227
|
-
/* @__PURE__ */ (0,
|
32228
|
-
/* @__PURE__ */ (0,
|
32474
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: title }),
|
32475
|
+
/* @__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 }) })
|
32229
32476
|
]
|
32230
32477
|
}
|
32231
32478
|
),
|
32232
|
-
/* @__PURE__ */ (0,
|
32233
|
-
|
32479
|
+
/* @__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) => {
|
32480
|
+
var _a;
|
32481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
32234
32482
|
ComponentListItem,
|
32235
32483
|
{
|
32484
|
+
label: (_a = config.components[componentKey]["label"]) != null ? _a : componentKey,
|
32236
32485
|
name: componentKey,
|
32237
32486
|
index: i
|
32238
32487
|
},
|
@@ -32244,10 +32493,10 @@ var ComponentList = ({
|
|
32244
32493
|
ComponentList.Item = ComponentListItem;
|
32245
32494
|
|
32246
32495
|
// lib/use-component-list.tsx
|
32247
|
-
var
|
32496
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
32248
32497
|
var useComponentList = (config, ui) => {
|
32249
|
-
const [componentList, setComponentList] = (0,
|
32250
|
-
(0,
|
32498
|
+
const [componentList, setComponentList] = (0, import_react21.useState)();
|
32499
|
+
(0, import_react21.useEffect)(() => {
|
32251
32500
|
var _a, _b, _c;
|
32252
32501
|
if (Object.keys(ui.componentList).length > 0) {
|
32253
32502
|
const matchedComponents = [];
|
@@ -32257,16 +32506,18 @@ var useComponentList = (config, ui) => {
|
|
32257
32506
|
if (category.visible === false || !category.components) {
|
32258
32507
|
return null;
|
32259
32508
|
}
|
32260
|
-
return /* @__PURE__ */ (0,
|
32509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
32261
32510
|
ComponentList,
|
32262
32511
|
{
|
32263
32512
|
id: categoryKey,
|
32264
32513
|
title: category.title || categoryKey,
|
32265
32514
|
children: category.components.map((componentName, i) => {
|
32515
|
+
var _a2;
|
32266
32516
|
matchedComponents.push(componentName);
|
32267
|
-
return /* @__PURE__ */ (0,
|
32517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
32268
32518
|
ComponentList.Item,
|
32269
32519
|
{
|
32520
|
+
label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
|
32270
32521
|
name: componentName,
|
32271
32522
|
index: i
|
32272
32523
|
},
|
@@ -32283,16 +32534,18 @@ var useComponentList = (config, ui) => {
|
|
32283
32534
|
);
|
32284
32535
|
if (remainingComponents.length > 0 && !((_a = ui.componentList.other) == null ? void 0 : _a.components) && ((_b = ui.componentList.other) == null ? void 0 : _b.visible) !== false) {
|
32285
32536
|
_componentList.push(
|
32286
|
-
/* @__PURE__ */ (0,
|
32537
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
32287
32538
|
ComponentList,
|
32288
32539
|
{
|
32289
32540
|
id: "other",
|
32290
32541
|
title: ((_c = ui.componentList.other) == null ? void 0 : _c.title) || "Other",
|
32291
32542
|
children: remainingComponents.map((componentName, i) => {
|
32292
|
-
|
32543
|
+
var _a2;
|
32544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
32293
32545
|
ComponentList.Item,
|
32294
32546
|
{
|
32295
32547
|
name: componentName,
|
32548
|
+
label: (_a2 = config.components[componentName]["label"]) != null ? _a2 : componentName,
|
32296
32549
|
index: i
|
32297
32550
|
},
|
32298
32551
|
componentName
|
@@ -32305,27 +32558,35 @@ var useComponentList = (config, ui) => {
|
|
32305
32558
|
}
|
32306
32559
|
setComponentList(_componentList);
|
32307
32560
|
}
|
32308
|
-
}, [config.categories, ui.componentList]);
|
32561
|
+
}, [config.categories, config.components, ui.componentList]);
|
32309
32562
|
return componentList;
|
32310
32563
|
};
|
32311
32564
|
|
32312
32565
|
// components/Puck/components/Components/index.tsx
|
32313
|
-
var
|
32314
|
-
var
|
32566
|
+
var import_react22 = require("react");
|
32567
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
32315
32568
|
var Components = () => {
|
32316
32569
|
const { config, state, overrides } = useAppContext();
|
32317
32570
|
const componentList = useComponentList(config, state.ui);
|
32318
|
-
const Wrapper = (0,
|
32319
|
-
return /* @__PURE__ */ (0,
|
32571
|
+
const Wrapper = (0, import_react22.useMemo)(() => overrides.components || "div", [overrides]);
|
32572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ComponentList, { id: "all" }) });
|
32320
32573
|
};
|
32321
32574
|
|
32322
32575
|
// components/Puck/components/Preview/index.tsx
|
32323
32576
|
init_react_import();
|
32324
|
-
var
|
32325
|
-
var
|
32577
|
+
var import_react23 = require("react");
|
32578
|
+
var import_auto_frame_component = __toESM(require("@measured/auto-frame-component"));
|
32579
|
+
|
32580
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Preview/styles.module.css#css-module
|
32581
|
+
init_react_import();
|
32582
|
+
var styles_module_default16 = { "PuckPreview": "_PuckPreview_1mia0_1", "PuckPreview-frame": "_PuckPreview-frame_1mia0_5" };
|
32583
|
+
|
32584
|
+
// components/Puck/components/Preview/index.tsx
|
32585
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
32586
|
+
var getClassName21 = get_class_name_factory_default("PuckPreview", styles_module_default16);
|
32326
32587
|
var Preview = ({ id = "puck-preview" }) => {
|
32327
|
-
const { config, dispatch, state } = useAppContext();
|
32328
|
-
const Page = (0,
|
32588
|
+
const { config, dispatch, state, setStatus, iframe } = useAppContext();
|
32589
|
+
const Page = (0, import_react23.useCallback)(
|
32329
32590
|
(pageProps) => {
|
32330
32591
|
var _a, _b;
|
32331
32592
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({}, pageProps), { editMode: true })) : pageProps.children;
|
@@ -32333,16 +32594,28 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
32333
32594
|
[config.root]
|
32334
32595
|
);
|
32335
32596
|
const rootProps = state.data.root.props || state.data.root;
|
32336
|
-
const
|
32337
|
-
return /* @__PURE__ */ (0,
|
32597
|
+
const ref = (0, import_react23.useRef)(null);
|
32598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
32338
32599
|
"div",
|
32339
32600
|
{
|
32601
|
+
className: getClassName21(),
|
32340
32602
|
id,
|
32341
32603
|
onClick: () => {
|
32342
32604
|
dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
|
32343
32605
|
},
|
32344
|
-
|
32345
|
-
|
32606
|
+
children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
32607
|
+
import_auto_frame_component.default,
|
32608
|
+
{
|
32609
|
+
id: "preview-frame",
|
32610
|
+
className: getClassName21("frame"),
|
32611
|
+
"data-rfd-iframe": true,
|
32612
|
+
ref,
|
32613
|
+
onStylesLoaded: () => {
|
32614
|
+
setStatus("READY");
|
32615
|
+
},
|
32616
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) }))
|
32617
|
+
}
|
32618
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { id: "preview-frame", className: getClassName21("frame"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DropZone, { zone: rootDroppableId }) })) })
|
32346
32619
|
}
|
32347
32620
|
);
|
32348
32621
|
};
|
@@ -32376,7 +32649,7 @@ init_react_import();
|
|
32376
32649
|
|
32377
32650
|
// css-module:/home/runner/work/puck/puck/packages/core/components/LayerTree/styles.module.css#css-module
|
32378
32651
|
init_react_import();
|
32379
|
-
var
|
32652
|
+
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" };
|
32380
32653
|
|
32381
32654
|
// lib/scroll-into-view.ts
|
32382
32655
|
init_react_import();
|
@@ -32390,7 +32663,7 @@ var scrollIntoView = (el) => {
|
|
32390
32663
|
};
|
32391
32664
|
|
32392
32665
|
// components/LayerTree/index.tsx
|
32393
|
-
var
|
32666
|
+
var import_react24 = require("react");
|
32394
32667
|
|
32395
32668
|
// lib/is-child-of-zone.ts
|
32396
32669
|
init_react_import();
|
@@ -32404,11 +32677,12 @@ var isChildOfZone = (item, maybeChild, ctx) => {
|
|
32404
32677
|
};
|
32405
32678
|
|
32406
32679
|
// components/LayerTree/index.tsx
|
32407
|
-
var
|
32408
|
-
var
|
32409
|
-
var getClassNameLayer = get_class_name_factory_default("Layer",
|
32680
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
32681
|
+
var getClassName22 = get_class_name_factory_default("LayerTree", styles_module_default17);
|
32682
|
+
var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default17);
|
32410
32683
|
var LayerTree = ({
|
32411
32684
|
data,
|
32685
|
+
config,
|
32412
32686
|
zoneContent,
|
32413
32687
|
itemSelector,
|
32414
32688
|
setItemSelector,
|
@@ -32416,16 +32690,18 @@ var LayerTree = ({
|
|
32416
32690
|
label
|
32417
32691
|
}) => {
|
32418
32692
|
const zones = data.zones || {};
|
32419
|
-
const ctx = (0,
|
32420
|
-
|
32421
|
-
|
32422
|
-
|
32693
|
+
const ctx = (0, import_react24.useContext)(dropZoneContext);
|
32694
|
+
const frame = useFrame();
|
32695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
|
32696
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
|
32697
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Layers, { size: "16" }) }),
|
32423
32698
|
" ",
|
32424
32699
|
label
|
32425
32700
|
] }),
|
32426
|
-
/* @__PURE__ */ (0,
|
32427
|
-
zoneContent.length === 0 && /* @__PURE__ */ (0,
|
32701
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("ul", { className: getClassName22(), children: [
|
32702
|
+
zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
|
32428
32703
|
zoneContent.map((item, i) => {
|
32704
|
+
var _a;
|
32429
32705
|
const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
|
32430
32706
|
const zonesForItem = findZonesForArea(data, item.props.id);
|
32431
32707
|
const containsZone = Object.keys(zonesForItem).length > 0;
|
@@ -32439,7 +32715,7 @@ var LayerTree = ({
|
|
32439
32715
|
const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
|
32440
32716
|
const isHovering = hoveringComponent === item.props.id;
|
32441
32717
|
const childIsSelected = isChildOfZone(item, selectedItem, ctx);
|
32442
|
-
return /* @__PURE__ */ (0,
|
32718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
32443
32719
|
"li",
|
32444
32720
|
{
|
32445
32721
|
className: getClassNameLayer({
|
@@ -32449,8 +32725,8 @@ var LayerTree = ({
|
|
32449
32725
|
childIsSelected
|
32450
32726
|
}),
|
32451
32727
|
children: [
|
32452
|
-
/* @__PURE__ */ (0,
|
32453
|
-
"
|
32728
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
32729
|
+
"button",
|
32454
32730
|
{
|
32455
32731
|
className: getClassNameLayer("clickable"),
|
32456
32732
|
onClick: () => {
|
@@ -32464,7 +32740,7 @@ var LayerTree = ({
|
|
32464
32740
|
});
|
32465
32741
|
const id = zoneContent[i].props.id;
|
32466
32742
|
scrollIntoView(
|
32467
|
-
|
32743
|
+
frame == null ? void 0 : frame.querySelector(
|
32468
32744
|
`[data-rfd-drag-handle-draggable-id="draggable-${id}"]`
|
32469
32745
|
)
|
32470
32746
|
);
|
@@ -32480,24 +32756,25 @@ var LayerTree = ({
|
|
32480
32756
|
setHoveringComponent(null);
|
32481
32757
|
},
|
32482
32758
|
children: [
|
32483
|
-
containsZone && /* @__PURE__ */ (0,
|
32759
|
+
containsZone && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
32484
32760
|
"div",
|
32485
32761
|
{
|
32486
32762
|
className: getClassNameLayer("chevron"),
|
32487
32763
|
title: isSelected ? "Collapse" : "Expand",
|
32488
|
-
children: /* @__PURE__ */ (0,
|
32764
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevronDown, { size: "12" })
|
32489
32765
|
}
|
32490
32766
|
),
|
32491
|
-
/* @__PURE__ */ (0,
|
32492
|
-
/* @__PURE__ */ (0,
|
32493
|
-
/* @__PURE__ */ (0,
|
32767
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: getClassNameLayer("title"), children: [
|
32768
|
+
/* @__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" }) }),
|
32769
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
|
32494
32770
|
] })
|
32495
32771
|
]
|
32496
32772
|
}
|
32497
32773
|
) }),
|
32498
|
-
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0,
|
32774
|
+
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
32499
32775
|
LayerTree,
|
32500
32776
|
{
|
32777
|
+
config,
|
32501
32778
|
data,
|
32502
32779
|
zoneContent: zones[zoneKey],
|
32503
32780
|
setItemSelector,
|
@@ -32516,13 +32793,13 @@ var LayerTree = ({
|
|
32516
32793
|
};
|
32517
32794
|
|
32518
32795
|
// components/Puck/components/Outline/index.tsx
|
32519
|
-
var
|
32520
|
-
var
|
32796
|
+
var import_react25 = require("react");
|
32797
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
32521
32798
|
var Outline = () => {
|
32522
|
-
const { dispatch, state, overrides } = useAppContext();
|
32799
|
+
const { dispatch, state, overrides, config } = useAppContext();
|
32523
32800
|
const { data, ui } = state;
|
32524
32801
|
const { itemSelector } = ui;
|
32525
|
-
const setItemSelector = (0,
|
32802
|
+
const setItemSelector = (0, import_react25.useCallback)(
|
32526
32803
|
(newItemSelector) => {
|
32527
32804
|
dispatch({
|
32528
32805
|
type: "setUi",
|
@@ -32531,11 +32808,12 @@ var Outline = () => {
|
|
32531
32808
|
},
|
32532
32809
|
[]
|
32533
32810
|
);
|
32534
|
-
const Wrapper = (0,
|
32535
|
-
return /* @__PURE__ */ (0,
|
32536
|
-
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0,
|
32811
|
+
const Wrapper = (0, import_react25.useMemo)(() => overrides.outline || "div", [overrides]);
|
32812
|
+
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: [
|
32813
|
+
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
32537
32814
|
LayerTree,
|
32538
32815
|
{
|
32816
|
+
config,
|
32539
32817
|
data,
|
32540
32818
|
label: areaContainsZones(data, "root") ? rootDroppableId : "",
|
32541
32819
|
zoneContent: data.content,
|
@@ -32545,9 +32823,10 @@ var Outline = () => {
|
|
32545
32823
|
),
|
32546
32824
|
Object.entries(findZonesForArea(data, "root")).map(
|
32547
32825
|
([zoneKey, zone]) => {
|
32548
|
-
return /* @__PURE__ */ (0,
|
32826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
32549
32827
|
LayerTree,
|
32550
32828
|
{
|
32829
|
+
config,
|
32551
32830
|
data,
|
32552
32831
|
label: zoneKey,
|
32553
32832
|
zone: zoneKey,
|
@@ -32629,12 +32908,12 @@ function usePuckHistory({
|
|
32629
32908
|
|
32630
32909
|
// lib/use-history-store.ts
|
32631
32910
|
init_react_import();
|
32632
|
-
var
|
32911
|
+
var import_react26 = require("react");
|
32633
32912
|
var import_use_debounce3 = require("use-debounce");
|
32634
32913
|
var EMPTY_HISTORY_INDEX = -1;
|
32635
32914
|
function useHistoryStore() {
|
32636
|
-
const [histories, setHistories] = (0,
|
32637
|
-
const [index, setIndex] = (0,
|
32915
|
+
const [histories, setHistories] = (0, import_react26.useState)([]);
|
32916
|
+
const [index, setIndex] = (0, import_react26.useState)(EMPTY_HISTORY_INDEX);
|
32638
32917
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
32639
32918
|
const hasFuture = index < histories.length - 1;
|
32640
32919
|
const currentHistory = histories[index];
|
@@ -32671,14 +32950,431 @@ function useHistoryStore() {
|
|
32671
32950
|
};
|
32672
32951
|
}
|
32673
32952
|
|
32953
|
+
// components/Puck/components/Canvas/index.tsx
|
32954
|
+
init_react_import();
|
32955
|
+
|
32956
|
+
// ../../node_modules/css-box-model/dist/css-box-model.esm.js
|
32957
|
+
init_react_import();
|
32958
|
+
|
32959
|
+
// ../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js
|
32960
|
+
init_react_import();
|
32961
|
+
var isProduction = process.env.NODE_ENV === "production";
|
32962
|
+
var prefix = "Invariant failed";
|
32963
|
+
function invariant(condition, message) {
|
32964
|
+
if (condition) {
|
32965
|
+
return;
|
32966
|
+
}
|
32967
|
+
if (isProduction) {
|
32968
|
+
throw new Error(prefix);
|
32969
|
+
}
|
32970
|
+
var provided = typeof message === "function" ? message() : message;
|
32971
|
+
var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
|
32972
|
+
throw new Error(value);
|
32973
|
+
}
|
32974
|
+
|
32975
|
+
// ../../node_modules/css-box-model/dist/css-box-model.esm.js
|
32976
|
+
var getRect = function getRect2(_ref) {
|
32977
|
+
var top = _ref.top, right = _ref.right, bottom = _ref.bottom, left = _ref.left;
|
32978
|
+
var width = right - left;
|
32979
|
+
var height = bottom - top;
|
32980
|
+
var rect = {
|
32981
|
+
top,
|
32982
|
+
right,
|
32983
|
+
bottom,
|
32984
|
+
left,
|
32985
|
+
width,
|
32986
|
+
height,
|
32987
|
+
x: left,
|
32988
|
+
y: top,
|
32989
|
+
center: {
|
32990
|
+
x: (right + left) / 2,
|
32991
|
+
y: (bottom + top) / 2
|
32992
|
+
}
|
32993
|
+
};
|
32994
|
+
return rect;
|
32995
|
+
};
|
32996
|
+
var expand = function expand2(target, expandBy) {
|
32997
|
+
return {
|
32998
|
+
top: target.top - expandBy.top,
|
32999
|
+
left: target.left - expandBy.left,
|
33000
|
+
bottom: target.bottom + expandBy.bottom,
|
33001
|
+
right: target.right + expandBy.right
|
33002
|
+
};
|
33003
|
+
};
|
33004
|
+
var shrink = function shrink2(target, shrinkBy) {
|
33005
|
+
return {
|
33006
|
+
top: target.top + shrinkBy.top,
|
33007
|
+
left: target.left + shrinkBy.left,
|
33008
|
+
bottom: target.bottom - shrinkBy.bottom,
|
33009
|
+
right: target.right - shrinkBy.right
|
33010
|
+
};
|
33011
|
+
};
|
33012
|
+
var noSpacing = {
|
33013
|
+
top: 0,
|
33014
|
+
right: 0,
|
33015
|
+
bottom: 0,
|
33016
|
+
left: 0
|
33017
|
+
};
|
33018
|
+
var createBox = function createBox2(_ref2) {
|
33019
|
+
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;
|
33020
|
+
var marginBox = getRect(expand(borderBox, margin));
|
33021
|
+
var paddingBox = getRect(shrink(borderBox, border));
|
33022
|
+
var contentBox = getRect(shrink(paddingBox, padding));
|
33023
|
+
return {
|
33024
|
+
marginBox,
|
33025
|
+
borderBox: getRect(borderBox),
|
33026
|
+
paddingBox,
|
33027
|
+
contentBox,
|
33028
|
+
margin,
|
33029
|
+
border,
|
33030
|
+
padding
|
33031
|
+
};
|
33032
|
+
};
|
33033
|
+
var parse = function parse2(raw) {
|
33034
|
+
var value = raw.slice(0, -2);
|
33035
|
+
var suffix = raw.slice(-2);
|
33036
|
+
if (suffix !== "px") {
|
33037
|
+
return 0;
|
33038
|
+
}
|
33039
|
+
var result = Number(value);
|
33040
|
+
!!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0;
|
33041
|
+
return result;
|
33042
|
+
};
|
33043
|
+
var calculateBox = function calculateBox2(borderBox, styles) {
|
33044
|
+
var margin = {
|
33045
|
+
top: parse(styles.marginTop),
|
33046
|
+
right: parse(styles.marginRight),
|
33047
|
+
bottom: parse(styles.marginBottom),
|
33048
|
+
left: parse(styles.marginLeft)
|
33049
|
+
};
|
33050
|
+
var padding = {
|
33051
|
+
top: parse(styles.paddingTop),
|
33052
|
+
right: parse(styles.paddingRight),
|
33053
|
+
bottom: parse(styles.paddingBottom),
|
33054
|
+
left: parse(styles.paddingLeft)
|
33055
|
+
};
|
33056
|
+
var border = {
|
33057
|
+
top: parse(styles.borderTopWidth),
|
33058
|
+
right: parse(styles.borderRightWidth),
|
33059
|
+
bottom: parse(styles.borderBottomWidth),
|
33060
|
+
left: parse(styles.borderLeftWidth)
|
33061
|
+
};
|
33062
|
+
return createBox({
|
33063
|
+
borderBox,
|
33064
|
+
margin,
|
33065
|
+
padding,
|
33066
|
+
border
|
33067
|
+
});
|
33068
|
+
};
|
33069
|
+
var getBox = function getBox2(el) {
|
33070
|
+
var borderBox = el.getBoundingClientRect();
|
33071
|
+
var styles = window.getComputedStyle(el);
|
33072
|
+
return calculateBox(borderBox, styles);
|
33073
|
+
};
|
33074
|
+
|
33075
|
+
// components/Puck/components/Canvas/index.tsx
|
33076
|
+
var import_react28 = require("react");
|
33077
|
+
|
33078
|
+
// components/ViewportControls/index.tsx
|
33079
|
+
init_react_import();
|
33080
|
+
var import_react27 = require("react");
|
33081
|
+
|
33082
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
33083
|
+
init_react_import();
|
33084
|
+
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" };
|
33085
|
+
|
33086
|
+
// components/ViewportControls/index.tsx
|
33087
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
33088
|
+
var icons = {
|
33089
|
+
Smartphone: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Smartphone, { size: 16 }),
|
33090
|
+
Tablet: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tablet, { size: 16 }),
|
33091
|
+
Monitor: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Monitor, { size: 16 })
|
33092
|
+
};
|
33093
|
+
var getClassName23 = get_class_name_factory_default("ViewportControls", styles_module_default18);
|
33094
|
+
var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_module_default18);
|
33095
|
+
var ViewportButton = ({
|
33096
|
+
children,
|
33097
|
+
height = "auto",
|
33098
|
+
title,
|
33099
|
+
width,
|
33100
|
+
onClick
|
33101
|
+
}) => {
|
33102
|
+
const { state } = useAppContext();
|
33103
|
+
const [isActive, setIsActive] = (0, import_react27.useState)(false);
|
33104
|
+
(0, import_react27.useEffect)(() => {
|
33105
|
+
setIsActive(width === state.ui.viewports.current.width);
|
33106
|
+
}, [width, state.ui.viewports.current.width]);
|
33107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
33108
|
+
IconButton,
|
33109
|
+
{
|
33110
|
+
title,
|
33111
|
+
disabled: isActive,
|
33112
|
+
onClick: (e) => {
|
33113
|
+
e.stopPropagation();
|
33114
|
+
onClick({ width, height });
|
33115
|
+
},
|
33116
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: getClassNameButton("inner"), children })
|
33117
|
+
}
|
33118
|
+
) });
|
33119
|
+
};
|
33120
|
+
var defaultZoomOptions = [
|
33121
|
+
{ label: "25%", value: 0.25 },
|
33122
|
+
{ label: "50%", value: 0.5 },
|
33123
|
+
{ label: "75%", value: 0.75 },
|
33124
|
+
{ label: "100%", value: 1 },
|
33125
|
+
{ label: "125%", value: 1.25 },
|
33126
|
+
{ label: "150%", value: 1.5 },
|
33127
|
+
{ label: "200%", value: 2 }
|
33128
|
+
];
|
33129
|
+
var ViewportControls = ({
|
33130
|
+
autoZoom,
|
33131
|
+
zoom,
|
33132
|
+
onViewportChange,
|
33133
|
+
onZoom
|
33134
|
+
}) => {
|
33135
|
+
const { viewports } = useAppContext();
|
33136
|
+
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
33137
|
+
(option) => option.value === autoZoom
|
33138
|
+
);
|
33139
|
+
const zoomOptions = (0, import_react27.useMemo)(
|
33140
|
+
() => [
|
33141
|
+
...defaultZoomOptions,
|
33142
|
+
...defaultsContainAutoZoom ? [] : [
|
33143
|
+
{
|
33144
|
+
value: autoZoom,
|
33145
|
+
label: `${(autoZoom * 100).toFixed(0)}% (Auto)`
|
33146
|
+
}
|
33147
|
+
]
|
33148
|
+
].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
|
33149
|
+
[autoZoom]
|
33150
|
+
);
|
33151
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: getClassName23(), children: [
|
33152
|
+
viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
33153
|
+
ViewportButton,
|
33154
|
+
{
|
33155
|
+
height: viewport.height,
|
33156
|
+
width: viewport.width,
|
33157
|
+
title: viewport.label ? `Switch to ${viewport.label} viewport` : "Switch viewport",
|
33158
|
+
onClick: onViewportChange,
|
33159
|
+
children: typeof viewport.icon === "string" ? icons[viewport.icon] || viewport.icon : viewport.icon || icons.Smartphone
|
33160
|
+
},
|
33161
|
+
i
|
33162
|
+
)),
|
33163
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
|
33164
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
33165
|
+
IconButton,
|
33166
|
+
{
|
33167
|
+
title: "Zoom viewport out",
|
33168
|
+
disabled: zoom <= zoomOptions[0].value,
|
33169
|
+
onClick: (e) => {
|
33170
|
+
e.stopPropagation();
|
33171
|
+
onZoom(
|
33172
|
+
zoomOptions[Math.max(
|
33173
|
+
zoomOptions.findIndex((option) => option.value === zoom) - 1,
|
33174
|
+
0
|
33175
|
+
)].value
|
33176
|
+
);
|
33177
|
+
},
|
33178
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomOut, { size: 16 })
|
33179
|
+
}
|
33180
|
+
),
|
33181
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
33182
|
+
IconButton,
|
33183
|
+
{
|
33184
|
+
title: "Zoom viewport in",
|
33185
|
+
disabled: zoom >= zoomOptions[zoomOptions.length - 1].value,
|
33186
|
+
onClick: (e) => {
|
33187
|
+
e.stopPropagation();
|
33188
|
+
onZoom(
|
33189
|
+
zoomOptions[Math.min(
|
33190
|
+
zoomOptions.findIndex((option) => option.value === zoom) + 1,
|
33191
|
+
zoomOptions.length - 1
|
33192
|
+
)].value
|
33193
|
+
);
|
33194
|
+
},
|
33195
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ZoomIn, { size: 16 })
|
33196
|
+
}
|
33197
|
+
),
|
33198
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: getClassName23("divider") }),
|
33199
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
33200
|
+
"select",
|
33201
|
+
{
|
33202
|
+
className: getClassName23("zoomSelect"),
|
33203
|
+
value: zoom.toString(),
|
33204
|
+
onChange: (e) => {
|
33205
|
+
onZoom(parseFloat(e.currentTarget.value));
|
33206
|
+
},
|
33207
|
+
children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
33208
|
+
"option",
|
33209
|
+
{
|
33210
|
+
value: option.value,
|
33211
|
+
label: option.label
|
33212
|
+
},
|
33213
|
+
option.label
|
33214
|
+
))
|
33215
|
+
}
|
33216
|
+
)
|
33217
|
+
] });
|
33218
|
+
};
|
33219
|
+
|
33220
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Canvas/styles.module.css#css-module
|
33221
|
+
init_react_import();
|
33222
|
+
var styles_module_default19 = { "PuckCanvas": "_PuckCanvas_1i5ph_1", "PuckCanvas-controls": "_PuckCanvas-controls_1i5ph_16", "PuckCanvas-inner": "_PuckCanvas-inner_1i5ph_21", "PuckCanvas-root": "_PuckCanvas-root_1i5ph_32", "PuckCanvas--ready": "_PuckCanvas--ready_1i5ph_56" };
|
33223
|
+
|
33224
|
+
// lib/get-zoom-config.ts
|
33225
|
+
init_react_import();
|
33226
|
+
var RESET_ZOOM_SMALLER_THAN_FRAME = true;
|
33227
|
+
var getZoomConfig = (uiViewport, frame, zoom) => {
|
33228
|
+
const box = getBox(frame);
|
33229
|
+
const { width: frameWidth, height: frameHeight } = box.contentBox;
|
33230
|
+
const viewportHeight = uiViewport.height === "auto" ? frameHeight : uiViewport.height;
|
33231
|
+
let rootHeight = 0;
|
33232
|
+
let autoZoom = 1;
|
33233
|
+
if (uiViewport.width > frameWidth || viewportHeight > frameHeight) {
|
33234
|
+
const widthZoom = Math.min(frameWidth / uiViewport.width, 1);
|
33235
|
+
const heightZoom = Math.min(frameHeight / viewportHeight, 1);
|
33236
|
+
zoom = widthZoom;
|
33237
|
+
if (widthZoom < heightZoom) {
|
33238
|
+
rootHeight = viewportHeight / zoom;
|
33239
|
+
} else {
|
33240
|
+
rootHeight = viewportHeight;
|
33241
|
+
zoom = heightZoom;
|
33242
|
+
}
|
33243
|
+
autoZoom = zoom;
|
33244
|
+
} else {
|
33245
|
+
if (RESET_ZOOM_SMALLER_THAN_FRAME) {
|
33246
|
+
autoZoom = 1;
|
33247
|
+
zoom = 1;
|
33248
|
+
rootHeight = viewportHeight;
|
33249
|
+
}
|
33250
|
+
}
|
33251
|
+
return { autoZoom, rootHeight, zoom };
|
33252
|
+
};
|
33253
|
+
|
33254
|
+
// components/Puck/components/Canvas/index.tsx
|
33255
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
33256
|
+
var getClassName24 = get_class_name_factory_default("PuckCanvas", styles_module_default19);
|
33257
|
+
var ZOOM_ON_CHANGE = true;
|
33258
|
+
var Canvas = () => {
|
33259
|
+
const { status, iframe } = useAppContext();
|
33260
|
+
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
33261
|
+
const { ui } = state;
|
33262
|
+
const frameRef = (0, import_react28.useRef)(null);
|
33263
|
+
const [showTransition, setShowTransition] = (0, import_react28.useState)(false);
|
33264
|
+
const defaultRender = (0, import_react28.useMemo)(() => {
|
33265
|
+
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
|
33266
|
+
return PuckDefault;
|
33267
|
+
}, []);
|
33268
|
+
const CustomPreview = (0, import_react28.useMemo)(
|
33269
|
+
() => overrides.preview || defaultRender,
|
33270
|
+
[overrides]
|
33271
|
+
);
|
33272
|
+
const getFrameDimensions = (0, import_react28.useCallback)(() => {
|
33273
|
+
if (frameRef.current) {
|
33274
|
+
const frame = frameRef.current;
|
33275
|
+
const box = getBox(frame);
|
33276
|
+
return { width: box.contentBox.width, height: box.contentBox.height };
|
33277
|
+
}
|
33278
|
+
return { width: 0, height: 0 };
|
33279
|
+
}, [frameRef]);
|
33280
|
+
const resetAutoZoom = (0, import_react28.useCallback)(
|
33281
|
+
(ui2 = state.ui) => {
|
33282
|
+
if (frameRef.current) {
|
33283
|
+
setZoomConfig(
|
33284
|
+
getZoomConfig(ui2.viewports.current, frameRef.current, zoomConfig.zoom)
|
33285
|
+
);
|
33286
|
+
}
|
33287
|
+
},
|
33288
|
+
[frameRef, zoomConfig, state.ui]
|
33289
|
+
);
|
33290
|
+
(0, import_react28.useEffect)(() => {
|
33291
|
+
setShowTransition(false);
|
33292
|
+
resetAutoZoom();
|
33293
|
+
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
33294
|
+
(0, import_react28.useEffect)(() => {
|
33295
|
+
const { height: frameHeight } = getFrameDimensions();
|
33296
|
+
if (ui.viewports.current.height === "auto") {
|
33297
|
+
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
33298
|
+
rootHeight: frameHeight / zoomConfig.zoom
|
33299
|
+
}));
|
33300
|
+
}
|
33301
|
+
}, [zoomConfig.zoom]);
|
33302
|
+
(0, import_react28.useEffect)(() => {
|
33303
|
+
const observer = new ResizeObserver(() => {
|
33304
|
+
setShowTransition(false);
|
33305
|
+
resetAutoZoom();
|
33306
|
+
});
|
33307
|
+
if (document.body) {
|
33308
|
+
observer.observe(document.body);
|
33309
|
+
}
|
33310
|
+
return () => {
|
33311
|
+
observer.disconnect();
|
33312
|
+
};
|
33313
|
+
}, []);
|
33314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
33315
|
+
"div",
|
33316
|
+
{
|
33317
|
+
className: getClassName24({
|
33318
|
+
ready: status === "READY" || !iframe.enabled
|
33319
|
+
}),
|
33320
|
+
onClick: () => dispatch({
|
33321
|
+
type: "setUi",
|
33322
|
+
ui: { itemSelector: null },
|
33323
|
+
recordHistory: true
|
33324
|
+
}),
|
33325
|
+
children: [
|
33326
|
+
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33327
|
+
ViewportControls,
|
33328
|
+
{
|
33329
|
+
autoZoom: zoomConfig.autoZoom,
|
33330
|
+
zoom: zoomConfig.zoom,
|
33331
|
+
onViewportChange: (viewport) => {
|
33332
|
+
setShowTransition(true);
|
33333
|
+
const uiViewport = __spreadProps(__spreadValues({}, viewport), {
|
33334
|
+
height: viewport.height || "auto",
|
33335
|
+
zoom: zoomConfig.zoom
|
33336
|
+
});
|
33337
|
+
const newUi = __spreadProps(__spreadValues({}, ui), {
|
33338
|
+
viewports: __spreadProps(__spreadValues({}, ui.viewports), { current: uiViewport })
|
33339
|
+
});
|
33340
|
+
setUi(newUi);
|
33341
|
+
if (ZOOM_ON_CHANGE) {
|
33342
|
+
resetAutoZoom(newUi);
|
33343
|
+
}
|
33344
|
+
},
|
33345
|
+
onZoom: (zoom) => {
|
33346
|
+
setShowTransition(true);
|
33347
|
+
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), { zoom }));
|
33348
|
+
}
|
33349
|
+
}
|
33350
|
+
) }),
|
33351
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33352
|
+
"div",
|
33353
|
+
{
|
33354
|
+
className: getClassName24("root"),
|
33355
|
+
style: {
|
33356
|
+
width: iframe.enabled ? ui.viewports.current.width : void 0,
|
33357
|
+
height: zoomConfig.rootHeight,
|
33358
|
+
transform: iframe.enabled ? `scale(${zoomConfig.zoom})` : void 0,
|
33359
|
+
transition: showTransition ? "width 150ms ease-out, height 150ms ease-out, transform 150ms ease-out" : "",
|
33360
|
+
overflow: iframe.enabled ? void 0 : "auto"
|
33361
|
+
},
|
33362
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Preview, {}) })
|
33363
|
+
}
|
33364
|
+
) })
|
33365
|
+
]
|
33366
|
+
}
|
33367
|
+
);
|
33368
|
+
};
|
33369
|
+
|
32674
33370
|
// components/Puck/index.tsx
|
32675
|
-
var
|
32676
|
-
var
|
33371
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
33372
|
+
var getClassName25 = get_class_name_factory_default("Puck", styles_module_default8);
|
32677
33373
|
function Puck({
|
32678
33374
|
children,
|
32679
33375
|
config,
|
32680
33376
|
data: initialData = { content: [], root: { props: { title: "" } } },
|
32681
|
-
ui: initialUi
|
33377
|
+
ui: initialUi,
|
32682
33378
|
onChange,
|
32683
33379
|
onPublish,
|
32684
33380
|
plugins = [],
|
@@ -32686,32 +33382,63 @@ function Puck({
|
|
32686
33382
|
renderHeader,
|
32687
33383
|
renderHeaderActions,
|
32688
33384
|
headerTitle,
|
32689
|
-
headerPath
|
33385
|
+
headerPath,
|
33386
|
+
viewports = defaultViewports,
|
33387
|
+
iframe = {
|
33388
|
+
enabled: true
|
33389
|
+
}
|
32690
33390
|
}) {
|
33391
|
+
var _a;
|
32691
33392
|
const historyStore = useHistoryStore();
|
32692
|
-
const [reducer] = (0,
|
33393
|
+
const [reducer] = (0, import_react29.useState)(
|
32693
33394
|
() => createReducer({ config, record: historyStore.record })
|
32694
33395
|
);
|
32695
|
-
const [initialAppState] = (0,
|
32696
|
-
|
32697
|
-
|
32698
|
-
|
32699
|
-
|
32700
|
-
|
32701
|
-
|
32702
|
-
|
32703
|
-
|
32704
|
-
|
32705
|
-
|
32706
|
-
|
32707
|
-
|
32708
|
-
|
32709
|
-
|
32710
|
-
{
|
32711
|
-
|
32712
|
-
|
32713
|
-
|
32714
|
-
|
33396
|
+
const [initialAppState] = (0, import_react29.useState)(() => {
|
33397
|
+
var _a2, _b, _c, _d;
|
33398
|
+
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
33399
|
+
let clientUiState = {};
|
33400
|
+
if (typeof window !== "undefined") {
|
33401
|
+
const viewportWidth = window.innerWidth;
|
33402
|
+
const viewportDifferences = Object.entries(viewports).map(([key, value]) => ({
|
33403
|
+
key,
|
33404
|
+
diff: Math.abs(viewportWidth - value.width)
|
33405
|
+
})).sort((a, b) => a.diff > b.diff ? 1 : -1);
|
33406
|
+
const closestViewport = viewportDifferences[0].key;
|
33407
|
+
if (iframe.enabled) {
|
33408
|
+
clientUiState = __spreadProps(__spreadValues({}, window.matchMedia("(min-width: 638px)").matches ? {} : {
|
33409
|
+
leftSideBarVisible: false,
|
33410
|
+
rightSideBarVisible: false
|
33411
|
+
}), {
|
33412
|
+
viewports: __spreadProps(__spreadValues({}, initial.viewports), {
|
33413
|
+
current: __spreadProps(__spreadValues({}, initial.viewports.current), {
|
33414
|
+
height: ((_b = (_a2 = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _a2.current) == null ? void 0 : _b.height) || viewports[closestViewport].height || "auto",
|
33415
|
+
width: ((_d = (_c = initialUi == null ? void 0 : initialUi.viewports) == null ? void 0 : _c.current) == null ? void 0 : _d.width) || viewports[closestViewport].width
|
33416
|
+
})
|
33417
|
+
})
|
33418
|
+
});
|
33419
|
+
}
|
33420
|
+
}
|
33421
|
+
return __spreadProps(__spreadValues({}, defaultAppState), {
|
33422
|
+
data: initialData,
|
33423
|
+
ui: __spreadProps(__spreadValues(__spreadValues({}, initial), clientUiState), {
|
33424
|
+
// Store categories under componentList on state to allow render functions and plugins to modify
|
33425
|
+
componentList: config.categories ? Object.entries(config.categories).reduce(
|
33426
|
+
(acc, [categoryName, category]) => {
|
33427
|
+
return __spreadProps(__spreadValues({}, acc), {
|
33428
|
+
[categoryName]: {
|
33429
|
+
title: category.title,
|
33430
|
+
components: category.components,
|
33431
|
+
expanded: category.defaultExpanded,
|
33432
|
+
visible: category.visible
|
33433
|
+
}
|
33434
|
+
});
|
33435
|
+
},
|
33436
|
+
{}
|
33437
|
+
) : {}
|
33438
|
+
})
|
33439
|
+
});
|
33440
|
+
});
|
33441
|
+
const [appState, dispatch] = (0, import_react29.useReducer)(
|
32715
33442
|
reducer,
|
32716
33443
|
flushZones(initialAppState)
|
32717
33444
|
);
|
@@ -32722,9 +33449,9 @@ function Puck({
|
|
32722
33449
|
config,
|
32723
33450
|
dispatch
|
32724
33451
|
);
|
32725
|
-
const [menuOpen, setMenuOpen] = (0,
|
33452
|
+
const [menuOpen, setMenuOpen] = (0, import_react29.useState)(false);
|
32726
33453
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
32727
|
-
const setItemSelector = (0,
|
33454
|
+
const setItemSelector = (0, import_react29.useCallback)(
|
32728
33455
|
(newItemSelector) => {
|
32729
33456
|
if (newItemSelector === itemSelector)
|
32730
33457
|
return;
|
@@ -32737,21 +33464,21 @@ function Puck({
|
|
32737
33464
|
[itemSelector]
|
32738
33465
|
);
|
32739
33466
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
32740
|
-
(0,
|
33467
|
+
(0, import_react29.useEffect)(() => {
|
32741
33468
|
if (onChange)
|
32742
33469
|
onChange(data);
|
32743
33470
|
}, [data]);
|
32744
33471
|
const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
|
32745
|
-
const [draggedItem, setDraggedItem] = (0,
|
33472
|
+
const [draggedItem, setDraggedItem] = (0, import_react29.useState)();
|
32746
33473
|
const rootProps = data.root.props || data.root;
|
32747
|
-
(0,
|
33474
|
+
(0, import_react29.useEffect)(() => {
|
32748
33475
|
if (Object.keys(data.root).length > 0 && !data.root.props) {
|
32749
33476
|
console.error(
|
32750
33477
|
"Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
|
32751
33478
|
);
|
32752
33479
|
}
|
32753
33480
|
}, []);
|
32754
|
-
const toggleSidebars = (0,
|
33481
|
+
const toggleSidebars = (0, import_react29.useCallback)(
|
32755
33482
|
(sidebar) => {
|
32756
33483
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
32757
33484
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -32765,7 +33492,7 @@ function Puck({
|
|
32765
33492
|
},
|
32766
33493
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
32767
33494
|
);
|
32768
|
-
(0,
|
33495
|
+
(0, import_react29.useEffect)(() => {
|
32769
33496
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
32770
33497
|
dispatch({
|
32771
33498
|
type: "setUi",
|
@@ -32788,59 +33515,54 @@ function Puck({
|
|
32788
33515
|
window.removeEventListener("resize", handleResize);
|
32789
33516
|
};
|
32790
33517
|
}, []);
|
32791
|
-
const defaultRender = (0,
|
32792
|
-
const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0,
|
33518
|
+
const defaultRender = (0, import_react29.useMemo)(() => {
|
33519
|
+
const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: children2 });
|
32793
33520
|
return PuckDefault;
|
32794
33521
|
}, []);
|
32795
|
-
const defaultHeaderRender = (0,
|
33522
|
+
const defaultHeaderRender = (0, import_react29.useMemo)(() => {
|
32796
33523
|
if (renderHeader) {
|
32797
33524
|
console.warn(
|
32798
33525
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
32799
33526
|
);
|
32800
|
-
const RenderHeader = (
|
32801
|
-
var _b =
|
33527
|
+
const RenderHeader = (_a2) => {
|
33528
|
+
var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
|
32802
33529
|
const Comp = renderHeader;
|
32803
|
-
return /* @__PURE__ */ (0,
|
33530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
|
32804
33531
|
};
|
32805
33532
|
return RenderHeader;
|
32806
33533
|
}
|
32807
33534
|
return defaultRender;
|
32808
33535
|
}, [renderHeader]);
|
32809
|
-
const defaultHeaderActionsRender = (0,
|
33536
|
+
const defaultHeaderActionsRender = (0, import_react29.useMemo)(() => {
|
32810
33537
|
if (renderHeaderActions) {
|
32811
33538
|
console.warn(
|
32812
33539
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
32813
33540
|
);
|
32814
33541
|
const RenderHeader = (props) => {
|
32815
33542
|
const Comp = renderHeaderActions;
|
32816
|
-
return /* @__PURE__ */ (0,
|
33543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
|
32817
33544
|
};
|
32818
33545
|
return RenderHeader;
|
32819
33546
|
}
|
32820
33547
|
return defaultRender;
|
32821
33548
|
}, [renderHeader]);
|
32822
|
-
const loadedOverrides = (0,
|
33549
|
+
const loadedOverrides = (0, import_react29.useMemo)(() => {
|
32823
33550
|
return loadOverrides({ overrides, plugins });
|
32824
33551
|
}, [plugins]);
|
32825
|
-
const CustomPuck = (0,
|
33552
|
+
const CustomPuck = (0, import_react29.useMemo)(
|
32826
33553
|
() => loadedOverrides.puck || defaultRender,
|
32827
33554
|
[loadedOverrides]
|
32828
33555
|
);
|
32829
|
-
const
|
32830
|
-
() => loadedOverrides.preview || defaultRender,
|
32831
|
-
[loadedOverrides]
|
32832
|
-
);
|
32833
|
-
const CustomHeader = (0, import_react26.useMemo)(
|
33556
|
+
const CustomHeader = (0, import_react29.useMemo)(
|
32834
33557
|
() => loadedOverrides.header || defaultHeaderRender,
|
32835
33558
|
[loadedOverrides]
|
32836
33559
|
);
|
32837
|
-
const CustomHeaderActions = (0,
|
33560
|
+
const CustomHeaderActions = (0, import_react29.useMemo)(
|
32838
33561
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
32839
33562
|
[loadedOverrides]
|
32840
33563
|
);
|
32841
|
-
|
32842
|
-
|
32843
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
33564
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "Puck", children: [
|
33565
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32844
33566
|
AppProvider,
|
32845
33567
|
{
|
32846
33568
|
value: {
|
@@ -32851,10 +33573,12 @@ function Puck({
|
|
32851
33573
|
resolveData,
|
32852
33574
|
plugins,
|
32853
33575
|
overrides: loadedOverrides,
|
32854
|
-
history
|
33576
|
+
history,
|
33577
|
+
viewports,
|
33578
|
+
iframe
|
32855
33579
|
},
|
32856
|
-
children: /* @__PURE__ */ (0,
|
32857
|
-
|
33580
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
33581
|
+
DragDropContext,
|
32858
33582
|
{
|
32859
33583
|
onDragUpdate: (update) => {
|
32860
33584
|
setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
|
@@ -32908,7 +33632,7 @@ function Puck({
|
|
32908
33632
|
});
|
32909
33633
|
}
|
32910
33634
|
},
|
32911
|
-
children: /* @__PURE__ */ (0,
|
33635
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32912
33636
|
DropZoneProvider,
|
32913
33637
|
{
|
32914
33638
|
value: {
|
@@ -32920,77 +33644,75 @@ function Puck({
|
|
32920
33644
|
draggedItem,
|
32921
33645
|
placeholderStyle,
|
32922
33646
|
mode: "edit",
|
32923
|
-
areaId: "root"
|
32924
|
-
disableZoom
|
33647
|
+
areaId: "root"
|
32925
33648
|
},
|
32926
|
-
children: /* @__PURE__ */ (0,
|
33649
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
32927
33650
|
"div",
|
32928
33651
|
{
|
32929
|
-
className:
|
33652
|
+
className: getClassName25({
|
32930
33653
|
leftSideBarVisible,
|
32931
33654
|
menuOpen,
|
32932
|
-
rightSideBarVisible
|
32933
|
-
disableZoom
|
33655
|
+
rightSideBarVisible
|
32934
33656
|
}),
|
32935
33657
|
children: [
|
32936
|
-
/* @__PURE__ */ (0,
|
33658
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32937
33659
|
CustomHeader,
|
32938
33660
|
{
|
32939
|
-
actions: /* @__PURE__ */ (0,
|
32940
|
-
/* @__PURE__ */ (0,
|
32941
|
-
/* @__PURE__ */ (0,
|
33661
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
33662
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
|
33663
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32942
33664
|
Button,
|
32943
33665
|
{
|
32944
33666
|
onClick: () => {
|
32945
33667
|
onPublish && onPublish(data);
|
32946
33668
|
},
|
32947
|
-
icon: /* @__PURE__ */ (0,
|
33669
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Globe, { size: "14px" }),
|
32948
33670
|
children: "Publish"
|
32949
33671
|
}
|
32950
33672
|
)
|
32951
33673
|
] }),
|
32952
|
-
children: /* @__PURE__ */ (0,
|
32953
|
-
/* @__PURE__ */ (0,
|
32954
|
-
/* @__PURE__ */ (0,
|
33674
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerInner"), children: [
|
33675
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerToggle"), children: [
|
33676
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32955
33677
|
IconButton,
|
32956
33678
|
{
|
32957
33679
|
onClick: () => {
|
32958
33680
|
toggleSidebars("left");
|
32959
33681
|
},
|
32960
33682
|
title: "Toggle left sidebar",
|
32961
|
-
children: /* @__PURE__ */ (0,
|
33683
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelLeft, { focusable: "false" })
|
32962
33684
|
}
|
32963
33685
|
) }),
|
32964
|
-
/* @__PURE__ */ (0,
|
33686
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32965
33687
|
IconButton,
|
32966
33688
|
{
|
32967
33689
|
onClick: () => {
|
32968
33690
|
toggleSidebars("right");
|
32969
33691
|
},
|
32970
33692
|
title: "Toggle right sidebar",
|
32971
|
-
children: /* @__PURE__ */ (0,
|
33693
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PanelRight, { focusable: "false" })
|
32972
33694
|
}
|
32973
33695
|
) })
|
32974
33696
|
] }),
|
32975
|
-
/* @__PURE__ */ (0,
|
33697
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Heading, { rank: 2, size: "xs", children: [
|
32976
33698
|
headerTitle || rootProps.title || "Page",
|
32977
|
-
headerPath && /* @__PURE__ */ (0,
|
33699
|
+
headerPath && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
32978
33700
|
" ",
|
32979
|
-
/* @__PURE__ */ (0,
|
33701
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
|
32980
33702
|
] })
|
32981
33703
|
] }) }),
|
32982
|
-
/* @__PURE__ */ (0,
|
32983
|
-
/* @__PURE__ */ (0,
|
33704
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("headerTools"), children: [
|
33705
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32984
33706
|
IconButton,
|
32985
33707
|
{
|
32986
33708
|
onClick: () => {
|
32987
33709
|
return setMenuOpen(!menuOpen);
|
32988
33710
|
},
|
32989
33711
|
title: "Toggle menu bar",
|
32990
|
-
children: menuOpen ? /* @__PURE__ */ (0,
|
33712
|
+
children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, { focusable: "false" })
|
32991
33713
|
}
|
32992
33714
|
) }),
|
32993
|
-
/* @__PURE__ */ (0,
|
33715
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
32994
33716
|
MenuBar,
|
32995
33717
|
{
|
32996
33718
|
appState,
|
@@ -32998,7 +33720,7 @@ function Puck({
|
|
32998
33720
|
dispatch,
|
32999
33721
|
onPublish,
|
33000
33722
|
menuOpen,
|
33001
|
-
renderHeaderActions: () => /* @__PURE__ */ (0,
|
33723
|
+
renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomHeaderActions, {}),
|
33002
33724
|
setMenuOpen
|
33003
33725
|
}
|
33004
33726
|
)
|
@@ -33006,38 +33728,19 @@ function Puck({
|
|
33006
33728
|
] }) })
|
33007
33729
|
}
|
33008
33730
|
),
|
33009
|
-
/* @__PURE__ */ (0,
|
33010
|
-
/* @__PURE__ */ (0,
|
33011
|
-
/* @__PURE__ */ (0,
|
33731
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
|
33732
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Components, {}) }),
|
33733
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Outline, {}) })
|
33012
33734
|
] }),
|
33013
|
-
/* @__PURE__ */ (0,
|
33014
|
-
|
33015
|
-
{
|
33016
|
-
className: getClassName22("frame"),
|
33017
|
-
onClick: () => setItemSelector(null),
|
33018
|
-
children: [
|
33019
|
-
/* @__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, {}) }) }),
|
33020
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
33021
|
-
"div",
|
33022
|
-
{
|
33023
|
-
style: {
|
33024
|
-
background: "var(--puck-color-grey-10)",
|
33025
|
-
height: "100%",
|
33026
|
-
flexGrow: 1
|
33027
|
-
}
|
33028
|
-
}
|
33029
|
-
)
|
33030
|
-
]
|
33031
|
-
}
|
33032
|
-
),
|
33033
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: getClassName22("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
33735
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Canvas, {}),
|
33736
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
33034
33737
|
SidebarSection,
|
33035
33738
|
{
|
33036
33739
|
noPadding: true,
|
33037
33740
|
noBorderTop: true,
|
33038
33741
|
showBreadcrumbs: true,
|
33039
|
-
title: selectedItem ? selectedItem.type : "Page",
|
33040
|
-
children: /* @__PURE__ */ (0,
|
33742
|
+
title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
|
33743
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Fields, {})
|
33041
33744
|
}
|
33042
33745
|
) })
|
33043
33746
|
]
|
@@ -33049,7 +33752,7 @@ function Puck({
|
|
33049
33752
|
)
|
33050
33753
|
}
|
33051
33754
|
),
|
33052
|
-
/* @__PURE__ */ (0,
|
33755
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { id: "puck-portal-root" })
|
33053
33756
|
] });
|
33054
33757
|
}
|
33055
33758
|
Puck.Components = Components;
|
@@ -33059,13 +33762,13 @@ Puck.Preview = Preview;
|
|
33059
33762
|
|
33060
33763
|
// components/Render/index.tsx
|
33061
33764
|
init_react_import();
|
33062
|
-
var
|
33765
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
33063
33766
|
function Render({ config, data }) {
|
33064
33767
|
var _a;
|
33065
33768
|
const rootProps = data.root.props || data.root;
|
33066
33769
|
const title = (rootProps == null ? void 0 : rootProps.title) || "";
|
33067
33770
|
if ((_a = config.root) == null ? void 0 : _a.render) {
|
33068
|
-
return /* @__PURE__ */ (0,
|
33771
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33069
33772
|
config.root.render,
|
33070
33773
|
__spreadProps(__spreadValues({}, rootProps), {
|
33071
33774
|
puck: {
|
@@ -33074,11 +33777,11 @@ function Render({ config, data }) {
|
|
33074
33777
|
title,
|
33075
33778
|
editMode: false,
|
33076
33779
|
id: "puck-root",
|
33077
|
-
children: /* @__PURE__ */ (0,
|
33780
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId })
|
33078
33781
|
})
|
33079
33782
|
) });
|
33080
33783
|
}
|
33081
|
-
return /* @__PURE__ */ (0,
|
33784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropZone, { zone: rootDroppableId }) });
|
33082
33785
|
}
|
33083
33786
|
|
33084
33787
|
// lib/migrate.ts
|
@@ -33168,8 +33871,8 @@ var resolveAllData = (data, config, onResolveStart, onResolveEnd) => __async(voi
|
|
33168
33871
|
// lib/use-puck.ts
|
33169
33872
|
init_react_import();
|
33170
33873
|
var usePuck = () => {
|
33171
|
-
const { state: appState, config, dispatch } = useAppContext();
|
33172
|
-
return { appState, config, dispatch };
|
33874
|
+
const { state: appState, config, history, dispatch } = useAppContext();
|
33875
|
+
return { appState, config, dispatch, history };
|
33173
33876
|
};
|
33174
33877
|
// Annotate the CommonJS export names for ESM import in node:
|
33175
33878
|
0 && (module.exports = {
|
@@ -33373,6 +34076,14 @@ lucide-react/dist/esm/icons/lock.js:
|
|
33373
34076
|
* See the LICENSE file in the root directory of this source tree.
|
33374
34077
|
*)
|
33375
34078
|
|
34079
|
+
lucide-react/dist/esm/icons/monitor.js:
|
34080
|
+
(**
|
34081
|
+
* @license lucide-react v0.298.0 - ISC
|
34082
|
+
*
|
34083
|
+
* This source code is licensed under the ISC license.
|
34084
|
+
* See the LICENSE file in the root directory of this source tree.
|
34085
|
+
*)
|
34086
|
+
|
33376
34087
|
lucide-react/dist/esm/icons/more-vertical.js:
|
33377
34088
|
(**
|
33378
34089
|
* @license lucide-react v0.298.0 - ISC
|
@@ -33413,6 +34124,30 @@ lucide-react/dist/esm/icons/search.js:
|
|
33413
34124
|
* See the LICENSE file in the root directory of this source tree.
|
33414
34125
|
*)
|
33415
34126
|
|
34127
|
+
lucide-react/dist/esm/icons/sliders-horizontal.js:
|
34128
|
+
(**
|
34129
|
+
* @license lucide-react v0.298.0 - ISC
|
34130
|
+
*
|
34131
|
+
* This source code is licensed under the ISC license.
|
34132
|
+
* See the LICENSE file in the root directory of this source tree.
|
34133
|
+
*)
|
34134
|
+
|
34135
|
+
lucide-react/dist/esm/icons/smartphone.js:
|
34136
|
+
(**
|
34137
|
+
* @license lucide-react v0.298.0 - ISC
|
34138
|
+
*
|
34139
|
+
* This source code is licensed under the ISC license.
|
34140
|
+
* See the LICENSE file in the root directory of this source tree.
|
34141
|
+
*)
|
34142
|
+
|
34143
|
+
lucide-react/dist/esm/icons/tablet.js:
|
34144
|
+
(**
|
34145
|
+
* @license lucide-react v0.298.0 - ISC
|
34146
|
+
*
|
34147
|
+
* This source code is licensed under the ISC license.
|
34148
|
+
* See the LICENSE file in the root directory of this source tree.
|
34149
|
+
*)
|
34150
|
+
|
33416
34151
|
lucide-react/dist/esm/icons/trash.js:
|
33417
34152
|
(**
|
33418
34153
|
* @license lucide-react v0.298.0 - ISC
|
@@ -33437,6 +34172,22 @@ lucide-react/dist/esm/icons/unlock.js:
|
|
33437
34172
|
* See the LICENSE file in the root directory of this source tree.
|
33438
34173
|
*)
|
33439
34174
|
|
34175
|
+
lucide-react/dist/esm/icons/zoom-in.js:
|
34176
|
+
(**
|
34177
|
+
* @license lucide-react v0.298.0 - ISC
|
34178
|
+
*
|
34179
|
+
* This source code is licensed under the ISC license.
|
34180
|
+
* See the LICENSE file in the root directory of this source tree.
|
34181
|
+
*)
|
34182
|
+
|
34183
|
+
lucide-react/dist/esm/icons/zoom-out.js:
|
34184
|
+
(**
|
34185
|
+
* @license lucide-react v0.298.0 - ISC
|
34186
|
+
*
|
34187
|
+
* This source code is licensed under the ISC license.
|
34188
|
+
* See the LICENSE file in the root directory of this source tree.
|
34189
|
+
*)
|
34190
|
+
|
33440
34191
|
lucide-react/dist/esm/lucide-react.js:
|
33441
34192
|
(**
|
33442
34193
|
* @license lucide-react v0.298.0 - ISC
|