@measured/puck 0.10.0-canary.3fe6284 → 0.10.0-canary.6a9145c
Sign up to get free protection for your applications and to get access to all the features.
- 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 = {
|