@measured/puck 0.10.0-canary.3fe6284 → 0.10.0-canary.6a9145c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +224 -171
- package/dist/index.d.ts +12 -3
- package/dist/index.js +903 -493
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -327,7 +327,7 @@ var require_react_is_development = __commonJS({
|
|
327
327
|
var ContextProvider = REACT_PROVIDER_TYPE;
|
328
328
|
var Element = REACT_ELEMENT_TYPE;
|
329
329
|
var ForwardRef = REACT_FORWARD_REF_TYPE;
|
330
|
-
var
|
330
|
+
var Fragment11 = REACT_FRAGMENT_TYPE;
|
331
331
|
var Lazy = REACT_LAZY_TYPE;
|
332
332
|
var Memo = REACT_MEMO_TYPE;
|
333
333
|
var Portal = REACT_PORTAL_TYPE;
|
@@ -386,7 +386,7 @@ var require_react_is_development = __commonJS({
|
|
386
386
|
exports.ContextProvider = ContextProvider;
|
387
387
|
exports.Element = Element;
|
388
388
|
exports.ForwardRef = ForwardRef;
|
389
|
-
exports.Fragment =
|
389
|
+
exports.Fragment = Fragment11;
|
390
390
|
exports.Lazy = Lazy;
|
391
391
|
exports.Memo = Memo;
|
392
392
|
exports.Portal = Portal;
|
@@ -760,7 +760,7 @@ var require_factoryWithTypeCheckers = __commonJS({
|
|
760
760
|
function validate(props, propName, componentName, location, propFullName) {
|
761
761
|
if (!(props[propName] instanceof expectedClass)) {
|
762
762
|
var expectedClassName = expectedClass.name || ANONYMOUS;
|
763
|
-
var actualClassName =
|
763
|
+
var actualClassName = getClassName18(props[propName]);
|
764
764
|
return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + actualClassName + "` supplied to `" + componentName + "`, expected ") + ("instance of `" + expectedClassName + "`."));
|
765
765
|
}
|
766
766
|
return null;
|
@@ -1012,7 +1012,7 @@ var require_factoryWithTypeCheckers = __commonJS({
|
|
1012
1012
|
return type;
|
1013
1013
|
}
|
1014
1014
|
}
|
1015
|
-
function
|
1015
|
+
function getClassName18(propValue) {
|
1016
1016
|
if (!propValue.constructor || !propValue.constructor.name) {
|
1017
1017
|
return ANONYMOUS;
|
1018
1018
|
}
|
@@ -1214,11 +1214,11 @@ var Button = ({
|
|
1214
1214
|
|
1215
1215
|
// components/DropZone/index.tsx
|
1216
1216
|
init_react_import();
|
1217
|
-
var
|
1217
|
+
var import_react22 = require("react");
|
1218
1218
|
|
1219
1219
|
// components/DraggableComponent/index.tsx
|
1220
1220
|
init_react_import();
|
1221
|
-
var
|
1221
|
+
var import_react19 = require("react");
|
1222
1222
|
var import_react_beautiful_dnd = require("react-beautiful-dnd");
|
1223
1223
|
|
1224
1224
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
|
@@ -2130,7 +2130,7 @@ List.propTypes = {
|
|
2130
2130
|
List.displayName = "List";
|
2131
2131
|
var list_default = List;
|
2132
2132
|
|
2133
|
-
// ../../node_modules/react-feather/dist/icons/
|
2133
|
+
// ../../node_modules/react-feather/dist/icons/plus.js
|
2134
2134
|
init_react_import();
|
2135
2135
|
var import_react14 = __toESM(require("react"));
|
2136
2136
|
var import_prop_types12 = __toESM(require_prop_types());
|
@@ -2180,7 +2180,7 @@ function _objectWithoutPropertiesLoose12(source, excluded) {
|
|
2180
2180
|
}
|
2181
2181
|
return target;
|
2182
2182
|
}
|
2183
|
-
var
|
2183
|
+
var Plus = (0, import_react14.forwardRef)(function(_ref, ref) {
|
2184
2184
|
var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties12(_ref, ["color", "size"]);
|
2185
2185
|
return /* @__PURE__ */ import_react14.default.createElement("svg", _extends12({
|
2186
2186
|
ref,
|
@@ -2193,28 +2193,26 @@ var Sidebar = (0, import_react14.forwardRef)(function(_ref, ref) {
|
|
2193
2193
|
strokeWidth: "2",
|
2194
2194
|
strokeLinecap: "round",
|
2195
2195
|
strokeLinejoin: "round"
|
2196
|
-
}, rest), /* @__PURE__ */ import_react14.default.createElement("
|
2197
|
-
|
2198
|
-
|
2199
|
-
|
2200
|
-
|
2201
|
-
rx: "2",
|
2202
|
-
ry: "2"
|
2196
|
+
}, rest), /* @__PURE__ */ import_react14.default.createElement("line", {
|
2197
|
+
x1: "12",
|
2198
|
+
y1: "5",
|
2199
|
+
x2: "12",
|
2200
|
+
y2: "19"
|
2203
2201
|
}), /* @__PURE__ */ import_react14.default.createElement("line", {
|
2204
|
-
x1: "
|
2205
|
-
y1: "
|
2206
|
-
x2: "
|
2207
|
-
y2: "
|
2202
|
+
x1: "5",
|
2203
|
+
y1: "12",
|
2204
|
+
x2: "19",
|
2205
|
+
y2: "12"
|
2208
2206
|
}));
|
2209
2207
|
});
|
2210
|
-
|
2208
|
+
Plus.propTypes = {
|
2211
2209
|
color: import_prop_types12.default.string,
|
2212
2210
|
size: import_prop_types12.default.oneOfType([import_prop_types12.default.string, import_prop_types12.default.number])
|
2213
2211
|
};
|
2214
|
-
|
2215
|
-
var
|
2212
|
+
Plus.displayName = "Plus";
|
2213
|
+
var plus_default = Plus;
|
2216
2214
|
|
2217
|
-
// ../../node_modules/react-feather/dist/icons/
|
2215
|
+
// ../../node_modules/react-feather/dist/icons/sidebar.js
|
2218
2216
|
init_react_import();
|
2219
2217
|
var import_react15 = __toESM(require("react"));
|
2220
2218
|
var import_prop_types13 = __toESM(require_prop_types());
|
@@ -2264,7 +2262,7 @@ function _objectWithoutPropertiesLoose13(source, excluded) {
|
|
2264
2262
|
}
|
2265
2263
|
return target;
|
2266
2264
|
}
|
2267
|
-
var
|
2265
|
+
var Sidebar = (0, import_react15.forwardRef)(function(_ref, ref) {
|
2268
2266
|
var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties13(_ref, ["color", "size"]);
|
2269
2267
|
return /* @__PURE__ */ import_react15.default.createElement("svg", _extends13({
|
2270
2268
|
ref,
|
@@ -2277,20 +2275,28 @@ var Trash = (0, import_react15.forwardRef)(function(_ref, ref) {
|
|
2277
2275
|
strokeWidth: "2",
|
2278
2276
|
strokeLinecap: "round",
|
2279
2277
|
strokeLinejoin: "round"
|
2280
|
-
}, rest), /* @__PURE__ */ import_react15.default.createElement("
|
2281
|
-
|
2282
|
-
|
2283
|
-
|
2278
|
+
}, rest), /* @__PURE__ */ import_react15.default.createElement("rect", {
|
2279
|
+
x: "3",
|
2280
|
+
y: "3",
|
2281
|
+
width: "18",
|
2282
|
+
height: "18",
|
2283
|
+
rx: "2",
|
2284
|
+
ry: "2"
|
2285
|
+
}), /* @__PURE__ */ import_react15.default.createElement("line", {
|
2286
|
+
x1: "9",
|
2287
|
+
y1: "3",
|
2288
|
+
x2: "9",
|
2289
|
+
y2: "21"
|
2284
2290
|
}));
|
2285
2291
|
});
|
2286
|
-
|
2292
|
+
Sidebar.propTypes = {
|
2287
2293
|
color: import_prop_types13.default.string,
|
2288
2294
|
size: import_prop_types13.default.oneOfType([import_prop_types13.default.string, import_prop_types13.default.number])
|
2289
2295
|
};
|
2290
|
-
|
2291
|
-
var
|
2296
|
+
Sidebar.displayName = "Sidebar";
|
2297
|
+
var sidebar_default = Sidebar;
|
2292
2298
|
|
2293
|
-
// ../../node_modules/react-feather/dist/icons/
|
2299
|
+
// ../../node_modules/react-feather/dist/icons/trash.js
|
2294
2300
|
init_react_import();
|
2295
2301
|
var import_react16 = __toESM(require("react"));
|
2296
2302
|
var import_prop_types14 = __toESM(require_prop_types());
|
@@ -2340,7 +2346,7 @@ function _objectWithoutPropertiesLoose14(source, excluded) {
|
|
2340
2346
|
}
|
2341
2347
|
return target;
|
2342
2348
|
}
|
2343
|
-
var
|
2349
|
+
var Trash = (0, import_react16.forwardRef)(function(_ref, ref) {
|
2344
2350
|
var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties14(_ref, ["color", "size"]);
|
2345
2351
|
return /* @__PURE__ */ import_react16.default.createElement("svg", _extends14({
|
2346
2352
|
ref,
|
@@ -2354,13 +2360,89 @@ var Type = (0, import_react16.forwardRef)(function(_ref, ref) {
|
|
2354
2360
|
strokeLinecap: "round",
|
2355
2361
|
strokeLinejoin: "round"
|
2356
2362
|
}, rest), /* @__PURE__ */ import_react16.default.createElement("polyline", {
|
2363
|
+
points: "3 6 5 6 21 6"
|
2364
|
+
}), /* @__PURE__ */ import_react16.default.createElement("path", {
|
2365
|
+
d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"
|
2366
|
+
}));
|
2367
|
+
});
|
2368
|
+
Trash.propTypes = {
|
2369
|
+
color: import_prop_types14.default.string,
|
2370
|
+
size: import_prop_types14.default.oneOfType([import_prop_types14.default.string, import_prop_types14.default.number])
|
2371
|
+
};
|
2372
|
+
Trash.displayName = "Trash";
|
2373
|
+
var trash_default = Trash;
|
2374
|
+
|
2375
|
+
// ../../node_modules/react-feather/dist/icons/type.js
|
2376
|
+
init_react_import();
|
2377
|
+
var import_react17 = __toESM(require("react"));
|
2378
|
+
var import_prop_types15 = __toESM(require_prop_types());
|
2379
|
+
function _extends15() {
|
2380
|
+
_extends15 = Object.assign || function(target) {
|
2381
|
+
for (var i = 1; i < arguments.length; i++) {
|
2382
|
+
var source = arguments[i];
|
2383
|
+
for (var key in source) {
|
2384
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
2385
|
+
target[key] = source[key];
|
2386
|
+
}
|
2387
|
+
}
|
2388
|
+
}
|
2389
|
+
return target;
|
2390
|
+
};
|
2391
|
+
return _extends15.apply(this, arguments);
|
2392
|
+
}
|
2393
|
+
function _objectWithoutProperties15(source, excluded) {
|
2394
|
+
if (source == null)
|
2395
|
+
return {};
|
2396
|
+
var target = _objectWithoutPropertiesLoose15(source, excluded);
|
2397
|
+
var key, i;
|
2398
|
+
if (Object.getOwnPropertySymbols) {
|
2399
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
2400
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
2401
|
+
key = sourceSymbolKeys[i];
|
2402
|
+
if (excluded.indexOf(key) >= 0)
|
2403
|
+
continue;
|
2404
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key))
|
2405
|
+
continue;
|
2406
|
+
target[key] = source[key];
|
2407
|
+
}
|
2408
|
+
}
|
2409
|
+
return target;
|
2410
|
+
}
|
2411
|
+
function _objectWithoutPropertiesLoose15(source, excluded) {
|
2412
|
+
if (source == null)
|
2413
|
+
return {};
|
2414
|
+
var target = {};
|
2415
|
+
var sourceKeys = Object.keys(source);
|
2416
|
+
var key, i;
|
2417
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
2418
|
+
key = sourceKeys[i];
|
2419
|
+
if (excluded.indexOf(key) >= 0)
|
2420
|
+
continue;
|
2421
|
+
target[key] = source[key];
|
2422
|
+
}
|
2423
|
+
return target;
|
2424
|
+
}
|
2425
|
+
var Type = (0, import_react17.forwardRef)(function(_ref, ref) {
|
2426
|
+
var _ref$color = _ref.color, color = _ref$color === void 0 ? "currentColor" : _ref$color, _ref$size = _ref.size, size = _ref$size === void 0 ? 24 : _ref$size, rest = _objectWithoutProperties15(_ref, ["color", "size"]);
|
2427
|
+
return /* @__PURE__ */ import_react17.default.createElement("svg", _extends15({
|
2428
|
+
ref,
|
2429
|
+
xmlns: "http://www.w3.org/2000/svg",
|
2430
|
+
width: size,
|
2431
|
+
height: size,
|
2432
|
+
viewBox: "0 0 24 24",
|
2433
|
+
fill: "none",
|
2434
|
+
stroke: color,
|
2435
|
+
strokeWidth: "2",
|
2436
|
+
strokeLinecap: "round",
|
2437
|
+
strokeLinejoin: "round"
|
2438
|
+
}, rest), /* @__PURE__ */ import_react17.default.createElement("polyline", {
|
2357
2439
|
points: "4 7 4 4 20 4 20 7"
|
2358
|
-
}), /* @__PURE__ */
|
2440
|
+
}), /* @__PURE__ */ import_react17.default.createElement("line", {
|
2359
2441
|
x1: "9",
|
2360
2442
|
y1: "20",
|
2361
2443
|
x2: "15",
|
2362
2444
|
y2: "20"
|
2363
|
-
}), /* @__PURE__ */
|
2445
|
+
}), /* @__PURE__ */ import_react17.default.createElement("line", {
|
2364
2446
|
x1: "12",
|
2365
2447
|
y1: "4",
|
2366
2448
|
x2: "12",
|
@@ -2368,18 +2450,18 @@ var Type = (0, import_react16.forwardRef)(function(_ref, ref) {
|
|
2368
2450
|
}));
|
2369
2451
|
});
|
2370
2452
|
Type.propTypes = {
|
2371
|
-
color:
|
2372
|
-
size:
|
2453
|
+
color: import_prop_types15.default.string,
|
2454
|
+
size: import_prop_types15.default.oneOfType([import_prop_types15.default.string, import_prop_types15.default.number])
|
2373
2455
|
};
|
2374
2456
|
Type.displayName = "Type";
|
2375
2457
|
var type_default = Type;
|
2376
2458
|
|
2377
2459
|
// lib/use-modifier-held.ts
|
2378
2460
|
init_react_import();
|
2379
|
-
var
|
2461
|
+
var import_react18 = require("react");
|
2380
2462
|
var useModifierHeld = (modifier) => {
|
2381
|
-
const [modifierHeld, setModifierHeld] = (0,
|
2382
|
-
(0,
|
2463
|
+
const [modifierHeld, setModifierHeld] = (0, import_react18.useState)(false);
|
2464
|
+
(0, import_react18.useEffect)(() => {
|
2383
2465
|
function downHandler({ key }) {
|
2384
2466
|
if (key === modifier) {
|
2385
2467
|
setModifierHeld(true);
|
@@ -2423,7 +2505,7 @@ var DraggableComponent = ({
|
|
2423
2505
|
style
|
2424
2506
|
}) => {
|
2425
2507
|
const isModifierHeld = useModifierHeld("Alt");
|
2426
|
-
(0,
|
2508
|
+
(0, import_react19.useEffect)(onMount, []);
|
2427
2509
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
2428
2510
|
import_react_beautiful_dnd.Draggable,
|
2429
2511
|
{
|
@@ -2467,13 +2549,13 @@ var DraggableComponent = ({
|
|
2467
2549
|
|
2468
2550
|
// components/DroppableStrictMode/index.tsx
|
2469
2551
|
init_react_import();
|
2470
|
-
var
|
2552
|
+
var import_react20 = require("react");
|
2471
2553
|
var import_react_beautiful_dnd2 = require("react-beautiful-dnd");
|
2472
2554
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
2473
2555
|
var DroppableStrictMode = (_a) => {
|
2474
2556
|
var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
|
2475
|
-
const [enabled, setEnabled] = (0,
|
2476
|
-
(0,
|
2557
|
+
const [enabled, setEnabled] = (0, import_react20.useState)(false);
|
2558
|
+
(0, import_react20.useEffect)(() => {
|
2477
2559
|
const animation = requestAnimationFrame(() => setEnabled(true));
|
2478
2560
|
return () => {
|
2479
2561
|
cancelAnimationFrame(animation);
|
@@ -2552,7 +2634,7 @@ var styles_module_default2 = { "DropZone": "_DropZone_ou0z5_1", "DropZone-conten
|
|
2552
2634
|
|
2553
2635
|
// components/DropZone/context.tsx
|
2554
2636
|
init_react_import();
|
2555
|
-
var
|
2637
|
+
var import_react21 = require("react");
|
2556
2638
|
var import_use_debounce = require("use-debounce");
|
2557
2639
|
|
2558
2640
|
// lib/get-zone-id.ts
|
@@ -2564,34 +2646,34 @@ var getZoneId = (zoneCompound) => {
|
|
2564
2646
|
if (zoneCompound && zoneCompound.indexOf(":") > -1) {
|
2565
2647
|
return zoneCompound.split(":");
|
2566
2648
|
}
|
2567
|
-
return [
|
2649
|
+
return [rootDroppableId, zoneCompound];
|
2568
2650
|
};
|
2569
2651
|
|
2570
2652
|
// components/DropZone/context.tsx
|
2571
2653
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
2572
|
-
var dropZoneContext = (0,
|
2654
|
+
var dropZoneContext = (0, import_react21.createContext)(null);
|
2573
2655
|
var DropZoneProvider = ({
|
2574
2656
|
children,
|
2575
2657
|
value
|
2576
2658
|
}) => {
|
2577
|
-
const [hoveringArea, setHoveringArea] = (0,
|
2578
|
-
const [hoveringZone, setHoveringZone] = (0,
|
2659
|
+
const [hoveringArea, setHoveringArea] = (0, import_react21.useState)(null);
|
2660
|
+
const [hoveringZone, setHoveringZone] = (0, import_react21.useState)(
|
2579
2661
|
rootDroppableId
|
2580
2662
|
);
|
2581
|
-
const [hoveringComponent, setHoveringComponent] = (0,
|
2663
|
+
const [hoveringComponent, setHoveringComponent] = (0, import_react21.useState)();
|
2582
2664
|
const [hoveringAreaDb] = (0, import_use_debounce.useDebounce)(hoveringArea, 75, { leading: false });
|
2583
|
-
const [areasWithZones, setAreasWithZones] = (0,
|
2665
|
+
const [areasWithZones, setAreasWithZones] = (0, import_react21.useState)(
|
2584
2666
|
{}
|
2585
2667
|
);
|
2586
|
-
const [activeZones, setActiveZones] = (0,
|
2668
|
+
const [activeZones, setActiveZones] = (0, import_react21.useState)({});
|
2587
2669
|
const { dispatch = null } = value ? value : {};
|
2588
|
-
const registerZoneArea = (0,
|
2670
|
+
const registerZoneArea = (0, import_react21.useCallback)(
|
2589
2671
|
(area) => {
|
2590
2672
|
setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
|
2591
2673
|
},
|
2592
2674
|
[setAreasWithZones]
|
2593
2675
|
);
|
2594
|
-
const registerZone = (0,
|
2676
|
+
const registerZone = (0, import_react21.useCallback)(
|
2595
2677
|
(zoneCompound) => {
|
2596
2678
|
if (!dispatch) {
|
2597
2679
|
return;
|
@@ -2604,7 +2686,7 @@ var DropZoneProvider = ({
|
|
2604
2686
|
},
|
2605
2687
|
[setActiveZones, dispatch]
|
2606
2688
|
);
|
2607
|
-
const unregisterZone = (0,
|
2689
|
+
const unregisterZone = (0, import_react21.useCallback)(
|
2608
2690
|
(zoneCompound) => {
|
2609
2691
|
if (!dispatch) {
|
2610
2692
|
return;
|
@@ -2619,8 +2701,8 @@ var DropZoneProvider = ({
|
|
2619
2701
|
},
|
2620
2702
|
[setActiveZones, dispatch]
|
2621
2703
|
);
|
2622
|
-
const [pathData, setPathData] = (0,
|
2623
|
-
const registerPath = (0,
|
2704
|
+
const [pathData, setPathData] = (0, import_react21.useState)();
|
2705
|
+
const registerPath = (0, import_react21.useCallback)(
|
2624
2706
|
(selector) => {
|
2625
2707
|
if (!(value == null ? void 0 : value.data)) {
|
2626
2708
|
return;
|
@@ -2631,15 +2713,15 @@ var DropZoneProvider = ({
|
|
2631
2713
|
}
|
2632
2714
|
const [area] = getZoneId(selector.zone);
|
2633
2715
|
setPathData((latestPathData = {}) => {
|
2634
|
-
const
|
2716
|
+
const parentPathData = latestPathData[area] || { path: [] };
|
2635
2717
|
return __spreadProps(__spreadValues({}, latestPathData), {
|
2636
|
-
[item.props.id]:
|
2637
|
-
|
2638
|
-
|
2639
|
-
selector
|
2640
|
-
|
2641
|
-
|
2642
|
-
|
2718
|
+
[item.props.id]: {
|
2719
|
+
path: [
|
2720
|
+
...parentPathData.path,
|
2721
|
+
...selector.zone ? [selector.zone] : []
|
2722
|
+
],
|
2723
|
+
label: item.type
|
2724
|
+
}
|
2643
2725
|
});
|
2644
2726
|
});
|
2645
2727
|
},
|
@@ -2673,7 +2755,7 @@ var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
2673
2755
|
var getClassName3 = get_class_name_factory_default("DropZone", styles_module_default2);
|
2674
2756
|
function DropZoneEdit({ zone, style }) {
|
2675
2757
|
var _a;
|
2676
|
-
const ctx = (0,
|
2758
|
+
const ctx = (0, import_react22.useContext)(dropZoneContext);
|
2677
2759
|
const {
|
2678
2760
|
// These all need setting via context
|
2679
2761
|
data,
|
@@ -2690,12 +2772,12 @@ function DropZoneEdit({ zone, style }) {
|
|
2690
2772
|
} = ctx || {};
|
2691
2773
|
let content = data.content || [];
|
2692
2774
|
let zoneCompound = rootDroppableId;
|
2693
|
-
(0,
|
2775
|
+
(0, import_react22.useEffect)(() => {
|
2694
2776
|
if (areaId && registerZoneArea) {
|
2695
2777
|
registerZoneArea(areaId);
|
2696
2778
|
}
|
2697
2779
|
}, [areaId]);
|
2698
|
-
(0,
|
2780
|
+
(0, import_react22.useEffect)(() => {
|
2699
2781
|
if (ctx == null ? void 0 : ctx.registerZone) {
|
2700
2782
|
ctx == null ? void 0 : ctx.registerZone(zoneCompound);
|
2701
2783
|
}
|
@@ -2907,7 +2989,7 @@ function DropZoneEdit({ zone, style }) {
|
|
2907
2989
|
);
|
2908
2990
|
}
|
2909
2991
|
function DropZoneRender({ zone }) {
|
2910
|
-
const ctx = (0,
|
2992
|
+
const ctx = (0, import_react22.useContext)(dropZoneContext);
|
2911
2993
|
const { data, areaId = "root", config } = ctx || {};
|
2912
2994
|
let zoneCompound = rootDroppableId;
|
2913
2995
|
let content = (data == null ? void 0 : data.content) || [];
|
@@ -2934,7 +3016,7 @@ function DropZoneRender({ zone }) {
|
|
2934
3016
|
}) });
|
2935
3017
|
}
|
2936
3018
|
function DropZone(props) {
|
2937
|
-
const ctx = (0,
|
3019
|
+
const ctx = (0, import_react22.useContext)(dropZoneContext);
|
2938
3020
|
if ((ctx == null ? void 0 : ctx.mode) === "edit") {
|
2939
3021
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DropZoneEdit, __spreadValues({}, props));
|
2940
3022
|
}
|
@@ -2946,7 +3028,7 @@ init_react_import();
|
|
2946
3028
|
|
2947
3029
|
// components/IconButton/IconButton.tsx
|
2948
3030
|
init_react_import();
|
2949
|
-
var
|
3031
|
+
var import_react23 = require("react");
|
2950
3032
|
|
2951
3033
|
// css-module:/home/runner/work/puck/puck/packages/core/components/IconButton/IconButton.module.css#css-module
|
2952
3034
|
init_react_import();
|
@@ -2968,7 +3050,7 @@ var IconButton = ({
|
|
2968
3050
|
fullWidth,
|
2969
3051
|
title
|
2970
3052
|
}) => {
|
2971
|
-
const [loading, setLoading] = (0,
|
3053
|
+
const [loading, setLoading] = (0, import_react23.useState)(false);
|
2972
3054
|
const ElementType = href ? "a" : "button";
|
2973
3055
|
const el = /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
2974
3056
|
ElementType,
|
@@ -3008,38 +3090,377 @@ var IconButton = ({
|
|
3008
3090
|
|
3009
3091
|
// components/Puck/index.tsx
|
3010
3092
|
init_react_import();
|
3011
|
-
var
|
3012
|
-
var
|
3093
|
+
var import_react32 = require("react");
|
3094
|
+
var import_react_beautiful_dnd5 = require("react-beautiful-dnd");
|
3013
3095
|
|
3014
3096
|
// components/InputOrGroup/index.tsx
|
3015
3097
|
init_react_import();
|
3016
3098
|
|
3099
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/styles.module.css#css-module
|
3100
|
+
init_react_import();
|
3101
|
+
var styles_module_default3 = { "Input": "_Input_nkpu6_1", "Input-label": "_Input-label_nkpu6_27", "Input-labelIcon": "_Input-labelIcon_nkpu6_34", "Input-input": "_Input-input_nkpu6_39", "Input--readOnly": "_Input--readOnly_nkpu6_60", "Input-radioGroupItems": "_Input-radioGroupItems_nkpu6_69", "Input-radio": "_Input-radio_nkpu6_69", "Input-radioInner": "_Input-radioInner_nkpu6_86", "Input-radioInput": "_Input-radioInput_nkpu6_98" };
|
3102
|
+
|
3103
|
+
// components/InputOrGroup/fields/index.tsx
|
3104
|
+
init_react_import();
|
3105
|
+
|
3106
|
+
// components/InputOrGroup/fields/ArrayField/index.tsx
|
3107
|
+
init_react_import();
|
3108
|
+
|
3109
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/InputOrGroup/fields/ArrayField/styles.module.css#css-module
|
3110
|
+
init_react_import();
|
3111
|
+
var styles_module_default4 = { "ArrayField": "_ArrayField_zp334_5", "ArrayField--isDraggingFrom": "_ArrayField--isDraggingFrom_zp334_13", "ArrayField-addButton": "_ArrayField-addButton_zp334_17", "ArrayField--hasItems": "_ArrayField--hasItems_zp334_31", "ArrayFieldItem": "_ArrayFieldItem_zp334_45", "ArrayFieldItem--isDragging": "_ArrayFieldItem--isDragging_zp334_53", "ArrayFieldItem--isExpanded": "_ArrayFieldItem--isExpanded_zp334_58", "ArrayFieldItem-summary": "_ArrayFieldItem-summary_zp334_72", "ArrayFieldItem-body": "_ArrayFieldItem-body_zp334_104", "ArrayFieldItem-fieldset": "_ArrayFieldItem-fieldset_zp334_112", "ArrayFieldItem-rhs": "_ArrayFieldItem-rhs_zp334_119", "ArrayFieldItem-actions": "_ArrayFieldItem-actions_zp334_125", "ArrayFieldItem-action": "_ArrayFieldItem-action_zp334_125" };
|
3112
|
+
|
3113
|
+
// components/InputOrGroup/fields/ArrayField/index.tsx
|
3114
|
+
var import_react_beautiful_dnd4 = require("react-beautiful-dnd");
|
3115
|
+
|
3116
|
+
// components/Draggable/index.tsx
|
3117
|
+
init_react_import();
|
3118
|
+
var import_react_beautiful_dnd3 = require("react-beautiful-dnd");
|
3119
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
3120
|
+
var Draggable2 = ({
|
3121
|
+
className,
|
3122
|
+
children,
|
3123
|
+
id,
|
3124
|
+
index,
|
3125
|
+
showShadow,
|
3126
|
+
disableAnimations = false
|
3127
|
+
}) => {
|
3128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_beautiful_dnd3.Draggable, { draggableId: id, index, children: (provided, snapshot) => {
|
3129
|
+
var _a;
|
3130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
3131
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
3132
|
+
"div",
|
3133
|
+
__spreadProps(__spreadValues(__spreadValues({
|
3134
|
+
className: className && className(provided, snapshot),
|
3135
|
+
ref: provided.innerRef
|
3136
|
+
}, provided.draggableProps), provided.dragHandleProps), {
|
3137
|
+
style: __spreadProps(__spreadValues({}, provided.draggableProps.style), {
|
3138
|
+
transform: snapshot.isDragging || !disableAnimations ? (_a = provided.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
|
3139
|
+
}),
|
3140
|
+
children: children(provided, snapshot)
|
3141
|
+
})
|
3142
|
+
),
|
3143
|
+
showShadow && snapshot.isDragging && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
3144
|
+
"div",
|
3145
|
+
{
|
3146
|
+
className: className && className(provided, snapshot),
|
3147
|
+
style: { transform: "none !important" },
|
3148
|
+
children: children(provided, snapshot)
|
3149
|
+
}
|
3150
|
+
)
|
3151
|
+
] });
|
3152
|
+
} });
|
3153
|
+
};
|
3154
|
+
|
3155
|
+
// lib/generate-id.ts
|
3156
|
+
init_react_import();
|
3157
|
+
var import_crypto = require("crypto");
|
3158
|
+
var generateId = (type) => `${type}-${(0, import_crypto.randomBytes)(20).toString("hex")}`;
|
3159
|
+
|
3160
|
+
// components/InputOrGroup/fields/ArrayField/index.tsx
|
3161
|
+
var import_react25 = require("react");
|
3162
|
+
|
3163
|
+
// components/DragIcon/index.tsx
|
3164
|
+
init_react_import();
|
3165
|
+
|
3166
|
+
// css-module:/home/runner/work/puck/puck/packages/core/components/DragIcon/styles.module.css#css-module
|
3167
|
+
init_react_import();
|
3168
|
+
var styles_module_default5 = { "DragIcon": "_DragIcon_o29on_1" };
|
3169
|
+
|
3170
|
+
// components/DragIcon/index.tsx
|
3171
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
3172
|
+
var getClassName5 = get_class_name_factory_default("DragIcon", styles_module_default5);
|
3173
|
+
var DragIcon = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName5(), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("svg", { viewBox: "0 0 20 20", width: "12", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime8.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" }) }) });
|
3174
|
+
|
3175
|
+
// components/Puck/context.tsx
|
3176
|
+
init_react_import();
|
3177
|
+
var import_react24 = require("react");
|
3178
|
+
var defaultAppData = {
|
3179
|
+
data: { content: [], root: { title: "" } },
|
3180
|
+
state: {
|
3181
|
+
leftSideBarVisible: true,
|
3182
|
+
arrayState: {}
|
3183
|
+
}
|
3184
|
+
};
|
3185
|
+
var appContext = (0, import_react24.createContext)({
|
3186
|
+
appData: defaultAppData,
|
3187
|
+
dispatch: () => null
|
3188
|
+
});
|
3189
|
+
var AppProvider = appContext.Provider;
|
3190
|
+
var useAppContext = () => {
|
3191
|
+
const mainContext = (0, import_react24.useContext)(appContext);
|
3192
|
+
const selectedItem = mainContext.appData.state.itemSelector ? getItem(mainContext.appData.state.itemSelector, mainContext.appData.data) : void 0;
|
3193
|
+
return __spreadProps(__spreadValues({}, mainContext), {
|
3194
|
+
// Helpers
|
3195
|
+
selectedItem,
|
3196
|
+
setState: (state, recordHistory) => {
|
3197
|
+
return mainContext.dispatch({
|
3198
|
+
type: "setState",
|
3199
|
+
state,
|
3200
|
+
recordHistory
|
3201
|
+
});
|
3202
|
+
}
|
3203
|
+
});
|
3204
|
+
};
|
3205
|
+
|
3206
|
+
// components/InputOrGroup/fields/ArrayField/index.tsx
|
3207
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
3208
|
+
var getClassNameInput = get_class_name_factory_default("Input", styles_module_default3);
|
3209
|
+
var getClassName6 = get_class_name_factory_default("ArrayField", styles_module_default4);
|
3210
|
+
var getClassNameItem = get_class_name_factory_default("ArrayFieldItem", styles_module_default4);
|
3211
|
+
var ArrayField = ({
|
3212
|
+
field,
|
3213
|
+
onChange,
|
3214
|
+
value,
|
3215
|
+
name,
|
3216
|
+
label
|
3217
|
+
}) => {
|
3218
|
+
const [arrayFieldId] = (0, import_react25.useState)(generateId("ArrayField"));
|
3219
|
+
const { appData, setState } = useAppContext();
|
3220
|
+
const arrayState = appData.state.arrayState[arrayFieldId] || {
|
3221
|
+
items: Array.from(value).map((v) => ({
|
3222
|
+
_arrayId: generateId("ArrayItem"),
|
3223
|
+
data: v
|
3224
|
+
})),
|
3225
|
+
openId: ""
|
3226
|
+
};
|
3227
|
+
const setArrayState = (0, import_react25.useCallback)(
|
3228
|
+
(newArrayState, recordHistory = false) => {
|
3229
|
+
setState(
|
3230
|
+
{
|
3231
|
+
arrayState: __spreadProps(__spreadValues({}, appData.state.arrayState), {
|
3232
|
+
[arrayFieldId]: __spreadValues(__spreadValues({}, arrayState), newArrayState)
|
3233
|
+
})
|
3234
|
+
},
|
3235
|
+
recordHistory
|
3236
|
+
);
|
3237
|
+
},
|
3238
|
+
[arrayState]
|
3239
|
+
);
|
3240
|
+
(0, import_react25.useEffect)(() => {
|
3241
|
+
const newItems = Array.from(value).map((item, idx) => {
|
3242
|
+
var _a;
|
3243
|
+
return {
|
3244
|
+
_arrayId: ((_a = arrayState.items[idx]) == null ? void 0 : _a._arrayId) || generateId("ArrayItem"),
|
3245
|
+
data: item
|
3246
|
+
};
|
3247
|
+
});
|
3248
|
+
setArrayState({ items: newItems });
|
3249
|
+
}, [value]);
|
3250
|
+
if (!field.arrayFields) {
|
3251
|
+
return null;
|
3252
|
+
}
|
3253
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: getClassNameInput(), children: [
|
3254
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("b", { className: getClassNameInput("label"), children: [
|
3255
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameInput("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(list_default, { size: 16 }) }),
|
3256
|
+
label || name
|
3257
|
+
] }),
|
3258
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
3259
|
+
import_react_beautiful_dnd4.DragDropContext,
|
3260
|
+
{
|
3261
|
+
onDragEnd: (event) => {
|
3262
|
+
var _a;
|
3263
|
+
if (event.destination) {
|
3264
|
+
const newValue = reorder(
|
3265
|
+
arrayState.items,
|
3266
|
+
event.source.index,
|
3267
|
+
(_a = event.destination) == null ? void 0 : _a.index
|
3268
|
+
);
|
3269
|
+
setArrayState(__spreadProps(__spreadValues({}, arrayState), { items: newValue }), false);
|
3270
|
+
onChange(newValue.map(({ data }) => data));
|
3271
|
+
}
|
3272
|
+
},
|
3273
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DroppableStrictMode_default, { droppableId: "array", children: (provided, snapshot) => {
|
3274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
3275
|
+
"div",
|
3276
|
+
__spreadProps(__spreadValues({}, provided.droppableProps), {
|
3277
|
+
ref: provided.innerRef,
|
3278
|
+
className: getClassName6({
|
3279
|
+
isDraggingFrom: !!snapshot.draggingFromThisWith,
|
3280
|
+
hasItems: value.length > 0
|
3281
|
+
}),
|
3282
|
+
children: [
|
3283
|
+
Array.isArray(value) && value.length > 0 ? arrayState.items.map(({ _arrayId, data }, i) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
3284
|
+
Draggable2,
|
3285
|
+
{
|
3286
|
+
id: _arrayId,
|
3287
|
+
index: i,
|
3288
|
+
className: (_, snapshot2) => getClassNameItem({
|
3289
|
+
isExpanded: arrayState.openId === _arrayId,
|
3290
|
+
isDragging: snapshot2.isDragging
|
3291
|
+
}),
|
3292
|
+
children: () => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
3293
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
3294
|
+
"div",
|
3295
|
+
{
|
3296
|
+
onClick: () => {
|
3297
|
+
if (arrayState.openId === _arrayId) {
|
3298
|
+
setArrayState({
|
3299
|
+
openId: ""
|
3300
|
+
});
|
3301
|
+
} else {
|
3302
|
+
setArrayState({
|
3303
|
+
openId: _arrayId
|
3304
|
+
});
|
3305
|
+
}
|
3306
|
+
},
|
3307
|
+
className: getClassNameItem("summary"),
|
3308
|
+
children: [
|
3309
|
+
field.getItemSummary ? field.getItemSummary(data, i) : `Item #${i}`,
|
3310
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: getClassNameItem("rhs"), children: [
|
3311
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameItem("actions"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
3312
|
+
IconButton,
|
3313
|
+
{
|
3314
|
+
onClick: () => {
|
3315
|
+
const existingValue = [
|
3316
|
+
...value || []
|
3317
|
+
];
|
3318
|
+
const existingItems = [
|
3319
|
+
...arrayState.items || []
|
3320
|
+
];
|
3321
|
+
existingValue.splice(i, 1);
|
3322
|
+
existingItems.splice(i, 1);
|
3323
|
+
setArrayState(
|
3324
|
+
{ items: existingItems },
|
3325
|
+
true
|
3326
|
+
);
|
3327
|
+
onChange(existingValue);
|
3328
|
+
},
|
3329
|
+
title: "Delete",
|
3330
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(trash_default, { size: 16 })
|
3331
|
+
}
|
3332
|
+
) }) }),
|
3333
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DragIcon, {}) })
|
3334
|
+
] })
|
3335
|
+
]
|
3336
|
+
}
|
3337
|
+
),
|
3338
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameItem("body"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
3339
|
+
"fieldset",
|
3340
|
+
{
|
3341
|
+
className: getClassNameItem("fieldset"),
|
3342
|
+
children: Object.keys(field.arrayFields).map(
|
3343
|
+
(fieldName) => {
|
3344
|
+
const subField = field.arrayFields[fieldName];
|
3345
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
3346
|
+
InputOrGroup,
|
3347
|
+
{
|
3348
|
+
name: `${name}_${i}_${fieldName}`,
|
3349
|
+
label: subField.label || fieldName,
|
3350
|
+
field: subField,
|
3351
|
+
value: data[fieldName],
|
3352
|
+
onChange: (val) => onChange(
|
3353
|
+
replace(value, i, __spreadProps(__spreadValues({}, data), {
|
3354
|
+
[fieldName]: val
|
3355
|
+
}))
|
3356
|
+
)
|
3357
|
+
},
|
3358
|
+
`${name}_${i}_${fieldName}`
|
3359
|
+
);
|
3360
|
+
}
|
3361
|
+
)
|
3362
|
+
}
|
3363
|
+
) })
|
3364
|
+
] })
|
3365
|
+
},
|
3366
|
+
_arrayId
|
3367
|
+
)) : null,
|
3368
|
+
provided.placeholder,
|
3369
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
3370
|
+
"button",
|
3371
|
+
{
|
3372
|
+
className: getClassName6("addButton"),
|
3373
|
+
onClick: () => {
|
3374
|
+
const existingValue = value || [];
|
3375
|
+
onChange([...existingValue, field.defaultItemProps || {}]);
|
3376
|
+
},
|
3377
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(plus_default, { size: "21" })
|
3378
|
+
}
|
3379
|
+
)
|
3380
|
+
]
|
3381
|
+
})
|
3382
|
+
);
|
3383
|
+
} })
|
3384
|
+
}
|
3385
|
+
)
|
3386
|
+
] });
|
3387
|
+
};
|
3388
|
+
|
3389
|
+
// components/InputOrGroup/fields/DefaultField/index.tsx
|
3390
|
+
init_react_import();
|
3391
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
3392
|
+
var getClassName7 = get_class_name_factory_default("Input", styles_module_default3);
|
3393
|
+
var DefaultField = ({
|
3394
|
+
field,
|
3395
|
+
onChange,
|
3396
|
+
readOnly,
|
3397
|
+
value,
|
3398
|
+
name,
|
3399
|
+
label
|
3400
|
+
}) => {
|
3401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("label", { className: getClassName7({ readOnly }), children: [
|
3402
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassName7("label"), children: [
|
3403
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: getClassName7("labelIcon"), children: [
|
3404
|
+
field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(type_default, { size: 16 }),
|
3405
|
+
field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(hash_default, { size: 16 })
|
3406
|
+
] }),
|
3407
|
+
label || name
|
3408
|
+
] }),
|
3409
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
3410
|
+
"input",
|
3411
|
+
{
|
3412
|
+
className: getClassName7("input"),
|
3413
|
+
autoComplete: "off",
|
3414
|
+
type: field.type,
|
3415
|
+
name,
|
3416
|
+
value: typeof value === "undefined" ? "" : value,
|
3417
|
+
onChange: (e) => {
|
3418
|
+
if (field.type === "number") {
|
3419
|
+
onChange(Number(e.currentTarget.value));
|
3420
|
+
} else {
|
3421
|
+
onChange(e.currentTarget.value);
|
3422
|
+
}
|
3423
|
+
},
|
3424
|
+
readOnly
|
3425
|
+
}
|
3426
|
+
)
|
3427
|
+
] });
|
3428
|
+
};
|
3429
|
+
|
3430
|
+
// components/InputOrGroup/fields/ExternalField/index.tsx
|
3431
|
+
init_react_import();
|
3432
|
+
|
3017
3433
|
// components/ExternalInput/index.tsx
|
3018
3434
|
init_react_import();
|
3019
|
-
var
|
3435
|
+
var import_react26 = require("react");
|
3020
3436
|
|
3021
3437
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
|
3022
3438
|
init_react_import();
|
3023
|
-
var
|
3439
|
+
var styles_module_default6 = { "ExternalInput": "_ExternalInput_l4bks_1", "ExternalInput-actions": "_ExternalInput-actions_l4bks_5", "ExternalInput-button": "_ExternalInput-button_l4bks_9", "ExternalInput-detachButton": "_ExternalInput-detachButton_l4bks_28", "ExternalInput--hasData": "_ExternalInput--hasData_l4bks_35", "ExternalInput-modal": "_ExternalInput-modal_l4bks_55", "ExternalInput--modalVisible": "_ExternalInput--modalVisible_l4bks_69", "ExternalInput-modalInner": "_ExternalInput-modalInner_l4bks_73", "ExternalInput-modalHeading": "_ExternalInput-modalHeading_l4bks_84", "ExternalInput-modalTableWrapper": "_ExternalInput-modalTableWrapper_l4bks_89" };
|
3024
3440
|
|
3025
3441
|
// components/ExternalInput/index.tsx
|
3026
|
-
var
|
3027
|
-
var
|
3442
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
3443
|
+
var getClassName8 = get_class_name_factory_default("ExternalInput", styles_module_default6);
|
3028
3444
|
var ExternalInput = ({
|
3029
3445
|
field,
|
3030
3446
|
onChange,
|
3031
3447
|
value = null
|
3032
3448
|
}) => {
|
3033
|
-
const [data, setData] = (0,
|
3034
|
-
const [isOpen, setOpen] = (0,
|
3035
|
-
const [selectedData, setSelectedData] = (0,
|
3036
|
-
const keys = (0,
|
3037
|
-
|
3038
|
-
|
3039
|
-
|
3040
|
-
|
3041
|
-
|
3042
|
-
|
3449
|
+
const [data, setData] = (0, import_react26.useState)([]);
|
3450
|
+
const [isOpen, setOpen] = (0, import_react26.useState)(false);
|
3451
|
+
const [selectedData, setSelectedData] = (0, import_react26.useState)(value);
|
3452
|
+
const keys = (0, import_react26.useMemo)(() => {
|
3453
|
+
const validKeys = /* @__PURE__ */ new Set();
|
3454
|
+
for (const item of data) {
|
3455
|
+
for (const key of Object.keys(item)) {
|
3456
|
+
if (typeof item[key] === "string" || typeof item[key] === "number") {
|
3457
|
+
validKeys.add(key);
|
3458
|
+
}
|
3459
|
+
}
|
3460
|
+
}
|
3461
|
+
return Array.from(validKeys);
|
3462
|
+
}, [data]);
|
3463
|
+
(0, import_react26.useEffect)(() => {
|
3043
3464
|
(() => __async(void 0, null, function* () {
|
3044
3465
|
if (field.adaptor) {
|
3045
3466
|
const listData = yield field.adaptor.fetchList(field.adaptorParams);
|
@@ -3050,35 +3471,35 @@ var ExternalInput = ({
|
|
3050
3471
|
}))();
|
3051
3472
|
}, [field.adaptor, field.adaptorParams]);
|
3052
3473
|
if (!field.adaptor) {
|
3053
|
-
return /* @__PURE__ */ (0,
|
3474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { children: "Incorrectly configured" });
|
3054
3475
|
}
|
3055
|
-
return /* @__PURE__ */ (0,
|
3476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
3056
3477
|
"div",
|
3057
3478
|
{
|
3058
|
-
className:
|
3479
|
+
className: getClassName8({
|
3059
3480
|
hasData: !!selectedData,
|
3060
3481
|
modalVisible: isOpen
|
3061
3482
|
}),
|
3062
3483
|
children: [
|
3063
|
-
/* @__PURE__ */ (0,
|
3064
|
-
/* @__PURE__ */ (0,
|
3484
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: getClassName8("actions"), children: [
|
3485
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
3065
3486
|
"button",
|
3066
3487
|
{
|
3067
3488
|
onClick: () => setOpen(true),
|
3068
|
-
className:
|
3069
|
-
children: selectedData ? field.getItemSummary ? field.getItemSummary(selectedData) : `${field.adaptor.name} item` : /* @__PURE__ */ (0,
|
3070
|
-
/* @__PURE__ */ (0,
|
3071
|
-
/* @__PURE__ */ (0,
|
3489
|
+
className: getClassName8("button"),
|
3490
|
+
children: selectedData ? field.getItemSummary ? field.getItemSummary(selectedData) : `${field.adaptor.name} item` : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
3491
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(link_default, { size: "16" }),
|
3492
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { children: [
|
3072
3493
|
"Select from ",
|
3073
3494
|
field.adaptor.name
|
3074
3495
|
] })
|
3075
3496
|
] })
|
3076
3497
|
}
|
3077
3498
|
),
|
3078
|
-
selectedData && /* @__PURE__ */ (0,
|
3499
|
+
selectedData && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
3079
3500
|
"button",
|
3080
3501
|
{
|
3081
|
-
className:
|
3502
|
+
className: getClassName8("detachButton"),
|
3082
3503
|
onClick: () => {
|
3083
3504
|
setSelectedData(null);
|
3084
3505
|
onChange(null);
|
@@ -3087,17 +3508,17 @@ var ExternalInput = ({
|
|
3087
3508
|
}
|
3088
3509
|
)
|
3089
3510
|
] }),
|
3090
|
-
/* @__PURE__ */ (0,
|
3511
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: getClassName8("modal"), onClick: () => setOpen(false), children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
3091
3512
|
"div",
|
3092
3513
|
{
|
3093
|
-
className:
|
3514
|
+
className: getClassName8("modalInner"),
|
3094
3515
|
onClick: (e) => e.stopPropagation(),
|
3095
3516
|
children: [
|
3096
|
-
/* @__PURE__ */ (0,
|
3097
|
-
data.length ? /* @__PURE__ */ (0,
|
3098
|
-
/* @__PURE__ */ (0,
|
3099
|
-
/* @__PURE__ */ (0,
|
3100
|
-
return /* @__PURE__ */ (0,
|
3517
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h2", { className: getClassName8("modalHeading"), children: "Select content" }),
|
3518
|
+
data.length ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: getClassName8("modalTableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("table", { children: [
|
3519
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("tr", { children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("th", { style: { textAlign: "left" }, children: key }, key)) }) }),
|
3520
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("tbody", { children: data.map((item, i) => {
|
3521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
3101
3522
|
"tr",
|
3102
3523
|
{
|
3103
3524
|
style: { whiteSpace: "nowrap" },
|
@@ -3106,12 +3527,12 @@ var ExternalInput = ({
|
|
3106
3527
|
setOpen(false);
|
3107
3528
|
setSelectedData(item);
|
3108
3529
|
},
|
3109
|
-
children: keys.map((key) => /* @__PURE__ */ (0,
|
3530
|
+
children: keys.map((key) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("td", { children: item[key] }, key))
|
3110
3531
|
},
|
3111
3532
|
i
|
3112
3533
|
);
|
3113
3534
|
}) })
|
3114
|
-
] }) }) : /* @__PURE__ */ (0,
|
3535
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { style: { padding: 24 }, children: "No content" })
|
3115
3536
|
]
|
3116
3537
|
}
|
3117
3538
|
) })
|
@@ -3120,204 +3541,189 @@ var ExternalInput = ({
|
|
3120
3541
|
);
|
3121
3542
|
};
|
3122
3543
|
|
3123
|
-
//
|
3544
|
+
// components/InputOrGroup/fields/ExternalField/index.tsx
|
3545
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
3546
|
+
var getClassName9 = get_class_name_factory_default("Input", styles_module_default3);
|
3547
|
+
var ExternalField = ({
|
3548
|
+
field,
|
3549
|
+
onChange,
|
3550
|
+
readOnly,
|
3551
|
+
value,
|
3552
|
+
name,
|
3553
|
+
label
|
3554
|
+
}) => {
|
3555
|
+
if (!field.adaptor) {
|
3556
|
+
return null;
|
3557
|
+
}
|
3558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName9(""), children: [
|
3559
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: getClassName9("label"), children: name === "_data" ? "External content" : label || name }),
|
3560
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ExternalInput, { field, onChange, value })
|
3561
|
+
] });
|
3562
|
+
};
|
3563
|
+
|
3564
|
+
// components/InputOrGroup/fields/RadioField/index.tsx
|
3124
3565
|
init_react_import();
|
3125
|
-
var
|
3566
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
3567
|
+
var getClassName10 = get_class_name_factory_default("Input", styles_module_default3);
|
3568
|
+
var RadioField = ({
|
3569
|
+
field,
|
3570
|
+
onChange,
|
3571
|
+
readOnly,
|
3572
|
+
value,
|
3573
|
+
name
|
3574
|
+
}) => {
|
3575
|
+
if (!field.options) {
|
3576
|
+
return null;
|
3577
|
+
}
|
3578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassName10(), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName10("radioGroup"), children: [
|
3579
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: getClassName10("label"), children: [
|
3580
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassName10("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(check_circle_default, { size: 16 }) }),
|
3581
|
+
field.label || name
|
3582
|
+
] }),
|
3583
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassName10("radioGroupItems"), children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
3584
|
+
"label",
|
3585
|
+
{
|
3586
|
+
className: getClassName10("radio"),
|
3587
|
+
children: [
|
3588
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
3589
|
+
"input",
|
3590
|
+
{
|
3591
|
+
type: "radio",
|
3592
|
+
className: getClassName10("radioInput"),
|
3593
|
+
value: option.value,
|
3594
|
+
name,
|
3595
|
+
onChange: (e) => {
|
3596
|
+
if (e.currentTarget.value === "true" || e.currentTarget.value === "false") {
|
3597
|
+
onChange(JSON.parse(e.currentTarget.value));
|
3598
|
+
return;
|
3599
|
+
}
|
3600
|
+
onChange(e.currentTarget.value);
|
3601
|
+
},
|
3602
|
+
readOnly,
|
3603
|
+
defaultChecked: value === option.value
|
3604
|
+
}
|
3605
|
+
),
|
3606
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: getClassName10("radioInner"), children: option.label || option.value })
|
3607
|
+
]
|
3608
|
+
},
|
3609
|
+
option.label + option.value
|
3610
|
+
)) })
|
3611
|
+
] }) });
|
3612
|
+
};
|
3613
|
+
|
3614
|
+
// components/InputOrGroup/fields/SelectField/index.tsx
|
3615
|
+
init_react_import();
|
3616
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
3617
|
+
var getClassName11 = get_class_name_factory_default("Input", styles_module_default3);
|
3618
|
+
var SelectField = ({
|
3619
|
+
field,
|
3620
|
+
onChange,
|
3621
|
+
label,
|
3622
|
+
value,
|
3623
|
+
name
|
3624
|
+
}) => {
|
3625
|
+
if (!field.options) {
|
3626
|
+
return null;
|
3627
|
+
}
|
3628
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("label", { className: getClassName11(), children: [
|
3629
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: getClassName11("label"), children: [
|
3630
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName11("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(chevron_down_default, { size: 16 }) }),
|
3631
|
+
label || name
|
3632
|
+
] }),
|
3633
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
3634
|
+
"select",
|
3635
|
+
{
|
3636
|
+
className: getClassName11("input"),
|
3637
|
+
onChange: (e) => {
|
3638
|
+
if (e.currentTarget.value === "true" || e.currentTarget.value === "false") {
|
3639
|
+
onChange(Boolean(e.currentTarget.value));
|
3640
|
+
return;
|
3641
|
+
}
|
3642
|
+
onChange(e.currentTarget.value);
|
3643
|
+
},
|
3644
|
+
value,
|
3645
|
+
children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
3646
|
+
"option",
|
3647
|
+
{
|
3648
|
+
label: option.label,
|
3649
|
+
value: option.value
|
3650
|
+
},
|
3651
|
+
option.label + option.value
|
3652
|
+
))
|
3653
|
+
}
|
3654
|
+
)
|
3655
|
+
] });
|
3656
|
+
};
|
3657
|
+
|
3658
|
+
// components/InputOrGroup/fields/TextareaField/index.tsx
|
3659
|
+
init_react_import();
|
3660
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
3661
|
+
var getClassName12 = get_class_name_factory_default("Input", styles_module_default3);
|
3662
|
+
var TextareaField = ({
|
3663
|
+
onChange,
|
3664
|
+
readOnly,
|
3665
|
+
value,
|
3666
|
+
name,
|
3667
|
+
label
|
3668
|
+
}) => {
|
3669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: getClassName12({ readOnly }), children: [
|
3670
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: getClassName12("label"), children: [
|
3671
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: getClassName12("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(type_default, { size: 16 }) }),
|
3672
|
+
label || name
|
3673
|
+
] }),
|
3674
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
3675
|
+
"textarea",
|
3676
|
+
{
|
3677
|
+
className: getClassName12("input"),
|
3678
|
+
autoComplete: "off",
|
3679
|
+
name,
|
3680
|
+
value: typeof value === "undefined" ? "" : value,
|
3681
|
+
onChange: (e) => onChange(e.currentTarget.value),
|
3682
|
+
readOnly,
|
3683
|
+
rows: 5
|
3684
|
+
}
|
3685
|
+
)
|
3686
|
+
] });
|
3687
|
+
};
|
3126
3688
|
|
3127
3689
|
// components/InputOrGroup/index.tsx
|
3128
|
-
var
|
3129
|
-
var
|
3690
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
3691
|
+
var getClassName13 = get_class_name_factory_default("Input", styles_module_default3);
|
3130
3692
|
var FieldLabel = ({
|
3131
3693
|
children,
|
3132
3694
|
icon,
|
3133
3695
|
label
|
3134
3696
|
}) => {
|
3135
|
-
return /* @__PURE__ */ (0,
|
3136
|
-
/* @__PURE__ */ (0,
|
3137
|
-
icon ? /* @__PURE__ */ (0,
|
3697
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("label", { children: [
|
3698
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: getClassName13("label"), children: [
|
3699
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: getClassName13("labelIcon"), children: icon }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, {}),
|
3138
3700
|
label
|
3139
3701
|
] }),
|
3140
3702
|
children
|
3141
3703
|
] });
|
3142
3704
|
};
|
3143
|
-
var InputOrGroup = ({
|
3144
|
-
name,
|
3145
|
-
field,
|
3146
|
-
value,
|
3147
|
-
label,
|
3148
|
-
onChange,
|
3149
|
-
readOnly
|
3150
|
-
}) => {
|
3705
|
+
var InputOrGroup = (props) => {
|
3706
|
+
const { name, field, value, onChange, readOnly } = props;
|
3151
3707
|
if (field.type === "array") {
|
3152
|
-
|
3153
|
-
return null;
|
3154
|
-
}
|
3155
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6(), children: [
|
3156
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("b", { className: getClassName6("label"), children: [
|
3157
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(list_default, { size: 16 }) }),
|
3158
|
-
label || name
|
3159
|
-
] }),
|
3160
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("array"), children: [
|
3161
|
-
Array.isArray(value) ? value.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
3162
|
-
"details",
|
3163
|
-
{
|
3164
|
-
className: getClassName6("arrayItem"),
|
3165
|
-
children: [
|
3166
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("summary", { children: [
|
3167
|
-
field.getItemSummary ? field.getItemSummary(item, i) : `Item #${i}`,
|
3168
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("arrayItemAction"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3169
|
-
IconButton,
|
3170
|
-
{
|
3171
|
-
onClick: () => {
|
3172
|
-
const existingValue = value || [];
|
3173
|
-
existingValue.splice(i, 1);
|
3174
|
-
onChange(existingValue);
|
3175
|
-
},
|
3176
|
-
title: "Delete",
|
3177
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(trash_default, { size: 21 })
|
3178
|
-
}
|
3179
|
-
) })
|
3180
|
-
] }),
|
3181
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("fieldset", { className: getClassName6("fieldset"), children: Object.keys(field.arrayFields).map((fieldName) => {
|
3182
|
-
const subField = field.arrayFields[fieldName];
|
3183
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3184
|
-
InputOrGroup,
|
3185
|
-
{
|
3186
|
-
name: `${name}_${i}_${fieldName}`,
|
3187
|
-
label: subField.label || fieldName,
|
3188
|
-
field: subField,
|
3189
|
-
value: item[fieldName],
|
3190
|
-
onChange: (val) => onChange(
|
3191
|
-
replace(value, i, __spreadProps(__spreadValues({}, item), { [fieldName]: val }))
|
3192
|
-
)
|
3193
|
-
},
|
3194
|
-
`${name}_${i}_${fieldName}`
|
3195
|
-
);
|
3196
|
-
}) })
|
3197
|
-
]
|
3198
|
-
},
|
3199
|
-
`${name}_${i}`
|
3200
|
-
)) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", {}),
|
3201
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3202
|
-
"button",
|
3203
|
-
{
|
3204
|
-
className: getClassName6("addButton"),
|
3205
|
-
onClick: () => {
|
3206
|
-
const existingValue = value || [];
|
3207
|
-
onChange([...existingValue, field.defaultItemProps || {}]);
|
3208
|
-
},
|
3209
|
-
children: "+ Add item"
|
3210
|
-
}
|
3211
|
-
)
|
3212
|
-
] })
|
3213
|
-
] });
|
3708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ArrayField, __spreadValues({}, props));
|
3214
3709
|
}
|
3215
3710
|
if (field.type === "external") {
|
3216
|
-
|
3217
|
-
return null;
|
3218
|
-
}
|
3219
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6(""), children: [
|
3220
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("label"), children: name === "_data" ? "External content" : label || name }),
|
3221
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ExternalInput, { field, onChange, value })
|
3222
|
-
] });
|
3711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ExternalField, __spreadValues({}, props));
|
3223
3712
|
}
|
3224
3713
|
if (field.type === "select") {
|
3225
|
-
|
3226
|
-
return null;
|
3227
|
-
}
|
3228
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { className: getClassName6(), children: [
|
3229
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("label"), children: [
|
3230
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(chevron_down_default, { size: 16 }) }),
|
3231
|
-
label || name
|
3232
|
-
] }),
|
3233
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3234
|
-
"select",
|
3235
|
-
{
|
3236
|
-
className: getClassName6("input"),
|
3237
|
-
onChange: (e) => {
|
3238
|
-
if (e.currentTarget.value === "true" || e.currentTarget.value === "false") {
|
3239
|
-
onChange(Boolean(e.currentTarget.value));
|
3240
|
-
return;
|
3241
|
-
}
|
3242
|
-
onChange(e.currentTarget.value);
|
3243
|
-
},
|
3244
|
-
value,
|
3245
|
-
children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3246
|
-
"option",
|
3247
|
-
{
|
3248
|
-
label: option.label,
|
3249
|
-
value: option.value
|
3250
|
-
},
|
3251
|
-
option.label + option.value
|
3252
|
-
))
|
3253
|
-
}
|
3254
|
-
)
|
3255
|
-
] });
|
3714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(SelectField, __spreadValues({}, props));
|
3256
3715
|
}
|
3257
3716
|
if (field.type === "textarea") {
|
3258
|
-
return /* @__PURE__ */ (0,
|
3259
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("label"), children: [
|
3260
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(type_default, { size: 16 }) }),
|
3261
|
-
label || name
|
3262
|
-
] }),
|
3263
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3264
|
-
"textarea",
|
3265
|
-
{
|
3266
|
-
className: getClassName6("input"),
|
3267
|
-
autoComplete: "off",
|
3268
|
-
name,
|
3269
|
-
value: typeof value === "undefined" ? "" : value,
|
3270
|
-
onChange: (e) => onChange(e.currentTarget.value),
|
3271
|
-
readOnly,
|
3272
|
-
rows: 5
|
3273
|
-
}
|
3274
|
-
)
|
3275
|
-
] });
|
3717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TextareaField, __spreadValues({}, props));
|
3276
3718
|
}
|
3277
3719
|
if (field.type === "radio") {
|
3278
|
-
|
3279
|
-
return null;
|
3280
|
-
}
|
3281
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6(), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("radioGroup"), children: [
|
3282
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("label"), children: [
|
3283
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("labelIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(check_circle_default, { size: 16 }) }),
|
3284
|
-
field.label || name
|
3285
|
-
] }),
|
3286
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("radioGroupItems"), children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
3287
|
-
"label",
|
3288
|
-
{
|
3289
|
-
className: getClassName6("radio"),
|
3290
|
-
children: [
|
3291
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3292
|
-
"input",
|
3293
|
-
{
|
3294
|
-
type: "radio",
|
3295
|
-
className: getClassName6("radioInput"),
|
3296
|
-
value: option.value,
|
3297
|
-
name,
|
3298
|
-
onChange: (e) => {
|
3299
|
-
if (e.currentTarget.value === "true" || e.currentTarget.value === "false") {
|
3300
|
-
onChange(JSON.parse(e.currentTarget.value));
|
3301
|
-
return;
|
3302
|
-
}
|
3303
|
-
onChange(e.currentTarget.value);
|
3304
|
-
},
|
3305
|
-
readOnly,
|
3306
|
-
defaultChecked: value === option.value
|
3307
|
-
}
|
3308
|
-
),
|
3309
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: getClassName6("radioInner"), children: option.label || option.value })
|
3310
|
-
]
|
3311
|
-
},
|
3312
|
-
option.label + option.value
|
3313
|
-
)) })
|
3314
|
-
] }) });
|
3720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(RadioField, __spreadValues({}, props));
|
3315
3721
|
}
|
3316
3722
|
if (field.type === "custom") {
|
3317
3723
|
if (!field.render) {
|
3318
3724
|
return null;
|
3319
3725
|
}
|
3320
|
-
return /* @__PURE__ */ (0,
|
3726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: getClassName13(), children: field.render({
|
3321
3727
|
field,
|
3322
3728
|
name,
|
3323
3729
|
value,
|
@@ -3325,96 +3731,46 @@ var InputOrGroup = ({
|
|
3325
3731
|
readOnly
|
3326
3732
|
}) });
|
3327
3733
|
}
|
3328
|
-
return /* @__PURE__ */ (0,
|
3329
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("label"), children: [
|
3330
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: getClassName6("labelIcon"), children: [
|
3331
|
-
field.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(type_default, { size: 16 }),
|
3332
|
-
field.type === "number" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(hash_default, { size: 16 })
|
3333
|
-
] }),
|
3334
|
-
label || name
|
3335
|
-
] }),
|
3336
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
3337
|
-
"input",
|
3338
|
-
{
|
3339
|
-
className: getClassName6("input"),
|
3340
|
-
autoComplete: "off",
|
3341
|
-
type: field.type,
|
3342
|
-
name,
|
3343
|
-
value: typeof value === "undefined" ? "" : value,
|
3344
|
-
onChange: (e) => {
|
3345
|
-
if (field.type === "number") {
|
3346
|
-
onChange(Number(e.currentTarget.value));
|
3347
|
-
} else {
|
3348
|
-
onChange(e.currentTarget.value);
|
3349
|
-
}
|
3350
|
-
},
|
3351
|
-
readOnly
|
3352
|
-
}
|
3353
|
-
)
|
3354
|
-
] });
|
3734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DefaultField, __spreadValues({}, props));
|
3355
3735
|
};
|
3356
3736
|
|
3357
3737
|
// components/ComponentList/index.tsx
|
3358
3738
|
init_react_import();
|
3359
|
-
var import_react_beautiful_dnd3 = require("react-beautiful-dnd");
|
3360
3739
|
|
3361
3740
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ComponentList/styles.module.css#css-module
|
3362
3741
|
init_react_import();
|
3363
|
-
var
|
3742
|
+
var styles_module_default7 = { "ComponentList": "_ComponentList_bvy0z_1", "ComponentList-item": "_ComponentList-item_bvy0z_6", "ComponentList-itemIcon": "_ComponentList-itemIcon_bvy0z_24", "ComponentList--isDraggingFrom": "_ComponentList--isDraggingFrom_bvy0z_28" };
|
3364
3743
|
|
3365
3744
|
// components/ComponentList/index.tsx
|
3366
|
-
var
|
3367
|
-
var
|
3745
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
3746
|
+
var getClassName14 = get_class_name_factory_default("ComponentList", styles_module_default7);
|
3368
3747
|
var ComponentList = ({ config }) => {
|
3369
|
-
return /* @__PURE__ */ (0,
|
3748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DroppableStrictMode_default, { droppableId: "component-list", isDropDisabled: true, children: (provided, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
3370
3749
|
"div",
|
3371
3750
|
__spreadProps(__spreadValues({}, provided.droppableProps), {
|
3372
3751
|
ref: provided.innerRef,
|
3373
|
-
className:
|
3752
|
+
className: getClassName14({
|
3753
|
+
isDraggingFrom: !!snapshot.draggingFromThisWith
|
3754
|
+
}),
|
3374
3755
|
children: [
|
3375
3756
|
Object.keys(config.components).map((componentKey, i) => {
|
3376
|
-
|
3377
|
-
|
3378
|
-
import_react_beautiful_dnd3.Draggable,
|
3757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
3758
|
+
Draggable2,
|
3379
3759
|
{
|
3380
|
-
|
3760
|
+
id: componentKey,
|
3381
3761
|
index: i,
|
3382
|
-
|
3383
|
-
|
3384
|
-
|
3385
|
-
|
3386
|
-
|
3387
|
-
|
3388
|
-
|
3389
|
-
}, provided2.draggableProps), provided2.dragHandleProps), {
|
3390
|
-
className: getClassName7("item"),
|
3391
|
-
style: __spreadProps(__spreadValues({}, provided2.draggableProps.style), {
|
3392
|
-
transform: snapshot2.isDragging ? (_a = provided2.draggableProps.style) == null ? void 0 : _a.transform : "translate(0px, 0px)"
|
3393
|
-
}),
|
3394
|
-
children: [
|
3395
|
-
componentKey,
|
3396
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName7("itemIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(grid_default, { size: 18 }) })
|
3397
|
-
]
|
3398
|
-
})
|
3399
|
-
),
|
3400
|
-
snapshot2.isDragging && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
3401
|
-
"div",
|
3402
|
-
{
|
3403
|
-
className: getClassName7("itemShadow"),
|
3404
|
-
style: { transform: "none !important" },
|
3405
|
-
children: [
|
3406
|
-
componentKey,
|
3407
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassName7("itemIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(grid_default, { size: 18 }) })
|
3408
|
-
]
|
3409
|
-
}
|
3410
|
-
)
|
3411
|
-
] });
|
3412
|
-
}
|
3762
|
+
showShadow: true,
|
3763
|
+
disableAnimations: true,
|
3764
|
+
className: () => getClassName14("item"),
|
3765
|
+
children: () => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
|
3766
|
+
componentKey,
|
3767
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: getClassName14("itemIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DragIcon, {}) })
|
3768
|
+
] })
|
3413
3769
|
},
|
3414
3770
|
componentKey
|
3415
3771
|
);
|
3416
3772
|
}),
|
3417
|
-
/* @__PURE__ */ (0,
|
3773
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { display: "none" }, children: provided.placeholder })
|
3418
3774
|
]
|
3419
3775
|
})
|
3420
3776
|
) });
|
@@ -3422,10 +3778,10 @@ var ComponentList = ({ config }) => {
|
|
3422
3778
|
|
3423
3779
|
// lib/use-placeholder-style.ts
|
3424
3780
|
init_react_import();
|
3425
|
-
var
|
3781
|
+
var import_react27 = require("react");
|
3426
3782
|
var usePlaceholderStyle = () => {
|
3427
3783
|
const queryAttr = "data-rbd-drag-handle-draggable-id";
|
3428
|
-
const [placeholderStyle, setPlaceholderStyle] = (0,
|
3784
|
+
const [placeholderStyle, setPlaceholderStyle] = (0, import_react27.useState)();
|
3429
3785
|
const onDragStartOrUpdate = (draggedItem) => {
|
3430
3786
|
var _a;
|
3431
3787
|
const draggableId = draggedItem.draggableId;
|
@@ -3473,24 +3829,24 @@ init_react_import();
|
|
3473
3829
|
|
3474
3830
|
// css-module:/home/runner/work/puck/puck/packages/core/components/SidebarSection/styles.module.css#css-module
|
3475
3831
|
init_react_import();
|
3476
|
-
var
|
3832
|
+
var styles_module_default8 = { "SidebarSection": "_SidebarSection_f1p35_1", "SidebarSection-title": "_SidebarSection-title_f1p35_12", "SidebarSection-content": "_SidebarSection-content_f1p35_19", "SidebarSection--noPadding": "_SidebarSection--noPadding_f1p35_24", "SidebarSection-breadcrumbLabel": "_SidebarSection-breadcrumbLabel_f1p35_33", "SidebarSection-breadcrumbs": "_SidebarSection-breadcrumbs_f1p35_44", "SidebarSection-breadcrumb": "_SidebarSection-breadcrumb_f1p35_33", "SidebarSection-heading": "_SidebarSection-heading_f1p35_56" };
|
3477
3833
|
|
3478
3834
|
// components/Heading/index.tsx
|
3479
3835
|
init_react_import();
|
3480
3836
|
|
3481
3837
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Heading/styles.module.css#css-module
|
3482
3838
|
init_react_import();
|
3483
|
-
var
|
3839
|
+
var styles_module_default9 = { "Heading": "_Heading_1bvy5_1", "Heading--xxxxl": "_Heading--xxxxl_1bvy5_13", "Heading--xxxl": "_Heading--xxxl_1bvy5_19", "Heading--xxl": "_Heading--xxl_1bvy5_23", "Heading--xl": "_Heading--xl_1bvy5_27", "Heading--l": "_Heading--l_1bvy5_31", "Heading--m": "_Heading--m_1bvy5_35", "Heading--s": "_Heading--s_1bvy5_39", "Heading--xs": "_Heading--xs_1bvy5_43" };
|
3484
3840
|
|
3485
3841
|
// components/Heading/index.tsx
|
3486
|
-
var
|
3487
|
-
var
|
3842
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
3843
|
+
var getClassName15 = get_class_name_factory_default("Heading", styles_module_default9);
|
3488
3844
|
var Heading = ({ children, rank, size = "m" }) => {
|
3489
3845
|
const Tag = rank ? `h${rank}` : "span";
|
3490
|
-
return /* @__PURE__ */ (0,
|
3846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
3491
3847
|
Tag,
|
3492
3848
|
{
|
3493
|
-
className:
|
3849
|
+
className: getClassName15({
|
3494
3850
|
[size]: true
|
3495
3851
|
}),
|
3496
3852
|
children
|
@@ -3498,33 +3854,100 @@ var Heading = ({ children, rank, size = "m" }) => {
|
|
3498
3854
|
);
|
3499
3855
|
};
|
3500
3856
|
|
3857
|
+
// lib/use-breadcrumbs.ts
|
3858
|
+
init_react_import();
|
3859
|
+
var import_react28 = require("react");
|
3860
|
+
var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
|
3861
|
+
const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
|
3862
|
+
const currentPathData = pathData && id && pathData[id] ? __spreadValues({}, pathData[id]) : { label: "Page", path: [] };
|
3863
|
+
if (!id) {
|
3864
|
+
return [];
|
3865
|
+
}
|
3866
|
+
return currentPathData == null ? void 0 : currentPathData.path.reduce((acc, zoneCompound) => {
|
3867
|
+
const [area] = getZoneId(zoneCompound);
|
3868
|
+
if (area === rootDroppableId) {
|
3869
|
+
return [
|
3870
|
+
{
|
3871
|
+
label: "Page",
|
3872
|
+
selector: null
|
3873
|
+
}
|
3874
|
+
];
|
3875
|
+
}
|
3876
|
+
const parentZoneCompound = acc.length > 0 ? acc[acc.length - 1].zoneCompound : rootDroppableId;
|
3877
|
+
let parentZone = data.content;
|
3878
|
+
if (parentZoneCompound && parentZoneCompound !== rootDroppableId) {
|
3879
|
+
parentZone = data.zones[parentZoneCompound];
|
3880
|
+
}
|
3881
|
+
if (!parentZone) {
|
3882
|
+
return acc;
|
3883
|
+
}
|
3884
|
+
const itemIndex = parentZone.findIndex(
|
3885
|
+
(queryItem) => queryItem.props.id === area
|
3886
|
+
);
|
3887
|
+
const item = parentZone[itemIndex];
|
3888
|
+
if (!item) {
|
3889
|
+
return acc;
|
3890
|
+
}
|
3891
|
+
return [
|
3892
|
+
...acc,
|
3893
|
+
{
|
3894
|
+
label: item.type.toString(),
|
3895
|
+
selector: {
|
3896
|
+
index: itemIndex,
|
3897
|
+
zone: parentZoneCompound
|
3898
|
+
},
|
3899
|
+
zoneCompound
|
3900
|
+
}
|
3901
|
+
];
|
3902
|
+
}, []);
|
3903
|
+
};
|
3904
|
+
var useBreadcrumbs = (renderCount) => {
|
3905
|
+
const {
|
3906
|
+
appData: { data },
|
3907
|
+
selectedItem
|
3908
|
+
} = useAppContext();
|
3909
|
+
const dzContext = (0, import_react28.useContext)(dropZoneContext);
|
3910
|
+
return (0, import_react28.useMemo)(() => {
|
3911
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(
|
3912
|
+
selectedItem,
|
3913
|
+
dzContext == null ? void 0 : dzContext.pathData,
|
3914
|
+
data
|
3915
|
+
);
|
3916
|
+
if (renderCount) {
|
3917
|
+
return breadcrumbs.slice(breadcrumbs.length - renderCount);
|
3918
|
+
}
|
3919
|
+
return breadcrumbs;
|
3920
|
+
}, [selectedItem, dzContext == null ? void 0 : dzContext.pathData, renderCount]);
|
3921
|
+
};
|
3922
|
+
|
3501
3923
|
// components/SidebarSection/index.tsx
|
3502
|
-
var
|
3503
|
-
var
|
3924
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
3925
|
+
var getClassName16 = get_class_name_factory_default("SidebarSection", styles_module_default8);
|
3504
3926
|
var SidebarSection = ({
|
3505
3927
|
children,
|
3506
3928
|
title,
|
3507
3929
|
background,
|
3508
|
-
|
3509
|
-
breadcrumbClick,
|
3930
|
+
showBreadcrumbs,
|
3510
3931
|
noPadding
|
3511
3932
|
}) => {
|
3512
|
-
|
3513
|
-
|
3514
|
-
|
3515
|
-
|
3933
|
+
const { setState } = useAppContext();
|
3934
|
+
const breadcrumbs = useBreadcrumbs(1);
|
3935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: getClassName16({ noPadding }), style: { background }, children: [
|
3936
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassName16("title"), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: getClassName16("breadcrumbs"), children: [
|
3937
|
+
showBreadcrumbs ? breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: getClassName16("breadcrumb"), children: [
|
3938
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
3516
3939
|
"div",
|
3517
3940
|
{
|
3518
|
-
className:
|
3519
|
-
onClick: () =>
|
3941
|
+
className: getClassName16("breadcrumbLabel"),
|
3942
|
+
onClick: () => setState({ itemSelector: breadcrumb.selector }),
|
3520
3943
|
children: breadcrumb.label
|
3521
3944
|
}
|
3522
3945
|
),
|
3523
|
-
/* @__PURE__ */ (0,
|
3524
|
-
] }, i)),
|
3525
|
-
/* @__PURE__ */ (0,
|
3946
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(chevron_right_default, { size: 16 })
|
3947
|
+
] }, i)) : null,
|
3948
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassName16("heading"), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Heading, { rank: 2, size: "xs", children: title }) })
|
3526
3949
|
] }) }),
|
3527
|
-
/* @__PURE__ */ (0,
|
3950
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: getClassName16("content"), children })
|
3528
3951
|
] });
|
3529
3952
|
};
|
3530
3953
|
|
@@ -3533,15 +3956,15 @@ init_react_import();
|
|
3533
3956
|
|
3534
3957
|
// lib/use-puck-history.ts
|
3535
3958
|
init_react_import();
|
3536
|
-
var
|
3959
|
+
var import_react30 = require("react");
|
3537
3960
|
|
3538
3961
|
// lib/use-action-history.ts
|
3539
3962
|
init_react_import();
|
3540
|
-
var
|
3963
|
+
var import_react29 = require("react");
|
3541
3964
|
var EMPTY_HISTORY_INDEX = -1;
|
3542
3965
|
function useActionHistory() {
|
3543
|
-
const [histories, setHistories] = (0,
|
3544
|
-
const [currentHistoryIndex, setCurrentHistoryIndex] = (0,
|
3966
|
+
const [histories, setHistories] = (0, import_react29.useState)([]);
|
3967
|
+
const [currentHistoryIndex, setCurrentHistoryIndex] = (0, import_react29.useState)(EMPTY_HISTORY_INDEX);
|
3545
3968
|
const currentHistory = histories[currentHistoryIndex];
|
3546
3969
|
const canRewind = currentHistoryIndex > EMPTY_HISTORY_INDEX;
|
3547
3970
|
const canForward = currentHistoryIndex < histories.length - 1;
|
@@ -3582,11 +4005,20 @@ function useActionHistory() {
|
|
3582
4005
|
var import_react_hotkeys_hook = require("react-hotkeys-hook");
|
3583
4006
|
var import_event_emitter = __toESM(require("event-emitter"));
|
3584
4007
|
var import_use_debounce2 = require("use-debounce");
|
3585
|
-
var import_deep_diff = require("deep-diff");
|
3586
4008
|
var DEBOUNCE_TIME = 250;
|
3587
4009
|
var RECORD_DIFF = "RECORD_DIFF";
|
3588
4010
|
var historyEmitter = (0, import_event_emitter.default)();
|
3589
4011
|
var recordDiff = (newAppData) => historyEmitter.emit(RECORD_DIFF, newAppData);
|
4012
|
+
var _recordHistory = ({ snapshot, newSnapshot, record, dispatch }) => {
|
4013
|
+
record({
|
4014
|
+
forward: () => {
|
4015
|
+
dispatch({ type: "set", appData: newSnapshot });
|
4016
|
+
},
|
4017
|
+
rewind: () => {
|
4018
|
+
dispatch({ type: "set", appData: snapshot });
|
4019
|
+
}
|
4020
|
+
});
|
4021
|
+
};
|
3590
4022
|
function usePuckHistory({
|
3591
4023
|
appData,
|
3592
4024
|
dispatch
|
@@ -3597,30 +4029,14 @@ function usePuckHistory({
|
|
3597
4029
|
(0, import_react_hotkeys_hook.useHotkeys)("meta+y", forward, { preventDefault: true });
|
3598
4030
|
const [snapshot] = (0, import_use_debounce2.useDebounce)(appData, DEBOUNCE_TIME);
|
3599
4031
|
const handleRecordDiff = (0, import_use_debounce2.useDebouncedCallback)((newAppData) => {
|
3600
|
-
|
3601
|
-
|
3602
|
-
|
3603
|
-
|
3604
|
-
|
3605
|
-
forward: () => {
|
3606
|
-
const target = structuredClone(appData);
|
3607
|
-
_diff.reduce((target2, change) => {
|
3608
|
-
(0, import_deep_diff.applyChange)(target2, true, change);
|
3609
|
-
return target2;
|
3610
|
-
}, target);
|
3611
|
-
dispatch({ type: "set", appData: target });
|
3612
|
-
},
|
3613
|
-
rewind: () => {
|
3614
|
-
const target = structuredClone(appData);
|
3615
|
-
_diff.reduce((target2, change) => {
|
3616
|
-
(0, import_deep_diff.revertChange)(target2, true, change);
|
3617
|
-
return target2;
|
3618
|
-
}, target);
|
3619
|
-
dispatch({ type: "set", appData: target });
|
3620
|
-
}
|
4032
|
+
return _recordHistory({
|
4033
|
+
snapshot,
|
4034
|
+
newSnapshot: newAppData,
|
4035
|
+
record,
|
4036
|
+
dispatch
|
3621
4037
|
});
|
3622
4038
|
}, DEBOUNCE_TIME);
|
3623
|
-
(0,
|
4039
|
+
(0, import_react30.useEffect)(() => {
|
3624
4040
|
historyEmitter.on(RECORD_DIFF, handleRecordDiff);
|
3625
4041
|
return () => {
|
3626
4042
|
historyEmitter.off(RECORD_DIFF, handleRecordDiff);
|
@@ -3630,8 +4046,7 @@ function usePuckHistory({
|
|
3630
4046
|
canForward,
|
3631
4047
|
canRewind,
|
3632
4048
|
rewind,
|
3633
|
-
forward
|
3634
|
-
record
|
4049
|
+
forward
|
3635
4050
|
};
|
3636
4051
|
}
|
3637
4052
|
|
@@ -3656,13 +4071,6 @@ var remove = (list, index) => {
|
|
3656
4071
|
|
3657
4072
|
// lib/reduce-related-zones.ts
|
3658
4073
|
init_react_import();
|
3659
|
-
|
3660
|
-
// lib/generate-id.ts
|
3661
|
-
init_react_import();
|
3662
|
-
var import_crypto = require("crypto");
|
3663
|
-
var generateId = (type) => `${type}-${(0, import_crypto.randomBytes)(20).toString("hex")}`;
|
3664
|
-
|
3665
|
-
// lib/reduce-related-zones.ts
|
3666
4074
|
var reduceRelatedZones = (item, data, fn) => {
|
3667
4075
|
return __spreadProps(__spreadValues({}, data), {
|
3668
4076
|
zones: Object.keys(data.zones || {}).reduce(
|
@@ -3959,7 +4367,7 @@ init_react_import();
|
|
3959
4367
|
|
3960
4368
|
// css-module:/home/runner/work/puck/puck/packages/core/components/LayerTree/styles.module.css#css-module
|
3961
4369
|
init_react_import();
|
3962
|
-
var
|
4370
|
+
var styles_module_default10 = { "LayerTree": "_LayerTree_1dcmd_1", "LayerTree-zoneTitle": "_LayerTree-zoneTitle_1dcmd_11", "LayerTree-helper": "_LayerTree-helper_1dcmd_17", "Layer": "_Layer_1dcmd_1", "Layer-inner": "_Layer-inner_1dcmd_29", "Layer--containsZone": "_Layer--containsZone_1dcmd_35", "Layer-clickable": "_Layer-clickable_1dcmd_39", "Layer--isSelected": "_Layer--isSelected_1dcmd_48", "Layer--isHovering": "_Layer--isHovering_1dcmd_49", "Layer-chevron": "_Layer-chevron_1dcmd_65", "Layer--childIsSelected": "_Layer--childIsSelected_1dcmd_66", "Layer-zones": "_Layer-zones_1dcmd_70", "Layer-title": "_Layer-title_1dcmd_84", "Layer-icon": "_Layer-icon_1dcmd_92", "Layer-zoneIcon": "_Layer-zoneIcon_1dcmd_97" };
|
3963
4371
|
|
3964
4372
|
// lib/scroll-into-view.ts
|
3965
4373
|
init_react_import();
|
@@ -3973,7 +4381,7 @@ var scrollIntoView = (el) => {
|
|
3973
4381
|
};
|
3974
4382
|
|
3975
4383
|
// components/LayerTree/index.tsx
|
3976
|
-
var
|
4384
|
+
var import_react31 = require("react");
|
3977
4385
|
|
3978
4386
|
// lib/find-zones-for-area.ts
|
3979
4387
|
init_react_import();
|
@@ -3992,19 +4400,16 @@ init_react_import();
|
|
3992
4400
|
var isChildOfZone = (item, maybeChild, ctx) => {
|
3993
4401
|
var _a;
|
3994
4402
|
const { data, pathData = {} } = ctx || {};
|
3995
|
-
return maybeChild && data ? !!((_a = pathData[maybeChild.props.id]) == null ? void 0 : _a.find((
|
3996
|
-
|
3997
|
-
|
3998
|
-
return (pathItem == null ? void 0 : pathItem.props.id) === item.props.id;
|
3999
|
-
}
|
4000
|
-
return false;
|
4403
|
+
return maybeChild && data ? !!((_a = pathData[maybeChild.props.id]) == null ? void 0 : _a.path.find((zoneCompound) => {
|
4404
|
+
const [area] = getZoneId(zoneCompound);
|
4405
|
+
return area === item.props.id;
|
4001
4406
|
})) : false;
|
4002
4407
|
};
|
4003
4408
|
|
4004
4409
|
// components/LayerTree/index.tsx
|
4005
|
-
var
|
4006
|
-
var
|
4007
|
-
var getClassNameLayer = get_class_name_factory_default("Layer",
|
4410
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
4411
|
+
var getClassName17 = get_class_name_factory_default("LayerTree", styles_module_default10);
|
4412
|
+
var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default10);
|
4008
4413
|
var LayerTree = ({
|
4009
4414
|
data,
|
4010
4415
|
zoneContent,
|
@@ -4014,15 +4419,15 @@ var LayerTree = ({
|
|
4014
4419
|
label
|
4015
4420
|
}) => {
|
4016
4421
|
const zones = data.zones || {};
|
4017
|
-
const ctx = (0,
|
4018
|
-
return /* @__PURE__ */ (0,
|
4019
|
-
label && /* @__PURE__ */ (0,
|
4020
|
-
/* @__PURE__ */ (0,
|
4422
|
+
const ctx = (0, import_react31.useContext)(dropZoneContext);
|
4423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
4424
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: getClassName17("zoneTitle"), children: [
|
4425
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName17("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(layers_default, { size: "16" }) }),
|
4021
4426
|
" ",
|
4022
4427
|
label
|
4023
4428
|
] }),
|
4024
|
-
/* @__PURE__ */ (0,
|
4025
|
-
zoneContent.length === 0 && /* @__PURE__ */ (0,
|
4429
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("ul", { className: getClassName17(), children: [
|
4430
|
+
zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName17("helper"), children: "No items" }),
|
4026
4431
|
zoneContent.map((item, i) => {
|
4027
4432
|
const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
|
4028
4433
|
const zonesForItem = findZonesForArea(data, item.props.id);
|
@@ -4037,7 +4442,7 @@ var LayerTree = ({
|
|
4037
4442
|
const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
|
4038
4443
|
const isHovering = hoveringComponent === item.props.id;
|
4039
4444
|
const childIsSelected = isChildOfZone(item, selectedItem, ctx);
|
4040
|
-
return /* @__PURE__ */ (0,
|
4445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
4041
4446
|
"li",
|
4042
4447
|
{
|
4043
4448
|
className: getClassNameLayer({
|
@@ -4047,7 +4452,7 @@ var LayerTree = ({
|
|
4047
4452
|
childIsSelected
|
4048
4453
|
}),
|
4049
4454
|
children: [
|
4050
|
-
/* @__PURE__ */ (0,
|
4455
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
4051
4456
|
"div",
|
4052
4457
|
{
|
4053
4458
|
className: getClassNameLayer("clickable"),
|
@@ -4078,22 +4483,22 @@ var LayerTree = ({
|
|
4078
4483
|
setHoveringComponent(null);
|
4079
4484
|
},
|
4080
4485
|
children: [
|
4081
|
-
containsZone && /* @__PURE__ */ (0,
|
4486
|
+
containsZone && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
4082
4487
|
"div",
|
4083
4488
|
{
|
4084
4489
|
className: getClassNameLayer("chevron"),
|
4085
4490
|
title: isSelected ? "Collapse" : "Expand",
|
4086
|
-
children: /* @__PURE__ */ (0,
|
4491
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(chevron_down_default, { size: "12" })
|
4087
4492
|
}
|
4088
4493
|
),
|
4089
|
-
/* @__PURE__ */ (0,
|
4090
|
-
/* @__PURE__ */ (0,
|
4494
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: getClassNameLayer("title"), children: [
|
4495
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassNameLayer("icon"), children: item.type === "Text" || item.type === "Heading" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(type_default, { size: "16" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(grid_default, { size: "16" }) }),
|
4091
4496
|
item.type
|
4092
4497
|
] })
|
4093
4498
|
]
|
4094
4499
|
}
|
4095
4500
|
) }),
|
4096
|
-
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0,
|
4501
|
+
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
4097
4502
|
LayerTree,
|
4098
4503
|
{
|
4099
4504
|
data,
|
@@ -4138,7 +4543,7 @@ var flushZones = (appData) => {
|
|
4138
4543
|
};
|
4139
4544
|
|
4140
4545
|
// components/Puck/index.tsx
|
4141
|
-
var
|
4546
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
4142
4547
|
var defaultPageFields = {
|
4143
4548
|
title: { type: "text" }
|
4144
4549
|
};
|
@@ -4149,7 +4554,7 @@ var PluginRenderer = ({
|
|
4149
4554
|
renderMethod
|
4150
4555
|
}) => {
|
4151
4556
|
return plugins.filter((item) => item[renderMethod]).map((item) => item[renderMethod]).reduce(
|
4152
|
-
(accChildren, Item) => /* @__PURE__ */ (0,
|
4557
|
+
(accChildren, Item) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Item, { data, children: accChildren }),
|
4153
4558
|
children
|
4154
4559
|
);
|
4155
4560
|
};
|
@@ -4165,12 +4570,15 @@ function Puck({
|
|
4165
4570
|
headerPath
|
4166
4571
|
}) {
|
4167
4572
|
var _a, _b;
|
4168
|
-
const [reducer] = (0,
|
4573
|
+
const [reducer] = (0, import_react32.useState)(() => createReducer({ config }));
|
4169
4574
|
const initialAppData = {
|
4170
4575
|
data: initialData,
|
4171
|
-
state: {
|
4576
|
+
state: {
|
4577
|
+
leftSideBarVisible: true,
|
4578
|
+
arrayState: {}
|
4579
|
+
}
|
4172
4580
|
};
|
4173
|
-
const [appData, dispatch] = (0,
|
4581
|
+
const [appData, dispatch] = (0, import_react32.useReducer)(
|
4174
4582
|
reducer,
|
4175
4583
|
flushZones(initialAppData)
|
4176
4584
|
);
|
@@ -4180,7 +4588,7 @@ function Puck({
|
|
4180
4588
|
dispatch
|
4181
4589
|
});
|
4182
4590
|
const { itemSelector, leftSideBarVisible } = state;
|
4183
|
-
const setItemSelector = (0,
|
4591
|
+
const setItemSelector = (0, import_react32.useCallback)(
|
4184
4592
|
(newItemSelector) => {
|
4185
4593
|
dispatch({
|
4186
4594
|
type: "setState",
|
@@ -4190,10 +4598,10 @@ function Puck({
|
|
4190
4598
|
[]
|
4191
4599
|
);
|
4192
4600
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
4193
|
-
const Page = (0,
|
4601
|
+
const Page = (0, import_react32.useCallback)(
|
4194
4602
|
(pageProps) => {
|
4195
4603
|
var _a2, _b2;
|
4196
|
-
return /* @__PURE__ */ (0,
|
4604
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4197
4605
|
PluginRenderer,
|
4198
4606
|
{
|
4199
4607
|
plugins,
|
@@ -4205,8 +4613,8 @@ function Puck({
|
|
4205
4613
|
},
|
4206
4614
|
[config.root]
|
4207
4615
|
);
|
4208
|
-
const PageFieldWrapper = (0,
|
4209
|
-
(props) => /* @__PURE__ */ (0,
|
4616
|
+
const PageFieldWrapper = (0, import_react32.useCallback)(
|
4617
|
+
(props) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4210
4618
|
PluginRenderer,
|
4211
4619
|
{
|
4212
4620
|
plugins,
|
@@ -4217,8 +4625,8 @@ function Puck({
|
|
4217
4625
|
),
|
4218
4626
|
[]
|
4219
4627
|
);
|
4220
|
-
const ComponentFieldWrapper = (0,
|
4221
|
-
(props) => /* @__PURE__ */ (0,
|
4628
|
+
const ComponentFieldWrapper = (0, import_react32.useCallback)(
|
4629
|
+
(props) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4222
4630
|
PluginRenderer,
|
4223
4631
|
{
|
4224
4632
|
plugins,
|
@@ -4232,14 +4640,14 @@ function Puck({
|
|
4232
4640
|
const FieldWrapper = itemSelector ? ComponentFieldWrapper : PageFieldWrapper;
|
4233
4641
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
4234
4642
|
let fields = selectedItem ? ((_b = config.components[selectedItem.type]) == null ? void 0 : _b.fields) || {} : rootFields;
|
4235
|
-
(0,
|
4643
|
+
(0, import_react32.useEffect)(() => {
|
4236
4644
|
if (onChange)
|
4237
4645
|
onChange(data);
|
4238
4646
|
}, [data]);
|
4239
4647
|
const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
|
4240
|
-
const [draggedItem, setDraggedItem] = (0,
|
4241
|
-
return /* @__PURE__ */ (0,
|
4242
|
-
|
4648
|
+
const [draggedItem, setDraggedItem] = (0, import_react32.useState)();
|
4649
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "puck", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(AppProvider, { value: { appData, dispatch }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4650
|
+
import_react_beautiful_dnd5.DragDropContext,
|
4243
4651
|
{
|
4244
4652
|
onDragUpdate: (update) => {
|
4245
4653
|
setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
|
@@ -4290,7 +4698,7 @@ function Puck({
|
|
4290
4698
|
});
|
4291
4699
|
}
|
4292
4700
|
},
|
4293
|
-
children: /* @__PURE__ */ (0,
|
4701
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4294
4702
|
DropZoneProvider,
|
4295
4703
|
{
|
4296
4704
|
value: {
|
@@ -4304,13 +4712,8 @@ function Puck({
|
|
4304
4712
|
mode: "edit",
|
4305
4713
|
areaId: "root"
|
4306
4714
|
},
|
4307
|
-
children: /* @__PURE__ */ (0,
|
4308
|
-
|
4309
|
-
if (path) {
|
4310
|
-
path = [{ label: "Page", selector: null }, ...path];
|
4311
|
-
path = path.slice(path.length - 2, path.length - 1);
|
4312
|
-
}
|
4313
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
4715
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(dropZoneContext.Consumer, { children: (ctx) => {
|
4716
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
4314
4717
|
"div",
|
4315
4718
|
{
|
4316
4719
|
style: {
|
@@ -4326,7 +4729,7 @@ function Puck({
|
|
4326
4729
|
right: 0
|
4327
4730
|
},
|
4328
4731
|
children: [
|
4329
|
-
/* @__PURE__ */ (0,
|
4732
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4330
4733
|
"header",
|
4331
4734
|
{
|
4332
4735
|
style: {
|
@@ -4336,19 +4739,19 @@ function Puck({
|
|
4336
4739
|
borderBottom: "1px solid var(--puck-color-grey-8)"
|
4337
4740
|
},
|
4338
4741
|
children: renderHeader ? renderHeader({
|
4339
|
-
children: /* @__PURE__ */ (0,
|
4742
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4340
4743
|
Button,
|
4341
4744
|
{
|
4342
4745
|
onClick: () => {
|
4343
4746
|
onPublish(data);
|
4344
4747
|
},
|
4345
|
-
icon: /* @__PURE__ */ (0,
|
4748
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(globe_default, { size: "14px" }),
|
4346
4749
|
children: "Publish"
|
4347
4750
|
}
|
4348
4751
|
),
|
4349
4752
|
data,
|
4350
4753
|
dispatch
|
4351
|
-
}) : /* @__PURE__ */ (0,
|
4754
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
4352
4755
|
"div",
|
4353
4756
|
{
|
4354
4757
|
style: {
|
@@ -4359,14 +4762,14 @@ function Puck({
|
|
4359
4762
|
gridTemplateRows: "auto"
|
4360
4763
|
},
|
4361
4764
|
children: [
|
4362
|
-
/* @__PURE__ */ (0,
|
4765
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4363
4766
|
"div",
|
4364
4767
|
{
|
4365
4768
|
style: {
|
4366
4769
|
display: "flex",
|
4367
4770
|
gap: 16
|
4368
4771
|
},
|
4369
|
-
children: /* @__PURE__ */ (0,
|
4772
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4370
4773
|
IconButton,
|
4371
4774
|
{
|
4372
4775
|
onClick: () => dispatch({
|
@@ -4376,12 +4779,12 @@ function Puck({
|
|
4376
4779
|
}
|
4377
4780
|
}),
|
4378
4781
|
title: "Toggle left sidebar",
|
4379
|
-
children: /* @__PURE__ */ (0,
|
4782
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(sidebar_default, {})
|
4380
4783
|
}
|
4381
4784
|
)
|
4382
4785
|
}
|
4383
4786
|
),
|
4384
|
-
/* @__PURE__ */ (0,
|
4787
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4385
4788
|
"div",
|
4386
4789
|
{
|
4387
4790
|
style: {
|
@@ -4389,13 +4792,19 @@ function Puck({
|
|
4389
4792
|
justifyContent: "center",
|
4390
4793
|
alignItems: "center"
|
4391
4794
|
},
|
4392
|
-
children: /* @__PURE__ */ (0,
|
4795
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Heading, { rank: 2, size: "xs", children: [
|
4393
4796
|
headerTitle || data.root.title || "Page",
|
4394
|
-
headerPath && /* @__PURE__ */ (0,
|
4797
|
+
headerPath && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4798
|
+
"small",
|
4799
|
+
{
|
4800
|
+
style: { fontWeight: 400, marginLeft: 4 },
|
4801
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("code", { children: headerPath })
|
4802
|
+
}
|
4803
|
+
)
|
4395
4804
|
] })
|
4396
4805
|
}
|
4397
4806
|
),
|
4398
|
-
/* @__PURE__ */ (0,
|
4807
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
4399
4808
|
"div",
|
4400
4809
|
{
|
4401
4810
|
style: {
|
@@ -4404,14 +4813,14 @@ function Puck({
|
|
4404
4813
|
justifyContent: "flex-end"
|
4405
4814
|
},
|
4406
4815
|
children: [
|
4407
|
-
/* @__PURE__ */ (0,
|
4408
|
-
/* @__PURE__ */ (0,
|
4816
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { display: "flex" }, children: [
|
4817
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4409
4818
|
IconButton,
|
4410
4819
|
{
|
4411
4820
|
title: "undo",
|
4412
4821
|
disabled: !canRewind,
|
4413
4822
|
onClick: rewind,
|
4414
|
-
children: /* @__PURE__ */ (0,
|
4823
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4415
4824
|
chevron_left_default,
|
4416
4825
|
{
|
4417
4826
|
size: 21,
|
@@ -4420,13 +4829,13 @@ function Puck({
|
|
4420
4829
|
)
|
4421
4830
|
}
|
4422
4831
|
),
|
4423
|
-
/* @__PURE__ */ (0,
|
4832
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4424
4833
|
IconButton,
|
4425
4834
|
{
|
4426
4835
|
title: "redo",
|
4427
4836
|
disabled: !canForward,
|
4428
4837
|
onClick: forward,
|
4429
|
-
children: /* @__PURE__ */ (0,
|
4838
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4430
4839
|
chevron_right_default,
|
4431
4840
|
{
|
4432
4841
|
size: 21,
|
@@ -4437,13 +4846,13 @@ function Puck({
|
|
4437
4846
|
)
|
4438
4847
|
] }),
|
4439
4848
|
renderHeaderActions && renderHeaderActions({ data, dispatch }),
|
4440
|
-
/* @__PURE__ */ (0,
|
4849
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4441
4850
|
Button,
|
4442
4851
|
{
|
4443
4852
|
onClick: () => {
|
4444
4853
|
onPublish(data);
|
4445
4854
|
},
|
4446
|
-
icon: /* @__PURE__ */ (0,
|
4855
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(globe_default, { size: "14px" }),
|
4447
4856
|
children: "Publish"
|
4448
4857
|
}
|
4449
4858
|
)
|
@@ -4455,7 +4864,7 @@ function Puck({
|
|
4455
4864
|
)
|
4456
4865
|
}
|
4457
4866
|
),
|
4458
|
-
/* @__PURE__ */ (0,
|
4867
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
4459
4868
|
"div",
|
4460
4869
|
{
|
4461
4870
|
style: {
|
@@ -4467,9 +4876,9 @@ function Puck({
|
|
4467
4876
|
flexDirection: "column"
|
4468
4877
|
},
|
4469
4878
|
children: [
|
4470
|
-
/* @__PURE__ */ (0,
|
4471
|
-
/* @__PURE__ */ (0,
|
4472
|
-
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0,
|
4879
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SidebarSection, { title: "Components", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ComponentList, { config }) }),
|
4880
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(SidebarSection, { title: "Outline", children: [
|
4881
|
+
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4473
4882
|
LayerTree,
|
4474
4883
|
{
|
4475
4884
|
data,
|
@@ -4481,7 +4890,7 @@ function Puck({
|
|
4481
4890
|
),
|
4482
4891
|
Object.entries(findZonesForArea(data, "root")).map(
|
4483
4892
|
([zoneKey, zone]) => {
|
4484
|
-
return /* @__PURE__ */ (0,
|
4893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4485
4894
|
LayerTree,
|
4486
4895
|
{
|
4487
4896
|
data,
|
@@ -4499,7 +4908,7 @@ function Puck({
|
|
4499
4908
|
]
|
4500
4909
|
}
|
4501
4910
|
),
|
4502
|
-
/* @__PURE__ */ (0,
|
4911
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
4503
4912
|
"div",
|
4504
4913
|
{
|
4505
4914
|
style: {
|
@@ -4512,7 +4921,7 @@ function Puck({
|
|
4512
4921
|
onClick: () => setItemSelector(null),
|
4513
4922
|
id: "puck-frame",
|
4514
4923
|
children: [
|
4515
|
-
/* @__PURE__ */ (0,
|
4924
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4516
4925
|
"div",
|
4517
4926
|
{
|
4518
4927
|
className: "puck-root",
|
@@ -4521,18 +4930,18 @@ function Puck({
|
|
4521
4930
|
margin: 32,
|
4522
4931
|
zoom: 0.75
|
4523
4932
|
},
|
4524
|
-
children: /* @__PURE__ */ (0,
|
4933
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4525
4934
|
"div",
|
4526
4935
|
{
|
4527
4936
|
style: {
|
4528
4937
|
border: "1px solid var(--puck-color-grey-8)"
|
4529
4938
|
},
|
4530
|
-
children: /* @__PURE__ */ (0,
|
4939
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Page, __spreadProps(__spreadValues({ data }, data.root), { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DropZone, { zone: rootDroppableId }) }))
|
4531
4940
|
}
|
4532
4941
|
)
|
4533
4942
|
}
|
4534
4943
|
),
|
4535
|
-
/* @__PURE__ */ (0,
|
4944
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4536
4945
|
"div",
|
4537
4946
|
{
|
4538
4947
|
style: {
|
@@ -4545,7 +4954,7 @@ function Puck({
|
|
4545
4954
|
]
|
4546
4955
|
}
|
4547
4956
|
),
|
4548
|
-
/* @__PURE__ */ (0,
|
4957
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4549
4958
|
"div",
|
4550
4959
|
{
|
4551
4960
|
style: {
|
@@ -4557,12 +4966,11 @@ function Puck({
|
|
4557
4966
|
flexDirection: "column",
|
4558
4967
|
background: "var(--puck-color-white)"
|
4559
4968
|
},
|
4560
|
-
children: /* @__PURE__ */ (0,
|
4969
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FieldWrapper, { data, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4561
4970
|
SidebarSection,
|
4562
4971
|
{
|
4563
4972
|
noPadding: true,
|
4564
|
-
|
4565
|
-
breadcrumbClick: (breadcrumb) => setItemSelector(breadcrumb.selector),
|
4973
|
+
showBreadcrumbs: true,
|
4566
4974
|
title: selectedItem ? selectedItem.type : "Page",
|
4567
4975
|
children: Object.keys(fields).map((fieldName) => {
|
4568
4976
|
var _a2, _b2, _c, _d;
|
@@ -4616,7 +5024,7 @@ function Puck({
|
|
4616
5024
|
}
|
4617
5025
|
};
|
4618
5026
|
if (selectedItem && itemSelector) {
|
4619
|
-
return /* @__PURE__ */ (0,
|
5027
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4620
5028
|
InputOrGroup,
|
4621
5029
|
{
|
4622
5030
|
field,
|
@@ -4632,13 +5040,15 @@ function Puck({
|
|
4632
5040
|
`${selectedItem.props.id}_${fieldName}`
|
4633
5041
|
);
|
4634
5042
|
} else {
|
4635
|
-
return /* @__PURE__ */ (0,
|
5043
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
4636
5044
|
InputOrGroup,
|
4637
5045
|
{
|
4638
5046
|
field,
|
4639
5047
|
name: fieldName,
|
4640
5048
|
label: field.label,
|
4641
|
-
readOnly: ((_d = (_c = data.root._meta) == null ? void 0 : _c.locked) == null ? void 0 : _d.indexOf(
|
5049
|
+
readOnly: ((_d = (_c = data.root._meta) == null ? void 0 : _c.locked) == null ? void 0 : _d.indexOf(
|
5050
|
+
fieldName
|
5051
|
+
)) > -1,
|
4642
5052
|
value: data.root[fieldName],
|
4643
5053
|
onChange: onChange2
|
4644
5054
|
},
|
@@ -4657,17 +5067,17 @@ function Puck({
|
|
4657
5067
|
}
|
4658
5068
|
)
|
4659
5069
|
}
|
4660
|
-
) });
|
5070
|
+
) }) });
|
4661
5071
|
}
|
4662
5072
|
|
4663
5073
|
// components/Render/index.tsx
|
4664
5074
|
init_react_import();
|
4665
|
-
var
|
5075
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
4666
5076
|
function Render({ config, data }) {
|
4667
5077
|
if (config.root) {
|
4668
|
-
return /* @__PURE__ */ (0,
|
5078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(config.root.render, __spreadProps(__spreadValues({}, data.root), { editMode: false, id: "puck-root", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZone, { zone: rootDroppableId }) })) });
|
4669
5079
|
}
|
4670
|
-
return /* @__PURE__ */ (0,
|
5080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropZone, { zone: rootDroppableId }) });
|
4671
5081
|
}
|
4672
5082
|
// Annotate the CommonJS export names for ESM import in node:
|
4673
5083
|
0 && (module.exports = {
|