@measured/puck 0.17.0-canary.f71da6d → 0.17.0-canary.fe9321f
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +211 -156
- package/dist/index.mjs +123 -68
- package/dist/{resolve-all-data-C7aAQCY3.d.mts → resolve-all-data-zN5E6nBu.d.mts} +1 -1
- package/dist/{resolve-all-data-C7aAQCY3.d.ts → resolve-all-data-zN5E6nBu.d.ts} +1 -1
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/package.json +9 -9
package/dist/index.js
CHANGED
@@ -99,35 +99,45 @@ var require_classnames = __commonJS({
|
|
99
99
|
(function() {
|
100
100
|
"use strict";
|
101
101
|
var hasOwn = {}.hasOwnProperty;
|
102
|
-
var nativeCodeString = "[native code]";
|
103
102
|
function classNames() {
|
104
|
-
var classes =
|
103
|
+
var classes = "";
|
105
104
|
for (var i = 0; i < arguments.length; i++) {
|
106
105
|
var arg = arguments[i];
|
107
|
-
if (
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
106
|
+
if (arg) {
|
107
|
+
classes = appendClass(classes, parseValue(arg));
|
108
|
+
}
|
109
|
+
}
|
110
|
+
return classes;
|
111
|
+
}
|
112
|
+
function parseValue(arg) {
|
113
|
+
if (typeof arg === "string" || typeof arg === "number") {
|
114
|
+
return arg;
|
115
|
+
}
|
116
|
+
if (typeof arg !== "object") {
|
117
|
+
return "";
|
118
|
+
}
|
119
|
+
if (Array.isArray(arg)) {
|
120
|
+
return classNames.apply(null, arg);
|
121
|
+
}
|
122
|
+
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
|
123
|
+
return arg.toString();
|
124
|
+
}
|
125
|
+
var classes = "";
|
126
|
+
for (var key in arg) {
|
127
|
+
if (hasOwn.call(arg, key) && arg[key]) {
|
128
|
+
classes = appendClass(classes, key);
|
128
129
|
}
|
129
130
|
}
|
130
|
-
return classes
|
131
|
+
return classes;
|
132
|
+
}
|
133
|
+
function appendClass(value, newClass) {
|
134
|
+
if (!newClass) {
|
135
|
+
return value;
|
136
|
+
}
|
137
|
+
if (value) {
|
138
|
+
return value + " " + newClass;
|
139
|
+
}
|
140
|
+
return value + newClass;
|
131
141
|
}
|
132
142
|
if (typeof module2 !== "undefined" && module2.exports) {
|
133
143
|
classNames.default = classNames;
|
@@ -279,7 +289,7 @@ init_react_import();
|
|
279
289
|
var styles_module_default2 = { "InputWrapper": "_InputWrapper_1l5m8_1", "Input": "_Input_1l5m8_1", "Input-label": "_Input-label_1l5m8_26", "Input-labelIcon": "_Input-labelIcon_1l5m8_35", "Input-disabledIcon": "_Input-disabledIcon_1l5m8_42", "Input-input": "_Input-input_1l5m8_47", "Input--readOnly": "_Input--readOnly_1l5m8_91", "Input-radioGroupItems": "_Input-radioGroupItems_1l5m8_102", "Input-radio": "_Input-radio_1l5m8_102", "Input-radioInner": "_Input-radioInner_1l5m8_119", "Input-radioInput": "_Input-radioInput_1l5m8_164" };
|
280
290
|
|
281
291
|
// components/AutoField/index.tsx
|
282
|
-
var
|
292
|
+
var import_react15 = require("react");
|
283
293
|
|
284
294
|
// components/AutoField/fields/index.tsx
|
285
295
|
init_react_import();
|
@@ -1637,6 +1647,7 @@ var DefaultField = ({
|
|
1637
1647
|
className: getClassName6("input"),
|
1638
1648
|
autoComplete: "off",
|
1639
1649
|
type: field.type,
|
1650
|
+
title: label || name,
|
1640
1651
|
name,
|
1641
1652
|
value: typeof value === "undefined" ? "" : value.toString(),
|
1642
1653
|
onChange: (e) => {
|
@@ -2051,6 +2062,20 @@ var ExternalField = ({
|
|
2051
2062
|
|
2052
2063
|
// components/AutoField/fields/RadioField/index.tsx
|
2053
2064
|
init_react_import();
|
2065
|
+
var import_react12 = require("react");
|
2066
|
+
|
2067
|
+
// lib/safe-json-parse.ts
|
2068
|
+
init_react_import();
|
2069
|
+
var safeJsonParse = (str) => {
|
2070
|
+
try {
|
2071
|
+
const jsonValue = JSON.parse(str);
|
2072
|
+
return jsonValue;
|
2073
|
+
} catch (e) {
|
2074
|
+
return str;
|
2075
|
+
}
|
2076
|
+
};
|
2077
|
+
|
2078
|
+
// components/AutoField/fields/RadioField/index.tsx
|
2054
2079
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
2055
2080
|
var getClassName11 = get_class_name_factory_default("Input", styles_module_default2);
|
2056
2081
|
var RadioField = ({
|
@@ -2063,6 +2088,10 @@ var RadioField = ({
|
|
2063
2088
|
label,
|
2064
2089
|
Label
|
2065
2090
|
}) => {
|
2091
|
+
const flatOptions = (0, import_react12.useMemo)(
|
2092
|
+
() => field.type === "radio" ? field.options.map(({ value: value2 }) => value2) : [],
|
2093
|
+
[field]
|
2094
|
+
);
|
2066
2095
|
if (field.type !== "radio" || !field.options) {
|
2067
2096
|
return null;
|
2068
2097
|
}
|
@@ -2086,11 +2115,12 @@ var RadioField = ({
|
|
2086
2115
|
value: option.value,
|
2087
2116
|
name,
|
2088
2117
|
onChange: (e) => {
|
2089
|
-
|
2090
|
-
|
2091
|
-
|
2118
|
+
const jsonValue = safeJsonParse(e.target.value) || e.target.value;
|
2119
|
+
if (flatOptions.indexOf(jsonValue) > -1) {
|
2120
|
+
onChange(jsonValue);
|
2121
|
+
} else {
|
2122
|
+
onChange(e.target.value);
|
2092
2123
|
}
|
2093
|
-
onChange(e.currentTarget.value);
|
2094
2124
|
},
|
2095
2125
|
disabled: readOnly,
|
2096
2126
|
checked: value === option.value
|
@@ -2107,6 +2137,7 @@ var RadioField = ({
|
|
2107
2137
|
|
2108
2138
|
// components/AutoField/fields/SelectField/index.tsx
|
2109
2139
|
init_react_import();
|
2140
|
+
var import_react13 = require("react");
|
2110
2141
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
2111
2142
|
var getClassName12 = get_class_name_factory_default("Input", styles_module_default2);
|
2112
2143
|
var SelectField = ({
|
@@ -2119,6 +2150,10 @@ var SelectField = ({
|
|
2119
2150
|
readOnly,
|
2120
2151
|
id
|
2121
2152
|
}) => {
|
2153
|
+
const flatOptions = (0, import_react13.useMemo)(
|
2154
|
+
() => field.type === "select" ? field.options.map(({ value: value2 }) => value2) : [],
|
2155
|
+
[field]
|
2156
|
+
);
|
2122
2157
|
if (field.type !== "select" || !field.options) {
|
2123
2158
|
return null;
|
2124
2159
|
}
|
@@ -2132,14 +2167,16 @@ var SelectField = ({
|
|
2132
2167
|
"select",
|
2133
2168
|
{
|
2134
2169
|
id,
|
2170
|
+
title: label || name,
|
2135
2171
|
className: getClassName12("input"),
|
2136
2172
|
disabled: readOnly,
|
2137
2173
|
onChange: (e) => {
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2174
|
+
const jsonValue = safeJsonParse(e.target.value) || e.target.value;
|
2175
|
+
if (flatOptions.indexOf(jsonValue) > -1) {
|
2176
|
+
onChange(jsonValue);
|
2177
|
+
} else {
|
2178
|
+
onChange(e.target.value);
|
2141
2179
|
}
|
2142
|
-
onChange(e.currentTarget.value);
|
2143
2180
|
},
|
2144
2181
|
value,
|
2145
2182
|
children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
@@ -2253,7 +2290,7 @@ var ObjectField = ({
|
|
2253
2290
|
|
2254
2291
|
// lib/use-safe-id.ts
|
2255
2292
|
init_react_import();
|
2256
|
-
var
|
2293
|
+
var import_react14 = __toESM(require("react"));
|
2257
2294
|
|
2258
2295
|
// lib/generate-id.ts
|
2259
2296
|
init_react_import();
|
@@ -2262,10 +2299,10 @@ var generateId = (type) => type ? `${type}-${(0, import_uuid.v4)()}` : (0, impor
|
|
2262
2299
|
|
2263
2300
|
// lib/use-safe-id.ts
|
2264
2301
|
var useSafeId = () => {
|
2265
|
-
if (typeof
|
2266
|
-
return
|
2302
|
+
if (typeof import_react14.default.useId !== "undefined") {
|
2303
|
+
return import_react14.default.useId();
|
2267
2304
|
}
|
2268
|
-
const [id] = (0,
|
2305
|
+
const [id] = (0, import_react14.useState)(generateId());
|
2269
2306
|
return id;
|
2270
2307
|
};
|
2271
2308
|
|
@@ -2299,7 +2336,7 @@ var FieldLabelInternal2 = ({
|
|
2299
2336
|
readOnly
|
2300
2337
|
}) => {
|
2301
2338
|
const { overrides } = useAppContext();
|
2302
|
-
const Wrapper = (0,
|
2339
|
+
const Wrapper = (0, import_react15.useMemo)(
|
2303
2340
|
() => overrides.fieldLabel || FieldLabel,
|
2304
2341
|
[overrides]
|
2305
2342
|
);
|
@@ -2352,7 +2389,7 @@ function AutoFieldInternal(props) {
|
|
2352
2389
|
Label,
|
2353
2390
|
id: resolvedId
|
2354
2391
|
});
|
2355
|
-
const onFocus = (0,
|
2392
|
+
const onFocus = (0, import_react15.useCallback)(
|
2356
2393
|
(e) => {
|
2357
2394
|
if (mergedProps.name && e.target.nodeName === "INPUT") {
|
2358
2395
|
e.stopPropagation();
|
@@ -2366,7 +2403,7 @@ function AutoFieldInternal(props) {
|
|
2366
2403
|
},
|
2367
2404
|
[mergedProps.name]
|
2368
2405
|
);
|
2369
|
-
const onBlur = (0,
|
2406
|
+
const onBlur = (0, import_react15.useCallback)((e) => {
|
2370
2407
|
if ("name" in e.target) {
|
2371
2408
|
dispatch({
|
2372
2409
|
type: "setUi",
|
@@ -2385,12 +2422,23 @@ function AutoFieldInternal(props) {
|
|
2385
2422
|
}
|
2386
2423
|
const children = defaultFields[field.type](mergedProps);
|
2387
2424
|
const Render2 = render[field.type];
|
2388
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
2425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
2426
|
+
"div",
|
2427
|
+
{
|
2428
|
+
className: getClassNameWrapper(),
|
2429
|
+
onFocus,
|
2430
|
+
onBlur,
|
2431
|
+
onClick: (e) => {
|
2432
|
+
e.stopPropagation();
|
2433
|
+
},
|
2434
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }))
|
2435
|
+
}
|
2436
|
+
);
|
2389
2437
|
}
|
2390
2438
|
function AutoFieldPrivate(props) {
|
2391
2439
|
const { state } = useAppContext();
|
2392
2440
|
const { value, onChange } = props;
|
2393
|
-
const [localValue, setLocalValue] = (0,
|
2441
|
+
const [localValue, setLocalValue] = (0, import_react15.useState)(value);
|
2394
2442
|
const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
|
2395
2443
|
(val, ui) => {
|
2396
2444
|
onChange(val, ui);
|
@@ -2398,11 +2446,11 @@ function AutoFieldPrivate(props) {
|
|
2398
2446
|
50,
|
2399
2447
|
{ leading: true }
|
2400
2448
|
);
|
2401
|
-
const onChangeLocal = (0,
|
2449
|
+
const onChangeLocal = (0, import_react15.useCallback)((val, ui) => {
|
2402
2450
|
setLocalValue(val);
|
2403
2451
|
onChangeDb(val, ui);
|
2404
2452
|
}, []);
|
2405
|
-
(0,
|
2453
|
+
(0, import_react15.useEffect)(() => {
|
2406
2454
|
if (state.ui.field.focus !== props.name) {
|
2407
2455
|
setLocalValue(value);
|
2408
2456
|
}
|
@@ -2414,7 +2462,7 @@ function AutoFieldPrivate(props) {
|
|
2414
2462
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AutoFieldInternal, __spreadValues(__spreadValues({}, props), localProps));
|
2415
2463
|
}
|
2416
2464
|
function AutoField(props) {
|
2417
|
-
const DefaultLabel = (0,
|
2465
|
+
const DefaultLabel = (0, import_react15.useMemo)(() => {
|
2418
2466
|
const DefaultLabel2 = (labelProps) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
2419
2467
|
"div",
|
2420
2468
|
__spreadProps(__spreadValues({}, labelProps), {
|
@@ -2434,11 +2482,11 @@ init_react_import();
|
|
2434
2482
|
var styles_module_default10 = { "Drawer": "_Drawer_1oa7v_1", "DrawerItem--disabled": "_DrawerItem--disabled_1oa7v_5", "DrawerItem-draggable": "_DrawerItem-draggable_1oa7v_5", "DrawerItem-default": "_DrawerItem-default_1oa7v_11", "DrawerItem-draggableWrapper": "_DrawerItem-draggableWrapper_1oa7v_11", "DrawerItem": "_DrawerItem_1oa7v_5", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_1oa7v_36", "DrawerItem-name": "_DrawerItem-name_1oa7v_54" };
|
2435
2483
|
|
2436
2484
|
// components/Drawer/index.tsx
|
2437
|
-
var
|
2485
|
+
var import_react16 = require("react");
|
2438
2486
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
2439
2487
|
var getClassName16 = get_class_name_factory_default("Drawer", styles_module_default10);
|
2440
2488
|
var getClassNameItem2 = get_class_name_factory_default("DrawerItem", styles_module_default10);
|
2441
|
-
var drawerContext = (0,
|
2489
|
+
var drawerContext = (0, import_react16.createContext)({
|
2442
2490
|
droppableId: ""
|
2443
2491
|
});
|
2444
2492
|
var DrawerDraggable = ({
|
@@ -2469,9 +2517,9 @@ var DrawerItem = ({
|
|
2469
2517
|
index,
|
2470
2518
|
isDragDisabled
|
2471
2519
|
}) => {
|
2472
|
-
const ctx = (0,
|
2520
|
+
const ctx = (0, import_react16.useContext)(drawerContext);
|
2473
2521
|
const resolvedId = `${ctx.droppableId}::${id || name}`;
|
2474
|
-
const CustomInner = (0,
|
2522
|
+
const CustomInner = (0, import_react16.useMemo)(
|
2475
2523
|
() => children || (({ children: children2, name: name2 }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: getClassNameItem2("default"), children: children2 })),
|
2476
2524
|
[children]
|
2477
2525
|
);
|
@@ -2512,11 +2560,11 @@ Drawer.Item = DrawerItem;
|
|
2512
2560
|
|
2513
2561
|
// components/DropZone/index.tsx
|
2514
2562
|
init_react_import();
|
2515
|
-
var
|
2563
|
+
var import_react20 = require("react");
|
2516
2564
|
|
2517
2565
|
// components/DraggableComponent/index.tsx
|
2518
2566
|
init_react_import();
|
2519
|
-
var
|
2567
|
+
var import_react18 = require("react");
|
2520
2568
|
var import_dnd4 = require("@measured/dnd");
|
2521
2569
|
|
2522
2570
|
// css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
|
@@ -2525,10 +2573,10 @@ var styles_module_default11 = { "DraggableComponent": "_DraggableComponent_1bhad
|
|
2525
2573
|
|
2526
2574
|
// lib/use-modifier-held.ts
|
2527
2575
|
init_react_import();
|
2528
|
-
var
|
2576
|
+
var import_react17 = require("react");
|
2529
2577
|
var useModifierHeld = (modifier) => {
|
2530
|
-
const [modifierHeld, setModifierHeld] = (0,
|
2531
|
-
(0,
|
2578
|
+
const [modifierHeld, setModifierHeld] = (0, import_react17.useState)(false);
|
2579
|
+
(0, import_react17.useEffect)(() => {
|
2532
2580
|
function downHandler({ key }) {
|
2533
2581
|
if (key === modifier) {
|
2534
2582
|
setModifierHeld(true);
|
@@ -2597,14 +2645,14 @@ var DraggableComponent = ({
|
|
2597
2645
|
const { zoomConfig, status, overrides, selectedItem, getPermissions } = useAppContext();
|
2598
2646
|
const isModifierHeld = useModifierHeld("Alt");
|
2599
2647
|
const El = status !== "LOADING" ? import_dnd4.Draggable : DefaultDraggable;
|
2600
|
-
(0,
|
2601
|
-
const [disableSecondaryAnimation, setDisableSecondaryAnimation] = (0,
|
2602
|
-
(0,
|
2648
|
+
(0, import_react18.useEffect)(onMount, []);
|
2649
|
+
const [disableSecondaryAnimation, setDisableSecondaryAnimation] = (0, import_react18.useState)(false);
|
2650
|
+
(0, import_react18.useEffect)(() => {
|
2603
2651
|
if (isIos()) {
|
2604
2652
|
setDisableSecondaryAnimation(true);
|
2605
2653
|
}
|
2606
2654
|
}, []);
|
2607
|
-
const CustomActionBar = (0,
|
2655
|
+
const CustomActionBar = (0, import_react18.useMemo)(
|
2608
2656
|
() => overrides.actionBar || DefaultActionBar,
|
2609
2657
|
[overrides.actionBar]
|
2610
2658
|
);
|
@@ -2682,7 +2730,7 @@ var styles_module_default12 = { "DropZone": "_DropZone_djoti_1", "DropZone-conte
|
|
2682
2730
|
|
2683
2731
|
// components/DropZone/context.tsx
|
2684
2732
|
init_react_import();
|
2685
|
-
var
|
2733
|
+
var import_react19 = require("react");
|
2686
2734
|
var import_use_debounce2 = require("use-debounce");
|
2687
2735
|
|
2688
2736
|
// lib/get-zone-id.ts
|
@@ -2699,29 +2747,29 @@ var getZoneId = (zoneCompound) => {
|
|
2699
2747
|
|
2700
2748
|
// components/DropZone/context.tsx
|
2701
2749
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
2702
|
-
var dropZoneContext = (0,
|
2750
|
+
var dropZoneContext = (0, import_react19.createContext)(null);
|
2703
2751
|
var DropZoneProvider = ({
|
2704
2752
|
children,
|
2705
2753
|
value
|
2706
2754
|
}) => {
|
2707
|
-
const [hoveringArea, setHoveringArea] = (0,
|
2708
|
-
const [hoveringZone, setHoveringZone] = (0,
|
2755
|
+
const [hoveringArea, setHoveringArea] = (0, import_react19.useState)(null);
|
2756
|
+
const [hoveringZone, setHoveringZone] = (0, import_react19.useState)(
|
2709
2757
|
rootDroppableId
|
2710
2758
|
);
|
2711
|
-
const [hoveringComponent, setHoveringComponent] = (0,
|
2759
|
+
const [hoveringComponent, setHoveringComponent] = (0, import_react19.useState)();
|
2712
2760
|
const [hoveringAreaDb] = (0, import_use_debounce2.useDebounce)(hoveringArea, 75, { leading: false });
|
2713
|
-
const [areasWithZones, setAreasWithZones] = (0,
|
2761
|
+
const [areasWithZones, setAreasWithZones] = (0, import_react19.useState)(
|
2714
2762
|
{}
|
2715
2763
|
);
|
2716
|
-
const [activeZones, setActiveZones] = (0,
|
2764
|
+
const [activeZones, setActiveZones] = (0, import_react19.useState)({});
|
2717
2765
|
const { dispatch = null } = value ? value : {};
|
2718
|
-
const registerZoneArea = (0,
|
2766
|
+
const registerZoneArea = (0, import_react19.useCallback)(
|
2719
2767
|
(area) => {
|
2720
2768
|
setAreasWithZones((latest) => __spreadProps(__spreadValues({}, latest), { [area]: true }));
|
2721
2769
|
},
|
2722
2770
|
[setAreasWithZones]
|
2723
2771
|
);
|
2724
|
-
const registerZone = (0,
|
2772
|
+
const registerZone = (0, import_react19.useCallback)(
|
2725
2773
|
(zoneCompound) => {
|
2726
2774
|
if (!dispatch) {
|
2727
2775
|
return;
|
@@ -2734,7 +2782,7 @@ var DropZoneProvider = ({
|
|
2734
2782
|
},
|
2735
2783
|
[setActiveZones, dispatch]
|
2736
2784
|
);
|
2737
|
-
const unregisterZone = (0,
|
2785
|
+
const unregisterZone = (0, import_react19.useCallback)(
|
2738
2786
|
(zoneCompound) => {
|
2739
2787
|
if (!dispatch) {
|
2740
2788
|
return;
|
@@ -2749,8 +2797,8 @@ var DropZoneProvider = ({
|
|
2749
2797
|
},
|
2750
2798
|
[setActiveZones, dispatch]
|
2751
2799
|
);
|
2752
|
-
const [pathData, setPathData] = (0,
|
2753
|
-
const registerPath = (0,
|
2800
|
+
const [pathData, setPathData] = (0, import_react19.useState)();
|
2801
|
+
const registerPath = (0, import_react19.useCallback)(
|
2754
2802
|
(selector) => {
|
2755
2803
|
if (!(value == null ? void 0 : value.data)) {
|
2756
2804
|
return;
|
@@ -2775,7 +2823,7 @@ var DropZoneProvider = ({
|
|
2775
2823
|
},
|
2776
2824
|
[value, setPathData]
|
2777
2825
|
);
|
2778
|
-
const [zoneWillDrag, setZoneWillDrag] = (0,
|
2826
|
+
const [zoneWillDrag, setZoneWillDrag] = (0, import_react19.useState)("");
|
2779
2827
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: value && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
2780
2828
|
dropZoneContext.Provider,
|
2781
2829
|
{
|
@@ -2807,7 +2855,7 @@ var getClassName18 = get_class_name_factory_default("DropZone", styles_module_de
|
|
2807
2855
|
function DropZoneEdit({ zone, allow, disallow, style }) {
|
2808
2856
|
var _a;
|
2809
2857
|
const appContext2 = useAppContext();
|
2810
|
-
const ctx = (0,
|
2858
|
+
const ctx = (0, import_react20.useContext)(dropZoneContext);
|
2811
2859
|
const {
|
2812
2860
|
// These all need setting via context
|
2813
2861
|
data,
|
@@ -2826,12 +2874,12 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
2826
2874
|
} = ctx || {};
|
2827
2875
|
let content = data.content || [];
|
2828
2876
|
let zoneCompound = rootDroppableId;
|
2829
|
-
(0,
|
2877
|
+
(0, import_react20.useEffect)(() => {
|
2830
2878
|
if (areaId && registerZoneArea) {
|
2831
2879
|
registerZoneArea(areaId);
|
2832
2880
|
}
|
2833
2881
|
}, [areaId]);
|
2834
|
-
(0,
|
2882
|
+
(0, import_react20.useEffect)(() => {
|
2835
2883
|
if (ctx == null ? void 0 : ctx.registerZone) {
|
2836
2884
|
ctx == null ? void 0 : ctx.registerZone(zoneCompound);
|
2837
2885
|
}
|
@@ -3087,7 +3135,7 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
3087
3135
|
);
|
3088
3136
|
}
|
3089
3137
|
function DropZoneRender({ zone }) {
|
3090
|
-
const ctx = (0,
|
3138
|
+
const ctx = (0, import_react20.useContext)(dropZoneContext);
|
3091
3139
|
const { data, areaId = "root", config } = ctx || {};
|
3092
3140
|
let zoneCompound = rootDroppableId;
|
3093
3141
|
let content = (data == null ? void 0 : data.content) || [];
|
@@ -3119,7 +3167,7 @@ function DropZoneRender({ zone }) {
|
|
3119
3167
|
}) });
|
3120
3168
|
}
|
3121
3169
|
function DropZone(props) {
|
3122
|
-
const ctx = (0,
|
3170
|
+
const ctx = (0, import_react20.useContext)(dropZoneContext);
|
3123
3171
|
if ((ctx == null ? void 0 : ctx.mode) === "edit") {
|
3124
3172
|
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropZoneEdit, __spreadValues({}, props));
|
3125
3173
|
}
|
@@ -3128,11 +3176,11 @@ function DropZone(props) {
|
|
3128
3176
|
|
3129
3177
|
// components/Puck/index.tsx
|
3130
3178
|
init_react_import();
|
3131
|
-
var
|
3179
|
+
var import_react35 = require("react");
|
3132
3180
|
|
3133
3181
|
// lib/use-placeholder-style.ts
|
3134
3182
|
init_react_import();
|
3135
|
-
var
|
3183
|
+
var import_react21 = require("react");
|
3136
3184
|
|
3137
3185
|
// lib/get-frame.ts
|
3138
3186
|
init_react_import();
|
@@ -3147,7 +3195,7 @@ var getFrame = () => {
|
|
3147
3195
|
// lib/use-placeholder-style.ts
|
3148
3196
|
var usePlaceholderStyle = () => {
|
3149
3197
|
const queryAttr = "data-rfd-drag-handle-draggable-id";
|
3150
|
-
const [placeholderStyle, setPlaceholderStyle] = (0,
|
3198
|
+
const [placeholderStyle, setPlaceholderStyle] = (0, import_react21.useState)();
|
3151
3199
|
const onDragStartOrUpdate = (draggedItem) => {
|
3152
3200
|
var _a;
|
3153
3201
|
const draggableId = draggedItem.draggableId;
|
@@ -3200,7 +3248,7 @@ var styles_module_default13 = { "SidebarSection": "_SidebarSection_125qe_1", "Si
|
|
3200
3248
|
|
3201
3249
|
// lib/use-breadcrumbs.ts
|
3202
3250
|
init_react_import();
|
3203
|
-
var
|
3251
|
+
var import_react22 = require("react");
|
3204
3252
|
var convertPathDataToBreadcrumbs = (selectedItem, pathData, data) => {
|
3205
3253
|
const id = selectedItem ? selectedItem == null ? void 0 : selectedItem.props.id : "";
|
3206
3254
|
const currentPathData = pathData && id && pathData[id] ? __spreadValues({}, pathData[id]) : { label: "Page", path: [] };
|
@@ -3250,8 +3298,8 @@ var useBreadcrumbs = (renderCount) => {
|
|
3250
3298
|
state: { data },
|
3251
3299
|
selectedItem
|
3252
3300
|
} = useAppContext();
|
3253
|
-
const dzContext = (0,
|
3254
|
-
return (0,
|
3301
|
+
const dzContext = (0, import_react22.useContext)(dropZoneContext);
|
3302
|
+
return (0, import_react22.useMemo)(() => {
|
3255
3303
|
const breadcrumbs = convertPathDataToBreadcrumbs(
|
3256
3304
|
selectedItem,
|
3257
3305
|
dzContext == null ? void 0 : dzContext.pathData,
|
@@ -3735,15 +3783,15 @@ init_react_import();
|
|
3735
3783
|
var styles_module_default16 = { "PuckFields": "_PuckFields_jp3lw_1", "PuckFields--isLoading": "_PuckFields--isLoading_jp3lw_6", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_jp3lw_10", "PuckFields-loadingOverlayInner": "_PuckFields-loadingOverlayInner_jp3lw_25" };
|
3736
3784
|
|
3737
3785
|
// components/Puck/components/Fields/index.tsx
|
3738
|
-
var
|
3786
|
+
var import_react24 = require("react");
|
3739
3787
|
|
3740
3788
|
// lib/use-parent.ts
|
3741
3789
|
init_react_import();
|
3742
|
-
var
|
3790
|
+
var import_react23 = require("react");
|
3743
3791
|
var useParent = (itemSelector) => {
|
3744
3792
|
var _a;
|
3745
3793
|
const { selectedItem, state } = useAppContext();
|
3746
|
-
const { pathData } = (0,
|
3794
|
+
const { pathData } = (0, import_react23.useContext)(dropZoneContext) || {};
|
3747
3795
|
const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
|
3748
3796
|
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
3749
3797
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
@@ -3769,20 +3817,20 @@ var useResolvedFields = () => {
|
|
3769
3817
|
const { data } = state;
|
3770
3818
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
3771
3819
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
3772
|
-
const defaultFields = (0,
|
3820
|
+
const defaultFields = (0, import_react24.useMemo)(
|
3773
3821
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
3774
3822
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
3775
3823
|
);
|
3776
3824
|
const rootProps = data.root.props || data.root;
|
3777
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
3778
|
-
const [resolvedFields, setResolvedFields] = (0,
|
3779
|
-
const [fieldsLoading, setFieldsLoading] = (0,
|
3825
|
+
const [lastSelectedData, setLastSelectedData] = (0, import_react24.useState)({});
|
3826
|
+
const [resolvedFields, setResolvedFields] = (0, import_react24.useState)(defaultFields);
|
3827
|
+
const [fieldsLoading, setFieldsLoading] = (0, import_react24.useState)(false);
|
3780
3828
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
3781
3829
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
3782
3830
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
3783
3831
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
3784
3832
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
3785
|
-
const resolveFields = (0,
|
3833
|
+
const resolveFields = (0, import_react24.useCallback)(
|
3786
3834
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
3787
3835
|
var _a2;
|
3788
3836
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -3820,7 +3868,7 @@ var useResolvedFields = () => {
|
|
3820
3868
|
}),
|
3821
3869
|
[data, config, componentData, selectedItem, resolvedFields, state]
|
3822
3870
|
);
|
3823
|
-
(0,
|
3871
|
+
(0, import_react24.useEffect)(() => {
|
3824
3872
|
if (hasResolver) {
|
3825
3873
|
setFieldsLoading(true);
|
3826
3874
|
resolveFields(defaultFields).then((fields) => {
|
@@ -3851,7 +3899,7 @@ var Fields = () => {
|
|
3851
3899
|
const componentResolving = selectedItem ? ((_a = componentState[selectedItem == null ? void 0 : selectedItem.props.id]) == null ? void 0 : _a.loadingCount) > 0 : ((_b = componentState["puck-root"]) == null ? void 0 : _b.loadingCount) > 0;
|
3852
3900
|
const isLoading = fieldsResolving || componentResolving;
|
3853
3901
|
const rootProps = data.root.props || data.root;
|
3854
|
-
const Wrapper = (0,
|
3902
|
+
const Wrapper = (0, import_react24.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
3855
3903
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
3856
3904
|
"form",
|
3857
3905
|
{
|
@@ -3930,34 +3978,36 @@ var Fields = () => {
|
|
3930
3978
|
const { edit } = getPermissions({
|
3931
3979
|
item: selectedItem
|
3932
3980
|
});
|
3981
|
+
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
3933
3982
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
3934
3983
|
AutoFieldPrivate,
|
3935
3984
|
{
|
3936
3985
|
field,
|
3937
3986
|
name: fieldName,
|
3938
|
-
id
|
3987
|
+
id,
|
3939
3988
|
readOnly: !edit || readOnly[fieldName],
|
3940
3989
|
value: selectedItem.props[fieldName],
|
3941
3990
|
onChange
|
3942
3991
|
},
|
3943
|
-
|
3992
|
+
id
|
3944
3993
|
);
|
3945
3994
|
} else {
|
3946
3995
|
const readOnly = data.root.readOnly || {};
|
3947
3996
|
const { edit } = getPermissions({
|
3948
3997
|
root: true
|
3949
3998
|
});
|
3999
|
+
const id = `root_${field.type}_${fieldName}`;
|
3950
4000
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
3951
4001
|
AutoFieldPrivate,
|
3952
4002
|
{
|
3953
4003
|
field,
|
3954
4004
|
name: fieldName,
|
3955
|
-
id
|
4005
|
+
id,
|
3956
4006
|
readOnly: !edit || readOnly[fieldName],
|
3957
4007
|
value: rootProps[fieldName],
|
3958
4008
|
onChange
|
3959
4009
|
},
|
3960
|
-
|
4010
|
+
id
|
3961
4011
|
);
|
3962
4012
|
}
|
3963
4013
|
}) }),
|
@@ -3972,7 +4022,7 @@ init_react_import();
|
|
3972
4022
|
|
3973
4023
|
// lib/use-component-list.tsx
|
3974
4024
|
init_react_import();
|
3975
|
-
var
|
4025
|
+
var import_react25 = require("react");
|
3976
4026
|
|
3977
4027
|
// components/ComponentList/index.tsx
|
3978
4028
|
init_react_import();
|
@@ -4050,8 +4100,8 @@ ComponentList.Item = ComponentListItem;
|
|
4050
4100
|
// lib/use-component-list.tsx
|
4051
4101
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
4052
4102
|
var useComponentList = (config, ui) => {
|
4053
|
-
const [componentList, setComponentList] = (0,
|
4054
|
-
(0,
|
4103
|
+
const [componentList, setComponentList] = (0, import_react25.useState)();
|
4104
|
+
(0, import_react25.useEffect)(() => {
|
4055
4105
|
var _a, _b, _c;
|
4056
4106
|
if (Object.keys(ui.componentList).length > 0) {
|
4057
4107
|
const matchedComponents = [];
|
@@ -4120,22 +4170,22 @@ var useComponentList = (config, ui) => {
|
|
4120
4170
|
};
|
4121
4171
|
|
4122
4172
|
// components/Puck/components/Components/index.tsx
|
4123
|
-
var
|
4173
|
+
var import_react26 = require("react");
|
4124
4174
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
4125
4175
|
var Components = () => {
|
4126
4176
|
const { config, state, overrides } = useAppContext();
|
4127
4177
|
const componentList = useComponentList(config, state.ui);
|
4128
|
-
const Wrapper = (0,
|
4178
|
+
const Wrapper = (0, import_react26.useMemo)(() => overrides.components || "div", [overrides]);
|
4129
4179
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
|
4130
4180
|
};
|
4131
4181
|
|
4132
4182
|
// components/Puck/components/Preview/index.tsx
|
4133
4183
|
init_react_import();
|
4134
|
-
var
|
4184
|
+
var import_react28 = require("react");
|
4135
4185
|
|
4136
4186
|
// components/AutoFrame/index.tsx
|
4137
4187
|
init_react_import();
|
4138
|
-
var
|
4188
|
+
var import_react27 = require("react");
|
4139
4189
|
var import_object_hash = __toESM(require("object-hash"));
|
4140
4190
|
var import_react_dom2 = require("react-dom");
|
4141
4191
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
@@ -4181,7 +4231,7 @@ var CopyHostStyles = ({
|
|
4181
4231
|
onStylesLoaded = () => null
|
4182
4232
|
}) => {
|
4183
4233
|
const { document: doc, window: win } = useFrame();
|
4184
|
-
(0,
|
4234
|
+
(0, import_react27.useEffect)(() => {
|
4185
4235
|
if (!win || !doc) {
|
4186
4236
|
return () => {
|
4187
4237
|
};
|
@@ -4340,8 +4390,8 @@ var CopyHostStyles = ({
|
|
4340
4390
|
}, []);
|
4341
4391
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
|
4342
4392
|
};
|
4343
|
-
var autoFrameContext = (0,
|
4344
|
-
var useFrame = () => (0,
|
4393
|
+
var autoFrameContext = (0, import_react27.createContext)({});
|
4394
|
+
var useFrame = () => (0, import_react27.useContext)(autoFrameContext);
|
4345
4395
|
function AutoFrame(_a) {
|
4346
4396
|
var _b = _a, {
|
4347
4397
|
children,
|
@@ -4356,11 +4406,11 @@ function AutoFrame(_a) {
|
|
4356
4406
|
"id",
|
4357
4407
|
"onStylesLoaded"
|
4358
4408
|
]);
|
4359
|
-
const [loaded, setLoaded] = (0,
|
4360
|
-
const [ctx, setCtx] = (0,
|
4361
|
-
const ref = (0,
|
4362
|
-
const [mountTarget, setMountTarget] = (0,
|
4363
|
-
(0,
|
4409
|
+
const [loaded, setLoaded] = (0, import_react27.useState)(false);
|
4410
|
+
const [ctx, setCtx] = (0, import_react27.useState)({});
|
4411
|
+
const ref = (0, import_react27.useRef)(null);
|
4412
|
+
const [mountTarget, setMountTarget] = (0, import_react27.useState)();
|
4413
|
+
(0, import_react27.useEffect)(() => {
|
4364
4414
|
var _a2;
|
4365
4415
|
if (ref.current) {
|
4366
4416
|
setCtx({
|
@@ -4396,7 +4446,7 @@ var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4396
4446
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
4397
4447
|
var Preview = ({ id = "puck-preview" }) => {
|
4398
4448
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
4399
|
-
const Page = (0,
|
4449
|
+
const Page = (0, import_react28.useCallback)(
|
4400
4450
|
(pageProps) => {
|
4401
4451
|
var _a, _b;
|
4402
4452
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -4405,7 +4455,7 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
4405
4455
|
},
|
4406
4456
|
[config.root]
|
4407
4457
|
);
|
4408
|
-
const Frame = (0,
|
4458
|
+
const Frame = (0, import_react28.useMemo)(() => overrides.iframe, [overrides]);
|
4409
4459
|
const rootProps = state.data.root.props || state.data.root;
|
4410
4460
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
4411
4461
|
"div",
|
@@ -4494,7 +4544,7 @@ var scrollIntoView = (el) => {
|
|
4494
4544
|
};
|
4495
4545
|
|
4496
4546
|
// components/LayerTree/index.tsx
|
4497
|
-
var
|
4547
|
+
var import_react29 = require("react");
|
4498
4548
|
|
4499
4549
|
// lib/is-child-of-zone.ts
|
4500
4550
|
init_react_import();
|
@@ -4521,7 +4571,7 @@ var LayerTree = ({
|
|
4521
4571
|
label
|
4522
4572
|
}) => {
|
4523
4573
|
const zones = data.zones || {};
|
4524
|
-
const ctx = (0,
|
4574
|
+
const ctx = (0, import_react29.useContext)(dropZoneContext);
|
4525
4575
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
|
4526
4576
|
label && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
4527
4577
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Layers, { size: "16" }) }),
|
@@ -4627,13 +4677,13 @@ var LayerTree = ({
|
|
4627
4677
|
};
|
4628
4678
|
|
4629
4679
|
// components/Puck/components/Outline/index.tsx
|
4630
|
-
var
|
4680
|
+
var import_react30 = require("react");
|
4631
4681
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
4632
4682
|
var Outline = () => {
|
4633
4683
|
const { dispatch, state, overrides, config } = useAppContext();
|
4634
4684
|
const { data, ui } = state;
|
4635
4685
|
const { itemSelector } = ui;
|
4636
|
-
const setItemSelector = (0,
|
4686
|
+
const setItemSelector = (0, import_react30.useCallback)(
|
4637
4687
|
(newItemSelector) => {
|
4638
4688
|
dispatch({
|
4639
4689
|
type: "setUi",
|
@@ -4642,7 +4692,7 @@ var Outline = () => {
|
|
4642
4692
|
},
|
4643
4693
|
[]
|
4644
4694
|
);
|
4645
|
-
const Wrapper = (0,
|
4695
|
+
const Wrapper = (0, import_react30.useMemo)(() => overrides.outline || "div", [overrides]);
|
4646
4696
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
4647
4697
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
4648
4698
|
LayerTree,
|
@@ -4731,19 +4781,19 @@ function usePuckHistory({
|
|
4731
4781
|
|
4732
4782
|
// lib/use-history-store.ts
|
4733
4783
|
init_react_import();
|
4734
|
-
var
|
4784
|
+
var import_react31 = require("react");
|
4735
4785
|
var import_use_debounce3 = require("use-debounce");
|
4736
4786
|
var EMPTY_HISTORY_INDEX = 0;
|
4737
4787
|
function useHistoryStore(initialHistory) {
|
4738
4788
|
var _a, _b;
|
4739
|
-
const [histories, setHistories] = (0,
|
4789
|
+
const [histories, setHistories] = (0, import_react31.useState)(
|
4740
4790
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
4741
4791
|
);
|
4742
4792
|
const updateHistories = (histories2) => {
|
4743
4793
|
setHistories(histories2);
|
4744
4794
|
setIndex(histories2.length - 1);
|
4745
4795
|
};
|
4746
|
-
const [index, setIndex] = (0,
|
4796
|
+
const [index, setIndex] = (0, import_react31.useState)(
|
4747
4797
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
4748
4798
|
);
|
4749
4799
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -4903,11 +4953,11 @@ var getBox = function getBox2(el) {
|
|
4903
4953
|
};
|
4904
4954
|
|
4905
4955
|
// components/Puck/components/Canvas/index.tsx
|
4906
|
-
var
|
4956
|
+
var import_react33 = require("react");
|
4907
4957
|
|
4908
4958
|
// components/ViewportControls/index.tsx
|
4909
4959
|
init_react_import();
|
4910
|
-
var
|
4960
|
+
var import_react32 = require("react");
|
4911
4961
|
|
4912
4962
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
4913
4963
|
init_react_import();
|
@@ -4930,8 +4980,8 @@ var ViewportButton = ({
|
|
4930
4980
|
onClick
|
4931
4981
|
}) => {
|
4932
4982
|
const { state } = useAppContext();
|
4933
|
-
const [isActive, setIsActive] = (0,
|
4934
|
-
(0,
|
4983
|
+
const [isActive, setIsActive] = (0, import_react32.useState)(false);
|
4984
|
+
(0, import_react32.useEffect)(() => {
|
4935
4985
|
setIsActive(width === state.ui.viewports.current.width);
|
4936
4986
|
}, [width, state.ui.viewports.current.width]);
|
4937
4987
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
@@ -4967,7 +5017,7 @@ var ViewportControls = ({
|
|
4967
5017
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
4968
5018
|
(option) => option.value === autoZoom
|
4969
5019
|
);
|
4970
|
-
const zoomOptions = (0,
|
5020
|
+
const zoomOptions = (0, import_react32.useMemo)(
|
4971
5021
|
() => [
|
4972
5022
|
...defaultZoomOptions,
|
4973
5023
|
...defaultsContainAutoZoom ? [] : [
|
@@ -5090,17 +5140,17 @@ var Canvas = () => {
|
|
5090
5140
|
const { status, iframe } = useAppContext();
|
5091
5141
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
5092
5142
|
const { ui } = state;
|
5093
|
-
const frameRef = (0,
|
5094
|
-
const [showTransition, setShowTransition] = (0,
|
5095
|
-
const defaultRender = (0,
|
5143
|
+
const frameRef = (0, import_react33.useRef)(null);
|
5144
|
+
const [showTransition, setShowTransition] = (0, import_react33.useState)(false);
|
5145
|
+
const defaultRender = (0, import_react33.useMemo)(() => {
|
5096
5146
|
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children });
|
5097
5147
|
return PuckDefault;
|
5098
5148
|
}, []);
|
5099
|
-
const CustomPreview = (0,
|
5149
|
+
const CustomPreview = (0, import_react33.useMemo)(
|
5100
5150
|
() => overrides.preview || defaultRender,
|
5101
5151
|
[overrides]
|
5102
5152
|
);
|
5103
|
-
const getFrameDimensions = (0,
|
5153
|
+
const getFrameDimensions = (0, import_react33.useCallback)(() => {
|
5104
5154
|
if (frameRef.current) {
|
5105
5155
|
const frame = frameRef.current;
|
5106
5156
|
const box = getBox(frame);
|
@@ -5108,7 +5158,7 @@ var Canvas = () => {
|
|
5108
5158
|
}
|
5109
5159
|
return { width: 0, height: 0 };
|
5110
5160
|
}, [frameRef]);
|
5111
|
-
const resetAutoZoom = (0,
|
5161
|
+
const resetAutoZoom = (0, import_react33.useCallback)(
|
5112
5162
|
(ui2 = state.ui) => {
|
5113
5163
|
if (frameRef.current) {
|
5114
5164
|
setZoomConfig(
|
@@ -5118,11 +5168,11 @@ var Canvas = () => {
|
|
5118
5168
|
},
|
5119
5169
|
[frameRef, zoomConfig, state.ui]
|
5120
5170
|
);
|
5121
|
-
(0,
|
5171
|
+
(0, import_react33.useEffect)(() => {
|
5122
5172
|
setShowTransition(false);
|
5123
5173
|
resetAutoZoom();
|
5124
5174
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
5125
|
-
(0,
|
5175
|
+
(0, import_react33.useEffect)(() => {
|
5126
5176
|
const { height: frameHeight } = getFrameDimensions();
|
5127
5177
|
if (ui.viewports.current.height === "auto") {
|
5128
5178
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -5130,13 +5180,13 @@ var Canvas = () => {
|
|
5130
5180
|
}));
|
5131
5181
|
}
|
5132
5182
|
}, [zoomConfig.zoom]);
|
5133
|
-
(0,
|
5183
|
+
(0, import_react33.useEffect)(() => {
|
5134
5184
|
if (ZOOM_ON_CHANGE) {
|
5135
5185
|
setShowTransition(true);
|
5136
5186
|
resetAutoZoom(ui);
|
5137
5187
|
}
|
5138
5188
|
}, [ui.viewports.current.width]);
|
5139
|
-
(0,
|
5189
|
+
(0, import_react33.useEffect)(() => {
|
5140
5190
|
const observer = new ResizeObserver(() => {
|
5141
5191
|
setShowTransition(false);
|
5142
5192
|
resetAutoZoom();
|
@@ -5148,8 +5198,8 @@ var Canvas = () => {
|
|
5148
5198
|
observer.disconnect();
|
5149
5199
|
};
|
5150
5200
|
}, []);
|
5151
|
-
const [showLoader, setShowLoader] = (0,
|
5152
|
-
(0,
|
5201
|
+
const [showLoader, setShowLoader] = (0, import_react33.useState)(false);
|
5202
|
+
(0, import_react33.useEffect)(() => {
|
5153
5203
|
setTimeout(() => {
|
5154
5204
|
setShowLoader(true);
|
5155
5205
|
}, 500);
|
@@ -5252,7 +5302,7 @@ var insertComponent = (componentType, zone, index, {
|
|
5252
5302
|
|
5253
5303
|
// lib/use-loaded-overrides.ts
|
5254
5304
|
init_react_import();
|
5255
|
-
var
|
5305
|
+
var import_react34 = require("react");
|
5256
5306
|
|
5257
5307
|
// lib/load-overrides.ts
|
5258
5308
|
init_react_import();
|
@@ -5291,7 +5341,7 @@ var useLoadedOverrides = ({
|
|
5291
5341
|
overrides,
|
5292
5342
|
plugins
|
5293
5343
|
}) => {
|
5294
|
-
return (0,
|
5344
|
+
return (0, import_react34.useMemo)(() => {
|
5295
5345
|
return loadOverrides({ overrides, plugins });
|
5296
5346
|
}, [plugins, overrides]);
|
5297
5347
|
};
|
@@ -5330,7 +5380,7 @@ function Puck({
|
|
5330
5380
|
enabled: true,
|
5331
5381
|
waitForStyles: true
|
5332
5382
|
}, _iframe);
|
5333
|
-
const [generatedAppState] = (0,
|
5383
|
+
const [generatedAppState] = (0, import_react35.useState)(() => {
|
5334
5384
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i;
|
5335
5385
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
5336
5386
|
let clientUiState = {};
|
@@ -5402,22 +5452,22 @@ function Puck({
|
|
5402
5452
|
histories,
|
5403
5453
|
index: initialHistoryIndex
|
5404
5454
|
});
|
5405
|
-
const [reducer] = (0,
|
5455
|
+
const [reducer] = (0, import_react35.useState)(
|
5406
5456
|
() => createReducer({
|
5407
5457
|
config,
|
5408
5458
|
record: historyStore.record,
|
5409
5459
|
onAction
|
5410
5460
|
})
|
5411
5461
|
);
|
5412
|
-
const [appState, dispatch] = (0,
|
5462
|
+
const [appState, dispatch] = (0, import_react35.useReducer)(
|
5413
5463
|
reducer,
|
5414
5464
|
flushZones(initialAppState)
|
5415
5465
|
);
|
5416
5466
|
const { data, ui } = appState;
|
5417
5467
|
const history = usePuckHistory({ dispatch, initialAppState, historyStore });
|
5418
|
-
const [menuOpen, setMenuOpen] = (0,
|
5468
|
+
const [menuOpen, setMenuOpen] = (0, import_react35.useState)(false);
|
5419
5469
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
5420
|
-
const setItemSelector = (0,
|
5470
|
+
const setItemSelector = (0, import_react35.useCallback)(
|
5421
5471
|
(newItemSelector) => {
|
5422
5472
|
if (newItemSelector === itemSelector) return;
|
5423
5473
|
dispatch({
|
@@ -5429,13 +5479,13 @@ function Puck({
|
|
5429
5479
|
[itemSelector]
|
5430
5480
|
);
|
5431
5481
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
5432
|
-
(0,
|
5482
|
+
(0, import_react35.useEffect)(() => {
|
5433
5483
|
if (onChange) onChange(data);
|
5434
5484
|
}, [data]);
|
5435
5485
|
const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
|
5436
|
-
const [draggedItem, setDraggedItem] = (0,
|
5486
|
+
const [draggedItem, setDraggedItem] = (0, import_react35.useState)();
|
5437
5487
|
const rootProps = data.root.props || data.root;
|
5438
|
-
const toggleSidebars = (0,
|
5488
|
+
const toggleSidebars = (0, import_react35.useCallback)(
|
5439
5489
|
(sidebar) => {
|
5440
5490
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
5441
5491
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -5449,7 +5499,7 @@ function Puck({
|
|
5449
5499
|
},
|
5450
5500
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
5451
5501
|
);
|
5452
|
-
(0,
|
5502
|
+
(0, import_react35.useEffect)(() => {
|
5453
5503
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
5454
5504
|
dispatch({
|
5455
5505
|
type: "setUi",
|
@@ -5472,7 +5522,7 @@ function Puck({
|
|
5472
5522
|
window.removeEventListener("resize", handleResize);
|
5473
5523
|
};
|
5474
5524
|
}, []);
|
5475
|
-
const defaultHeaderRender = (0,
|
5525
|
+
const defaultHeaderRender = (0, import_react35.useMemo)(() => {
|
5476
5526
|
if (renderHeader) {
|
5477
5527
|
console.warn(
|
5478
5528
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -5486,7 +5536,7 @@ function Puck({
|
|
5486
5536
|
}
|
5487
5537
|
return DefaultOverride;
|
5488
5538
|
}, [renderHeader]);
|
5489
|
-
const defaultHeaderActionsRender = (0,
|
5539
|
+
const defaultHeaderActionsRender = (0, import_react35.useMemo)(() => {
|
5490
5540
|
if (renderHeaderActions) {
|
5491
5541
|
console.warn(
|
5492
5542
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -5503,20 +5553,20 @@ function Puck({
|
|
5503
5553
|
overrides,
|
5504
5554
|
plugins
|
5505
5555
|
});
|
5506
|
-
const CustomPuck = (0,
|
5556
|
+
const CustomPuck = (0, import_react35.useMemo)(
|
5507
5557
|
() => loadedOverrides.puck || DefaultOverride,
|
5508
5558
|
[loadedOverrides]
|
5509
5559
|
);
|
5510
|
-
const CustomHeader = (0,
|
5560
|
+
const CustomHeader = (0, import_react35.useMemo)(
|
5511
5561
|
() => loadedOverrides.header || defaultHeaderRender,
|
5512
5562
|
[loadedOverrides]
|
5513
5563
|
);
|
5514
|
-
const CustomHeaderActions = (0,
|
5564
|
+
const CustomHeaderActions = (0, import_react35.useMemo)(
|
5515
5565
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
5516
5566
|
[loadedOverrides]
|
5517
5567
|
);
|
5518
|
-
const [mounted, setMounted] = (0,
|
5519
|
-
(0,
|
5568
|
+
const [mounted, setMounted] = (0, import_react35.useState)(false);
|
5569
|
+
(0, import_react35.useEffect)(() => {
|
5520
5570
|
setMounted(true);
|
5521
5571
|
}, []);
|
5522
5572
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|
@@ -5919,6 +5969,11 @@ var usePuck = () => {
|
|
5919
5969
|
getPermissions,
|
5920
5970
|
refreshPermissions
|
5921
5971
|
} = useAppContext();
|
5972
|
+
if (dispatch === defaultContext.dispatch) {
|
5973
|
+
throw new Error(
|
5974
|
+
"usePuck was used outside of the <Puck> component. The usePuck hook must be rendered within the <Puck> context as children, overrides or plugins as described in https://puckeditor.com/docs/api-reference/functions/use-puck."
|
5975
|
+
);
|
5976
|
+
}
|
5922
5977
|
return {
|
5923
5978
|
appState,
|
5924
5979
|
config,
|