@measured/puck 0.14.2-canary.e6e01c6 → 0.14.3-canary.061cc2a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.css +0 -3
- package/dist/index.d.ts +4 -1
- package/dist/index.js +391 -156
- package/package.json +6 -3
package/README.md
CHANGED
@@ -108,7 +108,7 @@ Available recipes include:
|
|
108
108
|
|
109
109
|
Puck is developed and maintained by **Measured**, a small group of industry veterans with decades of experience helping companies solve hard UI problems. We offer consultancy and development services for scale-ups, SMEs and enterprises.
|
110
110
|
|
111
|
-
If you need support integrating Puck or creating a beautiful component library, please reach out via [
|
111
|
+
If you need support integrating Puck or creating a beautiful component library, please reach out via the [Measured](https://measured.co) website.
|
112
112
|
|
113
113
|
## License
|
114
114
|
|
package/dist/index.css
CHANGED
package/dist/index.d.ts
CHANGED
@@ -229,7 +229,7 @@ type IframeConfig = {
|
|
229
229
|
enabled?: boolean;
|
230
230
|
};
|
231
231
|
|
232
|
-
declare function Puck<UserConfig extends Config = Config>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, plugins, overrides, renderHeader, renderHeaderActions, headerTitle, headerPath, viewports, iframe, }: {
|
232
|
+
declare function Puck<UserConfig extends Config = Config>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, plugins, overrides, renderHeader, renderHeaderActions, headerTitle, headerPath, viewports, iframe, dnd, }: {
|
233
233
|
children?: ReactNode;
|
234
234
|
config: UserConfig;
|
235
235
|
data: Data;
|
@@ -251,6 +251,9 @@ declare function Puck<UserConfig extends Config = Config>({ children, config, da
|
|
251
251
|
headerPath?: string;
|
252
252
|
viewports?: Viewports;
|
253
253
|
iframe?: IframeConfig;
|
254
|
+
dnd?: {
|
255
|
+
disableAutoScroll?: boolean;
|
256
|
+
};
|
254
257
|
}): react_jsx_runtime.JSX.Element;
|
255
258
|
declare namespace Puck {
|
256
259
|
var Components: () => react_jsx_runtime.JSX.Element;
|
package/dist/index.js
CHANGED
@@ -8033,9 +8033,9 @@ var require_react_dom_development = __commonJS({
|
|
8033
8033
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
|
8034
8034
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
8035
8035
|
}
|
8036
|
-
var
|
8036
|
+
var React3 = require("react");
|
8037
8037
|
var Scheduler = require_scheduler();
|
8038
|
-
var ReactSharedInternals =
|
8038
|
+
var ReactSharedInternals = React3.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
8039
8039
|
var suppressWarning = false;
|
8040
8040
|
function setSuppressWarning(newSuppressWarning) {
|
8041
8041
|
{
|
@@ -8084,7 +8084,7 @@ var require_react_dom_development = __commonJS({
|
|
8084
8084
|
var HostPortal = 4;
|
8085
8085
|
var HostComponent = 5;
|
8086
8086
|
var HostText = 6;
|
8087
|
-
var
|
8087
|
+
var Fragment18 = 7;
|
8088
8088
|
var Mode = 8;
|
8089
8089
|
var ContextConsumer = 9;
|
8090
8090
|
var ContextProvider = 10;
|
@@ -9240,7 +9240,7 @@ var require_react_dom_development = __commonJS({
|
|
9240
9240
|
return "DehydratedFragment";
|
9241
9241
|
case ForwardRef:
|
9242
9242
|
return getWrappedName$1(type, type.render, "ForwardRef");
|
9243
|
-
case
|
9243
|
+
case Fragment18:
|
9244
9244
|
return "Fragment";
|
9245
9245
|
case HostComponent:
|
9246
9246
|
return type;
|
@@ -9640,7 +9640,7 @@ var require_react_dom_development = __commonJS({
|
|
9640
9640
|
{
|
9641
9641
|
if (props.value == null) {
|
9642
9642
|
if (typeof props.children === "object" && props.children !== null) {
|
9643
|
-
|
9643
|
+
React3.Children.forEach(props.children, function(child) {
|
9644
9644
|
if (child == null) {
|
9645
9645
|
return;
|
9646
9646
|
}
|
@@ -18087,7 +18087,7 @@ var require_react_dom_development = __commonJS({
|
|
18087
18087
|
}
|
18088
18088
|
}
|
18089
18089
|
var fakeInternalInstance = {};
|
18090
|
-
var emptyRefsObject = new
|
18090
|
+
var emptyRefsObject = new React3.Component().refs;
|
18091
18091
|
var didWarnAboutStateAssignmentForComponent;
|
18092
18092
|
var didWarnAboutUninitializedState;
|
18093
18093
|
var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;
|
@@ -18911,7 +18911,7 @@ var require_react_dom_development = __commonJS({
|
|
18911
18911
|
}
|
18912
18912
|
}
|
18913
18913
|
function updateFragment2(returnFiber, current2, fragment, lanes, key) {
|
18914
|
-
if (current2 === null || current2.tag !==
|
18914
|
+
if (current2 === null || current2.tag !== Fragment18) {
|
18915
18915
|
var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);
|
18916
18916
|
created.return = returnFiber;
|
18917
18917
|
return created;
|
@@ -19314,7 +19314,7 @@ var require_react_dom_development = __commonJS({
|
|
19314
19314
|
if (child.key === key) {
|
19315
19315
|
var elementType = element.type;
|
19316
19316
|
if (elementType === REACT_FRAGMENT_TYPE) {
|
19317
|
-
if (child.tag ===
|
19317
|
+
if (child.tag === Fragment18) {
|
19318
19318
|
deleteRemainingChildren(returnFiber, child.sibling);
|
19319
19319
|
var existing = useFiber(child, element.props.children);
|
19320
19320
|
existing.return = returnFiber;
|
@@ -23489,7 +23489,7 @@ var require_react_dom_development = __commonJS({
|
|
23489
23489
|
var _resolvedProps2 = workInProgress2.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);
|
23490
23490
|
return updateForwardRef(current2, workInProgress2, type, _resolvedProps2, renderLanes2);
|
23491
23491
|
}
|
23492
|
-
case
|
23492
|
+
case Fragment18:
|
23493
23493
|
return updateFragment(current2, workInProgress2, renderLanes2);
|
23494
23494
|
case Mode:
|
23495
23495
|
return updateMode(current2, workInProgress2, renderLanes2);
|
@@ -23762,7 +23762,7 @@ var require_react_dom_development = __commonJS({
|
|
23762
23762
|
case SimpleMemoComponent:
|
23763
23763
|
case FunctionComponent:
|
23764
23764
|
case ForwardRef:
|
23765
|
-
case
|
23765
|
+
case Fragment18:
|
23766
23766
|
case Mode:
|
23767
23767
|
case Profiler:
|
23768
23768
|
case ContextConsumer:
|
@@ -28021,7 +28021,7 @@ var require_react_dom_development = __commonJS({
|
|
28021
28021
|
return fiber;
|
28022
28022
|
}
|
28023
28023
|
function createFiberFromFragment(elements, mode, lanes, key) {
|
28024
|
-
var fiber = createFiber(
|
28024
|
+
var fiber = createFiber(Fragment18, elements, key, mode);
|
28025
28025
|
fiber.lanes = lanes;
|
28026
28026
|
return fiber;
|
28027
28027
|
}
|
@@ -29311,9 +29311,10 @@ var defaultViewports = [
|
|
29311
29311
|
];
|
29312
29312
|
|
29313
29313
|
// components/Puck/context.tsx
|
29314
|
+
var import_ua_parser_js = require("ua-parser-js");
|
29314
29315
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
29315
29316
|
var defaultAppState = {
|
29316
|
-
data: { content: [], root: { props: {
|
29317
|
+
data: { content: [], root: { props: {} } },
|
29317
29318
|
ui: {
|
29318
29319
|
leftSideBarVisible: true,
|
29319
29320
|
rightSideBarVisible: true,
|
@@ -29350,7 +29351,8 @@ var defaultContext = {
|
|
29350
29351
|
setZoomConfig: () => null,
|
29351
29352
|
status: "LOADING",
|
29352
29353
|
setStatus: () => null,
|
29353
|
-
iframe: {}
|
29354
|
+
iframe: {},
|
29355
|
+
safariFallbackMode: false
|
29354
29356
|
};
|
29355
29357
|
var appContext = (0, import_react3.createContext)(defaultContext);
|
29356
29358
|
var AppProvider = ({
|
@@ -29362,10 +29364,34 @@ var AppProvider = ({
|
|
29362
29364
|
(0, import_react3.useEffect)(() => {
|
29363
29365
|
setStatus("MOUNTED");
|
29364
29366
|
}, []);
|
29367
|
+
const [safariFallbackMode, setSafariFallbackMode] = (0, import_react3.useState)(false);
|
29368
|
+
(0, import_react3.useEffect)(() => {
|
29369
|
+
var _a, _b, _c;
|
29370
|
+
const ua = new import_ua_parser_js.UAParser(navigator.userAgent);
|
29371
|
+
const { browser } = ua.getResult();
|
29372
|
+
if (browser.name === "Safari" && (((_a = browser.version) == null ? void 0 : _a.indexOf("17.2.")) || ((_b = browser.version) == null ? void 0 : _b.indexOf("17.3.")) || ((_c = browser.version) == null ? void 0 : _c.indexOf("17.4.")))) {
|
29373
|
+
if (process.env.NODE_ENV !== "production" && value.iframe.enabled) {
|
29374
|
+
console.warn(
|
29375
|
+
`Detected Safari ${browser.version}, which contains a bug that prevents Puck DropZones from detecting a mouseover event within an iframe. This affects Safari versions 17.2, 17.3 and 17.4.
|
29376
|
+
|
29377
|
+
Running in compatibility mode, which may have some DropZone side-effects. Alternatively, consider disabling iframes: https://puckeditor.com/docs/integrating-puck/viewports#opting-out-of-iframes.
|
29378
|
+
|
29379
|
+
See https://github.com/measuredco/puck/issues/411 for more information. This message will not show in production.`
|
29380
|
+
);
|
29381
|
+
}
|
29382
|
+
setSafariFallbackMode(true);
|
29383
|
+
}
|
29384
|
+
}, []);
|
29365
29385
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
29366
29386
|
appContext.Provider,
|
29367
29387
|
{
|
29368
|
-
value: __spreadProps(__spreadValues({}, value), {
|
29388
|
+
value: __spreadProps(__spreadValues({}, value), {
|
29389
|
+
zoomConfig,
|
29390
|
+
setZoomConfig,
|
29391
|
+
status,
|
29392
|
+
setStatus,
|
29393
|
+
safariFallbackMode
|
29394
|
+
}),
|
29369
29395
|
children
|
29370
29396
|
}
|
29371
29397
|
);
|
@@ -30193,7 +30219,11 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
|
|
30193
30219
|
let isEnabled = userWillDrag;
|
30194
30220
|
if (userIsDragging) {
|
30195
30221
|
if (draggingNewComponent) {
|
30196
|
-
|
30222
|
+
if (appContext2.safariFallbackMode) {
|
30223
|
+
isEnabled = true;
|
30224
|
+
} else {
|
30225
|
+
isEnabled = hoveringOverArea;
|
30226
|
+
}
|
30197
30227
|
} else {
|
30198
30228
|
isEnabled = draggingOverArea && hoveringOverZone;
|
30199
30229
|
}
|
@@ -30498,7 +30528,7 @@ var IconButton = ({
|
|
30498
30528
|
|
30499
30529
|
// components/Puck/index.tsx
|
30500
30530
|
init_react_import();
|
30501
|
-
var
|
30531
|
+
var import_react29 = require("react");
|
30502
30532
|
|
30503
30533
|
// lib/use-placeholder-style.ts
|
30504
30534
|
init_react_import();
|
@@ -31183,7 +31213,7 @@ var useResolvedData = (appState, config, dispatch) => {
|
|
31183
31213
|
const [componentState, setComponentState] = (0, import_react13.useState)({});
|
31184
31214
|
const deferredSetStates = {};
|
31185
31215
|
const setComponentLoading = (0, import_react13.useCallback)(
|
31186
|
-
(id, loading,
|
31216
|
+
(id, loading, defer2 = 0) => {
|
31187
31217
|
if (deferredSetStates[id]) {
|
31188
31218
|
clearTimeout(deferredSetStates[id]);
|
31189
31219
|
delete deferredSetStates[id];
|
@@ -31193,7 +31223,7 @@ var useResolvedData = (appState, config, dispatch) => {
|
|
31193
31223
|
[id]: __spreadProps(__spreadValues({}, prev[id]), { loading })
|
31194
31224
|
}));
|
31195
31225
|
delete deferredSetStates[id];
|
31196
|
-
},
|
31226
|
+
}, defer2);
|
31197
31227
|
},
|
31198
31228
|
[]
|
31199
31229
|
);
|
@@ -31279,7 +31309,7 @@ var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
31279
31309
|
var getClassName9 = get_class_name_factory_default("MenuBar", styles_module_default7);
|
31280
31310
|
var MenuBar = ({
|
31281
31311
|
appState,
|
31282
|
-
data = { content: [], root: {
|
31312
|
+
data = { content: [], root: {} },
|
31283
31313
|
dispatch,
|
31284
31314
|
menuOpen = false,
|
31285
31315
|
onPublish,
|
@@ -32031,7 +32061,7 @@ var RadioField = ({
|
|
32031
32061
|
onChange(e.currentTarget.value);
|
32032
32062
|
},
|
32033
32063
|
disabled: readOnly,
|
32034
|
-
|
32064
|
+
checked: value === option.value
|
32035
32065
|
}
|
32036
32066
|
),
|
32037
32067
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName14("radioInner"), children: option.label || option.value })
|
@@ -32073,7 +32103,7 @@ var SelectField = ({
|
|
32073
32103
|
disabled: readOnly,
|
32074
32104
|
onChange: (e) => {
|
32075
32105
|
if (e.currentTarget.value === "true" || e.currentTarget.value === "false") {
|
32076
|
-
onChange(
|
32106
|
+
onChange(JSON.parse(e.currentTarget.value));
|
32077
32107
|
return;
|
32078
32108
|
}
|
32079
32109
|
onChange(e.currentTarget.value);
|
@@ -32597,19 +32627,218 @@ var Components = () => {
|
|
32597
32627
|
|
32598
32628
|
// components/Puck/components/Preview/index.tsx
|
32599
32629
|
init_react_import();
|
32600
|
-
var
|
32601
|
-
|
32630
|
+
var import_react23 = require("react");
|
32631
|
+
|
32632
|
+
// components/AutoFrame/index.tsx
|
32633
|
+
init_react_import();
|
32634
|
+
var import_react22 = __toESM(require("react"));
|
32635
|
+
var import_react_frame_component = __toESM(require("react-frame-component"));
|
32636
|
+
var import_object_hash = __toESM(require("object-hash"));
|
32637
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
32638
|
+
var styleSelector = 'style, link[rel="stylesheet"]';
|
32639
|
+
var collectStyles = (doc) => {
|
32640
|
+
const collected = [];
|
32641
|
+
doc.head.querySelectorAll(styleSelector).forEach((style) => {
|
32642
|
+
collected.push(style);
|
32643
|
+
});
|
32644
|
+
return collected;
|
32645
|
+
};
|
32646
|
+
var getStyleSheet = (el) => {
|
32647
|
+
return Array.from(document.styleSheets).find((ss) => {
|
32648
|
+
const ownerNode = ss.ownerNode;
|
32649
|
+
return ownerNode.href === el.href;
|
32650
|
+
});
|
32651
|
+
};
|
32652
|
+
var getStyles = (styleSheet) => {
|
32653
|
+
if (styleSheet) {
|
32654
|
+
try {
|
32655
|
+
return [...styleSheet.cssRules].map((rule) => rule.cssText).join("");
|
32656
|
+
} catch (e) {
|
32657
|
+
console.warn(
|
32658
|
+
"Access to stylesheet %s is denied. Ignoring\u2026",
|
32659
|
+
styleSheet.href
|
32660
|
+
);
|
32661
|
+
}
|
32662
|
+
}
|
32663
|
+
return "";
|
32664
|
+
};
|
32665
|
+
var defer = (fn) => setTimeout(fn, 0);
|
32666
|
+
var CopyHostStyles = ({
|
32667
|
+
children,
|
32668
|
+
debug = false,
|
32669
|
+
onStylesLoaded = () => null
|
32670
|
+
}) => {
|
32671
|
+
const { document: doc, window: win } = (0, import_react_frame_component.useFrame)();
|
32672
|
+
(0, import_react22.useEffect)(() => {
|
32673
|
+
if (!win || !doc) {
|
32674
|
+
return () => {
|
32675
|
+
};
|
32676
|
+
}
|
32677
|
+
let elements = [];
|
32678
|
+
const hashes = {};
|
32679
|
+
const lookupEl = (el) => elements.findIndex((elementMap) => elementMap.original === el);
|
32680
|
+
const mirrorEl = (el, inlineStyles = false) => __async(void 0, null, function* () {
|
32681
|
+
let mirror;
|
32682
|
+
if (el.nodeName === "LINK" && inlineStyles) {
|
32683
|
+
mirror = document.createElement("style");
|
32684
|
+
mirror.type = "text/css";
|
32685
|
+
let styleSheet = getStyleSheet(el);
|
32686
|
+
if (!styleSheet) {
|
32687
|
+
yield new Promise((resolve) => {
|
32688
|
+
const fn = () => {
|
32689
|
+
resolve();
|
32690
|
+
el.removeEventListener("load", fn);
|
32691
|
+
};
|
32692
|
+
el.addEventListener("load", fn);
|
32693
|
+
});
|
32694
|
+
styleSheet = getStyleSheet(el);
|
32695
|
+
}
|
32696
|
+
const styles = getStyles(styleSheet);
|
32697
|
+
if (!styles) {
|
32698
|
+
if (debug) {
|
32699
|
+
console.warn(
|
32700
|
+
`Tried to load styles for link element, but couldn't find them. Skipping...`
|
32701
|
+
);
|
32702
|
+
}
|
32703
|
+
return;
|
32704
|
+
}
|
32705
|
+
mirror.innerHTML = styles;
|
32706
|
+
mirror.setAttribute("data-href", el.getAttribute("href"));
|
32707
|
+
} else {
|
32708
|
+
mirror = el.cloneNode(true);
|
32709
|
+
}
|
32710
|
+
return mirror;
|
32711
|
+
});
|
32712
|
+
const addEl = (el) => __async(void 0, null, function* () {
|
32713
|
+
const index = lookupEl(el);
|
32714
|
+
if (index > -1) {
|
32715
|
+
if (debug)
|
32716
|
+
console.log(
|
32717
|
+
`Tried to add an element that was already mirrored. Updating instead...`
|
32718
|
+
);
|
32719
|
+
elements[index].mirror.innerText = el.innerText;
|
32720
|
+
return;
|
32721
|
+
}
|
32722
|
+
const mirror = yield mirrorEl(el);
|
32723
|
+
if (!mirror) {
|
32724
|
+
return;
|
32725
|
+
}
|
32726
|
+
const elHash = (0, import_object_hash.default)(mirror.outerHTML);
|
32727
|
+
if (hashes[elHash]) {
|
32728
|
+
if (debug)
|
32729
|
+
console.log(
|
32730
|
+
`iframe already contains element that is being mirrored. Skipping...`
|
32731
|
+
);
|
32732
|
+
return;
|
32733
|
+
}
|
32734
|
+
hashes[elHash] = true;
|
32735
|
+
doc.head.append(mirror);
|
32736
|
+
elements.push({ original: el, mirror });
|
32737
|
+
if (debug)
|
32738
|
+
console.log(`Added style node ${el.outerHTML}`);
|
32739
|
+
});
|
32740
|
+
const removeEl = (el) => {
|
32741
|
+
var _a, _b;
|
32742
|
+
const index = lookupEl(el);
|
32743
|
+
if (index === -1) {
|
32744
|
+
if (debug)
|
32745
|
+
console.log(
|
32746
|
+
`Tried to remove an element that did not exist. Skipping...`
|
32747
|
+
);
|
32748
|
+
return;
|
32749
|
+
}
|
32750
|
+
const elHash = (0, import_object_hash.default)(el.outerHTML);
|
32751
|
+
(_b = (_a = elements[index]) == null ? void 0 : _a.mirror) == null ? void 0 : _b.remove();
|
32752
|
+
delete hashes[elHash];
|
32753
|
+
if (debug)
|
32754
|
+
console.log(`Removed style node ${el.outerHTML}`);
|
32755
|
+
};
|
32756
|
+
const observer = new MutationObserver((mutations) => {
|
32757
|
+
mutations.forEach((mutation) => {
|
32758
|
+
if (mutation.type === "childList") {
|
32759
|
+
mutation.addedNodes.forEach((node) => {
|
32760
|
+
if (node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE) {
|
32761
|
+
const el = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
|
32762
|
+
if (el && el.matches(styleSelector)) {
|
32763
|
+
defer(() => addEl(el));
|
32764
|
+
}
|
32765
|
+
}
|
32766
|
+
});
|
32767
|
+
mutation.removedNodes.forEach((node) => {
|
32768
|
+
if (node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE) {
|
32769
|
+
const el = node.nodeType === Node.TEXT_NODE ? node.parentElement : node;
|
32770
|
+
if (el && el.matches(styleSelector)) {
|
32771
|
+
defer(() => removeEl(el));
|
32772
|
+
}
|
32773
|
+
}
|
32774
|
+
});
|
32775
|
+
}
|
32776
|
+
});
|
32777
|
+
});
|
32778
|
+
const parentDocument = win.parent.document;
|
32779
|
+
const collectedStyles = collectStyles(parentDocument);
|
32780
|
+
const hrefs = [];
|
32781
|
+
let stylesLoaded = 0;
|
32782
|
+
Promise.all(
|
32783
|
+
collectedStyles.map((styleNode, i) => __async(void 0, null, function* () {
|
32784
|
+
if (styleNode.nodeName === "LINK") {
|
32785
|
+
const linkHref = styleNode.href;
|
32786
|
+
if (hrefs.indexOf(linkHref) > -1) {
|
32787
|
+
return;
|
32788
|
+
}
|
32789
|
+
hrefs.push(linkHref);
|
32790
|
+
}
|
32791
|
+
const mirror = yield mirrorEl(styleNode);
|
32792
|
+
if (!mirror)
|
32793
|
+
return;
|
32794
|
+
elements.push({ original: styleNode, mirror });
|
32795
|
+
return mirror;
|
32796
|
+
}))
|
32797
|
+
).then((mirrorStyles) => {
|
32798
|
+
const filtered = mirrorStyles.filter(
|
32799
|
+
(el) => typeof el !== "undefined"
|
32800
|
+
);
|
32801
|
+
filtered.forEach((mirror) => {
|
32802
|
+
mirror.onload = () => {
|
32803
|
+
stylesLoaded = stylesLoaded + 1;
|
32804
|
+
if (stylesLoaded >= elements.length) {
|
32805
|
+
onStylesLoaded();
|
32806
|
+
}
|
32807
|
+
};
|
32808
|
+
});
|
32809
|
+
doc.head.innerHTML = "";
|
32810
|
+
doc.head.append(...filtered);
|
32811
|
+
observer.observe(parentDocument.head, { childList: true, subtree: true });
|
32812
|
+
filtered.forEach((el) => {
|
32813
|
+
const elHash = (0, import_object_hash.default)(el.outerHTML);
|
32814
|
+
hashes[elHash] = true;
|
32815
|
+
});
|
32816
|
+
});
|
32817
|
+
return () => {
|
32818
|
+
observer.disconnect();
|
32819
|
+
};
|
32820
|
+
}, []);
|
32821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children });
|
32822
|
+
};
|
32823
|
+
var AutoFrameComponent = import_react22.default.forwardRef(
|
32824
|
+
function(_a, ref) {
|
32825
|
+
var _b = _a, { children, debug, onStylesLoaded } = _b, props = __objRest(_b, ["children", "debug", "onStylesLoaded"]);
|
32826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_frame_component.default, __spreadProps(__spreadValues({}, props), { ref, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CopyHostStyles, { debug, onStylesLoaded, children }) }));
|
32827
|
+
}
|
32828
|
+
);
|
32829
|
+
AutoFrameComponent.displayName = "AutoFrameComponent";
|
32830
|
+
var AutoFrame_default = AutoFrameComponent;
|
32602
32831
|
|
32603
32832
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Preview/styles.module.css#css-module
|
32604
32833
|
init_react_import();
|
32605
32834
|
var styles_module_default16 = { "PuckPreview": "_PuckPreview_rxwlr_1", "PuckPreview-frame": "_PuckPreview-frame_rxwlr_5" };
|
32606
32835
|
|
32607
32836
|
// components/Puck/components/Preview/index.tsx
|
32608
|
-
var
|
32837
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
32609
32838
|
var getClassName21 = get_class_name_factory_default("PuckPreview", styles_module_default16);
|
32610
32839
|
var Preview = ({ id = "puck-preview" }) => {
|
32611
32840
|
const { config, dispatch, state, setStatus, iframe } = useAppContext();
|
32612
|
-
const Page = (0,
|
32841
|
+
const Page = (0, import_react23.useCallback)(
|
32613
32842
|
(pageProps) => {
|
32614
32843
|
var _a, _b;
|
32615
32844
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadProps(__spreadValues({
|
@@ -32617,13 +32846,13 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
32617
32846
|
}, pageProps), {
|
32618
32847
|
editMode: true,
|
32619
32848
|
puck: { renderDropZone: DropZone }
|
32620
|
-
})) : /* @__PURE__ */ (0,
|
32849
|
+
})) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: pageProps.children });
|
32621
32850
|
},
|
32622
32851
|
[config.root]
|
32623
32852
|
);
|
32624
32853
|
const rootProps = state.data.root.props || state.data.root;
|
32625
|
-
const ref = (0,
|
32626
|
-
return /* @__PURE__ */ (0,
|
32854
|
+
const ref = (0, import_react23.useRef)(null);
|
32855
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
32627
32856
|
"div",
|
32628
32857
|
{
|
32629
32858
|
className: getClassName21(),
|
@@ -32631,8 +32860,8 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
32631
32860
|
onClick: () => {
|
32632
32861
|
dispatch({ type: "setUi", ui: __spreadProps(__spreadValues({}, state.ui), { itemSelector: null }) });
|
32633
32862
|
},
|
32634
|
-
children: iframe.enabled ? /* @__PURE__ */ (0,
|
32635
|
-
|
32863
|
+
children: iframe.enabled ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
32864
|
+
AutoFrame_default,
|
32636
32865
|
{
|
32637
32866
|
id: "preview-frame",
|
32638
32867
|
className: getClassName21("frame"),
|
@@ -32641,9 +32870,9 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
32641
32870
|
onStylesLoaded: () => {
|
32642
32871
|
setStatus("READY");
|
32643
32872
|
},
|
32644
|
-
children: /* @__PURE__ */ (0,
|
32873
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) }))
|
32645
32874
|
}
|
32646
|
-
) : /* @__PURE__ */ (0,
|
32875
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { id: "preview-frame", className: getClassName21("frame"), children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Page, __spreadProps(__spreadValues({ dispatch, state }, rootProps), { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropZone, { zone: rootDroppableId }) })) })
|
32647
32876
|
}
|
32648
32877
|
);
|
32649
32878
|
};
|
@@ -32691,7 +32920,7 @@ var scrollIntoView = (el) => {
|
|
32691
32920
|
};
|
32692
32921
|
|
32693
32922
|
// components/LayerTree/index.tsx
|
32694
|
-
var
|
32923
|
+
var import_react24 = require("react");
|
32695
32924
|
|
32696
32925
|
// lib/is-child-of-zone.ts
|
32697
32926
|
init_react_import();
|
@@ -32705,7 +32934,7 @@ var isChildOfZone = (item, maybeChild, ctx) => {
|
|
32705
32934
|
};
|
32706
32935
|
|
32707
32936
|
// components/LayerTree/index.tsx
|
32708
|
-
var
|
32937
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
32709
32938
|
var getClassName22 = get_class_name_factory_default("LayerTree", styles_module_default17);
|
32710
32939
|
var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default17);
|
32711
32940
|
var LayerTree = ({
|
@@ -32718,15 +32947,15 @@ var LayerTree = ({
|
|
32718
32947
|
label
|
32719
32948
|
}) => {
|
32720
32949
|
const zones = data.zones || {};
|
32721
|
-
const ctx = (0,
|
32722
|
-
return /* @__PURE__ */ (0,
|
32723
|
-
label && /* @__PURE__ */ (0,
|
32724
|
-
/* @__PURE__ */ (0,
|
32950
|
+
const ctx = (0, import_react24.useContext)(dropZoneContext);
|
32951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
32952
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: getClassName22("zoneTitle"), children: [
|
32953
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassName22("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Layers, { size: "16" }) }),
|
32725
32954
|
" ",
|
32726
32955
|
label
|
32727
32956
|
] }),
|
32728
|
-
/* @__PURE__ */ (0,
|
32729
|
-
zoneContent.length === 0 && /* @__PURE__ */ (0,
|
32957
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("ul", { className: getClassName22(), children: [
|
32958
|
+
zoneContent.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassName22("helper"), children: "No items" }),
|
32730
32959
|
zoneContent.map((item, i) => {
|
32731
32960
|
var _a;
|
32732
32961
|
const isSelected = (itemSelector == null ? void 0 : itemSelector.index) === i && (itemSelector.zone === zone || itemSelector.zone === rootDroppableId && !zone);
|
@@ -32742,7 +32971,7 @@ var LayerTree = ({
|
|
32742
32971
|
const selectedItem = itemSelector && data ? getItem(itemSelector, data) : null;
|
32743
32972
|
const isHovering = hoveringComponent === item.props.id;
|
32744
32973
|
const childIsSelected = isChildOfZone(item, selectedItem, ctx);
|
32745
|
-
return /* @__PURE__ */ (0,
|
32974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
32746
32975
|
"li",
|
32747
32976
|
{
|
32748
32977
|
className: getClassNameLayer({
|
@@ -32752,7 +32981,7 @@ var LayerTree = ({
|
|
32752
32981
|
childIsSelected
|
32753
32982
|
}),
|
32754
32983
|
children: [
|
32755
|
-
/* @__PURE__ */ (0,
|
32984
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
32756
32985
|
"button",
|
32757
32986
|
{
|
32758
32987
|
className: getClassNameLayer("clickable"),
|
@@ -32784,22 +33013,22 @@ var LayerTree = ({
|
|
32784
33013
|
setHoveringComponent(null);
|
32785
33014
|
},
|
32786
33015
|
children: [
|
32787
|
-
containsZone && /* @__PURE__ */ (0,
|
33016
|
+
containsZone && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
32788
33017
|
"div",
|
32789
33018
|
{
|
32790
33019
|
className: getClassNameLayer("chevron"),
|
32791
33020
|
title: isSelected ? "Collapse" : "Expand",
|
32792
|
-
children: /* @__PURE__ */ (0,
|
33021
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ChevronDown, { size: "12" })
|
32793
33022
|
}
|
32794
33023
|
),
|
32795
|
-
/* @__PURE__ */ (0,
|
32796
|
-
/* @__PURE__ */ (0,
|
32797
|
-
/* @__PURE__ */ (0,
|
33024
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: getClassNameLayer("title"), children: [
|
33025
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("icon"), children: item.type === "Text" || item.type === "Heading" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Type, { size: "16" }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(LayoutGrid, { size: "16" }) }),
|
33026
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("name"), children: (_a = config.components[item.type]["label"]) != null ? _a : item.type })
|
32798
33027
|
] })
|
32799
33028
|
]
|
32800
33029
|
}
|
32801
33030
|
) }),
|
32802
|
-
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0,
|
33031
|
+
containsZone && Object.keys(zonesForItem).map((zoneKey, idx) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: getClassNameLayer("zones"), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
32803
33032
|
LayerTree,
|
32804
33033
|
{
|
32805
33034
|
config,
|
@@ -32821,13 +33050,13 @@ var LayerTree = ({
|
|
32821
33050
|
};
|
32822
33051
|
|
32823
33052
|
// components/Puck/components/Outline/index.tsx
|
32824
|
-
var
|
32825
|
-
var
|
33053
|
+
var import_react25 = require("react");
|
33054
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
32826
33055
|
var Outline = () => {
|
32827
33056
|
const { dispatch, state, overrides, config } = useAppContext();
|
32828
33057
|
const { data, ui } = state;
|
32829
33058
|
const { itemSelector } = ui;
|
32830
|
-
const setItemSelector = (0,
|
33059
|
+
const setItemSelector = (0, import_react25.useCallback)(
|
32831
33060
|
(newItemSelector) => {
|
32832
33061
|
dispatch({
|
32833
33062
|
type: "setUi",
|
@@ -32836,9 +33065,9 @@ var Outline = () => {
|
|
32836
33065
|
},
|
32837
33066
|
[]
|
32838
33067
|
);
|
32839
|
-
const Wrapper = (0,
|
32840
|
-
return /* @__PURE__ */ (0,
|
32841
|
-
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0,
|
33068
|
+
const Wrapper = (0, import_react25.useMemo)(() => overrides.outline || "div", [overrides]);
|
33069
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
33070
|
+
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
32842
33071
|
LayerTree,
|
32843
33072
|
{
|
32844
33073
|
config,
|
@@ -32851,7 +33080,7 @@ var Outline = () => {
|
|
32851
33080
|
),
|
32852
33081
|
Object.entries(findZonesForArea(data, "root")).map(
|
32853
33082
|
([zoneKey, zone]) => {
|
32854
|
-
return /* @__PURE__ */ (0,
|
33083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
32855
33084
|
LayerTree,
|
32856
33085
|
{
|
32857
33086
|
config,
|
@@ -32936,12 +33165,12 @@ function usePuckHistory({
|
|
32936
33165
|
|
32937
33166
|
// lib/use-history-store.ts
|
32938
33167
|
init_react_import();
|
32939
|
-
var
|
33168
|
+
var import_react26 = require("react");
|
32940
33169
|
var import_use_debounce3 = require("use-debounce");
|
32941
33170
|
var EMPTY_HISTORY_INDEX = -1;
|
32942
33171
|
function useHistoryStore() {
|
32943
|
-
const [histories, setHistories] = (0,
|
32944
|
-
const [index, setIndex] = (0,
|
33172
|
+
const [histories, setHistories] = (0, import_react26.useState)([]);
|
33173
|
+
const [index, setIndex] = (0, import_react26.useState)(EMPTY_HISTORY_INDEX);
|
32945
33174
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
32946
33175
|
const hasFuture = index < histories.length - 1;
|
32947
33176
|
const currentHistory = histories[index];
|
@@ -33101,22 +33330,22 @@ var getBox = function getBox2(el) {
|
|
33101
33330
|
};
|
33102
33331
|
|
33103
33332
|
// components/Puck/components/Canvas/index.tsx
|
33104
|
-
var
|
33333
|
+
var import_react28 = require("react");
|
33105
33334
|
|
33106
33335
|
// components/ViewportControls/index.tsx
|
33107
33336
|
init_react_import();
|
33108
|
-
var
|
33337
|
+
var import_react27 = require("react");
|
33109
33338
|
|
33110
33339
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
33111
33340
|
init_react_import();
|
33112
33341
|
var styles_module_default18 = { "ViewportControls": "_ViewportControls_3zdvn_1", "ViewportControls-divider": "_ViewportControls-divider_3zdvn_15", "ViewportControls-zoomSelect": "_ViewportControls-zoomSelect_3zdvn_21", "ViewportButton--isActive": "_ViewportButton--isActive_3zdvn_33", "ViewportButton-inner": "_ViewportButton-inner_3zdvn_33" };
|
33113
33342
|
|
33114
33343
|
// components/ViewportControls/index.tsx
|
33115
|
-
var
|
33344
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
33116
33345
|
var icons = {
|
33117
|
-
Smartphone: /* @__PURE__ */ (0,
|
33118
|
-
Tablet: /* @__PURE__ */ (0,
|
33119
|
-
Monitor: /* @__PURE__ */ (0,
|
33346
|
+
Smartphone: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Smartphone, { size: 16 }),
|
33347
|
+
Tablet: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Tablet, { size: 16 }),
|
33348
|
+
Monitor: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Monitor, { size: 16 })
|
33120
33349
|
};
|
33121
33350
|
var getClassName23 = get_class_name_factory_default("ViewportControls", styles_module_default18);
|
33122
33351
|
var getClassNameButton = get_class_name_factory_default("ViewportButton", styles_module_default18);
|
@@ -33128,11 +33357,11 @@ var ViewportButton = ({
|
|
33128
33357
|
onClick
|
33129
33358
|
}) => {
|
33130
33359
|
const { state } = useAppContext();
|
33131
|
-
const [isActive, setIsActive] = (0,
|
33132
|
-
(0,
|
33360
|
+
const [isActive, setIsActive] = (0, import_react27.useState)(false);
|
33361
|
+
(0, import_react27.useEffect)(() => {
|
33133
33362
|
setIsActive(width === state.ui.viewports.current.width);
|
33134
33363
|
}, [width, state.ui.viewports.current.width]);
|
33135
|
-
return /* @__PURE__ */ (0,
|
33364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33136
33365
|
IconButton,
|
33137
33366
|
{
|
33138
33367
|
title,
|
@@ -33141,7 +33370,7 @@ var ViewportButton = ({
|
|
33141
33370
|
e.stopPropagation();
|
33142
33371
|
onClick({ width, height });
|
33143
33372
|
},
|
33144
|
-
children: /* @__PURE__ */ (0,
|
33373
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: getClassNameButton("inner"), children })
|
33145
33374
|
}
|
33146
33375
|
) });
|
33147
33376
|
};
|
@@ -33165,7 +33394,7 @@ var ViewportControls = ({
|
|
33165
33394
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
33166
33395
|
(option) => option.value === autoZoom
|
33167
33396
|
);
|
33168
|
-
const zoomOptions = (0,
|
33397
|
+
const zoomOptions = (0, import_react27.useMemo)(
|
33169
33398
|
() => [
|
33170
33399
|
...defaultZoomOptions,
|
33171
33400
|
...defaultsContainAutoZoom ? [] : [
|
@@ -33177,8 +33406,8 @@ var ViewportControls = ({
|
|
33177
33406
|
].filter((a) => a.value <= autoZoom).sort((a, b) => a.value > b.value ? 1 : -1),
|
33178
33407
|
[autoZoom]
|
33179
33408
|
);
|
33180
|
-
return /* @__PURE__ */ (0,
|
33181
|
-
viewports.map((viewport, i) => /* @__PURE__ */ (0,
|
33409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: getClassName23(), children: [
|
33410
|
+
viewports.map((viewport, i) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33182
33411
|
ViewportButton,
|
33183
33412
|
{
|
33184
33413
|
height: viewport.height,
|
@@ -33189,8 +33418,8 @@ var ViewportControls = ({
|
|
33189
33418
|
},
|
33190
33419
|
i
|
33191
33420
|
)),
|
33192
|
-
/* @__PURE__ */ (0,
|
33193
|
-
/* @__PURE__ */ (0,
|
33421
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName23("divider") }),
|
33422
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33194
33423
|
IconButton,
|
33195
33424
|
{
|
33196
33425
|
title: "Zoom viewport out",
|
@@ -33204,10 +33433,10 @@ var ViewportControls = ({
|
|
33204
33433
|
)].value
|
33205
33434
|
);
|
33206
33435
|
},
|
33207
|
-
children: /* @__PURE__ */ (0,
|
33436
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ZoomOut, { size: 16 })
|
33208
33437
|
}
|
33209
33438
|
),
|
33210
|
-
/* @__PURE__ */ (0,
|
33439
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33211
33440
|
IconButton,
|
33212
33441
|
{
|
33213
33442
|
title: "Zoom viewport in",
|
@@ -33221,11 +33450,11 @@ var ViewportControls = ({
|
|
33221
33450
|
)].value
|
33222
33451
|
);
|
33223
33452
|
},
|
33224
|
-
children: /* @__PURE__ */ (0,
|
33453
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ZoomIn, { size: 16 })
|
33225
33454
|
}
|
33226
33455
|
),
|
33227
|
-
/* @__PURE__ */ (0,
|
33228
|
-
/* @__PURE__ */ (0,
|
33456
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName23("divider") }),
|
33457
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33229
33458
|
"select",
|
33230
33459
|
{
|
33231
33460
|
className: getClassName23("zoomSelect"),
|
@@ -33233,7 +33462,7 @@ var ViewportControls = ({
|
|
33233
33462
|
onChange: (e) => {
|
33234
33463
|
onZoom(parseFloat(e.currentTarget.value));
|
33235
33464
|
},
|
33236
|
-
children: zoomOptions.map((option) => /* @__PURE__ */ (0,
|
33465
|
+
children: zoomOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
33237
33466
|
"option",
|
33238
33467
|
{
|
33239
33468
|
value: option.value,
|
@@ -33281,24 +33510,24 @@ var getZoomConfig = (uiViewport, frame, zoom) => {
|
|
33281
33510
|
};
|
33282
33511
|
|
33283
33512
|
// components/Puck/components/Canvas/index.tsx
|
33284
|
-
var
|
33513
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
33285
33514
|
var getClassName24 = get_class_name_factory_default("PuckCanvas", styles_module_default19);
|
33286
33515
|
var ZOOM_ON_CHANGE = true;
|
33287
33516
|
var Canvas = () => {
|
33288
33517
|
const { status, iframe } = useAppContext();
|
33289
33518
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
33290
33519
|
const { ui } = state;
|
33291
|
-
const frameRef = (0,
|
33292
|
-
const [showTransition, setShowTransition] = (0,
|
33293
|
-
const defaultRender = (0,
|
33294
|
-
const PuckDefault = ({ children }) => /* @__PURE__ */ (0,
|
33520
|
+
const frameRef = (0, import_react28.useRef)(null);
|
33521
|
+
const [showTransition, setShowTransition] = (0, import_react28.useState)(false);
|
33522
|
+
const defaultRender = (0, import_react28.useMemo)(() => {
|
33523
|
+
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children });
|
33295
33524
|
return PuckDefault;
|
33296
33525
|
}, []);
|
33297
|
-
const CustomPreview = (0,
|
33526
|
+
const CustomPreview = (0, import_react28.useMemo)(
|
33298
33527
|
() => overrides.preview || defaultRender,
|
33299
33528
|
[overrides]
|
33300
33529
|
);
|
33301
|
-
const getFrameDimensions = (0,
|
33530
|
+
const getFrameDimensions = (0, import_react28.useCallback)(() => {
|
33302
33531
|
if (frameRef.current) {
|
33303
33532
|
const frame = frameRef.current;
|
33304
33533
|
const box = getBox(frame);
|
@@ -33306,7 +33535,7 @@ var Canvas = () => {
|
|
33306
33535
|
}
|
33307
33536
|
return { width: 0, height: 0 };
|
33308
33537
|
}, [frameRef]);
|
33309
|
-
const resetAutoZoom = (0,
|
33538
|
+
const resetAutoZoom = (0, import_react28.useCallback)(
|
33310
33539
|
(ui2 = state.ui) => {
|
33311
33540
|
if (frameRef.current) {
|
33312
33541
|
setZoomConfig(
|
@@ -33316,11 +33545,11 @@ var Canvas = () => {
|
|
33316
33545
|
},
|
33317
33546
|
[frameRef, zoomConfig, state.ui]
|
33318
33547
|
);
|
33319
|
-
(0,
|
33548
|
+
(0, import_react28.useEffect)(() => {
|
33320
33549
|
setShowTransition(false);
|
33321
33550
|
resetAutoZoom();
|
33322
33551
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
33323
|
-
(0,
|
33552
|
+
(0, import_react28.useEffect)(() => {
|
33324
33553
|
const { height: frameHeight } = getFrameDimensions();
|
33325
33554
|
if (ui.viewports.current.height === "auto") {
|
33326
33555
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -33328,7 +33557,7 @@ var Canvas = () => {
|
|
33328
33557
|
}));
|
33329
33558
|
}
|
33330
33559
|
}, [zoomConfig.zoom]);
|
33331
|
-
(0,
|
33560
|
+
(0, import_react28.useEffect)(() => {
|
33332
33561
|
const observer = new ResizeObserver(() => {
|
33333
33562
|
setShowTransition(false);
|
33334
33563
|
resetAutoZoom();
|
@@ -33340,7 +33569,7 @@ var Canvas = () => {
|
|
33340
33569
|
observer.disconnect();
|
33341
33570
|
};
|
33342
33571
|
}, []);
|
33343
|
-
return /* @__PURE__ */ (0,
|
33572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
33344
33573
|
"div",
|
33345
33574
|
{
|
33346
33575
|
className: getClassName24({
|
@@ -33352,7 +33581,7 @@ var Canvas = () => {
|
|
33352
33581
|
recordHistory: true
|
33353
33582
|
}),
|
33354
33583
|
children: [
|
33355
|
-
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0,
|
33584
|
+
ui.viewports.controlsVisible && iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("controls"), children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
33356
33585
|
ViewportControls,
|
33357
33586
|
{
|
33358
33587
|
autoZoom: zoomConfig.autoZoom,
|
@@ -33377,7 +33606,7 @@ var Canvas = () => {
|
|
33377
33606
|
}
|
33378
33607
|
}
|
33379
33608
|
) }),
|
33380
|
-
/* @__PURE__ */ (0,
|
33609
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: getClassName24("inner"), ref: frameRef, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
33381
33610
|
"div",
|
33382
33611
|
{
|
33383
33612
|
className: getClassName24("root"),
|
@@ -33389,7 +33618,7 @@ var Canvas = () => {
|
|
33389
33618
|
overflow: iframe.enabled ? void 0 : "auto"
|
33390
33619
|
},
|
33391
33620
|
suppressHydrationWarning: true,
|
33392
|
-
children: /* @__PURE__ */ (0,
|
33621
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CustomPreview, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Preview, {}) })
|
33393
33622
|
}
|
33394
33623
|
) })
|
33395
33624
|
]
|
@@ -33398,12 +33627,12 @@ var Canvas = () => {
|
|
33398
33627
|
};
|
33399
33628
|
|
33400
33629
|
// components/Puck/index.tsx
|
33401
|
-
var
|
33630
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
33402
33631
|
var getClassName25 = get_class_name_factory_default("Puck", styles_module_default8);
|
33403
33632
|
function Puck({
|
33404
33633
|
children,
|
33405
33634
|
config,
|
33406
|
-
data: initialData = { content: [], root: {
|
33635
|
+
data: initialData = { content: [], root: {} },
|
33407
33636
|
ui: initialUi,
|
33408
33637
|
onChange,
|
33409
33638
|
onPublish,
|
@@ -33416,15 +33645,16 @@ function Puck({
|
|
33416
33645
|
viewports = defaultViewports,
|
33417
33646
|
iframe = {
|
33418
33647
|
enabled: true
|
33419
|
-
}
|
33648
|
+
},
|
33649
|
+
dnd
|
33420
33650
|
}) {
|
33421
33651
|
var _a;
|
33422
33652
|
const historyStore = useHistoryStore();
|
33423
|
-
const [reducer] = (0,
|
33653
|
+
const [reducer] = (0, import_react29.useState)(
|
33424
33654
|
() => createReducer({ config, record: historyStore.record })
|
33425
33655
|
);
|
33426
|
-
const [initialAppState] = (0,
|
33427
|
-
var _a2, _b, _c, _d;
|
33656
|
+
const [initialAppState] = (0, import_react29.useState)(() => {
|
33657
|
+
var _a2, _b, _c, _d, _e;
|
33428
33658
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
33429
33659
|
let clientUiState = {};
|
33430
33660
|
if (typeof window !== "undefined") {
|
@@ -33451,8 +33681,12 @@ function Puck({
|
|
33451
33681
|
};
|
33452
33682
|
}
|
33453
33683
|
}
|
33684
|
+
const rootProps2 = initialData.root.props || initialData.root;
|
33685
|
+
const defaultedRootProps = __spreadValues(__spreadValues({}, (_e = config.root) == null ? void 0 : _e.defaultProps), rootProps2);
|
33454
33686
|
return __spreadProps(__spreadValues({}, defaultAppState), {
|
33455
|
-
data: initialData,
|
33687
|
+
data: __spreadProps(__spreadValues({}, initialData), {
|
33688
|
+
root: defaultedRootProps
|
33689
|
+
}),
|
33456
33690
|
ui: __spreadProps(__spreadValues(__spreadValues({}, initial), clientUiState), {
|
33457
33691
|
// Store categories under componentList on state to allow render functions and plugins to modify
|
33458
33692
|
componentList: config.categories ? Object.entries(config.categories).reduce(
|
@@ -33471,7 +33705,7 @@ function Puck({
|
|
33471
33705
|
})
|
33472
33706
|
});
|
33473
33707
|
});
|
33474
|
-
const [appState, dispatch] = (0,
|
33708
|
+
const [appState, dispatch] = (0, import_react29.useReducer)(
|
33475
33709
|
reducer,
|
33476
33710
|
flushZones(initialAppState)
|
33477
33711
|
);
|
@@ -33482,9 +33716,9 @@ function Puck({
|
|
33482
33716
|
config,
|
33483
33717
|
dispatch
|
33484
33718
|
);
|
33485
|
-
const [menuOpen, setMenuOpen] = (0,
|
33719
|
+
const [menuOpen, setMenuOpen] = (0, import_react29.useState)(false);
|
33486
33720
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
33487
|
-
const setItemSelector = (0,
|
33721
|
+
const setItemSelector = (0, import_react29.useCallback)(
|
33488
33722
|
(newItemSelector) => {
|
33489
33723
|
if (newItemSelector === itemSelector)
|
33490
33724
|
return;
|
@@ -33497,21 +33731,21 @@ function Puck({
|
|
33497
33731
|
[itemSelector]
|
33498
33732
|
);
|
33499
33733
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
33500
|
-
(0,
|
33734
|
+
(0, import_react29.useEffect)(() => {
|
33501
33735
|
if (onChange)
|
33502
33736
|
onChange(data);
|
33503
33737
|
}, [data]);
|
33504
33738
|
const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
|
33505
|
-
const [draggedItem, setDraggedItem] = (0,
|
33739
|
+
const [draggedItem, setDraggedItem] = (0, import_react29.useState)();
|
33506
33740
|
const rootProps = data.root.props || data.root;
|
33507
|
-
(0,
|
33741
|
+
(0, import_react29.useEffect)(() => {
|
33508
33742
|
if (Object.keys(data.root).length > 0 && !data.root.props) {
|
33509
33743
|
console.error(
|
33510
33744
|
"Warning: Defining props on `root` is deprecated. Please use `root.props`. This will be a breaking change in a future release."
|
33511
33745
|
);
|
33512
33746
|
}
|
33513
33747
|
}, []);
|
33514
|
-
const toggleSidebars = (0,
|
33748
|
+
const toggleSidebars = (0, import_react29.useCallback)(
|
33515
33749
|
(sidebar) => {
|
33516
33750
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
33517
33751
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -33525,7 +33759,7 @@ function Puck({
|
|
33525
33759
|
},
|
33526
33760
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
33527
33761
|
);
|
33528
|
-
(0,
|
33762
|
+
(0, import_react29.useEffect)(() => {
|
33529
33763
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
33530
33764
|
dispatch({
|
33531
33765
|
type: "setUi",
|
@@ -33548,11 +33782,11 @@ function Puck({
|
|
33548
33782
|
window.removeEventListener("resize", handleResize);
|
33549
33783
|
};
|
33550
33784
|
}, []);
|
33551
|
-
const defaultRender = (0,
|
33552
|
-
const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0,
|
33785
|
+
const defaultRender = (0, import_react29.useMemo)(() => {
|
33786
|
+
const PuckDefault = ({ children: children2 }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: children2 });
|
33553
33787
|
return PuckDefault;
|
33554
33788
|
}, []);
|
33555
|
-
const defaultHeaderRender = (0,
|
33789
|
+
const defaultHeaderRender = (0, import_react29.useMemo)(() => {
|
33556
33790
|
if (renderHeader) {
|
33557
33791
|
console.warn(
|
33558
33792
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -33560,45 +33794,45 @@ function Puck({
|
|
33560
33794
|
const RenderHeader = (_a2) => {
|
33561
33795
|
var _b = _a2, { actions } = _b, props = __objRest(_b, ["actions"]);
|
33562
33796
|
const Comp = renderHeader;
|
33563
|
-
return /* @__PURE__ */ (0,
|
33797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState, children: actions }));
|
33564
33798
|
};
|
33565
33799
|
return RenderHeader;
|
33566
33800
|
}
|
33567
33801
|
return defaultRender;
|
33568
33802
|
}, [renderHeader]);
|
33569
|
-
const defaultHeaderActionsRender = (0,
|
33803
|
+
const defaultHeaderActionsRender = (0, import_react29.useMemo)(() => {
|
33570
33804
|
if (renderHeaderActions) {
|
33571
33805
|
console.warn(
|
33572
33806
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
33573
33807
|
);
|
33574
33808
|
const RenderHeader = (props) => {
|
33575
33809
|
const Comp = renderHeaderActions;
|
33576
|
-
return /* @__PURE__ */ (0,
|
33810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Comp, __spreadProps(__spreadValues({}, props), { dispatch, state: appState }));
|
33577
33811
|
};
|
33578
33812
|
return RenderHeader;
|
33579
33813
|
}
|
33580
33814
|
return defaultRender;
|
33581
33815
|
}, [renderHeader]);
|
33582
|
-
const loadedOverrides = (0,
|
33816
|
+
const loadedOverrides = (0, import_react29.useMemo)(() => {
|
33583
33817
|
return loadOverrides({ overrides, plugins });
|
33584
33818
|
}, [plugins]);
|
33585
|
-
const CustomPuck = (0,
|
33819
|
+
const CustomPuck = (0, import_react29.useMemo)(
|
33586
33820
|
() => loadedOverrides.puck || defaultRender,
|
33587
33821
|
[loadedOverrides]
|
33588
33822
|
);
|
33589
|
-
const CustomHeader = (0,
|
33823
|
+
const CustomHeader = (0, import_react29.useMemo)(
|
33590
33824
|
() => loadedOverrides.header || defaultHeaderRender,
|
33591
33825
|
[loadedOverrides]
|
33592
33826
|
);
|
33593
|
-
const CustomHeaderActions = (0,
|
33827
|
+
const CustomHeaderActions = (0, import_react29.useMemo)(
|
33594
33828
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
33595
33829
|
[loadedOverrides]
|
33596
33830
|
);
|
33597
|
-
const [mounted, setMounted] = (0,
|
33598
|
-
(0,
|
33831
|
+
const [mounted, setMounted] = (0, import_react29.useState)(false);
|
33832
|
+
(0, import_react29.useEffect)(() => {
|
33599
33833
|
setMounted(true);
|
33600
33834
|
}, []);
|
33601
|
-
return /* @__PURE__ */ (0,
|
33835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "Puck", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33602
33836
|
AppProvider,
|
33603
33837
|
{
|
33604
33838
|
value: {
|
@@ -33613,9 +33847,10 @@ function Puck({
|
|
33613
33847
|
viewports,
|
33614
33848
|
iframe
|
33615
33849
|
},
|
33616
|
-
children: /* @__PURE__ */ (0,
|
33850
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33617
33851
|
DragDropContext,
|
33618
33852
|
{
|
33853
|
+
autoScrollerOptions: { disabled: dnd == null ? void 0 : dnd.disableAutoScroll },
|
33619
33854
|
onDragUpdate: (update) => {
|
33620
33855
|
setDraggedItem(__spreadValues(__spreadValues({}, draggedItem), update));
|
33621
33856
|
onDragStartOrUpdate(update);
|
@@ -33668,7 +33903,7 @@ function Puck({
|
|
33668
33903
|
});
|
33669
33904
|
}
|
33670
33905
|
},
|
33671
|
-
children: /* @__PURE__ */ (0,
|
33906
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33672
33907
|
DropZoneProvider,
|
33673
33908
|
{
|
33674
33909
|
value: {
|
@@ -33682,7 +33917,7 @@ function Puck({
|
|
33682
33917
|
mode: "edit",
|
33683
33918
|
areaId: "root"
|
33684
33919
|
},
|
33685
|
-
children: /* @__PURE__ */ (0,
|
33920
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CustomPuck, { children: children || /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
33686
33921
|
"div",
|
33687
33922
|
{
|
33688
33923
|
className: getClassName25({
|
@@ -33692,65 +33927,65 @@ function Puck({
|
|
33692
33927
|
rightSideBarVisible
|
33693
33928
|
}),
|
33694
33929
|
children: [
|
33695
|
-
/* @__PURE__ */ (0,
|
33696
|
-
/* @__PURE__ */ (0,
|
33930
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("layout"), children: [
|
33931
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33697
33932
|
CustomHeader,
|
33698
33933
|
{
|
33699
|
-
actions: /* @__PURE__ */ (0,
|
33700
|
-
/* @__PURE__ */ (0,
|
33701
|
-
/* @__PURE__ */ (0,
|
33934
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
33935
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CustomHeaderActions, {}),
|
33936
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33702
33937
|
Button,
|
33703
33938
|
{
|
33704
33939
|
onClick: () => {
|
33705
33940
|
onPublish && onPublish(data);
|
33706
33941
|
},
|
33707
|
-
icon: /* @__PURE__ */ (0,
|
33942
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Globe, { size: "14px" }),
|
33708
33943
|
children: "Publish"
|
33709
33944
|
}
|
33710
33945
|
)
|
33711
33946
|
] }),
|
33712
|
-
children: /* @__PURE__ */ (0,
|
33713
|
-
/* @__PURE__ */ (0,
|
33714
|
-
/* @__PURE__ */ (0,
|
33947
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("header", { className: getClassName25("header"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("headerInner"), children: [
|
33948
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("headerToggle"), children: [
|
33949
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("leftSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33715
33950
|
IconButton,
|
33716
33951
|
{
|
33717
33952
|
onClick: () => {
|
33718
33953
|
toggleSidebars("left");
|
33719
33954
|
},
|
33720
33955
|
title: "Toggle left sidebar",
|
33721
|
-
children: /* @__PURE__ */ (0,
|
33956
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PanelLeft, { focusable: "false" })
|
33722
33957
|
}
|
33723
33958
|
) }),
|
33724
|
-
/* @__PURE__ */ (0,
|
33959
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("rightSideBarToggle"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33725
33960
|
IconButton,
|
33726
33961
|
{
|
33727
33962
|
onClick: () => {
|
33728
33963
|
toggleSidebars("right");
|
33729
33964
|
},
|
33730
33965
|
title: "Toggle right sidebar",
|
33731
|
-
children: /* @__PURE__ */ (0,
|
33966
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(PanelRight, { focusable: "false" })
|
33732
33967
|
}
|
33733
33968
|
) })
|
33734
33969
|
] }),
|
33735
|
-
/* @__PURE__ */ (0,
|
33970
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("headerTitle"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Heading, { rank: 2, size: "xs", children: [
|
33736
33971
|
headerTitle || rootProps.title || "Page",
|
33737
|
-
headerPath && /* @__PURE__ */ (0,
|
33972
|
+
headerPath && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
33738
33973
|
" ",
|
33739
|
-
/* @__PURE__ */ (0,
|
33974
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("code", { className: getClassName25("headerPath"), children: headerPath })
|
33740
33975
|
] })
|
33741
33976
|
] }) }),
|
33742
|
-
/* @__PURE__ */ (0,
|
33743
|
-
/* @__PURE__ */ (0,
|
33977
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("headerTools"), children: [
|
33978
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("menuButton"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33744
33979
|
IconButton,
|
33745
33980
|
{
|
33746
33981
|
onClick: () => {
|
33747
33982
|
return setMenuOpen(!menuOpen);
|
33748
33983
|
},
|
33749
33984
|
title: "Toggle menu bar",
|
33750
|
-
children: menuOpen ? /* @__PURE__ */ (0,
|
33985
|
+
children: menuOpen ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ChevronUp, { focusable: "false" }) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ChevronDown, { focusable: "false" })
|
33751
33986
|
}
|
33752
33987
|
) }),
|
33753
|
-
/* @__PURE__ */ (0,
|
33988
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33754
33989
|
MenuBar,
|
33755
33990
|
{
|
33756
33991
|
appState,
|
@@ -33758,7 +33993,7 @@ function Puck({
|
|
33758
33993
|
dispatch,
|
33759
33994
|
onPublish,
|
33760
33995
|
menuOpen,
|
33761
|
-
renderHeaderActions: () => /* @__PURE__ */ (0,
|
33996
|
+
renderHeaderActions: () => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CustomHeaderActions, {}),
|
33762
33997
|
setMenuOpen
|
33763
33998
|
}
|
33764
33999
|
)
|
@@ -33766,23 +34001,23 @@ function Puck({
|
|
33766
34001
|
] }) })
|
33767
34002
|
}
|
33768
34003
|
),
|
33769
|
-
/* @__PURE__ */ (0,
|
33770
|
-
/* @__PURE__ */ (0,
|
33771
|
-
/* @__PURE__ */ (0,
|
34004
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: getClassName25("leftSideBar"), children: [
|
34005
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SidebarSection, { title: "Components", noBorderTop: true, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Components, {}) }),
|
34006
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(SidebarSection, { title: "Outline", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Outline, {}) })
|
33772
34007
|
] }),
|
33773
|
-
/* @__PURE__ */ (0,
|
33774
|
-
/* @__PURE__ */ (0,
|
34008
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Canvas, {}),
|
34009
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: getClassName25("rightSideBar"), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33775
34010
|
SidebarSection,
|
33776
34011
|
{
|
33777
34012
|
noPadding: true,
|
33778
34013
|
noBorderTop: true,
|
33779
34014
|
showBreadcrumbs: true,
|
33780
34015
|
title: selectedItem ? (_a = config.components[selectedItem.type]["label"]) != null ? _a : selectedItem.type : "Page",
|
33781
|
-
children: /* @__PURE__ */ (0,
|
34016
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Fields, {})
|
33782
34017
|
}
|
33783
34018
|
) })
|
33784
34019
|
] }),
|
33785
|
-
/* @__PURE__ */ (0,
|
34020
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
33786
34021
|
"div",
|
33787
34022
|
{
|
33788
34023
|
id: "puck-portal-root",
|
@@ -33806,7 +34041,7 @@ Puck.Preview = Preview;
|
|
33806
34041
|
|
33807
34042
|
// components/Render/index.tsx
|
33808
34043
|
init_react_import();
|
33809
|
-
var
|
34044
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
33810
34045
|
function Render({
|
33811
34046
|
config,
|
33812
34047
|
data
|
@@ -33815,7 +34050,7 @@ function Render({
|
|
33815
34050
|
const rootProps = data.root.props || data.root;
|
33816
34051
|
const title = (rootProps == null ? void 0 : rootProps.title) || "";
|
33817
34052
|
if ((_a = config.root) == null ? void 0 : _a.render) {
|
33818
|
-
return /* @__PURE__ */ (0,
|
34053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
33819
34054
|
config.root.render,
|
33820
34055
|
__spreadProps(__spreadValues({}, rootProps), {
|
33821
34056
|
puck: {
|
@@ -33824,11 +34059,11 @@ function Render({
|
|
33824
34059
|
title,
|
33825
34060
|
editMode: false,
|
33826
34061
|
id: "puck-root",
|
33827
|
-
children: /* @__PURE__ */ (0,
|
34062
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZone, { zone: rootDroppableId })
|
33828
34063
|
})
|
33829
34064
|
) });
|
33830
34065
|
}
|
33831
|
-
return /* @__PURE__ */ (0,
|
34066
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZoneProvider, { value: { data, config, mode: "render" }, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropZone, { zone: rootDroppableId }) });
|
33832
34067
|
}
|
33833
34068
|
|
33834
34069
|
// lib/migrate.ts
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@measured/puck",
|
3
|
-
"version": "0.14.
|
3
|
+
"version": "0.14.3-canary.061cc2a",
|
4
4
|
"author": "Measured Corporation Ltd <hello@measured.co>",
|
5
5
|
"repository": "measuredco/puck",
|
6
6
|
"bugs": "https://github.com/measuredco/puck/issues",
|
@@ -46,6 +46,7 @@
|
|
46
46
|
"@types/jest": "^29.5.4",
|
47
47
|
"@types/react": "^18.2.0",
|
48
48
|
"@types/react-dom": "^18.2.0",
|
49
|
+
"@types/ua-parser-js": "^0.7.39",
|
49
50
|
"css-box-model": "^1.2.1",
|
50
51
|
"eslint": "^7.32.0",
|
51
52
|
"eslint-config-custom": "*",
|
@@ -59,11 +60,13 @@
|
|
59
60
|
"typescript": "^4.5.2"
|
60
61
|
},
|
61
62
|
"dependencies": {
|
62
|
-
"@measured/
|
63
|
-
"@measured/dnd": "16.6.0-canary.f472135",
|
63
|
+
"@measured/dnd": "16.6.0-canary.4cba1d1",
|
64
64
|
"deep-diff": "^1.0.2",
|
65
|
+
"object-hash": "^3.0.0",
|
66
|
+
"react-frame-component": "^5.2.6",
|
65
67
|
"react-hotkeys-hook": "^4.4.1",
|
66
68
|
"react-spinners": "^0.13.8",
|
69
|
+
"ua-parser-js": "^1.0.37",
|
67
70
|
"use-debounce": "^9.0.4",
|
68
71
|
"uuid": "^9.0.1"
|
69
72
|
},
|